blockly 8.0.5 → 9.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blockly.min.js +2002 -2269
- package/blockly_compressed.js +1499 -1994
- package/blockly_compressed.js.map +1 -1
- package/blocks/blocks.js +3 -2
- package/blocks/colour.js +3 -1
- package/blocks/lists.js +94 -22
- package/blocks/logic.js +14 -6
- package/blocks/loops.js +5 -3
- package/blocks/math.js +3 -1
- package/blocks/procedures.js +3 -1
- package/blocks/text.js +14 -6
- package/blocks/variables.js +3 -1
- package/blocks/variables_dynamic.js +3 -1
- package/blocks.d.ts +0 -2
- package/blocks_compressed.js +189 -171
- package/blocks_compressed.js.map +1 -1
- package/closure/goog/base.d.ts +1 -0
- package/closure/goog/base_minimal.d.ts +18 -0
- package/closure/goog/goog.d.ts +25 -0
- package/core/any_aliases.d.ts +1 -0
- package/core/any_aliases.ts +1 -0
- package/core/block.d.ts +779 -0
- package/core/{block.js → block.ts} +610 -719
- package/core/block_animations.d.ts +33 -0
- package/core/{block_animations.js → block_animations.ts} +75 -79
- package/core/block_drag_surface.d.ts +111 -0
- package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
- package/core/block_dragger.d.ts +143 -0
- package/core/{block_dragger.js → block_dragger.ts} +139 -176
- package/core/block_svg.d.ts +588 -0
- package/core/{block_svg.js → block_svg.ts} +494 -630
- package/core/blockly.d.ts +562 -0
- package/core/blockly.js +1 -1
- package/core/blockly.ts +749 -0
- package/core/blockly_options.d.ts +69 -0
- package/core/blockly_options.ts +81 -0
- package/core/blocks.d.ts +17 -0
- package/core/{blocks.js → blocks.ts} +4 -8
- package/core/browser_events.d.ts +85 -0
- package/core/{browser_events.js → browser_events.ts} +98 -93
- package/core/bubble.d.ts +279 -0
- package/core/{bubble.js → bubble.ts} +277 -370
- package/core/bubble_dragger.d.ts +73 -0
- package/core/bubble_dragger.ts +229 -0
- package/core/bump_objects.d.ts +34 -0
- package/core/{bump_objects.js → bump_objects.ts} +54 -52
- package/core/clipboard.d.ts +42 -0
- package/core/clipboard.ts +91 -0
- package/core/comment.d.ts +113 -0
- package/core/{comment.js → comment.ts} +135 -185
- package/core/common.d.ts +129 -0
- package/core/{common.js → common.ts} +105 -82
- package/core/component_manager.d.ts +91 -0
- package/core/component_manager.ts +211 -0
- package/core/config.d.ts +23 -0
- package/core/{config.js → config.ts} +12 -19
- package/core/connection.d.ts +232 -0
- package/core/{connection.js → connection.ts} +187 -237
- package/core/connection_checker.d.ts +78 -0
- package/core/{connection_checker.js → connection_checker.ts} +66 -77
- package/core/connection_db.d.ts +91 -0
- package/core/{connection_db.js → connection_db.ts} +62 -87
- package/core/connection_type.d.ts +15 -0
- package/core/{connection_type.js → connection_type.ts} +8 -12
- package/core/constants.d.ts +15 -0
- package/core/{constants.js → constants.ts} +4 -8
- package/core/contextmenu.d.ts +80 -0
- package/core/{contextmenu.js → contextmenu.ts} +118 -153
- package/core/contextmenu_items.d.ts +77 -0
- package/core/contextmenu_items.ts +576 -0
- package/core/contextmenu_registry.d.ts +105 -0
- package/core/contextmenu_registry.ts +179 -0
- package/core/css.d.ts +24 -0
- package/core/{css.js → css.ts} +16 -24
- package/core/delete_area.d.ts +47 -0
- package/core/delete_area.ts +82 -0
- package/core/dialog.d.ts +61 -0
- package/core/dialog.ts +127 -0
- package/core/drag_target.d.ts +63 -0
- package/core/drag_target.ts +94 -0
- package/core/dropdowndiv.d.ts +155 -0
- package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
- package/core/events/events.d.ts +102 -0
- package/core/events/events.ts +123 -0
- package/core/events/events_abstract.d.ts +51 -0
- package/core/events/events_abstract.ts +112 -0
- package/core/events/events_block_base.d.ts +31 -0
- package/core/events/events_block_base.ts +65 -0
- package/core/events/events_block_change.d.ts +55 -0
- package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
- package/core/events/events_block_create.d.ts +35 -0
- package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
- package/core/events/events_block_delete.d.ts +36 -0
- package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
- package/core/events/events_block_drag.d.ts +36 -0
- package/core/events/events_block_drag.ts +82 -0
- package/core/events/events_block_move.d.ts +51 -0
- package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
- package/core/events/events_bubble_open.d.ts +35 -0
- package/core/events/events_bubble_open.ts +82 -0
- package/core/events/events_click.d.ts +36 -0
- package/core/events/{events_click.js → events_click.ts} +27 -30
- package/core/events/events_comment_base.d.ts +39 -0
- package/core/events/events_comment_base.ts +107 -0
- package/core/events/events_comment_change.d.ts +43 -0
- package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
- package/core/events/events_comment_create.d.ts +35 -0
- package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
- package/core/events/events_comment_delete.d.ts +35 -0
- package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
- package/core/events/events_comment_move.d.ts +55 -0
- package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
- package/core/events/events_marker_move.d.ts +40 -0
- package/core/events/events_marker_move.ts +99 -0
- package/core/events/events_selected.d.ts +34 -0
- package/core/events/events_selected.ts +78 -0
- package/core/events/events_theme_change.d.ts +30 -0
- package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
- package/core/events/events_toolbox_item_select.d.ts +34 -0
- package/core/events/events_toolbox_item_select.ts +79 -0
- package/core/events/events_trashcan_open.d.ts +31 -0
- package/core/events/events_trashcan_open.ts +68 -0
- package/core/events/events_ui.d.ts +37 -0
- package/core/events/{events_ui.js → events_ui.ts} +27 -26
- package/core/events/events_ui_base.d.ts +26 -0
- package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
- package/core/events/events_var_base.d.ts +31 -0
- package/core/events/events_var_base.ts +65 -0
- package/core/events/events_var_create.d.ts +35 -0
- package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
- package/core/events/events_var_delete.d.ts +35 -0
- package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
- package/core/events/events_var_rename.d.ts +36 -0
- package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
- package/core/events/events_viewport.d.ts +39 -0
- package/core/events/events_viewport.ts +100 -0
- package/core/events/utils.d.ts +272 -0
- package/core/events/{utils.js → utils.ts} +148 -219
- package/core/events/workspace_events.d.ts +36 -0
- package/core/events/workspace_events.ts +86 -0
- package/core/extensions.d.ts +107 -0
- package/core/{extensions.js → extensions.ts} +153 -172
- package/core/field.d.ts +534 -0
- package/core/{field.js → field.ts} +413 -489
- package/core/field_angle.d.ts +176 -0
- package/core/field_angle.ts +563 -0
- package/core/field_checkbox.d.ts +124 -0
- package/core/field_checkbox.ts +243 -0
- package/core/field_colour.d.ts +200 -0
- package/core/field_colour.ts +632 -0
- package/core/field_dropdown.d.ts +222 -0
- package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
- package/core/field_image.d.ts +134 -0
- package/core/field_image.ts +282 -0
- package/core/field_label.d.ts +71 -0
- package/core/field_label.ts +152 -0
- package/core/field_label_serializable.d.ts +42 -0
- package/core/field_label_serializable.ts +76 -0
- package/core/field_multilineinput.d.ts +146 -0
- package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
- package/core/field_number.d.ts +156 -0
- package/core/{field_number.js → field_number.ts} +110 -123
- package/core/field_registry.d.ts +45 -0
- package/core/{field_registry.js → field_registry.ts} +37 -30
- package/core/field_textinput.d.ts +219 -0
- package/core/field_textinput.ts +591 -0
- package/core/field_variable.d.ts +217 -0
- package/core/{field_variable.js → field_variable.ts} +174 -187
- package/core/flyout_base.d.ts +459 -0
- package/core/{flyout_base.js → flyout_base.ts} +429 -518
- package/core/flyout_button.d.ts +81 -0
- package/core/flyout_button.ts +292 -0
- package/core/flyout_horizontal.d.ts +82 -0
- package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
- package/core/flyout_metrics_manager.d.ts +40 -0
- package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
- package/core/flyout_vertical.d.ts +83 -0
- package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
- package/core/generator.d.ts +205 -0
- package/core/{generator.js → generator.ts} +168 -193
- package/core/gesture.d.ts +357 -0
- package/core/{gesture.js → gesture.ts} +289 -369
- package/core/grid.d.ts +83 -0
- package/core/grid.ts +192 -0
- package/core/icon.d.ts +78 -0
- package/core/icon.ts +189 -0
- package/core/inject.d.ts +15 -0
- package/core/{inject.js → inject.ts} +101 -100
- package/core/input.d.ts +128 -0
- package/core/input.ts +309 -0
- package/core/input_types.d.ts +14 -0
- package/core/{input_types.js → input_types.ts} +8 -12
- package/core/insertion_marker_manager.d.ts +212 -0
- package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
- package/core/interfaces/i_ast_node_location.d.ts +11 -0
- package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
- package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
- package/core/interfaces/i_ast_node_location_svg.ts +37 -0
- package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
- package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
- package/core/interfaces/i_autohideable.d.ts +18 -0
- package/core/interfaces/i_autohideable.ts +34 -0
- package/core/interfaces/i_block_dragger.d.ts +43 -0
- package/core/interfaces/i_block_dragger.ts +67 -0
- package/core/interfaces/i_bounded_element.d.ts +24 -0
- package/core/interfaces/i_bounded_element.ts +42 -0
- package/core/interfaces/i_bubble.d.ts +59 -0
- package/core/interfaces/i_bubble.ts +88 -0
- package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
- package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
- package/core/interfaces/i_component.d.ts +17 -0
- package/core/interfaces/{i_component.js → i_component.ts} +9 -14
- package/core/interfaces/i_connection_checker.d.ts +69 -0
- package/core/interfaces/i_connection_checker.ts +102 -0
- package/core/interfaces/i_contextmenu.d.ts +13 -0
- package/core/interfaces/i_contextmenu.ts +26 -0
- package/core/interfaces/i_copyable.d.ts +24 -0
- package/core/interfaces/i_copyable.ts +40 -0
- package/core/interfaces/i_deletable.d.ts +16 -0
- package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
- package/core/interfaces/i_delete_area.d.ts +25 -0
- package/core/interfaces/i_delete_area.ts +46 -0
- package/core/interfaces/i_drag_target.d.ts +53 -0
- package/core/interfaces/i_drag_target.ts +84 -0
- package/core/interfaces/i_draggable.d.ts +12 -0
- package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
- package/core/interfaces/i_flyout.d.ts +134 -0
- package/core/interfaces/i_flyout.ts +186 -0
- package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
- package/core/interfaces/i_keyboard_accessible.ts +35 -0
- package/core/interfaces/i_metrics_manager.d.ts +117 -0
- package/core/interfaces/i_metrics_manager.ts +151 -0
- package/core/interfaces/i_movable.d.ts +16 -0
- package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
- package/core/interfaces/i_positionable.d.ts +27 -0
- package/core/interfaces/i_positionable.ts +50 -0
- package/core/interfaces/i_registrable.d.ts +11 -0
- package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
- package/core/interfaces/i_registrable_field.d.ts +17 -0
- package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
- package/core/interfaces/i_selectable.d.ts +18 -0
- package/core/interfaces/i_selectable.ts +34 -0
- package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
- package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
- package/core/interfaces/i_serializer.d.ts +42 -0
- package/core/interfaces/i_serializer.ts +65 -0
- package/core/interfaces/i_styleable.d.ts +21 -0
- package/core/interfaces/i_styleable.ts +35 -0
- package/core/interfaces/i_toolbox.d.ts +85 -0
- package/core/interfaces/i_toolbox.ts +127 -0
- package/core/interfaces/i_toolbox_item.d.ts +62 -0
- package/core/interfaces/i_toolbox_item.ts +84 -0
- package/core/internal_constants.d.ts +40 -0
- package/core/{internal_constants.js → internal_constants.ts} +13 -18
- package/core/keyboard_nav/ast_node.d.ts +239 -0
- package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
- package/core/keyboard_nav/basic_cursor.d.ts +88 -0
- package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
- package/core/keyboard_nav/cursor.d.ts +41 -0
- package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
- package/core/keyboard_nav/marker.d.ts +58 -0
- package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
- package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
- package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
- package/core/main.d.ts +11 -0
- package/core/main.js +303 -0
- package/core/marker_manager.d.ts +85 -0
- package/core/marker_manager.ts +181 -0
- package/core/menu.d.ts +149 -0
- package/core/{menu.js → menu.ts} +141 -174
- package/core/menuitem.d.ts +118 -0
- package/core/menuitem.ts +240 -0
- package/core/metrics_manager.d.ts +201 -0
- package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
- package/core/msg.d.ts +9 -0
- package/core/{msg.js → msg.ts} +4 -8
- package/core/mutator.d.ts +128 -0
- package/core/{mutator.js → mutator.ts} +196 -211
- package/core/names.d.ts +124 -0
- package/core/names.ts +267 -0
- package/core/options.d.ts +137 -0
- package/core/{options.js → options.ts} +147 -173
- package/core/positionable_helpers.d.ts +88 -0
- package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
- package/core/procedures.d.ts +108 -0
- package/core/{procedures.js → procedures.ts} +143 -152
- package/core/registry.d.ts +137 -0
- package/core/registry.ts +339 -0
- package/core/rendered_connection.d.ts +191 -0
- package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
- package/core/renderers/common/block_rendering.d.ts +114 -0
- package/core/renderers/common/block_rendering.ts +164 -0
- package/core/renderers/common/constants.d.ts +458 -0
- package/core/renderers/common/constants.ts +1124 -0
- package/core/renderers/common/debug.d.ts +28 -0
- package/core/renderers/common/{debug.js → debug.ts} +14 -20
- package/core/renderers/common/debugger.d.ts +120 -0
- package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
- package/core/renderers/common/drawer.d.ts +132 -0
- package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
- package/core/renderers/common/i_path_object.d.ts +117 -0
- package/core/renderers/common/i_path_object.ts +161 -0
- package/core/renderers/common/info.d.ts +194 -0
- package/core/renderers/common/{info.js → info.ts} +165 -222
- package/core/renderers/common/marker_svg.d.ts +220 -0
- package/core/renderers/common/marker_svg.ts +680 -0
- package/core/renderers/common/path_object.d.ts +146 -0
- package/core/renderers/common/path_object.ts +272 -0
- package/core/renderers/common/renderer.d.ts +157 -0
- package/core/renderers/common/renderer.ts +271 -0
- package/core/renderers/geras/constants.d.ts +23 -0
- package/core/renderers/geras/constants.ts +61 -0
- package/core/renderers/geras/drawer.d.ts +43 -0
- package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
- package/core/renderers/geras/geras.d.ts +11 -0
- package/core/renderers/geras/geras.ts +37 -0
- package/core/renderers/geras/highlight_constants.d.ts +108 -0
- package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
- package/core/renderers/geras/highlighter.d.ts +98 -0
- package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
- package/core/renderers/geras/info.d.ts +45 -0
- package/core/renderers/geras/{info.js → info.ts} +61 -99
- package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
- package/core/renderers/geras/measurables/inline_input.ts +51 -0
- package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
- package/core/renderers/geras/measurables/statement_input.ts +50 -0
- package/core/renderers/geras/path_object.d.ts +47 -0
- package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
- package/core/renderers/geras/renderer.d.ts +69 -0
- package/core/renderers/geras/renderer.ts +126 -0
- package/core/renderers/measurables/base.d.ts +27 -0
- package/core/renderers/measurables/base.ts +53 -0
- package/core/renderers/measurables/bottom_row.d.ts +61 -0
- package/core/renderers/measurables/bottom_row.ts +120 -0
- package/core/renderers/measurables/connection.d.ts +25 -0
- package/core/renderers/measurables/connection.ts +52 -0
- package/core/renderers/measurables/external_value_input.d.ts +27 -0
- package/core/renderers/measurables/external_value_input.ts +65 -0
- package/core/renderers/measurables/field.d.ts +30 -0
- package/core/renderers/measurables/field.ts +63 -0
- package/core/renderers/measurables/hat.d.ts +21 -0
- package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
- package/core/renderers/measurables/icon.d.ts +26 -0
- package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
- package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
- package/core/renderers/measurables/in_row_spacer.ts +44 -0
- package/core/renderers/measurables/inline_input.d.ts +24 -0
- package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
- package/core/renderers/measurables/input_connection.d.ts +29 -0
- package/core/renderers/measurables/input_connection.ts +66 -0
- package/core/renderers/measurables/input_row.d.ts +30 -0
- package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
- package/core/renderers/measurables/jagged_edge.d.ts +20 -0
- package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
- package/core/renderers/measurables/next_connection.d.ts +23 -0
- package/core/renderers/measurables/next_connection.ts +47 -0
- package/core/renderers/measurables/output_connection.d.ts +26 -0
- package/core/renderers/measurables/output_connection.ts +56 -0
- package/core/renderers/measurables/previous_connection.d.ts +23 -0
- package/core/renderers/measurables/previous_connection.ts +47 -0
- package/core/renderers/measurables/round_corner.d.ts +21 -0
- package/core/renderers/measurables/round_corner.ts +49 -0
- package/core/renderers/measurables/row.d.ts +141 -0
- package/core/renderers/measurables/row.ts +225 -0
- package/core/renderers/measurables/spacer_row.d.ts +29 -0
- package/core/renderers/measurables/spacer_row.ts +55 -0
- package/core/renderers/measurables/square_corner.d.ts +21 -0
- package/core/renderers/measurables/square_corner.ts +47 -0
- package/core/renderers/measurables/statement_input.d.ts +22 -0
- package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
- package/core/renderers/measurables/top_row.d.ts +56 -0
- package/core/renderers/measurables/top_row.ts +122 -0
- package/core/renderers/measurables/types.d.ts +235 -0
- package/core/renderers/measurables/types.ts +332 -0
- package/core/renderers/minimalist/constants.d.ts +14 -0
- package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
- package/core/renderers/minimalist/drawer.d.ts +21 -0
- package/core/renderers/minimalist/drawer.ts +38 -0
- package/core/renderers/minimalist/info.d.ts +30 -0
- package/core/renderers/minimalist/info.ts +52 -0
- package/core/renderers/minimalist/minimalist.d.ts +6 -0
- package/core/renderers/minimalist/minimalist.ts +22 -0
- package/core/renderers/minimalist/renderer.d.ts +41 -0
- package/core/renderers/minimalist/renderer.ts +71 -0
- package/core/renderers/thrasos/info.d.ts +40 -0
- package/core/renderers/thrasos/{info.js → info.ts} +66 -67
- package/core/renderers/thrasos/renderer.d.ts +25 -0
- package/core/renderers/thrasos/renderer.ts +48 -0
- package/core/renderers/thrasos/thrasos.d.ts +4 -0
- package/core/renderers/thrasos/thrasos.ts +20 -0
- package/core/renderers/zelos/constants.d.ts +186 -0
- package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
- package/core/renderers/zelos/drawer.d.ts +47 -0
- package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
- package/core/renderers/zelos/info.d.ts +88 -0
- package/core/renderers/zelos/{info.js → info.ts} +111 -142
- package/core/renderers/zelos/marker_svg.d.ts +46 -0
- package/core/renderers/zelos/marker_svg.ts +151 -0
- package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
- package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
- package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
- package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
- package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
- package/core/renderers/zelos/measurables/row_elements.ts +45 -0
- package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
- package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
- package/core/renderers/zelos/path_object.d.ts +77 -0
- package/core/renderers/zelos/path_object.ts +215 -0
- package/core/renderers/zelos/renderer.d.ts +74 -0
- package/core/renderers/zelos/renderer.ts +142 -0
- package/core/renderers/zelos/zelos.d.ts +12 -0
- package/core/renderers/zelos/zelos.ts +39 -0
- package/core/scrollbar.d.ts +277 -0
- package/core/{scrollbar.js → scrollbar.ts} +307 -328
- package/core/scrollbar_pair.d.ts +105 -0
- package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
- package/core/serialization/blocks.d.ts +98 -0
- package/core/serialization/{blocks.js → blocks.ts} +229 -228
- package/core/serialization/exceptions.d.ts +73 -0
- package/core/serialization/exceptions.ts +98 -0
- package/core/serialization/priorities.d.ts +15 -0
- package/core/serialization/{priorities.js → priorities.ts} +4 -10
- package/core/serialization/registry.d.ts +20 -0
- package/core/serialization/{registry.js → registry.ts} +11 -13
- package/core/serialization/variables.d.ts +14 -0
- package/core/serialization/{variables.js → variables.ts} +30 -32
- package/core/serialization/workspaces.d.ts +28 -0
- package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
- package/core/shortcut_items.d.ts +61 -0
- package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
- package/core/shortcut_registry.d.ts +151 -0
- package/core/shortcut_registry.ts +355 -0
- package/core/sprites.d.ts +19 -0
- package/core/{sprites.js → sprites.ts} +4 -6
- package/core/theme/classic.d.ts +12 -0
- package/core/theme/{classic.js → classic.ts} +5 -7
- package/core/theme/themes.d.ts +8 -0
- package/core/theme/themes.ts +22 -0
- package/core/theme/zelos.d.ts +11 -0
- package/core/theme/{zelos.js → zelos.ts} +4 -7
- package/core/theme.d.ts +142 -0
- package/core/theme.ts +221 -0
- package/core/theme_manager.d.ts +81 -0
- package/core/theme_manager.ts +186 -0
- package/core/toolbox/category.d.ts +239 -0
- package/core/toolbox/category.ts +679 -0
- package/core/toolbox/collapsible_category.d.ts +91 -0
- package/core/toolbox/collapsible_category.ts +273 -0
- package/core/toolbox/separator.d.ts +39 -0
- package/core/toolbox/separator.ts +105 -0
- package/core/toolbox/toolbox.d.ts +352 -0
- package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
- package/core/toolbox/toolbox_item.d.ts +85 -0
- package/core/toolbox/toolbox_item.ts +147 -0
- package/core/tooltip.d.ts +126 -0
- package/core/{tooltip.js → tooltip.ts} +136 -214
- package/core/touch.d.ts +121 -0
- package/core/touch.ts +306 -0
- package/core/touch_gesture.d.ts +115 -0
- package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
- package/core/trashcan.d.ts +195 -0
- package/core/{trashcan.js → trashcan.ts} +226 -312
- package/core/utils/aria.d.ts +67 -0
- package/core/utils/{aria.js → aria.ts} +47 -61
- package/core/utils/array.d.ts +14 -0
- package/core/utils/{array.js → array.ts} +10 -12
- package/core/utils/colour.d.ts +103 -0
- package/core/utils/{colour.js → colour.ts} +60 -72
- package/core/utils/coordinate.d.ts +72 -0
- package/core/utils/coordinate.ts +124 -0
- package/core/utils/deprecation.d.ts +17 -0
- package/core/utils/{deprecation.js → deprecation.ts} +11 -11
- package/core/utils/dom.d.ts +165 -0
- package/core/utils/{dom.js → dom.ts} +125 -147
- package/core/utils/idgenerator.d.ts +25 -0
- package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
- package/core/utils/keycodes.d.ts +137 -0
- package/core/utils/keycodes.ts +169 -0
- package/core/utils/math.d.ts +30 -0
- package/core/utils/{math.js → math.ts} +17 -19
- package/core/utils/metrics.d.ts +64 -0
- package/core/utils/metrics.ts +97 -0
- package/core/utils/object.d.ts +35 -0
- package/core/utils/{object.js → object.ts} +30 -26
- package/core/utils/parsing.d.ts +50 -0
- package/core/utils/{parsing.js → parsing.ts} +50 -50
- package/core/utils/rect.d.ts +38 -0
- package/core/utils/{rect.js → rect.ts} +18 -31
- package/core/utils/sentinel.d.ts +11 -0
- package/core/utils/{sentinel.js → sentinel.ts} +3 -5
- package/core/utils/size.d.ts +27 -0
- package/core/utils/{size.js → size.ts} +12 -26
- package/core/utils/string.d.ts +55 -0
- package/core/utils/{string.js → string.ts} +64 -61
- package/core/utils/style.d.ts +127 -0
- package/core/utils/{style.js → style.ts} +102 -92
- package/core/utils/svg.d.ts +68 -0
- package/core/utils/svg.ts +88 -0
- package/core/utils/svg_math.d.ts +70 -0
- package/core/utils/{svg_math.js → svg_math.ts} +72 -71
- package/core/utils/svg_paths.d.ts +101 -0
- package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
- package/core/utils/toolbox.d.ts +193 -0
- package/core/utils/toolbox.ts +433 -0
- package/core/utils/useragent.d.ts +33 -0
- package/core/utils/useragent.ts +135 -0
- package/core/utils/xml.d.ts +52 -0
- package/core/utils/{xml.js → xml.ts} +26 -36
- package/core/utils.d.ts +217 -0
- package/core/utils.ts +428 -0
- package/core/variable_map.d.ts +141 -0
- package/core/{variable_map.js → variable_map.ts} +131 -149
- package/core/variable_model.d.ts +40 -0
- package/core/variable_model.ts +82 -0
- package/core/variables.d.ts +181 -0
- package/core/{variables.js → variables.ts} +206 -188
- package/core/variables_dynamic.d.ts +38 -0
- package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
- package/core/warning.d.ts +50 -0
- package/core/{warning.js → warning.ts} +52 -66
- package/core/widgetdiv.d.ts +69 -0
- package/core/widgetdiv.ts +257 -0
- package/core/workspace.d.ts +386 -0
- package/core/workspace.ts +801 -0
- package/core/workspace_audio.d.ts +47 -0
- package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
- package/core/workspace_comment.d.ts +170 -0
- package/core/workspace_comment.ts +398 -0
- package/core/workspace_comment_svg.d.ts +329 -0
- package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
- package/core/workspace_drag_surface_svg.d.ts +68 -0
- package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
- package/core/workspace_dragger.d.ts +48 -0
- package/core/workspace_dragger.ts +104 -0
- package/core/workspace_svg.d.ts +920 -0
- package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
- package/core/xml.d.ts +117 -0
- package/core/{xml.js → xml.ts} +306 -326
- package/core/zoom_controls.d.ts +130 -0
- package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
- package/core.d.ts +1 -3
- package/core.js +1 -2
- package/dart.d.ts +0 -3
- package/dart_compressed.js +387 -99
- package/dart_compressed.js.map +1 -1
- package/generators/dart/all.js +2 -0
- package/generators/dart/colour.js +1 -1
- package/generators/dart/lists.js +1 -1
- package/generators/dart/logic.js +1 -1
- package/generators/dart/loops.js +1 -1
- package/generators/dart/math.js +1 -1
- package/generators/dart/procedures.js +1 -1
- package/generators/dart/text.js +1 -1
- package/generators/dart/variables.js +1 -1
- package/generators/dart/variables_dynamic.js +1 -1
- package/generators/dart.js +1 -2
- package/generators/javascript/all.js +2 -0
- package/generators/javascript/colour.js +1 -1
- package/generators/javascript/lists.js +1 -1
- package/generators/javascript/logic.js +1 -1
- package/generators/javascript/loops.js +1 -1
- package/generators/javascript/math.js +4 -4
- package/generators/javascript/procedures.js +1 -1
- package/generators/javascript/text.js +2 -2
- package/generators/javascript/variables.js +1 -1
- package/generators/javascript/variables_dynamic.js +1 -1
- package/generators/javascript.js +1 -3
- package/generators/lua/all.js +2 -0
- package/generators/lua/colour.js +1 -1
- package/generators/lua/lists.js +1 -1
- package/generators/lua/logic.js +1 -1
- package/generators/lua/loops.js +1 -1
- package/generators/lua/math.js +1 -1
- package/generators/lua/procedures.js +1 -1
- package/generators/lua/text.js +1 -1
- package/generators/lua/variables.js +1 -1
- package/generators/lua/variables_dynamic.js +1 -1
- package/generators/lua.js +1 -2
- package/generators/php/all.js +2 -0
- package/generators/php/colour.js +1 -1
- package/generators/php/lists.js +1 -2
- package/generators/php/logic.js +1 -1
- package/generators/php/loops.js +1 -1
- package/generators/php/math.js +1 -1
- package/generators/php/procedures.js +1 -1
- package/generators/php/text.js +1 -1
- package/generators/php/variables.js +1 -1
- package/generators/php/variables_dynamic.js +1 -1
- package/generators/php.js +1 -2
- package/generators/python/all.js +2 -0
- package/generators/python/colour.js +3 -3
- package/generators/python/lists.js +1 -1
- package/generators/python/logic.js +1 -1
- package/generators/python/loops.js +4 -7
- package/generators/python/math.js +1 -1
- package/generators/python/procedures.js +1 -1
- package/generators/python/text.js +1 -1
- package/generators/python/variables.js +1 -1
- package/generators/python/variables_dynamic.js +1 -1
- package/generators/python.js +1 -2
- package/index.d.ts +2 -8
- package/javascript.d.ts +0 -3
- package/javascript_compressed.js +314 -104
- package/javascript_compressed.js.map +1 -1
- package/lua.d.ts +0 -3
- package/lua_compressed.js +399 -81
- package/lua_compressed.js.map +1 -1
- package/package.json +5 -5
- package/php.d.ts +0 -3
- package/php_compressed.js +322 -93
- package/php_compressed.js.map +1 -1
- package/python.d.ts +0 -3
- package/python_compressed.js +237 -90
- package/python_compressed.js.map +1 -1
- package/blockly.d.ts +0 -26127
- package/core/blockly_options.js +0 -28
- package/core/bubble_dragger.js +0 -298
- package/core/clipboard.js +0 -80
- package/core/component_manager.js +0 -263
- package/core/contextmenu_items.js +0 -651
- package/core/contextmenu_registry.js +0 -178
- package/core/delete_area.js +0 -87
- package/core/dialog.js +0 -107
- package/core/drag_target.js +0 -98
- package/core/events/events.js +0 -147
- package/core/events/events_abstract.js +0 -133
- package/core/events/events_block_base.js +0 -70
- package/core/events/events_block_drag.js +0 -89
- package/core/events/events_bubble_open.js +0 -90
- package/core/events/events_comment_base.js +0 -121
- package/core/events/events_marker_move.js +0 -110
- package/core/events/events_selected.js +0 -83
- package/core/events/events_toolbox_item_select.js +0 -84
- package/core/events/events_trashcan_open.js +0 -73
- package/core/events/events_var_base.js +0 -70
- package/core/events/events_viewport.js +0 -107
- package/core/events/workspace_events.js +0 -93
- package/core/field_angle.js +0 -591
- package/core/field_checkbox.js +0 -255
- package/core/field_colour.js +0 -717
- package/core/field_image.js +0 -304
- package/core/field_label.js +0 -149
- package/core/field_label_serializable.js +0 -80
- package/core/field_textinput.js +0 -619
- package/core/flyout_button.js +0 -356
- package/core/grid.js +0 -226
- package/core/icon.js +0 -225
- package/core/input.js +0 -335
- package/core/interfaces/i_ast_node_location_svg.js +0 -45
- package/core/interfaces/i_ast_node_location_with_block.js +0 -41
- package/core/interfaces/i_autohideable.js +0 -40
- package/core/interfaces/i_block_dragger.js +0 -66
- package/core/interfaces/i_bounded_element.js +0 -45
- package/core/interfaces/i_bubble.js +0 -95
- package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
- package/core/interfaces/i_connection_checker.js +0 -104
- package/core/interfaces/i_contextmenu.js +0 -32
- package/core/interfaces/i_copyable.js +0 -49
- package/core/interfaces/i_delete_area.js +0 -50
- package/core/interfaces/i_drag_target.js +0 -88
- package/core/interfaces/i_flyout.js +0 -201
- package/core/interfaces/i_keyboard_accessible.js +0 -38
- package/core/interfaces/i_metrics_manager.js +0 -154
- package/core/interfaces/i_positionable.js +0 -51
- package/core/interfaces/i_selectable.js +0 -51
- package/core/interfaces/i_selectable_toolbox_item.js +0 -73
- package/core/interfaces/i_serializer.js +0 -77
- package/core/interfaces/i_styleable.js +0 -39
- package/core/interfaces/i_toolbox.js +0 -142
- package/core/interfaces/i_toolbox_item.js +0 -85
- package/core/marker_manager.js +0 -213
- package/core/menuitem.js +0 -292
- package/core/names.js +0 -293
- package/core/registry.js +0 -384
- package/core/renderers/common/block_rendering.js +0 -170
- package/core/renderers/common/constants.js +0 -1250
- package/core/renderers/common/i_path_object.js +0 -162
- package/core/renderers/common/marker_svg.js +0 -721
- package/core/renderers/common/path_object.js +0 -283
- package/core/renderers/common/renderer.js +0 -305
- package/core/renderers/geras/constants.js +0 -73
- package/core/renderers/geras/geras.js +0 -36
- package/core/renderers/geras/measurables/inline_input.js +0 -58
- package/core/renderers/geras/measurables/statement_input.js +0 -57
- package/core/renderers/geras/renderer.js +0 -149
- package/core/renderers/measurables/base.js +0 -64
- package/core/renderers/measurables/bottom_row.js +0 -138
- package/core/renderers/measurables/connection.js +0 -56
- package/core/renderers/measurables/external_value_input.js +0 -70
- package/core/renderers/measurables/field.js +0 -71
- package/core/renderers/measurables/in_row_spacer.js +0 -47
- package/core/renderers/measurables/input_connection.js +0 -75
- package/core/renderers/measurables/next_connection.js +0 -50
- package/core/renderers/measurables/output_connection.js +0 -61
- package/core/renderers/measurables/previous_connection.js +0 -50
- package/core/renderers/measurables/round_corner.js +0 -52
- package/core/renderers/measurables/row.js +0 -247
- package/core/renderers/measurables/spacer_row.js +0 -69
- package/core/renderers/measurables/square_corner.js +0 -50
- package/core/renderers/measurables/top_row.js +0 -143
- package/core/renderers/measurables/types.js +0 -353
- package/core/renderers/minimalist/drawer.js +0 -42
- package/core/renderers/minimalist/info.js +0 -54
- package/core/renderers/minimalist/minimalist.js +0 -26
- package/core/renderers/minimalist/renderer.js +0 -80
- package/core/renderers/thrasos/renderer.js +0 -53
- package/core/renderers/thrasos/thrasos.js +0 -22
- package/core/renderers/zelos/marker_svg.js +0 -179
- package/core/renderers/zelos/measurables/bottom_row.js +0 -66
- package/core/renderers/zelos/measurables/row_elements.js +0 -46
- package/core/renderers/zelos/path_object.js +0 -247
- package/core/renderers/zelos/renderer.js +0 -147
- package/core/renderers/zelos/zelos.js +0 -38
- package/core/serialization/exceptions.js +0 -144
- package/core/shortcut_registry.js +0 -366
- package/core/theme/themes.js +0 -23
- package/core/theme.js +0 -228
- package/core/theme_manager.js +0 -211
- package/core/toolbox/category.js +0 -751
- package/core/toolbox/collapsible_category.js +0 -311
- package/core/toolbox/separator.js +0 -133
- package/core/toolbox/toolbox_item.js +0 -173
- package/core/touch.js +0 -285
- package/core/utils/coordinate.js +0 -138
- package/core/utils/global.js +0 -41
- package/core/utils/keycodes.js +0 -172
- package/core/utils/metrics.js +0 -154
- package/core/utils/svg.js +0 -186
- package/core/utils/toolbox.js +0 -459
- package/core/utils/useragent.js +0 -197
- package/core/utils.js +0 -383
- package/core/variable_model.js +0 -96
- package/core/widgetdiv.js +0 -290
- package/core/workspace.js +0 -836
- package/core/workspace_comment.js +0 -400
- package/core/workspace_dragger.js +0 -115
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2016 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Coordinate } from './utils/coordinate.js';
|
|
7
|
+
import type * as toolbox from './utils/toolbox.js';
|
|
8
|
+
import type { WorkspaceSvg } from './workspace_svg.js';
|
|
9
|
+
/**
|
|
10
|
+
* Class for a button or label in the flyout.
|
|
11
|
+
* @alias Blockly.FlyoutButton
|
|
12
|
+
*/
|
|
13
|
+
export declare class FlyoutButton {
|
|
14
|
+
private readonly workspace;
|
|
15
|
+
private readonly targetWorkspace;
|
|
16
|
+
private readonly isLabel_;
|
|
17
|
+
/** The horizontal margin around the text in the button. */
|
|
18
|
+
static TEXT_MARGIN_X: number;
|
|
19
|
+
/** The vertical margin around the text in the button. */
|
|
20
|
+
static TEXT_MARGIN_Y: number;
|
|
21
|
+
private readonly text_;
|
|
22
|
+
private readonly position_;
|
|
23
|
+
private readonly callbackKey_;
|
|
24
|
+
private readonly cssClass_;
|
|
25
|
+
/** Mouse up event data. */
|
|
26
|
+
private onMouseUpWrapper_;
|
|
27
|
+
info: toolbox.ButtonOrLabelInfo;
|
|
28
|
+
/** The width of the button's rect. */
|
|
29
|
+
width: number;
|
|
30
|
+
/** The height of the button's rect. */
|
|
31
|
+
height: number;
|
|
32
|
+
/** The root SVG group for the button or label. */
|
|
33
|
+
private svgGroup_;
|
|
34
|
+
/** The SVG element with the text of the label or button. */
|
|
35
|
+
private svgText_;
|
|
36
|
+
/**
|
|
37
|
+
* @param workspace The workspace in which to place this button.
|
|
38
|
+
* @param targetWorkspace The flyout's target workspace.
|
|
39
|
+
* @param json The JSON specifying the label/button.
|
|
40
|
+
* @param isLabel_ Whether this button should be styled as a label.
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
constructor(workspace: WorkspaceSvg, targetWorkspace: WorkspaceSvg, json: toolbox.ButtonOrLabelInfo, isLabel_: boolean);
|
|
44
|
+
/**
|
|
45
|
+
* Create the button elements.
|
|
46
|
+
* @return The button's SVG group.
|
|
47
|
+
*/
|
|
48
|
+
createDom(): SVGElement;
|
|
49
|
+
/** Correctly position the flyout button and make it visible. */
|
|
50
|
+
show(): void;
|
|
51
|
+
/** Update SVG attributes to match internal state. */
|
|
52
|
+
private updateTransform_;
|
|
53
|
+
/**
|
|
54
|
+
* Move the button to the given x, y coordinates.
|
|
55
|
+
* @param x The new x coordinate.
|
|
56
|
+
* @param y The new y coordinate.
|
|
57
|
+
*/
|
|
58
|
+
moveTo(x: number, y: number): void;
|
|
59
|
+
/** @return Whether or not the button is a label. */
|
|
60
|
+
isLabel(): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Location of the button.
|
|
63
|
+
* @return x, y coordinates.
|
|
64
|
+
* @internal
|
|
65
|
+
*/
|
|
66
|
+
getPosition(): Coordinate;
|
|
67
|
+
/** @return Text of the button. */
|
|
68
|
+
getButtonText(): string;
|
|
69
|
+
/**
|
|
70
|
+
* Get the button's target workspace.
|
|
71
|
+
* @return The target workspace of the flyout where this button resides.
|
|
72
|
+
*/
|
|
73
|
+
getTargetWorkspace(): WorkspaceSvg;
|
|
74
|
+
/** Dispose of this button. */
|
|
75
|
+
dispose(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Do something when the button is clicked.
|
|
78
|
+
* @param e Mouse up event.
|
|
79
|
+
*/
|
|
80
|
+
private onMouseUp_;
|
|
81
|
+
}
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2016 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @fileoverview Class for a button in the flyout.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Class for a button in the flyout.
|
|
13
|
+
* @class
|
|
14
|
+
*/
|
|
15
|
+
import * as goog from '../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.FlyoutButton');
|
|
17
|
+
|
|
18
|
+
import * as browserEvents from './browser_events.js';
|
|
19
|
+
import * as Css from './css.js';
|
|
20
|
+
import {Coordinate} from './utils/coordinate.js';
|
|
21
|
+
import * as dom from './utils/dom.js';
|
|
22
|
+
import * as parsing from './utils/parsing.js';
|
|
23
|
+
import * as style from './utils/style.js';
|
|
24
|
+
import {Svg} from './utils/svg.js';
|
|
25
|
+
import type * as toolbox from './utils/toolbox.js';
|
|
26
|
+
import type {WorkspaceSvg} from './workspace_svg.js';
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Class for a button or label in the flyout.
|
|
31
|
+
* @alias Blockly.FlyoutButton
|
|
32
|
+
*/
|
|
33
|
+
export class FlyoutButton {
|
|
34
|
+
/** The horizontal margin around the text in the button. */
|
|
35
|
+
static TEXT_MARGIN_X = 5;
|
|
36
|
+
|
|
37
|
+
/** The vertical margin around the text in the button. */
|
|
38
|
+
static TEXT_MARGIN_Y = 2;
|
|
39
|
+
private readonly text_: string;
|
|
40
|
+
private readonly position_: Coordinate;
|
|
41
|
+
private readonly callbackKey_: string;
|
|
42
|
+
private readonly cssClass_: string|null;
|
|
43
|
+
|
|
44
|
+
/** Mouse up event data. */
|
|
45
|
+
private onMouseUpWrapper_: browserEvents.Data|null = null;
|
|
46
|
+
info: toolbox.ButtonOrLabelInfo;
|
|
47
|
+
|
|
48
|
+
/** The width of the button's rect. */
|
|
49
|
+
width = 0;
|
|
50
|
+
|
|
51
|
+
/** The height of the button's rect. */
|
|
52
|
+
height = 0;
|
|
53
|
+
|
|
54
|
+
/** The root SVG group for the button or label. */
|
|
55
|
+
private svgGroup_: SVGGElement|null = null;
|
|
56
|
+
|
|
57
|
+
/** The SVG element with the text of the label or button. */
|
|
58
|
+
private svgText_: SVGTextElement|null = null;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @param workspace The workspace in which to place this button.
|
|
62
|
+
* @param targetWorkspace The flyout's target workspace.
|
|
63
|
+
* @param json The JSON specifying the label/button.
|
|
64
|
+
* @param isLabel_ Whether this button should be styled as a label.
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
constructor(
|
|
68
|
+
private readonly workspace: WorkspaceSvg,
|
|
69
|
+
private readonly targetWorkspace: WorkspaceSvg,
|
|
70
|
+
json: toolbox.ButtonOrLabelInfo, private readonly isLabel_: boolean) {
|
|
71
|
+
this.text_ = json['text'];
|
|
72
|
+
|
|
73
|
+
this.position_ = new Coordinate(0, 0);
|
|
74
|
+
|
|
75
|
+
/** The key to the function called when this button is clicked. */
|
|
76
|
+
this.callbackKey_ =
|
|
77
|
+
(json as
|
|
78
|
+
AnyDuringMigration)['callbackKey'] || /* Check the lower case version
|
|
79
|
+
too to satisfy IE */
|
|
80
|
+
(json as AnyDuringMigration)['callbackkey'];
|
|
81
|
+
|
|
82
|
+
/** If specified, a CSS class to add to this button. */
|
|
83
|
+
this.cssClass_ = (json as AnyDuringMigration)['web-class'] || null;
|
|
84
|
+
|
|
85
|
+
/** The JSON specifying the label / button. */
|
|
86
|
+
this.info = json;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Create the button elements.
|
|
91
|
+
* @return The button's SVG group.
|
|
92
|
+
*/
|
|
93
|
+
createDom(): SVGElement {
|
|
94
|
+
let cssClass = this.isLabel_ ? 'blocklyFlyoutLabel' : 'blocklyFlyoutButton';
|
|
95
|
+
if (this.cssClass_) {
|
|
96
|
+
cssClass += ' ' + this.cssClass_;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
this.svgGroup_ = dom.createSvgElement(
|
|
100
|
+
Svg.G, {'class': cssClass}, this.workspace.getCanvas());
|
|
101
|
+
|
|
102
|
+
let shadow;
|
|
103
|
+
if (!this.isLabel_) {
|
|
104
|
+
// Shadow rectangle (light source does not mirror in RTL).
|
|
105
|
+
shadow = dom.createSvgElement(
|
|
106
|
+
Svg.RECT, {
|
|
107
|
+
'class': 'blocklyFlyoutButtonShadow',
|
|
108
|
+
'rx': 4,
|
|
109
|
+
'ry': 4,
|
|
110
|
+
'x': 1,
|
|
111
|
+
'y': 1,
|
|
112
|
+
},
|
|
113
|
+
this.svgGroup_!);
|
|
114
|
+
}
|
|
115
|
+
// Background rectangle.
|
|
116
|
+
const rect = dom.createSvgElement(
|
|
117
|
+
Svg.RECT, {
|
|
118
|
+
'class': this.isLabel_ ? 'blocklyFlyoutLabelBackground' :
|
|
119
|
+
'blocklyFlyoutButtonBackground',
|
|
120
|
+
'rx': 4,
|
|
121
|
+
'ry': 4,
|
|
122
|
+
},
|
|
123
|
+
this.svgGroup_!);
|
|
124
|
+
|
|
125
|
+
const svgText = dom.createSvgElement(
|
|
126
|
+
Svg.TEXT, {
|
|
127
|
+
'class': this.isLabel_ ? 'blocklyFlyoutLabelText' : 'blocklyText',
|
|
128
|
+
'x': 0,
|
|
129
|
+
'y': 0,
|
|
130
|
+
'text-anchor': 'middle',
|
|
131
|
+
},
|
|
132
|
+
this.svgGroup_!);
|
|
133
|
+
let text = parsing.replaceMessageReferences(this.text_);
|
|
134
|
+
if (this.workspace.RTL) {
|
|
135
|
+
// Force text to be RTL by adding an RLM.
|
|
136
|
+
text += '\u200F';
|
|
137
|
+
}
|
|
138
|
+
svgText.textContent = text;
|
|
139
|
+
if (this.isLabel_) {
|
|
140
|
+
this.svgText_ = svgText;
|
|
141
|
+
this.workspace.getThemeManager().subscribe(
|
|
142
|
+
this.svgText_, 'flyoutForegroundColour', 'fill');
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
const fontSize = style.getComputedStyle(svgText, 'fontSize');
|
|
146
|
+
const fontWeight = style.getComputedStyle(svgText, 'fontWeight');
|
|
147
|
+
const fontFamily = style.getComputedStyle(svgText, 'fontFamily');
|
|
148
|
+
this.width = dom.getFastTextWidthWithSizeString(
|
|
149
|
+
svgText, fontSize, fontWeight, fontFamily);
|
|
150
|
+
const fontMetrics =
|
|
151
|
+
dom.measureFontMetrics(text, fontSize, fontWeight, fontFamily);
|
|
152
|
+
this.height = fontMetrics.height;
|
|
153
|
+
|
|
154
|
+
if (!this.isLabel_) {
|
|
155
|
+
this.width += 2 * FlyoutButton.TEXT_MARGIN_X;
|
|
156
|
+
this.height += 2 * FlyoutButton.TEXT_MARGIN_Y;
|
|
157
|
+
shadow?.setAttribute('width', this.width.toString());
|
|
158
|
+
shadow?.setAttribute('height', this.height.toString());
|
|
159
|
+
}
|
|
160
|
+
rect.setAttribute('width', this.width.toString());
|
|
161
|
+
rect.setAttribute('height', this.height.toString());
|
|
162
|
+
|
|
163
|
+
svgText.setAttribute('x', (this.width / 2).toString());
|
|
164
|
+
svgText.setAttribute(
|
|
165
|
+
'y',
|
|
166
|
+
(this.height / 2 - fontMetrics.height / 2 + fontMetrics.baseline)
|
|
167
|
+
.toString());
|
|
168
|
+
|
|
169
|
+
this.updateTransform_();
|
|
170
|
+
|
|
171
|
+
// AnyDuringMigration because: Argument of type 'SVGGElement | null' is not
|
|
172
|
+
// assignable to parameter of type 'EventTarget'.
|
|
173
|
+
this.onMouseUpWrapper_ = browserEvents.conditionalBind(
|
|
174
|
+
this.svgGroup_ as AnyDuringMigration, 'mouseup', this, this.onMouseUp_);
|
|
175
|
+
return this.svgGroup_!;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/** Correctly position the flyout button and make it visible. */
|
|
179
|
+
show() {
|
|
180
|
+
this.updateTransform_();
|
|
181
|
+
this.svgGroup_!.setAttribute('display', 'block');
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/** Update SVG attributes to match internal state. */
|
|
185
|
+
private updateTransform_() {
|
|
186
|
+
this.svgGroup_!.setAttribute(
|
|
187
|
+
'transform',
|
|
188
|
+
'translate(' + this.position_.x + ',' + this.position_.y + ')');
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Move the button to the given x, y coordinates.
|
|
193
|
+
* @param x The new x coordinate.
|
|
194
|
+
* @param y The new y coordinate.
|
|
195
|
+
*/
|
|
196
|
+
moveTo(x: number, y: number) {
|
|
197
|
+
this.position_.x = x;
|
|
198
|
+
this.position_.y = y;
|
|
199
|
+
this.updateTransform_();
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/** @return Whether or not the button is a label. */
|
|
203
|
+
isLabel(): boolean {
|
|
204
|
+
return this.isLabel_;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Location of the button.
|
|
209
|
+
* @return x, y coordinates.
|
|
210
|
+
* @internal
|
|
211
|
+
*/
|
|
212
|
+
getPosition(): Coordinate {
|
|
213
|
+
return this.position_;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/** @return Text of the button. */
|
|
217
|
+
getButtonText(): string {
|
|
218
|
+
return this.text_;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Get the button's target workspace.
|
|
223
|
+
* @return The target workspace of the flyout where this button resides.
|
|
224
|
+
*/
|
|
225
|
+
getTargetWorkspace(): WorkspaceSvg {
|
|
226
|
+
return this.targetWorkspace;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/** Dispose of this button. */
|
|
230
|
+
dispose() {
|
|
231
|
+
if (this.onMouseUpWrapper_) {
|
|
232
|
+
browserEvents.unbind(this.onMouseUpWrapper_);
|
|
233
|
+
}
|
|
234
|
+
if (this.svgGroup_) {
|
|
235
|
+
dom.removeNode(this.svgGroup_);
|
|
236
|
+
}
|
|
237
|
+
if (this.svgText_) {
|
|
238
|
+
this.workspace.getThemeManager().unsubscribe(this.svgText_);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Do something when the button is clicked.
|
|
244
|
+
* @param e Mouse up event.
|
|
245
|
+
*/
|
|
246
|
+
private onMouseUp_(e: Event) {
|
|
247
|
+
const gesture = this.targetWorkspace.getGesture(e);
|
|
248
|
+
if (gesture) {
|
|
249
|
+
gesture.cancel();
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (this.isLabel_ && this.callbackKey_) {
|
|
253
|
+
console.warn(
|
|
254
|
+
'Labels should not have callbacks. Label text: ' + this.text_);
|
|
255
|
+
} else if (
|
|
256
|
+
!this.isLabel_ &&
|
|
257
|
+
!(this.callbackKey_ &&
|
|
258
|
+
this.targetWorkspace.getButtonCallback(this.callbackKey_))) {
|
|
259
|
+
console.warn('Buttons should have callbacks. Button text: ' + this.text_);
|
|
260
|
+
} else if (!this.isLabel_) {
|
|
261
|
+
const callback =
|
|
262
|
+
this.targetWorkspace.getButtonCallback(this.callbackKey_);
|
|
263
|
+
if (callback) {
|
|
264
|
+
callback(this);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/** CSS for buttons and labels. See css.js for use. */
|
|
271
|
+
Css.register(`
|
|
272
|
+
.blocklyFlyoutButton {
|
|
273
|
+
fill: #888;
|
|
274
|
+
cursor: default;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.blocklyFlyoutButtonShadow {
|
|
278
|
+
fill: #666;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.blocklyFlyoutButton:hover {
|
|
282
|
+
fill: #aaa;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.blocklyFlyoutLabel {
|
|
286
|
+
cursor: default;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
.blocklyFlyoutLabelBackground {
|
|
290
|
+
opacity: 0;
|
|
291
|
+
}
|
|
292
|
+
`);
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2017 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Flyout, FlyoutItem } from './flyout_base.js';
|
|
7
|
+
import type { Options } from './options.js';
|
|
8
|
+
import type { Coordinate } from './utils/coordinate.js';
|
|
9
|
+
import { Rect } from './utils/rect.js';
|
|
10
|
+
/**
|
|
11
|
+
* Class for a flyout.
|
|
12
|
+
* @alias Blockly.HorizontalFlyout
|
|
13
|
+
*/
|
|
14
|
+
export declare class HorizontalFlyout extends Flyout {
|
|
15
|
+
horizontalLayout: boolean;
|
|
16
|
+
width_: any;
|
|
17
|
+
height_: any;
|
|
18
|
+
/** @param workspaceOptions Dictionary of options for the workspace. */
|
|
19
|
+
constructor(workspaceOptions: Options);
|
|
20
|
+
/**
|
|
21
|
+
* Sets the translation of the flyout to match the scrollbars.
|
|
22
|
+
* @param xyRatio Contains a y property which is a float between 0 and 1
|
|
23
|
+
* specifying the degree of scrolling and a similar x property.
|
|
24
|
+
*/
|
|
25
|
+
protected setMetrics_(xyRatio: {
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
}): void;
|
|
29
|
+
/**
|
|
30
|
+
* Calculates the x coordinate for the flyout position.
|
|
31
|
+
* @return X coordinate.
|
|
32
|
+
*/
|
|
33
|
+
getX(): number;
|
|
34
|
+
/**
|
|
35
|
+
* Calculates the y coordinate for the flyout position.
|
|
36
|
+
* @return Y coordinate.
|
|
37
|
+
*/
|
|
38
|
+
getY(): number;
|
|
39
|
+
/** Move the flyout to the edge of the workspace. */
|
|
40
|
+
position(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Create and set the path for the visible boundaries of the flyout.
|
|
43
|
+
* @param width The width of the flyout, not including the rounded corners.
|
|
44
|
+
* @param height The height of the flyout, not including rounded corners.
|
|
45
|
+
*/
|
|
46
|
+
private setBackgroundPath_;
|
|
47
|
+
/** Scroll the flyout to the top. */
|
|
48
|
+
scrollToStart(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Scroll the flyout.
|
|
51
|
+
* @param e Mouse wheel scroll event.
|
|
52
|
+
*/
|
|
53
|
+
protected wheel_(e: WheelEvent): void;
|
|
54
|
+
/**
|
|
55
|
+
* Lay out the blocks in the flyout.
|
|
56
|
+
* @param contents The blocks and buttons to lay out.
|
|
57
|
+
* @param gaps The visible gaps between blocks.
|
|
58
|
+
*/
|
|
59
|
+
protected layout_(contents: FlyoutItem[], gaps: number[]): void;
|
|
60
|
+
/**
|
|
61
|
+
* Determine if a drag delta is toward the workspace, based on the position
|
|
62
|
+
* and orientation of the flyout. This is used in determineDragIntention_ to
|
|
63
|
+
* determine if a new block should be created or if the flyout should scroll.
|
|
64
|
+
* @param currentDragDeltaXY How far the pointer has moved from the position
|
|
65
|
+
* at mouse down, in pixel units.
|
|
66
|
+
* @return True if the drag is toward the workspace.
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
isDragTowardWorkspace(currentDragDeltaXY: Coordinate): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Returns the bounding rectangle of the drag target area in pixel units
|
|
72
|
+
* relative to viewport.
|
|
73
|
+
* @return The component's bounding box. Null if drag target area should be
|
|
74
|
+
* ignored.
|
|
75
|
+
*/
|
|
76
|
+
getClientRect(): Rect | null;
|
|
77
|
+
/**
|
|
78
|
+
* Compute height of flyout. toolbox.Position mat under each block.
|
|
79
|
+
* For RTL: Lay out the blocks right-aligned.
|
|
80
|
+
*/
|
|
81
|
+
protected reflowInternal_(): void;
|
|
82
|
+
}
|