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
|
@@ -14,49 +14,62 @@
|
|
|
14
14
|
*/
|
|
15
15
|
goog.module('Blockly.blockRendering.InputConnection');
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
18
|
+
const {BlockSvg} = goog.requireType('Blockly.BlockSvg');
|
|
18
19
|
const {Connection} = goog.require('Blockly.blockRendering.Connection');
|
|
19
20
|
/* eslint-disable-next-line no-unused-vars */
|
|
20
21
|
const {ConstantProvider} = goog.requireType('Blockly.blockRendering.ConstantProvider');
|
|
21
22
|
/* eslint-disable-next-line no-unused-vars */
|
|
22
23
|
const {Input} = goog.requireType('Blockly.Input');
|
|
24
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
25
|
+
const {RenderedConnection} = goog.requireType('Blockly.RenderedConnection');
|
|
23
26
|
const {Types} = goog.require('Blockly.blockRendering.Types');
|
|
24
27
|
|
|
25
28
|
|
|
26
29
|
/**
|
|
27
30
|
* The base class to represent an input that takes up space on a block
|
|
28
31
|
* during rendering
|
|
29
|
-
* @param {!ConstantProvider} constants The rendering
|
|
30
|
-
* constants provider.
|
|
31
|
-
* @param {!Input} input The input to measure and store information for.
|
|
32
32
|
* @package
|
|
33
|
-
* @constructor
|
|
34
33
|
* @extends {Connection}
|
|
35
34
|
* @alias Blockly.blockRendering.InputConnection
|
|
36
35
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
this.connectedBlockWidth = bBox.width;
|
|
51
|
-
this.connectedBlockHeight = bBox.height;
|
|
52
|
-
} else {
|
|
53
|
-
this.connectedBlockWidth = 0;
|
|
54
|
-
this.connectedBlockHeight = 0;
|
|
55
|
-
}
|
|
36
|
+
class InputConnection extends Connection {
|
|
37
|
+
/**
|
|
38
|
+
* @param {!ConstantProvider} constants The rendering
|
|
39
|
+
* constants provider.
|
|
40
|
+
* @param {!Input} input The input to measure and store information for.
|
|
41
|
+
*/
|
|
42
|
+
constructor(constants, input) {
|
|
43
|
+
super(constants, /** @type {!RenderedConnection} */ (input.connection));
|
|
44
|
+
|
|
45
|
+
this.type |= Types.INPUT;
|
|
46
|
+
|
|
47
|
+
/** @type {!Input} */
|
|
48
|
+
this.input = input;
|
|
56
49
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
50
|
+
/** @type {number} */
|
|
51
|
+
this.align = input.align;
|
|
52
|
+
|
|
53
|
+
/** @type {BlockSvg} */
|
|
54
|
+
this.connectedBlock = input.connection && input.connection.targetBlock() ?
|
|
55
|
+
/** @type {BlockSvg} */ (input.connection.targetBlock()) :
|
|
56
|
+
null;
|
|
57
|
+
|
|
58
|
+
if (this.connectedBlock) {
|
|
59
|
+
const bBox = this.connectedBlock.getHeightWidth();
|
|
60
|
+
this.connectedBlockWidth = bBox.width;
|
|
61
|
+
this.connectedBlockHeight = bBox.height;
|
|
62
|
+
} else {
|
|
63
|
+
this.connectedBlockWidth = 0;
|
|
64
|
+
this.connectedBlockHeight = 0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** @type {number} */
|
|
68
|
+
this.connectionOffsetX = 0;
|
|
69
|
+
|
|
70
|
+
/** @type {number} */
|
|
71
|
+
this.connectionOffsetY = 0;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
61
74
|
|
|
62
75
|
exports.InputConnection = InputConnection;
|
|
@@ -16,68 +16,74 @@
|
|
|
16
16
|
*/
|
|
17
17
|
goog.module('Blockly.blockRendering.InputRow');
|
|
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');
|
|
21
|
+
const {InputConnection} = goog.require('Blockly.blockRendering.InputConnection');
|
|
22
|
+
const {ExternalValueInput} = goog.require('Blockly.blockRendering.ExternalValueInput');
|
|
22
23
|
const {Row} = goog.require('Blockly.blockRendering.Row');
|
|
24
|
+
const {StatementInput} = goog.require('Blockly.blockRendering.StatementInput');
|
|
23
25
|
const {Types} = goog.require('Blockly.blockRendering.Types');
|
|
24
26
|
|
|
25
27
|
|
|
26
28
|
/**
|
|
27
29
|
* An object containing information about a row that holds one or more inputs.
|
|
28
|
-
* @param {!ConstantProvider} constants The rendering
|
|
29
|
-
* constants provider.
|
|
30
|
-
* @package
|
|
31
|
-
* @constructor
|
|
32
30
|
* @extends {Row}
|
|
31
|
+
* @struct
|
|
33
32
|
* @alias Blockly.blockRendering.InputRow
|
|
34
33
|
*/
|
|
35
|
-
|
|
36
|
-
InputRow.superClass_.constructor.call(this, constants);
|
|
37
|
-
this.type |= Types.INPUT_ROW;
|
|
38
|
-
|
|
34
|
+
class InputRow extends Row {
|
|
39
35
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
36
|
+
* @param {!ConstantProvider} constants The rendering
|
|
37
|
+
* constants provider.
|
|
42
38
|
* @package
|
|
43
39
|
*/
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
constructor(constants) {
|
|
41
|
+
super(constants);
|
|
42
|
+
this.type |= Types.INPUT_ROW;
|
|
47
43
|
|
|
48
|
-
/**
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
44
|
+
/**
|
|
45
|
+
* The total width of all blocks connected to this row.
|
|
46
|
+
* @type {number}
|
|
47
|
+
* @package
|
|
48
|
+
*/
|
|
49
|
+
this.connectedBlockWidths = 0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Inspect all subcomponents and populate all size properties on the row.
|
|
54
|
+
* @package
|
|
55
|
+
*/
|
|
56
|
+
measure() {
|
|
57
|
+
this.width = this.minWidth;
|
|
58
|
+
this.height = this.minHeight;
|
|
59
|
+
let connectedBlockWidths = 0;
|
|
60
|
+
for (let i = 0; i < this.elements.length; i++) {
|
|
61
|
+
const elem = this.elements[i];
|
|
62
|
+
this.width += elem.width;
|
|
63
|
+
if (Types.isInput(elem) && elem instanceof InputConnection) {
|
|
64
|
+
if (Types.isStatementInput(elem) && elem instanceof StatementInput) {
|
|
65
|
+
connectedBlockWidths += elem.connectedBlockWidth;
|
|
66
|
+
} else if (
|
|
67
|
+
Types.isExternalInput(elem) && elem instanceof ExternalValueInput &&
|
|
68
|
+
elem.connectedBlockWidth !== 0) {
|
|
69
|
+
connectedBlockWidths +=
|
|
70
|
+
(elem.connectedBlockWidth - elem.connectionWidth);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (!(Types.isSpacer(elem))) {
|
|
74
|
+
this.height = Math.max(this.height, elem.height);
|
|
66
75
|
}
|
|
67
76
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
77
|
+
this.connectedBlockWidths = connectedBlockWidths;
|
|
78
|
+
this.widthWithConnectedBlocks = this.width + connectedBlockWidths;
|
|
71
79
|
}
|
|
72
|
-
this.connectedBlockWidths = connectedBlockWidths;
|
|
73
|
-
this.widthWithConnectedBlocks = this.width + connectedBlockWidths;
|
|
74
|
-
};
|
|
75
80
|
|
|
76
|
-
/**
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
81
|
+
/**
|
|
82
|
+
* @override
|
|
83
|
+
*/
|
|
84
|
+
endsWithElemSpacer() {
|
|
85
|
+
return !this.hasExternalInput && !this.hasStatement;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
82
88
|
|
|
83
89
|
exports.InputRow = InputRow;
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
*/
|
|
17
17
|
goog.module('Blockly.blockRendering.JaggedEdge');
|
|
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,19 +25,22 @@ const {Types} = goog.require('Blockly.blockRendering.Types');
|
|
|
26
25
|
/**
|
|
27
26
|
* An object containing information about the jagged edge of a collapsed block
|
|
28
27
|
* takes up during rendering
|
|
29
|
-
* @param {!ConstantProvider} constants The rendering
|
|
30
|
-
* constants provider.
|
|
31
|
-
* @package
|
|
32
|
-
* @constructor
|
|
33
28
|
* @extends {Measurable}
|
|
29
|
+
* @struct
|
|
34
30
|
* @alias Blockly.blockRendering.JaggedEdge
|
|
35
31
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
32
|
+
class JaggedEdge extends Measurable {
|
|
33
|
+
/**
|
|
34
|
+
* @param {!ConstantProvider} constants The rendering
|
|
35
|
+
* constants provider.
|
|
36
|
+
* @package
|
|
37
|
+
*/
|
|
38
|
+
constructor(constants) {
|
|
39
|
+
super(constants);
|
|
40
|
+
this.type |= Types.JAGGED_EDGE;
|
|
41
|
+
this.height = this.constants_.JAGGED_TEETH.height;
|
|
42
|
+
this.width = this.constants_.JAGGED_TEETH.width;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
43
45
|
|
|
44
46
|
exports.JaggedEdge = JaggedEdge;
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
*/
|
|
17
17
|
goog.module('Blockly.blockRendering.NextConnection');
|
|
18
18
|
|
|
19
|
-
const object = goog.require('Blockly.utils.object');
|
|
20
19
|
const {Connection} = goog.require('Blockly.blockRendering.Connection');
|
|
21
20
|
/* eslint-disable-next-line no-unused-vars */
|
|
22
21
|
const {ConstantProvider} = goog.requireType('Blockly.blockRendering.ConstantProvider');
|
|
@@ -28,21 +27,24 @@ const {Types} = goog.require('Blockly.blockRendering.Types');
|
|
|
28
27
|
/**
|
|
29
28
|
* An object containing information about the space a next connection takes
|
|
30
29
|
* up during rendering.
|
|
31
|
-
* @param {!ConstantProvider} constants The rendering
|
|
32
|
-
* constants provider.
|
|
33
|
-
* @param {RenderedConnection} connectionModel The connection object on
|
|
34
|
-
* the block that this represents.
|
|
35
|
-
* @package
|
|
36
|
-
* @constructor
|
|
37
30
|
* @extends {Connection}
|
|
31
|
+
* @struct
|
|
38
32
|
* @alias Blockly.blockRendering.NextConnection
|
|
39
33
|
*/
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
34
|
+
class NextConnection extends Connection {
|
|
35
|
+
/**
|
|
36
|
+
* @param {!ConstantProvider} constants The rendering
|
|
37
|
+
* constants provider.
|
|
38
|
+
* @param {!RenderedConnection} connectionModel The connection object on
|
|
39
|
+
* the block that this represents.
|
|
40
|
+
* @package
|
|
41
|
+
*/
|
|
42
|
+
constructor(constants, connectionModel) {
|
|
43
|
+
super(constants, connectionModel);
|
|
44
|
+
this.type |= Types.NEXT_CONNECTION;
|
|
45
|
+
this.height = this.shape.height;
|
|
46
|
+
this.width = this.shape.width;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
47
49
|
|
|
48
50
|
exports.NextConnection = NextConnection;
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
*/
|
|
18
18
|
goog.module('Blockly.blockRendering.OutputConnection');
|
|
19
19
|
|
|
20
|
-
const object = goog.require('Blockly.utils.object');
|
|
21
20
|
const {Connection} = goog.require('Blockly.blockRendering.Connection');
|
|
22
21
|
/* eslint-disable-next-line no-unused-vars */
|
|
23
22
|
const {ConstantProvider} = goog.requireType('Blockly.blockRendering.ConstantProvider');
|
|
@@ -29,27 +28,34 @@ const {Types} = goog.require('Blockly.blockRendering.Types');
|
|
|
29
28
|
/**
|
|
30
29
|
* An object containing information about the space an output connection takes
|
|
31
30
|
* up during rendering.
|
|
32
|
-
* @param {!ConstantProvider} constants The rendering
|
|
33
|
-
* constants provider.
|
|
34
|
-
* @param {RenderedConnection} connectionModel The connection object on
|
|
35
|
-
* the block that this represents.
|
|
36
|
-
* @package
|
|
37
|
-
* @constructor
|
|
38
31
|
* @extends {Connection}
|
|
32
|
+
* @struct
|
|
39
33
|
* @alias Blockly.blockRendering.OutputConnection
|
|
40
34
|
*/
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
35
|
+
class OutputConnection extends Connection {
|
|
36
|
+
/**
|
|
37
|
+
* @param {!ConstantProvider} constants The rendering
|
|
38
|
+
* constants provider.
|
|
39
|
+
* @param {!RenderedConnection} connectionModel The connection object on
|
|
40
|
+
* the block that this represents.
|
|
41
|
+
* @package
|
|
42
|
+
*/
|
|
43
|
+
constructor(constants, connectionModel) {
|
|
44
|
+
super(constants, connectionModel);
|
|
45
|
+
this.type |= Types.OUTPUT_CONNECTION;
|
|
46
|
+
|
|
47
|
+
this.height = !this.isDynamicShape ? this.shape.height : 0;
|
|
48
|
+
this.width = !this.isDynamicShape ? this.shape.width : 0;
|
|
49
|
+
|
|
50
|
+
/** @type {number} */
|
|
51
|
+
this.startX = this.width;
|
|
52
|
+
|
|
53
|
+
/** @type {number} */
|
|
54
|
+
this.connectionOffsetY = this.constants_.TAB_OFFSET_FROM_TOP;
|
|
55
|
+
|
|
56
|
+
/** @type {number} */
|
|
57
|
+
this.connectionOffsetX = 0;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
54
60
|
|
|
55
61
|
exports.OutputConnection = OutputConnection;
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
*/
|
|
17
17
|
goog.module('Blockly.blockRendering.PreviousConnection');
|
|
18
18
|
|
|
19
|
-
const object = goog.require('Blockly.utils.object');
|
|
20
19
|
const {Connection} = goog.require('Blockly.blockRendering.Connection');
|
|
21
20
|
/* eslint-disable-next-line no-unused-vars */
|
|
22
21
|
const {ConstantProvider} = goog.requireType('Blockly.blockRendering.ConstantProvider');
|
|
@@ -28,22 +27,24 @@ const {Types} = goog.require('Blockly.blockRendering.Types');
|
|
|
28
27
|
/**
|
|
29
28
|
* An object containing information about the space a previous connection takes
|
|
30
29
|
* up during rendering.
|
|
31
|
-
* @param {!ConstantProvider} constants The rendering
|
|
32
|
-
* constants provider.
|
|
33
|
-
* @param {RenderedConnection} connectionModel The connection object on
|
|
34
|
-
* the block that this represents.
|
|
35
|
-
* @package
|
|
36
|
-
* @constructor
|
|
37
30
|
* @extends {Connection}
|
|
31
|
+
* @struct
|
|
38
32
|
* @alias Blockly.blockRendering.PreviousConnection
|
|
39
33
|
*/
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
34
|
+
class PreviousConnection extends Connection {
|
|
35
|
+
/**
|
|
36
|
+
* @param {!ConstantProvider} constants The rendering
|
|
37
|
+
* constants provider.
|
|
38
|
+
* @param {!RenderedConnection} connectionModel The connection object on
|
|
39
|
+
* the block that this represents.
|
|
40
|
+
* @package
|
|
41
|
+
*/
|
|
42
|
+
constructor(constants, connectionModel) {
|
|
43
|
+
super(constants, connectionModel);
|
|
44
|
+
this.type |= Types.PREVIOUS_CONNECTION;
|
|
45
|
+
this.height = this.shape.height;
|
|
46
|
+
this.width = this.shape.width;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
48
49
|
|
|
49
50
|
exports.PreviousConnection = PreviousConnection;
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
*/
|
|
17
17
|
goog.module('Blockly.blockRendering.RoundCorner');
|
|
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,25 +25,28 @@ const {Types} = goog.require('Blockly.blockRendering.Types');
|
|
|
26
25
|
/**
|
|
27
26
|
* An object containing information about the space a rounded corner takes up
|
|
28
27
|
* during rendering.
|
|
29
|
-
* @param {!ConstantProvider} constants The rendering
|
|
30
|
-
* constants provider.
|
|
31
|
-
* @param {string=} opt_position The position of this corner.
|
|
32
|
-
* @package
|
|
33
|
-
* @constructor
|
|
34
28
|
* @extends {Measurable}
|
|
29
|
+
* @struct
|
|
35
30
|
* @alias Blockly.blockRendering.RoundCorner
|
|
36
31
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
32
|
+
class RoundCorner extends Measurable {
|
|
33
|
+
/**
|
|
34
|
+
* @param {!ConstantProvider} constants The rendering
|
|
35
|
+
* constants provider.
|
|
36
|
+
* @param {string=} opt_position The position of this corner.
|
|
37
|
+
* @package
|
|
38
|
+
*/
|
|
39
|
+
constructor(constants, opt_position) {
|
|
40
|
+
super(constants);
|
|
41
|
+
this.type = ((!opt_position || opt_position === 'left') ?
|
|
42
|
+
Types.LEFT_ROUND_CORNER :
|
|
43
|
+
Types.RIGHT_ROUND_CORNER) |
|
|
44
|
+
Types.CORNER;
|
|
45
|
+
this.width = this.constants_.CORNER_RADIUS;
|
|
46
|
+
// The rounded corner extends into the next row by 4 so we only take the
|
|
47
|
+
// height that is aligned with this row.
|
|
48
|
+
this.height = this.constants_.CORNER_RADIUS / 2;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
49
51
|
|
|
50
52
|
exports.RoundCorner = RoundCorner;
|