blockly 8.0.4-beta.0 → 8.0.5-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blockly.min.js +2421 -2688
- package/blockly_compressed.js +1499 -1994
- package/blockly_compressed.js.map +1 -1
- package/blocks/blocks.js +3 -2
- package/blocks/colour.js +3 -1
- package/blocks/lists.js +94 -22
- package/blocks/logic.js +14 -6
- package/blocks/loops.js +5 -3
- package/blocks/math.js +3 -1
- package/blocks/procedures.js +3 -1
- package/blocks/text.js +14 -6
- package/blocks/variables.js +3 -1
- package/blocks/variables_dynamic.js +3 -1
- package/blocks.d.ts +0 -2
- package/blocks_compressed.js +189 -171
- package/blocks_compressed.js.map +1 -1
- package/closure/goog/base.d.ts +1 -0
- package/closure/goog/base_minimal.d.ts +18 -0
- package/closure/goog/goog.d.ts +25 -0
- package/core/any_aliases.d.ts +1 -0
- package/core/any_aliases.ts +1 -0
- package/core/block.d.ts +779 -0
- package/core/{block.js → block.ts} +610 -719
- package/core/block_animations.d.ts +33 -0
- package/core/{block_animations.js → block_animations.ts} +75 -79
- package/core/block_drag_surface.d.ts +111 -0
- package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
- package/core/block_dragger.d.ts +143 -0
- package/core/{block_dragger.js → block_dragger.ts} +139 -176
- package/core/block_svg.d.ts +588 -0
- package/core/{block_svg.js → block_svg.ts} +494 -630
- package/core/blockly.d.ts +562 -0
- package/core/blockly.js +1 -1
- package/core/blockly.ts +749 -0
- package/core/blockly_options.d.ts +69 -0
- package/core/blockly_options.ts +81 -0
- package/core/blocks.d.ts +17 -0
- package/core/{blocks.js → blocks.ts} +4 -8
- package/core/browser_events.d.ts +85 -0
- package/core/{browser_events.js → browser_events.ts} +98 -93
- package/core/bubble.d.ts +279 -0
- package/core/{bubble.js → bubble.ts} +277 -370
- package/core/bubble_dragger.d.ts +73 -0
- package/core/bubble_dragger.ts +229 -0
- package/core/bump_objects.d.ts +34 -0
- package/core/{bump_objects.js → bump_objects.ts} +54 -52
- package/core/clipboard.d.ts +42 -0
- package/core/clipboard.ts +91 -0
- package/core/comment.d.ts +113 -0
- package/core/{comment.js → comment.ts} +135 -185
- package/core/common.d.ts +129 -0
- package/core/{common.js → common.ts} +105 -82
- package/core/component_manager.d.ts +91 -0
- package/core/component_manager.ts +211 -0
- package/core/config.d.ts +23 -0
- package/core/{config.js → config.ts} +12 -19
- package/core/connection.d.ts +232 -0
- package/core/{connection.js → connection.ts} +187 -237
- package/core/connection_checker.d.ts +78 -0
- package/core/{connection_checker.js → connection_checker.ts} +66 -77
- package/core/connection_db.d.ts +91 -0
- package/core/{connection_db.js → connection_db.ts} +62 -87
- package/core/connection_type.d.ts +15 -0
- package/core/{connection_type.js → connection_type.ts} +8 -12
- package/core/constants.d.ts +15 -0
- package/core/{constants.js → constants.ts} +4 -8
- package/core/contextmenu.d.ts +80 -0
- package/core/{contextmenu.js → contextmenu.ts} +118 -153
- package/core/contextmenu_items.d.ts +77 -0
- package/core/contextmenu_items.ts +576 -0
- package/core/contextmenu_registry.d.ts +105 -0
- package/core/contextmenu_registry.ts +179 -0
- package/core/css.d.ts +24 -0
- package/core/{css.js → css.ts} +16 -24
- package/core/delete_area.d.ts +47 -0
- package/core/delete_area.ts +82 -0
- package/core/dialog.d.ts +61 -0
- package/core/dialog.ts +127 -0
- package/core/drag_target.d.ts +63 -0
- package/core/drag_target.ts +94 -0
- package/core/dropdowndiv.d.ts +155 -0
- package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
- package/core/events/events.d.ts +102 -0
- package/core/events/events.ts +123 -0
- package/core/events/events_abstract.d.ts +51 -0
- package/core/events/events_abstract.ts +112 -0
- package/core/events/events_block_base.d.ts +31 -0
- package/core/events/events_block_base.ts +65 -0
- package/core/events/events_block_change.d.ts +55 -0
- package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
- package/core/events/events_block_create.d.ts +35 -0
- package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
- package/core/events/events_block_delete.d.ts +36 -0
- package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
- package/core/events/events_block_drag.d.ts +36 -0
- package/core/events/events_block_drag.ts +82 -0
- package/core/events/events_block_move.d.ts +51 -0
- package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
- package/core/events/events_bubble_open.d.ts +35 -0
- package/core/events/events_bubble_open.ts +82 -0
- package/core/events/events_click.d.ts +36 -0
- package/core/events/{events_click.js → events_click.ts} +27 -30
- package/core/events/events_comment_base.d.ts +39 -0
- package/core/events/events_comment_base.ts +107 -0
- package/core/events/events_comment_change.d.ts +43 -0
- package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
- package/core/events/events_comment_create.d.ts +35 -0
- package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
- package/core/events/events_comment_delete.d.ts +35 -0
- package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
- package/core/events/events_comment_move.d.ts +55 -0
- package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
- package/core/events/events_marker_move.d.ts +40 -0
- package/core/events/events_marker_move.ts +99 -0
- package/core/events/events_selected.d.ts +34 -0
- package/core/events/events_selected.ts +78 -0
- package/core/events/events_theme_change.d.ts +30 -0
- package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
- package/core/events/events_toolbox_item_select.d.ts +34 -0
- package/core/events/events_toolbox_item_select.ts +79 -0
- package/core/events/events_trashcan_open.d.ts +31 -0
- package/core/events/events_trashcan_open.ts +68 -0
- package/core/events/events_ui.d.ts +37 -0
- package/core/events/{events_ui.js → events_ui.ts} +27 -26
- package/core/events/events_ui_base.d.ts +26 -0
- package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
- package/core/events/events_var_base.d.ts +31 -0
- package/core/events/events_var_base.ts +65 -0
- package/core/events/events_var_create.d.ts +35 -0
- package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
- package/core/events/events_var_delete.d.ts +35 -0
- package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
- package/core/events/events_var_rename.d.ts +36 -0
- package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
- package/core/events/events_viewport.d.ts +39 -0
- package/core/events/events_viewport.ts +100 -0
- package/core/events/utils.d.ts +272 -0
- package/core/events/{utils.js → utils.ts} +148 -219
- package/core/events/workspace_events.d.ts +36 -0
- package/core/events/workspace_events.ts +86 -0
- package/core/extensions.d.ts +107 -0
- package/core/{extensions.js → extensions.ts} +153 -172
- package/core/field.d.ts +534 -0
- package/core/{field.js → field.ts} +413 -489
- package/core/field_angle.d.ts +176 -0
- package/core/field_angle.ts +563 -0
- package/core/field_checkbox.d.ts +124 -0
- package/core/field_checkbox.ts +243 -0
- package/core/field_colour.d.ts +200 -0
- package/core/field_colour.ts +632 -0
- package/core/field_dropdown.d.ts +222 -0
- package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
- package/core/field_image.d.ts +134 -0
- package/core/field_image.ts +282 -0
- package/core/field_label.d.ts +71 -0
- package/core/field_label.ts +152 -0
- package/core/field_label_serializable.d.ts +42 -0
- package/core/field_label_serializable.ts +76 -0
- package/core/field_multilineinput.d.ts +146 -0
- package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
- package/core/field_number.d.ts +156 -0
- package/core/{field_number.js → field_number.ts} +110 -123
- package/core/field_registry.d.ts +45 -0
- package/core/{field_registry.js → field_registry.ts} +37 -30
- package/core/field_textinput.d.ts +219 -0
- package/core/field_textinput.ts +591 -0
- package/core/field_variable.d.ts +217 -0
- package/core/{field_variable.js → field_variable.ts} +174 -187
- package/core/flyout_base.d.ts +459 -0
- package/core/{flyout_base.js → flyout_base.ts} +429 -518
- package/core/flyout_button.d.ts +81 -0
- package/core/flyout_button.ts +292 -0
- package/core/flyout_horizontal.d.ts +82 -0
- package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
- package/core/flyout_metrics_manager.d.ts +40 -0
- package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
- package/core/flyout_vertical.d.ts +83 -0
- package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
- package/core/generator.d.ts +205 -0
- package/core/{generator.js → generator.ts} +168 -193
- package/core/gesture.d.ts +357 -0
- package/core/{gesture.js → gesture.ts} +289 -369
- package/core/grid.d.ts +83 -0
- package/core/grid.ts +192 -0
- package/core/icon.d.ts +78 -0
- package/core/icon.ts +189 -0
- package/core/inject.d.ts +15 -0
- package/core/{inject.js → inject.ts} +101 -100
- package/core/input.d.ts +128 -0
- package/core/input.ts +309 -0
- package/core/input_types.d.ts +14 -0
- package/core/{input_types.js → input_types.ts} +8 -12
- package/core/insertion_marker_manager.d.ts +212 -0
- package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
- package/core/interfaces/i_ast_node_location.d.ts +11 -0
- package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
- package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
- package/core/interfaces/i_ast_node_location_svg.ts +37 -0
- package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
- package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
- package/core/interfaces/i_autohideable.d.ts +18 -0
- package/core/interfaces/i_autohideable.ts +34 -0
- package/core/interfaces/i_block_dragger.d.ts +43 -0
- package/core/interfaces/i_block_dragger.ts +67 -0
- package/core/interfaces/i_bounded_element.d.ts +24 -0
- package/core/interfaces/i_bounded_element.ts +42 -0
- package/core/interfaces/i_bubble.d.ts +59 -0
- package/core/interfaces/i_bubble.ts +88 -0
- package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
- package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
- package/core/interfaces/i_component.d.ts +17 -0
- package/core/interfaces/{i_component.js → i_component.ts} +9 -14
- package/core/interfaces/i_connection_checker.d.ts +69 -0
- package/core/interfaces/i_connection_checker.ts +102 -0
- package/core/interfaces/i_contextmenu.d.ts +13 -0
- package/core/interfaces/i_contextmenu.ts +26 -0
- package/core/interfaces/i_copyable.d.ts +24 -0
- package/core/interfaces/i_copyable.ts +40 -0
- package/core/interfaces/i_deletable.d.ts +16 -0
- package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
- package/core/interfaces/i_delete_area.d.ts +25 -0
- package/core/interfaces/i_delete_area.ts +46 -0
- package/core/interfaces/i_drag_target.d.ts +53 -0
- package/core/interfaces/i_drag_target.ts +84 -0
- package/core/interfaces/i_draggable.d.ts +12 -0
- package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
- package/core/interfaces/i_flyout.d.ts +134 -0
- package/core/interfaces/i_flyout.ts +186 -0
- package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
- package/core/interfaces/i_keyboard_accessible.ts +35 -0
- package/core/interfaces/i_metrics_manager.d.ts +117 -0
- package/core/interfaces/i_metrics_manager.ts +151 -0
- package/core/interfaces/i_movable.d.ts +16 -0
- package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
- package/core/interfaces/i_positionable.d.ts +27 -0
- package/core/interfaces/i_positionable.ts +50 -0
- package/core/interfaces/i_registrable.d.ts +11 -0
- package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
- package/core/interfaces/i_registrable_field.d.ts +17 -0
- package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
- package/core/interfaces/i_selectable.d.ts +18 -0
- package/core/interfaces/i_selectable.ts +34 -0
- package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
- package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
- package/core/interfaces/i_serializer.d.ts +42 -0
- package/core/interfaces/i_serializer.ts +65 -0
- package/core/interfaces/i_styleable.d.ts +21 -0
- package/core/interfaces/i_styleable.ts +35 -0
- package/core/interfaces/i_toolbox.d.ts +85 -0
- package/core/interfaces/i_toolbox.ts +127 -0
- package/core/interfaces/i_toolbox_item.d.ts +62 -0
- package/core/interfaces/i_toolbox_item.ts +84 -0
- package/core/internal_constants.d.ts +40 -0
- package/core/{internal_constants.js → internal_constants.ts} +13 -18
- package/core/keyboard_nav/ast_node.d.ts +239 -0
- package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
- package/core/keyboard_nav/basic_cursor.d.ts +88 -0
- package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
- package/core/keyboard_nav/cursor.d.ts +41 -0
- package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
- package/core/keyboard_nav/marker.d.ts +58 -0
- package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
- package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
- package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
- package/core/main.d.ts +11 -0
- package/core/main.js +303 -0
- package/core/marker_manager.d.ts +85 -0
- package/core/marker_manager.ts +181 -0
- package/core/menu.d.ts +149 -0
- package/core/{menu.js → menu.ts} +141 -174
- package/core/menuitem.d.ts +118 -0
- package/core/menuitem.ts +240 -0
- package/core/metrics_manager.d.ts +201 -0
- package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
- package/core/msg.d.ts +9 -0
- package/core/{msg.js → msg.ts} +4 -8
- package/core/mutator.d.ts +128 -0
- package/core/{mutator.js → mutator.ts} +196 -211
- package/core/names.d.ts +124 -0
- package/core/names.ts +267 -0
- package/core/options.d.ts +137 -0
- package/core/{options.js → options.ts} +147 -173
- package/core/positionable_helpers.d.ts +88 -0
- package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
- package/core/procedures.d.ts +108 -0
- package/core/{procedures.js → procedures.ts} +143 -152
- package/core/registry.d.ts +137 -0
- package/core/registry.ts +339 -0
- package/core/rendered_connection.d.ts +191 -0
- package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
- package/core/renderers/common/block_rendering.d.ts +114 -0
- package/core/renderers/common/block_rendering.ts +164 -0
- package/core/renderers/common/constants.d.ts +458 -0
- package/core/renderers/common/constants.ts +1124 -0
- package/core/renderers/common/debug.d.ts +28 -0
- package/core/renderers/common/{debug.js → debug.ts} +14 -20
- package/core/renderers/common/debugger.d.ts +120 -0
- package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
- package/core/renderers/common/drawer.d.ts +132 -0
- package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
- package/core/renderers/common/i_path_object.d.ts +117 -0
- package/core/renderers/common/i_path_object.ts +161 -0
- package/core/renderers/common/info.d.ts +194 -0
- package/core/renderers/common/{info.js → info.ts} +165 -222
- package/core/renderers/common/marker_svg.d.ts +220 -0
- package/core/renderers/common/marker_svg.ts +680 -0
- package/core/renderers/common/path_object.d.ts +146 -0
- package/core/renderers/common/path_object.ts +272 -0
- package/core/renderers/common/renderer.d.ts +157 -0
- package/core/renderers/common/renderer.ts +271 -0
- package/core/renderers/geras/constants.d.ts +23 -0
- package/core/renderers/geras/constants.ts +61 -0
- package/core/renderers/geras/drawer.d.ts +43 -0
- package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
- package/core/renderers/geras/geras.d.ts +11 -0
- package/core/renderers/geras/geras.ts +37 -0
- package/core/renderers/geras/highlight_constants.d.ts +108 -0
- package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
- package/core/renderers/geras/highlighter.d.ts +98 -0
- package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
- package/core/renderers/geras/info.d.ts +45 -0
- package/core/renderers/geras/{info.js → info.ts} +61 -99
- package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
- package/core/renderers/geras/measurables/inline_input.ts +51 -0
- package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
- package/core/renderers/geras/measurables/statement_input.ts +50 -0
- package/core/renderers/geras/path_object.d.ts +47 -0
- package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
- package/core/renderers/geras/renderer.d.ts +69 -0
- package/core/renderers/geras/renderer.ts +126 -0
- package/core/renderers/measurables/base.d.ts +27 -0
- package/core/renderers/measurables/base.ts +53 -0
- package/core/renderers/measurables/bottom_row.d.ts +61 -0
- package/core/renderers/measurables/bottom_row.ts +120 -0
- package/core/renderers/measurables/connection.d.ts +25 -0
- package/core/renderers/measurables/connection.ts +52 -0
- package/core/renderers/measurables/external_value_input.d.ts +27 -0
- package/core/renderers/measurables/external_value_input.ts +65 -0
- package/core/renderers/measurables/field.d.ts +30 -0
- package/core/renderers/measurables/field.ts +63 -0
- package/core/renderers/measurables/hat.d.ts +21 -0
- package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
- package/core/renderers/measurables/icon.d.ts +26 -0
- package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
- package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
- package/core/renderers/measurables/in_row_spacer.ts +44 -0
- package/core/renderers/measurables/inline_input.d.ts +24 -0
- package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
- package/core/renderers/measurables/input_connection.d.ts +29 -0
- package/core/renderers/measurables/input_connection.ts +66 -0
- package/core/renderers/measurables/input_row.d.ts +30 -0
- package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
- package/core/renderers/measurables/jagged_edge.d.ts +20 -0
- package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
- package/core/renderers/measurables/next_connection.d.ts +23 -0
- package/core/renderers/measurables/next_connection.ts +47 -0
- package/core/renderers/measurables/output_connection.d.ts +26 -0
- package/core/renderers/measurables/output_connection.ts +56 -0
- package/core/renderers/measurables/previous_connection.d.ts +23 -0
- package/core/renderers/measurables/previous_connection.ts +47 -0
- package/core/renderers/measurables/round_corner.d.ts +21 -0
- package/core/renderers/measurables/round_corner.ts +49 -0
- package/core/renderers/measurables/row.d.ts +141 -0
- package/core/renderers/measurables/row.ts +225 -0
- package/core/renderers/measurables/spacer_row.d.ts +29 -0
- package/core/renderers/measurables/spacer_row.ts +55 -0
- package/core/renderers/measurables/square_corner.d.ts +21 -0
- package/core/renderers/measurables/square_corner.ts +47 -0
- package/core/renderers/measurables/statement_input.d.ts +22 -0
- package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
- package/core/renderers/measurables/top_row.d.ts +56 -0
- package/core/renderers/measurables/top_row.ts +122 -0
- package/core/renderers/measurables/types.d.ts +235 -0
- package/core/renderers/measurables/types.ts +332 -0
- package/core/renderers/minimalist/constants.d.ts +14 -0
- package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
- package/core/renderers/minimalist/drawer.d.ts +21 -0
- package/core/renderers/minimalist/drawer.ts +38 -0
- package/core/renderers/minimalist/info.d.ts +30 -0
- package/core/renderers/minimalist/info.ts +52 -0
- package/core/renderers/minimalist/minimalist.d.ts +6 -0
- package/core/renderers/minimalist/minimalist.ts +22 -0
- package/core/renderers/minimalist/renderer.d.ts +41 -0
- package/core/renderers/minimalist/renderer.ts +71 -0
- package/core/renderers/thrasos/info.d.ts +40 -0
- package/core/renderers/thrasos/{info.js → info.ts} +66 -67
- package/core/renderers/thrasos/renderer.d.ts +25 -0
- package/core/renderers/thrasos/renderer.ts +48 -0
- package/core/renderers/thrasos/thrasos.d.ts +4 -0
- package/core/renderers/thrasos/thrasos.ts +20 -0
- package/core/renderers/zelos/constants.d.ts +186 -0
- package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
- package/core/renderers/zelos/drawer.d.ts +47 -0
- package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
- package/core/renderers/zelos/info.d.ts +88 -0
- package/core/renderers/zelos/{info.js → info.ts} +111 -142
- package/core/renderers/zelos/marker_svg.d.ts +46 -0
- package/core/renderers/zelos/marker_svg.ts +151 -0
- package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
- package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
- package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
- package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
- package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
- package/core/renderers/zelos/measurables/row_elements.ts +45 -0
- package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
- package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
- package/core/renderers/zelos/path_object.d.ts +77 -0
- package/core/renderers/zelos/path_object.ts +215 -0
- package/core/renderers/zelos/renderer.d.ts +74 -0
- package/core/renderers/zelos/renderer.ts +142 -0
- package/core/renderers/zelos/zelos.d.ts +12 -0
- package/core/renderers/zelos/zelos.ts +39 -0
- package/core/scrollbar.d.ts +277 -0
- package/core/{scrollbar.js → scrollbar.ts} +307 -328
- package/core/scrollbar_pair.d.ts +105 -0
- package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
- package/core/serialization/blocks.d.ts +98 -0
- package/core/serialization/{blocks.js → blocks.ts} +229 -228
- package/core/serialization/exceptions.d.ts +73 -0
- package/core/serialization/exceptions.ts +98 -0
- package/core/serialization/priorities.d.ts +15 -0
- package/core/serialization/{priorities.js → priorities.ts} +4 -10
- package/core/serialization/registry.d.ts +20 -0
- package/core/serialization/{registry.js → registry.ts} +11 -13
- package/core/serialization/variables.d.ts +14 -0
- package/core/serialization/{variables.js → variables.ts} +30 -32
- package/core/serialization/workspaces.d.ts +28 -0
- package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
- package/core/shortcut_items.d.ts +61 -0
- package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
- package/core/shortcut_registry.d.ts +151 -0
- package/core/shortcut_registry.ts +355 -0
- package/core/sprites.d.ts +19 -0
- package/core/{sprites.js → sprites.ts} +4 -6
- package/core/theme/classic.d.ts +12 -0
- package/core/theme/{classic.js → classic.ts} +5 -7
- package/core/theme/themes.d.ts +8 -0
- package/core/theme/themes.ts +22 -0
- package/core/theme/zelos.d.ts +11 -0
- package/core/theme/{zelos.js → zelos.ts} +4 -7
- package/core/theme.d.ts +142 -0
- package/core/theme.ts +221 -0
- package/core/theme_manager.d.ts +81 -0
- package/core/theme_manager.ts +186 -0
- package/core/toolbox/category.d.ts +239 -0
- package/core/toolbox/category.ts +679 -0
- package/core/toolbox/collapsible_category.d.ts +91 -0
- package/core/toolbox/collapsible_category.ts +273 -0
- package/core/toolbox/separator.d.ts +39 -0
- package/core/toolbox/separator.ts +105 -0
- package/core/toolbox/toolbox.d.ts +352 -0
- package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
- package/core/toolbox/toolbox_item.d.ts +85 -0
- package/core/toolbox/toolbox_item.ts +147 -0
- package/core/tooltip.d.ts +126 -0
- package/core/{tooltip.js → tooltip.ts} +136 -214
- package/core/touch.d.ts +121 -0
- package/core/touch.ts +306 -0
- package/core/touch_gesture.d.ts +115 -0
- package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
- package/core/trashcan.d.ts +195 -0
- package/core/{trashcan.js → trashcan.ts} +226 -312
- package/core/utils/aria.d.ts +67 -0
- package/core/utils/{aria.js → aria.ts} +47 -61
- package/core/utils/array.d.ts +14 -0
- package/core/utils/{array.js → array.ts} +10 -12
- package/core/utils/colour.d.ts +103 -0
- package/core/utils/{colour.js → colour.ts} +60 -72
- package/core/utils/coordinate.d.ts +72 -0
- package/core/utils/coordinate.ts +124 -0
- package/core/utils/deprecation.d.ts +17 -0
- package/core/utils/{deprecation.js → deprecation.ts} +11 -11
- package/core/utils/dom.d.ts +165 -0
- package/core/utils/{dom.js → dom.ts} +125 -147
- package/core/utils/idgenerator.d.ts +25 -0
- package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
- package/core/utils/keycodes.d.ts +137 -0
- package/core/utils/keycodes.ts +169 -0
- package/core/utils/math.d.ts +30 -0
- package/core/utils/{math.js → math.ts} +17 -19
- package/core/utils/metrics.d.ts +64 -0
- package/core/utils/metrics.ts +97 -0
- package/core/utils/object.d.ts +35 -0
- package/core/utils/{object.js → object.ts} +30 -26
- package/core/utils/parsing.d.ts +50 -0
- package/core/utils/{parsing.js → parsing.ts} +50 -50
- package/core/utils/rect.d.ts +38 -0
- package/core/utils/{rect.js → rect.ts} +18 -31
- package/core/utils/sentinel.d.ts +11 -0
- package/core/utils/{sentinel.js → sentinel.ts} +3 -5
- package/core/utils/size.d.ts +27 -0
- package/core/utils/{size.js → size.ts} +12 -26
- package/core/utils/string.d.ts +55 -0
- package/core/utils/{string.js → string.ts} +64 -61
- package/core/utils/style.d.ts +127 -0
- package/core/utils/{style.js → style.ts} +102 -92
- package/core/utils/svg.d.ts +68 -0
- package/core/utils/svg.ts +88 -0
- package/core/utils/svg_math.d.ts +70 -0
- package/core/utils/{svg_math.js → svg_math.ts} +72 -71
- package/core/utils/svg_paths.d.ts +101 -0
- package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
- package/core/utils/toolbox.d.ts +193 -0
- package/core/utils/toolbox.ts +433 -0
- package/core/utils/useragent.d.ts +33 -0
- package/core/utils/useragent.ts +135 -0
- package/core/utils/xml.d.ts +52 -0
- package/core/utils/{xml.js → xml.ts} +26 -36
- package/core/utils.d.ts +217 -0
- package/core/utils.ts +428 -0
- package/core/variable_map.d.ts +141 -0
- package/core/{variable_map.js → variable_map.ts} +131 -149
- package/core/variable_model.d.ts +40 -0
- package/core/variable_model.ts +82 -0
- package/core/variables.d.ts +181 -0
- package/core/{variables.js → variables.ts} +206 -188
- package/core/variables_dynamic.d.ts +38 -0
- package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
- package/core/warning.d.ts +50 -0
- package/core/{warning.js → warning.ts} +52 -66
- package/core/widgetdiv.d.ts +69 -0
- package/core/widgetdiv.ts +257 -0
- package/core/workspace.d.ts +386 -0
- package/core/workspace.ts +801 -0
- package/core/workspace_audio.d.ts +47 -0
- package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
- package/core/workspace_comment.d.ts +170 -0
- package/core/workspace_comment.ts +398 -0
- package/core/workspace_comment_svg.d.ts +329 -0
- package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
- package/core/workspace_drag_surface_svg.d.ts +68 -0
- package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
- package/core/workspace_dragger.d.ts +48 -0
- package/core/workspace_dragger.ts +104 -0
- package/core/workspace_svg.d.ts +920 -0
- package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
- package/core/xml.d.ts +117 -0
- package/core/{xml.js → xml.ts} +306 -326
- package/core/zoom_controls.d.ts +130 -0
- package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
- package/core.d.ts +1 -3
- package/core.js +1 -2
- package/dart.d.ts +0 -3
- package/dart_compressed.js +387 -99
- package/dart_compressed.js.map +1 -1
- package/generators/dart/all.js +2 -0
- package/generators/dart/colour.js +1 -1
- package/generators/dart/lists.js +1 -1
- package/generators/dart/logic.js +1 -1
- package/generators/dart/loops.js +1 -1
- package/generators/dart/math.js +1 -1
- package/generators/dart/procedures.js +1 -1
- package/generators/dart/text.js +1 -1
- package/generators/dart/variables.js +1 -1
- package/generators/dart/variables_dynamic.js +1 -1
- package/generators/dart.js +1 -2
- package/generators/javascript/all.js +2 -0
- package/generators/javascript/colour.js +1 -1
- package/generators/javascript/lists.js +1 -1
- package/generators/javascript/logic.js +1 -1
- package/generators/javascript/loops.js +1 -1
- package/generators/javascript/math.js +4 -4
- package/generators/javascript/procedures.js +1 -1
- package/generators/javascript/text.js +2 -2
- package/generators/javascript/variables.js +1 -1
- package/generators/javascript/variables_dynamic.js +1 -1
- package/generators/javascript.js +1 -3
- package/generators/lua/all.js +2 -0
- package/generators/lua/colour.js +1 -1
- package/generators/lua/lists.js +1 -1
- package/generators/lua/logic.js +1 -1
- package/generators/lua/loops.js +1 -1
- package/generators/lua/math.js +1 -1
- package/generators/lua/procedures.js +1 -1
- package/generators/lua/text.js +1 -1
- package/generators/lua/variables.js +1 -1
- package/generators/lua/variables_dynamic.js +1 -1
- package/generators/lua.js +1 -2
- package/generators/php/all.js +2 -0
- package/generators/php/colour.js +1 -1
- package/generators/php/lists.js +1 -2
- package/generators/php/logic.js +1 -1
- package/generators/php/loops.js +1 -1
- package/generators/php/math.js +1 -1
- package/generators/php/procedures.js +1 -1
- package/generators/php/text.js +1 -1
- package/generators/php/variables.js +1 -1
- package/generators/php/variables_dynamic.js +1 -1
- package/generators/php.js +1 -2
- package/generators/python/all.js +2 -0
- package/generators/python/colour.js +3 -3
- package/generators/python/lists.js +1 -1
- package/generators/python/logic.js +1 -1
- package/generators/python/loops.js +4 -7
- package/generators/python/math.js +1 -1
- package/generators/python/procedures.js +1 -1
- package/generators/python/text.js +1 -1
- package/generators/python/variables.js +1 -1
- package/generators/python/variables_dynamic.js +1 -1
- package/generators/python.js +1 -2
- package/index.d.ts +2 -8
- package/javascript.d.ts +0 -3
- package/javascript_compressed.js +314 -104
- package/javascript_compressed.js.map +1 -1
- package/lua.d.ts +0 -3
- package/lua_compressed.js +399 -81
- package/lua_compressed.js.map +1 -1
- package/msg/ab.js +421 -421
- package/msg/ace.js +421 -421
- package/msg/af.js +421 -421
- package/msg/am.js +421 -421
- package/msg/ar.js +421 -421
- package/msg/ast.js +421 -421
- package/msg/az.js +421 -421
- package/msg/ba.js +421 -421
- package/msg/bcc.js +421 -421
- package/msg/be-tarask.js +421 -421
- package/msg/be.js +421 -421
- package/msg/bg.js +421 -421
- package/msg/bn.js +421 -421
- package/msg/br.js +421 -421
- package/msg/bs.js +421 -421
- package/msg/ca.js +421 -421
- package/msg/cdo.js +421 -421
- package/msg/cs.js +421 -421
- package/msg/da.js +421 -421
- package/msg/de.js +421 -421
- package/msg/diq.js +421 -421
- package/msg/dty.js +421 -421
- package/msg/ee.js +421 -421
- package/msg/el.js +421 -421
- package/msg/en-gb.js +421 -421
- package/msg/en.js +421 -421
- package/msg/eo.js +421 -421
- package/msg/es.js +421 -421
- package/msg/et.js +421 -421
- package/msg/eu.js +421 -421
- package/msg/fa.js +421 -421
- package/msg/fi.js +421 -421
- package/msg/fo.js +421 -421
- package/msg/fr.js +421 -421
- package/msg/frr.js +421 -421
- package/msg/gl.js +421 -421
- package/msg/gn.js +421 -421
- package/msg/gor.js +421 -421
- package/msg/ha.js +421 -421
- package/msg/hak.js +421 -421
- package/msg/he.js +421 -421
- package/msg/hi.js +421 -421
- package/msg/hr.js +421 -421
- package/msg/hrx.js +421 -421
- package/msg/hu.js +421 -421
- package/msg/hy.js +421 -421
- package/msg/ia.js +421 -421
- package/msg/id.js +421 -421
- package/msg/ig.js +421 -421
- package/msg/inh.js +421 -421
- package/msg/is.js +421 -421
- package/msg/it.js +421 -421
- package/msg/ja.js +421 -421
- package/msg/ka.js +421 -421
- package/msg/kab.js +421 -421
- package/msg/kbd-cyrl.js +421 -421
- package/msg/km.js +421 -421
- package/msg/kn.js +421 -421
- package/msg/ko.js +421 -421
- package/msg/ksh.js +421 -421
- package/msg/ku-latn.js +421 -421
- package/msg/ky.js +421 -421
- package/msg/la.js +421 -421
- package/msg/lb.js +421 -421
- package/msg/lki.js +421 -421
- package/msg/lo.js +421 -421
- package/msg/lrc.js +421 -421
- package/msg/lt.js +421 -421
- package/msg/lv.js +421 -421
- package/msg/mg.js +421 -421
- package/msg/mk.js +421 -421
- package/msg/ml.js +421 -421
- package/msg/mnw.js +421 -421
- package/msg/ms.js +421 -421
- package/msg/my.js +421 -421
- package/msg/mzn.js +421 -421
- package/msg/nb.js +421 -421
- package/msg/ne.js +421 -421
- package/msg/nl.js +421 -421
- package/msg/oc.js +421 -421
- package/msg/olo.js +421 -421
- package/msg/pa.js +421 -421
- package/msg/pl.js +421 -421
- package/msg/pms.js +421 -421
- package/msg/ps.js +421 -421
- package/msg/pt-br.js +421 -421
- package/msg/pt.js +421 -421
- package/msg/ro.js +421 -421
- package/msg/ru.js +421 -421
- package/msg/sc.js +421 -421
- package/msg/sco.js +421 -421
- package/msg/sd.js +421 -421
- package/msg/shn.js +421 -421
- package/msg/si.js +421 -421
- package/msg/sk.js +421 -421
- package/msg/skr-arab.js +421 -421
- package/msg/sl.js +421 -421
- package/msg/smn.js +421 -421
- package/msg/sq.js +421 -421
- package/msg/sr-latn.js +421 -421
- package/msg/sr.js +421 -421
- package/msg/sv.js +421 -421
- package/msg/sw.js +421 -421
- package/msg/ta.js +421 -421
- package/msg/tcy.js +421 -421
- package/msg/te.js +421 -421
- package/msg/th.js +421 -421
- package/msg/ti.js +421 -421
- package/msg/tl.js +421 -421
- package/msg/tlh.js +421 -421
- package/msg/tr.js +421 -421
- package/msg/ug-arab.js +421 -421
- package/msg/uk.js +421 -421
- package/msg/ur.js +421 -421
- package/msg/uz.js +421 -421
- package/msg/vi.js +421 -421
- package/msg/xmf.js +421 -421
- package/msg/yo.js +421 -421
- package/msg/yue.js +421 -421
- package/msg/zgh.js +421 -421
- package/msg/zh-hans.js +421 -421
- package/msg/zh-hant.js +421 -421
- package/package.json +5 -5
- package/php.d.ts +0 -3
- package/php_compressed.js +322 -93
- package/php_compressed.js.map +1 -1
- package/python.d.ts +0 -3
- package/python_compressed.js +237 -90
- package/python_compressed.js.map +1 -1
- package/blockly.d.ts +0 -26127
- package/core/blockly_options.js +0 -28
- package/core/bubble_dragger.js +0 -298
- package/core/clipboard.js +0 -80
- package/core/component_manager.js +0 -263
- package/core/contextmenu_items.js +0 -651
- package/core/contextmenu_registry.js +0 -178
- package/core/delete_area.js +0 -87
- package/core/dialog.js +0 -107
- package/core/drag_target.js +0 -98
- package/core/events/events.js +0 -147
- package/core/events/events_abstract.js +0 -133
- package/core/events/events_block_base.js +0 -70
- package/core/events/events_block_drag.js +0 -89
- package/core/events/events_bubble_open.js +0 -90
- package/core/events/events_comment_base.js +0 -121
- package/core/events/events_marker_move.js +0 -110
- package/core/events/events_selected.js +0 -83
- package/core/events/events_toolbox_item_select.js +0 -84
- package/core/events/events_trashcan_open.js +0 -73
- package/core/events/events_var_base.js +0 -70
- package/core/events/events_viewport.js +0 -107
- package/core/events/workspace_events.js +0 -93
- package/core/field_angle.js +0 -591
- package/core/field_checkbox.js +0 -255
- package/core/field_colour.js +0 -717
- package/core/field_image.js +0 -304
- package/core/field_label.js +0 -149
- package/core/field_label_serializable.js +0 -80
- package/core/field_textinput.js +0 -619
- package/core/flyout_button.js +0 -356
- package/core/grid.js +0 -226
- package/core/icon.js +0 -225
- package/core/input.js +0 -335
- package/core/interfaces/i_ast_node_location_svg.js +0 -45
- package/core/interfaces/i_ast_node_location_with_block.js +0 -41
- package/core/interfaces/i_autohideable.js +0 -40
- package/core/interfaces/i_block_dragger.js +0 -66
- package/core/interfaces/i_bounded_element.js +0 -45
- package/core/interfaces/i_bubble.js +0 -95
- package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
- package/core/interfaces/i_connection_checker.js +0 -104
- package/core/interfaces/i_contextmenu.js +0 -32
- package/core/interfaces/i_copyable.js +0 -49
- package/core/interfaces/i_delete_area.js +0 -50
- package/core/interfaces/i_drag_target.js +0 -88
- package/core/interfaces/i_flyout.js +0 -201
- package/core/interfaces/i_keyboard_accessible.js +0 -38
- package/core/interfaces/i_metrics_manager.js +0 -154
- package/core/interfaces/i_positionable.js +0 -51
- package/core/interfaces/i_selectable.js +0 -51
- package/core/interfaces/i_selectable_toolbox_item.js +0 -73
- package/core/interfaces/i_serializer.js +0 -77
- package/core/interfaces/i_styleable.js +0 -39
- package/core/interfaces/i_toolbox.js +0 -142
- package/core/interfaces/i_toolbox_item.js +0 -85
- package/core/marker_manager.js +0 -213
- package/core/menuitem.js +0 -292
- package/core/names.js +0 -293
- package/core/registry.js +0 -384
- package/core/renderers/common/block_rendering.js +0 -170
- package/core/renderers/common/constants.js +0 -1250
- package/core/renderers/common/i_path_object.js +0 -162
- package/core/renderers/common/marker_svg.js +0 -721
- package/core/renderers/common/path_object.js +0 -283
- package/core/renderers/common/renderer.js +0 -305
- package/core/renderers/geras/constants.js +0 -73
- package/core/renderers/geras/geras.js +0 -36
- package/core/renderers/geras/measurables/inline_input.js +0 -58
- package/core/renderers/geras/measurables/statement_input.js +0 -57
- package/core/renderers/geras/renderer.js +0 -149
- package/core/renderers/measurables/base.js +0 -64
- package/core/renderers/measurables/bottom_row.js +0 -138
- package/core/renderers/measurables/connection.js +0 -56
- package/core/renderers/measurables/external_value_input.js +0 -70
- package/core/renderers/measurables/field.js +0 -71
- package/core/renderers/measurables/in_row_spacer.js +0 -47
- package/core/renderers/measurables/input_connection.js +0 -75
- package/core/renderers/measurables/next_connection.js +0 -50
- package/core/renderers/measurables/output_connection.js +0 -61
- package/core/renderers/measurables/previous_connection.js +0 -50
- package/core/renderers/measurables/round_corner.js +0 -52
- package/core/renderers/measurables/row.js +0 -247
- package/core/renderers/measurables/spacer_row.js +0 -69
- package/core/renderers/measurables/square_corner.js +0 -50
- package/core/renderers/measurables/top_row.js +0 -143
- package/core/renderers/measurables/types.js +0 -353
- package/core/renderers/minimalist/drawer.js +0 -42
- package/core/renderers/minimalist/info.js +0 -54
- package/core/renderers/minimalist/minimalist.js +0 -26
- package/core/renderers/minimalist/renderer.js +0 -80
- package/core/renderers/thrasos/renderer.js +0 -53
- package/core/renderers/thrasos/thrasos.js +0 -22
- package/core/renderers/zelos/marker_svg.js +0 -179
- package/core/renderers/zelos/measurables/bottom_row.js +0 -66
- package/core/renderers/zelos/measurables/row_elements.js +0 -46
- package/core/renderers/zelos/path_object.js +0 -247
- package/core/renderers/zelos/renderer.js +0 -147
- package/core/renderers/zelos/zelos.js +0 -38
- package/core/serialization/exceptions.js +0 -144
- package/core/shortcut_registry.js +0 -366
- package/core/theme/themes.js +0 -23
- package/core/theme.js +0 -228
- package/core/theme_manager.js +0 -211
- package/core/toolbox/category.js +0 -751
- package/core/toolbox/collapsible_category.js +0 -311
- package/core/toolbox/separator.js +0 -133
- package/core/toolbox/toolbox_item.js +0 -173
- package/core/touch.js +0 -285
- package/core/utils/coordinate.js +0 -138
- package/core/utils/global.js +0 -41
- package/core/utils/keycodes.js +0 -172
- package/core/utils/metrics.js +0 -154
- package/core/utils/svg.js +0 -186
- package/core/utils/toolbox.js +0 -459
- package/core/utils/useragent.js +0 -197
- package/core/utils.js +0 -383
- package/core/variable_model.js +0 -96
- package/core/widgetdiv.js +0 -290
- package/core/workspace.js +0 -836
- package/core/workspace_comment.js +0 -400
- package/core/workspace_dragger.js +0 -115
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2016 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { Theme, ITheme } from './theme.js';
|
|
7
|
+
import type { WorkspaceSvg } from './workspace_svg.js';
|
|
8
|
+
import type { ToolboxDefinition } from './utils/toolbox.js';
|
|
9
|
+
/**
|
|
10
|
+
* Blockly options.
|
|
11
|
+
* @alias Blockly.BlocklyOptions
|
|
12
|
+
*/
|
|
13
|
+
export interface BlocklyOptions {
|
|
14
|
+
collapse?: boolean;
|
|
15
|
+
comments?: boolean;
|
|
16
|
+
css?: boolean;
|
|
17
|
+
disable?: boolean;
|
|
18
|
+
grid?: GridOptions;
|
|
19
|
+
horizontalLayout?: boolean;
|
|
20
|
+
maxBlocks?: number;
|
|
21
|
+
maxInstances?: {
|
|
22
|
+
[blockType: string]: number;
|
|
23
|
+
};
|
|
24
|
+
media?: string;
|
|
25
|
+
move?: MoveOptions;
|
|
26
|
+
oneBasedIndex?: boolean;
|
|
27
|
+
readOnly?: boolean;
|
|
28
|
+
renderer?: string;
|
|
29
|
+
rendererOverrides?: {
|
|
30
|
+
[rendererConstant: string]: any;
|
|
31
|
+
};
|
|
32
|
+
rtl?: boolean;
|
|
33
|
+
scrollbars?: ScrollbarOptions | boolean;
|
|
34
|
+
sounds?: boolean;
|
|
35
|
+
theme?: Theme | string | ITheme;
|
|
36
|
+
toolbox?: string | ToolboxDefinition | Element;
|
|
37
|
+
toolboxPosition?: string;
|
|
38
|
+
trashcan?: boolean;
|
|
39
|
+
maxTrashcanContents?: number;
|
|
40
|
+
plugins?: {
|
|
41
|
+
[key: string]: (new (...p1: any[]) => any) | string;
|
|
42
|
+
};
|
|
43
|
+
zoom?: ZoomOptions;
|
|
44
|
+
parentWorkspace?: WorkspaceSvg;
|
|
45
|
+
}
|
|
46
|
+
export interface GridOptions {
|
|
47
|
+
colour?: string;
|
|
48
|
+
length?: number;
|
|
49
|
+
snap?: boolean;
|
|
50
|
+
spacing?: number;
|
|
51
|
+
}
|
|
52
|
+
export interface MoveOptions {
|
|
53
|
+
drag?: boolean;
|
|
54
|
+
scrollbars?: boolean | ScrollbarOptions;
|
|
55
|
+
wheel?: boolean;
|
|
56
|
+
}
|
|
57
|
+
export interface ScrollbarOptions {
|
|
58
|
+
horizontal?: boolean;
|
|
59
|
+
vertical?: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface ZoomOptions {
|
|
62
|
+
controls?: boolean;
|
|
63
|
+
maxScale?: number;
|
|
64
|
+
minScale?: number;
|
|
65
|
+
pinch?: boolean;
|
|
66
|
+
scaleSpeed?: number;
|
|
67
|
+
startScale?: number;
|
|
68
|
+
wheel?: boolean;
|
|
69
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2016 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @fileoverview Object that defines user-specified options for the workspace.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Object that defines user-specified options for the workspace.
|
|
13
|
+
* @namespace Blockly.BlocklyOptions
|
|
14
|
+
*/
|
|
15
|
+
import * as goog from '../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.BlocklyOptions');
|
|
17
|
+
|
|
18
|
+
import type {Theme, ITheme} from './theme.js';
|
|
19
|
+
import type {WorkspaceSvg} from './workspace_svg.js';
|
|
20
|
+
import type {ToolboxDefinition} from './utils/toolbox.js';
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Blockly options.
|
|
25
|
+
* @alias Blockly.BlocklyOptions
|
|
26
|
+
*/
|
|
27
|
+
export interface BlocklyOptions {
|
|
28
|
+
collapse?: boolean;
|
|
29
|
+
comments?: boolean;
|
|
30
|
+
css?: boolean;
|
|
31
|
+
disable?: boolean;
|
|
32
|
+
grid?: GridOptions;
|
|
33
|
+
horizontalLayout?: boolean;
|
|
34
|
+
maxBlocks?: number;
|
|
35
|
+
maxInstances?: {[blockType: string]: number};
|
|
36
|
+
media?: string;
|
|
37
|
+
move?: MoveOptions;
|
|
38
|
+
oneBasedIndex?: boolean;
|
|
39
|
+
readOnly?: boolean;
|
|
40
|
+
renderer?: string;
|
|
41
|
+
rendererOverrides?: {[rendererConstant: string]: any};
|
|
42
|
+
rtl?: boolean;
|
|
43
|
+
scrollbars?: ScrollbarOptions|boolean;
|
|
44
|
+
sounds?: boolean;
|
|
45
|
+
theme?: Theme|string|ITheme;
|
|
46
|
+
toolbox?: string|ToolboxDefinition|Element;
|
|
47
|
+
toolboxPosition?: string;
|
|
48
|
+
trashcan?: boolean;
|
|
49
|
+
maxTrashcanContents?: number;
|
|
50
|
+
plugins?: {[key: string]: (new(...p1: any[]) => any)|string};
|
|
51
|
+
zoom?: ZoomOptions;
|
|
52
|
+
parentWorkspace?: WorkspaceSvg;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface GridOptions {
|
|
56
|
+
colour?: string;
|
|
57
|
+
length?: number;
|
|
58
|
+
snap?: boolean;
|
|
59
|
+
spacing?: number;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface MoveOptions {
|
|
63
|
+
drag?: boolean;
|
|
64
|
+
scrollbars?: boolean|ScrollbarOptions;
|
|
65
|
+
wheel?: boolean;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export interface ScrollbarOptions {
|
|
69
|
+
horizontal?: boolean;
|
|
70
|
+
vertical?: boolean;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export interface ZoomOptions {
|
|
74
|
+
controls?: boolean;
|
|
75
|
+
maxScale?: number;
|
|
76
|
+
minScale?: number;
|
|
77
|
+
pinch?: boolean;
|
|
78
|
+
scaleSpeed?: number;
|
|
79
|
+
startScale?: number;
|
|
80
|
+
wheel?: boolean;
|
|
81
|
+
}
|
package/core/blocks.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2013 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* A block definition. For now this very lose, but it can potentially
|
|
8
|
+
* be refined e.g. by replacing this typedef with a class definition.
|
|
9
|
+
*/
|
|
10
|
+
export declare type BlockDefinition = any;
|
|
11
|
+
/**
|
|
12
|
+
* A mapping of block type names to block prototype objects.
|
|
13
|
+
* @alias Blockly.blocks.Blocks
|
|
14
|
+
*/
|
|
15
|
+
export declare const Blocks: {
|
|
16
|
+
[key: string]: BlockDefinition;
|
|
17
|
+
};
|
|
@@ -7,27 +7,23 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview A mapping of block type names to block prototype objects.
|
|
9
9
|
*/
|
|
10
|
-
'use strict';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* A mapping of block type names to block prototype objects.
|
|
14
13
|
* @namespace Blockly.blocks
|
|
15
14
|
*/
|
|
16
|
-
goog
|
|
15
|
+
import * as goog from '../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.blocks');
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* A block definition. For now this very lose, but it can potentially
|
|
21
21
|
* be refined e.g. by replacing this typedef with a class definition.
|
|
22
|
-
* @typedef {!Object}
|
|
23
22
|
*/
|
|
24
|
-
|
|
25
|
-
exports.BlockDefinition = BlockDefinition;
|
|
23
|
+
export type BlockDefinition = AnyDuringMigration;
|
|
26
24
|
|
|
27
25
|
/**
|
|
28
26
|
* A mapping of block type names to block prototype objects.
|
|
29
|
-
* @type {!Object<string,!BlockDefinition>}
|
|
30
27
|
* @alias Blockly.blocks.Blocks
|
|
31
28
|
*/
|
|
32
|
-
const Blocks = Object.create(null);
|
|
33
|
-
exports.Blocks = Blocks;
|
|
29
|
+
export const Blocks: {[key: string]: BlockDefinition} = Object.create(null);
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2021 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Blockly opaque event data used to unbind events when using
|
|
8
|
+
* `bind` and `conditionalBind`.
|
|
9
|
+
* @alias Blockly.browserEvents.Data
|
|
10
|
+
*/
|
|
11
|
+
export declare type Data = [EventTarget, string, (e: Event) => void][];
|
|
12
|
+
/**
|
|
13
|
+
* Bind an event handler that can be ignored if it is not part of the active
|
|
14
|
+
* touch stream.
|
|
15
|
+
* Use this for events that either start or continue a multi-part gesture (e.g.
|
|
16
|
+
* mousedown or mousemove, which may be part of a drag or click).
|
|
17
|
+
* @param node Node upon which to listen.
|
|
18
|
+
* @param name Event name to listen to (e.g. 'mousedown').
|
|
19
|
+
* @param thisObject The value of 'this' in the function.
|
|
20
|
+
* @param func Function to call when event is triggered.
|
|
21
|
+
* @param opt_noCaptureIdentifier True if triggering on this event should not
|
|
22
|
+
* block execution of other event handlers on this touch or other
|
|
23
|
+
* simultaneous touches. False by default.
|
|
24
|
+
* @param opt_noPreventDefault True if triggering on this event should prevent
|
|
25
|
+
* the default handler. False by default. If opt_noPreventDefault is
|
|
26
|
+
* provided, opt_noCaptureIdentifier must also be provided.
|
|
27
|
+
* @return Opaque data that can be passed to unbindEvent_.
|
|
28
|
+
* @alias Blockly.browserEvents.conditionalBind
|
|
29
|
+
*/
|
|
30
|
+
export declare function conditionalBind(node: EventTarget, name: string, thisObject: Object | null, func: Function, opt_noCaptureIdentifier?: boolean, opt_noPreventDefault?: boolean): Data;
|
|
31
|
+
/**
|
|
32
|
+
* Bind an event handler that should be called regardless of whether it is part
|
|
33
|
+
* of the active touch stream.
|
|
34
|
+
* Use this for events that are not part of a multi-part gesture (e.g.
|
|
35
|
+
* mouseover for tooltips).
|
|
36
|
+
* @param node Node upon which to listen.
|
|
37
|
+
* @param name Event name to listen to (e.g. 'mousedown').
|
|
38
|
+
* @param thisObject The value of 'this' in the function.
|
|
39
|
+
* @param func Function to call when event is triggered.
|
|
40
|
+
* @return Opaque data that can be passed to unbindEvent_.
|
|
41
|
+
* @alias Blockly.browserEvents.bind
|
|
42
|
+
*/
|
|
43
|
+
export declare function bind(node: EventTarget, name: string, thisObject: Object | null, func: Function): Data;
|
|
44
|
+
/**
|
|
45
|
+
* Unbind one or more events event from a function call.
|
|
46
|
+
* @param bindData Opaque data from bindEvent_.
|
|
47
|
+
* This list is emptied during the course of calling this function.
|
|
48
|
+
* @return The function call.
|
|
49
|
+
* @alias Blockly.browserEvents.unbind
|
|
50
|
+
*/
|
|
51
|
+
export declare function unbind(bindData: Data): (e: Event) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Returns true if this event is targeting a text input widget?
|
|
54
|
+
* @param e An event.
|
|
55
|
+
* @return True if text input.
|
|
56
|
+
* @alias Blockly.browserEvents.isTargetInput
|
|
57
|
+
*/
|
|
58
|
+
export declare function isTargetInput(e: Event): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Returns true this event is a right-click.
|
|
61
|
+
* @param e Mouse event.
|
|
62
|
+
* @return True if right-click.
|
|
63
|
+
* @alias Blockly.browserEvents.isRightButton
|
|
64
|
+
*/
|
|
65
|
+
export declare function isRightButton(e: MouseEvent): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Returns the converted coordinates of the given mouse event.
|
|
68
|
+
* The origin (0,0) is the top-left corner of the Blockly SVG.
|
|
69
|
+
* @param e Mouse event.
|
|
70
|
+
* @param svg SVG element.
|
|
71
|
+
* @param matrix Inverted screen CTM to use.
|
|
72
|
+
* @return Object with .x and .y properties.
|
|
73
|
+
* @alias Blockly.browserEvents.mouseToSvg
|
|
74
|
+
*/
|
|
75
|
+
export declare function mouseToSvg(e: MouseEvent, svg: SVGSVGElement, matrix: SVGMatrix | null): SVGPoint;
|
|
76
|
+
/**
|
|
77
|
+
* Returns the scroll delta of a mouse event in pixel units.
|
|
78
|
+
* @param e Mouse event.
|
|
79
|
+
* @return Scroll delta object with .x and .y properties.
|
|
80
|
+
* @alias Blockly.browserEvents.getScrollDeltaPixels
|
|
81
|
+
*/
|
|
82
|
+
export declare function getScrollDeltaPixels(e: WheelEvent): {
|
|
83
|
+
x: number;
|
|
84
|
+
y: number;
|
|
85
|
+
};
|
|
@@ -7,34 +7,29 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview Browser event handling.
|
|
9
9
|
*/
|
|
10
|
-
'use strict';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Browser event handling.
|
|
14
13
|
* @namespace Blockly.browserEvents
|
|
15
14
|
*/
|
|
16
|
-
goog
|
|
15
|
+
import * as goog from '../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.browserEvents');
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const {globalThis} = goog.require('Blockly.utils.global');
|
|
18
|
+
import * as Touch from './touch.js';
|
|
19
|
+
import * as userAgent from './utils/useragent.js';
|
|
21
20
|
|
|
22
21
|
|
|
23
22
|
/**
|
|
24
23
|
* Blockly opaque event data used to unbind events when using
|
|
25
24
|
* `bind` and `conditionalBind`.
|
|
26
|
-
* @typedef {!Array<!Array>}
|
|
27
25
|
* @alias Blockly.browserEvents.Data
|
|
28
26
|
*/
|
|
29
|
-
|
|
30
|
-
exports.Data = Data;
|
|
27
|
+
export type Data = [EventTarget, string, (e: Event) => void][];
|
|
31
28
|
|
|
32
29
|
/**
|
|
33
30
|
* The multiplier for scroll wheel deltas using the line delta mode.
|
|
34
31
|
* See https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode
|
|
35
32
|
* for more information on deltaMode.
|
|
36
|
-
* @type {number}
|
|
37
|
-
* @const
|
|
38
33
|
*/
|
|
39
34
|
const LINE_MODE_MULTIPLIER = 40;
|
|
40
35
|
|
|
@@ -42,8 +37,6 @@ const LINE_MODE_MULTIPLIER = 40;
|
|
|
42
37
|
* The multiplier for scroll wheel deltas using the page delta mode.
|
|
43
38
|
* See https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode
|
|
44
39
|
* for more information on deltaMode.
|
|
45
|
-
* @type {number}
|
|
46
|
-
* @const
|
|
47
40
|
*/
|
|
48
41
|
const PAGE_MODE_MULTIPLIER = 125;
|
|
49
42
|
|
|
@@ -52,26 +45,24 @@ const PAGE_MODE_MULTIPLIER = 125;
|
|
|
52
45
|
* touch stream.
|
|
53
46
|
* Use this for events that either start or continue a multi-part gesture (e.g.
|
|
54
47
|
* mousedown or mousemove, which may be part of a drag or click).
|
|
55
|
-
* @param
|
|
56
|
-
* @param
|
|
57
|
-
* @param
|
|
58
|
-
* @param
|
|
59
|
-
* @param
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* @param
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
* @return {!Data} Opaque data that can be passed to
|
|
67
|
-
* unbindEvent_.
|
|
48
|
+
* @param node Node upon which to listen.
|
|
49
|
+
* @param name Event name to listen to (e.g. 'mousedown').
|
|
50
|
+
* @param thisObject The value of 'this' in the function.
|
|
51
|
+
* @param func Function to call when event is triggered.
|
|
52
|
+
* @param opt_noCaptureIdentifier True if triggering on this event should not
|
|
53
|
+
* block execution of other event handlers on this touch or other
|
|
54
|
+
* simultaneous touches. False by default.
|
|
55
|
+
* @param opt_noPreventDefault True if triggering on this event should prevent
|
|
56
|
+
* the default handler. False by default. If opt_noPreventDefault is
|
|
57
|
+
* provided, opt_noCaptureIdentifier must also be provided.
|
|
58
|
+
* @return Opaque data that can be passed to unbindEvent_.
|
|
68
59
|
* @alias Blockly.browserEvents.conditionalBind
|
|
69
60
|
*/
|
|
70
|
-
|
|
71
|
-
node, name, thisObject, func
|
|
72
|
-
opt_noPreventDefault) {
|
|
61
|
+
export function conditionalBind(
|
|
62
|
+
node: EventTarget, name: string, thisObject: Object|null, func: Function,
|
|
63
|
+
opt_noCaptureIdentifier?: boolean, opt_noPreventDefault?: boolean): Data {
|
|
73
64
|
let handled = false;
|
|
74
|
-
|
|
65
|
+
function wrapFunc(e: Event) {
|
|
75
66
|
const captureIdentifier = !opt_noCaptureIdentifier;
|
|
76
67
|
// Handle each touch point separately. If the event was a mouse event, this
|
|
77
68
|
// will hand back an array with one element, which we're fine handling.
|
|
@@ -89,10 +80,10 @@ const conditionalBind = function(
|
|
|
89
80
|
}
|
|
90
81
|
handled = true;
|
|
91
82
|
}
|
|
92
|
-
}
|
|
83
|
+
}
|
|
93
84
|
|
|
94
|
-
const bindData = [];
|
|
95
|
-
if (globalThis['PointerEvent'] &&
|
|
85
|
+
const bindData: Data = [];
|
|
86
|
+
if (globalThis['PointerEvent'] && name in Touch.TOUCH_MAP) {
|
|
96
87
|
for (let i = 0; i < Touch.TOUCH_MAP[name].length; i++) {
|
|
97
88
|
const type = Touch.TOUCH_MAP[name][i];
|
|
98
89
|
node.addEventListener(type, wrapFunc, false);
|
|
@@ -104,7 +95,7 @@ const conditionalBind = function(
|
|
|
104
95
|
|
|
105
96
|
// Add equivalent touch event.
|
|
106
97
|
if (name in Touch.TOUCH_MAP) {
|
|
107
|
-
const touchWrapFunc =
|
|
98
|
+
const touchWrapFunc = (e: Event) => {
|
|
108
99
|
wrapFunc(e);
|
|
109
100
|
// Calling preventDefault stops the browser from scrolling/zooming the
|
|
110
101
|
// page.
|
|
@@ -121,34 +112,33 @@ const conditionalBind = function(
|
|
|
121
112
|
}
|
|
122
113
|
}
|
|
123
114
|
return bindData;
|
|
124
|
-
}
|
|
125
|
-
exports.conditionalBind = conditionalBind;
|
|
126
|
-
|
|
115
|
+
}
|
|
127
116
|
|
|
128
117
|
/**
|
|
129
118
|
* Bind an event handler that should be called regardless of whether it is part
|
|
130
119
|
* of the active touch stream.
|
|
131
120
|
* Use this for events that are not part of a multi-part gesture (e.g.
|
|
132
121
|
* mouseover for tooltips).
|
|
133
|
-
* @param
|
|
134
|
-
* @param
|
|
135
|
-
* @param
|
|
136
|
-
* @param
|
|
137
|
-
* @return
|
|
138
|
-
* unbindEvent_.
|
|
122
|
+
* @param node Node upon which to listen.
|
|
123
|
+
* @param name Event name to listen to (e.g. 'mousedown').
|
|
124
|
+
* @param thisObject The value of 'this' in the function.
|
|
125
|
+
* @param func Function to call when event is triggered.
|
|
126
|
+
* @return Opaque data that can be passed to unbindEvent_.
|
|
139
127
|
* @alias Blockly.browserEvents.bind
|
|
140
128
|
*/
|
|
141
|
-
|
|
142
|
-
|
|
129
|
+
export function bind(
|
|
130
|
+
node: EventTarget, name: string, thisObject: Object|null,
|
|
131
|
+
func: Function): Data {
|
|
132
|
+
function wrapFunc(e: Event) {
|
|
143
133
|
if (thisObject) {
|
|
144
134
|
func.call(thisObject, e);
|
|
145
135
|
} else {
|
|
146
136
|
func(e);
|
|
147
137
|
}
|
|
148
|
-
}
|
|
138
|
+
}
|
|
149
139
|
|
|
150
|
-
const bindData = [];
|
|
151
|
-
if (globalThis['PointerEvent'] &&
|
|
140
|
+
const bindData: Data = [];
|
|
141
|
+
if (globalThis['PointerEvent'] && name in Touch.TOUCH_MAP) {
|
|
152
142
|
for (let i = 0; i < Touch.TOUCH_MAP[name].length; i++) {
|
|
153
143
|
const type = Touch.TOUCH_MAP[name][i];
|
|
154
144
|
node.addEventListener(type, wrapFunc, false);
|
|
@@ -160,13 +150,17 @@ const bind = function(node, name, thisObject, func) {
|
|
|
160
150
|
|
|
161
151
|
// Add equivalent touch event.
|
|
162
152
|
if (name in Touch.TOUCH_MAP) {
|
|
163
|
-
const touchWrapFunc =
|
|
153
|
+
const touchWrapFunc = (e: Event) => {
|
|
164
154
|
// Punt on multitouch events.
|
|
165
|
-
if (e
|
|
155
|
+
if (e instanceof TouchEvent && e.changedTouches &&
|
|
156
|
+
e.changedTouches.length === 1) {
|
|
166
157
|
// Map the touch event's properties to the event.
|
|
167
158
|
const touchPoint = e.changedTouches[0];
|
|
168
|
-
|
|
169
|
-
|
|
159
|
+
// TODO (6311): We are trying to make a touch event look like a mouse
|
|
160
|
+
// event, which is not allowed, because it requires adding more
|
|
161
|
+
// properties to the event. How do we want to deal with this?
|
|
162
|
+
(e as AnyDuringMigration).clientX = touchPoint.clientX;
|
|
163
|
+
(e as AnyDuringMigration).clientY = touchPoint.clientY;
|
|
170
164
|
}
|
|
171
165
|
wrapFunc(e);
|
|
172
166
|
|
|
@@ -181,90 +175,102 @@ const bind = function(node, name, thisObject, func) {
|
|
|
181
175
|
}
|
|
182
176
|
}
|
|
183
177
|
return bindData;
|
|
184
|
-
}
|
|
185
|
-
exports.bind = bind;
|
|
178
|
+
}
|
|
186
179
|
|
|
187
180
|
/**
|
|
188
181
|
* Unbind one or more events event from a function call.
|
|
189
|
-
* @param
|
|
182
|
+
* @param bindData Opaque data from bindEvent_.
|
|
190
183
|
* This list is emptied during the course of calling this function.
|
|
191
|
-
* @return
|
|
184
|
+
* @return The function call.
|
|
192
185
|
* @alias Blockly.browserEvents.unbind
|
|
193
186
|
*/
|
|
194
|
-
|
|
195
|
-
|
|
187
|
+
export function unbind(bindData: Data): (e: Event) => void {
|
|
188
|
+
// Accessing an element of the last property of the array is unsafe if the
|
|
189
|
+
// bindData is an empty array. But that should never happen because developers
|
|
190
|
+
// should only pass Data from bind or conditionalBind.
|
|
191
|
+
let callback = bindData[bindData.length - 1][2];
|
|
196
192
|
while (bindData.length) {
|
|
197
193
|
const bindDatum = bindData.pop();
|
|
198
|
-
const node = bindDatum[0];
|
|
199
|
-
const name = bindDatum[1];
|
|
200
|
-
func = bindDatum[2];
|
|
194
|
+
const node = bindDatum![0];
|
|
195
|
+
const name = bindDatum![1];
|
|
196
|
+
const func = bindDatum![2];
|
|
201
197
|
node.removeEventListener(name, func, false);
|
|
202
198
|
}
|
|
203
|
-
return
|
|
204
|
-
}
|
|
205
|
-
exports.unbind = unbind;
|
|
199
|
+
return callback;
|
|
200
|
+
}
|
|
206
201
|
|
|
207
202
|
/**
|
|
208
203
|
* Returns true if this event is targeting a text input widget?
|
|
209
|
-
* @param
|
|
210
|
-
* @return
|
|
204
|
+
* @param e An event.
|
|
205
|
+
* @return True if text input.
|
|
211
206
|
* @alias Blockly.browserEvents.isTargetInput
|
|
212
207
|
*/
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
208
|
+
export function isTargetInput(e: Event): boolean {
|
|
209
|
+
if (e.target instanceof HTMLElement) {
|
|
210
|
+
if (e.target.isContentEditable ||
|
|
211
|
+
e.target.getAttribute('data-is-text-input') === 'true') {
|
|
212
|
+
return true;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
if (e.target instanceof HTMLInputElement) {
|
|
216
|
+
const target = e.target;
|
|
217
|
+
return target.type === 'text' || target.type === 'number' ||
|
|
218
|
+
target.type === 'email' || target.type === 'password' ||
|
|
219
|
+
target.type === 'search' || target.type === 'tel' ||
|
|
220
|
+
target.type === 'url';
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
if (e.target instanceof HTMLTextAreaElement) {
|
|
224
|
+
return true;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
return false;
|
|
229
|
+
}
|
|
222
230
|
|
|
223
231
|
/**
|
|
224
232
|
* Returns true this event is a right-click.
|
|
225
|
-
* @param
|
|
226
|
-
* @return
|
|
233
|
+
* @param e Mouse event.
|
|
234
|
+
* @return True if right-click.
|
|
227
235
|
* @alias Blockly.browserEvents.isRightButton
|
|
228
236
|
*/
|
|
229
|
-
|
|
237
|
+
export function isRightButton(e: MouseEvent): boolean {
|
|
230
238
|
if (e.ctrlKey && userAgent.MAC) {
|
|
231
239
|
// Control-clicking on Mac OS X is treated as a right-click.
|
|
232
240
|
// WebKit on Mac OS X fails to change button to 2 (but Gecko does).
|
|
233
241
|
return true;
|
|
234
242
|
}
|
|
235
243
|
return e.button === 2;
|
|
236
|
-
}
|
|
237
|
-
exports.isRightButton = isRightButton;
|
|
244
|
+
}
|
|
238
245
|
|
|
239
246
|
/**
|
|
240
247
|
* Returns the converted coordinates of the given mouse event.
|
|
241
248
|
* The origin (0,0) is the top-left corner of the Blockly SVG.
|
|
242
|
-
* @param
|
|
243
|
-
* @param
|
|
244
|
-
* @param
|
|
245
|
-
* @return
|
|
249
|
+
* @param e Mouse event.
|
|
250
|
+
* @param svg SVG element.
|
|
251
|
+
* @param matrix Inverted screen CTM to use.
|
|
252
|
+
* @return Object with .x and .y properties.
|
|
246
253
|
* @alias Blockly.browserEvents.mouseToSvg
|
|
247
254
|
*/
|
|
248
|
-
|
|
255
|
+
export function mouseToSvg(
|
|
256
|
+
e: MouseEvent, svg: SVGSVGElement, matrix: SVGMatrix|null): SVGPoint {
|
|
249
257
|
const svgPoint = svg.createSVGPoint();
|
|
250
258
|
svgPoint.x = e.clientX;
|
|
251
259
|
svgPoint.y = e.clientY;
|
|
252
260
|
|
|
253
261
|
if (!matrix) {
|
|
254
|
-
matrix = svg.getScreenCTM()
|
|
262
|
+
matrix = svg.getScreenCTM()!.inverse();
|
|
255
263
|
}
|
|
256
264
|
return svgPoint.matrixTransform(matrix);
|
|
257
|
-
}
|
|
258
|
-
exports.mouseToSvg = mouseToSvg;
|
|
265
|
+
}
|
|
259
266
|
|
|
260
267
|
/**
|
|
261
268
|
* Returns the scroll delta of a mouse event in pixel units.
|
|
262
|
-
* @param
|
|
263
|
-
* @return
|
|
264
|
-
* properties.
|
|
269
|
+
* @param e Mouse event.
|
|
270
|
+
* @return Scroll delta object with .x and .y properties.
|
|
265
271
|
* @alias Blockly.browserEvents.getScrollDeltaPixels
|
|
266
272
|
*/
|
|
267
|
-
|
|
273
|
+
export function getScrollDeltaPixels(e: WheelEvent): {x: number, y: number} {
|
|
268
274
|
switch (e.deltaMode) {
|
|
269
275
|
case 0x00: // Pixel mode.
|
|
270
276
|
default:
|
|
@@ -280,5 +286,4 @@ const getScrollDeltaPixels = function(e) {
|
|
|
280
286
|
y: e.deltaY * PAGE_MODE_MULTIPLIER,
|
|
281
287
|
};
|
|
282
288
|
}
|
|
283
|
-
}
|
|
284
|
-
exports.getScrollDeltaPixels = getScrollDeltaPixels;
|
|
289
|
+
}
|