blockly 8.0.4-beta.0 → 8.0.5-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blockly.min.js +2421 -2688
- package/blockly_compressed.js +1499 -1994
- package/blockly_compressed.js.map +1 -1
- package/blocks/blocks.js +3 -2
- package/blocks/colour.js +3 -1
- package/blocks/lists.js +94 -22
- package/blocks/logic.js +14 -6
- package/blocks/loops.js +5 -3
- package/blocks/math.js +3 -1
- package/blocks/procedures.js +3 -1
- package/blocks/text.js +14 -6
- package/blocks/variables.js +3 -1
- package/blocks/variables_dynamic.js +3 -1
- package/blocks.d.ts +0 -2
- package/blocks_compressed.js +189 -171
- package/blocks_compressed.js.map +1 -1
- package/closure/goog/base.d.ts +1 -0
- package/closure/goog/base_minimal.d.ts +18 -0
- package/closure/goog/goog.d.ts +25 -0
- package/core/any_aliases.d.ts +1 -0
- package/core/any_aliases.ts +1 -0
- package/core/block.d.ts +779 -0
- package/core/{block.js → block.ts} +610 -719
- package/core/block_animations.d.ts +33 -0
- package/core/{block_animations.js → block_animations.ts} +75 -79
- package/core/block_drag_surface.d.ts +111 -0
- package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
- package/core/block_dragger.d.ts +143 -0
- package/core/{block_dragger.js → block_dragger.ts} +139 -176
- package/core/block_svg.d.ts +588 -0
- package/core/{block_svg.js → block_svg.ts} +494 -630
- package/core/blockly.d.ts +562 -0
- package/core/blockly.js +1 -1
- package/core/blockly.ts +749 -0
- package/core/blockly_options.d.ts +69 -0
- package/core/blockly_options.ts +81 -0
- package/core/blocks.d.ts +17 -0
- package/core/{blocks.js → blocks.ts} +4 -8
- package/core/browser_events.d.ts +85 -0
- package/core/{browser_events.js → browser_events.ts} +98 -93
- package/core/bubble.d.ts +279 -0
- package/core/{bubble.js → bubble.ts} +277 -370
- package/core/bubble_dragger.d.ts +73 -0
- package/core/bubble_dragger.ts +229 -0
- package/core/bump_objects.d.ts +34 -0
- package/core/{bump_objects.js → bump_objects.ts} +54 -52
- package/core/clipboard.d.ts +42 -0
- package/core/clipboard.ts +91 -0
- package/core/comment.d.ts +113 -0
- package/core/{comment.js → comment.ts} +135 -185
- package/core/common.d.ts +129 -0
- package/core/{common.js → common.ts} +105 -82
- package/core/component_manager.d.ts +91 -0
- package/core/component_manager.ts +211 -0
- package/core/config.d.ts +23 -0
- package/core/{config.js → config.ts} +12 -19
- package/core/connection.d.ts +232 -0
- package/core/{connection.js → connection.ts} +187 -237
- package/core/connection_checker.d.ts +78 -0
- package/core/{connection_checker.js → connection_checker.ts} +66 -77
- package/core/connection_db.d.ts +91 -0
- package/core/{connection_db.js → connection_db.ts} +62 -87
- package/core/connection_type.d.ts +15 -0
- package/core/{connection_type.js → connection_type.ts} +8 -12
- package/core/constants.d.ts +15 -0
- package/core/{constants.js → constants.ts} +4 -8
- package/core/contextmenu.d.ts +80 -0
- package/core/{contextmenu.js → contextmenu.ts} +118 -153
- package/core/contextmenu_items.d.ts +77 -0
- package/core/contextmenu_items.ts +576 -0
- package/core/contextmenu_registry.d.ts +105 -0
- package/core/contextmenu_registry.ts +179 -0
- package/core/css.d.ts +24 -0
- package/core/{css.js → css.ts} +16 -24
- package/core/delete_area.d.ts +47 -0
- package/core/delete_area.ts +82 -0
- package/core/dialog.d.ts +61 -0
- package/core/dialog.ts +127 -0
- package/core/drag_target.d.ts +63 -0
- package/core/drag_target.ts +94 -0
- package/core/dropdowndiv.d.ts +155 -0
- package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
- package/core/events/events.d.ts +102 -0
- package/core/events/events.ts +123 -0
- package/core/events/events_abstract.d.ts +51 -0
- package/core/events/events_abstract.ts +112 -0
- package/core/events/events_block_base.d.ts +31 -0
- package/core/events/events_block_base.ts +65 -0
- package/core/events/events_block_change.d.ts +55 -0
- package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
- package/core/events/events_block_create.d.ts +35 -0
- package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
- package/core/events/events_block_delete.d.ts +36 -0
- package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
- package/core/events/events_block_drag.d.ts +36 -0
- package/core/events/events_block_drag.ts +82 -0
- package/core/events/events_block_move.d.ts +51 -0
- package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
- package/core/events/events_bubble_open.d.ts +35 -0
- package/core/events/events_bubble_open.ts +82 -0
- package/core/events/events_click.d.ts +36 -0
- package/core/events/{events_click.js → events_click.ts} +27 -30
- package/core/events/events_comment_base.d.ts +39 -0
- package/core/events/events_comment_base.ts +107 -0
- package/core/events/events_comment_change.d.ts +43 -0
- package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
- package/core/events/events_comment_create.d.ts +35 -0
- package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
- package/core/events/events_comment_delete.d.ts +35 -0
- package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
- package/core/events/events_comment_move.d.ts +55 -0
- package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
- package/core/events/events_marker_move.d.ts +40 -0
- package/core/events/events_marker_move.ts +99 -0
- package/core/events/events_selected.d.ts +34 -0
- package/core/events/events_selected.ts +78 -0
- package/core/events/events_theme_change.d.ts +30 -0
- package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
- package/core/events/events_toolbox_item_select.d.ts +34 -0
- package/core/events/events_toolbox_item_select.ts +79 -0
- package/core/events/events_trashcan_open.d.ts +31 -0
- package/core/events/events_trashcan_open.ts +68 -0
- package/core/events/events_ui.d.ts +37 -0
- package/core/events/{events_ui.js → events_ui.ts} +27 -26
- package/core/events/events_ui_base.d.ts +26 -0
- package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
- package/core/events/events_var_base.d.ts +31 -0
- package/core/events/events_var_base.ts +65 -0
- package/core/events/events_var_create.d.ts +35 -0
- package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
- package/core/events/events_var_delete.d.ts +35 -0
- package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
- package/core/events/events_var_rename.d.ts +36 -0
- package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
- package/core/events/events_viewport.d.ts +39 -0
- package/core/events/events_viewport.ts +100 -0
- package/core/events/utils.d.ts +272 -0
- package/core/events/{utils.js → utils.ts} +148 -219
- package/core/events/workspace_events.d.ts +36 -0
- package/core/events/workspace_events.ts +86 -0
- package/core/extensions.d.ts +107 -0
- package/core/{extensions.js → extensions.ts} +153 -172
- package/core/field.d.ts +534 -0
- package/core/{field.js → field.ts} +413 -489
- package/core/field_angle.d.ts +176 -0
- package/core/field_angle.ts +563 -0
- package/core/field_checkbox.d.ts +124 -0
- package/core/field_checkbox.ts +243 -0
- package/core/field_colour.d.ts +200 -0
- package/core/field_colour.ts +632 -0
- package/core/field_dropdown.d.ts +222 -0
- package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
- package/core/field_image.d.ts +134 -0
- package/core/field_image.ts +282 -0
- package/core/field_label.d.ts +71 -0
- package/core/field_label.ts +152 -0
- package/core/field_label_serializable.d.ts +42 -0
- package/core/field_label_serializable.ts +76 -0
- package/core/field_multilineinput.d.ts +146 -0
- package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
- package/core/field_number.d.ts +156 -0
- package/core/{field_number.js → field_number.ts} +110 -123
- package/core/field_registry.d.ts +45 -0
- package/core/{field_registry.js → field_registry.ts} +37 -30
- package/core/field_textinput.d.ts +219 -0
- package/core/field_textinput.ts +591 -0
- package/core/field_variable.d.ts +217 -0
- package/core/{field_variable.js → field_variable.ts} +174 -187
- package/core/flyout_base.d.ts +459 -0
- package/core/{flyout_base.js → flyout_base.ts} +429 -518
- package/core/flyout_button.d.ts +81 -0
- package/core/flyout_button.ts +292 -0
- package/core/flyout_horizontal.d.ts +82 -0
- package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
- package/core/flyout_metrics_manager.d.ts +40 -0
- package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
- package/core/flyout_vertical.d.ts +83 -0
- package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
- package/core/generator.d.ts +205 -0
- package/core/{generator.js → generator.ts} +168 -193
- package/core/gesture.d.ts +357 -0
- package/core/{gesture.js → gesture.ts} +289 -369
- package/core/grid.d.ts +83 -0
- package/core/grid.ts +192 -0
- package/core/icon.d.ts +78 -0
- package/core/icon.ts +189 -0
- package/core/inject.d.ts +15 -0
- package/core/{inject.js → inject.ts} +101 -100
- package/core/input.d.ts +128 -0
- package/core/input.ts +309 -0
- package/core/input_types.d.ts +14 -0
- package/core/{input_types.js → input_types.ts} +8 -12
- package/core/insertion_marker_manager.d.ts +212 -0
- package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
- package/core/interfaces/i_ast_node_location.d.ts +11 -0
- package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
- package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
- package/core/interfaces/i_ast_node_location_svg.ts +37 -0
- package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
- package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
- package/core/interfaces/i_autohideable.d.ts +18 -0
- package/core/interfaces/i_autohideable.ts +34 -0
- package/core/interfaces/i_block_dragger.d.ts +43 -0
- package/core/interfaces/i_block_dragger.ts +67 -0
- package/core/interfaces/i_bounded_element.d.ts +24 -0
- package/core/interfaces/i_bounded_element.ts +42 -0
- package/core/interfaces/i_bubble.d.ts +59 -0
- package/core/interfaces/i_bubble.ts +88 -0
- package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
- package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
- package/core/interfaces/i_component.d.ts +17 -0
- package/core/interfaces/{i_component.js → i_component.ts} +9 -14
- package/core/interfaces/i_connection_checker.d.ts +69 -0
- package/core/interfaces/i_connection_checker.ts +102 -0
- package/core/interfaces/i_contextmenu.d.ts +13 -0
- package/core/interfaces/i_contextmenu.ts +26 -0
- package/core/interfaces/i_copyable.d.ts +24 -0
- package/core/interfaces/i_copyable.ts +40 -0
- package/core/interfaces/i_deletable.d.ts +16 -0
- package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
- package/core/interfaces/i_delete_area.d.ts +25 -0
- package/core/interfaces/i_delete_area.ts +46 -0
- package/core/interfaces/i_drag_target.d.ts +53 -0
- package/core/interfaces/i_drag_target.ts +84 -0
- package/core/interfaces/i_draggable.d.ts +12 -0
- package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
- package/core/interfaces/i_flyout.d.ts +134 -0
- package/core/interfaces/i_flyout.ts +186 -0
- package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
- package/core/interfaces/i_keyboard_accessible.ts +35 -0
- package/core/interfaces/i_metrics_manager.d.ts +117 -0
- package/core/interfaces/i_metrics_manager.ts +151 -0
- package/core/interfaces/i_movable.d.ts +16 -0
- package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
- package/core/interfaces/i_positionable.d.ts +27 -0
- package/core/interfaces/i_positionable.ts +50 -0
- package/core/interfaces/i_registrable.d.ts +11 -0
- package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
- package/core/interfaces/i_registrable_field.d.ts +17 -0
- package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
- package/core/interfaces/i_selectable.d.ts +18 -0
- package/core/interfaces/i_selectable.ts +34 -0
- package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
- package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
- package/core/interfaces/i_serializer.d.ts +42 -0
- package/core/interfaces/i_serializer.ts +65 -0
- package/core/interfaces/i_styleable.d.ts +21 -0
- package/core/interfaces/i_styleable.ts +35 -0
- package/core/interfaces/i_toolbox.d.ts +85 -0
- package/core/interfaces/i_toolbox.ts +127 -0
- package/core/interfaces/i_toolbox_item.d.ts +62 -0
- package/core/interfaces/i_toolbox_item.ts +84 -0
- package/core/internal_constants.d.ts +40 -0
- package/core/{internal_constants.js → internal_constants.ts} +13 -18
- package/core/keyboard_nav/ast_node.d.ts +239 -0
- package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
- package/core/keyboard_nav/basic_cursor.d.ts +88 -0
- package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
- package/core/keyboard_nav/cursor.d.ts +41 -0
- package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
- package/core/keyboard_nav/marker.d.ts +58 -0
- package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
- package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
- package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
- package/core/main.d.ts +11 -0
- package/core/main.js +303 -0
- package/core/marker_manager.d.ts +85 -0
- package/core/marker_manager.ts +181 -0
- package/core/menu.d.ts +149 -0
- package/core/{menu.js → menu.ts} +141 -174
- package/core/menuitem.d.ts +118 -0
- package/core/menuitem.ts +240 -0
- package/core/metrics_manager.d.ts +201 -0
- package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
- package/core/msg.d.ts +9 -0
- package/core/{msg.js → msg.ts} +4 -8
- package/core/mutator.d.ts +128 -0
- package/core/{mutator.js → mutator.ts} +196 -211
- package/core/names.d.ts +124 -0
- package/core/names.ts +267 -0
- package/core/options.d.ts +137 -0
- package/core/{options.js → options.ts} +147 -173
- package/core/positionable_helpers.d.ts +88 -0
- package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
- package/core/procedures.d.ts +108 -0
- package/core/{procedures.js → procedures.ts} +143 -152
- package/core/registry.d.ts +137 -0
- package/core/registry.ts +339 -0
- package/core/rendered_connection.d.ts +191 -0
- package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
- package/core/renderers/common/block_rendering.d.ts +114 -0
- package/core/renderers/common/block_rendering.ts +164 -0
- package/core/renderers/common/constants.d.ts +458 -0
- package/core/renderers/common/constants.ts +1124 -0
- package/core/renderers/common/debug.d.ts +28 -0
- package/core/renderers/common/{debug.js → debug.ts} +14 -20
- package/core/renderers/common/debugger.d.ts +120 -0
- package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
- package/core/renderers/common/drawer.d.ts +132 -0
- package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
- package/core/renderers/common/i_path_object.d.ts +117 -0
- package/core/renderers/common/i_path_object.ts +161 -0
- package/core/renderers/common/info.d.ts +194 -0
- package/core/renderers/common/{info.js → info.ts} +165 -222
- package/core/renderers/common/marker_svg.d.ts +220 -0
- package/core/renderers/common/marker_svg.ts +680 -0
- package/core/renderers/common/path_object.d.ts +146 -0
- package/core/renderers/common/path_object.ts +272 -0
- package/core/renderers/common/renderer.d.ts +157 -0
- package/core/renderers/common/renderer.ts +271 -0
- package/core/renderers/geras/constants.d.ts +23 -0
- package/core/renderers/geras/constants.ts +61 -0
- package/core/renderers/geras/drawer.d.ts +43 -0
- package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
- package/core/renderers/geras/geras.d.ts +11 -0
- package/core/renderers/geras/geras.ts +37 -0
- package/core/renderers/geras/highlight_constants.d.ts +108 -0
- package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
- package/core/renderers/geras/highlighter.d.ts +98 -0
- package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
- package/core/renderers/geras/info.d.ts +45 -0
- package/core/renderers/geras/{info.js → info.ts} +61 -99
- package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
- package/core/renderers/geras/measurables/inline_input.ts +51 -0
- package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
- package/core/renderers/geras/measurables/statement_input.ts +50 -0
- package/core/renderers/geras/path_object.d.ts +47 -0
- package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
- package/core/renderers/geras/renderer.d.ts +69 -0
- package/core/renderers/geras/renderer.ts +126 -0
- package/core/renderers/measurables/base.d.ts +27 -0
- package/core/renderers/measurables/base.ts +53 -0
- package/core/renderers/measurables/bottom_row.d.ts +61 -0
- package/core/renderers/measurables/bottom_row.ts +120 -0
- package/core/renderers/measurables/connection.d.ts +25 -0
- package/core/renderers/measurables/connection.ts +52 -0
- package/core/renderers/measurables/external_value_input.d.ts +27 -0
- package/core/renderers/measurables/external_value_input.ts +65 -0
- package/core/renderers/measurables/field.d.ts +30 -0
- package/core/renderers/measurables/field.ts +63 -0
- package/core/renderers/measurables/hat.d.ts +21 -0
- package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
- package/core/renderers/measurables/icon.d.ts +26 -0
- package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
- package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
- package/core/renderers/measurables/in_row_spacer.ts +44 -0
- package/core/renderers/measurables/inline_input.d.ts +24 -0
- package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
- package/core/renderers/measurables/input_connection.d.ts +29 -0
- package/core/renderers/measurables/input_connection.ts +66 -0
- package/core/renderers/measurables/input_row.d.ts +30 -0
- package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
- package/core/renderers/measurables/jagged_edge.d.ts +20 -0
- package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
- package/core/renderers/measurables/next_connection.d.ts +23 -0
- package/core/renderers/measurables/next_connection.ts +47 -0
- package/core/renderers/measurables/output_connection.d.ts +26 -0
- package/core/renderers/measurables/output_connection.ts +56 -0
- package/core/renderers/measurables/previous_connection.d.ts +23 -0
- package/core/renderers/measurables/previous_connection.ts +47 -0
- package/core/renderers/measurables/round_corner.d.ts +21 -0
- package/core/renderers/measurables/round_corner.ts +49 -0
- package/core/renderers/measurables/row.d.ts +141 -0
- package/core/renderers/measurables/row.ts +225 -0
- package/core/renderers/measurables/spacer_row.d.ts +29 -0
- package/core/renderers/measurables/spacer_row.ts +55 -0
- package/core/renderers/measurables/square_corner.d.ts +21 -0
- package/core/renderers/measurables/square_corner.ts +47 -0
- package/core/renderers/measurables/statement_input.d.ts +22 -0
- package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
- package/core/renderers/measurables/top_row.d.ts +56 -0
- package/core/renderers/measurables/top_row.ts +122 -0
- package/core/renderers/measurables/types.d.ts +235 -0
- package/core/renderers/measurables/types.ts +332 -0
- package/core/renderers/minimalist/constants.d.ts +14 -0
- package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
- package/core/renderers/minimalist/drawer.d.ts +21 -0
- package/core/renderers/minimalist/drawer.ts +38 -0
- package/core/renderers/minimalist/info.d.ts +30 -0
- package/core/renderers/minimalist/info.ts +52 -0
- package/core/renderers/minimalist/minimalist.d.ts +6 -0
- package/core/renderers/minimalist/minimalist.ts +22 -0
- package/core/renderers/minimalist/renderer.d.ts +41 -0
- package/core/renderers/minimalist/renderer.ts +71 -0
- package/core/renderers/thrasos/info.d.ts +40 -0
- package/core/renderers/thrasos/{info.js → info.ts} +66 -67
- package/core/renderers/thrasos/renderer.d.ts +25 -0
- package/core/renderers/thrasos/renderer.ts +48 -0
- package/core/renderers/thrasos/thrasos.d.ts +4 -0
- package/core/renderers/thrasos/thrasos.ts +20 -0
- package/core/renderers/zelos/constants.d.ts +186 -0
- package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
- package/core/renderers/zelos/drawer.d.ts +47 -0
- package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
- package/core/renderers/zelos/info.d.ts +88 -0
- package/core/renderers/zelos/{info.js → info.ts} +111 -142
- package/core/renderers/zelos/marker_svg.d.ts +46 -0
- package/core/renderers/zelos/marker_svg.ts +151 -0
- package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
- package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
- package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
- package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
- package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
- package/core/renderers/zelos/measurables/row_elements.ts +45 -0
- package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
- package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
- package/core/renderers/zelos/path_object.d.ts +77 -0
- package/core/renderers/zelos/path_object.ts +215 -0
- package/core/renderers/zelos/renderer.d.ts +74 -0
- package/core/renderers/zelos/renderer.ts +142 -0
- package/core/renderers/zelos/zelos.d.ts +12 -0
- package/core/renderers/zelos/zelos.ts +39 -0
- package/core/scrollbar.d.ts +277 -0
- package/core/{scrollbar.js → scrollbar.ts} +307 -328
- package/core/scrollbar_pair.d.ts +105 -0
- package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
- package/core/serialization/blocks.d.ts +98 -0
- package/core/serialization/{blocks.js → blocks.ts} +229 -228
- package/core/serialization/exceptions.d.ts +73 -0
- package/core/serialization/exceptions.ts +98 -0
- package/core/serialization/priorities.d.ts +15 -0
- package/core/serialization/{priorities.js → priorities.ts} +4 -10
- package/core/serialization/registry.d.ts +20 -0
- package/core/serialization/{registry.js → registry.ts} +11 -13
- package/core/serialization/variables.d.ts +14 -0
- package/core/serialization/{variables.js → variables.ts} +30 -32
- package/core/serialization/workspaces.d.ts +28 -0
- package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
- package/core/shortcut_items.d.ts +61 -0
- package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
- package/core/shortcut_registry.d.ts +151 -0
- package/core/shortcut_registry.ts +355 -0
- package/core/sprites.d.ts +19 -0
- package/core/{sprites.js → sprites.ts} +4 -6
- package/core/theme/classic.d.ts +12 -0
- package/core/theme/{classic.js → classic.ts} +5 -7
- package/core/theme/themes.d.ts +8 -0
- package/core/theme/themes.ts +22 -0
- package/core/theme/zelos.d.ts +11 -0
- package/core/theme/{zelos.js → zelos.ts} +4 -7
- package/core/theme.d.ts +142 -0
- package/core/theme.ts +221 -0
- package/core/theme_manager.d.ts +81 -0
- package/core/theme_manager.ts +186 -0
- package/core/toolbox/category.d.ts +239 -0
- package/core/toolbox/category.ts +679 -0
- package/core/toolbox/collapsible_category.d.ts +91 -0
- package/core/toolbox/collapsible_category.ts +273 -0
- package/core/toolbox/separator.d.ts +39 -0
- package/core/toolbox/separator.ts +105 -0
- package/core/toolbox/toolbox.d.ts +352 -0
- package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
- package/core/toolbox/toolbox_item.d.ts +85 -0
- package/core/toolbox/toolbox_item.ts +147 -0
- package/core/tooltip.d.ts +126 -0
- package/core/{tooltip.js → tooltip.ts} +136 -214
- package/core/touch.d.ts +121 -0
- package/core/touch.ts +306 -0
- package/core/touch_gesture.d.ts +115 -0
- package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
- package/core/trashcan.d.ts +195 -0
- package/core/{trashcan.js → trashcan.ts} +226 -312
- package/core/utils/aria.d.ts +67 -0
- package/core/utils/{aria.js → aria.ts} +47 -61
- package/core/utils/array.d.ts +14 -0
- package/core/utils/{array.js → array.ts} +10 -12
- package/core/utils/colour.d.ts +103 -0
- package/core/utils/{colour.js → colour.ts} +60 -72
- package/core/utils/coordinate.d.ts +72 -0
- package/core/utils/coordinate.ts +124 -0
- package/core/utils/deprecation.d.ts +17 -0
- package/core/utils/{deprecation.js → deprecation.ts} +11 -11
- package/core/utils/dom.d.ts +165 -0
- package/core/utils/{dom.js → dom.ts} +125 -147
- package/core/utils/idgenerator.d.ts +25 -0
- package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
- package/core/utils/keycodes.d.ts +137 -0
- package/core/utils/keycodes.ts +169 -0
- package/core/utils/math.d.ts +30 -0
- package/core/utils/{math.js → math.ts} +17 -19
- package/core/utils/metrics.d.ts +64 -0
- package/core/utils/metrics.ts +97 -0
- package/core/utils/object.d.ts +35 -0
- package/core/utils/{object.js → object.ts} +30 -26
- package/core/utils/parsing.d.ts +50 -0
- package/core/utils/{parsing.js → parsing.ts} +50 -50
- package/core/utils/rect.d.ts +38 -0
- package/core/utils/{rect.js → rect.ts} +18 -31
- package/core/utils/sentinel.d.ts +11 -0
- package/core/utils/{sentinel.js → sentinel.ts} +3 -5
- package/core/utils/size.d.ts +27 -0
- package/core/utils/{size.js → size.ts} +12 -26
- package/core/utils/string.d.ts +55 -0
- package/core/utils/{string.js → string.ts} +64 -61
- package/core/utils/style.d.ts +127 -0
- package/core/utils/{style.js → style.ts} +102 -92
- package/core/utils/svg.d.ts +68 -0
- package/core/utils/svg.ts +88 -0
- package/core/utils/svg_math.d.ts +70 -0
- package/core/utils/{svg_math.js → svg_math.ts} +72 -71
- package/core/utils/svg_paths.d.ts +101 -0
- package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
- package/core/utils/toolbox.d.ts +193 -0
- package/core/utils/toolbox.ts +433 -0
- package/core/utils/useragent.d.ts +33 -0
- package/core/utils/useragent.ts +135 -0
- package/core/utils/xml.d.ts +52 -0
- package/core/utils/{xml.js → xml.ts} +26 -36
- package/core/utils.d.ts +217 -0
- package/core/utils.ts +428 -0
- package/core/variable_map.d.ts +141 -0
- package/core/{variable_map.js → variable_map.ts} +131 -149
- package/core/variable_model.d.ts +40 -0
- package/core/variable_model.ts +82 -0
- package/core/variables.d.ts +181 -0
- package/core/{variables.js → variables.ts} +206 -188
- package/core/variables_dynamic.d.ts +38 -0
- package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
- package/core/warning.d.ts +50 -0
- package/core/{warning.js → warning.ts} +52 -66
- package/core/widgetdiv.d.ts +69 -0
- package/core/widgetdiv.ts +257 -0
- package/core/workspace.d.ts +386 -0
- package/core/workspace.ts +801 -0
- package/core/workspace_audio.d.ts +47 -0
- package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
- package/core/workspace_comment.d.ts +170 -0
- package/core/workspace_comment.ts +398 -0
- package/core/workspace_comment_svg.d.ts +329 -0
- package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
- package/core/workspace_drag_surface_svg.d.ts +68 -0
- package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
- package/core/workspace_dragger.d.ts +48 -0
- package/core/workspace_dragger.ts +104 -0
- package/core/workspace_svg.d.ts +920 -0
- package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
- package/core/xml.d.ts +117 -0
- package/core/{xml.js → xml.ts} +306 -326
- package/core/zoom_controls.d.ts +130 -0
- package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
- package/core.d.ts +1 -3
- package/core.js +1 -2
- package/dart.d.ts +0 -3
- package/dart_compressed.js +387 -99
- package/dart_compressed.js.map +1 -1
- package/generators/dart/all.js +2 -0
- package/generators/dart/colour.js +1 -1
- package/generators/dart/lists.js +1 -1
- package/generators/dart/logic.js +1 -1
- package/generators/dart/loops.js +1 -1
- package/generators/dart/math.js +1 -1
- package/generators/dart/procedures.js +1 -1
- package/generators/dart/text.js +1 -1
- package/generators/dart/variables.js +1 -1
- package/generators/dart/variables_dynamic.js +1 -1
- package/generators/dart.js +1 -2
- package/generators/javascript/all.js +2 -0
- package/generators/javascript/colour.js +1 -1
- package/generators/javascript/lists.js +1 -1
- package/generators/javascript/logic.js +1 -1
- package/generators/javascript/loops.js +1 -1
- package/generators/javascript/math.js +4 -4
- package/generators/javascript/procedures.js +1 -1
- package/generators/javascript/text.js +2 -2
- package/generators/javascript/variables.js +1 -1
- package/generators/javascript/variables_dynamic.js +1 -1
- package/generators/javascript.js +1 -3
- package/generators/lua/all.js +2 -0
- package/generators/lua/colour.js +1 -1
- package/generators/lua/lists.js +1 -1
- package/generators/lua/logic.js +1 -1
- package/generators/lua/loops.js +1 -1
- package/generators/lua/math.js +1 -1
- package/generators/lua/procedures.js +1 -1
- package/generators/lua/text.js +1 -1
- package/generators/lua/variables.js +1 -1
- package/generators/lua/variables_dynamic.js +1 -1
- package/generators/lua.js +1 -2
- package/generators/php/all.js +2 -0
- package/generators/php/colour.js +1 -1
- package/generators/php/lists.js +1 -2
- package/generators/php/logic.js +1 -1
- package/generators/php/loops.js +1 -1
- package/generators/php/math.js +1 -1
- package/generators/php/procedures.js +1 -1
- package/generators/php/text.js +1 -1
- package/generators/php/variables.js +1 -1
- package/generators/php/variables_dynamic.js +1 -1
- package/generators/php.js +1 -2
- package/generators/python/all.js +2 -0
- package/generators/python/colour.js +3 -3
- package/generators/python/lists.js +1 -1
- package/generators/python/logic.js +1 -1
- package/generators/python/loops.js +4 -7
- package/generators/python/math.js +1 -1
- package/generators/python/procedures.js +1 -1
- package/generators/python/text.js +1 -1
- package/generators/python/variables.js +1 -1
- package/generators/python/variables_dynamic.js +1 -1
- package/generators/python.js +1 -2
- package/index.d.ts +2 -8
- package/javascript.d.ts +0 -3
- package/javascript_compressed.js +314 -104
- package/javascript_compressed.js.map +1 -1
- package/lua.d.ts +0 -3
- package/lua_compressed.js +399 -81
- package/lua_compressed.js.map +1 -1
- package/msg/ab.js +421 -421
- package/msg/ace.js +421 -421
- package/msg/af.js +421 -421
- package/msg/am.js +421 -421
- package/msg/ar.js +421 -421
- package/msg/ast.js +421 -421
- package/msg/az.js +421 -421
- package/msg/ba.js +421 -421
- package/msg/bcc.js +421 -421
- package/msg/be-tarask.js +421 -421
- package/msg/be.js +421 -421
- package/msg/bg.js +421 -421
- package/msg/bn.js +421 -421
- package/msg/br.js +421 -421
- package/msg/bs.js +421 -421
- package/msg/ca.js +421 -421
- package/msg/cdo.js +421 -421
- package/msg/cs.js +421 -421
- package/msg/da.js +421 -421
- package/msg/de.js +421 -421
- package/msg/diq.js +421 -421
- package/msg/dty.js +421 -421
- package/msg/ee.js +421 -421
- package/msg/el.js +421 -421
- package/msg/en-gb.js +421 -421
- package/msg/en.js +421 -421
- package/msg/eo.js +421 -421
- package/msg/es.js +421 -421
- package/msg/et.js +421 -421
- package/msg/eu.js +421 -421
- package/msg/fa.js +421 -421
- package/msg/fi.js +421 -421
- package/msg/fo.js +421 -421
- package/msg/fr.js +421 -421
- package/msg/frr.js +421 -421
- package/msg/gl.js +421 -421
- package/msg/gn.js +421 -421
- package/msg/gor.js +421 -421
- package/msg/ha.js +421 -421
- package/msg/hak.js +421 -421
- package/msg/he.js +421 -421
- package/msg/hi.js +421 -421
- package/msg/hr.js +421 -421
- package/msg/hrx.js +421 -421
- package/msg/hu.js +421 -421
- package/msg/hy.js +421 -421
- package/msg/ia.js +421 -421
- package/msg/id.js +421 -421
- package/msg/ig.js +421 -421
- package/msg/inh.js +421 -421
- package/msg/is.js +421 -421
- package/msg/it.js +421 -421
- package/msg/ja.js +421 -421
- package/msg/ka.js +421 -421
- package/msg/kab.js +421 -421
- package/msg/kbd-cyrl.js +421 -421
- package/msg/km.js +421 -421
- package/msg/kn.js +421 -421
- package/msg/ko.js +421 -421
- package/msg/ksh.js +421 -421
- package/msg/ku-latn.js +421 -421
- package/msg/ky.js +421 -421
- package/msg/la.js +421 -421
- package/msg/lb.js +421 -421
- package/msg/lki.js +421 -421
- package/msg/lo.js +421 -421
- package/msg/lrc.js +421 -421
- package/msg/lt.js +421 -421
- package/msg/lv.js +421 -421
- package/msg/mg.js +421 -421
- package/msg/mk.js +421 -421
- package/msg/ml.js +421 -421
- package/msg/mnw.js +421 -421
- package/msg/ms.js +421 -421
- package/msg/my.js +421 -421
- package/msg/mzn.js +421 -421
- package/msg/nb.js +421 -421
- package/msg/ne.js +421 -421
- package/msg/nl.js +421 -421
- package/msg/oc.js +421 -421
- package/msg/olo.js +421 -421
- package/msg/pa.js +421 -421
- package/msg/pl.js +421 -421
- package/msg/pms.js +421 -421
- package/msg/ps.js +421 -421
- package/msg/pt-br.js +421 -421
- package/msg/pt.js +421 -421
- package/msg/ro.js +421 -421
- package/msg/ru.js +421 -421
- package/msg/sc.js +421 -421
- package/msg/sco.js +421 -421
- package/msg/sd.js +421 -421
- package/msg/shn.js +421 -421
- package/msg/si.js +421 -421
- package/msg/sk.js +421 -421
- package/msg/skr-arab.js +421 -421
- package/msg/sl.js +421 -421
- package/msg/smn.js +421 -421
- package/msg/sq.js +421 -421
- package/msg/sr-latn.js +421 -421
- package/msg/sr.js +421 -421
- package/msg/sv.js +421 -421
- package/msg/sw.js +421 -421
- package/msg/ta.js +421 -421
- package/msg/tcy.js +421 -421
- package/msg/te.js +421 -421
- package/msg/th.js +421 -421
- package/msg/ti.js +421 -421
- package/msg/tl.js +421 -421
- package/msg/tlh.js +421 -421
- package/msg/tr.js +421 -421
- package/msg/ug-arab.js +421 -421
- package/msg/uk.js +421 -421
- package/msg/ur.js +421 -421
- package/msg/uz.js +421 -421
- package/msg/vi.js +421 -421
- package/msg/xmf.js +421 -421
- package/msg/yo.js +421 -421
- package/msg/yue.js +421 -421
- package/msg/zgh.js +421 -421
- package/msg/zh-hans.js +421 -421
- package/msg/zh-hant.js +421 -421
- 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
|
@@ -8,44 +8,39 @@
|
|
|
8
8
|
* @fileoverview The class representing an in-progress gesture, usually a drag
|
|
9
9
|
* or a tap.
|
|
10
10
|
*/
|
|
11
|
-
'use strict';
|
|
12
11
|
|
|
13
12
|
/**
|
|
14
13
|
* The class representing an in-progress gesture, usually a drag
|
|
15
14
|
* or a tap.
|
|
16
15
|
* @class
|
|
17
16
|
*/
|
|
18
|
-
goog
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
/** @suppress {extraRequire} */
|
|
46
|
-
goog.require('Blockly.BlockDragger');
|
|
47
|
-
/** @suppress {extraRequire} */
|
|
48
|
-
goog.require('Blockly.Events.Click');
|
|
17
|
+
import * as goog from '../closure/goog/goog.js';
|
|
18
|
+
goog.declareModuleId('Blockly.Gesture');
|
|
19
|
+
|
|
20
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
21
|
+
// import './block_dragger.js';
|
|
22
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
23
|
+
import './events/events_click.js';
|
|
24
|
+
|
|
25
|
+
import * as blockAnimations from './block_animations.js';
|
|
26
|
+
import type {BlockSvg} from './block_svg.js';
|
|
27
|
+
import * as browserEvents from './browser_events.js';
|
|
28
|
+
import {BubbleDragger} from './bubble_dragger.js';
|
|
29
|
+
import * as common from './common.js';
|
|
30
|
+
import {config} from './config.js';
|
|
31
|
+
import * as eventUtils from './events/utils.js';
|
|
32
|
+
import type {Field} from './field.js';
|
|
33
|
+
import type {IBlockDragger} from './interfaces/i_block_dragger.js';
|
|
34
|
+
import type {IBubble} from './interfaces/i_bubble.js';
|
|
35
|
+
import type {IFlyout} from './interfaces/i_flyout.js';
|
|
36
|
+
import * as internalConstants from './internal_constants.js';
|
|
37
|
+
import * as registry from './registry.js';
|
|
38
|
+
import * as Tooltip from './tooltip.js';
|
|
39
|
+
import * as Touch from './touch.js';
|
|
40
|
+
import {Coordinate} from './utils/coordinate.js';
|
|
41
|
+
import {WorkspaceCommentSvg} from './workspace_comment_svg.js';
|
|
42
|
+
import {WorkspaceDragger} from './workspace_dragger.js';
|
|
43
|
+
import type {WorkspaceSvg} from './workspace_svg.js';
|
|
49
44
|
|
|
50
45
|
|
|
51
46
|
/**
|
|
@@ -53,209 +48,155 @@ goog.require('Blockly.Events.Click');
|
|
|
53
48
|
* events. "End" refers to touchend, mouseup, and pointerend events.
|
|
54
49
|
*/
|
|
55
50
|
// TODO: Consider touchcancel/pointercancel.
|
|
56
|
-
|
|
57
51
|
/**
|
|
58
52
|
* Class for one gesture.
|
|
59
53
|
* @alias Blockly.Gesture
|
|
60
54
|
*/
|
|
61
|
-
class Gesture {
|
|
55
|
+
export class Gesture {
|
|
62
56
|
/**
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
57
|
+
* The position of the mouse when the gesture started. Units are CSS
|
|
58
|
+
* pixels, with (0, 0) at the top left of the browser window (mouseEvent
|
|
59
|
+
* clientX/Y).
|
|
66
60
|
*/
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
* clientX/Y).
|
|
72
|
-
* @type {Coordinate}
|
|
73
|
-
* @private
|
|
74
|
-
*/
|
|
75
|
-
this.mouseDownXY_ = null;
|
|
61
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
62
|
+
// 'Coordinate'.
|
|
63
|
+
private mouseDownXY_: Coordinate = null as AnyDuringMigration;
|
|
64
|
+
private currentDragDeltaXY_: Coordinate;
|
|
76
65
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
66
|
+
/**
|
|
67
|
+
* The bubble that the gesture started on, or null if it did not start on a
|
|
68
|
+
* bubble.
|
|
69
|
+
*/
|
|
70
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
71
|
+
// 'IBubble'.
|
|
72
|
+
private startBubble_: IBubble = null as AnyDuringMigration;
|
|
84
73
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
this.startBubble_ = null;
|
|
74
|
+
/**
|
|
75
|
+
* The field that the gesture started on, or null if it did not start on a
|
|
76
|
+
* field.
|
|
77
|
+
*/
|
|
78
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type 'Field'.
|
|
79
|
+
private startField_: Field = null as AnyDuringMigration;
|
|
92
80
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
81
|
+
/**
|
|
82
|
+
* The block that the gesture started on, or null if it did not start on a
|
|
83
|
+
* block.
|
|
84
|
+
*/
|
|
85
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
86
|
+
// 'BlockSvg'.
|
|
87
|
+
private startBlock_: BlockSvg = null as AnyDuringMigration;
|
|
100
88
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
89
|
+
/**
|
|
90
|
+
* The block that this gesture targets. If the gesture started on a
|
|
91
|
+
* shadow block, this is the first non-shadow parent of the block. If the
|
|
92
|
+
* gesture started in the flyout, this is the root block of the block group
|
|
93
|
+
* that was clicked or dragged.
|
|
94
|
+
*/
|
|
95
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
96
|
+
// 'BlockSvg'.
|
|
97
|
+
private targetBlock_: BlockSvg = null as AnyDuringMigration;
|
|
108
98
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
this.targetBlock_ = null;
|
|
99
|
+
/**
|
|
100
|
+
* The workspace that the gesture started on. There may be multiple
|
|
101
|
+
* workspaces on a page; this is more accurate than using
|
|
102
|
+
* Blockly.common.getMainWorkspace().
|
|
103
|
+
*/
|
|
104
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
105
|
+
// 'WorkspaceSvg'.
|
|
106
|
+
protected startWorkspace_: WorkspaceSvg = null as AnyDuringMigration;
|
|
118
107
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
*/
|
|
126
|
-
this.startWorkspace_ = null;
|
|
108
|
+
/**
|
|
109
|
+
* Whether the pointer has at any point moved out of the drag radius.
|
|
110
|
+
* A gesture that exceeds the drag radius is a drag even if it ends exactly
|
|
111
|
+
* at its start point.
|
|
112
|
+
*/
|
|
113
|
+
private hasExceededDragRadius_ = false;
|
|
127
114
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
* reference to the gesture, which will need to be cleared at deletion. This
|
|
131
|
-
* may be different from the start workspace. For instance, a flyout is a
|
|
132
|
-
* workspace, but its parent workspace manages gestures for it.
|
|
133
|
-
* @type {!WorkspaceSvg}
|
|
134
|
-
* @private
|
|
135
|
-
*/
|
|
136
|
-
this.creatorWorkspace_ = creatorWorkspace;
|
|
115
|
+
/** Whether the workspace is currently being dragged. */
|
|
116
|
+
private isDraggingWorkspace_ = false;
|
|
137
117
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
* A gesture that exceeds the drag radius is a drag even if it ends exactly
|
|
141
|
-
* at its start point.
|
|
142
|
-
* @type {boolean}
|
|
143
|
-
* @private
|
|
144
|
-
*/
|
|
145
|
-
this.hasExceededDragRadius_ = false;
|
|
118
|
+
/** Whether the block is currently being dragged. */
|
|
119
|
+
private isDraggingBlock_ = false;
|
|
146
120
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
* @type {boolean}
|
|
150
|
-
* @private
|
|
151
|
-
*/
|
|
152
|
-
this.isDraggingWorkspace_ = false;
|
|
121
|
+
/** Whether the bubble is currently being dragged. */
|
|
122
|
+
private isDraggingBubble_ = false;
|
|
153
123
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
this.isDraggingBlock_ = false;
|
|
124
|
+
/**
|
|
125
|
+
* A handle to use to unbind a mouse move listener at the end of a drag.
|
|
126
|
+
* Opaque data returned from Blockly.bindEventWithChecks_.
|
|
127
|
+
*/
|
|
128
|
+
protected onMoveWrapper_: browserEvents.Data|null = null;
|
|
160
129
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
this.isDraggingBubble_ = false;
|
|
130
|
+
/**
|
|
131
|
+
* A handle to use to unbind a mouse up listener at the end of a drag.
|
|
132
|
+
* Opaque data returned from Blockly.bindEventWithChecks_.
|
|
133
|
+
*/
|
|
134
|
+
protected onUpWrapper_: browserEvents.Data|null = null;
|
|
167
135
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
*/
|
|
173
|
-
this.mostRecentEvent_ = e;
|
|
136
|
+
/** The object tracking a bubble drag, or null if none is in progress. */
|
|
137
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
138
|
+
// 'BubbleDragger'.
|
|
139
|
+
private bubbleDragger_: BubbleDragger = null as AnyDuringMigration;
|
|
174
140
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
* Opaque data returned from Blockly.bindEventWithChecks_.
|
|
178
|
-
* @type {?browserEvents.Data}
|
|
179
|
-
* @protected
|
|
180
|
-
*/
|
|
181
|
-
this.onMoveWrapper_ = null;
|
|
141
|
+
/** The object tracking a block drag, or null if none is in progress. */
|
|
142
|
+
private blockDragger_: IBlockDragger|null = null;
|
|
182
143
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
144
|
+
/**
|
|
145
|
+
* The object tracking a workspace or flyout workspace drag, or null if none
|
|
146
|
+
* is in progress.
|
|
147
|
+
*/
|
|
148
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
149
|
+
// 'WorkspaceDragger'.
|
|
150
|
+
private workspaceDragger_: WorkspaceDragger = null as AnyDuringMigration;
|
|
190
151
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
*/
|
|
196
|
-
this.bubbleDragger_ = null;
|
|
152
|
+
/** The flyout a gesture started in, if any. */
|
|
153
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
154
|
+
// 'IFlyout'.
|
|
155
|
+
private flyout_: IFlyout = null as AnyDuringMigration;
|
|
197
156
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
* @type {?IBlockDragger}
|
|
201
|
-
* @private
|
|
202
|
-
*/
|
|
203
|
-
this.blockDragger_ = null;
|
|
157
|
+
/** Boolean for sanity-checking that some code is only called once. */
|
|
158
|
+
private calledUpdateIsDragging_ = false;
|
|
204
159
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
* is in progress.
|
|
208
|
-
* @type {WorkspaceDragger}
|
|
209
|
-
* @private
|
|
210
|
-
*/
|
|
211
|
-
this.workspaceDragger_ = null;
|
|
160
|
+
/** Boolean for sanity-checking that some code is only called once. */
|
|
161
|
+
private hasStarted_ = false;
|
|
212
162
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
* @private
|
|
217
|
-
*/
|
|
218
|
-
this.flyout_ = null;
|
|
163
|
+
/** Boolean used internally to break a cycle in disposal. */
|
|
164
|
+
protected isEnding_ = false;
|
|
165
|
+
private healStack_: boolean;
|
|
219
166
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
* @type {boolean}
|
|
223
|
-
* @private
|
|
224
|
-
*/
|
|
225
|
-
this.calledUpdateIsDragging_ = false;
|
|
167
|
+
/** The event that most recently updated this gesture. */
|
|
168
|
+
private mostRecentEvent_: Event;
|
|
226
169
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
170
|
+
/**
|
|
171
|
+
* @param e The event that kicked off this gesture.
|
|
172
|
+
* @param creatorWorkspace The workspace that created this gesture and has a
|
|
173
|
+
* reference to it.
|
|
174
|
+
*/
|
|
175
|
+
constructor(e: Event, private readonly creatorWorkspace: WorkspaceSvg) {
|
|
176
|
+
this.mostRecentEvent_ = e;
|
|
233
177
|
|
|
234
178
|
/**
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
* @protected
|
|
179
|
+
* How far the mouse has moved during this drag, in pixel units.
|
|
180
|
+
* (0, 0) is at this.mouseDownXY_.
|
|
238
181
|
*/
|
|
239
|
-
this.
|
|
182
|
+
this.currentDragDeltaXY_ = new Coordinate(0, 0);
|
|
240
183
|
|
|
241
184
|
/**
|
|
242
185
|
* Boolean used to indicate whether or not to heal the stack after
|
|
243
186
|
* disconnecting a block.
|
|
244
|
-
* @type {boolean}
|
|
245
|
-
* @private
|
|
246
187
|
*/
|
|
247
188
|
this.healStack_ = !internalConstants.DRAG_STACK;
|
|
248
189
|
}
|
|
249
190
|
|
|
250
191
|
/**
|
|
251
192
|
* Sever all links from this object.
|
|
252
|
-
* @
|
|
193
|
+
* @internal
|
|
253
194
|
*/
|
|
254
195
|
dispose() {
|
|
255
196
|
Touch.clearTouchIdentifier();
|
|
256
197
|
Tooltip.unblock();
|
|
257
198
|
// Clear the owner's reference to this gesture.
|
|
258
|
-
this.
|
|
199
|
+
this.creatorWorkspace.clearGesture();
|
|
259
200
|
|
|
260
201
|
if (this.onMoveWrapper_) {
|
|
261
202
|
browserEvents.unbind(this.onMoveWrapper_);
|
|
@@ -270,18 +211,18 @@ class Gesture {
|
|
|
270
211
|
if (this.workspaceDragger_) {
|
|
271
212
|
this.workspaceDragger_.dispose();
|
|
272
213
|
}
|
|
273
|
-
if (this.bubbleDragger_) {
|
|
274
|
-
this.bubbleDragger_.dispose();
|
|
275
|
-
}
|
|
276
214
|
}
|
|
277
215
|
|
|
278
216
|
/**
|
|
279
217
|
* Update internal state based on an event.
|
|
280
|
-
* @param
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
218
|
+
* @param e The most recent mouse or touch event.
|
|
219
|
+
*/
|
|
220
|
+
private updateFromEvent_(e: Event) {
|
|
221
|
+
// AnyDuringMigration because: Property 'clientY' does not exist on type
|
|
222
|
+
// 'Event'. AnyDuringMigration because: Property 'clientX' does not exist
|
|
223
|
+
// on type 'Event'.
|
|
224
|
+
const currentXY = new Coordinate(
|
|
225
|
+
(e as AnyDuringMigration).clientX, (e as AnyDuringMigration).clientY);
|
|
285
226
|
const changed = this.updateDragDelta_(currentXY);
|
|
286
227
|
// Exceeded the drag radius for the first time.
|
|
287
228
|
if (changed) {
|
|
@@ -293,16 +234,13 @@ class Gesture {
|
|
|
293
234
|
|
|
294
235
|
/**
|
|
295
236
|
* DO MATH to set currentDragDeltaXY_ based on the most recent mouse position.
|
|
296
|
-
* @param
|
|
297
|
-
*
|
|
298
|
-
* @return
|
|
299
|
-
* first time.
|
|
300
|
-
* @private
|
|
237
|
+
* @param currentXY The most recent mouse/pointer position, in pixel units,
|
|
238
|
+
* with (0, 0) at the window's top left corner.
|
|
239
|
+
* @return True if the drag just exceeded the drag radius for the first time.
|
|
301
240
|
*/
|
|
302
|
-
updateDragDelta_(currentXY) {
|
|
303
|
-
this.currentDragDeltaXY_ =
|
|
304
|
-
currentXY,
|
|
305
|
-
/** @type {!Coordinate} */ (this.mouseDownXY_));
|
|
241
|
+
private updateDragDelta_(currentXY: Coordinate): boolean {
|
|
242
|
+
this.currentDragDeltaXY_ =
|
|
243
|
+
Coordinate.difference(currentXY, (this.mouseDownXY_));
|
|
306
244
|
|
|
307
245
|
if (!this.hasExceededDragRadius_) {
|
|
308
246
|
const currentDragDelta = Coordinate.magnitude(this.currentDragDeltaXY_);
|
|
@@ -325,19 +263,20 @@ class Gesture {
|
|
|
325
263
|
* gesture. If a block should be dragged from the flyout this function creates
|
|
326
264
|
* the new block on the main workspace and updates targetBlock_ and
|
|
327
265
|
* startWorkspace_.
|
|
328
|
-
* @return
|
|
329
|
-
* @private
|
|
266
|
+
* @return True if a block is being dragged from the flyout.
|
|
330
267
|
*/
|
|
331
|
-
updateIsDraggingFromFlyout_() {
|
|
268
|
+
private updateIsDraggingFromFlyout_(): boolean {
|
|
332
269
|
if (!this.targetBlock_) {
|
|
333
270
|
return false;
|
|
334
271
|
}
|
|
335
|
-
if (!this.flyout_.
|
|
272
|
+
if (!this.flyout_.isBlockCreatable(this.targetBlock_)) {
|
|
336
273
|
return false;
|
|
337
274
|
}
|
|
338
275
|
if (!this.flyout_.isScrollable() ||
|
|
339
276
|
this.flyout_.isDragTowardWorkspace(this.currentDragDeltaXY_)) {
|
|
340
|
-
|
|
277
|
+
// AnyDuringMigration because: Type 'WorkspaceSvg | null' is not
|
|
278
|
+
// assignable to type 'WorkspaceSvg'.
|
|
279
|
+
this.startWorkspace_ = this.flyout_.targetWorkspace as AnyDuringMigration;
|
|
341
280
|
this.startWorkspace_.updateScreenCalculationsIfScrolled();
|
|
342
281
|
// Start the event group now, so that the same event group is used for
|
|
343
282
|
// block creation and block dragging.
|
|
@@ -345,7 +284,9 @@ class Gesture {
|
|
|
345
284
|
eventUtils.setGroup(true);
|
|
346
285
|
}
|
|
347
286
|
// The start block is no longer relevant, because this is a drag.
|
|
348
|
-
|
|
287
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
288
|
+
// 'BlockSvg'.
|
|
289
|
+
this.startBlock_ = null as AnyDuringMigration;
|
|
349
290
|
this.targetBlock_ = this.flyout_.createBlock(this.targetBlock_);
|
|
350
291
|
this.targetBlock_.select();
|
|
351
292
|
return true;
|
|
@@ -359,10 +300,9 @@ class Gesture {
|
|
|
359
300
|
* the drag radius is exceeded. It should be called no more than once per
|
|
360
301
|
* gesture. If a bubble should be dragged this function creates the necessary
|
|
361
302
|
* BubbleDragger and starts the drag.
|
|
362
|
-
* @return
|
|
363
|
-
* @private
|
|
303
|
+
* @return True if a bubble is being dragged.
|
|
364
304
|
*/
|
|
365
|
-
updateIsDraggingBubble_() {
|
|
305
|
+
private updateIsDraggingBubble_(): boolean {
|
|
366
306
|
if (!this.startBubble_) {
|
|
367
307
|
return false;
|
|
368
308
|
}
|
|
@@ -379,10 +319,9 @@ class Gesture {
|
|
|
379
319
|
* gesture. If a block should be dragged, either from the flyout or in the
|
|
380
320
|
* workspace, this function creates the necessary BlockDragger and starts the
|
|
381
321
|
* drag.
|
|
382
|
-
* @return
|
|
383
|
-
* @private
|
|
322
|
+
* @return True if a block is being dragged.
|
|
384
323
|
*/
|
|
385
|
-
updateIsDraggingBlock_() {
|
|
324
|
+
private updateIsDraggingBlock_(): boolean {
|
|
386
325
|
if (!this.targetBlock_) {
|
|
387
326
|
return false;
|
|
388
327
|
}
|
|
@@ -406,9 +345,8 @@ class Gesture {
|
|
|
406
345
|
* the drag radius is exceeded. It should be called no more than once per
|
|
407
346
|
* gesture. If a workspace is being dragged this function creates the
|
|
408
347
|
* necessary WorkspaceDragger and starts the drag.
|
|
409
|
-
* @private
|
|
410
348
|
*/
|
|
411
|
-
updateIsDraggingWorkspace_() {
|
|
349
|
+
private updateIsDraggingWorkspace_() {
|
|
412
350
|
const wsMovable = this.flyout_ ?
|
|
413
351
|
this.flyout_.isScrollable() :
|
|
414
352
|
this.startWorkspace_ && this.startWorkspace_.isDraggable();
|
|
@@ -417,8 +355,7 @@ class Gesture {
|
|
|
417
355
|
return;
|
|
418
356
|
}
|
|
419
357
|
|
|
420
|
-
this.workspaceDragger_ = new WorkspaceDragger(
|
|
421
|
-
/** @type {!WorkspaceSvg} */ (this.startWorkspace_));
|
|
358
|
+
this.workspaceDragger_ = new WorkspaceDragger((this.startWorkspace_));
|
|
422
359
|
|
|
423
360
|
this.isDraggingWorkspace_ = true;
|
|
424
361
|
this.workspaceDragger_.startDrag();
|
|
@@ -429,9 +366,8 @@ class Gesture {
|
|
|
429
366
|
* This function should be called on a mouse/touch move event the first time
|
|
430
367
|
* the drag radius is exceeded. It should be called no more than once per
|
|
431
368
|
* gesture.
|
|
432
|
-
* @private
|
|
433
369
|
*/
|
|
434
|
-
updateIsDragging_() {
|
|
370
|
+
private updateIsDragging_() {
|
|
435
371
|
// Sanity check.
|
|
436
372
|
if (this.calledUpdateIsDragging_) {
|
|
437
373
|
throw Error('updateIsDragging_ should only be called once per gesture.');
|
|
@@ -451,30 +387,22 @@ class Gesture {
|
|
|
451
387
|
this.updateIsDraggingWorkspace_();
|
|
452
388
|
}
|
|
453
389
|
|
|
454
|
-
/**
|
|
455
|
-
|
|
456
|
-
* @private
|
|
457
|
-
*/
|
|
458
|
-
startDraggingBlock_() {
|
|
390
|
+
/** Create a block dragger and start dragging the selected block. */
|
|
391
|
+
private startDraggingBlock_() {
|
|
459
392
|
const BlockDraggerClass = registry.getClassFromOptions(
|
|
460
|
-
registry.Type.BLOCK_DRAGGER, this.
|
|
393
|
+
registry.Type.BLOCK_DRAGGER, this.creatorWorkspace.options, true);
|
|
461
394
|
|
|
462
|
-
this.blockDragger_ =
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
this.blockDragger_
|
|
466
|
-
this.blockDragger_.drag(this.mostRecentEvent_, this.currentDragDeltaXY_);
|
|
395
|
+
this.blockDragger_ =
|
|
396
|
+
new BlockDraggerClass!((this.targetBlock_), (this.startWorkspace_));
|
|
397
|
+
this.blockDragger_!.startDrag(this.currentDragDeltaXY_, this.healStack_);
|
|
398
|
+
this.blockDragger_!.drag(this.mostRecentEvent_, this.currentDragDeltaXY_);
|
|
467
399
|
}
|
|
468
400
|
|
|
469
401
|
// TODO (fenichel): Possibly combine this and startDraggingBlock_.
|
|
470
|
-
/**
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
startDraggingBubble_() {
|
|
475
|
-
this.bubbleDragger_ = new BubbleDragger(
|
|
476
|
-
/** @type {!IBubble} */ (this.startBubble_),
|
|
477
|
-
/** @type {!WorkspaceSvg} */ (this.startWorkspace_));
|
|
402
|
+
/** Create a bubble dragger and start dragging the selected bubble. */
|
|
403
|
+
private startDraggingBubble_() {
|
|
404
|
+
this.bubbleDragger_ =
|
|
405
|
+
new BubbleDragger((this.startBubble_), (this.startWorkspace_));
|
|
478
406
|
this.bubbleDragger_.startBubbleDrag();
|
|
479
407
|
this.bubbleDragger_.dragBubble(
|
|
480
408
|
this.mostRecentEvent_, this.currentDragDeltaXY_);
|
|
@@ -483,10 +411,10 @@ class Gesture {
|
|
|
483
411
|
/**
|
|
484
412
|
* Start a gesture: update the workspace to indicate that a gesture is in
|
|
485
413
|
* progress and bind mousemove and mouseup handlers.
|
|
486
|
-
* @param
|
|
487
|
-
* @
|
|
414
|
+
* @param e A mouse down or touch start event.
|
|
415
|
+
* @internal
|
|
488
416
|
*/
|
|
489
|
-
doStart(e) {
|
|
417
|
+
doStart(e: MouseEvent) {
|
|
490
418
|
if (browserEvents.isTargetInput(e)) {
|
|
491
419
|
this.cancel();
|
|
492
420
|
return;
|
|
@@ -500,7 +428,6 @@ class Gesture {
|
|
|
500
428
|
// dragged, the block was moved, the parent workspace zoomed, etc.
|
|
501
429
|
this.startWorkspace_.resize();
|
|
502
430
|
}
|
|
503
|
-
|
|
504
431
|
// Hide chaff also hides the flyout, so don't do it if the click is in a
|
|
505
432
|
// flyout.
|
|
506
433
|
this.startWorkspace_.hideChaff(!!this.flyout_);
|
|
@@ -519,24 +446,35 @@ class Gesture {
|
|
|
519
446
|
return;
|
|
520
447
|
}
|
|
521
448
|
|
|
449
|
+
// TODO(#6097): Make types accurate, possibly by refactoring touch handling.
|
|
450
|
+
const typelessEvent = e as AnyDuringMigration;
|
|
522
451
|
if ((e.type.toLowerCase() === 'touchstart' ||
|
|
523
452
|
e.type.toLowerCase() === 'pointerdown') &&
|
|
524
|
-
|
|
525
|
-
Touch.longStart(
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
453
|
+
typelessEvent.pointerType !== 'mouse') {
|
|
454
|
+
Touch.longStart(typelessEvent, this);
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
// AnyDuringMigration because: Property 'clientY' does not exist on type
|
|
458
|
+
// 'Event'. AnyDuringMigration because: Property 'clientX' does not exist
|
|
459
|
+
// on type 'Event'.
|
|
460
|
+
this.mouseDownXY_ = new Coordinate(
|
|
461
|
+
(e as AnyDuringMigration).clientX, (e as AnyDuringMigration).clientY);
|
|
462
|
+
// AnyDuringMigration because: Property 'metaKey' does not exist on type
|
|
463
|
+
// 'Event'. AnyDuringMigration because: Property 'ctrlKey' does not exist
|
|
464
|
+
// on type 'Event'. AnyDuringMigration because: Property 'altKey' does not
|
|
465
|
+
// exist on type 'Event'.
|
|
466
|
+
this.healStack_ = (e as AnyDuringMigration).altKey ||
|
|
467
|
+
(e as AnyDuringMigration).ctrlKey || (e as AnyDuringMigration).metaKey;
|
|
530
468
|
|
|
531
469
|
this.bindMouseEvents(e);
|
|
532
470
|
}
|
|
533
471
|
|
|
534
472
|
/**
|
|
535
473
|
* Bind gesture events.
|
|
536
|
-
* @param
|
|
537
|
-
* @
|
|
474
|
+
* @param e A mouse down or touch start event.
|
|
475
|
+
* @internal
|
|
538
476
|
*/
|
|
539
|
-
bindMouseEvents(e) {
|
|
477
|
+
bindMouseEvents(e: Event) {
|
|
540
478
|
this.onMoveWrapper_ = browserEvents.conditionalBind(
|
|
541
479
|
document, 'mousemove', null, this.handleMove.bind(this));
|
|
542
480
|
this.onUpWrapper_ = browserEvents.conditionalBind(
|
|
@@ -548,15 +486,15 @@ class Gesture {
|
|
|
548
486
|
|
|
549
487
|
/**
|
|
550
488
|
* Handle a mouse move or touch move event.
|
|
551
|
-
* @param
|
|
552
|
-
* @
|
|
489
|
+
* @param e A mouse move or touch move event.
|
|
490
|
+
* @internal
|
|
553
491
|
*/
|
|
554
|
-
handleMove(e) {
|
|
492
|
+
handleMove(e: Event) {
|
|
555
493
|
this.updateFromEvent_(e);
|
|
556
494
|
if (this.isDraggingWorkspace_) {
|
|
557
495
|
this.workspaceDragger_.drag(this.currentDragDeltaXY_);
|
|
558
496
|
} else if (this.isDraggingBlock_) {
|
|
559
|
-
this.blockDragger_
|
|
497
|
+
this.blockDragger_!.drag(this.mostRecentEvent_, this.currentDragDeltaXY_);
|
|
560
498
|
} else if (this.isDraggingBubble_) {
|
|
561
499
|
this.bubbleDragger_.dragBubble(
|
|
562
500
|
this.mostRecentEvent_, this.currentDragDeltaXY_);
|
|
@@ -567,10 +505,10 @@ class Gesture {
|
|
|
567
505
|
|
|
568
506
|
/**
|
|
569
507
|
* Handle a mouse up or touch end event.
|
|
570
|
-
* @param
|
|
571
|
-
* @
|
|
508
|
+
* @param e A mouse up or touch end event.
|
|
509
|
+
* @internal
|
|
572
510
|
*/
|
|
573
|
-
handleUp(e) {
|
|
511
|
+
handleUp(e: Event) {
|
|
574
512
|
this.updateFromEvent_(e);
|
|
575
513
|
Touch.longStop();
|
|
576
514
|
|
|
@@ -587,7 +525,7 @@ class Gesture {
|
|
|
587
525
|
if (this.isDraggingBubble_) {
|
|
588
526
|
this.bubbleDragger_.endBubbleDrag(e, this.currentDragDeltaXY_);
|
|
589
527
|
} else if (this.isDraggingBlock_) {
|
|
590
|
-
this.blockDragger_
|
|
528
|
+
this.blockDragger_!.endDrag(e, this.currentDragDeltaXY_);
|
|
591
529
|
} else if (this.isDraggingWorkspace_) {
|
|
592
530
|
this.workspaceDragger_.endDrag(this.currentDragDeltaXY_);
|
|
593
531
|
} else if (this.isBubbleClick_()) {
|
|
@@ -610,7 +548,7 @@ class Gesture {
|
|
|
610
548
|
/**
|
|
611
549
|
* Cancel an in-progress gesture. If a workspace or block drag is in
|
|
612
550
|
* progress, end the drag at the most recent location.
|
|
613
|
-
* @
|
|
551
|
+
* @internal
|
|
614
552
|
*/
|
|
615
553
|
cancel() {
|
|
616
554
|
// Disposing of a block cancels in-progress drags, but dragging to a delete
|
|
@@ -624,7 +562,7 @@ class Gesture {
|
|
|
624
562
|
this.bubbleDragger_.endBubbleDrag(
|
|
625
563
|
this.mostRecentEvent_, this.currentDragDeltaXY_);
|
|
626
564
|
} else if (this.isDraggingBlock_) {
|
|
627
|
-
this.blockDragger_
|
|
565
|
+
this.blockDragger_!.endDrag(
|
|
628
566
|
this.mostRecentEvent_, this.currentDragDeltaXY_);
|
|
629
567
|
} else if (this.isDraggingWorkspace_) {
|
|
630
568
|
this.workspaceDragger_.endDrag(this.currentDragDeltaXY_);
|
|
@@ -634,10 +572,10 @@ class Gesture {
|
|
|
634
572
|
|
|
635
573
|
/**
|
|
636
574
|
* Handle a real or faked right-click event by showing a context menu.
|
|
637
|
-
* @param
|
|
638
|
-
* @
|
|
575
|
+
* @param e A mouse move or touch move event.
|
|
576
|
+
* @internal
|
|
639
577
|
*/
|
|
640
|
-
handleRightClick(e) {
|
|
578
|
+
handleRightClick(e: Event) {
|
|
641
579
|
if (this.targetBlock_) {
|
|
642
580
|
this.bringBlockToFront_();
|
|
643
581
|
this.targetBlock_.workspace.hideChaff(!!this.flyout_);
|
|
@@ -658,11 +596,11 @@ class Gesture {
|
|
|
658
596
|
|
|
659
597
|
/**
|
|
660
598
|
* Handle a mousedown/touchstart event on a workspace.
|
|
661
|
-
* @param
|
|
662
|
-
* @param
|
|
663
|
-
* @
|
|
599
|
+
* @param e A mouse down or touch start event.
|
|
600
|
+
* @param ws The workspace the event hit.
|
|
601
|
+
* @internal
|
|
664
602
|
*/
|
|
665
|
-
handleWsStart(e, ws) {
|
|
603
|
+
handleWsStart(e: MouseEvent, ws: WorkspaceSvg) {
|
|
666
604
|
if (this.hasStarted_) {
|
|
667
605
|
throw Error(
|
|
668
606
|
'Tried to call gesture.handleWsStart, ' +
|
|
@@ -675,21 +613,20 @@ class Gesture {
|
|
|
675
613
|
|
|
676
614
|
/**
|
|
677
615
|
* Fires a workspace click event.
|
|
678
|
-
* @param
|
|
679
|
-
* @private
|
|
616
|
+
* @param ws The workspace that a user clicks on.
|
|
680
617
|
*/
|
|
681
|
-
fireWorkspaceClick_(ws) {
|
|
682
|
-
eventUtils.fire(
|
|
683
|
-
|
|
618
|
+
private fireWorkspaceClick_(ws: WorkspaceSvg) {
|
|
619
|
+
eventUtils.fire(new (eventUtils.get(eventUtils.CLICK))!
|
|
620
|
+
(null, ws.id, 'workspace'));
|
|
684
621
|
}
|
|
685
622
|
|
|
686
623
|
/**
|
|
687
624
|
* Handle a mousedown/touchstart event on a flyout.
|
|
688
|
-
* @param
|
|
689
|
-
* @param
|
|
690
|
-
* @
|
|
625
|
+
* @param e A mouse down or touch start event.
|
|
626
|
+
* @param flyout The flyout the event hit.
|
|
627
|
+
* @internal
|
|
691
628
|
*/
|
|
692
|
-
handleFlyoutStart(e, flyout) {
|
|
629
|
+
handleFlyoutStart(e: MouseEvent, flyout: IFlyout) {
|
|
693
630
|
if (this.hasStarted_) {
|
|
694
631
|
throw Error(
|
|
695
632
|
'Tried to call gesture.handleFlyoutStart, ' +
|
|
@@ -701,11 +638,11 @@ class Gesture {
|
|
|
701
638
|
|
|
702
639
|
/**
|
|
703
640
|
* Handle a mousedown/touchstart event on a block.
|
|
704
|
-
* @param
|
|
705
|
-
* @param
|
|
706
|
-
* @
|
|
641
|
+
* @param e A mouse down or touch start event.
|
|
642
|
+
* @param block The block the event hit.
|
|
643
|
+
* @internal
|
|
707
644
|
*/
|
|
708
|
-
handleBlockStart(e, block) {
|
|
645
|
+
handleBlockStart(e: Event, block: BlockSvg) {
|
|
709
646
|
if (this.hasStarted_) {
|
|
710
647
|
throw Error(
|
|
711
648
|
'Tried to call gesture.handleBlockStart, ' +
|
|
@@ -717,11 +654,11 @@ class Gesture {
|
|
|
717
654
|
|
|
718
655
|
/**
|
|
719
656
|
* Handle a mousedown/touchstart event on a bubble.
|
|
720
|
-
* @param
|
|
721
|
-
* @param
|
|
722
|
-
* @
|
|
657
|
+
* @param e A mouse down or touch start event.
|
|
658
|
+
* @param bubble The bubble the event hit.
|
|
659
|
+
* @internal
|
|
723
660
|
*/
|
|
724
|
-
handleBubbleStart(e, bubble) {
|
|
661
|
+
handleBubbleStart(e: Event, bubble: IBubble) {
|
|
725
662
|
if (this.hasStarted_) {
|
|
726
663
|
throw Error(
|
|
727
664
|
'Tried to call gesture.handleBubbleStart, ' +
|
|
@@ -735,30 +672,23 @@ class Gesture {
|
|
|
735
672
|
* type of target. Any developer wanting to add behaviour on clicks should
|
|
736
673
|
* modify only this code. */
|
|
737
674
|
|
|
738
|
-
/**
|
|
739
|
-
|
|
740
|
-
* @private
|
|
741
|
-
*/
|
|
742
|
-
doBubbleClick_() {
|
|
675
|
+
/** Execute a bubble click. */
|
|
676
|
+
private doBubbleClick_() {
|
|
743
677
|
// TODO (#1673): Consistent handling of single clicks.
|
|
744
|
-
this.startBubble_
|
|
745
|
-
|
|
678
|
+
if (this.startBubble_ instanceof WorkspaceCommentSvg) {
|
|
679
|
+
this.startBubble_.setFocus();
|
|
680
|
+
this.startBubble_.select();
|
|
681
|
+
}
|
|
746
682
|
}
|
|
747
683
|
|
|
748
|
-
/**
|
|
749
|
-
|
|
750
|
-
* @private
|
|
751
|
-
*/
|
|
752
|
-
doFieldClick_() {
|
|
684
|
+
/** Execute a field click. */
|
|
685
|
+
private doFieldClick_() {
|
|
753
686
|
this.startField_.showEditor(this.mostRecentEvent_);
|
|
754
687
|
this.bringBlockToFront_();
|
|
755
688
|
}
|
|
756
689
|
|
|
757
|
-
/**
|
|
758
|
-
|
|
759
|
-
* @private
|
|
760
|
-
*/
|
|
761
|
-
doBlockClick_() {
|
|
690
|
+
/** Execute a block click. */
|
|
691
|
+
private doBlockClick_() {
|
|
762
692
|
// Block click in an autoclosing flyout.
|
|
763
693
|
if (this.flyout_ && this.flyout_.autoClose) {
|
|
764
694
|
if (this.targetBlock_.isEnabled()) {
|
|
@@ -770,8 +700,8 @@ class Gesture {
|
|
|
770
700
|
}
|
|
771
701
|
} else {
|
|
772
702
|
// Clicks events are on the start block, even if it was a shadow.
|
|
773
|
-
const event = new (eventUtils.get(eventUtils.CLICK))
|
|
774
|
-
this.startBlock_, this.startWorkspace_.id, 'block');
|
|
703
|
+
const event = new (eventUtils.get(eventUtils.CLICK))!
|
|
704
|
+
(this.startBlock_, this.startWorkspace_.id, 'block');
|
|
775
705
|
eventUtils.fire(event);
|
|
776
706
|
}
|
|
777
707
|
this.bringBlockToFront_();
|
|
@@ -781,13 +711,12 @@ class Gesture {
|
|
|
781
711
|
/**
|
|
782
712
|
* Execute a workspace click. When in accessibility mode shift clicking will
|
|
783
713
|
* move the cursor.
|
|
784
|
-
* @param
|
|
785
|
-
* @private
|
|
714
|
+
* @param _e A mouse up or touch end event.
|
|
786
715
|
*/
|
|
787
|
-
doWorkspaceClick_(_e) {
|
|
788
|
-
const ws = this.
|
|
716
|
+
private doWorkspaceClick_(_e: Event) {
|
|
717
|
+
const ws = this.creatorWorkspace;
|
|
789
718
|
if (common.getSelected()) {
|
|
790
|
-
common.getSelected()
|
|
719
|
+
common.getSelected()!.unselect();
|
|
791
720
|
}
|
|
792
721
|
this.fireWorkspaceClick_(this.startWorkspace_ || ws);
|
|
793
722
|
}
|
|
@@ -800,9 +729,8 @@ class Gesture {
|
|
|
800
729
|
/**
|
|
801
730
|
* Move the dragged/clicked block to the front of the workspace so that it is
|
|
802
731
|
* not occluded by other blocks.
|
|
803
|
-
* @private
|
|
804
732
|
*/
|
|
805
|
-
bringBlockToFront_() {
|
|
733
|
+
private bringBlockToFront_() {
|
|
806
734
|
// Blocks in the flyout don't overlap, so skip the work.
|
|
807
735
|
if (this.targetBlock_ && !this.flyout_) {
|
|
808
736
|
this.targetBlock_.bringToFront();
|
|
@@ -813,10 +741,10 @@ class Gesture {
|
|
|
813
741
|
|
|
814
742
|
/**
|
|
815
743
|
* Record the field that a gesture started on.
|
|
816
|
-
* @param
|
|
817
|
-
* @
|
|
744
|
+
* @param field The field the gesture started on.
|
|
745
|
+
* @internal
|
|
818
746
|
*/
|
|
819
|
-
setStartField(field) {
|
|
747
|
+
setStartField(field: Field) {
|
|
820
748
|
if (this.hasStarted_) {
|
|
821
749
|
throw Error(
|
|
822
750
|
'Tried to call gesture.setStartField, ' +
|
|
@@ -829,10 +757,10 @@ class Gesture {
|
|
|
829
757
|
|
|
830
758
|
/**
|
|
831
759
|
* Record the bubble that a gesture started on
|
|
832
|
-
* @param
|
|
833
|
-
* @
|
|
760
|
+
* @param bubble The bubble the gesture started on.
|
|
761
|
+
* @internal
|
|
834
762
|
*/
|
|
835
|
-
setStartBubble(bubble) {
|
|
763
|
+
setStartBubble(bubble: IBubble) {
|
|
836
764
|
if (!this.startBubble_) {
|
|
837
765
|
this.startBubble_ = bubble;
|
|
838
766
|
}
|
|
@@ -841,10 +769,10 @@ class Gesture {
|
|
|
841
769
|
/**
|
|
842
770
|
* Record the block that a gesture started on, and set the target block
|
|
843
771
|
* appropriately.
|
|
844
|
-
* @param
|
|
845
|
-
* @
|
|
772
|
+
* @param block The block the gesture started on.
|
|
773
|
+
* @internal
|
|
846
774
|
*/
|
|
847
|
-
setStartBlock(block) {
|
|
775
|
+
setStartBlock(block: BlockSvg) {
|
|
848
776
|
// If the gesture already went through a bubble, don't set the start block.
|
|
849
777
|
if (!this.startBlock_ && !this.startBubble_) {
|
|
850
778
|
this.startBlock_ = block;
|
|
@@ -860,12 +788,13 @@ class Gesture {
|
|
|
860
788
|
* Record the block that a gesture targets, meaning the block that will be
|
|
861
789
|
* dragged if this turns into a drag. If this block is a shadow, that will be
|
|
862
790
|
* its first non-shadow parent.
|
|
863
|
-
* @param
|
|
864
|
-
* @private
|
|
791
|
+
* @param block The block the gesture targets.
|
|
865
792
|
*/
|
|
866
|
-
setTargetBlock_(block) {
|
|
793
|
+
private setTargetBlock_(block: BlockSvg) {
|
|
867
794
|
if (block.isShadow()) {
|
|
868
|
-
|
|
795
|
+
// AnyDuringMigration because: Argument of type 'BlockSvg | null' is not
|
|
796
|
+
// assignable to parameter of type 'BlockSvg'.
|
|
797
|
+
this.setTargetBlock_(block.getParent() as AnyDuringMigration);
|
|
869
798
|
} else {
|
|
870
799
|
this.targetBlock_ = block;
|
|
871
800
|
}
|
|
@@ -873,10 +802,9 @@ class Gesture {
|
|
|
873
802
|
|
|
874
803
|
/**
|
|
875
804
|
* Record the workspace that a gesture started on.
|
|
876
|
-
* @param
|
|
877
|
-
* @private
|
|
805
|
+
* @param ws The workspace the gesture started on.
|
|
878
806
|
*/
|
|
879
|
-
setStartWorkspace_(ws) {
|
|
807
|
+
private setStartWorkspace_(ws: WorkspaceSvg) {
|
|
880
808
|
if (!this.startWorkspace_) {
|
|
881
809
|
this.startWorkspace_ = ws;
|
|
882
810
|
}
|
|
@@ -884,10 +812,9 @@ class Gesture {
|
|
|
884
812
|
|
|
885
813
|
/**
|
|
886
814
|
* Record the flyout that a gesture started on.
|
|
887
|
-
* @param
|
|
888
|
-
* @private
|
|
815
|
+
* @param flyout The flyout the gesture started on.
|
|
889
816
|
*/
|
|
890
|
-
setStartFlyout_(flyout) {
|
|
817
|
+
private setStartFlyout_(flyout: IFlyout) {
|
|
891
818
|
if (!this.flyout_) {
|
|
892
819
|
this.flyout_ = flyout;
|
|
893
820
|
}
|
|
@@ -901,10 +828,9 @@ class Gesture {
|
|
|
901
828
|
/**
|
|
902
829
|
* Whether this gesture is a click on a bubble. This should only be called
|
|
903
830
|
* when ending a gesture (mouse up, touch end).
|
|
904
|
-
* @return
|
|
905
|
-
* @private
|
|
831
|
+
* @return Whether this gesture was a click on a bubble.
|
|
906
832
|
*/
|
|
907
|
-
isBubbleClick_() {
|
|
833
|
+
private isBubbleClick_(): boolean {
|
|
908
834
|
// A bubble click starts on a bubble and never escapes the drag radius.
|
|
909
835
|
const hasStartBubble = !!this.startBubble_;
|
|
910
836
|
return hasStartBubble && !this.hasExceededDragRadius_;
|
|
@@ -913,10 +839,9 @@ class Gesture {
|
|
|
913
839
|
/**
|
|
914
840
|
* Whether this gesture is a click on a block. This should only be called
|
|
915
841
|
* when ending a gesture (mouse up, touch end).
|
|
916
|
-
* @return
|
|
917
|
-
* @private
|
|
842
|
+
* @return Whether this gesture was a click on a block.
|
|
918
843
|
*/
|
|
919
|
-
isBlockClick_() {
|
|
844
|
+
private isBlockClick_(): boolean {
|
|
920
845
|
// A block click starts on a block, never escapes the drag radius, and is
|
|
921
846
|
// not a field click.
|
|
922
847
|
const hasStartBlock = !!this.startBlock_;
|
|
@@ -927,10 +852,9 @@ class Gesture {
|
|
|
927
852
|
/**
|
|
928
853
|
* Whether this gesture is a click on a field. This should only be called
|
|
929
854
|
* when ending a gesture (mouse up, touch end).
|
|
930
|
-
* @return
|
|
931
|
-
* @private
|
|
855
|
+
* @return Whether this gesture was a click on a field.
|
|
932
856
|
*/
|
|
933
|
-
isFieldClick_() {
|
|
857
|
+
private isFieldClick_(): boolean {
|
|
934
858
|
const fieldClickable =
|
|
935
859
|
this.startField_ ? this.startField_.isClickable() : false;
|
|
936
860
|
return fieldClickable && !this.hasExceededDragRadius_ &&
|
|
@@ -940,10 +864,9 @@ class Gesture {
|
|
|
940
864
|
/**
|
|
941
865
|
* Whether this gesture is a click on a workspace. This should only be called
|
|
942
866
|
* when ending a gesture (mouse up, touch end).
|
|
943
|
-
* @return
|
|
944
|
-
* @private
|
|
867
|
+
* @return Whether this gesture was a click on a workspace.
|
|
945
868
|
*/
|
|
946
|
-
isWorkspaceClick_() {
|
|
869
|
+
private isWorkspaceClick_(): boolean {
|
|
947
870
|
const onlyTouchedWorkspace =
|
|
948
871
|
!this.startBlock_ && !this.startBubble_ && !this.startField_;
|
|
949
872
|
return onlyTouchedWorkspace && !this.hasExceededDragRadius_;
|
|
@@ -955,10 +878,10 @@ class Gesture {
|
|
|
955
878
|
* Whether this gesture is a drag of either a workspace or block.
|
|
956
879
|
* This function is called externally to block actions that cannot be taken
|
|
957
880
|
* mid-drag (e.g. using the keyboard to delete the selected blocks).
|
|
958
|
-
* @return
|
|
959
|
-
* @
|
|
881
|
+
* @return True if this gesture is a drag of a workspace or block.
|
|
882
|
+
* @internal
|
|
960
883
|
*/
|
|
961
|
-
isDragging() {
|
|
884
|
+
isDragging(): boolean {
|
|
962
885
|
return this.isDraggingWorkspace_ || this.isDraggingBlock_ ||
|
|
963
886
|
this.isDraggingBubble_;
|
|
964
887
|
}
|
|
@@ -967,21 +890,20 @@ class Gesture {
|
|
|
967
890
|
* Whether this gesture has already been started. In theory every mouse down
|
|
968
891
|
* has a corresponding mouse up, but in reality it is possible to lose a
|
|
969
892
|
* mouse up, leaving an in-process gesture hanging.
|
|
970
|
-
* @return
|
|
971
|
-
* @
|
|
893
|
+
* @return Whether this gesture was a click on a workspace.
|
|
894
|
+
* @internal
|
|
972
895
|
*/
|
|
973
|
-
hasStarted() {
|
|
896
|
+
hasStarted(): boolean {
|
|
974
897
|
return this.hasStarted_;
|
|
975
898
|
}
|
|
976
899
|
|
|
977
900
|
/**
|
|
978
901
|
* Get a list of the insertion markers that currently exist. Block drags have
|
|
979
902
|
* 0, 1, or 2 insertion markers.
|
|
980
|
-
* @return
|
|
981
|
-
*
|
|
982
|
-
* @package
|
|
903
|
+
* @return A possibly empty list of insertion marker blocks.
|
|
904
|
+
* @internal
|
|
983
905
|
*/
|
|
984
|
-
getInsertionMarkers() {
|
|
906
|
+
getInsertionMarkers(): BlockSvg[] {
|
|
985
907
|
if (this.blockDragger_) {
|
|
986
908
|
return this.blockDragger_.getInsertionMarkers();
|
|
987
909
|
}
|
|
@@ -991,10 +913,10 @@ class Gesture {
|
|
|
991
913
|
/**
|
|
992
914
|
* Gets the current dragger if an item is being dragged. Null if nothing is
|
|
993
915
|
* being dragged.
|
|
994
|
-
* @return
|
|
995
|
-
*
|
|
916
|
+
* @return The dragger that is currently in use or null if no drag is in
|
|
917
|
+
* progress.
|
|
996
918
|
*/
|
|
997
|
-
getCurrentDragger() {
|
|
919
|
+
getCurrentDragger(): WorkspaceDragger|BubbleDragger|IBlockDragger|null {
|
|
998
920
|
if (this.isDraggingBlock_) {
|
|
999
921
|
return this.blockDragger_;
|
|
1000
922
|
} else if (this.isDraggingWorkspace_) {
|
|
@@ -1007,20 +929,18 @@ class Gesture {
|
|
|
1007
929
|
|
|
1008
930
|
/**
|
|
1009
931
|
* Is a drag or other gesture currently in progress on any workspace?
|
|
1010
|
-
* @return
|
|
932
|
+
* @return True if gesture is occurring.
|
|
1011
933
|
*/
|
|
1012
|
-
static inProgress() {
|
|
1013
|
-
const workspaces =
|
|
1014
|
-
for (let i = 0, workspace;
|
|
934
|
+
static inProgress(): boolean {
|
|
935
|
+
const workspaces = common.getAllWorkspaces();
|
|
936
|
+
for (let i = 0, workspace; workspace = workspaces[i]; i++) {
|
|
1015
937
|
// Not actually necessarily a WorkspaceSvg, but it doesn't matter b/c
|
|
1016
938
|
// we're just checking if the property exists. Theoretically we would
|
|
1017
939
|
// want to use instanceof, but that causes a circular dependency.
|
|
1018
|
-
if (
|
|
940
|
+
if ((workspace as WorkspaceSvg).currentGesture_) {
|
|
1019
941
|
return true;
|
|
1020
942
|
}
|
|
1021
943
|
}
|
|
1022
944
|
return false;
|
|
1023
945
|
}
|
|
1024
946
|
}
|
|
1025
|
-
|
|
1026
|
-
exports.Gesture = Gesture;
|