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
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2013 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @fileoverview A div that floats on top of Blockly. This singleton contains
|
|
9
|
+
* temporary HTML UI widgets that the user is currently interacting with.
|
|
10
|
+
* E.g. text input areas, colour pickers, context menus.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* A div that floats on top of Blockly. This singleton contains
|
|
15
|
+
* temporary HTML UI widgets that the user is currently interacting with.
|
|
16
|
+
* E.g. text input areas, colour pickers, context menus.
|
|
17
|
+
* @namespace Blockly.WidgetDiv
|
|
18
|
+
*/
|
|
19
|
+
import * as goog from '../closure/goog/goog.js';
|
|
20
|
+
goog.declareModuleId('Blockly.WidgetDiv');
|
|
21
|
+
|
|
22
|
+
import * as common from './common.js';
|
|
23
|
+
import * as dom from './utils/dom.js';
|
|
24
|
+
import type {Rect} from './utils/rect.js';
|
|
25
|
+
import type {Size} from './utils/size.js';
|
|
26
|
+
import type {WorkspaceSvg} from './workspace_svg.js';
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
/** The object currently using this container. */
|
|
30
|
+
let owner: AnyDuringMigration = null;
|
|
31
|
+
|
|
32
|
+
/** Optional cleanup function set by whichever object uses the widget. */
|
|
33
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
34
|
+
// 'Function'.
|
|
35
|
+
let dispose: Function = null as AnyDuringMigration;
|
|
36
|
+
|
|
37
|
+
/** A class name representing the current owner's workspace renderer. */
|
|
38
|
+
let rendererClassName = '';
|
|
39
|
+
|
|
40
|
+
/** A class name representing the current owner's workspace theme. */
|
|
41
|
+
let themeClassName = '';
|
|
42
|
+
|
|
43
|
+
/** The HTML container for popup overlays (e.g. editor widgets). */
|
|
44
|
+
let containerDiv: HTMLDivElement|null;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Returns the HTML container for editor widgets.
|
|
48
|
+
* @return The editor widget container.
|
|
49
|
+
* @alias Blockly.WidgetDiv.getDiv
|
|
50
|
+
*/
|
|
51
|
+
export function getDiv(): HTMLDivElement|null {
|
|
52
|
+
return containerDiv;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Allows unit tests to reset the div.
|
|
57
|
+
* @param newDiv The new value for the DIV field.
|
|
58
|
+
* @alias Blockly.WidgetDiv.testOnly_setDiv
|
|
59
|
+
* @ignore
|
|
60
|
+
*/
|
|
61
|
+
export function testOnly_setDiv(newDiv: HTMLDivElement|null) {
|
|
62
|
+
containerDiv = newDiv;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Create the widget div and inject it onto the page.
|
|
67
|
+
* @alias Blockly.WidgetDiv.createDom
|
|
68
|
+
*/
|
|
69
|
+
export function createDom() {
|
|
70
|
+
if (containerDiv) {
|
|
71
|
+
return; // Already created.
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
containerDiv = document.createElement('div') as HTMLDivElement;
|
|
75
|
+
containerDiv.className = 'blocklyWidgetDiv';
|
|
76
|
+
const container = common.getParentContainer() || document.body;
|
|
77
|
+
container.appendChild(containerDiv);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Initialize and display the widget div. Close the old one if needed.
|
|
82
|
+
* @param newOwner The object that will be using this container.
|
|
83
|
+
* @param rtl Right-to-left (true) or left-to-right (false).
|
|
84
|
+
* @param newDispose Optional cleanup function to be run when the widget is
|
|
85
|
+
* closed.
|
|
86
|
+
* @alias Blockly.WidgetDiv.show
|
|
87
|
+
*/
|
|
88
|
+
export function show(
|
|
89
|
+
newOwner: AnyDuringMigration, rtl: boolean, newDispose: Function) {
|
|
90
|
+
hide();
|
|
91
|
+
owner = newOwner;
|
|
92
|
+
dispose = newDispose;
|
|
93
|
+
const div = containerDiv;
|
|
94
|
+
div!.style.direction = rtl ? 'rtl' : 'ltr';
|
|
95
|
+
div!.style.display = 'block';
|
|
96
|
+
const mainWorkspace = common.getMainWorkspace() as WorkspaceSvg;
|
|
97
|
+
rendererClassName = mainWorkspace.getRenderer().getClassName();
|
|
98
|
+
themeClassName = mainWorkspace.getTheme().getClassName();
|
|
99
|
+
// AnyDuringMigration because: Argument of type 'HTMLDivElement | null' is
|
|
100
|
+
// not assignable to parameter of type 'Element'.
|
|
101
|
+
dom.addClass(div as AnyDuringMigration, rendererClassName);
|
|
102
|
+
// AnyDuringMigration because: Argument of type 'HTMLDivElement | null' is
|
|
103
|
+
// not assignable to parameter of type 'Element'.
|
|
104
|
+
dom.addClass(div as AnyDuringMigration, themeClassName);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Destroy the widget and hide the div.
|
|
109
|
+
* @alias Blockly.WidgetDiv.hide
|
|
110
|
+
*/
|
|
111
|
+
export function hide() {
|
|
112
|
+
if (!isVisible()) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
owner = null;
|
|
116
|
+
|
|
117
|
+
const div = containerDiv;
|
|
118
|
+
div!.style.display = 'none';
|
|
119
|
+
div!.style.left = '';
|
|
120
|
+
div!.style.top = '';
|
|
121
|
+
dispose && dispose();
|
|
122
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
123
|
+
// 'Function'.
|
|
124
|
+
dispose = null as AnyDuringMigration;
|
|
125
|
+
div!.textContent = '';
|
|
126
|
+
|
|
127
|
+
if (rendererClassName) {
|
|
128
|
+
// AnyDuringMigration because: Argument of type 'HTMLDivElement | null' is
|
|
129
|
+
// not assignable to parameter of type 'Element'.
|
|
130
|
+
dom.removeClass(div as AnyDuringMigration, rendererClassName);
|
|
131
|
+
rendererClassName = '';
|
|
132
|
+
}
|
|
133
|
+
if (themeClassName) {
|
|
134
|
+
// AnyDuringMigration because: Argument of type 'HTMLDivElement | null' is
|
|
135
|
+
// not assignable to parameter of type 'Element'.
|
|
136
|
+
dom.removeClass(div as AnyDuringMigration, themeClassName);
|
|
137
|
+
themeClassName = '';
|
|
138
|
+
}
|
|
139
|
+
(common.getMainWorkspace() as WorkspaceSvg).markFocused();
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Is the container visible?
|
|
144
|
+
* @return True if visible.
|
|
145
|
+
* @alias Blockly.WidgetDiv.isVisible
|
|
146
|
+
*/
|
|
147
|
+
export function isVisible(): boolean {
|
|
148
|
+
return !!owner;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Destroy the widget and hide the div if it is being used by the specified
|
|
153
|
+
* object.
|
|
154
|
+
* @param oldOwner The object that was using this container.
|
|
155
|
+
* @alias Blockly.WidgetDiv.hideIfOwner
|
|
156
|
+
*/
|
|
157
|
+
export function hideIfOwner(oldOwner: AnyDuringMigration) {
|
|
158
|
+
if (owner === oldOwner) {
|
|
159
|
+
hide();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Set the widget div's position and height. This function does nothing clever:
|
|
164
|
+
* it will not ensure that your widget div ends up in the visible window.
|
|
165
|
+
* @param x Horizontal location (window coordinates, not body).
|
|
166
|
+
* @param y Vertical location (window coordinates, not body).
|
|
167
|
+
* @param height The height of the widget div (pixels).
|
|
168
|
+
*/
|
|
169
|
+
function positionInternal(x: number, y: number, height: number) {
|
|
170
|
+
containerDiv!.style.left = x + 'px';
|
|
171
|
+
containerDiv!.style.top = y + 'px';
|
|
172
|
+
containerDiv!.style.height = height + 'px';
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Position the widget div based on an anchor rectangle.
|
|
177
|
+
* The widget should be placed adjacent to but not overlapping the anchor
|
|
178
|
+
* rectangle. The preferred position is directly below and aligned to the left
|
|
179
|
+
* (LTR) or right (RTL) side of the anchor.
|
|
180
|
+
* @param viewportBBox The bounding rectangle of the current viewport, in window
|
|
181
|
+
* coordinates.
|
|
182
|
+
* @param anchorBBox The bounding rectangle of the anchor, in window
|
|
183
|
+
* coordinates.
|
|
184
|
+
* @param widgetSize The size of the widget that is inside the widget div, in
|
|
185
|
+
* window coordinates.
|
|
186
|
+
* @param rtl Whether the workspace is in RTL mode. This determines horizontal
|
|
187
|
+
* alignment.
|
|
188
|
+
* @alias Blockly.WidgetDiv.positionWithAnchor
|
|
189
|
+
* @internal
|
|
190
|
+
*/
|
|
191
|
+
export function positionWithAnchor(
|
|
192
|
+
viewportBBox: Rect, anchorBBox: Rect, widgetSize: Size, rtl: boolean) {
|
|
193
|
+
const y = calculateY(viewportBBox, anchorBBox, widgetSize);
|
|
194
|
+
const x = calculateX(viewportBBox, anchorBBox, widgetSize, rtl);
|
|
195
|
+
|
|
196
|
+
if (y < 0) {
|
|
197
|
+
positionInternal(x, 0, widgetSize.height + y);
|
|
198
|
+
} else {
|
|
199
|
+
positionInternal(x, y, widgetSize.height);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Calculate an x position (in window coordinates) such that the widget will not
|
|
205
|
+
* be offscreen on the right or left.
|
|
206
|
+
* @param viewportBBox The bounding rectangle of the current viewport, in window
|
|
207
|
+
* coordinates.
|
|
208
|
+
* @param anchorBBox The bounding rectangle of the anchor, in window
|
|
209
|
+
* coordinates.
|
|
210
|
+
* @param widgetSize The dimensions of the widget inside the widget div.
|
|
211
|
+
* @param rtl Whether the Blockly workspace is in RTL mode.
|
|
212
|
+
* @return A valid x-coordinate for the top left corner of the widget div, in
|
|
213
|
+
* window coordinates.
|
|
214
|
+
*/
|
|
215
|
+
function calculateX(
|
|
216
|
+
viewportBBox: Rect, anchorBBox: Rect, widgetSize: Size,
|
|
217
|
+
rtl: boolean): number {
|
|
218
|
+
if (rtl) {
|
|
219
|
+
// Try to align the right side of the field and the right side of widget.
|
|
220
|
+
const widgetLeft = anchorBBox.right - widgetSize.width;
|
|
221
|
+
// Don't go offscreen left.
|
|
222
|
+
const x = Math.max(widgetLeft, viewportBBox.left);
|
|
223
|
+
// But really don't go offscreen right:
|
|
224
|
+
return Math.min(x, viewportBBox.right - widgetSize.width);
|
|
225
|
+
} else {
|
|
226
|
+
// Try to align the left side of the field and the left side of widget.
|
|
227
|
+
// Don't go offscreen right.
|
|
228
|
+
const x = Math.min(anchorBBox.left, viewportBBox.right - widgetSize.width);
|
|
229
|
+
// But left is more important, because that's where the text is.
|
|
230
|
+
return Math.max(x, viewportBBox.left);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Calculate a y position (in window coordinates) such that the widget will not
|
|
236
|
+
* be offscreen on the top or bottom.
|
|
237
|
+
* @param viewportBBox The bounding rectangle of the current viewport, in window
|
|
238
|
+
* coordinates.
|
|
239
|
+
* @param anchorBBox The bounding rectangle of the anchor, in window
|
|
240
|
+
* coordinates.
|
|
241
|
+
* @param widgetSize The dimensions of the widget inside the widget div.
|
|
242
|
+
* @return A valid y-coordinate for the top left corner of the widget div, in
|
|
243
|
+
* window coordinates.
|
|
244
|
+
*/
|
|
245
|
+
function calculateY(
|
|
246
|
+
viewportBBox: Rect, anchorBBox: Rect, widgetSize: Size): number {
|
|
247
|
+
// Flip the widget vertically if off the bottom.
|
|
248
|
+
// The widget could go off the top of the window, but it would also go off
|
|
249
|
+
// the bottom. The window is just too small.
|
|
250
|
+
if (anchorBBox.bottom + widgetSize.height >= viewportBBox.bottom) {
|
|
251
|
+
// The bottom of the widget is at the top of the field.
|
|
252
|
+
return anchorBBox.top - widgetSize.height;
|
|
253
|
+
} else {
|
|
254
|
+
// The top of the widget is at the bottom of the field.
|
|
255
|
+
return anchorBBox.bottom;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2012 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import './connection_checker.js';
|
|
7
|
+
import type { Block } from './block.js';
|
|
8
|
+
import type { ConnectionDB } from './connection_db.js';
|
|
9
|
+
import type { Abstract } from './events/events_abstract.js';
|
|
10
|
+
import type { IASTNodeLocation } from './interfaces/i_ast_node_location.js';
|
|
11
|
+
import type { IConnectionChecker } from './interfaces/i_connection_checker.js';
|
|
12
|
+
import { Options } from './options.js';
|
|
13
|
+
import type * as toolbox from './utils/toolbox.js';
|
|
14
|
+
import { VariableMap } from './variable_map.js';
|
|
15
|
+
import type { VariableModel } from './variable_model.js';
|
|
16
|
+
import type { WorkspaceComment } from './workspace_comment.js';
|
|
17
|
+
/**
|
|
18
|
+
* Class for a workspace. This is a data structure that contains blocks.
|
|
19
|
+
* There is no UI, and can be created headlessly.
|
|
20
|
+
* @alias Blockly.Workspace
|
|
21
|
+
*/
|
|
22
|
+
export declare class Workspace implements IASTNodeLocation {
|
|
23
|
+
/**
|
|
24
|
+
* Angle away from the horizontal to sweep for blocks. Order of execution is
|
|
25
|
+
* generally top to bottom, but a small angle changes the scan to give a bit
|
|
26
|
+
* of a left to right bias (reversed in RTL). Units are in degrees. See:
|
|
27
|
+
* https://tvtropes.org/pmwiki/pmwiki.php/Main/DiagonalBilling
|
|
28
|
+
*/
|
|
29
|
+
static SCAN_ANGLE: number;
|
|
30
|
+
id: string;
|
|
31
|
+
options: Options;
|
|
32
|
+
RTL: boolean;
|
|
33
|
+
horizontalLayout: boolean;
|
|
34
|
+
toolboxPosition: toolbox.Position;
|
|
35
|
+
/**
|
|
36
|
+
* Returns `true` if the workspace is visible and `false` if it's headless.
|
|
37
|
+
*/
|
|
38
|
+
rendered: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Is this workspace the surface for a flyout?
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
internalIsFlyout: boolean;
|
|
44
|
+
/** Is this workspace the surface for a flyout? */
|
|
45
|
+
get isFlyout(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Is this workspace the surface for a mutator?
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
internalIsMutator: boolean;
|
|
51
|
+
/** Is this workspace the surface for a mutator? */
|
|
52
|
+
get isMutator(): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Returns `true` if the workspace is currently in the process of a bulk
|
|
55
|
+
* clear.
|
|
56
|
+
* @internal
|
|
57
|
+
*/
|
|
58
|
+
isClearing: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Maximum number of undo events in stack. `0` turns off undo, `Infinity`
|
|
61
|
+
* sets it to unlimited.
|
|
62
|
+
*/
|
|
63
|
+
MAX_UNDO: number;
|
|
64
|
+
/** Set of databases for rapid lookup of connection locations. */
|
|
65
|
+
connectionDBList: ConnectionDB[];
|
|
66
|
+
connectionChecker: IConnectionChecker;
|
|
67
|
+
private readonly topBlocks_;
|
|
68
|
+
private readonly topComments_;
|
|
69
|
+
private readonly commentDB;
|
|
70
|
+
private readonly listeners_;
|
|
71
|
+
protected undoStack_: Abstract[];
|
|
72
|
+
protected redoStack_: Abstract[];
|
|
73
|
+
private readonly blockDB;
|
|
74
|
+
private readonly typedBlocksDB;
|
|
75
|
+
private variableMap_;
|
|
76
|
+
/**
|
|
77
|
+
* Blocks in the flyout can refer to variables that don't exist in the main
|
|
78
|
+
* workspace. For instance, the "get item in list" block refers to an
|
|
79
|
+
* "item" variable regardless of whether the variable has been created yet.
|
|
80
|
+
* A FieldVariable must always refer to a VariableModel. We reconcile
|
|
81
|
+
* these by tracking "potential" variables in the flyout. These variables
|
|
82
|
+
* become real when references to them are dragged into the main workspace.
|
|
83
|
+
*/
|
|
84
|
+
private potentialVariableMap_;
|
|
85
|
+
/** @param opt_options Dictionary of options. */
|
|
86
|
+
constructor(opt_options?: Options);
|
|
87
|
+
/**
|
|
88
|
+
* Dispose of this workspace.
|
|
89
|
+
* Unlink from all DOM elements to prevent memory leaks.
|
|
90
|
+
* @suppress {checkTypes}
|
|
91
|
+
*/
|
|
92
|
+
dispose(): void;
|
|
93
|
+
/**
|
|
94
|
+
* Compare function for sorting objects (blocks, comments, etc) by position;
|
|
95
|
+
* top to bottom (with slight LTR or RTL bias).
|
|
96
|
+
* @param a The first object to compare.
|
|
97
|
+
* @param b The second object to compare.
|
|
98
|
+
* @return The comparison value. This tells Array.sort() how to change object
|
|
99
|
+
* a's index.
|
|
100
|
+
*/
|
|
101
|
+
private sortObjects_;
|
|
102
|
+
/**
|
|
103
|
+
* Adds a block to the list of top blocks.
|
|
104
|
+
* @param block Block to add.
|
|
105
|
+
*/
|
|
106
|
+
addTopBlock(block: Block): void;
|
|
107
|
+
/**
|
|
108
|
+
* Removes a block from the list of top blocks.
|
|
109
|
+
* @param block Block to remove.
|
|
110
|
+
*/
|
|
111
|
+
removeTopBlock(block: Block): void;
|
|
112
|
+
/**
|
|
113
|
+
* Finds the top-level blocks and returns them. Blocks are optionally sorted
|
|
114
|
+
* by position; top to bottom (with slight LTR or RTL bias).
|
|
115
|
+
* @param ordered Sort the list if true.
|
|
116
|
+
* @return The top-level block objects.
|
|
117
|
+
*/
|
|
118
|
+
getTopBlocks(ordered: boolean): Block[];
|
|
119
|
+
/**
|
|
120
|
+
* Add a block to the list of blocks keyed by type.
|
|
121
|
+
* @param block Block to add.
|
|
122
|
+
*/
|
|
123
|
+
addTypedBlock(block: Block): void;
|
|
124
|
+
/**
|
|
125
|
+
* Remove a block from the list of blocks keyed by type.
|
|
126
|
+
* @param block Block to remove.
|
|
127
|
+
*/
|
|
128
|
+
removeTypedBlock(block: Block): void;
|
|
129
|
+
/**
|
|
130
|
+
* Finds the blocks with the associated type and returns them. Blocks are
|
|
131
|
+
* optionally sorted by position; top to bottom (with slight LTR or RTL bias).
|
|
132
|
+
* @param type The type of block to search for.
|
|
133
|
+
* @param ordered Sort the list if true.
|
|
134
|
+
* @return The blocks of the given type.
|
|
135
|
+
*/
|
|
136
|
+
getBlocksByType(type: string, ordered: boolean): Block[];
|
|
137
|
+
/**
|
|
138
|
+
* Adds a comment to the list of top comments.
|
|
139
|
+
* @param comment comment to add.
|
|
140
|
+
* @internal
|
|
141
|
+
*/
|
|
142
|
+
addTopComment(comment: WorkspaceComment): void;
|
|
143
|
+
/**
|
|
144
|
+
* Removes a comment from the list of top comments.
|
|
145
|
+
* @param comment comment to remove.
|
|
146
|
+
* @internal
|
|
147
|
+
*/
|
|
148
|
+
removeTopComment(comment: WorkspaceComment): void;
|
|
149
|
+
/**
|
|
150
|
+
* Finds the top-level comments and returns them. Comments are optionally
|
|
151
|
+
* sorted by position; top to bottom (with slight LTR or RTL bias).
|
|
152
|
+
* @param ordered Sort the list if true.
|
|
153
|
+
* @return The top-level comment objects.
|
|
154
|
+
* @internal
|
|
155
|
+
*/
|
|
156
|
+
getTopComments(ordered: boolean): WorkspaceComment[];
|
|
157
|
+
/**
|
|
158
|
+
* Find all blocks in workspace. Blocks are optionally sorted
|
|
159
|
+
* by position; top to bottom (with slight LTR or RTL bias).
|
|
160
|
+
* @param ordered Sort the list if true.
|
|
161
|
+
* @return Array of blocks.
|
|
162
|
+
*/
|
|
163
|
+
getAllBlocks(ordered: boolean): Block[];
|
|
164
|
+
/** Dispose of all blocks and comments in workspace. */
|
|
165
|
+
clear(): void;
|
|
166
|
+
/**
|
|
167
|
+
* Rename a variable by updating its name in the variable map. Identify the
|
|
168
|
+
* variable to rename with the given ID.
|
|
169
|
+
* @param id ID of the variable to rename.
|
|
170
|
+
* @param newName New variable name.
|
|
171
|
+
*/
|
|
172
|
+
renameVariableById(id: string, newName: string): void;
|
|
173
|
+
/**
|
|
174
|
+
* Create a variable with a given name, optional type, and optional ID.
|
|
175
|
+
* @param name The name of the variable. This must be unique across variables
|
|
176
|
+
* and procedures.
|
|
177
|
+
* @param opt_type The type of the variable like 'int' or 'string'.
|
|
178
|
+
* Does not need to be unique. Field_variable can filter variables based
|
|
179
|
+
* on their type. This will default to '' which is a specific type.
|
|
180
|
+
* @param opt_id The unique ID of the variable. This will default to a UUID.
|
|
181
|
+
* @return The newly created variable.
|
|
182
|
+
*/
|
|
183
|
+
createVariable(name: string, opt_type?: string | null, opt_id?: string | null): VariableModel;
|
|
184
|
+
/**
|
|
185
|
+
* Find all the uses of the given variable, which is identified by ID.
|
|
186
|
+
* @param id ID of the variable to find.
|
|
187
|
+
* @return Array of block usages.
|
|
188
|
+
*/
|
|
189
|
+
getVariableUsesById(id: string): Block[];
|
|
190
|
+
/**
|
|
191
|
+
* Delete a variables by the passed in ID and all of its uses from this
|
|
192
|
+
* workspace. May prompt the user for confirmation.
|
|
193
|
+
* @param id ID of variable to delete.
|
|
194
|
+
*/
|
|
195
|
+
deleteVariableById(id: string): void;
|
|
196
|
+
/**
|
|
197
|
+
* Find the variable by the given name and return it. Return null if not
|
|
198
|
+
* found.
|
|
199
|
+
* @param name The name to check for.
|
|
200
|
+
* @param opt_type The type of the variable. If not provided it defaults to
|
|
201
|
+
* the empty string, which is a specific type.
|
|
202
|
+
* @return The variable with the given name.
|
|
203
|
+
*/
|
|
204
|
+
getVariable(name: string, opt_type?: string): VariableModel | null;
|
|
205
|
+
/**
|
|
206
|
+
* Find the variable by the given ID and return it. Return null if not found.
|
|
207
|
+
* @param id The ID to check for.
|
|
208
|
+
* @return The variable with the given ID.
|
|
209
|
+
*/
|
|
210
|
+
getVariableById(id: string): VariableModel | null;
|
|
211
|
+
/**
|
|
212
|
+
* Find the variable with the specified type. If type is null, return list of
|
|
213
|
+
* variables with empty string type.
|
|
214
|
+
* @param type Type of the variables to find.
|
|
215
|
+
* @return The sought after variables of the passed in type. An empty array if
|
|
216
|
+
* none are found.
|
|
217
|
+
*/
|
|
218
|
+
getVariablesOfType(type: string | null): VariableModel[];
|
|
219
|
+
/**
|
|
220
|
+
* Return all variable types.
|
|
221
|
+
* @return List of variable types.
|
|
222
|
+
* @internal
|
|
223
|
+
*/
|
|
224
|
+
getVariableTypes(): string[];
|
|
225
|
+
/**
|
|
226
|
+
* Return all variables of all types.
|
|
227
|
+
* @return List of variable models.
|
|
228
|
+
*/
|
|
229
|
+
getAllVariables(): VariableModel[];
|
|
230
|
+
/**
|
|
231
|
+
* Returns all variable names of all types.
|
|
232
|
+
* @return List of all variable names of all types.
|
|
233
|
+
*/
|
|
234
|
+
getAllVariableNames(): string[];
|
|
235
|
+
/**
|
|
236
|
+
* Returns the horizontal offset of the workspace.
|
|
237
|
+
* Intended for LTR/RTL compatibility in XML.
|
|
238
|
+
* Not relevant for a headless workspace.
|
|
239
|
+
* @return Width.
|
|
240
|
+
*/
|
|
241
|
+
getWidth(): number;
|
|
242
|
+
/**
|
|
243
|
+
* Obtain a newly created block.
|
|
244
|
+
* @param prototypeName Name of the language object containing type-specific
|
|
245
|
+
* functions for this block.
|
|
246
|
+
* @param opt_id Optional ID. Use this ID if provided, otherwise create a new
|
|
247
|
+
* ID.
|
|
248
|
+
* @return The created block.
|
|
249
|
+
*/
|
|
250
|
+
newBlock(prototypeName: string, opt_id?: string): Block;
|
|
251
|
+
/**
|
|
252
|
+
* The number of blocks that may be added to the workspace before reaching
|
|
253
|
+
* the maxBlocks.
|
|
254
|
+
* @return Number of blocks left.
|
|
255
|
+
*/
|
|
256
|
+
remainingCapacity(): number;
|
|
257
|
+
/**
|
|
258
|
+
* The number of blocks of the given type that may be added to the workspace
|
|
259
|
+
* before reaching the maxInstances allowed for that type.
|
|
260
|
+
* @param type Type of block to return capacity for.
|
|
261
|
+
* @return Number of blocks of type left.
|
|
262
|
+
*/
|
|
263
|
+
remainingCapacityOfType(type: string): number;
|
|
264
|
+
/**
|
|
265
|
+
* Check if there is remaining capacity for blocks of the given counts to be
|
|
266
|
+
* created. If the total number of blocks represented by the map is more
|
|
267
|
+
* than the total remaining capacity, it returns false. If a type count is
|
|
268
|
+
* more than the remaining capacity for that type, it returns false.
|
|
269
|
+
* @param typeCountsMap A map of types to counts (usually representing blocks
|
|
270
|
+
* to be created).
|
|
271
|
+
* @return True if there is capacity for the given map, false otherwise.
|
|
272
|
+
*/
|
|
273
|
+
isCapacityAvailable(typeCountsMap: any): boolean;
|
|
274
|
+
/**
|
|
275
|
+
* Checks if the workspace has any limits on the maximum number of blocks,
|
|
276
|
+
* or the maximum number of blocks of specific types.
|
|
277
|
+
* @return True if it has block limits, false otherwise.
|
|
278
|
+
*/
|
|
279
|
+
hasBlockLimits(): boolean;
|
|
280
|
+
/**
|
|
281
|
+
* Gets the undo stack for workplace.
|
|
282
|
+
* @return undo stack
|
|
283
|
+
* @internal
|
|
284
|
+
*/
|
|
285
|
+
getUndoStack(): Abstract[];
|
|
286
|
+
/**
|
|
287
|
+
* Gets the redo stack for workplace.
|
|
288
|
+
* @return redo stack
|
|
289
|
+
* @internal
|
|
290
|
+
*/
|
|
291
|
+
getRedoStack(): Abstract[];
|
|
292
|
+
/**
|
|
293
|
+
* Undo or redo the previous action.
|
|
294
|
+
* @param redo False if undo, true if redo.
|
|
295
|
+
*/
|
|
296
|
+
undo(redo: boolean): void;
|
|
297
|
+
/** Clear the undo/redo stacks. */
|
|
298
|
+
clearUndo(): void;
|
|
299
|
+
/**
|
|
300
|
+
* When something in this workspace changes, call a function.
|
|
301
|
+
* Note that there may be a few recent events already on the stack. Thus the
|
|
302
|
+
* new change listener might be called with events that occurred a few
|
|
303
|
+
* milliseconds before the change listener was added.
|
|
304
|
+
* @param func Function to call.
|
|
305
|
+
* @return Obsolete return value, ignore.
|
|
306
|
+
*/
|
|
307
|
+
addChangeListener(func: Function): Function;
|
|
308
|
+
/**
|
|
309
|
+
* Stop listening for this workspace's changes.
|
|
310
|
+
* @param func Function to stop calling.
|
|
311
|
+
*/
|
|
312
|
+
removeChangeListener(func: Function): void;
|
|
313
|
+
/**
|
|
314
|
+
* Fire a change event.
|
|
315
|
+
* @param event Event to fire.
|
|
316
|
+
*/
|
|
317
|
+
fireChangeListener(event: Abstract): void;
|
|
318
|
+
/**
|
|
319
|
+
* Find the block on this workspace with the specified ID.
|
|
320
|
+
* @param id ID of block to find.
|
|
321
|
+
* @return The sought after block, or null if not found.
|
|
322
|
+
*/
|
|
323
|
+
getBlockById(id: string): Block | null;
|
|
324
|
+
/**
|
|
325
|
+
* Set a block on this workspace with the specified ID.
|
|
326
|
+
* @param id ID of block to set.
|
|
327
|
+
* @param block The block to set.
|
|
328
|
+
* @internal
|
|
329
|
+
*/
|
|
330
|
+
setBlockById(id: string, block: Block): void;
|
|
331
|
+
/**
|
|
332
|
+
* Delete a block off this workspace with the specified ID.
|
|
333
|
+
* @param id ID of block to delete.
|
|
334
|
+
* @internal
|
|
335
|
+
*/
|
|
336
|
+
removeBlockById(id: string): void;
|
|
337
|
+
/**
|
|
338
|
+
* Find the comment on this workspace with the specified ID.
|
|
339
|
+
* @param id ID of comment to find.
|
|
340
|
+
* @return The sought after comment, or null if not found.
|
|
341
|
+
* @internal
|
|
342
|
+
*/
|
|
343
|
+
getCommentById(id: string): WorkspaceComment | null;
|
|
344
|
+
/**
|
|
345
|
+
* Checks whether all value and statement inputs in the workspace are filled
|
|
346
|
+
* with blocks.
|
|
347
|
+
* @param opt_shadowBlocksAreFilled An optional argument controlling whether
|
|
348
|
+
* shadow blocks are counted as filled. Defaults to true.
|
|
349
|
+
* @return True if all inputs are filled, false otherwise.
|
|
350
|
+
*/
|
|
351
|
+
allInputsFilled(opt_shadowBlocksAreFilled?: boolean): boolean;
|
|
352
|
+
/**
|
|
353
|
+
* Return the variable map that contains "potential" variables.
|
|
354
|
+
* These exist in the flyout but not in the workspace.
|
|
355
|
+
* @return The potential variable map.
|
|
356
|
+
* @internal
|
|
357
|
+
*/
|
|
358
|
+
getPotentialVariableMap(): VariableMap | null;
|
|
359
|
+
/**
|
|
360
|
+
* Create and store the potential variable map for this workspace.
|
|
361
|
+
* @internal
|
|
362
|
+
*/
|
|
363
|
+
createPotentialVariableMap(): void;
|
|
364
|
+
/**
|
|
365
|
+
* Return the map of all variables on the workspace.
|
|
366
|
+
* @return The variable map.
|
|
367
|
+
*/
|
|
368
|
+
getVariableMap(): VariableMap;
|
|
369
|
+
/**
|
|
370
|
+
* Set the map of all variables on the workspace.
|
|
371
|
+
* @param variableMap The variable map.
|
|
372
|
+
* @internal
|
|
373
|
+
*/
|
|
374
|
+
setVariableMap(variableMap: VariableMap): void;
|
|
375
|
+
/**
|
|
376
|
+
* Find the workspace with the specified ID.
|
|
377
|
+
* @param id ID of workspace to find.
|
|
378
|
+
* @return The sought after workspace or null if not found.
|
|
379
|
+
*/
|
|
380
|
+
static getById(id: string): Workspace | null;
|
|
381
|
+
/**
|
|
382
|
+
* Find all workspaces.
|
|
383
|
+
* @return Array of workspaces.
|
|
384
|
+
*/
|
|
385
|
+
static getAll(): Workspace[];
|
|
386
|
+
}
|