blockly 8.0.4-beta.0 → 8.0.5-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blockly.min.js +2421 -2688
- package/blockly_compressed.js +1499 -1994
- package/blockly_compressed.js.map +1 -1
- package/blocks/blocks.js +3 -2
- package/blocks/colour.js +3 -1
- package/blocks/lists.js +94 -22
- package/blocks/logic.js +14 -6
- package/blocks/loops.js +5 -3
- package/blocks/math.js +3 -1
- package/blocks/procedures.js +3 -1
- package/blocks/text.js +14 -6
- package/blocks/variables.js +3 -1
- package/blocks/variables_dynamic.js +3 -1
- package/blocks.d.ts +0 -2
- package/blocks_compressed.js +189 -171
- package/blocks_compressed.js.map +1 -1
- package/closure/goog/base.d.ts +1 -0
- package/closure/goog/base_minimal.d.ts +18 -0
- package/closure/goog/goog.d.ts +25 -0
- package/core/any_aliases.d.ts +1 -0
- package/core/any_aliases.ts +1 -0
- package/core/block.d.ts +779 -0
- package/core/{block.js → block.ts} +610 -719
- package/core/block_animations.d.ts +33 -0
- package/core/{block_animations.js → block_animations.ts} +75 -79
- package/core/block_drag_surface.d.ts +111 -0
- package/core/{block_drag_surface.js → block_drag_surface.ts} +85 -117
- package/core/block_dragger.d.ts +143 -0
- package/core/{block_dragger.js → block_dragger.ts} +139 -176
- package/core/block_svg.d.ts +588 -0
- package/core/{block_svg.js → block_svg.ts} +494 -630
- package/core/blockly.d.ts +562 -0
- package/core/blockly.js +1 -1
- package/core/blockly.ts +749 -0
- package/core/blockly_options.d.ts +69 -0
- package/core/blockly_options.ts +81 -0
- package/core/blocks.d.ts +17 -0
- package/core/{blocks.js → blocks.ts} +4 -8
- package/core/browser_events.d.ts +85 -0
- package/core/{browser_events.js → browser_events.ts} +98 -93
- package/core/bubble.d.ts +279 -0
- package/core/{bubble.js → bubble.ts} +277 -370
- package/core/bubble_dragger.d.ts +73 -0
- package/core/bubble_dragger.ts +229 -0
- package/core/bump_objects.d.ts +34 -0
- package/core/{bump_objects.js → bump_objects.ts} +54 -52
- package/core/clipboard.d.ts +42 -0
- package/core/clipboard.ts +91 -0
- package/core/comment.d.ts +113 -0
- package/core/{comment.js → comment.ts} +135 -185
- package/core/common.d.ts +129 -0
- package/core/{common.js → common.ts} +105 -82
- package/core/component_manager.d.ts +91 -0
- package/core/component_manager.ts +211 -0
- package/core/config.d.ts +23 -0
- package/core/{config.js → config.ts} +12 -19
- package/core/connection.d.ts +232 -0
- package/core/{connection.js → connection.ts} +187 -237
- package/core/connection_checker.d.ts +78 -0
- package/core/{connection_checker.js → connection_checker.ts} +66 -77
- package/core/connection_db.d.ts +91 -0
- package/core/{connection_db.js → connection_db.ts} +62 -87
- package/core/connection_type.d.ts +15 -0
- package/core/{connection_type.js → connection_type.ts} +8 -12
- package/core/constants.d.ts +15 -0
- package/core/{constants.js → constants.ts} +4 -8
- package/core/contextmenu.d.ts +80 -0
- package/core/{contextmenu.js → contextmenu.ts} +118 -153
- package/core/contextmenu_items.d.ts +77 -0
- package/core/contextmenu_items.ts +576 -0
- package/core/contextmenu_registry.d.ts +105 -0
- package/core/contextmenu_registry.ts +179 -0
- package/core/css.d.ts +24 -0
- package/core/{css.js → css.ts} +16 -24
- package/core/delete_area.d.ts +47 -0
- package/core/delete_area.ts +82 -0
- package/core/dialog.d.ts +61 -0
- package/core/dialog.ts +127 -0
- package/core/drag_target.d.ts +63 -0
- package/core/drag_target.ts +94 -0
- package/core/dropdowndiv.d.ts +155 -0
- package/core/{dropdowndiv.js → dropdowndiv.ts} +262 -333
- package/core/events/events.d.ts +102 -0
- package/core/events/events.ts +123 -0
- package/core/events/events_abstract.d.ts +51 -0
- package/core/events/events_abstract.ts +112 -0
- package/core/events/events_block_base.d.ts +31 -0
- package/core/events/events_block_base.ts +65 -0
- package/core/events/events_block_change.d.ts +55 -0
- package/core/events/{events_block_change.js → events_block_change.ts} +45 -48
- package/core/events/events_block_create.d.ts +35 -0
- package/core/events/{events_block_create.js → events_block_create.ts} +30 -35
- package/core/events/events_block_delete.d.ts +36 -0
- package/core/events/{events_block_delete.js → events_block_delete.ts} +34 -39
- package/core/events/events_block_drag.d.ts +36 -0
- package/core/events/events_block_drag.ts +82 -0
- package/core/events/events_block_move.d.ts +51 -0
- package/core/events/{events_block_move.js → events_block_move.ts} +54 -50
- package/core/events/events_bubble_open.d.ts +35 -0
- package/core/events/events_bubble_open.ts +82 -0
- package/core/events/events_click.d.ts +36 -0
- package/core/events/{events_click.js → events_click.ts} +27 -30
- package/core/events/events_comment_base.d.ts +39 -0
- package/core/events/events_comment_base.ts +107 -0
- package/core/events/events_comment_change.d.ts +43 -0
- package/core/events/{events_comment_change.js → events_comment_change.ts} +31 -28
- package/core/events/events_comment_create.d.ts +35 -0
- package/core/events/{events_comment_create.js → events_comment_create.ts} +24 -26
- package/core/events/events_comment_delete.d.ts +35 -0
- package/core/events/{events_comment_delete.js → events_comment_delete.ts} +20 -24
- package/core/events/events_comment_move.d.ts +55 -0
- package/core/events/{events_comment_move.js → events_comment_move.ts} +39 -42
- package/core/events/events_marker_move.d.ts +40 -0
- package/core/events/events_marker_move.ts +99 -0
- package/core/events/events_selected.d.ts +34 -0
- package/core/events/events_selected.ts +78 -0
- package/core/events/events_theme_change.d.ts +30 -0
- package/core/events/{events_theme_change.js → events_theme_change.ts} +19 -24
- package/core/events/events_toolbox_item_select.d.ts +34 -0
- package/core/events/events_toolbox_item_select.ts +79 -0
- package/core/events/events_trashcan_open.d.ts +31 -0
- package/core/events/events_trashcan_open.ts +68 -0
- package/core/events/events_ui.d.ts +37 -0
- package/core/events/{events_ui.js → events_ui.ts} +27 -26
- package/core/events/events_ui_base.d.ts +26 -0
- package/core/events/{events_ui_base.js → events_ui_base.ts} +17 -26
- package/core/events/events_var_base.d.ts +31 -0
- package/core/events/events_var_base.ts +65 -0
- package/core/events/events_var_create.d.ts +35 -0
- package/core/events/{events_var_create.js → events_var_create.ts} +24 -25
- package/core/events/events_var_delete.d.ts +35 -0
- package/core/events/{events_var_delete.js → events_var_delete.ts} +24 -25
- package/core/events/events_var_rename.d.ts +36 -0
- package/core/events/{events_var_rename.js → events_var_rename.ts} +25 -26
- package/core/events/events_viewport.d.ts +39 -0
- package/core/events/events_viewport.ts +100 -0
- package/core/events/utils.d.ts +272 -0
- package/core/events/{utils.js → utils.ts} +148 -219
- package/core/events/workspace_events.d.ts +36 -0
- package/core/events/workspace_events.ts +86 -0
- package/core/extensions.d.ts +107 -0
- package/core/{extensions.js → extensions.ts} +153 -172
- package/core/field.d.ts +534 -0
- package/core/{field.js → field.ts} +413 -489
- package/core/field_angle.d.ts +176 -0
- package/core/field_angle.ts +563 -0
- package/core/field_checkbox.d.ts +124 -0
- package/core/field_checkbox.ts +243 -0
- package/core/field_colour.d.ts +200 -0
- package/core/field_colour.ts +632 -0
- package/core/field_dropdown.d.ts +222 -0
- package/core/{field_dropdown.js → field_dropdown.ts} +277 -299
- package/core/field_image.d.ts +134 -0
- package/core/field_image.ts +282 -0
- package/core/field_label.d.ts +71 -0
- package/core/field_label.ts +152 -0
- package/core/field_label_serializable.d.ts +42 -0
- package/core/field_label_serializable.ts +76 -0
- package/core/field_multilineinput.d.ts +146 -0
- package/core/{field_multilineinput.js → field_multilineinput.ts} +166 -163
- package/core/field_number.d.ts +156 -0
- package/core/{field_number.js → field_number.ts} +110 -123
- package/core/field_registry.d.ts +45 -0
- package/core/{field_registry.js → field_registry.ts} +37 -30
- package/core/field_textinput.d.ts +219 -0
- package/core/field_textinput.ts +591 -0
- package/core/field_variable.d.ts +217 -0
- package/core/{field_variable.js → field_variable.ts} +174 -187
- package/core/flyout_base.d.ts +459 -0
- package/core/{flyout_base.js → flyout_base.ts} +429 -518
- package/core/flyout_button.d.ts +81 -0
- package/core/flyout_button.ts +292 -0
- package/core/flyout_horizontal.d.ts +82 -0
- package/core/{flyout_horizontal.js → flyout_horizontal.ts} +97 -107
- package/core/flyout_metrics_manager.d.ts +40 -0
- package/core/{flyout_metrics_manager.js → flyout_metrics_manager.ts} +22 -34
- package/core/flyout_vertical.d.ts +83 -0
- package/core/{flyout_vertical.js → flyout_vertical.ts} +106 -117
- package/core/generator.d.ts +205 -0
- package/core/{generator.js → generator.ts} +168 -193
- package/core/gesture.d.ts +357 -0
- package/core/{gesture.js → gesture.ts} +289 -369
- package/core/grid.d.ts +83 -0
- package/core/grid.ts +192 -0
- package/core/icon.d.ts +78 -0
- package/core/icon.ts +189 -0
- package/core/inject.d.ts +15 -0
- package/core/{inject.js → inject.ts} +101 -100
- package/core/input.d.ts +128 -0
- package/core/input.ts +309 -0
- package/core/input_types.d.ts +14 -0
- package/core/{input_types.js → input_types.ts} +8 -12
- package/core/insertion_marker_manager.d.ts +212 -0
- package/core/{insertion_marker_manager.js → insertion_marker_manager.ts} +234 -236
- package/core/interfaces/i_ast_node_location.d.ts +11 -0
- package/core/interfaces/{i_ast_node_location.js → i_ast_node_location.ts} +4 -7
- package/core/interfaces/i_ast_node_location_svg.d.ts +22 -0
- package/core/interfaces/i_ast_node_location_svg.ts +37 -0
- package/core/interfaces/i_ast_node_location_with_block.d.ts +18 -0
- package/core/interfaces/i_ast_node_location_with_block.ts +38 -0
- package/core/interfaces/i_autohideable.d.ts +18 -0
- package/core/interfaces/i_autohideable.ts +34 -0
- package/core/interfaces/i_block_dragger.d.ts +43 -0
- package/core/interfaces/i_block_dragger.ts +67 -0
- package/core/interfaces/i_bounded_element.d.ts +24 -0
- package/core/interfaces/i_bounded_element.ts +42 -0
- package/core/interfaces/i_bubble.d.ts +59 -0
- package/core/interfaces/i_bubble.ts +88 -0
- package/core/interfaces/i_collapsible_toolbox_item.d.ts +26 -0
- package/core/interfaces/i_collapsible_toolbox_item.ts +47 -0
- package/core/interfaces/i_component.d.ts +17 -0
- package/core/interfaces/{i_component.js → i_component.ts} +9 -14
- package/core/interfaces/i_connection_checker.d.ts +69 -0
- package/core/interfaces/i_connection_checker.ts +102 -0
- package/core/interfaces/i_contextmenu.d.ts +13 -0
- package/core/interfaces/i_contextmenu.ts +26 -0
- package/core/interfaces/i_copyable.d.ts +24 -0
- package/core/interfaces/i_copyable.ts +40 -0
- package/core/interfaces/i_deletable.d.ts +16 -0
- package/core/interfaces/{i_deletable.js → i_deletable.ts} +9 -13
- package/core/interfaces/i_delete_area.d.ts +25 -0
- package/core/interfaces/i_delete_area.ts +46 -0
- package/core/interfaces/i_drag_target.d.ts +53 -0
- package/core/interfaces/i_drag_target.ts +84 -0
- package/core/interfaces/i_draggable.d.ts +12 -0
- package/core/interfaces/{i_draggable.js → i_draggable.ts} +4 -10
- package/core/interfaces/i_flyout.d.ts +134 -0
- package/core/interfaces/i_flyout.ts +186 -0
- package/core/interfaces/i_keyboard_accessible.d.ts +18 -0
- package/core/interfaces/i_keyboard_accessible.ts +35 -0
- package/core/interfaces/i_metrics_manager.d.ts +117 -0
- package/core/interfaces/i_metrics_manager.ts +151 -0
- package/core/interfaces/i_movable.d.ts +16 -0
- package/core/interfaces/{i_movable.js → i_movable.ts} +9 -13
- package/core/interfaces/i_positionable.d.ts +27 -0
- package/core/interfaces/i_positionable.ts +50 -0
- package/core/interfaces/i_registrable.d.ts +11 -0
- package/core/interfaces/{i_registrable.js → i_registrable.ts} +3 -7
- package/core/interfaces/i_registrable_field.d.ts +17 -0
- package/core/interfaces/{i_registrable_field.js → i_registrable_field.ts} +8 -16
- package/core/interfaces/i_selectable.d.ts +18 -0
- package/core/interfaces/i_selectable.ts +34 -0
- package/core/interfaces/i_selectable_toolbox_item.d.ts +42 -0
- package/core/interfaces/i_selectable_toolbox_item.ts +64 -0
- package/core/interfaces/i_serializer.d.ts +42 -0
- package/core/interfaces/i_serializer.ts +65 -0
- package/core/interfaces/i_styleable.d.ts +21 -0
- package/core/interfaces/i_styleable.ts +35 -0
- package/core/interfaces/i_toolbox.d.ts +85 -0
- package/core/interfaces/i_toolbox.ts +127 -0
- package/core/interfaces/i_toolbox_item.d.ts +62 -0
- package/core/interfaces/i_toolbox_item.ts +84 -0
- package/core/internal_constants.d.ts +40 -0
- package/core/{internal_constants.js → internal_constants.ts} +13 -18
- package/core/keyboard_nav/ast_node.d.ts +239 -0
- package/core/keyboard_nav/{ast_node.js → ast_node.ts} +207 -231
- package/core/keyboard_nav/basic_cursor.d.ts +88 -0
- package/core/keyboard_nav/{basic_cursor.js → basic_cursor.ts} +55 -66
- package/core/keyboard_nav/cursor.d.ts +41 -0
- package/core/keyboard_nav/{cursor.js → cursor.ts} +25 -35
- package/core/keyboard_nav/marker.d.ts +58 -0
- package/core/keyboard_nav/{marker.js → marker.ts} +36 -55
- package/core/keyboard_nav/tab_navigate_cursor.d.ts +19 -0
- package/core/keyboard_nav/{tab_navigate_cursor.js → tab_navigate_cursor.ts} +11 -15
- package/core/main.d.ts +11 -0
- package/core/main.js +303 -0
- package/core/marker_manager.d.ts +85 -0
- package/core/marker_manager.ts +181 -0
- package/core/menu.d.ts +149 -0
- package/core/{menu.js → menu.ts} +141 -174
- package/core/menuitem.d.ts +118 -0
- package/core/menuitem.ts +240 -0
- package/core/metrics_manager.d.ts +201 -0
- package/core/{metrics_manager.js → metrics_manager.ts} +117 -156
- package/core/msg.d.ts +9 -0
- package/core/{msg.js → msg.ts} +4 -8
- package/core/mutator.d.ts +128 -0
- package/core/{mutator.js → mutator.ts} +196 -211
- package/core/names.d.ts +124 -0
- package/core/names.ts +267 -0
- package/core/options.d.ts +137 -0
- package/core/{options.js → options.ts} +147 -173
- package/core/positionable_helpers.d.ts +88 -0
- package/core/{positionable_helpers.js → positionable_helpers.ts} +63 -70
- package/core/procedures.d.ts +108 -0
- package/core/{procedures.js → procedures.ts} +143 -152
- package/core/registry.d.ts +137 -0
- package/core/registry.ts +339 -0
- package/core/rendered_connection.d.ts +191 -0
- package/core/{rendered_connection.js → rendered_connection.ts} +164 -184
- package/core/renderers/common/block_rendering.d.ts +114 -0
- package/core/renderers/common/block_rendering.ts +164 -0
- package/core/renderers/common/constants.d.ts +458 -0
- package/core/renderers/common/constants.ts +1124 -0
- package/core/renderers/common/debug.d.ts +28 -0
- package/core/renderers/common/{debug.js → debug.ts} +14 -20
- package/core/renderers/common/debugger.d.ts +120 -0
- package/core/renderers/common/{debugger.js → debugger.ts} +100 -124
- package/core/renderers/common/drawer.d.ts +132 -0
- package/core/renderers/common/{drawer.js → drawer.ts} +112 -137
- package/core/renderers/common/i_path_object.d.ts +117 -0
- package/core/renderers/common/i_path_object.ts +161 -0
- package/core/renderers/common/info.d.ts +194 -0
- package/core/renderers/common/{info.js → info.ts} +165 -222
- package/core/renderers/common/marker_svg.d.ts +220 -0
- package/core/renderers/common/marker_svg.ts +680 -0
- package/core/renderers/common/path_object.d.ts +146 -0
- package/core/renderers/common/path_object.ts +272 -0
- package/core/renderers/common/renderer.d.ts +157 -0
- package/core/renderers/common/renderer.ts +271 -0
- package/core/renderers/geras/constants.d.ts +23 -0
- package/core/renderers/geras/constants.ts +61 -0
- package/core/renderers/geras/drawer.d.ts +43 -0
- package/core/renderers/geras/{drawer.js → drawer.ts} +40 -84
- package/core/renderers/geras/geras.d.ts +11 -0
- package/core/renderers/geras/geras.ts +37 -0
- package/core/renderers/geras/highlight_constants.d.ts +108 -0
- package/core/renderers/geras/{highlight_constants.js → highlight_constants.ts} +107 -69
- package/core/renderers/geras/highlighter.d.ts +98 -0
- package/core/renderers/geras/{highlighter.js → highlighter.ts} +81 -86
- package/core/renderers/geras/info.d.ts +45 -0
- package/core/renderers/geras/{info.js → info.ts} +61 -99
- package/core/renderers/geras/measurables/inline_input.d.ts +23 -0
- package/core/renderers/geras/measurables/inline_input.ts +51 -0
- package/core/renderers/geras/measurables/statement_input.d.ts +23 -0
- package/core/renderers/geras/measurables/statement_input.ts +50 -0
- package/core/renderers/geras/path_object.d.ts +47 -0
- package/core/renderers/geras/{path_object.js → path_object.ts} +46 -74
- package/core/renderers/geras/renderer.d.ts +69 -0
- package/core/renderers/geras/renderer.ts +126 -0
- package/core/renderers/measurables/base.d.ts +27 -0
- package/core/renderers/measurables/base.ts +53 -0
- package/core/renderers/measurables/bottom_row.d.ts +61 -0
- package/core/renderers/measurables/bottom_row.ts +120 -0
- package/core/renderers/measurables/connection.d.ts +25 -0
- package/core/renderers/measurables/connection.ts +52 -0
- package/core/renderers/measurables/external_value_input.d.ts +27 -0
- package/core/renderers/measurables/external_value_input.ts +65 -0
- package/core/renderers/measurables/field.d.ts +30 -0
- package/core/renderers/measurables/field.ts +63 -0
- package/core/renderers/measurables/hat.d.ts +21 -0
- package/core/renderers/measurables/{hat.js → hat.ts} +12 -14
- package/core/renderers/measurables/icon.d.ts +26 -0
- package/core/renderers/measurables/{icon.js → icon.ts} +14 -18
- package/core/renderers/measurables/in_row_spacer.d.ts +21 -0
- package/core/renderers/measurables/in_row_spacer.ts +44 -0
- package/core/renderers/measurables/inline_input.d.ts +24 -0
- package/core/renderers/measurables/{inline_input.js → inline_input.ts} +22 -26
- package/core/renderers/measurables/input_connection.d.ts +29 -0
- package/core/renderers/measurables/input_connection.ts +66 -0
- package/core/renderers/measurables/input_row.d.ts +30 -0
- package/core/renderers/measurables/{input_row.js → input_row.ts} +24 -31
- package/core/renderers/measurables/jagged_edge.d.ts +20 -0
- package/core/renderers/measurables/{jagged_edge.js → jagged_edge.ts} +10 -13
- package/core/renderers/measurables/next_connection.d.ts +23 -0
- package/core/renderers/measurables/next_connection.ts +47 -0
- package/core/renderers/measurables/output_connection.d.ts +26 -0
- package/core/renderers/measurables/output_connection.ts +56 -0
- package/core/renderers/measurables/previous_connection.d.ts +23 -0
- package/core/renderers/measurables/previous_connection.ts +47 -0
- package/core/renderers/measurables/round_corner.d.ts +21 -0
- package/core/renderers/measurables/round_corner.ts +49 -0
- package/core/renderers/measurables/row.d.ts +141 -0
- package/core/renderers/measurables/row.ts +225 -0
- package/core/renderers/measurables/spacer_row.d.ts +29 -0
- package/core/renderers/measurables/spacer_row.ts +55 -0
- package/core/renderers/measurables/square_corner.d.ts +21 -0
- package/core/renderers/measurables/square_corner.ts +47 -0
- package/core/renderers/measurables/statement_input.d.ts +22 -0
- package/core/renderers/measurables/{statement_input.js → statement_input.ts} +14 -18
- package/core/renderers/measurables/top_row.d.ts +56 -0
- package/core/renderers/measurables/top_row.ts +122 -0
- package/core/renderers/measurables/types.d.ts +235 -0
- package/core/renderers/measurables/types.ts +332 -0
- package/core/renderers/minimalist/constants.d.ts +14 -0
- package/core/renderers/minimalist/{constants.js → constants.ts} +5 -10
- package/core/renderers/minimalist/drawer.d.ts +21 -0
- package/core/renderers/minimalist/drawer.ts +38 -0
- package/core/renderers/minimalist/info.d.ts +30 -0
- package/core/renderers/minimalist/info.ts +52 -0
- package/core/renderers/minimalist/minimalist.d.ts +6 -0
- package/core/renderers/minimalist/minimalist.ts +22 -0
- package/core/renderers/minimalist/renderer.d.ts +41 -0
- package/core/renderers/minimalist/renderer.ts +71 -0
- package/core/renderers/thrasos/info.d.ts +40 -0
- package/core/renderers/thrasos/{info.js → info.ts} +66 -67
- package/core/renderers/thrasos/renderer.d.ts +25 -0
- package/core/renderers/thrasos/renderer.ts +48 -0
- package/core/renderers/thrasos/thrasos.d.ts +4 -0
- package/core/renderers/thrasos/thrasos.ts +20 -0
- package/core/renderers/zelos/constants.d.ts +186 -0
- package/core/renderers/zelos/{constants.js → constants.ts} +294 -441
- package/core/renderers/zelos/drawer.d.ts +47 -0
- package/core/renderers/zelos/{drawer.js → drawer.ts} +73 -95
- package/core/renderers/zelos/info.d.ts +88 -0
- package/core/renderers/zelos/{info.js → info.ts} +111 -142
- package/core/renderers/zelos/marker_svg.d.ts +46 -0
- package/core/renderers/zelos/marker_svg.ts +151 -0
- package/core/renderers/zelos/measurables/bottom_row.d.ts +27 -0
- package/core/renderers/zelos/measurables/bottom_row.ts +53 -0
- package/core/renderers/zelos/measurables/inputs.d.ts +23 -0
- package/core/renderers/zelos/measurables/{inputs.js → inputs.ts} +14 -15
- package/core/renderers/zelos/measurables/row_elements.d.ts +21 -0
- package/core/renderers/zelos/measurables/row_elements.ts +45 -0
- package/core/renderers/zelos/measurables/top_row.d.ts +29 -0
- package/core/renderers/zelos/measurables/{top_row.js → top_row.ts} +14 -27
- package/core/renderers/zelos/path_object.d.ts +77 -0
- package/core/renderers/zelos/path_object.ts +215 -0
- package/core/renderers/zelos/renderer.d.ts +74 -0
- package/core/renderers/zelos/renderer.ts +142 -0
- package/core/renderers/zelos/zelos.d.ts +12 -0
- package/core/renderers/zelos/zelos.ts +39 -0
- package/core/scrollbar.d.ts +277 -0
- package/core/{scrollbar.js → scrollbar.ts} +307 -328
- package/core/scrollbar_pair.d.ts +105 -0
- package/core/{scrollbar_pair.js → scrollbar_pair.ts} +71 -79
- package/core/serialization/blocks.d.ts +98 -0
- package/core/serialization/{blocks.js → blocks.ts} +229 -228
- package/core/serialization/exceptions.d.ts +73 -0
- package/core/serialization/exceptions.ts +98 -0
- package/core/serialization/priorities.d.ts +15 -0
- package/core/serialization/{priorities.js → priorities.ts} +4 -10
- package/core/serialization/registry.d.ts +20 -0
- package/core/serialization/{registry.js → registry.ts} +11 -13
- package/core/serialization/variables.d.ts +14 -0
- package/core/serialization/{variables.js → variables.ts} +30 -32
- package/core/serialization/workspaces.d.ts +28 -0
- package/core/serialization/{workspaces.js → workspaces.ts} +30 -27
- package/core/shortcut_items.d.ts +61 -0
- package/core/{shortcut_items.js → shortcut_items.ts} +121 -157
- package/core/shortcut_registry.d.ts +151 -0
- package/core/shortcut_registry.ts +355 -0
- package/core/sprites.d.ts +19 -0
- package/core/{sprites.js → sprites.ts} +4 -6
- package/core/theme/classic.d.ts +12 -0
- package/core/theme/{classic.js → classic.ts} +5 -7
- package/core/theme/themes.d.ts +8 -0
- package/core/theme/themes.ts +22 -0
- package/core/theme/zelos.d.ts +11 -0
- package/core/theme/{zelos.js → zelos.ts} +4 -7
- package/core/theme.d.ts +142 -0
- package/core/theme.ts +221 -0
- package/core/theme_manager.d.ts +81 -0
- package/core/theme_manager.ts +186 -0
- package/core/toolbox/category.d.ts +239 -0
- package/core/toolbox/category.ts +679 -0
- package/core/toolbox/collapsible_category.d.ts +91 -0
- package/core/toolbox/collapsible_category.ts +273 -0
- package/core/toolbox/separator.d.ts +39 -0
- package/core/toolbox/separator.ts +105 -0
- package/core/toolbox/toolbox.d.ts +352 -0
- package/core/toolbox/{toolbox.js → toolbox.ts} +316 -432
- package/core/toolbox/toolbox_item.d.ts +85 -0
- package/core/toolbox/toolbox_item.ts +147 -0
- package/core/tooltip.d.ts +126 -0
- package/core/{tooltip.js → tooltip.ts} +136 -214
- package/core/touch.d.ts +121 -0
- package/core/touch.ts +306 -0
- package/core/touch_gesture.d.ts +115 -0
- package/core/{touch_gesture.js → touch_gesture.ts} +87 -125
- package/core/trashcan.d.ts +195 -0
- package/core/{trashcan.js → trashcan.ts} +226 -312
- package/core/utils/aria.d.ts +67 -0
- package/core/utils/{aria.js → aria.ts} +47 -61
- package/core/utils/array.d.ts +14 -0
- package/core/utils/{array.js → array.ts} +10 -12
- package/core/utils/colour.d.ts +103 -0
- package/core/utils/{colour.js → colour.ts} +60 -72
- package/core/utils/coordinate.d.ts +72 -0
- package/core/utils/coordinate.ts +124 -0
- package/core/utils/deprecation.d.ts +17 -0
- package/core/utils/{deprecation.js → deprecation.ts} +11 -11
- package/core/utils/dom.d.ts +165 -0
- package/core/utils/{dom.js → dom.ts} +125 -147
- package/core/utils/idgenerator.d.ts +25 -0
- package/core/utils/{idgenerator.js → idgenerator.ts} +15 -18
- package/core/utils/keycodes.d.ts +137 -0
- package/core/utils/keycodes.ts +169 -0
- package/core/utils/math.d.ts +30 -0
- package/core/utils/{math.js → math.ts} +17 -19
- package/core/utils/metrics.d.ts +64 -0
- package/core/utils/metrics.ts +97 -0
- package/core/utils/object.d.ts +35 -0
- package/core/utils/{object.js → object.ts} +30 -26
- package/core/utils/parsing.d.ts +50 -0
- package/core/utils/{parsing.js → parsing.ts} +50 -50
- package/core/utils/rect.d.ts +38 -0
- package/core/utils/{rect.js → rect.ts} +18 -31
- package/core/utils/sentinel.d.ts +11 -0
- package/core/utils/{sentinel.js → sentinel.ts} +3 -5
- package/core/utils/size.d.ts +27 -0
- package/core/utils/{size.js → size.ts} +12 -26
- package/core/utils/string.d.ts +55 -0
- package/core/utils/{string.js → string.ts} +64 -61
- package/core/utils/style.d.ts +127 -0
- package/core/utils/{style.js → style.ts} +102 -92
- package/core/utils/svg.d.ts +68 -0
- package/core/utils/svg.ts +88 -0
- package/core/utils/svg_math.d.ts +70 -0
- package/core/utils/{svg_math.js → svg_math.ts} +72 -71
- package/core/utils/svg_paths.d.ts +101 -0
- package/core/utils/{svg_paths.js → svg_paths.ts} +56 -65
- package/core/utils/toolbox.d.ts +193 -0
- package/core/utils/toolbox.ts +433 -0
- package/core/utils/useragent.d.ts +33 -0
- package/core/utils/useragent.ts +135 -0
- package/core/utils/xml.d.ts +52 -0
- package/core/utils/{xml.js → xml.ts} +26 -36
- package/core/utils.d.ts +217 -0
- package/core/utils.ts +428 -0
- package/core/variable_map.d.ts +141 -0
- package/core/{variable_map.js → variable_map.ts} +131 -149
- package/core/variable_model.d.ts +40 -0
- package/core/variable_model.ts +82 -0
- package/core/variables.d.ts +181 -0
- package/core/{variables.js → variables.ts} +206 -188
- package/core/variables_dynamic.d.ts +38 -0
- package/core/{variables_dynamic.js → variables_dynamic.ts} +47 -43
- package/core/warning.d.ts +50 -0
- package/core/{warning.js → warning.ts} +52 -66
- package/core/widgetdiv.d.ts +69 -0
- package/core/widgetdiv.ts +257 -0
- package/core/workspace.d.ts +386 -0
- package/core/workspace.ts +801 -0
- package/core/workspace_audio.d.ts +47 -0
- package/core/{workspace_audio.js → workspace_audio.ts} +47 -60
- package/core/workspace_comment.d.ts +170 -0
- package/core/workspace_comment.ts +398 -0
- package/core/workspace_comment_svg.d.ts +329 -0
- package/core/{workspace_comment_svg.js → workspace_comment_svg.ts} +347 -444
- package/core/workspace_drag_surface_svg.d.ts +68 -0
- package/core/{workspace_drag_surface_svg.js → workspace_drag_surface_svg.ts} +75 -82
- package/core/workspace_dragger.d.ts +48 -0
- package/core/workspace_dragger.ts +104 -0
- package/core/workspace_svg.d.ts +920 -0
- package/core/{workspace_svg.js → workspace_svg.ts} +855 -935
- package/core/xml.d.ts +117 -0
- package/core/{xml.js → xml.ts} +306 -326
- package/core/zoom_controls.d.ts +130 -0
- package/core/{zoom_controls.js → zoom_controls.ts} +185 -251
- package/core.d.ts +1 -3
- package/core.js +1 -2
- package/dart.d.ts +0 -3
- package/dart_compressed.js +387 -99
- package/dart_compressed.js.map +1 -1
- package/generators/dart/all.js +2 -0
- package/generators/dart/colour.js +1 -1
- package/generators/dart/lists.js +1 -1
- package/generators/dart/logic.js +1 -1
- package/generators/dart/loops.js +1 -1
- package/generators/dart/math.js +1 -1
- package/generators/dart/procedures.js +1 -1
- package/generators/dart/text.js +1 -1
- package/generators/dart/variables.js +1 -1
- package/generators/dart/variables_dynamic.js +1 -1
- package/generators/dart.js +1 -2
- package/generators/javascript/all.js +2 -0
- package/generators/javascript/colour.js +1 -1
- package/generators/javascript/lists.js +1 -1
- package/generators/javascript/logic.js +1 -1
- package/generators/javascript/loops.js +1 -1
- package/generators/javascript/math.js +4 -4
- package/generators/javascript/procedures.js +1 -1
- package/generators/javascript/text.js +2 -2
- package/generators/javascript/variables.js +1 -1
- package/generators/javascript/variables_dynamic.js +1 -1
- package/generators/javascript.js +1 -3
- package/generators/lua/all.js +2 -0
- package/generators/lua/colour.js +1 -1
- package/generators/lua/lists.js +1 -1
- package/generators/lua/logic.js +1 -1
- package/generators/lua/loops.js +1 -1
- package/generators/lua/math.js +1 -1
- package/generators/lua/procedures.js +1 -1
- package/generators/lua/text.js +1 -1
- package/generators/lua/variables.js +1 -1
- package/generators/lua/variables_dynamic.js +1 -1
- package/generators/lua.js +1 -2
- package/generators/php/all.js +2 -0
- package/generators/php/colour.js +1 -1
- package/generators/php/lists.js +1 -2
- package/generators/php/logic.js +1 -1
- package/generators/php/loops.js +1 -1
- package/generators/php/math.js +1 -1
- package/generators/php/procedures.js +1 -1
- package/generators/php/text.js +1 -1
- package/generators/php/variables.js +1 -1
- package/generators/php/variables_dynamic.js +1 -1
- package/generators/php.js +1 -2
- package/generators/python/all.js +2 -0
- package/generators/python/colour.js +3 -3
- package/generators/python/lists.js +1 -1
- package/generators/python/logic.js +1 -1
- package/generators/python/loops.js +4 -7
- package/generators/python/math.js +1 -1
- package/generators/python/procedures.js +1 -1
- package/generators/python/text.js +1 -1
- package/generators/python/variables.js +1 -1
- package/generators/python/variables_dynamic.js +1 -1
- package/generators/python.js +1 -2
- package/index.d.ts +2 -8
- package/javascript.d.ts +0 -3
- package/javascript_compressed.js +314 -104
- package/javascript_compressed.js.map +1 -1
- package/lua.d.ts +0 -3
- package/lua_compressed.js +399 -81
- package/lua_compressed.js.map +1 -1
- package/msg/ab.js +421 -421
- package/msg/ace.js +421 -421
- package/msg/af.js +421 -421
- package/msg/am.js +421 -421
- package/msg/ar.js +421 -421
- package/msg/ast.js +421 -421
- package/msg/az.js +421 -421
- package/msg/ba.js +421 -421
- package/msg/bcc.js +421 -421
- package/msg/be-tarask.js +421 -421
- package/msg/be.js +421 -421
- package/msg/bg.js +421 -421
- package/msg/bn.js +421 -421
- package/msg/br.js +421 -421
- package/msg/bs.js +421 -421
- package/msg/ca.js +421 -421
- package/msg/cdo.js +421 -421
- package/msg/cs.js +421 -421
- package/msg/da.js +421 -421
- package/msg/de.js +421 -421
- package/msg/diq.js +421 -421
- package/msg/dty.js +421 -421
- package/msg/ee.js +421 -421
- package/msg/el.js +421 -421
- package/msg/en-gb.js +421 -421
- package/msg/en.js +421 -421
- package/msg/eo.js +421 -421
- package/msg/es.js +421 -421
- package/msg/et.js +421 -421
- package/msg/eu.js +421 -421
- package/msg/fa.js +421 -421
- package/msg/fi.js +421 -421
- package/msg/fo.js +421 -421
- package/msg/fr.js +421 -421
- package/msg/frr.js +421 -421
- package/msg/gl.js +421 -421
- package/msg/gn.js +421 -421
- package/msg/gor.js +421 -421
- package/msg/ha.js +421 -421
- package/msg/hak.js +421 -421
- package/msg/he.js +421 -421
- package/msg/hi.js +421 -421
- package/msg/hr.js +421 -421
- package/msg/hrx.js +421 -421
- package/msg/hu.js +421 -421
- package/msg/hy.js +421 -421
- package/msg/ia.js +421 -421
- package/msg/id.js +421 -421
- package/msg/ig.js +421 -421
- package/msg/inh.js +421 -421
- package/msg/is.js +421 -421
- package/msg/it.js +421 -421
- package/msg/ja.js +421 -421
- package/msg/ka.js +421 -421
- package/msg/kab.js +421 -421
- package/msg/kbd-cyrl.js +421 -421
- package/msg/km.js +421 -421
- package/msg/kn.js +421 -421
- package/msg/ko.js +421 -421
- package/msg/ksh.js +421 -421
- package/msg/ku-latn.js +421 -421
- package/msg/ky.js +421 -421
- package/msg/la.js +421 -421
- package/msg/lb.js +421 -421
- package/msg/lki.js +421 -421
- package/msg/lo.js +421 -421
- package/msg/lrc.js +421 -421
- package/msg/lt.js +421 -421
- package/msg/lv.js +421 -421
- package/msg/mg.js +421 -421
- package/msg/mk.js +421 -421
- package/msg/ml.js +421 -421
- package/msg/mnw.js +421 -421
- package/msg/ms.js +421 -421
- package/msg/my.js +421 -421
- package/msg/mzn.js +421 -421
- package/msg/nb.js +421 -421
- package/msg/ne.js +421 -421
- package/msg/nl.js +421 -421
- package/msg/oc.js +421 -421
- package/msg/olo.js +421 -421
- package/msg/pa.js +421 -421
- package/msg/pl.js +421 -421
- package/msg/pms.js +421 -421
- package/msg/ps.js +421 -421
- package/msg/pt-br.js +421 -421
- package/msg/pt.js +421 -421
- package/msg/ro.js +421 -421
- package/msg/ru.js +421 -421
- package/msg/sc.js +421 -421
- package/msg/sco.js +421 -421
- package/msg/sd.js +421 -421
- package/msg/shn.js +421 -421
- package/msg/si.js +421 -421
- package/msg/sk.js +421 -421
- package/msg/skr-arab.js +421 -421
- package/msg/sl.js +421 -421
- package/msg/smn.js +421 -421
- package/msg/sq.js +421 -421
- package/msg/sr-latn.js +421 -421
- package/msg/sr.js +421 -421
- package/msg/sv.js +421 -421
- package/msg/sw.js +421 -421
- package/msg/ta.js +421 -421
- package/msg/tcy.js +421 -421
- package/msg/te.js +421 -421
- package/msg/th.js +421 -421
- package/msg/ti.js +421 -421
- package/msg/tl.js +421 -421
- package/msg/tlh.js +421 -421
- package/msg/tr.js +421 -421
- package/msg/ug-arab.js +421 -421
- package/msg/uk.js +421 -421
- package/msg/ur.js +421 -421
- package/msg/uz.js +421 -421
- package/msg/vi.js +421 -421
- package/msg/xmf.js +421 -421
- package/msg/yo.js +421 -421
- package/msg/yue.js +421 -421
- package/msg/zgh.js +421 -421
- package/msg/zh-hans.js +421 -421
- package/msg/zh-hant.js +421 -421
- package/package.json +5 -5
- package/php.d.ts +0 -3
- package/php_compressed.js +322 -93
- package/php_compressed.js.map +1 -1
- package/python.d.ts +0 -3
- package/python_compressed.js +237 -90
- package/python_compressed.js.map +1 -1
- package/blockly.d.ts +0 -26127
- package/core/blockly_options.js +0 -28
- package/core/bubble_dragger.js +0 -298
- package/core/clipboard.js +0 -80
- package/core/component_manager.js +0 -263
- package/core/contextmenu_items.js +0 -651
- package/core/contextmenu_registry.js +0 -178
- package/core/delete_area.js +0 -87
- package/core/dialog.js +0 -107
- package/core/drag_target.js +0 -98
- package/core/events/events.js +0 -147
- package/core/events/events_abstract.js +0 -133
- package/core/events/events_block_base.js +0 -70
- package/core/events/events_block_drag.js +0 -89
- package/core/events/events_bubble_open.js +0 -90
- package/core/events/events_comment_base.js +0 -121
- package/core/events/events_marker_move.js +0 -110
- package/core/events/events_selected.js +0 -83
- package/core/events/events_toolbox_item_select.js +0 -84
- package/core/events/events_trashcan_open.js +0 -73
- package/core/events/events_var_base.js +0 -70
- package/core/events/events_viewport.js +0 -107
- package/core/events/workspace_events.js +0 -93
- package/core/field_angle.js +0 -591
- package/core/field_checkbox.js +0 -255
- package/core/field_colour.js +0 -717
- package/core/field_image.js +0 -304
- package/core/field_label.js +0 -149
- package/core/field_label_serializable.js +0 -80
- package/core/field_textinput.js +0 -619
- package/core/flyout_button.js +0 -356
- package/core/grid.js +0 -226
- package/core/icon.js +0 -225
- package/core/input.js +0 -335
- package/core/interfaces/i_ast_node_location_svg.js +0 -45
- package/core/interfaces/i_ast_node_location_with_block.js +0 -41
- package/core/interfaces/i_autohideable.js +0 -40
- package/core/interfaces/i_block_dragger.js +0 -66
- package/core/interfaces/i_bounded_element.js +0 -45
- package/core/interfaces/i_bubble.js +0 -95
- package/core/interfaces/i_collapsible_toolbox_item.js +0 -53
- package/core/interfaces/i_connection_checker.js +0 -104
- package/core/interfaces/i_contextmenu.js +0 -32
- package/core/interfaces/i_copyable.js +0 -49
- package/core/interfaces/i_delete_area.js +0 -50
- package/core/interfaces/i_drag_target.js +0 -88
- package/core/interfaces/i_flyout.js +0 -201
- package/core/interfaces/i_keyboard_accessible.js +0 -38
- package/core/interfaces/i_metrics_manager.js +0 -154
- package/core/interfaces/i_positionable.js +0 -51
- package/core/interfaces/i_selectable.js +0 -51
- package/core/interfaces/i_selectable_toolbox_item.js +0 -73
- package/core/interfaces/i_serializer.js +0 -77
- package/core/interfaces/i_styleable.js +0 -39
- package/core/interfaces/i_toolbox.js +0 -142
- package/core/interfaces/i_toolbox_item.js +0 -85
- package/core/marker_manager.js +0 -213
- package/core/menuitem.js +0 -292
- package/core/names.js +0 -293
- package/core/registry.js +0 -384
- package/core/renderers/common/block_rendering.js +0 -170
- package/core/renderers/common/constants.js +0 -1250
- package/core/renderers/common/i_path_object.js +0 -162
- package/core/renderers/common/marker_svg.js +0 -721
- package/core/renderers/common/path_object.js +0 -283
- package/core/renderers/common/renderer.js +0 -305
- package/core/renderers/geras/constants.js +0 -73
- package/core/renderers/geras/geras.js +0 -36
- package/core/renderers/geras/measurables/inline_input.js +0 -58
- package/core/renderers/geras/measurables/statement_input.js +0 -57
- package/core/renderers/geras/renderer.js +0 -149
- package/core/renderers/measurables/base.js +0 -64
- package/core/renderers/measurables/bottom_row.js +0 -138
- package/core/renderers/measurables/connection.js +0 -56
- package/core/renderers/measurables/external_value_input.js +0 -70
- package/core/renderers/measurables/field.js +0 -71
- package/core/renderers/measurables/in_row_spacer.js +0 -47
- package/core/renderers/measurables/input_connection.js +0 -75
- package/core/renderers/measurables/next_connection.js +0 -50
- package/core/renderers/measurables/output_connection.js +0 -61
- package/core/renderers/measurables/previous_connection.js +0 -50
- package/core/renderers/measurables/round_corner.js +0 -52
- package/core/renderers/measurables/row.js +0 -247
- package/core/renderers/measurables/spacer_row.js +0 -69
- package/core/renderers/measurables/square_corner.js +0 -50
- package/core/renderers/measurables/top_row.js +0 -143
- package/core/renderers/measurables/types.js +0 -353
- package/core/renderers/minimalist/drawer.js +0 -42
- package/core/renderers/minimalist/info.js +0 -54
- package/core/renderers/minimalist/minimalist.js +0 -26
- package/core/renderers/minimalist/renderer.js +0 -80
- package/core/renderers/thrasos/renderer.js +0 -53
- package/core/renderers/thrasos/thrasos.js +0 -22
- package/core/renderers/zelos/marker_svg.js +0 -179
- package/core/renderers/zelos/measurables/bottom_row.js +0 -66
- package/core/renderers/zelos/measurables/row_elements.js +0 -46
- package/core/renderers/zelos/path_object.js +0 -247
- package/core/renderers/zelos/renderer.js +0 -147
- package/core/renderers/zelos/zelos.js +0 -38
- package/core/serialization/exceptions.js +0 -144
- package/core/shortcut_registry.js +0 -366
- package/core/theme/themes.js +0 -23
- package/core/theme.js +0 -228
- package/core/theme_manager.js +0 -211
- package/core/toolbox/category.js +0 -751
- package/core/toolbox/collapsible_category.js +0 -311
- package/core/toolbox/separator.js +0 -133
- package/core/toolbox/toolbox_item.js +0 -173
- package/core/touch.js +0 -285
- package/core/utils/coordinate.js +0 -138
- package/core/utils/global.js +0 -41
- package/core/utils/keycodes.js +0 -172
- package/core/utils/metrics.js +0 -154
- package/core/utils/svg.js +0 -186
- package/core/utils/toolbox.js +0 -459
- package/core/utils/useragent.js +0 -197
- package/core/utils.js +0 -383
- package/core/variable_model.js +0 -96
- package/core/widgetdiv.js +0 -290
- package/core/workspace.js +0 -836
- package/core/workspace_comment.js +0 -400
- package/core/workspace_dragger.js +0 -115
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
7
|
/**
|
|
10
8
|
* Library to create tooltips for Blockly.
|
|
11
9
|
* First, call createDom() after onload.
|
|
@@ -15,12 +13,12 @@
|
|
|
15
13
|
* tooltip will be used. Third, call bindMouseEvents(e) passing the SVG element.
|
|
16
14
|
* @namespace Blockly.Tooltip
|
|
17
15
|
*/
|
|
18
|
-
goog
|
|
16
|
+
import * as goog from '../closure/goog/goog.js';
|
|
17
|
+
goog.declareModuleId('Blockly.Tooltip');
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const deprecation = goog.require('Blockly.utils.deprecation');
|
|
19
|
+
import * as browserEvents from './browser_events.js';
|
|
20
|
+
import * as common from './common.js';
|
|
21
|
+
import * as blocklyString from './utils/string.js';
|
|
24
22
|
|
|
25
23
|
|
|
26
24
|
/**
|
|
@@ -28,109 +26,71 @@ const deprecation = goog.require('Blockly.utils.deprecation');
|
|
|
28
26
|
* Either a string, an object containing a tooltip property, or a function which
|
|
29
27
|
* returns either a string, or another arbitrarily nested function which
|
|
30
28
|
* eventually unwinds to a string.
|
|
31
|
-
* @typedef {string|{tooltip}|function(): (string|!Function)}
|
|
32
29
|
* @alias Blockly.Tooltip.TipInfo
|
|
33
30
|
*/
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
export type TipInfo =
|
|
32
|
+
string|{tooltip: AnyDuringMigration}|(() => TipInfo|string|Function);
|
|
36
33
|
|
|
37
34
|
/**
|
|
38
35
|
* A function that renders custom tooltip UI.
|
|
39
36
|
* 1st parameter: the div element to render content into.
|
|
40
37
|
* 2nd parameter: the element being moused over (i.e., the element for which the
|
|
41
38
|
* tooltip should be shown).
|
|
42
|
-
* @typedef {function(!Element, !Element)}
|
|
43
39
|
* @alias Blockly.Tooltip.CustomTooltip
|
|
44
40
|
*/
|
|
45
|
-
|
|
46
|
-
exports.CustomTooltip = CustomTooltip;
|
|
41
|
+
export type CustomTooltip = (p1: Element, p2: Element) => AnyDuringMigration;
|
|
47
42
|
|
|
48
43
|
/**
|
|
49
44
|
* An optional function that renders custom tooltips into the provided DIV. If
|
|
50
45
|
* this is defined, the function will be called instead of rendering the default
|
|
51
46
|
* tooltip UI.
|
|
52
|
-
* @type {!CustomTooltip|undefined}
|
|
53
47
|
*/
|
|
54
|
-
let customTooltip = undefined;
|
|
48
|
+
let customTooltip: CustomTooltip|undefined = undefined;
|
|
55
49
|
|
|
56
50
|
/**
|
|
57
51
|
* Sets a custom function that will be called if present instead of the default
|
|
58
52
|
* tooltip UI.
|
|
59
|
-
* @param
|
|
60
|
-
* tooltip UI.
|
|
53
|
+
* @param customFn A custom tooltip used to render an alternate tooltip UI.
|
|
61
54
|
* @alias Blockly.Tooltip.setCustomTooltip
|
|
62
55
|
*/
|
|
63
|
-
|
|
56
|
+
export function setCustomTooltip(customFn: CustomTooltip) {
|
|
64
57
|
customTooltip = customFn;
|
|
65
|
-
}
|
|
66
|
-
exports.setCustomTooltip = setCustomTooltip;
|
|
58
|
+
}
|
|
67
59
|
|
|
68
60
|
/**
|
|
69
61
|
* Gets the custom tooltip function.
|
|
70
|
-
* @returns
|
|
62
|
+
* @returns The custom tooltip function, if defined.
|
|
71
63
|
*/
|
|
72
|
-
|
|
64
|
+
export function getCustomTooltip(): CustomTooltip|undefined {
|
|
73
65
|
return customTooltip;
|
|
74
|
-
}
|
|
75
|
-
exports.getCustomTooltip = getCustomTooltip;
|
|
66
|
+
}
|
|
76
67
|
|
|
77
|
-
/**
|
|
78
|
-
* Is a tooltip currently showing?
|
|
79
|
-
* @type {boolean}
|
|
80
|
-
*/
|
|
68
|
+
/** Is a tooltip currently showing? */
|
|
81
69
|
let visible = false;
|
|
82
70
|
|
|
83
71
|
/**
|
|
84
72
|
* Returns whether or not a tooltip is showing
|
|
85
|
-
* @returns
|
|
73
|
+
* @returns True if a tooltip is showing
|
|
86
74
|
* @alias Blockly.Tooltip.isVisible
|
|
87
75
|
*/
|
|
88
|
-
|
|
76
|
+
export function isVisible(): boolean {
|
|
89
77
|
return visible;
|
|
90
|
-
}
|
|
91
|
-
exports.isVisible = isVisible;
|
|
92
|
-
|
|
93
|
-
Object.defineProperties(exports, {
|
|
94
|
-
/**
|
|
95
|
-
* Is a tooltip currently showing?
|
|
96
|
-
* @name Blockly.Tooltip.visible
|
|
97
|
-
* @type {boolean}
|
|
98
|
-
* @deprecated Use Blockly.Tooltip.isVisible() instead. (September
|
|
99
|
-
* 2021)
|
|
100
|
-
* @suppress {checkTypes}
|
|
101
|
-
*/
|
|
102
|
-
visible: {
|
|
103
|
-
get: function() {
|
|
104
|
-
deprecation.warn(
|
|
105
|
-
'Blockly.Tooltip.visible', 'September 2021', 'September 2022',
|
|
106
|
-
'Blockly.Tooltip.isVisible()');
|
|
107
|
-
return isVisible();
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
});
|
|
78
|
+
}
|
|
111
79
|
|
|
112
|
-
/**
|
|
113
|
-
* Is someone else blocking the tooltip from being shown?
|
|
114
|
-
* @type {boolean}
|
|
115
|
-
*/
|
|
80
|
+
/** Is someone else blocking the tooltip from being shown? */
|
|
116
81
|
let blocked = false;
|
|
117
82
|
|
|
118
83
|
/**
|
|
119
84
|
* Maximum width (in characters) of a tooltip.
|
|
120
85
|
* @alias Blockly.Tooltip.LIMIT
|
|
121
86
|
*/
|
|
122
|
-
const LIMIT = 50;
|
|
123
|
-
exports.LIMIT = LIMIT;
|
|
87
|
+
export const LIMIT = 50;
|
|
124
88
|
|
|
125
|
-
/**
|
|
126
|
-
|
|
127
|
-
*/
|
|
128
|
-
let mouseOutPid = 0;
|
|
89
|
+
/** PID of suspended thread to clear tooltip on mouse out. */
|
|
90
|
+
let mouseOutPid: AnyDuringMigration = 0;
|
|
129
91
|
|
|
130
|
-
/**
|
|
131
|
-
|
|
132
|
-
*/
|
|
133
|
-
let showPid = 0;
|
|
92
|
+
/** PID of suspended thread to show the tooltip. */
|
|
93
|
+
let showPid: AnyDuringMigration = 0;
|
|
134
94
|
|
|
135
95
|
/**
|
|
136
96
|
* Last observed X location of the mouse pointer (freezes when tooltip appears).
|
|
@@ -142,96 +102,64 @@ let lastX = 0;
|
|
|
142
102
|
*/
|
|
143
103
|
let lastY = 0;
|
|
144
104
|
|
|
145
|
-
/**
|
|
146
|
-
|
|
147
|
-
* @type {Element}
|
|
148
|
-
*/
|
|
149
|
-
let element = null;
|
|
105
|
+
/** Current element being pointed at. */
|
|
106
|
+
let element: AnyDuringMigration = null;
|
|
150
107
|
|
|
151
108
|
/**
|
|
152
109
|
* Once a tooltip has opened for an element, that element is 'poisoned' and
|
|
153
110
|
* cannot respawn a tooltip until the pointer moves over a different element.
|
|
154
|
-
* @type {Element}
|
|
155
111
|
*/
|
|
156
|
-
let poisonedElement = null;
|
|
112
|
+
let poisonedElement: AnyDuringMigration = null;
|
|
157
113
|
|
|
158
114
|
/**
|
|
159
115
|
* Horizontal offset between mouse cursor and tooltip.
|
|
160
116
|
* @alias Blockly.Tooltip.OFFSET_X
|
|
161
117
|
*/
|
|
162
|
-
const OFFSET_X = 0;
|
|
163
|
-
exports.OFFSET_X = OFFSET_X;
|
|
118
|
+
export const OFFSET_X = 0;
|
|
164
119
|
|
|
165
120
|
/**
|
|
166
121
|
* Vertical offset between mouse cursor and tooltip.
|
|
167
122
|
* @alias Blockly.Tooltip.OFFSET_Y
|
|
168
123
|
*/
|
|
169
|
-
const OFFSET_Y = 10;
|
|
170
|
-
exports.OFFSET_Y = OFFSET_Y;
|
|
124
|
+
export const OFFSET_Y = 10;
|
|
171
125
|
|
|
172
126
|
/**
|
|
173
127
|
* Radius mouse can move before killing tooltip.
|
|
174
128
|
* @alias Blockly.Tooltip.RADIUS_OK
|
|
175
129
|
*/
|
|
176
|
-
const RADIUS_OK = 10;
|
|
177
|
-
exports.RADIUS_OK = RADIUS_OK;
|
|
130
|
+
export const RADIUS_OK = 10;
|
|
178
131
|
|
|
179
132
|
/**
|
|
180
133
|
* Delay before tooltip appears.
|
|
181
134
|
* @alias Blockly.Tooltip.HOVER_MS
|
|
182
135
|
*/
|
|
183
|
-
const HOVER_MS = 750;
|
|
184
|
-
exports.HOVER_MS = HOVER_MS;
|
|
136
|
+
export const HOVER_MS = 750;
|
|
185
137
|
|
|
186
138
|
/**
|
|
187
139
|
* Horizontal padding between tooltip and screen edge.
|
|
188
140
|
* @alias Blockly.Tooltip.MARGINS
|
|
189
141
|
*/
|
|
190
|
-
const MARGINS = 5;
|
|
191
|
-
exports.MARGINS = MARGINS;
|
|
142
|
+
export const MARGINS = 5;
|
|
192
143
|
|
|
193
|
-
/**
|
|
194
|
-
|
|
195
|
-
* @type {?HTMLDivElement}
|
|
196
|
-
*/
|
|
197
|
-
let DIV = null;
|
|
144
|
+
/** The HTML container. Set once by createDom. */
|
|
145
|
+
let containerDiv: HTMLDivElement|null = null;
|
|
198
146
|
|
|
199
147
|
/**
|
|
200
148
|
* Returns the HTML tooltip container.
|
|
201
|
-
* @returns
|
|
149
|
+
* @returns The HTML tooltip container.
|
|
202
150
|
* @alias Blockly.Tooltip.getDiv
|
|
203
151
|
*/
|
|
204
|
-
|
|
205
|
-
return
|
|
206
|
-
}
|
|
207
|
-
exports.getDiv = getDiv;
|
|
208
|
-
|
|
209
|
-
Object.defineProperties(exports, {
|
|
210
|
-
/**
|
|
211
|
-
* The HTML container. Set once by createDom.
|
|
212
|
-
* @name Blockly.Tooltip.DIV
|
|
213
|
-
* @type {HTMLDivElement}
|
|
214
|
-
* @deprecated Use Blockly.Tooltip.getDiv() and .setDiv().
|
|
215
|
-
* (September 2021)
|
|
216
|
-
* @suppress {checkTypes}
|
|
217
|
-
*/
|
|
218
|
-
DIV: {
|
|
219
|
-
get: function() {
|
|
220
|
-
deprecation.warn(
|
|
221
|
-
'Blockly.Tooltip.DIV', 'September 2021', 'September 2022',
|
|
222
|
-
'Blockly.Tooltip.getDiv()');
|
|
223
|
-
return getDiv();
|
|
224
|
-
},
|
|
225
|
-
},
|
|
226
|
-
});
|
|
152
|
+
export function getDiv(): HTMLDivElement|null {
|
|
153
|
+
return containerDiv;
|
|
154
|
+
}
|
|
227
155
|
|
|
228
156
|
/**
|
|
229
157
|
* Returns the tooltip text for the given element.
|
|
230
|
-
* @param
|
|
231
|
-
* @return
|
|
158
|
+
* @param object The object to get the tooltip text of.
|
|
159
|
+
* @return The tooltip text of the element.
|
|
232
160
|
* @alias Blockly.Tooltip.getTooltipOfObject
|
|
233
161
|
*/
|
|
234
|
-
|
|
162
|
+
export function getTooltipOfObject(object: AnyDuringMigration|null): string {
|
|
235
163
|
const obj = getTargetObject(object);
|
|
236
164
|
if (obj) {
|
|
237
165
|
let tooltip = obj.tooltip;
|
|
@@ -244,89 +172,86 @@ const getTooltipOfObject = function(object) {
|
|
|
244
172
|
return tooltip;
|
|
245
173
|
}
|
|
246
174
|
return '';
|
|
247
|
-
}
|
|
248
|
-
exports.getTooltipOfObject = getTooltipOfObject;
|
|
175
|
+
}
|
|
249
176
|
|
|
250
177
|
/**
|
|
251
178
|
* Returns the target object that the given object is targeting for its
|
|
252
179
|
* tooltip. Could be the object itself.
|
|
253
|
-
* @param
|
|
254
|
-
*
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
return obj;
|
|
180
|
+
* @param obj The object are trying to find the target tooltip object of.
|
|
181
|
+
* @return The target tooltip object.
|
|
182
|
+
*/
|
|
183
|
+
function getTargetObject(obj: object|null): {tooltip: AnyDuringMigration}|null {
|
|
184
|
+
while (obj && (obj as any).tooltip) {
|
|
185
|
+
if (typeof (obj as any).tooltip === 'string' ||
|
|
186
|
+
typeof (obj as any).tooltip === 'function') {
|
|
187
|
+
return obj as {tooltip: string | (() => string)};
|
|
262
188
|
}
|
|
263
|
-
obj = obj.tooltip;
|
|
189
|
+
obj = (obj as any).tooltip;
|
|
264
190
|
}
|
|
265
191
|
return null;
|
|
266
|
-
}
|
|
192
|
+
}
|
|
267
193
|
|
|
268
194
|
/**
|
|
269
195
|
* Create the tooltip div and inject it onto the page.
|
|
270
196
|
* @alias Blockly.Tooltip.createDom
|
|
271
197
|
*/
|
|
272
|
-
|
|
273
|
-
if (
|
|
198
|
+
export function createDom() {
|
|
199
|
+
if (containerDiv) {
|
|
274
200
|
return; // Already created.
|
|
275
201
|
}
|
|
276
202
|
// Create an HTML container for popup overlays (e.g. editor widgets).
|
|
277
|
-
|
|
278
|
-
|
|
203
|
+
containerDiv = document.createElement('div');
|
|
204
|
+
containerDiv.className = 'blocklyTooltipDiv';
|
|
279
205
|
const container = common.getParentContainer() || document.body;
|
|
280
|
-
container.appendChild(
|
|
281
|
-
}
|
|
282
|
-
exports.createDom = createDom;
|
|
206
|
+
container.appendChild(containerDiv);
|
|
207
|
+
}
|
|
283
208
|
|
|
284
209
|
/**
|
|
285
210
|
* Binds the required mouse events onto an SVG element.
|
|
286
|
-
* @param
|
|
211
|
+
* @param element SVG element onto which tooltip is to be bound.
|
|
287
212
|
* @alias Blockly.Tooltip.bindMouseEvents
|
|
288
213
|
*/
|
|
289
|
-
|
|
290
|
-
|
|
214
|
+
export function bindMouseEvents(element: Element) {
|
|
215
|
+
// TODO (#6097): Don't stash wrapper info on the DOM.
|
|
216
|
+
(element as AnyDuringMigration).mouseOverWrapper_ =
|
|
291
217
|
browserEvents.bind(element, 'mouseover', null, onMouseOver);
|
|
292
|
-
element.mouseOutWrapper_ =
|
|
218
|
+
(element as AnyDuringMigration).mouseOutWrapper_ =
|
|
293
219
|
browserEvents.bind(element, 'mouseout', null, onMouseOut);
|
|
294
220
|
|
|
295
221
|
// Don't use bindEvent_ for mousemove since that would create a
|
|
296
222
|
// corresponding touch handler, even though this only makes sense in the
|
|
297
223
|
// context of a mouseover/mouseout.
|
|
298
224
|
element.addEventListener('mousemove', onMouseMove, false);
|
|
299
|
-
}
|
|
300
|
-
exports.bindMouseEvents = bindMouseEvents;
|
|
225
|
+
}
|
|
301
226
|
|
|
302
227
|
/**
|
|
303
228
|
* Unbinds tooltip mouse events from the SVG element.
|
|
304
|
-
* @param
|
|
229
|
+
* @param element SVG element onto which tooltip is bound.
|
|
305
230
|
* @alias Blockly.Tooltip.unbindMouseEvents
|
|
306
231
|
*/
|
|
307
|
-
|
|
232
|
+
export function unbindMouseEvents(element: Element) {
|
|
308
233
|
if (!element) {
|
|
309
234
|
return;
|
|
310
235
|
}
|
|
311
|
-
|
|
312
|
-
browserEvents.unbind(element.
|
|
236
|
+
// TODO (#6097): Don't stash wrapper info on the DOM.
|
|
237
|
+
browserEvents.unbind((element as AnyDuringMigration).mouseOverWrapper_);
|
|
238
|
+
browserEvents.unbind((element as AnyDuringMigration).mouseOutWrapper_);
|
|
313
239
|
element.removeEventListener('mousemove', onMouseMove);
|
|
314
|
-
}
|
|
315
|
-
exports.unbindMouseEvents = unbindMouseEvents;
|
|
240
|
+
}
|
|
316
241
|
|
|
317
242
|
/**
|
|
318
243
|
* Hide the tooltip if the mouse is over a different object.
|
|
319
244
|
* Initialize the tooltip to potentially appear for this object.
|
|
320
|
-
* @param
|
|
245
|
+
* @param e Mouse event.
|
|
321
246
|
*/
|
|
322
|
-
|
|
247
|
+
function onMouseOver(e: Event) {
|
|
323
248
|
if (blocked) {
|
|
324
249
|
// Someone doesn't want us to show tooltips.
|
|
325
250
|
return;
|
|
326
251
|
}
|
|
327
252
|
// If the tooltip is an object, treat it as a pointer to the next object in
|
|
328
253
|
// the chain to look at. Terminate when a string or function is found.
|
|
329
|
-
const newElement =
|
|
254
|
+
const newElement = getTargetObject(e.currentTarget);
|
|
330
255
|
if (element !== newElement) {
|
|
331
256
|
hide();
|
|
332
257
|
poisonedElement = null;
|
|
@@ -334,13 +259,13 @@ const onMouseOver = function(e) {
|
|
|
334
259
|
}
|
|
335
260
|
// Forget about any immediately preceding mouseOut event.
|
|
336
261
|
clearTimeout(mouseOutPid);
|
|
337
|
-
}
|
|
262
|
+
}
|
|
338
263
|
|
|
339
264
|
/**
|
|
340
265
|
* Hide the tooltip if the mouse leaves the object and enters the workspace.
|
|
341
|
-
* @param
|
|
266
|
+
* @param _e Mouse event.
|
|
342
267
|
*/
|
|
343
|
-
|
|
268
|
+
function onMouseOut(_e: Event) {
|
|
344
269
|
if (blocked) {
|
|
345
270
|
// Someone doesn't want us to show tooltips.
|
|
346
271
|
return;
|
|
@@ -355,15 +280,15 @@ const onMouseOut = function(_e) {
|
|
|
355
280
|
hide();
|
|
356
281
|
}, 1);
|
|
357
282
|
clearTimeout(showPid);
|
|
358
|
-
}
|
|
283
|
+
}
|
|
359
284
|
|
|
360
285
|
/**
|
|
361
286
|
* When hovering over an element, schedule a tooltip to be shown. If a tooltip
|
|
362
287
|
* is already visible, hide it if the mouse strays out of a certain radius.
|
|
363
|
-
* @param
|
|
288
|
+
* @param e Mouse event.
|
|
364
289
|
*/
|
|
365
|
-
|
|
366
|
-
if (!element || !element.tooltip) {
|
|
290
|
+
function onMouseMove(e: Event) {
|
|
291
|
+
if (!element || !(element as AnyDuringMigration).tooltip) {
|
|
367
292
|
// No tooltip here to show.
|
|
368
293
|
return;
|
|
369
294
|
} else if (blocked) {
|
|
@@ -374,8 +299,12 @@ const onMouseMove = function(e) {
|
|
|
374
299
|
if (visible) {
|
|
375
300
|
// Compute the distance between the mouse position when the tooltip was
|
|
376
301
|
// shown and the current mouse position. Pythagorean theorem.
|
|
377
|
-
|
|
378
|
-
|
|
302
|
+
// AnyDuringMigration because: Property 'pageX' does not exist on type
|
|
303
|
+
// 'Event'.
|
|
304
|
+
const dx = lastX - (e as AnyDuringMigration).pageX;
|
|
305
|
+
// AnyDuringMigration because: Property 'pageY' does not exist on type
|
|
306
|
+
// 'Event'.
|
|
307
|
+
const dy = lastY - (e as AnyDuringMigration).pageY;
|
|
379
308
|
if (Math.sqrt(dx * dx + dy * dy) > RADIUS_OK) {
|
|
380
309
|
hide();
|
|
381
310
|
}
|
|
@@ -383,159 +312,152 @@ const onMouseMove = function(e) {
|
|
|
383
312
|
// The mouse moved, clear any previously scheduled tooltip.
|
|
384
313
|
clearTimeout(showPid);
|
|
385
314
|
// Maybe this time the mouse will stay put. Schedule showing of tooltip.
|
|
386
|
-
|
|
387
|
-
|
|
315
|
+
// AnyDuringMigration because: Property 'pageX' does not exist on type
|
|
316
|
+
// 'Event'.
|
|
317
|
+
lastX = (e as AnyDuringMigration).pageX;
|
|
318
|
+
// AnyDuringMigration because: Property 'pageY' does not exist on type
|
|
319
|
+
// 'Event'.
|
|
320
|
+
lastY = (e as AnyDuringMigration).pageY;
|
|
388
321
|
showPid = setTimeout(show, HOVER_MS);
|
|
389
322
|
}
|
|
390
|
-
}
|
|
323
|
+
}
|
|
391
324
|
|
|
392
325
|
/**
|
|
393
326
|
* Dispose of the tooltip.
|
|
394
327
|
* @alias Blockly.Tooltip.dispose
|
|
395
|
-
* @
|
|
328
|
+
* @internal
|
|
396
329
|
*/
|
|
397
|
-
|
|
330
|
+
export function dispose() {
|
|
398
331
|
element = null;
|
|
399
332
|
poisonedElement = null;
|
|
400
333
|
hide();
|
|
401
|
-
}
|
|
402
|
-
exports.dispose = dispose;
|
|
334
|
+
}
|
|
403
335
|
|
|
404
336
|
/**
|
|
405
337
|
* Hide the tooltip.
|
|
406
338
|
* @alias Blockly.Tooltip.hide
|
|
407
339
|
*/
|
|
408
|
-
|
|
340
|
+
export function hide() {
|
|
409
341
|
if (visible) {
|
|
410
342
|
visible = false;
|
|
411
|
-
if (
|
|
412
|
-
|
|
343
|
+
if (containerDiv) {
|
|
344
|
+
containerDiv.style.display = 'none';
|
|
413
345
|
}
|
|
414
346
|
}
|
|
415
347
|
if (showPid) {
|
|
416
348
|
clearTimeout(showPid);
|
|
417
349
|
}
|
|
418
|
-
}
|
|
419
|
-
exports.hide = hide;
|
|
350
|
+
}
|
|
420
351
|
|
|
421
352
|
/**
|
|
422
353
|
* Hide any in-progress tooltips and block showing new tooltips until the next
|
|
423
354
|
* call to unblock().
|
|
424
355
|
* @alias Blockly.Tooltip.block
|
|
425
|
-
* @
|
|
356
|
+
* @internal
|
|
426
357
|
*/
|
|
427
|
-
|
|
358
|
+
export function block() {
|
|
428
359
|
hide();
|
|
429
360
|
blocked = true;
|
|
430
|
-
}
|
|
431
|
-
exports.block = block;
|
|
361
|
+
}
|
|
432
362
|
|
|
433
363
|
/**
|
|
434
364
|
* Unblock tooltips: allow them to be scheduled and shown according to their own
|
|
435
365
|
* logic.
|
|
436
366
|
* @alias Blockly.Tooltip.unblock
|
|
437
|
-
* @
|
|
367
|
+
* @internal
|
|
438
368
|
*/
|
|
439
|
-
|
|
369
|
+
export function unblock() {
|
|
440
370
|
blocked = false;
|
|
441
|
-
}
|
|
442
|
-
exports.unblock = unblock;
|
|
371
|
+
}
|
|
443
372
|
|
|
444
|
-
/**
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
const renderContent = function() {
|
|
448
|
-
if (!DIV || !element) {
|
|
373
|
+
/** Renders the tooltip content into the tooltip div. */
|
|
374
|
+
function renderContent() {
|
|
375
|
+
if (!containerDiv || !element) {
|
|
449
376
|
// This shouldn't happen, but if it does, we can't render.
|
|
450
377
|
return;
|
|
451
378
|
}
|
|
452
379
|
if (typeof customTooltip === 'function') {
|
|
453
|
-
customTooltip(
|
|
380
|
+
customTooltip(containerDiv, element);
|
|
454
381
|
} else {
|
|
455
382
|
renderDefaultContent();
|
|
456
383
|
}
|
|
457
|
-
}
|
|
384
|
+
}
|
|
458
385
|
|
|
459
|
-
/**
|
|
460
|
-
|
|
461
|
-
*/
|
|
462
|
-
const renderDefaultContent = function() {
|
|
386
|
+
/** Renders the default tooltip UI. */
|
|
387
|
+
function renderDefaultContent() {
|
|
463
388
|
let tip = getTooltipOfObject(element);
|
|
464
389
|
tip = blocklyString.wrap(tip, LIMIT);
|
|
465
390
|
// Create new text, line by line.
|
|
466
391
|
const lines = tip.split('\n');
|
|
467
392
|
for (let i = 0; i < lines.length; i++) {
|
|
468
|
-
const div =
|
|
393
|
+
const div = (document.createElement('div'));
|
|
469
394
|
div.appendChild(document.createTextNode(lines[i]));
|
|
470
|
-
|
|
395
|
+
containerDiv!.appendChild(div);
|
|
471
396
|
}
|
|
472
|
-
}
|
|
397
|
+
}
|
|
473
398
|
|
|
474
399
|
/**
|
|
475
400
|
* Gets the coordinates for the tooltip div, taking into account the edges of
|
|
476
401
|
* the screen to prevent showing the tooltip offscreen.
|
|
477
|
-
* @param
|
|
478
|
-
* @returns
|
|
479
|
-
* be placed.
|
|
402
|
+
* @param rtl True if the tooltip should be in right-to-left layout.
|
|
403
|
+
* @returns Coordinates at which the tooltip div should be placed.
|
|
480
404
|
*/
|
|
481
|
-
|
|
405
|
+
function getPosition(rtl: boolean): {x: number, y: number} {
|
|
482
406
|
// Position the tooltip just below the cursor.
|
|
483
407
|
const windowWidth = document.documentElement.clientWidth;
|
|
484
408
|
const windowHeight = document.documentElement.clientHeight;
|
|
485
409
|
|
|
486
410
|
let anchorX = lastX;
|
|
487
411
|
if (rtl) {
|
|
488
|
-
anchorX -= OFFSET_X +
|
|
412
|
+
anchorX -= OFFSET_X + containerDiv!.offsetWidth;
|
|
489
413
|
} else {
|
|
490
414
|
anchorX += OFFSET_X;
|
|
491
415
|
}
|
|
492
416
|
|
|
493
417
|
let anchorY = lastY + OFFSET_Y;
|
|
494
|
-
if (anchorY +
|
|
418
|
+
if (anchorY + containerDiv!.offsetHeight > windowHeight + window.scrollY) {
|
|
495
419
|
// Falling off the bottom of the screen; shift the tooltip up.
|
|
496
|
-
anchorY -=
|
|
420
|
+
anchorY -= containerDiv!.offsetHeight + 2 * OFFSET_Y;
|
|
497
421
|
}
|
|
498
422
|
|
|
499
423
|
if (rtl) {
|
|
500
424
|
// Prevent falling off left edge in RTL mode.
|
|
501
425
|
anchorX = Math.max(MARGINS - window.scrollX, anchorX);
|
|
502
426
|
} else {
|
|
503
|
-
if (anchorX +
|
|
427
|
+
if (anchorX + containerDiv!.offsetWidth >
|
|
504
428
|
windowWidth + window.scrollX - 2 * MARGINS) {
|
|
505
429
|
// Falling off the right edge of the screen;
|
|
506
430
|
// clamp the tooltip on the edge.
|
|
507
|
-
anchorX = windowWidth -
|
|
431
|
+
anchorX = windowWidth - containerDiv!.offsetWidth - 2 * MARGINS;
|
|
508
432
|
}
|
|
509
433
|
}
|
|
510
434
|
|
|
511
435
|
return {x: anchorX, y: anchorY};
|
|
512
|
-
}
|
|
436
|
+
}
|
|
513
437
|
|
|
514
|
-
/**
|
|
515
|
-
|
|
516
|
-
*/
|
|
517
|
-
const show = function() {
|
|
438
|
+
/** Create the tooltip and show it. */
|
|
439
|
+
function show() {
|
|
518
440
|
if (blocked) {
|
|
519
441
|
// Someone doesn't want us to show tooltips.
|
|
520
442
|
return;
|
|
521
443
|
}
|
|
522
444
|
poisonedElement = element;
|
|
523
|
-
if (!
|
|
445
|
+
if (!containerDiv) {
|
|
524
446
|
return;
|
|
525
447
|
}
|
|
526
448
|
// Erase all existing text.
|
|
527
|
-
|
|
449
|
+
containerDiv.textContent = '';
|
|
528
450
|
|
|
529
451
|
// Add new content.
|
|
530
452
|
renderContent();
|
|
531
453
|
|
|
532
454
|
// Display the tooltip.
|
|
533
|
-
const rtl =
|
|
534
|
-
|
|
535
|
-
|
|
455
|
+
const rtl = (element as any).RTL;
|
|
456
|
+
containerDiv.style.direction = rtl ? 'rtl' : 'ltr';
|
|
457
|
+
containerDiv.style.display = 'block';
|
|
536
458
|
visible = true;
|
|
537
459
|
|
|
538
460
|
const {x, y} = getPosition(rtl);
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
}
|
|
461
|
+
containerDiv.style.left = x + 'px';
|
|
462
|
+
containerDiv.style.top = y + 'px';
|
|
463
|
+
}
|