blockly 8.0.4 → 8.0.5-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 +2421 -2688
- 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/msg/ab.js +420 -420
- package/msg/ace.js +420 -420
- package/msg/af.js +420 -420
- package/msg/am.js +420 -420
- package/msg/ar.js +420 -420
- package/msg/ast.js +420 -420
- package/msg/az.js +420 -420
- package/msg/ba.js +420 -420
- package/msg/bcc.js +420 -420
- package/msg/be-tarask.js +420 -420
- package/msg/be.js +420 -420
- package/msg/bg.js +420 -420
- package/msg/bn.js +420 -420
- package/msg/br.js +420 -420
- package/msg/bs.js +420 -420
- package/msg/ca.js +420 -420
- package/msg/cdo.js +420 -420
- package/msg/cs.js +420 -420
- package/msg/da.js +420 -420
- package/msg/de.js +420 -420
- package/msg/diq.js +420 -420
- package/msg/dty.js +420 -420
- package/msg/ee.js +420 -420
- package/msg/el.js +420 -420
- package/msg/en-gb.js +420 -420
- package/msg/en.js +420 -420
- package/msg/eo.js +420 -420
- package/msg/es.js +420 -420
- package/msg/et.js +420 -420
- package/msg/eu.js +420 -420
- package/msg/fa.js +420 -420
- package/msg/fi.js +420 -420
- package/msg/fo.js +420 -420
- package/msg/fr.js +420 -420
- package/msg/frr.js +420 -420
- package/msg/gl.js +420 -420
- package/msg/gn.js +420 -420
- package/msg/gor.js +420 -420
- package/msg/ha.js +420 -420
- package/msg/hak.js +420 -420
- package/msg/he.js +420 -420
- package/msg/hi.js +420 -420
- package/msg/hr.js +420 -420
- package/msg/hrx.js +420 -420
- package/msg/hu.js +420 -420
- package/msg/hy.js +420 -420
- package/msg/ia.js +420 -420
- package/msg/id.js +420 -420
- package/msg/ig.js +420 -420
- package/msg/inh.js +420 -420
- package/msg/is.js +420 -420
- package/msg/it.js +420 -420
- package/msg/ja.js +420 -420
- package/msg/ka.js +420 -420
- package/msg/kab.js +420 -420
- package/msg/kbd-cyrl.js +420 -420
- package/msg/km.js +420 -420
- package/msg/kn.js +420 -420
- package/msg/ko.js +420 -420
- package/msg/ksh.js +420 -420
- package/msg/ku-latn.js +420 -420
- package/msg/ky.js +420 -420
- package/msg/la.js +420 -420
- package/msg/lb.js +420 -420
- package/msg/lki.js +420 -420
- package/msg/lo.js +420 -420
- package/msg/lrc.js +420 -420
- package/msg/lt.js +420 -420
- package/msg/lv.js +420 -420
- package/msg/mg.js +420 -420
- package/msg/mk.js +420 -420
- package/msg/ml.js +420 -420
- package/msg/mnw.js +420 -420
- package/msg/ms.js +420 -420
- package/msg/my.js +420 -420
- package/msg/mzn.js +420 -420
- package/msg/nb.js +420 -420
- package/msg/ne.js +420 -420
- package/msg/nl.js +420 -420
- package/msg/oc.js +420 -420
- package/msg/olo.js +420 -420
- package/msg/pa.js +420 -420
- package/msg/pl.js +420 -420
- package/msg/pms.js +420 -420
- package/msg/ps.js +420 -420
- package/msg/pt-br.js +420 -420
- package/msg/pt.js +420 -420
- package/msg/ro.js +420 -420
- package/msg/ru.js +420 -420
- package/msg/sc.js +420 -420
- package/msg/sco.js +420 -420
- package/msg/sd.js +420 -420
- package/msg/shn.js +420 -420
- package/msg/si.js +420 -420
- package/msg/sk.js +420 -420
- package/msg/skr-arab.js +420 -420
- package/msg/sl.js +420 -420
- package/msg/smn.js +420 -420
- package/msg/sq.js +420 -420
- package/msg/sr-latn.js +420 -420
- package/msg/sr.js +420 -420
- package/msg/sv.js +420 -420
- package/msg/sw.js +420 -420
- package/msg/ta.js +420 -420
- package/msg/tcy.js +420 -420
- package/msg/te.js +420 -420
- package/msg/th.js +420 -420
- package/msg/ti.js +420 -420
- package/msg/tl.js +420 -420
- package/msg/tlh.js +420 -420
- package/msg/tr.js +420 -420
- package/msg/ug-arab.js +420 -420
- package/msg/uk.js +420 -420
- package/msg/ur.js +420 -420
- package/msg/uz.js +420 -420
- package/msg/vi.js +420 -420
- package/msg/xmf.js +420 -420
- package/msg/yo.js +420 -420
- package/msg/yue.js +420 -420
- package/msg/zgh.js +420 -420
- package/msg/zh-hans.js +420 -420
- package/msg/zh-hant.js +420 -420
- 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,24 +7,23 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview Utility functions for handling variables.
|
|
9
9
|
*/
|
|
10
|
-
'use strict';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Utility functions for handling variables.
|
|
14
13
|
* @namespace Blockly.Variables
|
|
15
14
|
*/
|
|
16
|
-
goog
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
15
|
+
import * as goog from '../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.Variables');
|
|
17
|
+
|
|
18
|
+
import {Blocks} from './blocks.js';
|
|
19
|
+
import * as dialog from './dialog.js';
|
|
20
|
+
import {Msg} from './msg.js';
|
|
21
|
+
import * as utilsXml from './utils/xml.js';
|
|
22
|
+
import {VariableModel} from './variable_model.js';
|
|
23
|
+
import type {Workspace} from './workspace.js';
|
|
24
|
+
import type {WorkspaceSvg} from './workspace_svg.js';
|
|
25
|
+
import * as Xml from './xml.js';
|
|
26
|
+
|
|
28
27
|
|
|
29
28
|
/**
|
|
30
29
|
* String for use in the "custom" attribute of a category in toolbox XML.
|
|
@@ -32,25 +31,23 @@ const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
|
|
|
32
31
|
* variable blocks.
|
|
33
32
|
* See also Blockly.Procedures.CATEGORY_NAME and
|
|
34
33
|
* Blockly.VariablesDynamic.CATEGORY_NAME.
|
|
35
|
-
* @const {string}
|
|
36
34
|
* @alias Blockly.Variables.CATEGORY_NAME
|
|
37
35
|
*/
|
|
38
|
-
const CATEGORY_NAME = 'VARIABLE';
|
|
39
|
-
exports.CATEGORY_NAME = CATEGORY_NAME;
|
|
36
|
+
export const CATEGORY_NAME = 'VARIABLE';
|
|
40
37
|
|
|
41
38
|
/**
|
|
42
39
|
* Find all user-created variables that are in use in the workspace.
|
|
43
40
|
* For use by generators.
|
|
44
41
|
* To get a list of all variables on a workspace, including unused variables,
|
|
45
42
|
* call Workspace.getAllVariables.
|
|
46
|
-
* @param
|
|
47
|
-
* @return
|
|
43
|
+
* @param ws The workspace to search for variables.
|
|
44
|
+
* @return Array of variable models.
|
|
48
45
|
* @alias Blockly.Variables.allUsedVarModels
|
|
49
46
|
*/
|
|
50
|
-
|
|
47
|
+
export function allUsedVarModels(ws: Workspace): VariableModel[] {
|
|
51
48
|
const blocks = ws.getAllBlocks(false);
|
|
52
|
-
const
|
|
53
|
-
// Iterate through every block and add each variable to the
|
|
49
|
+
const variables = new Set<VariableModel>();
|
|
50
|
+
// Iterate through every block and add each variable to the set.
|
|
54
51
|
for (let i = 0; i < blocks.length; i++) {
|
|
55
52
|
const blockVariables = blocks[i].getVarModels();
|
|
56
53
|
if (blockVariables) {
|
|
@@ -58,24 +55,16 @@ const allUsedVarModels = function(ws) {
|
|
|
58
55
|
const variable = blockVariables[j];
|
|
59
56
|
const id = variable.getId();
|
|
60
57
|
if (id) {
|
|
61
|
-
|
|
58
|
+
variables.add(variable);
|
|
62
59
|
}
|
|
63
60
|
}
|
|
64
61
|
}
|
|
65
62
|
}
|
|
66
|
-
//
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
variableList.push(variableHash[id]);
|
|
70
|
-
}
|
|
71
|
-
return variableList;
|
|
72
|
-
};
|
|
73
|
-
exports.allUsedVarModels = allUsedVarModels;
|
|
63
|
+
// Convert the set into a list.
|
|
64
|
+
return Array.from(variables.values());
|
|
65
|
+
}
|
|
74
66
|
|
|
75
|
-
|
|
76
|
-
* @type {Object<string,boolean>}
|
|
77
|
-
*/
|
|
78
|
-
const ALL_DEVELOPER_VARS_WARNINGS_BY_BLOCK_TYPE = {};
|
|
67
|
+
const ALL_DEVELOPER_VARS_WARNINGS_BY_BLOCK_TYPE: {[key: string]: boolean} = {};
|
|
79
68
|
|
|
80
69
|
/**
|
|
81
70
|
* Find all developer variables used by blocks in the workspace.
|
|
@@ -84,19 +73,20 @@ const ALL_DEVELOPER_VARS_WARNINGS_BY_BLOCK_TYPE = {};
|
|
|
84
73
|
* To declare developer variables, define the getDeveloperVariables function on
|
|
85
74
|
* your block and return a list of variable names.
|
|
86
75
|
* For use by generators.
|
|
87
|
-
* @param
|
|
88
|
-
* @return
|
|
76
|
+
* @param workspace The workspace to search.
|
|
77
|
+
* @return A list of non-duplicated variable names.
|
|
89
78
|
* @alias Blockly.Variables.allDeveloperVariables
|
|
90
79
|
*/
|
|
91
|
-
|
|
80
|
+
export function allDeveloperVariables(workspace: Workspace): string[] {
|
|
92
81
|
const blocks = workspace.getAllBlocks(false);
|
|
93
|
-
const
|
|
94
|
-
for (let i = 0, block;
|
|
82
|
+
const variables = new Set<string>();
|
|
83
|
+
for (let i = 0, block; block = blocks[i]; i++) {
|
|
95
84
|
let getDeveloperVariables = block.getDeveloperVariables;
|
|
96
|
-
if (!getDeveloperVariables &&
|
|
85
|
+
if (!getDeveloperVariables &&
|
|
86
|
+
(block as AnyDuringMigration).getDeveloperVars) {
|
|
97
87
|
// August 2018: getDeveloperVars() was deprecated and renamed
|
|
98
88
|
// getDeveloperVariables().
|
|
99
|
-
getDeveloperVariables = block.getDeveloperVars;
|
|
89
|
+
getDeveloperVariables = (block as AnyDuringMigration).getDeveloperVars;
|
|
100
90
|
if (!ALL_DEVELOPER_VARS_WARNINGS_BY_BLOCK_TYPE[block.type]) {
|
|
101
91
|
console.warn(
|
|
102
92
|
'Function getDeveloperVars() deprecated. Use ' +
|
|
@@ -107,48 +97,50 @@ const allDeveloperVariables = function(workspace) {
|
|
|
107
97
|
if (getDeveloperVariables) {
|
|
108
98
|
const devVars = getDeveloperVariables();
|
|
109
99
|
for (let j = 0; j < devVars.length; j++) {
|
|
110
|
-
|
|
100
|
+
variables.add(devVars[j]);
|
|
111
101
|
}
|
|
112
102
|
}
|
|
113
103
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
};
|
|
118
|
-
exports.allDeveloperVariables = allDeveloperVariables;
|
|
104
|
+
// Convert the set into a list.
|
|
105
|
+
return Array.from(variables.values());
|
|
106
|
+
}
|
|
119
107
|
|
|
120
108
|
/**
|
|
121
109
|
* Construct the elements (blocks and button) required by the flyout for the
|
|
122
110
|
* variable category.
|
|
123
|
-
* @param
|
|
124
|
-
* @return
|
|
111
|
+
* @param workspace The workspace containing variables.
|
|
112
|
+
* @return Array of XML elements.
|
|
125
113
|
* @alias Blockly.Variables.flyoutCategory
|
|
126
114
|
*/
|
|
127
|
-
|
|
128
|
-
let xmlList =
|
|
115
|
+
export function flyoutCategory(workspace: WorkspaceSvg): Element[] {
|
|
116
|
+
let xmlList = new Array<Element>();
|
|
129
117
|
const button = document.createElement('button');
|
|
130
118
|
button.setAttribute('text', '%{BKY_NEW_VARIABLE}');
|
|
131
119
|
button.setAttribute('callbackKey', 'CREATE_VARIABLE');
|
|
132
120
|
|
|
133
121
|
workspace.registerButtonCallback('CREATE_VARIABLE', function(button) {
|
|
134
|
-
|
|
122
|
+
// AnyDuringMigration because: Argument of type 'WorkspaceSvg' is not
|
|
123
|
+
// assignable to parameter of type 'Workspace'.
|
|
124
|
+
createVariableButtonHandler(
|
|
125
|
+
button.getTargetWorkspace() as AnyDuringMigration);
|
|
135
126
|
});
|
|
136
127
|
|
|
137
128
|
xmlList.push(button);
|
|
138
129
|
|
|
139
|
-
|
|
130
|
+
// AnyDuringMigration because: Argument of type 'WorkspaceSvg' is not
|
|
131
|
+
// assignable to parameter of type 'Workspace'.
|
|
132
|
+
const blockList = flyoutCategoryBlocks(workspace as AnyDuringMigration);
|
|
140
133
|
xmlList = xmlList.concat(blockList);
|
|
141
134
|
return xmlList;
|
|
142
|
-
}
|
|
143
|
-
exports.flyoutCategory = flyoutCategory;
|
|
135
|
+
}
|
|
144
136
|
|
|
145
137
|
/**
|
|
146
138
|
* Construct the blocks required by the flyout for the variable category.
|
|
147
|
-
* @param
|
|
148
|
-
* @return
|
|
139
|
+
* @param workspace The workspace containing variables.
|
|
140
|
+
* @return Array of XML block elements.
|
|
149
141
|
* @alias Blockly.Variables.flyoutCategoryBlocks
|
|
150
142
|
*/
|
|
151
|
-
|
|
143
|
+
export function flyoutCategoryBlocks(workspace: Workspace): Element[] {
|
|
152
144
|
const variableModelList = workspace.getVariablesOfType('');
|
|
153
145
|
|
|
154
146
|
const xmlList = [];
|
|
@@ -158,15 +150,27 @@ const flyoutCategoryBlocks = function(workspace) {
|
|
|
158
150
|
if (Blocks['variables_set']) {
|
|
159
151
|
const block = utilsXml.createElement('block');
|
|
160
152
|
block.setAttribute('type', 'variables_set');
|
|
161
|
-
|
|
162
|
-
|
|
153
|
+
// AnyDuringMigration because: Argument of type 'number' is not
|
|
154
|
+
// assignable to parameter of type 'string'.
|
|
155
|
+
block.setAttribute(
|
|
156
|
+
'gap', (Blocks['math_change'] ? 8 : 24) as AnyDuringMigration);
|
|
157
|
+
// AnyDuringMigration because: Argument of type 'Element | null' is not
|
|
158
|
+
// assignable to parameter of type 'Node'.
|
|
159
|
+
block.appendChild(
|
|
160
|
+
generateVariableFieldDom(mostRecentVariable) as AnyDuringMigration);
|
|
163
161
|
xmlList.push(block);
|
|
164
162
|
}
|
|
165
163
|
if (Blocks['math_change']) {
|
|
166
164
|
const block = utilsXml.createElement('block');
|
|
167
165
|
block.setAttribute('type', 'math_change');
|
|
168
|
-
|
|
169
|
-
|
|
166
|
+
// AnyDuringMigration because: Argument of type 'number' is not
|
|
167
|
+
// assignable to parameter of type 'string'.
|
|
168
|
+
block.setAttribute(
|
|
169
|
+
'gap', (Blocks['variables_get'] ? 20 : 8) as AnyDuringMigration);
|
|
170
|
+
// AnyDuringMigration because: Argument of type 'Element | null' is not
|
|
171
|
+
// assignable to parameter of type 'Node'.
|
|
172
|
+
block.appendChild(
|
|
173
|
+
generateVariableFieldDom(mostRecentVariable) as AnyDuringMigration);
|
|
170
174
|
const value = Xml.textToDom(
|
|
171
175
|
'<value name="DELTA">' +
|
|
172
176
|
'<shadow type="math_number">' +
|
|
@@ -179,50 +183,58 @@ const flyoutCategoryBlocks = function(workspace) {
|
|
|
179
183
|
|
|
180
184
|
if (Blocks['variables_get']) {
|
|
181
185
|
variableModelList.sort(VariableModel.compareByName);
|
|
182
|
-
for (let i = 0, variable;
|
|
186
|
+
for (let i = 0, variable; variable = variableModelList[i]; i++) {
|
|
183
187
|
const block = utilsXml.createElement('block');
|
|
184
188
|
block.setAttribute('type', 'variables_get');
|
|
185
|
-
|
|
186
|
-
|
|
189
|
+
// AnyDuringMigration because: Argument of type 'number' is not
|
|
190
|
+
// assignable to parameter of type 'string'.
|
|
191
|
+
block.setAttribute('gap', 8 as AnyDuringMigration);
|
|
192
|
+
// AnyDuringMigration because: Argument of type 'Element | null' is not
|
|
193
|
+
// assignable to parameter of type 'Node'.
|
|
194
|
+
block.appendChild(
|
|
195
|
+
generateVariableFieldDom(variable) as AnyDuringMigration);
|
|
187
196
|
xmlList.push(block);
|
|
188
197
|
}
|
|
189
198
|
}
|
|
190
199
|
}
|
|
191
200
|
return xmlList;
|
|
192
|
-
}
|
|
193
|
-
exports.flyoutCategoryBlocks = flyoutCategoryBlocks;
|
|
201
|
+
}
|
|
194
202
|
|
|
195
|
-
/**
|
|
196
|
-
|
|
197
|
-
*/
|
|
198
|
-
const VAR_LETTER_OPTIONS = 'ijkmnopqrstuvwxyzabcdefgh'; // No 'l'.
|
|
199
|
-
exports.VAR_LETTER_OPTIONS = VAR_LETTER_OPTIONS;
|
|
203
|
+
/** @alias Blockly.Variables.VAR_LETTER_OPTIONS */
|
|
204
|
+
export const VAR_LETTER_OPTIONS = 'ijkmnopqrstuvwxyzabcdefgh';
|
|
200
205
|
|
|
201
206
|
/**
|
|
202
207
|
* Return a new variable name that is not yet being used. This will try to
|
|
203
208
|
* generate single letter variable names in the range 'i' to 'z' to start with.
|
|
204
209
|
* If no unique name is located it will try 'i' to 'z', 'a' to 'h',
|
|
205
210
|
* then 'i2' to 'z2' etc. Skip 'l'.
|
|
206
|
-
* @param
|
|
207
|
-
* @return
|
|
211
|
+
* @param workspace The workspace to be unique in.
|
|
212
|
+
* @return New variable name.
|
|
208
213
|
* @alias Blockly.Variables.generateUniqueName
|
|
209
214
|
*/
|
|
210
|
-
|
|
215
|
+
export function generateUniqueName(workspace: Workspace): string {
|
|
216
|
+
return TEST_ONLY.generateUniqueNameInternal(workspace);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Private version of generateUniqueName for stubbing in tests.
|
|
221
|
+
*/
|
|
222
|
+
function generateUniqueNameInternal(workspace: Workspace): string {
|
|
211
223
|
return generateUniqueNameFromOptions(
|
|
212
224
|
VAR_LETTER_OPTIONS.charAt(0), workspace.getAllVariableNames());
|
|
213
|
-
}
|
|
214
|
-
exports.generateUniqueName = generateUniqueName;
|
|
225
|
+
}
|
|
215
226
|
|
|
216
227
|
/**
|
|
217
228
|
* Returns a unique name that is not present in the usedNames array. This
|
|
218
229
|
* will try to generate single letter names in the range a -> z (skip l). It
|
|
219
230
|
* will start with the character passed to startChar.
|
|
220
|
-
* @param
|
|
221
|
-
* @param
|
|
222
|
-
* @return
|
|
231
|
+
* @param startChar The character to start the search at.
|
|
232
|
+
* @param usedNames A list of all of the used names.
|
|
233
|
+
* @return A unique name that is not present in the usedNames array.
|
|
223
234
|
* @alias Blockly.Variables.generateUniqueNameFromOptions
|
|
224
235
|
*/
|
|
225
|
-
|
|
236
|
+
export function generateUniqueNameFromOptions(
|
|
237
|
+
startChar: string, usedNames: string[]): string {
|
|
226
238
|
if (!usedNames.length) {
|
|
227
239
|
return startChar;
|
|
228
240
|
}
|
|
@@ -249,12 +261,13 @@ const generateUniqueNameFromOptions = function(startChar, usedNames) {
|
|
|
249
261
|
if (letterIndex === letters.length) {
|
|
250
262
|
// Reached the end of the character sequence so back to 'i'.
|
|
251
263
|
letterIndex = 0;
|
|
252
|
-
|
|
264
|
+
// AnyDuringMigration because: Type 'number' is not assignable to type
|
|
265
|
+
// 'string'.
|
|
266
|
+
suffix = (Number(suffix) + 1) as AnyDuringMigration;
|
|
253
267
|
}
|
|
254
268
|
potName = letters.charAt(letterIndex) + suffix;
|
|
255
269
|
}
|
|
256
|
-
}
|
|
257
|
-
exports.generateUniqueNameFromOptions = generateUniqueNameFromOptions;
|
|
270
|
+
}
|
|
258
271
|
|
|
259
272
|
/**
|
|
260
273
|
* Handles "Create Variable" button in the default variables toolbox category.
|
|
@@ -265,20 +278,21 @@ exports.generateUniqueNameFromOptions = generateUniqueNameFromOptions;
|
|
|
265
278
|
* types and after-creation processing. More complex customization (e.g.,
|
|
266
279
|
* prompting for variable type) is beyond the scope of this function.
|
|
267
280
|
*
|
|
268
|
-
* @param
|
|
269
|
-
*
|
|
270
|
-
*
|
|
271
|
-
*
|
|
272
|
-
*
|
|
273
|
-
*
|
|
274
|
-
* ''. This will default to '', which is a specific type.
|
|
281
|
+
* @param workspace The workspace on which to create the variable.
|
|
282
|
+
* @param opt_callback A callback. It will be passed an acceptable new variable
|
|
283
|
+
* name, or null if change is to be aborted (cancel button), or undefined if
|
|
284
|
+
* an existing variable was chosen.
|
|
285
|
+
* @param opt_type The type of the variable like 'int', 'string', or ''. This
|
|
286
|
+
* will default to '', which is a specific type.
|
|
275
287
|
* @alias Blockly.Variables.createVariableButtonHandler
|
|
276
288
|
*/
|
|
277
|
-
|
|
278
|
-
workspace
|
|
289
|
+
export function createVariableButtonHandler(
|
|
290
|
+
workspace: Workspace,
|
|
291
|
+
opt_callback?: (p1?: string|null) => AnyDuringMigration,
|
|
292
|
+
opt_type?: string) {
|
|
279
293
|
const type = opt_type || '';
|
|
280
294
|
// This function needs to be named so it can be called recursively.
|
|
281
|
-
|
|
295
|
+
function promptAndCheckWithAlert(defaultName: AnyDuringMigration) {
|
|
282
296
|
promptName(Msg['NEW_VARIABLE_TITLE'], defaultName, function(text) {
|
|
283
297
|
if (text) {
|
|
284
298
|
const existing = nameUsedWithAnyType(text, workspace);
|
|
@@ -291,7 +305,7 @@ const createVariableButtonHandler = function(
|
|
|
291
305
|
msg = msg.replace('%1', existing.name).replace('%2', existing.type);
|
|
292
306
|
}
|
|
293
307
|
dialog.alert(msg, function() {
|
|
294
|
-
promptAndCheckWithAlert(text);
|
|
308
|
+
promptAndCheckWithAlert(text);
|
|
295
309
|
});
|
|
296
310
|
} else {
|
|
297
311
|
// No conflict
|
|
@@ -307,26 +321,26 @@ const createVariableButtonHandler = function(
|
|
|
307
321
|
}
|
|
308
322
|
}
|
|
309
323
|
});
|
|
310
|
-
}
|
|
324
|
+
}
|
|
311
325
|
promptAndCheckWithAlert('');
|
|
312
|
-
}
|
|
313
|
-
exports.createVariableButtonHandler = createVariableButtonHandler;
|
|
326
|
+
}
|
|
314
327
|
|
|
315
328
|
/**
|
|
316
329
|
* Opens a prompt that allows the user to enter a new name for a variable.
|
|
317
330
|
* Triggers a rename if the new name is valid. Or re-prompts if there is a
|
|
318
331
|
* collision.
|
|
319
|
-
* @param
|
|
320
|
-
*
|
|
321
|
-
* @param
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
* aborted (cancel button), or undefined if an existing variable was chosen.
|
|
332
|
+
* @param workspace The workspace on which to rename the variable.
|
|
333
|
+
* @param variable Variable to rename.
|
|
334
|
+
* @param opt_callback A callback. It will be passed an acceptable new variable
|
|
335
|
+
* name, or null if change is to be aborted (cancel button), or undefined if
|
|
336
|
+
* an existing variable was chosen.
|
|
325
337
|
* @alias Blockly.Variables.renameVariable
|
|
326
338
|
*/
|
|
327
|
-
|
|
339
|
+
export function renameVariable(
|
|
340
|
+
workspace: Workspace, variable: VariableModel,
|
|
341
|
+
opt_callback?: (p1?: string|null) => AnyDuringMigration) {
|
|
328
342
|
// This function needs to be named so it can be called recursively.
|
|
329
|
-
|
|
343
|
+
function promptAndCheckWithAlert(defaultName: AnyDuringMigration) {
|
|
330
344
|
const promptText =
|
|
331
345
|
Msg['RENAME_VARIABLE_TITLE'].replace('%1', variable.name);
|
|
332
346
|
promptName(promptText, defaultName, function(newName) {
|
|
@@ -338,7 +352,7 @@ const renameVariable = function(workspace, variable, opt_callback) {
|
|
|
338
352
|
.replace('%1', existing.name)
|
|
339
353
|
.replace('%2', existing.type);
|
|
340
354
|
dialog.alert(msg, function() {
|
|
341
|
-
promptAndCheckWithAlert(newName);
|
|
355
|
+
promptAndCheckWithAlert(newName);
|
|
342
356
|
});
|
|
343
357
|
} else {
|
|
344
358
|
workspace.renameVariableById(variable.getId(), newName);
|
|
@@ -353,20 +367,21 @@ const renameVariable = function(workspace, variable, opt_callback) {
|
|
|
353
367
|
}
|
|
354
368
|
}
|
|
355
369
|
});
|
|
356
|
-
}
|
|
370
|
+
}
|
|
357
371
|
promptAndCheckWithAlert('');
|
|
358
|
-
}
|
|
359
|
-
exports.renameVariable = renameVariable;
|
|
372
|
+
}
|
|
360
373
|
|
|
361
374
|
/**
|
|
362
375
|
* Prompt the user for a new variable name.
|
|
363
|
-
* @param
|
|
364
|
-
* @param
|
|
365
|
-
* @param
|
|
366
|
-
*
|
|
376
|
+
* @param promptText The string of the prompt.
|
|
377
|
+
* @param defaultText The default value to show in the prompt's field.
|
|
378
|
+
* @param callback A callback. It will return the new variable name, or null if
|
|
379
|
+
* the user picked something illegal.
|
|
367
380
|
* @alias Blockly.Variables.promptName
|
|
368
381
|
*/
|
|
369
|
-
|
|
382
|
+
export function promptName(
|
|
383
|
+
promptText: string, defaultText: string,
|
|
384
|
+
callback: (p1: string|null) => AnyDuringMigration) {
|
|
370
385
|
dialog.prompt(promptText, defaultText, function(newVar) {
|
|
371
386
|
// Merge runs of whitespace. Strip leading and trailing whitespace.
|
|
372
387
|
// Beyond this, all names are legal.
|
|
@@ -379,61 +394,57 @@ const promptName = function(promptText, defaultText, callback) {
|
|
|
379
394
|
}
|
|
380
395
|
callback(newVar);
|
|
381
396
|
});
|
|
382
|
-
}
|
|
383
|
-
exports.promptName = promptName;
|
|
384
|
-
|
|
397
|
+
}
|
|
385
398
|
/**
|
|
386
399
|
* Check whether there exists a variable with the given name but a different
|
|
387
400
|
* type.
|
|
388
|
-
* @param
|
|
389
|
-
* @param
|
|
390
|
-
* @param
|
|
391
|
-
*
|
|
392
|
-
*
|
|
393
|
-
* different type, or null if none was found.
|
|
401
|
+
* @param name The name to search for.
|
|
402
|
+
* @param type The type to exclude from the search.
|
|
403
|
+
* @param workspace The workspace to search for the variable.
|
|
404
|
+
* @return The variable with the given name and a different type, or null if
|
|
405
|
+
* none was found.
|
|
394
406
|
*/
|
|
395
|
-
|
|
407
|
+
function nameUsedWithOtherType(
|
|
408
|
+
name: string, type: string, workspace: Workspace): VariableModel|null {
|
|
396
409
|
const allVariables = workspace.getVariableMap().getAllVariables();
|
|
397
410
|
|
|
398
411
|
name = name.toLowerCase();
|
|
399
|
-
for (let i = 0, variable;
|
|
412
|
+
for (let i = 0, variable; variable = allVariables[i]; i++) {
|
|
400
413
|
if (variable.name.toLowerCase() === name && variable.type !== type) {
|
|
401
414
|
return variable;
|
|
402
415
|
}
|
|
403
416
|
}
|
|
404
417
|
return null;
|
|
405
|
-
}
|
|
418
|
+
}
|
|
406
419
|
|
|
407
420
|
/**
|
|
408
421
|
* Check whether there exists a variable with the given name of any type.
|
|
409
|
-
* @param
|
|
410
|
-
* @param
|
|
411
|
-
*
|
|
412
|
-
* @return {?VariableModel} The variable with the given name,
|
|
413
|
-
* or null if none was found.
|
|
422
|
+
* @param name The name to search for.
|
|
423
|
+
* @param workspace The workspace to search for the variable.
|
|
424
|
+
* @return The variable with the given name, or null if none was found.
|
|
414
425
|
* @alias Blockly.Variables.nameUsedWithAnyType
|
|
415
426
|
*/
|
|
416
|
-
|
|
427
|
+
export function nameUsedWithAnyType(
|
|
428
|
+
name: string, workspace: Workspace): VariableModel|null {
|
|
417
429
|
const allVariables = workspace.getVariableMap().getAllVariables();
|
|
418
430
|
|
|
419
431
|
name = name.toLowerCase();
|
|
420
|
-
for (let i = 0, variable;
|
|
432
|
+
for (let i = 0, variable; variable = allVariables[i]; i++) {
|
|
421
433
|
if (variable.name.toLowerCase() === name) {
|
|
422
434
|
return variable;
|
|
423
435
|
}
|
|
424
436
|
}
|
|
425
437
|
return null;
|
|
426
|
-
}
|
|
427
|
-
exports.nameUsedWithAnyType = nameUsedWithAnyType;
|
|
438
|
+
}
|
|
428
439
|
|
|
429
440
|
/**
|
|
430
441
|
* Generate DOM objects representing a variable field.
|
|
431
|
-
* @param
|
|
432
|
-
*
|
|
433
|
-
* @return {?Element} The generated DOM.
|
|
442
|
+
* @param variableModel The variable model to represent.
|
|
443
|
+
* @return The generated DOM.
|
|
434
444
|
* @alias Blockly.Variables.generateVariableFieldDom
|
|
435
445
|
*/
|
|
436
|
-
|
|
446
|
+
export function generateVariableFieldDom(variableModel: VariableModel): Element|
|
|
447
|
+
null {
|
|
437
448
|
/* Generates the following XML:
|
|
438
449
|
* <field name="VAR" id="goKTKmYJ8DhVHpruv" variabletype="int">foo</field>
|
|
439
450
|
*/
|
|
@@ -444,47 +455,48 @@ const generateVariableFieldDom = function(variableModel) {
|
|
|
444
455
|
const name = utilsXml.createTextNode(variableModel.name);
|
|
445
456
|
field.appendChild(name);
|
|
446
457
|
return field;
|
|
447
|
-
}
|
|
448
|
-
exports.generateVariableFieldDom = generateVariableFieldDom;
|
|
458
|
+
}
|
|
449
459
|
|
|
450
460
|
/**
|
|
451
461
|
* Helper function to look up or create a variable on the given workspace.
|
|
452
462
|
* If no variable exists, creates and returns it.
|
|
453
|
-
* @param
|
|
454
|
-
*
|
|
455
|
-
* @param
|
|
456
|
-
* @param
|
|
457
|
-
*
|
|
458
|
-
* @
|
|
459
|
-
*
|
|
460
|
-
* or name + type combination.
|
|
463
|
+
* @param workspace The workspace to search for the variable. It may be a
|
|
464
|
+
* flyout workspace or main workspace.
|
|
465
|
+
* @param id The ID to use to look up or create the variable, or null.
|
|
466
|
+
* @param opt_name The string to use to look up or create the variable.
|
|
467
|
+
* @param opt_type The type to use to look up or create the variable.
|
|
468
|
+
* @return The variable corresponding to the given ID or name + type
|
|
469
|
+
* combination.
|
|
461
470
|
* @alias Blockly.Variables.getOrCreateVariablePackage
|
|
462
471
|
*/
|
|
463
|
-
|
|
472
|
+
export function getOrCreateVariablePackage(
|
|
473
|
+
workspace: Workspace, id: string|null, opt_name?: string,
|
|
474
|
+
opt_type?: string): VariableModel {
|
|
464
475
|
let variable = getVariable(workspace, id, opt_name, opt_type);
|
|
465
476
|
if (!variable) {
|
|
466
477
|
variable = createVariable(workspace, id, opt_name, opt_type);
|
|
467
478
|
}
|
|
468
479
|
return variable;
|
|
469
|
-
}
|
|
470
|
-
exports.getOrCreateVariablePackage = getOrCreateVariablePackage;
|
|
480
|
+
}
|
|
471
481
|
|
|
472
482
|
/**
|
|
473
483
|
* Look up a variable on the given workspace.
|
|
474
484
|
* Always looks in the main workspace before looking in the flyout workspace.
|
|
475
485
|
* Always prefers lookup by ID to lookup by name + type.
|
|
476
|
-
* @param
|
|
477
|
-
*
|
|
478
|
-
* @param
|
|
479
|
-
* @param
|
|
486
|
+
* @param workspace The workspace to search for the variable. It may be a
|
|
487
|
+
* flyout workspace or main workspace.
|
|
488
|
+
* @param id The ID to use to look up the variable, or null.
|
|
489
|
+
* @param opt_name The string to use to look up the variable.
|
|
480
490
|
* Only used if lookup by ID fails.
|
|
481
|
-
* @param
|
|
491
|
+
* @param opt_type The type to use to look up the variable.
|
|
482
492
|
* Only used if lookup by ID fails.
|
|
483
|
-
* @return
|
|
484
|
-
*
|
|
493
|
+
* @return The variable corresponding to the given ID or name + type
|
|
494
|
+
* combination, or null if not found.
|
|
485
495
|
* @alias Blockly.Variables.getVariable
|
|
486
496
|
*/
|
|
487
|
-
|
|
497
|
+
export function getVariable(
|
|
498
|
+
workspace: Workspace, id: string|null, opt_name?: string,
|
|
499
|
+
opt_type?: string): VariableModel|null {
|
|
488
500
|
const potentialVariableMap = workspace.getPotentialVariableMap();
|
|
489
501
|
let variable = null;
|
|
490
502
|
// Try to just get the variable, by ID if possible.
|
|
@@ -511,56 +523,59 @@ const getVariable = function(workspace, id, opt_name, opt_type) {
|
|
|
511
523
|
}
|
|
512
524
|
}
|
|
513
525
|
return variable;
|
|
514
|
-
}
|
|
515
|
-
exports.getVariable = getVariable;
|
|
526
|
+
}
|
|
516
527
|
|
|
517
528
|
/**
|
|
518
529
|
* Helper function to create a variable on the given workspace.
|
|
519
|
-
* @param
|
|
520
|
-
*
|
|
521
|
-
* @param
|
|
522
|
-
* @param
|
|
523
|
-
* @param
|
|
524
|
-
* @return
|
|
525
|
-
*
|
|
530
|
+
* @param workspace The workspace in which to create the variable. It may be a
|
|
531
|
+
* flyout workspace or main workspace.
|
|
532
|
+
* @param id The ID to use to create the variable, or null.
|
|
533
|
+
* @param opt_name The string to use to create the variable.
|
|
534
|
+
* @param opt_type The type to use to create the variable.
|
|
535
|
+
* @return The variable corresponding to the given ID or name + type
|
|
536
|
+
* combination.
|
|
526
537
|
*/
|
|
527
|
-
|
|
538
|
+
function createVariable(
|
|
539
|
+
workspace: Workspace, id: string|null, opt_name?: string,
|
|
540
|
+
opt_type?: string): VariableModel {
|
|
528
541
|
const potentialVariableMap = workspace.getPotentialVariableMap();
|
|
529
542
|
// Variables without names get uniquely named for this workspace.
|
|
530
543
|
if (!opt_name) {
|
|
531
544
|
const ws =
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
/** @type {!WorkspaceSvg} */ (workspace).targetWorkspace :
|
|
535
|
-
workspace);
|
|
545
|
+
(workspace.isFlyout ? (workspace as WorkspaceSvg).targetWorkspace :
|
|
546
|
+
workspace);
|
|
536
547
|
// Must call version on exports to allow for mocking in tests. See #5321
|
|
537
|
-
|
|
548
|
+
// AnyDuringMigration because: Argument of type 'Workspace | WorkspaceSvg'
|
|
549
|
+
// is not assignable to parameter of type 'Workspace'.
|
|
550
|
+
opt_name = generateUniqueName(ws as AnyDuringMigration);
|
|
538
551
|
}
|
|
539
552
|
|
|
540
553
|
// Create a potential variable if in the flyout.
|
|
541
554
|
let variable = null;
|
|
542
555
|
if (potentialVariableMap) {
|
|
543
556
|
variable = potentialVariableMap.createVariable(opt_name, opt_type, id);
|
|
544
|
-
} else {
|
|
557
|
+
} else {
|
|
558
|
+
// In the main workspace, create a real variable.
|
|
545
559
|
variable = workspace.createVariable(opt_name, opt_type, id);
|
|
546
560
|
}
|
|
547
561
|
return variable;
|
|
548
|
-
}
|
|
562
|
+
}
|
|
549
563
|
|
|
550
564
|
/**
|
|
551
565
|
* Helper function to get the list of variables that have been added to the
|
|
552
566
|
* workspace after adding a new block, using the given list of variables that
|
|
553
567
|
* were in the workspace before the new block was added.
|
|
554
|
-
* @param
|
|
555
|
-
* @param
|
|
556
|
-
*
|
|
557
|
-
* @return
|
|
558
|
-
*
|
|
559
|
-
*
|
|
568
|
+
* @param workspace The workspace to inspect.
|
|
569
|
+
* @param originalVariables The array of variables that existed in the workspace
|
|
570
|
+
* before adding the new block.
|
|
571
|
+
* @return The new array of variables that were freshly added to the workspace
|
|
572
|
+
* after creating the new block, or [] if no new variables were added to the
|
|
573
|
+
* workspace.
|
|
560
574
|
* @alias Blockly.Variables.getAddedVariables
|
|
561
|
-
* @
|
|
575
|
+
* @internal
|
|
562
576
|
*/
|
|
563
|
-
|
|
577
|
+
export function getAddedVariables(
|
|
578
|
+
workspace: Workspace, originalVariables: VariableModel[]): VariableModel[] {
|
|
564
579
|
const allCurrentVariables = workspace.getAllVariables();
|
|
565
580
|
const addedVariables = [];
|
|
566
581
|
if (originalVariables.length !== allCurrentVariables.length) {
|
|
@@ -574,5 +589,8 @@ const getAddedVariables = function(workspace, originalVariables) {
|
|
|
574
589
|
}
|
|
575
590
|
}
|
|
576
591
|
return addedVariables;
|
|
577
|
-
}
|
|
578
|
-
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
export const TEST_ONLY = {
|
|
595
|
+
generateUniqueNameInternal,
|
|
596
|
+
}
|