blockly 7.20211209.2 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/blockly.d.ts +18963 -18432
  2. package/blockly.min.js +852 -844
  3. package/blockly_compressed.js +669 -664
  4. package/blockly_compressed.js.map +1 -1
  5. package/blocks/blocks.js +47 -0
  6. package/blocks/colour.js +13 -3
  7. package/blocks/lists.js +22 -13
  8. package/blocks/logic.js +13 -3
  9. package/blocks/loops.js +24 -11
  10. package/blocks/math.js +12 -3
  11. package/blocks/procedures.js +41 -27
  12. package/blocks/text.js +22 -13
  13. package/blocks/variables.js +14 -3
  14. package/blocks/variables_dynamic.js +13 -3
  15. package/blocks_compressed.js +146 -141
  16. package/blocks_compressed.js.map +1 -1
  17. package/core/block.js +1869 -1814
  18. package/core/block_drag_surface.js +201 -200
  19. package/core/block_dragger.js +377 -373
  20. package/core/block_svg.js +1593 -1479
  21. package/core/blockly.js +8 -22
  22. package/core/blocks.js +9 -2
  23. package/core/browser_events.js +22 -5
  24. package/core/bubble.js +841 -797
  25. package/core/bubble_dragger.js +213 -206
  26. package/core/bump_objects.js +2 -2
  27. package/core/clipboard.js +9 -9
  28. package/core/comment.js +353 -332
  29. package/core/common.js +46 -17
  30. package/core/component_manager.js +181 -174
  31. package/core/config.js +87 -0
  32. package/core/connection.js +595 -584
  33. package/core/connection_checker.js +242 -244
  34. package/core/connection_db.js +235 -230
  35. package/core/contextmenu.js +9 -6
  36. package/core/contextmenu_items.js +1 -2
  37. package/core/contextmenu_registry.js +93 -89
  38. package/core/css.js +474 -474
  39. package/core/delete_area.js +45 -42
  40. package/core/drag_target.js +57 -56
  41. package/core/dropdowndiv.js +153 -163
  42. package/core/events/events.js +2 -2
  43. package/core/events/events_abstract.js +89 -77
  44. package/core/events/events_block_base.js +37 -36
  45. package/core/events/events_block_change.js +130 -124
  46. package/core/events/events_block_create.js +73 -71
  47. package/core/events/events_block_delete.js +84 -82
  48. package/core/events/events_block_drag.js +50 -49
  49. package/core/events/events_block_move.js +147 -140
  50. package/core/events/events_bubble_open.js +51 -50
  51. package/core/events/events_click.js +48 -44
  52. package/core/events/events_comment_base.js +72 -69
  53. package/core/events/events_comment_change.js +63 -61
  54. package/core/events/events_comment_create.js +44 -42
  55. package/core/events/events_comment_delete.js +42 -40
  56. package/core/events/events_comment_move.js +106 -104
  57. package/core/events/events_marker_move.js +65 -64
  58. package/core/events/events_selected.js +46 -45
  59. package/core/events/events_theme_change.js +36 -35
  60. package/core/events/events_toolbox_item_select.js +46 -45
  61. package/core/events/events_trashcan_open.js +37 -36
  62. package/core/events/events_ui.js +47 -46
  63. package/core/events/events_ui_base.js +30 -29
  64. package/core/events/events_var_base.js +37 -36
  65. package/core/events/events_var_create.js +50 -48
  66. package/core/events/events_var_delete.js +50 -48
  67. package/core/events/events_var_rename.js +51 -49
  68. package/core/events/events_viewport.js +66 -65
  69. package/core/events/utils.js +29 -14
  70. package/core/events/workspace_events.js +49 -55
  71. package/core/extensions.js +4 -3
  72. package/core/field.js +1061 -997
  73. package/core/field_angle.js +462 -442
  74. package/core/field_checkbox.js +194 -182
  75. package/core/field_colour.js +519 -505
  76. package/core/field_dropdown.js +617 -598
  77. package/core/field_image.js +229 -220
  78. package/core/field_label.js +102 -91
  79. package/core/field_label_serializable.js +42 -41
  80. package/core/field_multilineinput.js +372 -358
  81. package/core/field_number.js +272 -253
  82. package/core/field_textinput.js +499 -467
  83. package/core/field_variable.js +458 -420
  84. package/core/flyout_base.js +1005 -952
  85. package/core/flyout_button.js +277 -260
  86. package/core/flyout_horizontal.js +304 -302
  87. package/core/flyout_metrics_manager.js +64 -64
  88. package/core/flyout_vertical.js +306 -300
  89. package/core/generator.js +459 -446
  90. package/core/gesture.js +829 -813
  91. package/core/grid.js +166 -163
  92. package/core/icon.js +168 -159
  93. package/core/inject.js +7 -5
  94. package/core/input.js +257 -248
  95. package/core/insertion_marker_manager.js +655 -624
  96. package/core/internal_constants.js +0 -129
  97. package/core/keyboard_nav/ast_node.js +605 -596
  98. package/core/keyboard_nav/basic_cursor.js +166 -165
  99. package/core/keyboard_nav/cursor.js +99 -97
  100. package/core/keyboard_nav/marker.js +83 -79
  101. package/core/keyboard_nav/tab_navigate_cursor.js +18 -23
  102. package/core/marker_manager.js +153 -141
  103. package/core/menu.js +377 -372
  104. package/core/menuitem.js +223 -217
  105. package/core/metrics_manager.js +403 -390
  106. package/core/mutator.js +468 -437
  107. package/core/names.js +229 -188
  108. package/core/options.js +290 -284
  109. package/core/procedures.js +29 -17
  110. package/core/registry.js +19 -16
  111. package/core/rendered_connection.js +482 -463
  112. package/core/renderers/common/block_rendering.js +9 -3
  113. package/core/renderers/common/constants.js +1119 -1112
  114. package/core/renderers/common/debug.js +14 -0
  115. package/core/renderers/common/debugger.js +338 -316
  116. package/core/renderers/common/drawer.js +380 -370
  117. package/core/renderers/common/i_path_object.js +2 -2
  118. package/core/renderers/common/info.js +626 -618
  119. package/core/renderers/common/marker_svg.js +579 -541
  120. package/core/renderers/common/path_object.js +203 -200
  121. package/core/renderers/common/renderer.js +220 -218
  122. package/core/renderers/geras/constants.js +36 -36
  123. package/core/renderers/geras/drawer.js +155 -147
  124. package/core/renderers/geras/highlight_constants.js +244 -238
  125. package/core/renderers/geras/highlighter.js +231 -179
  126. package/core/renderers/geras/info.js +392 -369
  127. package/core/renderers/geras/measurables/inline_input.js +25 -19
  128. package/core/renderers/geras/measurables/statement_input.js +23 -17
  129. package/core/renderers/geras/path_object.js +106 -121
  130. package/core/renderers/geras/renderer.js +96 -98
  131. package/core/renderers/measurables/base.js +30 -18
  132. package/core/renderers/measurables/bottom_row.js +83 -80
  133. package/core/renderers/measurables/connection.js +22 -15
  134. package/core/renderers/measurables/external_value_input.js +35 -22
  135. package/core/renderers/measurables/field.js +35 -20
  136. package/core/renderers/measurables/hat.js +18 -13
  137. package/core/renderers/measurables/icon.js +24 -17
  138. package/core/renderers/measurables/in_row_spacer.js +15 -13
  139. package/core/renderers/measurables/inline_input.js +43 -33
  140. package/core/renderers/measurables/input_connection.js +41 -28
  141. package/core/renderers/measurables/input_row.js +50 -44
  142. package/core/renderers/measurables/jagged_edge.js +14 -12
  143. package/core/renderers/measurables/next_connection.js +16 -14
  144. package/core/renderers/measurables/output_connection.js +26 -20
  145. package/core/renderers/measurables/previous_connection.js +16 -15
  146. package/core/renderers/measurables/round_corner.js +20 -18
  147. package/core/renderers/measurables/row.js +184 -168
  148. package/core/renderers/measurables/spacer_row.js +38 -23
  149. package/core/renderers/measurables/square_corner.js +18 -16
  150. package/core/renderers/measurables/statement_input.js +23 -20
  151. package/core/renderers/measurables/top_row.js +88 -85
  152. package/core/renderers/minimalist/constants.js +8 -7
  153. package/core/renderers/minimalist/drawer.js +11 -10
  154. package/core/renderers/minimalist/info.js +18 -18
  155. package/core/renderers/minimalist/renderer.js +40 -39
  156. package/core/renderers/thrasos/info.js +258 -248
  157. package/core/renderers/thrasos/renderer.js +20 -20
  158. package/core/renderers/zelos/constants.js +898 -873
  159. package/core/renderers/zelos/drawer.js +186 -169
  160. package/core/renderers/zelos/info.js +502 -479
  161. package/core/renderers/zelos/marker_svg.js +129 -115
  162. package/core/renderers/zelos/measurables/bottom_row.js +31 -30
  163. package/core/renderers/zelos/measurables/inputs.js +22 -21
  164. package/core/renderers/zelos/measurables/row_elements.js +14 -13
  165. package/core/renderers/zelos/measurables/top_row.js +34 -33
  166. package/core/renderers/zelos/path_object.js +181 -180
  167. package/core/renderers/zelos/renderer.js +91 -92
  168. package/core/scrollbar.js +759 -713
  169. package/core/scrollbar_pair.js +250 -245
  170. package/core/serialization/blocks.js +19 -9
  171. package/core/serialization/workspaces.js +3 -2
  172. package/core/shortcut_registry.js +286 -277
  173. package/core/sprites.js +31 -0
  174. package/core/theme.js +135 -141
  175. package/core/theme_manager.js +147 -143
  176. package/core/toolbox/category.js +602 -576
  177. package/core/toolbox/collapsible_category.js +226 -227
  178. package/core/toolbox/separator.js +70 -61
  179. package/core/toolbox/toolbox.js +934 -927
  180. package/core/toolbox/toolbox_item.js +115 -99
  181. package/core/tooltip.js +108 -35
  182. package/core/touch.js +8 -3
  183. package/core/touch_gesture.js +254 -251
  184. package/core/trashcan.js +606 -595
  185. package/core/utils/coordinate.js +97 -95
  186. package/core/utils/dom.js +2 -2
  187. package/core/utils/global.js +2 -0
  188. package/core/utils/rect.js +41 -37
  189. package/core/utils/sentinel.js +25 -0
  190. package/core/utils/size.js +30 -27
  191. package/core/utils/svg.js +18 -16
  192. package/core/variable_map.js +325 -341
  193. package/core/variable_model.js +55 -54
  194. package/core/variables.js +9 -2
  195. package/core/variables_dynamic.js +3 -1
  196. package/core/warning.js +126 -120
  197. package/core/widgetdiv.js +4 -4
  198. package/core/workspace.js +685 -664
  199. package/core/workspace_audio.js +124 -118
  200. package/core/workspace_comment.js +308 -298
  201. package/core/workspace_comment_svg.js +1029 -951
  202. package/core/workspace_drag_surface_svg.js +147 -140
  203. package/core/workspace_dragger.js +70 -71
  204. package/core/workspace_svg.js +2322 -2297
  205. package/core/xml.js +30 -20
  206. package/core/zoom_controls.js +431 -439
  207. package/dart_compressed.js +40 -43
  208. package/dart_compressed.js.map +1 -1
  209. package/generators/dart/colour.js +56 -64
  210. package/generators/dart/lists.js +61 -50
  211. package/generators/dart/math.js +160 -148
  212. package/generators/dart/text.js +83 -61
  213. package/generators/javascript/colour.js +37 -34
  214. package/generators/javascript/lists.js +50 -43
  215. package/generators/javascript/math.js +123 -139
  216. package/generators/javascript/text.js +67 -81
  217. package/generators/lua/colour.js +25 -23
  218. package/generators/lua/lists.js +97 -69
  219. package/generators/lua/logic.js +1 -2
  220. package/generators/lua/math.js +182 -144
  221. package/generators/lua/text.js +116 -99
  222. package/generators/php/colour.js +38 -32
  223. package/generators/php/lists.js +109 -89
  224. package/generators/php/math.js +90 -81
  225. package/generators/php/text.js +63 -61
  226. package/generators/python/colour.js +18 -18
  227. package/generators/python/lists.js +38 -30
  228. package/generators/python/loops.js +12 -8
  229. package/generators/python/math.js +104 -106
  230. package/generators/python/text.js +34 -30
  231. package/javascript_compressed.js +37 -39
  232. package/javascript_compressed.js.map +1 -1
  233. package/lua_compressed.js +39 -42
  234. package/lua_compressed.js.map +1 -1
  235. package/msg/az.js +2 -2
  236. package/msg/be.js +4 -4
  237. package/msg/cs.js +15 -15
  238. package/msg/de.js +1 -1
  239. package/msg/diq.js +1 -1
  240. package/msg/eo.js +1 -1
  241. package/msg/es.js +1 -1
  242. package/msg/fa.js +1 -1
  243. package/msg/fr.js +4 -4
  244. package/msg/he.js +1 -1
  245. package/msg/hr.js +2 -2
  246. package/msg/hy.js +2 -2
  247. package/msg/id.js +12 -12
  248. package/msg/inh.js +14 -14
  249. package/msg/ja.js +7 -7
  250. package/msg/lv.js +29 -29
  251. package/msg/pa.js +3 -3
  252. package/msg/smn.js +436 -0
  253. package/msg/te.js +1 -1
  254. package/msg/yue.js +1 -1
  255. package/msg/zh-hans.js +3 -3
  256. package/msg/zh-hant.js +3 -3
  257. package/package.json +7 -6
  258. package/php_compressed.js +38 -42
  259. package/php_compressed.js.map +1 -1
  260. package/python_compressed.js +26 -25
  261. package/python_compressed.js.map +1 -1
  262. package/blocks/all.js +0 -23
