@blockly/field-grid-dropdown Built on Blockly

A Blockly dropdown field with grid layout.

Installation

Yarn

yarn add @blockly/field-grid-dropdown

npm

npm install @blockly/field-grid-dropdown --save

Usage

This field accepts the same parameters as the Blockly.FieldDropdown in Blockly core. The config object bag passed into this field accepts additional optional parameters:

  • "columns" to specify the number of columns in the dropdown field (must be an integer greater than 0). If not provided, the default is 3 columns.
  • "primaryColour" to specify the colour of the dropdown (must be a string CSS colour). If not provided, the dropdown color will match the primary colour of the parent block.
  • "borderColour" to specify the colour of the border of the dropdown (must be a string CSS colour). If not provided, the border colour will match the tertiary colour of the parent block.

JavaScript

import * as Blockly from 'blockly';
import {FieldGridDropdown} from '@blockly/field-grid-dropdown';
Blockly.Blocks["test_field_grid_dropdown"] = {
  init: function () {
    this.appendDummyInput()
      .appendField("grid dropdown: ")
      .appendField(new FieldGridDropdown([
          ["A", "A"],["B", "B"], ["C", "C"],["D", "D"], ["E", "E"], ["F", "F"],
          ["G", "G"], ["H", "H"]]), "FIELDNAME");
  }
};

JSON

import * as Blockly from 'blockly';
import '@blockly/field-grid-dropdown';
Blockly.defineBlocksWithJsonArray([
    {
        "type": "test_field_grid_dropdown",
        "message0": "template: %1",
        "args0": [
            {
                "type": "field_grid_dropdown",
                "name": "FIELDNAME",
                "options": [
                        ["A", "A"],["B", "B"], ["C", "C"],["D", "D"],
                        ["E", "E"], ["F", "F"], ["G", "G"], ["H", "H"]
                ]
            }
        ]
    }]);

License

Apache 2.0