blockly 8.0.4 → 8.0.5-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blockly.min.js +2421 -2688
- package/blockly_compressed.js +1499 -1994
- package/blockly_compressed.js.map +1 -1
- package/blocks/blocks.js +3 -2
- package/blocks/colour.js +3 -1
- package/blocks/lists.js +94 -22
- package/blocks/logic.js +14 -6
- package/blocks/loops.js +5 -3
- package/blocks/math.js +3 -1
- package/blocks/procedures.js +3 -1
- package/blocks/text.js +14 -6
- package/blocks/variables.js +3 -1
- package/blocks/variables_dynamic.js +3 -1
- package/blocks.d.ts +0 -2
- package/blocks_compressed.js +189 -171
- package/blocks_compressed.js.map +1 -1
- package/closure/goog/base.d.ts +1 -0
- package/closure/goog/base_minimal.d.ts +18 -0
- package/closure/goog/goog.d.ts +25 -0
- package/core/any_aliases.d.ts +1 -0
- package/core/any_aliases.ts +1 -0
- package/core/block.d.ts +779 -0
- package/core/{block.js → block.ts} +610 -719
- package/core/block_animations.d.ts +33 -0
- package/core/{block_animations.js → block_animations.ts} +75 -79
- package/core/block_drag_surface.d.ts +111 -0
- package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
- package/core/block_dragger.d.ts +143 -0
- package/core/{block_dragger.js → block_dragger.ts} +139 -176
- package/core/block_svg.d.ts +588 -0
- package/core/{block_svg.js → block_svg.ts} +494 -630
- package/core/blockly.d.ts +562 -0
- package/core/blockly.js +1 -1
- package/core/blockly.ts +749 -0
- package/core/blockly_options.d.ts +69 -0
- package/core/blockly_options.ts +81 -0
- package/core/blocks.d.ts +17 -0
- package/core/{blocks.js → blocks.ts} +4 -8
- package/core/browser_events.d.ts +85 -0
- package/core/{browser_events.js → browser_events.ts} +98 -93
- package/core/bubble.d.ts +279 -0
- package/core/{bubble.js → bubble.ts} +277 -370
- package/core/bubble_dragger.d.ts +73 -0
- package/core/bubble_dragger.ts +229 -0
- package/core/bump_objects.d.ts +34 -0
- package/core/{bump_objects.js → bump_objects.ts} +54 -52
- package/core/clipboard.d.ts +42 -0
- package/core/clipboard.ts +91 -0
- package/core/comment.d.ts +113 -0
- package/core/{comment.js → comment.ts} +135 -185
- package/core/common.d.ts +129 -0
- package/core/{common.js → common.ts} +105 -82
- package/core/component_manager.d.ts +91 -0
- package/core/component_manager.ts +211 -0
- package/core/config.d.ts +23 -0
- package/core/{config.js → config.ts} +12 -19
- package/core/connection.d.ts +232 -0
- package/core/{connection.js → connection.ts} +187 -237
- package/core/connection_checker.d.ts +78 -0
- package/core/{connection_checker.js → connection_checker.ts} +66 -77
- package/core/connection_db.d.ts +91 -0
- package/core/{connection_db.js → connection_db.ts} +62 -87
- package/core/connection_type.d.ts +15 -0
- package/core/{connection_type.js → connection_type.ts} +8 -12
- package/core/constants.d.ts +15 -0
- package/core/{constants.js → constants.ts} +4 -8
- package/core/contextmenu.d.ts +80 -0
- package/core/{contextmenu.js → contextmenu.ts} +118 -153
- package/core/contextmenu_items.d.ts +77 -0
- package/core/contextmenu_items.ts +576 -0
- package/core/contextmenu_registry.d.ts +105 -0
- package/core/contextmenu_registry.ts +179 -0
- package/core/css.d.ts +24 -0
- package/core/{css.js → css.ts} +16 -24
- package/core/delete_area.d.ts +47 -0
- package/core/delete_area.ts +82 -0
- package/core/dialog.d.ts +61 -0
- package/core/dialog.ts +127 -0
- package/core/drag_target.d.ts +63 -0
- package/core/drag_target.ts +94 -0
- package/core/dropdowndiv.d.ts +155 -0
- package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
- package/core/events/events.d.ts +102 -0
- package/core/events/events.ts +123 -0
- package/core/events/events_abstract.d.ts +51 -0
- package/core/events/events_abstract.ts +112 -0
- package/core/events/events_block_base.d.ts +31 -0
- package/core/events/events_block_base.ts +65 -0
- package/core/events/events_block_change.d.ts +55 -0
- package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
- package/core/events/events_block_create.d.ts +35 -0
- package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
- package/core/events/events_block_delete.d.ts +36 -0
- package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
- package/core/events/events_block_drag.d.ts +36 -0
- package/core/events/events_block_drag.ts +82 -0
- package/core/events/events_block_move.d.ts +51 -0
- package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
- package/core/events/events_bubble_open.d.ts +35 -0
- package/core/events/events_bubble_open.ts +82 -0
- package/core/events/events_click.d.ts +36 -0
- package/core/events/{events_click.js → events_click.ts} +27 -30
- package/core/events/events_comment_base.d.ts +39 -0
- package/core/events/events_comment_base.ts +107 -0
- package/core/events/events_comment_change.d.ts +43 -0
- package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
- package/core/events/events_comment_create.d.ts +35 -0
- package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
- package/core/events/events_comment_delete.d.ts +35 -0
- package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
- package/core/events/events_comment_move.d.ts +55 -0
- package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
- package/core/events/events_marker_move.d.ts +40 -0
- package/core/events/events_marker_move.ts +99 -0
- package/core/events/events_selected.d.ts +34 -0
- package/core/events/events_selected.ts +78 -0
- package/core/events/events_theme_change.d.ts +30 -0
- package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
- package/core/events/events_toolbox_item_select.d.ts +34 -0
- package/core/events/events_toolbox_item_select.ts +79 -0
- package/core/events/events_trashcan_open.d.ts +31 -0
- package/core/events/events_trashcan_open.ts +68 -0
- package/core/events/events_ui.d.ts +37 -0
- package/core/events/{events_ui.js → events_ui.ts} +27 -26
- package/core/events/events_ui_base.d.ts +26 -0
- package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
- package/core/events/events_var_base.d.ts +31 -0
- package/core/events/events_var_base.ts +65 -0
- package/core/events/events_var_create.d.ts +35 -0
- package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
- package/core/events/events_var_delete.d.ts +35 -0
- package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
- package/core/events/events_var_rename.d.ts +36 -0
- package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
- package/core/events/events_viewport.d.ts +39 -0
- package/core/events/events_viewport.ts +100 -0
- package/core/events/utils.d.ts +272 -0
- package/core/events/{utils.js → utils.ts} +148 -219
- package/core/events/workspace_events.d.ts +36 -0
- package/core/events/workspace_events.ts +86 -0
- package/core/extensions.d.ts +107 -0
- package/core/{extensions.js → extensions.ts} +153 -172
- package/core/field.d.ts +534 -0
- package/core/{field.js → field.ts} +413 -489
- package/core/field_angle.d.ts +176 -0
- package/core/field_angle.ts +563 -0
- package/core/field_checkbox.d.ts +124 -0
- package/core/field_checkbox.ts +243 -0
- package/core/field_colour.d.ts +200 -0
- package/core/field_colour.ts +632 -0
- package/core/field_dropdown.d.ts +222 -0
- package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
- package/core/field_image.d.ts +134 -0
- package/core/field_image.ts +282 -0
- package/core/field_label.d.ts +71 -0
- package/core/field_label.ts +152 -0
- package/core/field_label_serializable.d.ts +42 -0
- package/core/field_label_serializable.ts +76 -0
- package/core/field_multilineinput.d.ts +146 -0
- package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
- package/core/field_number.d.ts +156 -0
- package/core/{field_number.js → field_number.ts} +110 -123
- package/core/field_registry.d.ts +45 -0
- package/core/{field_registry.js → field_registry.ts} +37 -30
- package/core/field_textinput.d.ts +219 -0
- package/core/field_textinput.ts +591 -0
- package/core/field_variable.d.ts +217 -0
- package/core/{field_variable.js → field_variable.ts} +174 -187
- package/core/flyout_base.d.ts +459 -0
- package/core/{flyout_base.js → flyout_base.ts} +429 -518
- package/core/flyout_button.d.ts +81 -0
- package/core/flyout_button.ts +292 -0
- package/core/flyout_horizontal.d.ts +82 -0
- package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
- package/core/flyout_metrics_manager.d.ts +40 -0
- package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
- package/core/flyout_vertical.d.ts +83 -0
- package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
- package/core/generator.d.ts +205 -0
- package/core/{generator.js → generator.ts} +168 -193
- package/core/gesture.d.ts +357 -0
- package/core/{gesture.js → gesture.ts} +289 -369
- package/core/grid.d.ts +83 -0
- package/core/grid.ts +192 -0
- package/core/icon.d.ts +78 -0
- package/core/icon.ts +189 -0
- package/core/inject.d.ts +15 -0
- package/core/{inject.js → inject.ts} +101 -100
- package/core/input.d.ts +128 -0
- package/core/input.ts +309 -0
- package/core/input_types.d.ts +14 -0
- package/core/{input_types.js → input_types.ts} +8 -12
- package/core/insertion_marker_manager.d.ts +212 -0
- package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
- package/core/interfaces/i_ast_node_location.d.ts +11 -0
- package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
- package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
- package/core/interfaces/i_ast_node_location_svg.ts +37 -0
- package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
- package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
- package/core/interfaces/i_autohideable.d.ts +18 -0
- package/core/interfaces/i_autohideable.ts +34 -0
- package/core/interfaces/i_block_dragger.d.ts +43 -0
- package/core/interfaces/i_block_dragger.ts +67 -0
- package/core/interfaces/i_bounded_element.d.ts +24 -0
- package/core/interfaces/i_bounded_element.ts +42 -0
- package/core/interfaces/i_bubble.d.ts +59 -0
- package/core/interfaces/i_bubble.ts +88 -0
- package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
- package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
- package/core/interfaces/i_component.d.ts +17 -0
- package/core/interfaces/{i_component.js → i_component.ts} +9 -14
- package/core/interfaces/i_connection_checker.d.ts +69 -0
- package/core/interfaces/i_connection_checker.ts +102 -0
- package/core/interfaces/i_contextmenu.d.ts +13 -0
- package/core/interfaces/i_contextmenu.ts +26 -0
- package/core/interfaces/i_copyable.d.ts +24 -0
- package/core/interfaces/i_copyable.ts +40 -0
- package/core/interfaces/i_deletable.d.ts +16 -0
- package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
- package/core/interfaces/i_delete_area.d.ts +25 -0
- package/core/interfaces/i_delete_area.ts +46 -0
- package/core/interfaces/i_drag_target.d.ts +53 -0
- package/core/interfaces/i_drag_target.ts +84 -0
- package/core/interfaces/i_draggable.d.ts +12 -0
- package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
- package/core/interfaces/i_flyout.d.ts +134 -0
- package/core/interfaces/i_flyout.ts +186 -0
- package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
- package/core/interfaces/i_keyboard_accessible.ts +35 -0
- package/core/interfaces/i_metrics_manager.d.ts +117 -0
- package/core/interfaces/i_metrics_manager.ts +151 -0
- package/core/interfaces/i_movable.d.ts +16 -0
- package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
- package/core/interfaces/i_positionable.d.ts +27 -0
- package/core/interfaces/i_positionable.ts +50 -0
- package/core/interfaces/i_registrable.d.ts +11 -0
- package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
- package/core/interfaces/i_registrable_field.d.ts +17 -0
- package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
- package/core/interfaces/i_selectable.d.ts +18 -0
- package/core/interfaces/i_selectable.ts +34 -0
- package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
- package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
- package/core/interfaces/i_serializer.d.ts +42 -0
- package/core/interfaces/i_serializer.ts +65 -0
- package/core/interfaces/i_styleable.d.ts +21 -0
- package/core/interfaces/i_styleable.ts +35 -0
- package/core/interfaces/i_toolbox.d.ts +85 -0
- package/core/interfaces/i_toolbox.ts +127 -0
- package/core/interfaces/i_toolbox_item.d.ts +62 -0
- package/core/interfaces/i_toolbox_item.ts +84 -0
- package/core/internal_constants.d.ts +40 -0
- package/core/{internal_constants.js → internal_constants.ts} +13 -18
- package/core/keyboard_nav/ast_node.d.ts +239 -0
- package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
- package/core/keyboard_nav/basic_cursor.d.ts +88 -0
- package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
- package/core/keyboard_nav/cursor.d.ts +41 -0
- package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
- package/core/keyboard_nav/marker.d.ts +58 -0
- package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
- package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
- package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
- package/core/main.d.ts +11 -0
- package/core/main.js +303 -0
- package/core/marker_manager.d.ts +85 -0
- package/core/marker_manager.ts +181 -0
- package/core/menu.d.ts +149 -0
- package/core/{menu.js → menu.ts} +141 -174
- package/core/menuitem.d.ts +118 -0
- package/core/menuitem.ts +240 -0
- package/core/metrics_manager.d.ts +201 -0
- package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
- package/core/msg.d.ts +9 -0
- package/core/{msg.js → msg.ts} +4 -8
- package/core/mutator.d.ts +128 -0
- package/core/{mutator.js → mutator.ts} +196 -211
- package/core/names.d.ts +124 -0
- package/core/names.ts +267 -0
- package/core/options.d.ts +137 -0
- package/core/{options.js → options.ts} +147 -173
- package/core/positionable_helpers.d.ts +88 -0
- package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
- package/core/procedures.d.ts +108 -0
- package/core/{procedures.js → procedures.ts} +143 -152
- package/core/registry.d.ts +137 -0
- package/core/registry.ts +339 -0
- package/core/rendered_connection.d.ts +191 -0
- package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
- package/core/renderers/common/block_rendering.d.ts +114 -0
- package/core/renderers/common/block_rendering.ts +164 -0
- package/core/renderers/common/constants.d.ts +458 -0
- package/core/renderers/common/constants.ts +1124 -0
- package/core/renderers/common/debug.d.ts +28 -0
- package/core/renderers/common/{debug.js → debug.ts} +14 -20
- package/core/renderers/common/debugger.d.ts +120 -0
- package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
- package/core/renderers/common/drawer.d.ts +132 -0
- package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
- package/core/renderers/common/i_path_object.d.ts +117 -0
- package/core/renderers/common/i_path_object.ts +161 -0
- package/core/renderers/common/info.d.ts +194 -0
- package/core/renderers/common/{info.js → info.ts} +165 -222
- package/core/renderers/common/marker_svg.d.ts +220 -0
- package/core/renderers/common/marker_svg.ts +680 -0
- package/core/renderers/common/path_object.d.ts +146 -0
- package/core/renderers/common/path_object.ts +272 -0
- package/core/renderers/common/renderer.d.ts +157 -0
- package/core/renderers/common/renderer.ts +271 -0
- package/core/renderers/geras/constants.d.ts +23 -0
- package/core/renderers/geras/constants.ts +61 -0
- package/core/renderers/geras/drawer.d.ts +43 -0
- package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
- package/core/renderers/geras/geras.d.ts +11 -0
- package/core/renderers/geras/geras.ts +37 -0
- package/core/renderers/geras/highlight_constants.d.ts +108 -0
- package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
- package/core/renderers/geras/highlighter.d.ts +98 -0
- package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
- package/core/renderers/geras/info.d.ts +45 -0
- package/core/renderers/geras/{info.js → info.ts} +61 -99
- package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
- package/core/renderers/geras/measurables/inline_input.ts +51 -0
- package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
- package/core/renderers/geras/measurables/statement_input.ts +50 -0
- package/core/renderers/geras/path_object.d.ts +47 -0
- package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
- package/core/renderers/geras/renderer.d.ts +69 -0
- package/core/renderers/geras/renderer.ts +126 -0
- package/core/renderers/measurables/base.d.ts +27 -0
- package/core/renderers/measurables/base.ts +53 -0
- package/core/renderers/measurables/bottom_row.d.ts +61 -0
- package/core/renderers/measurables/bottom_row.ts +120 -0
- package/core/renderers/measurables/connection.d.ts +25 -0
- package/core/renderers/measurables/connection.ts +52 -0
- package/core/renderers/measurables/external_value_input.d.ts +27 -0
- package/core/renderers/measurables/external_value_input.ts +65 -0
- package/core/renderers/measurables/field.d.ts +30 -0
- package/core/renderers/measurables/field.ts +63 -0
- package/core/renderers/measurables/hat.d.ts +21 -0
- package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
- package/core/renderers/measurables/icon.d.ts +26 -0
- package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
- package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
- package/core/renderers/measurables/in_row_spacer.ts +44 -0
- package/core/renderers/measurables/inline_input.d.ts +24 -0
- package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
- package/core/renderers/measurables/input_connection.d.ts +29 -0
- package/core/renderers/measurables/input_connection.ts +66 -0
- package/core/renderers/measurables/input_row.d.ts +30 -0
- package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
- package/core/renderers/measurables/jagged_edge.d.ts +20 -0
- package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
- package/core/renderers/measurables/next_connection.d.ts +23 -0
- package/core/renderers/measurables/next_connection.ts +47 -0
- package/core/renderers/measurables/output_connection.d.ts +26 -0
- package/core/renderers/measurables/output_connection.ts +56 -0
- package/core/renderers/measurables/previous_connection.d.ts +23 -0
- package/core/renderers/measurables/previous_connection.ts +47 -0
- package/core/renderers/measurables/round_corner.d.ts +21 -0
- package/core/renderers/measurables/round_corner.ts +49 -0
- package/core/renderers/measurables/row.d.ts +141 -0
- package/core/renderers/measurables/row.ts +225 -0
- package/core/renderers/measurables/spacer_row.d.ts +29 -0
- package/core/renderers/measurables/spacer_row.ts +55 -0
- package/core/renderers/measurables/square_corner.d.ts +21 -0
- package/core/renderers/measurables/square_corner.ts +47 -0
- package/core/renderers/measurables/statement_input.d.ts +22 -0
- package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
- package/core/renderers/measurables/top_row.d.ts +56 -0
- package/core/renderers/measurables/top_row.ts +122 -0
- package/core/renderers/measurables/types.d.ts +235 -0
- package/core/renderers/measurables/types.ts +332 -0
- package/core/renderers/minimalist/constants.d.ts +14 -0
- package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
- package/core/renderers/minimalist/drawer.d.ts +21 -0
- package/core/renderers/minimalist/drawer.ts +38 -0
- package/core/renderers/minimalist/info.d.ts +30 -0
- package/core/renderers/minimalist/info.ts +52 -0
- package/core/renderers/minimalist/minimalist.d.ts +6 -0
- package/core/renderers/minimalist/minimalist.ts +22 -0
- package/core/renderers/minimalist/renderer.d.ts +41 -0
- package/core/renderers/minimalist/renderer.ts +71 -0
- package/core/renderers/thrasos/info.d.ts +40 -0
- package/core/renderers/thrasos/{info.js → info.ts} +66 -67
- package/core/renderers/thrasos/renderer.d.ts +25 -0
- package/core/renderers/thrasos/renderer.ts +48 -0
- package/core/renderers/thrasos/thrasos.d.ts +4 -0
- package/core/renderers/thrasos/thrasos.ts +20 -0
- package/core/renderers/zelos/constants.d.ts +186 -0
- package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
- package/core/renderers/zelos/drawer.d.ts +47 -0
- package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
- package/core/renderers/zelos/info.d.ts +88 -0
- package/core/renderers/zelos/{info.js → info.ts} +111 -142
- package/core/renderers/zelos/marker_svg.d.ts +46 -0
- package/core/renderers/zelos/marker_svg.ts +151 -0
- package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
- package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
- package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
- package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
- package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
- package/core/renderers/zelos/measurables/row_elements.ts +45 -0
- package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
- package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
- package/core/renderers/zelos/path_object.d.ts +77 -0
- package/core/renderers/zelos/path_object.ts +215 -0
- package/core/renderers/zelos/renderer.d.ts +74 -0
- package/core/renderers/zelos/renderer.ts +142 -0
- package/core/renderers/zelos/zelos.d.ts +12 -0
- package/core/renderers/zelos/zelos.ts +39 -0
- package/core/scrollbar.d.ts +277 -0
- package/core/{scrollbar.js → scrollbar.ts} +307 -328
- package/core/scrollbar_pair.d.ts +105 -0
- package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
- package/core/serialization/blocks.d.ts +98 -0
- package/core/serialization/{blocks.js → blocks.ts} +229 -228
- package/core/serialization/exceptions.d.ts +73 -0
- package/core/serialization/exceptions.ts +98 -0
- package/core/serialization/priorities.d.ts +15 -0
- package/core/serialization/{priorities.js → priorities.ts} +4 -10
- package/core/serialization/registry.d.ts +20 -0
- package/core/serialization/{registry.js → registry.ts} +11 -13
- package/core/serialization/variables.d.ts +14 -0
- package/core/serialization/{variables.js → variables.ts} +30 -32
- package/core/serialization/workspaces.d.ts +28 -0
- package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
- package/core/shortcut_items.d.ts +61 -0
- package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
- package/core/shortcut_registry.d.ts +151 -0
- package/core/shortcut_registry.ts +355 -0
- package/core/sprites.d.ts +19 -0
- package/core/{sprites.js → sprites.ts} +4 -6
- package/core/theme/classic.d.ts +12 -0
- package/core/theme/{classic.js → classic.ts} +5 -7
- package/core/theme/themes.d.ts +8 -0
- package/core/theme/themes.ts +22 -0
- package/core/theme/zelos.d.ts +11 -0
- package/core/theme/{zelos.js → zelos.ts} +4 -7
- package/core/theme.d.ts +142 -0
- package/core/theme.ts +221 -0
- package/core/theme_manager.d.ts +81 -0
- package/core/theme_manager.ts +186 -0
- package/core/toolbox/category.d.ts +239 -0
- package/core/toolbox/category.ts +679 -0
- package/core/toolbox/collapsible_category.d.ts +91 -0
- package/core/toolbox/collapsible_category.ts +273 -0
- package/core/toolbox/separator.d.ts +39 -0
- package/core/toolbox/separator.ts +105 -0
- package/core/toolbox/toolbox.d.ts +352 -0
- package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
- package/core/toolbox/toolbox_item.d.ts +85 -0
- package/core/toolbox/toolbox_item.ts +147 -0
- package/core/tooltip.d.ts +126 -0
- package/core/{tooltip.js → tooltip.ts} +136 -214
- package/core/touch.d.ts +121 -0
- package/core/touch.ts +306 -0
- package/core/touch_gesture.d.ts +115 -0
- package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
- package/core/trashcan.d.ts +195 -0
- package/core/{trashcan.js → trashcan.ts} +226 -312
- package/core/utils/aria.d.ts +67 -0
- package/core/utils/{aria.js → aria.ts} +47 -61
- package/core/utils/array.d.ts +14 -0
- package/core/utils/{array.js → array.ts} +10 -12
- package/core/utils/colour.d.ts +103 -0
- package/core/utils/{colour.js → colour.ts} +60 -72
- package/core/utils/coordinate.d.ts +72 -0
- package/core/utils/coordinate.ts +124 -0
- package/core/utils/deprecation.d.ts +17 -0
- package/core/utils/{deprecation.js → deprecation.ts} +11 -11
- package/core/utils/dom.d.ts +165 -0
- package/core/utils/{dom.js → dom.ts} +125 -147
- package/core/utils/idgenerator.d.ts +25 -0
- package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
- package/core/utils/keycodes.d.ts +137 -0
- package/core/utils/keycodes.ts +169 -0
- package/core/utils/math.d.ts +30 -0
- package/core/utils/{math.js → math.ts} +17 -19
- package/core/utils/metrics.d.ts +64 -0
- package/core/utils/metrics.ts +97 -0
- package/core/utils/object.d.ts +35 -0
- package/core/utils/{object.js → object.ts} +30 -26
- package/core/utils/parsing.d.ts +50 -0
- package/core/utils/{parsing.js → parsing.ts} +50 -50
- package/core/utils/rect.d.ts +38 -0
- package/core/utils/{rect.js → rect.ts} +18 -31
- package/core/utils/sentinel.d.ts +11 -0
- package/core/utils/{sentinel.js → sentinel.ts} +3 -5
- package/core/utils/size.d.ts +27 -0
- package/core/utils/{size.js → size.ts} +12 -26
- package/core/utils/string.d.ts +55 -0
- package/core/utils/{string.js → string.ts} +64 -61
- package/core/utils/style.d.ts +127 -0
- package/core/utils/{style.js → style.ts} +102 -92
- package/core/utils/svg.d.ts +68 -0
- package/core/utils/svg.ts +88 -0
- package/core/utils/svg_math.d.ts +70 -0
- package/core/utils/{svg_math.js → svg_math.ts} +72 -71
- package/core/utils/svg_paths.d.ts +101 -0
- package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
- package/core/utils/toolbox.d.ts +193 -0
- package/core/utils/toolbox.ts +433 -0
- package/core/utils/useragent.d.ts +33 -0
- package/core/utils/useragent.ts +135 -0
- package/core/utils/xml.d.ts +52 -0
- package/core/utils/{xml.js → xml.ts} +26 -36
- package/core/utils.d.ts +217 -0
- package/core/utils.ts +428 -0
- package/core/variable_map.d.ts +141 -0
- package/core/{variable_map.js → variable_map.ts} +131 -149
- package/core/variable_model.d.ts +40 -0
- package/core/variable_model.ts +82 -0
- package/core/variables.d.ts +181 -0
- package/core/{variables.js → variables.ts} +206 -188
- package/core/variables_dynamic.d.ts +38 -0
- package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
- package/core/warning.d.ts +50 -0
- package/core/{warning.js → warning.ts} +52 -66
- package/core/widgetdiv.d.ts +69 -0
- package/core/widgetdiv.ts +257 -0
- package/core/workspace.d.ts +386 -0
- package/core/workspace.ts +801 -0
- package/core/workspace_audio.d.ts +47 -0
- package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
- package/core/workspace_comment.d.ts +170 -0
- package/core/workspace_comment.ts +398 -0
- package/core/workspace_comment_svg.d.ts +329 -0
- package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
- package/core/workspace_drag_surface_svg.d.ts +68 -0
- package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
- package/core/workspace_dragger.d.ts +48 -0
- package/core/workspace_dragger.ts +104 -0
- package/core/workspace_svg.d.ts +920 -0
- package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
- package/core/xml.d.ts +117 -0
- package/core/{xml.js → xml.ts} +306 -326
- package/core/zoom_controls.d.ts +130 -0
- package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
- package/core.d.ts +1 -3
- package/core.js +1 -2
- package/dart.d.ts +0 -3
- package/dart_compressed.js +387 -99
- package/dart_compressed.js.map +1 -1
- package/generators/dart/all.js +2 -0
- package/generators/dart/colour.js +1 -1
- package/generators/dart/lists.js +1 -1
- package/generators/dart/logic.js +1 -1
- package/generators/dart/loops.js +1 -1
- package/generators/dart/math.js +1 -1
- package/generators/dart/procedures.js +1 -1
- package/generators/dart/text.js +1 -1
- package/generators/dart/variables.js +1 -1
- package/generators/dart/variables_dynamic.js +1 -1
- package/generators/dart.js +1 -2
- package/generators/javascript/all.js +2 -0
- package/generators/javascript/colour.js +1 -1
- package/generators/javascript/lists.js +1 -1
- package/generators/javascript/logic.js +1 -1
- package/generators/javascript/loops.js +1 -1
- package/generators/javascript/math.js +4 -4
- package/generators/javascript/procedures.js +1 -1
- package/generators/javascript/text.js +2 -2
- package/generators/javascript/variables.js +1 -1
- package/generators/javascript/variables_dynamic.js +1 -1
- package/generators/javascript.js +1 -3
- package/generators/lua/all.js +2 -0
- package/generators/lua/colour.js +1 -1
- package/generators/lua/lists.js +1 -1
- package/generators/lua/logic.js +1 -1
- package/generators/lua/loops.js +1 -1
- package/generators/lua/math.js +1 -1
- package/generators/lua/procedures.js +1 -1
- package/generators/lua/text.js +1 -1
- package/generators/lua/variables.js +1 -1
- package/generators/lua/variables_dynamic.js +1 -1
- package/generators/lua.js +1 -2
- package/generators/php/all.js +2 -0
- package/generators/php/colour.js +1 -1
- package/generators/php/lists.js +1 -2
- package/generators/php/logic.js +1 -1
- package/generators/php/loops.js +1 -1
- package/generators/php/math.js +1 -1
- package/generators/php/procedures.js +1 -1
- package/generators/php/text.js +1 -1
- package/generators/php/variables.js +1 -1
- package/generators/php/variables_dynamic.js +1 -1
- package/generators/php.js +1 -2
- package/generators/python/all.js +2 -0
- package/generators/python/colour.js +3 -3
- package/generators/python/lists.js +1 -1
- package/generators/python/logic.js +1 -1
- package/generators/python/loops.js +4 -7
- package/generators/python/math.js +1 -1
- package/generators/python/procedures.js +1 -1
- package/generators/python/text.js +1 -1
- package/generators/python/variables.js +1 -1
- package/generators/python/variables_dynamic.js +1 -1
- package/generators/python.js +1 -2
- package/index.d.ts +2 -8
- package/javascript.d.ts +0 -3
- package/javascript_compressed.js +314 -104
- package/javascript_compressed.js.map +1 -1
- package/lua.d.ts +0 -3
- package/lua_compressed.js +399 -81
- package/lua_compressed.js.map +1 -1
- package/msg/ab.js +420 -420
- package/msg/ace.js +420 -420
- package/msg/af.js +420 -420
- package/msg/am.js +420 -420
- package/msg/ar.js +420 -420
- package/msg/ast.js +420 -420
- package/msg/az.js +420 -420
- package/msg/ba.js +420 -420
- package/msg/bcc.js +420 -420
- package/msg/be-tarask.js +420 -420
- package/msg/be.js +420 -420
- package/msg/bg.js +420 -420
- package/msg/bn.js +420 -420
- package/msg/br.js +420 -420
- package/msg/bs.js +420 -420
- package/msg/ca.js +420 -420
- package/msg/cdo.js +420 -420
- package/msg/cs.js +420 -420
- package/msg/da.js +420 -420
- package/msg/de.js +420 -420
- package/msg/diq.js +420 -420
- package/msg/dty.js +420 -420
- package/msg/ee.js +420 -420
- package/msg/el.js +420 -420
- package/msg/en-gb.js +420 -420
- package/msg/en.js +420 -420
- package/msg/eo.js +420 -420
- package/msg/es.js +420 -420
- package/msg/et.js +420 -420
- package/msg/eu.js +420 -420
- package/msg/fa.js +420 -420
- package/msg/fi.js +420 -420
- package/msg/fo.js +420 -420
- package/msg/fr.js +420 -420
- package/msg/frr.js +420 -420
- package/msg/gl.js +420 -420
- package/msg/gn.js +420 -420
- package/msg/gor.js +420 -420
- package/msg/ha.js +420 -420
- package/msg/hak.js +420 -420
- package/msg/he.js +420 -420
- package/msg/hi.js +420 -420
- package/msg/hr.js +420 -420
- package/msg/hrx.js +420 -420
- package/msg/hu.js +420 -420
- package/msg/hy.js +420 -420
- package/msg/ia.js +420 -420
- package/msg/id.js +420 -420
- package/msg/ig.js +420 -420
- package/msg/inh.js +420 -420
- package/msg/is.js +420 -420
- package/msg/it.js +420 -420
- package/msg/ja.js +420 -420
- package/msg/ka.js +420 -420
- package/msg/kab.js +420 -420
- package/msg/kbd-cyrl.js +420 -420
- package/msg/km.js +420 -420
- package/msg/kn.js +420 -420
- package/msg/ko.js +420 -420
- package/msg/ksh.js +420 -420
- package/msg/ku-latn.js +420 -420
- package/msg/ky.js +420 -420
- package/msg/la.js +420 -420
- package/msg/lb.js +420 -420
- package/msg/lki.js +420 -420
- package/msg/lo.js +420 -420
- package/msg/lrc.js +420 -420
- package/msg/lt.js +420 -420
- package/msg/lv.js +420 -420
- package/msg/mg.js +420 -420
- package/msg/mk.js +420 -420
- package/msg/ml.js +420 -420
- package/msg/mnw.js +420 -420
- package/msg/ms.js +420 -420
- package/msg/my.js +420 -420
- package/msg/mzn.js +420 -420
- package/msg/nb.js +420 -420
- package/msg/ne.js +420 -420
- package/msg/nl.js +420 -420
- package/msg/oc.js +420 -420
- package/msg/olo.js +420 -420
- package/msg/pa.js +420 -420
- package/msg/pl.js +420 -420
- package/msg/pms.js +420 -420
- package/msg/ps.js +420 -420
- package/msg/pt-br.js +420 -420
- package/msg/pt.js +420 -420
- package/msg/ro.js +420 -420
- package/msg/ru.js +420 -420
- package/msg/sc.js +420 -420
- package/msg/sco.js +420 -420
- package/msg/sd.js +420 -420
- package/msg/shn.js +420 -420
- package/msg/si.js +420 -420
- package/msg/sk.js +420 -420
- package/msg/skr-arab.js +420 -420
- package/msg/sl.js +420 -420
- package/msg/smn.js +420 -420
- package/msg/sq.js +420 -420
- package/msg/sr-latn.js +420 -420
- package/msg/sr.js +420 -420
- package/msg/sv.js +420 -420
- package/msg/sw.js +420 -420
- package/msg/ta.js +420 -420
- package/msg/tcy.js +420 -420
- package/msg/te.js +420 -420
- package/msg/th.js +420 -420
- package/msg/ti.js +420 -420
- package/msg/tl.js +420 -420
- package/msg/tlh.js +420 -420
- package/msg/tr.js +420 -420
- package/msg/ug-arab.js +420 -420
- package/msg/uk.js +420 -420
- package/msg/ur.js +420 -420
- package/msg/uz.js +420 -420
- package/msg/vi.js +420 -420
- package/msg/xmf.js +420 -420
- package/msg/yo.js +420 -420
- package/msg/yue.js +420 -420
- package/msg/zgh.js +420 -420
- package/msg/zh-hans.js +420 -420
- package/msg/zh-hant.js +420 -420
- package/package.json +5 -5
- package/php.d.ts +0 -3
- package/php_compressed.js +322 -93
- package/php_compressed.js.map +1 -1
- package/python.d.ts +0 -3
- package/python_compressed.js +237 -90
- package/python_compressed.js.map +1 -1
- package/blockly.d.ts +0 -26127
- package/core/blockly_options.js +0 -28
- package/core/bubble_dragger.js +0 -298
- package/core/clipboard.js +0 -80
- package/core/component_manager.js +0 -263
- package/core/contextmenu_items.js +0 -651
- package/core/contextmenu_registry.js +0 -178
- package/core/delete_area.js +0 -87
- package/core/dialog.js +0 -107
- package/core/drag_target.js +0 -98
- package/core/events/events.js +0 -147
- package/core/events/events_abstract.js +0 -133
- package/core/events/events_block_base.js +0 -70
- package/core/events/events_block_drag.js +0 -89
- package/core/events/events_bubble_open.js +0 -90
- package/core/events/events_comment_base.js +0 -121
- package/core/events/events_marker_move.js +0 -110
- package/core/events/events_selected.js +0 -83
- package/core/events/events_toolbox_item_select.js +0 -84
- package/core/events/events_trashcan_open.js +0 -73
- package/core/events/events_var_base.js +0 -70
- package/core/events/events_viewport.js +0 -107
- package/core/events/workspace_events.js +0 -93
- package/core/field_angle.js +0 -591
- package/core/field_checkbox.js +0 -255
- package/core/field_colour.js +0 -717
- package/core/field_image.js +0 -304
- package/core/field_label.js +0 -149
- package/core/field_label_serializable.js +0 -80
- package/core/field_textinput.js +0 -619
- package/core/flyout_button.js +0 -356
- package/core/grid.js +0 -226
- package/core/icon.js +0 -225
- package/core/input.js +0 -335
- package/core/interfaces/i_ast_node_location_svg.js +0 -45
- package/core/interfaces/i_ast_node_location_with_block.js +0 -41
- package/core/interfaces/i_autohideable.js +0 -40
- package/core/interfaces/i_block_dragger.js +0 -66
- package/core/interfaces/i_bounded_element.js +0 -45
- package/core/interfaces/i_bubble.js +0 -95
- package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
- package/core/interfaces/i_connection_checker.js +0 -104
- package/core/interfaces/i_contextmenu.js +0 -32
- package/core/interfaces/i_copyable.js +0 -49
- package/core/interfaces/i_delete_area.js +0 -50
- package/core/interfaces/i_drag_target.js +0 -88
- package/core/interfaces/i_flyout.js +0 -201
- package/core/interfaces/i_keyboard_accessible.js +0 -38
- package/core/interfaces/i_metrics_manager.js +0 -154
- package/core/interfaces/i_positionable.js +0 -51
- package/core/interfaces/i_selectable.js +0 -51
- package/core/interfaces/i_selectable_toolbox_item.js +0 -73
- package/core/interfaces/i_serializer.js +0 -77
- package/core/interfaces/i_styleable.js +0 -39
- package/core/interfaces/i_toolbox.js +0 -142
- package/core/interfaces/i_toolbox_item.js +0 -85
- package/core/marker_manager.js +0 -213
- package/core/menuitem.js +0 -292
- package/core/names.js +0 -293
- package/core/registry.js +0 -384
- package/core/renderers/common/block_rendering.js +0 -170
- package/core/renderers/common/constants.js +0 -1250
- package/core/renderers/common/i_path_object.js +0 -162
- package/core/renderers/common/marker_svg.js +0 -721
- package/core/renderers/common/path_object.js +0 -283
- package/core/renderers/common/renderer.js +0 -305
- package/core/renderers/geras/constants.js +0 -73
- package/core/renderers/geras/geras.js +0 -36
- package/core/renderers/geras/measurables/inline_input.js +0 -58
- package/core/renderers/geras/measurables/statement_input.js +0 -57
- package/core/renderers/geras/renderer.js +0 -149
- package/core/renderers/measurables/base.js +0 -64
- package/core/renderers/measurables/bottom_row.js +0 -138
- package/core/renderers/measurables/connection.js +0 -56
- package/core/renderers/measurables/external_value_input.js +0 -70
- package/core/renderers/measurables/field.js +0 -71
- package/core/renderers/measurables/in_row_spacer.js +0 -47
- package/core/renderers/measurables/input_connection.js +0 -75
- package/core/renderers/measurables/next_connection.js +0 -50
- package/core/renderers/measurables/output_connection.js +0 -61
- package/core/renderers/measurables/previous_connection.js +0 -50
- package/core/renderers/measurables/round_corner.js +0 -52
- package/core/renderers/measurables/row.js +0 -247
- package/core/renderers/measurables/spacer_row.js +0 -69
- package/core/renderers/measurables/square_corner.js +0 -50
- package/core/renderers/measurables/top_row.js +0 -143
- package/core/renderers/measurables/types.js +0 -353
- package/core/renderers/minimalist/drawer.js +0 -42
- package/core/renderers/minimalist/info.js +0 -54
- package/core/renderers/minimalist/minimalist.js +0 -26
- package/core/renderers/minimalist/renderer.js +0 -80
- package/core/renderers/thrasos/renderer.js +0 -53
- package/core/renderers/thrasos/thrasos.js +0 -22
- package/core/renderers/zelos/marker_svg.js +0 -179
- package/core/renderers/zelos/measurables/bottom_row.js +0 -66
- package/core/renderers/zelos/measurables/row_elements.js +0 -46
- package/core/renderers/zelos/path_object.js +0 -247
- package/core/renderers/zelos/renderer.js +0 -147
- package/core/renderers/zelos/zelos.js +0 -38
- package/core/serialization/exceptions.js +0 -144
- package/core/shortcut_registry.js +0 -366
- package/core/theme/themes.js +0 -23
- package/core/theme.js +0 -228
- package/core/theme_manager.js +0 -211
- package/core/toolbox/category.js +0 -751
- package/core/toolbox/collapsible_category.js +0 -311
- package/core/toolbox/separator.js +0 -133
- package/core/toolbox/toolbox_item.js +0 -173
- package/core/touch.js +0 -285
- package/core/utils/coordinate.js +0 -138
- package/core/utils/global.js +0 -41
- package/core/utils/keycodes.js +0 -172
- package/core/utils/metrics.js +0 -154
- package/core/utils/svg.js +0 -186
- package/core/utils/toolbox.js +0 -459
- package/core/utils/useragent.js +0 -197
- package/core/utils.js +0 -383
- package/core/variable_model.js +0 -96
- package/core/widgetdiv.js +0 -290
- package/core/workspace.js +0 -836
- package/core/workspace_comment.js +0 -400
- package/core/workspace_dragger.js +0 -115
package/core/menuitem.ts
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2019 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @fileoverview Blockly menu item similar to Closure's goog.ui.MenuItem
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Blockly menu item similar to Closure's goog.ui.MenuItem
|
|
13
|
+
* @class
|
|
14
|
+
*/
|
|
15
|
+
import * as goog from '../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.MenuItem');
|
|
17
|
+
|
|
18
|
+
import * as aria from './utils/aria.js';
|
|
19
|
+
import * as dom from './utils/dom.js';
|
|
20
|
+
import * as idGenerator from './utils/idgenerator.js';
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Class representing an item in a menu.
|
|
25
|
+
* @alias Blockly.MenuItem
|
|
26
|
+
*/
|
|
27
|
+
export class MenuItem {
|
|
28
|
+
/** Is the menu item clickable, as opposed to greyed-out. */
|
|
29
|
+
private enabled_ = true;
|
|
30
|
+
|
|
31
|
+
/** The DOM element for the menu item. */
|
|
32
|
+
private element_: HTMLDivElement|null = null;
|
|
33
|
+
|
|
34
|
+
/** Whether the menu item is rendered right-to-left. */
|
|
35
|
+
private rightToLeft_ = false;
|
|
36
|
+
|
|
37
|
+
/** ARIA name for this menu. */
|
|
38
|
+
private roleName_: aria.Role|null = null;
|
|
39
|
+
|
|
40
|
+
/** Is this menu item checkable. */
|
|
41
|
+
private checkable_ = false;
|
|
42
|
+
|
|
43
|
+
/** Is this menu item currently checked. */
|
|
44
|
+
private checked_ = false;
|
|
45
|
+
|
|
46
|
+
/** Is this menu item currently highlighted. */
|
|
47
|
+
private highlight_ = false;
|
|
48
|
+
|
|
49
|
+
/** Bound function to call when this menu item is clicked. */
|
|
50
|
+
private actionHandler_: Function|null = null;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @param content Text caption to display as the content of the item, or a
|
|
54
|
+
* HTML element to display.
|
|
55
|
+
* @param opt_value Data/model associated with the menu item.
|
|
56
|
+
*/
|
|
57
|
+
constructor(
|
|
58
|
+
private readonly content: string|HTMLElement,
|
|
59
|
+
private readonly opt_value?: string) {}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Creates the menuitem's DOM.
|
|
63
|
+
* @return Completed DOM.
|
|
64
|
+
*/
|
|
65
|
+
createDom(): Element {
|
|
66
|
+
const element = (document.createElement('div'));
|
|
67
|
+
element.id = idGenerator.getNextUniqueId();
|
|
68
|
+
this.element_ = element;
|
|
69
|
+
|
|
70
|
+
// Set class and style
|
|
71
|
+
// goog-menuitem* is deprecated, use blocklyMenuItem*. May 2020.
|
|
72
|
+
element.className = 'blocklyMenuItem goog-menuitem ' +
|
|
73
|
+
(this.enabled_ ? '' :
|
|
74
|
+
'blocklyMenuItemDisabled goog-menuitem-disabled ') +
|
|
75
|
+
(this.checked_ ? 'blocklyMenuItemSelected goog-option-selected ' : '') +
|
|
76
|
+
(this.highlight_ ? 'blocklyMenuItemHighlight goog-menuitem-highlight ' :
|
|
77
|
+
'') +
|
|
78
|
+
(this.rightToLeft_ ? 'blocklyMenuItemRtl goog-menuitem-rtl ' : '');
|
|
79
|
+
|
|
80
|
+
const content = (document.createElement('div'));
|
|
81
|
+
content.className = 'blocklyMenuItemContent goog-menuitem-content';
|
|
82
|
+
// Add a checkbox for checkable menu items.
|
|
83
|
+
if (this.checkable_) {
|
|
84
|
+
const checkbox = (document.createElement('div'));
|
|
85
|
+
checkbox.className = 'blocklyMenuItemCheckbox goog-menuitem-checkbox';
|
|
86
|
+
content.appendChild(checkbox);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
let contentDom: Node = this.content as HTMLElement;
|
|
90
|
+
if (typeof this.content === 'string') {
|
|
91
|
+
contentDom = document.createTextNode(this.content);
|
|
92
|
+
}
|
|
93
|
+
content.appendChild(contentDom);
|
|
94
|
+
element.appendChild(content);
|
|
95
|
+
|
|
96
|
+
// Initialize ARIA role and state.
|
|
97
|
+
if (this.roleName_) {
|
|
98
|
+
aria.setRole(element, this.roleName_);
|
|
99
|
+
}
|
|
100
|
+
aria.setState(
|
|
101
|
+
element, aria.State.SELECTED,
|
|
102
|
+
this.checkable_ && this.checked_ || false);
|
|
103
|
+
aria.setState(element, aria.State.DISABLED, !this.enabled_);
|
|
104
|
+
|
|
105
|
+
return element;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/** Dispose of this menu item. */
|
|
109
|
+
dispose() {
|
|
110
|
+
this.element_ = null;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Gets the menu item's element.
|
|
115
|
+
* @return The DOM element.
|
|
116
|
+
* @internal
|
|
117
|
+
*/
|
|
118
|
+
getElement(): Element|null {
|
|
119
|
+
return this.element_;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Gets the unique ID for this menu item.
|
|
124
|
+
* @return Unique component ID.
|
|
125
|
+
* @internal
|
|
126
|
+
*/
|
|
127
|
+
getId(): string {
|
|
128
|
+
return this.element_!.id;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Gets the value associated with the menu item.
|
|
133
|
+
* @return value Value associated with the menu item.
|
|
134
|
+
* @internal
|
|
135
|
+
*/
|
|
136
|
+
getValue(): AnyDuringMigration {
|
|
137
|
+
return this.opt_value;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Set menu item's rendering direction.
|
|
142
|
+
* @param rtl True if RTL, false if LTR.
|
|
143
|
+
* @internal
|
|
144
|
+
*/
|
|
145
|
+
setRightToLeft(rtl: boolean) {
|
|
146
|
+
this.rightToLeft_ = rtl;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Set the menu item's accessibility role.
|
|
151
|
+
* @param roleName Role name.
|
|
152
|
+
* @internal
|
|
153
|
+
*/
|
|
154
|
+
setRole(roleName: aria.Role) {
|
|
155
|
+
this.roleName_ = roleName;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Sets the menu item to be checkable or not. Set to true for menu items
|
|
160
|
+
* that represent checkable options.
|
|
161
|
+
* @param checkable Whether the menu item is checkable.
|
|
162
|
+
* @internal
|
|
163
|
+
*/
|
|
164
|
+
setCheckable(checkable: boolean) {
|
|
165
|
+
this.checkable_ = checkable;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Checks or unchecks the component.
|
|
170
|
+
* @param checked Whether to check or uncheck the component.
|
|
171
|
+
* @internal
|
|
172
|
+
*/
|
|
173
|
+
setChecked(checked: boolean) {
|
|
174
|
+
this.checked_ = checked;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Highlights or unhighlights the component.
|
|
179
|
+
* @param highlight Whether to highlight or unhighlight the component.
|
|
180
|
+
* @internal
|
|
181
|
+
*/
|
|
182
|
+
setHighlighted(highlight: boolean) {
|
|
183
|
+
this.highlight_ = highlight;
|
|
184
|
+
|
|
185
|
+
const el = this.getElement();
|
|
186
|
+
if (el && this.isEnabled()) {
|
|
187
|
+
// goog-menuitem-highlight is deprecated, use blocklyMenuItemHighlight.
|
|
188
|
+
// May 2020.
|
|
189
|
+
const name = 'blocklyMenuItemHighlight';
|
|
190
|
+
const nameDep = 'goog-menuitem-highlight';
|
|
191
|
+
if (highlight) {
|
|
192
|
+
dom.addClass(el, name);
|
|
193
|
+
dom.addClass(el, nameDep);
|
|
194
|
+
} else {
|
|
195
|
+
dom.removeClass(el, name);
|
|
196
|
+
dom.removeClass(el, nameDep);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Returns true if the menu item is enabled, false otherwise.
|
|
203
|
+
* @return Whether the menu item is enabled.
|
|
204
|
+
* @internal
|
|
205
|
+
*/
|
|
206
|
+
isEnabled(): boolean {
|
|
207
|
+
return this.enabled_;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Enables or disables the menu item.
|
|
212
|
+
* @param enabled Whether to enable or disable the menu item.
|
|
213
|
+
* @internal
|
|
214
|
+
*/
|
|
215
|
+
setEnabled(enabled: boolean) {
|
|
216
|
+
this.enabled_ = enabled;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Performs the appropriate action when the menu item is activated
|
|
221
|
+
* by the user.
|
|
222
|
+
* @internal
|
|
223
|
+
*/
|
|
224
|
+
performAction() {
|
|
225
|
+
if (this.isEnabled() && this.actionHandler_) {
|
|
226
|
+
this.actionHandler_(this);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Set the handler that's called when the menu item is activated by the user.
|
|
232
|
+
* `obj` will be used as the 'this' object in the function when called.
|
|
233
|
+
* @param fn The handler.
|
|
234
|
+
* @param obj Used as the 'this' object in fn when called.
|
|
235
|
+
* @internal
|
|
236
|
+
*/
|
|
237
|
+
onAction(fn: (p1: MenuItem) => AnyDuringMigration, obj: AnyDuringMigration) {
|
|
238
|
+
this.actionHandler_ = fn.bind(obj);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2021 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { IFlyout } from './interfaces/i_flyout.js';
|
|
7
|
+
import type { IMetricsManager } from './interfaces/i_metrics_manager.js';
|
|
8
|
+
import type { IToolbox } from './interfaces/i_toolbox.js';
|
|
9
|
+
import type { Metrics } from './utils/metrics.js';
|
|
10
|
+
import { Size } from './utils/size.js';
|
|
11
|
+
import * as toolboxUtils from './utils/toolbox.js';
|
|
12
|
+
import type { WorkspaceSvg } from './workspace_svg.js';
|
|
13
|
+
/**
|
|
14
|
+
* The manager for all workspace metrics calculations.
|
|
15
|
+
* @alias Blockly.MetricsManager
|
|
16
|
+
*/
|
|
17
|
+
export declare class MetricsManager implements IMetricsManager {
|
|
18
|
+
/** The workspace to calculate metrics for. */
|
|
19
|
+
protected readonly workspace_: WorkspaceSvg;
|
|
20
|
+
/** @param workspace The workspace to calculate metrics for. */
|
|
21
|
+
constructor(workspace: WorkspaceSvg);
|
|
22
|
+
/**
|
|
23
|
+
* Gets the dimensions of the given workspace component, in pixel coordinates.
|
|
24
|
+
* @param elem The element to get the dimensions of, or null. It should be a
|
|
25
|
+
* toolbox or flyout, and should implement getWidth() and getHeight().
|
|
26
|
+
* @return An object containing width and height attributes, which will both
|
|
27
|
+
* be zero if elem did not exist.
|
|
28
|
+
*/
|
|
29
|
+
protected getDimensionsPx_(elem: IToolbox | null | IFlyout): Size;
|
|
30
|
+
/**
|
|
31
|
+
* Gets the width and the height of the flyout on the workspace in pixel
|
|
32
|
+
* coordinates. Returns 0 for the width and height if the workspace has a
|
|
33
|
+
* category toolbox instead of a simple toolbox.
|
|
34
|
+
* @param opt_own Whether to only return the workspace's own flyout.
|
|
35
|
+
* @return The width and height of the flyout.
|
|
36
|
+
*/
|
|
37
|
+
getFlyoutMetrics(opt_own?: boolean): ToolboxMetrics;
|
|
38
|
+
/**
|
|
39
|
+
* Gets the width, height and position of the toolbox on the workspace in
|
|
40
|
+
* pixel coordinates. Returns 0 for the width and height if the workspace has
|
|
41
|
+
* a simple toolbox instead of a category toolbox. To get the width and height
|
|
42
|
+
* of a
|
|
43
|
+
* simple toolbox @see {@link getFlyoutMetrics}.
|
|
44
|
+
* @return The object with the width, height and position of the toolbox.
|
|
45
|
+
*/
|
|
46
|
+
getToolboxMetrics(): ToolboxMetrics;
|
|
47
|
+
/**
|
|
48
|
+
* Gets the width and height of the workspace's parent SVG element in pixel
|
|
49
|
+
* coordinates. This area includes the toolbox and the visible workspace area.
|
|
50
|
+
* @return The width and height of the workspace's parent SVG element.
|
|
51
|
+
*/
|
|
52
|
+
getSvgMetrics(): Size;
|
|
53
|
+
/**
|
|
54
|
+
* Gets the absolute left and absolute top in pixel coordinates.
|
|
55
|
+
* This is where the visible workspace starts in relation to the SVG
|
|
56
|
+
* container.
|
|
57
|
+
* @return The absolute metrics for the workspace.
|
|
58
|
+
*/
|
|
59
|
+
getAbsoluteMetrics(): AbsoluteMetrics;
|
|
60
|
+
/**
|
|
61
|
+
* Gets the metrics for the visible workspace in either pixel or workspace
|
|
62
|
+
* coordinates. The visible workspace does not include the toolbox or flyout.
|
|
63
|
+
* @param opt_getWorkspaceCoordinates True to get the view metrics in
|
|
64
|
+
* workspace coordinates, false to get them in pixel coordinates.
|
|
65
|
+
* @return The width, height, top and left of the viewport in either workspace
|
|
66
|
+
* coordinates or pixel coordinates.
|
|
67
|
+
*/
|
|
68
|
+
getViewMetrics(opt_getWorkspaceCoordinates?: boolean): ContainerRegion;
|
|
69
|
+
/**
|
|
70
|
+
* Gets content metrics in either pixel or workspace coordinates.
|
|
71
|
+
* The content area is a rectangle around all the top bounded elements on the
|
|
72
|
+
* workspace (workspace comments and blocks).
|
|
73
|
+
* @param opt_getWorkspaceCoordinates True to get the content metrics in
|
|
74
|
+
* workspace coordinates, false to get them in pixel coordinates.
|
|
75
|
+
* @return The metrics for the content container.
|
|
76
|
+
*/
|
|
77
|
+
getContentMetrics(opt_getWorkspaceCoordinates?: boolean): ContainerRegion;
|
|
78
|
+
/**
|
|
79
|
+
* Returns whether the scroll area has fixed edges.
|
|
80
|
+
* @return Whether the scroll area has fixed edges.
|
|
81
|
+
* @internal
|
|
82
|
+
*/
|
|
83
|
+
hasFixedEdges(): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Computes the fixed edges of the scroll area.
|
|
86
|
+
* @param opt_viewMetrics The view metrics if they have been previously
|
|
87
|
+
* computed. Passing in null may cause the view metrics to be computed
|
|
88
|
+
* again, if it is needed.
|
|
89
|
+
* @return The fixed edges of the scroll area.
|
|
90
|
+
*/
|
|
91
|
+
protected getComputedFixedEdges_(opt_viewMetrics?: ContainerRegion): FixedEdges;
|
|
92
|
+
/**
|
|
93
|
+
* Returns the content area with added padding.
|
|
94
|
+
* @param viewMetrics The view metrics.
|
|
95
|
+
* @param contentMetrics The content metrics.
|
|
96
|
+
* @return The padded content area.
|
|
97
|
+
*/
|
|
98
|
+
protected getPaddedContent_(viewMetrics: ContainerRegion, contentMetrics: ContainerRegion): {
|
|
99
|
+
top: number;
|
|
100
|
+
bottom: number;
|
|
101
|
+
left: number;
|
|
102
|
+
right: number;
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Returns the metrics for the scroll area of the workspace.
|
|
106
|
+
* @param opt_getWorkspaceCoordinates True to get the scroll metrics in
|
|
107
|
+
* workspace coordinates, false to get them in pixel coordinates.
|
|
108
|
+
* @param opt_viewMetrics The view metrics if they have been previously
|
|
109
|
+
* computed. Passing in null may cause the view metrics to be computed
|
|
110
|
+
* again, if it is needed.
|
|
111
|
+
* @param opt_contentMetrics The content metrics if they have been previously
|
|
112
|
+
* computed. Passing in null may cause the content metrics to be computed
|
|
113
|
+
* again, if it is needed.
|
|
114
|
+
* @return The metrics for the scroll container.
|
|
115
|
+
*/
|
|
116
|
+
getScrollMetrics(opt_getWorkspaceCoordinates?: boolean, opt_viewMetrics?: ContainerRegion, opt_contentMetrics?: ContainerRegion): ContainerRegion;
|
|
117
|
+
/**
|
|
118
|
+
* Returns common metrics used by UI elements.
|
|
119
|
+
* @return The UI metrics.
|
|
120
|
+
*/
|
|
121
|
+
getUiMetrics(): UiMetrics;
|
|
122
|
+
/**
|
|
123
|
+
* Returns an object with all the metrics required to size scrollbars for a
|
|
124
|
+
* top level workspace. The following properties are computed:
|
|
125
|
+
* Coordinate system: pixel coordinates, -left, -up, +right, +down
|
|
126
|
+
* .viewHeight: Height of the visible portion of the workspace.
|
|
127
|
+
* .viewWidth: Width of the visible portion of the workspace.
|
|
128
|
+
* .contentHeight: Height of the content.
|
|
129
|
+
* .contentWidth: Width of the content.
|
|
130
|
+
* .scrollHeight: Height of the scroll area.
|
|
131
|
+
* .scrollWidth: Width of the scroll area.
|
|
132
|
+
* .svgHeight: Height of the Blockly div (the view + the toolbox,
|
|
133
|
+
* simple or otherwise),
|
|
134
|
+
* .svgWidth: Width of the Blockly div (the view + the toolbox,
|
|
135
|
+
* simple or otherwise),
|
|
136
|
+
* .viewTop: Top-edge of the visible portion of the workspace, relative to
|
|
137
|
+
* the workspace origin.
|
|
138
|
+
* .viewLeft: Left-edge of the visible portion of the workspace, relative to
|
|
139
|
+
* the workspace origin.
|
|
140
|
+
* .contentTop: Top-edge of the content, relative to the workspace origin.
|
|
141
|
+
* .contentLeft: Left-edge of the content relative to the workspace origin.
|
|
142
|
+
* .scrollTop: Top-edge of the scroll area, relative to the workspace origin.
|
|
143
|
+
* .scrollLeft: Left-edge of the scroll area relative to the workspace origin.
|
|
144
|
+
* .absoluteTop: Top-edge of the visible portion of the workspace, relative
|
|
145
|
+
* to the blocklyDiv.
|
|
146
|
+
* .absoluteLeft: Left-edge of the visible portion of the workspace, relative
|
|
147
|
+
* to the blocklyDiv.
|
|
148
|
+
* .toolboxWidth: Width of the toolbox, if it exists. Otherwise zero.
|
|
149
|
+
* .toolboxHeight: Height of the toolbox, if it exists. Otherwise zero.
|
|
150
|
+
* .flyoutWidth: Width of the flyout if it is always open. Otherwise zero.
|
|
151
|
+
* .flyoutHeight: Height of the flyout if it is always open. Otherwise zero.
|
|
152
|
+
* .toolboxPosition: Top, bottom, left or right. Use TOOLBOX_AT constants to
|
|
153
|
+
* compare.
|
|
154
|
+
* @return Contains size and position metrics of a top level workspace.
|
|
155
|
+
*/
|
|
156
|
+
getMetrics(): Metrics;
|
|
157
|
+
}
|
|
158
|
+
export declare namespace MetricsManager {
|
|
159
|
+
/**
|
|
160
|
+
* Describes the width, height and location of the toolbox on the main
|
|
161
|
+
* workspace.
|
|
162
|
+
*/
|
|
163
|
+
interface ToolboxMetrics {
|
|
164
|
+
width: number;
|
|
165
|
+
height: number;
|
|
166
|
+
position: toolboxUtils.Position;
|
|
167
|
+
}
|
|
168
|
+
/** Describes where the viewport starts in relation to the workspace SVG. */
|
|
169
|
+
interface AbsoluteMetrics {
|
|
170
|
+
left: number;
|
|
171
|
+
top: number;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* All the measurements needed to describe the size and location of a
|
|
175
|
+
* container.
|
|
176
|
+
*/
|
|
177
|
+
interface ContainerRegion {
|
|
178
|
+
height: number;
|
|
179
|
+
width: number;
|
|
180
|
+
top: number;
|
|
181
|
+
left: number;
|
|
182
|
+
}
|
|
183
|
+
/** Describes fixed edges of the workspace. */
|
|
184
|
+
interface FixedEdges {
|
|
185
|
+
top?: number;
|
|
186
|
+
bottom?: number;
|
|
187
|
+
left?: number;
|
|
188
|
+
right?: number;
|
|
189
|
+
}
|
|
190
|
+
/** Common metrics used for UI elements. */
|
|
191
|
+
interface UiMetrics {
|
|
192
|
+
viewMetrics: ContainerRegion;
|
|
193
|
+
absoluteMetrics: AbsoluteMetrics;
|
|
194
|
+
toolboxMetrics: ToolboxMetrics;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
export declare type ToolboxMetrics = MetricsManager.ToolboxMetrics;
|
|
198
|
+
export declare type AbsoluteMetrics = MetricsManager.AbsoluteMetrics;
|
|
199
|
+
export declare type ContainerRegion = MetricsManager.ContainerRegion;
|
|
200
|
+
export declare type FixedEdges = MetricsManager.FixedEdges;
|
|
201
|
+
export declare type UiMetrics = MetricsManager.UiMetrics;
|