blockly 8.0.5 → 9.0.0-beta.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 (736) hide show
  1. package/blockly.min.js +2002 -2269
  2. package/blockly_compressed.js +1499 -1994
  3. package/blockly_compressed.js.map +1 -1
  4. package/blocks/blocks.js +3 -2
  5. package/blocks/colour.js +3 -1
  6. package/blocks/lists.js +94 -22
  7. package/blocks/logic.js +14 -6
  8. package/blocks/loops.js +5 -3
  9. package/blocks/math.js +3 -1
  10. package/blocks/procedures.js +3 -1
  11. package/blocks/text.js +14 -6
  12. package/blocks/variables.js +3 -1
  13. package/blocks/variables_dynamic.js +3 -1
  14. package/blocks.d.ts +0 -2
  15. package/blocks_compressed.js +189 -171
  16. package/blocks_compressed.js.map +1 -1
  17. package/closure/goog/base.d.ts +1 -0
  18. package/closure/goog/base_minimal.d.ts +18 -0
  19. package/closure/goog/goog.d.ts +25 -0
  20. package/core/any_aliases.d.ts +1 -0
  21. package/core/any_aliases.ts +1 -0
  22. package/core/block.d.ts +779 -0
  23. package/core/{block.js → block.ts} +610 -719
  24. package/core/block_animations.d.ts +33 -0
  25. package/core/{block_animations.js → block_animations.ts} +75 -79
  26. package/core/block_drag_surface.d.ts +111 -0
  27. package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
  28. package/core/block_dragger.d.ts +143 -0
  29. package/core/{block_dragger.js → block_dragger.ts} +139 -176
  30. package/core/block_svg.d.ts +588 -0
  31. package/core/{block_svg.js → block_svg.ts} +494 -630
  32. package/core/blockly.d.ts +562 -0
  33. package/core/blockly.js +1 -1
  34. package/core/blockly.ts +749 -0
  35. package/core/blockly_options.d.ts +69 -0
  36. package/core/blockly_options.ts +81 -0
  37. package/core/blocks.d.ts +17 -0
  38. package/core/{blocks.js → blocks.ts} +4 -8
  39. package/core/browser_events.d.ts +85 -0
  40. package/core/{browser_events.js → browser_events.ts} +98 -93
  41. package/core/bubble.d.ts +279 -0
  42. package/core/{bubble.js → bubble.ts} +277 -370
  43. package/core/bubble_dragger.d.ts +73 -0
  44. package/core/bubble_dragger.ts +229 -0
  45. package/core/bump_objects.d.ts +34 -0
  46. package/core/{bump_objects.js → bump_objects.ts} +54 -52
  47. package/core/clipboard.d.ts +42 -0
  48. package/core/clipboard.ts +91 -0
  49. package/core/comment.d.ts +113 -0
  50. package/core/{comment.js → comment.ts} +135 -185
  51. package/core/common.d.ts +129 -0
  52. package/core/{common.js → common.ts} +105 -82
  53. package/core/component_manager.d.ts +91 -0
  54. package/core/component_manager.ts +211 -0
  55. package/core/config.d.ts +23 -0
  56. package/core/{config.js → config.ts} +12 -19
  57. package/core/connection.d.ts +232 -0
  58. package/core/{connection.js → connection.ts} +187 -237
  59. package/core/connection_checker.d.ts +78 -0
  60. package/core/{connection_checker.js → connection_checker.ts} +66 -77
  61. package/core/connection_db.d.ts +91 -0
  62. package/core/{connection_db.js → connection_db.ts} +62 -87
  63. package/core/connection_type.d.ts +15 -0
  64. package/core/{connection_type.js → connection_type.ts} +8 -12
  65. package/core/constants.d.ts +15 -0
  66. package/core/{constants.js → constants.ts} +4 -8
  67. package/core/contextmenu.d.ts +80 -0
  68. package/core/{contextmenu.js → contextmenu.ts} +118 -153
  69. package/core/contextmenu_items.d.ts +77 -0
  70. package/core/contextmenu_items.ts +576 -0
  71. package/core/contextmenu_registry.d.ts +105 -0
  72. package/core/contextmenu_registry.ts +179 -0
  73. package/core/css.d.ts +24 -0
  74. package/core/{css.js → css.ts} +16 -24
  75. package/core/delete_area.d.ts +47 -0
  76. package/core/delete_area.ts +82 -0
  77. package/core/dialog.d.ts +61 -0
  78. package/core/dialog.ts +127 -0
  79. package/core/drag_target.d.ts +63 -0
  80. package/core/drag_target.ts +94 -0
  81. package/core/dropdowndiv.d.ts +155 -0
  82. package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
  83. package/core/events/events.d.ts +102 -0
  84. package/core/events/events.ts +123 -0
  85. package/core/events/events_abstract.d.ts +51 -0
  86. package/core/events/events_abstract.ts +112 -0
  87. package/core/events/events_block_base.d.ts +31 -0
  88. package/core/events/events_block_base.ts +65 -0
  89. package/core/events/events_block_change.d.ts +55 -0
  90. package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
  91. package/core/events/events_block_create.d.ts +35 -0
  92. package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
  93. package/core/events/events_block_delete.d.ts +36 -0
  94. package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
  95. package/core/events/events_block_drag.d.ts +36 -0
  96. package/core/events/events_block_drag.ts +82 -0
  97. package/core/events/events_block_move.d.ts +51 -0
  98. package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
  99. package/core/events/events_bubble_open.d.ts +35 -0
  100. package/core/events/events_bubble_open.ts +82 -0
  101. package/core/events/events_click.d.ts +36 -0
  102. package/core/events/{events_click.js → events_click.ts} +27 -30
  103. package/core/events/events_comment_base.d.ts +39 -0
  104. package/core/events/events_comment_base.ts +107 -0
  105. package/core/events/events_comment_change.d.ts +43 -0
  106. package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
  107. package/core/events/events_comment_create.d.ts +35 -0
  108. package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
  109. package/core/events/events_comment_delete.d.ts +35 -0
  110. package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
  111. package/core/events/events_comment_move.d.ts +55 -0
  112. package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
  113. package/core/events/events_marker_move.d.ts +40 -0
  114. package/core/events/events_marker_move.ts +99 -0
  115. package/core/events/events_selected.d.ts +34 -0
  116. package/core/events/events_selected.ts +78 -0
  117. package/core/events/events_theme_change.d.ts +30 -0
  118. package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
  119. package/core/events/events_toolbox_item_select.d.ts +34 -0
  120. package/core/events/events_toolbox_item_select.ts +79 -0
  121. package/core/events/events_trashcan_open.d.ts +31 -0
  122. package/core/events/events_trashcan_open.ts +68 -0
  123. package/core/events/events_ui.d.ts +37 -0
  124. package/core/events/{events_ui.js → events_ui.ts} +27 -26
  125. package/core/events/events_ui_base.d.ts +26 -0
  126. package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
  127. package/core/events/events_var_base.d.ts +31 -0
  128. package/core/events/events_var_base.ts +65 -0
  129. package/core/events/events_var_create.d.ts +35 -0
  130. package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
  131. package/core/events/events_var_delete.d.ts +35 -0
  132. package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
  133. package/core/events/events_var_rename.d.ts +36 -0
  134. package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
  135. package/core/events/events_viewport.d.ts +39 -0
  136. package/core/events/events_viewport.ts +100 -0
  137. package/core/events/utils.d.ts +272 -0
  138. package/core/events/{utils.js → utils.ts} +148 -219
  139. package/core/events/workspace_events.d.ts +36 -0
  140. package/core/events/workspace_events.ts +86 -0
  141. package/core/extensions.d.ts +107 -0
  142. package/core/{extensions.js → extensions.ts} +153 -172
  143. package/core/field.d.ts +534 -0
  144. package/core/{field.js → field.ts} +413 -489
  145. package/core/field_angle.d.ts +176 -0
  146. package/core/field_angle.ts +563 -0
  147. package/core/field_checkbox.d.ts +124 -0
  148. package/core/field_checkbox.ts +243 -0
  149. package/core/field_colour.d.ts +200 -0
  150. package/core/field_colour.ts +632 -0
  151. package/core/field_dropdown.d.ts +222 -0
  152. package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
  153. package/core/field_image.d.ts +134 -0
  154. package/core/field_image.ts +282 -0
  155. package/core/field_label.d.ts +71 -0
  156. package/core/field_label.ts +152 -0
  157. package/core/field_label_serializable.d.ts +42 -0
  158. package/core/field_label_serializable.ts +76 -0
  159. package/core/field_multilineinput.d.ts +146 -0
  160. package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
  161. package/core/field_number.d.ts +156 -0
  162. package/core/{field_number.js → field_number.ts} +110 -123
  163. package/core/field_registry.d.ts +45 -0
  164. package/core/{field_registry.js → field_registry.ts} +37 -30
  165. package/core/field_textinput.d.ts +219 -0
  166. package/core/field_textinput.ts +591 -0
  167. package/core/field_variable.d.ts +217 -0
  168. package/core/{field_variable.js → field_variable.ts} +174 -187
  169. package/core/flyout_base.d.ts +459 -0
  170. package/core/{flyout_base.js → flyout_base.ts} +429 -518
  171. package/core/flyout_button.d.ts +81 -0
  172. package/core/flyout_button.ts +292 -0
  173. package/core/flyout_horizontal.d.ts +82 -0
  174. package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
  175. package/core/flyout_metrics_manager.d.ts +40 -0
  176. package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
  177. package/core/flyout_vertical.d.ts +83 -0
  178. package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
  179. package/core/generator.d.ts +205 -0
  180. package/core/{generator.js → generator.ts} +168 -193
  181. package/core/gesture.d.ts +357 -0
  182. package/core/{gesture.js → gesture.ts} +289 -369
  183. package/core/grid.d.ts +83 -0
  184. package/core/grid.ts +192 -0
  185. package/core/icon.d.ts +78 -0
  186. package/core/icon.ts +189 -0
  187. package/core/inject.d.ts +15 -0
  188. package/core/{inject.js → inject.ts} +101 -100
  189. package/core/input.d.ts +128 -0
  190. package/core/input.ts +309 -0
  191. package/core/input_types.d.ts +14 -0
  192. package/core/{input_types.js → input_types.ts} +8 -12
  193. package/core/insertion_marker_manager.d.ts +212 -0
  194. package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
  195. package/core/interfaces/i_ast_node_location.d.ts +11 -0
  196. package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
  197. package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
  198. package/core/interfaces/i_ast_node_location_svg.ts +37 -0
  199. package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
  200. package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
  201. package/core/interfaces/i_autohideable.d.ts +18 -0
  202. package/core/interfaces/i_autohideable.ts +34 -0
  203. package/core/interfaces/i_block_dragger.d.ts +43 -0
  204. package/core/interfaces/i_block_dragger.ts +67 -0
  205. package/core/interfaces/i_bounded_element.d.ts +24 -0
  206. package/core/interfaces/i_bounded_element.ts +42 -0
  207. package/core/interfaces/i_bubble.d.ts +59 -0
  208. package/core/interfaces/i_bubble.ts +88 -0
  209. package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
  210. package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
  211. package/core/interfaces/i_component.d.ts +17 -0
  212. package/core/interfaces/{i_component.js → i_component.ts} +9 -14
  213. package/core/interfaces/i_connection_checker.d.ts +69 -0
  214. package/core/interfaces/i_connection_checker.ts +102 -0
  215. package/core/interfaces/i_contextmenu.d.ts +13 -0
  216. package/core/interfaces/i_contextmenu.ts +26 -0
  217. package/core/interfaces/i_copyable.d.ts +24 -0
  218. package/core/interfaces/i_copyable.ts +40 -0
  219. package/core/interfaces/i_deletable.d.ts +16 -0
  220. package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
  221. package/core/interfaces/i_delete_area.d.ts +25 -0
  222. package/core/interfaces/i_delete_area.ts +46 -0
  223. package/core/interfaces/i_drag_target.d.ts +53 -0
  224. package/core/interfaces/i_drag_target.ts +84 -0
  225. package/core/interfaces/i_draggable.d.ts +12 -0
  226. package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
  227. package/core/interfaces/i_flyout.d.ts +134 -0
  228. package/core/interfaces/i_flyout.ts +186 -0
  229. package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
  230. package/core/interfaces/i_keyboard_accessible.ts +35 -0
  231. package/core/interfaces/i_metrics_manager.d.ts +117 -0
  232. package/core/interfaces/i_metrics_manager.ts +151 -0
  233. package/core/interfaces/i_movable.d.ts +16 -0
  234. package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
  235. package/core/interfaces/i_positionable.d.ts +27 -0
  236. package/core/interfaces/i_positionable.ts +50 -0
  237. package/core/interfaces/i_registrable.d.ts +11 -0
  238. package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
  239. package/core/interfaces/i_registrable_field.d.ts +17 -0
  240. package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
  241. package/core/interfaces/i_selectable.d.ts +18 -0
  242. package/core/interfaces/i_selectable.ts +34 -0
  243. package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
  244. package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
  245. package/core/interfaces/i_serializer.d.ts +42 -0
  246. package/core/interfaces/i_serializer.ts +65 -0
  247. package/core/interfaces/i_styleable.d.ts +21 -0
  248. package/core/interfaces/i_styleable.ts +35 -0
  249. package/core/interfaces/i_toolbox.d.ts +85 -0
  250. package/core/interfaces/i_toolbox.ts +127 -0
  251. package/core/interfaces/i_toolbox_item.d.ts +62 -0
  252. package/core/interfaces/i_toolbox_item.ts +84 -0
  253. package/core/internal_constants.d.ts +40 -0
  254. package/core/{internal_constants.js → internal_constants.ts} +13 -18
  255. package/core/keyboard_nav/ast_node.d.ts +239 -0
  256. package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
  257. package/core/keyboard_nav/basic_cursor.d.ts +88 -0
  258. package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
  259. package/core/keyboard_nav/cursor.d.ts +41 -0
  260. package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
  261. package/core/keyboard_nav/marker.d.ts +58 -0
  262. package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
  263. package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
  264. package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
  265. package/core/main.d.ts +11 -0
  266. package/core/main.js +303 -0
  267. package/core/marker_manager.d.ts +85 -0
  268. package/core/marker_manager.ts +181 -0
  269. package/core/menu.d.ts +149 -0
  270. package/core/{menu.js → menu.ts} +141 -174
  271. package/core/menuitem.d.ts +118 -0
  272. package/core/menuitem.ts +240 -0
  273. package/core/metrics_manager.d.ts +201 -0
  274. package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
  275. package/core/msg.d.ts +9 -0
  276. package/core/{msg.js → msg.ts} +4 -8
  277. package/core/mutator.d.ts +128 -0
  278. package/core/{mutator.js → mutator.ts} +196 -211
  279. package/core/names.d.ts +124 -0
  280. package/core/names.ts +267 -0
  281. package/core/options.d.ts +137 -0
  282. package/core/{options.js → options.ts} +147 -173
  283. package/core/positionable_helpers.d.ts +88 -0
  284. package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
  285. package/core/procedures.d.ts +108 -0
  286. package/core/{procedures.js → procedures.ts} +143 -152
  287. package/core/registry.d.ts +137 -0
  288. package/core/registry.ts +339 -0
  289. package/core/rendered_connection.d.ts +191 -0
  290. package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
  291. package/core/renderers/common/block_rendering.d.ts +114 -0
  292. package/core/renderers/common/block_rendering.ts +164 -0
  293. package/core/renderers/common/constants.d.ts +458 -0
  294. package/core/renderers/common/constants.ts +1124 -0
  295. package/core/renderers/common/debug.d.ts +28 -0
  296. package/core/renderers/common/{debug.js → debug.ts} +14 -20
  297. package/core/renderers/common/debugger.d.ts +120 -0
  298. package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
  299. package/core/renderers/common/drawer.d.ts +132 -0
  300. package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
  301. package/core/renderers/common/i_path_object.d.ts +117 -0
  302. package/core/renderers/common/i_path_object.ts +161 -0
  303. package/core/renderers/common/info.d.ts +194 -0
  304. package/core/renderers/common/{info.js → info.ts} +165 -222
  305. package/core/renderers/common/marker_svg.d.ts +220 -0
  306. package/core/renderers/common/marker_svg.ts +680 -0
  307. package/core/renderers/common/path_object.d.ts +146 -0
  308. package/core/renderers/common/path_object.ts +272 -0
  309. package/core/renderers/common/renderer.d.ts +157 -0
  310. package/core/renderers/common/renderer.ts +271 -0
  311. package/core/renderers/geras/constants.d.ts +23 -0
  312. package/core/renderers/geras/constants.ts +61 -0
  313. package/core/renderers/geras/drawer.d.ts +43 -0
  314. package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
  315. package/core/renderers/geras/geras.d.ts +11 -0
  316. package/core/renderers/geras/geras.ts +37 -0
  317. package/core/renderers/geras/highlight_constants.d.ts +108 -0
  318. package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
  319. package/core/renderers/geras/highlighter.d.ts +98 -0
  320. package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
  321. package/core/renderers/geras/info.d.ts +45 -0
  322. package/core/renderers/geras/{info.js → info.ts} +61 -99
  323. package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
  324. package/core/renderers/geras/measurables/inline_input.ts +51 -0
  325. package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
  326. package/core/renderers/geras/measurables/statement_input.ts +50 -0
  327. package/core/renderers/geras/path_object.d.ts +47 -0
  328. package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
  329. package/core/renderers/geras/renderer.d.ts +69 -0
  330. package/core/renderers/geras/renderer.ts +126 -0
  331. package/core/renderers/measurables/base.d.ts +27 -0
  332. package/core/renderers/measurables/base.ts +53 -0
  333. package/core/renderers/measurables/bottom_row.d.ts +61 -0
  334. package/core/renderers/measurables/bottom_row.ts +120 -0
  335. package/core/renderers/measurables/connection.d.ts +25 -0
  336. package/core/renderers/measurables/connection.ts +52 -0
  337. package/core/renderers/measurables/external_value_input.d.ts +27 -0
  338. package/core/renderers/measurables/external_value_input.ts +65 -0
  339. package/core/renderers/measurables/field.d.ts +30 -0
  340. package/core/renderers/measurables/field.ts +63 -0
  341. package/core/renderers/measurables/hat.d.ts +21 -0
  342. package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
  343. package/core/renderers/measurables/icon.d.ts +26 -0
  344. package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
  345. package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
  346. package/core/renderers/measurables/in_row_spacer.ts +44 -0
  347. package/core/renderers/measurables/inline_input.d.ts +24 -0
  348. package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
  349. package/core/renderers/measurables/input_connection.d.ts +29 -0
  350. package/core/renderers/measurables/input_connection.ts +66 -0
  351. package/core/renderers/measurables/input_row.d.ts +30 -0
  352. package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
  353. package/core/renderers/measurables/jagged_edge.d.ts +20 -0
  354. package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
  355. package/core/renderers/measurables/next_connection.d.ts +23 -0
  356. package/core/renderers/measurables/next_connection.ts +47 -0
  357. package/core/renderers/measurables/output_connection.d.ts +26 -0
  358. package/core/renderers/measurables/output_connection.ts +56 -0
  359. package/core/renderers/measurables/previous_connection.d.ts +23 -0
  360. package/core/renderers/measurables/previous_connection.ts +47 -0
  361. package/core/renderers/measurables/round_corner.d.ts +21 -0
  362. package/core/renderers/measurables/round_corner.ts +49 -0
  363. package/core/renderers/measurables/row.d.ts +141 -0
  364. package/core/renderers/measurables/row.ts +225 -0
  365. package/core/renderers/measurables/spacer_row.d.ts +29 -0
  366. package/core/renderers/measurables/spacer_row.ts +55 -0
  367. package/core/renderers/measurables/square_corner.d.ts +21 -0
  368. package/core/renderers/measurables/square_corner.ts +47 -0
  369. package/core/renderers/measurables/statement_input.d.ts +22 -0
  370. package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
  371. package/core/renderers/measurables/top_row.d.ts +56 -0
  372. package/core/renderers/measurables/top_row.ts +122 -0
  373. package/core/renderers/measurables/types.d.ts +235 -0
  374. package/core/renderers/measurables/types.ts +332 -0
  375. package/core/renderers/minimalist/constants.d.ts +14 -0
  376. package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
  377. package/core/renderers/minimalist/drawer.d.ts +21 -0
  378. package/core/renderers/minimalist/drawer.ts +38 -0
  379. package/core/renderers/minimalist/info.d.ts +30 -0
  380. package/core/renderers/minimalist/info.ts +52 -0
  381. package/core/renderers/minimalist/minimalist.d.ts +6 -0
  382. package/core/renderers/minimalist/minimalist.ts +22 -0
  383. package/core/renderers/minimalist/renderer.d.ts +41 -0
  384. package/core/renderers/minimalist/renderer.ts +71 -0
  385. package/core/renderers/thrasos/info.d.ts +40 -0
  386. package/core/renderers/thrasos/{info.js → info.ts} +66 -67
  387. package/core/renderers/thrasos/renderer.d.ts +25 -0
  388. package/core/renderers/thrasos/renderer.ts +48 -0
  389. package/core/renderers/thrasos/thrasos.d.ts +4 -0
  390. package/core/renderers/thrasos/thrasos.ts +20 -0
  391. package/core/renderers/zelos/constants.d.ts +186 -0
  392. package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
  393. package/core/renderers/zelos/drawer.d.ts +47 -0
  394. package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
  395. package/core/renderers/zelos/info.d.ts +88 -0
  396. package/core/renderers/zelos/{info.js → info.ts} +111 -142
  397. package/core/renderers/zelos/marker_svg.d.ts +46 -0
  398. package/core/renderers/zelos/marker_svg.ts +151 -0
  399. package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
  400. package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
  401. package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
  402. package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
  403. package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
  404. package/core/renderers/zelos/measurables/row_elements.ts +45 -0
  405. package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
  406. package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
  407. package/core/renderers/zelos/path_object.d.ts +77 -0
  408. package/core/renderers/zelos/path_object.ts +215 -0
  409. package/core/renderers/zelos/renderer.d.ts +74 -0
  410. package/core/renderers/zelos/renderer.ts +142 -0
  411. package/core/renderers/zelos/zelos.d.ts +12 -0
  412. package/core/renderers/zelos/zelos.ts +39 -0
  413. package/core/scrollbar.d.ts +277 -0
  414. package/core/{scrollbar.js → scrollbar.ts} +307 -328
  415. package/core/scrollbar_pair.d.ts +105 -0
  416. package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
  417. package/core/serialization/blocks.d.ts +98 -0
  418. package/core/serialization/{blocks.js → blocks.ts} +229 -228
  419. package/core/serialization/exceptions.d.ts +73 -0
  420. package/core/serialization/exceptions.ts +98 -0
  421. package/core/serialization/priorities.d.ts +15 -0
  422. package/core/serialization/{priorities.js → priorities.ts} +4 -10
  423. package/core/serialization/registry.d.ts +20 -0
  424. package/core/serialization/{registry.js → registry.ts} +11 -13
  425. package/core/serialization/variables.d.ts +14 -0
  426. package/core/serialization/{variables.js → variables.ts} +30 -32
  427. package/core/serialization/workspaces.d.ts +28 -0
  428. package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
  429. package/core/shortcut_items.d.ts +61 -0
  430. package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
  431. package/core/shortcut_registry.d.ts +151 -0
  432. package/core/shortcut_registry.ts +355 -0
  433. package/core/sprites.d.ts +19 -0
  434. package/core/{sprites.js → sprites.ts} +4 -6
  435. package/core/theme/classic.d.ts +12 -0
  436. package/core/theme/{classic.js → classic.ts} +5 -7
  437. package/core/theme/themes.d.ts +8 -0
  438. package/core/theme/themes.ts +22 -0
  439. package/core/theme/zelos.d.ts +11 -0
  440. package/core/theme/{zelos.js → zelos.ts} +4 -7
  441. package/core/theme.d.ts +142 -0
  442. package/core/theme.ts +221 -0
  443. package/core/theme_manager.d.ts +81 -0
  444. package/core/theme_manager.ts +186 -0
  445. package/core/toolbox/category.d.ts +239 -0
  446. package/core/toolbox/category.ts +679 -0
  447. package/core/toolbox/collapsible_category.d.ts +91 -0
  448. package/core/toolbox/collapsible_category.ts +273 -0
  449. package/core/toolbox/separator.d.ts +39 -0
  450. package/core/toolbox/separator.ts +105 -0
  451. package/core/toolbox/toolbox.d.ts +352 -0
  452. package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
  453. package/core/toolbox/toolbox_item.d.ts +85 -0
  454. package/core/toolbox/toolbox_item.ts +147 -0
  455. package/core/tooltip.d.ts +126 -0
  456. package/core/{tooltip.js → tooltip.ts} +136 -214
  457. package/core/touch.d.ts +121 -0
  458. package/core/touch.ts +306 -0
  459. package/core/touch_gesture.d.ts +115 -0
  460. package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
  461. package/core/trashcan.d.ts +195 -0
  462. package/core/{trashcan.js → trashcan.ts} +226 -312
  463. package/core/utils/aria.d.ts +67 -0
  464. package/core/utils/{aria.js → aria.ts} +47 -61
  465. package/core/utils/array.d.ts +14 -0
  466. package/core/utils/{array.js → array.ts} +10 -12
  467. package/core/utils/colour.d.ts +103 -0
  468. package/core/utils/{colour.js → colour.ts} +60 -72
  469. package/core/utils/coordinate.d.ts +72 -0
  470. package/core/utils/coordinate.ts +124 -0
  471. package/core/utils/deprecation.d.ts +17 -0
  472. package/core/utils/{deprecation.js → deprecation.ts} +11 -11
  473. package/core/utils/dom.d.ts +165 -0
  474. package/core/utils/{dom.js → dom.ts} +125 -147
  475. package/core/utils/idgenerator.d.ts +25 -0
  476. package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
  477. package/core/utils/keycodes.d.ts +137 -0
  478. package/core/utils/keycodes.ts +169 -0
  479. package/core/utils/math.d.ts +30 -0
  480. package/core/utils/{math.js → math.ts} +17 -19
  481. package/core/utils/metrics.d.ts +64 -0
  482. package/core/utils/metrics.ts +97 -0
  483. package/core/utils/object.d.ts +35 -0
  484. package/core/utils/{object.js → object.ts} +30 -26
  485. package/core/utils/parsing.d.ts +50 -0
  486. package/core/utils/{parsing.js → parsing.ts} +50 -50
  487. package/core/utils/rect.d.ts +38 -0
  488. package/core/utils/{rect.js → rect.ts} +18 -31
  489. package/core/utils/sentinel.d.ts +11 -0
  490. package/core/utils/{sentinel.js → sentinel.ts} +3 -5
  491. package/core/utils/size.d.ts +27 -0
  492. package/core/utils/{size.js → size.ts} +12 -26
  493. package/core/utils/string.d.ts +55 -0
  494. package/core/utils/{string.js → string.ts} +64 -61
  495. package/core/utils/style.d.ts +127 -0
  496. package/core/utils/{style.js → style.ts} +102 -92
  497. package/core/utils/svg.d.ts +68 -0
  498. package/core/utils/svg.ts +88 -0
  499. package/core/utils/svg_math.d.ts +70 -0
  500. package/core/utils/{svg_math.js → svg_math.ts} +72 -71
  501. package/core/utils/svg_paths.d.ts +101 -0
  502. package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
  503. package/core/utils/toolbox.d.ts +193 -0
  504. package/core/utils/toolbox.ts +433 -0
  505. package/core/utils/useragent.d.ts +33 -0
  506. package/core/utils/useragent.ts +135 -0
  507. package/core/utils/xml.d.ts +52 -0
  508. package/core/utils/{xml.js → xml.ts} +26 -36
  509. package/core/utils.d.ts +217 -0
  510. package/core/utils.ts +428 -0
  511. package/core/variable_map.d.ts +141 -0
  512. package/core/{variable_map.js → variable_map.ts} +131 -149
  513. package/core/variable_model.d.ts +40 -0
  514. package/core/variable_model.ts +82 -0
  515. package/core/variables.d.ts +181 -0
  516. package/core/{variables.js → variables.ts} +206 -188
  517. package/core/variables_dynamic.d.ts +38 -0
  518. package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
  519. package/core/warning.d.ts +50 -0
  520. package/core/{warning.js → warning.ts} +52 -66
  521. package/core/widgetdiv.d.ts +69 -0
  522. package/core/widgetdiv.ts +257 -0
  523. package/core/workspace.d.ts +386 -0
  524. package/core/workspace.ts +801 -0
  525. package/core/workspace_audio.d.ts +47 -0
  526. package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
  527. package/core/workspace_comment.d.ts +170 -0
  528. package/core/workspace_comment.ts +398 -0
  529. package/core/workspace_comment_svg.d.ts +329 -0
  530. package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
  531. package/core/workspace_drag_surface_svg.d.ts +68 -0
  532. package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
  533. package/core/workspace_dragger.d.ts +48 -0
  534. package/core/workspace_dragger.ts +104 -0
  535. package/core/workspace_svg.d.ts +920 -0
  536. package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
  537. package/core/xml.d.ts +117 -0
  538. package/core/{xml.js → xml.ts} +306 -326
  539. package/core/zoom_controls.d.ts +130 -0
  540. package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
  541. package/core.d.ts +1 -3
  542. package/core.js +1 -2
  543. package/dart.d.ts +0 -3
  544. package/dart_compressed.js +387 -99
  545. package/dart_compressed.js.map +1 -1
  546. package/generators/dart/all.js +2 -0
  547. package/generators/dart/colour.js +1 -1
  548. package/generators/dart/lists.js +1 -1
  549. package/generators/dart/logic.js +1 -1
  550. package/generators/dart/loops.js +1 -1
  551. package/generators/dart/math.js +1 -1
  552. package/generators/dart/procedures.js +1 -1
  553. package/generators/dart/text.js +1 -1
  554. package/generators/dart/variables.js +1 -1
  555. package/generators/dart/variables_dynamic.js +1 -1
  556. package/generators/dart.js +1 -2
  557. package/generators/javascript/all.js +2 -0
  558. package/generators/javascript/colour.js +1 -1
  559. package/generators/javascript/lists.js +1 -1
  560. package/generators/javascript/logic.js +1 -1
  561. package/generators/javascript/loops.js +1 -1
  562. package/generators/javascript/math.js +4 -4
  563. package/generators/javascript/procedures.js +1 -1
  564. package/generators/javascript/text.js +2 -2
  565. package/generators/javascript/variables.js +1 -1
  566. package/generators/javascript/variables_dynamic.js +1 -1
  567. package/generators/javascript.js +1 -3
  568. package/generators/lua/all.js +2 -0
  569. package/generators/lua/colour.js +1 -1
  570. package/generators/lua/lists.js +1 -1
  571. package/generators/lua/logic.js +1 -1
  572. package/generators/lua/loops.js +1 -1
  573. package/generators/lua/math.js +1 -1
  574. package/generators/lua/procedures.js +1 -1
  575. package/generators/lua/text.js +1 -1
  576. package/generators/lua/variables.js +1 -1
  577. package/generators/lua/variables_dynamic.js +1 -1
  578. package/generators/lua.js +1 -2
  579. package/generators/php/all.js +2 -0
  580. package/generators/php/colour.js +1 -1
  581. package/generators/php/lists.js +1 -2
  582. package/generators/php/logic.js +1 -1
  583. package/generators/php/loops.js +1 -1
  584. package/generators/php/math.js +1 -1
  585. package/generators/php/procedures.js +1 -1
  586. package/generators/php/text.js +1 -1
  587. package/generators/php/variables.js +1 -1
  588. package/generators/php/variables_dynamic.js +1 -1
  589. package/generators/php.js +1 -2
  590. package/generators/python/all.js +2 -0
  591. package/generators/python/colour.js +3 -3
  592. package/generators/python/lists.js +1 -1
  593. package/generators/python/logic.js +1 -1
  594. package/generators/python/loops.js +4 -7
  595. package/generators/python/math.js +1 -1
  596. package/generators/python/procedures.js +1 -1
  597. package/generators/python/text.js +1 -1
  598. package/generators/python/variables.js +1 -1
  599. package/generators/python/variables_dynamic.js +1 -1
  600. package/generators/python.js +1 -2
  601. package/index.d.ts +2 -8
  602. package/javascript.d.ts +0 -3
  603. package/javascript_compressed.js +314 -104
  604. package/javascript_compressed.js.map +1 -1
  605. package/lua.d.ts +0 -3
  606. package/lua_compressed.js +399 -81
  607. package/lua_compressed.js.map +1 -1
  608. package/package.json +5 -5
  609. package/php.d.ts +0 -3
  610. package/php_compressed.js +322 -93
  611. package/php_compressed.js.map +1 -1
  612. package/python.d.ts +0 -3
  613. package/python_compressed.js +237 -90
  614. package/python_compressed.js.map +1 -1
  615. package/blockly.d.ts +0 -26127
  616. package/core/blockly_options.js +0 -28
  617. package/core/bubble_dragger.js +0 -298
  618. package/core/clipboard.js +0 -80
  619. package/core/component_manager.js +0 -263
  620. package/core/contextmenu_items.js +0 -651
  621. package/core/contextmenu_registry.js +0 -178
  622. package/core/delete_area.js +0 -87
  623. package/core/dialog.js +0 -107
  624. package/core/drag_target.js +0 -98
  625. package/core/events/events.js +0 -147
  626. package/core/events/events_abstract.js +0 -133
  627. package/core/events/events_block_base.js +0 -70
  628. package/core/events/events_block_drag.js +0 -89
  629. package/core/events/events_bubble_open.js +0 -90
  630. package/core/events/events_comment_base.js +0 -121
  631. package/core/events/events_marker_move.js +0 -110
  632. package/core/events/events_selected.js +0 -83
  633. package/core/events/events_toolbox_item_select.js +0 -84
  634. package/core/events/events_trashcan_open.js +0 -73
  635. package/core/events/events_var_base.js +0 -70
  636. package/core/events/events_viewport.js +0 -107
  637. package/core/events/workspace_events.js +0 -93
  638. package/core/field_angle.js +0 -591
  639. package/core/field_checkbox.js +0 -255
  640. package/core/field_colour.js +0 -717
  641. package/core/field_image.js +0 -304
  642. package/core/field_label.js +0 -149
  643. package/core/field_label_serializable.js +0 -80
  644. package/core/field_textinput.js +0 -619
  645. package/core/flyout_button.js +0 -356
  646. package/core/grid.js +0 -226
  647. package/core/icon.js +0 -225
  648. package/core/input.js +0 -335
  649. package/core/interfaces/i_ast_node_location_svg.js +0 -45
  650. package/core/interfaces/i_ast_node_location_with_block.js +0 -41
  651. package/core/interfaces/i_autohideable.js +0 -40
  652. package/core/interfaces/i_block_dragger.js +0 -66
  653. package/core/interfaces/i_bounded_element.js +0 -45
  654. package/core/interfaces/i_bubble.js +0 -95
  655. package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
  656. package/core/interfaces/i_connection_checker.js +0 -104
  657. package/core/interfaces/i_contextmenu.js +0 -32
  658. package/core/interfaces/i_copyable.js +0 -49
  659. package/core/interfaces/i_delete_area.js +0 -50
  660. package/core/interfaces/i_drag_target.js +0 -88
  661. package/core/interfaces/i_flyout.js +0 -201
  662. package/core/interfaces/i_keyboard_accessible.js +0 -38
  663. package/core/interfaces/i_metrics_manager.js +0 -154
  664. package/core/interfaces/i_positionable.js +0 -51
  665. package/core/interfaces/i_selectable.js +0 -51
  666. package/core/interfaces/i_selectable_toolbox_item.js +0 -73
  667. package/core/interfaces/i_serializer.js +0 -77
  668. package/core/interfaces/i_styleable.js +0 -39
  669. package/core/interfaces/i_toolbox.js +0 -142
  670. package/core/interfaces/i_toolbox_item.js +0 -85
  671. package/core/marker_manager.js +0 -213
  672. package/core/menuitem.js +0 -292
  673. package/core/names.js +0 -293
  674. package/core/registry.js +0 -384
  675. package/core/renderers/common/block_rendering.js +0 -170
  676. package/core/renderers/common/constants.js +0 -1250
  677. package/core/renderers/common/i_path_object.js +0 -162
  678. package/core/renderers/common/marker_svg.js +0 -721
  679. package/core/renderers/common/path_object.js +0 -283
  680. package/core/renderers/common/renderer.js +0 -305
  681. package/core/renderers/geras/constants.js +0 -73
  682. package/core/renderers/geras/geras.js +0 -36
  683. package/core/renderers/geras/measurables/inline_input.js +0 -58
  684. package/core/renderers/geras/measurables/statement_input.js +0 -57
  685. package/core/renderers/geras/renderer.js +0 -149
  686. package/core/renderers/measurables/base.js +0 -64
  687. package/core/renderers/measurables/bottom_row.js +0 -138
  688. package/core/renderers/measurables/connection.js +0 -56
  689. package/core/renderers/measurables/external_value_input.js +0 -70
  690. package/core/renderers/measurables/field.js +0 -71
  691. package/core/renderers/measurables/in_row_spacer.js +0 -47
  692. package/core/renderers/measurables/input_connection.js +0 -75
  693. package/core/renderers/measurables/next_connection.js +0 -50
  694. package/core/renderers/measurables/output_connection.js +0 -61
  695. package/core/renderers/measurables/previous_connection.js +0 -50
  696. package/core/renderers/measurables/round_corner.js +0 -52
  697. package/core/renderers/measurables/row.js +0 -247
  698. package/core/renderers/measurables/spacer_row.js +0 -69
  699. package/core/renderers/measurables/square_corner.js +0 -50
  700. package/core/renderers/measurables/top_row.js +0 -143
  701. package/core/renderers/measurables/types.js +0 -353
  702. package/core/renderers/minimalist/drawer.js +0 -42
  703. package/core/renderers/minimalist/info.js +0 -54
  704. package/core/renderers/minimalist/minimalist.js +0 -26
  705. package/core/renderers/minimalist/renderer.js +0 -80
  706. package/core/renderers/thrasos/renderer.js +0 -53
  707. package/core/renderers/thrasos/thrasos.js +0 -22
  708. package/core/renderers/zelos/marker_svg.js +0 -179
  709. package/core/renderers/zelos/measurables/bottom_row.js +0 -66
  710. package/core/renderers/zelos/measurables/row_elements.js +0 -46
  711. package/core/renderers/zelos/path_object.js +0 -247
  712. package/core/renderers/zelos/renderer.js +0 -147
  713. package/core/renderers/zelos/zelos.js +0 -38
  714. package/core/serialization/exceptions.js +0 -144
  715. package/core/shortcut_registry.js +0 -366
  716. package/core/theme/themes.js +0 -23
  717. package/core/theme.js +0 -228
  718. package/core/theme_manager.js +0 -211
  719. package/core/toolbox/category.js +0 -751
  720. package/core/toolbox/collapsible_category.js +0 -311
  721. package/core/toolbox/separator.js +0 -133
  722. package/core/toolbox/toolbox_item.js +0 -173
  723. package/core/touch.js +0 -285
  724. package/core/utils/coordinate.js +0 -138
  725. package/core/utils/global.js +0 -41
  726. package/core/utils/keycodes.js +0 -172
  727. package/core/utils/metrics.js +0 -154
  728. package/core/utils/svg.js +0 -186
  729. package/core/utils/toolbox.js +0 -459
  730. package/core/utils/useragent.js +0 -197
  731. package/core/utils.js +0 -383
  732. package/core/variable_model.js +0 -96
  733. package/core/widgetdiv.js +0 -290
  734. package/core/workspace.js +0 -836
  735. package/core/workspace_comment.js +0 -400
  736. package/core/workspace_dragger.js +0 -115
