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
@@ -18,7 +18,7 @@ goog.module('Blockly.blockRendering.PathObject');
18
18
 
19
19
  const dom = goog.require('Blockly.utils.dom');
20
20
  /* eslint-disable-next-line no-unused-vars */
21
- const {Block} = goog.requireType('Blockly.Block');
21
+ const {BlockSvg} = goog.requireType('Blockly.BlockSvg');
22
22
  /* eslint-disable-next-line no-unused-vars */
23
23
  const {Connection} = goog.requireType('Blockly.Connection');
24
24
  /* eslint-disable-next-line no-unused-vars */
@@ -33,248 +33,251 @@ const {Theme} = goog.requireType('Blockly.Theme');
33
33
  /**
34
34
  * An object that handles creating and setting each of the SVG elements
35
35
  * used by the renderer.
36
- * @param {!SVGElement} root The root SVG element.
37
- * @param {!Theme.BlockStyle} style The style object to use for
38
- * colouring.
39
- * @param {!ConstantProvider} constants The renderer's
40
- * constants.
41
- * @constructor
42
36
  * @implements {IPathObject}
43
- * @package
44
37
  * @alias Blockly.blockRendering.PathObject
45
38
  */
46
- const PathObject = function(root, style, constants) {
39
+ class PathObject {
47
40
  /**
48
- * The renderer's constant provider.
49
- * @type {!ConstantProvider}
41
+ * @param {!SVGElement} root The root SVG element.
42
+ * @param {!Theme.BlockStyle} style The style object to use for
43
+ * colouring.
44
+ * @param {!ConstantProvider} constants The renderer's
45
+ * constants.
50
46
  * @package
51
47
  */
52
- this.constants = constants;
48
+ constructor(root, style, constants) {
49
+ /**
50
+ * The renderer's constant provider.
51
+ * @type {!ConstantProvider}
52
+ * @package
53
+ */
54
+ this.constants = constants;
53
55
 
54
- this.svgRoot = root;
56
+ this.svgRoot = root;
57
+
58
+ /**
59
+ * The primary path of the block.
60
+ * @type {!SVGElement}
61
+ * @package
62
+ */
63
+ this.svgPath =
64
+ dom.createSvgElement(Svg.PATH, {'class': 'blocklyPath'}, this.svgRoot);
65
+
66
+ /**
67
+ * The style object to use when colouring block paths.
68
+ * @type {!Theme.BlockStyle}
69
+ * @package
70
+ */
71
+ this.style = style;
72
+
73
+ /**
74
+ * Holds the cursors svg element when the cursor is attached to the block.
75
+ * This is null if there is no cursor on the block.
76
+ * @type {SVGElement}
77
+ * @package
78
+ */
79
+ this.cursorSvg = null;
80
+
81
+ /**
82
+ * Holds the markers svg element when the marker is attached to the block.
83
+ * This is null if there is no marker on the block.
84
+ * @type {SVGElement}
85
+ * @package
86
+ */
87
+ this.markerSvg = null;
88
+ }
55
89
 
56
90
  /**
57
- * The primary path of the block.
58
- * @type {!SVGElement}
91
+ * Set the path generated by the renderer onto the respective SVG element.
92
+ * @param {string} pathString The path.
59
93
  * @package
60
94
  */
61
- this.svgPath =
62
- dom.createSvgElement(Svg.PATH, {'class': 'blocklyPath'}, this.svgRoot);
95
+ setPath(pathString) {
96
+ this.svgPath.setAttribute('d', pathString);
97
+ }
63
98
 
64
99
  /**
65
- * The style object to use when colouring block paths.
66
- * @type {!Theme.BlockStyle}
100
+ * Flip the SVG paths in RTL.
67
101
  * @package
68
102
  */
69
- this.style = style;
103
+ flipRTL() {
104
+ // Mirror the block's path.
105
+ this.svgPath.setAttribute('transform', 'scale(-1 1)');
106
+ }
70
107
 
71
108
  /**
72
- * Holds the cursors svg element when the cursor is attached to the block.
73
- * This is null if there is no cursor on the block.
74
- * @type {SVGElement}
109
+ * Add the cursor SVG to this block's SVG group.
110
+ * @param {SVGElement} cursorSvg The SVG root of the cursor to be added to the
111
+ * block SVG group.
75
112
  * @package
76
113
  */
77
- this.cursorSvg = null;
114
+ setCursorSvg(cursorSvg) {
115
+ if (!cursorSvg) {
116
+ this.cursorSvg = null;
117
+ return;
118
+ }
119
+
120
+ this.svgRoot.appendChild(cursorSvg);
121
+ this.cursorSvg = cursorSvg;
122
+ }
78
123
 
79
124
  /**
80
- * Holds the markers svg element when the marker is attached to the block.
81
- * This is null if there is no marker on the block.
82
- * @type {SVGElement}
125
+ * Add the marker SVG to this block's SVG group.
126
+ * @param {SVGElement} markerSvg The SVG root of the marker to be added to the
127
+ * block SVG group.
83
128
  * @package
84
129
  */
85
- this.markerSvg = null;
86
- };
130
+ setMarkerSvg(markerSvg) {
131
+ if (!markerSvg) {
132
+ this.markerSvg = null;
133
+ return;
134
+ }
87
135
 
88
- /**
89
- * Set the path generated by the renderer onto the respective SVG element.
90
- * @param {string} pathString The path.
91
- * @package
92
- */
93
- PathObject.prototype.setPath = function(pathString) {
94
- this.svgPath.setAttribute('d', pathString);
95
- };
96
-
97
- /**
98
- * Flip the SVG paths in RTL.
99
- * @package
100
- */
101
- PathObject.prototype.flipRTL = function() {
102
- // Mirror the block's path.
103
- this.svgPath.setAttribute('transform', 'scale(-1 1)');
104
- };
105
-
106
- /**
107
- * Add the cursor SVG to this block's SVG group.
108
- * @param {SVGElement} cursorSvg The SVG root of the cursor to be added to the
109
- * block SVG group.
110
- * @package
111
- */
112
- PathObject.prototype.setCursorSvg = function(cursorSvg) {
113
- if (!cursorSvg) {
114
- this.cursorSvg = null;
115
- return;
136
+ if (this.cursorSvg) {
137
+ this.svgRoot.insertBefore(markerSvg, this.cursorSvg);
138
+ } else {
139
+ this.svgRoot.appendChild(markerSvg);
140
+ }
141
+ this.markerSvg = markerSvg;
116
142
  }
117
143
 
118
- this.svgRoot.appendChild(cursorSvg);
119
- this.cursorSvg = cursorSvg;
120
- };
144
+ /**
145
+ * Apply the stored colours to the block's path, taking into account whether
146
+ * the paths belong to a shadow block.
147
+ * @param {!BlockSvg} block The source block.
148
+ * @package
149
+ */
150
+ applyColour(block) {
151
+ this.svgPath.setAttribute('stroke', this.style.colourTertiary);
152
+ this.svgPath.setAttribute('fill', this.style.colourPrimary);
121
153
 
122
- /**
123
- * Add the marker SVG to this block's SVG group.
124
- * @param {SVGElement} markerSvg The SVG root of the marker to be added to the
125
- * block SVG group.
126
- * @package
127
- */
128
- PathObject.prototype.setMarkerSvg = function(markerSvg) {
129
- if (!markerSvg) {
130
- this.markerSvg = null;
131
- return;
154
+ this.updateShadow_(block.isShadow());
155
+ this.updateDisabled_(!block.isEnabled() || block.getInheritedDisabled());
132
156
  }
133
157
 
134
- if (this.cursorSvg) {
135
- this.svgRoot.insertBefore(markerSvg, this.cursorSvg);
136
- } else {
137
- this.svgRoot.appendChild(markerSvg);
158
+ /**
159
+ * Set the style.
160
+ * @param {!Theme.BlockStyle} blockStyle The block style to use.
161
+ * @package
162
+ */
163
+ setStyle(blockStyle) {
164
+ this.style = blockStyle;
138
165
  }
139
- this.markerSvg = markerSvg;
140
- };
141
-
142
- /**
143
- * Apply the stored colours to the block's path, taking into account whether
144
- * the paths belong to a shadow block.
145
- * @param {!Block} block The source block.
146
- * @package
147
- */
148
- PathObject.prototype.applyColour = function(block) {
149
- this.svgPath.setAttribute('stroke', this.style.colourTertiary);
150
- this.svgPath.setAttribute('fill', this.style.colourPrimary);
151
-
152
- this.updateShadow_(block.isShadow());
153
- this.updateDisabled_(!block.isEnabled() || block.getInheritedDisabled());
154
- };
155
-
156
- /**
157
- * Set the style.
158
- * @param {!Theme.BlockStyle} blockStyle The block style to use.
159
- * @package
160
- */
161
- PathObject.prototype.setStyle = function(blockStyle) {
162
- this.style = blockStyle;
163
- };
164
166
 
165
- /**
166
- * Add or remove the given CSS class on the path object's root SVG element.
167
- * @param {string} className The name of the class to add or remove
168
- * @param {boolean} add True if the class should be added. False if it should
169
- * be removed.
170
- * @protected
171
- */
172
- PathObject.prototype.setClass_ = function(className, add) {
173
- if (add) {
174
- dom.addClass(/** @type {!Element} */ (this.svgRoot), className);
175
- } else {
176
- dom.removeClass(/** @type {!Element} */ (this.svgRoot), className);
167
+ /**
168
+ * Add or remove the given CSS class on the path object's root SVG element.
169
+ * @param {string} className The name of the class to add or remove
170
+ * @param {boolean} add True if the class should be added. False if it should
171
+ * be removed.
172
+ * @protected
173
+ */
174
+ setClass_(className, add) {
175
+ if (add) {
176
+ dom.addClass(/** @type {!Element} */ (this.svgRoot), className);
177
+ } else {
178
+ dom.removeClass(/** @type {!Element} */ (this.svgRoot), className);
179
+ }
177
180
  }
178
- };
179
181
 
180
- /**
181
- * Set whether the block shows a highlight or not. Block highlighting is
182
- * often used to visually mark blocks currently being executed.
183
- * @param {boolean} enable True if highlighted.
184
- * @package
185
- */
186
- PathObject.prototype.updateHighlighted = function(enable) {
187
- if (enable) {
188
- this.svgPath.setAttribute(
189
- 'filter', 'url(#' + this.constants.embossFilterId + ')');
190
- } else {
191
- this.svgPath.setAttribute('filter', 'none');
182
+ /**
183
+ * Set whether the block shows a highlight or not. Block highlighting is
184
+ * often used to visually mark blocks currently being executed.
185
+ * @param {boolean} enable True if highlighted.
186
+ * @package
187
+ */
188
+ updateHighlighted(enable) {
189
+ if (enable) {
190
+ this.svgPath.setAttribute(
191
+ 'filter', 'url(#' + this.constants.embossFilterId + ')');
192
+ } else {
193
+ this.svgPath.setAttribute('filter', 'none');
194
+ }
192
195
  }
193
- };
194
196
 
195
- /**
196
- * Updates the look of the block to reflect a shadow state.
197
- * @param {boolean} shadow True if the block is a shadow block.
198
- * @protected
199
- */
200
- PathObject.prototype.updateShadow_ = function(shadow) {
201
- if (shadow) {
202
- this.svgPath.setAttribute('stroke', 'none');
203
- this.svgPath.setAttribute('fill', this.style.colourSecondary);
197
+ /**
198
+ * Updates the look of the block to reflect a shadow state.
199
+ * @param {boolean} shadow True if the block is a shadow block.
200
+ * @protected
201
+ */
202
+ updateShadow_(shadow) {
203
+ if (shadow) {
204
+ this.svgPath.setAttribute('stroke', 'none');
205
+ this.svgPath.setAttribute('fill', this.style.colourSecondary);
206
+ }
204
207
  }
205
- };
206
208
 
207
- /**
208
- * Updates the look of the block to reflect a disabled state.
209
- * @param {boolean} disabled True if disabled.
210
- * @protected
211
- */
212
- PathObject.prototype.updateDisabled_ = function(disabled) {
213
- this.setClass_('blocklyDisabled', disabled);
214
- if (disabled) {
215
- this.svgPath.setAttribute(
216
- 'fill', 'url(#' + this.constants.disabledPatternId + ')');
209
+ /**
210
+ * Updates the look of the block to reflect a disabled state.
211
+ * @param {boolean} disabled True if disabled.
212
+ * @protected
213
+ */
214
+ updateDisabled_(disabled) {
215
+ this.setClass_('blocklyDisabled', disabled);
216
+ if (disabled) {
217
+ this.svgPath.setAttribute(
218
+ 'fill', 'url(#' + this.constants.disabledPatternId + ')');
219
+ }
217
220
  }
218
- };
219
221
 
220
- /**
221
- * Add or remove styling showing that a block is selected.
222
- * @param {boolean} enable True if selection is enabled, false otherwise.
223
- * @package
224
- */
225
- PathObject.prototype.updateSelected = function(enable) {
226
- this.setClass_('blocklySelected', enable);
227
- };
222
+ /**
223
+ * Add or remove styling showing that a block is selected.
224
+ * @param {boolean} enable True if selection is enabled, false otherwise.
225
+ * @package
226
+ */
227
+ updateSelected(enable) {
228
+ this.setClass_('blocklySelected', enable);
229
+ }
228
230
 
229
- /**
230
- * Add or remove styling showing that a block is dragged over a delete area.
231
- * @param {boolean} enable True if the block is being dragged over a delete
232
- * area, false otherwise.
233
- * @package
234
- */
235
- PathObject.prototype.updateDraggingDelete = function(enable) {
236
- this.setClass_('blocklyDraggingDelete', enable);
237
- };
231
+ /**
232
+ * Add or remove styling showing that a block is dragged over a delete area.
233
+ * @param {boolean} enable True if the block is being dragged over a delete
234
+ * area, false otherwise.
235
+ * @package
236
+ */
237
+ updateDraggingDelete(enable) {
238
+ this.setClass_('blocklyDraggingDelete', enable);
239
+ }
238
240
 
239
- /**
240
- * Add or remove styling showing that a block is an insertion marker.
241
- * @param {boolean} enable True if the block is an insertion marker, false
242
- * otherwise.
243
- * @package
244
- */
245
- PathObject.prototype.updateInsertionMarker = function(enable) {
246
- this.setClass_('blocklyInsertionMarker', enable);
247
- };
241
+ /**
242
+ * Add or remove styling showing that a block is an insertion marker.
243
+ * @param {boolean} enable True if the block is an insertion marker, false
244
+ * otherwise.
245
+ * @package
246
+ */
247
+ updateInsertionMarker(enable) {
248
+ this.setClass_('blocklyInsertionMarker', enable);
249
+ }
248
250
 
249
- /**
250
- * Add or remove styling showing that a block is movable.
251
- * @param {boolean} enable True if the block is movable, false otherwise.
252
- * @package
253
- */
254
- PathObject.prototype.updateMovable = function(enable) {
255
- this.setClass_('blocklyDraggable', enable);
256
- };
251
+ /**
252
+ * Add or remove styling showing that a block is movable.
253
+ * @param {boolean} enable True if the block is movable, false otherwise.
254
+ * @package
255
+ */
256
+ updateMovable(enable) {
257
+ this.setClass_('blocklyDraggable', enable);
258
+ }
257
259
 
258
- /**
259
- * Add or remove styling that shows that if the dragging block is dropped, this
260
- * block will be replaced. If a shadow block, it will disappear. Otherwise it
261
- * will bump.
262
- * @param {boolean} enable True if styling should be added.
263
- * @package
264
- */
265
- PathObject.prototype.updateReplacementFade = function(enable) {
266
- this.setClass_('blocklyReplaceable', enable);
267
- };
260
+ /**
261
+ * Add or remove styling that shows that if the dragging block is dropped,
262
+ * this block will be replaced. If a shadow block, it will disappear.
263
+ * Otherwise it will bump.
264
+ * @param {boolean} enable True if styling should be added.
265
+ * @package
266
+ */
267
+ updateReplacementFade(enable) {
268
+ this.setClass_('blocklyReplaceable', enable);
269
+ }
268
270
 
269
- /**
270
- * Add or remove styling that shows that if the dragging block is dropped, this
271
- * block will be connected to the input.
272
- * @param {Connection} _conn The connection on the input to highlight.
273
- * @param {boolean} _enable True if styling should be added.
274
- * @package
275
- */
276
- PathObject.prototype.updateShapeForInputHighlight = function(_conn, _enable) {
277
- // NOP
278
- };
271
+ /**
272
+ * Add or remove styling that shows that if the dragging block is dropped,
273
+ * this block will be connected to the input.
274
+ * @param {Connection} _conn The connection on the input to highlight.
275
+ * @param {boolean} _enable True if styling should be added.
276
+ * @package
277
+ */
278
+ updateShapeForInputHighlight(_conn, _enable) {
279
+ // NOP
280
+ }
281
+ }
279
282
 
280
283
  exports.PathObject = PathObject;