scratch-blocks 2.0.2 → 2.0.4

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 (275) hide show
  1. package/.nvmrc +1 -1
  2. package/commitlint.config.js +2 -2
  3. package/dist/main.mjs +1 -2
  4. package/dist/types/msg/scratch_msgs.d.ts.map +1 -1
  5. package/dist/types/src/block_reporting.d.ts.map +1 -1
  6. package/dist/types/src/blocks/colour.d.ts +0 -19
  7. package/dist/types/src/blocks/colour.d.ts.map +1 -1
  8. package/dist/types/src/blocks/control.d.ts +0 -19
  9. package/dist/types/src/blocks/control.d.ts.map +1 -1
  10. package/dist/types/src/blocks/data.d.ts +0 -19
  11. package/dist/types/src/blocks/data.d.ts.map +1 -1
  12. package/dist/types/src/blocks/event.d.ts +0 -19
  13. package/dist/types/src/blocks/event.d.ts.map +1 -1
  14. package/dist/types/src/blocks/looks.d.ts +0 -19
  15. package/dist/types/src/blocks/looks.d.ts.map +1 -1
  16. package/dist/types/src/blocks/math.d.ts +0 -19
  17. package/dist/types/src/blocks/math.d.ts.map +1 -1
  18. package/dist/types/src/blocks/matrix.d.ts +0 -19
  19. package/dist/types/src/blocks/matrix.d.ts.map +1 -1
  20. package/dist/types/src/blocks/motion.d.ts +0 -19
  21. package/dist/types/src/blocks/motion.d.ts.map +1 -1
  22. package/dist/types/src/blocks/note.d.ts +0 -19
  23. package/dist/types/src/blocks/note.d.ts.map +1 -1
  24. package/dist/types/src/blocks/operators.d.ts +0 -19
  25. package/dist/types/src/blocks/operators.d.ts.map +1 -1
  26. package/dist/types/src/blocks/procedures.d.ts +7 -10
  27. package/dist/types/src/blocks/procedures.d.ts.map +1 -1
  28. package/dist/types/src/blocks/sensing.d.ts +0 -19
  29. package/dist/types/src/blocks/sensing.d.ts.map +1 -1
  30. package/dist/types/src/blocks/sound.d.ts +0 -19
  31. package/dist/types/src/blocks/sound.d.ts.map +1 -1
  32. package/dist/types/src/blocks/text.d.ts +0 -19
  33. package/dist/types/src/blocks/text.d.ts.map +1 -1
  34. package/dist/types/src/blocks/vertical_extensions.d.ts +0 -19
  35. package/dist/types/src/blocks/vertical_extensions.d.ts.map +1 -1
  36. package/dist/types/src/checkable_continuous_flyout.d.ts +2 -7
  37. package/dist/types/src/checkable_continuous_flyout.d.ts.map +1 -1
  38. package/dist/types/src/checkbox_bubble.d.ts +13 -12
  39. package/dist/types/src/checkbox_bubble.d.ts.map +1 -1
  40. package/dist/types/src/colours.d.ts.map +1 -1
  41. package/dist/types/src/constants.d.ts +0 -7
  42. package/dist/types/src/constants.d.ts.map +1 -1
  43. package/dist/types/src/context_menu_items.d.ts +0 -5
  44. package/dist/types/src/context_menu_items.d.ts.map +1 -1
  45. package/dist/types/src/data_category.d.ts +2 -4
  46. package/dist/types/src/data_category.d.ts.map +1 -1
  47. package/dist/types/src/events/events_block_comment_base.d.ts +2 -3
  48. package/dist/types/src/events/events_block_comment_base.d.ts.map +1 -1
  49. package/dist/types/src/events/events_block_comment_change.d.ts +0 -5
  50. package/dist/types/src/events/events_block_comment_change.d.ts.map +1 -1
  51. package/dist/types/src/events/events_block_comment_collapse.d.ts +0 -5
  52. package/dist/types/src/events/events_block_comment_collapse.d.ts.map +1 -1
  53. package/dist/types/src/events/events_block_comment_create.d.ts +0 -5
  54. package/dist/types/src/events/events_block_comment_create.d.ts.map +1 -1
  55. package/dist/types/src/events/events_block_comment_delete.d.ts +0 -5
  56. package/dist/types/src/events/events_block_comment_delete.d.ts.map +1 -1
  57. package/dist/types/src/events/events_block_comment_move.d.ts +0 -5
  58. package/dist/types/src/events/events_block_comment_move.d.ts.map +1 -1
  59. package/dist/types/src/events/events_block_comment_resize.d.ts +0 -5
  60. package/dist/types/src/events/events_block_comment_resize.d.ts.map +1 -1
  61. package/dist/types/src/events/events_block_drag_end.d.ts +1 -2
  62. package/dist/types/src/events/events_block_drag_end.d.ts.map +1 -1
  63. package/dist/types/src/events/events_block_drag_outside.d.ts +1 -2
  64. package/dist/types/src/events/events_block_drag_outside.d.ts.map +1 -1
  65. package/dist/types/src/events/events_scratch_variable_create.d.ts +0 -5
  66. package/dist/types/src/events/events_scratch_variable_create.d.ts.map +1 -1
  67. package/dist/types/src/fields/field_colour_slider.d.ts +7 -9
  68. package/dist/types/src/fields/field_colour_slider.d.ts.map +1 -1
  69. package/dist/types/src/fields/field_matrix.d.ts +0 -19
  70. package/dist/types/src/fields/field_matrix.d.ts.map +1 -1
  71. package/dist/types/src/fields/field_note.d.ts +8 -23
  72. package/dist/types/src/fields/field_note.d.ts.map +1 -1
  73. package/dist/types/src/fields/field_textinput_removable.d.ts +2 -4
  74. package/dist/types/src/fields/field_textinput_removable.d.ts.map +1 -1
  75. package/dist/types/src/fields/field_variable_getter.d.ts +0 -19
  76. package/dist/types/src/fields/field_variable_getter.d.ts.map +1 -1
  77. package/dist/types/src/fields/field_vertical_separator.d.ts +0 -19
  78. package/dist/types/src/fields/field_vertical_separator.d.ts.map +1 -1
  79. package/dist/types/src/fields/scratch_field_angle.d.ts +0 -19
  80. package/dist/types/src/fields/scratch_field_angle.d.ts.map +1 -1
  81. package/dist/types/src/fields/scratch_field_dropdown.d.ts +0 -5
  82. package/dist/types/src/fields/scratch_field_dropdown.d.ts.map +1 -1
  83. package/dist/types/src/fields/scratch_field_number.d.ts +0 -19
  84. package/dist/types/src/fields/scratch_field_number.d.ts.map +1 -1
  85. package/dist/types/src/fields/scratch_field_variable.d.ts +4 -7
  86. package/dist/types/src/fields/scratch_field_variable.d.ts.map +1 -1
  87. package/dist/types/src/flyout_checkbox_icon.d.ts +2 -3
  88. package/dist/types/src/flyout_checkbox_icon.d.ts.map +1 -1
  89. package/dist/types/src/glows.d.ts +1 -3
  90. package/dist/types/src/glows.d.ts.map +1 -1
  91. package/dist/types/src/index.d.ts +50 -55
  92. package/dist/types/src/index.d.ts.map +1 -1
  93. package/dist/types/src/procedures.d.ts +6 -8
  94. package/dist/types/src/procedures.d.ts.map +1 -1
  95. package/dist/types/src/recyclable_block_flyout_inflater.d.ts +3 -5
  96. package/dist/types/src/recyclable_block_flyout_inflater.d.ts.map +1 -1
  97. package/dist/types/src/renderer/bowler_hat.d.ts +2 -3
  98. package/dist/types/src/renderer/bowler_hat.d.ts.map +1 -1
  99. package/dist/types/src/renderer/cat/cat_face.d.ts +6 -5
  100. package/dist/types/src/renderer/cat/cat_face.d.ts.map +1 -1
  101. package/dist/types/src/renderer/cat/constants.d.ts +2 -2
  102. package/dist/types/src/renderer/cat/constants.d.ts.map +1 -1
  103. package/dist/types/src/renderer/cat/drawer.d.ts +3 -4
  104. package/dist/types/src/renderer/cat/drawer.d.ts.map +1 -1
  105. package/dist/types/src/renderer/cat/path_object.d.ts +2 -3
  106. package/dist/types/src/renderer/cat/path_object.d.ts.map +1 -1
  107. package/dist/types/src/renderer/cat/render_info.d.ts +3 -4
  108. package/dist/types/src/renderer/cat/render_info.d.ts.map +1 -1
  109. package/dist/types/src/renderer/cat/renderer.d.ts +6 -7
  110. package/dist/types/src/renderer/cat/renderer.d.ts.map +1 -1
  111. package/dist/types/src/renderer/constants.d.ts +4 -4
  112. package/dist/types/src/renderer/constants.d.ts.map +1 -1
  113. package/dist/types/src/renderer/drawer.d.ts +5 -4
  114. package/dist/types/src/renderer/drawer.d.ts.map +1 -1
  115. package/dist/types/src/renderer/path_object.d.ts +1 -3
  116. package/dist/types/src/renderer/path_object.d.ts.map +1 -1
  117. package/dist/types/src/renderer/render_info.d.ts +3 -4
  118. package/dist/types/src/renderer/render_info.d.ts.map +1 -1
  119. package/dist/types/src/renderer/renderer.d.ts +8 -15
  120. package/dist/types/src/renderer/renderer.d.ts.map +1 -1
  121. package/dist/types/src/scratch_block_paster.d.ts +0 -5
  122. package/dist/types/src/scratch_block_paster.d.ts.map +1 -1
  123. package/dist/types/src/scratch_blocks_utils.d.ts +0 -20
  124. package/dist/types/src/scratch_blocks_utils.d.ts.map +1 -1
  125. package/dist/types/src/scratch_comment_bubble.d.ts +1 -4
  126. package/dist/types/src/scratch_comment_bubble.d.ts.map +1 -1
  127. package/dist/types/src/scratch_comment_icon.d.ts +2 -3
  128. package/dist/types/src/scratch_comment_icon.d.ts.map +1 -1
  129. package/dist/types/src/scratch_connection_checker.d.ts +0 -5
  130. package/dist/types/src/scratch_connection_checker.d.ts.map +1 -1
  131. package/dist/types/src/scratch_continuous_category.d.ts +5 -5
  132. package/dist/types/src/scratch_continuous_category.d.ts.map +1 -1
  133. package/dist/types/src/scratch_continuous_toolbox.d.ts +3 -6
  134. package/dist/types/src/scratch_continuous_toolbox.d.ts.map +1 -1
  135. package/dist/types/src/scratch_dragger.d.ts +3 -12
  136. package/dist/types/src/scratch_dragger.d.ts.map +1 -1
  137. package/dist/types/src/scratch_insertion_marker_previewer.d.ts +0 -5
  138. package/dist/types/src/scratch_insertion_marker_previewer.d.ts.map +1 -1
  139. package/dist/types/src/scratch_variable_map.d.ts +0 -5
  140. package/dist/types/src/scratch_variable_map.d.ts.map +1 -1
  141. package/dist/types/src/scratch_variable_model.d.ts +1 -2
  142. package/dist/types/src/scratch_variable_model.d.ts.map +1 -1
  143. package/dist/types/src/scratch_zoom_controls.d.ts +4 -6
  144. package/dist/types/src/scratch_zoom_controls.d.ts.map +1 -1
  145. package/dist/types/src/shadows.d.ts +2 -2
  146. package/dist/types/src/shadows.d.ts.map +1 -1
  147. package/dist/types/src/status_indicator_label.d.ts +4 -6
  148. package/dist/types/src/status_indicator_label.d.ts.map +1 -1
  149. package/dist/types/src/status_indicator_label_flyout_inflater.d.ts +1 -6
  150. package/dist/types/src/status_indicator_label_flyout_inflater.d.ts.map +1 -1
  151. package/dist/types/src/variables.d.ts +4 -8
  152. package/dist/types/src/variables.d.ts.map +1 -1
  153. package/dist/types/src/xml.d.ts +2 -3
  154. package/dist/types/src/xml.d.ts.map +1 -1
  155. package/dist/types/tests/jsunit/block_test.d.ts.map +1 -1
  156. package/dist/types/tests/jsunit/connection_db_test.d.ts.map +1 -1
  157. package/dist/types/tests/jsunit/connection_test.d.ts.map +1 -1
  158. package/dist/types/tests/jsunit/event_test.d.ts.map +1 -1
  159. package/dist/types/tests/jsunit/extensions_test.d.ts.map +1 -1
  160. package/dist/types/tests/jsunit/field_number_test.d.ts.map +1 -1
  161. package/dist/types/tests/jsunit/field_test.d.ts.map +1 -1
  162. package/dist/types/tests/jsunit/field_variable_getter_test.d.ts.map +1 -1
  163. package/dist/types/tests/jsunit/field_variable_test.d.ts.map +1 -1
  164. package/dist/types/tests/jsunit/gesture_test.d.ts.map +1 -1
  165. package/dist/types/tests/jsunit/input_test.d.ts +1 -0
  166. package/dist/types/tests/jsunit/input_test.d.ts.map +1 -1
  167. package/dist/types/tests/jsunit/json_test.d.ts.map +1 -1
  168. package/dist/types/tests/jsunit/names_test.d.ts.map +1 -1
  169. package/dist/types/tests/jsunit/procedure_test.d.ts.map +1 -1
  170. package/dist/types/tests/jsunit/scratch_block_comment_test.d.ts.map +1 -1
  171. package/dist/types/tests/jsunit/svg_test.d.ts.map +1 -1
  172. package/dist/types/tests/jsunit/test_utilities.d.ts.map +1 -1
  173. package/dist/types/tests/jsunit/utils_test.d.ts.map +1 -1
  174. package/dist/types/tests/jsunit/variable_map_test.d.ts.map +1 -1
  175. package/dist/types/tests/jsunit/variable_model_test.d.ts.map +1 -1
  176. package/dist/types/tests/jsunit/widget_div_test.d.ts.map +1 -1
  177. package/dist/types/tests/jsunit/workspace_comment_test.d.ts.map +1 -1
  178. package/dist/types/tests/jsunit/workspace_test.d.ts.map +1 -1
  179. package/dist/types/tests/jsunit/workspace_undo_redo_test.d.ts.map +1 -1
  180. package/dist/types/tests/jsunit/xml_test.d.ts.map +1 -1
  181. package/dist/types/tests/workspace_svg/workspace_svg_test.d.ts.map +1 -1
  182. package/eslint.config.mjs +69 -0
  183. package/i18n/create_scratch_msgs.js +44 -45
  184. package/i18n/js_to_json.js +40 -32
  185. package/i18n/json_to_js.js +37 -37
  186. package/i18n/sync_tx_translations.js +64 -65
  187. package/i18n/test_scratch_msgs.js +66 -63
  188. package/msg/js/en.js +289 -287
  189. package/msg/json/en.json +284 -284
  190. package/msg/messages.js +289 -287
  191. package/msg/scratch_msgs.js +22959 -22970
  192. package/package.json +13 -10
  193. package/prettier.config.mjs +3 -0
  194. package/release.config.js +7 -7
  195. package/renovate.json5 +7 -9
  196. package/src/block_reporting.ts +15 -18
  197. package/src/blocks/colour.ts +12 -15
  198. package/src/blocks/control.ts +167 -177
  199. package/src/blocks/data.ts +225 -292
  200. package/src/blocks/event.ts +121 -123
  201. package/src/blocks/looks.ts +165 -167
  202. package/src/blocks/math.ts +44 -46
  203. package/src/blocks/matrix.ts +11 -13
  204. package/src/blocks/motion.ts +151 -153
  205. package/src/blocks/note.ts +11 -13
  206. package/src/blocks/operators.ts +158 -160
  207. package/src/blocks/procedures.ts +488 -536
  208. package/src/blocks/sensing.ts +163 -165
  209. package/src/blocks/sound.ts +58 -60
  210. package/src/blocks/text.ts +10 -12
  211. package/src/blocks/vertical_extensions.ts +86 -102
  212. package/src/checkable_continuous_flyout.ts +25 -42
  213. package/src/checkbox_bubble.ts +83 -100
  214. package/src/colours.ts +35 -37
  215. package/src/constants.ts +22 -29
  216. package/src/context_menu_items.ts +56 -81
  217. package/src/css.ts +3 -4
  218. package/src/data_category.ts +136 -250
  219. package/src/events/events_block_comment_base.ts +21 -31
  220. package/src/events/events_block_comment_change.ts +21 -42
  221. package/src/events/events_block_comment_collapse.ts +22 -43
  222. package/src/events/events_block_comment_create.ts +29 -46
  223. package/src/events/events_block_comment_delete.ts +10 -19
  224. package/src/events/events_block_comment_move.ts +27 -52
  225. package/src/events/events_block_comment_resize.ts +28 -55
  226. package/src/events/events_block_drag_end.ts +16 -26
  227. package/src/events/events_block_drag_outside.ts +12 -22
  228. package/src/events/events_scratch_variable_create.ts +33 -56
  229. package/src/fields/field_colour_slider.ts +173 -228
  230. package/src/fields/field_matrix.ts +200 -269
  231. package/src/fields/field_note.ts +272 -377
  232. package/src/fields/field_textinput_removable.ts +25 -40
  233. package/src/fields/field_variable_getter.ts +26 -31
  234. package/src/fields/field_vertical_separator.ts +19 -24
  235. package/src/fields/scratch_field_angle.ts +150 -186
  236. package/src/fields/scratch_field_dropdown.ts +15 -19
  237. package/src/fields/scratch_field_number.ts +123 -180
  238. package/src/fields/scratch_field_variable.ts +52 -73
  239. package/src/flyout_checkbox_icon.ts +18 -28
  240. package/src/glows.ts +51 -58
  241. package/src/index.ts +119 -133
  242. package/src/procedures.ts +144 -211
  243. package/src/recyclable_block_flyout_inflater.ts +14 -25
  244. package/src/renderer/bowler_hat.ts +6 -8
  245. package/src/renderer/cat/cat_face.ts +98 -99
  246. package/src/renderer/cat/constants.ts +67 -87
  247. package/src/renderer/cat/drawer.ts +21 -27
  248. package/src/renderer/cat/path_object.ts +3 -5
  249. package/src/renderer/cat/render_info.ts +5 -8
  250. package/src/renderer/cat/renderer.ts +11 -15
  251. package/src/renderer/constants.ts +34 -49
  252. package/src/renderer/drawer.ts +35 -51
  253. package/src/renderer/path_object.ts +13 -15
  254. package/src/renderer/render_info.ts +36 -56
  255. package/src/renderer/renderer.ts +16 -29
  256. package/src/scratch_block_paster.ts +12 -20
  257. package/src/scratch_blocks_utils.ts +4 -7
  258. package/src/scratch_comment_bubble.ts +70 -101
  259. package/src/scratch_comment_icon.ts +74 -123
  260. package/src/scratch_connection_checker.ts +22 -17
  261. package/src/scratch_continuous_category.ts +24 -28
  262. package/src/scratch_continuous_toolbox.ts +20 -27
  263. package/src/scratch_dragger.ts +54 -86
  264. package/src/scratch_insertion_marker_previewer.ts +6 -11
  265. package/src/scratch_variable_map.ts +5 -12
  266. package/src/scratch_variable_model.ts +4 -11
  267. package/src/scratch_zoom_controls.ts +101 -156
  268. package/src/shadows.ts +32 -37
  269. package/src/status_indicator_label.ts +54 -67
  270. package/src/status_indicator_label_flyout_inflater.ts +11 -21
  271. package/src/variables.ts +89 -138
  272. package/src/xml.ts +21 -35
  273. package/tsconfig.json +2 -6
  274. package/types/continuous-toolbox.d.ts +1 -1
  275. package/dist/main.mjs.LICENSE.txt +0 -163
