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,65 +7,69 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview Functions for injecting Blockly into a web page.
|
|
9
9
|
*/
|
|
10
|
-
'use strict';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Functions for injecting Blockly into a web page.
|
|
14
13
|
* @namespace Blockly.inject
|
|
15
14
|
*/
|
|
16
|
-
goog
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
15
|
+
import * as goog from '../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.inject');
|
|
17
|
+
|
|
18
|
+
import {BlockDragSurfaceSvg} from './block_drag_surface.js';
|
|
19
|
+
import type {BlocklyOptions} from './blockly_options.js';
|
|
20
|
+
import * as browserEvents from './browser_events.js';
|
|
21
|
+
import * as bumpObjects from './bump_objects.js';
|
|
22
|
+
import * as common from './common.js';
|
|
23
|
+
import * as Css from './css.js';
|
|
24
|
+
import * as dropDownDiv from './dropdowndiv.js';
|
|
25
|
+
import {Grid} from './grid.js';
|
|
26
|
+
import {Msg} from './msg.js';
|
|
27
|
+
import {Options} from './options.js';
|
|
28
|
+
import {ScrollbarPair} from './scrollbar_pair.js';
|
|
29
|
+
import {ShortcutRegistry} from './shortcut_registry.js';
|
|
30
|
+
import * as Tooltip from './tooltip.js';
|
|
31
|
+
import * as Touch from './touch.js';
|
|
32
|
+
import * as aria from './utils/aria.js';
|
|
33
|
+
import * as dom from './utils/dom.js';
|
|
34
|
+
import {Svg} from './utils/svg.js';
|
|
35
|
+
import * as userAgent from './utils/useragent.js';
|
|
36
|
+
import * as WidgetDiv from './widgetdiv.js';
|
|
37
|
+
import {Workspace} from './workspace.js';
|
|
38
|
+
import {WorkspaceDragSurfaceSvg} from './workspace_drag_surface_svg.js';
|
|
39
|
+
import {WorkspaceSvg} from './workspace_svg.js';
|
|
41
40
|
|
|
42
41
|
|
|
43
42
|
/**
|
|
44
43
|
* Inject a Blockly editor into the specified container element (usually a div).
|
|
45
|
-
* @param
|
|
46
|
-
*
|
|
47
|
-
* @
|
|
48
|
-
* @return {!WorkspaceSvg} Newly created main workspace.
|
|
44
|
+
* @param container Containing element, or its ID, or a CSS selector.
|
|
45
|
+
* @param opt_options Optional dictionary of options.
|
|
46
|
+
* @return Newly created main workspace.
|
|
49
47
|
* @alias Blockly.inject
|
|
50
48
|
*/
|
|
51
|
-
|
|
49
|
+
export function inject(
|
|
50
|
+
container: Element|string, opt_options?: BlocklyOptions): WorkspaceSvg {
|
|
52
51
|
if (typeof container === 'string') {
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
// AnyDuringMigration because: Type 'Element | null' is not assignable to
|
|
53
|
+
// type 'string | Element'.
|
|
54
|
+
container = (document.getElementById(container) ||
|
|
55
|
+
document.querySelector(container)) as AnyDuringMigration;
|
|
55
56
|
}
|
|
56
57
|
// Verify that the container is in document.
|
|
57
|
-
|
|
58
|
+
// AnyDuringMigration because: Argument of type 'string | Element' is not
|
|
59
|
+
// assignable to parameter of type 'Node'.
|
|
60
|
+
if (!container ||
|
|
61
|
+
!dom.containsNode(document, container as AnyDuringMigration)) {
|
|
58
62
|
throw Error('Error: container is not in current document.');
|
|
59
63
|
}
|
|
60
|
-
const options =
|
|
61
|
-
|
|
62
|
-
const subContainer =
|
|
63
|
-
/** @type {!HTMLDivElement} */ (document.createElement('div'));
|
|
64
|
+
const options = new Options(opt_options || {} as BlocklyOptions);
|
|
65
|
+
const subContainer = (document.createElement('div'));
|
|
64
66
|
subContainer.className = 'injectionDiv';
|
|
65
67
|
subContainer.tabIndex = 0;
|
|
66
68
|
aria.setState(subContainer, aria.State.LABEL, Msg['WORKSPACE_ARIA_LABEL']);
|
|
67
69
|
|
|
68
|
-
|
|
70
|
+
// AnyDuringMigration because: Property 'appendChild' does not exist on type
|
|
71
|
+
// 'string | Element'.
|
|
72
|
+
(container as AnyDuringMigration).appendChild(subContainer);
|
|
69
73
|
const svg = createDom(subContainer, options);
|
|
70
74
|
|
|
71
75
|
// Create surfaces for dragging things. These are optimizations
|
|
@@ -81,24 +85,28 @@ const inject = function(container, opt_options) {
|
|
|
81
85
|
|
|
82
86
|
// Keep focus on the first workspace so entering keyboard navigation looks
|
|
83
87
|
// correct.
|
|
84
|
-
|
|
88
|
+
// AnyDuringMigration because: Argument of type 'WorkspaceSvg' is not
|
|
89
|
+
// assignable to parameter of type 'Workspace'.
|
|
90
|
+
common.setMainWorkspace(workspace as AnyDuringMigration);
|
|
85
91
|
|
|
86
92
|
common.svgResize(workspace);
|
|
87
93
|
|
|
88
94
|
subContainer.addEventListener('focusin', function() {
|
|
89
|
-
|
|
95
|
+
// AnyDuringMigration because: Argument of type 'WorkspaceSvg' is not
|
|
96
|
+
// assignable to parameter of type 'Workspace'.
|
|
97
|
+
common.setMainWorkspace(workspace as AnyDuringMigration);
|
|
90
98
|
});
|
|
91
99
|
|
|
92
100
|
return workspace;
|
|
93
|
-
}
|
|
101
|
+
}
|
|
94
102
|
|
|
95
103
|
/**
|
|
96
104
|
* Create the SVG image.
|
|
97
|
-
* @param
|
|
98
|
-
* @param
|
|
99
|
-
* @return
|
|
105
|
+
* @param container Containing element.
|
|
106
|
+
* @param options Dictionary of options.
|
|
107
|
+
* @return Newly created SVG image.
|
|
100
108
|
*/
|
|
101
|
-
|
|
109
|
+
function createDom(container: Element, options: Options): Element {
|
|
102
110
|
// Sadly browsers (Chrome vs Firefox) are currently inconsistent in laying
|
|
103
111
|
// out content in RTL mode. Therefore Blockly forces the use of LTR,
|
|
104
112
|
// then manually positions content in RTL as needed.
|
|
@@ -109,15 +117,15 @@ const createDom = function(container, options) {
|
|
|
109
117
|
|
|
110
118
|
// Build the SVG DOM.
|
|
111
119
|
/*
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
120
|
+
<svg
|
|
121
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
122
|
+
xmlns:html="http://www.w3.org/1999/xhtml"
|
|
123
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
124
|
+
version="1.1"
|
|
125
|
+
class="blocklySvg">
|
|
126
|
+
...
|
|
127
|
+
</svg>
|
|
128
|
+
*/
|
|
121
129
|
const svg = dom.createSvgElement(
|
|
122
130
|
Svg.SVG, {
|
|
123
131
|
'xmlns': dom.SVG_NS,
|
|
@@ -129,10 +137,10 @@ const createDom = function(container, options) {
|
|
|
129
137
|
},
|
|
130
138
|
container);
|
|
131
139
|
/*
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
140
|
+
<defs>
|
|
141
|
+
... filters go here ...
|
|
142
|
+
</defs>
|
|
143
|
+
*/
|
|
136
144
|
const defs = dom.createSvgElement(Svg.DEFS, {}, svg);
|
|
137
145
|
// Each filter/pattern needs a unique ID for the case of multiple Blockly
|
|
138
146
|
// instances on a page. Browser behaviour becomes undefined otherwise.
|
|
@@ -141,20 +149,19 @@ const createDom = function(container, options) {
|
|
|
141
149
|
|
|
142
150
|
options.gridPattern = Grid.createDom(rnd, options.gridOptions, defs);
|
|
143
151
|
return svg;
|
|
144
|
-
}
|
|
152
|
+
}
|
|
145
153
|
|
|
146
154
|
/**
|
|
147
155
|
* Create a main workspace and add it to the SVG.
|
|
148
|
-
* @param
|
|
149
|
-
* @param
|
|
150
|
-
* @param
|
|
151
|
-
*
|
|
152
|
-
* @
|
|
153
|
-
* SVG for the workspace.
|
|
154
|
-
* @return {!WorkspaceSvg} Newly created main workspace.
|
|
156
|
+
* @param svg SVG element with pattern defined.
|
|
157
|
+
* @param options Dictionary of options.
|
|
158
|
+
* @param blockDragSurface Drag surface SVG for the blocks.
|
|
159
|
+
* @param workspaceDragSurface Drag surface SVG for the workspace.
|
|
160
|
+
* @return Newly created main workspace.
|
|
155
161
|
*/
|
|
156
|
-
|
|
157
|
-
svg, options, blockDragSurface,
|
|
162
|
+
function createMainWorkspace(
|
|
163
|
+
svg: Element, options: Options, blockDragSurface: BlockDragSurfaceSvg,
|
|
164
|
+
workspaceDragSurface: WorkspaceDragSurfaceSvg): WorkspaceSvg {
|
|
158
165
|
options.parentWorkspace = null;
|
|
159
166
|
const mainWorkspace =
|
|
160
167
|
new WorkspaceSvg(options, blockDragSurface, workspaceDragSurface);
|
|
@@ -196,20 +203,20 @@ const createMainWorkspace = function(
|
|
|
196
203
|
dropDownDiv.createDom();
|
|
197
204
|
Tooltip.createDom();
|
|
198
205
|
return mainWorkspace;
|
|
199
|
-
}
|
|
206
|
+
}
|
|
200
207
|
|
|
201
208
|
/**
|
|
202
209
|
* Initialize Blockly with various handlers.
|
|
203
|
-
* @param
|
|
210
|
+
* @param mainWorkspace Newly created main workspace.
|
|
204
211
|
*/
|
|
205
|
-
|
|
212
|
+
function init(mainWorkspace: WorkspaceSvg) {
|
|
206
213
|
const options = mainWorkspace.options;
|
|
207
214
|
const svg = mainWorkspace.getParentSvg();
|
|
208
215
|
|
|
209
216
|
// Suppress the browser's context menu.
|
|
210
217
|
browserEvents.conditionalBind(
|
|
211
|
-
|
|
212
|
-
function(e) {
|
|
218
|
+
svg.parentNode as Element, 'contextmenu', null,
|
|
219
|
+
function(e: AnyDuringMigration) {
|
|
213
220
|
if (!browserEvents.isTargetInput(e)) {
|
|
214
221
|
e.preventDefault();
|
|
215
222
|
}
|
|
@@ -219,8 +226,7 @@ const init = function(mainWorkspace) {
|
|
|
219
226
|
browserEvents.conditionalBind(window, 'resize', null, function() {
|
|
220
227
|
mainWorkspace.hideChaff(true);
|
|
221
228
|
common.svgResize(mainWorkspace);
|
|
222
|
-
|
|
223
|
-
.bumpTopObjectsIntoBounds(mainWorkspace);
|
|
229
|
+
bumpObjects.bumpTopObjectsIntoBounds(mainWorkspace);
|
|
224
230
|
});
|
|
225
231
|
mainWorkspace.setResizeHandlerWrapper(workspaceResizeHandler);
|
|
226
232
|
|
|
@@ -265,36 +271,34 @@ const init = function(mainWorkspace) {
|
|
|
265
271
|
if (options.hasSounds) {
|
|
266
272
|
loadSounds(options.pathToMedia, mainWorkspace);
|
|
267
273
|
}
|
|
268
|
-
}
|
|
274
|
+
}
|
|
269
275
|
|
|
270
276
|
/**
|
|
271
277
|
* Handle a key-down on SVG drawing surface. Does nothing if the main workspace
|
|
272
278
|
* is not visible.
|
|
273
|
-
* @param
|
|
279
|
+
* @param e Key down event.
|
|
274
280
|
*/
|
|
275
281
|
// TODO (https://github.com/google/blockly/issues/1998) handle cases where there
|
|
276
282
|
// are multiple workspaces and non-main workspaces are able to accept input.
|
|
277
|
-
|
|
278
|
-
const mainWorkspace =
|
|
279
|
-
/** @type {!WorkspaceSvg} */ (common.getMainWorkspace());
|
|
283
|
+
function onKeyDown(e: KeyboardEvent) {
|
|
284
|
+
const mainWorkspace = common.getMainWorkspace() as WorkspaceSvg;
|
|
280
285
|
if (!mainWorkspace) {
|
|
281
286
|
return;
|
|
282
287
|
}
|
|
283
288
|
|
|
284
289
|
if (browserEvents.isTargetInput(e) ||
|
|
285
|
-
|
|
290
|
+
mainWorkspace.rendered && !mainWorkspace.isVisible()) {
|
|
286
291
|
// When focused on an HTML text input widget, don't trap any keys.
|
|
287
292
|
// Ignore keypresses on rendered workspaces that have been explicitly
|
|
288
293
|
// hidden.
|
|
289
294
|
return;
|
|
290
295
|
}
|
|
291
296
|
ShortcutRegistry.registry.onKeyDown(mainWorkspace, e);
|
|
292
|
-
}
|
|
297
|
+
}
|
|
293
298
|
|
|
294
299
|
/**
|
|
295
300
|
* Whether event handlers have been bound. Document event handlers will only
|
|
296
301
|
* be bound once, even if Blockly is destroyed and reinjected.
|
|
297
|
-
* @type {boolean}
|
|
298
302
|
*/
|
|
299
303
|
let documentEventsBound = false;
|
|
300
304
|
|
|
@@ -308,12 +312,12 @@ let documentEventsBound = false;
|
|
|
308
312
|
* Also, 'keydown' has to be on the whole document since the browser doesn't
|
|
309
313
|
* understand a concept of focus on the SVG image.
|
|
310
314
|
*/
|
|
311
|
-
|
|
315
|
+
function bindDocumentEvents() {
|
|
312
316
|
if (!documentEventsBound) {
|
|
313
317
|
browserEvents.conditionalBind(document, 'scroll', null, function() {
|
|
314
|
-
const workspaces =
|
|
315
|
-
for (let i = 0, workspace;
|
|
316
|
-
if (workspace
|
|
318
|
+
const workspaces = common.getAllWorkspaces();
|
|
319
|
+
for (let i = 0, workspace; workspace = workspaces[i]; i++) {
|
|
320
|
+
if (workspace instanceof WorkspaceSvg) {
|
|
317
321
|
workspace.updateInverseScreenCTM();
|
|
318
322
|
}
|
|
319
323
|
}
|
|
@@ -328,20 +332,19 @@ const bindDocumentEvents = function() {
|
|
|
328
332
|
browserEvents.conditionalBind(
|
|
329
333
|
window, 'orientationchange', document, function() {
|
|
330
334
|
// TODO (#397): Fix for multiple Blockly workspaces.
|
|
331
|
-
common.svgResize(
|
|
332
|
-
(common.getMainWorkspace()));
|
|
335
|
+
common.svgResize(common.getMainWorkspace() as WorkspaceSvg);
|
|
333
336
|
});
|
|
334
337
|
}
|
|
335
338
|
}
|
|
336
339
|
documentEventsBound = true;
|
|
337
|
-
}
|
|
340
|
+
}
|
|
338
341
|
|
|
339
342
|
/**
|
|
340
343
|
* Load sounds for the given workspace.
|
|
341
|
-
* @param
|
|
342
|
-
* @param
|
|
344
|
+
* @param pathToMedia The path to the media directory.
|
|
345
|
+
* @param workspace The workspace to load sounds for.
|
|
343
346
|
*/
|
|
344
|
-
|
|
347
|
+
function loadSounds(pathToMedia: string, workspace: WorkspaceSvg) {
|
|
345
348
|
const audioMgr = workspace.getAudioManager();
|
|
346
349
|
audioMgr.load(
|
|
347
350
|
[
|
|
@@ -366,13 +369,13 @@ const loadSounds = function(pathToMedia, workspace) {
|
|
|
366
369
|
'delete');
|
|
367
370
|
|
|
368
371
|
// Bind temporary hooks that preload the sounds.
|
|
369
|
-
const soundBinds = [];
|
|
370
|
-
|
|
372
|
+
const soundBinds: AnyDuringMigration[] = [];
|
|
373
|
+
function unbindSounds() {
|
|
371
374
|
while (soundBinds.length) {
|
|
372
375
|
browserEvents.unbind(soundBinds.pop());
|
|
373
376
|
}
|
|
374
377
|
audioMgr.preload();
|
|
375
|
-
}
|
|
378
|
+
}
|
|
376
379
|
|
|
377
380
|
// These are bound on mouse/touch events with
|
|
378
381
|
// Blockly.browserEvents.conditionalBind, so they restrict the touch
|
|
@@ -384,6 +387,4 @@ const loadSounds = function(pathToMedia, workspace) {
|
|
|
384
387
|
document, 'mousemove', null, unbindSounds, true));
|
|
385
388
|
soundBinds.push(browserEvents.conditionalBind(
|
|
386
389
|
document, 'touchstart', null, unbindSounds, true));
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
exports.inject = inject;
|
|
390
|
+
}
|
package/core/input.d.ts
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2012 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import './field_label.js';
|
|
7
|
+
import type { Block } from './block.js';
|
|
8
|
+
import type { BlockSvg } from './block_svg.js';
|
|
9
|
+
import type { Connection } from './connection.js';
|
|
10
|
+
import type { Field } from './field.js';
|
|
11
|
+
/**
|
|
12
|
+
* Class for an input with an optional field.
|
|
13
|
+
* @alias Blockly.Input
|
|
14
|
+
*/
|
|
15
|
+
export declare class Input {
|
|
16
|
+
type: number;
|
|
17
|
+
name: string;
|
|
18
|
+
connection: Connection | null;
|
|
19
|
+
private sourceBlock_;
|
|
20
|
+
fieldRow: Field[];
|
|
21
|
+
align: Align;
|
|
22
|
+
/** Is the input visible? */
|
|
23
|
+
private visible_;
|
|
24
|
+
/**
|
|
25
|
+
* @param type The type of the input.
|
|
26
|
+
* @param name Language-neutral identifier which may used to find this input
|
|
27
|
+
* again.
|
|
28
|
+
* @param block The block containing this input.
|
|
29
|
+
* @param connection Optional connection for this input.
|
|
30
|
+
*/
|
|
31
|
+
constructor(type: number, name: string, block: Block, connection: Connection | null);
|
|
32
|
+
/**
|
|
33
|
+
* Get the source block for this input.
|
|
34
|
+
* @return The source block, or null if there is none.
|
|
35
|
+
*/
|
|
36
|
+
getSourceBlock(): Block;
|
|
37
|
+
/**
|
|
38
|
+
* Add a field (or label from string), and all prefix and suffix fields, to
|
|
39
|
+
* the end of the input's field row.
|
|
40
|
+
* @param field Something to add as a field.
|
|
41
|
+
* @param opt_name Language-neutral identifier which may used to find this
|
|
42
|
+
* field again. Should be unique to the host block.
|
|
43
|
+
* @return The input being append to (to allow chaining).
|
|
44
|
+
*/
|
|
45
|
+
appendField(field: string | Field, opt_name?: string): Input;
|
|
46
|
+
/**
|
|
47
|
+
* Inserts a field (or label from string), and all prefix and suffix fields,
|
|
48
|
+
* at the location of the input's field row.
|
|
49
|
+
* @param index The index at which to insert field.
|
|
50
|
+
* @param field Something to add as a field.
|
|
51
|
+
* @param opt_name Language-neutral identifier which may used to find this
|
|
52
|
+
* field again. Should be unique to the host block.
|
|
53
|
+
* @return The index following the last inserted field.
|
|
54
|
+
*/
|
|
55
|
+
insertFieldAt(index: number, field: string | Field, opt_name?: string): number;
|
|
56
|
+
/**
|
|
57
|
+
* Remove a field from this input.
|
|
58
|
+
* @param name The name of the field.
|
|
59
|
+
* @param opt_quiet True to prevent an error if field is not present.
|
|
60
|
+
* @return True if operation succeeds, false if field is not present and
|
|
61
|
+
* opt_quiet is true.
|
|
62
|
+
* @throws {Error} if the field is not present and opt_quiet is false.
|
|
63
|
+
*/
|
|
64
|
+
removeField(name: string, opt_quiet?: boolean): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Gets whether this input is visible or not.
|
|
67
|
+
* @return True if visible.
|
|
68
|
+
*/
|
|
69
|
+
isVisible(): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Sets whether this input is visible or not.
|
|
72
|
+
* Should only be used to collapse/uncollapse a block.
|
|
73
|
+
* @param visible True if visible.
|
|
74
|
+
* @return List of blocks to render.
|
|
75
|
+
* @internal
|
|
76
|
+
*/
|
|
77
|
+
setVisible(visible: boolean): BlockSvg[];
|
|
78
|
+
/**
|
|
79
|
+
* Mark all fields on this input as dirty.
|
|
80
|
+
* @internal
|
|
81
|
+
*/
|
|
82
|
+
markDirty(): void;
|
|
83
|
+
/**
|
|
84
|
+
* Change a connection's compatibility.
|
|
85
|
+
* @param check Compatible value type or list of value types. Null if all
|
|
86
|
+
* types are compatible.
|
|
87
|
+
* @return The input being modified (to allow chaining).
|
|
88
|
+
*/
|
|
89
|
+
setCheck(check: string | string[] | null): Input;
|
|
90
|
+
/**
|
|
91
|
+
* Change the alignment of the connection's field(s).
|
|
92
|
+
* @param align One of the values of Align. In RTL mode directions
|
|
93
|
+
* are reversed, and Align.RIGHT aligns to the left.
|
|
94
|
+
* @return The input being modified (to allow chaining).
|
|
95
|
+
*/
|
|
96
|
+
setAlign(align: Align): Input;
|
|
97
|
+
/**
|
|
98
|
+
* Changes the connection's shadow block.
|
|
99
|
+
* @param shadow DOM representation of a block or null.
|
|
100
|
+
* @return The input being modified (to allow chaining).
|
|
101
|
+
*/
|
|
102
|
+
setShadowDom(shadow: Element | null): Input;
|
|
103
|
+
/**
|
|
104
|
+
* Returns the XML representation of the connection's shadow block.
|
|
105
|
+
* @return Shadow DOM representation of a block or null.
|
|
106
|
+
*/
|
|
107
|
+
getShadowDom(): Element | null;
|
|
108
|
+
/** Initialize the fields on this input. */
|
|
109
|
+
init(): void;
|
|
110
|
+
/**
|
|
111
|
+
* Sever all links to this input.
|
|
112
|
+
* @suppress {checkTypes}
|
|
113
|
+
*/
|
|
114
|
+
dispose(): void;
|
|
115
|
+
}
|
|
116
|
+
export declare namespace Input {
|
|
117
|
+
/**
|
|
118
|
+
* Enum for alignment of inputs.
|
|
119
|
+
* @alias Blockly.Input.Align
|
|
120
|
+
*/
|
|
121
|
+
enum Align {
|
|
122
|
+
LEFT = -1,
|
|
123
|
+
CENTRE = 0,
|
|
124
|
+
RIGHT = 1
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
export declare type Align = Input.Align;
|
|
128
|
+
export declare const Align: typeof Input.Align;
|