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.
- package/blockly.min.js +2002 -2269
- package/blockly_compressed.js +1499 -1994
- package/blockly_compressed.js.map +1 -1
- package/blocks/blocks.js +3 -2
- package/blocks/colour.js +3 -1
- package/blocks/lists.js +94 -22
- package/blocks/logic.js +14 -6
- package/blocks/loops.js +5 -3
- package/blocks/math.js +3 -1
- package/blocks/procedures.js +3 -1
- package/blocks/text.js +14 -6
- package/blocks/variables.js +3 -1
- package/blocks/variables_dynamic.js +3 -1
- package/blocks.d.ts +0 -2
- package/blocks_compressed.js +189 -171
- package/blocks_compressed.js.map +1 -1
- package/closure/goog/base.d.ts +1 -0
- package/closure/goog/base_minimal.d.ts +18 -0
- package/closure/goog/goog.d.ts +25 -0
- package/core/any_aliases.d.ts +1 -0
- package/core/any_aliases.ts +1 -0
- package/core/block.d.ts +779 -0
- package/core/{block.js → block.ts} +610 -719
- package/core/block_animations.d.ts +33 -0
- package/core/{block_animations.js → block_animations.ts} +75 -79
- package/core/block_drag_surface.d.ts +111 -0
- package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
- package/core/block_dragger.d.ts +143 -0
- package/core/{block_dragger.js → block_dragger.ts} +139 -176
- package/core/block_svg.d.ts +588 -0
- package/core/{block_svg.js → block_svg.ts} +494 -630
- package/core/blockly.d.ts +562 -0
- package/core/blockly.js +1 -1
- package/core/blockly.ts +749 -0
- package/core/blockly_options.d.ts +69 -0
- package/core/blockly_options.ts +81 -0
- package/core/blocks.d.ts +17 -0
- package/core/{blocks.js → blocks.ts} +4 -8
- package/core/browser_events.d.ts +85 -0
- package/core/{browser_events.js → browser_events.ts} +98 -93
- package/core/bubble.d.ts +279 -0
- package/core/{bubble.js → bubble.ts} +277 -370
- package/core/bubble_dragger.d.ts +73 -0
- package/core/bubble_dragger.ts +229 -0
- package/core/bump_objects.d.ts +34 -0
- package/core/{bump_objects.js → bump_objects.ts} +54 -52
- package/core/clipboard.d.ts +42 -0
- package/core/clipboard.ts +91 -0
- package/core/comment.d.ts +113 -0
- package/core/{comment.js → comment.ts} +135 -185
- package/core/common.d.ts +129 -0
- package/core/{common.js → common.ts} +105 -82
- package/core/component_manager.d.ts +91 -0
- package/core/component_manager.ts +211 -0
- package/core/config.d.ts +23 -0
- package/core/{config.js → config.ts} +12 -19
- package/core/connection.d.ts +232 -0
- package/core/{connection.js → connection.ts} +187 -237
- package/core/connection_checker.d.ts +78 -0
- package/core/{connection_checker.js → connection_checker.ts} +66 -77
- package/core/connection_db.d.ts +91 -0
- package/core/{connection_db.js → connection_db.ts} +62 -87
- package/core/connection_type.d.ts +15 -0
- package/core/{connection_type.js → connection_type.ts} +8 -12
- package/core/constants.d.ts +15 -0
- package/core/{constants.js → constants.ts} +4 -8
- package/core/contextmenu.d.ts +80 -0
- package/core/{contextmenu.js → contextmenu.ts} +118 -153
- package/core/contextmenu_items.d.ts +77 -0
- package/core/contextmenu_items.ts +576 -0
- package/core/contextmenu_registry.d.ts +105 -0
- package/core/contextmenu_registry.ts +179 -0
- package/core/css.d.ts +24 -0
- package/core/{css.js → css.ts} +16 -24
- package/core/delete_area.d.ts +47 -0
- package/core/delete_area.ts +82 -0
- package/core/dialog.d.ts +61 -0
- package/core/dialog.ts +127 -0
- package/core/drag_target.d.ts +63 -0
- package/core/drag_target.ts +94 -0
- package/core/dropdowndiv.d.ts +155 -0
- package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
- package/core/events/events.d.ts +102 -0
- package/core/events/events.ts +123 -0
- package/core/events/events_abstract.d.ts +51 -0
- package/core/events/events_abstract.ts +112 -0
- package/core/events/events_block_base.d.ts +31 -0
- package/core/events/events_block_base.ts +65 -0
- package/core/events/events_block_change.d.ts +55 -0
- package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
- package/core/events/events_block_create.d.ts +35 -0
- package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
- package/core/events/events_block_delete.d.ts +36 -0
- package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
- package/core/events/events_block_drag.d.ts +36 -0
- package/core/events/events_block_drag.ts +82 -0
- package/core/events/events_block_move.d.ts +51 -0
- package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
- package/core/events/events_bubble_open.d.ts +35 -0
- package/core/events/events_bubble_open.ts +82 -0
- package/core/events/events_click.d.ts +36 -0
- package/core/events/{events_click.js → events_click.ts} +27 -30
- package/core/events/events_comment_base.d.ts +39 -0
- package/core/events/events_comment_base.ts +107 -0
- package/core/events/events_comment_change.d.ts +43 -0
- package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
- package/core/events/events_comment_create.d.ts +35 -0
- package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
- package/core/events/events_comment_delete.d.ts +35 -0
- package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
- package/core/events/events_comment_move.d.ts +55 -0
- package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
- package/core/events/events_marker_move.d.ts +40 -0
- package/core/events/events_marker_move.ts +99 -0
- package/core/events/events_selected.d.ts +34 -0
- package/core/events/events_selected.ts +78 -0
- package/core/events/events_theme_change.d.ts +30 -0
- package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
- package/core/events/events_toolbox_item_select.d.ts +34 -0
- package/core/events/events_toolbox_item_select.ts +79 -0
- package/core/events/events_trashcan_open.d.ts +31 -0
- package/core/events/events_trashcan_open.ts +68 -0
- package/core/events/events_ui.d.ts +37 -0
- package/core/events/{events_ui.js → events_ui.ts} +27 -26
- package/core/events/events_ui_base.d.ts +26 -0
- package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
- package/core/events/events_var_base.d.ts +31 -0
- package/core/events/events_var_base.ts +65 -0
- package/core/events/events_var_create.d.ts +35 -0
- package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
- package/core/events/events_var_delete.d.ts +35 -0
- package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
- package/core/events/events_var_rename.d.ts +36 -0
- package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
- package/core/events/events_viewport.d.ts +39 -0
- package/core/events/events_viewport.ts +100 -0
- package/core/events/utils.d.ts +272 -0
- package/core/events/{utils.js → utils.ts} +148 -219
- package/core/events/workspace_events.d.ts +36 -0
- package/core/events/workspace_events.ts +86 -0
- package/core/extensions.d.ts +107 -0
- package/core/{extensions.js → extensions.ts} +153 -172
- package/core/field.d.ts +534 -0
- package/core/{field.js → field.ts} +413 -489
- package/core/field_angle.d.ts +176 -0
- package/core/field_angle.ts +563 -0
- package/core/field_checkbox.d.ts +124 -0
- package/core/field_checkbox.ts +243 -0
- package/core/field_colour.d.ts +200 -0
- package/core/field_colour.ts +632 -0
- package/core/field_dropdown.d.ts +222 -0
- package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
- package/core/field_image.d.ts +134 -0
- package/core/field_image.ts +282 -0
- package/core/field_label.d.ts +71 -0
- package/core/field_label.ts +152 -0
- package/core/field_label_serializable.d.ts +42 -0
- package/core/field_label_serializable.ts +76 -0
- package/core/field_multilineinput.d.ts +146 -0
- package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
- package/core/field_number.d.ts +156 -0
- package/core/{field_number.js → field_number.ts} +110 -123
- package/core/field_registry.d.ts +45 -0
- package/core/{field_registry.js → field_registry.ts} +37 -30
- package/core/field_textinput.d.ts +219 -0
- package/core/field_textinput.ts +591 -0
- package/core/field_variable.d.ts +217 -0
- package/core/{field_variable.js → field_variable.ts} +174 -187
- package/core/flyout_base.d.ts +459 -0
- package/core/{flyout_base.js → flyout_base.ts} +429 -518
- package/core/flyout_button.d.ts +81 -0
- package/core/flyout_button.ts +292 -0
- package/core/flyout_horizontal.d.ts +82 -0
- package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
- package/core/flyout_metrics_manager.d.ts +40 -0
- package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
- package/core/flyout_vertical.d.ts +83 -0
- package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
- package/core/generator.d.ts +205 -0
- package/core/{generator.js → generator.ts} +168 -193
- package/core/gesture.d.ts +357 -0
- package/core/{gesture.js → gesture.ts} +289 -369
- package/core/grid.d.ts +83 -0
- package/core/grid.ts +192 -0
- package/core/icon.d.ts +78 -0
- package/core/icon.ts +189 -0
- package/core/inject.d.ts +15 -0
- package/core/{inject.js → inject.ts} +101 -100
- package/core/input.d.ts +128 -0
- package/core/input.ts +309 -0
- package/core/input_types.d.ts +14 -0
- package/core/{input_types.js → input_types.ts} +8 -12
- package/core/insertion_marker_manager.d.ts +212 -0
- package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
- package/core/interfaces/i_ast_node_location.d.ts +11 -0
- package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
- package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
- package/core/interfaces/i_ast_node_location_svg.ts +37 -0
- package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
- package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
- package/core/interfaces/i_autohideable.d.ts +18 -0
- package/core/interfaces/i_autohideable.ts +34 -0
- package/core/interfaces/i_block_dragger.d.ts +43 -0
- package/core/interfaces/i_block_dragger.ts +67 -0
- package/core/interfaces/i_bounded_element.d.ts +24 -0
- package/core/interfaces/i_bounded_element.ts +42 -0
- package/core/interfaces/i_bubble.d.ts +59 -0
- package/core/interfaces/i_bubble.ts +88 -0
- package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
- package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
- package/core/interfaces/i_component.d.ts +17 -0
- package/core/interfaces/{i_component.js → i_component.ts} +9 -14
- package/core/interfaces/i_connection_checker.d.ts +69 -0
- package/core/interfaces/i_connection_checker.ts +102 -0
- package/core/interfaces/i_contextmenu.d.ts +13 -0
- package/core/interfaces/i_contextmenu.ts +26 -0
- package/core/interfaces/i_copyable.d.ts +24 -0
- package/core/interfaces/i_copyable.ts +40 -0
- package/core/interfaces/i_deletable.d.ts +16 -0
- package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
- package/core/interfaces/i_delete_area.d.ts +25 -0
- package/core/interfaces/i_delete_area.ts +46 -0
- package/core/interfaces/i_drag_target.d.ts +53 -0
- package/core/interfaces/i_drag_target.ts +84 -0
- package/core/interfaces/i_draggable.d.ts +12 -0
- package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
- package/core/interfaces/i_flyout.d.ts +134 -0
- package/core/interfaces/i_flyout.ts +186 -0
- package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
- package/core/interfaces/i_keyboard_accessible.ts +35 -0
- package/core/interfaces/i_metrics_manager.d.ts +117 -0
- package/core/interfaces/i_metrics_manager.ts +151 -0
- package/core/interfaces/i_movable.d.ts +16 -0
- package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
- package/core/interfaces/i_positionable.d.ts +27 -0
- package/core/interfaces/i_positionable.ts +50 -0
- package/core/interfaces/i_registrable.d.ts +11 -0
- package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
- package/core/interfaces/i_registrable_field.d.ts +17 -0
- package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
- package/core/interfaces/i_selectable.d.ts +18 -0
- package/core/interfaces/i_selectable.ts +34 -0
- package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
- package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
- package/core/interfaces/i_serializer.d.ts +42 -0
- package/core/interfaces/i_serializer.ts +65 -0
- package/core/interfaces/i_styleable.d.ts +21 -0
- package/core/interfaces/i_styleable.ts +35 -0
- package/core/interfaces/i_toolbox.d.ts +85 -0
- package/core/interfaces/i_toolbox.ts +127 -0
- package/core/interfaces/i_toolbox_item.d.ts +62 -0
- package/core/interfaces/i_toolbox_item.ts +84 -0
- package/core/internal_constants.d.ts +40 -0
- package/core/{internal_constants.js → internal_constants.ts} +13 -18
- package/core/keyboard_nav/ast_node.d.ts +239 -0
- package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
- package/core/keyboard_nav/basic_cursor.d.ts +88 -0
- package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
- package/core/keyboard_nav/cursor.d.ts +41 -0
- package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
- package/core/keyboard_nav/marker.d.ts +58 -0
- package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
- package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
- package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
- package/core/main.d.ts +11 -0
- package/core/main.js +303 -0
- package/core/marker_manager.d.ts +85 -0
- package/core/marker_manager.ts +181 -0
- package/core/menu.d.ts +149 -0
- package/core/{menu.js → menu.ts} +141 -174
- package/core/menuitem.d.ts +118 -0
- package/core/menuitem.ts +240 -0
- package/core/metrics_manager.d.ts +201 -0
- package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
- package/core/msg.d.ts +9 -0
- package/core/{msg.js → msg.ts} +4 -8
- package/core/mutator.d.ts +128 -0
- package/core/{mutator.js → mutator.ts} +196 -211
- package/core/names.d.ts +124 -0
- package/core/names.ts +267 -0
- package/core/options.d.ts +137 -0
- package/core/{options.js → options.ts} +147 -173
- package/core/positionable_helpers.d.ts +88 -0
- package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
- package/core/procedures.d.ts +108 -0
- package/core/{procedures.js → procedures.ts} +143 -152
- package/core/registry.d.ts +137 -0
- package/core/registry.ts +339 -0
- package/core/rendered_connection.d.ts +191 -0
- package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
- package/core/renderers/common/block_rendering.d.ts +114 -0
- package/core/renderers/common/block_rendering.ts +164 -0
- package/core/renderers/common/constants.d.ts +458 -0
- package/core/renderers/common/constants.ts +1124 -0
- package/core/renderers/common/debug.d.ts +28 -0
- package/core/renderers/common/{debug.js → debug.ts} +14 -20
- package/core/renderers/common/debugger.d.ts +120 -0
- package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
- package/core/renderers/common/drawer.d.ts +132 -0
- package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
- package/core/renderers/common/i_path_object.d.ts +117 -0
- package/core/renderers/common/i_path_object.ts +161 -0
- package/core/renderers/common/info.d.ts +194 -0
- package/core/renderers/common/{info.js → info.ts} +165 -222
- package/core/renderers/common/marker_svg.d.ts +220 -0
- package/core/renderers/common/marker_svg.ts +680 -0
- package/core/renderers/common/path_object.d.ts +146 -0
- package/core/renderers/common/path_object.ts +272 -0
- package/core/renderers/common/renderer.d.ts +157 -0
- package/core/renderers/common/renderer.ts +271 -0
- package/core/renderers/geras/constants.d.ts +23 -0
- package/core/renderers/geras/constants.ts +61 -0
- package/core/renderers/geras/drawer.d.ts +43 -0
- package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
- package/core/renderers/geras/geras.d.ts +11 -0
- package/core/renderers/geras/geras.ts +37 -0
- package/core/renderers/geras/highlight_constants.d.ts +108 -0
- package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
- package/core/renderers/geras/highlighter.d.ts +98 -0
- package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
- package/core/renderers/geras/info.d.ts +45 -0
- package/core/renderers/geras/{info.js → info.ts} +61 -99
- package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
- package/core/renderers/geras/measurables/inline_input.ts +51 -0
- package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
- package/core/renderers/geras/measurables/statement_input.ts +50 -0
- package/core/renderers/geras/path_object.d.ts +47 -0
- package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
- package/core/renderers/geras/renderer.d.ts +69 -0
- package/core/renderers/geras/renderer.ts +126 -0
- package/core/renderers/measurables/base.d.ts +27 -0
- package/core/renderers/measurables/base.ts +53 -0
- package/core/renderers/measurables/bottom_row.d.ts +61 -0
- package/core/renderers/measurables/bottom_row.ts +120 -0
- package/core/renderers/measurables/connection.d.ts +25 -0
- package/core/renderers/measurables/connection.ts +52 -0
- package/core/renderers/measurables/external_value_input.d.ts +27 -0
- package/core/renderers/measurables/external_value_input.ts +65 -0
- package/core/renderers/measurables/field.d.ts +30 -0
- package/core/renderers/measurables/field.ts +63 -0
- package/core/renderers/measurables/hat.d.ts +21 -0
- package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
- package/core/renderers/measurables/icon.d.ts +26 -0
- package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
- package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
- package/core/renderers/measurables/in_row_spacer.ts +44 -0
- package/core/renderers/measurables/inline_input.d.ts +24 -0
- package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
- package/core/renderers/measurables/input_connection.d.ts +29 -0
- package/core/renderers/measurables/input_connection.ts +66 -0
- package/core/renderers/measurables/input_row.d.ts +30 -0
- package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
- package/core/renderers/measurables/jagged_edge.d.ts +20 -0
- package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
- package/core/renderers/measurables/next_connection.d.ts +23 -0
- package/core/renderers/measurables/next_connection.ts +47 -0
- package/core/renderers/measurables/output_connection.d.ts +26 -0
- package/core/renderers/measurables/output_connection.ts +56 -0
- package/core/renderers/measurables/previous_connection.d.ts +23 -0
- package/core/renderers/measurables/previous_connection.ts +47 -0
- package/core/renderers/measurables/round_corner.d.ts +21 -0
- package/core/renderers/measurables/round_corner.ts +49 -0
- package/core/renderers/measurables/row.d.ts +141 -0
- package/core/renderers/measurables/row.ts +225 -0
- package/core/renderers/measurables/spacer_row.d.ts +29 -0
- package/core/renderers/measurables/spacer_row.ts +55 -0
- package/core/renderers/measurables/square_corner.d.ts +21 -0
- package/core/renderers/measurables/square_corner.ts +47 -0
- package/core/renderers/measurables/statement_input.d.ts +22 -0
- package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
- package/core/renderers/measurables/top_row.d.ts +56 -0
- package/core/renderers/measurables/top_row.ts +122 -0
- package/core/renderers/measurables/types.d.ts +235 -0
- package/core/renderers/measurables/types.ts +332 -0
- package/core/renderers/minimalist/constants.d.ts +14 -0
- package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
- package/core/renderers/minimalist/drawer.d.ts +21 -0
- package/core/renderers/minimalist/drawer.ts +38 -0
- package/core/renderers/minimalist/info.d.ts +30 -0
- package/core/renderers/minimalist/info.ts +52 -0
- package/core/renderers/minimalist/minimalist.d.ts +6 -0
- package/core/renderers/minimalist/minimalist.ts +22 -0
- package/core/renderers/minimalist/renderer.d.ts +41 -0
- package/core/renderers/minimalist/renderer.ts +71 -0
- package/core/renderers/thrasos/info.d.ts +40 -0
- package/core/renderers/thrasos/{info.js → info.ts} +66 -67
- package/core/renderers/thrasos/renderer.d.ts +25 -0
- package/core/renderers/thrasos/renderer.ts +48 -0
- package/core/renderers/thrasos/thrasos.d.ts +4 -0
- package/core/renderers/thrasos/thrasos.ts +20 -0
- package/core/renderers/zelos/constants.d.ts +186 -0
- package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
- package/core/renderers/zelos/drawer.d.ts +47 -0
- package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
- package/core/renderers/zelos/info.d.ts +88 -0
- package/core/renderers/zelos/{info.js → info.ts} +111 -142
- package/core/renderers/zelos/marker_svg.d.ts +46 -0
- package/core/renderers/zelos/marker_svg.ts +151 -0
- package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
- package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
- package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
- package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
- package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
- package/core/renderers/zelos/measurables/row_elements.ts +45 -0
- package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
- package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
- package/core/renderers/zelos/path_object.d.ts +77 -0
- package/core/renderers/zelos/path_object.ts +215 -0
- package/core/renderers/zelos/renderer.d.ts +74 -0
- package/core/renderers/zelos/renderer.ts +142 -0
- package/core/renderers/zelos/zelos.d.ts +12 -0
- package/core/renderers/zelos/zelos.ts +39 -0
- package/core/scrollbar.d.ts +277 -0
- package/core/{scrollbar.js → scrollbar.ts} +307 -328
- package/core/scrollbar_pair.d.ts +105 -0
- package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
- package/core/serialization/blocks.d.ts +98 -0
- package/core/serialization/{blocks.js → blocks.ts} +229 -228
- package/core/serialization/exceptions.d.ts +73 -0
- package/core/serialization/exceptions.ts +98 -0
- package/core/serialization/priorities.d.ts +15 -0
- package/core/serialization/{priorities.js → priorities.ts} +4 -10
- package/core/serialization/registry.d.ts +20 -0
- package/core/serialization/{registry.js → registry.ts} +11 -13
- package/core/serialization/variables.d.ts +14 -0
- package/core/serialization/{variables.js → variables.ts} +30 -32
- package/core/serialization/workspaces.d.ts +28 -0
- package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
- package/core/shortcut_items.d.ts +61 -0
- package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
- package/core/shortcut_registry.d.ts +151 -0
- package/core/shortcut_registry.ts +355 -0
- package/core/sprites.d.ts +19 -0
- package/core/{sprites.js → sprites.ts} +4 -6
- package/core/theme/classic.d.ts +12 -0
- package/core/theme/{classic.js → classic.ts} +5 -7
- package/core/theme/themes.d.ts +8 -0
- package/core/theme/themes.ts +22 -0
- package/core/theme/zelos.d.ts +11 -0
- package/core/theme/{zelos.js → zelos.ts} +4 -7
- package/core/theme.d.ts +142 -0
- package/core/theme.ts +221 -0
- package/core/theme_manager.d.ts +81 -0
- package/core/theme_manager.ts +186 -0
- package/core/toolbox/category.d.ts +239 -0
- package/core/toolbox/category.ts +679 -0
- package/core/toolbox/collapsible_category.d.ts +91 -0
- package/core/toolbox/collapsible_category.ts +273 -0
- package/core/toolbox/separator.d.ts +39 -0
- package/core/toolbox/separator.ts +105 -0
- package/core/toolbox/toolbox.d.ts +352 -0
- package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
- package/core/toolbox/toolbox_item.d.ts +85 -0
- package/core/toolbox/toolbox_item.ts +147 -0
- package/core/tooltip.d.ts +126 -0
- package/core/{tooltip.js → tooltip.ts} +136 -214
- package/core/touch.d.ts +121 -0
- package/core/touch.ts +306 -0
- package/core/touch_gesture.d.ts +115 -0
- package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
- package/core/trashcan.d.ts +195 -0
- package/core/{trashcan.js → trashcan.ts} +226 -312
- package/core/utils/aria.d.ts +67 -0
- package/core/utils/{aria.js → aria.ts} +47 -61
- package/core/utils/array.d.ts +14 -0
- package/core/utils/{array.js → array.ts} +10 -12
- package/core/utils/colour.d.ts +103 -0
- package/core/utils/{colour.js → colour.ts} +60 -72
- package/core/utils/coordinate.d.ts +72 -0
- package/core/utils/coordinate.ts +124 -0
- package/core/utils/deprecation.d.ts +17 -0
- package/core/utils/{deprecation.js → deprecation.ts} +11 -11
- package/core/utils/dom.d.ts +165 -0
- package/core/utils/{dom.js → dom.ts} +125 -147
- package/core/utils/idgenerator.d.ts +25 -0
- package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
- package/core/utils/keycodes.d.ts +137 -0
- package/core/utils/keycodes.ts +169 -0
- package/core/utils/math.d.ts +30 -0
- package/core/utils/{math.js → math.ts} +17 -19
- package/core/utils/metrics.d.ts +64 -0
- package/core/utils/metrics.ts +97 -0
- package/core/utils/object.d.ts +35 -0
- package/core/utils/{object.js → object.ts} +30 -26
- package/core/utils/parsing.d.ts +50 -0
- package/core/utils/{parsing.js → parsing.ts} +50 -50
- package/core/utils/rect.d.ts +38 -0
- package/core/utils/{rect.js → rect.ts} +18 -31
- package/core/utils/sentinel.d.ts +11 -0
- package/core/utils/{sentinel.js → sentinel.ts} +3 -5
- package/core/utils/size.d.ts +27 -0
- package/core/utils/{size.js → size.ts} +12 -26
- package/core/utils/string.d.ts +55 -0
- package/core/utils/{string.js → string.ts} +64 -61
- package/core/utils/style.d.ts +127 -0
- package/core/utils/{style.js → style.ts} +102 -92
- package/core/utils/svg.d.ts +68 -0
- package/core/utils/svg.ts +88 -0
- package/core/utils/svg_math.d.ts +70 -0
- package/core/utils/{svg_math.js → svg_math.ts} +72 -71
- package/core/utils/svg_paths.d.ts +101 -0
- package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
- package/core/utils/toolbox.d.ts +193 -0
- package/core/utils/toolbox.ts +433 -0
- package/core/utils/useragent.d.ts +33 -0
- package/core/utils/useragent.ts +135 -0
- package/core/utils/xml.d.ts +52 -0
- package/core/utils/{xml.js → xml.ts} +26 -36
- package/core/utils.d.ts +217 -0
- package/core/utils.ts +428 -0
- package/core/variable_map.d.ts +141 -0
- package/core/{variable_map.js → variable_map.ts} +131 -149
- package/core/variable_model.d.ts +40 -0
- package/core/variable_model.ts +82 -0
- package/core/variables.d.ts +181 -0
- package/core/{variables.js → variables.ts} +206 -188
- package/core/variables_dynamic.d.ts +38 -0
- package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
- package/core/warning.d.ts +50 -0
- package/core/{warning.js → warning.ts} +52 -66
- package/core/widgetdiv.d.ts +69 -0
- package/core/widgetdiv.ts +257 -0
- package/core/workspace.d.ts +386 -0
- package/core/workspace.ts +801 -0
- package/core/workspace_audio.d.ts +47 -0
- package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
- package/core/workspace_comment.d.ts +170 -0
- package/core/workspace_comment.ts +398 -0
- package/core/workspace_comment_svg.d.ts +329 -0
- package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
- package/core/workspace_drag_surface_svg.d.ts +68 -0
- package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
- package/core/workspace_dragger.d.ts +48 -0
- package/core/workspace_dragger.ts +104 -0
- package/core/workspace_svg.d.ts +920 -0
- package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
- package/core/xml.d.ts +117 -0
- package/core/{xml.js → xml.ts} +306 -326
- package/core/zoom_controls.d.ts +130 -0
- package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
- package/core.d.ts +1 -3
- package/core.js +1 -2
- package/dart.d.ts +0 -3
- package/dart_compressed.js +387 -99
- package/dart_compressed.js.map +1 -1
- package/generators/dart/all.js +2 -0
- package/generators/dart/colour.js +1 -1
- package/generators/dart/lists.js +1 -1
- package/generators/dart/logic.js +1 -1
- package/generators/dart/loops.js +1 -1
- package/generators/dart/math.js +1 -1
- package/generators/dart/procedures.js +1 -1
- package/generators/dart/text.js +1 -1
- package/generators/dart/variables.js +1 -1
- package/generators/dart/variables_dynamic.js +1 -1
- package/generators/dart.js +1 -2
- package/generators/javascript/all.js +2 -0
- package/generators/javascript/colour.js +1 -1
- package/generators/javascript/lists.js +1 -1
- package/generators/javascript/logic.js +1 -1
- package/generators/javascript/loops.js +1 -1
- package/generators/javascript/math.js +4 -4
- package/generators/javascript/procedures.js +1 -1
- package/generators/javascript/text.js +2 -2
- package/generators/javascript/variables.js +1 -1
- package/generators/javascript/variables_dynamic.js +1 -1
- package/generators/javascript.js +1 -3
- package/generators/lua/all.js +2 -0
- package/generators/lua/colour.js +1 -1
- package/generators/lua/lists.js +1 -1
- package/generators/lua/logic.js +1 -1
- package/generators/lua/loops.js +1 -1
- package/generators/lua/math.js +1 -1
- package/generators/lua/procedures.js +1 -1
- package/generators/lua/text.js +1 -1
- package/generators/lua/variables.js +1 -1
- package/generators/lua/variables_dynamic.js +1 -1
- package/generators/lua.js +1 -2
- package/generators/php/all.js +2 -0
- package/generators/php/colour.js +1 -1
- package/generators/php/lists.js +1 -2
- package/generators/php/logic.js +1 -1
- package/generators/php/loops.js +1 -1
- package/generators/php/math.js +1 -1
- package/generators/php/procedures.js +1 -1
- package/generators/php/text.js +1 -1
- package/generators/php/variables.js +1 -1
- package/generators/php/variables_dynamic.js +1 -1
- package/generators/php.js +1 -2
- package/generators/python/all.js +2 -0
- package/generators/python/colour.js +3 -3
- package/generators/python/lists.js +1 -1
- package/generators/python/logic.js +1 -1
- package/generators/python/loops.js +4 -7
- package/generators/python/math.js +1 -1
- package/generators/python/procedures.js +1 -1
- package/generators/python/text.js +1 -1
- package/generators/python/variables.js +1 -1
- package/generators/python/variables_dynamic.js +1 -1
- package/generators/python.js +1 -2
- package/index.d.ts +2 -8
- package/javascript.d.ts +0 -3
- package/javascript_compressed.js +314 -104
- package/javascript_compressed.js.map +1 -1
- package/lua.d.ts +0 -3
- package/lua_compressed.js +399 -81
- package/lua_compressed.js.map +1 -1
- package/package.json +5 -5
- package/php.d.ts +0 -3
- package/php_compressed.js +322 -93
- package/php_compressed.js.map +1 -1
- package/python.d.ts +0 -3
- package/python_compressed.js +237 -90
- package/python_compressed.js.map +1 -1
- package/blockly.d.ts +0 -26127
- package/core/blockly_options.js +0 -28
- package/core/bubble_dragger.js +0 -298
- package/core/clipboard.js +0 -80
- package/core/component_manager.js +0 -263
- package/core/contextmenu_items.js +0 -651
- package/core/contextmenu_registry.js +0 -178
- package/core/delete_area.js +0 -87
- package/core/dialog.js +0 -107
- package/core/drag_target.js +0 -98
- package/core/events/events.js +0 -147
- package/core/events/events_abstract.js +0 -133
- package/core/events/events_block_base.js +0 -70
- package/core/events/events_block_drag.js +0 -89
- package/core/events/events_bubble_open.js +0 -90
- package/core/events/events_comment_base.js +0 -121
- package/core/events/events_marker_move.js +0 -110
- package/core/events/events_selected.js +0 -83
- package/core/events/events_toolbox_item_select.js +0 -84
- package/core/events/events_trashcan_open.js +0 -73
- package/core/events/events_var_base.js +0 -70
- package/core/events/events_viewport.js +0 -107
- package/core/events/workspace_events.js +0 -93
- package/core/field_angle.js +0 -591
- package/core/field_checkbox.js +0 -255
- package/core/field_colour.js +0 -717
- package/core/field_image.js +0 -304
- package/core/field_label.js +0 -149
- package/core/field_label_serializable.js +0 -80
- package/core/field_textinput.js +0 -619
- package/core/flyout_button.js +0 -356
- package/core/grid.js +0 -226
- package/core/icon.js +0 -225
- package/core/input.js +0 -335
- package/core/interfaces/i_ast_node_location_svg.js +0 -45
- package/core/interfaces/i_ast_node_location_with_block.js +0 -41
- package/core/interfaces/i_autohideable.js +0 -40
- package/core/interfaces/i_block_dragger.js +0 -66
- package/core/interfaces/i_bounded_element.js +0 -45
- package/core/interfaces/i_bubble.js +0 -95
- package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
- package/core/interfaces/i_connection_checker.js +0 -104
- package/core/interfaces/i_contextmenu.js +0 -32
- package/core/interfaces/i_copyable.js +0 -49
- package/core/interfaces/i_delete_area.js +0 -50
- package/core/interfaces/i_drag_target.js +0 -88
- package/core/interfaces/i_flyout.js +0 -201
- package/core/interfaces/i_keyboard_accessible.js +0 -38
- package/core/interfaces/i_metrics_manager.js +0 -154
- package/core/interfaces/i_positionable.js +0 -51
- package/core/interfaces/i_selectable.js +0 -51
- package/core/interfaces/i_selectable_toolbox_item.js +0 -73
- package/core/interfaces/i_serializer.js +0 -77
- package/core/interfaces/i_styleable.js +0 -39
- package/core/interfaces/i_toolbox.js +0 -142
- package/core/interfaces/i_toolbox_item.js +0 -85
- package/core/marker_manager.js +0 -213
- package/core/menuitem.js +0 -292
- package/core/names.js +0 -293
- package/core/registry.js +0 -384
- package/core/renderers/common/block_rendering.js +0 -170
- package/core/renderers/common/constants.js +0 -1250
- package/core/renderers/common/i_path_object.js +0 -162
- package/core/renderers/common/marker_svg.js +0 -721
- package/core/renderers/common/path_object.js +0 -283
- package/core/renderers/common/renderer.js +0 -305
- package/core/renderers/geras/constants.js +0 -73
- package/core/renderers/geras/geras.js +0 -36
- package/core/renderers/geras/measurables/inline_input.js +0 -58
- package/core/renderers/geras/measurables/statement_input.js +0 -57
- package/core/renderers/geras/renderer.js +0 -149
- package/core/renderers/measurables/base.js +0 -64
- package/core/renderers/measurables/bottom_row.js +0 -138
- package/core/renderers/measurables/connection.js +0 -56
- package/core/renderers/measurables/external_value_input.js +0 -70
- package/core/renderers/measurables/field.js +0 -71
- package/core/renderers/measurables/in_row_spacer.js +0 -47
- package/core/renderers/measurables/input_connection.js +0 -75
- package/core/renderers/measurables/next_connection.js +0 -50
- package/core/renderers/measurables/output_connection.js +0 -61
- package/core/renderers/measurables/previous_connection.js +0 -50
- package/core/renderers/measurables/round_corner.js +0 -52
- package/core/renderers/measurables/row.js +0 -247
- package/core/renderers/measurables/spacer_row.js +0 -69
- package/core/renderers/measurables/square_corner.js +0 -50
- package/core/renderers/measurables/top_row.js +0 -143
- package/core/renderers/measurables/types.js +0 -353
- package/core/renderers/minimalist/drawer.js +0 -42
- package/core/renderers/minimalist/info.js +0 -54
- package/core/renderers/minimalist/minimalist.js +0 -26
- package/core/renderers/minimalist/renderer.js +0 -80
- package/core/renderers/thrasos/renderer.js +0 -53
- package/core/renderers/thrasos/thrasos.js +0 -22
- package/core/renderers/zelos/marker_svg.js +0 -179
- package/core/renderers/zelos/measurables/bottom_row.js +0 -66
- package/core/renderers/zelos/measurables/row_elements.js +0 -46
- package/core/renderers/zelos/path_object.js +0 -247
- package/core/renderers/zelos/renderer.js +0 -147
- package/core/renderers/zelos/zelos.js +0 -38
- package/core/serialization/exceptions.js +0 -144
- package/core/shortcut_registry.js +0 -366
- package/core/theme/themes.js +0 -23
- package/core/theme.js +0 -228
- package/core/theme_manager.js +0 -211
- package/core/toolbox/category.js +0 -751
- package/core/toolbox/collapsible_category.js +0 -311
- package/core/toolbox/separator.js +0 -133
- package/core/toolbox/toolbox_item.js +0 -173
- package/core/touch.js +0 -285
- package/core/utils/coordinate.js +0 -138
- package/core/utils/global.js +0 -41
- package/core/utils/keycodes.js +0 -172
- package/core/utils/metrics.js +0 -154
- package/core/utils/svg.js +0 -186
- package/core/utils/toolbox.js +0 -459
- package/core/utils/useragent.js +0 -197
- package/core/utils.js +0 -383
- package/core/variable_model.js +0 -96
- package/core/widgetdiv.js +0 -290
- package/core/workspace.js +0 -836
- package/core/workspace_comment.js +0 -400
- package/core/workspace_dragger.js +0 -115
|
@@ -7,172 +7,156 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview Variable input field.
|
|
9
9
|
*/
|
|
10
|
-
'use strict';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Variable input field.
|
|
14
13
|
* @class
|
|
15
14
|
*/
|
|
16
|
-
goog
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
/** @suppress {extraRequire} */
|
|
37
|
-
goog.require('Blockly.Events.BlockChange');
|
|
15
|
+
import * as goog from '../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.FieldVariable');
|
|
17
|
+
|
|
18
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
19
|
+
import './events/events_block_change.js';
|
|
20
|
+
|
|
21
|
+
import type {Block} from './block.js';
|
|
22
|
+
import {Field, FieldConfig} from './field.js';
|
|
23
|
+
import {FieldDropdown} from './field_dropdown.js';
|
|
24
|
+
import * as fieldRegistry from './field_registry.js';
|
|
25
|
+
import * as internalConstants from './internal_constants.js';
|
|
26
|
+
import type {Menu} from './menu.js';
|
|
27
|
+
import type {MenuItem} from './menuitem.js';
|
|
28
|
+
import {Msg} from './msg.js';
|
|
29
|
+
import * as parsing from './utils/parsing.js';
|
|
30
|
+
import type {Sentinel} from './utils/sentinel.js';
|
|
31
|
+
import {Size} from './utils/size.js';
|
|
32
|
+
import {VariableModel} from './variable_model.js';
|
|
33
|
+
import * as Variables from './variables.js';
|
|
34
|
+
import * as Xml from './xml.js';
|
|
38
35
|
|
|
39
36
|
|
|
40
37
|
/**
|
|
41
38
|
* Class for a variable's dropdown field.
|
|
42
|
-
* @extends {FieldDropdown}
|
|
43
39
|
* @alias Blockly.FieldVariable
|
|
44
40
|
*/
|
|
45
|
-
class FieldVariable extends FieldDropdown {
|
|
41
|
+
export class FieldVariable extends FieldDropdown {
|
|
42
|
+
protected override menuGenerator_: AnyDuringMigration[][]|
|
|
43
|
+
((this: FieldDropdown) => AnyDuringMigration[][]);
|
|
44
|
+
defaultVariableName: string;
|
|
45
|
+
|
|
46
|
+
/** The type of the default variable for this field. */
|
|
47
|
+
private defaultType_ = '';
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* All of the types of variables that will be available in this field's
|
|
51
|
+
* dropdown.
|
|
52
|
+
*/
|
|
53
|
+
variableTypes: string[]|null = [];
|
|
54
|
+
protected override size_: Size;
|
|
55
|
+
|
|
56
|
+
/** The variable model associated with this field. */
|
|
57
|
+
private variable_: VariableModel|null = null;
|
|
58
|
+
|
|
46
59
|
/**
|
|
47
|
-
*
|
|
60
|
+
* Serializable fields are saved by the serializer, non-serializable fields
|
|
61
|
+
* are not. Editable fields should also be serializable.
|
|
62
|
+
*/
|
|
63
|
+
override SERIALIZABLE = true;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @param varName The default name for the variable.
|
|
48
67
|
* If null, a unique variable name will be generated.
|
|
49
68
|
* Also accepts Field.SKIP_SETUP if you wish to skip setup (only used by
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* @param
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* @param
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* @param {Object=} opt_config A map of options used to configure the field.
|
|
69
|
+
* subclasses that want to handle configuration and setting the field value
|
|
70
|
+
* after their own constructors have run).
|
|
71
|
+
* @param opt_validator A function that is called to validate changes to the
|
|
72
|
+
* field's value. Takes in a variable ID & returns a validated variable
|
|
73
|
+
* ID, or null to abort the change.
|
|
74
|
+
* @param opt_variableTypes A list of the types of variables to include in the
|
|
75
|
+
* dropdown. Will only be used if opt_config is not provided.
|
|
76
|
+
* @param opt_defaultType The type of variable to create if this field's value
|
|
77
|
+
* is not explicitly set. Defaults to ''. Will only be used if opt_config
|
|
78
|
+
* is not provided.
|
|
79
|
+
* @param opt_config A map of options used to configure the field.
|
|
62
80
|
* See the [field creation documentation]{@link
|
|
63
|
-
*
|
|
64
|
-
*
|
|
81
|
+
* https://developers.google.com/blockly/guides/create-custom-blocks/fields/built-in-fields/variable#creation}
|
|
82
|
+
* for a list of properties this parameter supports.
|
|
65
83
|
*/
|
|
66
84
|
constructor(
|
|
67
|
-
varName, opt_validator
|
|
85
|
+
varName: string|null|Sentinel, opt_validator?: Function,
|
|
86
|
+
opt_variableTypes?: string[], opt_defaultType?: string,
|
|
87
|
+
opt_config?: FieldVariableConfig) {
|
|
68
88
|
super(Field.SKIP_SETUP);
|
|
69
89
|
|
|
70
90
|
/**
|
|
71
91
|
* An array of options for a dropdown list,
|
|
72
92
|
* or a function which generates these options.
|
|
73
|
-
* @type {(!Array<!Array>|
|
|
74
|
-
* !function(this:FieldDropdown): !Array<!Array>)}
|
|
75
|
-
* @protected
|
|
76
93
|
*/
|
|
77
|
-
this
|
|
94
|
+
// AnyDuringMigration because: Type '(this: FieldVariable) => any[][]' is
|
|
95
|
+
// not assignable to type 'any[][] | ((this: FieldDropdown) => any[][])'.
|
|
96
|
+
this.menuGenerator_ = FieldVariable.dropdownCreate as AnyDuringMigration;
|
|
78
97
|
|
|
79
98
|
/**
|
|
80
99
|
* The initial variable name passed to this field's constructor, or an
|
|
81
100
|
* empty string if a name wasn't provided. Used to create the initial
|
|
82
101
|
* variable.
|
|
83
|
-
* @type {string}
|
|
84
102
|
*/
|
|
85
103
|
this.defaultVariableName = typeof varName === 'string' ? varName : '';
|
|
86
104
|
|
|
87
|
-
/**
|
|
88
|
-
* The type of the default variable for this field.
|
|
89
|
-
* @type {string}
|
|
90
|
-
* @private
|
|
91
|
-
*/
|
|
92
|
-
this.defaultType_ = '';
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* All of the types of variables that will be available in this field's
|
|
96
|
-
* dropdown.
|
|
97
|
-
* @type {?Array<string>}
|
|
98
|
-
*/
|
|
99
|
-
this.variableTypes = [];
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* The size of the area rendered by the field.
|
|
103
|
-
* @type {Size}
|
|
104
|
-
* @protected
|
|
105
|
-
* @override
|
|
106
|
-
*/
|
|
105
|
+
/** The size of the area rendered by the field. */
|
|
107
106
|
this.size_ = new Size(0, 0);
|
|
108
107
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
* @private
|
|
113
|
-
*/
|
|
114
|
-
this.variable_ = null;
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Serializable fields are saved by the serializer, non-serializable fields
|
|
118
|
-
* are not. Editable fields should also be serializable.
|
|
119
|
-
* @type {boolean}
|
|
120
|
-
*/
|
|
121
|
-
this.SERIALIZABLE = true;
|
|
122
|
-
|
|
123
|
-
if (varName === Field.SKIP_SETUP) return;
|
|
108
|
+
if (varName === Field.SKIP_SETUP) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
124
111
|
|
|
125
112
|
if (opt_config) {
|
|
126
113
|
this.configure_(opt_config);
|
|
127
114
|
} else {
|
|
128
115
|
this.setTypes_(opt_variableTypes, opt_defaultType);
|
|
129
116
|
}
|
|
130
|
-
if (opt_validator)
|
|
117
|
+
if (opt_validator) {
|
|
118
|
+
this.setValidator(opt_validator);
|
|
119
|
+
}
|
|
131
120
|
}
|
|
132
121
|
|
|
133
122
|
/**
|
|
134
123
|
* Configure the field based on the given map of options.
|
|
135
|
-
* @param
|
|
136
|
-
* @protected
|
|
124
|
+
* @param config A map of options to configure the field based on.
|
|
137
125
|
*/
|
|
138
|
-
configure_(config) {
|
|
126
|
+
protected override configure_(config: FieldVariableConfig) {
|
|
139
127
|
super.configure_(config);
|
|
140
|
-
this.setTypes_(config
|
|
128
|
+
this.setTypes_(config.variableTypes, config.defaultType);
|
|
141
129
|
}
|
|
142
130
|
|
|
143
131
|
/**
|
|
144
132
|
* Initialize the model for this field if it has not already been initialized.
|
|
145
133
|
* If the value has not been set to a variable by the first render, we make up
|
|
146
134
|
* a variable rather than let the value be invalid.
|
|
147
|
-
* @
|
|
135
|
+
* @internal
|
|
148
136
|
*/
|
|
149
|
-
initModel() {
|
|
137
|
+
override initModel() {
|
|
150
138
|
if (this.variable_) {
|
|
151
139
|
return; // Initialization already happened.
|
|
152
140
|
}
|
|
153
141
|
const variable = Variables.getOrCreateVariablePackage(
|
|
154
142
|
this.sourceBlock_.workspace, null, this.defaultVariableName,
|
|
155
143
|
this.defaultType_);
|
|
156
|
-
|
|
157
144
|
// Don't call setValue because we don't want to cause a rerender.
|
|
158
145
|
this.doValueUpdate_(variable.getId());
|
|
159
146
|
}
|
|
160
147
|
|
|
161
|
-
|
|
162
|
-
* @override
|
|
163
|
-
*/
|
|
164
|
-
shouldAddBorderRect_() {
|
|
148
|
+
override shouldAddBorderRect_() {
|
|
165
149
|
return super.shouldAddBorderRect_() &&
|
|
166
|
-
(!this.getConstants()
|
|
150
|
+
(!this.getConstants()!.FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW ||
|
|
167
151
|
this.sourceBlock_.type !== 'variables_get');
|
|
168
152
|
}
|
|
169
153
|
|
|
170
154
|
/**
|
|
171
155
|
* Initialize this field based on the given XML.
|
|
172
|
-
* @param
|
|
173
|
-
*
|
|
156
|
+
* @param fieldElement The element containing information about the variable
|
|
157
|
+
* field's state.
|
|
174
158
|
*/
|
|
175
|
-
fromXml(fieldElement) {
|
|
159
|
+
override fromXml(fieldElement: Element) {
|
|
176
160
|
const id = fieldElement.getAttribute('id');
|
|
177
161
|
const variableName = fieldElement.textContent;
|
|
178
162
|
// 'variabletype' should be lowercase, but until July 2019 it was sometimes
|
|
@@ -180,8 +164,11 @@ class FieldVariable extends FieldDropdown {
|
|
|
180
164
|
const variableType = fieldElement.getAttribute('variabletype') ||
|
|
181
165
|
fieldElement.getAttribute('variableType') || '';
|
|
182
166
|
|
|
167
|
+
// AnyDuringMigration because: Argument of type 'string | null' is not
|
|
168
|
+
// assignable to parameter of type 'string | undefined'.
|
|
183
169
|
const variable = Variables.getOrCreateVariablePackage(
|
|
184
|
-
this.sourceBlock_.workspace, id, variableName,
|
|
170
|
+
this.sourceBlock_.workspace, id, variableName as AnyDuringMigration,
|
|
171
|
+
variableType);
|
|
185
172
|
|
|
186
173
|
// This should never happen :)
|
|
187
174
|
if (variableType !== null && variableType !== variable.type) {
|
|
@@ -197,54 +184,51 @@ class FieldVariable extends FieldDropdown {
|
|
|
197
184
|
|
|
198
185
|
/**
|
|
199
186
|
* Serialize this field to XML.
|
|
200
|
-
* @param
|
|
201
|
-
*
|
|
202
|
-
* @return
|
|
187
|
+
* @param fieldElement The element to populate with info about the field's
|
|
188
|
+
* state.
|
|
189
|
+
* @return The element containing info about the field's state.
|
|
203
190
|
*/
|
|
204
|
-
toXml(fieldElement) {
|
|
191
|
+
override toXml(fieldElement: Element): Element {
|
|
205
192
|
// Make sure the variable is initialized.
|
|
206
193
|
this.initModel();
|
|
207
194
|
|
|
208
|
-
fieldElement.id = this.variable_
|
|
209
|
-
fieldElement.textContent = this.variable_
|
|
210
|
-
if (this.variable_
|
|
211
|
-
fieldElement.setAttribute('variabletype', this.variable_
|
|
195
|
+
fieldElement.id = this.variable_!.getId();
|
|
196
|
+
fieldElement.textContent = this.variable_!.name;
|
|
197
|
+
if (this.variable_!.type) {
|
|
198
|
+
fieldElement.setAttribute('variabletype', this.variable_!.type);
|
|
212
199
|
}
|
|
213
200
|
return fieldElement;
|
|
214
201
|
}
|
|
215
202
|
|
|
216
203
|
/**
|
|
217
204
|
* Saves this field's value.
|
|
218
|
-
* @param
|
|
219
|
-
*
|
|
220
|
-
*
|
|
221
|
-
* @return
|
|
222
|
-
* @
|
|
223
|
-
* @package
|
|
205
|
+
* @param doFullSerialization If true, the variable field will serialize the
|
|
206
|
+
* full state of the field being referenced (ie ID, name, and type) rather
|
|
207
|
+
* than just a reference to it (ie ID).
|
|
208
|
+
* @return The state of the variable field.
|
|
209
|
+
* @internal
|
|
224
210
|
*/
|
|
225
|
-
saveState(doFullSerialization) {
|
|
211
|
+
override saveState(doFullSerialization?: boolean): AnyDuringMigration {
|
|
226
212
|
const legacyState = this.saveLegacyState(FieldVariable);
|
|
227
213
|
if (legacyState !== null) {
|
|
228
214
|
return legacyState;
|
|
229
215
|
}
|
|
230
216
|
// Make sure the variable is initialized.
|
|
231
217
|
this.initModel();
|
|
232
|
-
const state = {'id': this.variable_
|
|
218
|
+
const state = {'id': this.variable_!.getId()};
|
|
233
219
|
if (doFullSerialization) {
|
|
234
|
-
state['name'] = this.variable_
|
|
235
|
-
state['type'] = this.variable_
|
|
220
|
+
(state as AnyDuringMigration)['name'] = this.variable_!.name;
|
|
221
|
+
(state as AnyDuringMigration)['type'] = this.variable_!.type;
|
|
236
222
|
}
|
|
237
223
|
return state;
|
|
238
224
|
}
|
|
239
225
|
|
|
240
226
|
/**
|
|
241
227
|
* Sets the field's value based on the given state.
|
|
242
|
-
* @param
|
|
243
|
-
*
|
|
244
|
-
* @override
|
|
245
|
-
* @package
|
|
228
|
+
* @param state The state of the variable to assign to this variable field.
|
|
229
|
+
* @internal
|
|
246
230
|
*/
|
|
247
|
-
loadState(state) {
|
|
231
|
+
override loadState(state: AnyDuringMigration) {
|
|
248
232
|
if (this.loadLegacyState(FieldVariable, state)) {
|
|
249
233
|
return;
|
|
250
234
|
}
|
|
@@ -257,9 +241,9 @@ class FieldVariable extends FieldDropdown {
|
|
|
257
241
|
|
|
258
242
|
/**
|
|
259
243
|
* Attach this field to a block.
|
|
260
|
-
* @param
|
|
244
|
+
* @param block The block containing this field.
|
|
261
245
|
*/
|
|
262
|
-
setSourceBlock(block) {
|
|
246
|
+
override setSourceBlock(block: Block) {
|
|
263
247
|
if (block.isShadow()) {
|
|
264
248
|
throw Error('Variable fields are not allowed to exist on shadow blocks.');
|
|
265
249
|
}
|
|
@@ -268,18 +252,18 @@ class FieldVariable extends FieldDropdown {
|
|
|
268
252
|
|
|
269
253
|
/**
|
|
270
254
|
* Get the variable's ID.
|
|
271
|
-
* @return
|
|
255
|
+
* @return Current variable's ID.
|
|
272
256
|
*/
|
|
273
|
-
getValue() {
|
|
257
|
+
override getValue(): string|null {
|
|
274
258
|
return this.variable_ ? this.variable_.getId() : null;
|
|
275
259
|
}
|
|
276
260
|
|
|
277
261
|
/**
|
|
278
262
|
* Get the text from this field, which is the selected variable's name.
|
|
279
|
-
* @return
|
|
280
|
-
*
|
|
263
|
+
* @return The selected variable's name, or the empty string if no variable is
|
|
264
|
+
* selected.
|
|
281
265
|
*/
|
|
282
|
-
getText() {
|
|
266
|
+
override getText(): string {
|
|
283
267
|
return this.variable_ ? this.variable_.name : '';
|
|
284
268
|
}
|
|
285
269
|
|
|
@@ -287,11 +271,10 @@ class FieldVariable extends FieldDropdown {
|
|
|
287
271
|
* Get the variable model for the selected variable.
|
|
288
272
|
* Not guaranteed to be in the variable map on the workspace (e.g. if accessed
|
|
289
273
|
* after the variable has been deleted).
|
|
290
|
-
* @return
|
|
291
|
-
*
|
|
292
|
-
* @package
|
|
274
|
+
* @return The selected variable, or null if none was selected.
|
|
275
|
+
* @internal
|
|
293
276
|
*/
|
|
294
|
-
getVariable() {
|
|
277
|
+
getVariable(): VariableModel|null {
|
|
295
278
|
return this.variable_;
|
|
296
279
|
}
|
|
297
280
|
|
|
@@ -300,9 +283,9 @@ class FieldVariable extends FieldDropdown {
|
|
|
300
283
|
* Returns null if the variable is not set, because validators should not
|
|
301
284
|
* run on the initial setValue call, because the field won't be attached to
|
|
302
285
|
* a block and workspace at that point.
|
|
303
|
-
* @return
|
|
286
|
+
* @return Validation function, or null.
|
|
304
287
|
*/
|
|
305
|
-
getValidator() {
|
|
288
|
+
override getValidator(): Function|null {
|
|
306
289
|
// Validators shouldn't operate on the initial setValue call.
|
|
307
290
|
// Normally this is achieved by calling setValidator after setValue, but
|
|
308
291
|
// this is not a possibility with variable fields.
|
|
@@ -314,15 +297,15 @@ class FieldVariable extends FieldDropdown {
|
|
|
314
297
|
|
|
315
298
|
/**
|
|
316
299
|
* Ensure that the ID belongs to a valid variable of an allowed type.
|
|
317
|
-
* @param
|
|
318
|
-
* @return
|
|
319
|
-
* @protected
|
|
300
|
+
* @param opt_newValue The ID of the new variable to set.
|
|
301
|
+
* @return The validated ID, or null if invalid.
|
|
320
302
|
*/
|
|
321
|
-
doClassValidation_(opt_newValue)
|
|
303
|
+
protected override doClassValidation_(opt_newValue?: AnyDuringMigration):
|
|
304
|
+
string|null {
|
|
322
305
|
if (opt_newValue === null) {
|
|
323
306
|
return null;
|
|
324
307
|
}
|
|
325
|
-
const newId =
|
|
308
|
+
const newId = opt_newValue as string;
|
|
326
309
|
const variable = Variables.getVariable(this.sourceBlock_.workspace, newId);
|
|
327
310
|
if (!variable) {
|
|
328
311
|
console.warn(
|
|
@@ -345,22 +328,20 @@ class FieldVariable extends FieldDropdown {
|
|
|
345
328
|
*
|
|
346
329
|
* The variable ID should be valid at this point, but if a variable field
|
|
347
330
|
* validator returns a bad ID, this could break.
|
|
348
|
-
* @param
|
|
349
|
-
* @protected
|
|
331
|
+
* @param newId The value to be saved.
|
|
350
332
|
*/
|
|
351
|
-
doValueUpdate_(newId) {
|
|
352
|
-
this.variable_ =
|
|
353
|
-
this.sourceBlock_.workspace,
|
|
333
|
+
protected override doValueUpdate_(newId: AnyDuringMigration) {
|
|
334
|
+
this.variable_ =
|
|
335
|
+
Variables.getVariable(this.sourceBlock_.workspace, newId as string);
|
|
354
336
|
super.doValueUpdate_(newId);
|
|
355
337
|
}
|
|
356
338
|
|
|
357
339
|
/**
|
|
358
340
|
* Check whether the given variable type is allowed on this field.
|
|
359
|
-
* @param
|
|
360
|
-
* @return
|
|
361
|
-
* @private
|
|
341
|
+
* @param type The type to check.
|
|
342
|
+
* @return True if the type is in the list of allowed types.
|
|
362
343
|
*/
|
|
363
|
-
typeIsAllowed_(type) {
|
|
344
|
+
private typeIsAllowed_(type: string): boolean {
|
|
364
345
|
const typeList = this.getVariableTypes_();
|
|
365
346
|
if (!typeList) {
|
|
366
347
|
return true; // If it's null, all types are valid.
|
|
@@ -375,16 +356,15 @@ class FieldVariable extends FieldDropdown {
|
|
|
375
356
|
|
|
376
357
|
/**
|
|
377
358
|
* Return a list of variable types to include in the dropdown.
|
|
378
|
-
* @return
|
|
359
|
+
* @return Array of variable types.
|
|
379
360
|
* @throws {Error} if variableTypes is an empty array.
|
|
380
|
-
* @private
|
|
381
361
|
*/
|
|
382
|
-
getVariableTypes_() {
|
|
362
|
+
private getVariableTypes_(): string[] {
|
|
383
363
|
// TODO (#1513): Try to avoid calling this every time the field is edited.
|
|
384
364
|
let variableTypes = this.variableTypes;
|
|
385
365
|
if (variableTypes === null) {
|
|
386
366
|
// If variableTypes is null, return all variable types.
|
|
387
|
-
if (this.sourceBlock_ && this.sourceBlock_.
|
|
367
|
+
if (this.sourceBlock_ && !this.sourceBlock_.disposed) {
|
|
388
368
|
return this.sourceBlock_.workspace.getVariableTypes();
|
|
389
369
|
}
|
|
390
370
|
}
|
|
@@ -401,14 +381,13 @@ class FieldVariable extends FieldDropdown {
|
|
|
401
381
|
/**
|
|
402
382
|
* Parse the optional arguments representing the allowed variable types and
|
|
403
383
|
* the default variable type.
|
|
404
|
-
* @param
|
|
405
|
-
*
|
|
406
|
-
*
|
|
407
|
-
* @param
|
|
408
|
-
*
|
|
409
|
-
* @private
|
|
384
|
+
* @param opt_variableTypes A list of the types of variables to include in the
|
|
385
|
+
* dropdown. If null or undefined, variables of all types will be
|
|
386
|
+
* displayed in the dropdown.
|
|
387
|
+
* @param opt_defaultType The type of the variable to create if this field's
|
|
388
|
+
* value is not explicitly set. Defaults to ''.
|
|
410
389
|
*/
|
|
411
|
-
setTypes_(opt_variableTypes, opt_defaultType) {
|
|
390
|
+
private setTypes_(opt_variableTypes?: string[], opt_defaultType?: string) {
|
|
412
391
|
// If you expected that the default type would be the same as the only entry
|
|
413
392
|
// in the variable types array, tell the Blockly team by commenting on
|
|
414
393
|
// #1499.
|
|
@@ -445,10 +424,9 @@ class FieldVariable extends FieldDropdown {
|
|
|
445
424
|
* Refreshes the name of the variable by grabbing the name of the model.
|
|
446
425
|
* Used when a variable gets renamed, but the ID stays the same. Should only
|
|
447
426
|
* be called by the block.
|
|
448
|
-
* @
|
|
449
|
-
* @package
|
|
427
|
+
* @internal
|
|
450
428
|
*/
|
|
451
|
-
refreshVariableName() {
|
|
429
|
+
override refreshVariableName() {
|
|
452
430
|
this.forceRerender();
|
|
453
431
|
}
|
|
454
432
|
|
|
@@ -456,23 +434,21 @@ class FieldVariable extends FieldDropdown {
|
|
|
456
434
|
* Handle the selection of an item in the variable dropdown menu.
|
|
457
435
|
* Special case the 'Rename variable...' and 'Delete variable...' options.
|
|
458
436
|
* In the rename case, prompt the user for a new name.
|
|
459
|
-
* @param
|
|
460
|
-
* @param
|
|
461
|
-
* @protected
|
|
437
|
+
* @param menu The Menu component clicked.
|
|
438
|
+
* @param menuItem The MenuItem selected within menu.
|
|
462
439
|
*/
|
|
463
|
-
onItemSelected_(menu, menuItem) {
|
|
440
|
+
protected override onItemSelected_(menu: Menu, menuItem: MenuItem) {
|
|
464
441
|
const id = menuItem.getValue();
|
|
465
442
|
// Handle special cases.
|
|
466
|
-
if (this.sourceBlock_ && this.sourceBlock_.
|
|
443
|
+
if (this.sourceBlock_ && !this.sourceBlock_.disposed) {
|
|
467
444
|
if (id === internalConstants.RENAME_VARIABLE_ID) {
|
|
468
445
|
// Rename variable.
|
|
469
446
|
Variables.renameVariable(
|
|
470
|
-
this.sourceBlock_.workspace,
|
|
471
|
-
/** @type {!VariableModel} */ (this.variable_));
|
|
447
|
+
this.sourceBlock_.workspace, this.variable_ as VariableModel);
|
|
472
448
|
return;
|
|
473
449
|
} else if (id === internalConstants.DELETE_VARIABLE_ID) {
|
|
474
450
|
// Delete variable.
|
|
475
|
-
this.sourceBlock_.workspace.deleteVariableById(this.variable_
|
|
451
|
+
this.sourceBlock_.workspace.deleteVariableById(this.variable_!.getId());
|
|
476
452
|
return;
|
|
477
453
|
}
|
|
478
454
|
}
|
|
@@ -483,26 +459,25 @@ class FieldVariable extends FieldDropdown {
|
|
|
483
459
|
/**
|
|
484
460
|
* Overrides referencesVariables(), indicating this field refers to a
|
|
485
461
|
* variable.
|
|
486
|
-
* @return
|
|
487
|
-
* @
|
|
488
|
-
* @override
|
|
462
|
+
* @return True.
|
|
463
|
+
* @internal
|
|
489
464
|
*/
|
|
490
|
-
referencesVariables() {
|
|
465
|
+
override referencesVariables(): boolean {
|
|
491
466
|
return true;
|
|
492
467
|
}
|
|
493
468
|
|
|
494
469
|
/**
|
|
495
470
|
* Construct a FieldVariable from a JSON arg object,
|
|
496
471
|
* dereferencing any string table references.
|
|
497
|
-
* @param
|
|
498
|
-
*
|
|
499
|
-
* @return
|
|
500
|
-
* @package
|
|
472
|
+
* @param options A JSON object with options (variable, variableTypes, and
|
|
473
|
+
* defaultType).
|
|
474
|
+
* @return The new field instance.
|
|
501
475
|
* @nocollapse
|
|
502
|
-
* @
|
|
476
|
+
* @internal
|
|
503
477
|
*/
|
|
504
|
-
static fromJson(options)
|
|
505
|
-
|
|
478
|
+
static override fromJson(options: FieldVariableFromJsonConfig):
|
|
479
|
+
FieldVariable {
|
|
480
|
+
const varName = parsing.replaceMessageReferences(options.variable);
|
|
506
481
|
// `this` might be a subclass of FieldVariable if that class doesn't
|
|
507
482
|
// override the static fromJson method.
|
|
508
483
|
return new this(varName, undefined, undefined, undefined, options);
|
|
@@ -511,18 +486,17 @@ class FieldVariable extends FieldDropdown {
|
|
|
511
486
|
/**
|
|
512
487
|
* Return a sorted list of variable names for variable dropdown menus.
|
|
513
488
|
* Include a special option at the end for creating a new variable name.
|
|
514
|
-
* @return
|
|
515
|
-
* @this {FieldVariable}
|
|
489
|
+
* @return Array of variable names/id tuples.
|
|
516
490
|
*/
|
|
517
|
-
static dropdownCreate() {
|
|
491
|
+
static dropdownCreate(this: FieldVariable): AnyDuringMigration[][] {
|
|
518
492
|
if (!this.variable_) {
|
|
519
493
|
throw Error(
|
|
520
494
|
'Tried to call dropdownCreate on a variable field with no' +
|
|
521
495
|
' variable selected.');
|
|
522
496
|
}
|
|
523
497
|
const name = this.getText();
|
|
524
|
-
let variableModelList = [];
|
|
525
|
-
if (this.sourceBlock_ && this.sourceBlock_.
|
|
498
|
+
let variableModelList: AnyDuringMigration[] = [];
|
|
499
|
+
if (this.sourceBlock_ && !this.sourceBlock_.disposed) {
|
|
526
500
|
const variableTypes = this.getVariableTypes_();
|
|
527
501
|
// Get a copy of the list, so that adding rename and new variable options
|
|
528
502
|
// doesn't modify the workspace's list.
|
|
@@ -555,4 +529,17 @@ class FieldVariable extends FieldDropdown {
|
|
|
555
529
|
|
|
556
530
|
fieldRegistry.register('field_variable', FieldVariable);
|
|
557
531
|
|
|
558
|
-
|
|
532
|
+
/**
|
|
533
|
+
* Config options for the variable field.
|
|
534
|
+
*/
|
|
535
|
+
export interface FieldVariableConfig extends FieldConfig {
|
|
536
|
+
variableTypes?: string[];
|
|
537
|
+
defaultType?: string;
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
/**
|
|
541
|
+
* fromJson config options for the variable field.
|
|
542
|
+
*/
|
|
543
|
+
export interface FieldVariableFromJsonConfig extends FieldVariableConfig {
|
|
544
|
+
variable?: string;
|
|
545
|
+
}
|