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
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2011 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import './events/events_block_change.js';
|
|
7
|
+
import './events/events_bubble_open.js';
|
|
8
|
+
import type { BlockSvg } from './block_svg.js';
|
|
9
|
+
import { Icon } from './icon.js';
|
|
10
|
+
import type { Size } from './utils/size.js';
|
|
11
|
+
/**
|
|
12
|
+
* Class for a comment.
|
|
13
|
+
* @alias Blockly.Comment
|
|
14
|
+
*/
|
|
15
|
+
export declare class Comment extends Icon {
|
|
16
|
+
private readonly model_;
|
|
17
|
+
/**
|
|
18
|
+
* The model's text value at the start of an edit.
|
|
19
|
+
* Used to tell if an event should be fired at the end of an edit.
|
|
20
|
+
*/
|
|
21
|
+
private cachedText_;
|
|
22
|
+
/** Mouse up event data. */
|
|
23
|
+
private onMouseUpWrapper_;
|
|
24
|
+
/** Wheel event data. */
|
|
25
|
+
private onWheelWrapper_;
|
|
26
|
+
/** Change event data. */
|
|
27
|
+
private onChangeWrapper_;
|
|
28
|
+
/** Input event data. */
|
|
29
|
+
private onInputWrapper_;
|
|
30
|
+
/**
|
|
31
|
+
* The SVG element that contains the text edit area, or null if not created.
|
|
32
|
+
*/
|
|
33
|
+
private foreignObject_;
|
|
34
|
+
/** The editable text area, or null if not created. */
|
|
35
|
+
private textarea_;
|
|
36
|
+
/** The top-level node of the comment text, or null if not created. */
|
|
37
|
+
private paragraphElement_;
|
|
38
|
+
bubble_: any;
|
|
39
|
+
/** @param block The block associated with this comment. */
|
|
40
|
+
constructor(block: BlockSvg);
|
|
41
|
+
/**
|
|
42
|
+
* Draw the comment icon.
|
|
43
|
+
* @param group The icon group.
|
|
44
|
+
*/
|
|
45
|
+
protected drawIcon_(group: Element): void;
|
|
46
|
+
/**
|
|
47
|
+
* Create the editor for the comment's bubble.
|
|
48
|
+
* @return The top-level node of the editor.
|
|
49
|
+
*/
|
|
50
|
+
private createEditor_;
|
|
51
|
+
/** Add or remove editability of the comment. */
|
|
52
|
+
updateEditable(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Callback function triggered when the bubble has resized.
|
|
55
|
+
* Resize the text area accordingly.
|
|
56
|
+
*/
|
|
57
|
+
private onBubbleResize_;
|
|
58
|
+
/**
|
|
59
|
+
* Resizes the text area to match the size defined on the model (which is
|
|
60
|
+
* the size of the bubble).
|
|
61
|
+
*/
|
|
62
|
+
private resizeTextarea_;
|
|
63
|
+
/**
|
|
64
|
+
* Show or hide the comment bubble.
|
|
65
|
+
* @param visible True if the bubble should be visible.
|
|
66
|
+
*/
|
|
67
|
+
setVisible(visible: boolean): void;
|
|
68
|
+
/** Show the bubble. Handles deciding if it should be editable or not. */
|
|
69
|
+
private createBubble_;
|
|
70
|
+
/** Show an editable bubble. */
|
|
71
|
+
private createEditableBubble_;
|
|
72
|
+
/**
|
|
73
|
+
* Show a non-editable bubble.
|
|
74
|
+
* @suppress {checkTypes} Suppress `this` type mismatch.
|
|
75
|
+
*/
|
|
76
|
+
private createNonEditableBubble_;
|
|
77
|
+
/**
|
|
78
|
+
* Dispose of the bubble.
|
|
79
|
+
* @suppress {checkTypes} Suppress `this` type mismatch.
|
|
80
|
+
*/
|
|
81
|
+
private disposeBubble_;
|
|
82
|
+
/**
|
|
83
|
+
* Callback fired when an edit starts.
|
|
84
|
+
*
|
|
85
|
+
* Bring the comment to the top of the stack when clicked on. Also cache the
|
|
86
|
+
* current text so it can be used to fire a change event.
|
|
87
|
+
* @param _e Mouse up event.
|
|
88
|
+
*/
|
|
89
|
+
private startEdit_;
|
|
90
|
+
/**
|
|
91
|
+
* Get the dimensions of this comment's bubble.
|
|
92
|
+
* @return Object with width and height properties.
|
|
93
|
+
*/
|
|
94
|
+
getBubbleSize(): Size;
|
|
95
|
+
/**
|
|
96
|
+
* Size this comment's bubble.
|
|
97
|
+
* @param width Width of the bubble.
|
|
98
|
+
* @param height Height of the bubble.
|
|
99
|
+
*/
|
|
100
|
+
setBubbleSize(width: number, height: number): void;
|
|
101
|
+
/**
|
|
102
|
+
* Update the comment's view to match the model.
|
|
103
|
+
* @internal
|
|
104
|
+
*/
|
|
105
|
+
updateText(): void;
|
|
106
|
+
/**
|
|
107
|
+
* Dispose of this comment.
|
|
108
|
+
*
|
|
109
|
+
* If you want to receive a comment "delete" event (newValue: null), then this
|
|
110
|
+
* should not be called directly. Instead call block.setCommentText(null);
|
|
111
|
+
*/
|
|
112
|
+
dispose(): void;
|
|
113
|
+
}
|
|
@@ -7,128 +7,96 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* @fileoverview Object representing a code comment.
|
|
9
9
|
*/
|
|
10
|
-
'use strict';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Object representing a code comment.
|
|
14
13
|
* @class
|
|
15
14
|
*/
|
|
16
|
-
goog
|
|
15
|
+
import * as goog from '../closure/goog/goog.js';
|
|
16
|
+
goog.declareModuleId('Blockly.Comment');
|
|
17
17
|
|
|
18
|
-
const Css = goog.require('Blockly.Css');
|
|
19
|
-
const browserEvents = goog.require('Blockly.browserEvents');
|
|
20
|
-
const dom = goog.require('Blockly.utils.dom');
|
|
21
|
-
const eventUtils = goog.require('Blockly.Events.utils');
|
|
22
|
-
const userAgent = goog.require('Blockly.utils.userAgent');
|
|
23
18
|
/* eslint-disable-next-line no-unused-vars */
|
|
24
|
-
|
|
19
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
20
|
+
// import './block.js';
|
|
25
21
|
/* eslint-disable-next-line no-unused-vars */
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
22
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
23
|
+
// import './workspace_svg.js';
|
|
24
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
25
|
+
import './events/events_block_change.js';
|
|
26
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
27
|
+
import './events/events_bubble_open.js';
|
|
28
|
+
// Unused import preserved for side-effects. Remove if unneeded.
|
|
29
|
+
// import './warning.js';
|
|
30
|
+
|
|
31
|
+
import type {CommentModel} from './block.js';
|
|
32
|
+
import type {BlockSvg} from './block_svg.js';
|
|
33
|
+
import * as browserEvents from './browser_events.js';
|
|
34
|
+
import {Bubble} from './bubble.js';
|
|
35
|
+
import * as Css from './css.js';
|
|
36
|
+
import * as eventUtils from './events/utils.js';
|
|
37
|
+
import {Icon} from './icon.js';
|
|
38
|
+
import type {Coordinate} from './utils/coordinate.js';
|
|
39
|
+
import * as dom from './utils/dom.js';
|
|
40
|
+
import type {Size} from './utils/size.js';
|
|
41
|
+
import {Svg} from './utils/svg.js';
|
|
42
|
+
import * as userAgent from './utils/useragent.js';
|
|
42
43
|
|
|
43
44
|
|
|
44
45
|
/**
|
|
45
46
|
* Class for a comment.
|
|
46
|
-
* @extends {Icon}
|
|
47
47
|
* @alias Blockly.Comment
|
|
48
48
|
*/
|
|
49
|
-
class Comment extends Icon {
|
|
49
|
+
export class Comment extends Icon {
|
|
50
|
+
private readonly model_: CommentModel;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* The model's text value at the start of an edit.
|
|
54
|
+
* Used to tell if an event should be fired at the end of an edit.
|
|
55
|
+
*/
|
|
56
|
+
private cachedText_: string|null = '';
|
|
57
|
+
|
|
58
|
+
/** Mouse up event data. */
|
|
59
|
+
private onMouseUpWrapper_: browserEvents.Data|null = null;
|
|
60
|
+
|
|
61
|
+
/** Wheel event data. */
|
|
62
|
+
private onWheelWrapper_: browserEvents.Data|null = null;
|
|
63
|
+
|
|
64
|
+
/** Change event data. */
|
|
65
|
+
private onChangeWrapper_: browserEvents.Data|null = null;
|
|
66
|
+
|
|
67
|
+
/** Input event data. */
|
|
68
|
+
private onInputWrapper_: browserEvents.Data|null = null;
|
|
69
|
+
|
|
50
70
|
/**
|
|
51
|
-
*
|
|
71
|
+
* The SVG element that contains the text edit area, or null if not created.
|
|
52
72
|
*/
|
|
53
|
-
|
|
73
|
+
private foreignObject_: SVGForeignObjectElement|null = null;
|
|
74
|
+
|
|
75
|
+
/** The editable text area, or null if not created. */
|
|
76
|
+
private textarea_: HTMLTextAreaElement|null = null;
|
|
77
|
+
|
|
78
|
+
/** The top-level node of the comment text, or null if not created. */
|
|
79
|
+
private paragraphElement_: SVGTextElement|null = null;
|
|
80
|
+
override bubble_: AnyDuringMigration;
|
|
81
|
+
|
|
82
|
+
/** @param block The block associated with this comment. */
|
|
83
|
+
constructor(block: BlockSvg) {
|
|
54
84
|
super(block);
|
|
55
85
|
|
|
56
|
-
/**
|
|
57
|
-
* The model for this comment.
|
|
58
|
-
* @type {!Block.CommentModel}
|
|
59
|
-
* @private
|
|
60
|
-
*/
|
|
86
|
+
/** The model for this comment. */
|
|
61
87
|
this.model_ = block.commentModel;
|
|
62
88
|
// If someone creates the comment directly instead of calling
|
|
63
89
|
// block.setCommentText we want to make sure the text is non-null;
|
|
64
|
-
this.model_.text = this.model_.text
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* The model's text value at the start of an edit.
|
|
68
|
-
* Used to tell if an event should be fired at the end of an edit.
|
|
69
|
-
* @type {?string}
|
|
70
|
-
* @private
|
|
71
|
-
*/
|
|
72
|
-
this.cachedText_ = '';
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Mouse up event data.
|
|
76
|
-
* @type {?browserEvents.Data}
|
|
77
|
-
* @private
|
|
78
|
-
*/
|
|
79
|
-
this.onMouseUpWrapper_ = null;
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Wheel event data.
|
|
83
|
-
* @type {?browserEvents.Data}
|
|
84
|
-
* @private
|
|
85
|
-
*/
|
|
86
|
-
this.onWheelWrapper_ = null;
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Change event data.
|
|
90
|
-
* @type {?browserEvents.Data}
|
|
91
|
-
* @private
|
|
92
|
-
*/
|
|
93
|
-
this.onChangeWrapper_ = null;
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Input event data.
|
|
97
|
-
* @type {?browserEvents.Data}
|
|
98
|
-
* @private
|
|
99
|
-
*/
|
|
100
|
-
this.onInputWrapper_ = null;
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* The SVG element that contains the text edit area, or null if not created.
|
|
104
|
-
* @type {?SVGForeignObjectElement}
|
|
105
|
-
* @private
|
|
106
|
-
*/
|
|
107
|
-
this.foreignObject_ = null;
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* The editable text area, or null if not created.
|
|
111
|
-
* @type {?Element}
|
|
112
|
-
* @private
|
|
113
|
-
*/
|
|
114
|
-
this.textarea_ = null;
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* The top-level node of the comment text, or null if not created.
|
|
118
|
-
* @type {?SVGTextElement}
|
|
119
|
-
* @private
|
|
120
|
-
*/
|
|
121
|
-
this.paragraphElement_ = null;
|
|
90
|
+
this.model_.text = this.model_.text ?? '';
|
|
122
91
|
|
|
123
92
|
this.createIcon();
|
|
124
93
|
}
|
|
125
94
|
|
|
126
95
|
/**
|
|
127
96
|
* Draw the comment icon.
|
|
128
|
-
* @param
|
|
129
|
-
* @protected
|
|
97
|
+
* @param group The icon group.
|
|
130
98
|
*/
|
|
131
|
-
drawIcon_(group) {
|
|
99
|
+
protected override drawIcon_(group: Element) {
|
|
132
100
|
// Circle.
|
|
133
101
|
dom.createSvgElement(
|
|
134
102
|
Svg.CIRCLE,
|
|
@@ -157,39 +125,39 @@ class Comment extends Icon {
|
|
|
157
125
|
|
|
158
126
|
/**
|
|
159
127
|
* Create the editor for the comment's bubble.
|
|
160
|
-
* @return
|
|
161
|
-
* @private
|
|
128
|
+
* @return The top-level node of the editor.
|
|
162
129
|
*/
|
|
163
|
-
createEditor_() {
|
|
130
|
+
private createEditor_(): SVGElement {
|
|
164
131
|
/* Create the editor. Here's the markup that will be generated in
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
132
|
+
* editable mode:
|
|
133
|
+
<foreignObject x="8" y="8" width="164" height="164">
|
|
134
|
+
<body xmlns="http://www.w3.org/1999/xhtml"
|
|
135
|
+
class="blocklyMinimalBody"> <textarea
|
|
136
|
+
xmlns="http://www.w3.org/1999/xhtml" class="blocklyCommentTextarea"
|
|
137
|
+
style="height: 164px; width: 164px;"></textarea>
|
|
138
|
+
</body>
|
|
139
|
+
</foreignObject>
|
|
140
|
+
* For non-editable mode see Warning.textToDom_.
|
|
141
|
+
*/
|
|
175
142
|
|
|
176
143
|
this.foreignObject_ = dom.createSvgElement(
|
|
177
|
-
Svg.FOREIGNOBJECT,
|
|
178
|
-
|
|
144
|
+
Svg.FOREIGNOBJECT,
|
|
145
|
+
{'x': Bubble.BORDER_WIDTH, 'y': Bubble.BORDER_WIDTH});
|
|
179
146
|
|
|
180
147
|
const body = document.createElementNS(dom.HTML_NS, 'body');
|
|
181
148
|
body.setAttribute('xmlns', dom.HTML_NS);
|
|
182
149
|
body.className = 'blocklyMinimalBody';
|
|
183
150
|
|
|
184
|
-
this.textarea_ = document.createElementNS(dom.HTML_NS, 'textarea')
|
|
151
|
+
this.textarea_ = document.createElementNS(dom.HTML_NS, 'textarea') as
|
|
152
|
+
HTMLTextAreaElement;
|
|
185
153
|
const textarea = this.textarea_;
|
|
186
154
|
textarea.className = 'blocklyCommentTextarea';
|
|
187
155
|
textarea.setAttribute('dir', this.block_.RTL ? 'RTL' : 'LTR');
|
|
188
|
-
textarea.value = this.model_.text;
|
|
156
|
+
textarea.value = this.model_.text ?? '';
|
|
189
157
|
this.resizeTextarea_();
|
|
190
158
|
|
|
191
159
|
body.appendChild(textarea);
|
|
192
|
-
this.foreignObject_
|
|
160
|
+
this.foreignObject_!.appendChild(body);
|
|
193
161
|
|
|
194
162
|
// Ideally this would be hooked to the focus event for the comment.
|
|
195
163
|
// However doing so in Firefox swallows the cursor for unknown reasons.
|
|
@@ -197,43 +165,36 @@ class Comment extends Icon {
|
|
|
197
165
|
this.onMouseUpWrapper_ = browserEvents.conditionalBind(
|
|
198
166
|
textarea, 'mouseup', this, this.startEdit_, true, true);
|
|
199
167
|
// Don't zoom with mousewheel.
|
|
200
|
-
this.onWheelWrapper_ =
|
|
201
|
-
|
|
168
|
+
this.onWheelWrapper_ = browserEvents.conditionalBind(
|
|
169
|
+
textarea, 'wheel', this, function(e: Event) {
|
|
202
170
|
e.stopPropagation();
|
|
203
171
|
});
|
|
204
172
|
this.onChangeWrapper_ = browserEvents.conditionalBind(
|
|
205
173
|
textarea, 'change', this,
|
|
206
|
-
/**
|
|
207
|
-
|
|
208
|
-
* @param {Event} _e Unused event parameter.
|
|
209
|
-
*/
|
|
210
|
-
function(_e) {
|
|
174
|
+
/** @param _e Unused event parameter. */
|
|
175
|
+
function(this: Comment, _e: Event) {
|
|
211
176
|
if (this.cachedText_ !== this.model_.text) {
|
|
212
|
-
eventUtils.fire(new (eventUtils.get(eventUtils.BLOCK_CHANGE))
|
|
213
|
-
|
|
214
|
-
|
|
177
|
+
eventUtils.fire(new (eventUtils.get(eventUtils.BLOCK_CHANGE))!
|
|
178
|
+
(this.block_, 'comment', null, this.cachedText_,
|
|
179
|
+
this.model_.text));
|
|
215
180
|
}
|
|
216
181
|
});
|
|
217
182
|
this.onInputWrapper_ = browserEvents.conditionalBind(
|
|
218
183
|
textarea, 'input', this,
|
|
219
|
-
/**
|
|
220
|
-
|
|
221
|
-
* @param {Event} _e Unused event parameter.
|
|
222
|
-
*/
|
|
223
|
-
function(_e) {
|
|
184
|
+
/** @param _e Unused event parameter. */
|
|
185
|
+
function(this: Comment, _e: Event) {
|
|
224
186
|
this.model_.text = textarea.value;
|
|
225
187
|
});
|
|
226
188
|
|
|
227
189
|
setTimeout(textarea.focus.bind(textarea), 0);
|
|
228
190
|
|
|
229
|
-
|
|
191
|
+
// AnyDuringMigration because: Type 'SVGForeignObjectElement | null' is not
|
|
192
|
+
// assignable to type 'SVGElement'.
|
|
193
|
+
return this.foreignObject_ as AnyDuringMigration;
|
|
230
194
|
}
|
|
231
195
|
|
|
232
|
-
/**
|
|
233
|
-
|
|
234
|
-
* @override
|
|
235
|
-
*/
|
|
236
|
-
updateEditable() {
|
|
196
|
+
/** Add or remove editability of the comment. */
|
|
197
|
+
override updateEditable() {
|
|
237
198
|
super.updateEditable();
|
|
238
199
|
if (this.isVisible()) {
|
|
239
200
|
// Recreate the bubble with the correct UI.
|
|
@@ -245,9 +206,8 @@ class Comment extends Icon {
|
|
|
245
206
|
/**
|
|
246
207
|
* Callback function triggered when the bubble has resized.
|
|
247
208
|
* Resize the text area accordingly.
|
|
248
|
-
* @private
|
|
249
209
|
*/
|
|
250
|
-
onBubbleResize_() {
|
|
210
|
+
private onBubbleResize_() {
|
|
251
211
|
if (!this.isVisible()) {
|
|
252
212
|
return;
|
|
253
213
|
}
|
|
@@ -258,29 +218,34 @@ class Comment extends Icon {
|
|
|
258
218
|
/**
|
|
259
219
|
* Resizes the text area to match the size defined on the model (which is
|
|
260
220
|
* the size of the bubble).
|
|
261
|
-
* @private
|
|
262
221
|
*/
|
|
263
|
-
resizeTextarea_() {
|
|
222
|
+
private resizeTextarea_() {
|
|
264
223
|
const size = this.model_.size;
|
|
265
224
|
const doubleBorderWidth = 2 * Bubble.BORDER_WIDTH;
|
|
266
225
|
const widthMinusBorder = size.width - doubleBorderWidth;
|
|
267
226
|
const heightMinusBorder = size.height - doubleBorderWidth;
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
this.
|
|
271
|
-
|
|
227
|
+
// AnyDuringMigration because: Argument of type 'number' is not assignable
|
|
228
|
+
// to parameter of type 'string'.
|
|
229
|
+
this.foreignObject_!.setAttribute(
|
|
230
|
+
'width', widthMinusBorder as AnyDuringMigration);
|
|
231
|
+
// AnyDuringMigration because: Argument of type 'number' is not assignable
|
|
232
|
+
// to parameter of type 'string'.
|
|
233
|
+
this.foreignObject_!.setAttribute(
|
|
234
|
+
'height', heightMinusBorder as AnyDuringMigration);
|
|
235
|
+
this.textarea_!.style.width = widthMinusBorder - 4 + 'px';
|
|
236
|
+
this.textarea_!.style.height = heightMinusBorder - 4 + 'px';
|
|
272
237
|
}
|
|
273
238
|
|
|
274
239
|
/**
|
|
275
240
|
* Show or hide the comment bubble.
|
|
276
|
-
* @param
|
|
241
|
+
* @param visible True if the bubble should be visible.
|
|
277
242
|
*/
|
|
278
|
-
setVisible(visible) {
|
|
243
|
+
override setVisible(visible: boolean) {
|
|
279
244
|
if (visible === this.isVisible()) {
|
|
280
245
|
return;
|
|
281
246
|
}
|
|
282
|
-
eventUtils.fire(new (eventUtils.get(eventUtils.BUBBLE_OPEN))
|
|
283
|
-
|
|
247
|
+
eventUtils.fire(new (eventUtils.get(eventUtils.BUBBLE_OPEN))!
|
|
248
|
+
(this.block_, visible, 'comment'));
|
|
284
249
|
this.model_.pinned = visible;
|
|
285
250
|
if (visible) {
|
|
286
251
|
this.createBubble_();
|
|
@@ -289,11 +254,8 @@ class Comment extends Icon {
|
|
|
289
254
|
}
|
|
290
255
|
}
|
|
291
256
|
|
|
292
|
-
/**
|
|
293
|
-
|
|
294
|
-
* @private
|
|
295
|
-
*/
|
|
296
|
-
createBubble_() {
|
|
257
|
+
/** Show the bubble. Handles deciding if it should be editable or not. */
|
|
258
|
+
private createBubble_() {
|
|
297
259
|
if (!this.block_.isEditable() || userAgent.IE) {
|
|
298
260
|
// MSIE does not support foreignobject; textareas are impossible.
|
|
299
261
|
// https://docs.microsoft.com/en-us/openspecs/ie_standards/ms-svg/56e6e04c-7c8c-44dd-8100-bd745ee42034
|
|
@@ -304,16 +266,12 @@ class Comment extends Icon {
|
|
|
304
266
|
}
|
|
305
267
|
}
|
|
306
268
|
|
|
307
|
-
/**
|
|
308
|
-
|
|
309
|
-
* @private
|
|
310
|
-
*/
|
|
311
|
-
createEditableBubble_() {
|
|
269
|
+
/** Show an editable bubble. */
|
|
270
|
+
private createEditableBubble_() {
|
|
312
271
|
this.bubble_ = new Bubble(
|
|
313
|
-
|
|
314
|
-
this.
|
|
315
|
-
|
|
316
|
-
this.model_.size.height);
|
|
272
|
+
this.block_.workspace, this.createEditor_(),
|
|
273
|
+
this.block_.pathObject.svgPath, (this.iconXY_ as Coordinate),
|
|
274
|
+
this.model_.size.width, this.model_.size.height);
|
|
317
275
|
// Expose this comment's block's ID on its top-level SVG group.
|
|
318
276
|
this.bubble_.setSvgId(this.block_.id);
|
|
319
277
|
this.bubble_.registerResizeEvent(this.onBubbleResize_.bind(this));
|
|
@@ -322,24 +280,21 @@ class Comment extends Icon {
|
|
|
322
280
|
|
|
323
281
|
/**
|
|
324
282
|
* Show a non-editable bubble.
|
|
325
|
-
* @private
|
|
326
283
|
* @suppress {checkTypes} Suppress `this` type mismatch.
|
|
327
284
|
*/
|
|
328
|
-
createNonEditableBubble_() {
|
|
285
|
+
private createNonEditableBubble_() {
|
|
329
286
|
// TODO (#2917): It would be great if the comment could support line breaks.
|
|
330
|
-
this.paragraphElement_ = Bubble.textToDom(this.
|
|
287
|
+
this.paragraphElement_ = Bubble.textToDom(this.model_.text ?? '');
|
|
331
288
|
this.bubble_ = Bubble.createNonEditableBubble(
|
|
332
|
-
this.paragraphElement_,
|
|
333
|
-
/** @type {!Coordinate} */ (this.iconXY_));
|
|
289
|
+
this.paragraphElement_, (this.block_), this.iconXY_ as Coordinate);
|
|
334
290
|
this.applyColour();
|
|
335
291
|
}
|
|
336
292
|
|
|
337
293
|
/**
|
|
338
294
|
* Dispose of the bubble.
|
|
339
|
-
* @private
|
|
340
295
|
* @suppress {checkTypes} Suppress `this` type mismatch.
|
|
341
296
|
*/
|
|
342
|
-
disposeBubble_() {
|
|
297
|
+
private disposeBubble_() {
|
|
343
298
|
if (this.onMouseUpWrapper_) {
|
|
344
299
|
browserEvents.unbind(this.onMouseUpWrapper_);
|
|
345
300
|
this.onMouseUpWrapper_ = null;
|
|
@@ -368,14 +323,13 @@ class Comment extends Icon {
|
|
|
368
323
|
*
|
|
369
324
|
* Bring the comment to the top of the stack when clicked on. Also cache the
|
|
370
325
|
* current text so it can be used to fire a change event.
|
|
371
|
-
* @param
|
|
372
|
-
* @private
|
|
326
|
+
* @param _e Mouse up event.
|
|
373
327
|
*/
|
|
374
|
-
startEdit_(_e) {
|
|
328
|
+
private startEdit_(_e: Event) {
|
|
375
329
|
if (this.bubble_.promote()) {
|
|
376
330
|
// Since the act of moving this node within the DOM causes a loss of
|
|
377
331
|
// focus, we need to reapply the focus.
|
|
378
|
-
this.textarea_
|
|
332
|
+
this.textarea_!.focus();
|
|
379
333
|
}
|
|
380
334
|
|
|
381
335
|
this.cachedText_ = this.model_.text;
|
|
@@ -383,18 +337,18 @@ class Comment extends Icon {
|
|
|
383
337
|
|
|
384
338
|
/**
|
|
385
339
|
* Get the dimensions of this comment's bubble.
|
|
386
|
-
* @return
|
|
340
|
+
* @return Object with width and height properties.
|
|
387
341
|
*/
|
|
388
|
-
getBubbleSize() {
|
|
342
|
+
getBubbleSize(): Size {
|
|
389
343
|
return this.model_.size;
|
|
390
344
|
}
|
|
391
345
|
|
|
392
346
|
/**
|
|
393
347
|
* Size this comment's bubble.
|
|
394
|
-
* @param
|
|
395
|
-
* @param
|
|
348
|
+
* @param width Width of the bubble.
|
|
349
|
+
* @param height Height of the bubble.
|
|
396
350
|
*/
|
|
397
|
-
setBubbleSize(width, height) {
|
|
351
|
+
setBubbleSize(width: number, height: number) {
|
|
398
352
|
if (this.bubble_) {
|
|
399
353
|
this.bubble_.setBubbleSize(width, height);
|
|
400
354
|
} else {
|
|
@@ -405,15 +359,15 @@ class Comment extends Icon {
|
|
|
405
359
|
|
|
406
360
|
/**
|
|
407
361
|
* Update the comment's view to match the model.
|
|
408
|
-
* @
|
|
362
|
+
* @internal
|
|
409
363
|
*/
|
|
410
364
|
updateText() {
|
|
411
365
|
if (this.textarea_) {
|
|
412
|
-
this.textarea_.value = this.model_.text;
|
|
366
|
+
this.textarea_.value = this.model_.text ?? '';
|
|
413
367
|
} else if (this.paragraphElement_) {
|
|
414
368
|
// Non-Editable mode.
|
|
415
369
|
// TODO (#2917): If 2917 gets added this will probably need to be updated.
|
|
416
|
-
this.paragraphElement_.firstChild
|
|
370
|
+
this.paragraphElement_.firstChild!.textContent = this.model_.text;
|
|
417
371
|
}
|
|
418
372
|
}
|
|
419
373
|
|
|
@@ -423,15 +377,13 @@ class Comment extends Icon {
|
|
|
423
377
|
* If you want to receive a comment "delete" event (newValue: null), then this
|
|
424
378
|
* should not be called directly. Instead call block.setCommentText(null);
|
|
425
379
|
*/
|
|
426
|
-
dispose() {
|
|
380
|
+
override dispose() {
|
|
427
381
|
this.block_.comment = null;
|
|
428
|
-
|
|
382
|
+
super.dispose();
|
|
429
383
|
}
|
|
430
384
|
}
|
|
431
385
|
|
|
432
|
-
/**
|
|
433
|
-
* CSS for block comment. See css.js for use.
|
|
434
|
-
*/
|
|
386
|
+
/** CSS for block comment. See css.js for use. */
|
|
435
387
|
Css.register(`
|
|
436
388
|
.blocklyCommentTextarea {
|
|
437
389
|
background-color: #fef49c;
|
|
@@ -444,5 +396,3 @@ Css.register(`
|
|
|
444
396
|
text-overflow: hidden;
|
|
445
397
|
}
|
|
446
398
|
`);
|
|
447
|
-
|
|
448
|
-
exports.Comment = Comment;
|