blockly 7.20211209.2 → 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/xml.js
CHANGED
|
@@ -21,6 +21,8 @@ const utilsXml = goog.require('Blockly.utils.xml');
|
|
|
21
21
|
/* eslint-disable-next-line no-unused-vars */
|
|
22
22
|
const {Block} = goog.requireType('Blockly.Block');
|
|
23
23
|
/* eslint-disable-next-line no-unused-vars */
|
|
24
|
+
const {BlockSvg} = goog.requireType('Blockly.BlockSvg');
|
|
25
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
24
26
|
const {Connection} = goog.requireType('Blockly.Connection');
|
|
25
27
|
/* eslint-disable-next-line no-unused-vars */
|
|
26
28
|
const {Field} = goog.requireType('Blockly.Field');
|
|
@@ -396,7 +398,7 @@ exports.textToDom = textToDom;
|
|
|
396
398
|
* Clear the given workspace then decode an XML DOM and
|
|
397
399
|
* create blocks on the workspace.
|
|
398
400
|
* @param {!Element} xml XML DOM.
|
|
399
|
-
* @param {!
|
|
401
|
+
* @param {!WorkspaceSvg} workspace The workspace.
|
|
400
402
|
* @return {!Array<string>} An array containing new block IDs.
|
|
401
403
|
* @alias Blockly.Xml.clearWorkspaceAndLoadFromXml
|
|
402
404
|
*/
|
|
@@ -443,8 +445,9 @@ const domToWorkspace = function(xml, workspace) {
|
|
|
443
445
|
}
|
|
444
446
|
|
|
445
447
|
// Disable workspace resizes as an optimization.
|
|
446
|
-
|
|
447
|
-
|
|
448
|
+
// Assume it is rendered so we can check.
|
|
449
|
+
if (/** @type {!WorkspaceSvg} */ (workspace).setResizesEnabled) {
|
|
450
|
+
/** @type {!WorkspaceSvg} */ (workspace).setResizesEnabled(false);
|
|
448
451
|
}
|
|
449
452
|
let variablesFirst = true;
|
|
450
453
|
try {
|
|
@@ -479,7 +482,7 @@ const domToWorkspace = function(xml, workspace) {
|
|
|
479
482
|
'Missing require for Blockly.WorkspaceCommentSvg, ' +
|
|
480
483
|
'ignoring workspace comment.');
|
|
481
484
|
} else {
|
|
482
|
-
WorkspaceCommentSvg.
|
|
485
|
+
WorkspaceCommentSvg.fromXmlRendered(
|
|
483
486
|
xmlChildElement,
|
|
484
487
|
/** @type {!WorkspaceSvg} */ (workspace), width);
|
|
485
488
|
}
|
|
@@ -513,8 +516,8 @@ const domToWorkspace = function(xml, workspace) {
|
|
|
513
516
|
dom.stopTextWidthCache();
|
|
514
517
|
}
|
|
515
518
|
// Re-enable workspace resizing.
|
|
516
|
-
if (workspace.setResizesEnabled) {
|
|
517
|
-
workspace.setResizesEnabled(true);
|
|
519
|
+
if (/** @type {!WorkspaceSvg} */ (workspace).setResizesEnabled) {
|
|
520
|
+
/** @type {!WorkspaceSvg} */ (workspace).setResizesEnabled(true);
|
|
518
521
|
}
|
|
519
522
|
eventUtils.fire(new (eventUtils.get(eventUtils.FINISHED_LOADING))(workspace));
|
|
520
523
|
return newBlockIds;
|
|
@@ -530,12 +533,14 @@ exports.domToWorkspace = domToWorkspace;
|
|
|
530
533
|
* @alias Blockly.Xml.appendDomToWorkspace
|
|
531
534
|
*/
|
|
532
535
|
const appendDomToWorkspace = function(xml, workspace) {
|
|
533
|
-
|
|
534
|
-
// First check if we have a workspaceSvg, otherwise the blocks have no shape
|
|
536
|
+
// First check if we have a WorkspaceSvg, otherwise the blocks have no shape
|
|
535
537
|
// and the position does not matter.
|
|
536
|
-
|
|
537
|
-
|
|
538
|
+
// Assume it is rendered so we can check.
|
|
539
|
+
if (!/** @type {!WorkspaceSvg} */ (workspace).getBlocksBoundingBox) {
|
|
540
|
+
return domToWorkspace(xml, workspace);
|
|
538
541
|
}
|
|
542
|
+
|
|
543
|
+
const bbox = /** @type {!WorkspaceSvg} */ (workspace).getBlocksBoundingBox();
|
|
539
544
|
// Load the new blocks into the workspace and get the IDs of the new blocks.
|
|
540
545
|
const newBlockIds = domToWorkspace(xml, workspace);
|
|
541
546
|
if (bbox && bbox.top !== bbox.bottom) { // check if any previous block
|
|
@@ -599,10 +604,10 @@ const domToBlock = function(xmlBlock, workspace) {
|
|
|
599
604
|
try {
|
|
600
605
|
topBlock = domToBlockHeadless(xmlBlock, workspace);
|
|
601
606
|
// Generate list of all blocks.
|
|
602
|
-
const blocks = topBlock.getDescendants(false);
|
|
603
607
|
if (workspace.rendered) {
|
|
604
|
-
|
|
605
|
-
topBlock.
|
|
608
|
+
const topBlockSvg = /** @type {!BlockSvg} */ (topBlock);
|
|
609
|
+
const blocks = topBlock.getDescendants(false);
|
|
610
|
+
topBlockSvg.setConnectionTracking(false);
|
|
606
611
|
// Render each block.
|
|
607
612
|
for (let i = blocks.length - 1; i >= 0; i--) {
|
|
608
613
|
blocks[i].initSvg();
|
|
@@ -613,15 +618,16 @@ const domToBlock = function(xmlBlock, workspace) {
|
|
|
613
618
|
// Populating the connection database may be deferred until after the
|
|
614
619
|
// blocks have rendered.
|
|
615
620
|
setTimeout(function() {
|
|
616
|
-
if (!
|
|
617
|
-
|
|
621
|
+
if (!topBlockSvg.disposed) {
|
|
622
|
+
topBlockSvg.setConnectionTracking(true);
|
|
618
623
|
}
|
|
619
624
|
}, 1);
|
|
620
|
-
|
|
625
|
+
topBlockSvg.updateDisabled();
|
|
621
626
|
// Allow the scrollbars to resize and move based on the new contents.
|
|
622
627
|
// TODO(@picklesrus): #387. Remove when domToBlock avoids resizing.
|
|
623
|
-
workspace.resizeContents();
|
|
628
|
+
/** @type {!WorkspaceSvg} */ (workspace).resizeContents();
|
|
624
629
|
} else {
|
|
630
|
+
const blocks = topBlock.getDescendants(false);
|
|
625
631
|
for (let i = blocks.length - 1; i >= 0; i--) {
|
|
626
632
|
blocks[i].initModel();
|
|
627
633
|
}
|
|
@@ -778,8 +784,9 @@ const applyCommentTagNodes = function(xmlChildren, block) {
|
|
|
778
784
|
}
|
|
779
785
|
|
|
780
786
|
if (pinned && block.getCommentIcon && !block.isInFlyout) {
|
|
787
|
+
const blockSvg = /** @type {BlockSvg} */ (block);
|
|
781
788
|
setTimeout(function() {
|
|
782
|
-
|
|
789
|
+
blockSvg.getCommentIcon().setVisible(true);
|
|
783
790
|
}, 1);
|
|
784
791
|
}
|
|
785
792
|
}
|
|
@@ -953,8 +960,11 @@ const domToBlockHeadless = function(
|
|
|
953
960
|
applyNextTagNodes(xmlChildNameMap.next, workspace, block);
|
|
954
961
|
|
|
955
962
|
if (shouldCallInitSvg) {
|
|
956
|
-
//
|
|
957
|
-
|
|
963
|
+
// This shouldn't even be called here
|
|
964
|
+
// (ref: https://github.com/google/blockly/pull/4296#issuecomment-884226021
|
|
965
|
+
// But the XML serializer/deserializer is iceboxed so I'm not going to fix
|
|
966
|
+
// it.
|
|
967
|
+
(/** @type {!BlockSvg} */ (block)).initSvg();
|
|
958
968
|
}
|
|
959
969
|
|
|
960
970
|
const inline = xmlBlock.getAttribute('inline');
|