blockly 7.20211209.4 → 8.0.1
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 +5 -4
- package/blockly_compressed.js +4 -3
- 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 +45 -32
- package/blocks/text.js +22 -13
- package/blocks/variables.js +14 -3
- package/blocks/variables_dynamic.js +13 -3
- package/blocks_compressed.js +1 -1
- 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 +26 -10
- 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/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/msg/smn.js +436 -0
- package/package.json +7 -6
- package/blocks/all.js +0 -23
package/core/delete_area.js
CHANGED
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
*/
|
|
19
19
|
goog.module('Blockly.DeleteArea');
|
|
20
20
|
|
|
21
|
-
const object = goog.require('Blockly.utils.object');
|
|
22
21
|
const {BlockSvg} = goog.require('Blockly.BlockSvg');
|
|
23
22
|
const {DragTarget} = goog.require('Blockly.DragTarget');
|
|
24
23
|
/* eslint-disable-next-line no-unused-vars */
|
|
@@ -32,53 +31,57 @@ const {IDraggable} = goog.requireType('Blockly.IDraggable');
|
|
|
32
31
|
* dropped on top of it.
|
|
33
32
|
* @extends {DragTarget}
|
|
34
33
|
* @implements {IDeleteArea}
|
|
35
|
-
* @constructor
|
|
36
34
|
* @alias Blockly.DeleteArea
|
|
37
35
|
*/
|
|
38
|
-
|
|
39
|
-
DeleteArea.superClass_.constructor.call(this);
|
|
40
|
-
|
|
36
|
+
class DeleteArea extends DragTarget {
|
|
41
37
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* This property is not updated after the block or bubble is deleted.
|
|
45
|
-
* @type {boolean}
|
|
46
|
-
* @protected
|
|
38
|
+
* Constructor for DeleteArea. Should not be called directly, only by a
|
|
39
|
+
* subclass.
|
|
47
40
|
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
object.inherits(DeleteArea, DragTarget);
|
|
41
|
+
constructor() {
|
|
42
|
+
super();
|
|
51
43
|
|
|
52
|
-
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
* another.
|
|
61
|
-
* @return {boolean} Whether the element provided would be deleted if dropped on
|
|
62
|
-
* this area.
|
|
63
|
-
*/
|
|
64
|
-
DeleteArea.prototype.wouldDelete = function(element, couldConnect) {
|
|
65
|
-
if (element instanceof BlockSvg) {
|
|
66
|
-
const block = /** @type {BlockSvg} */ (element);
|
|
67
|
-
const couldDeleteBlock = !block.getParent() && block.isDeletable();
|
|
68
|
-
this.updateWouldDelete_(couldDeleteBlock && !couldConnect);
|
|
69
|
-
} else {
|
|
70
|
-
this.updateWouldDelete_(element.isDeletable());
|
|
44
|
+
/**
|
|
45
|
+
* Whether the last block or bubble dragged over this delete area would be
|
|
46
|
+
* deleted if dropped on this component.
|
|
47
|
+
* This property is not updated after the block or bubble is deleted.
|
|
48
|
+
* @type {boolean}
|
|
49
|
+
* @protected
|
|
50
|
+
*/
|
|
51
|
+
this.wouldDelete_ = false;
|
|
71
52
|
}
|
|
72
|
-
return this.wouldDelete_;
|
|
73
|
-
};
|
|
74
53
|
|
|
75
|
-
/**
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
54
|
+
/**
|
|
55
|
+
* Returns whether the provided block or bubble would be deleted if dropped on
|
|
56
|
+
* this area.
|
|
57
|
+
* This method should check if the element is deletable and is always called
|
|
58
|
+
* before onDragEnter/onDragOver/onDragExit.
|
|
59
|
+
* @param {!IDraggable} element The block or bubble currently being
|
|
60
|
+
* dragged.
|
|
61
|
+
* @param {boolean} couldConnect Whether the element could could connect to
|
|
62
|
+
* another.
|
|
63
|
+
* @return {boolean} Whether the element provided would be deleted if dropped
|
|
64
|
+
* on this area.
|
|
65
|
+
*/
|
|
66
|
+
wouldDelete(element, couldConnect) {
|
|
67
|
+
if (element instanceof BlockSvg) {
|
|
68
|
+
const block = /** @type {BlockSvg} */ (element);
|
|
69
|
+
const couldDeleteBlock = !block.getParent() && block.isDeletable();
|
|
70
|
+
this.updateWouldDelete_(couldDeleteBlock && !couldConnect);
|
|
71
|
+
} else {
|
|
72
|
+
this.updateWouldDelete_(element.isDeletable());
|
|
73
|
+
}
|
|
74
|
+
return this.wouldDelete_;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Updates the internal wouldDelete_ state.
|
|
79
|
+
* @param {boolean} wouldDelete The new value for the wouldDelete state.
|
|
80
|
+
* @protected
|
|
81
|
+
*/
|
|
82
|
+
updateWouldDelete_(wouldDelete) {
|
|
83
|
+
this.wouldDelete_ = wouldDelete;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
83
86
|
|
|
84
87
|
exports.DeleteArea = DeleteArea;
|
package/core/drag_target.js
CHANGED
|
@@ -30,68 +30,69 @@ const {Rect} = goog.requireType('Blockly.utils.Rect');
|
|
|
30
30
|
* Abstract class for a component with custom behaviour when a block or bubble
|
|
31
31
|
* is dragged over or dropped on top of it.
|
|
32
32
|
* @implements {IDragTarget}
|
|
33
|
-
* @constructor
|
|
34
33
|
* @alias Blockly.DragTarget
|
|
35
34
|
*/
|
|
36
|
-
|
|
35
|
+
class DragTarget {
|
|
36
|
+
/**
|
|
37
|
+
* Handles when a cursor with a block or bubble enters this drag target.
|
|
38
|
+
* @param {!IDraggable} _dragElement The block or bubble currently being
|
|
39
|
+
* dragged.
|
|
40
|
+
*/
|
|
41
|
+
onDragEnter(_dragElement) {
|
|
42
|
+
// no-op
|
|
43
|
+
}
|
|
37
44
|
|
|
38
|
-
/**
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Handles when a cursor with a block or bubble is dragged over this drag
|
|
47
|
+
* target.
|
|
48
|
+
* @param {!IDraggable} _dragElement The block or bubble currently being
|
|
49
|
+
* dragged.
|
|
50
|
+
*/
|
|
51
|
+
onDragOver(_dragElement) {
|
|
52
|
+
// no-op
|
|
53
|
+
}
|
|
45
54
|
|
|
46
|
-
/**
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
55
|
+
/**
|
|
56
|
+
* Handles when a cursor with a block or bubble exits this drag target.
|
|
57
|
+
* @param {!IDraggable} _dragElement The block or bubble currently being
|
|
58
|
+
* dragged.
|
|
59
|
+
*/
|
|
60
|
+
onDragExit(_dragElement) {
|
|
61
|
+
// no-op
|
|
62
|
+
}
|
|
54
63
|
|
|
55
|
-
/**
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
+
/**
|
|
65
|
+
* Handles when a block or bubble is dropped on this component.
|
|
66
|
+
* Should not handle delete here.
|
|
67
|
+
* @param {!IDraggable} _dragElement The block or bubble currently being
|
|
68
|
+
* dragged.
|
|
69
|
+
*/
|
|
70
|
+
onDrop(_dragElement) {
|
|
71
|
+
// no-op
|
|
72
|
+
}
|
|
64
73
|
|
|
65
|
-
/**
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Handles when a block or bubble is dropped on this component.
|
|
76
|
-
* Should not handle delete here.
|
|
77
|
-
* @param {!IDraggable} _dragElement The block or bubble currently being
|
|
78
|
-
* dragged.
|
|
79
|
-
*/
|
|
80
|
-
DragTarget.prototype.onDrop = function(_dragElement) {
|
|
81
|
-
// no-op
|
|
82
|
-
};
|
|
74
|
+
/**
|
|
75
|
+
* Returns the bounding rectangle of the drag target area in pixel units
|
|
76
|
+
* relative to the Blockly injection div.
|
|
77
|
+
* @return {?Rect} The component's bounding box. Null if drag
|
|
78
|
+
* target area should be ignored.
|
|
79
|
+
*/
|
|
80
|
+
getClientRect() {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
83
|
|
|
84
|
-
/**
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
84
|
+
/**
|
|
85
|
+
* Returns whether the provided block or bubble should not be moved after
|
|
86
|
+
* being dropped on this component. If true, the element will return to where
|
|
87
|
+
* it was when the drag started.
|
|
88
|
+
* @param {!IDraggable} _dragElement The block or bubble currently being
|
|
89
|
+
* dragged.
|
|
90
|
+
* @return {boolean} Whether the block or bubble provided should be returned
|
|
91
|
+
* to drag start.
|
|
92
|
+
*/
|
|
93
|
+
shouldPreventMove(_dragElement) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
96
97
|
|
|
97
98
|
exports.DragTarget = DragTarget;
|