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
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2019 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { BlockStyle } from '../../theme.js';
|
|
7
|
+
import type { ConstantProvider } from './constants.js';
|
|
8
|
+
/**
|
|
9
|
+
* An interface for a block's path object.
|
|
10
|
+
* @param _root The root SVG element.
|
|
11
|
+
* @param _constants The renderer's constants.
|
|
12
|
+
* @alias Blockly.blockRendering.IPathObject
|
|
13
|
+
*/
|
|
14
|
+
export interface IPathObject {
|
|
15
|
+
/** The primary path of the block. */
|
|
16
|
+
svgPath: SVGElement;
|
|
17
|
+
/** The renderer's constant provider. */
|
|
18
|
+
constants: ConstantProvider;
|
|
19
|
+
/** The primary path of the block. */
|
|
20
|
+
style: BlockStyle;
|
|
21
|
+
/**
|
|
22
|
+
* Holds the cursors SVG element when the cursor is attached to the block.
|
|
23
|
+
* This is null if there is no cursor on the block.
|
|
24
|
+
*/
|
|
25
|
+
cursorSvg: SVGElement;
|
|
26
|
+
/**
|
|
27
|
+
* Holds the markers SVG element when the marker is attached to the block.
|
|
28
|
+
* This is null if there is no marker on the block.
|
|
29
|
+
*/
|
|
30
|
+
markerSvg: SVGElement;
|
|
31
|
+
/**
|
|
32
|
+
* Set the path generated by the renderer onto the respective SVG element.
|
|
33
|
+
* @param pathString The path.
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
setPath: any;
|
|
37
|
+
/**
|
|
38
|
+
* Apply the stored colours to the block's path, taking into account whether
|
|
39
|
+
* the paths belong to a shadow block.
|
|
40
|
+
* @param block The source block.
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
applyColour: any;
|
|
44
|
+
/**
|
|
45
|
+
* Update the style.
|
|
46
|
+
* @param blockStyle The block style to use.
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
setStyle: any;
|
|
50
|
+
/**
|
|
51
|
+
* Flip the SVG paths in RTL.
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
flipRTL: () => void;
|
|
55
|
+
/**
|
|
56
|
+
* Add the cursor SVG to this block's SVG group.
|
|
57
|
+
* @param cursorSvg The SVG root of the cursor to be added to the block SVG
|
|
58
|
+
* group.
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
setCursorSvg: any;
|
|
62
|
+
/**
|
|
63
|
+
* Add the marker SVG to this block's SVG group.
|
|
64
|
+
* @param markerSvg The SVG root of the marker to be added to the block SVG
|
|
65
|
+
* group.
|
|
66
|
+
* @internal
|
|
67
|
+
*/
|
|
68
|
+
setMarkerSvg: any;
|
|
69
|
+
/**
|
|
70
|
+
* Set whether the block shows a highlight or not. Block highlighting is
|
|
71
|
+
* often used to visually mark blocks currently being executed.
|
|
72
|
+
* @param highlighted True if highlighted.
|
|
73
|
+
* @internal
|
|
74
|
+
*/
|
|
75
|
+
updateHighlighted: any;
|
|
76
|
+
/**
|
|
77
|
+
* Add or remove styling showing that a block is selected.
|
|
78
|
+
* @param enable True if selection is enabled, false otherwise.
|
|
79
|
+
* @internal
|
|
80
|
+
*/
|
|
81
|
+
updateSelected: any;
|
|
82
|
+
/**
|
|
83
|
+
* Add or remove styling showing that a block is dragged over a delete area.
|
|
84
|
+
* @param enable True if the block is being dragged over a delete area, false
|
|
85
|
+
* otherwise.
|
|
86
|
+
* @internal
|
|
87
|
+
*/
|
|
88
|
+
updateDraggingDelete: any;
|
|
89
|
+
/**
|
|
90
|
+
* Add or remove styling showing that a block is an insertion marker.
|
|
91
|
+
* @param enable True if the block is an insertion marker, false otherwise.
|
|
92
|
+
* @internal
|
|
93
|
+
*/
|
|
94
|
+
updateInsertionMarker: any;
|
|
95
|
+
/**
|
|
96
|
+
* Add or remove styling showing that a block is movable.
|
|
97
|
+
* @param enable True if the block is movable, false otherwise.
|
|
98
|
+
* @internal
|
|
99
|
+
*/
|
|
100
|
+
updateMovable: any;
|
|
101
|
+
/**
|
|
102
|
+
* Add or remove styling that shows that if the dragging block is dropped,
|
|
103
|
+
* this block will be replaced. If a shadow block, it will disappear.
|
|
104
|
+
* Otherwise it will bump.
|
|
105
|
+
* @param enable True if styling should be added.
|
|
106
|
+
* @internal
|
|
107
|
+
*/
|
|
108
|
+
updateReplacementFade: any;
|
|
109
|
+
/**
|
|
110
|
+
* Add or remove styling that shows that if the dragging block is dropped,
|
|
111
|
+
* this block will be connected to the input.
|
|
112
|
+
* @param conn The connection on the input to highlight.
|
|
113
|
+
* @param enable True if styling should be added.
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
116
|
+
updateShapeForInputHighlight: any;
|
|
117
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2019 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @fileoverview The interface for an object that owns a block's rendering SVG
|
|
9
|
+
* elements.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The interface for an object that owns a block's rendering SVG
|
|
14
|
+
* elements.
|
|
15
|
+
* @namespace Blockly.blockRendering.IPathObject
|
|
16
|
+
*/
|
|
17
|
+
import * as goog from '../../../closure/goog/goog.js';
|
|
18
|
+
goog.declareModuleId('Blockly.blockRendering.IPathObject');
|
|
19
|
+
|
|
20
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
21
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
22
|
+
// import '../../block_svg.js';
|
|
23
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
24
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
25
|
+
// import '../../connection.js';
|
|
26
|
+
/* eslint-disable-next-line no-unused-vars */
|
|
27
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
28
|
+
// import '../../theme.js';
|
|
29
|
+
|
|
30
|
+
import type {BlockStyle} from '../../theme.js';
|
|
31
|
+
|
|
32
|
+
import type {ConstantProvider} from './constants.js';
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* An interface for a block's path object.
|
|
37
|
+
* @param _root The root SVG element.
|
|
38
|
+
* @param _constants The renderer's constants.
|
|
39
|
+
* @alias Blockly.blockRendering.IPathObject
|
|
40
|
+
*/
|
|
41
|
+
export interface IPathObject {
|
|
42
|
+
/** The primary path of the block. */
|
|
43
|
+
svgPath: SVGElement;
|
|
44
|
+
|
|
45
|
+
/** The renderer's constant provider. */
|
|
46
|
+
constants: ConstantProvider;
|
|
47
|
+
|
|
48
|
+
/** The primary path of the block. */
|
|
49
|
+
style: BlockStyle;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Holds the cursors SVG element when the cursor is attached to the block.
|
|
53
|
+
* This is null if there is no cursor on the block.
|
|
54
|
+
*/
|
|
55
|
+
cursorSvg: SVGElement;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Holds the markers SVG element when the marker is attached to the block.
|
|
59
|
+
* This is null if there is no marker on the block.
|
|
60
|
+
*/
|
|
61
|
+
markerSvg: SVGElement;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Set the path generated by the renderer onto the respective SVG element.
|
|
65
|
+
* @param pathString The path.
|
|
66
|
+
* @internal
|
|
67
|
+
*/
|
|
68
|
+
setPath: AnyDuringMigration;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Apply the stored colours to the block's path, taking into account whether
|
|
72
|
+
* the paths belong to a shadow block.
|
|
73
|
+
* @param block The source block.
|
|
74
|
+
* @internal
|
|
75
|
+
*/
|
|
76
|
+
applyColour: AnyDuringMigration;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Update the style.
|
|
80
|
+
* @param blockStyle The block style to use.
|
|
81
|
+
* @internal
|
|
82
|
+
*/
|
|
83
|
+
setStyle: AnyDuringMigration;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Flip the SVG paths in RTL.
|
|
87
|
+
* @internal
|
|
88
|
+
*/
|
|
89
|
+
flipRTL: () => void;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Add the cursor SVG to this block's SVG group.
|
|
93
|
+
* @param cursorSvg The SVG root of the cursor to be added to the block SVG
|
|
94
|
+
* group.
|
|
95
|
+
* @internal
|
|
96
|
+
*/
|
|
97
|
+
setCursorSvg: AnyDuringMigration;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Add the marker SVG to this block's SVG group.
|
|
101
|
+
* @param markerSvg The SVG root of the marker to be added to the block SVG
|
|
102
|
+
* group.
|
|
103
|
+
* @internal
|
|
104
|
+
*/
|
|
105
|
+
setMarkerSvg: AnyDuringMigration;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Set whether the block shows a highlight or not. Block highlighting is
|
|
109
|
+
* often used to visually mark blocks currently being executed.
|
|
110
|
+
* @param highlighted True if highlighted.
|
|
111
|
+
* @internal
|
|
112
|
+
*/
|
|
113
|
+
updateHighlighted: AnyDuringMigration;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Add or remove styling showing that a block is selected.
|
|
117
|
+
* @param enable True if selection is enabled, false otherwise.
|
|
118
|
+
* @internal
|
|
119
|
+
*/
|
|
120
|
+
updateSelected: AnyDuringMigration;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Add or remove styling showing that a block is dragged over a delete area.
|
|
124
|
+
* @param enable True if the block is being dragged over a delete area, false
|
|
125
|
+
* otherwise.
|
|
126
|
+
* @internal
|
|
127
|
+
*/
|
|
128
|
+
updateDraggingDelete: AnyDuringMigration;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Add or remove styling showing that a block is an insertion marker.
|
|
132
|
+
* @param enable True if the block is an insertion marker, false otherwise.
|
|
133
|
+
* @internal
|
|
134
|
+
*/
|
|
135
|
+
updateInsertionMarker: AnyDuringMigration;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Add or remove styling showing that a block is movable.
|
|
139
|
+
* @param enable True if the block is movable, false otherwise.
|
|
140
|
+
* @internal
|
|
141
|
+
*/
|
|
142
|
+
updateMovable: AnyDuringMigration;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Add or remove styling that shows that if the dragging block is dropped,
|
|
146
|
+
* this block will be replaced. If a shadow block, it will disappear.
|
|
147
|
+
* Otherwise it will bump.
|
|
148
|
+
* @param enable True if styling should be added.
|
|
149
|
+
* @internal
|
|
150
|
+
*/
|
|
151
|
+
updateReplacementFade: AnyDuringMigration;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Add or remove styling that shows that if the dragging block is dropped,
|
|
155
|
+
* this block will be connected to the input.
|
|
156
|
+
* @param conn The connection on the input to highlight.
|
|
157
|
+
* @param enable True if styling should be added.
|
|
158
|
+
* @internal
|
|
159
|
+
*/
|
|
160
|
+
updateShapeForInputHighlight: AnyDuringMigration;
|
|
161
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2019 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { BlockSvg } from '../../block_svg.js';
|
|
7
|
+
import { Input } from '../../input.js';
|
|
8
|
+
import type { Measurable } from '../measurables/base.js';
|
|
9
|
+
import { BottomRow } from '../measurables/bottom_row.js';
|
|
10
|
+
import { Icon } from '../measurables/icon.js';
|
|
11
|
+
import { InputRow } from '../measurables/input_row.js';
|
|
12
|
+
import { OutputConnection } from '../measurables/output_connection.js';
|
|
13
|
+
import type { Row } from '../measurables/row.js';
|
|
14
|
+
import { SpacerRow } from '../measurables/spacer_row.js';
|
|
15
|
+
import { TopRow } from '../measurables/top_row.js';
|
|
16
|
+
import type { ConstantProvider } from './constants.js';
|
|
17
|
+
import type { Renderer } from './renderer.js';
|
|
18
|
+
/**
|
|
19
|
+
* An object containing all sizing information needed to draw this block.
|
|
20
|
+
*
|
|
21
|
+
* This measure pass does not propagate changes to the block (although fields
|
|
22
|
+
* may choose to rerender when getSize() is called). However, calling it
|
|
23
|
+
* repeatedly may be expensive.
|
|
24
|
+
* @alias Blockly.blockRendering.RenderInfo
|
|
25
|
+
*/
|
|
26
|
+
export declare class RenderInfo {
|
|
27
|
+
block_: any;
|
|
28
|
+
protected constants_: ConstantProvider;
|
|
29
|
+
outputConnection: OutputConnection;
|
|
30
|
+
isInline: boolean;
|
|
31
|
+
isCollapsed: boolean;
|
|
32
|
+
isInsertionMarker: boolean;
|
|
33
|
+
RTL: boolean;
|
|
34
|
+
/** The block renderer in use. */
|
|
35
|
+
protected readonly renderer_: Renderer;
|
|
36
|
+
/** The height of the rendered block, including child blocks. */
|
|
37
|
+
height: number;
|
|
38
|
+
/** The width of the rendered block, including child blocks. */
|
|
39
|
+
widthWithChildren: number;
|
|
40
|
+
/**
|
|
41
|
+
* The width of the rendered block, excluding child blocks. This is the
|
|
42
|
+
* right edge of the block when rendered LTR.
|
|
43
|
+
*/
|
|
44
|
+
width: number;
|
|
45
|
+
statementEdge: number;
|
|
46
|
+
/** An array of Row objects containing sizing information. */
|
|
47
|
+
rows: Row[];
|
|
48
|
+
/** An array of input rows on the block. */
|
|
49
|
+
inputRows: InputRow[];
|
|
50
|
+
/** An array of measurable objects containing hidden icons. */
|
|
51
|
+
hiddenIcons: Icon[];
|
|
52
|
+
topRow: TopRow;
|
|
53
|
+
bottomRow: BottomRow;
|
|
54
|
+
startX: number;
|
|
55
|
+
startY: number;
|
|
56
|
+
/**
|
|
57
|
+
* @param renderer The renderer in use.
|
|
58
|
+
* @param block The block to measure.
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
constructor(renderer: Renderer, block: BlockSvg);
|
|
62
|
+
/**
|
|
63
|
+
* Get the block renderer in use.
|
|
64
|
+
* @return The block renderer in use.
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
getRenderer(): Renderer;
|
|
68
|
+
/**
|
|
69
|
+
* Populate and return an object containing all sizing information needed to
|
|
70
|
+
* draw this block.
|
|
71
|
+
*
|
|
72
|
+
* This measure pass does not propagate changes to the block (although fields
|
|
73
|
+
* may choose to rerender when getSize() is called). However, calling it
|
|
74
|
+
* repeatedly may be expensive.
|
|
75
|
+
* @internal
|
|
76
|
+
*/
|
|
77
|
+
measure(): void;
|
|
78
|
+
/**
|
|
79
|
+
* Create rows of Measurable objects representing all renderable parts of the
|
|
80
|
+
* block.
|
|
81
|
+
*/
|
|
82
|
+
protected createRows_(): void;
|
|
83
|
+
/**
|
|
84
|
+
* Create all non-spacer elements that belong on the top row.
|
|
85
|
+
* @internal
|
|
86
|
+
*/
|
|
87
|
+
populateTopRow_(): void;
|
|
88
|
+
/**
|
|
89
|
+
* Create all non-spacer elements that belong on the bottom row.
|
|
90
|
+
* @internal
|
|
91
|
+
*/
|
|
92
|
+
populateBottomRow_(): void;
|
|
93
|
+
/**
|
|
94
|
+
* Add an input element to the active row, if needed, and record the type of
|
|
95
|
+
* the input on the row.
|
|
96
|
+
* @param input The input to record information about.
|
|
97
|
+
* @param activeRow The row that is currently being populated.
|
|
98
|
+
*/
|
|
99
|
+
protected addInput_(input: Input, activeRow: Row): void;
|
|
100
|
+
/**
|
|
101
|
+
* Decide whether to start a new row between the two Blockly.Inputs.
|
|
102
|
+
* @param input The first input to consider
|
|
103
|
+
* @param lastInput The input that follows.
|
|
104
|
+
* @return True if the next input should be rendered on a new row.
|
|
105
|
+
*/
|
|
106
|
+
protected shouldStartNewRow_(input: Input, lastInput: Input): boolean;
|
|
107
|
+
/** Add horizontal spacing between and around elements within each row. */
|
|
108
|
+
protected addElemSpacing_(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Calculate the width of a spacer element in a row based on the previous and
|
|
111
|
+
* next elements in that row. For instance, extra padding is added between
|
|
112
|
+
* two editable fields.
|
|
113
|
+
* @param prev The element before the spacer.
|
|
114
|
+
* @param next The element after the spacer.
|
|
115
|
+
* @return The size of the spacing between the two elements.
|
|
116
|
+
*/
|
|
117
|
+
protected getInRowSpacing_(prev: Measurable | null, next: Measurable | null): number;
|
|
118
|
+
/**
|
|
119
|
+
* Figure out where the right edge of the block and right edge of statement
|
|
120
|
+
* inputs should be placed.
|
|
121
|
+
*/
|
|
122
|
+
protected computeBounds_(): void;
|
|
123
|
+
/**
|
|
124
|
+
* Extra spacing may be necessary to make sure that the right sides of all
|
|
125
|
+
* rows line up. This can only be calculated after a first pass to calculate
|
|
126
|
+
* the sizes of all rows.
|
|
127
|
+
*/
|
|
128
|
+
protected alignRowElements_(): void;
|
|
129
|
+
/**
|
|
130
|
+
* Calculate the desired width of an input row.
|
|
131
|
+
* @param _row The input row.
|
|
132
|
+
* @return The desired width of the input row.
|
|
133
|
+
*/
|
|
134
|
+
protected getDesiredRowWidth_(_row: Row): number;
|
|
135
|
+
/**
|
|
136
|
+
* Modify the given row to add the given amount of padding around its fields.
|
|
137
|
+
* The exact location of the padding is based on the alignment property of the
|
|
138
|
+
* last input in the field.
|
|
139
|
+
* @param row The row to add padding to.
|
|
140
|
+
* @param missingSpace How much padding to add.
|
|
141
|
+
*/
|
|
142
|
+
protected addAlignmentPadding_(row: Row, missingSpace: number): void;
|
|
143
|
+
/**
|
|
144
|
+
* Align the elements of a statement row based on computed bounds.
|
|
145
|
+
* Unlike other types of rows, statement rows add space in multiple places.
|
|
146
|
+
* @param row The statement row to resize.
|
|
147
|
+
*/
|
|
148
|
+
protected alignStatementRow_(row: InputRow): void;
|
|
149
|
+
/** Add spacers between rows and set their sizes. */
|
|
150
|
+
protected addRowSpacing_(): void;
|
|
151
|
+
/**
|
|
152
|
+
* Create a spacer row to go between prev and next, and set its size.
|
|
153
|
+
* @param prev The previous row.
|
|
154
|
+
* @param next The next row.
|
|
155
|
+
* @return The newly created spacer row.
|
|
156
|
+
*/
|
|
157
|
+
protected makeSpacerRow_(prev: Row, next: Row): SpacerRow;
|
|
158
|
+
/**
|
|
159
|
+
* Calculate the width of a spacer row.
|
|
160
|
+
* @param _prev The row before the spacer.
|
|
161
|
+
* @param _next The row after the spacer.
|
|
162
|
+
* @return The desired width of the spacer row between these two rows.
|
|
163
|
+
*/
|
|
164
|
+
protected getSpacerRowWidth_(_prev: Row, _next: Row): number;
|
|
165
|
+
/**
|
|
166
|
+
* Calculate the height of a spacer row.
|
|
167
|
+
* @param _prev The row before the spacer.
|
|
168
|
+
* @param _next The row after the spacer.
|
|
169
|
+
* @return The desired height of the spacer row between these two rows.
|
|
170
|
+
*/
|
|
171
|
+
protected getSpacerRowHeight_(_prev: Row, _next: Row): number;
|
|
172
|
+
/**
|
|
173
|
+
* Calculate the centerline of an element in a rendered row.
|
|
174
|
+
* This base implementation puts the centerline at the middle of the row
|
|
175
|
+
* vertically, with no special cases. You will likely need extra logic to
|
|
176
|
+
* handle (at minimum) top and bottom rows.
|
|
177
|
+
* @param row The row containing the element.
|
|
178
|
+
* @param elem The element to place.
|
|
179
|
+
* @return The desired centerline of the given element, as an offset from the
|
|
180
|
+
* top left of the block.
|
|
181
|
+
*/
|
|
182
|
+
protected getElemCenterline_(row: Row, elem: Measurable): number;
|
|
183
|
+
/**
|
|
184
|
+
* Record final position information on elements on the given row, for use in
|
|
185
|
+
* drawing. At minimum this records xPos and centerline on each element.
|
|
186
|
+
* @param row The row containing the elements.
|
|
187
|
+
*/
|
|
188
|
+
protected recordElemPositions_(row: Row): void;
|
|
189
|
+
/**
|
|
190
|
+
* Make any final changes to the rendering information object. In particular,
|
|
191
|
+
* store the y position of each row, and record the height of the full block.
|
|
192
|
+
*/
|
|
193
|
+
protected finalize_(): void;
|
|
194
|
+
}
|