blockly 7.20211209.4 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blockly.d.ts +18963 -18432
- package/blockly.min.js +852 -844
- package/blockly_compressed.js +669 -664
- package/blockly_compressed.js.map +1 -1
- package/blocks/blocks.js +47 -0
- package/blocks/colour.js +13 -3
- package/blocks/lists.js +22 -13
- package/blocks/logic.js +13 -3
- package/blocks/loops.js +24 -11
- package/blocks/math.js +12 -3
- package/blocks/procedures.js +41 -27
- package/blocks/text.js +22 -13
- package/blocks/variables.js +14 -3
- package/blocks/variables_dynamic.js +13 -3
- package/blocks_compressed.js +146 -141
- package/blocks_compressed.js.map +1 -1
- package/core/block.js +1869 -1814
- package/core/block_drag_surface.js +201 -200
- package/core/block_dragger.js +377 -373
- package/core/block_svg.js +1593 -1479
- package/core/blockly.js +8 -22
- package/core/blocks.js +9 -2
- package/core/browser_events.js +22 -5
- package/core/bubble.js +841 -797
- package/core/bubble_dragger.js +213 -206
- package/core/bump_objects.js +2 -2
- package/core/clipboard.js +9 -9
- package/core/comment.js +353 -332
- package/core/common.js +46 -17
- package/core/component_manager.js +181 -174
- package/core/config.js +87 -0
- package/core/connection.js +595 -584
- package/core/connection_checker.js +242 -244
- package/core/connection_db.js +235 -230
- package/core/contextmenu.js +9 -6
- package/core/contextmenu_items.js +1 -2
- package/core/contextmenu_registry.js +93 -89
- package/core/css.js +474 -474
- package/core/delete_area.js +45 -42
- package/core/drag_target.js +57 -56
- package/core/dropdowndiv.js +153 -163
- package/core/events/events.js +2 -2
- package/core/events/events_abstract.js +89 -77
- package/core/events/events_block_base.js +37 -36
- package/core/events/events_block_change.js +130 -124
- package/core/events/events_block_create.js +73 -71
- package/core/events/events_block_delete.js +84 -82
- package/core/events/events_block_drag.js +50 -49
- package/core/events/events_block_move.js +147 -140
- package/core/events/events_bubble_open.js +51 -50
- package/core/events/events_click.js +48 -44
- package/core/events/events_comment_base.js +72 -69
- package/core/events/events_comment_change.js +63 -61
- package/core/events/events_comment_create.js +44 -42
- package/core/events/events_comment_delete.js +42 -40
- package/core/events/events_comment_move.js +106 -104
- package/core/events/events_marker_move.js +65 -64
- package/core/events/events_selected.js +46 -45
- package/core/events/events_theme_change.js +36 -35
- package/core/events/events_toolbox_item_select.js +46 -45
- package/core/events/events_trashcan_open.js +37 -36
- package/core/events/events_ui.js +47 -46
- package/core/events/events_ui_base.js +30 -29
- package/core/events/events_var_base.js +37 -36
- package/core/events/events_var_create.js +50 -48
- package/core/events/events_var_delete.js +50 -48
- package/core/events/events_var_rename.js +51 -49
- package/core/events/events_viewport.js +66 -65
- package/core/events/utils.js +29 -14
- package/core/events/workspace_events.js +49 -55
- package/core/extensions.js +4 -3
- package/core/field.js +1061 -997
- package/core/field_angle.js +462 -442
- package/core/field_checkbox.js +194 -182
- package/core/field_colour.js +519 -505
- package/core/field_dropdown.js +617 -598
- package/core/field_image.js +229 -220
- package/core/field_label.js +102 -91
- package/core/field_label_serializable.js +42 -41
- package/core/field_multilineinput.js +372 -358
- package/core/field_number.js +272 -253
- package/core/field_textinput.js +499 -467
- package/core/field_variable.js +458 -420
- package/core/flyout_base.js +1005 -952
- package/core/flyout_button.js +277 -260
- package/core/flyout_horizontal.js +304 -302
- package/core/flyout_metrics_manager.js +64 -64
- package/core/flyout_vertical.js +306 -300
- package/core/generator.js +459 -446
- package/core/gesture.js +829 -813
- package/core/grid.js +166 -163
- package/core/icon.js +168 -159
- package/core/inject.js +7 -5
- package/core/input.js +257 -248
- package/core/insertion_marker_manager.js +655 -624
- package/core/internal_constants.js +0 -129
- package/core/keyboard_nav/ast_node.js +605 -596
- package/core/keyboard_nav/basic_cursor.js +166 -165
- package/core/keyboard_nav/cursor.js +99 -97
- package/core/keyboard_nav/marker.js +83 -79
- package/core/keyboard_nav/tab_navigate_cursor.js +18 -23
- package/core/marker_manager.js +153 -141
- package/core/menu.js +377 -372
- package/core/menuitem.js +223 -217
- package/core/metrics_manager.js +403 -390
- package/core/mutator.js +468 -437
- package/core/names.js +229 -188
- package/core/options.js +290 -284
- package/core/procedures.js +29 -17
- package/core/registry.js +19 -16
- package/core/rendered_connection.js +482 -463
- package/core/renderers/common/block_rendering.js +9 -3
- package/core/renderers/common/constants.js +1119 -1112
- package/core/renderers/common/debug.js +14 -0
- package/core/renderers/common/debugger.js +338 -316
- package/core/renderers/common/drawer.js +380 -370
- package/core/renderers/common/i_path_object.js +2 -2
- package/core/renderers/common/info.js +626 -618
- package/core/renderers/common/marker_svg.js +579 -541
- package/core/renderers/common/path_object.js +203 -200
- package/core/renderers/common/renderer.js +220 -218
- package/core/renderers/geras/constants.js +36 -36
- package/core/renderers/geras/drawer.js +155 -147
- package/core/renderers/geras/highlight_constants.js +244 -238
- package/core/renderers/geras/highlighter.js +231 -179
- package/core/renderers/geras/info.js +392 -369
- package/core/renderers/geras/measurables/inline_input.js +25 -19
- package/core/renderers/geras/measurables/statement_input.js +23 -17
- package/core/renderers/geras/path_object.js +106 -121
- package/core/renderers/geras/renderer.js +96 -98
- package/core/renderers/measurables/base.js +30 -18
- package/core/renderers/measurables/bottom_row.js +83 -80
- package/core/renderers/measurables/connection.js +22 -15
- package/core/renderers/measurables/external_value_input.js +35 -22
- package/core/renderers/measurables/field.js +35 -20
- package/core/renderers/measurables/hat.js +18 -13
- package/core/renderers/measurables/icon.js +24 -17
- package/core/renderers/measurables/in_row_spacer.js +15 -13
- package/core/renderers/measurables/inline_input.js +43 -33
- package/core/renderers/measurables/input_connection.js +41 -28
- package/core/renderers/measurables/input_row.js +50 -44
- package/core/renderers/measurables/jagged_edge.js +14 -12
- package/core/renderers/measurables/next_connection.js +16 -14
- package/core/renderers/measurables/output_connection.js +26 -20
- package/core/renderers/measurables/previous_connection.js +16 -15
- package/core/renderers/measurables/round_corner.js +20 -18
- package/core/renderers/measurables/row.js +184 -168
- package/core/renderers/measurables/spacer_row.js +38 -23
- package/core/renderers/measurables/square_corner.js +18 -16
- package/core/renderers/measurables/statement_input.js +23 -20
- package/core/renderers/measurables/top_row.js +88 -85
- package/core/renderers/minimalist/constants.js +8 -7
- package/core/renderers/minimalist/drawer.js +11 -10
- package/core/renderers/minimalist/info.js +18 -18
- package/core/renderers/minimalist/renderer.js +40 -39
- package/core/renderers/thrasos/info.js +258 -248
- package/core/renderers/thrasos/renderer.js +20 -20
- package/core/renderers/zelos/constants.js +898 -873
- package/core/renderers/zelos/drawer.js +186 -169
- package/core/renderers/zelos/info.js +502 -479
- package/core/renderers/zelos/marker_svg.js +129 -115
- package/core/renderers/zelos/measurables/bottom_row.js +31 -30
- package/core/renderers/zelos/measurables/inputs.js +22 -21
- package/core/renderers/zelos/measurables/row_elements.js +14 -13
- package/core/renderers/zelos/measurables/top_row.js +34 -33
- package/core/renderers/zelos/path_object.js +181 -180
- package/core/renderers/zelos/renderer.js +91 -92
- package/core/scrollbar.js +759 -713
- package/core/scrollbar_pair.js +250 -245
- package/core/serialization/blocks.js +19 -9
- package/core/serialization/workspaces.js +3 -2
- package/core/shortcut_registry.js +286 -277
- package/core/sprites.js +31 -0
- package/core/theme.js +135 -141
- package/core/theme_manager.js +147 -143
- package/core/toolbox/category.js +602 -576
- package/core/toolbox/collapsible_category.js +226 -227
- package/core/toolbox/separator.js +70 -61
- package/core/toolbox/toolbox.js +934 -927
- package/core/toolbox/toolbox_item.js +115 -99
- package/core/tooltip.js +108 -35
- package/core/touch.js +8 -3
- package/core/touch_gesture.js +254 -251
- package/core/trashcan.js +606 -595
- package/core/utils/coordinate.js +97 -95
- package/core/utils/dom.js +2 -2
- package/core/utils/global.js +2 -0
- package/core/utils/rect.js +41 -37
- package/core/utils/sentinel.js +25 -0
- package/core/utils/size.js +30 -27
- package/core/utils/svg.js +18 -16
- package/core/variable_map.js +325 -341
- package/core/variable_model.js +55 -54
- package/core/variables.js +9 -2
- package/core/variables_dynamic.js +3 -1
- package/core/warning.js +126 -120
- package/core/widgetdiv.js +4 -4
- package/core/workspace.js +685 -664
- package/core/workspace_audio.js +124 -118
- package/core/workspace_comment.js +308 -298
- package/core/workspace_comment_svg.js +1029 -951
- package/core/workspace_drag_surface_svg.js +147 -140
- package/core/workspace_dragger.js +70 -71
- package/core/workspace_svg.js +2322 -2297
- package/core/xml.js +30 -20
- package/core/zoom_controls.js +431 -439
- package/dart_compressed.js +40 -43
- package/dart_compressed.js.map +1 -1
- package/generators/dart/colour.js +56 -64
- package/generators/dart/lists.js +61 -50
- package/generators/dart/math.js +160 -148
- package/generators/dart/text.js +83 -61
- package/generators/javascript/colour.js +37 -34
- package/generators/javascript/lists.js +50 -43
- package/generators/javascript/math.js +123 -139
- package/generators/javascript/text.js +67 -81
- package/generators/lua/colour.js +25 -23
- package/generators/lua/lists.js +97 -69
- package/generators/lua/logic.js +1 -2
- package/generators/lua/math.js +182 -144
- package/generators/lua/text.js +116 -99
- package/generators/php/colour.js +38 -32
- package/generators/php/lists.js +109 -89
- package/generators/php/math.js +90 -81
- package/generators/php/text.js +63 -61
- package/generators/python/colour.js +18 -18
- package/generators/python/lists.js +38 -30
- package/generators/python/loops.js +12 -8
- package/generators/python/math.js +104 -106
- package/generators/python/text.js +34 -30
- package/javascript_compressed.js +37 -39
- package/javascript_compressed.js.map +1 -1
- package/lua_compressed.js +39 -42
- package/lua_compressed.js.map +1 -1
- package/msg/az.js +2 -2
- package/msg/be.js +4 -4
- package/msg/cs.js +15 -15
- package/msg/de.js +1 -1
- package/msg/diq.js +1 -1
- package/msg/eo.js +1 -1
- package/msg/es.js +1 -1
- package/msg/fa.js +1 -1
- package/msg/fr.js +4 -4
- package/msg/he.js +1 -1
- package/msg/hr.js +2 -2
- package/msg/hy.js +2 -2
- package/msg/id.js +12 -12
- package/msg/inh.js +14 -14
- package/msg/ja.js +7 -7
- package/msg/lv.js +29 -29
- package/msg/pa.js +3 -3
- package/msg/smn.js +436 -0
- package/msg/te.js +1 -1
- package/msg/yue.js +1 -1
- package/msg/zh-hans.js +3 -3
- package/msg/zh-hant.js +3 -3
- package/package.json +7 -6
- package/php_compressed.js +38 -42
- package/php_compressed.js.map +1 -1
- package/python_compressed.js +26 -25
- package/python_compressed.js.map +1 -1
- package/blocks/all.js +0 -23
package/core/procedures.js
CHANGED
|
@@ -15,16 +15,20 @@
|
|
|
15
15
|
*/
|
|
16
16
|
goog.module('Blockly.Procedures');
|
|
17
17
|
|
|
18
|
-
/* eslint-disable-next-line no-unused-vars */
|
|
19
|
-
const Abstract = goog.requireType('Blockly.Events.Abstract');
|
|
20
18
|
const Variables = goog.require('Blockly.Variables');
|
|
21
19
|
const Xml = goog.require('Blockly.Xml');
|
|
22
20
|
const eventUtils = goog.require('Blockly.Events.utils');
|
|
23
21
|
const utilsXml = goog.require('Blockly.utils.xml');
|
|
22
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
23
|
+
const {Abstract} = goog.requireType('Blockly.Events.Abstract');
|
|
24
24
|
const {Blocks} = goog.require('Blockly.blocks');
|
|
25
25
|
/* eslint-disable-next-line no-unused-vars */
|
|
26
26
|
const {Block} = goog.requireType('Blockly.Block');
|
|
27
27
|
/* eslint-disable-next-line no-unused-vars */
|
|
28
|
+
const {BubbleOpen} = goog.requireType('Blockly.Events.BubbleOpen');
|
|
29
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
30
|
+
const {BlockSvg} = goog.requireType('Blockly.BlockSvg');
|
|
31
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
28
32
|
const {Field} = goog.requireType('Blockly.Field');
|
|
29
33
|
const {Msg} = goog.require('Blockly.Msg');
|
|
30
34
|
const {Names} = goog.require('Blockly.Names');
|
|
@@ -160,8 +164,9 @@ const isNameUsed = function(name, workspace, opt_exclude) {
|
|
|
160
164
|
if (blocks[i] === opt_exclude) {
|
|
161
165
|
continue;
|
|
162
166
|
}
|
|
163
|
-
|
|
164
|
-
|
|
167
|
+
// Assume it is a procedure block so we can check.
|
|
168
|
+
const procedureBlock = /** @type {!ProcedureBlock} */ (blocks[i]);
|
|
169
|
+
if (procedureBlock.getProcedureDef) {
|
|
165
170
|
const procName = procedureBlock.getProcedureDef();
|
|
166
171
|
if (Names.equals(procName[0], name)) {
|
|
167
172
|
return true;
|
|
@@ -191,8 +196,9 @@ const rename = function(name) {
|
|
|
191
196
|
// Rename any callers.
|
|
192
197
|
const blocks = this.getSourceBlock().workspace.getAllBlocks(false);
|
|
193
198
|
for (let i = 0; i < blocks.length; i++) {
|
|
194
|
-
|
|
195
|
-
|
|
199
|
+
// Assume it is a procedure so we can check.
|
|
200
|
+
const procedureBlock = /** @type {!ProcedureBlock} */ (blocks[i]);
|
|
201
|
+
if (procedureBlock.renameProcedure) {
|
|
196
202
|
procedureBlock.renameProcedure(
|
|
197
203
|
/** @type {string} */ (oldName), legalName);
|
|
198
204
|
}
|
|
@@ -204,7 +210,7 @@ exports.rename = rename;
|
|
|
204
210
|
|
|
205
211
|
/**
|
|
206
212
|
* Construct the blocks required by the flyout for the procedure category.
|
|
207
|
-
* @param {!
|
|
213
|
+
* @param {!WorkspaceSvg} workspace The workspace containing procedures.
|
|
208
214
|
* @return {!Array<!Element>} Array of XML block elements.
|
|
209
215
|
* @alias Blockly.Procedures.flyoutCategory
|
|
210
216
|
*/
|
|
@@ -291,7 +297,7 @@ exports.flyoutCategory = flyoutCategory;
|
|
|
291
297
|
/**
|
|
292
298
|
* Updates the procedure mutator's flyout so that the arg block is not a
|
|
293
299
|
* duplicate of another arg.
|
|
294
|
-
* @param {!
|
|
300
|
+
* @param {!WorkspaceSvg} workspace The procedure mutator's workspace. This
|
|
295
301
|
* workspace's flyout is what is being updated.
|
|
296
302
|
*/
|
|
297
303
|
const updateMutatorFlyout = function(workspace) {
|
|
@@ -325,17 +331,21 @@ const updateMutatorFlyout = function(workspace) {
|
|
|
325
331
|
* @package
|
|
326
332
|
*/
|
|
327
333
|
const mutatorOpenListener = function(e) {
|
|
328
|
-
if (
|
|
329
|
-
e.isOpen)) {
|
|
334
|
+
if (e.type !== eventUtils.BUBBLE_OPEN) {
|
|
330
335
|
return;
|
|
331
336
|
}
|
|
332
|
-
const
|
|
333
|
-
|
|
337
|
+
const bubbleEvent = /** @type {!BubbleOpen} */ (e);
|
|
338
|
+
if (!(bubbleEvent.bubbleType === 'mutator' && bubbleEvent.isOpen)) {
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
341
|
+
const workspaceId = /** @type {string} */ (bubbleEvent.workspaceId);
|
|
342
|
+
const block = /** @type {!BlockSvg} */
|
|
343
|
+
(Workspace.getById(workspaceId).getBlockById(bubbleEvent.blockId));
|
|
334
344
|
const type = block.type;
|
|
335
345
|
if (type !== 'procedures_defnoreturn' && type !== 'procedures_defreturn') {
|
|
336
346
|
return;
|
|
337
347
|
}
|
|
338
|
-
const workspace = block.mutator.getWorkspace();
|
|
348
|
+
const workspace = /** @type {!WorkspaceSvg} */ (block.mutator.getWorkspace());
|
|
339
349
|
updateMutatorFlyout(workspace);
|
|
340
350
|
workspace.addChangeListener(mutatorChangeListener);
|
|
341
351
|
};
|
|
@@ -370,8 +380,9 @@ const getCallers = function(name, workspace) {
|
|
|
370
380
|
const blocks = workspace.getAllBlocks(false);
|
|
371
381
|
// Iterate through every block and check the name.
|
|
372
382
|
for (let i = 0; i < blocks.length; i++) {
|
|
373
|
-
|
|
374
|
-
|
|
383
|
+
// Assume it is a procedure block so we can check.
|
|
384
|
+
const procedureBlock = /** @type {!ProcedureBlock} */ (blocks[i]);
|
|
385
|
+
if (procedureBlock.getProcedureCall) {
|
|
375
386
|
const procName = procedureBlock.getProcedureCall();
|
|
376
387
|
// Procedure name may be null if the block is only half-built.
|
|
377
388
|
if (procName && Names.equals(procName, name)) {
|
|
@@ -427,8 +438,9 @@ const getDefinition = function(name, workspace) {
|
|
|
427
438
|
// rely on getProcedureDef.
|
|
428
439
|
const blocks = workspace.getAllBlocks(false);
|
|
429
440
|
for (let i = 0; i < blocks.length; i++) {
|
|
430
|
-
|
|
431
|
-
|
|
441
|
+
// Assume it is a procedure block so we can check.
|
|
442
|
+
const procedureBlock = /** @type {!ProcedureBlock} */ (blocks[i]);
|
|
443
|
+
if (procedureBlock.getProcedureDef) {
|
|
432
444
|
const tuple = procedureBlock.getProcedureDef();
|
|
433
445
|
if (tuple && Names.equals(tuple[0], name)) {
|
|
434
446
|
return blocks[i]; // Can't use procedureBlock var due to type check.
|
package/core/registry.js
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
goog.module('Blockly.registry');
|
|
19
19
|
|
|
20
20
|
/* eslint-disable-next-line no-unused-vars */
|
|
21
|
-
const Abstract = goog.requireType('Blockly.Events.Abstract');
|
|
21
|
+
const {Abstract} = goog.requireType('Blockly.Events.Abstract');
|
|
22
22
|
/* eslint-disable-next-line no-unused-vars */
|
|
23
23
|
const {Cursor} = goog.requireType('Blockly.Cursor');
|
|
24
24
|
/* eslint-disable-next-line no-unused-vars */
|
|
@@ -73,28 +73,31 @@ exports.DEFAULT = DEFAULT;
|
|
|
73
73
|
|
|
74
74
|
/**
|
|
75
75
|
* A name with the type of the element stored in the generic.
|
|
76
|
-
* @param {string} name The name of the registry type.
|
|
77
|
-
* @constructor
|
|
78
76
|
* @template T
|
|
79
77
|
* @alias Blockly.registry.Type
|
|
80
78
|
*/
|
|
81
|
-
|
|
79
|
+
class Type {
|
|
82
80
|
/**
|
|
83
|
-
* @
|
|
84
|
-
* @private
|
|
81
|
+
* @param {string} name The name of the registry type.
|
|
85
82
|
*/
|
|
86
|
-
|
|
87
|
-
|
|
83
|
+
constructor(name) {
|
|
84
|
+
/**
|
|
85
|
+
* @type {string}
|
|
86
|
+
* @private
|
|
87
|
+
*/
|
|
88
|
+
this.name_ = name;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Returns the name of the type.
|
|
93
|
+
* @return {string} The name.
|
|
94
|
+
*/
|
|
95
|
+
toString() {
|
|
96
|
+
return this.name_;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
88
99
|
exports.Type = Type;
|
|
89
100
|
|
|
90
|
-
/**
|
|
91
|
-
* Returns the name of the type.
|
|
92
|
-
* @return {string} The name.
|
|
93
|
-
* @override
|
|
94
|
-
*/
|
|
95
|
-
Type.prototype.toString = function() {
|
|
96
|
-
return this.name_;
|
|
97
|
-
};
|
|
98
101
|
|
|
99
102
|
/** @type {!Type<IConnectionChecker>} */
|
|
100
103
|
Type.CONNECTION_CHECKER = new Type('connectionChecker');
|