blockly 8.0.4 → 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 +420 -420
- package/msg/ace.js +420 -420
- package/msg/af.js +420 -420
- package/msg/am.js +420 -420
- package/msg/ar.js +420 -420
- package/msg/ast.js +420 -420
- package/msg/az.js +420 -420
- package/msg/ba.js +420 -420
- package/msg/bcc.js +420 -420
- package/msg/be-tarask.js +420 -420
- package/msg/be.js +420 -420
- package/msg/bg.js +420 -420
- package/msg/bn.js +420 -420
- package/msg/br.js +420 -420
- package/msg/bs.js +420 -420
- package/msg/ca.js +420 -420
- package/msg/cdo.js +420 -420
- package/msg/cs.js +420 -420
- package/msg/da.js +420 -420
- package/msg/de.js +420 -420
- package/msg/diq.js +420 -420
- package/msg/dty.js +420 -420
- package/msg/ee.js +420 -420
- package/msg/el.js +420 -420
- package/msg/en-gb.js +420 -420
- package/msg/en.js +420 -420
- package/msg/eo.js +420 -420
- package/msg/es.js +420 -420
- package/msg/et.js +420 -420
- package/msg/eu.js +420 -420
- package/msg/fa.js +420 -420
- package/msg/fi.js +420 -420
- package/msg/fo.js +420 -420
- package/msg/fr.js +420 -420
- package/msg/frr.js +420 -420
- package/msg/gl.js +420 -420
- package/msg/gn.js +420 -420
- package/msg/gor.js +420 -420
- package/msg/ha.js +420 -420
- package/msg/hak.js +420 -420
- package/msg/he.js +420 -420
- package/msg/hi.js +420 -420
- package/msg/hr.js +420 -420
- package/msg/hrx.js +420 -420
- package/msg/hu.js +420 -420
- package/msg/hy.js +420 -420
- package/msg/ia.js +420 -420
- package/msg/id.js +420 -420
- package/msg/ig.js +420 -420
- package/msg/inh.js +420 -420
- package/msg/is.js +420 -420
- package/msg/it.js +420 -420
- package/msg/ja.js +420 -420
- package/msg/ka.js +420 -420
- package/msg/kab.js +420 -420
- package/msg/kbd-cyrl.js +420 -420
- package/msg/km.js +420 -420
- package/msg/kn.js +420 -420
- package/msg/ko.js +420 -420
- package/msg/ksh.js +420 -420
- package/msg/ku-latn.js +420 -420
- package/msg/ky.js +420 -420
- package/msg/la.js +420 -420
- package/msg/lb.js +420 -420
- package/msg/lki.js +420 -420
- package/msg/lo.js +420 -420
- package/msg/lrc.js +420 -420
- package/msg/lt.js +420 -420
- package/msg/lv.js +420 -420
- package/msg/mg.js +420 -420
- package/msg/mk.js +420 -420
- package/msg/ml.js +420 -420
- package/msg/mnw.js +420 -420
- package/msg/ms.js +420 -420
- package/msg/my.js +420 -420
- package/msg/mzn.js +420 -420
- package/msg/nb.js +420 -420
- package/msg/ne.js +420 -420
- package/msg/nl.js +420 -420
- package/msg/oc.js +420 -420
- package/msg/olo.js +420 -420
- package/msg/pa.js +420 -420
- package/msg/pl.js +420 -420
- package/msg/pms.js +420 -420
- package/msg/ps.js +420 -420
- package/msg/pt-br.js +420 -420
- package/msg/pt.js +420 -420
- package/msg/ro.js +420 -420
- package/msg/ru.js +420 -420
- package/msg/sc.js +420 -420
- package/msg/sco.js +420 -420
- package/msg/sd.js +420 -420
- package/msg/shn.js +420 -420
- package/msg/si.js +420 -420
- package/msg/sk.js +420 -420
- package/msg/skr-arab.js +420 -420
- package/msg/sl.js +420 -420
- package/msg/smn.js +420 -420
- package/msg/sq.js +420 -420
- package/msg/sr-latn.js +420 -420
- package/msg/sr.js +420 -420
- package/msg/sv.js +420 -420
- package/msg/sw.js +420 -420
- package/msg/ta.js +420 -420
- package/msg/tcy.js +420 -420
- package/msg/te.js +420 -420
- package/msg/th.js +420 -420
- package/msg/ti.js +420 -420
- package/msg/tl.js +420 -420
- package/msg/tlh.js +420 -420
- package/msg/tr.js +420 -420
- package/msg/ug-arab.js +420 -420
- package/msg/uk.js +420 -420
- package/msg/ur.js +420 -420
- package/msg/uz.js +420 -420
- package/msg/vi.js +420 -420
- package/msg/xmf.js +420 -420
- package/msg/yo.js +420 -420
- package/msg/yue.js +420 -420
- package/msg/zgh.js +420 -420
- package/msg/zh-hans.js +420 -420
- package/msg/zh-hant.js +420 -420
- 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
|
@@ -1,49 +1,43 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
3
|
-
*
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
* @fileoverview Makecode/scratch-style renderer.
|
|
3
|
+
* Zelos: spirit of eager rivalry, emulation, envy, jealousy, and zeal.
|
|
5
4
|
*/
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
|
-
* @
|
|
9
|
-
*
|
|
7
|
+
* @license
|
|
8
|
+
* Copyright 2019 Google LLC
|
|
9
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
10
10
|
*/
|
|
11
|
-
'use strict';
|
|
12
11
|
|
|
13
12
|
/**
|
|
14
13
|
* Makecode/scratch-style renderer.
|
|
15
14
|
* @class
|
|
16
15
|
*/
|
|
17
|
-
goog
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const {SpacerRow} = goog.requireType('Blockly.blockRendering.SpacerRow');
|
|
43
|
-
const {StatementInput} = goog.require('Blockly.zelos.StatementInput');
|
|
44
|
-
const {TopRow} = goog.require('Blockly.zelos.TopRow');
|
|
45
|
-
const {Types} = goog.require('Blockly.blockRendering.Types');
|
|
46
|
-
const {inputTypes} = goog.require('Blockly.inputTypes');
|
|
16
|
+
import * as goog from '../../../closure/goog/goog.js';
|
|
17
|
+
goog.declareModuleId('Blockly.zelos.RenderInfo');
|
|
18
|
+
|
|
19
|
+
import type {BlockSvg} from '../../block_svg.js';
|
|
20
|
+
import {FieldImage} from '../../field_image.js';
|
|
21
|
+
import {FieldLabel} from '../../field_label.js';
|
|
22
|
+
import {FieldTextInput} from '../../field_textinput.js';
|
|
23
|
+
import {Align, Input} from '../../input.js';
|
|
24
|
+
import {inputTypes} from '../../input_types.js';
|
|
25
|
+
import {RenderInfo as BaseRenderInfo} from '../common/info.js';
|
|
26
|
+
import type {Measurable} from '../measurables/base.js';
|
|
27
|
+
import {Field} from '../measurables/field.js';
|
|
28
|
+
import {InRowSpacer} from '../measurables/in_row_spacer.js';
|
|
29
|
+
import {InputConnection} from '../measurables/input_connection.js';
|
|
30
|
+
import type {Row} from '../measurables/row.js';
|
|
31
|
+
import type {SpacerRow} from '../measurables/spacer_row.js';
|
|
32
|
+
import {Types} from '../measurables/types.js';
|
|
33
|
+
|
|
34
|
+
import type {ConstantProvider, InsideCorners} from './constants.js';
|
|
35
|
+
import {BottomRow} from './measurables/bottom_row.js';
|
|
36
|
+
import {StatementInput} from './measurables/inputs.js';
|
|
37
|
+
import {RightConnectionShape} from './measurables/row_elements.js';
|
|
38
|
+
import {TopRow} from './measurables/top_row.js';
|
|
39
|
+
import type {PathObject} from './path_object.js';
|
|
40
|
+
import type {Renderer} from './renderer.js';
|
|
47
41
|
|
|
48
42
|
|
|
49
43
|
/**
|
|
@@ -52,56 +46,55 @@ const {inputTypes} = goog.require('Blockly.inputTypes');
|
|
|
52
46
|
* This measure pass does not propagate changes to the block (although fields
|
|
53
47
|
* may choose to rerender when getSize() is called). However, calling it
|
|
54
48
|
* repeatedly may be expensive.
|
|
55
|
-
* @extends {BaseRenderInfo}
|
|
56
49
|
* @alias Blockly.zelos.RenderInfo
|
|
57
50
|
*/
|
|
58
|
-
class RenderInfo extends BaseRenderInfo {
|
|
51
|
+
export class RenderInfo extends BaseRenderInfo {
|
|
52
|
+
override topRow: TopRow;
|
|
53
|
+
override bottomRow: BottomRow;
|
|
54
|
+
override constants_: ConstantProvider;
|
|
55
|
+
override renderer_: Renderer;
|
|
56
|
+
|
|
57
|
+
override isInline = true;
|
|
58
|
+
isMultiRow: boolean;
|
|
59
|
+
hasStatementInput: boolean;
|
|
60
|
+
rightSide: RightConnectionShape|null;
|
|
61
|
+
private readonly rightAlignedDummyInputs_: WeakMap<Row, Input>;
|
|
62
|
+
|
|
59
63
|
/**
|
|
60
|
-
* @param
|
|
61
|
-
* @param
|
|
62
|
-
* @
|
|
64
|
+
* @param renderer The renderer in use.
|
|
65
|
+
* @param block The block to measure.
|
|
66
|
+
* @internal
|
|
63
67
|
*/
|
|
64
|
-
constructor(renderer, block) {
|
|
68
|
+
constructor(renderer: Renderer, block: BlockSvg) {
|
|
65
69
|
super(renderer, block);
|
|
66
70
|
|
|
67
|
-
|
|
68
|
-
|
|
71
|
+
this.renderer_ = renderer;
|
|
72
|
+
|
|
73
|
+
this.constants_ = this.renderer_.getConstants();
|
|
69
74
|
|
|
70
75
|
/**
|
|
71
76
|
* An object with rendering information about the top row of the block.
|
|
72
|
-
* @type {!TopRow}
|
|
73
|
-
* @override
|
|
74
77
|
*/
|
|
75
78
|
this.topRow = new TopRow(this.constants_);
|
|
76
79
|
|
|
77
80
|
/**
|
|
78
81
|
* An object with rendering information about the bottom row of the block.
|
|
79
|
-
* @type {!BottomRow}
|
|
80
|
-
* @override
|
|
81
82
|
*/
|
|
82
83
|
this.bottomRow = new BottomRow(this.constants_);
|
|
83
84
|
|
|
84
|
-
/**
|
|
85
|
-
* @override
|
|
86
|
-
*/
|
|
87
|
-
this.isInline = true;
|
|
88
|
-
|
|
89
85
|
/**
|
|
90
86
|
* Whether the block should be rendered as a multi-line block, either
|
|
91
87
|
* because it's not inline or because it has been collapsed.
|
|
92
|
-
* @type {boolean}
|
|
93
88
|
*/
|
|
94
89
|
this.isMultiRow = !block.getInputsInline() || block.isCollapsed();
|
|
95
90
|
|
|
96
91
|
/**
|
|
97
92
|
* Whether or not the block has a statement input in one of its rows.
|
|
98
|
-
* @type {boolean}
|
|
99
93
|
*/
|
|
100
94
|
this.hasStatementInput = block.statementInputCount > 0;
|
|
101
95
|
|
|
102
96
|
/**
|
|
103
97
|
* An object with rendering information about the right connection shape.
|
|
104
|
-
* @type {RightConnectionShape}
|
|
105
98
|
*/
|
|
106
99
|
this.rightSide = this.outputConnection ?
|
|
107
100
|
new RightConnectionShape(this.constants_) :
|
|
@@ -110,25 +103,20 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
110
103
|
/**
|
|
111
104
|
* A map of rows to right aligned dummy inputs within those rows. Used to
|
|
112
105
|
* add padding between left and right aligned inputs.
|
|
113
|
-
* @type {!WeakMap<!Row, !Input>}
|
|
114
|
-
* @private
|
|
115
106
|
*/
|
|
116
107
|
this.rightAlignedDummyInputs_ = new WeakMap();
|
|
117
108
|
}
|
|
118
109
|
|
|
119
110
|
/**
|
|
120
111
|
* Get the block renderer in use.
|
|
121
|
-
* @return
|
|
122
|
-
* @
|
|
112
|
+
* @return The block renderer in use.
|
|
113
|
+
* @internal
|
|
123
114
|
*/
|
|
124
|
-
getRenderer() {
|
|
125
|
-
return
|
|
115
|
+
override getRenderer(): Renderer {
|
|
116
|
+
return this.renderer_ as Renderer;
|
|
126
117
|
}
|
|
127
118
|
|
|
128
|
-
|
|
129
|
-
* @override
|
|
130
|
-
*/
|
|
131
|
-
measure() {
|
|
119
|
+
override measure() {
|
|
132
120
|
// Modifying parent measure method to add `adjustXPosition_`.
|
|
133
121
|
this.createRows_();
|
|
134
122
|
this.addElemSpacing_();
|
|
@@ -139,10 +127,7 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
139
127
|
this.finalize_();
|
|
140
128
|
}
|
|
141
129
|
|
|
142
|
-
|
|
143
|
-
* @override
|
|
144
|
-
*/
|
|
145
|
-
shouldStartNewRow_(input, lastInput) {
|
|
130
|
+
override shouldStartNewRow_(input: Input, lastInput: Input): boolean {
|
|
146
131
|
// If this is the first input, just add to the existing row.
|
|
147
132
|
// That row is either empty or has some icons in it.
|
|
148
133
|
if (!lastInput) {
|
|
@@ -160,21 +145,17 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
160
145
|
return false;
|
|
161
146
|
}
|
|
162
147
|
|
|
163
|
-
|
|
164
|
-
* @override
|
|
165
|
-
*/
|
|
166
|
-
getDesiredRowWidth_(row) {
|
|
148
|
+
override getDesiredRowWidth_(row: Row): number {
|
|
167
149
|
if (row.hasStatement) {
|
|
168
|
-
const rightCornerWidth =
|
|
150
|
+
const rightCornerWidth =
|
|
151
|
+
(this.constants_.INSIDE_CORNERS as InsideCorners).rightWidth || 0;
|
|
169
152
|
return this.width - this.startX - rightCornerWidth;
|
|
170
153
|
}
|
|
171
154
|
return super.getDesiredRowWidth_(row);
|
|
172
155
|
}
|
|
173
156
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
*/
|
|
177
|
-
getInRowSpacing_(prev, next) {
|
|
157
|
+
override getInRowSpacing_(prev: Measurable|null, next: Measurable|null):
|
|
158
|
+
number {
|
|
178
159
|
if (!prev || !next) {
|
|
179
160
|
// No need for padding at the beginning or end of the row if the
|
|
180
161
|
// output shape is dynamic.
|
|
@@ -196,16 +177,16 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
196
177
|
}
|
|
197
178
|
}
|
|
198
179
|
// Spacing between a square corner and a hat.
|
|
199
|
-
|
|
180
|
+
// AnyDuringMigration because: Property 'isHat' does not exist on type
|
|
181
|
+
// 'typeof Types'.
|
|
182
|
+
if (prev && Types.isLeftSquareCorner(prev) && next &&
|
|
183
|
+
(Types as AnyDuringMigration).isHat(next)) {
|
|
200
184
|
return this.constants_.NO_PADDING;
|
|
201
185
|
}
|
|
202
186
|
return this.constants_.MEDIUM_PADDING;
|
|
203
187
|
}
|
|
204
188
|
|
|
205
|
-
|
|
206
|
-
* @override
|
|
207
|
-
*/
|
|
208
|
-
getSpacerRowHeight_(prev, next) {
|
|
189
|
+
override getSpacerRowHeight_(prev: Row, next: Row): number {
|
|
209
190
|
// If we have an empty block add a spacer to increase the height.
|
|
210
191
|
if (Types.isTopRow(prev) && Types.isBottomRow(next)) {
|
|
211
192
|
return this.constants_.EMPTY_BLOCK_SPACER_HEIGHT;
|
|
@@ -213,7 +194,8 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
213
194
|
const followsStatement = Types.isInputRow(prev) && prev.hasStatement;
|
|
214
195
|
const precedesStatement = Types.isInputRow(next) && next.hasStatement;
|
|
215
196
|
if (precedesStatement || followsStatement) {
|
|
216
|
-
const cornerHeight =
|
|
197
|
+
const cornerHeight =
|
|
198
|
+
(this.constants_.INSIDE_CORNERS as InsideCorners).rightHeight || 0;
|
|
217
199
|
const height = Math.max(this.constants_.NOTCH_HEIGHT, cornerHeight);
|
|
218
200
|
return precedesStatement && followsStatement ?
|
|
219
201
|
Math.max(height, this.constants_.DUMMY_INPUT_MIN_HEIGHT) :
|
|
@@ -221,7 +203,7 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
221
203
|
}
|
|
222
204
|
// Top and bottom rows act as a spacer so we don't need any extra padding.
|
|
223
205
|
if (Types.isTopRow(prev)) {
|
|
224
|
-
const topRow =
|
|
206
|
+
const topRow = prev as TopRow;
|
|
225
207
|
if (!topRow.hasPreviousConnection &&
|
|
226
208
|
(!this.outputConnection || this.hasStatementInput)) {
|
|
227
209
|
return Math.abs(
|
|
@@ -230,7 +212,7 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
230
212
|
return this.constants_.NO_PADDING;
|
|
231
213
|
}
|
|
232
214
|
if (Types.isBottomRow(next)) {
|
|
233
|
-
const bottomRow =
|
|
215
|
+
const bottomRow = next as BottomRow;
|
|
234
216
|
if (!this.outputConnection) {
|
|
235
217
|
const topHeight = Math.max(
|
|
236
218
|
this.topRow.minHeight,
|
|
@@ -248,22 +230,16 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
248
230
|
return this.constants_.MEDIUM_PADDING;
|
|
249
231
|
}
|
|
250
232
|
|
|
251
|
-
|
|
252
|
-
* @override
|
|
253
|
-
*/
|
|
254
|
-
getSpacerRowWidth_(prev, next) {
|
|
233
|
+
override getSpacerRowWidth_(prev: Row, next: Row): number {
|
|
255
234
|
const width = this.width - this.startX;
|
|
256
|
-
if (
|
|
257
|
-
|
|
235
|
+
if (Types.isInputRow(prev) && prev.hasStatement ||
|
|
236
|
+
Types.isInputRow(next) && next.hasStatement) {
|
|
258
237
|
return Math.max(width, this.constants_.STATEMENT_INPUT_SPACER_MIN_WIDTH);
|
|
259
238
|
}
|
|
260
239
|
return width;
|
|
261
240
|
}
|
|
262
241
|
|
|
263
|
-
|
|
264
|
-
* @override
|
|
265
|
-
*/
|
|
266
|
-
getElemCenterline_(row, elem) {
|
|
242
|
+
override getElemCenterline_(row: Row, elem: Measurable): number {
|
|
267
243
|
if (row.hasStatement && !Types.isSpacer(elem) &&
|
|
268
244
|
!Types.isStatementInput(elem)) {
|
|
269
245
|
return row.yPos + this.constants_.EMPTY_STATEMENT_INPUT_HEIGHT / 2;
|
|
@@ -278,10 +254,7 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
278
254
|
return super.getElemCenterline_(row, elem);
|
|
279
255
|
}
|
|
280
256
|
|
|
281
|
-
|
|
282
|
-
* @override
|
|
283
|
-
*/
|
|
284
|
-
addInput_(input, activeRow) {
|
|
257
|
+
override addInput_(input: Input, activeRow: Row) {
|
|
285
258
|
// If we have two dummy inputs on the same row, one aligned left and the
|
|
286
259
|
// other right, keep track of the right aligned dummy input so we can add
|
|
287
260
|
// padding later.
|
|
@@ -301,10 +274,7 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
301
274
|
super.addInput_(input, activeRow);
|
|
302
275
|
}
|
|
303
276
|
|
|
304
|
-
|
|
305
|
-
* @override
|
|
306
|
-
*/
|
|
307
|
-
addAlignmentPadding_(row, missingSpace) {
|
|
277
|
+
override addAlignmentPadding_(row: Row, missingSpace: number) {
|
|
308
278
|
if (this.rightAlignedDummyInputs_.get(row)) {
|
|
309
279
|
let alignmentDivider;
|
|
310
280
|
for (let i = 0; i < row.elements.length; i++) {
|
|
@@ -330,9 +300,8 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
330
300
|
* Adjust the x position of fields to bump all non-label fields in the first
|
|
331
301
|
* row past the notch position. This must be called before ``computeBounds``
|
|
332
302
|
* is called.
|
|
333
|
-
* @protected
|
|
334
303
|
*/
|
|
335
|
-
adjustXPosition_() {
|
|
304
|
+
protected adjustXPosition_() {
|
|
336
305
|
const notchTotalWidth =
|
|
337
306
|
this.constants_.NOTCH_OFFSET_LEFT + this.constants_.NOTCH_WIDTH;
|
|
338
307
|
let minXPos = notchTotalWidth;
|
|
@@ -340,9 +309,9 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
340
309
|
// first input row (if the block has prev connection) and every input row
|
|
341
310
|
// that has a prev and next notch.
|
|
342
311
|
for (let i = 2; i < this.rows.length - 1; i += 2) {
|
|
343
|
-
const prevSpacer =
|
|
312
|
+
const prevSpacer = this.rows[i - 1] as SpacerRow;
|
|
344
313
|
const row = this.rows[i];
|
|
345
|
-
const nextSpacer =
|
|
314
|
+
const nextSpacer = this.rows[i + 1] as SpacerRow;
|
|
346
315
|
|
|
347
316
|
const hasPrevNotch = i === 2 ? !!this.topRow.hasPreviousConnection :
|
|
348
317
|
!!prevSpacer.followsStatement;
|
|
@@ -383,13 +352,18 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
383
352
|
* output connection to match that of the block. For the right side, add a
|
|
384
353
|
* right connection shape element and have it match the dimensions of the
|
|
385
354
|
* output connection.
|
|
386
|
-
* @protected
|
|
387
355
|
*/
|
|
388
|
-
finalizeOutputConnection_() {
|
|
356
|
+
protected finalizeOutputConnection_() {
|
|
389
357
|
// Dynamic output connections depend on the height of the block.
|
|
390
358
|
if (!this.outputConnection || !this.outputConnection.isDynamicShape) {
|
|
391
359
|
return;
|
|
392
360
|
}
|
|
361
|
+
const outputConnectionShape = this.outputConnection.shape;
|
|
362
|
+
if (!('isDynamic' in outputConnectionShape &&
|
|
363
|
+
outputConnectionShape.isDynamic)) {
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
|
|
393
367
|
let yCursor = 0;
|
|
394
368
|
// Determine the block height.
|
|
395
369
|
for (let i = 0; i < this.rows.length; i++) {
|
|
@@ -403,26 +377,26 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
403
377
|
const blockHeight = this.bottomRow.hasNextConnection ?
|
|
404
378
|
this.height - this.bottomRow.descenderHeight :
|
|
405
379
|
this.height;
|
|
406
|
-
const connectionHeight =
|
|
407
|
-
const connectionWidth =
|
|
380
|
+
const connectionHeight = outputConnectionShape.height(blockHeight);
|
|
381
|
+
const connectionWidth = outputConnectionShape.width(blockHeight);
|
|
408
382
|
|
|
409
383
|
this.outputConnection.height = connectionHeight;
|
|
410
384
|
this.outputConnection.width = connectionWidth;
|
|
411
385
|
this.outputConnection.startX = connectionWidth;
|
|
412
386
|
this.outputConnection.connectionOffsetY =
|
|
413
|
-
|
|
387
|
+
outputConnectionShape.connectionOffsetY(connectionHeight);
|
|
414
388
|
this.outputConnection.connectionOffsetX =
|
|
415
|
-
|
|
389
|
+
outputConnectionShape.connectionOffsetX(connectionWidth);
|
|
416
390
|
|
|
417
391
|
// Add the right connection measurable.
|
|
418
392
|
// Don't add it if we have a value-to-statement or a value-to-stack block.
|
|
419
393
|
let rightConnectionWidth = 0;
|
|
420
394
|
if (!this.hasStatementInput && !this.bottomRow.hasNextConnection) {
|
|
421
395
|
rightConnectionWidth = connectionWidth;
|
|
422
|
-
this.rightSide
|
|
423
|
-
this.rightSide
|
|
424
|
-
this.rightSide
|
|
425
|
-
this.rightSide
|
|
396
|
+
this.rightSide!.height = connectionHeight;
|
|
397
|
+
this.rightSide!.width = rightConnectionWidth;
|
|
398
|
+
this.rightSide!.centerline = connectionHeight / 2;
|
|
399
|
+
this.rightSide!.xPos = this.width + rightConnectionWidth;
|
|
426
400
|
}
|
|
427
401
|
this.startX = connectionWidth;
|
|
428
402
|
this.width += connectionWidth + rightConnectionWidth;
|
|
@@ -434,9 +408,8 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
434
408
|
* reduce the implicit spacing created by the left and right output connection
|
|
435
409
|
* shapes by adding setting negative spacing onto the leftmost and rightmost
|
|
436
410
|
* spacers.
|
|
437
|
-
* @protected
|
|
438
411
|
*/
|
|
439
|
-
finalizeHorizontalAlignment_() {
|
|
412
|
+
protected finalizeHorizontalAlignment_() {
|
|
440
413
|
if (!this.outputConnection || this.hasStatementInput ||
|
|
441
414
|
this.bottomRow.hasNextConnection) {
|
|
442
415
|
return;
|
|
@@ -468,10 +441,12 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
468
441
|
if (totalNegativeSpacing) {
|
|
469
442
|
this.width -= totalNegativeSpacing;
|
|
470
443
|
this.widthWithChildren -= totalNegativeSpacing;
|
|
471
|
-
this.rightSide
|
|
444
|
+
this.rightSide!.xPos -= totalNegativeSpacing;
|
|
472
445
|
for (let i = 0; i < this.rows.length; i++) {
|
|
473
446
|
const row = this.rows[i];
|
|
474
|
-
|
|
447
|
+
// AnyDuringMigration because: Property 'isTopOrBottomRow' does not
|
|
448
|
+
// exist on type 'typeof Types'.
|
|
449
|
+
if ((Types as AnyDuringMigration).isTopOrBottomRow(row)) {
|
|
475
450
|
row.elements[1].width -= totalNegativeSpacing;
|
|
476
451
|
}
|
|
477
452
|
row.width -= totalNegativeSpacing;
|
|
@@ -483,19 +458,16 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
483
458
|
/**
|
|
484
459
|
* Calculate the spacing to reduce the left and right edges by based on the
|
|
485
460
|
* outer and inner connection shape.
|
|
486
|
-
* @param
|
|
487
|
-
*
|
|
488
|
-
* @return {number} The amount of spacing to reduce the first or last spacer.
|
|
489
|
-
* @protected
|
|
461
|
+
* @param elem The first or last element on a block.
|
|
462
|
+
* @return The amount of spacing to reduce the first or last spacer.
|
|
490
463
|
*/
|
|
491
|
-
getNegativeSpacing_(elem) {
|
|
464
|
+
protected getNegativeSpacing_(elem: Measurable): number {
|
|
492
465
|
if (!elem) {
|
|
493
466
|
return 0;
|
|
494
467
|
}
|
|
495
468
|
const connectionWidth = this.outputConnection.width;
|
|
496
469
|
const outerShape = this.outputConnection.shape.type;
|
|
497
|
-
const constants =
|
|
498
|
-
/** @type {!ConstantProvider} */ (this.constants_);
|
|
470
|
+
const constants = (this.constants_);
|
|
499
471
|
if (this.isMultiRow && this.inputRows.length > 1) {
|
|
500
472
|
switch (outerShape) {
|
|
501
473
|
case constants.SHAPES.ROUND: {
|
|
@@ -514,8 +486,11 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
514
486
|
if (Types.isInlineInput(elem) && elem instanceof InputConnection) {
|
|
515
487
|
const connectedBlock = elem.connectedBlock;
|
|
516
488
|
const innerShape = connectedBlock ?
|
|
517
|
-
connectedBlock.pathObject.outputShapeType :
|
|
489
|
+
(connectedBlock.pathObject as PathObject).outputShapeType :
|
|
518
490
|
elem.shape.type;
|
|
491
|
+
if (innerShape == null) {
|
|
492
|
+
return 0;
|
|
493
|
+
}
|
|
519
494
|
// Special case for value to stack / value to statement blocks.
|
|
520
495
|
if (connectedBlock && connectedBlock.outputConnection &&
|
|
521
496
|
(connectedBlock.statementInputCount ||
|
|
@@ -533,7 +508,7 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
533
508
|
// Special case for text inputs.
|
|
534
509
|
if (outerShape === constants.SHAPES.ROUND &&
|
|
535
510
|
elem.field instanceof FieldTextInput) {
|
|
536
|
-
return connectionWidth -
|
|
511
|
+
return connectionWidth - 2.75 * constants.GRID_UNIT;
|
|
537
512
|
}
|
|
538
513
|
return connectionWidth -
|
|
539
514
|
this.constants_.SHAPE_IN_SHAPE_PADDING[outerShape][0];
|
|
@@ -547,18 +522,17 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
547
522
|
* Finalize vertical alignment of rows on a block. In particular, reduce the
|
|
548
523
|
* implicit spacing when a non-shadow block is connected to any of an input
|
|
549
524
|
* row's inline inputs.
|
|
550
|
-
* @protected
|
|
551
525
|
*/
|
|
552
|
-
finalizeVerticalAlignment_() {
|
|
526
|
+
protected finalizeVerticalAlignment_() {
|
|
553
527
|
if (this.outputConnection) {
|
|
554
528
|
return;
|
|
555
529
|
}
|
|
556
530
|
// Run through every input row on the block and only apply tight nesting
|
|
557
531
|
// logic to input rows that have a prev and next notch.
|
|
558
532
|
for (let i = 2; i < this.rows.length - 1; i += 2) {
|
|
559
|
-
const prevSpacer =
|
|
533
|
+
const prevSpacer = this.rows[i - 1] as SpacerRow;
|
|
560
534
|
const row = this.rows[i];
|
|
561
|
-
const nextSpacer =
|
|
535
|
+
const nextSpacer = this.rows[i + 1] as SpacerRow;
|
|
562
536
|
|
|
563
537
|
const firstRow = i === 2;
|
|
564
538
|
const hasPrevNotch = firstRow ? !!this.topRow.hasPreviousConnection :
|
|
@@ -606,10 +580,7 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
606
580
|
}
|
|
607
581
|
}
|
|
608
582
|
|
|
609
|
-
|
|
610
|
-
* @override
|
|
611
|
-
*/
|
|
612
|
-
finalize_() {
|
|
583
|
+
override finalize_() {
|
|
613
584
|
this.finalizeOutputConnection_();
|
|
614
585
|
this.finalizeHorizontalAlignment_();
|
|
615
586
|
this.finalizeVerticalAlignment_();
|
|
@@ -620,5 +591,3 @@ class RenderInfo extends BaseRenderInfo {
|
|
|
620
591
|
}
|
|
621
592
|
}
|
|
622
593
|
}
|
|
623
|
-
|
|
624
|
-
exports.RenderInfo = RenderInfo;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2019 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { ASTNode } from '../../keyboard_nav/ast_node.js';
|
|
7
|
+
import type { Marker } from '../../keyboard_nav/marker.js';
|
|
8
|
+
import type { WorkspaceSvg } from '../../workspace_svg.js';
|
|
9
|
+
import type { ConstantProvider as BaseConstantProvider } from '../common/constants.js';
|
|
10
|
+
import { MarkerSvg as BaseMarkerSvg } from '../common/marker_svg.js';
|
|
11
|
+
import type { ConstantProvider as ZelosConstantProvider } from './constants.js';
|
|
12
|
+
/**
|
|
13
|
+
* Class to draw a marker.
|
|
14
|
+
* @alias Blockly.zelos.MarkerSvg
|
|
15
|
+
*/
|
|
16
|
+
export declare class MarkerSvg extends BaseMarkerSvg {
|
|
17
|
+
constants_: ZelosConstantProvider;
|
|
18
|
+
private markerCircle_;
|
|
19
|
+
/**
|
|
20
|
+
* @param workspace The workspace the marker belongs to.
|
|
21
|
+
* @param constants The constants for the renderer.
|
|
22
|
+
* @param marker The marker to draw.
|
|
23
|
+
*/
|
|
24
|
+
constructor(workspace: WorkspaceSvg, constants: BaseConstantProvider, marker: Marker);
|
|
25
|
+
/**
|
|
26
|
+
* Position and display the marker for an input or an output connection.
|
|
27
|
+
* @param curNode The node to draw the marker for.
|
|
28
|
+
*/
|
|
29
|
+
private showWithInputOutput_;
|
|
30
|
+
showWithOutput_(curNode: ASTNode): void;
|
|
31
|
+
showWithInput_(curNode: ASTNode): void;
|
|
32
|
+
/**
|
|
33
|
+
* Draw a rectangle around the block.
|
|
34
|
+
* @param curNode The current node of the marker.
|
|
35
|
+
*/
|
|
36
|
+
showWithBlock_(curNode: ASTNode): void;
|
|
37
|
+
/**
|
|
38
|
+
* Position the circle we use for input and output connections.
|
|
39
|
+
* @param x The x position of the circle.
|
|
40
|
+
* @param y The y position of the circle.
|
|
41
|
+
*/
|
|
42
|
+
private positionCircle_;
|
|
43
|
+
hide(): void;
|
|
44
|
+
createDomInternal_(): SVGGElement;
|
|
45
|
+
applyColour_(curNode: ASTNode): void;
|
|
46
|
+
}
|