@@ -1,5 +1,4 @@
1
1
  /**
2
- * @license
3
2
  * Visual Blocks Editor
4
3
  *
5
4
  * Copyright 2017 Google Inc.
@@ -17,100 +16,87 @@
17
16
  * See the License for the specific language governing permissions and
18
17
  * limitations under the License.
19
18
  */
20
-
21
19
  /**
22
- * @fileoverview Data Flyout components including variable and list blocks.
20
+ * @file Data Flyout components including variable and list blocks.
23
21
  * @author marisaleung@google.com (Marisa Leung)
24
22
  */
25
-
26
- import * as Blockly from "blockly/core";
27
- import { createVariable } from "./variables";
28
- import { LIST_VARIABLE_TYPE, SCALAR_VARIABLE_TYPE } from "./constants";
23
+ import * as Blockly from 'blockly/core'
24
+ import { LIST_VARIABLE_TYPE, SCALAR_VARIABLE_TYPE } from './constants'
25
+ import { createVariable } from './variables'
29
26
 
30
27
  /**
31
28
  * Construct the blocks required by the flyout for the variable category.
32
- *
33
29
  * @param workspace The workspace containing variables.
34
30
  * @returns Array of XML block elements.
35
31
  */
36
- export function getVariablesCategory(
37
- workspace: Blockly.WorkspaceSvg
38
- ): Element[] {
39
- const scalarVariables = workspace.getVariablesOfType(SCALAR_VARIABLE_TYPE);
40
- scalarVariables.sort(Blockly.Variables.compareByName);
41
- const xmlList: Element[] = [];
32
+ export function getVariablesCategory(workspace: Blockly.WorkspaceSvg): Element[] {
33
+ const scalarVariables = workspace.getVariablesOfType(SCALAR_VARIABLE_TYPE)
34
+ scalarVariables.sort(Blockly.Variables.compareByName)
35
+ const xmlList: Element[] = []
42
36
 
43
- addCreateButton(xmlList, workspace, "VARIABLE");
37
+ addCreateButton(xmlList, workspace, 'VARIABLE')
44
38
 
45
- scalarVariables.forEach((variable) => addDataVariable(xmlList, variable));
39
+ scalarVariables.forEach((variable) => addDataVariable(xmlList, variable))
46
40
 
47
41
  if (scalarVariables.length > 0) {
48
- xmlList[xmlList.length - 1].setAttribute("gap", "24");
49
- const firstVariable = scalarVariables[0];
42
+ xmlList[xmlList.length - 1].setAttribute('gap', '24')
43
+ const firstVariable = scalarVariables[0]
50
44
 
51
- addSetVariableTo(xmlList, firstVariable);
52
- addChangeVariableBy(xmlList, firstVariable);
53
- addShowVariable(xmlList, firstVariable);
54
- addHideVariable(xmlList, firstVariable);
45
+ addSetVariableTo(xmlList, firstVariable)
46
+ addChangeVariableBy(xmlList, firstVariable)
47
+ addShowVariable(xmlList, firstVariable)
48
+ addHideVariable(xmlList, firstVariable)
55
49
  }
56
50
 
57
51
  // Now add list variables to the flyout
58
- addCreateButton(xmlList, workspace, "LIST");
59
- const listVariables = workspace.getVariablesOfType(LIST_VARIABLE_TYPE);
60
- listVariables.sort(Blockly.Variables.compareByName);
61
- listVariables.forEach((variable) => addDataList(xmlList, variable));
52
+ addCreateButton(xmlList, workspace, 'LIST')
53
+ const listVariables = workspace.getVariablesOfType(LIST_VARIABLE_TYPE)
54
+ listVariables.sort(Blockly.Variables.compareByName)
55
+ listVariables.forEach((variable) => addDataList(xmlList, variable))
62
56
 
63
57
  if (listVariables.length > 0) {
64
- xmlList[xmlList.length - 1].setAttribute("gap", "24");
65
- const firstVariable = listVariables[0];
66
-
67
- addAddToList(xmlList, firstVariable);
68
- addSep(xmlList);
69
- addDeleteOfList(xmlList, firstVariable);
70
- addDeleteAllOfList(xmlList, firstVariable);
71
- addInsertAtList(xmlList, firstVariable);
72
- addReplaceItemOfList(xmlList, firstVariable);
73
- addSep(xmlList);
74
- addItemOfList(xmlList, firstVariable);
75
- addItemNumberOfList(xmlList, firstVariable);
76
- addLengthOfList(xmlList, firstVariable);
77
- addListContainsItem(xmlList, firstVariable);
78
- addSep(xmlList);
79
- addShowList(xmlList, firstVariable);
80
- addHideList(xmlList, firstVariable);
58
+ xmlList[xmlList.length - 1].setAttribute('gap', '24')
59
+ const firstVariable = listVariables[0]
60
+
61
+ addAddToList(xmlList, firstVariable)
62
+ addSep(xmlList)
63
+ addDeleteOfList(xmlList, firstVariable)
64
+ addDeleteAllOfList(xmlList, firstVariable)
65
+ addInsertAtList(xmlList, firstVariable)
66
+ addReplaceItemOfList(xmlList, firstVariable)
67
+ addSep(xmlList)
68
+ addItemOfList(xmlList, firstVariable)
69
+ addItemNumberOfList(xmlList, firstVariable)
70
+ addLengthOfList(xmlList, firstVariable)
71
+ addListContainsItem(xmlList, firstVariable)
72
+ addSep(xmlList)
73
+ addShowList(xmlList, firstVariable)
74
+ addHideList(xmlList, firstVariable)
81
75
  }
82
76
 
83
- return xmlList;
77
+ return xmlList
84
78
  }
85
79
 
86
80
  /**
87
81
  * Construct and add a data_variable block to xmlList.
88
- *
89
82
  * @param xmlList Array of XML block elements.
90
83
  * @param variable Variable to select in the field.
91
84
  */
92
- function addDataVariable(
93
- xmlList: Element[],
94
- variable: Blockly.IVariableModel<Blockly.IVariableState>
95
- ) {
85
+ function addDataVariable(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
96
86
  // <block id="variableId" type="data_variable">
97
87
  // <field name="VARIABLE">variablename</field>
98
88
  // </block>
99
- addBlock(xmlList, variable, "data_variable", "VARIABLE");
89
+ addBlock(xmlList, variable, 'data_variable', 'VARIABLE')
100
90
  // In the flyout, this ID must match variable ID for monitor syncing reasons
101
- xmlList[xmlList.length - 1].setAttribute("id", variable.getId());
91
+ xmlList[xmlList.length - 1].setAttribute('id', variable.getId())
102
92
  }
103
93
 
104
94
  /**
105
95
  * Construct and add a data_setvariableto block to xmlList.
106
- *
107
96
  * @param xmlList Array of XML block elements.
108
97
  * @param variable Variable to select in the field.
109
98
  */
110
- function addSetVariableTo(
111
- xmlList: Element[],
112
- variable: Blockly.IVariableModel<Blockly.IVariableState>
113
- ) {
99
+ function addSetVariableTo(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
114
100
  // <block type="data_setvariableto" gap="20">
115
101
  // <value name="VARIABLE">
116
102
  // <shadow type="data_variablemenu"></shadow>
@@ -121,23 +107,15 @@ function addSetVariableTo(
121
107
  // </shadow>
122
108
  // </value>
123
109
  // </block>
124
- addBlock(xmlList, variable, "data_setvariableto", "VARIABLE", [
125
- "VALUE",
126
- "text",
127
- "0",
128
- ]);
110
+ addBlock(xmlList, variable, 'data_setvariableto', 'VARIABLE', ['VALUE', 'text', '0'])
129
111
  }
130
112
 
131
113
  /**
132
114
  * Construct and add a data_changevariableby block to xmlList.
133
- *
134
115
  * @param xmlList Array of XML block elements.
135
116
  * @param variable Variable to select in the field.
136
117
  */
137
- function addChangeVariableBy(
138
- xmlList: Element[],
139
- variable: Blockly.IVariableModel<Blockly.IVariableState>
140
- ) {
118
+ function addChangeVariableBy(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
141
119
  // <block type="data_changevariableby">
142
120
  // <value name="VARIABLE">
143
121
  // <shadow type="data_variablemenu"></shadow>
@@ -148,77 +126,57 @@ function addChangeVariableBy(
148
126
  // </shadow>
149
127
  // </value>
150
128
  // </block>
151
- addBlock(xmlList, variable, "data_changevariableby", "VARIABLE", [
152
- "VALUE",
153
- "math_number",
154
- "1",
155
- ]);
129
+ addBlock(xmlList, variable, 'data_changevariableby', 'VARIABLE', ['VALUE', 'math_number', '1'])
156
130
  }
157
131
 
158
132
  /**
159
133
  * Construct and add a data_showVariable block to xmlList.
160
- *
161
134
  * @param xmlList Array of XML block elements.
162
135
  * @param variable Variable to select in the field.
163
136
  */
164
- function addShowVariable(
165
- xmlList: Element[],
166
- variable: Blockly.IVariableModel<Blockly.IVariableState>
167
- ) {
137
+ function addShowVariable(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
168
138
  // <block type="data_showvariable">
169
139
  // <value name="VARIABLE">
170
140
  // <shadow type="data_variablemenu"></shadow>
171
141
  // </value>
172
142
  // </block>
173
- addBlock(xmlList, variable, "data_showvariable", "VARIABLE");
143
+ addBlock(xmlList, variable, 'data_showvariable', 'VARIABLE')
174
144
  }
175
145
 
176
146
  /**
177
147
  * Construct and add a data_hideVariable block to xmlList.
178
- *
179
148
  * @param xmlList Array of XML block elements.
180
149
  * @param variable Variable to select in the field.
181
150
  */
182
- function addHideVariable(
183
- xmlList: Element[],
184
- variable: Blockly.IVariableModel<Blockly.IVariableState>
185
- ) {
151
+ function addHideVariable(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
186
152
  // <block type="data_hidevariable">
187
153
  // <value name="VARIABLE">
188
154
  // <shadow type="data_variablemenu"></shadow>
189
155
  // </value>
190
156
  // </block>
191
- addBlock(xmlList, variable, "data_hidevariable", "VARIABLE");
157
+ addBlock(xmlList, variable, 'data_hidevariable', 'VARIABLE')
192
158
  }
193
159
 
194
160
  /**
195
161
  * Construct and add a data_listcontents block to xmlList.
196
- *
197
162
  * @param xmlList Array of XML block elements.
198
163
  * @param variable Variable to select in the field.
199
164
  */
200
- function addDataList(
201
- xmlList: Element[],
202
- variable: Blockly.IVariableModel<Blockly.IVariableState>
203
- ) {
165
+ function addDataList(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
204
166
  // <block id="variableId" type="data_listcontents">
205
167
  // <field name="LIST">variablename</field>
206
168
  // </block>
207
- addBlock(xmlList, variable, "data_listcontents", "LIST");
169
+ addBlock(xmlList, variable, 'data_listcontents', 'LIST')
208
170
  // In the flyout, this ID must match variable ID for monitor syncing reasons
209
- xmlList[xmlList.length - 1].setAttribute("id", variable.getId());
171
+ xmlList[xmlList.length - 1].setAttribute('id', variable.getId())
210
172
  }
211
173
 
212
174
  /**
213
175
  * Construct and add a data_addtolist block to xmlList.
214
- *
215
176
  * @param xmlList Array of XML block elements.
216
177
  * @param variable Variable to select in the field.
217
178
  */
218
- function addAddToList(
219
- xmlList: Element[],
220
- variable: Blockly.IVariableModel<Blockly.IVariableState>
221
- ) {
179
+ function addAddToList(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
222
180
  // <block type="data_addtolist">
223
181
  // <field name="LIST" variabletype="list" id="">variablename</field>
224
182
  // <value name="ITEM">
@@ -227,23 +185,15 @@ function addAddToList(
227
185
  // </shadow>
228
186
  // </value>
229
187
  // </block>
230
- addBlock(xmlList, variable, "data_addtolist", "LIST", [
231
- "ITEM",
232
- "text",
233
- Blockly.Msg.DEFAULT_LIST_ITEM,
234
- ]);
188
+ addBlock(xmlList, variable, 'data_addtolist', 'LIST', ['ITEM', 'text', Blockly.Msg.DEFAULT_LIST_ITEM])
235
189
  }
236
190
 
237
191
  /**
238
192
  * Construct and add a data_deleteoflist block to xmlList.
239
- *
240
193
  * @param xmlList Array of XML block elements.
241
194
  * @param variable Variable to select in the field.
242
195
  */
243
- function addDeleteOfList(
244
- xmlList: Element[],
245
- variable: Blockly.IVariableModel<Blockly.IVariableState>
246
- ) {
196
+ function addDeleteOfList(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
247
197
  // <block type="data_deleteoflist">
248
198
  // <field name="LIST" variabletype="list" id="">variablename</field>
249
199
  // <value name="INDEX">
@@ -252,39 +202,27 @@ function addDeleteOfList(
252
202
  // </shadow>
253
203
  // </value>
254
204
  // </block>
255
- addBlock(xmlList, variable, "data_deleteoflist", "LIST", [
256
- "INDEX",
257
- "math_integer",
258
- "1",
259
- ]);
205
+ addBlock(xmlList, variable, 'data_deleteoflist', 'LIST', ['INDEX', 'math_integer', '1'])
260
206
  }
261
207
 
262
208
  /**
263
209
  * Construct and add a data_deleteoflist block to xmlList.
264
- *
265
210
  * @param xmlList Array of XML block elements.
266
211
  * @param variable Variable to select in the field.
267
212
  */
268
- function addDeleteAllOfList(
269
- xmlList: Element[],
270
- variable: Blockly.IVariableModel<Blockly.IVariableState>
271
- ) {
213
+ function addDeleteAllOfList(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
272
214
  // <block type="data_deletealloflist">
273
215
  // <field name="LIST" variabletype="list" id="">variablename</field>
274
216
  // </block>
275
- addBlock(xmlList, variable, "data_deletealloflist", "LIST");
217
+ addBlock(xmlList, variable, 'data_deletealloflist', 'LIST')
276
218
  }
277
219
 
278
220
  /**
279
221
  * Construct and add a data_insertatlist block to xmlList.
280
- *
281
222
  * @param xmlList Array of XML block elements.
282
223
  * @param variable Variable to select in the field.
283
224
  */
284
- function addInsertAtList(
285
- xmlList: Element[],
286
- variable: Blockly.IVariableModel<Blockly.IVariableState>
287
- ) {
225
+ function addInsertAtList(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
288
226
  // <block type="data_insertatlist">
289
227
  // <field name="LIST" variabletype="list" id="">variablename</field>
290
228
  // <value name="INDEX">
@@ -301,23 +239,19 @@ function addInsertAtList(
301
239
  addBlock(
302
240
  xmlList,
303
241
  variable,
304
- "data_insertatlist",
305
- "LIST",
306
- ["INDEX", "math_integer", "1"],
307
- ["ITEM", "text", Blockly.Msg.DEFAULT_LIST_ITEM]
308
- );
242
+ 'data_insertatlist',
243
+ 'LIST',
244
+ ['INDEX', 'math_integer', '1'],
245
+ ['ITEM', 'text', Blockly.Msg.DEFAULT_LIST_ITEM],
246
+ )
309
247
  }
310
248
 
311
249
  /**
312
250
  * Construct and add a data_replaceitemoflist block to xmlList.
313
- *
314
251
  * @param xmlList Array of XML block elements.
315
252
  * @param variable Variable to select in the field.
316
253
  */
317
- function addReplaceItemOfList(
318
- xmlList: Element[],
319
- variable: Blockly.IVariableModel<Blockly.IVariableState>
320
- ) {
254
+ function addReplaceItemOfList(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
321
255
  // <block type="data_replaceitemoflist">
322
256
  // <field name="LIST" variabletype="list" id="">variablename</field>
323
257
  // <value name="INDEX">
@@ -334,23 +268,19 @@ function addReplaceItemOfList(
334
268
  addBlock(
335
269
  xmlList,
336
270
  variable,
337
- "data_replaceitemoflist",
338
- "LIST",
339
- ["INDEX", "math_integer", "1"],
340
- ["ITEM", "text", Blockly.Msg.DEFAULT_LIST_ITEM]
341
- );
271
+ 'data_replaceitemoflist',
272
+ 'LIST',
273
+ ['INDEX', 'math_integer', '1'],
274
+ ['ITEM', 'text', Blockly.Msg.DEFAULT_LIST_ITEM],
275
+ )
342
276
  }
343
277
 
344
278
  /**
345
279
  * Construct and add a data_itemoflist block to xmlList.
346
- *
347
280
  * @param xmlList Array of XML block elements.
348
281
  * @param variable Variable to select in the field.
349
282
  */
350
- function addItemOfList(
351
- xmlList: Element[],
352
- variable: Blockly.IVariableModel<Blockly.IVariableState>
353
- ) {
283
+ function addItemOfList(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
354
284
  // <block type="data_itemoflist">
355
285
  // <field name="LIST" variabletype="list" id="">variablename</field>
356
286
  // <value name="INDEX">
@@ -359,22 +289,15 @@ function addItemOfList(
359
289
  // </shadow>
360
290
  // </value>
361
291
  // </block>
362
- addBlock(xmlList, variable, "data_itemoflist", "LIST", [
363
- "INDEX",
364
- "math_integer",
365
- "1",
366
- ]);
292
+ addBlock(xmlList, variable, 'data_itemoflist', 'LIST', ['INDEX', 'math_integer', '1'])
367
293
  }
368
294
 
369
- /** Construct and add a data_itemnumoflist block to xmlList.
370
- *
295
+ /**
296
+ * Construct and add a data_itemnumoflist block to xmlList.
371
297
  * @param xmlList Array of XML block elements.
372
298
  * @param variable Variable to select in the field.
373
299
  */
374
- function addItemNumberOfList(
375
- xmlList: Element[],
376
- variable: Blockly.IVariableModel<Blockly.IVariableState>
377
- ) {
300
+ function addItemNumberOfList(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
378
301
  // <block type="data_itemnumoflist">
379
302
  // <value name="ITEM">
380
303
  // <shadow type="text">
@@ -383,39 +306,27 @@ function addItemNumberOfList(
383
306
  // </value>
384
307
  // <field name="LIST" variabletype="list" id="">variablename</field>
385
308
  // </block>
386
- addBlock(xmlList, variable, "data_itemnumoflist", "LIST", [
387
- "ITEM",
388
- "text",
389
- Blockly.Msg.DEFAULT_LIST_ITEM,
390
- ]);
309
+ addBlock(xmlList, variable, 'data_itemnumoflist', 'LIST', ['ITEM', 'text', Blockly.Msg.DEFAULT_LIST_ITEM])
391
310
  }
392
311
 
393
312
  /**
394
313
  * Construct and add a data_lengthoflist block to xmlList.
395
- *
396
314
  * @param xmlList Array of XML block elements.
397
315
  * @param variable Variable to select in the field.
398
316
  */
399
- function addLengthOfList(
400
- xmlList: Element[],
401
- variable: Blockly.IVariableModel<Blockly.IVariableState>
402
- ) {
317
+ function addLengthOfList(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
403
318
  // <block type="data_lengthoflist">
404
319
  // <field name="LIST" variabletype="list" id="">variablename</field>
405
320
  // </block>
406
- addBlock(xmlList, variable, "data_lengthoflist", "LIST");
321
+ addBlock(xmlList, variable, 'data_lengthoflist', 'LIST')
407
322
  }
408
323
 
409
324
  /**
410
325
  * Construct and add a data_listcontainsitem block to xmlList.
411
- *
412
326
  * @param xmlList Array of XML block elements.
413
327
  * @param variable Variable to select in the field.
414
328
  */
415
- function addListContainsItem(
416
- xmlList: Element[],
417
- variable: Blockly.IVariableModel<Blockly.IVariableState>
418
- ) {
329
+ function addListContainsItem(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
419
330
  // <block type="data_listcontainsitem">
420
331
  // <field name="LIST" variabletype="list" id="">variablename</field>
421
332
  // <value name="ITEM">
@@ -424,92 +335,74 @@ function addListContainsItem(
424
335
  // </shadow>
425
336
  // </value>
426
337
  // </block>
427
- addBlock(xmlList, variable, "data_listcontainsitem", "LIST", [
428
- "ITEM",
429
- "text",
430
- Blockly.Msg.DEFAULT_LIST_ITEM,
431
- ]);
338
+ addBlock(xmlList, variable, 'data_listcontainsitem', 'LIST', ['ITEM', 'text', Blockly.Msg.DEFAULT_LIST_ITEM])
432
339
  }
433
340
 
434
341
  /**
435
342
  * Construct and add a data_showlist block to xmlList.
436
- *
437
343
  * @param xmlList Array of XML block elements.
438
344
  * @param variable Variable to select in the field.
439
345
  */
440
- function addShowList(
441
- xmlList: Element[],
442
- variable: Blockly.IVariableModel<Blockly.IVariableState>
443
- ) {
346
+ function addShowList(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
444
347
  // <block type="data_showlist">
445
348
  // <field name="LIST" variabletype="list" id="">variablename</field>
446
349
  // </block>
447
- addBlock(xmlList, variable, "data_showlist", "LIST");
350
+ addBlock(xmlList, variable, 'data_showlist', 'LIST')
448
351
  }
449
352
 
450
353
  /**
451
354
  * Construct and add a data_hidelist block to xmlList.
452
- *
453
355
  * @param xmlList Array of XML block elements.
454
356
  * @param variable Variable to select in the field.
455
357
  */
456
- function addHideList(
457
- xmlList: Element[],
458
- variable: Blockly.IVariableModel<Blockly.IVariableState>
459
- ) {
358
+ function addHideList(xmlList: Element[], variable: Blockly.IVariableModel<Blockly.IVariableState>) {
460
359
  // <block type="data_hidelist">
461
360
  // <field name="LIST" variabletype="list" id="">variablename</field>
462
361
  // </block>
463
- addBlock(xmlList, variable, "data_hidelist", "LIST");
362
+ addBlock(xmlList, variable, 'data_hidelist', 'LIST')
464
363
  }
465
364
 
466
365
  /**
467
366
  * Construct a create variable button and push it to the xmlList.
468
- *
469
367
  * @param xmlList Array of XML block elements.
470
368
  * @param workspace Workspace to register callback to.
471
369
  * @param type Type of variable this is for. For example, 'LIST' or
472
370
  * 'VARIABLE'.
473
371
  */
474
- function addCreateButton(
475
- xmlList: Element[],
476
- workspace: Blockly.WorkspaceSvg,
477
- type: string
478
- ) {
479
- const button = document.createElement("button");
372
+ function addCreateButton(xmlList: Element[], workspace: Blockly.WorkspaceSvg, type: string) {
373
+ const button = document.createElement('button')
480
374
  // Set default msg, callbackKey, and callback values for type 'VARIABLE'
481
- let msg = Blockly.Msg.NEW_VARIABLE;
482
- let callbackKey = "CREATE_VARIABLE";
375
+ let msg = Blockly.Msg.NEW_VARIABLE
376
+ let callbackKey = 'CREATE_VARIABLE'
483
377
  let callback = function (button: Blockly.FlyoutButton) {
484
- createVariable(button.getTargetWorkspace(), undefined, SCALAR_VARIABLE_TYPE);
485
- };
378
+ createVariable(button.getTargetWorkspace(), undefined, SCALAR_VARIABLE_TYPE)
379
+ }
486
380
 
487
- if (type === "LIST") {
488
- msg = Blockly.Msg.NEW_LIST;
489
- callbackKey = "CREATE_LIST";
381
+ if (type === 'LIST') {
382
+ msg = Blockly.Msg.NEW_LIST
383
+ callbackKey = 'CREATE_LIST'
490
384
  callback = function (button: Blockly.FlyoutButton) {
491
- createVariable(button.getTargetWorkspace(), undefined, LIST_VARIABLE_TYPE);
492
- };
385
+ createVariable(button.getTargetWorkspace(), undefined, LIST_VARIABLE_TYPE)
386
+ }
493
387
  }
494
- button.setAttribute("text", msg);
495
- button.setAttribute("callbackKey", callbackKey);
388
+ button.setAttribute('text', msg)
389
+ button.setAttribute('callbackKey', callbackKey)
496
390
  workspace.registerButtonCallback(callbackKey, (b) => {
497
391
  // Run the callback after a delay to avoid it getting captured by the React
498
392
  // modal in scratch-gui and being registered as a click on the scrim that
499
393
  // dismisses the dialog.
500
394
  requestAnimationFrame(() => {
501
395
  setTimeout(() => {
502
- callback(b);
503
- });
504
- });
505
- });
506
- xmlList.push(button);
396
+ callback(b)
397
+ })
398
+ })
399
+ })
400
+ xmlList.push(button)
507
401
  }
508
402
 
509
403
  /**
510
404
  * Construct a variable block with the given variable, blockType, and optional
511
405
  * value tags. Add the variable block to the given xmlList.
512
- *
513
406
  * @param xmlList Array of XML block elements.
514
407
  * @param variable Variable to select in the field.
515
408
  * @param blockType Type of block. For example, 'data_hidelist' or
@@ -526,97 +419,90 @@ function addBlock(
526
419
  blockType: string,
527
420
  fieldName: string,
528
421
  opt_value?: string[],
529
- opt_secondValue?: string[]
422
+ opt_secondValue?: string[],
530
423
  ) {
531
424
  if (Blockly.Blocks[blockType]) {
532
- let firstValueField;
533
- let secondValueField;
425
+ let firstValueField
426
+ let secondValueField
534
427
  if (opt_value) {
535
- firstValueField = createValue(opt_value[0], opt_value[1], opt_value[2]);
428
+ firstValueField = createValue(opt_value[0], opt_value[1], opt_value[2])
536
429
  }
537
430
  if (opt_secondValue) {
538
- secondValueField = createValue(
539
- opt_secondValue[0],
540
- opt_secondValue[1],
541
- opt_secondValue[2]
542
- );
431
+ secondValueField = createValue(opt_secondValue[0], opt_secondValue[1], opt_secondValue[2])
543
432
  }
544
433
 
545
- var gap = 8;
546
- var blockText = `
434
+ const gap = 8
435
+ const blockText = `
547
436
  <xml>
548
437
  <block type="${blockType}" gap="${gap}">
549
438
  ${generateVariableFieldXml(variable, fieldName)}
550
439
  ${firstValueField}
551
440
  ${secondValueField}
552
441
  </block>
553
- </xml>`;
554
- var block = Blockly.utils.xml.textToDom(blockText).firstElementChild!;
555
- xmlList.push(block);
442
+ </xml>`
443
+ const block = Blockly.utils.xml.textToDom(blockText).firstElementChild!
444
+ xmlList.push(block)
556
445
  }
557
446
  }
558
447
 
559
448
  /**
560
449
  * Creates XML representing a variable field.
561
- *
562
450
  * @param variableModel The variable to represent in the field.
563
451
  * @param opt_name A custom name for the field, if desired.
564
452
  * @returns XML representation of a variable field.
565
453
  */
566
454
  function generateVariableFieldXml(
567
455
  variableModel: Blockly.IVariableModel<Blockly.IVariableState>,
568
- opt_name?: string
456
+ opt_name?: string,
569
457
  ): string {
570
- const field = document.createElement("field");
571
- field.setAttribute("name", opt_name || "VARIABLE");
572
- field.setAttribute("id", variableModel.getId());
573
- field.setAttribute("variabletype", variableModel.getType());
574
- field.textContent = variableModel.getName();
575
- return field.outerHTML;
458
+ const field = document.createElement('field')
459
+ field.setAttribute('name', opt_name || 'VARIABLE')
460
+ field.setAttribute('id', variableModel.getId())
461
+ field.setAttribute('variabletype', variableModel.getType())
462
+ field.textContent = variableModel.getName()
463
+ return field.outerHTML
576
464
  }
577
465
 
578
466
  /**
579
467
  * Create the text representation of a value dom element with a shadow of the
580
468
  * indicated type inside.
581
- *
582
469
  * @param valueName Name of the value tags.
583
470
  * @param type The type of the shadow tags.
584
471
  * @param value The default shadow value.
585
472
  * @returns The generated dom element in text.
586
473
  */
587
474
  function createValue(valueName: string, type: string, value: string): string {
588
- let fieldName;
475
+ let fieldName
589
476
  switch (valueName) {
590
- case "ITEM":
591
- fieldName = "TEXT";
592
- break;
593
- case "INDEX":
594
- fieldName = "NUM";
595
- break;
596
- case "VALUE":
597
- if (type === "math_number") {
598
- fieldName = "NUM";
477
+ case 'ITEM':
478
+ fieldName = 'TEXT'
479
+ break
480
+ case 'INDEX':
481
+ fieldName = 'NUM'
482
+ break
483
+ case 'VALUE':
484
+ if (type === 'math_number') {
485
+ fieldName = 'NUM'
599
486
  } else {
600
- fieldName = "TEXT";
487
+ fieldName = 'TEXT'
601
488
  }
602
- break;
489
+ break
603
490
  }
604
491
  const valueField = `
605
492
  <value name="${valueName}">
606
493
  <shadow type="${type}">
607
494
  <field name="${fieldName}">${value}</field>
608
495
  </shadow>
609
- </value>`;
610
- return valueField;
496
+ </value>`
497
+ return valueField
611
498
  }
612
499
 
613
500
  /**
614
501
  * Construct a block separator. Add the separator to the given xmlList.
615
- *
616
502
  * @param xmlList Array of XML block elements.
617
503
  */
618
504
  function addSep(xmlList: Element[]) {
619
- const sepText = `<xml><sep gap="36"/></xml>`;
620
- const sep = Blockly.utils.xml.textToDom(sepText).firstElementChild!;
621
- xmlList.push(sep);
505
+ const sepText = `<xml><sep gap="36"/></xml>`
506
+ const sep = Blockly.utils.xml.textToDom(sepText).firstElementChild!
507
+ xmlList.push(sep)
622
508
  }