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,36 +7,32 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview Utility functions for handling procedures.
|
|
9
9
|
*/
|
|
10
|
-
'use strict';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Utility functions for handling procedures.
|
|
14
13
|
* @namespace Blockly.Procedures
|
|
15
14
|
*/
|
|
16
|
-
goog
|
|
15
|
+
import * as goog from '../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.Procedures');
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
|
|
37
|
-
const {Workspace} = goog.require('Blockly.Workspace');
|
|
38
|
-
/** @suppress {extraRequire} */
|
|
39
|
-
goog.require('Blockly.Events.BlockChange');
|
|
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 type {BlockSvg} from './block_svg.js';
|
|
23
|
+
import {Blocks} from './blocks.js';
|
|
24
|
+
import * as common from './common.js';
|
|
25
|
+
import type {Abstract} from './events/events_abstract.js';
|
|
26
|
+
import type {BubbleOpen} from './events/events_bubble_open.js';
|
|
27
|
+
import * as eventUtils from './events/utils.js';
|
|
28
|
+
import type {Field} from './field.js';
|
|
29
|
+
import {Msg} from './msg.js';
|
|
30
|
+
import {Names} from './names.js';
|
|
31
|
+
import * as utilsXml from './utils/xml.js';
|
|
32
|
+
import * as Variables from './variables.js';
|
|
33
|
+
import type {Workspace} from './workspace.js';
|
|
34
|
+
import type {WorkspaceSvg} from './workspace_svg.js';
|
|
35
|
+
import * as Xml from './xml.js';
|
|
40
36
|
|
|
41
37
|
|
|
42
38
|
/**
|
|
@@ -45,78 +41,71 @@ goog.require('Blockly.Events.BlockChange');
|
|
|
45
41
|
* procedure blocks.
|
|
46
42
|
* See also Blockly.Variables.CATEGORY_NAME and
|
|
47
43
|
* Blockly.VariablesDynamic.CATEGORY_NAME.
|
|
48
|
-
* @const {string}
|
|
49
44
|
* @alias Blockly.Procedures.CATEGORY_NAME
|
|
50
45
|
*/
|
|
51
|
-
const CATEGORY_NAME = 'PROCEDURE';
|
|
52
|
-
exports.CATEGORY_NAME = CATEGORY_NAME;
|
|
46
|
+
export const CATEGORY_NAME = 'PROCEDURE';
|
|
53
47
|
|
|
54
48
|
/**
|
|
55
49
|
* The default argument for a procedures_mutatorarg block.
|
|
56
|
-
* @type {string}
|
|
57
50
|
* @alias Blockly.Procedures.DEFAULT_ARG
|
|
58
51
|
*/
|
|
59
|
-
const DEFAULT_ARG = 'x';
|
|
60
|
-
exports.DEFAULT_ARG = DEFAULT_ARG;
|
|
52
|
+
export const DEFAULT_ARG = 'x';
|
|
61
53
|
|
|
62
54
|
/**
|
|
63
55
|
* Procedure block type.
|
|
64
|
-
* @typedef {{
|
|
65
|
-
* getProcedureCall: function():string,
|
|
66
|
-
* renameProcedure: function(string,string),
|
|
67
|
-
* getProcedureDef: function():!Array
|
|
68
|
-
* }}
|
|
69
56
|
* @alias Blockly.Procedures.ProcedureBlock
|
|
70
57
|
*/
|
|
71
|
-
|
|
72
|
-
|
|
58
|
+
export interface ProcedureBlock {
|
|
59
|
+
getProcedureCall: () => string;
|
|
60
|
+
renameProcedure: (p1: string, p2: string) => AnyDuringMigration;
|
|
61
|
+
getProcedureDef: () => AnyDuringMigration[];
|
|
62
|
+
}
|
|
73
63
|
|
|
74
64
|
/**
|
|
75
65
|
* Find all user-created procedure definitions in a workspace.
|
|
76
|
-
* @param
|
|
77
|
-
* @return
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
* list, and return value boolean.
|
|
66
|
+
* @param root Root workspace.
|
|
67
|
+
* @return Pair of arrays, the first contains procedures without return
|
|
68
|
+
* variables, the second with. Each procedure is defined by a three-element
|
|
69
|
+
* list of name, parameter list, and return value boolean.
|
|
81
70
|
* @alias Blockly.Procedures.allProcedures
|
|
82
71
|
*/
|
|
83
|
-
|
|
72
|
+
export function allProcedures(root: Workspace): AnyDuringMigration[][][] {
|
|
84
73
|
const proceduresNoReturn =
|
|
85
74
|
root.getBlocksByType('procedures_defnoreturn', false)
|
|
86
75
|
.map(function(block) {
|
|
87
|
-
return
|
|
76
|
+
return (block as unknown as ProcedureBlock).getProcedureDef();
|
|
88
77
|
});
|
|
89
78
|
const proceduresReturn =
|
|
90
79
|
root.getBlocksByType('procedures_defreturn', false).map(function(block) {
|
|
91
|
-
return
|
|
80
|
+
return (block as unknown as ProcedureBlock).getProcedureDef();
|
|
92
81
|
});
|
|
93
82
|
proceduresNoReturn.sort(procTupleComparator);
|
|
94
83
|
proceduresReturn.sort(procTupleComparator);
|
|
95
84
|
return [proceduresNoReturn, proceduresReturn];
|
|
96
|
-
}
|
|
97
|
-
exports.allProcedures = allProcedures;
|
|
85
|
+
}
|
|
98
86
|
|
|
99
87
|
/**
|
|
100
88
|
* Comparison function for case-insensitive sorting of the first element of
|
|
101
89
|
* a tuple.
|
|
102
|
-
* @param
|
|
103
|
-
* @param
|
|
104
|
-
* @return
|
|
90
|
+
* @param ta First tuple.
|
|
91
|
+
* @param tb Second tuple.
|
|
92
|
+
* @return -1, 0, or 1 to signify greater than, equality, or less than.
|
|
105
93
|
*/
|
|
106
|
-
|
|
94
|
+
function procTupleComparator(
|
|
95
|
+
ta: AnyDuringMigration[], tb: AnyDuringMigration[]): number {
|
|
107
96
|
return ta[0].localeCompare(tb[0], undefined, {sensitivity: 'base'});
|
|
108
|
-
}
|
|
97
|
+
}
|
|
109
98
|
|
|
110
99
|
/**
|
|
111
100
|
* Ensure two identically-named procedures don't exist.
|
|
112
101
|
* Take the proposed procedure name, and return a legal name i.e. one that
|
|
113
102
|
* is not empty and doesn't collide with other procedures.
|
|
114
|
-
* @param
|
|
115
|
-
* @param
|
|
116
|
-
* @return
|
|
103
|
+
* @param name Proposed procedure name.
|
|
104
|
+
* @param block Block to disambiguate.
|
|
105
|
+
* @return Non-colliding name.
|
|
117
106
|
* @alias Blockly.Procedures.findLegalName
|
|
118
107
|
*/
|
|
119
|
-
|
|
108
|
+
export function findLegalName(name: string, block: Block): string {
|
|
120
109
|
if (block.isInFlyout) {
|
|
121
110
|
// Flyouts can have multiple procedures called 'do something'.
|
|
122
111
|
return name;
|
|
@@ -132,32 +121,32 @@ const findLegalName = function(name, block) {
|
|
|
132
121
|
}
|
|
133
122
|
}
|
|
134
123
|
return name;
|
|
135
|
-
}
|
|
136
|
-
exports.findLegalName = findLegalName;
|
|
137
|
-
|
|
124
|
+
}
|
|
138
125
|
/**
|
|
139
126
|
* Does this procedure have a legal name? Illegal names include names of
|
|
140
127
|
* procedures already defined.
|
|
141
|
-
* @param
|
|
142
|
-
* @param
|
|
143
|
-
* @param
|
|
144
|
-
*
|
|
145
|
-
* @return
|
|
128
|
+
* @param name The questionable name.
|
|
129
|
+
* @param workspace The workspace to scan for collisions.
|
|
130
|
+
* @param opt_exclude Optional block to exclude from comparisons (one doesn't
|
|
131
|
+
* want to collide with oneself).
|
|
132
|
+
* @return True if the name is legal.
|
|
146
133
|
*/
|
|
147
|
-
|
|
134
|
+
function isLegalName(
|
|
135
|
+
name: string, workspace: Workspace, opt_exclude?: Block): boolean {
|
|
148
136
|
return !isNameUsed(name, workspace, opt_exclude);
|
|
149
|
-
}
|
|
137
|
+
}
|
|
150
138
|
|
|
151
139
|
/**
|
|
152
140
|
* Return if the given name is already a procedure name.
|
|
153
|
-
* @param
|
|
154
|
-
* @param
|
|
155
|
-
* @param
|
|
156
|
-
*
|
|
157
|
-
* @return
|
|
141
|
+
* @param name The questionable name.
|
|
142
|
+
* @param workspace The workspace to scan for collisions.
|
|
143
|
+
* @param opt_exclude Optional block to exclude from comparisons (one doesn't
|
|
144
|
+
* want to collide with oneself).
|
|
145
|
+
* @return True if the name is used, otherwise return false.
|
|
158
146
|
* @alias Blockly.Procedures.isNameUsed
|
|
159
147
|
*/
|
|
160
|
-
|
|
148
|
+
export function isNameUsed(
|
|
149
|
+
name: string, workspace: Workspace, opt_exclude?: Block): boolean {
|
|
161
150
|
const blocks = workspace.getAllBlocks(false);
|
|
162
151
|
// Iterate through every block and check the name.
|
|
163
152
|
for (let i = 0; i < blocks.length; i++) {
|
|
@@ -165,7 +154,7 @@ const isNameUsed = function(name, workspace, opt_exclude) {
|
|
|
165
154
|
continue;
|
|
166
155
|
}
|
|
167
156
|
// Assume it is a procedure block so we can check.
|
|
168
|
-
const procedureBlock =
|
|
157
|
+
const procedureBlock = blocks[i] as unknown as ProcedureBlock;
|
|
169
158
|
if (procedureBlock.getProcedureDef) {
|
|
170
159
|
const procName = procedureBlock.getProcedureDef();
|
|
171
160
|
if (Names.equals(procName[0], name)) {
|
|
@@ -174,47 +163,41 @@ const isNameUsed = function(name, workspace, opt_exclude) {
|
|
|
174
163
|
}
|
|
175
164
|
}
|
|
176
165
|
return false;
|
|
177
|
-
}
|
|
178
|
-
exports.isNameUsed = isNameUsed;
|
|
166
|
+
}
|
|
179
167
|
|
|
180
168
|
/**
|
|
181
169
|
* Rename a procedure. Called by the editable field.
|
|
182
|
-
* @param
|
|
183
|
-
* @return
|
|
184
|
-
* @this {Field}
|
|
170
|
+
* @param name The proposed new name.
|
|
171
|
+
* @return The accepted name.
|
|
185
172
|
* @alias Blockly.Procedures.rename
|
|
186
173
|
*/
|
|
187
|
-
|
|
174
|
+
export function rename(this: Field, name: string): string {
|
|
188
175
|
// Strip leading and trailing whitespace. Beyond this, all names are legal.
|
|
189
176
|
name = name.trim();
|
|
190
177
|
|
|
191
|
-
const legalName = findLegalName(
|
|
192
|
-
name,
|
|
193
|
-
/** @type {!Block} */ (this.getSourceBlock()));
|
|
178
|
+
const legalName = findLegalName(name, (this.getSourceBlock()));
|
|
194
179
|
const oldName = this.getValue();
|
|
195
180
|
if (oldName !== name && oldName !== legalName) {
|
|
196
181
|
// Rename any callers.
|
|
197
182
|
const blocks = this.getSourceBlock().workspace.getAllBlocks(false);
|
|
198
183
|
for (let i = 0; i < blocks.length; i++) {
|
|
199
184
|
// Assume it is a procedure so we can check.
|
|
200
|
-
const procedureBlock =
|
|
185
|
+
const procedureBlock = blocks[i] as unknown as ProcedureBlock;
|
|
201
186
|
if (procedureBlock.renameProcedure) {
|
|
202
|
-
procedureBlock.renameProcedure(
|
|
203
|
-
/** @type {string} */ (oldName), legalName);
|
|
187
|
+
procedureBlock.renameProcedure(oldName as string, legalName);
|
|
204
188
|
}
|
|
205
189
|
}
|
|
206
190
|
}
|
|
207
191
|
return legalName;
|
|
208
|
-
}
|
|
209
|
-
exports.rename = rename;
|
|
192
|
+
}
|
|
210
193
|
|
|
211
194
|
/**
|
|
212
195
|
* Construct the blocks required by the flyout for the procedure category.
|
|
213
|
-
* @param
|
|
214
|
-
* @return
|
|
196
|
+
* @param workspace The workspace containing procedures.
|
|
197
|
+
* @return Array of XML block elements.
|
|
215
198
|
* @alias Blockly.Procedures.flyoutCategory
|
|
216
199
|
*/
|
|
217
|
-
|
|
200
|
+
export function flyoutCategory(workspace: WorkspaceSvg): Element[] {
|
|
218
201
|
const xmlList = [];
|
|
219
202
|
if (Blocks['procedures_defnoreturn']) {
|
|
220
203
|
// <block type="procedures_defnoreturn" gap="16">
|
|
@@ -222,7 +205,9 @@ const flyoutCategory = function(workspace) {
|
|
|
222
205
|
// </block>
|
|
223
206
|
const block = utilsXml.createElement('block');
|
|
224
207
|
block.setAttribute('type', 'procedures_defnoreturn');
|
|
225
|
-
|
|
208
|
+
// AnyDuringMigration because: Argument of type 'number' is not assignable
|
|
209
|
+
// to parameter of type 'string'.
|
|
210
|
+
block.setAttribute('gap', 16 as AnyDuringMigration);
|
|
226
211
|
const nameField = utilsXml.createElement('field');
|
|
227
212
|
nameField.setAttribute('name', 'NAME');
|
|
228
213
|
nameField.appendChild(
|
|
@@ -236,7 +221,9 @@ const flyoutCategory = function(workspace) {
|
|
|
236
221
|
// </block>
|
|
237
222
|
const block = utilsXml.createElement('block');
|
|
238
223
|
block.setAttribute('type', 'procedures_defreturn');
|
|
239
|
-
|
|
224
|
+
// AnyDuringMigration because: Argument of type 'number' is not assignable
|
|
225
|
+
// to parameter of type 'string'.
|
|
226
|
+
block.setAttribute('gap', 16 as AnyDuringMigration);
|
|
240
227
|
const nameField = utilsXml.createElement('field');
|
|
241
228
|
nameField.setAttribute('name', 'NAME');
|
|
242
229
|
nameField.appendChild(
|
|
@@ -248,22 +235,26 @@ const flyoutCategory = function(workspace) {
|
|
|
248
235
|
// <block type="procedures_ifreturn" gap="16"></block>
|
|
249
236
|
const block = utilsXml.createElement('block');
|
|
250
237
|
block.setAttribute('type', 'procedures_ifreturn');
|
|
251
|
-
|
|
238
|
+
// AnyDuringMigration because: Argument of type 'number' is not assignable
|
|
239
|
+
// to parameter of type 'string'.
|
|
240
|
+
block.setAttribute('gap', 16 as AnyDuringMigration);
|
|
252
241
|
xmlList.push(block);
|
|
253
242
|
}
|
|
254
243
|
if (xmlList.length) {
|
|
255
244
|
// Add slightly larger gap between system blocks and user calls.
|
|
256
|
-
|
|
245
|
+
// AnyDuringMigration because: Argument of type 'number' is not assignable
|
|
246
|
+
// to parameter of type 'string'.
|
|
247
|
+
xmlList[xmlList.length - 1].setAttribute('gap', 24 as AnyDuringMigration);
|
|
257
248
|
}
|
|
258
249
|
|
|
259
250
|
/**
|
|
260
251
|
* Add items to xmlList for each listed procedure.
|
|
261
|
-
* @param
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
* @param {string} templateName The type of the block to generate.
|
|
252
|
+
* @param procedureList A list of procedures, each of which is defined by a
|
|
253
|
+
* three-element list of name, parameter list, and return value boolean.
|
|
254
|
+
* @param templateName The type of the block to generate.
|
|
265
255
|
*/
|
|
266
|
-
function populateProcedures(
|
|
256
|
+
function populateProcedures(
|
|
257
|
+
procedureList: AnyDuringMigration[][], templateName: string) {
|
|
267
258
|
for (let i = 0; i < procedureList.length; i++) {
|
|
268
259
|
const name = procedureList[i][0];
|
|
269
260
|
const args = procedureList[i][1];
|
|
@@ -274,7 +265,9 @@ const flyoutCategory = function(workspace) {
|
|
|
274
265
|
// </block>
|
|
275
266
|
const block = utilsXml.createElement('block');
|
|
276
267
|
block.setAttribute('type', templateName);
|
|
277
|
-
|
|
268
|
+
// AnyDuringMigration because: Argument of type 'number' is not
|
|
269
|
+
// assignable to parameter of type 'string'.
|
|
270
|
+
block.setAttribute('gap', 16 as AnyDuringMigration);
|
|
278
271
|
const mutation = utilsXml.createElement('mutation');
|
|
279
272
|
mutation.setAttribute('name', name);
|
|
280
273
|
block.appendChild(mutation);
|
|
@@ -287,23 +280,24 @@ const flyoutCategory = function(workspace) {
|
|
|
287
280
|
}
|
|
288
281
|
}
|
|
289
282
|
|
|
290
|
-
|
|
283
|
+
// AnyDuringMigration because: Argument of type 'WorkspaceSvg' is not
|
|
284
|
+
// assignable to parameter of type 'Workspace'.
|
|
285
|
+
const tuple = allProcedures(workspace as AnyDuringMigration);
|
|
291
286
|
populateProcedures(tuple[0], 'procedures_callnoreturn');
|
|
292
287
|
populateProcedures(tuple[1], 'procedures_callreturn');
|
|
293
288
|
return xmlList;
|
|
294
|
-
}
|
|
295
|
-
exports.flyoutCategory = flyoutCategory;
|
|
289
|
+
}
|
|
296
290
|
|
|
297
291
|
/**
|
|
298
292
|
* Updates the procedure mutator's flyout so that the arg block is not a
|
|
299
293
|
* duplicate of another arg.
|
|
300
|
-
* @param
|
|
301
|
-
*
|
|
294
|
+
* @param workspace The procedure mutator's workspace. This workspace's flyout
|
|
295
|
+
* is what is being updated.
|
|
302
296
|
*/
|
|
303
|
-
|
|
297
|
+
function updateMutatorFlyout(workspace: WorkspaceSvg) {
|
|
304
298
|
const usedNames = [];
|
|
305
299
|
const blocks = workspace.getBlocksByType('procedures_mutatorarg', false);
|
|
306
|
-
for (let i = 0, block;
|
|
300
|
+
for (let i = 0, block; block = blocks[i]; i++) {
|
|
307
301
|
usedNames.push(block.getFieldValue('NAME'));
|
|
308
302
|
}
|
|
309
303
|
|
|
@@ -321,67 +315,65 @@ const updateMutatorFlyout = function(workspace) {
|
|
|
321
315
|
xmlElement.appendChild(argBlock);
|
|
322
316
|
|
|
323
317
|
workspace.updateToolbox(xmlElement);
|
|
324
|
-
}
|
|
318
|
+
}
|
|
325
319
|
|
|
326
320
|
/**
|
|
327
321
|
* Listens for when a procedure mutator is opened. Then it triggers a flyout
|
|
328
322
|
* update and adds a mutator change listener to the mutator workspace.
|
|
329
|
-
* @param
|
|
323
|
+
* @param e The event that triggered this listener.
|
|
330
324
|
* @alias Blockly.Procedures.mutatorOpenListener
|
|
331
|
-
* @
|
|
325
|
+
* @internal
|
|
332
326
|
*/
|
|
333
|
-
|
|
327
|
+
export function mutatorOpenListener(e: Abstract) {
|
|
334
328
|
if (e.type !== eventUtils.BUBBLE_OPEN) {
|
|
335
329
|
return;
|
|
336
330
|
}
|
|
337
|
-
const bubbleEvent =
|
|
338
|
-
if (!(bubbleEvent.bubbleType === 'mutator' && bubbleEvent.isOpen)
|
|
331
|
+
const bubbleEvent = e as BubbleOpen;
|
|
332
|
+
if (!(bubbleEvent.bubbleType === 'mutator' && bubbleEvent.isOpen) ||
|
|
333
|
+
!bubbleEvent.blockId) {
|
|
339
334
|
return;
|
|
340
335
|
}
|
|
341
|
-
const workspaceId =
|
|
342
|
-
const block =
|
|
343
|
-
|
|
336
|
+
const workspaceId = (bubbleEvent.workspaceId);
|
|
337
|
+
const block = common.getWorkspaceById(workspaceId)!.getBlockById(
|
|
338
|
+
bubbleEvent.blockId) as BlockSvg;
|
|
344
339
|
const type = block.type;
|
|
345
340
|
if (type !== 'procedures_defnoreturn' && type !== 'procedures_defreturn') {
|
|
346
341
|
return;
|
|
347
342
|
}
|
|
348
|
-
const workspace =
|
|
343
|
+
const workspace = block.mutator!.getWorkspace() as WorkspaceSvg;
|
|
349
344
|
updateMutatorFlyout(workspace);
|
|
350
345
|
workspace.addChangeListener(mutatorChangeListener);
|
|
351
|
-
}
|
|
352
|
-
exports.mutatorOpenListener = mutatorOpenListener;
|
|
353
|
-
|
|
346
|
+
}
|
|
354
347
|
/**
|
|
355
348
|
* Listens for changes in a procedure mutator and triggers flyout updates when
|
|
356
349
|
* necessary.
|
|
357
|
-
* @param
|
|
350
|
+
* @param e The event that triggered this listener.
|
|
358
351
|
*/
|
|
359
|
-
|
|
352
|
+
function mutatorChangeListener(e: Abstract) {
|
|
360
353
|
if (e.type !== eventUtils.BLOCK_CREATE &&
|
|
361
354
|
e.type !== eventUtils.BLOCK_DELETE &&
|
|
362
355
|
e.type !== eventUtils.BLOCK_CHANGE) {
|
|
363
356
|
return;
|
|
364
357
|
}
|
|
365
|
-
const workspaceId =
|
|
366
|
-
const workspace =
|
|
367
|
-
(Workspace.getById(workspaceId));
|
|
358
|
+
const workspaceId = e.workspaceId as string;
|
|
359
|
+
const workspace = common.getWorkspaceById(workspaceId) as WorkspaceSvg;
|
|
368
360
|
updateMutatorFlyout(workspace);
|
|
369
|
-
}
|
|
361
|
+
}
|
|
370
362
|
|
|
371
363
|
/**
|
|
372
364
|
* Find all the callers of a named procedure.
|
|
373
|
-
* @param
|
|
374
|
-
* @param
|
|
375
|
-
* @return
|
|
365
|
+
* @param name Name of procedure.
|
|
366
|
+
* @param workspace The workspace to find callers in.
|
|
367
|
+
* @return Array of caller blocks.
|
|
376
368
|
* @alias Blockly.Procedures.getCallers
|
|
377
369
|
*/
|
|
378
|
-
|
|
370
|
+
export function getCallers(name: string, workspace: Workspace): Block[] {
|
|
379
371
|
const callers = [];
|
|
380
372
|
const blocks = workspace.getAllBlocks(false);
|
|
381
373
|
// Iterate through every block and check the name.
|
|
382
374
|
for (let i = 0; i < blocks.length; i++) {
|
|
383
375
|
// Assume it is a procedure block so we can check.
|
|
384
|
-
const procedureBlock =
|
|
376
|
+
const procedureBlock = blocks[i] as unknown as ProcedureBlock;
|
|
385
377
|
if (procedureBlock.getProcedureCall) {
|
|
386
378
|
const procName = procedureBlock.getProcedureCall();
|
|
387
379
|
// Procedure name may be null if the block is only half-built.
|
|
@@ -391,55 +383,55 @@ const getCallers = function(name, workspace) {
|
|
|
391
383
|
}
|
|
392
384
|
}
|
|
393
385
|
return callers;
|
|
394
|
-
}
|
|
395
|
-
exports.getCallers = getCallers;
|
|
386
|
+
}
|
|
396
387
|
|
|
397
388
|
/**
|
|
398
389
|
* When a procedure definition changes its parameters, find and edit all its
|
|
399
390
|
* callers.
|
|
400
|
-
* @param
|
|
391
|
+
* @param defBlock Procedure definition block.
|
|
401
392
|
* @alias Blockly.Procedures.mutateCallers
|
|
402
393
|
*/
|
|
403
|
-
|
|
394
|
+
export function mutateCallers(defBlock: Block) {
|
|
404
395
|
const oldRecordUndo = eventUtils.getRecordUndo();
|
|
405
|
-
const procedureBlock =
|
|
396
|
+
const procedureBlock = defBlock as unknown as ProcedureBlock;
|
|
406
397
|
const name = procedureBlock.getProcedureDef()[0];
|
|
407
|
-
const xmlElement = defBlock.mutationToDom(true);
|
|
398
|
+
const xmlElement = defBlock.mutationToDom!(true);
|
|
408
399
|
const callers = getCallers(name, defBlock.workspace);
|
|
409
|
-
for (let i = 0, caller;
|
|
410
|
-
const oldMutationDom = caller.mutationToDom();
|
|
400
|
+
for (let i = 0, caller; caller = callers[i]; i++) {
|
|
401
|
+
const oldMutationDom = caller.mutationToDom!();
|
|
411
402
|
const oldMutation = oldMutationDom && Xml.domToText(oldMutationDom);
|
|
412
|
-
caller.domToMutation
|
|
413
|
-
|
|
403
|
+
if (caller.domToMutation) {
|
|
404
|
+
caller.domToMutation(xmlElement);
|
|
405
|
+
}
|
|
406
|
+
const newMutationDom = caller.mutationToDom!();
|
|
414
407
|
const newMutation = newMutationDom && Xml.domToText(newMutationDom);
|
|
415
408
|
if (oldMutation !== newMutation) {
|
|
416
409
|
// Fire a mutation on every caller block. But don't record this as an
|
|
417
410
|
// undo action since it is deterministically tied to the procedure's
|
|
418
411
|
// definition mutation.
|
|
419
412
|
eventUtils.setRecordUndo(false);
|
|
420
|
-
eventUtils.fire(new (eventUtils.get(eventUtils.BLOCK_CHANGE))
|
|
421
|
-
|
|
413
|
+
eventUtils.fire(new (eventUtils.get(eventUtils.BLOCK_CHANGE))!
|
|
414
|
+
(caller, 'mutation', null, oldMutation, newMutation));
|
|
422
415
|
eventUtils.setRecordUndo(oldRecordUndo);
|
|
423
416
|
}
|
|
424
417
|
}
|
|
425
|
-
}
|
|
426
|
-
exports.mutateCallers = mutateCallers;
|
|
418
|
+
}
|
|
427
419
|
|
|
428
420
|
/**
|
|
429
421
|
* Find the definition block for the named procedure.
|
|
430
|
-
* @param
|
|
431
|
-
* @param
|
|
432
|
-
* @return
|
|
422
|
+
* @param name Name of procedure.
|
|
423
|
+
* @param workspace The workspace to search.
|
|
424
|
+
* @return The procedure definition block, or null not found.
|
|
433
425
|
* @alias Blockly.Procedures.getDefinition
|
|
434
426
|
*/
|
|
435
|
-
|
|
427
|
+
export function getDefinition(name: string, workspace: Workspace): Block|null {
|
|
436
428
|
// Do not assume procedure is a top block. Some languages allow nested
|
|
437
429
|
// procedures. Also do not assume it is one of the built-in blocks. Only
|
|
438
430
|
// rely on getProcedureDef.
|
|
439
431
|
const blocks = workspace.getAllBlocks(false);
|
|
440
432
|
for (let i = 0; i < blocks.length; i++) {
|
|
441
433
|
// Assume it is a procedure block so we can check.
|
|
442
|
-
const procedureBlock =
|
|
434
|
+
const procedureBlock = blocks[i] as unknown as ProcedureBlock;
|
|
443
435
|
if (procedureBlock.getProcedureDef) {
|
|
444
436
|
const tuple = procedureBlock.getProcedureDef();
|
|
445
437
|
if (tuple && Names.equals(tuple[0], name)) {
|
|
@@ -448,5 +440,4 @@ const getDefinition = function(name, workspace) {
|
|
|
448
440
|
}
|
|
449
441
|
}
|
|
450
442
|
return null;
|
|
451
|
-
}
|
|
452
|
-
exports.getDefinition = getDefinition;
|
|
443
|
+
}
|