blockly 8.20220331.0-beta.1 → 9.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blockly.min.js +2004 -2269
- package/blockly_compressed.js +1499 -1994
- package/blockly_compressed.js.map +1 -1
- package/blocks/blocks.js +3 -2
- package/blocks/colour.js +3 -1
- package/blocks/lists.js +94 -22
- package/blocks/logic.js +14 -6
- package/blocks/loops.js +5 -3
- package/blocks/math.js +3 -1
- package/blocks/procedures.js +7 -6
- package/blocks/text.js +14 -6
- package/blocks/variables.js +3 -1
- package/blocks/variables_dynamic.js +3 -1
- package/blocks.d.ts +10 -3
- 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 -720
- 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} +31 -44
- package/core/events/events_block_delete.d.ts +36 -0
- package/core/events/{events_block_delete.js → events_block_delete.ts} +35 -48
- 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.js → input.ts} +96 -119
- 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} +234 -227
- 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 -4
- package/core.js +1 -2
- package/dart.d.ts +1 -4
- 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 +3 -11
- package/javascript.d.ts +1 -4
- package/javascript_compressed.js +314 -104
- package/javascript_compressed.js.map +1 -1
- package/lua.d.ts +1 -4
- package/lua_compressed.js +399 -81
- package/lua_compressed.js.map +1 -1
- package/msg/ab.js +10 -6
- package/msg/ace.js +10 -6
- package/msg/af.js +10 -6
- package/msg/am.js +10 -6
- package/msg/ar.js +10 -6
- package/msg/ast.js +10 -6
- package/msg/az.js +12 -8
- package/msg/ba.js +10 -6
- package/msg/bcc.js +10 -6
- package/msg/be-tarask.js +10 -6
- package/msg/be.js +14 -10
- package/msg/bg.js +10 -6
- package/msg/bn.js +10 -6
- package/msg/br.js +10 -6
- package/msg/bs.js +10 -6
- package/msg/ca.js +10 -6
- package/msg/cdo.js +10 -6
- package/msg/cs.js +25 -21
- package/msg/da.js +10 -6
- package/msg/de.js +11 -7
- package/msg/diq.js +11 -7
- package/msg/dty.js +10 -6
- package/msg/ee.js +10 -6
- package/msg/el.js +10 -6
- package/msg/en-gb.js +10 -6
- package/msg/en.js +10 -6
- package/msg/eo.js +11 -7
- package/msg/es.js +11 -7
- package/msg/et.js +10 -6
- package/msg/eu.js +10 -6
- package/msg/fa.js +11 -7
- package/msg/fi.js +10 -6
- package/msg/fo.js +10 -6
- package/msg/fr.js +14 -10
- package/msg/frr.js +10 -6
- package/msg/gl.js +10 -6
- package/msg/gn.js +10 -6
- package/msg/gor.js +10 -6
- package/msg/ha.js +10 -6
- package/msg/hak.js +10 -6
- package/msg/he.js +11 -7
- package/msg/hi.js +10 -6
- package/msg/hr.js +12 -8
- package/msg/hrx.js +10 -6
- package/msg/hu.js +10 -6
- package/msg/hy.js +12 -8
- package/msg/ia.js +10 -6
- package/msg/id.js +22 -18
- package/msg/ig.js +10 -6
- package/msg/inh.js +24 -20
- package/msg/is.js +10 -6
- package/msg/it.js +10 -6
- package/msg/ja.js +17 -13
- package/msg/ka.js +10 -6
- package/msg/kab.js +10 -6
- package/msg/kbd-cyrl.js +10 -6
- package/msg/km.js +10 -6
- package/msg/kn.js +10 -6
- package/msg/ko.js +10 -6
- package/msg/ksh.js +10 -6
- package/msg/ku-latn.js +10 -6
- package/msg/ky.js +10 -6
- package/msg/la.js +10 -6
- package/msg/lb.js +10 -6
- package/msg/lki.js +10 -6
- package/msg/lo.js +10 -6
- package/msg/lrc.js +10 -6
- package/msg/lt.js +10 -6
- package/msg/lv.js +39 -35
- package/msg/mg.js +10 -6
- package/msg/mk.js +10 -6
- package/msg/ml.js +10 -6
- package/msg/mnw.js +10 -6
- package/msg/ms.js +10 -6
- package/msg/my.js +10 -6
- package/msg/mzn.js +10 -6
- package/msg/nb.js +10 -6
- package/msg/ne.js +10 -6
- package/msg/nl.js +10 -6
- package/msg/oc.js +10 -6
- package/msg/olo.js +10 -6
- package/msg/pa.js +13 -9
- package/msg/pl.js +10 -6
- package/msg/pms.js +10 -6
- package/msg/ps.js +10 -6
- package/msg/pt-br.js +10 -6
- package/msg/pt.js +10 -6
- package/msg/ro.js +10 -6
- package/msg/ru.js +10 -6
- package/msg/sc.js +10 -6
- package/msg/sco.js +10 -6
- package/msg/sd.js +10 -6
- package/msg/shn.js +10 -6
- package/msg/si.js +10 -6
- package/msg/sk.js +10 -6
- package/msg/skr-arab.js +10 -6
- package/msg/sl.js +10 -6
- package/msg/smn.js +440 -0
- package/msg/sq.js +10 -6
- package/msg/sr-latn.js +10 -6
- package/msg/sr.js +10 -6
- package/msg/sv.js +10 -6
- package/msg/sw.js +10 -6
- package/msg/ta.js +10 -6
- package/msg/tcy.js +10 -6
- package/msg/te.js +11 -7
- package/msg/th.js +10 -6
- package/msg/ti.js +10 -6
- package/msg/tl.js +10 -6
- package/msg/tlh.js +10 -6
- package/msg/tr.js +10 -6
- package/msg/ug-arab.js +10 -6
- package/msg/uk.js +10 -6
- package/msg/ur.js +10 -6
- package/msg/uz.js +10 -6
- package/msg/vi.js +10 -6
- package/msg/xmf.js +10 -6
- package/msg/yo.js +10 -6
- package/msg/yue.js +11 -7
- package/msg/zgh.js +10 -6
- package/msg/zh-hans.js +13 -9
- package/msg/zh-hant.js +13 -9
- package/package.json +5 -5
- package/php.d.ts +1 -4
- package/php_compressed.js +322 -93
- package/php_compressed.js.map +1 -1
- package/python.d.ts +1 -4
- package/python_compressed.js +237 -90
- package/python_compressed.js.map +1 -1
- package/blockly.d.ts +0 -25607
- 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/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 -289
- 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,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2020 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { WorkspaceSvg } from '../workspace_svg.js';
|
|
7
|
+
import type { BlockSvg } from '../block_svg.js';
|
|
8
|
+
import type { Coordinate } from '../utils/coordinate.js';
|
|
9
|
+
import type { FlyoutDefinition } from '../utils/toolbox.js';
|
|
10
|
+
import type { Svg } from '../utils/svg.js';
|
|
11
|
+
import type { IRegistrable } from './i_registrable.js';
|
|
12
|
+
/**
|
|
13
|
+
* Interface for a flyout.
|
|
14
|
+
* @alias Blockly.IFlyout
|
|
15
|
+
*/
|
|
16
|
+
export interface IFlyout extends IRegistrable {
|
|
17
|
+
/** Whether the flyout is laid out horizontally or not. */
|
|
18
|
+
horizontalLayout: boolean;
|
|
19
|
+
/** Is RTL vs LTR. */
|
|
20
|
+
RTL: boolean;
|
|
21
|
+
/** The target workspace */
|
|
22
|
+
targetWorkspace: WorkspaceSvg | null;
|
|
23
|
+
/** Margin around the edges of the blocks in the flyout. */
|
|
24
|
+
readonly MARGIN: number;
|
|
25
|
+
/** Does the flyout automatically close when a block is created? */
|
|
26
|
+
autoClose: boolean;
|
|
27
|
+
/** Corner radius of the flyout background. */
|
|
28
|
+
readonly CORNER_RADIUS: number;
|
|
29
|
+
/**
|
|
30
|
+
* Creates the flyout's DOM. Only needs to be called once. The flyout can
|
|
31
|
+
* either exist as its own svg element or be a g element nested inside a
|
|
32
|
+
* separate svg element.
|
|
33
|
+
* @param tagName The type of tag to put the flyout in. This should be <svg>
|
|
34
|
+
* or <g>.
|
|
35
|
+
* @return The flyout's SVG group.
|
|
36
|
+
*/
|
|
37
|
+
createDom(tagName: string | Svg<SVGSVGElement> | Svg<SVGGElement>): SVGElement;
|
|
38
|
+
/**
|
|
39
|
+
* Initializes the flyout.
|
|
40
|
+
* @param targetWorkspace The workspace in which to create new blocks.
|
|
41
|
+
*/
|
|
42
|
+
init(targetWorkspace: WorkspaceSvg): void;
|
|
43
|
+
/**
|
|
44
|
+
* Dispose of this flyout.
|
|
45
|
+
* Unlink from all DOM elements to prevent memory leaks.
|
|
46
|
+
*/
|
|
47
|
+
dispose(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Get the width of the flyout.
|
|
50
|
+
* @return The width of the flyout.
|
|
51
|
+
*/
|
|
52
|
+
getWidth(): number;
|
|
53
|
+
/**
|
|
54
|
+
* Get the height of the flyout.
|
|
55
|
+
* @return The height of the flyout.
|
|
56
|
+
*/
|
|
57
|
+
getHeight(): number;
|
|
58
|
+
/**
|
|
59
|
+
* Get the workspace inside the flyout.
|
|
60
|
+
* @return The workspace inside the flyout.
|
|
61
|
+
*/
|
|
62
|
+
getWorkspace(): WorkspaceSvg;
|
|
63
|
+
/**
|
|
64
|
+
* Is the flyout visible?
|
|
65
|
+
* @return True if visible.
|
|
66
|
+
*/
|
|
67
|
+
isVisible(): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Set whether the flyout is visible. A value of true does not necessarily
|
|
70
|
+
* mean that the flyout is shown. It could be hidden because its container is
|
|
71
|
+
* hidden.
|
|
72
|
+
* @param visible True if visible.
|
|
73
|
+
*/
|
|
74
|
+
setVisible(visible: boolean): void;
|
|
75
|
+
/**
|
|
76
|
+
* Set whether this flyout's container is visible.
|
|
77
|
+
* @param visible Whether the container is visible.
|
|
78
|
+
*/
|
|
79
|
+
setContainerVisible(visible: boolean): void;
|
|
80
|
+
/** Hide and empty the flyout. */
|
|
81
|
+
hide(): void;
|
|
82
|
+
/**
|
|
83
|
+
* Show and populate the flyout.
|
|
84
|
+
* @param flyoutDef Contents to display in the flyout. This is either an array
|
|
85
|
+
* of Nodes, a NodeList, a toolbox definition, or a string with the name
|
|
86
|
+
* of the dynamic category.
|
|
87
|
+
*/
|
|
88
|
+
show(flyoutDef: FlyoutDefinition | string): void;
|
|
89
|
+
/**
|
|
90
|
+
* Create a copy of this block on the workspace.
|
|
91
|
+
* @param originalBlock The block to copy from the flyout.
|
|
92
|
+
* @return The newly created block.
|
|
93
|
+
* @throws {Error} if something went wrong with deserialization.
|
|
94
|
+
*/
|
|
95
|
+
createBlock(originalBlock: BlockSvg): BlockSvg;
|
|
96
|
+
/** Reflow blocks and their mats. */
|
|
97
|
+
reflow(): void;
|
|
98
|
+
/**
|
|
99
|
+
* @return True if this flyout may be scrolled with a scrollbar or by
|
|
100
|
+
* dragging.
|
|
101
|
+
*/
|
|
102
|
+
isScrollable(): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Calculates the x coordinate for the flyout position.
|
|
105
|
+
* @return X coordinate.
|
|
106
|
+
*/
|
|
107
|
+
getX(): number;
|
|
108
|
+
/**
|
|
109
|
+
* Calculates the y coordinate for the flyout position.
|
|
110
|
+
* @return Y coordinate.
|
|
111
|
+
*/
|
|
112
|
+
getY(): number;
|
|
113
|
+
/** Position the flyout. */
|
|
114
|
+
position(): void;
|
|
115
|
+
/**
|
|
116
|
+
* Determine if a drag delta is toward the workspace, based on the position
|
|
117
|
+
* and orientation of the flyout. This is used in determineDragIntention_ to
|
|
118
|
+
* determine if a new block should be created or if the flyout should scroll.
|
|
119
|
+
* @param currentDragDeltaXY How far the pointer has moved from the position
|
|
120
|
+
* at mouse down, in pixel units.
|
|
121
|
+
* @return True if the drag is toward the workspace.
|
|
122
|
+
*/
|
|
123
|
+
isDragTowardWorkspace(currentDragDeltaXY: Coordinate): boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Does this flyout allow you to create a new instance of the given block?
|
|
126
|
+
* Used for deciding if a block can be "dragged out of" the flyout.
|
|
127
|
+
* @param block The block to copy from the flyout.
|
|
128
|
+
* @return True if you can create a new instance of the block, false
|
|
129
|
+
* otherwise.
|
|
130
|
+
*/
|
|
131
|
+
isBlockCreatable(block: BlockSvg): boolean;
|
|
132
|
+
/** Scroll the flyout to the beginning of its contents. */
|
|
133
|
+
scrollToStart(): void;
|
|
134
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2020 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @fileoverview The interface for a flyout.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The interface for a flyout.
|
|
13
|
+
* @namespace Blockly.IFlyout
|
|
14
|
+
*/
|
|
15
|
+
import * as goog from '../../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.IFlyout');
|
|
17
|
+
|
|
18
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
19
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
20
|
+
// import '../utils/toolbox.js';
|
|
21
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
22
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
23
|
+
// import '../block_svg.js';
|
|
24
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
25
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
26
|
+
// import '../utils/coordinate.js';
|
|
27
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
28
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
29
|
+
// import '../utils/svg.js';
|
|
30
|
+
|
|
31
|
+
import type {WorkspaceSvg} from '../workspace_svg.js';
|
|
32
|
+
import type {BlockSvg} from '../block_svg.js';
|
|
33
|
+
import type {Coordinate} from '../utils/coordinate.js';
|
|
34
|
+
import type {FlyoutDefinition} from '../utils/toolbox.js';
|
|
35
|
+
import type {Svg} from '../utils/svg.js';
|
|
36
|
+
import type {IRegistrable} from './i_registrable.js';
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Interface for a flyout.
|
|
41
|
+
* @alias Blockly.IFlyout
|
|
42
|
+
*/
|
|
43
|
+
export interface IFlyout extends IRegistrable {
|
|
44
|
+
/** Whether the flyout is laid out horizontally or not. */
|
|
45
|
+
horizontalLayout: boolean;
|
|
46
|
+
|
|
47
|
+
/** Is RTL vs LTR. */
|
|
48
|
+
RTL: boolean;
|
|
49
|
+
|
|
50
|
+
/** The target workspace */
|
|
51
|
+
targetWorkspace: WorkspaceSvg|null;
|
|
52
|
+
|
|
53
|
+
/** Margin around the edges of the blocks in the flyout. */
|
|
54
|
+
readonly MARGIN: number;
|
|
55
|
+
|
|
56
|
+
/** Does the flyout automatically close when a block is created? */
|
|
57
|
+
autoClose: boolean;
|
|
58
|
+
|
|
59
|
+
/** Corner radius of the flyout background. */
|
|
60
|
+
readonly CORNER_RADIUS: number;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Creates the flyout's DOM. Only needs to be called once. The flyout can
|
|
64
|
+
* either exist as its own svg element or be a g element nested inside a
|
|
65
|
+
* separate svg element.
|
|
66
|
+
* @param tagName The type of tag to put the flyout in. This should be <svg>
|
|
67
|
+
* or <g>.
|
|
68
|
+
* @return The flyout's SVG group.
|
|
69
|
+
*/
|
|
70
|
+
createDom(tagName: string|Svg<SVGSVGElement>|Svg<SVGGElement>): SVGElement;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Initializes the flyout.
|
|
74
|
+
* @param targetWorkspace The workspace in which to create new blocks.
|
|
75
|
+
*/
|
|
76
|
+
init(targetWorkspace: WorkspaceSvg): void;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Dispose of this flyout.
|
|
80
|
+
* Unlink from all DOM elements to prevent memory leaks.
|
|
81
|
+
*/
|
|
82
|
+
dispose(): void;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Get the width of the flyout.
|
|
86
|
+
* @return The width of the flyout.
|
|
87
|
+
*/
|
|
88
|
+
getWidth(): number;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Get the height of the flyout.
|
|
92
|
+
* @return The height of the flyout.
|
|
93
|
+
*/
|
|
94
|
+
getHeight(): number;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Get the workspace inside the flyout.
|
|
98
|
+
* @return The workspace inside the flyout.
|
|
99
|
+
*/
|
|
100
|
+
getWorkspace(): WorkspaceSvg;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Is the flyout visible?
|
|
104
|
+
* @return True if visible.
|
|
105
|
+
*/
|
|
106
|
+
isVisible(): boolean;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Set whether the flyout is visible. A value of true does not necessarily
|
|
110
|
+
* mean that the flyout is shown. It could be hidden because its container is
|
|
111
|
+
* hidden.
|
|
112
|
+
* @param visible True if visible.
|
|
113
|
+
*/
|
|
114
|
+
setVisible(visible: boolean): void;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Set whether this flyout's container is visible.
|
|
118
|
+
* @param visible Whether the container is visible.
|
|
119
|
+
*/
|
|
120
|
+
setContainerVisible(visible: boolean): void;
|
|
121
|
+
|
|
122
|
+
/** Hide and empty the flyout. */
|
|
123
|
+
hide(): void;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Show and populate the flyout.
|
|
127
|
+
* @param flyoutDef Contents to display in the flyout. This is either an array
|
|
128
|
+
* of Nodes, a NodeList, a toolbox definition, or a string with the name
|
|
129
|
+
* of the dynamic category.
|
|
130
|
+
*/
|
|
131
|
+
show(flyoutDef: FlyoutDefinition|string): void;
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Create a copy of this block on the workspace.
|
|
135
|
+
* @param originalBlock The block to copy from the flyout.
|
|
136
|
+
* @return The newly created block.
|
|
137
|
+
* @throws {Error} if something went wrong with deserialization.
|
|
138
|
+
*/
|
|
139
|
+
createBlock(originalBlock: BlockSvg): BlockSvg;
|
|
140
|
+
|
|
141
|
+
/** Reflow blocks and their mats. */
|
|
142
|
+
reflow(): void;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* @return True if this flyout may be scrolled with a scrollbar or by
|
|
146
|
+
* dragging.
|
|
147
|
+
*/
|
|
148
|
+
isScrollable(): boolean;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Calculates the x coordinate for the flyout position.
|
|
152
|
+
* @return X coordinate.
|
|
153
|
+
*/
|
|
154
|
+
getX(): number;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Calculates the y coordinate for the flyout position.
|
|
158
|
+
* @return Y coordinate.
|
|
159
|
+
*/
|
|
160
|
+
getY(): number;
|
|
161
|
+
|
|
162
|
+
/** Position the flyout. */
|
|
163
|
+
position(): void;
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Determine if a drag delta is toward the workspace, based on the position
|
|
167
|
+
* and orientation of the flyout. This is used in determineDragIntention_ to
|
|
168
|
+
* determine if a new block should be created or if the flyout should scroll.
|
|
169
|
+
* @param currentDragDeltaXY How far the pointer has moved from the position
|
|
170
|
+
* at mouse down, in pixel units.
|
|
171
|
+
* @return True if the drag is toward the workspace.
|
|
172
|
+
*/
|
|
173
|
+
isDragTowardWorkspace(currentDragDeltaXY: Coordinate): boolean;
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Does this flyout allow you to create a new instance of the given block?
|
|
177
|
+
* Used for deciding if a block can be "dragged out of" the flyout.
|
|
178
|
+
* @param block The block to copy from the flyout.
|
|
179
|
+
* @return True if you can create a new instance of the block, false
|
|
180
|
+
* otherwise.
|
|
181
|
+
*/
|
|
182
|
+
isBlockCreatable(block: BlockSvg): boolean;
|
|
183
|
+
|
|
184
|
+
/** Scroll the flyout to the beginning of its contents. */
|
|
185
|
+
scrollToStart(): void;
|
|
186
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2020 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { KeyboardShortcut } from '../shortcut_registry.js';
|
|
7
|
+
/**
|
|
8
|
+
* An interface for an object that handles keyboard shortcuts.
|
|
9
|
+
* @alias Blockly.IKeyboardAccessible
|
|
10
|
+
*/
|
|
11
|
+
export interface IKeyboardAccessible {
|
|
12
|
+
/**
|
|
13
|
+
* Handles the given keyboard shortcut.
|
|
14
|
+
* @param shortcut The shortcut to be handled.
|
|
15
|
+
* @return True if the shortcut has been handled, false otherwise.
|
|
16
|
+
*/
|
|
17
|
+
onShortcut(shortcut: KeyboardShortcut): boolean;
|
|
18
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2020 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @fileoverview The interface for objects that handle keyboard shortcuts.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The interface for objects that handle keyboard shortcuts.
|
|
13
|
+
* @namespace Blockly.IKeyboardAccessible
|
|
14
|
+
*/
|
|
15
|
+
import * as goog from '../../closure/goog/goog.js';
|
|
16
|
+
import {KeyboardShortcut} from '../shortcut_registry.js';
|
|
17
|
+
goog.declareModuleId('Blockly.IKeyboardAccessible');
|
|
18
|
+
|
|
19
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
20
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
21
|
+
// import '../shortcut_registry.js';
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* An interface for an object that handles keyboard shortcuts.
|
|
26
|
+
* @alias Blockly.IKeyboardAccessible
|
|
27
|
+
*/
|
|
28
|
+
export interface IKeyboardAccessible {
|
|
29
|
+
/**
|
|
30
|
+
* Handles the given keyboard shortcut.
|
|
31
|
+
* @param shortcut The shortcut to be handled.
|
|
32
|
+
* @return True if the shortcut has been handled, false otherwise.
|
|
33
|
+
*/
|
|
34
|
+
onShortcut(shortcut: KeyboardShortcut): boolean;
|
|
35
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2021 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { ContainerRegion, ToolboxMetrics, AbsoluteMetrics, UiMetrics } from '../metrics_manager.js';
|
|
7
|
+
import type { Size } from '../utils/size.js';
|
|
8
|
+
import type { Metrics } from '../utils/metrics.js';
|
|
9
|
+
/**
|
|
10
|
+
* Interface for a metrics manager.
|
|
11
|
+
* @alias Blockly.IMetricsManager
|
|
12
|
+
*/
|
|
13
|
+
export interface IMetricsManager {
|
|
14
|
+
/**
|
|
15
|
+
* Returns whether the scroll area has fixed edges.
|
|
16
|
+
* @return Whether the scroll area has fixed edges.
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
hasFixedEdges(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Returns the metrics for the scroll area of the workspace.
|
|
22
|
+
* @param opt_getWorkspaceCoordinates True to get the scroll metrics in
|
|
23
|
+
* workspace coordinates, false to get them in pixel coordinates.
|
|
24
|
+
* @param opt_viewMetrics The view metrics if they have been previously
|
|
25
|
+
* computed. Passing in null may cause the view metrics to be computed
|
|
26
|
+
* again, if it is needed.
|
|
27
|
+
* @param opt_contentMetrics The content metrics if they have been previously
|
|
28
|
+
* computed. Passing in null may cause the content metrics to be computed
|
|
29
|
+
* again, if it is needed.
|
|
30
|
+
* @return The metrics for the scroll container
|
|
31
|
+
*/
|
|
32
|
+
getScrollMetrics(opt_getWorkspaceCoordinates?: boolean, opt_viewMetrics?: ContainerRegion, opt_contentMetrics?: ContainerRegion): ContainerRegion;
|
|
33
|
+
/**
|
|
34
|
+
* Gets the width and the height of the flyout on the workspace in pixel
|
|
35
|
+
* coordinates. Returns 0 for the width and height if the workspace has a
|
|
36
|
+
* category toolbox instead of a simple toolbox.
|
|
37
|
+
* @param opt_own Whether to only return the workspace's own flyout.
|
|
38
|
+
* @return The width and height of the flyout.
|
|
39
|
+
*/
|
|
40
|
+
getFlyoutMetrics(opt_own?: boolean): ToolboxMetrics;
|
|
41
|
+
/**
|
|
42
|
+
* Gets the width, height and position of the toolbox on the workspace in
|
|
43
|
+
* pixel coordinates. Returns 0 for the width and height if the workspace has
|
|
44
|
+
* a simple toolbox instead of a category toolbox. To get the width and height
|
|
45
|
+
* of a
|
|
46
|
+
* simple toolbox @see {@link getFlyoutMetrics}.
|
|
47
|
+
* @return The object with the width, height and position of the toolbox.
|
|
48
|
+
*/
|
|
49
|
+
getToolboxMetrics(): ToolboxMetrics;
|
|
50
|
+
/**
|
|
51
|
+
* Gets the width and height of the workspace's parent SVG element in pixel
|
|
52
|
+
* coordinates. This area includes the toolbox and the visible workspace area.
|
|
53
|
+
* @return The width and height of the workspace's parent SVG element.
|
|
54
|
+
*/
|
|
55
|
+
getSvgMetrics(): Size;
|
|
56
|
+
/**
|
|
57
|
+
* Gets the absolute left and absolute top in pixel coordinates.
|
|
58
|
+
* This is where the visible workspace starts in relation to the SVG
|
|
59
|
+
* container.
|
|
60
|
+
* @return The absolute metrics for the workspace.
|
|
61
|
+
*/
|
|
62
|
+
getAbsoluteMetrics(): AbsoluteMetrics;
|
|
63
|
+
/**
|
|
64
|
+
* Gets the metrics for the visible workspace in either pixel or workspace
|
|
65
|
+
* coordinates. The visible workspace does not include the toolbox or flyout.
|
|
66
|
+
* @param opt_getWorkspaceCoordinates True to get the view metrics in
|
|
67
|
+
* workspace coordinates, false to get them in pixel coordinates.
|
|
68
|
+
* @return The width, height, top and left of the viewport in either workspace
|
|
69
|
+
* coordinates or pixel coordinates.
|
|
70
|
+
*/
|
|
71
|
+
getViewMetrics(opt_getWorkspaceCoordinates?: boolean): ContainerRegion;
|
|
72
|
+
/**
|
|
73
|
+
* Gets content metrics in either pixel or workspace coordinates.
|
|
74
|
+
* The content area is a rectangle around all the top bounded elements on the
|
|
75
|
+
* workspace (workspace comments and blocks).
|
|
76
|
+
* @param opt_getWorkspaceCoordinates True to get the content metrics in
|
|
77
|
+
* workspace coordinates, false to get them in pixel coordinates.
|
|
78
|
+
* @return The metrics for the content container.
|
|
79
|
+
*/
|
|
80
|
+
getContentMetrics(opt_getWorkspaceCoordinates?: boolean): ContainerRegion;
|
|
81
|
+
/**
|
|
82
|
+
* Returns an object with all the metrics required to size scrollbars for a
|
|
83
|
+
* top level workspace. The following properties are computed:
|
|
84
|
+
* Coordinate system: pixel coordinates, -left, -up, +right, +down
|
|
85
|
+
* .viewHeight: Height of the visible portion of the workspace.
|
|
86
|
+
* .viewWidth: Width of the visible portion of the workspace.
|
|
87
|
+
* .contentHeight: Height of the content.
|
|
88
|
+
* .contentWidth: Width of the content.
|
|
89
|
+
* .svgHeight: Height of the Blockly div (the view + the toolbox,
|
|
90
|
+
* simple or otherwise),
|
|
91
|
+
* .svgWidth: Width of the Blockly div (the view + the toolbox,
|
|
92
|
+
* simple or otherwise),
|
|
93
|
+
* .viewTop: Top-edge of the visible portion of the workspace, relative to
|
|
94
|
+
* the workspace origin.
|
|
95
|
+
* .viewLeft: Left-edge of the visible portion of the workspace, relative to
|
|
96
|
+
* the workspace origin.
|
|
97
|
+
* .contentTop: Top-edge of the content, relative to the workspace origin.
|
|
98
|
+
* .contentLeft: Left-edge of the content relative to the workspace origin.
|
|
99
|
+
* .absoluteTop: Top-edge of the visible portion of the workspace, relative
|
|
100
|
+
* to the blocklyDiv.
|
|
101
|
+
* .absoluteLeft: Left-edge of the visible portion of the workspace, relative
|
|
102
|
+
* to the blocklyDiv.
|
|
103
|
+
* .toolboxWidth: Width of the toolbox, if it exists. Otherwise zero.
|
|
104
|
+
* .toolboxHeight: Height of the toolbox, if it exists. Otherwise zero.
|
|
105
|
+
* .flyoutWidth: Width of the flyout if it is always open. Otherwise zero.
|
|
106
|
+
* .flyoutHeight: Height of the flyout if it is always open. Otherwise zero.
|
|
107
|
+
* .toolboxPosition: Top, bottom, left or right. Use TOOLBOX_AT constants to
|
|
108
|
+
* compare.
|
|
109
|
+
* @return Contains size and position metrics of a top level workspace.
|
|
110
|
+
*/
|
|
111
|
+
getMetrics(): Metrics;
|
|
112
|
+
/**
|
|
113
|
+
* Returns common metrics used by UI elements.
|
|
114
|
+
* @return The UI metrics.
|
|
115
|
+
*/
|
|
116
|
+
getUiMetrics(): UiMetrics;
|
|
117
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2021 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @fileoverview The interface for a metrics manager.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The interface for a metrics manager.
|
|
13
|
+
* @namespace Blockly.IMetricsManager
|
|
14
|
+
*/
|
|
15
|
+
import * as goog from '../../closure/goog/goog.js';
|
|
16
|
+
import type {ContainerRegion, ToolboxMetrics, AbsoluteMetrics, UiMetrics} from '../metrics_manager.js';
|
|
17
|
+
import type {Size} from '../utils/size.js';
|
|
18
|
+
import type {Metrics} from '../utils/metrics.js';
|
|
19
|
+
goog.declareModuleId('Blockly.IMetricsManager');
|
|
20
|
+
|
|
21
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
22
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
23
|
+
// import '../metrics_manager.js';
|
|
24
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
25
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
26
|
+
// import '../utils/metrics.js';
|
|
27
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
28
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
29
|
+
// import '../utils/size.js';
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Interface for a metrics manager.
|
|
34
|
+
* @alias Blockly.IMetricsManager
|
|
35
|
+
*/
|
|
36
|
+
export interface IMetricsManager {
|
|
37
|
+
/**
|
|
38
|
+
* Returns whether the scroll area has fixed edges.
|
|
39
|
+
* @return Whether the scroll area has fixed edges.
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
hasFixedEdges(): boolean;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Returns the metrics for the scroll area of the workspace.
|
|
46
|
+
* @param opt_getWorkspaceCoordinates True to get the scroll metrics in
|
|
47
|
+
* workspace coordinates, false to get them in pixel coordinates.
|
|
48
|
+
* @param opt_viewMetrics The view metrics if they have been previously
|
|
49
|
+
* computed. Passing in null may cause the view metrics to be computed
|
|
50
|
+
* again, if it is needed.
|
|
51
|
+
* @param opt_contentMetrics The content metrics if they have been previously
|
|
52
|
+
* computed. Passing in null may cause the content metrics to be computed
|
|
53
|
+
* again, if it is needed.
|
|
54
|
+
* @return The metrics for the scroll container
|
|
55
|
+
*/
|
|
56
|
+
getScrollMetrics(
|
|
57
|
+
opt_getWorkspaceCoordinates?: boolean, opt_viewMetrics?: ContainerRegion,
|
|
58
|
+
opt_contentMetrics?: ContainerRegion): ContainerRegion;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Gets the width and the height of the flyout on the workspace in pixel
|
|
62
|
+
* coordinates. Returns 0 for the width and height if the workspace has a
|
|
63
|
+
* category toolbox instead of a simple toolbox.
|
|
64
|
+
* @param opt_own Whether to only return the workspace's own flyout.
|
|
65
|
+
* @return The width and height of the flyout.
|
|
66
|
+
*/
|
|
67
|
+
getFlyoutMetrics(opt_own?: boolean): ToolboxMetrics;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Gets the width, height and position of the toolbox on the workspace in
|
|
71
|
+
* pixel coordinates. Returns 0 for the width and height if the workspace has
|
|
72
|
+
* a simple toolbox instead of a category toolbox. To get the width and height
|
|
73
|
+
* of a
|
|
74
|
+
* simple toolbox @see {@link getFlyoutMetrics}.
|
|
75
|
+
* @return The object with the width, height and position of the toolbox.
|
|
76
|
+
*/
|
|
77
|
+
getToolboxMetrics(): ToolboxMetrics;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Gets the width and height of the workspace's parent SVG element in pixel
|
|
81
|
+
* coordinates. This area includes the toolbox and the visible workspace area.
|
|
82
|
+
* @return The width and height of the workspace's parent SVG element.
|
|
83
|
+
*/
|
|
84
|
+
getSvgMetrics(): Size;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Gets the absolute left and absolute top in pixel coordinates.
|
|
88
|
+
* This is where the visible workspace starts in relation to the SVG
|
|
89
|
+
* container.
|
|
90
|
+
* @return The absolute metrics for the workspace.
|
|
91
|
+
*/
|
|
92
|
+
getAbsoluteMetrics(): AbsoluteMetrics;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Gets the metrics for the visible workspace in either pixel or workspace
|
|
96
|
+
* coordinates. The visible workspace does not include the toolbox or flyout.
|
|
97
|
+
* @param opt_getWorkspaceCoordinates True to get the view metrics in
|
|
98
|
+
* workspace coordinates, false to get them in pixel coordinates.
|
|
99
|
+
* @return The width, height, top and left of the viewport in either workspace
|
|
100
|
+
* coordinates or pixel coordinates.
|
|
101
|
+
*/
|
|
102
|
+
getViewMetrics(opt_getWorkspaceCoordinates?: boolean): ContainerRegion;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Gets content metrics in either pixel or workspace coordinates.
|
|
106
|
+
* The content area is a rectangle around all the top bounded elements on the
|
|
107
|
+
* workspace (workspace comments and blocks).
|
|
108
|
+
* @param opt_getWorkspaceCoordinates True to get the content metrics in
|
|
109
|
+
* workspace coordinates, false to get them in pixel coordinates.
|
|
110
|
+
* @return The metrics for the content container.
|
|
111
|
+
*/
|
|
112
|
+
getContentMetrics(opt_getWorkspaceCoordinates?: boolean): ContainerRegion;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Returns an object with all the metrics required to size scrollbars for a
|
|
116
|
+
* top level workspace. The following properties are computed:
|
|
117
|
+
* Coordinate system: pixel coordinates, -left, -up, +right, +down
|
|
118
|
+
* .viewHeight: Height of the visible portion of the workspace.
|
|
119
|
+
* .viewWidth: Width of the visible portion of the workspace.
|
|
120
|
+
* .contentHeight: Height of the content.
|
|
121
|
+
* .contentWidth: Width of the content.
|
|
122
|
+
* .svgHeight: Height of the Blockly div (the view + the toolbox,
|
|
123
|
+
* simple or otherwise),
|
|
124
|
+
* .svgWidth: Width of the Blockly div (the view + the toolbox,
|
|
125
|
+
* simple or otherwise),
|
|
126
|
+
* .viewTop: Top-edge of the visible portion of the workspace, relative to
|
|
127
|
+
* the workspace origin.
|
|
128
|
+
* .viewLeft: Left-edge of the visible portion of the workspace, relative to
|
|
129
|
+
* the workspace origin.
|
|
130
|
+
* .contentTop: Top-edge of the content, relative to the workspace origin.
|
|
131
|
+
* .contentLeft: Left-edge of the content relative to the workspace origin.
|
|
132
|
+
* .absoluteTop: Top-edge of the visible portion of the workspace, relative
|
|
133
|
+
* to the blocklyDiv.
|
|
134
|
+
* .absoluteLeft: Left-edge of the visible portion of the workspace, relative
|
|
135
|
+
* to the blocklyDiv.
|
|
136
|
+
* .toolboxWidth: Width of the toolbox, if it exists. Otherwise zero.
|
|
137
|
+
* .toolboxHeight: Height of the toolbox, if it exists. Otherwise zero.
|
|
138
|
+
* .flyoutWidth: Width of the flyout if it is always open. Otherwise zero.
|
|
139
|
+
* .flyoutHeight: Height of the flyout if it is always open. Otherwise zero.
|
|
140
|
+
* .toolboxPosition: Top, bottom, left or right. Use TOOLBOX_AT constants to
|
|
141
|
+
* compare.
|
|
142
|
+
* @return Contains size and position metrics of a top level workspace.
|
|
143
|
+
*/
|
|
144
|
+
getMetrics(): Metrics;
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Returns common metrics used by UI elements.
|
|
148
|
+
* @return The UI metrics.
|
|
149
|
+
*/
|
|
150
|
+
getUiMetrics(): UiMetrics;
|
|
151
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2019 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* The interface for an object that is movable.
|
|
8
|
+
* @alias Blockly.IMovable
|
|
9
|
+
*/
|
|
10
|
+
export interface IMovable {
|
|
11
|
+
/**
|
|
12
|
+
* Get whether this is movable or not.
|
|
13
|
+
* @return True if movable.
|
|
14
|
+
*/
|
|
15
|
+
isMovable(): boolean;
|
|
16
|
+
}
|