fix: custom block context menus (#5976)

* fix: custom block context menus

* fix: move rendered-specific properties back into BlockSvg
This commit is contained in:
Beka Westberg
2022-03-03 10:52:39 -08:00
committed by GitHub
parent b34db5bd01
commit 8058df2a71
3 changed files with 12 additions and 29 deletions

View File

@@ -162,31 +162,6 @@ class Block {
*/
this.loadExtraState = undefined;
/**
* An optional method called by the default mutator UI which allows the
* block to "explode" itself into smaller sub blocks. This function should
* return a "top block" which is the main block in the mutator workspace
* that sub-blocks connect to.
* @type {undefined|?function():!Block}
*/
this.decompose = undefined;
/**
* An optional method called by the deafult mutator UI which allows the
* block to configure itself based on the configuration of sub-blocks in
* the mutator workspace. This function should accept the "top block" which
* was returned by `decompose` as a paramter.
* @type {undefined|?function(!Block)}
*/
this.compose = undefined;
/**
* An optional method called by the default mutator UI which gives the block
* a chance to save information about what child blocks are connected to
* what mutated connections.
* @type {undefined|?function(!Block)}
*/
this.saveConnections = undefined;
/**
* An optional property for suppressing adding STATEMENT_PREFIX and

View File

@@ -110,7 +110,7 @@ class BlockSvg extends Block {
* mutation dialog button and UI to appear.
* @type {undefined|?function(WorkspaceSvg):!BlockSvg}
*/
this.decompose = undefined;
this.decompose = this.decompose;
/**
* An optional method called when a mutator dialog saves its content.
@@ -119,13 +119,21 @@ class BlockSvg extends Block {
* method for the default mutation dialog button and UI to appear.
* @type {undefined|?function(!BlockSvg)}
*/
this.compose = undefined;
this.compose = this.compose;
/**
* An optional method called by the default mutator UI which gives the block
* a chance to save information about what child blocks are connected to
* what mutated connections.
* @type {undefined|?function(!BlockSvg)}
*/
this.saveConnections = this.saveConnections;
/**
* An optional method for defining custom block context menu items.
* @type {undefined|?function(!Array<!Object>)}
*/
this.customContextMenu = undefined;
this.customContextMenu = this.customContextMenu;
/**
* An property used internally to reference the block's rendering debugger.

View File

@@ -143,7 +143,7 @@ goog.addDependency('../../core/registry.js', ['Blockly.registry'], [], {'lang':
goog.addDependency('../../core/rendered_connection.js', ['Blockly.RenderedConnection'], ['Blockly.Connection', 'Blockly.ConnectionType', 'Blockly.Events.utils', 'Blockly.common', 'Blockly.config', 'Blockly.internalConstants', 'Blockly.utils.Coordinate', 'Blockly.utils.Svg', 'Blockly.utils.dom', 'Blockly.utils.svgMath', 'Blockly.utils.svgPaths'], {'lang': 'es6', 'module': 'goog'});
goog.addDependency('../../core/renderers/common/block_rendering.js', ['Blockly.blockRendering'], ['Blockly.blockRendering.BottomRow', 'Blockly.blockRendering.Connection', 'Blockly.blockRendering.ConstantProvider', 'Blockly.blockRendering.Debug', 'Blockly.blockRendering.Drawer', 'Blockly.blockRendering.ExternalValueInput', 'Blockly.blockRendering.Field', 'Blockly.blockRendering.Hat', 'Blockly.blockRendering.IPathObject', 'Blockly.blockRendering.Icon', 'Blockly.blockRendering.InRowSpacer', 'Blockly.blockRendering.InlineInput', 'Blockly.blockRendering.InputConnection', 'Blockly.blockRendering.InputRow', 'Blockly.blockRendering.JaggedEdge', 'Blockly.blockRendering.MarkerSvg', 'Blockly.blockRendering.Measurable', 'Blockly.blockRendering.NextConnection', 'Blockly.blockRendering.OutputConnection', 'Blockly.blockRendering.PathObject', 'Blockly.blockRendering.PreviousConnection', 'Blockly.blockRendering.RenderInfo', 'Blockly.blockRendering.Renderer', 'Blockly.blockRendering.RoundCorner', 'Blockly.blockRendering.Row', 'Blockly.blockRendering.SpacerRow', 'Blockly.blockRendering.SquareCorner', 'Blockly.blockRendering.StatementInput', 'Blockly.blockRendering.TopRow', 'Blockly.blockRendering.Types', 'Blockly.blockRendering.debug', 'Blockly.registry', 'Blockly.utils.deprecation'], {'lang': 'es6', 'module': 'goog'});
goog.addDependency('../../core/renderers/common/constants.js', ['Blockly.blockRendering.ConstantProvider'], ['Blockly.ConnectionType', 'Blockly.utils.Svg', 'Blockly.utils.colour', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.parsing', 'Blockly.utils.svgPaths', 'Blockly.utils.userAgent'], {'lang': 'es6', 'module': 'goog'});
goog.addDependency('../../core/renderers/common/debug.js', ['Blockly.blockRendering.debug'], [], {'lang': 'es6', 'module': 'goog'});
goog.addDependency('../../core/renderers/common/debug.js', ['Blockly.blockRendering.debug'], ['Blockly.utils.deprecation'], {'lang': 'es6', 'module': 'goog'});
goog.addDependency('../../core/renderers/common/debugger.js', ['Blockly.blockRendering.Debug'], ['Blockly.ConnectionType', 'Blockly.FieldLabel', 'Blockly.blockRendering.Field', 'Blockly.blockRendering.InputConnection', 'Blockly.blockRendering.Types', 'Blockly.utils.Svg', 'Blockly.utils.dom'], {'lang': 'es6', 'module': 'goog'});
goog.addDependency('../../core/renderers/common/drawer.js', ['Blockly.blockRendering.Drawer'], ['Blockly.blockRendering.Connection', 'Blockly.blockRendering.Types', 'Blockly.blockRendering.debug', 'Blockly.utils.svgPaths'], {'lang': 'es6', 'module': 'goog'});
goog.addDependency('../../core/renderers/common/i_path_object.js', ['Blockly.blockRendering.IPathObject'], [], {'lang': 'es6', 'module': 'goog'});