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/utils/coordinate.js
CHANGED
|
@@ -21,116 +21,118 @@ goog.module('Blockly.utils.Coordinate');
|
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Class for representing coordinates and positions.
|
|
24
|
-
* @param {number} x Left.
|
|
25
|
-
* @param {number} y Top.
|
|
26
|
-
* @struct
|
|
27
|
-
* @constructor
|
|
28
24
|
* @alias Blockly.utils.Coordinate
|
|
29
25
|
*/
|
|
30
|
-
const Coordinate =
|
|
26
|
+
const Coordinate = class {
|
|
31
27
|
/**
|
|
32
|
-
*
|
|
33
|
-
* @
|
|
28
|
+
* @param {number} x Left.
|
|
29
|
+
* @param {number} y Top.
|
|
34
30
|
*/
|
|
35
|
-
|
|
31
|
+
constructor(x, y) {
|
|
32
|
+
/**
|
|
33
|
+
* X-value
|
|
34
|
+
* @type {number}
|
|
35
|
+
*/
|
|
36
|
+
this.x = x;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Y-value
|
|
40
|
+
* @type {number}
|
|
41
|
+
*/
|
|
42
|
+
this.y = y;
|
|
43
|
+
}
|
|
36
44
|
|
|
37
45
|
/**
|
|
38
|
-
*
|
|
39
|
-
* @
|
|
46
|
+
* Creates a new copy of this coordinate.
|
|
47
|
+
* @return {!Coordinate} A copy of this coordinate.
|
|
40
48
|
*/
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Compares coordinates for equality.
|
|
46
|
-
* @param {?Coordinate} a A Coordinate.
|
|
47
|
-
* @param {?Coordinate} b A Coordinate.
|
|
48
|
-
* @return {boolean} True iff the coordinates are equal, or if both are null.
|
|
49
|
-
*/
|
|
50
|
-
Coordinate.equals = function(a, b) {
|
|
51
|
-
if (a === b) {
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
if (!a || !b) {
|
|
55
|
-
return false;
|
|
49
|
+
clone() {
|
|
50
|
+
return new Coordinate(this.x, this.y);
|
|
56
51
|
}
|
|
57
|
-
return a.x === b.x && a.y === b.y;
|
|
58
|
-
};
|
|
59
52
|
|
|
60
|
-
/**
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
};
|
|
53
|
+
/**
|
|
54
|
+
* Scales this coordinate by the given scale factor.
|
|
55
|
+
* @param {number} s The scale factor to use for both x and y dimensions.
|
|
56
|
+
* @return {!Coordinate} This coordinate after scaling.
|
|
57
|
+
*/
|
|
58
|
+
scale(s) {
|
|
59
|
+
this.x *= s;
|
|
60
|
+
this.y *= s;
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
71
63
|
|
|
72
|
-
/**
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
Coordinate
|
|
78
|
-
|
|
79
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Translates this coordinate by the given offsets.
|
|
66
|
+
* respectively.
|
|
67
|
+
* @param {number} tx The value to translate x by.
|
|
68
|
+
* @param {number} ty The value to translate y by.
|
|
69
|
+
* @return {!Coordinate} This coordinate after translating.
|
|
70
|
+
*/
|
|
71
|
+
translate(tx, ty) {
|
|
72
|
+
this.x += tx;
|
|
73
|
+
this.y += ty;
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
80
76
|
|
|
81
|
-
/**
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
77
|
+
/**
|
|
78
|
+
* Compares coordinates for equality.
|
|
79
|
+
* @param {?Coordinate} a A Coordinate.
|
|
80
|
+
* @param {?Coordinate} b A Coordinate.
|
|
81
|
+
* @return {boolean} True iff the coordinates are equal, or if both are null.
|
|
82
|
+
*/
|
|
83
|
+
static equals(a, b) {
|
|
84
|
+
if (a === b) {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
if (!a || !b) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
return a.x === b.x && a.y === b.y;
|
|
91
|
+
}
|
|
92
92
|
|
|
93
|
-
/**
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
93
|
+
/**
|
|
94
|
+
* Returns the distance between two coordinates.
|
|
95
|
+
* @param {!Coordinate} a A Coordinate.
|
|
96
|
+
* @param {!Coordinate} b A Coordinate.
|
|
97
|
+
* @return {number} The distance between `a` and `b`.
|
|
98
|
+
*/
|
|
99
|
+
static distance(a, b) {
|
|
100
|
+
const dx = a.x - b.x;
|
|
101
|
+
const dy = a.y - b.y;
|
|
102
|
+
return Math.sqrt(dx * dx + dy * dy);
|
|
103
|
+
}
|
|
103
104
|
|
|
104
|
-
/**
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
105
|
+
/**
|
|
106
|
+
* Returns the magnitude of a coordinate.
|
|
107
|
+
* @param {!Coordinate} a A Coordinate.
|
|
108
|
+
* @return {number} The distance between the origin and `a`.
|
|
109
|
+
*/
|
|
110
|
+
static magnitude(a) {
|
|
111
|
+
return Math.sqrt(a.x * a.x + a.y * a.y);
|
|
112
|
+
}
|
|
111
113
|
|
|
112
|
-
/**
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
Coordinate
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
114
|
+
/**
|
|
115
|
+
* Returns the difference between two coordinates as a new
|
|
116
|
+
* Coordinate.
|
|
117
|
+
* @param {!Coordinate|!SVGPoint} a An x/y coordinate.
|
|
118
|
+
* @param {!Coordinate|!SVGPoint} b An x/y coordinate.
|
|
119
|
+
* @return {!Coordinate} A Coordinate representing the difference
|
|
120
|
+
* between `a` and `b`.
|
|
121
|
+
*/
|
|
122
|
+
static difference(a, b) {
|
|
123
|
+
return new Coordinate(a.x - b.x, a.y - b.y);
|
|
124
|
+
}
|
|
122
125
|
|
|
123
|
-
/**
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
return this;
|
|
126
|
+
/**
|
|
127
|
+
* Returns the sum of two coordinates as a new Coordinate.
|
|
128
|
+
* @param {!Coordinate|!SVGPoint} a An x/y coordinate.
|
|
129
|
+
* @param {!Coordinate|!SVGPoint} b An x/y coordinate.
|
|
130
|
+
* @return {!Coordinate} A Coordinate representing the sum of
|
|
131
|
+
* the two coordinates.
|
|
132
|
+
*/
|
|
133
|
+
static sum(a, b) {
|
|
134
|
+
return new Coordinate(a.x + b.x, a.y + b.y);
|
|
135
|
+
}
|
|
134
136
|
};
|
|
135
137
|
|
|
136
138
|
exports.Coordinate = Coordinate;
|
package/core/utils/dom.js
CHANGED
|
@@ -403,11 +403,11 @@ const measureFontMetrics = function(text, fontSize, fontWeight, fontFamily) {
|
|
|
403
403
|
span.style.font = fontWeight + ' ' + fontSize + ' ' + fontFamily;
|
|
404
404
|
span.textContent = text;
|
|
405
405
|
|
|
406
|
-
const block = document.createElement('div');
|
|
406
|
+
const block = /** @type {!HTMLDivElement} */ (document.createElement('div'));
|
|
407
407
|
block.style.width = '1px';
|
|
408
408
|
block.style.height = 0;
|
|
409
409
|
|
|
410
|
-
const div = document.createElement('div');
|
|
410
|
+
const div = /** @type {!HTMLDivElement} */ (document.createElement('div'));
|
|
411
411
|
div.setAttribute('style', 'position: fixed; top: 0; left: 0; display: flex;');
|
|
412
412
|
div.appendChild(span);
|
|
413
413
|
div.appendChild(block);
|
package/core/utils/global.js
CHANGED
package/core/utils/rect.js
CHANGED
|
@@ -22,50 +22,54 @@ goog.module('Blockly.utils.Rect');
|
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Class for representing rectangular regions.
|
|
25
|
-
* @param {number} top Top.
|
|
26
|
-
* @param {number} bottom Bottom.
|
|
27
|
-
* @param {number} left Left.
|
|
28
|
-
* @param {number} right Right.
|
|
29
|
-
* @struct
|
|
30
|
-
* @constructor
|
|
31
25
|
* @alias Blockly.utils.Rect
|
|
32
26
|
*/
|
|
33
|
-
const Rect =
|
|
34
|
-
/**
|
|
35
|
-
|
|
27
|
+
const Rect = class {
|
|
28
|
+
/**
|
|
29
|
+
* @param {number} top Top.
|
|
30
|
+
* @param {number} bottom Bottom.
|
|
31
|
+
* @param {number} left Left.
|
|
32
|
+
* @param {number} right Right.
|
|
33
|
+
* @struct
|
|
34
|
+
*/
|
|
35
|
+
constructor(top, bottom, left, right) {
|
|
36
|
+
/** @type {number} */
|
|
37
|
+
this.top = top;
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
/** @type {number} */
|
|
40
|
+
this.bottom = bottom;
|
|
39
41
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
/** @type {number} */
|
|
43
|
+
this.left = left;
|
|
42
44
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
45
|
+
/** @type {number} */
|
|
46
|
+
this.right = right;
|
|
47
|
+
}
|
|
46
48
|
|
|
47
|
-
/**
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Tests whether this rectangle contains a x/y coordinate.
|
|
51
|
+
*
|
|
52
|
+
* @param {number} x The x coordinate to test for containment.
|
|
53
|
+
* @param {number} y The y coordinate to test for containment.
|
|
54
|
+
* @return {boolean} Whether this rectangle contains given coordinate.
|
|
55
|
+
*/
|
|
56
|
+
contains(x, y) {
|
|
57
|
+
return x >= this.left && x <= this.right && y >= this.top &&
|
|
58
|
+
y <= this.bottom;
|
|
59
|
+
}
|
|
57
60
|
|
|
58
|
-
/**
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Tests whether this rectangle intersects the provided rectangle.
|
|
63
|
+
* Assumes that the coordinate system increases going down and left.
|
|
64
|
+
* @param {!Rect} other The other rectangle to check for
|
|
65
|
+
* intersection with.
|
|
66
|
+
* @return {boolean} Whether this rectangle intersects the provided rectangle.
|
|
67
|
+
*/
|
|
68
|
+
intersects(other) {
|
|
69
|
+
return !(
|
|
70
|
+
this.left > other.right || this.right < other.left ||
|
|
71
|
+
this.top > other.bottom || this.bottom < other.top);
|
|
72
|
+
}
|
|
69
73
|
};
|
|
70
74
|
|
|
71
75
|
exports.Rect = Rect;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @fileoverview A type used to create flag values (e.g. SKIP_SETUP).
|
|
9
|
+
*/
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A type used to create flag values.
|
|
14
|
+
* @class
|
|
15
|
+
*/
|
|
16
|
+
goog.module('Blockly.utils.Sentinel');
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A type used to create flag values.
|
|
21
|
+
* @alias Blockly.utils.Sentinel
|
|
22
|
+
*/
|
|
23
|
+
class Sentinel {}
|
|
24
|
+
|
|
25
|
+
exports.Sentinel = Sentinel;
|
package/core/utils/size.js
CHANGED
|
@@ -22,41 +22,44 @@ goog.module('Blockly.utils.Size');
|
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Class for representing sizes consisting of a width and height.
|
|
25
|
-
* @param {number} width Width.
|
|
26
|
-
* @param {number} height Height.
|
|
27
|
-
* @struct
|
|
28
|
-
* @constructor
|
|
29
25
|
* @alias Blockly.utils.Size
|
|
30
26
|
*/
|
|
31
|
-
const Size =
|
|
27
|
+
const Size = class {
|
|
32
28
|
/**
|
|
33
|
-
* Width
|
|
34
|
-
* @
|
|
29
|
+
* @param {number} width Width.
|
|
30
|
+
* @param {number} height Height.
|
|
31
|
+
* @struct
|
|
35
32
|
*/
|
|
36
|
-
|
|
33
|
+
constructor(width, height) {
|
|
34
|
+
/**
|
|
35
|
+
* Width
|
|
36
|
+
* @type {number}
|
|
37
|
+
*/
|
|
38
|
+
this.width = width;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Height
|
|
42
|
+
* @type {number}
|
|
43
|
+
*/
|
|
44
|
+
this.height = height;
|
|
45
|
+
}
|
|
37
46
|
|
|
38
47
|
/**
|
|
39
|
-
*
|
|
40
|
-
* @
|
|
48
|
+
* Compares sizes for equality.
|
|
49
|
+
* @param {?Size} a A Size.
|
|
50
|
+
* @param {?Size} b A Size.
|
|
51
|
+
* @return {boolean} True iff the sizes have equal widths and equal
|
|
52
|
+
* heights, or if both are null.
|
|
41
53
|
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
* heights, or if both are null.
|
|
51
|
-
*/
|
|
52
|
-
Size.equals = function(a, b) {
|
|
53
|
-
if (a === b) {
|
|
54
|
-
return true;
|
|
55
|
-
}
|
|
56
|
-
if (!a || !b) {
|
|
57
|
-
return false;
|
|
54
|
+
static equals(a, b) {
|
|
55
|
+
if (a === b) {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
if (!a || !b) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
return a.width === b.width && a.height === b.height;
|
|
58
62
|
}
|
|
59
|
-
return a.width === b.width && a.height === b.height;
|
|
60
63
|
};
|
|
61
64
|
|
|
62
65
|
exports.Size = Size;
|
package/core/utils/svg.js
CHANGED
|
@@ -20,28 +20,30 @@ goog.module('Blockly.utils.Svg');
|
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* A name with the type of the SVG element stored in the generic.
|
|
23
|
-
* @param {string} tagName The SVG element tag name.
|
|
24
|
-
* @constructor
|
|
25
23
|
* @template T
|
|
26
|
-
* @private
|
|
27
24
|
* @alias Blockly.utils.Svg
|
|
28
25
|
*/
|
|
29
|
-
|
|
26
|
+
class Svg {
|
|
30
27
|
/**
|
|
31
|
-
* @
|
|
32
|
-
* @
|
|
28
|
+
* @param {string} tagName The SVG element tag name.
|
|
29
|
+
* @package
|
|
33
30
|
*/
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
constructor(tagName) {
|
|
32
|
+
/**
|
|
33
|
+
* @type {string}
|
|
34
|
+
* @private
|
|
35
|
+
*/
|
|
36
|
+
this.tagName_ = tagName;
|
|
37
|
+
}
|
|
36
38
|
|
|
37
|
-
/**
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
39
|
+
/**
|
|
40
|
+
* Returns the SVG element tag name.
|
|
41
|
+
* @return {string} The name.
|
|
42
|
+
*/
|
|
43
|
+
toString() {
|
|
44
|
+
return this.tagName_;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
45
47
|
|
|
46
48
|
/**
|
|
47
49
|
* @type {!Svg<!SVGAnimateElement>}
|