@@ -0,0 +1,156 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2016 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { FieldTextInputConfig, FieldTextInput } from './field_textinput.js';
7
+ import type { Sentinel } from './utils/sentinel.js';
8
+ /**
9
+ * Class for an editable number field.
10
+ * @alias Blockly.FieldNumber
11
+ */
12
+ export declare class FieldNumber extends FieldTextInput {
13
+ /** The minimum value this number field can contain. */
14
+ protected min_: number;
15
+ /** The maximum value this number field can contain. */
16
+ protected max_: number;
17
+ /** The multiple to which this fields value is rounded. */
18
+ protected precision_: number;
19
+ /**
20
+ * The number of decimal places to allow, or null to allow any number of
21
+ * decimal digits.
22
+ */
23
+ private decimalPlaces_;
24
+ /**
25
+ * Serializable fields are saved by the serializer, non-serializable fields
26
+ * are not. Editable fields should also be serializable.
27
+ */
28
+ SERIALIZABLE: boolean;
29
+ /**
30
+ * @param opt_value The initial value of the field. Should cast to a number.
31
+ * Defaults to 0. Also accepts Field.SKIP_SETUP if you wish to skip setup
32
+ * (only used by subclasses that want to handle configuration and setting
33
+ * the field value after their own constructors have run).
34
+ * @param opt_min Minimum value. Will only be used if opt_config is not
35
+ * provided.
36
+ * @param opt_max Maximum value. Will only be used if opt_config is not
37
+ * provided.
38
+ * @param opt_precision Precision for value. Will only be used if opt_config
39
+ * is not provided.
40
+ * @param opt_validator A function that is called to validate changes to the
41
+ * field's value. Takes in a number & returns a validated number, or null
42
+ * to abort the change.
43
+ * @param opt_config A map of options used to configure the field.
44
+ * See the [field creation documentation]{@link
45
+ * https://developers.google.com/blockly/guides/create-custom-blocks/fields/built-in-fields/number#creation}
46
+ * for a list of properties this parameter supports.
47
+ */
48
+ constructor(opt_value?: string | number | Sentinel, opt_min?: string | number | null, opt_max?: string | number | null, opt_precision?: string | number | null, opt_validator?: Function | null, opt_config?: FieldNumberConfig);
49
+ /**
50
+ * Configure the field based on the given map of options.
51
+ * @param config A map of options to configure the field based on.
52
+ */
53
+ protected configure_(config: FieldNumberConfig): void;
54
+ /**
55
+ * Set the maximum, minimum and precision constraints on this field.
56
+ * Any of these properties may be undefined or NaN to be disabled.
57
+ * Setting precision (usually a power of 10) enforces a minimum step between
58
+ * values. That is, the user's value will rounded to the closest multiple of
59
+ * precision. The least significant digit place is inferred from the
60
+ * precision. Integers values can be enforces by choosing an integer
61
+ * precision.
62
+ * @param min Minimum value.
63
+ * @param max Maximum value.
64
+ * @param precision Precision for value.
65
+ */
66
+ setConstraints(min: number | string | undefined | null, max: number | string | undefined | null, precision: number | string | undefined | null): void;
67
+ /**
68
+ * Sets the minimum value this field can contain. Updates the value to
69
+ * reflect.
70
+ * @param min Minimum value.
71
+ */
72
+ setMin(min: number | string | undefined | null): void;
73
+ /**
74
+ * Sets the minimum value this field can contain. Called internally to avoid
75
+ * value updates.
76
+ * @param min Minimum value.
77
+ */
78
+ private setMinInternal_;
79
+ /**
80
+ * Returns the current minimum value this field can contain. Default is
81
+ * -Infinity.
82
+ * @return The current minimum value this field can contain.
83
+ */
84
+ getMin(): number;
85
+ /**
86
+ * Sets the maximum value this field can contain. Updates the value to
87
+ * reflect.
88
+ * @param max Maximum value.
89
+ */
90
+ setMax(max: number | string | undefined | null): void;
91
+ /**
92
+ * Sets the maximum value this field can contain. Called internally to avoid
93
+ * value updates.
94
+ * @param max Maximum value.
95
+ */
96
+ private setMaxInternal_;
97
+ /**
98
+ * Returns the current maximum value this field can contain. Default is
99
+ * Infinity.
100
+ * @return The current maximum value this field can contain.
101
+ */
102
+ getMax(): number;
103
+ /**
104
+ * Sets the precision of this field's value, i.e. the number to which the
105
+ * value is rounded. Updates the field to reflect.
106
+ * @param precision The number to which the field's value is rounded.
107
+ */
108
+ setPrecision(precision: number | string | undefined | null): void;
109
+ /**
110
+ * Sets the precision of this field's value. Called internally to avoid
111
+ * value updates.
112
+ * @param precision The number to which the field's value is rounded.
113
+ */
114
+ private setPrecisionInternal_;
115
+ /**
116
+ * Returns the current precision of this field. The precision being the
117
+ * number to which the field's value is rounded. A precision of 0 means that
118
+ * the value is not rounded.
119
+ * @return The number to which this field's value is rounded.
120
+ */
121
+ getPrecision(): number;
122
+ /**
123
+ * Ensure that the input value is a valid number (must fulfill the
124
+ * constraints placed on the field).
125
+ * @param opt_newValue The input value.
126
+ * @return A valid number, or null if invalid.
127
+ */
128
+ protected doClassValidation_(opt_newValue?: any): number | null;
129
+ /**
130
+ * Create the number input editor widget.
131
+ * @return The newly created number input editor.
132
+ */
133
+ protected widgetCreate_(): HTMLElement;
134
+ /**
135
+ * Construct a FieldNumber from a JSON arg object.
136
+ * @param options A JSON object with options (value, min, max, and precision).
137
+ * @return The new field instance.
138
+ * @nocollapse
139
+ * @internal
140
+ */
141
+ static fromJson(options: FieldNumberFromJsonConfig): FieldNumber;
142
+ }
143
+ /**
144
+ * Config options for the number field.
145
+ */
146
+ export interface FieldNumberConfig extends FieldTextInputConfig {
147
+ min?: number;
148
+ max?: number;
149
+ precision?: number;
150
+ }
151
+ /**
152
+ * fromJson config options for the number field.
153
+ */
154
+ export interface FieldNumberFromJsonConfig extends FieldNumberConfig {
155
+ value?: number;
156
+ }
@@ -7,110 +7,96 @@
7
7
  /**
8
8
  * @fileoverview Number input field
9
9
  */
