blockly 8.0.5 → 9.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blockly.min.js +2002 -2269
- package/blockly_compressed.js +1499 -1994
- package/blockly_compressed.js.map +1 -1
- package/blocks/blocks.js +3 -2
- package/blocks/colour.js +3 -1
- package/blocks/lists.js +94 -22
- package/blocks/logic.js +14 -6
- package/blocks/loops.js +5 -3
- package/blocks/math.js +3 -1
- package/blocks/procedures.js +3 -1
- package/blocks/text.js +14 -6
- package/blocks/variables.js +3 -1
- package/blocks/variables_dynamic.js +3 -1
- package/blocks.d.ts +0 -2
- package/blocks_compressed.js +189 -171
- package/blocks_compressed.js.map +1 -1
- package/closure/goog/base.d.ts +1 -0
- package/closure/goog/base_minimal.d.ts +18 -0
- package/closure/goog/goog.d.ts +25 -0
- package/core/any_aliases.d.ts +1 -0
- package/core/any_aliases.ts +1 -0
- package/core/block.d.ts +779 -0
- package/core/{block.js → block.ts} +610 -719
- package/core/block_animations.d.ts +33 -0
- package/core/{block_animations.js → block_animations.ts} +75 -79
- package/core/block_drag_surface.d.ts +111 -0
- package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
- package/core/block_dragger.d.ts +143 -0
- package/core/{block_dragger.js → block_dragger.ts} +139 -176
- package/core/block_svg.d.ts +588 -0
- package/core/{block_svg.js → block_svg.ts} +494 -630
- package/core/blockly.d.ts +562 -0
- package/core/blockly.js +1 -1
- package/core/blockly.ts +749 -0
- package/core/blockly_options.d.ts +69 -0
- package/core/blockly_options.ts +81 -0
- package/core/blocks.d.ts +17 -0
- package/core/{blocks.js → blocks.ts} +4 -8
- package/core/browser_events.d.ts +85 -0
- package/core/{browser_events.js → browser_events.ts} +98 -93
- package/core/bubble.d.ts +279 -0
- package/core/{bubble.js → bubble.ts} +277 -370
- package/core/bubble_dragger.d.ts +73 -0
- package/core/bubble_dragger.ts +229 -0
- package/core/bump_objects.d.ts +34 -0
- package/core/{bump_objects.js → bump_objects.ts} +54 -52
- package/core/clipboard.d.ts +42 -0
- package/core/clipboard.ts +91 -0
- package/core/comment.d.ts +113 -0
- package/core/{comment.js → comment.ts} +135 -185
- package/core/common.d.ts +129 -0
- package/core/{common.js → common.ts} +105 -82
- package/core/component_manager.d.ts +91 -0
- package/core/component_manager.ts +211 -0
- package/core/config.d.ts +23 -0
- package/core/{config.js → config.ts} +12 -19
- package/core/connection.d.ts +232 -0
- package/core/{connection.js → connection.ts} +187 -237
- package/core/connection_checker.d.ts +78 -0
- package/core/{connection_checker.js → connection_checker.ts} +66 -77
- package/core/connection_db.d.ts +91 -0
- package/core/{connection_db.js → connection_db.ts} +62 -87
- package/core/connection_type.d.ts +15 -0
- package/core/{connection_type.js → connection_type.ts} +8 -12
- package/core/constants.d.ts +15 -0
- package/core/{constants.js → constants.ts} +4 -8
- package/core/contextmenu.d.ts +80 -0
- package/core/{contextmenu.js → contextmenu.ts} +118 -153
- package/core/contextmenu_items.d.ts +77 -0
- package/core/contextmenu_items.ts +576 -0
- package/core/contextmenu_registry.d.ts +105 -0
- package/core/contextmenu_registry.ts +179 -0
- package/core/css.d.ts +24 -0
- package/core/{css.js → css.ts} +16 -24
- package/core/delete_area.d.ts +47 -0
- package/core/delete_area.ts +82 -0
- package/core/dialog.d.ts +61 -0
- package/core/dialog.ts +127 -0
- package/core/drag_target.d.ts +63 -0
- package/core/drag_target.ts +94 -0
- package/core/dropdowndiv.d.ts +155 -0
- package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
- package/core/events/events.d.ts +102 -0
- package/core/events/events.ts +123 -0
- package/core/events/events_abstract.d.ts +51 -0
- package/core/events/events_abstract.ts +112 -0
- package/core/events/events_block_base.d.ts +31 -0
- package/core/events/events_block_base.ts +65 -0
- package/core/events/events_block_change.d.ts +55 -0
- package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
- package/core/events/events_block_create.d.ts +35 -0
- package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
- package/core/events/events_block_delete.d.ts +36 -0
- package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
- package/core/events/events_block_drag.d.ts +36 -0
- package/core/events/events_block_drag.ts +82 -0
- package/core/events/events_block_move.d.ts +51 -0
- package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
- package/core/events/events_bubble_open.d.ts +35 -0
- package/core/events/events_bubble_open.ts +82 -0
- package/core/events/events_click.d.ts +36 -0
- package/core/events/{events_click.js → events_click.ts} +27 -30
- package/core/events/events_comment_base.d.ts +39 -0
- package/core/events/events_comment_base.ts +107 -0
- package/core/events/events_comment_change.d.ts +43 -0
- package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
- package/core/events/events_comment_create.d.ts +35 -0
- package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
- package/core/events/events_comment_delete.d.ts +35 -0
- package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
- package/core/events/events_comment_move.d.ts +55 -0
- package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
- package/core/events/events_marker_move.d.ts +40 -0
- package/core/events/events_marker_move.ts +99 -0
- package/core/events/events_selected.d.ts +34 -0
- package/core/events/events_selected.ts +78 -0
- package/core/events/events_theme_change.d.ts +30 -0
- package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
- package/core/events/events_toolbox_item_select.d.ts +34 -0
- package/core/events/events_toolbox_item_select.ts +79 -0
- package/core/events/events_trashcan_open.d.ts +31 -0
- package/core/events/events_trashcan_open.ts +68 -0
- package/core/events/events_ui.d.ts +37 -0
- package/core/events/{events_ui.js → events_ui.ts} +27 -26
- package/core/events/events_ui_base.d.ts +26 -0
- package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
- package/core/events/events_var_base.d.ts +31 -0
- package/core/events/events_var_base.ts +65 -0
- package/core/events/events_var_create.d.ts +35 -0
- package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
- package/core/events/events_var_delete.d.ts +35 -0
- package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
- package/core/events/events_var_rename.d.ts +36 -0
- package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
- package/core/events/events_viewport.d.ts +39 -0
- package/core/events/events_viewport.ts +100 -0
- package/core/events/utils.d.ts +272 -0
- package/core/events/{utils.js → utils.ts} +148 -219
- package/core/events/workspace_events.d.ts +36 -0
- package/core/events/workspace_events.ts +86 -0
- package/core/extensions.d.ts +107 -0
- package/core/{extensions.js → extensions.ts} +153 -172
- package/core/field.d.ts +534 -0
- package/core/{field.js → field.ts} +413 -489
- package/core/field_angle.d.ts +176 -0
- package/core/field_angle.ts +563 -0
- package/core/field_checkbox.d.ts +124 -0
- package/core/field_checkbox.ts +243 -0
- package/core/field_colour.d.ts +200 -0
- package/core/field_colour.ts +632 -0
- package/core/field_dropdown.d.ts +222 -0
- package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
- package/core/field_image.d.ts +134 -0
- package/core/field_image.ts +282 -0
- package/core/field_label.d.ts +71 -0
- package/core/field_label.ts +152 -0
- package/core/field_label_serializable.d.ts +42 -0
- package/core/field_label_serializable.ts +76 -0
- package/core/field_multilineinput.d.ts +146 -0
- package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
- package/core/field_number.d.ts +156 -0
- package/core/{field_number.js → field_number.ts} +110 -123
- package/core/field_registry.d.ts +45 -0
- package/core/{field_registry.js → field_registry.ts} +37 -30
- package/core/field_textinput.d.ts +219 -0
- package/core/field_textinput.ts +591 -0
- package/core/field_variable.d.ts +217 -0
- package/core/{field_variable.js → field_variable.ts} +174 -187
- package/core/flyout_base.d.ts +459 -0
- package/core/{flyout_base.js → flyout_base.ts} +429 -518
- package/core/flyout_button.d.ts +81 -0
- package/core/flyout_button.ts +292 -0
- package/core/flyout_horizontal.d.ts +82 -0
- package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
- package/core/flyout_metrics_manager.d.ts +40 -0
- package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
- package/core/flyout_vertical.d.ts +83 -0
- package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
- package/core/generator.d.ts +205 -0
- package/core/{generator.js → generator.ts} +168 -193
- package/core/gesture.d.ts +357 -0
- package/core/{gesture.js → gesture.ts} +289 -369
- package/core/grid.d.ts +83 -0
- package/core/grid.ts +192 -0
- package/core/icon.d.ts +78 -0
- package/core/icon.ts +189 -0
- package/core/inject.d.ts +15 -0
- package/core/{inject.js → inject.ts} +101 -100
- package/core/input.d.ts +128 -0
- package/core/input.ts +309 -0
- package/core/input_types.d.ts +14 -0
- package/core/{input_types.js → input_types.ts} +8 -12
- package/core/insertion_marker_manager.d.ts +212 -0
- package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
- package/core/interfaces/i_ast_node_location.d.ts +11 -0
- package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
- package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
- package/core/interfaces/i_ast_node_location_svg.ts +37 -0
- package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
- package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
- package/core/interfaces/i_autohideable.d.ts +18 -0
- package/core/interfaces/i_autohideable.ts +34 -0
- package/core/interfaces/i_block_dragger.d.ts +43 -0
- package/core/interfaces/i_block_dragger.ts +67 -0
- package/core/interfaces/i_bounded_element.d.ts +24 -0
- package/core/interfaces/i_bounded_element.ts +42 -0
- package/core/interfaces/i_bubble.d.ts +59 -0
- package/core/interfaces/i_bubble.ts +88 -0
- package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
- package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
- package/core/interfaces/i_component.d.ts +17 -0
- package/core/interfaces/{i_component.js → i_component.ts} +9 -14
- package/core/interfaces/i_connection_checker.d.ts +69 -0
- package/core/interfaces/i_connection_checker.ts +102 -0
- package/core/interfaces/i_contextmenu.d.ts +13 -0
- package/core/interfaces/i_contextmenu.ts +26 -0
- package/core/interfaces/i_copyable.d.ts +24 -0
- package/core/interfaces/i_copyable.ts +40 -0
- package/core/interfaces/i_deletable.d.ts +16 -0
- package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
- package/core/interfaces/i_delete_area.d.ts +25 -0
- package/core/interfaces/i_delete_area.ts +46 -0
- package/core/interfaces/i_drag_target.d.ts +53 -0
- package/core/interfaces/i_drag_target.ts +84 -0
- package/core/interfaces/i_draggable.d.ts +12 -0
- package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
- package/core/interfaces/i_flyout.d.ts +134 -0
- package/core/interfaces/i_flyout.ts +186 -0
- package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
- package/core/interfaces/i_keyboard_accessible.ts +35 -0
- package/core/interfaces/i_metrics_manager.d.ts +117 -0
- package/core/interfaces/i_metrics_manager.ts +151 -0
- package/core/interfaces/i_movable.d.ts +16 -0
- package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
- package/core/interfaces/i_positionable.d.ts +27 -0
- package/core/interfaces/i_positionable.ts +50 -0
- package/core/interfaces/i_registrable.d.ts +11 -0
- package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
- package/core/interfaces/i_registrable_field.d.ts +17 -0
- package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
- package/core/interfaces/i_selectable.d.ts +18 -0
- package/core/interfaces/i_selectable.ts +34 -0
- package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
- package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
- package/core/interfaces/i_serializer.d.ts +42 -0
- package/core/interfaces/i_serializer.ts +65 -0
- package/core/interfaces/i_styleable.d.ts +21 -0
- package/core/interfaces/i_styleable.ts +35 -0
- package/core/interfaces/i_toolbox.d.ts +85 -0
- package/core/interfaces/i_toolbox.ts +127 -0
- package/core/interfaces/i_toolbox_item.d.ts +62 -0
- package/core/interfaces/i_toolbox_item.ts +84 -0
- package/core/internal_constants.d.ts +40 -0
- package/core/{internal_constants.js → internal_constants.ts} +13 -18
- package/core/keyboard_nav/ast_node.d.ts +239 -0
- package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
- package/core/keyboard_nav/basic_cursor.d.ts +88 -0
- package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
- package/core/keyboard_nav/cursor.d.ts +41 -0
- package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
- package/core/keyboard_nav/marker.d.ts +58 -0
- package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
- package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
- package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
- package/core/main.d.ts +11 -0
- package/core/main.js +303 -0
- package/core/marker_manager.d.ts +85 -0
- package/core/marker_manager.ts +181 -0
- package/core/menu.d.ts +149 -0
- package/core/{menu.js → menu.ts} +141 -174
- package/core/menuitem.d.ts +118 -0
- package/core/menuitem.ts +240 -0
- package/core/metrics_manager.d.ts +201 -0
- package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
- package/core/msg.d.ts +9 -0
- package/core/{msg.js → msg.ts} +4 -8
- package/core/mutator.d.ts +128 -0
- package/core/{mutator.js → mutator.ts} +196 -211
- package/core/names.d.ts +124 -0
- package/core/names.ts +267 -0
- package/core/options.d.ts +137 -0
- package/core/{options.js → options.ts} +147 -173
- package/core/positionable_helpers.d.ts +88 -0
- package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
- package/core/procedures.d.ts +108 -0
- package/core/{procedures.js → procedures.ts} +143 -152
- package/core/registry.d.ts +137 -0
- package/core/registry.ts +339 -0
- package/core/rendered_connection.d.ts +191 -0
- package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
- package/core/renderers/common/block_rendering.d.ts +114 -0
- package/core/renderers/common/block_rendering.ts +164 -0
- package/core/renderers/common/constants.d.ts +458 -0
- package/core/renderers/common/constants.ts +1124 -0
- package/core/renderers/common/debug.d.ts +28 -0
- package/core/renderers/common/{debug.js → debug.ts} +14 -20
- package/core/renderers/common/debugger.d.ts +120 -0
- package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
- package/core/renderers/common/drawer.d.ts +132 -0
- package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
- package/core/renderers/common/i_path_object.d.ts +117 -0
- package/core/renderers/common/i_path_object.ts +161 -0
- package/core/renderers/common/info.d.ts +194 -0
- package/core/renderers/common/{info.js → info.ts} +165 -222
- package/core/renderers/common/marker_svg.d.ts +220 -0
- package/core/renderers/common/marker_svg.ts +680 -0
- package/core/renderers/common/path_object.d.ts +146 -0
- package/core/renderers/common/path_object.ts +272 -0
- package/core/renderers/common/renderer.d.ts +157 -0
- package/core/renderers/common/renderer.ts +271 -0
- package/core/renderers/geras/constants.d.ts +23 -0
- package/core/renderers/geras/constants.ts +61 -0
- package/core/renderers/geras/drawer.d.ts +43 -0
- package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
- package/core/renderers/geras/geras.d.ts +11 -0
- package/core/renderers/geras/geras.ts +37 -0
- package/core/renderers/geras/highlight_constants.d.ts +108 -0
- package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
- package/core/renderers/geras/highlighter.d.ts +98 -0
- package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
- package/core/renderers/geras/info.d.ts +45 -0
- package/core/renderers/geras/{info.js → info.ts} +61 -99
- package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
- package/core/renderers/geras/measurables/inline_input.ts +51 -0
- package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
- package/core/renderers/geras/measurables/statement_input.ts +50 -0
- package/core/renderers/geras/path_object.d.ts +47 -0
- package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
- package/core/renderers/geras/renderer.d.ts +69 -0
- package/core/renderers/geras/renderer.ts +126 -0
- package/core/renderers/measurables/base.d.ts +27 -0
- package/core/renderers/measurables/base.ts +53 -0
- package/core/renderers/measurables/bottom_row.d.ts +61 -0
- package/core/renderers/measurables/bottom_row.ts +120 -0
- package/core/renderers/measurables/connection.d.ts +25 -0
- package/core/renderers/measurables/connection.ts +52 -0
- package/core/renderers/measurables/external_value_input.d.ts +27 -0
- package/core/renderers/measurables/external_value_input.ts +65 -0
- package/core/renderers/measurables/field.d.ts +30 -0
- package/core/renderers/measurables/field.ts +63 -0
- package/core/renderers/measurables/hat.d.ts +21 -0
- package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
- package/core/renderers/measurables/icon.d.ts +26 -0
- package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
- package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
- package/core/renderers/measurables/in_row_spacer.ts +44 -0
- package/core/renderers/measurables/inline_input.d.ts +24 -0
- package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
- package/core/renderers/measurables/input_connection.d.ts +29 -0
- package/core/renderers/measurables/input_connection.ts +66 -0
- package/core/renderers/measurables/input_row.d.ts +30 -0
- package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
- package/core/renderers/measurables/jagged_edge.d.ts +20 -0
- package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
- package/core/renderers/measurables/next_connection.d.ts +23 -0
- package/core/renderers/measurables/next_connection.ts +47 -0
- package/core/renderers/measurables/output_connection.d.ts +26 -0
- package/core/renderers/measurables/output_connection.ts +56 -0
- package/core/renderers/measurables/previous_connection.d.ts +23 -0
- package/core/renderers/measurables/previous_connection.ts +47 -0
- package/core/renderers/measurables/round_corner.d.ts +21 -0
- package/core/renderers/measurables/round_corner.ts +49 -0
- package/core/renderers/measurables/row.d.ts +141 -0
- package/core/renderers/measurables/row.ts +225 -0
- package/core/renderers/measurables/spacer_row.d.ts +29 -0
- package/core/renderers/measurables/spacer_row.ts +55 -0
- package/core/renderers/measurables/square_corner.d.ts +21 -0
- package/core/renderers/measurables/square_corner.ts +47 -0
- package/core/renderers/measurables/statement_input.d.ts +22 -0
- package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
- package/core/renderers/measurables/top_row.d.ts +56 -0
- package/core/renderers/measurables/top_row.ts +122 -0
- package/core/renderers/measurables/types.d.ts +235 -0
- package/core/renderers/measurables/types.ts +332 -0
- package/core/renderers/minimalist/constants.d.ts +14 -0
- package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
- package/core/renderers/minimalist/drawer.d.ts +21 -0
- package/core/renderers/minimalist/drawer.ts +38 -0
- package/core/renderers/minimalist/info.d.ts +30 -0
- package/core/renderers/minimalist/info.ts +52 -0
- package/core/renderers/minimalist/minimalist.d.ts +6 -0
- package/core/renderers/minimalist/minimalist.ts +22 -0
- package/core/renderers/minimalist/renderer.d.ts +41 -0
- package/core/renderers/minimalist/renderer.ts +71 -0
- package/core/renderers/thrasos/info.d.ts +40 -0
- package/core/renderers/thrasos/{info.js → info.ts} +66 -67
- package/core/renderers/thrasos/renderer.d.ts +25 -0
- package/core/renderers/thrasos/renderer.ts +48 -0
- package/core/renderers/thrasos/thrasos.d.ts +4 -0
- package/core/renderers/thrasos/thrasos.ts +20 -0
- package/core/renderers/zelos/constants.d.ts +186 -0
- package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
- package/core/renderers/zelos/drawer.d.ts +47 -0
- package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
- package/core/renderers/zelos/info.d.ts +88 -0
- package/core/renderers/zelos/{info.js → info.ts} +111 -142
- package/core/renderers/zelos/marker_svg.d.ts +46 -0
- package/core/renderers/zelos/marker_svg.ts +151 -0
- package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
- package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
- package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
- package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
- package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
- package/core/renderers/zelos/measurables/row_elements.ts +45 -0
- package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
- package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
- package/core/renderers/zelos/path_object.d.ts +77 -0
- package/core/renderers/zelos/path_object.ts +215 -0
- package/core/renderers/zelos/renderer.d.ts +74 -0
- package/core/renderers/zelos/renderer.ts +142 -0
- package/core/renderers/zelos/zelos.d.ts +12 -0
- package/core/renderers/zelos/zelos.ts +39 -0
- package/core/scrollbar.d.ts +277 -0
- package/core/{scrollbar.js → scrollbar.ts} +307 -328
- package/core/scrollbar_pair.d.ts +105 -0
- package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
- package/core/serialization/blocks.d.ts +98 -0
- package/core/serialization/{blocks.js → blocks.ts} +229 -228
- package/core/serialization/exceptions.d.ts +73 -0
- package/core/serialization/exceptions.ts +98 -0
- package/core/serialization/priorities.d.ts +15 -0
- package/core/serialization/{priorities.js → priorities.ts} +4 -10
- package/core/serialization/registry.d.ts +20 -0
- package/core/serialization/{registry.js → registry.ts} +11 -13
- package/core/serialization/variables.d.ts +14 -0
- package/core/serialization/{variables.js → variables.ts} +30 -32
- package/core/serialization/workspaces.d.ts +28 -0
- package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
- package/core/shortcut_items.d.ts +61 -0
- package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
- package/core/shortcut_registry.d.ts +151 -0
- package/core/shortcut_registry.ts +355 -0
- package/core/sprites.d.ts +19 -0
- package/core/{sprites.js → sprites.ts} +4 -6
- package/core/theme/classic.d.ts +12 -0
- package/core/theme/{classic.js → classic.ts} +5 -7
- package/core/theme/themes.d.ts +8 -0
- package/core/theme/themes.ts +22 -0
- package/core/theme/zelos.d.ts +11 -0
- package/core/theme/{zelos.js → zelos.ts} +4 -7
- package/core/theme.d.ts +142 -0
- package/core/theme.ts +221 -0
- package/core/theme_manager.d.ts +81 -0
- package/core/theme_manager.ts +186 -0
- package/core/toolbox/category.d.ts +239 -0
- package/core/toolbox/category.ts +679 -0
- package/core/toolbox/collapsible_category.d.ts +91 -0
- package/core/toolbox/collapsible_category.ts +273 -0
- package/core/toolbox/separator.d.ts +39 -0
- package/core/toolbox/separator.ts +105 -0
- package/core/toolbox/toolbox.d.ts +352 -0
- package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
- package/core/toolbox/toolbox_item.d.ts +85 -0
- package/core/toolbox/toolbox_item.ts +147 -0
- package/core/tooltip.d.ts +126 -0
- package/core/{tooltip.js → tooltip.ts} +136 -214
- package/core/touch.d.ts +121 -0
- package/core/touch.ts +306 -0
- package/core/touch_gesture.d.ts +115 -0
- package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
- package/core/trashcan.d.ts +195 -0
- package/core/{trashcan.js → trashcan.ts} +226 -312
- package/core/utils/aria.d.ts +67 -0
- package/core/utils/{aria.js → aria.ts} +47 -61
- package/core/utils/array.d.ts +14 -0
- package/core/utils/{array.js → array.ts} +10 -12
- package/core/utils/colour.d.ts +103 -0
- package/core/utils/{colour.js → colour.ts} +60 -72
- package/core/utils/coordinate.d.ts +72 -0
- package/core/utils/coordinate.ts +124 -0
- package/core/utils/deprecation.d.ts +17 -0
- package/core/utils/{deprecation.js → deprecation.ts} +11 -11
- package/core/utils/dom.d.ts +165 -0
- package/core/utils/{dom.js → dom.ts} +125 -147
- package/core/utils/idgenerator.d.ts +25 -0
- package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
- package/core/utils/keycodes.d.ts +137 -0
- package/core/utils/keycodes.ts +169 -0
- package/core/utils/math.d.ts +30 -0
- package/core/utils/{math.js → math.ts} +17 -19
- package/core/utils/metrics.d.ts +64 -0
- package/core/utils/metrics.ts +97 -0
- package/core/utils/object.d.ts +35 -0
- package/core/utils/{object.js → object.ts} +30 -26
- package/core/utils/parsing.d.ts +50 -0
- package/core/utils/{parsing.js → parsing.ts} +50 -50
- package/core/utils/rect.d.ts +38 -0
- package/core/utils/{rect.js → rect.ts} +18 -31
- package/core/utils/sentinel.d.ts +11 -0
- package/core/utils/{sentinel.js → sentinel.ts} +3 -5
- package/core/utils/size.d.ts +27 -0
- package/core/utils/{size.js → size.ts} +12 -26
- package/core/utils/string.d.ts +55 -0
- package/core/utils/{string.js → string.ts} +64 -61
- package/core/utils/style.d.ts +127 -0
- package/core/utils/{style.js → style.ts} +102 -92
- package/core/utils/svg.d.ts +68 -0
- package/core/utils/svg.ts +88 -0
- package/core/utils/svg_math.d.ts +70 -0
- package/core/utils/{svg_math.js → svg_math.ts} +72 -71
- package/core/utils/svg_paths.d.ts +101 -0
- package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
- package/core/utils/toolbox.d.ts +193 -0
- package/core/utils/toolbox.ts +433 -0
- package/core/utils/useragent.d.ts +33 -0
- package/core/utils/useragent.ts +135 -0
- package/core/utils/xml.d.ts +52 -0
- package/core/utils/{xml.js → xml.ts} +26 -36
- package/core/utils.d.ts +217 -0
- package/core/utils.ts +428 -0
- package/core/variable_map.d.ts +141 -0
- package/core/{variable_map.js → variable_map.ts} +131 -149
- package/core/variable_model.d.ts +40 -0
- package/core/variable_model.ts +82 -0
- package/core/variables.d.ts +181 -0
- package/core/{variables.js → variables.ts} +206 -188
- package/core/variables_dynamic.d.ts +38 -0
- package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
- package/core/warning.d.ts +50 -0
- package/core/{warning.js → warning.ts} +52 -66
- package/core/widgetdiv.d.ts +69 -0
- package/core/widgetdiv.ts +257 -0
- package/core/workspace.d.ts +386 -0
- package/core/workspace.ts +801 -0
- package/core/workspace_audio.d.ts +47 -0
- package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
- package/core/workspace_comment.d.ts +170 -0
- package/core/workspace_comment.ts +398 -0
- package/core/workspace_comment_svg.d.ts +329 -0
- package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
- package/core/workspace_drag_surface_svg.d.ts +68 -0
- package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
- package/core/workspace_dragger.d.ts +48 -0
- package/core/workspace_dragger.ts +104 -0
- package/core/workspace_svg.d.ts +920 -0
- package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
- package/core/xml.d.ts +117 -0
- package/core/{xml.js → xml.ts} +306 -326
- package/core/zoom_controls.d.ts +130 -0
- package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
- package/core.d.ts +1 -3
- package/core.js +1 -2
- package/dart.d.ts +0 -3
- package/dart_compressed.js +387 -99
- package/dart_compressed.js.map +1 -1
- package/generators/dart/all.js +2 -0
- package/generators/dart/colour.js +1 -1
- package/generators/dart/lists.js +1 -1
- package/generators/dart/logic.js +1 -1
- package/generators/dart/loops.js +1 -1
- package/generators/dart/math.js +1 -1
- package/generators/dart/procedures.js +1 -1
- package/generators/dart/text.js +1 -1
- package/generators/dart/variables.js +1 -1
- package/generators/dart/variables_dynamic.js +1 -1
- package/generators/dart.js +1 -2
- package/generators/javascript/all.js +2 -0
- package/generators/javascript/colour.js +1 -1
- package/generators/javascript/lists.js +1 -1
- package/generators/javascript/logic.js +1 -1
- package/generators/javascript/loops.js +1 -1
- package/generators/javascript/math.js +4 -4
- package/generators/javascript/procedures.js +1 -1
- package/generators/javascript/text.js +2 -2
- package/generators/javascript/variables.js +1 -1
- package/generators/javascript/variables_dynamic.js +1 -1
- package/generators/javascript.js +1 -3
- package/generators/lua/all.js +2 -0
- package/generators/lua/colour.js +1 -1
- package/generators/lua/lists.js +1 -1
- package/generators/lua/logic.js +1 -1
- package/generators/lua/loops.js +1 -1
- package/generators/lua/math.js +1 -1
- package/generators/lua/procedures.js +1 -1
- package/generators/lua/text.js +1 -1
- package/generators/lua/variables.js +1 -1
- package/generators/lua/variables_dynamic.js +1 -1
- package/generators/lua.js +1 -2
- package/generators/php/all.js +2 -0
- package/generators/php/colour.js +1 -1
- package/generators/php/lists.js +1 -2
- package/generators/php/logic.js +1 -1
- package/generators/php/loops.js +1 -1
- package/generators/php/math.js +1 -1
- package/generators/php/procedures.js +1 -1
- package/generators/php/text.js +1 -1
- package/generators/php/variables.js +1 -1
- package/generators/php/variables_dynamic.js +1 -1
- package/generators/php.js +1 -2
- package/generators/python/all.js +2 -0
- package/generators/python/colour.js +3 -3
- package/generators/python/lists.js +1 -1
- package/generators/python/logic.js +1 -1
- package/generators/python/loops.js +4 -7
- package/generators/python/math.js +1 -1
- package/generators/python/procedures.js +1 -1
- package/generators/python/text.js +1 -1
- package/generators/python/variables.js +1 -1
- package/generators/python/variables_dynamic.js +1 -1
- package/generators/python.js +1 -2
- package/index.d.ts +2 -8
- package/javascript.d.ts +0 -3
- package/javascript_compressed.js +314 -104
- package/javascript_compressed.js.map +1 -1
- package/lua.d.ts +0 -3
- package/lua_compressed.js +399 -81
- package/lua_compressed.js.map +1 -1
- package/package.json +5 -5
- package/php.d.ts +0 -3
- package/php_compressed.js +322 -93
- package/php_compressed.js.map +1 -1
- package/python.d.ts +0 -3
- package/python_compressed.js +237 -90
- package/python_compressed.js.map +1 -1
- package/blockly.d.ts +0 -26127
- package/core/blockly_options.js +0 -28
- package/core/bubble_dragger.js +0 -298
- package/core/clipboard.js +0 -80
- package/core/component_manager.js +0 -263
- package/core/contextmenu_items.js +0 -651
- package/core/contextmenu_registry.js +0 -178
- package/core/delete_area.js +0 -87
- package/core/dialog.js +0 -107
- package/core/drag_target.js +0 -98
- package/core/events/events.js +0 -147
- package/core/events/events_abstract.js +0 -133
- package/core/events/events_block_base.js +0 -70
- package/core/events/events_block_drag.js +0 -89
- package/core/events/events_bubble_open.js +0 -90
- package/core/events/events_comment_base.js +0 -121
- package/core/events/events_marker_move.js +0 -110
- package/core/events/events_selected.js +0 -83
- package/core/events/events_toolbox_item_select.js +0 -84
- package/core/events/events_trashcan_open.js +0 -73
- package/core/events/events_var_base.js +0 -70
- package/core/events/events_viewport.js +0 -107
- package/core/events/workspace_events.js +0 -93
- package/core/field_angle.js +0 -591
- package/core/field_checkbox.js +0 -255
- package/core/field_colour.js +0 -717
- package/core/field_image.js +0 -304
- package/core/field_label.js +0 -149
- package/core/field_label_serializable.js +0 -80
- package/core/field_textinput.js +0 -619
- package/core/flyout_button.js +0 -356
- package/core/grid.js +0 -226
- package/core/icon.js +0 -225
- package/core/input.js +0 -335
- package/core/interfaces/i_ast_node_location_svg.js +0 -45
- package/core/interfaces/i_ast_node_location_with_block.js +0 -41
- package/core/interfaces/i_autohideable.js +0 -40
- package/core/interfaces/i_block_dragger.js +0 -66
- package/core/interfaces/i_bounded_element.js +0 -45
- package/core/interfaces/i_bubble.js +0 -95
- package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
- package/core/interfaces/i_connection_checker.js +0 -104
- package/core/interfaces/i_contextmenu.js +0 -32
- package/core/interfaces/i_copyable.js +0 -49
- package/core/interfaces/i_delete_area.js +0 -50
- package/core/interfaces/i_drag_target.js +0 -88
- package/core/interfaces/i_flyout.js +0 -201
- package/core/interfaces/i_keyboard_accessible.js +0 -38
- package/core/interfaces/i_metrics_manager.js +0 -154
- package/core/interfaces/i_positionable.js +0 -51
- package/core/interfaces/i_selectable.js +0 -51
- package/core/interfaces/i_selectable_toolbox_item.js +0 -73
- package/core/interfaces/i_serializer.js +0 -77
- package/core/interfaces/i_styleable.js +0 -39
- package/core/interfaces/i_toolbox.js +0 -142
- package/core/interfaces/i_toolbox_item.js +0 -85
- package/core/marker_manager.js +0 -213
- package/core/menuitem.js +0 -292
- package/core/names.js +0 -293
- package/core/registry.js +0 -384
- package/core/renderers/common/block_rendering.js +0 -170
- package/core/renderers/common/constants.js +0 -1250
- package/core/renderers/common/i_path_object.js +0 -162
- package/core/renderers/common/marker_svg.js +0 -721
- package/core/renderers/common/path_object.js +0 -283
- package/core/renderers/common/renderer.js +0 -305
- package/core/renderers/geras/constants.js +0 -73
- package/core/renderers/geras/geras.js +0 -36
- package/core/renderers/geras/measurables/inline_input.js +0 -58
- package/core/renderers/geras/measurables/statement_input.js +0 -57
- package/core/renderers/geras/renderer.js +0 -149
- package/core/renderers/measurables/base.js +0 -64
- package/core/renderers/measurables/bottom_row.js +0 -138
- package/core/renderers/measurables/connection.js +0 -56
- package/core/renderers/measurables/external_value_input.js +0 -70
- package/core/renderers/measurables/field.js +0 -71
- package/core/renderers/measurables/in_row_spacer.js +0 -47
- package/core/renderers/measurables/input_connection.js +0 -75
- package/core/renderers/measurables/next_connection.js +0 -50
- package/core/renderers/measurables/output_connection.js +0 -61
- package/core/renderers/measurables/previous_connection.js +0 -50
- package/core/renderers/measurables/round_corner.js +0 -52
- package/core/renderers/measurables/row.js +0 -247
- package/core/renderers/measurables/spacer_row.js +0 -69
- package/core/renderers/measurables/square_corner.js +0 -50
- package/core/renderers/measurables/top_row.js +0 -143
- package/core/renderers/measurables/types.js +0 -353
- package/core/renderers/minimalist/drawer.js +0 -42
- package/core/renderers/minimalist/info.js +0 -54
- package/core/renderers/minimalist/minimalist.js +0 -26
- package/core/renderers/minimalist/renderer.js +0 -80
- package/core/renderers/thrasos/renderer.js +0 -53
- package/core/renderers/thrasos/thrasos.js +0 -22
- package/core/renderers/zelos/marker_svg.js +0 -179
- package/core/renderers/zelos/measurables/bottom_row.js +0 -66
- package/core/renderers/zelos/measurables/row_elements.js +0 -46
- package/core/renderers/zelos/path_object.js +0 -247
- package/core/renderers/zelos/renderer.js +0 -147
- package/core/renderers/zelos/zelos.js +0 -38
- package/core/serialization/exceptions.js +0 -144
- package/core/shortcut_registry.js +0 -366
- package/core/theme/themes.js +0 -23
- package/core/theme.js +0 -228
- package/core/theme_manager.js +0 -211
- package/core/toolbox/category.js +0 -751
- package/core/toolbox/collapsible_category.js +0 -311
- package/core/toolbox/separator.js +0 -133
- package/core/toolbox/toolbox_item.js +0 -173
- package/core/touch.js +0 -285
- package/core/utils/coordinate.js +0 -138
- package/core/utils/global.js +0 -41
- package/core/utils/keycodes.js +0 -172
- package/core/utils/metrics.js +0 -154
- package/core/utils/svg.js +0 -186
- package/core/utils/toolbox.js +0 -459
- package/core/utils/useragent.js +0 -197
- package/core/utils.js +0 -383
- package/core/variable_model.js +0 -96
- package/core/widgetdiv.js +0 -290
- package/core/workspace.js +0 -836
- package/core/workspace_comment.js +0 -400
- package/core/workspace_dragger.js +0 -115
|
@@ -7,51 +7,50 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview Horizontal flyout tray containing blocks which may be created.
|
|
9
9
|
*/
|
|
10
|
-
'use strict';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Horizontal flyout tray containing blocks which may be created.
|
|
14
13
|
* @class
|
|
15
14
|
*/
|
|
16
|
-
goog
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
15
|
+
import * as goog from '../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.HorizontalFlyout');
|
|
17
|
+
|
|
18
|
+
import * as browserEvents from './browser_events.js';
|
|
19
|
+
import * as dropDownDiv from './dropdowndiv.js';
|
|
20
|
+
import {Flyout, FlyoutItem} from './flyout_base.js';
|
|
21
|
+
import type {FlyoutButton} from './flyout_button.js';
|
|
22
|
+
import type {Options} from './options.js';
|
|
23
|
+
import * as registry from './registry.js';
|
|
24
|
+
import {Scrollbar} from './scrollbar.js';
|
|
25
|
+
import type {Coordinate} from './utils/coordinate.js';
|
|
26
|
+
import {Rect} from './utils/rect.js';
|
|
27
|
+
import * as toolbox from './utils/toolbox.js';
|
|
28
|
+
import * as WidgetDiv from './widgetdiv.js';
|
|
30
29
|
|
|
31
30
|
|
|
32
31
|
/**
|
|
33
32
|
* Class for a flyout.
|
|
34
|
-
* @extends {Flyout}
|
|
35
33
|
* @alias Blockly.HorizontalFlyout
|
|
36
34
|
*/
|
|
37
|
-
class HorizontalFlyout extends Flyout {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
35
|
+
export class HorizontalFlyout extends Flyout {
|
|
36
|
+
override horizontalLayout = true;
|
|
37
|
+
// Record the width for workspace metrics.
|
|
38
|
+
override width_: AnyDuringMigration;
|
|
39
|
+
|
|
40
|
+
// Record the height for workspace metrics and .position.
|
|
41
|
+
override height_: AnyDuringMigration;
|
|
42
|
+
|
|
43
|
+
/** @param workspaceOptions Dictionary of options for the workspace. */
|
|
44
|
+
constructor(workspaceOptions: Options) {
|
|
43
45
|
super(workspaceOptions);
|
|
44
|
-
this.horizontalLayout = true;
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
/**
|
|
48
49
|
* Sets the translation of the flyout to match the scrollbars.
|
|
49
|
-
* @param
|
|
50
|
-
*
|
|
51
|
-
* x property.
|
|
52
|
-
* @protected
|
|
50
|
+
* @param xyRatio Contains a y property which is a float between 0 and 1
|
|
51
|
+
* specifying the degree of scrolling and a similar x property.
|
|
53
52
|
*/
|
|
54
|
-
setMetrics_(xyRatio) {
|
|
53
|
+
protected override setMetrics_(xyRatio: {x: number, y: number}) {
|
|
55
54
|
if (!this.isVisible()) {
|
|
56
55
|
return;
|
|
57
56
|
}
|
|
@@ -74,22 +73,22 @@ class HorizontalFlyout extends Flyout {
|
|
|
74
73
|
|
|
75
74
|
/**
|
|
76
75
|
* Calculates the x coordinate for the flyout position.
|
|
77
|
-
* @return
|
|
76
|
+
* @return X coordinate.
|
|
78
77
|
*/
|
|
79
|
-
getX() {
|
|
78
|
+
override getX(): number {
|
|
80
79
|
// X is always 0 since this is a horizontal flyout.
|
|
81
80
|
return 0;
|
|
82
81
|
}
|
|
83
82
|
|
|
84
83
|
/**
|
|
85
84
|
* Calculates the y coordinate for the flyout position.
|
|
86
|
-
* @return
|
|
85
|
+
* @return Y coordinate.
|
|
87
86
|
*/
|
|
88
|
-
getY() {
|
|
87
|
+
override getY(): number {
|
|
89
88
|
if (!this.isVisible()) {
|
|
90
89
|
return 0;
|
|
91
90
|
}
|
|
92
|
-
const metricsManager = this.targetWorkspace
|
|
91
|
+
const metricsManager = this.targetWorkspace!.getMetricsManager();
|
|
93
92
|
const absoluteMetrics = metricsManager.getAbsoluteMetrics();
|
|
94
93
|
const viewMetrics = metricsManager.getViewMetrics();
|
|
95
94
|
const toolboxMetrics = metricsManager.getToolboxMetrics();
|
|
@@ -97,15 +96,16 @@ class HorizontalFlyout extends Flyout {
|
|
|
97
96
|
let y = 0;
|
|
98
97
|
const atTop = this.toolboxPosition_ === toolbox.Position.TOP;
|
|
99
98
|
// If this flyout is not the trashcan flyout (e.g. toolbox or mutator).
|
|
100
|
-
|
|
99
|
+
// Trashcan flyout is opposite the main flyout.
|
|
100
|
+
if (this.targetWorkspace!.toolboxPosition === this.toolboxPosition_) {
|
|
101
101
|
// If there is a category toolbox.
|
|
102
|
-
|
|
102
|
+
// Simple (flyout-only) toolbox.
|
|
103
|
+
if (this.targetWorkspace!.getToolbox()) {
|
|
103
104
|
if (atTop) {
|
|
104
105
|
y = toolboxMetrics.height;
|
|
105
106
|
} else {
|
|
106
107
|
y = viewMetrics.height - this.height_;
|
|
107
108
|
}
|
|
108
|
-
// Simple (flyout-only) toolbox.
|
|
109
109
|
} else {
|
|
110
110
|
if (atTop) {
|
|
111
111
|
y = 0;
|
|
@@ -114,7 +114,6 @@ class HorizontalFlyout extends Flyout {
|
|
|
114
114
|
y = viewMetrics.height;
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
// Trashcan flyout is opposite the main flyout.
|
|
118
117
|
} else {
|
|
119
118
|
if (atTop) {
|
|
120
119
|
y = 0;
|
|
@@ -130,17 +129,13 @@ class HorizontalFlyout extends Flyout {
|
|
|
130
129
|
return y;
|
|
131
130
|
}
|
|
132
131
|
|
|
133
|
-
/**
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
position() {
|
|
137
|
-
if (!this.isVisible() || !this.targetWorkspace.isVisible()) {
|
|
132
|
+
/** Move the flyout to the edge of the workspace. */
|
|
133
|
+
override position() {
|
|
134
|
+
if (!this.isVisible() || !this.targetWorkspace!.isVisible()) {
|
|
138
135
|
return;
|
|
139
136
|
}
|
|
140
|
-
const metricsManager = this.targetWorkspace
|
|
137
|
+
const metricsManager = this.targetWorkspace!.getMetricsManager();
|
|
141
138
|
const targetWorkspaceViewMetrics = metricsManager.getViewMetrics();
|
|
142
|
-
|
|
143
|
-
// Record the width for workspace metrics.
|
|
144
139
|
this.width_ = targetWorkspaceViewMetrics.width;
|
|
145
140
|
|
|
146
141
|
const edgeWidth = targetWorkspaceViewMetrics.width - 2 * this.CORNER_RADIUS;
|
|
@@ -155,16 +150,13 @@ class HorizontalFlyout extends Flyout {
|
|
|
155
150
|
|
|
156
151
|
/**
|
|
157
152
|
* Create and set the path for the visible boundaries of the flyout.
|
|
158
|
-
* @param
|
|
159
|
-
*
|
|
160
|
-
* @param {number} height The height of the flyout, not including
|
|
161
|
-
* rounded corners.
|
|
162
|
-
* @private
|
|
153
|
+
* @param width The width of the flyout, not including the rounded corners.
|
|
154
|
+
* @param height The height of the flyout, not including rounded corners.
|
|
163
155
|
*/
|
|
164
|
-
setBackgroundPath_(width, height) {
|
|
156
|
+
private setBackgroundPath_(width: number, height: number) {
|
|
165
157
|
const atTop = this.toolboxPosition_ === toolbox.Position.TOP;
|
|
166
158
|
// Start at top left.
|
|
167
|
-
const path = ['M 0,' + (atTop ? 0 : this.CORNER_RADIUS)];
|
|
159
|
+
const path: (string|number)[] = ['M 0,' + (atTop ? 0 : this.CORNER_RADIUS)];
|
|
168
160
|
|
|
169
161
|
if (atTop) {
|
|
170
162
|
// Top.
|
|
@@ -197,22 +189,19 @@ class HorizontalFlyout extends Flyout {
|
|
|
197
189
|
// Left.
|
|
198
190
|
path.push('z');
|
|
199
191
|
}
|
|
200
|
-
this.svgBackground_
|
|
192
|
+
this.svgBackground_!.setAttribute('d', path.join(' '));
|
|
201
193
|
}
|
|
202
194
|
|
|
203
|
-
/**
|
|
204
|
-
|
|
205
|
-
*/
|
|
206
|
-
scrollToStart() {
|
|
195
|
+
/** Scroll the flyout to the top. */
|
|
196
|
+
override scrollToStart() {
|
|
207
197
|
this.workspace_.scrollbar.setX(this.RTL ? Infinity : 0);
|
|
208
198
|
}
|
|
209
199
|
|
|
210
200
|
/**
|
|
211
201
|
* Scroll the flyout.
|
|
212
|
-
* @param
|
|
213
|
-
* @protected
|
|
202
|
+
* @param e Mouse wheel scroll event.
|
|
214
203
|
*/
|
|
215
|
-
wheel_(e) {
|
|
204
|
+
protected override wheel_(e: WheelEvent) {
|
|
216
205
|
const scrollDelta = browserEvents.getScrollDeltaPixels(e);
|
|
217
206
|
const delta = scrollDelta.x || scrollDelta.y;
|
|
218
207
|
|
|
@@ -221,14 +210,13 @@ class HorizontalFlyout extends Flyout {
|
|
|
221
210
|
const scrollMetrics = metricsManager.getScrollMetrics();
|
|
222
211
|
const viewMetrics = metricsManager.getViewMetrics();
|
|
223
212
|
|
|
224
|
-
const pos =
|
|
213
|
+
const pos = viewMetrics.left - scrollMetrics.left + delta;
|
|
225
214
|
this.workspace_.scrollbar.setX(pos);
|
|
226
215
|
// When the flyout moves from a wheel event, hide WidgetDiv and
|
|
227
216
|
// dropDownDiv.
|
|
228
217
|
WidgetDiv.hide();
|
|
229
218
|
dropDownDiv.hideWithoutAnimation();
|
|
230
219
|
}
|
|
231
|
-
|
|
232
220
|
// Don't scroll the page.
|
|
233
221
|
e.preventDefault();
|
|
234
222
|
// Don't propagate mousewheel event (zooming).
|
|
@@ -237,12 +225,11 @@ class HorizontalFlyout extends Flyout {
|
|
|
237
225
|
|
|
238
226
|
/**
|
|
239
227
|
* Lay out the blocks in the flyout.
|
|
240
|
-
* @param
|
|
241
|
-
* @param
|
|
242
|
-
* @protected
|
|
228
|
+
* @param contents The blocks and buttons to lay out.
|
|
229
|
+
* @param gaps The visible gaps between blocks.
|
|
243
230
|
*/
|
|
244
|
-
layout_(contents, gaps) {
|
|
245
|
-
this.workspace_.scale = this.targetWorkspace
|
|
231
|
+
protected override layout_(contents: FlyoutItem[], gaps: number[]) {
|
|
232
|
+
this.workspace_.scale = this.targetWorkspace!.scale;
|
|
246
233
|
const margin = this.MARGIN;
|
|
247
234
|
let cursorX = margin + this.tabWidth_;
|
|
248
235
|
const cursorY = margin;
|
|
@@ -250,37 +237,42 @@ class HorizontalFlyout extends Flyout {
|
|
|
250
237
|
contents = contents.reverse();
|
|
251
238
|
}
|
|
252
239
|
|
|
253
|
-
for (let i = 0, item;
|
|
240
|
+
for (let i = 0, item; item = contents[i]; i++) {
|
|
254
241
|
if (item.type === 'block') {
|
|
255
242
|
const block = item.block;
|
|
256
|
-
const allBlocks = block
|
|
257
|
-
for (let j = 0, child;
|
|
243
|
+
const allBlocks = block!.getDescendants(false);
|
|
244
|
+
for (let j = 0, child; child = allBlocks[j]; j++) {
|
|
258
245
|
// Mark blocks as being inside a flyout. This is used to detect and
|
|
259
246
|
// prevent the closure of the flyout if the user right-clicks on such
|
|
260
247
|
// a block.
|
|
261
248
|
child.isInFlyout = true;
|
|
262
249
|
}
|
|
263
|
-
block
|
|
264
|
-
const root = block
|
|
265
|
-
const blockHW = block
|
|
266
|
-
|
|
250
|
+
block!.render();
|
|
251
|
+
const root = block!.getSvgRoot();
|
|
252
|
+
const blockHW = block!.getHeightWidth();
|
|
267
253
|
// Figure out where to place the block.
|
|
268
|
-
const tab = block
|
|
254
|
+
const tab = block!.outputConnection ? this.tabWidth_ : 0;
|
|
269
255
|
let moveX;
|
|
270
256
|
if (this.RTL) {
|
|
271
257
|
moveX = cursorX + blockHW.width;
|
|
272
258
|
} else {
|
|
273
259
|
moveX = cursorX - tab;
|
|
274
260
|
}
|
|
275
|
-
block
|
|
261
|
+
block!.moveBy(moveX, cursorY);
|
|
276
262
|
|
|
277
|
-
|
|
278
|
-
|
|
263
|
+
// AnyDuringMigration because: Argument of type 'BlockSvg | undefined'
|
|
264
|
+
// is not assignable to parameter of type 'BlockSvg'.
|
|
265
|
+
const rect = this.createRect_(
|
|
266
|
+
block as AnyDuringMigration, moveX, cursorY, blockHW, i);
|
|
267
|
+
cursorX += blockHW.width + gaps[i];
|
|
279
268
|
|
|
280
|
-
|
|
269
|
+
// AnyDuringMigration because: Argument of type 'BlockSvg | undefined'
|
|
270
|
+
// is not assignable to parameter of type 'BlockSvg'.
|
|
271
|
+
this.addBlockListeners_(root, block as AnyDuringMigration, rect);
|
|
281
272
|
} else if (item.type === 'button') {
|
|
282
|
-
|
|
283
|
-
|
|
273
|
+
const button = item.button as FlyoutButton;
|
|
274
|
+
this.initFlyoutButton_(button, cursorX, cursorY);
|
|
275
|
+
cursorX += button.width + gaps[i];
|
|
284
276
|
}
|
|
285
277
|
}
|
|
286
278
|
}
|
|
@@ -289,12 +281,12 @@ class HorizontalFlyout extends Flyout {
|
|
|
289
281
|
* Determine if a drag delta is toward the workspace, based on the position
|
|
290
282
|
* and orientation of the flyout. This is used in determineDragIntention_ to
|
|
291
283
|
* determine if a new block should be created or if the flyout should scroll.
|
|
292
|
-
* @param
|
|
293
|
-
*
|
|
294
|
-
* @return
|
|
295
|
-
* @
|
|
284
|
+
* @param currentDragDeltaXY How far the pointer has moved from the position
|
|
285
|
+
* at mouse down, in pixel units.
|
|
286
|
+
* @return True if the drag is toward the workspace.
|
|
287
|
+
* @internal
|
|
296
288
|
*/
|
|
297
|
-
isDragTowardWorkspace(currentDragDeltaXY) {
|
|
289
|
+
override isDragTowardWorkspace(currentDragDeltaXY: Coordinate): boolean {
|
|
298
290
|
const dx = currentDragDeltaXY.x;
|
|
299
291
|
const dy = currentDragDeltaXY.y;
|
|
300
292
|
// Direction goes from -180 to 180, with 0 toward the right and 90 on top.
|
|
@@ -302,8 +294,8 @@ class HorizontalFlyout extends Flyout {
|
|
|
302
294
|
|
|
303
295
|
const range = this.dragAngleRange_;
|
|
304
296
|
// Check for up or down dragging.
|
|
305
|
-
if (
|
|
306
|
-
|
|
297
|
+
if (dragDirection < 90 + range && dragDirection > 90 - range ||
|
|
298
|
+
dragDirection > -90 - range && dragDirection < -90 + range) {
|
|
307
299
|
return true;
|
|
308
300
|
}
|
|
309
301
|
return false;
|
|
@@ -312,10 +304,10 @@ class HorizontalFlyout extends Flyout {
|
|
|
312
304
|
/**
|
|
313
305
|
* Returns the bounding rectangle of the drag target area in pixel units
|
|
314
306
|
* relative to viewport.
|
|
315
|
-
* @return
|
|
316
|
-
*
|
|
307
|
+
* @return The component's bounding box. Null if drag target area should be
|
|
308
|
+
* ignored.
|
|
317
309
|
*/
|
|
318
|
-
getClientRect() {
|
|
310
|
+
override getClientRect(): Rect|null {
|
|
319
311
|
if (!this.svgGroup_ || this.autoClose || !this.isVisible()) {
|
|
320
312
|
// The bounding rectangle won't compute correctly if the flyout is closed
|
|
321
313
|
// and auto-close flyouts aren't valid drag targets (or delete areas).
|
|
@@ -341,17 +333,16 @@ class HorizontalFlyout extends Flyout {
|
|
|
341
333
|
/**
|
|
342
334
|
* Compute height of flyout. toolbox.Position mat under each block.
|
|
343
335
|
* For RTL: Lay out the blocks right-aligned.
|
|
344
|
-
* @protected
|
|
345
336
|
*/
|
|
346
|
-
reflowInternal_() {
|
|
337
|
+
protected override reflowInternal_() {
|
|
347
338
|
this.workspace_.scale = this.getFlyoutScale();
|
|
348
339
|
let flyoutHeight = 0;
|
|
349
340
|
const blocks = this.workspace_.getTopBlocks(false);
|
|
350
|
-
for (let i = 0, block;
|
|
341
|
+
for (let i = 0, block; block = blocks[i]; i++) {
|
|
351
342
|
flyoutHeight = Math.max(flyoutHeight, block.getHeightWidth().height);
|
|
352
343
|
}
|
|
353
344
|
const buttons = this.buttons_;
|
|
354
|
-
for (let i = 0, button;
|
|
345
|
+
for (let i = 0, button; button = buttons[i]; i++) {
|
|
355
346
|
flyoutHeight = Math.max(flyoutHeight, button.height);
|
|
356
347
|
}
|
|
357
348
|
flyoutHeight += this.MARGIN * 1.5;
|
|
@@ -359,27 +350,28 @@ class HorizontalFlyout extends Flyout {
|
|
|
359
350
|
flyoutHeight += Scrollbar.scrollbarThickness;
|
|
360
351
|
|
|
361
352
|
if (this.height_ !== flyoutHeight) {
|
|
362
|
-
for (let i = 0, block;
|
|
353
|
+
for (let i = 0, block; block = blocks[i]; i++) {
|
|
363
354
|
if (this.rectMap_.has(block)) {
|
|
364
|
-
|
|
355
|
+
// AnyDuringMigration because: Argument of type 'SVGElement |
|
|
356
|
+
// undefined' is not assignable to parameter of type 'SVGElement'.
|
|
357
|
+
this.moveRectToBlock_(
|
|
358
|
+
this.rectMap_.get(block) as AnyDuringMigration, block);
|
|
365
359
|
}
|
|
366
360
|
}
|
|
367
361
|
|
|
368
|
-
if (this.targetWorkspace
|
|
362
|
+
if (this.targetWorkspace!.toolboxPosition === this.toolboxPosition_ &&
|
|
369
363
|
this.toolboxPosition_ === toolbox.Position.TOP &&
|
|
370
|
-
!this.targetWorkspace
|
|
364
|
+
!this.targetWorkspace!.getToolbox()) {
|
|
371
365
|
// This flyout is a simple toolbox. Reposition the workspace so that
|
|
372
366
|
// (0,0) is in the correct position relative to the new absolute edge
|
|
373
367
|
// (ie toolbox edge).
|
|
374
|
-
this.targetWorkspace
|
|
375
|
-
this.targetWorkspace
|
|
376
|
-
this.targetWorkspace
|
|
368
|
+
this.targetWorkspace!.translate(
|
|
369
|
+
this.targetWorkspace!.scrollX,
|
|
370
|
+
this.targetWorkspace!.scrollY + flyoutHeight);
|
|
377
371
|
}
|
|
378
|
-
|
|
379
|
-
// Record the height for workspace metrics and .position.
|
|
380
372
|
this.height_ = flyoutHeight;
|
|
381
373
|
this.position();
|
|
382
|
-
this.targetWorkspace
|
|
374
|
+
this.targetWorkspace!.recordDragTargets();
|
|
383
375
|
}
|
|
384
376
|
}
|
|
385
377
|
}
|
|
@@ -387,5 +379,3 @@ class HorizontalFlyout extends Flyout {
|
|
|
387
379
|
registry.register(
|
|
388
380
|
registry.Type.FLYOUTS_HORIZONTAL_TOOLBOX, registry.DEFAULT,
|
|
389
381
|
HorizontalFlyout);
|
|
390
|
-
|
|
391
|
-
exports.HorizontalFlyout = HorizontalFlyout;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2021 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { IFlyout } from './interfaces/i_flyout.js';
|
|
7
|
+
import { ContainerRegion, MetricsManager } from './metrics_manager.js';
|
|
8
|
+
import type { WorkspaceSvg } from './workspace_svg.js';
|
|
9
|
+
/**
|
|
10
|
+
* Calculates metrics for a flyout's workspace.
|
|
11
|
+
* The metrics are mainly used to size scrollbars for the flyout.
|
|
12
|
+
* @alias Blockly.FlyoutMetricsManager
|
|
13
|
+
*/
|
|
14
|
+
export declare class FlyoutMetricsManager extends MetricsManager {
|
|
15
|
+
/** The flyout that owns the workspace to calculate metrics for. */
|
|
16
|
+
protected flyout_: IFlyout;
|
|
17
|
+
/**
|
|
18
|
+
* @param workspace The flyout's workspace.
|
|
19
|
+
* @param flyout The flyout.
|
|
20
|
+
*/
|
|
21
|
+
constructor(workspace: WorkspaceSvg, flyout: IFlyout);
|
|
22
|
+
/**
|
|
23
|
+
* Gets the bounding box of the blocks on the flyout's workspace.
|
|
24
|
+
* This is in workspace coordinates.
|
|
25
|
+
* @return The bounding box of the blocks on the workspace.
|
|
26
|
+
*/
|
|
27
|
+
private getBoundingBox_;
|
|
28
|
+
getContentMetrics(opt_getWorkspaceCoordinates: boolean): {
|
|
29
|
+
height: number;
|
|
30
|
+
width: number;
|
|
31
|
+
top: number;
|
|
32
|
+
left: number;
|
|
33
|
+
};
|
|
34
|
+
getScrollMetrics(opt_getWorkspaceCoordinates: boolean, opt_viewMetrics: ContainerRegion, opt_contentMetrics: ContainerRegion): {
|
|
35
|
+
height: number;
|
|
36
|
+
width: number;
|
|
37
|
+
top: number;
|
|
38
|
+
left: number;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
@@ -7,51 +7,44 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview Calculates and reports flyout workspace metrics.
|
|
9
9
|
*/
|
|
10
|
-
'use strict';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Calculates and reports flyout workspace metrics.
|
|
14
13
|
* @class
|
|
15
14
|
*/
|
|
16
|
-
goog
|
|
15
|
+
import * as goog from '../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.FlyoutMetricsManager');
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
/* eslint-disable-next-line no-unused-vars */
|
|
22
|
-
const {WorkspaceSvg} = goog.requireType('Blockly.WorkspaceSvg');
|
|
18
|
+
import type {IFlyout} from './interfaces/i_flyout.js';
|
|
19
|
+
import {ContainerRegion, MetricsManager} from './metrics_manager.js';
|
|
20
|
+
import type {WorkspaceSvg} from './workspace_svg.js';
|
|
23
21
|
|
|
24
22
|
|
|
25
23
|
/**
|
|
26
24
|
* Calculates metrics for a flyout's workspace.
|
|
27
25
|
* The metrics are mainly used to size scrollbars for the flyout.
|
|
28
|
-
* @extends {MetricsManager}
|
|
29
26
|
* @alias Blockly.FlyoutMetricsManager
|
|
30
27
|
*/
|
|
31
|
-
class FlyoutMetricsManager extends MetricsManager {
|
|
28
|
+
export class FlyoutMetricsManager extends MetricsManager {
|
|
29
|
+
/** The flyout that owns the workspace to calculate metrics for. */
|
|
30
|
+
protected flyout_: IFlyout;
|
|
31
|
+
|
|
32
32
|
/**
|
|
33
|
-
* @param
|
|
34
|
-
* @param
|
|
33
|
+
* @param workspace The flyout's workspace.
|
|
34
|
+
* @param flyout The flyout.
|
|
35
35
|
*/
|
|
36
|
-
constructor(workspace, flyout) {
|
|
36
|
+
constructor(workspace: WorkspaceSvg, flyout: IFlyout) {
|
|
37
37
|
super(workspace);
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* The flyout that owns the workspace to calculate metrics for.
|
|
41
|
-
* @type {!IFlyout}
|
|
42
|
-
* @protected
|
|
43
|
-
*/
|
|
44
38
|
this.flyout_ = flyout;
|
|
45
39
|
}
|
|
46
40
|
|
|
47
41
|
/**
|
|
48
42
|
* Gets the bounding box of the blocks on the flyout's workspace.
|
|
49
43
|
* This is in workspace coordinates.
|
|
50
|
-
* @return
|
|
51
|
-
* The bounding box of the blocks on the workspace.
|
|
52
|
-
* @private
|
|
44
|
+
* @return The bounding box of the blocks on the workspace.
|
|
53
45
|
*/
|
|
54
|
-
getBoundingBox_()
|
|
46
|
+
private getBoundingBox_(): SVGRect|
|
|
47
|
+
{height: number, y: number, width: number, x: number} {
|
|
55
48
|
let blockBoundingBox;
|
|
56
49
|
try {
|
|
57
50
|
blockBoundingBox = this.workspace_.getCanvas().getBBox();
|
|
@@ -64,10 +57,7 @@ class FlyoutMetricsManager extends MetricsManager {
|
|
|
64
57
|
return blockBoundingBox;
|
|
65
58
|
}
|
|
66
59
|
|
|
67
|
-
|
|
68
|
-
* @override
|
|
69
|
-
*/
|
|
70
|
-
getContentMetrics(opt_getWorkspaceCoordinates) {
|
|
60
|
+
override getContentMetrics(opt_getWorkspaceCoordinates: boolean) {
|
|
71
61
|
// The bounding box is in workspace coordinates.
|
|
72
62
|
const blockBoundingBox = this.getBoundingBox_();
|
|
73
63
|
const scale = opt_getWorkspaceCoordinates ? 1 : this.workspace_.scale;
|
|
@@ -80,12 +70,12 @@ class FlyoutMetricsManager extends MetricsManager {
|
|
|
80
70
|
};
|
|
81
71
|
}
|
|
82
72
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
73
|
+
override getScrollMetrics(
|
|
74
|
+
opt_getWorkspaceCoordinates: boolean, opt_viewMetrics: ContainerRegion,
|
|
75
|
+
opt_contentMetrics: ContainerRegion) {
|
|
76
|
+
// AnyDuringMigration because: Expected 1 arguments, but got 0.
|
|
77
|
+
const contentMetrics =
|
|
78
|
+
opt_contentMetrics || (this.getContentMetrics as AnyDuringMigration)();
|
|
89
79
|
const margin = this.flyout_.MARGIN * this.workspace_.scale;
|
|
90
80
|
const scale = opt_getWorkspaceCoordinates ? this.workspace_.scale : 1;
|
|
91
81
|
|
|
@@ -102,5 +92,3 @@ class FlyoutMetricsManager extends MetricsManager {
|
|
|
102
92
|
};
|
|
103
93
|
}
|
|
104
94
|
}
|
|
105
|
-
|
|
106
|
-
exports.FlyoutMetricsManager = FlyoutMetricsManager;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2017 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Flyout, FlyoutItem } from './flyout_base.js';
|
|
7
|
+
import type { Options } from './options.js';
|
|
8
|
+
import type { Coordinate } from './utils/coordinate.js';
|
|
9
|
+
import { Rect } from './utils/rect.js';
|
|
10
|
+
/**
|
|
11
|
+
* Class for a flyout.
|
|
12
|
+
* @alias Blockly.VerticalFlyout
|
|
13
|
+
*/
|
|
14
|
+
export declare class VerticalFlyout extends Flyout {
|
|
15
|
+
/** The name of the vertical flyout in the registry. */
|
|
16
|
+
static registryName: string;
|
|
17
|
+
height_: any;
|
|
18
|
+
width_: any;
|
|
19
|
+
/** @param workspaceOptions Dictionary of options for the workspace. */
|
|
20
|
+
constructor(workspaceOptions: Options);
|
|
21
|
+
/**
|
|
22
|
+
* Sets the translation of the flyout to match the scrollbars.
|
|
23
|
+
* @param xyRatio Contains a y property which is a float between 0 and 1
|
|
24
|
+
* specifying the degree of scrolling and a similar x property.
|
|
25
|
+
*/
|
|
26
|
+
protected setMetrics_(xyRatio: {
|
|
27
|
+
x: number;
|
|
28
|
+
y: number;
|
|
29
|
+
}): void;
|
|
30
|
+
/**
|
|
31
|
+
* Calculates the x coordinate for the flyout position.
|
|
32
|
+
* @return X coordinate.
|
|
33
|
+
*/
|
|
34
|
+
getX(): number;
|
|
35
|
+
/**
|
|
36
|
+
* Calculates the y coordinate for the flyout position.
|
|
37
|
+
* @return Y coordinate.
|
|
38
|
+
*/
|
|
39
|
+
getY(): number;
|
|
40
|
+
/** Move the flyout to the edge of the workspace. */
|
|
41
|
+
position(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Create and set the path for the visible boundaries of the flyout.
|
|
44
|
+
* @param width The width of the flyout, not including the rounded corners.
|
|
45
|
+
* @param height The height of the flyout, not including rounded corners.
|
|
46
|
+
*/
|
|
47
|
+
private setBackgroundPath_;
|
|
48
|
+
/** Scroll the flyout to the top. */
|
|
49
|
+
scrollToStart(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Scroll the flyout.
|
|
52
|
+
* @param e Mouse wheel scroll event.
|
|
53
|
+
*/
|
|
54
|
+
protected wheel_(e: WheelEvent): void;
|
|
55
|
+
/**
|
|
56
|
+
* Lay out the blocks in the flyout.
|
|
57
|
+
* @param contents The blocks and buttons to lay out.
|
|
58
|
+
* @param gaps The visible gaps between blocks.
|
|
59
|
+
*/
|
|
60
|
+
protected layout_(contents: FlyoutItem[], gaps: number[]): void;
|
|
61
|
+
/**
|
|
62
|
+
* Determine if a drag delta is toward the workspace, based on the position
|
|
63
|
+
* and orientation of the flyout. This is used in determineDragIntention_ to
|
|
64
|
+
* determine if a new block should be created or if the flyout should scroll.
|
|
65
|
+
* @param currentDragDeltaXY How far the pointer has moved from the position
|
|
66
|
+
* at mouse down, in pixel units.
|
|
67
|
+
* @return True if the drag is toward the workspace.
|
|
68
|
+
* @internal
|
|
69
|
+
*/
|
|
70
|
+
isDragTowardWorkspace(currentDragDeltaXY: Coordinate): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Returns the bounding rectangle of the drag target area in pixel units
|
|
73
|
+
* relative to viewport.
|
|
74
|
+
* @return The component's bounding box. Null if drag target area should be
|
|
75
|
+
* ignored.
|
|
76
|
+
*/
|
|
77
|
+
getClientRect(): Rect | null;
|
|
78
|
+
/**
|
|
79
|
+
* Compute width of flyout. toolbox.Position mat under each block.
|
|
80
|
+
* For RTL: Lay out the blocks and buttons to be right-aligned.
|
|
81
|
+
*/
|
|
82
|
+
protected reflowInternal_(): void;
|
|
83
|
+
}
|