blockly 8.0.5 → 9.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blockly.min.js +2002 -2269
- package/blockly_compressed.js +1499 -1994
- package/blockly_compressed.js.map +1 -1
- package/blocks/blocks.js +3 -2
- package/blocks/colour.js +3 -1
- package/blocks/lists.js +94 -22
- package/blocks/logic.js +14 -6
- package/blocks/loops.js +5 -3
- package/blocks/math.js +3 -1
- package/blocks/procedures.js +3 -1
- package/blocks/text.js +14 -6
- package/blocks/variables.js +3 -1
- package/blocks/variables_dynamic.js +3 -1
- package/blocks.d.ts +0 -2
- package/blocks_compressed.js +189 -171
- package/blocks_compressed.js.map +1 -1
- package/closure/goog/base.d.ts +1 -0
- package/closure/goog/base_minimal.d.ts +18 -0
- package/closure/goog/goog.d.ts +25 -0
- package/core/any_aliases.d.ts +1 -0
- package/core/any_aliases.ts +1 -0
- package/core/block.d.ts +779 -0
- package/core/{block.js → block.ts} +610 -719
- package/core/block_animations.d.ts +33 -0
- package/core/{block_animations.js → block_animations.ts} +75 -79
- package/core/block_drag_surface.d.ts +111 -0
- package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
- package/core/block_dragger.d.ts +143 -0
- package/core/{block_dragger.js → block_dragger.ts} +139 -176
- package/core/block_svg.d.ts +588 -0
- package/core/{block_svg.js → block_svg.ts} +494 -630
- package/core/blockly.d.ts +562 -0
- package/core/blockly.js +1 -1
- package/core/blockly.ts +749 -0
- package/core/blockly_options.d.ts +69 -0
- package/core/blockly_options.ts +81 -0
- package/core/blocks.d.ts +17 -0
- package/core/{blocks.js → blocks.ts} +4 -8
- package/core/browser_events.d.ts +85 -0
- package/core/{browser_events.js → browser_events.ts} +98 -93
- package/core/bubble.d.ts +279 -0
- package/core/{bubble.js → bubble.ts} +277 -370
- package/core/bubble_dragger.d.ts +73 -0
- package/core/bubble_dragger.ts +229 -0
- package/core/bump_objects.d.ts +34 -0
- package/core/{bump_objects.js → bump_objects.ts} +54 -52
- package/core/clipboard.d.ts +42 -0
- package/core/clipboard.ts +91 -0
- package/core/comment.d.ts +113 -0
- package/core/{comment.js → comment.ts} +135 -185
- package/core/common.d.ts +129 -0
- package/core/{common.js → common.ts} +105 -82
- package/core/component_manager.d.ts +91 -0
- package/core/component_manager.ts +211 -0
- package/core/config.d.ts +23 -0
- package/core/{config.js → config.ts} +12 -19
- package/core/connection.d.ts +232 -0
- package/core/{connection.js → connection.ts} +187 -237
- package/core/connection_checker.d.ts +78 -0
- package/core/{connection_checker.js → connection_checker.ts} +66 -77
- package/core/connection_db.d.ts +91 -0
- package/core/{connection_db.js → connection_db.ts} +62 -87
- package/core/connection_type.d.ts +15 -0
- package/core/{connection_type.js → connection_type.ts} +8 -12
- package/core/constants.d.ts +15 -0
- package/core/{constants.js → constants.ts} +4 -8
- package/core/contextmenu.d.ts +80 -0
- package/core/{contextmenu.js → contextmenu.ts} +118 -153
- package/core/contextmenu_items.d.ts +77 -0
- package/core/contextmenu_items.ts +576 -0
- package/core/contextmenu_registry.d.ts +105 -0
- package/core/contextmenu_registry.ts +179 -0
- package/core/css.d.ts +24 -0
- package/core/{css.js → css.ts} +16 -24
- package/core/delete_area.d.ts +47 -0
- package/core/delete_area.ts +82 -0
- package/core/dialog.d.ts +61 -0
- package/core/dialog.ts +127 -0
- package/core/drag_target.d.ts +63 -0
- package/core/drag_target.ts +94 -0
- package/core/dropdowndiv.d.ts +155 -0
- package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
- package/core/events/events.d.ts +102 -0
- package/core/events/events.ts +123 -0
- package/core/events/events_abstract.d.ts +51 -0
- package/core/events/events_abstract.ts +112 -0
- package/core/events/events_block_base.d.ts +31 -0
- package/core/events/events_block_base.ts +65 -0
- package/core/events/events_block_change.d.ts +55 -0
- package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
- package/core/events/events_block_create.d.ts +35 -0
- package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
- package/core/events/events_block_delete.d.ts +36 -0
- package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
- package/core/events/events_block_drag.d.ts +36 -0
- package/core/events/events_block_drag.ts +82 -0
- package/core/events/events_block_move.d.ts +51 -0
- package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
- package/core/events/events_bubble_open.d.ts +35 -0
- package/core/events/events_bubble_open.ts +82 -0
- package/core/events/events_click.d.ts +36 -0
- package/core/events/{events_click.js → events_click.ts} +27 -30
- package/core/events/events_comment_base.d.ts +39 -0
- package/core/events/events_comment_base.ts +107 -0
- package/core/events/events_comment_change.d.ts +43 -0
- package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
- package/core/events/events_comment_create.d.ts +35 -0
- package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
- package/core/events/events_comment_delete.d.ts +35 -0
- package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
- package/core/events/events_comment_move.d.ts +55 -0
- package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
- package/core/events/events_marker_move.d.ts +40 -0
- package/core/events/events_marker_move.ts +99 -0
- package/core/events/events_selected.d.ts +34 -0
- package/core/events/events_selected.ts +78 -0
- package/core/events/events_theme_change.d.ts +30 -0
- package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
- package/core/events/events_toolbox_item_select.d.ts +34 -0
- package/core/events/events_toolbox_item_select.ts +79 -0
- package/core/events/events_trashcan_open.d.ts +31 -0
- package/core/events/events_trashcan_open.ts +68 -0
- package/core/events/events_ui.d.ts +37 -0
- package/core/events/{events_ui.js → events_ui.ts} +27 -26
- package/core/events/events_ui_base.d.ts +26 -0
- package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
- package/core/events/events_var_base.d.ts +31 -0
- package/core/events/events_var_base.ts +65 -0
- package/core/events/events_var_create.d.ts +35 -0
- package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
- package/core/events/events_var_delete.d.ts +35 -0
- package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
- package/core/events/events_var_rename.d.ts +36 -0
- package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
- package/core/events/events_viewport.d.ts +39 -0
- package/core/events/events_viewport.ts +100 -0
- package/core/events/utils.d.ts +272 -0
- package/core/events/{utils.js → utils.ts} +148 -219
- package/core/events/workspace_events.d.ts +36 -0
- package/core/events/workspace_events.ts +86 -0
- package/core/extensions.d.ts +107 -0
- package/core/{extensions.js → extensions.ts} +153 -172
- package/core/field.d.ts +534 -0
- package/core/{field.js → field.ts} +413 -489
- package/core/field_angle.d.ts +176 -0
- package/core/field_angle.ts +563 -0
- package/core/field_checkbox.d.ts +124 -0
- package/core/field_checkbox.ts +243 -0
- package/core/field_colour.d.ts +200 -0
- package/core/field_colour.ts +632 -0
- package/core/field_dropdown.d.ts +222 -0
- package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
- package/core/field_image.d.ts +134 -0
- package/core/field_image.ts +282 -0
- package/core/field_label.d.ts +71 -0
- package/core/field_label.ts +152 -0
- package/core/field_label_serializable.d.ts +42 -0
- package/core/field_label_serializable.ts +76 -0
- package/core/field_multilineinput.d.ts +146 -0
- package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
- package/core/field_number.d.ts +156 -0
- package/core/{field_number.js → field_number.ts} +110 -123
- package/core/field_registry.d.ts +45 -0
- package/core/{field_registry.js → field_registry.ts} +37 -30
- package/core/field_textinput.d.ts +219 -0
- package/core/field_textinput.ts +591 -0
- package/core/field_variable.d.ts +217 -0
- package/core/{field_variable.js → field_variable.ts} +174 -187
- package/core/flyout_base.d.ts +459 -0
- package/core/{flyout_base.js → flyout_base.ts} +429 -518
- package/core/flyout_button.d.ts +81 -0
- package/core/flyout_button.ts +292 -0
- package/core/flyout_horizontal.d.ts +82 -0
- package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
- package/core/flyout_metrics_manager.d.ts +40 -0
- package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
- package/core/flyout_vertical.d.ts +83 -0
- package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
- package/core/generator.d.ts +205 -0
- package/core/{generator.js → generator.ts} +168 -193
- package/core/gesture.d.ts +357 -0
- package/core/{gesture.js → gesture.ts} +289 -369
- package/core/grid.d.ts +83 -0
- package/core/grid.ts +192 -0
- package/core/icon.d.ts +78 -0
- package/core/icon.ts +189 -0
- package/core/inject.d.ts +15 -0
- package/core/{inject.js → inject.ts} +101 -100
- package/core/input.d.ts +128 -0
- package/core/input.ts +309 -0
- package/core/input_types.d.ts +14 -0
- package/core/{input_types.js → input_types.ts} +8 -12
- package/core/insertion_marker_manager.d.ts +212 -0
- package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
- package/core/interfaces/i_ast_node_location.d.ts +11 -0
- package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
- package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
- package/core/interfaces/i_ast_node_location_svg.ts +37 -0
- package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
- package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
- package/core/interfaces/i_autohideable.d.ts +18 -0
- package/core/interfaces/i_autohideable.ts +34 -0
- package/core/interfaces/i_block_dragger.d.ts +43 -0
- package/core/interfaces/i_block_dragger.ts +67 -0
- package/core/interfaces/i_bounded_element.d.ts +24 -0
- package/core/interfaces/i_bounded_element.ts +42 -0
- package/core/interfaces/i_bubble.d.ts +59 -0
- package/core/interfaces/i_bubble.ts +88 -0
- package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
- package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
- package/core/interfaces/i_component.d.ts +17 -0
- package/core/interfaces/{i_component.js → i_component.ts} +9 -14
- package/core/interfaces/i_connection_checker.d.ts +69 -0
- package/core/interfaces/i_connection_checker.ts +102 -0
- package/core/interfaces/i_contextmenu.d.ts +13 -0
- package/core/interfaces/i_contextmenu.ts +26 -0
- package/core/interfaces/i_copyable.d.ts +24 -0
- package/core/interfaces/i_copyable.ts +40 -0
- package/core/interfaces/i_deletable.d.ts +16 -0
- package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
- package/core/interfaces/i_delete_area.d.ts +25 -0
- package/core/interfaces/i_delete_area.ts +46 -0
- package/core/interfaces/i_drag_target.d.ts +53 -0
- package/core/interfaces/i_drag_target.ts +84 -0
- package/core/interfaces/i_draggable.d.ts +12 -0
- package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
- package/core/interfaces/i_flyout.d.ts +134 -0
- package/core/interfaces/i_flyout.ts +186 -0
- package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
- package/core/interfaces/i_keyboard_accessible.ts +35 -0
- package/core/interfaces/i_metrics_manager.d.ts +117 -0
- package/core/interfaces/i_metrics_manager.ts +151 -0
- package/core/interfaces/i_movable.d.ts +16 -0
- package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
- package/core/interfaces/i_positionable.d.ts +27 -0
- package/core/interfaces/i_positionable.ts +50 -0
- package/core/interfaces/i_registrable.d.ts +11 -0
- package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
- package/core/interfaces/i_registrable_field.d.ts +17 -0
- package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
- package/core/interfaces/i_selectable.d.ts +18 -0
- package/core/interfaces/i_selectable.ts +34 -0
- package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
- package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
- package/core/interfaces/i_serializer.d.ts +42 -0
- package/core/interfaces/i_serializer.ts +65 -0
- package/core/interfaces/i_styleable.d.ts +21 -0
- package/core/interfaces/i_styleable.ts +35 -0
- package/core/interfaces/i_toolbox.d.ts +85 -0
- package/core/interfaces/i_toolbox.ts +127 -0
- package/core/interfaces/i_toolbox_item.d.ts +62 -0
- package/core/interfaces/i_toolbox_item.ts +84 -0
- package/core/internal_constants.d.ts +40 -0
- package/core/{internal_constants.js → internal_constants.ts} +13 -18
- package/core/keyboard_nav/ast_node.d.ts +239 -0
- package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
- package/core/keyboard_nav/basic_cursor.d.ts +88 -0
- package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
- package/core/keyboard_nav/cursor.d.ts +41 -0
- package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
- package/core/keyboard_nav/marker.d.ts +58 -0
- package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
- package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
- package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
- package/core/main.d.ts +11 -0
- package/core/main.js +303 -0
- package/core/marker_manager.d.ts +85 -0
- package/core/marker_manager.ts +181 -0
- package/core/menu.d.ts +149 -0
- package/core/{menu.js → menu.ts} +141 -174
- package/core/menuitem.d.ts +118 -0
- package/core/menuitem.ts +240 -0
- package/core/metrics_manager.d.ts +201 -0
- package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
- package/core/msg.d.ts +9 -0
- package/core/{msg.js → msg.ts} +4 -8
- package/core/mutator.d.ts +128 -0
- package/core/{mutator.js → mutator.ts} +196 -211
- package/core/names.d.ts +124 -0
- package/core/names.ts +267 -0
- package/core/options.d.ts +137 -0
- package/core/{options.js → options.ts} +147 -173
- package/core/positionable_helpers.d.ts +88 -0
- package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
- package/core/procedures.d.ts +108 -0
- package/core/{procedures.js → procedures.ts} +143 -152
- package/core/registry.d.ts +137 -0
- package/core/registry.ts +339 -0
- package/core/rendered_connection.d.ts +191 -0
- package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
- package/core/renderers/common/block_rendering.d.ts +114 -0
- package/core/renderers/common/block_rendering.ts +164 -0
- package/core/renderers/common/constants.d.ts +458 -0
- package/core/renderers/common/constants.ts +1124 -0
- package/core/renderers/common/debug.d.ts +28 -0
- package/core/renderers/common/{debug.js → debug.ts} +14 -20
- package/core/renderers/common/debugger.d.ts +120 -0
- package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
- package/core/renderers/common/drawer.d.ts +132 -0
- package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
- package/core/renderers/common/i_path_object.d.ts +117 -0
- package/core/renderers/common/i_path_object.ts +161 -0
- package/core/renderers/common/info.d.ts +194 -0
- package/core/renderers/common/{info.js → info.ts} +165 -222
- package/core/renderers/common/marker_svg.d.ts +220 -0
- package/core/renderers/common/marker_svg.ts +680 -0
- package/core/renderers/common/path_object.d.ts +146 -0
- package/core/renderers/common/path_object.ts +272 -0
- package/core/renderers/common/renderer.d.ts +157 -0
- package/core/renderers/common/renderer.ts +271 -0
- package/core/renderers/geras/constants.d.ts +23 -0
- package/core/renderers/geras/constants.ts +61 -0
- package/core/renderers/geras/drawer.d.ts +43 -0
- package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
- package/core/renderers/geras/geras.d.ts +11 -0
- package/core/renderers/geras/geras.ts +37 -0
- package/core/renderers/geras/highlight_constants.d.ts +108 -0
- package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
- package/core/renderers/geras/highlighter.d.ts +98 -0
- package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
- package/core/renderers/geras/info.d.ts +45 -0
- package/core/renderers/geras/{info.js → info.ts} +61 -99
- package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
- package/core/renderers/geras/measurables/inline_input.ts +51 -0
- package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
- package/core/renderers/geras/measurables/statement_input.ts +50 -0
- package/core/renderers/geras/path_object.d.ts +47 -0
- package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
- package/core/renderers/geras/renderer.d.ts +69 -0
- package/core/renderers/geras/renderer.ts +126 -0
- package/core/renderers/measurables/base.d.ts +27 -0
- package/core/renderers/measurables/base.ts +53 -0
- package/core/renderers/measurables/bottom_row.d.ts +61 -0
- package/core/renderers/measurables/bottom_row.ts +120 -0
- package/core/renderers/measurables/connection.d.ts +25 -0
- package/core/renderers/measurables/connection.ts +52 -0
- package/core/renderers/measurables/external_value_input.d.ts +27 -0
- package/core/renderers/measurables/external_value_input.ts +65 -0
- package/core/renderers/measurables/field.d.ts +30 -0
- package/core/renderers/measurables/field.ts +63 -0
- package/core/renderers/measurables/hat.d.ts +21 -0
- package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
- package/core/renderers/measurables/icon.d.ts +26 -0
- package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
- package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
- package/core/renderers/measurables/in_row_spacer.ts +44 -0
- package/core/renderers/measurables/inline_input.d.ts +24 -0
- package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
- package/core/renderers/measurables/input_connection.d.ts +29 -0
- package/core/renderers/measurables/input_connection.ts +66 -0
- package/core/renderers/measurables/input_row.d.ts +30 -0
- package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
- package/core/renderers/measurables/jagged_edge.d.ts +20 -0
- package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
- package/core/renderers/measurables/next_connection.d.ts +23 -0
- package/core/renderers/measurables/next_connection.ts +47 -0
- package/core/renderers/measurables/output_connection.d.ts +26 -0
- package/core/renderers/measurables/output_connection.ts +56 -0
- package/core/renderers/measurables/previous_connection.d.ts +23 -0
- package/core/renderers/measurables/previous_connection.ts +47 -0
- package/core/renderers/measurables/round_corner.d.ts +21 -0
- package/core/renderers/measurables/round_corner.ts +49 -0
- package/core/renderers/measurables/row.d.ts +141 -0
- package/core/renderers/measurables/row.ts +225 -0
- package/core/renderers/measurables/spacer_row.d.ts +29 -0
- package/core/renderers/measurables/spacer_row.ts +55 -0
- package/core/renderers/measurables/square_corner.d.ts +21 -0
- package/core/renderers/measurables/square_corner.ts +47 -0
- package/core/renderers/measurables/statement_input.d.ts +22 -0
- package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
- package/core/renderers/measurables/top_row.d.ts +56 -0
- package/core/renderers/measurables/top_row.ts +122 -0
- package/core/renderers/measurables/types.d.ts +235 -0
- package/core/renderers/measurables/types.ts +332 -0
- package/core/renderers/minimalist/constants.d.ts +14 -0
- package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
- package/core/renderers/minimalist/drawer.d.ts +21 -0
- package/core/renderers/minimalist/drawer.ts +38 -0
- package/core/renderers/minimalist/info.d.ts +30 -0
- package/core/renderers/minimalist/info.ts +52 -0
- package/core/renderers/minimalist/minimalist.d.ts +6 -0
- package/core/renderers/minimalist/minimalist.ts +22 -0
- package/core/renderers/minimalist/renderer.d.ts +41 -0
- package/core/renderers/minimalist/renderer.ts +71 -0
- package/core/renderers/thrasos/info.d.ts +40 -0
- package/core/renderers/thrasos/{info.js → info.ts} +66 -67
- package/core/renderers/thrasos/renderer.d.ts +25 -0
- package/core/renderers/thrasos/renderer.ts +48 -0
- package/core/renderers/thrasos/thrasos.d.ts +4 -0
- package/core/renderers/thrasos/thrasos.ts +20 -0
- package/core/renderers/zelos/constants.d.ts +186 -0
- package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
- package/core/renderers/zelos/drawer.d.ts +47 -0
- package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
- package/core/renderers/zelos/info.d.ts +88 -0
- package/core/renderers/zelos/{info.js → info.ts} +111 -142
- package/core/renderers/zelos/marker_svg.d.ts +46 -0
- package/core/renderers/zelos/marker_svg.ts +151 -0
- package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
- package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
- package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
- package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
- package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
- package/core/renderers/zelos/measurables/row_elements.ts +45 -0
- package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
- package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
- package/core/renderers/zelos/path_object.d.ts +77 -0
- package/core/renderers/zelos/path_object.ts +215 -0
- package/core/renderers/zelos/renderer.d.ts +74 -0
- package/core/renderers/zelos/renderer.ts +142 -0
- package/core/renderers/zelos/zelos.d.ts +12 -0
- package/core/renderers/zelos/zelos.ts +39 -0
- package/core/scrollbar.d.ts +277 -0
- package/core/{scrollbar.js → scrollbar.ts} +307 -328
- package/core/scrollbar_pair.d.ts +105 -0
- package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
- package/core/serialization/blocks.d.ts +98 -0
- package/core/serialization/{blocks.js → blocks.ts} +229 -228
- package/core/serialization/exceptions.d.ts +73 -0
- package/core/serialization/exceptions.ts +98 -0
- package/core/serialization/priorities.d.ts +15 -0
- package/core/serialization/{priorities.js → priorities.ts} +4 -10
- package/core/serialization/registry.d.ts +20 -0
- package/core/serialization/{registry.js → registry.ts} +11 -13
- package/core/serialization/variables.d.ts +14 -0
- package/core/serialization/{variables.js → variables.ts} +30 -32
- package/core/serialization/workspaces.d.ts +28 -0
- package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
- package/core/shortcut_items.d.ts +61 -0
- package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
- package/core/shortcut_registry.d.ts +151 -0
- package/core/shortcut_registry.ts +355 -0
- package/core/sprites.d.ts +19 -0
- package/core/{sprites.js → sprites.ts} +4 -6
- package/core/theme/classic.d.ts +12 -0
- package/core/theme/{classic.js → classic.ts} +5 -7
- package/core/theme/themes.d.ts +8 -0
- package/core/theme/themes.ts +22 -0
- package/core/theme/zelos.d.ts +11 -0
- package/core/theme/{zelos.js → zelos.ts} +4 -7
- package/core/theme.d.ts +142 -0
- package/core/theme.ts +221 -0
- package/core/theme_manager.d.ts +81 -0
- package/core/theme_manager.ts +186 -0
- package/core/toolbox/category.d.ts +239 -0
- package/core/toolbox/category.ts +679 -0
- package/core/toolbox/collapsible_category.d.ts +91 -0
- package/core/toolbox/collapsible_category.ts +273 -0
- package/core/toolbox/separator.d.ts +39 -0
- package/core/toolbox/separator.ts +105 -0
- package/core/toolbox/toolbox.d.ts +352 -0
- package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
- package/core/toolbox/toolbox_item.d.ts +85 -0
- package/core/toolbox/toolbox_item.ts +147 -0
- package/core/tooltip.d.ts +126 -0
- package/core/{tooltip.js → tooltip.ts} +136 -214
- package/core/touch.d.ts +121 -0
- package/core/touch.ts +306 -0
- package/core/touch_gesture.d.ts +115 -0
- package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
- package/core/trashcan.d.ts +195 -0
- package/core/{trashcan.js → trashcan.ts} +226 -312
- package/core/utils/aria.d.ts +67 -0
- package/core/utils/{aria.js → aria.ts} +47 -61
- package/core/utils/array.d.ts +14 -0
- package/core/utils/{array.js → array.ts} +10 -12
- package/core/utils/colour.d.ts +103 -0
- package/core/utils/{colour.js → colour.ts} +60 -72
- package/core/utils/coordinate.d.ts +72 -0
- package/core/utils/coordinate.ts +124 -0
- package/core/utils/deprecation.d.ts +17 -0
- package/core/utils/{deprecation.js → deprecation.ts} +11 -11
- package/core/utils/dom.d.ts +165 -0
- package/core/utils/{dom.js → dom.ts} +125 -147
- package/core/utils/idgenerator.d.ts +25 -0
- package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
- package/core/utils/keycodes.d.ts +137 -0
- package/core/utils/keycodes.ts +169 -0
- package/core/utils/math.d.ts +30 -0
- package/core/utils/{math.js → math.ts} +17 -19
- package/core/utils/metrics.d.ts +64 -0
- package/core/utils/metrics.ts +97 -0
- package/core/utils/object.d.ts +35 -0
- package/core/utils/{object.js → object.ts} +30 -26
- package/core/utils/parsing.d.ts +50 -0
- package/core/utils/{parsing.js → parsing.ts} +50 -50
- package/core/utils/rect.d.ts +38 -0
- package/core/utils/{rect.js → rect.ts} +18 -31
- package/core/utils/sentinel.d.ts +11 -0
- package/core/utils/{sentinel.js → sentinel.ts} +3 -5
- package/core/utils/size.d.ts +27 -0
- package/core/utils/{size.js → size.ts} +12 -26
- package/core/utils/string.d.ts +55 -0
- package/core/utils/{string.js → string.ts} +64 -61
- package/core/utils/style.d.ts +127 -0
- package/core/utils/{style.js → style.ts} +102 -92
- package/core/utils/svg.d.ts +68 -0
- package/core/utils/svg.ts +88 -0
- package/core/utils/svg_math.d.ts +70 -0
- package/core/utils/{svg_math.js → svg_math.ts} +72 -71
- package/core/utils/svg_paths.d.ts +101 -0
- package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
- package/core/utils/toolbox.d.ts +193 -0
- package/core/utils/toolbox.ts +433 -0
- package/core/utils/useragent.d.ts +33 -0
- package/core/utils/useragent.ts +135 -0
- package/core/utils/xml.d.ts +52 -0
- package/core/utils/{xml.js → xml.ts} +26 -36
- package/core/utils.d.ts +217 -0
- package/core/utils.ts +428 -0
- package/core/variable_map.d.ts +141 -0
- package/core/{variable_map.js → variable_map.ts} +131 -149
- package/core/variable_model.d.ts +40 -0
- package/core/variable_model.ts +82 -0
- package/core/variables.d.ts +181 -0
- package/core/{variables.js → variables.ts} +206 -188
- package/core/variables_dynamic.d.ts +38 -0
- package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
- package/core/warning.d.ts +50 -0
- package/core/{warning.js → warning.ts} +52 -66
- package/core/widgetdiv.d.ts +69 -0
- package/core/widgetdiv.ts +257 -0
- package/core/workspace.d.ts +386 -0
- package/core/workspace.ts +801 -0
- package/core/workspace_audio.d.ts +47 -0
- package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
- package/core/workspace_comment.d.ts +170 -0
- package/core/workspace_comment.ts +398 -0
- package/core/workspace_comment_svg.d.ts +329 -0
- package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
- package/core/workspace_drag_surface_svg.d.ts +68 -0
- package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
- package/core/workspace_dragger.d.ts +48 -0
- package/core/workspace_dragger.ts +104 -0
- package/core/workspace_svg.d.ts +920 -0
- package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
- package/core/xml.d.ts +117 -0
- package/core/{xml.js → xml.ts} +306 -326
- package/core/zoom_controls.d.ts +130 -0
- package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
- package/core.d.ts +1 -3
- package/core.js +1 -2
- package/dart.d.ts +0 -3
- package/dart_compressed.js +387 -99
- package/dart_compressed.js.map +1 -1
- package/generators/dart/all.js +2 -0
- package/generators/dart/colour.js +1 -1
- package/generators/dart/lists.js +1 -1
- package/generators/dart/logic.js +1 -1
- package/generators/dart/loops.js +1 -1
- package/generators/dart/math.js +1 -1
- package/generators/dart/procedures.js +1 -1
- package/generators/dart/text.js +1 -1
- package/generators/dart/variables.js +1 -1
- package/generators/dart/variables_dynamic.js +1 -1
- package/generators/dart.js +1 -2
- package/generators/javascript/all.js +2 -0
- package/generators/javascript/colour.js +1 -1
- package/generators/javascript/lists.js +1 -1
- package/generators/javascript/logic.js +1 -1
- package/generators/javascript/loops.js +1 -1
- package/generators/javascript/math.js +4 -4
- package/generators/javascript/procedures.js +1 -1
- package/generators/javascript/text.js +2 -2
- package/generators/javascript/variables.js +1 -1
- package/generators/javascript/variables_dynamic.js +1 -1
- package/generators/javascript.js +1 -3
- package/generators/lua/all.js +2 -0
- package/generators/lua/colour.js +1 -1
- package/generators/lua/lists.js +1 -1
- package/generators/lua/logic.js +1 -1
- package/generators/lua/loops.js +1 -1
- package/generators/lua/math.js +1 -1
- package/generators/lua/procedures.js +1 -1
- package/generators/lua/text.js +1 -1
- package/generators/lua/variables.js +1 -1
- package/generators/lua/variables_dynamic.js +1 -1
- package/generators/lua.js +1 -2
- package/generators/php/all.js +2 -0
- package/generators/php/colour.js +1 -1
- package/generators/php/lists.js +1 -2
- package/generators/php/logic.js +1 -1
- package/generators/php/loops.js +1 -1
- package/generators/php/math.js +1 -1
- package/generators/php/procedures.js +1 -1
- package/generators/php/text.js +1 -1
- package/generators/php/variables.js +1 -1
- package/generators/php/variables_dynamic.js +1 -1
- package/generators/php.js +1 -2
- package/generators/python/all.js +2 -0
- package/generators/python/colour.js +3 -3
- package/generators/python/lists.js +1 -1
- package/generators/python/logic.js +1 -1
- package/generators/python/loops.js +4 -7
- package/generators/python/math.js +1 -1
- package/generators/python/procedures.js +1 -1
- package/generators/python/text.js +1 -1
- package/generators/python/variables.js +1 -1
- package/generators/python/variables_dynamic.js +1 -1
- package/generators/python.js +1 -2
- package/index.d.ts +2 -8
- package/javascript.d.ts +0 -3
- package/javascript_compressed.js +314 -104
- package/javascript_compressed.js.map +1 -1
- package/lua.d.ts +0 -3
- package/lua_compressed.js +399 -81
- package/lua_compressed.js.map +1 -1
- package/package.json +5 -5
- package/php.d.ts +0 -3
- package/php_compressed.js +322 -93
- package/php_compressed.js.map +1 -1
- package/python.d.ts +0 -3
- package/python_compressed.js +237 -90
- package/python_compressed.js.map +1 -1
- package/blockly.d.ts +0 -26127
- package/core/blockly_options.js +0 -28
- package/core/bubble_dragger.js +0 -298
- package/core/clipboard.js +0 -80
- package/core/component_manager.js +0 -263
- package/core/contextmenu_items.js +0 -651
- package/core/contextmenu_registry.js +0 -178
- package/core/delete_area.js +0 -87
- package/core/dialog.js +0 -107
- package/core/drag_target.js +0 -98
- package/core/events/events.js +0 -147
- package/core/events/events_abstract.js +0 -133
- package/core/events/events_block_base.js +0 -70
- package/core/events/events_block_drag.js +0 -89
- package/core/events/events_bubble_open.js +0 -90
- package/core/events/events_comment_base.js +0 -121
- package/core/events/events_marker_move.js +0 -110
- package/core/events/events_selected.js +0 -83
- package/core/events/events_toolbox_item_select.js +0 -84
- package/core/events/events_trashcan_open.js +0 -73
- package/core/events/events_var_base.js +0 -70
- package/core/events/events_viewport.js +0 -107
- package/core/events/workspace_events.js +0 -93
- package/core/field_angle.js +0 -591
- package/core/field_checkbox.js +0 -255
- package/core/field_colour.js +0 -717
- package/core/field_image.js +0 -304
- package/core/field_label.js +0 -149
- package/core/field_label_serializable.js +0 -80
- package/core/field_textinput.js +0 -619
- package/core/flyout_button.js +0 -356
- package/core/grid.js +0 -226
- package/core/icon.js +0 -225
- package/core/input.js +0 -335
- package/core/interfaces/i_ast_node_location_svg.js +0 -45
- package/core/interfaces/i_ast_node_location_with_block.js +0 -41
- package/core/interfaces/i_autohideable.js +0 -40
- package/core/interfaces/i_block_dragger.js +0 -66
- package/core/interfaces/i_bounded_element.js +0 -45
- package/core/interfaces/i_bubble.js +0 -95
- package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
- package/core/interfaces/i_connection_checker.js +0 -104
- package/core/interfaces/i_contextmenu.js +0 -32
- package/core/interfaces/i_copyable.js +0 -49
- package/core/interfaces/i_delete_area.js +0 -50
- package/core/interfaces/i_drag_target.js +0 -88
- package/core/interfaces/i_flyout.js +0 -201
- package/core/interfaces/i_keyboard_accessible.js +0 -38
- package/core/interfaces/i_metrics_manager.js +0 -154
- package/core/interfaces/i_positionable.js +0 -51
- package/core/interfaces/i_selectable.js +0 -51
- package/core/interfaces/i_selectable_toolbox_item.js +0 -73
- package/core/interfaces/i_serializer.js +0 -77
- package/core/interfaces/i_styleable.js +0 -39
- package/core/interfaces/i_toolbox.js +0 -142
- package/core/interfaces/i_toolbox_item.js +0 -85
- package/core/marker_manager.js +0 -213
- package/core/menuitem.js +0 -292
- package/core/names.js +0 -293
- package/core/registry.js +0 -384
- package/core/renderers/common/block_rendering.js +0 -170
- package/core/renderers/common/constants.js +0 -1250
- package/core/renderers/common/i_path_object.js +0 -162
- package/core/renderers/common/marker_svg.js +0 -721
- package/core/renderers/common/path_object.js +0 -283
- package/core/renderers/common/renderer.js +0 -305
- package/core/renderers/geras/constants.js +0 -73
- package/core/renderers/geras/geras.js +0 -36
- package/core/renderers/geras/measurables/inline_input.js +0 -58
- package/core/renderers/geras/measurables/statement_input.js +0 -57
- package/core/renderers/geras/renderer.js +0 -149
- package/core/renderers/measurables/base.js +0 -64
- package/core/renderers/measurables/bottom_row.js +0 -138
- package/core/renderers/measurables/connection.js +0 -56
- package/core/renderers/measurables/external_value_input.js +0 -70
- package/core/renderers/measurables/field.js +0 -71
- package/core/renderers/measurables/in_row_spacer.js +0 -47
- package/core/renderers/measurables/input_connection.js +0 -75
- package/core/renderers/measurables/next_connection.js +0 -50
- package/core/renderers/measurables/output_connection.js +0 -61
- package/core/renderers/measurables/previous_connection.js +0 -50
- package/core/renderers/measurables/round_corner.js +0 -52
- package/core/renderers/measurables/row.js +0 -247
- package/core/renderers/measurables/spacer_row.js +0 -69
- package/core/renderers/measurables/square_corner.js +0 -50
- package/core/renderers/measurables/top_row.js +0 -143
- package/core/renderers/measurables/types.js +0 -353
- package/core/renderers/minimalist/drawer.js +0 -42
- package/core/renderers/minimalist/info.js +0 -54
- package/core/renderers/minimalist/minimalist.js +0 -26
- package/core/renderers/minimalist/renderer.js +0 -80
- package/core/renderers/thrasos/renderer.js +0 -53
- package/core/renderers/thrasos/thrasos.js +0 -22
- package/core/renderers/zelos/marker_svg.js +0 -179
- package/core/renderers/zelos/measurables/bottom_row.js +0 -66
- package/core/renderers/zelos/measurables/row_elements.js +0 -46
- package/core/renderers/zelos/path_object.js +0 -247
- package/core/renderers/zelos/renderer.js +0 -147
- package/core/renderers/zelos/zelos.js +0 -38
- package/core/serialization/exceptions.js +0 -144
- package/core/shortcut_registry.js +0 -366
- package/core/theme/themes.js +0 -23
- package/core/theme.js +0 -228
- package/core/theme_manager.js +0 -211
- package/core/toolbox/category.js +0 -751
- package/core/toolbox/collapsible_category.js +0 -311
- package/core/toolbox/separator.js +0 -133
- package/core/toolbox/toolbox_item.js +0 -173
- package/core/touch.js +0 -285
- package/core/utils/coordinate.js +0 -138
- package/core/utils/global.js +0 -41
- package/core/utils/keycodes.js +0 -172
- package/core/utils/metrics.js +0 -154
- package/core/utils/svg.js +0 -186
- package/core/utils/toolbox.js +0 -459
- package/core/utils/useragent.js +0 -197
- package/core/utils.js +0 -383
- package/core/variable_model.js +0 -96
- package/core/widgetdiv.js +0 -290
- package/core/workspace.js +0 -836
- package/core/workspace_comment.js +0 -400
- package/core/workspace_dragger.js +0 -115
|
@@ -7,184 +7,123 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview Object representing a zoom icons.
|
|
9
9
|
*/
|
|
10
|
-
'use strict';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Object representing a zoom icons.
|
|
14
13
|
* @class
|
|
15
14
|
*/
|
|
16
|
-
goog
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const Touch = goog.require('Blockly.Touch');
|
|
20
|
-
const browserEvents = goog.require('Blockly.browserEvents');
|
|
21
|
-
const dom = goog.require('Blockly.utils.dom');
|
|
22
|
-
const eventUtils = goog.require('Blockly.Events.utils');
|
|
23
|
-
const {SPRITE} = goog.require('Blockly.sprite');
|
|
24
|
-
const uiPosition = goog.require('Blockly.uiPosition');
|
|
25
|
-
const {ComponentManager} = goog.require('Blockly.ComponentManager');
|
|
26
|
-
/* eslint-disable-next-line no-unused-vars */
|
|
27
|
-
const {IPositionable} = goog.require('Blockly.IPositionable');
|
|
28
|
-
/* eslint-disable-next-line no-unused-vars */
|
|
29
|
-
const {MetricsManager} = goog.requireType('Blockly.MetricsManager');
|
|
30
|
-
const {Rect} = goog.require('Blockly.utils.Rect');
|
|
31
|
-
const {Size} = goog.require('Blockly.utils.Size');
|
|
32
|
-
const {Svg} = goog.require('Blockly.utils.Svg');
|
|
15
|
+
import * as goog from '../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.ZoomControls');
|
|
17
|
+
|
|
33
18
|
/* eslint-disable-next-line no-unused-vars */
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
19
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
20
|
+
// import './metrics_manager.js';
|
|
21
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
22
|
+
import './events/events_click.js';
|
|
23
|
+
|
|
24
|
+
import * as browserEvents from './browser_events.js';
|
|
25
|
+
import {ComponentManager} from './component_manager.js';
|
|
26
|
+
import * as Css from './css.js';
|
|
27
|
+
import * as eventUtils from './events/utils.js';
|
|
28
|
+
import type {IPositionable} from './interfaces/i_positionable.js';
|
|
29
|
+
import type {UiMetrics} from './metrics_manager.js';
|
|
30
|
+
import * as uiPosition from './positionable_helpers.js';
|
|
31
|
+
import {SPRITE} from './sprites.js';
|
|
32
|
+
import * as Touch from './touch.js';
|
|
33
|
+
import * as dom from './utils/dom.js';
|
|
34
|
+
import {Rect} from './utils/rect.js';
|
|
35
|
+
import {Size} from './utils/size.js';
|
|
36
|
+
import {Svg} from './utils/svg.js';
|
|
37
|
+
import type {WorkspaceSvg} from './workspace_svg.js';
|
|
37
38
|
|
|
38
39
|
|
|
39
40
|
/**
|
|
40
41
|
* Class for a zoom controls.
|
|
41
|
-
* @implements {IPositionable}
|
|
42
42
|
* @alias Blockly.ZoomControls
|
|
43
43
|
*/
|
|
44
|
-
class ZoomControls {
|
|
44
|
+
export class ZoomControls implements IPositionable {
|
|
45
45
|
/**
|
|
46
|
-
*
|
|
46
|
+
* The unique id for this component that is used to register with the
|
|
47
|
+
* ComponentManager.
|
|
47
48
|
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
*/
|
|
121
|
-
this.HEIGHT_ = 32;
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Small spacing used between the zoom in and out control, in pixels.
|
|
125
|
-
* @type {number}
|
|
126
|
-
* @const
|
|
127
|
-
* @private
|
|
128
|
-
*/
|
|
129
|
-
this.SMALL_SPACING_ = 2;
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Large spacing used between the zoom in and reset control, in pixels.
|
|
133
|
-
* @type {number}
|
|
134
|
-
* @const
|
|
135
|
-
* @private
|
|
136
|
-
*/
|
|
137
|
-
this.LARGE_SPACING_ = 11;
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Distance between zoom controls and bottom or top edge of workspace.
|
|
141
|
-
* @type {number}
|
|
142
|
-
* @const
|
|
143
|
-
* @private
|
|
144
|
-
*/
|
|
145
|
-
this.MARGIN_VERTICAL_ = 20;
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Distance between zoom controls and right or left edge of workspace.
|
|
149
|
-
* @type {number}
|
|
150
|
-
* @private
|
|
151
|
-
*/
|
|
152
|
-
this.MARGIN_HORIZONTAL_ = 20;
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* The SVG group containing the zoom controls.
|
|
156
|
-
* @type {SVGElement}
|
|
157
|
-
* @private
|
|
158
|
-
*/
|
|
159
|
-
this.svgGroup_ = null;
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Left coordinate of the zoom controls.
|
|
163
|
-
* @type {number}
|
|
164
|
-
* @private
|
|
165
|
-
*/
|
|
166
|
-
this.left_ = 0;
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Top coordinate of the zoom controls.
|
|
170
|
-
* @type {number}
|
|
171
|
-
* @private
|
|
172
|
-
*/
|
|
173
|
-
this.top_ = 0;
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* Whether this has been initialized.
|
|
177
|
-
* @type {boolean}
|
|
178
|
-
* @private
|
|
179
|
-
*/
|
|
180
|
-
this.initialized_ = false;
|
|
181
|
-
}
|
|
49
|
+
id = 'zoomControls';
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* A handle to use to unbind the mouse down event handler for zoom reset
|
|
53
|
+
* button. Opaque data returned from browserEvents.conditionalBind.
|
|
54
|
+
*/
|
|
55
|
+
private onZoomResetWrapper_: browserEvents.Data|null = null;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* A handle to use to unbind the mouse down event handler for zoom in
|
|
59
|
+
* button. Opaque data returned from browserEvents.conditionalBind.
|
|
60
|
+
*/
|
|
61
|
+
private onZoomInWrapper_: browserEvents.Data|null = null;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* A handle to use to unbind the mouse down event handler for zoom out
|
|
65
|
+
* button. Opaque data returned from browserEvents.conditionalBind.
|
|
66
|
+
*/
|
|
67
|
+
private onZoomOutWrapper_: browserEvents.Data|null = null;
|
|
68
|
+
|
|
69
|
+
/** The zoom in svg <g> element. */
|
|
70
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
71
|
+
// 'SVGGElement'.
|
|
72
|
+
private zoomInGroup_: SVGGElement = null as AnyDuringMigration;
|
|
73
|
+
|
|
74
|
+
/** The zoom out svg <g> element. */
|
|
75
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
76
|
+
// 'SVGGElement'.
|
|
77
|
+
private zoomOutGroup_: SVGGElement = null as AnyDuringMigration;
|
|
78
|
+
|
|
79
|
+
/** The zoom reset svg <g> element. */
|
|
80
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
81
|
+
// 'SVGGElement'.
|
|
82
|
+
private zoomResetGroup_: SVGGElement = null as AnyDuringMigration;
|
|
83
|
+
|
|
84
|
+
/** Width of the zoom controls. */
|
|
85
|
+
private readonly WIDTH_ = 32;
|
|
86
|
+
|
|
87
|
+
/** Height of each zoom control. */
|
|
88
|
+
private readonly HEIGHT_ = 32;
|
|
89
|
+
|
|
90
|
+
/** Small spacing used between the zoom in and out control, in pixels. */
|
|
91
|
+
private readonly SMALL_SPACING_ = 2;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Large spacing used between the zoom in and reset control, in pixels.
|
|
95
|
+
*/
|
|
96
|
+
private readonly LARGE_SPACING_ = 11;
|
|
97
|
+
|
|
98
|
+
/** Distance between zoom controls and bottom or top edge of workspace. */
|
|
99
|
+
private readonly MARGIN_VERTICAL_ = 20;
|
|
100
|
+
|
|
101
|
+
/** Distance between zoom controls and right or left edge of workspace. */
|
|
102
|
+
private readonly MARGIN_HORIZONTAL_ = 20;
|
|
103
|
+
|
|
104
|
+
/** The SVG group containing the zoom controls. */
|
|
105
|
+
// AnyDuringMigration because: Type 'null' is not assignable to type
|
|
106
|
+
// 'SVGElement'.
|
|
107
|
+
private svgGroup_: SVGElement = null as AnyDuringMigration;
|
|
108
|
+
|
|
109
|
+
/** Left coordinate of the zoom controls. */
|
|
110
|
+
private left_ = 0;
|
|
111
|
+
|
|
112
|
+
/** Top coordinate of the zoom controls. */
|
|
113
|
+
private top_ = 0;
|
|
114
|
+
|
|
115
|
+
/** Whether this has been initialized. */
|
|
116
|
+
private initialized_ = false;
|
|
117
|
+
|
|
118
|
+
/** @param workspace The workspace to sit in. */
|
|
119
|
+
constructor(private readonly workspace: WorkspaceSvg) {}
|
|
120
|
+
|
|
182
121
|
/**
|
|
183
122
|
* Create the zoom controls.
|
|
184
|
-
* @return
|
|
123
|
+
* @return The zoom controls SVG group.
|
|
185
124
|
*/
|
|
186
|
-
createDom() {
|
|
187
|
-
this.svgGroup_ = dom.createSvgElement(Svg.G, {}
|
|
125
|
+
createDom(): SVGElement {
|
|
126
|
+
this.svgGroup_ = dom.createSvgElement(Svg.G, {});
|
|
188
127
|
|
|
189
128
|
// Each filter/pattern needs a unique ID for the case of multiple Blockly
|
|
190
129
|
// instances on a page. Browser behaviour becomes undefined otherwise.
|
|
@@ -192,30 +131,30 @@ class ZoomControls {
|
|
|
192
131
|
const rnd = String(Math.random()).substring(2);
|
|
193
132
|
this.createZoomOutSvg_(rnd);
|
|
194
133
|
this.createZoomInSvg_(rnd);
|
|
195
|
-
if (this.
|
|
134
|
+
if (this.workspace.isMovable()) {
|
|
196
135
|
// If we zoom to the center and the workspace isn't movable we could
|
|
197
136
|
// loose blocks at the edges of the workspace.
|
|
198
137
|
this.createZoomResetSvg_(rnd);
|
|
199
138
|
}
|
|
200
139
|
return this.svgGroup_;
|
|
201
140
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
*/
|
|
141
|
+
|
|
142
|
+
/** Initializes the zoom controls. */
|
|
205
143
|
init() {
|
|
206
|
-
this.
|
|
144
|
+
this.workspace.getComponentManager().addComponent({
|
|
207
145
|
component: this,
|
|
208
146
|
weight: 2,
|
|
209
147
|
capabilities: [ComponentManager.Capability.POSITIONABLE],
|
|
210
148
|
});
|
|
211
149
|
this.initialized_ = true;
|
|
212
150
|
}
|
|
151
|
+
|
|
213
152
|
/**
|
|
214
153
|
* Disposes of this zoom controls.
|
|
215
154
|
* Unlink from all DOM elements to prevent memory leaks.
|
|
216
155
|
*/
|
|
217
156
|
dispose() {
|
|
218
|
-
this.
|
|
157
|
+
this.workspace.getComponentManager().removeComponent('zoomControls');
|
|
219
158
|
if (this.svgGroup_) {
|
|
220
159
|
dom.removeNode(this.svgGroup_);
|
|
221
160
|
}
|
|
@@ -229,13 +168,14 @@ class ZoomControls {
|
|
|
229
168
|
browserEvents.unbind(this.onZoomOutWrapper_);
|
|
230
169
|
}
|
|
231
170
|
}
|
|
171
|
+
|
|
232
172
|
/**
|
|
233
173
|
* Returns the bounding rectangle of the UI element in pixel units relative to
|
|
234
174
|
* the Blockly injection div.
|
|
235
|
-
* @return
|
|
236
|
-
*
|
|
175
|
+
* @return The UI elements's bounding box. Null if bounding box should be
|
|
176
|
+
* ignored by other UI elements.
|
|
237
177
|
*/
|
|
238
|
-
getBoundingRectangle() {
|
|
178
|
+
getBoundingRectangle(): Rect|null {
|
|
239
179
|
let height = this.SMALL_SPACING_ + 2 * this.HEIGHT_;
|
|
240
180
|
if (this.zoomResetGroup_) {
|
|
241
181
|
height += this.LARGE_SPACING_ + this.HEIGHT_;
|
|
@@ -244,29 +184,29 @@ class ZoomControls {
|
|
|
244
184
|
const right = this.left_ + this.WIDTH_;
|
|
245
185
|
return new Rect(this.top_, bottom, this.left_, right);
|
|
246
186
|
}
|
|
187
|
+
|
|
247
188
|
/**
|
|
248
189
|
* Positions the zoom controls.
|
|
249
190
|
* It is positioned in the opposite corner to the corner the
|
|
250
191
|
* categories/toolbox starts at.
|
|
251
|
-
* @param
|
|
252
|
-
* @param
|
|
253
|
-
* are already on the workspace.
|
|
192
|
+
* @param metrics The workspace metrics.
|
|
193
|
+
* @param savedPositions List of rectangles that are already on the workspace.
|
|
254
194
|
*/
|
|
255
|
-
position(metrics, savedPositions) {
|
|
195
|
+
position(metrics: UiMetrics, savedPositions: Rect[]) {
|
|
256
196
|
// Not yet initialized.
|
|
257
197
|
if (!this.initialized_) {
|
|
258
198
|
return;
|
|
259
199
|
}
|
|
260
200
|
|
|
261
201
|
const cornerPosition =
|
|
262
|
-
uiPosition.getCornerOppositeToolbox(this.
|
|
202
|
+
uiPosition.getCornerOppositeToolbox(this.workspace, metrics);
|
|
263
203
|
let height = this.SMALL_SPACING_ + 2 * this.HEIGHT_;
|
|
264
204
|
if (this.zoomResetGroup_) {
|
|
265
205
|
height += this.LARGE_SPACING_ + this.HEIGHT_;
|
|
266
206
|
}
|
|
267
207
|
const startRect = uiPosition.getStartPositionRect(
|
|
268
208
|
cornerPosition, new Size(this.WIDTH_, height), this.MARGIN_HORIZONTAL_,
|
|
269
|
-
this.MARGIN_VERTICAL_, metrics, this.
|
|
209
|
+
this.MARGIN_VERTICAL_, metrics, this.workspace);
|
|
270
210
|
|
|
271
211
|
const verticalPosition = cornerPosition.vertical;
|
|
272
212
|
const bumpDirection = verticalPosition === uiPosition.verticalPosition.TOP ?
|
|
@@ -301,24 +241,24 @@ class ZoomControls {
|
|
|
301
241
|
this.svgGroup_.setAttribute(
|
|
302
242
|
'transform', 'translate(' + this.left_ + ',' + this.top_ + ')');
|
|
303
243
|
}
|
|
244
|
+
|
|
304
245
|
/**
|
|
305
246
|
* Create the zoom in icon and its event handler.
|
|
306
|
-
* @param
|
|
307
|
-
*
|
|
308
|
-
*
|
|
309
|
-
* @private
|
|
247
|
+
* @param rnd The random string to use as a suffix in the clip path's ID.
|
|
248
|
+
* These IDs must be unique in case there are multiple Blockly instances
|
|
249
|
+
* on the same page.
|
|
310
250
|
*/
|
|
311
|
-
createZoomOutSvg_(rnd) {
|
|
251
|
+
private createZoomOutSvg_(rnd: string) {
|
|
312
252
|
/* This markup will be generated and added to the .svgGroup_:
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
253
|
+
<g class="blocklyZoom">
|
|
254
|
+
<clipPath id="blocklyZoomoutClipPath837493">
|
|
255
|
+
<rect width="32" height="32></rect>
|
|
256
|
+
</clipPath>
|
|
257
|
+
<image width="96" height="124" x="-64" y="-92"
|
|
258
|
+
xlink:href="media/sprites.png"
|
|
259
|
+
clip-path="url(#blocklyZoomoutClipPath837493)"></image>
|
|
260
|
+
</g>
|
|
261
|
+
*/
|
|
322
262
|
this.zoomOutGroup_ =
|
|
323
263
|
dom.createSvgElement(Svg.G, {'class': 'blocklyZoom'}, this.svgGroup_);
|
|
324
264
|
const clip = dom.createSvgElement(
|
|
@@ -341,30 +281,30 @@ class ZoomControls {
|
|
|
341
281
|
this.zoomOutGroup_);
|
|
342
282
|
zoomoutSvg.setAttributeNS(
|
|
343
283
|
dom.XLINK_NS, 'xlink:href',
|
|
344
|
-
this.
|
|
284
|
+
this.workspace.options.pathToMedia + SPRITE.url);
|
|
345
285
|
|
|
346
286
|
// Attach listener.
|
|
347
287
|
this.onZoomOutWrapper_ = browserEvents.conditionalBind(
|
|
348
288
|
this.zoomOutGroup_, 'mousedown', null, this.zoom_.bind(this, -1));
|
|
349
289
|
}
|
|
290
|
+
|
|
350
291
|
/**
|
|
351
292
|
* Create the zoom out icon and its event handler.
|
|
352
|
-
* @param
|
|
353
|
-
*
|
|
354
|
-
*
|
|
355
|
-
* @private
|
|
293
|
+
* @param rnd The random string to use as a suffix in the clip path's ID.
|
|
294
|
+
* These IDs must be unique in case there are multiple Blockly instances
|
|
295
|
+
* on the same page.
|
|
356
296
|
*/
|
|
357
|
-
createZoomInSvg_(rnd) {
|
|
297
|
+
private createZoomInSvg_(rnd: string) {
|
|
358
298
|
/* This markup will be generated and added to the .svgGroup_:
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
299
|
+
<g class="blocklyZoom">
|
|
300
|
+
<clipPath id="blocklyZoominClipPath837493">
|
|
301
|
+
<rect width="32" height="32"></rect>
|
|
302
|
+
</clipPath>
|
|
303
|
+
<image width="96" height="124" x="-32" y="-92"
|
|
304
|
+
xlink:href="media/sprites.png"
|
|
305
|
+
clip-path="url(#blocklyZoominClipPath837493)"></image>
|
|
306
|
+
</g>
|
|
307
|
+
*/
|
|
368
308
|
this.zoomInGroup_ =
|
|
369
309
|
dom.createSvgElement(Svg.G, {'class': 'blocklyZoom'}, this.svgGroup_);
|
|
370
310
|
const clip = dom.createSvgElement(
|
|
@@ -386,46 +326,46 @@ class ZoomControls {
|
|
|
386
326
|
this.zoomInGroup_);
|
|
387
327
|
zoominSvg.setAttributeNS(
|
|
388
328
|
dom.XLINK_NS, 'xlink:href',
|
|
389
|
-
this.
|
|
329
|
+
this.workspace.options.pathToMedia + SPRITE.url);
|
|
390
330
|
|
|
391
331
|
// Attach listener.
|
|
392
332
|
this.onZoomInWrapper_ = browserEvents.conditionalBind(
|
|
393
333
|
this.zoomInGroup_, 'mousedown', null, this.zoom_.bind(this, 1));
|
|
394
334
|
}
|
|
335
|
+
|
|
395
336
|
/**
|
|
396
337
|
* Handles a mouse down event on the zoom in or zoom out buttons on the
|
|
397
338
|
* workspace.
|
|
398
|
-
* @param
|
|
399
|
-
*
|
|
400
|
-
* @param
|
|
401
|
-
* @private
|
|
339
|
+
* @param amount Amount of zooming. Negative amount values zoom out, and
|
|
340
|
+
* positive amount values zoom in.
|
|
341
|
+
* @param e A mouse down event.
|
|
402
342
|
*/
|
|
403
|
-
zoom_(amount, e) {
|
|
404
|
-
this.
|
|
405
|
-
this.
|
|
343
|
+
private zoom_(amount: number, e: Event) {
|
|
344
|
+
this.workspace.markFocused();
|
|
345
|
+
this.workspace.zoomCenter(amount);
|
|
406
346
|
this.fireZoomEvent_();
|
|
407
347
|
Touch.clearTouchIdentifier(); // Don't block future drags.
|
|
408
348
|
e.stopPropagation(); // Don't start a workspace scroll.
|
|
409
349
|
e.preventDefault(); // Stop double-clicking from selecting text.
|
|
410
350
|
}
|
|
351
|
+
|
|
411
352
|
/**
|
|
412
353
|
* Create the zoom reset icon and its event handler.
|
|
413
|
-
* @param
|
|
414
|
-
*
|
|
415
|
-
*
|
|
416
|
-
* @private
|
|
354
|
+
* @param rnd The random string to use as a suffix in the clip path's ID.
|
|
355
|
+
* These IDs must be unique in case there are multiple Blockly instances
|
|
356
|
+
* on the same page.
|
|
417
357
|
*/
|
|
418
|
-
createZoomResetSvg_(rnd) {
|
|
358
|
+
private createZoomResetSvg_(rnd: string) {
|
|
419
359
|
/* This markup will be generated and added to the .svgGroup_:
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
360
|
+
<g class="blocklyZoom">
|
|
361
|
+
<clipPath id="blocklyZoomresetClipPath837493">
|
|
362
|
+
<rect width="32" height="32"></rect>
|
|
363
|
+
</clipPath>
|
|
364
|
+
<image width="96" height="124" x="-32" y="-92"
|
|
365
|
+
xlink:href="media/sprites.png"
|
|
366
|
+
clip-path="url(#blocklyZoomresetClipPath837493)"></image>
|
|
367
|
+
</g>
|
|
368
|
+
*/
|
|
429
369
|
this.zoomResetGroup_ =
|
|
430
370
|
dom.createSvgElement(Svg.G, {'class': 'blocklyZoom'}, this.svgGroup_);
|
|
431
371
|
const clip = dom.createSvgElement(
|
|
@@ -442,54 +382,50 @@ class ZoomControls {
|
|
|
442
382
|
this.zoomResetGroup_);
|
|
443
383
|
zoomresetSvg.setAttributeNS(
|
|
444
384
|
dom.XLINK_NS, 'xlink:href',
|
|
445
|
-
this.
|
|
385
|
+
this.workspace.options.pathToMedia + SPRITE.url);
|
|
446
386
|
|
|
447
387
|
// Attach event listeners.
|
|
448
388
|
this.onZoomResetWrapper_ = browserEvents.conditionalBind(
|
|
449
389
|
this.zoomResetGroup_, 'mousedown', null, this.resetZoom_.bind(this));
|
|
450
390
|
}
|
|
391
|
+
|
|
451
392
|
/**
|
|
452
393
|
* Handles a mouse down event on the reset zoom button on the workspace.
|
|
453
|
-
* @param
|
|
454
|
-
* @private
|
|
394
|
+
* @param e A mouse down event.
|
|
455
395
|
*/
|
|
456
|
-
resetZoom_(e) {
|
|
457
|
-
this.
|
|
396
|
+
private resetZoom_(e: Event) {
|
|
397
|
+
this.workspace.markFocused();
|
|
458
398
|
|
|
459
399
|
// zoom is passed amount and computes the new scale using the formula:
|
|
460
400
|
// targetScale = currentScale * Math.pow(speed, amount)
|
|
461
|
-
const targetScale = this.
|
|
462
|
-
const currentScale = this.
|
|
463
|
-
const speed = this.
|
|
401
|
+
const targetScale = this.workspace.options.zoomOptions.startScale;
|
|
402
|
+
const currentScale = this.workspace.scale;
|
|
403
|
+
const speed = this.workspace.options.zoomOptions.scaleSpeed;
|
|
464
404
|
// To compute amount:
|
|
465
405
|
// amount = log(speed, (targetScale / currentScale))
|
|
466
406
|
// Math.log computes natural logarithm (ln), to change the base, use
|
|
467
407
|
// formula: log(base, value) = ln(value) / ln(base)
|
|
468
408
|
const amount = Math.log(targetScale / currentScale) / Math.log(speed);
|
|
469
|
-
this.
|
|
470
|
-
this.
|
|
471
|
-
this.
|
|
409
|
+
this.workspace.beginCanvasTransition();
|
|
410
|
+
this.workspace.zoomCenter(amount);
|
|
411
|
+
this.workspace.scrollCenter();
|
|
472
412
|
|
|
473
|
-
setTimeout(this.
|
|
413
|
+
setTimeout(this.workspace.endCanvasTransition.bind(this.workspace), 500);
|
|
474
414
|
this.fireZoomEvent_();
|
|
475
415
|
Touch.clearTouchIdentifier(); // Don't block future drags.
|
|
476
416
|
e.stopPropagation(); // Don't start a workspace scroll.
|
|
477
417
|
e.preventDefault(); // Stop double-clicking from selecting text.
|
|
478
418
|
}
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
const uiEvent = new (eventUtils.get(eventUtils.CLICK))(
|
|
485
|
-
null, this.workspace_.id, 'zoom_controls');
|
|
419
|
+
|
|
420
|
+
/** Fires a zoom control UI event. */
|
|
421
|
+
private fireZoomEvent_() {
|
|
422
|
+
const uiEvent = new (eventUtils.get(eventUtils.CLICK))!
|
|
423
|
+
(null, this.workspace.id, 'zoom_controls');
|
|
486
424
|
eventUtils.fire(uiEvent);
|
|
487
425
|
}
|
|
488
426
|
}
|
|
489
427
|
|
|
490
|
-
/**
|
|
491
|
-
* CSS for zoom controls. See css.js for use.
|
|
492
|
-
*/
|
|
428
|
+
/** CSS for zoom controls. See css.js for use. */
|
|
493
429
|
Css.register(`
|
|
494
430
|
.blocklyZoom>image, .blocklyZoom>svg>image {
|
|
495
431
|
opacity: .4;
|
|
@@ -503,5 +439,3 @@ Css.register(`
|
|
|
503
439
|
opacity: .8;
|
|
504
440
|
}
|
|
505
441
|
`);
|
|
506
|
-
|
|
507
|
-
exports.ZoomControls = ZoomControls;
|
package/core.d.ts
CHANGED
package/core.js
CHANGED
|
@@ -23,13 +23,12 @@ Blockly.setLocale = function (locale) {
|
|
|
23
23
|
|
|
24
24
|
// Override textToDomDocument and provide Node.js alternatives to DOMParser and
|
|
25
25
|
// XMLSerializer.
|
|
26
|
-
const globalThis = Blockly.utils.global;
|
|
27
26
|
if (typeof globalThis.document !== 'object') {
|
|
28
27
|
const jsdom = require('jsdom/lib/jsdom/living');
|
|
29
28
|
globalThis.DOMParser = jsdom.DOMParser;
|
|
30
29
|
globalThis.XMLSerializer = jsdom.XMLSerializer;
|
|
31
30
|
const xmlDocument = Blockly.utils.xml.textToDomDocument(
|
|
32
|
-
|
|
31
|
+
`<xml xmlns="${Blockly.utils.xml.NAME_SPACE}"></xml>`);
|
|
33
32
|
Blockly.utils.xml.setDocument(xmlDocument);
|
|
34
33
|
}
|
|
35
34
|
|