@@ -14,49 +14,62 @@
14
14
  */
15
15
  goog.module('Blockly.blockRendering.InputConnection');
16
16
 
17
- const object = goog.require('Blockly.utils.object');
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
- const InputConnection = function(constants, input) {
38
- InputConnection.superClass_.constructor.call(
39
- this, constants, input.connection);
40
-
41
- this.type |= Types.INPUT;
42
- this.input = input;
43
- this.align = input.align;
44
- this.connectedBlock = input.connection && input.connection.targetBlock() ?
45
- input.connection.targetBlock() :
46
- null;
47
-
48
- if (this.connectedBlock) {
49
- const bBox = this.connectedBlock.getHeightWidth();
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
- this.connectionOffsetX = 0;
58
- this.connectionOffsetY = 0;
59
- };
60
- object.inherits(InputConnection, Connection);
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
- const InputRow = function(constants) {
36
- InputRow.superClass_.constructor.call(this, constants);
37
- this.type |= Types.INPUT_ROW;
38
-
34
+ class InputRow extends Row {
39
35
  /**
40
- * The total width of all blocks connected to this row.
41
- * @type {number}
36
+ * @param {!ConstantProvider} constants The rendering
37
+ * constants provider.
42
38
  * @package
43
39
  */
44
- this.connectedBlockWidths = 0;
45
- };
46
- object.inherits(InputRow, Row);
40
+ constructor(constants) {
41
+ super(constants);
42
+ this.type |= Types.INPUT_ROW;
47
43
 
48
- /**
49
- * Inspect all subcomponents and populate all size properties on the row.
50
- * @package
51
- */
52
- InputRow.prototype.measure = function() {
53
- this.width = this.minWidth;
54
- this.height = this.minHeight;
55
- let connectedBlockWidths = 0;
56
- for (let i = 0; i < this.elements.length; i++) {
57
- const elem = this.elements[i];
58
- this.width += elem.width;
59
- if (Types.isInput(elem)) {
60
- if (Types.isStatementInput(elem)) {
61
- connectedBlockWidths += elem.connectedBlockWidth;
62
- } else if (
63
- Types.isExternalInput(elem) && elem.connectedBlockWidth !== 0) {
64
- connectedBlockWidths +=
65
- (elem.connectedBlockWidth - elem.connectionWidth);
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
- if (!(Types.isSpacer(elem))) {
69
- this.height = Math.max(this.height, elem.height);
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
- * @override
78
- */
79
- InputRow.prototype.endsWithElemSpacer = function() {
80
- return !this.hasExternalInput && !this.hasStatement;
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
- const JaggedEdge = function(constants) {
37
- JaggedEdge.superClass_.constructor.call(this, constants);
38
- this.type |= Types.JAGGED_EDGE;
39
- this.height = this.constants_.JAGGED_TEETH.height;
40
- this.width = this.constants_.JAGGED_TEETH.width;
41
- };
42
- object.inherits(JaggedEdge, Measurable);
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
- const NextConnection = function(constants, connectionModel) {
41
- NextConnection.superClass_.constructor.call(this, constants, connectionModel);
42
- this.type |= Types.NEXT_CONNECTION;
43
- this.height = this.shape.height;
44
- this.width = this.shape.width;
45
- };
46
- object.inherits(NextConnection, Connection);
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
- const OutputConnection = function(constants, connectionModel) {
42
- OutputConnection.superClass_.constructor.call(
43
- this, constants, connectionModel);
44
- this.type |= Types.OUTPUT_CONNECTION;
45
-
46
- this.height = !this.isDynamicShape ? this.shape.height : 0;
47
- this.width = !this.isDynamicShape ? this.shape.width : 0;
48
- this.startX = this.width;
49
-
50
- this.connectionOffsetY = this.constants_.TAB_OFFSET_FROM_TOP;
51
- this.connectionOffsetX = 0;
52
- };
53
- object.inherits(OutputConnection, Connection);
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
- const PreviousConnection = function(constants, connectionModel) {
41
- PreviousConnection.superClass_.constructor.call(
42
- this, constants, connectionModel);
43
- this.type |= Types.PREVIOUS_CONNECTION;
44
- this.height = this.shape.height;
45
- this.width = this.shape.width;
46
- };
47
- object.inherits(PreviousConnection, Connection);
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
- const RoundCorner = function(constants, opt_position) {
38
- RoundCorner.superClass_.constructor.call(this, constants);
39
- this.type =
40
- ((!opt_position || opt_position === 'left') ? Types.LEFT_ROUND_CORNER :
41
- Types.RIGHT_ROUND_CORNER) |
42
- Types.CORNER;
43
- this.width = this.constants_.CORNER_RADIUS;
44
- // The rounded corner extends into the next row by 4 so we only take the
45
- // height that is aligned with this row.
46
- this.height = this.constants_.CORNER_RADIUS / 2;
47
- };
48
- object.inherits(RoundCorner, Measurable);
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;