blockly 8.0.4 → 8.0.5-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blockly.min.js +2421 -2688
- package/blockly_compressed.js +1499 -1994
- package/blockly_compressed.js.map +1 -1
- package/blocks/blocks.js +3 -2
- package/blocks/colour.js +3 -1
- package/blocks/lists.js +94 -22
- package/blocks/logic.js +14 -6
- package/blocks/loops.js +5 -3
- package/blocks/math.js +3 -1
- package/blocks/procedures.js +3 -1
- package/blocks/text.js +14 -6
- package/blocks/variables.js +3 -1
- package/blocks/variables_dynamic.js +3 -1
- package/blocks.d.ts +0 -2
- package/blocks_compressed.js +189 -171
- package/blocks_compressed.js.map +1 -1
- package/closure/goog/base.d.ts +1 -0
- package/closure/goog/base_minimal.d.ts +18 -0
- package/closure/goog/goog.d.ts +25 -0
- package/core/any_aliases.d.ts +1 -0
- package/core/any_aliases.ts +1 -0
- package/core/block.d.ts +779 -0
- package/core/{block.js → block.ts} +610 -719
- package/core/block_animations.d.ts +33 -0
- package/core/{block_animations.js → block_animations.ts} +75 -79
- package/core/block_drag_surface.d.ts +111 -0
- package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
- package/core/block_dragger.d.ts +143 -0
- package/core/{block_dragger.js → block_dragger.ts} +139 -176
- package/core/block_svg.d.ts +588 -0
- package/core/{block_svg.js → block_svg.ts} +494 -630
- package/core/blockly.d.ts +562 -0
- package/core/blockly.js +1 -1
- package/core/blockly.ts +749 -0
- package/core/blockly_options.d.ts +69 -0
- package/core/blockly_options.ts +81 -0
- package/core/blocks.d.ts +17 -0
- package/core/{blocks.js → blocks.ts} +4 -8
- package/core/browser_events.d.ts +85 -0
- package/core/{browser_events.js → browser_events.ts} +98 -93
- package/core/bubble.d.ts +279 -0
- package/core/{bubble.js → bubble.ts} +277 -370
- package/core/bubble_dragger.d.ts +73 -0
- package/core/bubble_dragger.ts +229 -0
- package/core/bump_objects.d.ts +34 -0
- package/core/{bump_objects.js → bump_objects.ts} +54 -52
- package/core/clipboard.d.ts +42 -0
- package/core/clipboard.ts +91 -0
- package/core/comment.d.ts +113 -0
- package/core/{comment.js → comment.ts} +135 -185
- package/core/common.d.ts +129 -0
- package/core/{common.js → common.ts} +105 -82
- package/core/component_manager.d.ts +91 -0
- package/core/component_manager.ts +211 -0
- package/core/config.d.ts +23 -0
- package/core/{config.js → config.ts} +12 -19
- package/core/connection.d.ts +232 -0
- package/core/{connection.js → connection.ts} +187 -237
- package/core/connection_checker.d.ts +78 -0
- package/core/{connection_checker.js → connection_checker.ts} +66 -77
- package/core/connection_db.d.ts +91 -0
- package/core/{connection_db.js → connection_db.ts} +62 -87
- package/core/connection_type.d.ts +15 -0
- package/core/{connection_type.js → connection_type.ts} +8 -12
- package/core/constants.d.ts +15 -0
- package/core/{constants.js → constants.ts} +4 -8
- package/core/contextmenu.d.ts +80 -0
- package/core/{contextmenu.js → contextmenu.ts} +118 -153
- package/core/contextmenu_items.d.ts +77 -0
- package/core/contextmenu_items.ts +576 -0
- package/core/contextmenu_registry.d.ts +105 -0
- package/core/contextmenu_registry.ts +179 -0
- package/core/css.d.ts +24 -0
- package/core/{css.js → css.ts} +16 -24
- package/core/delete_area.d.ts +47 -0
- package/core/delete_area.ts +82 -0
- package/core/dialog.d.ts +61 -0
- package/core/dialog.ts +127 -0
- package/core/drag_target.d.ts +63 -0
- package/core/drag_target.ts +94 -0
- package/core/dropdowndiv.d.ts +155 -0
- package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
- package/core/events/events.d.ts +102 -0
- package/core/events/events.ts +123 -0
- package/core/events/events_abstract.d.ts +51 -0
- package/core/events/events_abstract.ts +112 -0
- package/core/events/events_block_base.d.ts +31 -0
- package/core/events/events_block_base.ts +65 -0
- package/core/events/events_block_change.d.ts +55 -0
- package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
- package/core/events/events_block_create.d.ts +35 -0
- package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
- package/core/events/events_block_delete.d.ts +36 -0
- package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
- package/core/events/events_block_drag.d.ts +36 -0
- package/core/events/events_block_drag.ts +82 -0
- package/core/events/events_block_move.d.ts +51 -0
- package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
- package/core/events/events_bubble_open.d.ts +35 -0
- package/core/events/events_bubble_open.ts +82 -0
- package/core/events/events_click.d.ts +36 -0
- package/core/events/{events_click.js → events_click.ts} +27 -30
- package/core/events/events_comment_base.d.ts +39 -0
- package/core/events/events_comment_base.ts +107 -0
- package/core/events/events_comment_change.d.ts +43 -0
- package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
- package/core/events/events_comment_create.d.ts +35 -0
- package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
- package/core/events/events_comment_delete.d.ts +35 -0
- package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
- package/core/events/events_comment_move.d.ts +55 -0
- package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
- package/core/events/events_marker_move.d.ts +40 -0
- package/core/events/events_marker_move.ts +99 -0
- package/core/events/events_selected.d.ts +34 -0
- package/core/events/events_selected.ts +78 -0
- package/core/events/events_theme_change.d.ts +30 -0
- package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
- package/core/events/events_toolbox_item_select.d.ts +34 -0
- package/core/events/events_toolbox_item_select.ts +79 -0
- package/core/events/events_trashcan_open.d.ts +31 -0
- package/core/events/events_trashcan_open.ts +68 -0
- package/core/events/events_ui.d.ts +37 -0
- package/core/events/{events_ui.js → events_ui.ts} +27 -26
- package/core/events/events_ui_base.d.ts +26 -0
- package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
- package/core/events/events_var_base.d.ts +31 -0
- package/core/events/events_var_base.ts +65 -0
- package/core/events/events_var_create.d.ts +35 -0
- package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
- package/core/events/events_var_delete.d.ts +35 -0
- package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
- package/core/events/events_var_rename.d.ts +36 -0
- package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
- package/core/events/events_viewport.d.ts +39 -0
- package/core/events/events_viewport.ts +100 -0
- package/core/events/utils.d.ts +272 -0
- package/core/events/{utils.js → utils.ts} +148 -219
- package/core/events/workspace_events.d.ts +36 -0
- package/core/events/workspace_events.ts +86 -0
- package/core/extensions.d.ts +107 -0
- package/core/{extensions.js → extensions.ts} +153 -172
- package/core/field.d.ts +534 -0
- package/core/{field.js → field.ts} +413 -489
- package/core/field_angle.d.ts +176 -0
- package/core/field_angle.ts +563 -0
- package/core/field_checkbox.d.ts +124 -0
- package/core/field_checkbox.ts +243 -0
- package/core/field_colour.d.ts +200 -0
- package/core/field_colour.ts +632 -0
- package/core/field_dropdown.d.ts +222 -0
- package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
- package/core/field_image.d.ts +134 -0
- package/core/field_image.ts +282 -0
- package/core/field_label.d.ts +71 -0
- package/core/field_label.ts +152 -0
- package/core/field_label_serializable.d.ts +42 -0
- package/core/field_label_serializable.ts +76 -0
- package/core/field_multilineinput.d.ts +146 -0
- package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
- package/core/field_number.d.ts +156 -0
- package/core/{field_number.js → field_number.ts} +110 -123
- package/core/field_registry.d.ts +45 -0
- package/core/{field_registry.js → field_registry.ts} +37 -30
- package/core/field_textinput.d.ts +219 -0
- package/core/field_textinput.ts +591 -0
- package/core/field_variable.d.ts +217 -0
- package/core/{field_variable.js → field_variable.ts} +174 -187
- package/core/flyout_base.d.ts +459 -0
- package/core/{flyout_base.js → flyout_base.ts} +429 -518
- package/core/flyout_button.d.ts +81 -0
- package/core/flyout_button.ts +292 -0
- package/core/flyout_horizontal.d.ts +82 -0
- package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
- package/core/flyout_metrics_manager.d.ts +40 -0
- package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
- package/core/flyout_vertical.d.ts +83 -0
- package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
- package/core/generator.d.ts +205 -0
- package/core/{generator.js → generator.ts} +168 -193
- package/core/gesture.d.ts +357 -0
- package/core/{gesture.js → gesture.ts} +289 -369
- package/core/grid.d.ts +83 -0
- package/core/grid.ts +192 -0
- package/core/icon.d.ts +78 -0
- package/core/icon.ts +189 -0
- package/core/inject.d.ts +15 -0
- package/core/{inject.js → inject.ts} +101 -100
- package/core/input.d.ts +128 -0
- package/core/input.ts +309 -0
- package/core/input_types.d.ts +14 -0
- package/core/{input_types.js → input_types.ts} +8 -12
- package/core/insertion_marker_manager.d.ts +212 -0
- package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
- package/core/interfaces/i_ast_node_location.d.ts +11 -0
- package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
- package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
- package/core/interfaces/i_ast_node_location_svg.ts +37 -0
- package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
- package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
- package/core/interfaces/i_autohideable.d.ts +18 -0
- package/core/interfaces/i_autohideable.ts +34 -0
- package/core/interfaces/i_block_dragger.d.ts +43 -0
- package/core/interfaces/i_block_dragger.ts +67 -0
- package/core/interfaces/i_bounded_element.d.ts +24 -0
- package/core/interfaces/i_bounded_element.ts +42 -0
- package/core/interfaces/i_bubble.d.ts +59 -0
- package/core/interfaces/i_bubble.ts +88 -0
- package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
- package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
- package/core/interfaces/i_component.d.ts +17 -0
- package/core/interfaces/{i_component.js → i_component.ts} +9 -14
- package/core/interfaces/i_connection_checker.d.ts +69 -0
- package/core/interfaces/i_connection_checker.ts +102 -0
- package/core/interfaces/i_contextmenu.d.ts +13 -0
- package/core/interfaces/i_contextmenu.ts +26 -0
- package/core/interfaces/i_copyable.d.ts +24 -0
- package/core/interfaces/i_copyable.ts +40 -0
- package/core/interfaces/i_deletable.d.ts +16 -0
- package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
- package/core/interfaces/i_delete_area.d.ts +25 -0
- package/core/interfaces/i_delete_area.ts +46 -0
- package/core/interfaces/i_drag_target.d.ts +53 -0
- package/core/interfaces/i_drag_target.ts +84 -0
- package/core/interfaces/i_draggable.d.ts +12 -0
- package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
- package/core/interfaces/i_flyout.d.ts +134 -0
- package/core/interfaces/i_flyout.ts +186 -0
- package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
- package/core/interfaces/i_keyboard_accessible.ts +35 -0
- package/core/interfaces/i_metrics_manager.d.ts +117 -0
- package/core/interfaces/i_metrics_manager.ts +151 -0
- package/core/interfaces/i_movable.d.ts +16 -0
- package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
- package/core/interfaces/i_positionable.d.ts +27 -0
- package/core/interfaces/i_positionable.ts +50 -0
- package/core/interfaces/i_registrable.d.ts +11 -0
- package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
- package/core/interfaces/i_registrable_field.d.ts +17 -0
- package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
- package/core/interfaces/i_selectable.d.ts +18 -0
- package/core/interfaces/i_selectable.ts +34 -0
- package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
- package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
- package/core/interfaces/i_serializer.d.ts +42 -0
- package/core/interfaces/i_serializer.ts +65 -0
- package/core/interfaces/i_styleable.d.ts +21 -0
- package/core/interfaces/i_styleable.ts +35 -0
- package/core/interfaces/i_toolbox.d.ts +85 -0
- package/core/interfaces/i_toolbox.ts +127 -0
- package/core/interfaces/i_toolbox_item.d.ts +62 -0
- package/core/interfaces/i_toolbox_item.ts +84 -0
- package/core/internal_constants.d.ts +40 -0
- package/core/{internal_constants.js → internal_constants.ts} +13 -18
- package/core/keyboard_nav/ast_node.d.ts +239 -0
- package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
- package/core/keyboard_nav/basic_cursor.d.ts +88 -0
- package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
- package/core/keyboard_nav/cursor.d.ts +41 -0
- package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
- package/core/keyboard_nav/marker.d.ts +58 -0
- package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
- package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
- package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
- package/core/main.d.ts +11 -0
- package/core/main.js +303 -0
- package/core/marker_manager.d.ts +85 -0
- package/core/marker_manager.ts +181 -0
- package/core/menu.d.ts +149 -0
- package/core/{menu.js → menu.ts} +141 -174
- package/core/menuitem.d.ts +118 -0
- package/core/menuitem.ts +240 -0
- package/core/metrics_manager.d.ts +201 -0
- package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
- package/core/msg.d.ts +9 -0
- package/core/{msg.js → msg.ts} +4 -8
- package/core/mutator.d.ts +128 -0
- package/core/{mutator.js → mutator.ts} +196 -211
- package/core/names.d.ts +124 -0
- package/core/names.ts +267 -0
- package/core/options.d.ts +137 -0
- package/core/{options.js → options.ts} +147 -173
- package/core/positionable_helpers.d.ts +88 -0
- package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
- package/core/procedures.d.ts +108 -0
- package/core/{procedures.js → procedures.ts} +143 -152
- package/core/registry.d.ts +137 -0
- package/core/registry.ts +339 -0
- package/core/rendered_connection.d.ts +191 -0
- package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
- package/core/renderers/common/block_rendering.d.ts +114 -0
- package/core/renderers/common/block_rendering.ts +164 -0
- package/core/renderers/common/constants.d.ts +458 -0
- package/core/renderers/common/constants.ts +1124 -0
- package/core/renderers/common/debug.d.ts +28 -0
- package/core/renderers/common/{debug.js → debug.ts} +14 -20
- package/core/renderers/common/debugger.d.ts +120 -0
- package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
- package/core/renderers/common/drawer.d.ts +132 -0
- package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
- package/core/renderers/common/i_path_object.d.ts +117 -0
- package/core/renderers/common/i_path_object.ts +161 -0
- package/core/renderers/common/info.d.ts +194 -0
- package/core/renderers/common/{info.js → info.ts} +165 -222
- package/core/renderers/common/marker_svg.d.ts +220 -0
- package/core/renderers/common/marker_svg.ts +680 -0
- package/core/renderers/common/path_object.d.ts +146 -0
- package/core/renderers/common/path_object.ts +272 -0
- package/core/renderers/common/renderer.d.ts +157 -0
- package/core/renderers/common/renderer.ts +271 -0
- package/core/renderers/geras/constants.d.ts +23 -0
- package/core/renderers/geras/constants.ts +61 -0
- package/core/renderers/geras/drawer.d.ts +43 -0
- package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
- package/core/renderers/geras/geras.d.ts +11 -0
- package/core/renderers/geras/geras.ts +37 -0
- package/core/renderers/geras/highlight_constants.d.ts +108 -0
- package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
- package/core/renderers/geras/highlighter.d.ts +98 -0
- package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
- package/core/renderers/geras/info.d.ts +45 -0
- package/core/renderers/geras/{info.js → info.ts} +61 -99
- package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
- package/core/renderers/geras/measurables/inline_input.ts +51 -0
- package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
- package/core/renderers/geras/measurables/statement_input.ts +50 -0
- package/core/renderers/geras/path_object.d.ts +47 -0
- package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
- package/core/renderers/geras/renderer.d.ts +69 -0
- package/core/renderers/geras/renderer.ts +126 -0
- package/core/renderers/measurables/base.d.ts +27 -0
- package/core/renderers/measurables/base.ts +53 -0
- package/core/renderers/measurables/bottom_row.d.ts +61 -0
- package/core/renderers/measurables/bottom_row.ts +120 -0
- package/core/renderers/measurables/connection.d.ts +25 -0
- package/core/renderers/measurables/connection.ts +52 -0
- package/core/renderers/measurables/external_value_input.d.ts +27 -0
- package/core/renderers/measurables/external_value_input.ts +65 -0
- package/core/renderers/measurables/field.d.ts +30 -0
- package/core/renderers/measurables/field.ts +63 -0
- package/core/renderers/measurables/hat.d.ts +21 -0
- package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
- package/core/renderers/measurables/icon.d.ts +26 -0
- package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
- package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
- package/core/renderers/measurables/in_row_spacer.ts +44 -0
- package/core/renderers/measurables/inline_input.d.ts +24 -0
- package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
- package/core/renderers/measurables/input_connection.d.ts +29 -0
- package/core/renderers/measurables/input_connection.ts +66 -0
- package/core/renderers/measurables/input_row.d.ts +30 -0
- package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
- package/core/renderers/measurables/jagged_edge.d.ts +20 -0
- package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
- package/core/renderers/measurables/next_connection.d.ts +23 -0
- package/core/renderers/measurables/next_connection.ts +47 -0
- package/core/renderers/measurables/output_connection.d.ts +26 -0
- package/core/renderers/measurables/output_connection.ts +56 -0
- package/core/renderers/measurables/previous_connection.d.ts +23 -0
- package/core/renderers/measurables/previous_connection.ts +47 -0
- package/core/renderers/measurables/round_corner.d.ts +21 -0
- package/core/renderers/measurables/round_corner.ts +49 -0
- package/core/renderers/measurables/row.d.ts +141 -0
- package/core/renderers/measurables/row.ts +225 -0
- package/core/renderers/measurables/spacer_row.d.ts +29 -0
- package/core/renderers/measurables/spacer_row.ts +55 -0
- package/core/renderers/measurables/square_corner.d.ts +21 -0
- package/core/renderers/measurables/square_corner.ts +47 -0
- package/core/renderers/measurables/statement_input.d.ts +22 -0
- package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
- package/core/renderers/measurables/top_row.d.ts +56 -0
- package/core/renderers/measurables/top_row.ts +122 -0
- package/core/renderers/measurables/types.d.ts +235 -0
- package/core/renderers/measurables/types.ts +332 -0
- package/core/renderers/minimalist/constants.d.ts +14 -0
- package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
- package/core/renderers/minimalist/drawer.d.ts +21 -0
- package/core/renderers/minimalist/drawer.ts +38 -0
- package/core/renderers/minimalist/info.d.ts +30 -0
- package/core/renderers/minimalist/info.ts +52 -0
- package/core/renderers/minimalist/minimalist.d.ts +6 -0
- package/core/renderers/minimalist/minimalist.ts +22 -0
- package/core/renderers/minimalist/renderer.d.ts +41 -0
- package/core/renderers/minimalist/renderer.ts +71 -0
- package/core/renderers/thrasos/info.d.ts +40 -0
- package/core/renderers/thrasos/{info.js → info.ts} +66 -67
- package/core/renderers/thrasos/renderer.d.ts +25 -0
- package/core/renderers/thrasos/renderer.ts +48 -0
- package/core/renderers/thrasos/thrasos.d.ts +4 -0
- package/core/renderers/thrasos/thrasos.ts +20 -0
- package/core/renderers/zelos/constants.d.ts +186 -0
- package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
- package/core/renderers/zelos/drawer.d.ts +47 -0
- package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
- package/core/renderers/zelos/info.d.ts +88 -0
- package/core/renderers/zelos/{info.js → info.ts} +111 -142
- package/core/renderers/zelos/marker_svg.d.ts +46 -0
- package/core/renderers/zelos/marker_svg.ts +151 -0
- package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
- package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
- package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
- package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
- package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
- package/core/renderers/zelos/measurables/row_elements.ts +45 -0
- package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
- package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
- package/core/renderers/zelos/path_object.d.ts +77 -0
- package/core/renderers/zelos/path_object.ts +215 -0
- package/core/renderers/zelos/renderer.d.ts +74 -0
- package/core/renderers/zelos/renderer.ts +142 -0
- package/core/renderers/zelos/zelos.d.ts +12 -0
- package/core/renderers/zelos/zelos.ts +39 -0
- package/core/scrollbar.d.ts +277 -0
- package/core/{scrollbar.js → scrollbar.ts} +307 -328
- package/core/scrollbar_pair.d.ts +105 -0
- package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
- package/core/serialization/blocks.d.ts +98 -0
- package/core/serialization/{blocks.js → blocks.ts} +229 -228
- package/core/serialization/exceptions.d.ts +73 -0
- package/core/serialization/exceptions.ts +98 -0
- package/core/serialization/priorities.d.ts +15 -0
- package/core/serialization/{priorities.js → priorities.ts} +4 -10
- package/core/serialization/registry.d.ts +20 -0
- package/core/serialization/{registry.js → registry.ts} +11 -13
- package/core/serialization/variables.d.ts +14 -0
- package/core/serialization/{variables.js → variables.ts} +30 -32
- package/core/serialization/workspaces.d.ts +28 -0
- package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
- package/core/shortcut_items.d.ts +61 -0
- package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
- package/core/shortcut_registry.d.ts +151 -0
- package/core/shortcut_registry.ts +355 -0
- package/core/sprites.d.ts +19 -0
- package/core/{sprites.js → sprites.ts} +4 -6
- package/core/theme/classic.d.ts +12 -0
- package/core/theme/{classic.js → classic.ts} +5 -7
- package/core/theme/themes.d.ts +8 -0
- package/core/theme/themes.ts +22 -0
- package/core/theme/zelos.d.ts +11 -0
- package/core/theme/{zelos.js → zelos.ts} +4 -7
- package/core/theme.d.ts +142 -0
- package/core/theme.ts +221 -0
- package/core/theme_manager.d.ts +81 -0
- package/core/theme_manager.ts +186 -0
- package/core/toolbox/category.d.ts +239 -0
- package/core/toolbox/category.ts +679 -0
- package/core/toolbox/collapsible_category.d.ts +91 -0
- package/core/toolbox/collapsible_category.ts +273 -0
- package/core/toolbox/separator.d.ts +39 -0
- package/core/toolbox/separator.ts +105 -0
- package/core/toolbox/toolbox.d.ts +352 -0
- package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
- package/core/toolbox/toolbox_item.d.ts +85 -0
- package/core/toolbox/toolbox_item.ts +147 -0
- package/core/tooltip.d.ts +126 -0
- package/core/{tooltip.js → tooltip.ts} +136 -214
- package/core/touch.d.ts +121 -0
- package/core/touch.ts +306 -0
- package/core/touch_gesture.d.ts +115 -0
- package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
- package/core/trashcan.d.ts +195 -0
- package/core/{trashcan.js → trashcan.ts} +226 -312
- package/core/utils/aria.d.ts +67 -0
- package/core/utils/{aria.js → aria.ts} +47 -61
- package/core/utils/array.d.ts +14 -0
- package/core/utils/{array.js → array.ts} +10 -12
- package/core/utils/colour.d.ts +103 -0
- package/core/utils/{colour.js → colour.ts} +60 -72
- package/core/utils/coordinate.d.ts +72 -0
- package/core/utils/coordinate.ts +124 -0
- package/core/utils/deprecation.d.ts +17 -0
- package/core/utils/{deprecation.js → deprecation.ts} +11 -11
- package/core/utils/dom.d.ts +165 -0
- package/core/utils/{dom.js → dom.ts} +125 -147
- package/core/utils/idgenerator.d.ts +25 -0
- package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
- package/core/utils/keycodes.d.ts +137 -0
- package/core/utils/keycodes.ts +169 -0
- package/core/utils/math.d.ts +30 -0
- package/core/utils/{math.js → math.ts} +17 -19
- package/core/utils/metrics.d.ts +64 -0
- package/core/utils/metrics.ts +97 -0
- package/core/utils/object.d.ts +35 -0
- package/core/utils/{object.js → object.ts} +30 -26
- package/core/utils/parsing.d.ts +50 -0
- package/core/utils/{parsing.js → parsing.ts} +50 -50
- package/core/utils/rect.d.ts +38 -0
- package/core/utils/{rect.js → rect.ts} +18 -31
- package/core/utils/sentinel.d.ts +11 -0
- package/core/utils/{sentinel.js → sentinel.ts} +3 -5
- package/core/utils/size.d.ts +27 -0
- package/core/utils/{size.js → size.ts} +12 -26
- package/core/utils/string.d.ts +55 -0
- package/core/utils/{string.js → string.ts} +64 -61
- package/core/utils/style.d.ts +127 -0
- package/core/utils/{style.js → style.ts} +102 -92
- package/core/utils/svg.d.ts +68 -0
- package/core/utils/svg.ts +88 -0
- package/core/utils/svg_math.d.ts +70 -0
- package/core/utils/{svg_math.js → svg_math.ts} +72 -71
- package/core/utils/svg_paths.d.ts +101 -0
- package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
- package/core/utils/toolbox.d.ts +193 -0
- package/core/utils/toolbox.ts +433 -0
- package/core/utils/useragent.d.ts +33 -0
- package/core/utils/useragent.ts +135 -0
- package/core/utils/xml.d.ts +52 -0
- package/core/utils/{xml.js → xml.ts} +26 -36
- package/core/utils.d.ts +217 -0
- package/core/utils.ts +428 -0
- package/core/variable_map.d.ts +141 -0
- package/core/{variable_map.js → variable_map.ts} +131 -149
- package/core/variable_model.d.ts +40 -0
- package/core/variable_model.ts +82 -0
- package/core/variables.d.ts +181 -0
- package/core/{variables.js → variables.ts} +206 -188
- package/core/variables_dynamic.d.ts +38 -0
- package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
- package/core/warning.d.ts +50 -0
- package/core/{warning.js → warning.ts} +52 -66
- package/core/widgetdiv.d.ts +69 -0
- package/core/widgetdiv.ts +257 -0
- package/core/workspace.d.ts +386 -0
- package/core/workspace.ts +801 -0
- package/core/workspace_audio.d.ts +47 -0
- package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
- package/core/workspace_comment.d.ts +170 -0
- package/core/workspace_comment.ts +398 -0
- package/core/workspace_comment_svg.d.ts +329 -0
- package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
- package/core/workspace_drag_surface_svg.d.ts +68 -0
- package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
- package/core/workspace_dragger.d.ts +48 -0
- package/core/workspace_dragger.ts +104 -0
- package/core/workspace_svg.d.ts +920 -0
- package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
- package/core/xml.d.ts +117 -0
- package/core/{xml.js → xml.ts} +306 -326
- package/core/zoom_controls.d.ts +130 -0
- package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
- package/core.d.ts +1 -3
- package/core.js +1 -2
- package/dart.d.ts +0 -3
- package/dart_compressed.js +387 -99
- package/dart_compressed.js.map +1 -1
- package/generators/dart/all.js +2 -0
- package/generators/dart/colour.js +1 -1
- package/generators/dart/lists.js +1 -1
- package/generators/dart/logic.js +1 -1
- package/generators/dart/loops.js +1 -1
- package/generators/dart/math.js +1 -1
- package/generators/dart/procedures.js +1 -1
- package/generators/dart/text.js +1 -1
- package/generators/dart/variables.js +1 -1
- package/generators/dart/variables_dynamic.js +1 -1
- package/generators/dart.js +1 -2
- package/generators/javascript/all.js +2 -0
- package/generators/javascript/colour.js +1 -1
- package/generators/javascript/lists.js +1 -1
- package/generators/javascript/logic.js +1 -1
- package/generators/javascript/loops.js +1 -1
- package/generators/javascript/math.js +4 -4
- package/generators/javascript/procedures.js +1 -1
- package/generators/javascript/text.js +2 -2
- package/generators/javascript/variables.js +1 -1
- package/generators/javascript/variables_dynamic.js +1 -1
- package/generators/javascript.js +1 -3
- package/generators/lua/all.js +2 -0
- package/generators/lua/colour.js +1 -1
- package/generators/lua/lists.js +1 -1
- package/generators/lua/logic.js +1 -1
- package/generators/lua/loops.js +1 -1
- package/generators/lua/math.js +1 -1
- package/generators/lua/procedures.js +1 -1
- package/generators/lua/text.js +1 -1
- package/generators/lua/variables.js +1 -1
- package/generators/lua/variables_dynamic.js +1 -1
- package/generators/lua.js +1 -2
- package/generators/php/all.js +2 -0
- package/generators/php/colour.js +1 -1
- package/generators/php/lists.js +1 -2
- package/generators/php/logic.js +1 -1
- package/generators/php/loops.js +1 -1
- package/generators/php/math.js +1 -1
- package/generators/php/procedures.js +1 -1
- package/generators/php/text.js +1 -1
- package/generators/php/variables.js +1 -1
- package/generators/php/variables_dynamic.js +1 -1
- package/generators/php.js +1 -2
- package/generators/python/all.js +2 -0
- package/generators/python/colour.js +3 -3
- package/generators/python/lists.js +1 -1
- package/generators/python/logic.js +1 -1
- package/generators/python/loops.js +4 -7
- package/generators/python/math.js +1 -1
- package/generators/python/procedures.js +1 -1
- package/generators/python/text.js +1 -1
- package/generators/python/variables.js +1 -1
- package/generators/python/variables_dynamic.js +1 -1
- package/generators/python.js +1 -2
- package/index.d.ts +2 -8
- package/javascript.d.ts +0 -3
- package/javascript_compressed.js +314 -104
- package/javascript_compressed.js.map +1 -1
- package/lua.d.ts +0 -3
- package/lua_compressed.js +399 -81
- package/lua_compressed.js.map +1 -1
- package/msg/ab.js +420 -420
- package/msg/ace.js +420 -420
- package/msg/af.js +420 -420
- package/msg/am.js +420 -420
- package/msg/ar.js +420 -420
- package/msg/ast.js +420 -420
- package/msg/az.js +420 -420
- package/msg/ba.js +420 -420
- package/msg/bcc.js +420 -420
- package/msg/be-tarask.js +420 -420
- package/msg/be.js +420 -420
- package/msg/bg.js +420 -420
- package/msg/bn.js +420 -420
- package/msg/br.js +420 -420
- package/msg/bs.js +420 -420
- package/msg/ca.js +420 -420
- package/msg/cdo.js +420 -420
- package/msg/cs.js +420 -420
- package/msg/da.js +420 -420
- package/msg/de.js +420 -420
- package/msg/diq.js +420 -420
- package/msg/dty.js +420 -420
- package/msg/ee.js +420 -420
- package/msg/el.js +420 -420
- package/msg/en-gb.js +420 -420
- package/msg/en.js +420 -420
- package/msg/eo.js +420 -420
- package/msg/es.js +420 -420
- package/msg/et.js +420 -420
- package/msg/eu.js +420 -420
- package/msg/fa.js +420 -420
- package/msg/fi.js +420 -420
- package/msg/fo.js +420 -420
- package/msg/fr.js +420 -420
- package/msg/frr.js +420 -420
- package/msg/gl.js +420 -420
- package/msg/gn.js +420 -420
- package/msg/gor.js +420 -420
- package/msg/ha.js +420 -420
- package/msg/hak.js +420 -420
- package/msg/he.js +420 -420
- package/msg/hi.js +420 -420
- package/msg/hr.js +420 -420
- package/msg/hrx.js +420 -420
- package/msg/hu.js +420 -420
- package/msg/hy.js +420 -420
- package/msg/ia.js +420 -420
- package/msg/id.js +420 -420
- package/msg/ig.js +420 -420
- package/msg/inh.js +420 -420
- package/msg/is.js +420 -420
- package/msg/it.js +420 -420
- package/msg/ja.js +420 -420
- package/msg/ka.js +420 -420
- package/msg/kab.js +420 -420
- package/msg/kbd-cyrl.js +420 -420
- package/msg/km.js +420 -420
- package/msg/kn.js +420 -420
- package/msg/ko.js +420 -420
- package/msg/ksh.js +420 -420
- package/msg/ku-latn.js +420 -420
- package/msg/ky.js +420 -420
- package/msg/la.js +420 -420
- package/msg/lb.js +420 -420
- package/msg/lki.js +420 -420
- package/msg/lo.js +420 -420
- package/msg/lrc.js +420 -420
- package/msg/lt.js +420 -420
- package/msg/lv.js +420 -420
- package/msg/mg.js +420 -420
- package/msg/mk.js +420 -420
- package/msg/ml.js +420 -420
- package/msg/mnw.js +420 -420
- package/msg/ms.js +420 -420
- package/msg/my.js +420 -420
- package/msg/mzn.js +420 -420
- package/msg/nb.js +420 -420
- package/msg/ne.js +420 -420
- package/msg/nl.js +420 -420
- package/msg/oc.js +420 -420
- package/msg/olo.js +420 -420
- package/msg/pa.js +420 -420
- package/msg/pl.js +420 -420
- package/msg/pms.js +420 -420
- package/msg/ps.js +420 -420
- package/msg/pt-br.js +420 -420
- package/msg/pt.js +420 -420
- package/msg/ro.js +420 -420
- package/msg/ru.js +420 -420
- package/msg/sc.js +420 -420
- package/msg/sco.js +420 -420
- package/msg/sd.js +420 -420
- package/msg/shn.js +420 -420
- package/msg/si.js +420 -420
- package/msg/sk.js +420 -420
- package/msg/skr-arab.js +420 -420
- package/msg/sl.js +420 -420
- package/msg/smn.js +420 -420
- package/msg/sq.js +420 -420
- package/msg/sr-latn.js +420 -420
- package/msg/sr.js +420 -420
- package/msg/sv.js +420 -420
- package/msg/sw.js +420 -420
- package/msg/ta.js +420 -420
- package/msg/tcy.js +420 -420
- package/msg/te.js +420 -420
- package/msg/th.js +420 -420
- package/msg/ti.js +420 -420
- package/msg/tl.js +420 -420
- package/msg/tlh.js +420 -420
- package/msg/tr.js +420 -420
- package/msg/ug-arab.js +420 -420
- package/msg/uk.js +420 -420
- package/msg/ur.js +420 -420
- package/msg/uz.js +420 -420
- package/msg/vi.js +420 -420
- package/msg/xmf.js +420 -420
- package/msg/yo.js +420 -420
- package/msg/yue.js +420 -420
- package/msg/zgh.js +420 -420
- package/msg/zh-hans.js +420 -420
- package/msg/zh-hant.js +420 -420
- package/package.json +5 -5
- package/php.d.ts +0 -3
- package/php_compressed.js +322 -93
- package/php_compressed.js.map +1 -1
- package/python.d.ts +0 -3
- package/python_compressed.js +237 -90
- package/python_compressed.js.map +1 -1
- package/blockly.d.ts +0 -26127
- package/core/blockly_options.js +0 -28
- package/core/bubble_dragger.js +0 -298
- package/core/clipboard.js +0 -80
- package/core/component_manager.js +0 -263
- package/core/contextmenu_items.js +0 -651
- package/core/contextmenu_registry.js +0 -178
- package/core/delete_area.js +0 -87
- package/core/dialog.js +0 -107
- package/core/drag_target.js +0 -98
- package/core/events/events.js +0 -147
- package/core/events/events_abstract.js +0 -133
- package/core/events/events_block_base.js +0 -70
- package/core/events/events_block_drag.js +0 -89
- package/core/events/events_bubble_open.js +0 -90
- package/core/events/events_comment_base.js +0 -121
- package/core/events/events_marker_move.js +0 -110
- package/core/events/events_selected.js +0 -83
- package/core/events/events_toolbox_item_select.js +0 -84
- package/core/events/events_trashcan_open.js +0 -73
- package/core/events/events_var_base.js +0 -70
- package/core/events/events_viewport.js +0 -107
- package/core/events/workspace_events.js +0 -93
- package/core/field_angle.js +0 -591
- package/core/field_checkbox.js +0 -255
- package/core/field_colour.js +0 -717
- package/core/field_image.js +0 -304
- package/core/field_label.js +0 -149
- package/core/field_label_serializable.js +0 -80
- package/core/field_textinput.js +0 -619
- package/core/flyout_button.js +0 -356
- package/core/grid.js +0 -226
- package/core/icon.js +0 -225
- package/core/input.js +0 -335
- package/core/interfaces/i_ast_node_location_svg.js +0 -45
- package/core/interfaces/i_ast_node_location_with_block.js +0 -41
- package/core/interfaces/i_autohideable.js +0 -40
- package/core/interfaces/i_block_dragger.js +0 -66
- package/core/interfaces/i_bounded_element.js +0 -45
- package/core/interfaces/i_bubble.js +0 -95
- package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
- package/core/interfaces/i_connection_checker.js +0 -104
- package/core/interfaces/i_contextmenu.js +0 -32
- package/core/interfaces/i_copyable.js +0 -49
- package/core/interfaces/i_delete_area.js +0 -50
- package/core/interfaces/i_drag_target.js +0 -88
- package/core/interfaces/i_flyout.js +0 -201
- package/core/interfaces/i_keyboard_accessible.js +0 -38
- package/core/interfaces/i_metrics_manager.js +0 -154
- package/core/interfaces/i_positionable.js +0 -51
- package/core/interfaces/i_selectable.js +0 -51
- package/core/interfaces/i_selectable_toolbox_item.js +0 -73
- package/core/interfaces/i_serializer.js +0 -77
- package/core/interfaces/i_styleable.js +0 -39
- package/core/interfaces/i_toolbox.js +0 -142
- package/core/interfaces/i_toolbox_item.js +0 -85
- package/core/marker_manager.js +0 -213
- package/core/menuitem.js +0 -292
- package/core/names.js +0 -293
- package/core/registry.js +0 -384
- package/core/renderers/common/block_rendering.js +0 -170
- package/core/renderers/common/constants.js +0 -1250
- package/core/renderers/common/i_path_object.js +0 -162
- package/core/renderers/common/marker_svg.js +0 -721
- package/core/renderers/common/path_object.js +0 -283
- package/core/renderers/common/renderer.js +0 -305
- package/core/renderers/geras/constants.js +0 -73
- package/core/renderers/geras/geras.js +0 -36
- package/core/renderers/geras/measurables/inline_input.js +0 -58
- package/core/renderers/geras/measurables/statement_input.js +0 -57
- package/core/renderers/geras/renderer.js +0 -149
- package/core/renderers/measurables/base.js +0 -64
- package/core/renderers/measurables/bottom_row.js +0 -138
- package/core/renderers/measurables/connection.js +0 -56
- package/core/renderers/measurables/external_value_input.js +0 -70
- package/core/renderers/measurables/field.js +0 -71
- package/core/renderers/measurables/in_row_spacer.js +0 -47
- package/core/renderers/measurables/input_connection.js +0 -75
- package/core/renderers/measurables/next_connection.js +0 -50
- package/core/renderers/measurables/output_connection.js +0 -61
- package/core/renderers/measurables/previous_connection.js +0 -50
- package/core/renderers/measurables/round_corner.js +0 -52
- package/core/renderers/measurables/row.js +0 -247
- package/core/renderers/measurables/spacer_row.js +0 -69
- package/core/renderers/measurables/square_corner.js +0 -50
- package/core/renderers/measurables/top_row.js +0 -143
- package/core/renderers/measurables/types.js +0 -353
- package/core/renderers/minimalist/drawer.js +0 -42
- package/core/renderers/minimalist/info.js +0 -54
- package/core/renderers/minimalist/minimalist.js +0 -26
- package/core/renderers/minimalist/renderer.js +0 -80
- package/core/renderers/thrasos/renderer.js +0 -53
- package/core/renderers/thrasos/thrasos.js +0 -22
- package/core/renderers/zelos/marker_svg.js +0 -179
- package/core/renderers/zelos/measurables/bottom_row.js +0 -66
- package/core/renderers/zelos/measurables/row_elements.js +0 -46
- package/core/renderers/zelos/path_object.js +0 -247
- package/core/renderers/zelos/renderer.js +0 -147
- package/core/renderers/zelos/zelos.js +0 -38
- package/core/serialization/exceptions.js +0 -144
- package/core/shortcut_registry.js +0 -366
- package/core/theme/themes.js +0 -23
- package/core/theme.js +0 -228
- package/core/theme_manager.js +0 -211
- package/core/toolbox/category.js +0 -751
- package/core/toolbox/collapsible_category.js +0 -311
- package/core/toolbox/separator.js +0 -133
- package/core/toolbox/toolbox_item.js +0 -173
- package/core/touch.js +0 -285
- package/core/utils/coordinate.js +0 -138
- package/core/utils/global.js +0 -41
- package/core/utils/keycodes.js +0 -172
- package/core/utils/metrics.js +0 -154
- package/core/utils/svg.js +0 -186
- package/core/utils/toolbox.js +0 -459
- package/core/utils/useragent.js +0 -197
- package/core/utils.js +0 -383
- package/core/variable_model.js +0 -96
- package/core/widgetdiv.js +0 -290
- package/core/workspace.js +0 -836
- package/core/workspace_comment.js +0 -400
- package/core/workspace_dragger.js +0 -115
|
@@ -0,0 +1,459 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2011 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { BlockSvg } from './block_svg.js';
|
|
7
|
+
import { DeleteArea } from './delete_area.js';
|
|
8
|
+
import { FlyoutButton } from './flyout_button.js';
|
|
9
|
+
import type { IFlyout } from './interfaces/i_flyout.js';
|
|
10
|
+
import type { Options } from './options.js';
|
|
11
|
+
import { Coordinate } from './utils/coordinate.js';
|
|
12
|
+
import { Svg } from './utils/svg.js';
|
|
13
|
+
import * as toolbox from './utils/toolbox.js';
|
|
14
|
+
import { WorkspaceSvg } from './workspace_svg.js';
|
|
15
|
+
declare enum FlyoutItemType {
|
|
16
|
+
BLOCK = "block",
|
|
17
|
+
BUTTON = "button"
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Class for a flyout.
|
|
21
|
+
* @alias Blockly.Flyout
|
|
22
|
+
*/
|
|
23
|
+
export declare abstract class Flyout extends DeleteArea implements IFlyout {
|
|
24
|
+
/**
|
|
25
|
+
* Position the flyout.
|
|
26
|
+
*/
|
|
27
|
+
abstract position(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Determine if a drag delta is toward the workspace, based on the position
|
|
30
|
+
* and orientation of the flyout. This is used in determineDragIntention_ to
|
|
31
|
+
* determine if a new block should be created or if the flyout should scroll.
|
|
32
|
+
* @param currentDragDeltaXY How far the pointer has
|
|
33
|
+
* moved from the position at mouse down, in pixel units.
|
|
34
|
+
* @return True if the drag is toward the workspace.
|
|
35
|
+
*/
|
|
36
|
+
abstract isDragTowardWorkspace(currentDragDeltaXY: Coordinate): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Sets the translation of the flyout to match the scrollbars.
|
|
39
|
+
* @param xyRatio Contains a y property which is a float
|
|
40
|
+
* between 0 and 1 specifying the degree of scrolling and a
|
|
41
|
+
* similar x property.
|
|
42
|
+
*/
|
|
43
|
+
protected abstract setMetrics_(xyRatio: {
|
|
44
|
+
x: number;
|
|
45
|
+
y: number;
|
|
46
|
+
}): void;
|
|
47
|
+
/**
|
|
48
|
+
* Lay out the blocks in the flyout.
|
|
49
|
+
* @param contents The blocks and buttons to lay
|
|
50
|
+
* out.
|
|
51
|
+
* @param gaps The visible gaps between blocks.
|
|
52
|
+
*/
|
|
53
|
+
protected abstract layout_(contents: FlyoutItem[], gaps: number[]): void;
|
|
54
|
+
/**
|
|
55
|
+
* Scroll the flyout.
|
|
56
|
+
* @param e Mouse wheel scroll event.
|
|
57
|
+
*/
|
|
58
|
+
protected abstract wheel_(e: WheelEvent): void;
|
|
59
|
+
/**
|
|
60
|
+
* Compute height of flyout. Position mat under each block.
|
|
61
|
+
* For RTL: Lay out the blocks right-aligned.
|
|
62
|
+
*/
|
|
63
|
+
protected abstract reflowInternal_(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Calculates the x coordinate for the flyout position.
|
|
66
|
+
* @return X coordinate.
|
|
67
|
+
*/
|
|
68
|
+
abstract getX(): number;
|
|
69
|
+
/**
|
|
70
|
+
* Calculates the y coordinate for the flyout position.
|
|
71
|
+
* @return Y coordinate.
|
|
72
|
+
*/
|
|
73
|
+
abstract getY(): number;
|
|
74
|
+
/**
|
|
75
|
+
* Scroll the flyout to the beginning of its contents.
|
|
76
|
+
*/
|
|
77
|
+
abstract scrollToStart(): void;
|
|
78
|
+
/**
|
|
79
|
+
* The type of a flyout content item.
|
|
80
|
+
*/
|
|
81
|
+
static FlyoutItemType: typeof FlyoutItemType;
|
|
82
|
+
protected workspace_: WorkspaceSvg;
|
|
83
|
+
RTL: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Whether the flyout should be laid out horizontally or not.
|
|
86
|
+
* @internal
|
|
87
|
+
*/
|
|
88
|
+
horizontalLayout: boolean;
|
|
89
|
+
protected toolboxPosition_: number;
|
|
90
|
+
/**
|
|
91
|
+
* Opaque data that can be passed to Blockly.unbindEvent_.
|
|
92
|
+
*/
|
|
93
|
+
private eventWrappers_;
|
|
94
|
+
/**
|
|
95
|
+
* Function that will be registered as a change listener on the workspace
|
|
96
|
+
* to reflow when blocks in the flyout workspace change.
|
|
97
|
+
*/
|
|
98
|
+
private reflowWrapper_;
|
|
99
|
+
/**
|
|
100
|
+
* Function that disables blocks in the flyout based on max block counts
|
|
101
|
+
* allowed in the target workspace. Registered as a change listener on the
|
|
102
|
+
* target workspace.
|
|
103
|
+
*/
|
|
104
|
+
private filterWrapper_;
|
|
105
|
+
/**
|
|
106
|
+
* List of background mats that lurk behind each block to catch clicks
|
|
107
|
+
* landing in the blocks' lakes and bays.
|
|
108
|
+
*/
|
|
109
|
+
private mats_;
|
|
110
|
+
/**
|
|
111
|
+
* List of visible buttons.
|
|
112
|
+
*/
|
|
113
|
+
protected buttons_: FlyoutButton[];
|
|
114
|
+
/**
|
|
115
|
+
* List of event listeners.
|
|
116
|
+
*/
|
|
117
|
+
private listeners_;
|
|
118
|
+
/**
|
|
119
|
+
* List of blocks that should always be disabled.
|
|
120
|
+
*/
|
|
121
|
+
private permanentlyDisabled_;
|
|
122
|
+
protected readonly tabWidth_: number;
|
|
123
|
+
/**
|
|
124
|
+
* The target workspace.
|
|
125
|
+
* @internal
|
|
126
|
+
*/
|
|
127
|
+
targetWorkspace: WorkspaceSvg;
|
|
128
|
+
/**
|
|
129
|
+
* A list of blocks that can be reused.
|
|
130
|
+
*/
|
|
131
|
+
private recycledBlocks_;
|
|
132
|
+
/**
|
|
133
|
+
* Does the flyout automatically close when a block is created?
|
|
134
|
+
*/
|
|
135
|
+
autoClose: boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Whether the flyout is visible.
|
|
138
|
+
*/
|
|
139
|
+
private isVisible_;
|
|
140
|
+
/**
|
|
141
|
+
* Whether the workspace containing this flyout is visible.
|
|
142
|
+
*/
|
|
143
|
+
private containerVisible_;
|
|
144
|
+
protected rectMap_: WeakMap<BlockSvg, SVGElement>;
|
|
145
|
+
/**
|
|
146
|
+
* Corner radius of the flyout background.
|
|
147
|
+
*/
|
|
148
|
+
readonly CORNER_RADIUS: number;
|
|
149
|
+
readonly MARGIN: number;
|
|
150
|
+
readonly GAP_X: number;
|
|
151
|
+
readonly GAP_Y: number;
|
|
152
|
+
/**
|
|
153
|
+
* Top/bottom padding between scrollbar and edge of flyout background.
|
|
154
|
+
*/
|
|
155
|
+
readonly SCROLLBAR_MARGIN: number;
|
|
156
|
+
/**
|
|
157
|
+
* Width of flyout.
|
|
158
|
+
*/
|
|
159
|
+
protected width_: number;
|
|
160
|
+
/**
|
|
161
|
+
* Height of flyout.
|
|
162
|
+
*/
|
|
163
|
+
protected height_: number;
|
|
164
|
+
/**
|
|
165
|
+
* Range of a drag angle from a flyout considered "dragging toward
|
|
166
|
+
* workspace". Drags that are within the bounds of this many degrees from
|
|
167
|
+
* the orthogonal line to the flyout edge are considered to be "drags toward
|
|
168
|
+
* the workspace".
|
|
169
|
+
* Example:
|
|
170
|
+
* Flyout Edge Workspace
|
|
171
|
+
* [block] / <-within this angle, drags "toward workspace" |
|
|
172
|
+
* [block] ---- orthogonal to flyout boundary ---- |
|
|
173
|
+
* [block] \ |
|
|
174
|
+
* The angle is given in degrees from the orthogonal.
|
|
175
|
+
*
|
|
176
|
+
* This is used to know when to create a new block and when to scroll the
|
|
177
|
+
* flyout. Setting it to 360 means that all drags create a new block.
|
|
178
|
+
*/
|
|
179
|
+
protected dragAngleRange_: number;
|
|
180
|
+
/**
|
|
181
|
+
* The path around the background of the flyout, which will be filled with a
|
|
182
|
+
* background colour.
|
|
183
|
+
*/
|
|
184
|
+
protected svgBackground_: SVGPathElement | null;
|
|
185
|
+
/**
|
|
186
|
+
* The root SVG group for the button or label.
|
|
187
|
+
*/
|
|
188
|
+
protected svgGroup_: SVGGElement | null;
|
|
189
|
+
/**
|
|
190
|
+
* @param workspaceOptions Dictionary of options for the
|
|
191
|
+
* workspace.
|
|
192
|
+
*/
|
|
193
|
+
constructor(workspaceOptions: Options);
|
|
194
|
+
/**
|
|
195
|
+
* Creates the flyout's DOM. Only needs to be called once. The flyout can
|
|
196
|
+
* either exist as its own SVG element or be a g element nested inside a
|
|
197
|
+
* separate SVG element.
|
|
198
|
+
* @param tagName The type of tag to
|
|
199
|
+
* put the flyout in. This should be <svg> or <g>.
|
|
200
|
+
* @return The flyout's SVG group.
|
|
201
|
+
*/
|
|
202
|
+
createDom(tagName: string | Svg<SVGSVGElement> | Svg<SVGGElement>): SVGElement;
|
|
203
|
+
/**
|
|
204
|
+
* Initializes the flyout.
|
|
205
|
+
* @param targetWorkspace The workspace in which to
|
|
206
|
+
* create new blocks.
|
|
207
|
+
*/
|
|
208
|
+
init(targetWorkspace: WorkspaceSvg): void;
|
|
209
|
+
/**
|
|
210
|
+
* Dispose of this flyout.
|
|
211
|
+
* Unlink from all DOM elements to prevent memory leaks.
|
|
212
|
+
* @suppress {checkTypes}
|
|
213
|
+
*/
|
|
214
|
+
dispose(): void;
|
|
215
|
+
/**
|
|
216
|
+
* Get the width of the flyout.
|
|
217
|
+
* @return The width of the flyout.
|
|
218
|
+
*/
|
|
219
|
+
getWidth(): number;
|
|
220
|
+
/**
|
|
221
|
+
* Get the height of the flyout.
|
|
222
|
+
* @return The width of the flyout.
|
|
223
|
+
*/
|
|
224
|
+
getHeight(): number;
|
|
225
|
+
/**
|
|
226
|
+
* Get the scale (zoom level) of the flyout. By default,
|
|
227
|
+
* this matches the target workspace scale, but this can be overridden.
|
|
228
|
+
* @return Flyout workspace scale.
|
|
229
|
+
*/
|
|
230
|
+
getFlyoutScale(): number;
|
|
231
|
+
/**
|
|
232
|
+
* Get the workspace inside the flyout.
|
|
233
|
+
* @return The workspace inside the flyout.
|
|
234
|
+
* @internal
|
|
235
|
+
*/
|
|
236
|
+
getWorkspace(): WorkspaceSvg;
|
|
237
|
+
/**
|
|
238
|
+
* Is the flyout visible?
|
|
239
|
+
* @return True if visible.
|
|
240
|
+
*/
|
|
241
|
+
isVisible(): boolean;
|
|
242
|
+
/**
|
|
243
|
+
* Set whether the flyout is visible. A value of true does not necessarily
|
|
244
|
+
* mean that the flyout is shown. It could be hidden because its container is
|
|
245
|
+
* hidden.
|
|
246
|
+
* @param visible True if visible.
|
|
247
|
+
*/
|
|
248
|
+
setVisible(visible: boolean): void;
|
|
249
|
+
/**
|
|
250
|
+
* Set whether this flyout's container is visible.
|
|
251
|
+
* @param visible Whether the container is visible.
|
|
252
|
+
*/
|
|
253
|
+
setContainerVisible(visible: boolean): void;
|
|
254
|
+
/**
|
|
255
|
+
* Update the display property of the flyout based whether it thinks it should
|
|
256
|
+
* be visible and whether its containing workspace is visible.
|
|
257
|
+
*/
|
|
258
|
+
private updateDisplay_;
|
|
259
|
+
/**
|
|
260
|
+
* Update the view based on coordinates calculated in position().
|
|
261
|
+
* @param width The computed width of the flyout's SVG group
|
|
262
|
+
* @param height The computed height of the flyout's SVG group.
|
|
263
|
+
* @param x The computed x origin of the flyout's SVG group.
|
|
264
|
+
* @param y The computed y origin of the flyout's SVG group.
|
|
265
|
+
*/
|
|
266
|
+
protected positionAt_(width: number, height: number, x: number, y: number): void;
|
|
267
|
+
/**
|
|
268
|
+
* Hide and empty the flyout.
|
|
269
|
+
*/
|
|
270
|
+
hide(): void;
|
|
271
|
+
/**
|
|
272
|
+
* Show and populate the flyout.
|
|
273
|
+
* @param flyoutDef Contents to display
|
|
274
|
+
* in the flyout. This is either an array of Nodes, a NodeList, a
|
|
275
|
+
* toolbox definition, or a string with the name of the dynamic category.
|
|
276
|
+
*/
|
|
277
|
+
show(flyoutDef: toolbox.FlyoutDefinition | string): void;
|
|
278
|
+
/**
|
|
279
|
+
* Create the contents array and gaps array necessary to create the layout for
|
|
280
|
+
* the flyout.
|
|
281
|
+
* @param parsedContent The array
|
|
282
|
+
* of objects to show in the flyout.
|
|
283
|
+
* @return The list of contents and gaps needed to lay out the flyout.
|
|
284
|
+
*/
|
|
285
|
+
private createFlyoutInfo_;
|
|
286
|
+
/**
|
|
287
|
+
* Gets the flyout definition for the dynamic category.
|
|
288
|
+
* @param categoryName The name of the dynamic category.
|
|
289
|
+
* @return The definition of the
|
|
290
|
+
* flyout in one of its many forms.
|
|
291
|
+
*/
|
|
292
|
+
private getDynamicCategoryContents_;
|
|
293
|
+
/**
|
|
294
|
+
* Creates a flyout button or a flyout label.
|
|
295
|
+
* @param btnInfo The object holding information about a button or a label.
|
|
296
|
+
* @param isLabel True if the button is a label, false otherwise.
|
|
297
|
+
* @return The object used to display the button in the
|
|
298
|
+
* flyout.
|
|
299
|
+
*/
|
|
300
|
+
private createButton_;
|
|
301
|
+
/**
|
|
302
|
+
* Create a block from the xml and permanently disable any blocks that were
|
|
303
|
+
* defined as disabled.
|
|
304
|
+
* @param blockInfo The info of the block.
|
|
305
|
+
* @return The block created from the blockInfo.
|
|
306
|
+
*/
|
|
307
|
+
private createFlyoutBlock_;
|
|
308
|
+
/**
|
|
309
|
+
* Returns a block from the array of recycled blocks with the given type, or
|
|
310
|
+
* undefined if one cannot be found.
|
|
311
|
+
* @param blockType The type of the block to try to recycle.
|
|
312
|
+
* @return The recycled block, or undefined if
|
|
313
|
+
* one could not be recycled.
|
|
314
|
+
*/
|
|
315
|
+
private getRecycledBlock_;
|
|
316
|
+
/**
|
|
317
|
+
* Adds a gap in the flyout based on block info.
|
|
318
|
+
* @param blockInfo Information about a block.
|
|
319
|
+
* @param gaps The list of gaps between items in the flyout.
|
|
320
|
+
* @param defaultGap The default gap between one element and the
|
|
321
|
+
* next.
|
|
322
|
+
*/
|
|
323
|
+
private addBlockGap_;
|
|
324
|
+
/**
|
|
325
|
+
* Add the necessary gap in the flyout for a separator.
|
|
326
|
+
* @param sepInfo The object holding
|
|
327
|
+
* information about a separator.
|
|
328
|
+
* @param gaps The list gaps between items in the flyout.
|
|
329
|
+
* @param defaultGap The default gap between the button and next
|
|
330
|
+
* element.
|
|
331
|
+
*/
|
|
332
|
+
private addSeparatorGap_;
|
|
333
|
+
/**
|
|
334
|
+
* Delete blocks, mats and buttons from a previous showing of the flyout.
|
|
335
|
+
*/
|
|
336
|
+
private clearOldBlocks_;
|
|
337
|
+
/**
|
|
338
|
+
* Empties all of the recycled blocks, properly disposing of them.
|
|
339
|
+
*/
|
|
340
|
+
private emptyRecycledBlocks_;
|
|
341
|
+
/**
|
|
342
|
+
* Returns whether the given block can be recycled or not.
|
|
343
|
+
* @param _block The block to check for recyclability.
|
|
344
|
+
* @return True if the block can be recycled. False otherwise.
|
|
345
|
+
*/
|
|
346
|
+
protected blockIsRecyclable_(_block: BlockSvg): boolean;
|
|
347
|
+
/**
|
|
348
|
+
* Puts a previously created block into the recycle bin and moves it to the
|
|
349
|
+
* top of the workspace. Used during large workspace swaps to limit the number
|
|
350
|
+
* of new DOM elements we need to create.
|
|
351
|
+
* @param block The block to recycle.
|
|
352
|
+
*/
|
|
353
|
+
private recycleBlock_;
|
|
354
|
+
/**
|
|
355
|
+
* Add listeners to a block that has been added to the flyout.
|
|
356
|
+
* @param root The root node of the SVG group the block is in.
|
|
357
|
+
* @param block The block to add listeners for.
|
|
358
|
+
* @param rect The invisible rectangle under the block that acts
|
|
359
|
+
* as a mat for that block.
|
|
360
|
+
*/
|
|
361
|
+
protected addBlockListeners_(root: SVGElement, block: BlockSvg, rect: SVGElement): void;
|
|
362
|
+
/**
|
|
363
|
+
* Handle a mouse-down on an SVG block in a non-closing flyout.
|
|
364
|
+
* @param block The flyout block to copy.
|
|
365
|
+
* @return Function to call when block is clicked.
|
|
366
|
+
*/
|
|
367
|
+
private blockMouseDown_;
|
|
368
|
+
/**
|
|
369
|
+
* Mouse down on the flyout background. Start a vertical scroll drag.
|
|
370
|
+
* @param e Mouse down event.
|
|
371
|
+
*/
|
|
372
|
+
private onMouseDown_;
|
|
373
|
+
/**
|
|
374
|
+
* Does this flyout allow you to create a new instance of the given block?
|
|
375
|
+
* Used for deciding if a block can be "dragged out of" the flyout.
|
|
376
|
+
* @param block The block to copy from the flyout.
|
|
377
|
+
* @return True if you can create a new instance of the block, false
|
|
378
|
+
* otherwise.
|
|
379
|
+
* @internal
|
|
380
|
+
*/
|
|
381
|
+
isBlockCreatable(block: BlockSvg): boolean;
|
|
382
|
+
/**
|
|
383
|
+
* Create a copy of this block on the workspace.
|
|
384
|
+
* @param originalBlock The block to copy from the flyout.
|
|
385
|
+
* @return The newly created block.
|
|
386
|
+
* @throws {Error} if something went wrong with deserialization.
|
|
387
|
+
* @internal
|
|
388
|
+
*/
|
|
389
|
+
createBlock(originalBlock: BlockSvg): BlockSvg;
|
|
390
|
+
/**
|
|
391
|
+
* Initialize the given button: move it to the correct location,
|
|
392
|
+
* add listeners, etc.
|
|
393
|
+
* @param button The button to initialize and place.
|
|
394
|
+
* @param x The x position of the cursor during this layout pass.
|
|
395
|
+
* @param y The y position of the cursor during this layout pass.
|
|
396
|
+
*/
|
|
397
|
+
protected initFlyoutButton_(button: FlyoutButton, x: number, y: number): void;
|
|
398
|
+
/**
|
|
399
|
+
* Create and place a rectangle corresponding to the given block.
|
|
400
|
+
* @param block The block to associate the rect to.
|
|
401
|
+
* @param x The x position of the cursor during this layout pass.
|
|
402
|
+
* @param y The y position of the cursor during this layout pass.
|
|
403
|
+
* @param blockHW The height and width of
|
|
404
|
+
* the block.
|
|
405
|
+
* @param index The index into the mats list where this rect should
|
|
406
|
+
* be placed.
|
|
407
|
+
* @return Newly created SVG element for the rectangle behind
|
|
408
|
+
* the block.
|
|
409
|
+
*/
|
|
410
|
+
protected createRect_(block: BlockSvg, x: number, y: number, blockHW: {
|
|
411
|
+
height: number;
|
|
412
|
+
width: number;
|
|
413
|
+
}, index: number): SVGElement;
|
|
414
|
+
/**
|
|
415
|
+
* Move a rectangle to sit exactly behind a block, taking into account tabs,
|
|
416
|
+
* hats, and any other protrusions we invent.
|
|
417
|
+
* @param rect The rectangle to move directly behind the block.
|
|
418
|
+
* @param block The block the rectangle should be behind.
|
|
419
|
+
*/
|
|
420
|
+
protected moveRectToBlock_(rect: SVGElement, block: BlockSvg): void;
|
|
421
|
+
/**
|
|
422
|
+
* Filter the blocks on the flyout to disable the ones that are above the
|
|
423
|
+
* capacity limit. For instance, if the user may only place two more blocks
|
|
424
|
+
* on the workspace, an "a + b" block that has two shadow blocks would be
|
|
425
|
+
* disabled.
|
|
426
|
+
*/
|
|
427
|
+
private filterForCapacity_;
|
|
428
|
+
/**
|
|
429
|
+
* Reflow blocks and their mats.
|
|
430
|
+
*/
|
|
431
|
+
reflow(): void;
|
|
432
|
+
/**
|
|
433
|
+
* @return True if this flyout may be scrolled with a scrollbar or
|
|
434
|
+
* by dragging.
|
|
435
|
+
* @internal
|
|
436
|
+
*/
|
|
437
|
+
isScrollable(): boolean;
|
|
438
|
+
/**
|
|
439
|
+
* Copy a block from the flyout to the workspace and position it correctly.
|
|
440
|
+
* @param oldBlock The flyout block to copy.
|
|
441
|
+
* @return The new block in the main workspace.
|
|
442
|
+
*/
|
|
443
|
+
private placeNewBlock_;
|
|
444
|
+
/**
|
|
445
|
+
* Positions a block on the target workspace.
|
|
446
|
+
* @param oldBlock The flyout block being copied.
|
|
447
|
+
* @param block The block to posiiton.
|
|
448
|
+
*/
|
|
449
|
+
private positionNewBlock_;
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* A flyout content item.
|
|
453
|
+
*/
|
|
454
|
+
export interface FlyoutItem {
|
|
455
|
+
type: FlyoutItemType;
|
|
456
|
+
button?: FlyoutButton | undefined;
|
|
457
|
+
block?: BlockSvg | undefined;
|
|
458
|
+
}
|
|
459
|
+
export {};
|