Создайте новый тип ввода

Чтобы создать собственный ввод, вам необходимо создать подкласс Input или один из его подклассов.

class MyInput extends Blockly.inputs.Input {

  // The constructor should always take in a name and a block to be compatible
  // with JSON block definitions.
  constructor(name, block) {
    super(name, block);
    // etc...
  }
}

При желании создайте соединение

Если вы хотите, чтобы ваш ввод имел соединение, его следует создать в конструкторе, вызвав метод makeConnection .

constructor(name, block) {
  super(name, block);

  this.connection = this.makeConnection(ConnectionType.INPUT_VALUE);
}

Зарегистрируйте ввод

Чтобы иметь возможность использовать свой собственный ввод в определении блока JSON, вам необходимо зарегистрировать его и связать со строкой.

class MyInput extends Blockly.inputs.Input {}

Blockly.registry.register(Blockly.registry.Type.INPUT, 'my_input', MyInput);