10
- 'use strict';
11
10
 
12
11
  /**
13
12
  * Number input field
14
13
  * @class
15
14
  */
16
- goog.module('Blockly.FieldNumber');
15
+ import * as goog from '../closure/goog/goog.js';
16
+ goog.declareModuleId('Blockly.FieldNumber');
17
17
 
18
- const aria = goog.require('Blockly.utils.aria');
19
- const fieldRegistry = goog.require('Blockly.fieldRegistry');
20
- const {Field} = goog.require('Blockly.Field');
21
- const {FieldTextInput} = goog.require('Blockly.FieldTextInput');
22
- /* eslint-disable-next-line no-unused-vars */
23
- const {Sentinel} = goog.requireType('Blockly.utils.Sentinel');
18
+ import {Field} from './field.js';
19
+ import * as fieldRegistry from './field_registry.js';
20
+ import {FieldTextInputConfig, FieldTextInput} from './field_textinput.js';
21
+ import * as aria from './utils/aria.js';
22
+ import type {Sentinel} from './utils/sentinel.js';
24
23
 
25
24
 
26
25
  /**
27
26
  * Class for an editable number field.
28
- * @extends {FieldTextInput}
29
27
  * @alias Blockly.FieldNumber
30
28
  */
31
- class FieldNumber extends FieldTextInput {
29
+ export class FieldNumber extends FieldTextInput {
30
+ /** The minimum value this number field can contain. */
31
+ protected min_: number = -Infinity;
32
+
33
+ /** The maximum value this number field can contain. */
34
+ protected max_: number = Infinity;
35
+
36
+ /** The multiple to which this fields value is rounded. */
37
+ protected precision_ = 0;
38
+
32
39
  /**
33
- * @param {(string|number|!Sentinel)=} opt_value The initial value of
34
- * the field. Should cast to a number. Defaults to 0.
35
- * Also accepts Field.SKIP_SETUP if you wish to skip setup (only used by
36
- * subclasses that want to handle configuration and setting the field
37
- * value after their own constructors have run).
38
- * @param {?(string|number)=} opt_min Minimum value. Will only be used if
39
- * opt_config is not provided.
40
- * @param {?(string|number)=} opt_max Maximum value. Will only be used if
41
- * opt_config is not provided.
42
- * @param {?(string|number)=} opt_precision Precision for value. Will only be
43
- * used if opt_config is not provided.
44
- * @param {?Function=} opt_validator A function that is called to validate
45
- * changes to the field's value. Takes in a number & returns a validated
46
- * number, or null to abort the change.
47
- * @param {Object=} opt_config A map of options used to configure the field.
40
+ * The number of decimal places to allow, or null to allow any number of
41
+ * decimal digits.
42
+ */
43
+ private decimalPlaces_: number|null = null;
44
+
45
+ /**
46
+ * Serializable fields are saved by the serializer, non-serializable fields
47
+ * are not. Editable fields should also be serializable.
48
+ */
49
+ override SERIALIZABLE = true;
50
+
51
+ /**
52
+ * @param opt_value The initial value of the field. Should cast to a number.
53
+ * Defaults to 0. Also accepts Field.SKIP_SETUP if you wish to skip setup
54
+ * (only used by subclasses that want to handle configuration and setting
55
+ * the field value after their own constructors have run).
56
+ * @param opt_min Minimum value. Will only be used if opt_config is not
57
+ * provided.
58
+ * @param opt_max Maximum value. Will only be used if opt_config is not
59
+ * provided.
60
+ * @param opt_precision Precision for value. Will only be used if opt_config
61
+ * is not provided.
62
+ * @param opt_validator A function that is called to validate changes to the
63
+ * field's value. Takes in a number & returns a validated number, or null
64
+ * to abort the change.
65
+ * @param opt_config A map of options used to configure the field.
48
66
  * See the [field creation documentation]{@link
49
- * https://developers.google.com/blockly/guides/create-custom-blocks/fields/built-in-fields/number#creation}
50
- * for a list of properties this parameter supports.
67
+ * https://developers.google.com/blockly/guides/create-custom-blocks/fields/built-in-fields/number#creation}
68
+ * for a list of properties this parameter supports.
51
69
  */
52
70
  constructor(
53
- opt_value, opt_min, opt_max, opt_precision, opt_validator, opt_config) {
71
+ opt_value?: string|number|Sentinel, opt_min?: string|number|null,
72
+ opt_max?: string|number|null, opt_precision?: string|number|null,
73
+ opt_validator?: Function|null, opt_config?: FieldNumberConfig) {
54
74
  // Pass SENTINEL so that we can define properties before value validation.
55
75
  super(Field.SKIP_SETUP);
56
76
 
57
- /**
58
- * The minimum value this number field can contain.
59
- * @type {number}
60
- * @protected
61
- */
62
- this.min_ = -Infinity;
63
-
64
- /**
65
- * The maximum value this number field can contain.
66
- * @type {number}
67
- * @protected
68
- */
69
- this.max_ = Infinity;
70
-
71
- /**
72
- * The multiple to which this fields value is rounded.
73
- * @type {number}
74
- * @protected
75
- */
76
- this.precision_ = 0;
77
-
78
- /**
79
- * The number of decimal places to allow, or null to allow any number of
80
- * decimal digits.
81
- * @type {?number}
82
- * @private
83
- */
84
- this.decimalPlaces_ = null;
85
-
86
- /**
87
- * Serializable fields are saved by the serializer, non-serializable fields
88
- * are not. Editable fields should also be serializable.
89
- * @type {boolean}
90
- */
91
- this.SERIALIZABLE = true;
92
-
93
- if (opt_value === Field.SKIP_SETUP) return;
77
+ if (opt_value === Field.SKIP_SETUP) {
78
+ return;
79
+ }
94
80
  if (opt_config) {
95
81
  this.configure_(opt_config);
96
82
  } else {
97
83
  this.setConstraints(opt_min, opt_max, opt_precision);
98
84
  }
99
85
  this.setValue(opt_value);
100
- if (opt_validator) this.setValidator(opt_validator);
86
+ if (opt_validator) {
87
+ this.setValidator(opt_validator);
88
+ }
101
89
  }
102
90
 
103
91
  /**
104
92
  * Configure the field based on the given map of options.
105
- * @param {!Object} config A map of options to configure the field based on.
106
- * @protected
107
- * @override
93
+ * @param config A map of options to configure the field based on.
108
94
  */
109
- configure_(config) {
95
+ protected override configure_(config: FieldNumberConfig) {
110
96
  super.configure_(config);
111
- this.setMinInternal_(config['min']);
112
- this.setMaxInternal_(config['max']);
113
- this.setPrecisionInternal_(config['precision']);
97
+ this.setMinInternal_(config.min);
98
+ this.setMaxInternal_(config.max);
99
+ this.setPrecisionInternal_(config.precision);
114
100
  }
115
101
 
116
102
  /**
@@ -121,11 +107,13 @@ class FieldNumber extends FieldTextInput {
121
107
  * precision. The least significant digit place is inferred from the
122
108
  * precision. Integers values can be enforces by choosing an integer
123
109
  * precision.
124
- * @param {?(number|string|undefined)} min Minimum value.
125
- * @param {?(number|string|undefined)} max Maximum value.
126
- * @param {?(number|string|undefined)} precision Precision for value.
110
+ * @param min Minimum value.
111
+ * @param max Maximum value.
112
+ * @param precision Precision for value.
127
113
  */
128
- setConstraints(min, max, precision) {
114
+ setConstraints(
115
+ min: number|string|undefined|null, max: number|string|undefined|null,
116
+ precision: number|string|undefined|null) {
129
117
  this.setMinInternal_(min);
130
118
  this.setMaxInternal_(max);
131
119
  this.setPrecisionInternal_(precision);
@@ -135,9 +123,9 @@ class FieldNumber extends FieldTextInput {
135
123
  /**
136
124
  * Sets the minimum value this field can contain. Updates the value to
137
125
  * reflect.
138
- * @param {?(number|string|undefined)} min Minimum value.
126
+ * @param min Minimum value.
139
127
  */
140
- setMin(min) {
128
+ setMin(min: number|string|undefined|null) {
141
129
  this.setMinInternal_(min);
142
130
  this.setValue(this.getValue());
143
131
  }
@@ -145,10 +133,9 @@ class FieldNumber extends FieldTextInput {
145
133
  /**
146
134
  * Sets the minimum value this field can contain. Called internally to avoid
147
135
  * value updates.
148
- * @param {?(number|string|undefined)} min Minimum value.
149
- * @private
136
+ * @param min Minimum value.
150
137
  */
151
- setMinInternal_(min) {
138
+ private setMinInternal_(min: number|string|undefined|null) {
152
139
  if (min == null) {
153
140
  this.min_ = -Infinity;
154
141
  } else {
@@ -162,18 +149,18 @@ class FieldNumber extends FieldTextInput {
162
149
  /**
163
150
  * Returns the current minimum value this field can contain. Default is
164
151
  * -Infinity.
165
- * @return {number} The current minimum value this field can contain.
152
+ * @return The current minimum value this field can contain.
166
153
  */
167
- getMin() {
154
+ getMin(): number {
168
155
  return this.min_;
169
156
  }
170
157
 
171
158
  /**
172
159
  * Sets the maximum value this field can contain. Updates the value to
173
160
  * reflect.
174
- * @param {?(number|string|undefined)} max Maximum value.
161
+ * @param max Maximum value.
175
162
  */
176
- setMax(max) {
163
+ setMax(max: number|string|undefined|null) {
177
164
  this.setMaxInternal_(max);
178
165
  this.setValue(this.getValue());
179
166
  }
@@ -181,10 +168,9 @@ class FieldNumber extends FieldTextInput {
181
168
  /**
182
169
  * Sets the maximum value this field can contain. Called internally to avoid
183
170
  * value updates.
184
- * @param {?(number|string|undefined)} max Maximum value.
185
- * @private
171
+ * @param max Maximum value.
186
172
  */
187
- setMaxInternal_(max) {
173
+ private setMaxInternal_(max: number|string|undefined|null) {
188
174
  if (max == null) {
189
175
  this.max_ = Infinity;
190
176
  } else {
@@ -198,19 +184,18 @@ class FieldNumber extends FieldTextInput {
198
184
  /**
199
185
  * Returns the current maximum value this field can contain. Default is
200
186
  * Infinity.
201
- * @return {number} The current maximum value this field can contain.
187
+ * @return The current maximum value this field can contain.
202
188
  */
203
- getMax() {
189
+ getMax(): number {
204
190
  return this.max_;
205
191
  }
206
192
 
207
193
  /**
208
194
  * Sets the precision of this field's value, i.e. the number to which the
209
195
  * value is rounded. Updates the field to reflect.
210
- * @param {?(number|string|undefined)} precision The number to which the
211
- * field's value is rounded.
196
+ * @param precision The number to which the field's value is rounded.
212
197
  */
213
- setPrecision(precision) {
198
+ setPrecision(precision: number|string|undefined|null) {
214
199
  this.setPrecisionInternal_(precision);
215
200
  this.setValue(this.getValue());
216
201
  }
@@ -218,11 +203,9 @@ class FieldNumber extends FieldTextInput {
218
203
  /**
219
204
  * Sets the precision of this field's value. Called internally to avoid
220
205
  * value updates.
221
- * @param {?(number|string|undefined)} precision The number to which the
222
- * field's value is rounded.
223
- * @private
206
+ * @param precision The number to which the field's value is rounded.
224
207
  */
225
- setPrecisionInternal_(precision) {
208
+ private setPrecisionInternal_(precision: number|string|undefined|null) {
226
209
  this.precision_ = Number(precision) || 0;
227
210
  let precisionString = String(this.precision_);
228
211
  if (precisionString.indexOf('e') !== -1) {
@@ -245,21 +228,20 @@ class FieldNumber extends FieldTextInput {
245
228
  * Returns the current precision of this field. The precision being the
246
229
  * number to which the field's value is rounded. A precision of 0 means that
247
230
  * the value is not rounded.
248
- * @return {number} The number to which this field's value is rounded.
231
+ * @return The number to which this field's value is rounded.
249
232
  */
250
- getPrecision() {
233
+ getPrecision(): number {
251
234
  return this.precision_;
252
235
  }
253
236
 
254
237
  /**
255
238
  * Ensure that the input value is a valid number (must fulfill the
256
239
  * constraints placed on the field).
257
- * @param {*=} opt_newValue The input value.
258
- * @return {?number} A valid number, or null if invalid.
259
- * @protected
260
- * @override
240
+ * @param opt_newValue The input value.
241
+ * @return A valid number, or null if invalid.
261
242
  */
262
- doClassValidation_(opt_newValue) {
243
+ protected override doClassValidation_(opt_newValue?: AnyDuringMigration):
244
+ number|null {
263
245
  if (opt_newValue === null) {
264
246
  return null;
265
247
  }
@@ -294,11 +276,9 @@ class FieldNumber extends FieldTextInput {
294
276
 
295
277
  /**
296
278
  * Create the number input editor widget.
297
- * @return {!HTMLElement} The newly created number input editor.
298
- * @protected
299
- * @override
279
+ * @return The newly created number input editor.
300
280
  */
301
- widgetCreate_() {
281
+ protected override widgetCreate_(): HTMLElement {
302
282
  const htmlInput = super.widgetCreate_();
303
283
 
304
284
  // Set the accessibility state
@@ -313,28 +293,35 @@ class FieldNumber extends FieldTextInput {
313
293
 
314
294
  /**
315
295
  * Construct a FieldNumber from a JSON arg object.
316
- * @param {!Object} options A JSON object with options (value, min, max, and
317
- * precision).
318
- * @return {!FieldNumber} The new field instance.
319
- * @package
296
+ * @param options A JSON object with options (value, min, max, and precision).
297
+ * @return The new field instance.
320
298
  * @nocollapse
321
- * @override
299
+ * @internal
322
300
  */
323
- static fromJson(options) {
301
+ static override fromJson(options: FieldNumberFromJsonConfig): FieldNumber {
324
302
  // `this` might be a subclass of FieldNumber if that class doesn't override
325
303
  // the static fromJson method.
326
304
  return new this(
327
- options['value'], undefined, undefined, undefined, undefined, options);
305
+ options.value, undefined, undefined, undefined, undefined, options);
328
306
  }
329
307
  }
330
308
 
309
+ fieldRegistry.register('field_number', FieldNumber);
310
+
311
+ (FieldNumber.prototype as AnyDuringMigration).DEFAULT_VALUE = 0;
312
+
331
313
  /**
332
- * The default value for this field.
333
- * @type {*}
334
- * @protected
314
+ * Config options for the number field.
335
315
  */
336
- FieldNumber.prototype.DEFAULT_VALUE = 0;
337
-
338
- fieldRegistry.register('field_number', FieldNumber);
316
+ export interface FieldNumberConfig extends FieldTextInputConfig {
317
+ min?: number;
318
+ max?: number;
319
+ precision?: number;
320
+ }
339
321
 
340
- exports.FieldNumber = FieldNumber;
322
+ /**
323
+ * fromJson config options for the number field.
324
+ */
325
+ export interface FieldNumberFromJsonConfig extends FieldNumberConfig {
326
+ value?: number;
327
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Field } from './field.js';
7
+ import type { IRegistrableField } from './interfaces/i_registrable_field.js';
8
+ /**
9
+ * Registers a field type.
10
+ * fieldRegistry.fromJson uses this registry to
11
+ * find the appropriate field type.
12
+ * @param type The field type name as used in the JSON definition.
13
+ * @param fieldClass The field class containing a fromJson function that can
14
+ * construct an instance of the field.
15
+ * @throws {Error} if the type name is empty, the field is already registered,
16
+ * or the fieldClass is not an object containing a fromJson function.
17
+ * @alias Blockly.fieldRegistry.register
18
+ */
19
+ export declare function register(type: string, fieldClass: IRegistrableField): void;
20
+ /**
21
+ * Unregisters the field registered with the given type.
22
+ * @param type The field type name as used in the JSON definition.
23
+ * @alias Blockly.fieldRegistry.unregister
24
+ */
25
+ export declare function unregister(type: string): void;
26
+ /**
27
+ * Construct a Field from a JSON arg object.
28
+ * Finds the appropriate registered field by the type name as registered using
29
+ * fieldRegistry.register.
30
+ * @param options A JSON object with a type and options specific to the field
31
+ * type.
32
+ * @return The new field instance or null if a field wasn't found with the given
33
+ * type name
34
+ * @alias Blockly.fieldRegistry.fromJson
35
+ * @internal
36
+ */
37
+ export declare function fromJson(options: any): Field | null;
38
+ /**
39
+ * Private version of fromJson for stubbing in tests.
40
+ */
41
+ declare function fromJsonInternal(options: any): Field | null;
42
+ export declare const TEST_ONLY: {
43
+ fromJsonInternal: typeof fromJsonInternal;
44
+ };
45
+ export {};