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
|
@@ -7,101 +7,92 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview Components for creating connections between blocks.
|
|
9
9
|
*/
|
|
10
|
-
'use strict';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Components for creating connections between blocks.
|
|
14
13
|
* @class
|
|
15
14
|
*/
|
|
16
|
-
goog
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
15
|
+
import * as goog from '../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.RenderedConnection');
|
|
17
|
+
|
|
18
|
+
import type {Block} from './block.js';
|
|
19
|
+
import type {BlockSvg} from './block_svg.js';
|
|
20
|
+
import * as common from './common.js';
|
|
21
|
+
import {config} from './config.js';
|
|
22
|
+
import {Connection} from './connection.js';
|
|
23
|
+
import type {ConnectionDB} from './connection_db.js';
|
|
24
|
+
import {ConnectionType} from './connection_type.js';
|
|
25
|
+
import * as eventUtils from './events/utils.js';
|
|
26
|
+
import * as internalConstants from './internal_constants.js';
|
|
27
|
+
import {Coordinate} from './utils/coordinate.js';
|
|
28
|
+
import * as dom from './utils/dom.js';
|
|
29
|
+
import {Svg} from './utils/svg.js';
|
|
30
|
+
import * as svgMath from './utils/svg_math.js';
|
|
31
|
+
import * as svgPaths from './utils/svg_paths.js';
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
/** A shape that has a pathDown property. */
|
|
35
|
+
interface PathDownShape {
|
|
36
|
+
pathDown: string;
|
|
37
|
+
}
|
|
35
38
|
|
|
39
|
+
/** A shape that has a pathLeft property. */
|
|
40
|
+
interface PathLeftShape {
|
|
41
|
+
pathLeft: string;
|
|
42
|
+
}
|
|
36
43
|
|
|
37
|
-
/**
|
|
38
|
-
* Maximum randomness in workspace units for bumping a block.
|
|
39
|
-
* @const
|
|
40
|
-
*/
|
|
44
|
+
/** Maximum randomness in workspace units for bumping a block. */
|
|
41
45
|
const BUMP_RANDOMNESS = 10;
|
|
42
46
|
|
|
43
47
|
/**
|
|
44
48
|
* Class for a connection between blocks that may be rendered on screen.
|
|
45
|
-
* @extends {Connection}
|
|
46
49
|
* @alias Blockly.RenderedConnection
|
|
47
50
|
*/
|
|
48
|
-
class RenderedConnection extends Connection {
|
|
51
|
+
export class RenderedConnection extends Connection {
|
|
52
|
+
// TODO(b/109816955): remove '!', see go/strict-prop-init-fix.
|
|
53
|
+
sourceBlock_!: BlockSvg;
|
|
54
|
+
private readonly db_: ConnectionDB;
|
|
55
|
+
private readonly dbOpposite_: ConnectionDB;
|
|
56
|
+
private readonly offsetInBlock_: Coordinate;
|
|
57
|
+
private trackedState_: TrackedState;
|
|
58
|
+
|
|
59
|
+
/** Connection this connection connects to. Null if not connected. */
|
|
60
|
+
override targetConnection: RenderedConnection|null = null;
|
|
61
|
+
|
|
49
62
|
/**
|
|
50
|
-
* @param
|
|
51
|
-
* @param
|
|
63
|
+
* @param source The block establishing this connection.
|
|
64
|
+
* @param type The type of the connection.
|
|
52
65
|
*/
|
|
53
|
-
constructor(source, type) {
|
|
66
|
+
constructor(source: BlockSvg, type: number) {
|
|
54
67
|
super(source, type);
|
|
55
68
|
|
|
56
|
-
/** @type {!BlockSvg} */
|
|
57
|
-
this.sourceBlock_;
|
|
58
|
-
|
|
59
69
|
/**
|
|
60
70
|
* Connection database for connections of this type on the current
|
|
61
71
|
* workspace.
|
|
62
|
-
* @const {!ConnectionDB}
|
|
63
|
-
* @private
|
|
64
72
|
*/
|
|
65
73
|
this.db_ = source.workspace.connectionDBList[type];
|
|
66
74
|
|
|
67
75
|
/**
|
|
68
76
|
* Connection database for connections compatible with this type on the
|
|
69
77
|
* current workspace.
|
|
70
|
-
* @const {!ConnectionDB}
|
|
71
|
-
* @private
|
|
72
78
|
*/
|
|
73
79
|
this.dbOpposite_ =
|
|
74
80
|
source.workspace
|
|
75
81
|
.connectionDBList[internalConstants.OPPOSITE_TYPE[type]];
|
|
76
82
|
|
|
77
|
-
/**
|
|
78
|
-
* Workspace units, (0, 0) is top left of block.
|
|
79
|
-
* @type {!Coordinate}
|
|
80
|
-
* @private
|
|
81
|
-
*/
|
|
83
|
+
/** Workspace units, (0, 0) is top left of block. */
|
|
82
84
|
this.offsetInBlock_ = new Coordinate(0, 0);
|
|
83
85
|
|
|
84
|
-
/**
|
|
85
|
-
* Describes the state of this connection's tracked-ness.
|
|
86
|
-
* @type {RenderedConnection.TrackedState}
|
|
87
|
-
* @private
|
|
88
|
-
*/
|
|
86
|
+
/** Describes the state of this connection's tracked-ness. */
|
|
89
87
|
this.trackedState_ = RenderedConnection.TrackedState.WILL_TRACK;
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Connection this connection connects to. Null if not connected.
|
|
93
|
-
* @type {RenderedConnection}
|
|
94
|
-
*/
|
|
95
|
-
this.targetConnection = null;
|
|
96
88
|
}
|
|
97
89
|
|
|
98
90
|
/**
|
|
99
91
|
* Dispose of this connection. Remove it from the database (if it is
|
|
100
92
|
* tracked) and call the super-function to deal with connected blocks.
|
|
101
|
-
* @
|
|
102
|
-
* @package
|
|
93
|
+
* @internal
|
|
103
94
|
*/
|
|
104
|
-
dispose() {
|
|
95
|
+
override dispose() {
|
|
105
96
|
super.dispose();
|
|
106
97
|
if (this.trackedState_ === RenderedConnection.TrackedState.TRACKED) {
|
|
107
98
|
this.db_.removeConnection(this, this.y);
|
|
@@ -110,30 +101,27 @@ class RenderedConnection extends Connection {
|
|
|
110
101
|
|
|
111
102
|
/**
|
|
112
103
|
* Get the source block for this connection.
|
|
113
|
-
* @return
|
|
114
|
-
* @override
|
|
104
|
+
* @return The source block.
|
|
115
105
|
*/
|
|
116
|
-
getSourceBlock() {
|
|
117
|
-
return
|
|
106
|
+
override getSourceBlock(): BlockSvg {
|
|
107
|
+
return super.getSourceBlock() as BlockSvg;
|
|
118
108
|
}
|
|
119
109
|
|
|
120
110
|
/**
|
|
121
111
|
* Returns the block that this connection connects to.
|
|
122
|
-
* @return
|
|
123
|
-
* @override
|
|
112
|
+
* @return The connected block or null if none is connected.
|
|
124
113
|
*/
|
|
125
|
-
targetBlock() {
|
|
126
|
-
return
|
|
114
|
+
override targetBlock(): BlockSvg|null {
|
|
115
|
+
return super.targetBlock() as BlockSvg;
|
|
127
116
|
}
|
|
128
117
|
|
|
129
118
|
/**
|
|
130
119
|
* Returns the distance between this connection and another connection in
|
|
131
120
|
* workspace units.
|
|
132
|
-
* @param
|
|
133
|
-
*
|
|
134
|
-
* @return {number} The distance between connections, in workspace units.
|
|
121
|
+
* @param otherConnection The other connection to measure the distance to.
|
|
122
|
+
* @return The distance between connections, in workspace units.
|
|
135
123
|
*/
|
|
136
|
-
distanceFrom(otherConnection) {
|
|
124
|
+
distanceFrom(otherConnection: Connection): number {
|
|
137
125
|
const xDiff = this.x - otherConnection.x;
|
|
138
126
|
const yDiff = this.y - otherConnection.y;
|
|
139
127
|
return Math.sqrt(xDiff * xDiff + yDiff * yDiff);
|
|
@@ -142,11 +130,10 @@ class RenderedConnection extends Connection {
|
|
|
142
130
|
/**
|
|
143
131
|
* Move the block(s) belonging to the connection to a point where they don't
|
|
144
132
|
* visually interfere with the specified connection.
|
|
145
|
-
* @param
|
|
146
|
-
*
|
|
147
|
-
* @package
|
|
133
|
+
* @param staticConnection The connection to move away from.
|
|
134
|
+
* @internal
|
|
148
135
|
*/
|
|
149
|
-
bumpAwayFrom(staticConnection) {
|
|
136
|
+
bumpAwayFrom(staticConnection: RenderedConnection) {
|
|
150
137
|
if (this.sourceBlock_.workspace.isDragging()) {
|
|
151
138
|
// Don't move blocks around while the user is doing the same.
|
|
152
139
|
return;
|
|
@@ -172,20 +159,17 @@ class RenderedConnection extends Connection {
|
|
|
172
159
|
// Raise it to the top for extra visibility.
|
|
173
160
|
const selected = common.getSelected() == rootBlock;
|
|
174
161
|
selected || rootBlock.addSelect();
|
|
175
|
-
let dx =
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
Math.floor(Math.random() * BUMP_RANDOMNESS)) -
|
|
180
|
-
this.y;
|
|
162
|
+
let dx = staticConnection.x + config.snapRadius +
|
|
163
|
+
Math.floor(Math.random() * BUMP_RANDOMNESS) - this.x;
|
|
164
|
+
let dy = staticConnection.y + config.snapRadius +
|
|
165
|
+
Math.floor(Math.random() * BUMP_RANDOMNESS) - this.y;
|
|
181
166
|
if (reverse) {
|
|
182
167
|
// When reversing a bump due to an uneditable block, bump up.
|
|
183
168
|
dy = -dy;
|
|
184
169
|
}
|
|
185
170
|
if (rootBlock.RTL) {
|
|
186
|
-
dx =
|
|
187
|
-
|
|
188
|
-
this.x;
|
|
171
|
+
dx = staticConnection.x - config.snapRadius -
|
|
172
|
+
Math.floor(Math.random() * BUMP_RANDOMNESS) - this.x;
|
|
189
173
|
}
|
|
190
174
|
rootBlock.moveBy(dx, dy);
|
|
191
175
|
selected || rootBlock.removeSelect();
|
|
@@ -193,10 +177,10 @@ class RenderedConnection extends Connection {
|
|
|
193
177
|
|
|
194
178
|
/**
|
|
195
179
|
* Change the connection's coordinates.
|
|
196
|
-
* @param
|
|
197
|
-
* @param
|
|
180
|
+
* @param x New absolute x coordinate, in workspace coordinates.
|
|
181
|
+
* @param y New absolute y coordinate, in workspace coordinates.
|
|
198
182
|
*/
|
|
199
|
-
moveTo(x, y) {
|
|
183
|
+
moveTo(x: number, y: number) {
|
|
200
184
|
if (this.trackedState_ === RenderedConnection.TrackedState.WILL_TRACK) {
|
|
201
185
|
this.db_.addConnection(this, y);
|
|
202
186
|
this.trackedState_ = RenderedConnection.TrackedState.TRACKED;
|
|
@@ -210,84 +194,82 @@ class RenderedConnection extends Connection {
|
|
|
210
194
|
|
|
211
195
|
/**
|
|
212
196
|
* Change the connection's coordinates.
|
|
213
|
-
* @param
|
|
214
|
-
* @param
|
|
197
|
+
* @param dx Change to x coordinate, in workspace units.
|
|
198
|
+
* @param dy Change to y coordinate, in workspace units.
|
|
215
199
|
*/
|
|
216
|
-
moveBy(dx, dy) {
|
|
200
|
+
moveBy(dx: number, dy: number) {
|
|
217
201
|
this.moveTo(this.x + dx, this.y + dy);
|
|
218
202
|
}
|
|
219
203
|
|
|
220
204
|
/**
|
|
221
205
|
* Move this connection to the location given by its offset within the block
|
|
222
206
|
* and the location of the block's top left corner.
|
|
223
|
-
* @param
|
|
224
|
-
*
|
|
207
|
+
* @param blockTL The location of the top left corner of the block, in
|
|
208
|
+
* workspace coordinates.
|
|
225
209
|
*/
|
|
226
|
-
moveToOffset(blockTL) {
|
|
210
|
+
moveToOffset(blockTL: Coordinate) {
|
|
227
211
|
this.moveTo(
|
|
228
212
|
blockTL.x + this.offsetInBlock_.x, blockTL.y + this.offsetInBlock_.y);
|
|
229
213
|
}
|
|
230
214
|
|
|
231
215
|
/**
|
|
232
216
|
* Set the offset of this connection relative to the top left of its block.
|
|
233
|
-
* @param
|
|
234
|
-
* @param
|
|
217
|
+
* @param x The new relative x, in workspace units.
|
|
218
|
+
* @param y The new relative y, in workspace units.
|
|
235
219
|
*/
|
|
236
|
-
setOffsetInBlock(x, y) {
|
|
220
|
+
setOffsetInBlock(x: number, y: number) {
|
|
237
221
|
this.offsetInBlock_.x = x;
|
|
238
222
|
this.offsetInBlock_.y = y;
|
|
239
223
|
}
|
|
240
224
|
|
|
241
225
|
/**
|
|
242
226
|
* Get the offset of this connection relative to the top left of its block.
|
|
243
|
-
* @return
|
|
244
|
-
* @
|
|
227
|
+
* @return The offset of the connection.
|
|
228
|
+
* @internal
|
|
245
229
|
*/
|
|
246
|
-
getOffsetInBlock() {
|
|
230
|
+
getOffsetInBlock(): Coordinate {
|
|
247
231
|
return this.offsetInBlock_;
|
|
248
232
|
}
|
|
249
233
|
|
|
250
234
|
/**
|
|
251
235
|
* Move the blocks on either side of this connection right next to each other.
|
|
252
|
-
* @
|
|
236
|
+
* @internal
|
|
253
237
|
*/
|
|
254
238
|
tighten() {
|
|
255
|
-
const dx = this.targetConnection
|
|
256
|
-
const dy = this.targetConnection
|
|
239
|
+
const dx = this.targetConnection!.x - this.x;
|
|
240
|
+
const dy = this.targetConnection!.y - this.y;
|
|
257
241
|
if (dx !== 0 || dy !== 0) {
|
|
258
242
|
const block = this.targetBlock();
|
|
259
|
-
const svgRoot = block
|
|
243
|
+
const svgRoot = block!.getSvgRoot();
|
|
260
244
|
if (!svgRoot) {
|
|
261
245
|
throw Error('block is not rendered.');
|
|
262
246
|
}
|
|
263
247
|
// Workspace coordinates.
|
|
264
248
|
const xy = svgMath.getRelativeXY(svgRoot);
|
|
265
|
-
block
|
|
249
|
+
block!.getSvgRoot().setAttribute(
|
|
266
250
|
'transform', 'translate(' + (xy.x - dx) + ',' + (xy.y - dy) + ')');
|
|
267
|
-
block
|
|
251
|
+
block!.moveConnections(-dx, -dy);
|
|
268
252
|
}
|
|
269
253
|
}
|
|
270
254
|
|
|
271
255
|
/**
|
|
272
256
|
* Find the closest compatible connection to this connection.
|
|
273
257
|
* All parameters are in workspace units.
|
|
274
|
-
* @param
|
|
275
|
-
* @param
|
|
276
|
-
*
|
|
277
|
-
* @return
|
|
278
|
-
*
|
|
279
|
-
* and 'radius' which is the distance.
|
|
258
|
+
* @param maxLimit The maximum radius to another connection.
|
|
259
|
+
* @param dxy Offset between this connection's location in the database and
|
|
260
|
+
* the current location (as a result of dragging).
|
|
261
|
+
* @return Contains two properties: 'connection' which is either another
|
|
262
|
+
* connection or null, and 'radius' which is the distance.
|
|
280
263
|
*/
|
|
281
|
-
closest(maxLimit, dxy)
|
|
264
|
+
closest(maxLimit: number, dxy: Coordinate):
|
|
265
|
+
{connection: RenderedConnection|null, radius: number} {
|
|
282
266
|
return this.dbOpposite_.searchForClosest(this, maxLimit, dxy);
|
|
283
267
|
}
|
|
284
268
|
|
|
285
|
-
/**
|
|
286
|
-
* Add highlighting around this connection.
|
|
287
|
-
*/
|
|
269
|
+
/** Add highlighting around this connection. */
|
|
288
270
|
highlight() {
|
|
289
271
|
let steps;
|
|
290
|
-
const sourceBlockSvg =
|
|
272
|
+
const sourceBlockSvg = (this.sourceBlock_);
|
|
291
273
|
const renderConstants =
|
|
292
274
|
sourceBlockSvg.workspace.getRenderer().getConstants();
|
|
293
275
|
const shape = renderConstants.shapeFor(this);
|
|
@@ -296,18 +278,22 @@ class RenderedConnection extends Connection {
|
|
|
296
278
|
// Vertical line, puzzle tab, vertical line.
|
|
297
279
|
const yLen = renderConstants.TAB_OFFSET_FROM_TOP;
|
|
298
280
|
steps = svgPaths.moveBy(0, -yLen) + svgPaths.lineOnAxis('v', yLen) +
|
|
299
|
-
shape.pathDown +
|
|
281
|
+
(shape as unknown as PathDownShape).pathDown +
|
|
282
|
+
svgPaths.lineOnAxis('v', yLen);
|
|
300
283
|
} else {
|
|
301
284
|
const xLen =
|
|
302
285
|
renderConstants.NOTCH_OFFSET_LEFT - renderConstants.CORNER_RADIUS;
|
|
303
286
|
// Horizontal line, notch, horizontal line.
|
|
304
287
|
steps = svgPaths.moveBy(-xLen, 0) + svgPaths.lineOnAxis('h', xLen) +
|
|
305
|
-
shape.pathLeft +
|
|
288
|
+
(shape as unknown as PathLeftShape).pathLeft +
|
|
289
|
+
svgPaths.lineOnAxis('h', xLen);
|
|
306
290
|
}
|
|
307
291
|
const xy = this.sourceBlock_.getRelativeToSurfaceXY();
|
|
308
292
|
const x = this.x - xy.x;
|
|
309
293
|
const y = this.y - xy.y;
|
|
310
|
-
|
|
294
|
+
// AnyDuringMigration because: Property 'highlightedPath_' does not exist
|
|
295
|
+
// on type 'typeof Connection'.
|
|
296
|
+
(Connection as AnyDuringMigration).highlightedPath_ = dom.createSvgElement(
|
|
311
297
|
Svg.PATH, {
|
|
312
298
|
'class': 'blocklyHighlightedConnectionPath',
|
|
313
299
|
'd': steps,
|
|
@@ -317,25 +303,26 @@ class RenderedConnection extends Connection {
|
|
|
317
303
|
this.sourceBlock_.getSvgRoot());
|
|
318
304
|
}
|
|
319
305
|
|
|
320
|
-
/**
|
|
321
|
-
* Remove the highlighting around this connection.
|
|
322
|
-
*/
|
|
306
|
+
/** Remove the highlighting around this connection. */
|
|
323
307
|
unhighlight() {
|
|
324
|
-
|
|
325
|
-
|
|
308
|
+
// AnyDuringMigration because: Property 'highlightedPath_' does not exist
|
|
309
|
+
// on type 'typeof Connection'.
|
|
310
|
+
dom.removeNode((Connection as AnyDuringMigration).highlightedPath_);
|
|
311
|
+
// AnyDuringMigration because: Property 'highlightedPath_' does not exist
|
|
312
|
+
// on type 'typeof Connection'.
|
|
313
|
+
delete (Connection as AnyDuringMigration).highlightedPath_;
|
|
326
314
|
}
|
|
327
315
|
|
|
328
316
|
/**
|
|
329
317
|
* Set whether this connections is tracked in the database or not.
|
|
330
|
-
* @param
|
|
331
|
-
*
|
|
332
|
-
* @package
|
|
318
|
+
* @param doTracking If true, start tracking. If false, stop tracking.
|
|
319
|
+
* @internal
|
|
333
320
|
*/
|
|
334
|
-
setTracking(doTracking) {
|
|
335
|
-
if (
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
321
|
+
setTracking(doTracking: boolean) {
|
|
322
|
+
if (doTracking &&
|
|
323
|
+
this.trackedState_ === RenderedConnection.TrackedState.TRACKED ||
|
|
324
|
+
!doTracking &&
|
|
325
|
+
this.trackedState_ === RenderedConnection.TrackedState.UNTRACKED) {
|
|
339
326
|
return;
|
|
340
327
|
}
|
|
341
328
|
if (this.sourceBlock_.isInFlyout) {
|
|
@@ -359,19 +346,18 @@ class RenderedConnection extends Connection {
|
|
|
359
346
|
* collapsed.
|
|
360
347
|
*
|
|
361
348
|
* Also closes down-stream icons/bubbles.
|
|
362
|
-
* @
|
|
349
|
+
* @internal
|
|
363
350
|
*/
|
|
364
351
|
stopTrackingAll() {
|
|
365
352
|
this.setTracking(false);
|
|
366
353
|
if (this.targetConnection) {
|
|
367
|
-
const blocks = this.targetBlock()
|
|
354
|
+
const blocks = this.targetBlock()!.getDescendants(false);
|
|
368
355
|
for (let i = 0; i < blocks.length; i++) {
|
|
369
356
|
const block = blocks[i];
|
|
370
357
|
// Stop tracking connections of all children.
|
|
371
358
|
const connections = block.getConnections_(true);
|
|
372
359
|
for (let j = 0; j < connections.length; j++) {
|
|
373
|
-
|
|
374
|
-
.setTracking(false);
|
|
360
|
+
(connections[j]).setTracking(false);
|
|
375
361
|
}
|
|
376
362
|
// Close all bubbles of all children.
|
|
377
363
|
const icons = block.getIcons();
|
|
@@ -386,15 +372,15 @@ class RenderedConnection extends Connection {
|
|
|
386
372
|
* Start tracking this connection, as well as all down-stream connections on
|
|
387
373
|
* any block attached to this connection. This happens when a block is
|
|
388
374
|
* expanded.
|
|
389
|
-
* @return
|
|
375
|
+
* @return List of blocks to render.
|
|
390
376
|
*/
|
|
391
|
-
startTrackingAll() {
|
|
377
|
+
startTrackingAll(): Block[] {
|
|
392
378
|
this.setTracking(true);
|
|
393
379
|
// All blocks that are not tracked must start tracking before any
|
|
394
380
|
// rendering takes place, since rendering requires knowing the dimensions
|
|
395
381
|
// of lower blocks. Also, since rendering a block renders all its parents,
|
|
396
382
|
// we only need to render the leaf nodes.
|
|
397
|
-
let renderList = [];
|
|
383
|
+
let renderList: AnyDuringMigration[] = [];
|
|
398
384
|
if (this.type !== ConnectionType.INPUT_VALUE &&
|
|
399
385
|
this.type !== ConnectionType.NEXT_STATEMENT) {
|
|
400
386
|
// Only spider down.
|
|
@@ -428,19 +414,18 @@ class RenderedConnection extends Connection {
|
|
|
428
414
|
* Behavior after a connection attempt fails.
|
|
429
415
|
* Bumps this connection away from the other connection. Called when an
|
|
430
416
|
* attempted connection fails.
|
|
431
|
-
* @param
|
|
432
|
-
*
|
|
433
|
-
* @
|
|
417
|
+
* @param otherConnection Connection that this connection failed to connect
|
|
418
|
+
* to.
|
|
419
|
+
* @internal
|
|
434
420
|
*/
|
|
435
|
-
onFailedConnect(otherConnection) {
|
|
421
|
+
override onFailedConnect(otherConnection: Connection) {
|
|
436
422
|
const block = this.getSourceBlock();
|
|
437
423
|
if (eventUtils.getRecordUndo()) {
|
|
438
424
|
const group = eventUtils.getGroup();
|
|
439
|
-
setTimeout(function() {
|
|
425
|
+
setTimeout(function(this: RenderedConnection) {
|
|
440
426
|
if (!block.isDisposed() && !block.getParent()) {
|
|
441
427
|
eventUtils.setGroup(group);
|
|
442
|
-
this.bumpAwayFrom(
|
|
443
|
-
/** @type {!RenderedConnection} */ (otherConnection));
|
|
428
|
+
this.bumpAwayFrom(otherConnection as RenderedConnection);
|
|
444
429
|
eventUtils.setGroup(false);
|
|
445
430
|
}
|
|
446
431
|
}.bind(this), config.bumpDelay);
|
|
@@ -449,16 +434,14 @@ class RenderedConnection extends Connection {
|
|
|
449
434
|
|
|
450
435
|
/**
|
|
451
436
|
* Disconnect two blocks that are connected by this connection.
|
|
452
|
-
* @param
|
|
453
|
-
* @param
|
|
454
|
-
* @protected
|
|
455
|
-
* @override
|
|
437
|
+
* @param parentBlock The superior block.
|
|
438
|
+
* @param childBlock The inferior block.
|
|
456
439
|
*/
|
|
457
|
-
disconnectInternal_(
|
|
440
|
+
protected override disconnectInternal_(
|
|
441
|
+
parentBlock: Block, childBlock: Block) {
|
|
458
442
|
super.disconnectInternal_(parentBlock, childBlock);
|
|
459
|
-
const renderedParent =
|
|
460
|
-
const renderedChild =
|
|
461
|
-
|
|
443
|
+
const renderedParent = parentBlock as BlockSvg;
|
|
444
|
+
const renderedChild = childBlock as BlockSvg;
|
|
462
445
|
// Rerender the parent so that it may reflow.
|
|
463
446
|
if (renderedParent.rendered) {
|
|
464
447
|
renderedParent.render();
|
|
@@ -474,10 +457,8 @@ class RenderedConnection extends Connection {
|
|
|
474
457
|
/**
|
|
475
458
|
* Respawn the shadow block if there was one connected to the this connection.
|
|
476
459
|
* Render/rerender blocks as needed.
|
|
477
|
-
* @protected
|
|
478
|
-
* @override
|
|
479
460
|
*/
|
|
480
|
-
respawnShadow_() {
|
|
461
|
+
protected override respawnShadow_() {
|
|
481
462
|
super.respawnShadow_();
|
|
482
463
|
const blockShadow = this.targetBlock();
|
|
483
464
|
if (!blockShadow) {
|
|
@@ -495,26 +476,24 @@ class RenderedConnection extends Connection {
|
|
|
495
476
|
/**
|
|
496
477
|
* Find all nearby compatible connections to this connection.
|
|
497
478
|
* Type checking does not apply, since this function is used for bumping.
|
|
498
|
-
* @param
|
|
499
|
-
*
|
|
500
|
-
* @return
|
|
501
|
-
* @
|
|
479
|
+
* @param maxLimit The maximum radius to another connection, in workspace
|
|
480
|
+
* units.
|
|
481
|
+
* @return List of connections.
|
|
482
|
+
* @internal
|
|
502
483
|
*/
|
|
503
|
-
neighbours(maxLimit) {
|
|
484
|
+
override neighbours(maxLimit: number): Connection[] {
|
|
504
485
|
return this.dbOpposite_.getNeighbours(this, maxLimit);
|
|
505
486
|
}
|
|
506
487
|
|
|
507
488
|
/**
|
|
508
489
|
* Connect two connections together. This is the connection on the superior
|
|
509
490
|
* block. Rerender blocks as needed.
|
|
510
|
-
* @param
|
|
511
|
-
* @protected
|
|
491
|
+
* @param childConnection Connection on inferior block.
|
|
512
492
|
*/
|
|
513
|
-
connect_(childConnection) {
|
|
493
|
+
protected override connect_(childConnection: Connection) {
|
|
514
494
|
super.connect_(childConnection);
|
|
515
495
|
|
|
516
|
-
const renderedChildConnection =
|
|
517
|
-
(childConnection);
|
|
496
|
+
const renderedChildConnection = childConnection as RenderedConnection;
|
|
518
497
|
|
|
519
498
|
const parentConnection = this;
|
|
520
499
|
const parentBlock = parentConnection.getSourceBlock();
|
|
@@ -551,38 +530,39 @@ class RenderedConnection extends Connection {
|
|
|
551
530
|
|
|
552
531
|
/**
|
|
553
532
|
* Function to be called when this connection's compatible types have changed.
|
|
554
|
-
* @protected
|
|
555
533
|
*/
|
|
556
|
-
onCheckChanged_() {
|
|
534
|
+
protected override onCheckChanged_() {
|
|
557
535
|
// The new value type may not be compatible with the existing connection.
|
|
558
536
|
if (this.isConnected() &&
|
|
559
537
|
(!this.targetConnection ||
|
|
560
538
|
!this.getConnectionChecker().canConnect(
|
|
561
539
|
this, this.targetConnection, false))) {
|
|
562
540
|
const child = this.isSuperior() ? this.targetBlock() : this.sourceBlock_;
|
|
563
|
-
child
|
|
541
|
+
child!.unplug();
|
|
564
542
|
// Bump away.
|
|
565
543
|
this.sourceBlock_.bumpNeighbours();
|
|
566
544
|
}
|
|
567
545
|
}
|
|
568
546
|
}
|
|
569
547
|
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
}
|
|
548
|
+
export namespace RenderedConnection {
|
|
549
|
+
/**
|
|
550
|
+
* Enum for different kinds of tracked states.
|
|
551
|
+
*
|
|
552
|
+
* WILL_TRACK means that this connection will add itself to
|
|
553
|
+
* the db on the next moveTo call it receives.
|
|
554
|
+
*
|
|
555
|
+
* UNTRACKED means that this connection will not add
|
|
556
|
+
* itself to the database until setTracking(true) is explicitly called.
|
|
557
|
+
*
|
|
558
|
+
* TRACKED means that this connection is currently being tracked.
|
|
559
|
+
*/
|
|
560
|
+
export enum TrackedState {
|
|
561
|
+
WILL_TRACK = -1,
|
|
562
|
+
UNTRACKED = 0,
|
|
563
|
+
TRACKED = 1,
|
|
564
|
+
}
|
|
565
|
+
}
|
|
587
566
|
|
|
588
|
-
|
|
567
|
+
export type TrackedState = RenderedConnection.TrackedState;
|
|
568
|
+
export const TrackedState = RenderedConnection.TrackedState;
|