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
|
@@ -16,150 +16,164 @@
|
|
|
16
16
|
goog.module('Blockly.zelos.MarkerSvg');
|
|
17
17
|
|
|
18
18
|
const dom = goog.require('Blockly.utils.dom');
|
|
19
|
-
const object = goog.require('Blockly.utils.object');
|
|
20
19
|
/* eslint-disable-next-line no-unused-vars */
|
|
21
20
|
const {ASTNode} = goog.requireType('Blockly.ASTNode');
|
|
22
21
|
/* eslint-disable-next-line no-unused-vars */
|
|
23
22
|
const {BlockSvg} = goog.requireType('Blockly.BlockSvg');
|
|
24
23
|
/* eslint-disable-next-line no-unused-vars */
|
|
25
|
-
const {
|
|
26
|
-
/* eslint-disable-next-line no-unused-vars */
|
|
27
|
-
const {ConstantProvider} = goog.requireType('Blockly.blockRendering.ConstantProvider');
|
|
24
|
+
const {ConstantProvider: BaseConstantProvider} = goog.requireType('Blockly.blockRendering.ConstantProvider');
|
|
28
25
|
const {MarkerSvg: BaseMarkerSvg} = goog.require('Blockly.blockRendering.MarkerSvg');
|
|
29
26
|
/* eslint-disable-next-line no-unused-vars */
|
|
30
27
|
const {Marker} = goog.requireType('Blockly.Marker');
|
|
28
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
29
|
+
const {RenderedConnection} = goog.requireType('Blockly.RenderedConnection');
|
|
31
30
|
const {Svg} = goog.require('Blockly.utils.Svg');
|
|
32
31
|
/* eslint-disable-next-line no-unused-vars */
|
|
33
32
|
const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
|
|
33
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
34
|
+
const {ConstantProvider: ZelosConstantProvider} = goog.requireType('Blockly.zelos.ConstantProvider');
|
|
34
35
|
|
|
35
36
|
|
|
36
37
|
/**
|
|
37
38
|
* Class to draw a marker.
|
|
38
|
-
* @param {!WorkspaceSvg} workspace The workspace the marker belongs to.
|
|
39
|
-
* @param {!ConstantProvider} constants The constants for
|
|
40
|
-
* the renderer.
|
|
41
|
-
* @param {!Marker} marker The marker to draw.
|
|
42
|
-
* @constructor
|
|
43
39
|
* @extends {BaseMarkerSvg}
|
|
44
40
|
* @alias Blockly.zelos.MarkerSvg
|
|
45
41
|
*/
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* @override
|
|
68
|
-
*/
|
|
69
|
-
MarkerSvg.prototype.showWithOutput_ = function(curNode) {
|
|
70
|
-
this.showWithInputOutput_(curNode);
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* @override
|
|
75
|
-
*/
|
|
76
|
-
MarkerSvg.prototype.showWithInput_ = function(curNode) {
|
|
77
|
-
this.showWithInputOutput_(curNode);
|
|
78
|
-
};
|
|
42
|
+
class MarkerSvg extends BaseMarkerSvg {
|
|
43
|
+
/**
|
|
44
|
+
* @param {!WorkspaceSvg} workspace The workspace the marker belongs to.
|
|
45
|
+
* @param {!BaseConstantProvider} constants The constants for
|
|
46
|
+
* the renderer.
|
|
47
|
+
* @param {!Marker} marker The marker to draw.
|
|
48
|
+
*/
|
|
49
|
+
constructor(workspace, constants, marker) {
|
|
50
|
+
super(workspace, constants, marker);
|
|
51
|
+
|
|
52
|
+
/** @type {!ZelosConstantProvider} */
|
|
53
|
+
this.constants_;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @type {SVGCircleElement}
|
|
57
|
+
* @private
|
|
58
|
+
*/
|
|
59
|
+
this.markerCircle_ = null;
|
|
60
|
+
}
|
|
79
61
|
|
|
80
|
-
/**
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Position and display the marker for an input or an output connection.
|
|
64
|
+
* @param {!ASTNode} curNode The node to draw the marker for.
|
|
65
|
+
* @private
|
|
66
|
+
*/
|
|
67
|
+
showWithInputOutput_(curNode) {
|
|
68
|
+
const block = /** @type {!BlockSvg} */ (curNode.getSourceBlock());
|
|
69
|
+
const connection =
|
|
70
|
+
/** @type {!RenderedConnection} */ (curNode.getLocation());
|
|
71
|
+
const offsetInBlock = connection.getOffsetInBlock();
|
|
72
|
+
|
|
73
|
+
this.positionCircle_(offsetInBlock.x, offsetInBlock.y);
|
|
74
|
+
this.setParent_(block);
|
|
75
|
+
this.showCurrent_();
|
|
76
|
+
}
|
|
86
77
|
|
|
87
|
-
|
|
88
|
-
|
|
78
|
+
/**
|
|
79
|
+
* @override
|
|
80
|
+
*/
|
|
81
|
+
showWithOutput_(curNode) {
|
|
82
|
+
this.showWithInputOutput_(curNode);
|
|
83
|
+
}
|
|
89
84
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
85
|
+
/**
|
|
86
|
+
* @override
|
|
87
|
+
*/
|
|
88
|
+
showWithInput_(curNode) {
|
|
89
|
+
this.showWithInputOutput_(curNode);
|
|
90
|
+
}
|
|
95
91
|
|
|
96
|
-
/**
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
*/
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
92
|
+
/**
|
|
93
|
+
* Draw a rectangle around the block.
|
|
94
|
+
* @param {!ASTNode} curNode The current node of the marker.
|
|
95
|
+
*/
|
|
96
|
+
showWithBlock_(curNode) {
|
|
97
|
+
const block = /** @type {!BlockSvg} */ (curNode.getLocation());
|
|
98
|
+
|
|
99
|
+
// Gets the height and width of entire stack.
|
|
100
|
+
const heightWidth = block.getHeightWidth();
|
|
101
|
+
|
|
102
|
+
// Add padding so that being on a stack looks different than being on a
|
|
103
|
+
// block.
|
|
104
|
+
this.positionRect_(0, 0, heightWidth.width, heightWidth.height);
|
|
105
|
+
this.setParent_(block);
|
|
106
|
+
this.showCurrent_();
|
|
107
|
+
}
|
|
107
108
|
|
|
108
|
-
/**
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
109
|
+
/**
|
|
110
|
+
* Position the circle we use for input and output connections.
|
|
111
|
+
* @param {number} x The x position of the circle.
|
|
112
|
+
* @param {number} y The y position of the circle.
|
|
113
|
+
* @private
|
|
114
|
+
*/
|
|
115
|
+
positionCircle_(x, y) {
|
|
116
|
+
this.markerCircle_.setAttribute('cx', x);
|
|
117
|
+
this.markerCircle_.setAttribute('cy', y);
|
|
118
|
+
this.currentMarkerSvg = this.markerCircle_;
|
|
119
|
+
}
|
|
115
120
|
|
|
116
|
-
/**
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
<g>
|
|
123
|
-
<rect width="100" height="5">
|
|
124
|
-
<animate attributeType="XML" attributeName="fill" dur="1s"
|
|
125
|
-
values="transparent;transparent;#fff;transparent" repeatCount="indefinite" />
|
|
126
|
-
</rect>
|
|
127
|
-
</g>
|
|
128
|
-
*/
|
|
129
|
-
/* clang-format on */
|
|
130
|
-
|
|
131
|
-
MarkerSvg.superClass_.createDomInternal_.call(this);
|
|
132
|
-
|
|
133
|
-
this.markerCircle_ = dom.createSvgElement(
|
|
134
|
-
Svg.CIRCLE, {
|
|
135
|
-
'r': this.constants_.CURSOR_RADIUS,
|
|
136
|
-
'style': 'display: none',
|
|
137
|
-
'stroke-width': this.constants_.CURSOR_STROKE_WIDTH,
|
|
138
|
-
},
|
|
139
|
-
this.markerSvg_);
|
|
140
|
-
|
|
141
|
-
// Markers and stack cursors don't blink.
|
|
142
|
-
if (this.isCursor()) {
|
|
143
|
-
const blinkProperties = this.getBlinkProperties_();
|
|
144
|
-
dom.createSvgElement(Svg.ANIMATE, blinkProperties, this.markerCircle_);
|
|
121
|
+
/**
|
|
122
|
+
* @override
|
|
123
|
+
*/
|
|
124
|
+
hide() {
|
|
125
|
+
super.hide();
|
|
126
|
+
this.markerCircle_.style.display = 'none';
|
|
145
127
|
}
|
|
146
128
|
|
|
147
|
-
|
|
148
|
-
|
|
129
|
+
/**
|
|
130
|
+
* @override
|
|
131
|
+
*/
|
|
132
|
+
createDomInternal_() {
|
|
133
|
+
/* clang-format off */
|
|
134
|
+
/* This markup will be generated and added to the .svgGroup_:
|
|
135
|
+
<g>
|
|
136
|
+
<rect width="100" height="5">
|
|
137
|
+
<animate attributeType="XML" attributeName="fill" dur="1s"
|
|
138
|
+
values="transparent;transparent;#fff;transparent" repeatCount="indefinite" />
|
|
139
|
+
</rect>
|
|
140
|
+
</g>
|
|
141
|
+
*/
|
|
142
|
+
/* clang-format on */
|
|
143
|
+
|
|
144
|
+
super.createDomInternal_();
|
|
145
|
+
|
|
146
|
+
this.markerCircle_ = dom.createSvgElement(
|
|
147
|
+
Svg.CIRCLE, {
|
|
148
|
+
'r': this.constants_.CURSOR_RADIUS,
|
|
149
|
+
'style': 'display: none',
|
|
150
|
+
'stroke-width': this.constants_.CURSOR_STROKE_WIDTH,
|
|
151
|
+
},
|
|
152
|
+
this.markerSvg_);
|
|
153
|
+
|
|
154
|
+
// Markers and stack cursors don't blink.
|
|
155
|
+
if (this.isCursor()) {
|
|
156
|
+
const blinkProperties = this.getBlinkProperties_();
|
|
157
|
+
dom.createSvgElement(Svg.ANIMATE, blinkProperties, this.markerCircle_);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return this.markerSvg_;
|
|
161
|
+
}
|
|
149
162
|
|
|
150
|
-
/**
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
163
|
+
/**
|
|
164
|
+
* @override
|
|
165
|
+
*/
|
|
166
|
+
applyColour_(curNode) {
|
|
167
|
+
super.applyColour_(curNode);
|
|
155
168
|
|
|
156
|
-
|
|
157
|
-
|
|
169
|
+
this.markerCircle_.setAttribute('fill', this.colour_);
|
|
170
|
+
this.markerCircle_.setAttribute('stroke', this.colour_);
|
|
158
171
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
172
|
+
if (this.isCursor()) {
|
|
173
|
+
const values = this.colour_ + ';transparent;transparent;';
|
|
174
|
+
this.markerCircle_.firstChild.setAttribute('values', values);
|
|
175
|
+
}
|
|
162
176
|
}
|
|
163
|
-
}
|
|
177
|
+
}
|
|
164
178
|
|
|
165
179
|
exports.MarkerSvg = MarkerSvg;
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
*/
|
|
16
16
|
goog.module('Blockly.zelos.BottomRow');
|
|
17
17
|
|
|
18
|
-
const object = goog.require('Blockly.utils.object');
|
|
19
18
|
const {BottomRow: BaseBottomRow} = goog.require('Blockly.blockRendering.BottomRow');
|
|
20
19
|
/* eslint-disable-next-line no-unused-vars */
|
|
21
20
|
const {ConstantProvider} = goog.requireType('Blockly.blockRendering.ConstantProvider');
|
|
@@ -26,40 +25,42 @@ const {ConstantProvider} = goog.requireType('Blockly.blockRendering.ConstantProv
|
|
|
26
25
|
* a block as well as spacing information for the top row.
|
|
27
26
|
* Elements in a bottom row can consist of corners, spacers and next
|
|
28
27
|
* connections.
|
|
29
|
-
* @param {!ConstantProvider} constants The rendering
|
|
30
|
-
* constants provider.
|
|
31
|
-
* @package
|
|
32
|
-
* @constructor
|
|
33
28
|
* @extends {BaseBottomRow}
|
|
34
29
|
* @alias Blockly.zelos.BottomRow
|
|
35
30
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
31
|
+
class BottomRow extends BaseBottomRow {
|
|
32
|
+
/**
|
|
33
|
+
* @param {!ConstantProvider} constants The rendering
|
|
34
|
+
* constants provider.
|
|
35
|
+
* @package
|
|
36
|
+
*/
|
|
37
|
+
constructor(constants) {
|
|
38
|
+
super(constants);
|
|
39
|
+
}
|
|
40
40
|
|
|
41
|
-
/**
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
41
|
+
/**
|
|
42
|
+
* @override
|
|
43
|
+
*/
|
|
44
|
+
endsWithElemSpacer() {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
47
|
|
|
48
|
-
/**
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
48
|
+
/**
|
|
49
|
+
* Render a round corner unless the block has an output connection.
|
|
50
|
+
* @override
|
|
51
|
+
*/
|
|
52
|
+
hasLeftSquareCorner(block) {
|
|
53
|
+
return !!block.outputConnection;
|
|
54
|
+
}
|
|
55
55
|
|
|
56
|
-
/**
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
56
|
+
/**
|
|
57
|
+
* Render a round corner unless the block has an output connection.
|
|
58
|
+
* @override
|
|
59
|
+
*/
|
|
60
|
+
hasRightSquareCorner(block) {
|
|
61
|
+
return !!block.outputConnection && !block.statementInputCount &&
|
|
62
|
+
!block.nextConnection;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
64
65
|
|
|
65
66
|
exports.BottomRow = BottomRow;
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
*/
|
|
17
17
|
goog.module('Blockly.zelos.StatementInput');
|
|
18
18
|
|
|
19
|
-
const object = goog.require('Blockly.utils.object');
|
|
20
19
|
/* eslint-disable-next-line no-unused-vars */
|
|
21
20
|
const {ConstantProvider} = goog.requireType('Blockly.blockRendering.ConstantProvider');
|
|
22
21
|
/* eslint-disable-next-line no-unused-vars */
|
|
@@ -26,31 +25,33 @@ const {StatementInput: BaseStatementInput} = goog.require('Blockly.blockRenderin
|
|
|
26
25
|
|
|
27
26
|
/**
|
|
28
27
|
* An object containing information about the space a statement input takes up
|
|
29
|
-
* during rendering
|
|
30
|
-
* @param {!ConstantProvider} constants The rendering constants provider.
|
|
31
|
-
* @param {!Input} input The statement input to measure and store information
|
|
32
|
-
* for.
|
|
33
|
-
* @package
|
|
34
|
-
* @constructor
|
|
28
|
+
* during rendering.
|
|
35
29
|
* @extends {BaseStatementInput}
|
|
36
30
|
* @alias Blockly.zelos.StatementInput
|
|
37
31
|
*/
|
|
38
|
-
|
|
39
|
-
|
|
32
|
+
class StatementInput extends BaseStatementInput {
|
|
33
|
+
/**
|
|
34
|
+
* @param {!ConstantProvider} constants The rendering constants provider.
|
|
35
|
+
* @param {!Input} input The statement input to measure and store information
|
|
36
|
+
* for.
|
|
37
|
+
* @package
|
|
38
|
+
*/
|
|
39
|
+
constructor(constants, input) {
|
|
40
|
+
super(constants, input);
|
|
40
41
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
if (this.connectedBlock) {
|
|
43
|
+
// Find the bottom-most connected block in the stack.
|
|
44
|
+
let block = this.connectedBlock;
|
|
45
|
+
let nextBlock;
|
|
46
|
+
while ((nextBlock = block.getNextBlock())) {
|
|
47
|
+
block = nextBlock;
|
|
48
|
+
}
|
|
49
|
+
if (!block.nextConnection) {
|
|
50
|
+
this.height = this.connectedBlockHeight;
|
|
51
|
+
this.connectedBottomNextConnection = true;
|
|
52
|
+
}
|
|
51
53
|
}
|
|
52
54
|
}
|
|
53
|
-
}
|
|
54
|
-
object.inherits(StatementInput, BaseStatementInput);
|
|
55
|
+
}
|
|
55
56
|
|
|
56
57
|
exports.StatementInput = StatementInput;
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
*/
|
|
17
17
|
goog.module('Blockly.zelos.RightConnectionShape');
|
|
18
18
|
|
|
19
|
-
const object = goog.require('Blockly.utils.object');
|
|
20
19
|
/* eslint-disable-next-line no-unused-vars */
|
|
21
20
|
const {ConstantProvider} = goog.requireType('Blockly.blockRendering.ConstantProvider');
|
|
22
21
|
const {Measurable} = goog.require('Blockly.blockRendering.Measurable');
|
|
@@ -26,20 +25,22 @@ const {Types} = goog.require('Blockly.blockRendering.Types');
|
|
|
26
25
|
/**
|
|
27
26
|
* An object containing information about the space a right connection shape
|
|
28
27
|
* takes up during rendering.
|
|
29
|
-
* @param {!ConstantProvider} constants The rendering
|
|
30
|
-
* constants provider.
|
|
31
|
-
* @package
|
|
32
|
-
* @constructor
|
|
33
28
|
* @extends {Measurable}
|
|
34
29
|
* @alias Blockly.zelos.RightConnectionShape
|
|
35
30
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
31
|
+
class RightConnectionShape extends Measurable {
|
|
32
|
+
/**
|
|
33
|
+
* @param {!ConstantProvider} constants The rendering
|
|
34
|
+
* constants provider.
|
|
35
|
+
* @package
|
|
36
|
+
*/
|
|
37
|
+
constructor(constants) {
|
|
38
|
+
super(constants);
|
|
39
|
+
this.type |= Types.getType('RIGHT_CONNECTION');
|
|
40
|
+
// Size is dynamic
|
|
41
|
+
this.height = 0;
|
|
42
|
+
this.width = 0;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
44
45
|
|
|
45
46
|
exports.RightConnectionShape = RightConnectionShape;
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
*/
|
|
16
16
|
goog.module('Blockly.zelos.TopRow');
|
|
17
17
|
|
|
18
|
-
const object = goog.require('Blockly.utils.object');
|
|
19
18
|
/* eslint-disable-next-line no-unused-vars */
|
|
20
19
|
const {ConstantProvider} = goog.requireType('Blockly.blockRendering.ConstantProvider');
|
|
21
20
|
const {TopRow: BaseTopRow} = goog.require('Blockly.blockRendering.TopRow');
|
|
@@ -28,43 +27,45 @@ const {TopRow: BaseTopRow} = goog.require('Blockly.blockRendering.TopRow');
|
|
|
28
27
|
* connections.
|
|
29
28
|
* After this constructor is called, the row will contain all non-spacer
|
|
30
29
|
* elements it needs.
|
|
31
|
-
* @param {!ConstantProvider} constants The rendering
|
|
32
|
-
* constants provider.
|
|
33
|
-
* @package
|
|
34
|
-
* @constructor
|
|
35
30
|
* @extends {BaseTopRow}
|
|
36
31
|
* @alias Blockly.zelos.TopRow
|
|
37
32
|
*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
33
|
+
class TopRow extends BaseTopRow {
|
|
34
|
+
/**
|
|
35
|
+
* @param {!ConstantProvider} constants The rendering
|
|
36
|
+
* constants provider.
|
|
37
|
+
* @package
|
|
38
|
+
*/
|
|
39
|
+
constructor(constants) {
|
|
40
|
+
super(constants);
|
|
41
|
+
}
|
|
42
42
|
|
|
43
|
-
/**
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
43
|
+
/**
|
|
44
|
+
* @override
|
|
45
|
+
*/
|
|
46
|
+
endsWithElemSpacer() {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
49
|
|
|
50
|
-
/**
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
50
|
+
/**
|
|
51
|
+
* Render a round corner unless the block has an output connection.
|
|
52
|
+
* @override
|
|
53
|
+
*/
|
|
54
|
+
hasLeftSquareCorner(block) {
|
|
55
|
+
const hasHat =
|
|
56
|
+
(block.hat ? block.hat === 'cap' : this.constants_.ADD_START_HATS) &&
|
|
57
|
+
!block.outputConnection && !block.previousConnection;
|
|
58
|
+
return !!block.outputConnection || hasHat;
|
|
59
|
+
}
|
|
60
60
|
|
|
61
|
-
/**
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
61
|
+
/**
|
|
62
|
+
* Render a round corner unless the block has an output connection.
|
|
63
|
+
* @override
|
|
64
|
+
*/
|
|
65
|
+
hasRightSquareCorner(block) {
|
|
66
|
+
return !!block.outputConnection && !block.statementInputCount &&
|
|
67
|
+
!block.nextConnection;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
69
70
|
|
|
70
71
|
exports.TopRow = TopRow;
|