blockly 8.0.4-beta.0 → 8.0.5-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blockly.min.js +2421 -2688
- package/blockly_compressed.js +1499 -1994
- package/blockly_compressed.js.map +1 -1
- package/blocks/blocks.js +3 -2
- package/blocks/colour.js +3 -1
- package/blocks/lists.js +94 -22
- package/blocks/logic.js +14 -6
- package/blocks/loops.js +5 -3
- package/blocks/math.js +3 -1
- package/blocks/procedures.js +3 -1
- package/blocks/text.js +14 -6
- package/blocks/variables.js +3 -1
- package/blocks/variables_dynamic.js +3 -1
- package/blocks.d.ts +0 -2
- package/blocks_compressed.js +189 -171
- package/blocks_compressed.js.map +1 -1
- package/closure/goog/base.d.ts +1 -0
- package/closure/goog/base_minimal.d.ts +18 -0
- package/closure/goog/goog.d.ts +25 -0
- package/core/any_aliases.d.ts +1 -0
- package/core/any_aliases.ts +1 -0
- package/core/block.d.ts +779 -0
- package/core/{block.js → block.ts} +610 -719
- package/core/block_animations.d.ts +33 -0
- package/core/{block_animations.js → block_animations.ts} +75 -79
- package/core/block_drag_surface.d.ts +111 -0
- package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
- package/core/block_dragger.d.ts +143 -0
- package/core/{block_dragger.js → block_dragger.ts} +139 -176
- package/core/block_svg.d.ts +588 -0
- package/core/{block_svg.js → block_svg.ts} +494 -630
- package/core/blockly.d.ts +562 -0
- package/core/blockly.js +1 -1
- package/core/blockly.ts +749 -0
- package/core/blockly_options.d.ts +69 -0
- package/core/blockly_options.ts +81 -0
- package/core/blocks.d.ts +17 -0
- package/core/{blocks.js → blocks.ts} +4 -8
- package/core/browser_events.d.ts +85 -0
- package/core/{browser_events.js → browser_events.ts} +98 -93
- package/core/bubble.d.ts +279 -0
- package/core/{bubble.js → bubble.ts} +277 -370
- package/core/bubble_dragger.d.ts +73 -0
- package/core/bubble_dragger.ts +229 -0
- package/core/bump_objects.d.ts +34 -0
- package/core/{bump_objects.js → bump_objects.ts} +54 -52
- package/core/clipboard.d.ts +42 -0
- package/core/clipboard.ts +91 -0
- package/core/comment.d.ts +113 -0
- package/core/{comment.js → comment.ts} +135 -185
- package/core/common.d.ts +129 -0
- package/core/{common.js → common.ts} +105 -82
- package/core/component_manager.d.ts +91 -0
- package/core/component_manager.ts +211 -0
- package/core/config.d.ts +23 -0
- package/core/{config.js → config.ts} +12 -19
- package/core/connection.d.ts +232 -0
- package/core/{connection.js → connection.ts} +187 -237
- package/core/connection_checker.d.ts +78 -0
- package/core/{connection_checker.js → connection_checker.ts} +66 -77
- package/core/connection_db.d.ts +91 -0
- package/core/{connection_db.js → connection_db.ts} +62 -87
- package/core/connection_type.d.ts +15 -0
- package/core/{connection_type.js → connection_type.ts} +8 -12
- package/core/constants.d.ts +15 -0
- package/core/{constants.js → constants.ts} +4 -8
- package/core/contextmenu.d.ts +80 -0
- package/core/{contextmenu.js → contextmenu.ts} +118 -153
- package/core/contextmenu_items.d.ts +77 -0
- package/core/contextmenu_items.ts +576 -0
- package/core/contextmenu_registry.d.ts +105 -0
- package/core/contextmenu_registry.ts +179 -0
- package/core/css.d.ts +24 -0
- package/core/{css.js → css.ts} +16 -24
- package/core/delete_area.d.ts +47 -0
- package/core/delete_area.ts +82 -0
- package/core/dialog.d.ts +61 -0
- package/core/dialog.ts +127 -0
- package/core/drag_target.d.ts +63 -0
- package/core/drag_target.ts +94 -0
- package/core/dropdowndiv.d.ts +155 -0
- package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
- package/core/events/events.d.ts +102 -0
- package/core/events/events.ts +123 -0
- package/core/events/events_abstract.d.ts +51 -0
- package/core/events/events_abstract.ts +112 -0
- package/core/events/events_block_base.d.ts +31 -0
- package/core/events/events_block_base.ts +65 -0
- package/core/events/events_block_change.d.ts +55 -0
- package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
- package/core/events/events_block_create.d.ts +35 -0
- package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
- package/core/events/events_block_delete.d.ts +36 -0
- package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
- package/core/events/events_block_drag.d.ts +36 -0
- package/core/events/events_block_drag.ts +82 -0
- package/core/events/events_block_move.d.ts +51 -0
- package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
- package/core/events/events_bubble_open.d.ts +35 -0
- package/core/events/events_bubble_open.ts +82 -0
- package/core/events/events_click.d.ts +36 -0
- package/core/events/{events_click.js → events_click.ts} +27 -30
- package/core/events/events_comment_base.d.ts +39 -0
- package/core/events/events_comment_base.ts +107 -0
- package/core/events/events_comment_change.d.ts +43 -0
- package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
- package/core/events/events_comment_create.d.ts +35 -0
- package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
- package/core/events/events_comment_delete.d.ts +35 -0
- package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
- package/core/events/events_comment_move.d.ts +55 -0
- package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
- package/core/events/events_marker_move.d.ts +40 -0
- package/core/events/events_marker_move.ts +99 -0
- package/core/events/events_selected.d.ts +34 -0
- package/core/events/events_selected.ts +78 -0
- package/core/events/events_theme_change.d.ts +30 -0
- package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
- package/core/events/events_toolbox_item_select.d.ts +34 -0
- package/core/events/events_toolbox_item_select.ts +79 -0
- package/core/events/events_trashcan_open.d.ts +31 -0
- package/core/events/events_trashcan_open.ts +68 -0
- package/core/events/events_ui.d.ts +37 -0
- package/core/events/{events_ui.js → events_ui.ts} +27 -26
- package/core/events/events_ui_base.d.ts +26 -0
- package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
- package/core/events/events_var_base.d.ts +31 -0
- package/core/events/events_var_base.ts +65 -0
- package/core/events/events_var_create.d.ts +35 -0
- package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
- package/core/events/events_var_delete.d.ts +35 -0
- package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
- package/core/events/events_var_rename.d.ts +36 -0
- package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
- package/core/events/events_viewport.d.ts +39 -0
- package/core/events/events_viewport.ts +100 -0
- package/core/events/utils.d.ts +272 -0
- package/core/events/{utils.js → utils.ts} +148 -219
- package/core/events/workspace_events.d.ts +36 -0
- package/core/events/workspace_events.ts +86 -0
- package/core/extensions.d.ts +107 -0
- package/core/{extensions.js → extensions.ts} +153 -172
- package/core/field.d.ts +534 -0
- package/core/{field.js → field.ts} +413 -489
- package/core/field_angle.d.ts +176 -0
- package/core/field_angle.ts +563 -0
- package/core/field_checkbox.d.ts +124 -0
- package/core/field_checkbox.ts +243 -0
- package/core/field_colour.d.ts +200 -0
- package/core/field_colour.ts +632 -0
- package/core/field_dropdown.d.ts +222 -0
- package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
- package/core/field_image.d.ts +134 -0
- package/core/field_image.ts +282 -0
- package/core/field_label.d.ts +71 -0
- package/core/field_label.ts +152 -0
- package/core/field_label_serializable.d.ts +42 -0
- package/core/field_label_serializable.ts +76 -0
- package/core/field_multilineinput.d.ts +146 -0
- package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
- package/core/field_number.d.ts +156 -0
- package/core/{field_number.js → field_number.ts} +110 -123
- package/core/field_registry.d.ts +45 -0
- package/core/{field_registry.js → field_registry.ts} +37 -30
- package/core/field_textinput.d.ts +219 -0
- package/core/field_textinput.ts +591 -0
- package/core/field_variable.d.ts +217 -0
- package/core/{field_variable.js → field_variable.ts} +174 -187
- package/core/flyout_base.d.ts +459 -0
- package/core/{flyout_base.js → flyout_base.ts} +429 -518
- package/core/flyout_button.d.ts +81 -0
- package/core/flyout_button.ts +292 -0
- package/core/flyout_horizontal.d.ts +82 -0
- package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
- package/core/flyout_metrics_manager.d.ts +40 -0
- package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
- package/core/flyout_vertical.d.ts +83 -0
- package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
- package/core/generator.d.ts +205 -0
- package/core/{generator.js → generator.ts} +168 -193
- package/core/gesture.d.ts +357 -0
- package/core/{gesture.js → gesture.ts} +289 -369
- package/core/grid.d.ts +83 -0
- package/core/grid.ts +192 -0
- package/core/icon.d.ts +78 -0
- package/core/icon.ts +189 -0
- package/core/inject.d.ts +15 -0
- package/core/{inject.js → inject.ts} +101 -100
- package/core/input.d.ts +128 -0
- package/core/input.ts +309 -0
- package/core/input_types.d.ts +14 -0
- package/core/{input_types.js → input_types.ts} +8 -12
- package/core/insertion_marker_manager.d.ts +212 -0
- package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
- package/core/interfaces/i_ast_node_location.d.ts +11 -0
- package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
- package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
- package/core/interfaces/i_ast_node_location_svg.ts +37 -0
- package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
- package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
- package/core/interfaces/i_autohideable.d.ts +18 -0
- package/core/interfaces/i_autohideable.ts +34 -0
- package/core/interfaces/i_block_dragger.d.ts +43 -0
- package/core/interfaces/i_block_dragger.ts +67 -0
- package/core/interfaces/i_bounded_element.d.ts +24 -0
- package/core/interfaces/i_bounded_element.ts +42 -0
- package/core/interfaces/i_bubble.d.ts +59 -0
- package/core/interfaces/i_bubble.ts +88 -0
- package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
- package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
- package/core/interfaces/i_component.d.ts +17 -0
- package/core/interfaces/{i_component.js → i_component.ts} +9 -14
- package/core/interfaces/i_connection_checker.d.ts +69 -0
- package/core/interfaces/i_connection_checker.ts +102 -0
- package/core/interfaces/i_contextmenu.d.ts +13 -0
- package/core/interfaces/i_contextmenu.ts +26 -0
- package/core/interfaces/i_copyable.d.ts +24 -0
- package/core/interfaces/i_copyable.ts +40 -0
- package/core/interfaces/i_deletable.d.ts +16 -0
- package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
- package/core/interfaces/i_delete_area.d.ts +25 -0
- package/core/interfaces/i_delete_area.ts +46 -0
- package/core/interfaces/i_drag_target.d.ts +53 -0
- package/core/interfaces/i_drag_target.ts +84 -0
- package/core/interfaces/i_draggable.d.ts +12 -0
- package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
- package/core/interfaces/i_flyout.d.ts +134 -0
- package/core/interfaces/i_flyout.ts +186 -0
- package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
- package/core/interfaces/i_keyboard_accessible.ts +35 -0
- package/core/interfaces/i_metrics_manager.d.ts +117 -0
- package/core/interfaces/i_metrics_manager.ts +151 -0
- package/core/interfaces/i_movable.d.ts +16 -0
- package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
- package/core/interfaces/i_positionable.d.ts +27 -0
- package/core/interfaces/i_positionable.ts +50 -0
- package/core/interfaces/i_registrable.d.ts +11 -0
- package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
- package/core/interfaces/i_registrable_field.d.ts +17 -0
- package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
- package/core/interfaces/i_selectable.d.ts +18 -0
- package/core/interfaces/i_selectable.ts +34 -0
- package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
- package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
- package/core/interfaces/i_serializer.d.ts +42 -0
- package/core/interfaces/i_serializer.ts +65 -0
- package/core/interfaces/i_styleable.d.ts +21 -0
- package/core/interfaces/i_styleable.ts +35 -0
- package/core/interfaces/i_toolbox.d.ts +85 -0
- package/core/interfaces/i_toolbox.ts +127 -0
- package/core/interfaces/i_toolbox_item.d.ts +62 -0
- package/core/interfaces/i_toolbox_item.ts +84 -0
- package/core/internal_constants.d.ts +40 -0
- package/core/{internal_constants.js → internal_constants.ts} +13 -18
- package/core/keyboard_nav/ast_node.d.ts +239 -0
- package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
- package/core/keyboard_nav/basic_cursor.d.ts +88 -0
- package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
- package/core/keyboard_nav/cursor.d.ts +41 -0
- package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
- package/core/keyboard_nav/marker.d.ts +58 -0
- package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
- package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
- package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
- package/core/main.d.ts +11 -0
- package/core/main.js +303 -0
- package/core/marker_manager.d.ts +85 -0
- package/core/marker_manager.ts +181 -0
- package/core/menu.d.ts +149 -0
- package/core/{menu.js → menu.ts} +141 -174
- package/core/menuitem.d.ts +118 -0
- package/core/menuitem.ts +240 -0
- package/core/metrics_manager.d.ts +201 -0
- package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
- package/core/msg.d.ts +9 -0
- package/core/{msg.js → msg.ts} +4 -8
- package/core/mutator.d.ts +128 -0
- package/core/{mutator.js → mutator.ts} +196 -211
- package/core/names.d.ts +124 -0
- package/core/names.ts +267 -0
- package/core/options.d.ts +137 -0
- package/core/{options.js → options.ts} +147 -173
- package/core/positionable_helpers.d.ts +88 -0
- package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
- package/core/procedures.d.ts +108 -0
- package/core/{procedures.js → procedures.ts} +143 -152
- package/core/registry.d.ts +137 -0
- package/core/registry.ts +339 -0
- package/core/rendered_connection.d.ts +191 -0
- package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
- package/core/renderers/common/block_rendering.d.ts +114 -0
- package/core/renderers/common/block_rendering.ts +164 -0
- package/core/renderers/common/constants.d.ts +458 -0
- package/core/renderers/common/constants.ts +1124 -0
- package/core/renderers/common/debug.d.ts +28 -0
- package/core/renderers/common/{debug.js → debug.ts} +14 -20
- package/core/renderers/common/debugger.d.ts +120 -0
- package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
- package/core/renderers/common/drawer.d.ts +132 -0
- package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
- package/core/renderers/common/i_path_object.d.ts +117 -0
- package/core/renderers/common/i_path_object.ts +161 -0
- package/core/renderers/common/info.d.ts +194 -0
- package/core/renderers/common/{info.js → info.ts} +165 -222
- package/core/renderers/common/marker_svg.d.ts +220 -0
- package/core/renderers/common/marker_svg.ts +680 -0
- package/core/renderers/common/path_object.d.ts +146 -0
- package/core/renderers/common/path_object.ts +272 -0
- package/core/renderers/common/renderer.d.ts +157 -0
- package/core/renderers/common/renderer.ts +271 -0
- package/core/renderers/geras/constants.d.ts +23 -0
- package/core/renderers/geras/constants.ts +61 -0
- package/core/renderers/geras/drawer.d.ts +43 -0
- package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
- package/core/renderers/geras/geras.d.ts +11 -0
- package/core/renderers/geras/geras.ts +37 -0
- package/core/renderers/geras/highlight_constants.d.ts +108 -0
- package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
- package/core/renderers/geras/highlighter.d.ts +98 -0
- package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
- package/core/renderers/geras/info.d.ts +45 -0
- package/core/renderers/geras/{info.js → info.ts} +61 -99
- package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
- package/core/renderers/geras/measurables/inline_input.ts +51 -0
- package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
- package/core/renderers/geras/measurables/statement_input.ts +50 -0
- package/core/renderers/geras/path_object.d.ts +47 -0
- package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
- package/core/renderers/geras/renderer.d.ts +69 -0
- package/core/renderers/geras/renderer.ts +126 -0
- package/core/renderers/measurables/base.d.ts +27 -0
- package/core/renderers/measurables/base.ts +53 -0
- package/core/renderers/measurables/bottom_row.d.ts +61 -0
- package/core/renderers/measurables/bottom_row.ts +120 -0
- package/core/renderers/measurables/connection.d.ts +25 -0
- package/core/renderers/measurables/connection.ts +52 -0
- package/core/renderers/measurables/external_value_input.d.ts +27 -0
- package/core/renderers/measurables/external_value_input.ts +65 -0
- package/core/renderers/measurables/field.d.ts +30 -0
- package/core/renderers/measurables/field.ts +63 -0
- package/core/renderers/measurables/hat.d.ts +21 -0
- package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
- package/core/renderers/measurables/icon.d.ts +26 -0
- package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
- package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
- package/core/renderers/measurables/in_row_spacer.ts +44 -0
- package/core/renderers/measurables/inline_input.d.ts +24 -0
- package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
- package/core/renderers/measurables/input_connection.d.ts +29 -0
- package/core/renderers/measurables/input_connection.ts +66 -0
- package/core/renderers/measurables/input_row.d.ts +30 -0
- package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
- package/core/renderers/measurables/jagged_edge.d.ts +20 -0
- package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
- package/core/renderers/measurables/next_connection.d.ts +23 -0
- package/core/renderers/measurables/next_connection.ts +47 -0
- package/core/renderers/measurables/output_connection.d.ts +26 -0
- package/core/renderers/measurables/output_connection.ts +56 -0
- package/core/renderers/measurables/previous_connection.d.ts +23 -0
- package/core/renderers/measurables/previous_connection.ts +47 -0
- package/core/renderers/measurables/round_corner.d.ts +21 -0
- package/core/renderers/measurables/round_corner.ts +49 -0
- package/core/renderers/measurables/row.d.ts +141 -0
- package/core/renderers/measurables/row.ts +225 -0
- package/core/renderers/measurables/spacer_row.d.ts +29 -0
- package/core/renderers/measurables/spacer_row.ts +55 -0
- package/core/renderers/measurables/square_corner.d.ts +21 -0
- package/core/renderers/measurables/square_corner.ts +47 -0
- package/core/renderers/measurables/statement_input.d.ts +22 -0
- package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
- package/core/renderers/measurables/top_row.d.ts +56 -0
- package/core/renderers/measurables/top_row.ts +122 -0
- package/core/renderers/measurables/types.d.ts +235 -0
- package/core/renderers/measurables/types.ts +332 -0
- package/core/renderers/minimalist/constants.d.ts +14 -0
- package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
- package/core/renderers/minimalist/drawer.d.ts +21 -0
- package/core/renderers/minimalist/drawer.ts +38 -0
- package/core/renderers/minimalist/info.d.ts +30 -0
- package/core/renderers/minimalist/info.ts +52 -0
- package/core/renderers/minimalist/minimalist.d.ts +6 -0
- package/core/renderers/minimalist/minimalist.ts +22 -0
- package/core/renderers/minimalist/renderer.d.ts +41 -0
- package/core/renderers/minimalist/renderer.ts +71 -0
- package/core/renderers/thrasos/info.d.ts +40 -0
- package/core/renderers/thrasos/{info.js → info.ts} +66 -67
- package/core/renderers/thrasos/renderer.d.ts +25 -0
- package/core/renderers/thrasos/renderer.ts +48 -0
- package/core/renderers/thrasos/thrasos.d.ts +4 -0
- package/core/renderers/thrasos/thrasos.ts +20 -0
- package/core/renderers/zelos/constants.d.ts +186 -0
- package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
- package/core/renderers/zelos/drawer.d.ts +47 -0
- package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
- package/core/renderers/zelos/info.d.ts +88 -0
- package/core/renderers/zelos/{info.js → info.ts} +111 -142
- package/core/renderers/zelos/marker_svg.d.ts +46 -0
- package/core/renderers/zelos/marker_svg.ts +151 -0
- package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
- package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
- package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
- package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
- package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
- package/core/renderers/zelos/measurables/row_elements.ts +45 -0
- package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
- package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
- package/core/renderers/zelos/path_object.d.ts +77 -0
- package/core/renderers/zelos/path_object.ts +215 -0
- package/core/renderers/zelos/renderer.d.ts +74 -0
- package/core/renderers/zelos/renderer.ts +142 -0
- package/core/renderers/zelos/zelos.d.ts +12 -0
- package/core/renderers/zelos/zelos.ts +39 -0
- package/core/scrollbar.d.ts +277 -0
- package/core/{scrollbar.js → scrollbar.ts} +307 -328
- package/core/scrollbar_pair.d.ts +105 -0
- package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
- package/core/serialization/blocks.d.ts +98 -0
- package/core/serialization/{blocks.js → blocks.ts} +229 -228
- package/core/serialization/exceptions.d.ts +73 -0
- package/core/serialization/exceptions.ts +98 -0
- package/core/serialization/priorities.d.ts +15 -0
- package/core/serialization/{priorities.js → priorities.ts} +4 -10
- package/core/serialization/registry.d.ts +20 -0
- package/core/serialization/{registry.js → registry.ts} +11 -13
- package/core/serialization/variables.d.ts +14 -0
- package/core/serialization/{variables.js → variables.ts} +30 -32
- package/core/serialization/workspaces.d.ts +28 -0
- package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
- package/core/shortcut_items.d.ts +61 -0
- package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
- package/core/shortcut_registry.d.ts +151 -0
- package/core/shortcut_registry.ts +355 -0
- package/core/sprites.d.ts +19 -0
- package/core/{sprites.js → sprites.ts} +4 -6
- package/core/theme/classic.d.ts +12 -0
- package/core/theme/{classic.js → classic.ts} +5 -7
- package/core/theme/themes.d.ts +8 -0
- package/core/theme/themes.ts +22 -0
- package/core/theme/zelos.d.ts +11 -0
- package/core/theme/{zelos.js → zelos.ts} +4 -7
- package/core/theme.d.ts +142 -0
- package/core/theme.ts +221 -0
- package/core/theme_manager.d.ts +81 -0
- package/core/theme_manager.ts +186 -0
- package/core/toolbox/category.d.ts +239 -0
- package/core/toolbox/category.ts +679 -0
- package/core/toolbox/collapsible_category.d.ts +91 -0
- package/core/toolbox/collapsible_category.ts +273 -0
- package/core/toolbox/separator.d.ts +39 -0
- package/core/toolbox/separator.ts +105 -0
- package/core/toolbox/toolbox.d.ts +352 -0
- package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
- package/core/toolbox/toolbox_item.d.ts +85 -0
- package/core/toolbox/toolbox_item.ts +147 -0
- package/core/tooltip.d.ts +126 -0
- package/core/{tooltip.js → tooltip.ts} +136 -214
- package/core/touch.d.ts +121 -0
- package/core/touch.ts +306 -0
- package/core/touch_gesture.d.ts +115 -0
- package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
- package/core/trashcan.d.ts +195 -0
- package/core/{trashcan.js → trashcan.ts} +226 -312
- package/core/utils/aria.d.ts +67 -0
- package/core/utils/{aria.js → aria.ts} +47 -61
- package/core/utils/array.d.ts +14 -0
- package/core/utils/{array.js → array.ts} +10 -12
- package/core/utils/colour.d.ts +103 -0
- package/core/utils/{colour.js → colour.ts} +60 -72
- package/core/utils/coordinate.d.ts +72 -0
- package/core/utils/coordinate.ts +124 -0
- package/core/utils/deprecation.d.ts +17 -0
- package/core/utils/{deprecation.js → deprecation.ts} +11 -11
- package/core/utils/dom.d.ts +165 -0
- package/core/utils/{dom.js → dom.ts} +125 -147
- package/core/utils/idgenerator.d.ts +25 -0
- package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
- package/core/utils/keycodes.d.ts +137 -0
- package/core/utils/keycodes.ts +169 -0
- package/core/utils/math.d.ts +30 -0
- package/core/utils/{math.js → math.ts} +17 -19
- package/core/utils/metrics.d.ts +64 -0
- package/core/utils/metrics.ts +97 -0
- package/core/utils/object.d.ts +35 -0
- package/core/utils/{object.js → object.ts} +30 -26
- package/core/utils/parsing.d.ts +50 -0
- package/core/utils/{parsing.js → parsing.ts} +50 -50
- package/core/utils/rect.d.ts +38 -0
- package/core/utils/{rect.js → rect.ts} +18 -31
- package/core/utils/sentinel.d.ts +11 -0
- package/core/utils/{sentinel.js → sentinel.ts} +3 -5
- package/core/utils/size.d.ts +27 -0
- package/core/utils/{size.js → size.ts} +12 -26
- package/core/utils/string.d.ts +55 -0
- package/core/utils/{string.js → string.ts} +64 -61
- package/core/utils/style.d.ts +127 -0
- package/core/utils/{style.js → style.ts} +102 -92
- package/core/utils/svg.d.ts +68 -0
- package/core/utils/svg.ts +88 -0
- package/core/utils/svg_math.d.ts +70 -0
- package/core/utils/{svg_math.js → svg_math.ts} +72 -71
- package/core/utils/svg_paths.d.ts +101 -0
- package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
- package/core/utils/toolbox.d.ts +193 -0
- package/core/utils/toolbox.ts +433 -0
- package/core/utils/useragent.d.ts +33 -0
- package/core/utils/useragent.ts +135 -0
- package/core/utils/xml.d.ts +52 -0
- package/core/utils/{xml.js → xml.ts} +26 -36
- package/core/utils.d.ts +217 -0
- package/core/utils.ts +428 -0
- package/core/variable_map.d.ts +141 -0
- package/core/{variable_map.js → variable_map.ts} +131 -149
- package/core/variable_model.d.ts +40 -0
- package/core/variable_model.ts +82 -0
- package/core/variables.d.ts +181 -0
- package/core/{variables.js → variables.ts} +206 -188
- package/core/variables_dynamic.d.ts +38 -0
- package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
- package/core/warning.d.ts +50 -0
- package/core/{warning.js → warning.ts} +52 -66
- package/core/widgetdiv.d.ts +69 -0
- package/core/widgetdiv.ts +257 -0
- package/core/workspace.d.ts +386 -0
- package/core/workspace.ts +801 -0
- package/core/workspace_audio.d.ts +47 -0
- package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
- package/core/workspace_comment.d.ts +170 -0
- package/core/workspace_comment.ts +398 -0
- package/core/workspace_comment_svg.d.ts +329 -0
- package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
- package/core/workspace_drag_surface_svg.d.ts +68 -0
- package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
- package/core/workspace_dragger.d.ts +48 -0
- package/core/workspace_dragger.ts +104 -0
- package/core/workspace_svg.d.ts +920 -0
- package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
- package/core/xml.d.ts +117 -0
- package/core/{xml.js → xml.ts} +306 -326
- package/core/zoom_controls.d.ts +130 -0
- package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
- package/core.d.ts +1 -3
- package/core.js +1 -2
- package/dart.d.ts +0 -3
- package/dart_compressed.js +387 -99
- package/dart_compressed.js.map +1 -1
- package/generators/dart/all.js +2 -0
- package/generators/dart/colour.js +1 -1
- package/generators/dart/lists.js +1 -1
- package/generators/dart/logic.js +1 -1
- package/generators/dart/loops.js +1 -1
- package/generators/dart/math.js +1 -1
- package/generators/dart/procedures.js +1 -1
- package/generators/dart/text.js +1 -1
- package/generators/dart/variables.js +1 -1
- package/generators/dart/variables_dynamic.js +1 -1
- package/generators/dart.js +1 -2
- package/generators/javascript/all.js +2 -0
- package/generators/javascript/colour.js +1 -1
- package/generators/javascript/lists.js +1 -1
- package/generators/javascript/logic.js +1 -1
- package/generators/javascript/loops.js +1 -1
- package/generators/javascript/math.js +4 -4
- package/generators/javascript/procedures.js +1 -1
- package/generators/javascript/text.js +2 -2
- package/generators/javascript/variables.js +1 -1
- package/generators/javascript/variables_dynamic.js +1 -1
- package/generators/javascript.js +1 -3
- package/generators/lua/all.js +2 -0
- package/generators/lua/colour.js +1 -1
- package/generators/lua/lists.js +1 -1
- package/generators/lua/logic.js +1 -1
- package/generators/lua/loops.js +1 -1
- package/generators/lua/math.js +1 -1
- package/generators/lua/procedures.js +1 -1
- package/generators/lua/text.js +1 -1
- package/generators/lua/variables.js +1 -1
- package/generators/lua/variables_dynamic.js +1 -1
- package/generators/lua.js +1 -2
- package/generators/php/all.js +2 -0
- package/generators/php/colour.js +1 -1
- package/generators/php/lists.js +1 -2
- package/generators/php/logic.js +1 -1
- package/generators/php/loops.js +1 -1
- package/generators/php/math.js +1 -1
- package/generators/php/procedures.js +1 -1
- package/generators/php/text.js +1 -1
- package/generators/php/variables.js +1 -1
- package/generators/php/variables_dynamic.js +1 -1
- package/generators/php.js +1 -2
- package/generators/python/all.js +2 -0
- package/generators/python/colour.js +3 -3
- package/generators/python/lists.js +1 -1
- package/generators/python/logic.js +1 -1
- package/generators/python/loops.js +4 -7
- package/generators/python/math.js +1 -1
- package/generators/python/procedures.js +1 -1
- package/generators/python/text.js +1 -1
- package/generators/python/variables.js +1 -1
- package/generators/python/variables_dynamic.js +1 -1
- package/generators/python.js +1 -2
- package/index.d.ts +2 -8
- package/javascript.d.ts +0 -3
- package/javascript_compressed.js +314 -104
- package/javascript_compressed.js.map +1 -1
- package/lua.d.ts +0 -3
- package/lua_compressed.js +399 -81
- package/lua_compressed.js.map +1 -1
- package/msg/ab.js +421 -421
- package/msg/ace.js +421 -421
- package/msg/af.js +421 -421
- package/msg/am.js +421 -421
- package/msg/ar.js +421 -421
- package/msg/ast.js +421 -421
- package/msg/az.js +421 -421
- package/msg/ba.js +421 -421
- package/msg/bcc.js +421 -421
- package/msg/be-tarask.js +421 -421
- package/msg/be.js +421 -421
- package/msg/bg.js +421 -421
- package/msg/bn.js +421 -421
- package/msg/br.js +421 -421
- package/msg/bs.js +421 -421
- package/msg/ca.js +421 -421
- package/msg/cdo.js +421 -421
- package/msg/cs.js +421 -421
- package/msg/da.js +421 -421
- package/msg/de.js +421 -421
- package/msg/diq.js +421 -421
- package/msg/dty.js +421 -421
- package/msg/ee.js +421 -421
- package/msg/el.js +421 -421
- package/msg/en-gb.js +421 -421
- package/msg/en.js +421 -421
- package/msg/eo.js +421 -421
- package/msg/es.js +421 -421
- package/msg/et.js +421 -421
- package/msg/eu.js +421 -421
- package/msg/fa.js +421 -421
- package/msg/fi.js +421 -421
- package/msg/fo.js +421 -421
- package/msg/fr.js +421 -421
- package/msg/frr.js +421 -421
- package/msg/gl.js +421 -421
- package/msg/gn.js +421 -421
- package/msg/gor.js +421 -421
- package/msg/ha.js +421 -421
- package/msg/hak.js +421 -421
- package/msg/he.js +421 -421
- package/msg/hi.js +421 -421
- package/msg/hr.js +421 -421
- package/msg/hrx.js +421 -421
- package/msg/hu.js +421 -421
- package/msg/hy.js +421 -421
- package/msg/ia.js +421 -421
- package/msg/id.js +421 -421
- package/msg/ig.js +421 -421
- package/msg/inh.js +421 -421
- package/msg/is.js +421 -421
- package/msg/it.js +421 -421
- package/msg/ja.js +421 -421
- package/msg/ka.js +421 -421
- package/msg/kab.js +421 -421
- package/msg/kbd-cyrl.js +421 -421
- package/msg/km.js +421 -421
- package/msg/kn.js +421 -421
- package/msg/ko.js +421 -421
- package/msg/ksh.js +421 -421
- package/msg/ku-latn.js +421 -421
- package/msg/ky.js +421 -421
- package/msg/la.js +421 -421
- package/msg/lb.js +421 -421
- package/msg/lki.js +421 -421
- package/msg/lo.js +421 -421
- package/msg/lrc.js +421 -421
- package/msg/lt.js +421 -421
- package/msg/lv.js +421 -421
- package/msg/mg.js +421 -421
- package/msg/mk.js +421 -421
- package/msg/ml.js +421 -421
- package/msg/mnw.js +421 -421
- package/msg/ms.js +421 -421
- package/msg/my.js +421 -421
- package/msg/mzn.js +421 -421
- package/msg/nb.js +421 -421
- package/msg/ne.js +421 -421
- package/msg/nl.js +421 -421
- package/msg/oc.js +421 -421
- package/msg/olo.js +421 -421
- package/msg/pa.js +421 -421
- package/msg/pl.js +421 -421
- package/msg/pms.js +421 -421
- package/msg/ps.js +421 -421
- package/msg/pt-br.js +421 -421
- package/msg/pt.js +421 -421
- package/msg/ro.js +421 -421
- package/msg/ru.js +421 -421
- package/msg/sc.js +421 -421
- package/msg/sco.js +421 -421
- package/msg/sd.js +421 -421
- package/msg/shn.js +421 -421
- package/msg/si.js +421 -421
- package/msg/sk.js +421 -421
- package/msg/skr-arab.js +421 -421
- package/msg/sl.js +421 -421
- package/msg/smn.js +421 -421
- package/msg/sq.js +421 -421
- package/msg/sr-latn.js +421 -421
- package/msg/sr.js +421 -421
- package/msg/sv.js +421 -421
- package/msg/sw.js +421 -421
- package/msg/ta.js +421 -421
- package/msg/tcy.js +421 -421
- package/msg/te.js +421 -421
- package/msg/th.js +421 -421
- package/msg/ti.js +421 -421
- package/msg/tl.js +421 -421
- package/msg/tlh.js +421 -421
- package/msg/tr.js +421 -421
- package/msg/ug-arab.js +421 -421
- package/msg/uk.js +421 -421
- package/msg/ur.js +421 -421
- package/msg/uz.js +421 -421
- package/msg/vi.js +421 -421
- package/msg/xmf.js +421 -421
- package/msg/yo.js +421 -421
- package/msg/yue.js +421 -421
- package/msg/zgh.js +421 -421
- package/msg/zh-hans.js +421 -421
- package/msg/zh-hant.js +421 -421
- package/package.json +5 -5
- package/php.d.ts +0 -3
- package/php_compressed.js +322 -93
- package/php_compressed.js.map +1 -1
- package/python.d.ts +0 -3
- package/python_compressed.js +237 -90
- package/python_compressed.js.map +1 -1
- package/blockly.d.ts +0 -26127
- package/core/blockly_options.js +0 -28
- package/core/bubble_dragger.js +0 -298
- package/core/clipboard.js +0 -80
- package/core/component_manager.js +0 -263
- package/core/contextmenu_items.js +0 -651
- package/core/contextmenu_registry.js +0 -178
- package/core/delete_area.js +0 -87
- package/core/dialog.js +0 -107
- package/core/drag_target.js +0 -98
- package/core/events/events.js +0 -147
- package/core/events/events_abstract.js +0 -133
- package/core/events/events_block_base.js +0 -70
- package/core/events/events_block_drag.js +0 -89
- package/core/events/events_bubble_open.js +0 -90
- package/core/events/events_comment_base.js +0 -121
- package/core/events/events_marker_move.js +0 -110
- package/core/events/events_selected.js +0 -83
- package/core/events/events_toolbox_item_select.js +0 -84
- package/core/events/events_trashcan_open.js +0 -73
- package/core/events/events_var_base.js +0 -70
- package/core/events/events_viewport.js +0 -107
- package/core/events/workspace_events.js +0 -93
- package/core/field_angle.js +0 -591
- package/core/field_checkbox.js +0 -255
- package/core/field_colour.js +0 -717
- package/core/field_image.js +0 -304
- package/core/field_label.js +0 -149
- package/core/field_label_serializable.js +0 -80
- package/core/field_textinput.js +0 -619
- package/core/flyout_button.js +0 -356
- package/core/grid.js +0 -226
- package/core/icon.js +0 -225
- package/core/input.js +0 -335
- package/core/interfaces/i_ast_node_location_svg.js +0 -45
- package/core/interfaces/i_ast_node_location_with_block.js +0 -41
- package/core/interfaces/i_autohideable.js +0 -40
- package/core/interfaces/i_block_dragger.js +0 -66
- package/core/interfaces/i_bounded_element.js +0 -45
- package/core/interfaces/i_bubble.js +0 -95
- package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
- package/core/interfaces/i_connection_checker.js +0 -104
- package/core/interfaces/i_contextmenu.js +0 -32
- package/core/interfaces/i_copyable.js +0 -49
- package/core/interfaces/i_delete_area.js +0 -50
- package/core/interfaces/i_drag_target.js +0 -88
- package/core/interfaces/i_flyout.js +0 -201
- package/core/interfaces/i_keyboard_accessible.js +0 -38
- package/core/interfaces/i_metrics_manager.js +0 -154
- package/core/interfaces/i_positionable.js +0 -51
- package/core/interfaces/i_selectable.js +0 -51
- package/core/interfaces/i_selectable_toolbox_item.js +0 -73
- package/core/interfaces/i_serializer.js +0 -77
- package/core/interfaces/i_styleable.js +0 -39
- package/core/interfaces/i_toolbox.js +0 -142
- package/core/interfaces/i_toolbox_item.js +0 -85
- package/core/marker_manager.js +0 -213
- package/core/menuitem.js +0 -292
- package/core/names.js +0 -293
- package/core/registry.js +0 -384
- package/core/renderers/common/block_rendering.js +0 -170
- package/core/renderers/common/constants.js +0 -1250
- package/core/renderers/common/i_path_object.js +0 -162
- package/core/renderers/common/marker_svg.js +0 -721
- package/core/renderers/common/path_object.js +0 -283
- package/core/renderers/common/renderer.js +0 -305
- package/core/renderers/geras/constants.js +0 -73
- package/core/renderers/geras/geras.js +0 -36
- package/core/renderers/geras/measurables/inline_input.js +0 -58
- package/core/renderers/geras/measurables/statement_input.js +0 -57
- package/core/renderers/geras/renderer.js +0 -149
- package/core/renderers/measurables/base.js +0 -64
- package/core/renderers/measurables/bottom_row.js +0 -138
- package/core/renderers/measurables/connection.js +0 -56
- package/core/renderers/measurables/external_value_input.js +0 -70
- package/core/renderers/measurables/field.js +0 -71
- package/core/renderers/measurables/in_row_spacer.js +0 -47
- package/core/renderers/measurables/input_connection.js +0 -75
- package/core/renderers/measurables/next_connection.js +0 -50
- package/core/renderers/measurables/output_connection.js +0 -61
- package/core/renderers/measurables/previous_connection.js +0 -50
- package/core/renderers/measurables/round_corner.js +0 -52
- package/core/renderers/measurables/row.js +0 -247
- package/core/renderers/measurables/spacer_row.js +0 -69
- package/core/renderers/measurables/square_corner.js +0 -50
- package/core/renderers/measurables/top_row.js +0 -143
- package/core/renderers/measurables/types.js +0 -353
- package/core/renderers/minimalist/drawer.js +0 -42
- package/core/renderers/minimalist/info.js +0 -54
- package/core/renderers/minimalist/minimalist.js +0 -26
- package/core/renderers/minimalist/renderer.js +0 -80
- package/core/renderers/thrasos/renderer.js +0 -53
- package/core/renderers/thrasos/thrasos.js +0 -22
- package/core/renderers/zelos/marker_svg.js +0 -179
- package/core/renderers/zelos/measurables/bottom_row.js +0 -66
- package/core/renderers/zelos/measurables/row_elements.js +0 -46
- package/core/renderers/zelos/path_object.js +0 -247
- package/core/renderers/zelos/renderer.js +0 -147
- package/core/renderers/zelos/zelos.js +0 -38
- package/core/serialization/exceptions.js +0 -144
- package/core/shortcut_registry.js +0 -366
- package/core/theme/themes.js +0 -23
- package/core/theme.js +0 -228
- package/core/theme_manager.js +0 -211
- package/core/toolbox/category.js +0 -751
- package/core/toolbox/collapsible_category.js +0 -311
- package/core/toolbox/separator.js +0 -133
- package/core/toolbox/toolbox_item.js +0 -173
- package/core/touch.js +0 -285
- package/core/utils/coordinate.js +0 -138
- package/core/utils/global.js +0 -41
- package/core/utils/keycodes.js +0 -172
- package/core/utils/metrics.js +0 -154
- package/core/utils/svg.js +0 -186
- package/core/utils/toolbox.js +0 -459
- package/core/utils/useragent.js +0 -197
- package/core/utils.js +0 -383
- package/core/variable_model.js +0 -96
- package/core/widgetdiv.js +0 -290
- package/core/workspace.js +0 -836
- package/core/workspace_comment.js +0 -400
- package/core/workspace_dragger.js +0 -115
|
@@ -0,0 +1,132 @@
|
|
|
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 type { Field } from '../measurables/field.js';
|
|
8
|
+
import type { Icon } from '../measurables/icon.js';
|
|
9
|
+
import type { InlineInput } from '../measurables/inline_input.js';
|
|
10
|
+
import type { Row } from '../measurables/row.js';
|
|
11
|
+
import type { ConstantProvider } from './constants.js';
|
|
12
|
+
import type { RenderInfo } from './info.js';
|
|
13
|
+
/**
|
|
14
|
+
* An object that draws a block based on the given rendering information.
|
|
15
|
+
* @alias Blockly.blockRendering.Drawer
|
|
16
|
+
*/
|
|
17
|
+
export declare class Drawer {
|
|
18
|
+
block_: any;
|
|
19
|
+
info_: any;
|
|
20
|
+
topLeft_: any;
|
|
21
|
+
outlinePath_: string;
|
|
22
|
+
inlinePath_: string;
|
|
23
|
+
protected constants_: ConstantProvider;
|
|
24
|
+
/**
|
|
25
|
+
* @param block The block to render.
|
|
26
|
+
* @param info An object containing all information needed to render this
|
|
27
|
+
* block.
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
constructor(block: BlockSvg, info: RenderInfo);
|
|
31
|
+
/**
|
|
32
|
+
* Draw the block to the workspace. Here "drawing" means setting SVG path
|
|
33
|
+
* elements and moving fields, icons, and connections on the screen.
|
|
34
|
+
*
|
|
35
|
+
* The pieces of the paths are pushed into arrays of "steps", which are then
|
|
36
|
+
* joined with spaces and set directly on the block. This guarantees that
|
|
37
|
+
* the steps are separated by spaces for improved readability, but isn't
|
|
38
|
+
* required.
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
draw(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Save sizing information back to the block
|
|
44
|
+
* Most of the rendering information can be thrown away at the end of the
|
|
45
|
+
* render. Anything that needs to be kept around should be set in this
|
|
46
|
+
* function.
|
|
47
|
+
*/
|
|
48
|
+
protected recordSizeOnBlock_(): void;
|
|
49
|
+
/** Hide icons that were marked as hidden. */
|
|
50
|
+
protected hideHiddenIcons_(): void;
|
|
51
|
+
/** Create the outline of the block. This is a single continuous path. */
|
|
52
|
+
protected drawOutline_(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Add steps for the top corner of the block, taking into account
|
|
55
|
+
* details such as hats and rounded corners.
|
|
56
|
+
*/
|
|
57
|
+
protected drawTop_(): void;
|
|
58
|
+
/**
|
|
59
|
+
* Add steps for the jagged edge of a row on a collapsed block.
|
|
60
|
+
* @param row The row to draw the side of.
|
|
61
|
+
*/
|
|
62
|
+
protected drawJaggedEdge_(row: Row): void;
|
|
63
|
+
/**
|
|
64
|
+
* Add steps for an external value input, rendered as a notch in the side
|
|
65
|
+
* of the block.
|
|
66
|
+
* @param row The row that this input belongs to.
|
|
67
|
+
*/
|
|
68
|
+
protected drawValueInput_(row: Row): void;
|
|
69
|
+
/**
|
|
70
|
+
* Add steps for a statement input.
|
|
71
|
+
* @param row The row that this input belongs to.
|
|
72
|
+
*/
|
|
73
|
+
protected drawStatementInput_(row: Row): void;
|
|
74
|
+
/**
|
|
75
|
+
* Add steps for the right side of a row that does not have value or
|
|
76
|
+
* statement input connections.
|
|
77
|
+
* @param row The row to draw the side of.
|
|
78
|
+
*/
|
|
79
|
+
protected drawRightSideRow_(row: Row): void;
|
|
80
|
+
/**
|
|
81
|
+
* Add steps for the bottom edge of a block, possibly including a notch
|
|
82
|
+
* for the next connection.
|
|
83
|
+
*/
|
|
84
|
+
protected drawBottom_(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Add steps for the left side of the block, which may include an output
|
|
87
|
+
* connection
|
|
88
|
+
*/
|
|
89
|
+
protected drawLeft_(): void;
|
|
90
|
+
/**
|
|
91
|
+
* Draw the internals of the block: inline inputs, fields, and icons. These
|
|
92
|
+
* do not depend on the outer path for placement.
|
|
93
|
+
*/
|
|
94
|
+
protected drawInternals_(): void;
|
|
95
|
+
/**
|
|
96
|
+
* Push a field or icon's new position to its SVG root.
|
|
97
|
+
* @param fieldInfo The rendering information for the field or icon.
|
|
98
|
+
*/
|
|
99
|
+
protected layoutField_(fieldInfo: Icon | Field): void;
|
|
100
|
+
/**
|
|
101
|
+
* Add steps for an inline input.
|
|
102
|
+
* @param input The information about the input to render.
|
|
103
|
+
*/
|
|
104
|
+
protected drawInlineInput_(input: InlineInput): void;
|
|
105
|
+
/**
|
|
106
|
+
* Position the connection on an inline value input, taking into account
|
|
107
|
+
* RTL and the small gap between the parent block and child block which lets
|
|
108
|
+
* the parent block's dark path show through.
|
|
109
|
+
* @param input The information about the input that the connection is on.
|
|
110
|
+
*/
|
|
111
|
+
protected positionInlineInputConnection_(input: InlineInput): void;
|
|
112
|
+
/**
|
|
113
|
+
* Position the connection on a statement input, taking into account
|
|
114
|
+
* RTL and the small gap between the parent block and child block which lets
|
|
115
|
+
* the parent block's dark path show through.
|
|
116
|
+
* @param row The row that the connection is on.
|
|
117
|
+
*/
|
|
118
|
+
protected positionStatementInputConnection_(row: Row): void;
|
|
119
|
+
/**
|
|
120
|
+
* Position the connection on an external value input, taking into account
|
|
121
|
+
* RTL and the small gap between the parent block and child block which lets
|
|
122
|
+
* the parent block's dark path show through.
|
|
123
|
+
* @param row The row that the connection is on.
|
|
124
|
+
*/
|
|
125
|
+
protected positionExternalValueConnection_(row: Row): void;
|
|
126
|
+
/** Position the previous connection on a block. */
|
|
127
|
+
protected positionPreviousConnection_(): void;
|
|
128
|
+
/** Position the next connection on a block. */
|
|
129
|
+
protected positionNextConnection_(): void;
|
|
130
|
+
/** Position the output connection on a block. */
|
|
131
|
+
protected positionOutputConnection_(): void;
|
|
132
|
+
}
|
|
@@ -7,59 +7,54 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview Methods for graphically rendering a block as SVG.
|
|
9
9
|
*/
|
|
10
|
-
'use strict';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Methods for graphically rendering a block as SVG.
|
|
14
13
|
* @class
|
|
15
14
|
*/
|
|
16
|
-
goog
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
/* eslint-disable-next-line no-unused-vars */
|
|
34
|
-
const {RenderInfo} = goog.requireType('Blockly.blockRendering.RenderInfo');
|
|
35
|
-
/* eslint-disable-next-line no-unused-vars */
|
|
36
|
-
const {Row} = goog.requireType('Blockly.blockRendering.Row');
|
|
37
|
-
const {Types} = goog.require('Blockly.blockRendering.Types');
|
|
15
|
+
import * as goog from '../../../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.blockRendering.Drawer');
|
|
17
|
+
|
|
18
|
+
import type {BlockSvg} from '../../block_svg.js';
|
|
19
|
+
import * as svgPaths from '../../utils/svg_paths.js';
|
|
20
|
+
import {Connection} from '../measurables/connection.js';
|
|
21
|
+
import type {ExternalValueInput} from '../measurables/external_value_input.js';
|
|
22
|
+
import type {Field} from '../measurables/field.js';
|
|
23
|
+
import type {Icon} from '../measurables/icon.js';
|
|
24
|
+
import type {InlineInput} from '../measurables/inline_input.js';
|
|
25
|
+
import type {PreviousConnection} from '../measurables/previous_connection.js';
|
|
26
|
+
import type {Row} from '../measurables/row.js';
|
|
27
|
+
import {Types} from '../measurables/types.js';
|
|
28
|
+
|
|
29
|
+
import type {ConstantProvider, Notch, PuzzleTab} from './constants.js';
|
|
30
|
+
import * as debug from './debug.js';
|
|
31
|
+
import type {RenderInfo} from './info.js';
|
|
38
32
|
|
|
39
33
|
|
|
40
34
|
/**
|
|
41
35
|
* An object that draws a block based on the given rendering information.
|
|
42
36
|
* @alias Blockly.blockRendering.Drawer
|
|
43
37
|
*/
|
|
44
|
-
class Drawer {
|
|
38
|
+
export class Drawer {
|
|
39
|
+
block_: AnyDuringMigration;
|
|
40
|
+
info_: AnyDuringMigration;
|
|
41
|
+
topLeft_: AnyDuringMigration;
|
|
42
|
+
outlinePath_ = '';
|
|
43
|
+
inlinePath_ = '';
|
|
44
|
+
protected constants_: ConstantProvider;
|
|
45
|
+
|
|
45
46
|
/**
|
|
46
|
-
* @param
|
|
47
|
-
* @param
|
|
48
|
-
*
|
|
49
|
-
* @
|
|
47
|
+
* @param block The block to render.
|
|
48
|
+
* @param info An object containing all information needed to render this
|
|
49
|
+
* block.
|
|
50
|
+
* @internal
|
|
50
51
|
*/
|
|
51
|
-
constructor(block, info) {
|
|
52
|
+
constructor(block: BlockSvg, info: RenderInfo) {
|
|
52
53
|
this.block_ = block;
|
|
53
54
|
this.info_ = info;
|
|
54
55
|
this.topLeft_ = block.getRelativeToSurfaceXY();
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* The renderer's constant provider.
|
|
60
|
-
* @type {!ConstantProvider}
|
|
61
|
-
* @protected
|
|
62
|
-
*/
|
|
56
|
+
|
|
57
|
+
/** The renderer's constant provider. */
|
|
63
58
|
this.constants_ = info.getRenderer().getConstants();
|
|
64
59
|
}
|
|
65
60
|
|
|
@@ -71,7 +66,7 @@ class Drawer {
|
|
|
71
66
|
* joined with spaces and set directly on the block. This guarantees that
|
|
72
67
|
* the steps are separated by spaces for improved readability, but isn't
|
|
73
68
|
* required.
|
|
74
|
-
* @
|
|
69
|
+
* @internal
|
|
75
70
|
*/
|
|
76
71
|
draw() {
|
|
77
72
|
this.hideHiddenIcons_();
|
|
@@ -93,30 +88,23 @@ class Drawer {
|
|
|
93
88
|
* Most of the rendering information can be thrown away at the end of the
|
|
94
89
|
* render. Anything that needs to be kept around should be set in this
|
|
95
90
|
* function.
|
|
96
|
-
* @protected
|
|
97
91
|
*/
|
|
98
|
-
recordSizeOnBlock_() {
|
|
92
|
+
protected recordSizeOnBlock_() {
|
|
99
93
|
// This is used when the block is reporting its size to anyone else.
|
|
100
94
|
// The dark path adds to the size of the block in both X and Y.
|
|
101
95
|
this.block_.height = this.info_.height;
|
|
102
96
|
this.block_.width = this.info_.widthWithChildren;
|
|
103
97
|
}
|
|
104
98
|
|
|
105
|
-
/**
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
*/
|
|
109
|
-
hideHiddenIcons_() {
|
|
110
|
-
for (let i = 0, iconInfo; (iconInfo = this.info_.hiddenIcons[i]); i++) {
|
|
99
|
+
/** Hide icons that were marked as hidden. */
|
|
100
|
+
protected hideHiddenIcons_() {
|
|
101
|
+
for (let i = 0, iconInfo; iconInfo = this.info_.hiddenIcons[i]; i++) {
|
|
111
102
|
iconInfo.icon.iconGroup_.setAttribute('display', 'none');
|
|
112
103
|
}
|
|
113
104
|
}
|
|
114
105
|
|
|
115
|
-
/**
|
|
116
|
-
|
|
117
|
-
* @protected
|
|
118
|
-
*/
|
|
119
|
-
drawOutline_() {
|
|
106
|
+
/** Create the outline of the block. This is a single continuous path. */
|
|
107
|
+
protected drawOutline_() {
|
|
120
108
|
this.drawTop_();
|
|
121
109
|
for (let r = 1; r < this.info_.rows.length - 1; r++) {
|
|
122
110
|
const row = this.info_.rows[r];
|
|
@@ -137,38 +125,39 @@ class Drawer {
|
|
|
137
125
|
/**
|
|
138
126
|
* Add steps for the top corner of the block, taking into account
|
|
139
127
|
* details such as hats and rounded corners.
|
|
140
|
-
* @protected
|
|
141
128
|
*/
|
|
142
|
-
drawTop_() {
|
|
129
|
+
protected drawTop_() {
|
|
143
130
|
const topRow = this.info_.topRow;
|
|
144
131
|
const elements = topRow.elements;
|
|
145
132
|
|
|
146
133
|
this.positionPreviousConnection_();
|
|
147
134
|
this.outlinePath_ += svgPaths.moveBy(topRow.xPos, this.info_.startY);
|
|
148
|
-
for (let i = 0, elem;
|
|
135
|
+
for (let i = 0, elem; elem = elements[i]; i++) {
|
|
149
136
|
if (Types.isLeftRoundedCorner(elem)) {
|
|
150
137
|
this.outlinePath_ += this.constants_.OUTSIDE_CORNERS.topLeft;
|
|
151
138
|
} else if (Types.isRightRoundedCorner(elem)) {
|
|
152
139
|
this.outlinePath_ += this.constants_.OUTSIDE_CORNERS.topRight;
|
|
153
140
|
} else if (
|
|
154
141
|
Types.isPreviousConnection(elem) && elem instanceof Connection) {
|
|
155
|
-
this.outlinePath_ +=
|
|
156
|
-
|
|
142
|
+
this.outlinePath_ +=
|
|
143
|
+
((elem as PreviousConnection).shape as Notch).pathLeft;
|
|
144
|
+
// AnyDuringMigration because: Property 'isHat' does not exist on type
|
|
145
|
+
// 'typeof Types'.
|
|
146
|
+
} else if ((Types as AnyDuringMigration).isHat(elem)) {
|
|
157
147
|
this.outlinePath_ += this.constants_.START_HAT.path;
|
|
158
148
|
} else if (Types.isSpacer(elem)) {
|
|
159
149
|
this.outlinePath_ += svgPaths.lineOnAxis('h', elem.width);
|
|
160
150
|
}
|
|
161
|
-
// No branch for a square corner, because it's a no-op.
|
|
162
151
|
}
|
|
152
|
+
// No branch for a square corner, because it's a no-op.
|
|
163
153
|
this.outlinePath_ += svgPaths.lineOnAxis('v', topRow.height);
|
|
164
154
|
}
|
|
165
155
|
|
|
166
156
|
/**
|
|
167
157
|
* Add steps for the jagged edge of a row on a collapsed block.
|
|
168
|
-
* @param
|
|
169
|
-
* @protected
|
|
158
|
+
* @param row The row to draw the side of.
|
|
170
159
|
*/
|
|
171
|
-
drawJaggedEdge_(row) {
|
|
160
|
+
protected drawJaggedEdge_(row: Row) {
|
|
172
161
|
const remainder = row.height - this.constants_.JAGGED_TEETH.height;
|
|
173
162
|
this.outlinePath_ +=
|
|
174
163
|
this.constants_.JAGGED_TEETH.path + svgPaths.lineOnAxis('v', remainder);
|
|
@@ -177,17 +166,21 @@ class Drawer {
|
|
|
177
166
|
/**
|
|
178
167
|
* Add steps for an external value input, rendered as a notch in the side
|
|
179
168
|
* of the block.
|
|
180
|
-
* @param
|
|
181
|
-
* @protected
|
|
169
|
+
* @param row The row that this input belongs to.
|
|
182
170
|
*/
|
|
183
|
-
drawValueInput_(row) {
|
|
184
|
-
const input =
|
|
185
|
-
/** @type {ExternalValueInput|InlineInput} */ (row.getLastInput());
|
|
171
|
+
protected drawValueInput_(row: Row) {
|
|
172
|
+
const input = row.getLastInput() as ExternalValueInput | InlineInput;
|
|
186
173
|
this.positionExternalValueConnection_(row);
|
|
187
174
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
175
|
+
// AnyDuringMigration because: Property 'pathDown' does not exist on type
|
|
176
|
+
// 'Shape'. AnyDuringMigration because: Property 'pathDown' does not exist
|
|
177
|
+
// on type 'Shape'. AnyDuringMigration because: Property 'pathDown' does
|
|
178
|
+
// not exist on type 'Shape'.
|
|
179
|
+
const pathDown =
|
|
180
|
+
typeof (input.shape as AnyDuringMigration).pathDown === 'function' ?
|
|
181
|
+
((input.shape as AnyDuringMigration).pathDown as (p1: number) =>
|
|
182
|
+
AnyDuringMigration)(input.height) :
|
|
183
|
+
(input.shape as AnyDuringMigration).pathDown;
|
|
191
184
|
|
|
192
185
|
this.outlinePath_ += svgPaths.lineOnAxis('H', input.xPos + input.width) +
|
|
193
186
|
pathDown +
|
|
@@ -196,21 +189,19 @@ class Drawer {
|
|
|
196
189
|
|
|
197
190
|
/**
|
|
198
191
|
* Add steps for a statement input.
|
|
199
|
-
* @param
|
|
200
|
-
* @protected
|
|
192
|
+
* @param row The row that this input belongs to.
|
|
201
193
|
*/
|
|
202
|
-
drawStatementInput_(row) {
|
|
194
|
+
protected drawStatementInput_(row: Row) {
|
|
203
195
|
const input = row.getLastInput();
|
|
204
196
|
// Where to start drawing the notch, which is on the right side in LTR.
|
|
205
|
-
const x = input.xPos + input.notchOffset + input.shape.width;
|
|
197
|
+
const x = input.xPos + input.notchOffset + (input.shape as Notch).width;
|
|
206
198
|
|
|
207
|
-
const innerTopLeftCorner = input.shape.pathRight +
|
|
199
|
+
const innerTopLeftCorner = (input.shape as Notch).pathRight +
|
|
208
200
|
svgPaths.lineOnAxis(
|
|
209
201
|
'h', -(input.notchOffset - this.constants_.INSIDE_CORNERS.width)) +
|
|
210
202
|
this.constants_.INSIDE_CORNERS.pathTop;
|
|
211
203
|
|
|
212
|
-
const innerHeight =
|
|
213
|
-
row.height - (2 * this.constants_.INSIDE_CORNERS.height);
|
|
204
|
+
const innerHeight = row.height - 2 * this.constants_.INSIDE_CORNERS.height;
|
|
214
205
|
|
|
215
206
|
this.outlinePath_ += svgPaths.lineOnAxis('H', x) + innerTopLeftCorner +
|
|
216
207
|
svgPaths.lineOnAxis('v', innerHeight) +
|
|
@@ -223,28 +214,26 @@ class Drawer {
|
|
|
223
214
|
/**
|
|
224
215
|
* Add steps for the right side of a row that does not have value or
|
|
225
216
|
* statement input connections.
|
|
226
|
-
* @param
|
|
227
|
-
* @protected
|
|
217
|
+
* @param row The row to draw the side of.
|
|
228
218
|
*/
|
|
229
|
-
drawRightSideRow_(row) {
|
|
219
|
+
protected drawRightSideRow_(row: Row) {
|
|
230
220
|
this.outlinePath_ += svgPaths.lineOnAxis('V', row.yPos + row.height);
|
|
231
221
|
}
|
|
232
222
|
|
|
233
223
|
/**
|
|
234
224
|
* Add steps for the bottom edge of a block, possibly including a notch
|
|
235
225
|
* for the next connection.
|
|
236
|
-
* @protected
|
|
237
226
|
*/
|
|
238
|
-
drawBottom_() {
|
|
227
|
+
protected drawBottom_() {
|
|
239
228
|
const bottomRow = this.info_.bottomRow;
|
|
240
229
|
const elems = bottomRow.elements;
|
|
241
230
|
this.positionNextConnection_();
|
|
242
231
|
|
|
243
232
|
let rightCornerYOffset = 0;
|
|
244
233
|
let outlinePath = '';
|
|
245
|
-
for (let i = elems.length - 1, elem;
|
|
234
|
+
for (let i = elems.length - 1, elem; elem = elems[i]; i--) {
|
|
246
235
|
if (Types.isNextConnection(elem) && elem instanceof Connection) {
|
|
247
|
-
outlinePath += elem.shape.pathRight;
|
|
236
|
+
outlinePath += (elem.shape as Notch).pathRight;
|
|
248
237
|
} else if (Types.isLeftSquareCorner(elem)) {
|
|
249
238
|
outlinePath += svgPaths.lineOnAxis('H', bottomRow.xPos);
|
|
250
239
|
} else if (Types.isLeftRoundedCorner(elem)) {
|
|
@@ -265,17 +254,17 @@ class Drawer {
|
|
|
265
254
|
/**
|
|
266
255
|
* Add steps for the left side of the block, which may include an output
|
|
267
256
|
* connection
|
|
268
|
-
* @protected
|
|
269
257
|
*/
|
|
270
|
-
drawLeft_() {
|
|
258
|
+
protected drawLeft_() {
|
|
271
259
|
const outputConnection = this.info_.outputConnection;
|
|
272
260
|
this.positionOutputConnection_();
|
|
273
261
|
|
|
274
262
|
if (outputConnection) {
|
|
275
263
|
const tabBottom =
|
|
276
264
|
outputConnection.connectionOffsetY + outputConnection.height;
|
|
277
|
-
const pathUp =
|
|
278
|
-
outputConnection.shape.pathUp(
|
|
265
|
+
const pathUp = typeof outputConnection.shape.pathUp === 'function' ?
|
|
266
|
+
(outputConnection.shape.pathUp as (p1: number) =>
|
|
267
|
+
AnyDuringMigration)(outputConnection.height) :
|
|
279
268
|
outputConnection.shape.pathUp;
|
|
280
269
|
|
|
281
270
|
// Draw a line up to the bottom of the tab.
|
|
@@ -289,18 +278,14 @@ class Drawer {
|
|
|
289
278
|
/**
|
|
290
279
|
* Draw the internals of the block: inline inputs, fields, and icons. These
|
|
291
280
|
* do not depend on the outer path for placement.
|
|
292
|
-
* @protected
|
|
293
281
|
*/
|
|
294
|
-
drawInternals_() {
|
|
295
|
-
for (let i = 0, row;
|
|
296
|
-
for (let j = 0, elem;
|
|
282
|
+
protected drawInternals_() {
|
|
283
|
+
for (let i = 0, row; row = this.info_.rows[i]; i++) {
|
|
284
|
+
for (let j = 0, elem; elem = row.elements[j]; j++) {
|
|
297
285
|
if (Types.isInlineInput(elem)) {
|
|
298
|
-
this.drawInlineInput_(
|
|
299
|
-
/** @type {!InlineInput} */ (elem));
|
|
286
|
+
this.drawInlineInput_(elem as InlineInput);
|
|
300
287
|
} else if (Types.isIcon(elem) || Types.isField(elem)) {
|
|
301
|
-
this.layoutField_(
|
|
302
|
-
/** @type {!Field|!Icon} */
|
|
303
|
-
(elem));
|
|
288
|
+
this.layoutField_(elem as Field | Icon);
|
|
304
289
|
}
|
|
305
290
|
}
|
|
306
291
|
}
|
|
@@ -308,16 +293,18 @@ class Drawer {
|
|
|
308
293
|
|
|
309
294
|
/**
|
|
310
295
|
* Push a field or icon's new position to its SVG root.
|
|
311
|
-
* @param
|
|
312
|
-
* The rendering information for the field or icon.
|
|
313
|
-
* @protected
|
|
296
|
+
* @param fieldInfo The rendering information for the field or icon.
|
|
314
297
|
*/
|
|
315
|
-
layoutField_(fieldInfo) {
|
|
298
|
+
protected layoutField_(fieldInfo: Icon|Field) {
|
|
316
299
|
let svgGroup;
|
|
317
300
|
if (Types.isField(fieldInfo)) {
|
|
318
|
-
|
|
301
|
+
// AnyDuringMigration because: Property 'field' does not exist on type
|
|
302
|
+
// 'Icon | Field'.
|
|
303
|
+
svgGroup = (fieldInfo as AnyDuringMigration).field.getSvgRoot();
|
|
319
304
|
} else if (Types.isIcon(fieldInfo)) {
|
|
320
|
-
|
|
305
|
+
// AnyDuringMigration because: Property 'icon' does not exist on type
|
|
306
|
+
// 'Icon | Field'.
|
|
307
|
+
svgGroup = (fieldInfo as AnyDuringMigration).icon.iconGroup_;
|
|
321
308
|
}
|
|
322
309
|
|
|
323
310
|
const yPos = fieldInfo.centerline - fieldInfo.height / 2;
|
|
@@ -325,7 +312,9 @@ class Drawer {
|
|
|
325
312
|
let scale = '';
|
|
326
313
|
if (this.info_.RTL) {
|
|
327
314
|
xPos = -(xPos + fieldInfo.width);
|
|
328
|
-
|
|
315
|
+
// AnyDuringMigration because: Property 'flipRtl' does not exist on type
|
|
316
|
+
// 'Icon | Field'.
|
|
317
|
+
if ((fieldInfo as AnyDuringMigration).flipRtl) {
|
|
329
318
|
xPos += fieldInfo.width;
|
|
330
319
|
scale = 'scale(-1 1)';
|
|
331
320
|
}
|
|
@@ -334,7 +323,9 @@ class Drawer {
|
|
|
334
323
|
svgGroup.setAttribute('display', 'block');
|
|
335
324
|
svgGroup.setAttribute(
|
|
336
325
|
'transform', 'translate(' + xPos + ',' + yPos + ')');
|
|
337
|
-
|
|
326
|
+
// AnyDuringMigration because: Property 'icon' does not exist on type
|
|
327
|
+
// 'Icon | Field'.
|
|
328
|
+
(fieldInfo as AnyDuringMigration).icon.computeIconLocation();
|
|
338
329
|
} else {
|
|
339
330
|
svgGroup.setAttribute(
|
|
340
331
|
'transform', 'translate(' + xPos + ',' + yPos + ')' + scale);
|
|
@@ -349,11 +340,9 @@ class Drawer {
|
|
|
349
340
|
|
|
350
341
|
/**
|
|
351
342
|
* Add steps for an inline input.
|
|
352
|
-
* @param
|
|
353
|
-
* input to render.
|
|
354
|
-
* @protected
|
|
343
|
+
* @param input The information about the input to render.
|
|
355
344
|
*/
|
|
356
|
-
drawInlineInput_(input) {
|
|
345
|
+
protected drawInlineInput_(input: InlineInput) {
|
|
357
346
|
const width = input.width;
|
|
358
347
|
const height = input.height;
|
|
359
348
|
const yPos = input.centerline - height / 2;
|
|
@@ -363,7 +352,8 @@ class Drawer {
|
|
|
363
352
|
const connectionRight = input.xPos + input.connectionWidth;
|
|
364
353
|
|
|
365
354
|
this.inlinePath_ += svgPaths.moveTo(connectionRight, yPos) +
|
|
366
|
-
svgPaths.lineOnAxis('v', connectionTop) +
|
|
355
|
+
svgPaths.lineOnAxis('v', connectionTop) +
|
|
356
|
+
(input.shape as PuzzleTab).pathDown +
|
|
367
357
|
svgPaths.lineOnAxis('v', height - connectionBottom) +
|
|
368
358
|
svgPaths.lineOnAxis('h', width - input.connectionWidth) +
|
|
369
359
|
svgPaths.lineOnAxis('v', -height) + 'z';
|
|
@@ -375,11 +365,9 @@ class Drawer {
|
|
|
375
365
|
* Position the connection on an inline value input, taking into account
|
|
376
366
|
* RTL and the small gap between the parent block and child block which lets
|
|
377
367
|
* the parent block's dark path show through.
|
|
378
|
-
* @param
|
|
379
|
-
* the input that the connection is on.
|
|
380
|
-
* @protected
|
|
368
|
+
* @param input The information about the input that the connection is on.
|
|
381
369
|
*/
|
|
382
|
-
positionInlineInputConnection_(input) {
|
|
370
|
+
protected positionInlineInputConnection_(input: InlineInput) {
|
|
383
371
|
const yPos = input.centerline - input.height / 2;
|
|
384
372
|
// Move the connection.
|
|
385
373
|
if (input.connectionModel) {
|
|
@@ -397,10 +385,9 @@ class Drawer {
|
|
|
397
385
|
* Position the connection on a statement input, taking into account
|
|
398
386
|
* RTL and the small gap between the parent block and child block which lets
|
|
399
387
|
* the parent block's dark path show through.
|
|
400
|
-
* @param
|
|
401
|
-
* @protected
|
|
388
|
+
* @param row The row that the connection is on.
|
|
402
389
|
*/
|
|
403
|
-
positionStatementInputConnection_(row) {
|
|
390
|
+
protected positionStatementInputConnection_(row: Row) {
|
|
404
391
|
const input = row.getLastInput();
|
|
405
392
|
if (input.connectionModel) {
|
|
406
393
|
let connX = row.xPos + row.statementEdge + input.notchOffset;
|
|
@@ -415,10 +402,9 @@ class Drawer {
|
|
|
415
402
|
* Position the connection on an external value input, taking into account
|
|
416
403
|
* RTL and the small gap between the parent block and child block which lets
|
|
417
404
|
* the parent block's dark path show through.
|
|
418
|
-
* @param
|
|
419
|
-
* @protected
|
|
405
|
+
* @param row The row that the connection is on.
|
|
420
406
|
*/
|
|
421
|
-
positionExternalValueConnection_(row) {
|
|
407
|
+
protected positionExternalValueConnection_(row: Row) {
|
|
422
408
|
const input = row.getLastInput();
|
|
423
409
|
if (input.connectionModel) {
|
|
424
410
|
let connX = row.xPos + row.width;
|
|
@@ -429,39 +415,30 @@ class Drawer {
|
|
|
429
415
|
}
|
|
430
416
|
}
|
|
431
417
|
|
|
432
|
-
/**
|
|
433
|
-
|
|
434
|
-
* @protected
|
|
435
|
-
*/
|
|
436
|
-
positionPreviousConnection_() {
|
|
418
|
+
/** Position the previous connection on a block. */
|
|
419
|
+
protected positionPreviousConnection_() {
|
|
437
420
|
const topRow = this.info_.topRow;
|
|
438
421
|
if (topRow.connection) {
|
|
439
422
|
const x = topRow.xPos + topRow.notchOffset;
|
|
440
|
-
const connX =
|
|
423
|
+
const connX = this.info_.RTL ? -x : x;
|
|
441
424
|
topRow.connection.connectionModel.setOffsetInBlock(connX, 0);
|
|
442
425
|
}
|
|
443
426
|
}
|
|
444
427
|
|
|
445
|
-
/**
|
|
446
|
-
|
|
447
|
-
* @protected
|
|
448
|
-
*/
|
|
449
|
-
positionNextConnection_() {
|
|
428
|
+
/** Position the next connection on a block. */
|
|
429
|
+
protected positionNextConnection_() {
|
|
450
430
|
const bottomRow = this.info_.bottomRow;
|
|
451
431
|
|
|
452
432
|
if (bottomRow.connection) {
|
|
453
433
|
const connInfo = bottomRow.connection;
|
|
454
434
|
const x = connInfo.xPos; // Already contains info about startX.
|
|
455
|
-
const connX =
|
|
435
|
+
const connX = this.info_.RTL ? -x : x;
|
|
456
436
|
connInfo.connectionModel.setOffsetInBlock(connX, bottomRow.baseline);
|
|
457
437
|
}
|
|
458
438
|
}
|
|
459
439
|
|
|
460
|
-
/**
|
|
461
|
-
|
|
462
|
-
* @protected
|
|
463
|
-
*/
|
|
464
|
-
positionOutputConnection_() {
|
|
440
|
+
/** Position the output connection on a block. */
|
|
441
|
+
protected positionOutputConnection_() {
|
|
465
442
|
if (this.info_.outputConnection) {
|
|
466
443
|
const x =
|
|
467
444
|
this.info_.startX + this.info_.outputConnection.connectionOffsetX;
|
|
@@ -471,5 +448,3 @@ class Drawer {
|
|
|
471
448
|
}
|
|
472
449
|
}
|
|
473
450
|
}
|
|
474
|
-
|
|
475
|
-
exports.Drawer = Drawer;
|