blockly 9.0.0-beta.0 → 9.0.0-beta.1
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 +401 -405
- package/blockly_compressed.js +398 -402
- package/blockly_compressed.js.map +1 -1
- package/blocks.d.ts +0 -5
- package/blocks_compressed.js +3 -3
- package/blocks_compressed.js.map +1 -1
- package/closure/goog/base.d.ts +1 -0
- package/closure/goog/base_minimal.d.ts +1 -0
- package/closure/goog/goog.d.ts +1 -0
- package/core/any_aliases.d.ts +1 -0
- package/core/block.d.ts +145 -53
- package/core/block_animations.d.ts +5 -0
- package/core/block_drag_surface.d.ts +18 -5
- package/core/block_dragger.d.ts +20 -5
- package/core/block_svg.d.ts +89 -21
- package/core/blockly.d.ts +29 -8
- package/core/blockly_options.d.ts +2 -0
- package/core/blocks.d.ts +2 -0
- package/core/browser_events.d.ts +16 -7
- package/core/bubble.d.ts +42 -12
- package/core/bubble_dragger.d.ts +9 -2
- package/core/bump_objects.d.ts +6 -2
- package/core/clipboard.d.ts +6 -2
- package/core/comment.d.ts +13 -3
- package/core/common.d.ts +35 -9
- package/core/component_manager.d.ts +16 -6
- package/core/config.d.ts +1 -0
- package/core/connection.d.ts +48 -18
- package/core/connection_checker.d.ts +16 -7
- package/core/connection_db.d.ts +17 -6
- package/core/connection_type.d.ts +2 -0
- package/core/constants.d.ts +3 -0
- package/core/contextmenu.d.ts +15 -5
- package/core/contextmenu_items.d.ts +15 -0
- package/core/contextmenu_registry.d.ts +12 -7
- package/core/css.d.ts +3 -0
- package/core/delete_area.d.ts +5 -1
- package/core/dialog.d.ts +14 -7
- package/core/drag_target.d.ts +10 -2
- package/core/dropdowndiv.d.ts +42 -10
- package/core/events/events.d.ts +1 -0
- package/core/events/events_abstract.d.ts +10 -3
- package/core/events/events_block_base.d.ts +5 -1
- package/core/events/events_block_change.d.ts +10 -3
- package/core/events/events_block_create.d.ts +6 -1
- package/core/events/events_block_delete.d.ts +6 -1
- package/core/events/events_block_drag.d.ts +5 -1
- package/core/events/events_block_move.d.ts +10 -3
- package/core/events/events_bubble_open.d.ts +6 -2
- package/core/events/events_click.d.ts +5 -1
- package/core/events/events_comment_base.d.ts +6 -1
- package/core/events/events_comment_change.d.ts +8 -2
- package/core/events/events_comment_create.d.ts +6 -1
- package/core/events/events_comment_delete.d.ts +6 -1
- package/core/events/events_comment_move.d.ts +9 -2
- package/core/events/events_marker_move.d.ts +5 -1
- package/core/events/events_selected.d.ts +5 -1
- package/core/events/events_theme_change.d.ts +5 -1
- package/core/events/events_toolbox_item_select.d.ts +5 -1
- package/core/events/events_trashcan_open.d.ts +5 -1
- package/core/events/events_ui.d.ts +5 -1
- package/core/events/events_ui_base.d.ts +2 -0
- package/core/events/events_var_base.d.ts +5 -1
- package/core/events/events_var_create.d.ts +6 -1
- package/core/events/events_var_delete.d.ts +6 -1
- package/core/events/events_var_rename.d.ts +6 -1
- package/core/events/events_viewport.d.ts +5 -1
- package/core/events/utils.d.ts +50 -7
- package/core/events/workspace_events.d.ts +5 -1
- package/core/extensions.d.ts +14 -4
- package/core/field.d.ts +93 -34
- package/core/field_angle.d.ts +14 -3
- package/core/field_checkbox.d.ts +20 -7
- package/core/field_colour.d.ts +22 -6
- package/core/field_dropdown.d.ts +28 -8
- package/core/field_image.d.ts +15 -4
- package/core/field_label.d.ts +8 -2
- package/core/field_label_serializable.d.ts +4 -1
- package/core/field_multilineinput.d.ts +21 -6
- package/core/field_number.d.ts +22 -6
- package/core/field_registry.d.ts +8 -2
- package/core/field_textinput.d.ts +28 -8
- package/core/field_variable.d.ts +36 -13
- package/core/flyout_base.d.ts +70 -24
- package/core/flyout_button.d.ts +12 -5
- package/core/flyout_horizontal.d.ts +14 -6
- package/core/flyout_metrics_manager.d.ts +6 -3
- package/core/flyout_vertical.d.ts +14 -6
- package/core/generator.d.ts +39 -20
- package/core/gesture.d.ts +48 -13
- package/core/grid.d.ts +19 -15
- package/core/icon.d.ts +12 -3
- package/core/inject.d.ts +3 -1
- package/core/input.d.ts +25 -10
- package/core/input_types.d.ts +2 -0
- package/core/insertion_marker_manager.d.ts +27 -9
- package/core/interfaces/i_ast_node_location.d.ts +2 -0
- package/core/interfaces/i_ast_node_location_svg.d.ts +4 -0
- package/core/interfaces/i_ast_node_location_with_block.d.ts +4 -1
- package/core/interfaces/i_autohideable.d.ts +3 -0
- package/core/interfaces/i_block_dragger.d.ts +7 -1
- package/core/interfaces/i_bounded_element.d.ts +5 -1
- package/core/interfaces/i_bubble.d.ts +11 -2
- package/core/interfaces/i_collapsible_toolbox_item.d.ts +6 -2
- package/core/interfaces/i_component.d.ts +2 -0
- package/core/interfaces/i_connection_checker.d.ts +14 -6
- package/core/interfaces/i_contextmenu.d.ts +2 -0
- package/core/interfaces/i_copyable.d.ts +3 -1
- package/core/interfaces/i_deletable.d.ts +4 -1
- package/core/interfaces/i_delete_area.d.ts +4 -1
- package/core/interfaces/i_drag_target.d.ts +10 -2
- package/core/interfaces/i_draggable.d.ts +2 -0
- package/core/interfaces/i_flyout.d.ts +27 -11
- package/core/interfaces/i_keyboard_accessible.d.ts +4 -1
- package/core/interfaces/i_metrics_manager.d.ts +24 -12
- package/core/interfaces/i_movable.d.ts +4 -1
- package/core/interfaces/i_positionable.d.ts +5 -1
- package/core/interfaces/i_registrable.d.ts +2 -0
- package/core/interfaces/i_registrable_field.d.ts +2 -0
- package/core/interfaces/i_selectable.d.ts +2 -0
- package/core/interfaces/i_selectable_toolbox_item.d.ts +10 -3
- package/core/interfaces/i_serializer.d.ts +6 -1
- package/core/interfaces/i_styleable.d.ts +4 -0
- package/core/interfaces/i_toolbox.d.ts +17 -6
- package/core/interfaces/i_toolbox_item.d.ts +17 -7
- package/core/internal_constants.d.ts +6 -0
- package/core/keyboard_nav/ast_node.d.ts +55 -28
- package/core/keyboard_nav/basic_cursor.d.ts +20 -9
- package/core/keyboard_nav/cursor.d.ts +11 -5
- package/core/keyboard_nav/marker.d.ts +9 -2
- package/core/keyboard_nav/tab_navigate_cursor.d.ts +4 -1
- package/core/main.d.ts +1 -0
- package/core/marker_manager.d.ts +13 -2
- package/core/menu.d.ts +23 -5
- package/core/menuitem.d.ts +22 -7
- package/core/metrics_manager.d.ts +30 -15
- package/core/msg.d.ts +1 -0
- package/core/mutator.d.ts +19 -7
- package/core/names.d.ts +20 -8
- package/core/options.d.ts +12 -6
- package/core/positionable_helpers.d.ts +11 -3
- package/core/procedures.d.ts +27 -10
- package/core/registry.d.ts +19 -8
- package/core/rendered_connection.d.ts +28 -7
- package/core/renderers/common/block_rendering.d.ts +9 -2
- package/core/renderers/common/constants.d.ts +49 -17
- package/core/renderers/common/debug.d.ts +5 -1
- package/core/renderers/common/debugger.d.ts +12 -1
- package/core/renderers/common/drawer.d.ts +12 -0
- package/core/renderers/common/i_path_object.d.ts +15 -0
- package/core/renderers/common/info.d.ts +25 -8
- package/core/renderers/common/marker_svg.d.ts +35 -6
- package/core/renderers/common/path_object.d.ts +20 -0
- package/core/renderers/common/renderer.d.ts +33 -12
- package/core/renderers/geras/constants.d.ts +2 -0
- package/core/renderers/geras/drawer.d.ts +2 -0
- package/core/renderers/geras/geras.d.ts +3 -2
- package/core/renderers/geras/highlight_constants.d.ts +9 -6
- package/core/renderers/geras/highlighter.d.ts +12 -1
- package/core/renderers/geras/info.d.ts +4 -1
- package/core/renderers/geras/measurables/inline_input.d.ts +2 -0
- package/core/renderers/geras/measurables/statement_input.d.ts +2 -0
- package/core/renderers/geras/path_object.d.ts +4 -0
- package/core/renderers/geras/renderer.d.ts +16 -6
- package/core/renderers/measurables/base.d.ts +2 -0
- package/core/renderers/measurables/bottom_row.d.ts +9 -3
- package/core/renderers/measurables/connection.d.ts +2 -0
- package/core/renderers/measurables/external_value_input.d.ts +2 -1
- package/core/renderers/measurables/field.d.ts +2 -1
- package/core/renderers/measurables/hat.d.ts +2 -1
- package/core/renderers/measurables/icon.d.ts +3 -1
- package/core/renderers/measurables/in_row_spacer.d.ts +2 -1
- package/core/renderers/measurables/inline_input.d.ts +2 -1
- package/core/renderers/measurables/input_connection.d.ts +2 -0
- package/core/renderers/measurables/input_row.d.ts +4 -1
- package/core/renderers/measurables/jagged_edge.d.ts +2 -1
- package/core/renderers/measurables/next_connection.d.ts +2 -1
- package/core/renderers/measurables/output_connection.d.ts +2 -1
- package/core/renderers/measurables/previous_connection.d.ts +2 -1
- package/core/renderers/measurables/round_corner.d.ts +2 -1
- package/core/renderers/measurables/row.d.ts +27 -5
- package/core/renderers/measurables/spacer_row.d.ts +2 -1
- package/core/renderers/measurables/square_corner.d.ts +2 -1
- package/core/renderers/measurables/statement_input.d.ts +2 -1
- package/core/renderers/measurables/top_row.d.ts +7 -3
- package/core/renderers/measurables/types.d.ts +54 -25
- package/core/renderers/minimalist/constants.d.ts +2 -0
- package/core/renderers/minimalist/drawer.d.ts +2 -0
- package/core/renderers/minimalist/info.d.ts +4 -1
- package/core/renderers/minimalist/minimalist.d.ts +2 -1
- package/core/renderers/minimalist/renderer.d.ts +8 -3
- package/core/renderers/thrasos/info.d.ts +4 -1
- package/core/renderers/thrasos/renderer.d.ts +4 -1
- package/core/renderers/thrasos/thrasos.d.ts +2 -1
- package/core/renderers/zelos/constants.d.ts +11 -3
- package/core/renderers/zelos/drawer.d.ts +3 -0
- package/core/renderers/zelos/info.d.ts +10 -5
- package/core/renderers/zelos/marker_svg.d.ts +5 -0
- package/core/renderers/zelos/measurables/bottom_row.d.ts +2 -0
- package/core/renderers/zelos/measurables/inputs.d.ts +2 -0
- package/core/renderers/zelos/measurables/row_elements.d.ts +2 -0
- package/core/renderers/zelos/measurables/top_row.d.ts +2 -0
- package/core/renderers/zelos/path_object.d.ts +8 -1
- package/core/renderers/zelos/renderer.d.ts +14 -6
- package/core/renderers/zelos/zelos.d.ts +3 -2
- package/core/scrollbar.d.ts +41 -9
- package/core/scrollbar_pair.d.ts +20 -6
- package/core/serialization/blocks.d.ts +10 -4
- package/core/serialization/exceptions.d.ts +5 -0
- package/core/serialization/priorities.d.ts +3 -0
- package/core/serialization/registry.d.ts +3 -0
- package/core/serialization/variables.d.ts +2 -0
- package/core/serialization/workspaces.d.ts +4 -1
- package/core/shortcut_items.d.ts +10 -0
- package/core/shortcut_registry.d.ts +25 -9
- package/core/sprites.d.ts +2 -4
- package/core/theme/classic.d.ts +2 -0
- package/core/theme/themes.d.ts +1 -0
- package/core/theme/zelos.d.ts +2 -0
- package/core/theme.d.ts +14 -3
- package/core/theme_manager.d.ts +10 -1
- package/core/toolbox/category.d.ts +42 -15
- package/core/toolbox/collapsible_category.d.ts +10 -3
- package/core/toolbox/separator.d.ts +4 -1
- package/core/toolbox/toolbox.d.ts +70 -22
- package/core/toolbox/toolbox_item.d.ts +17 -7
- package/core/tooltip.d.ts +22 -1
- package/core/touch.d.ts +18 -6
- package/core/touch_gesture.d.ts +16 -2
- package/core/trashcan.d.ts +27 -6
- package/core/utils/aria.d.ts +4 -0
- package/core/utils/array.d.ts +4 -2
- package/core/utils/colour.d.ts +24 -13
- package/core/utils/coordinate.d.ts +18 -8
- package/core/utils/deprecation.d.ts +6 -4
- package/core/utils/dom.d.ts +32 -12
- package/core/utils/idgenerator.d.ts +13 -3
- package/core/utils/keycodes.d.ts +1 -0
- package/core/utils/math.d.ts +7 -3
- package/core/utils/metrics.d.ts +1 -0
- package/core/utils/object.d.ts +7 -2
- package/core/utils/parsing.d.ts +9 -4
- package/core/utils/rect.d.ts +5 -3
- package/core/utils/sentinel.d.ts +2 -0
- package/core/utils/size.d.ts +4 -2
- package/core/utils/string.d.ts +13 -6
- package/core/utils/style.d.ts +14 -33
- package/core/utils/svg.d.ts +5 -2
- package/core/utils/svg_math.d.ts +15 -7
- package/core/utils/svg_paths.d.ts +20 -10
- package/core/utils/toolbox.d.ts +26 -5
- package/core/utils/useragent.d.ts +1 -12
- package/core/utils/xml.d.ts +13 -5
- package/core/utils.d.ts +43 -21
- package/core/variable_map.d.ts +26 -9
- package/core/variable_model.d.ts +5 -2
- package/core/variables.d.ts +33 -18
- package/core/variables_dynamic.d.ts +25 -5
- package/core/warning.d.ts +8 -3
- package/core/widgetdiv.d.ts +15 -6
- package/core/workspace.d.ts +80 -30
- package/core/workspace_audio.d.ts +6 -0
- package/core/workspace_comment.d.ts +33 -11
- package/core/workspace_comment_svg.d.ts +52 -9
- package/core/workspace_drag_surface_svg.d.ts +20 -14
- package/core/workspace_dragger.d.ts +6 -0
- package/core/workspace_svg.d.ts +174 -62
- package/core/xml.d.ts +26 -11
- package/core/zoom_controls.d.ts +16 -6
- package/core.d.ts +0 -5
- package/dart.d.ts +0 -5
- package/dart_compressed.js.map +1 -1
- package/index.d.ts +2 -6
- package/javascript.d.ts +0 -5
- package/javascript_compressed.js.map +1 -1
- package/lua.d.ts +0 -5
- package/lua_compressed.js.map +1 -1
- package/package.json +6 -3
- package/php.d.ts +0 -5
- package/php_compressed.js.map +1 -1
- package/python.d.ts +0 -5
- package/python_compressed.js.map +1 -1
- package/blocks/blocks.js +0 -48
- package/blocks/colour.js +0 -121
- package/blocks/lists.js +0 -996
- package/blocks/logic.js +0 -665
- package/blocks/loops.js +0 -375
- package/blocks/math.js +0 -594
- package/blocks/procedures.js +0 -1196
- package/blocks/text.js +0 -1000
- package/blocks/variables.js +0 -176
- package/blocks/variables_dynamic.js +0 -192
- package/core/any_aliases.ts +0 -1
- package/core/block.ts +0 -2102
- package/core/block_animations.ts +0 -202
- package/core/block_drag_surface.ts +0 -237
- package/core/block_dragger.ts +0 -447
- package/core/block_svg.ts +0 -1758
- package/core/blockly.js +0 -890
- package/core/blockly.ts +0 -749
- package/core/blockly_options.ts +0 -81
- package/core/blocks.ts +0 -29
- package/core/browser_events.ts +0 -289
- package/core/bubble.ts +0 -892
- package/core/bubble_dragger.ts +0 -229
- package/core/bump_objects.ts +0 -182
- package/core/clipboard.ts +0 -91
- package/core/comment.ts +0 -398
- package/core/common.ts +0 -288
- package/core/component_manager.ts +0 -211
- package/core/config.ts +0 -80
- package/core/connection.ts +0 -692
- package/core/connection_checker.ts +0 -301
- package/core/connection_db.ts +0 -289
- package/core/connection_type.ts +0 -32
- package/core/constants.ts +0 -29
- package/core/contextmenu.ts +0 -363
- package/core/contextmenu_items.ts +0 -576
- package/core/contextmenu_registry.ts +0 -179
- package/core/css.ts +0 -560
- package/core/delete_area.ts +0 -82
- package/core/dialog.ts +0 -127
- package/core/drag_target.ts +0 -94
- package/core/dropdowndiv.ts +0 -683
- package/core/events/events.ts +0 -123
- package/core/events/events_abstract.ts +0 -112
- package/core/events/events_block_base.ts +0 -65
- package/core/events/events_block_change.ts +0 -176
- package/core/events/events_block_create.ts +0 -114
- package/core/events/events_block_delete.ts +0 -126
- package/core/events/events_block_drag.ts +0 -82
- package/core/events/events_block_move.ts +0 -206
- package/core/events/events_bubble_open.ts +0 -82
- package/core/events/events_click.ts +0 -84
- package/core/events/events_comment_base.ts +0 -107
- package/core/events/events_comment_change.ts +0 -108
- package/core/events/events_comment_create.ts +0 -82
- package/core/events/events_comment_delete.ts +0 -77
- package/core/events/events_comment_move.ts +0 -154
- package/core/events/events_marker_move.ts +0 -99
- package/core/events/events_selected.ts +0 -78
- package/core/events/events_theme_change.ts +0 -67
- package/core/events/events_toolbox_item_select.ts +0 -79
- package/core/events/events_trashcan_open.ts +0 -68
- package/core/events/events_ui.ts +0 -89
- package/core/events/events_ui_base.ts +0 -54
- package/core/events/events_var_base.ts +0 -65
- package/core/events/events_var_create.ts +0 -88
- package/core/events/events_var_delete.ts +0 -88
- package/core/events/events_var_rename.ts +0 -89
- package/core/events/events_viewport.ts +0 -100
- package/core/events/utils.ts +0 -529
- package/core/events/workspace_events.ts +0 -86
- package/core/extensions.ts +0 -504
- package/core/field.ts +0 -1206
- package/core/field_angle.ts +0 -563
- package/core/field_checkbox.ts +0 -243
- package/core/field_colour.ts +0 -632
- package/core/field_dropdown.ts +0 -773
- package/core/field_image.ts +0 -282
- package/core/field_label.ts +0 -152
- package/core/field_label_serializable.ts +0 -76
- package/core/field_multilineinput.ts +0 -466
- package/core/field_number.ts +0 -327
- package/core/field_registry.ts +0 -87
- package/core/field_textinput.ts +0 -591
- package/core/field_variable.ts +0 -545
- package/core/flyout_base.ts +0 -1165
- package/core/flyout_button.ts +0 -292
- package/core/flyout_horizontal.ts +0 -381
- package/core/flyout_metrics_manager.ts +0 -94
- package/core/flyout_vertical.ts +0 -384
- package/core/generator.ts +0 -539
- package/core/gesture.ts +0 -946
- package/core/grid.ts +0 -192
- package/core/icon.ts +0 -189
- package/core/inject.ts +0 -390
- package/core/input.ts +0 -309
- package/core/input_types.ts +0 -32
- package/core/insertion_marker_manager.ts +0 -788
- package/core/interfaces/i_ast_node_location.ts +0 -23
- package/core/interfaces/i_ast_node_location_svg.ts +0 -37
- package/core/interfaces/i_ast_node_location_with_block.ts +0 -38
- package/core/interfaces/i_autohideable.ts +0 -34
- package/core/interfaces/i_block_dragger.ts +0 -67
- package/core/interfaces/i_bounded_element.ts +0 -42
- package/core/interfaces/i_bubble.ts +0 -88
- package/core/interfaces/i_collapsible_toolbox_item.ts +0 -47
- package/core/interfaces/i_component.ts +0 -32
- package/core/interfaces/i_connection_checker.ts +0 -102
- package/core/interfaces/i_contextmenu.ts +0 -26
- package/core/interfaces/i_copyable.ts +0 -40
- package/core/interfaces/i_deletable.ts +0 -29
- package/core/interfaces/i_delete_area.ts +0 -46
- package/core/interfaces/i_drag_target.ts +0 -84
- package/core/interfaces/i_draggable.ts +0 -25
- package/core/interfaces/i_flyout.ts +0 -186
- package/core/interfaces/i_keyboard_accessible.ts +0 -35
- package/core/interfaces/i_metrics_manager.ts +0 -151
- package/core/interfaces/i_movable.ts +0 -29
- package/core/interfaces/i_positionable.ts +0 -50
- package/core/interfaces/i_registrable.ts +0 -25
- package/core/interfaces/i_registrable_field.ts +0 -31
- package/core/interfaces/i_selectable.ts +0 -34
- package/core/interfaces/i_selectable_toolbox_item.ts +0 -64
- package/core/interfaces/i_serializer.ts +0 -65
- package/core/interfaces/i_styleable.ts +0 -35
- package/core/interfaces/i_toolbox.ts +0 -127
- package/core/interfaces/i_toolbox_item.ts +0 -84
- package/core/internal_constants.ts +0 -67
- package/core/keyboard_nav/ast_node.ts +0 -717
- package/core/keyboard_nav/basic_cursor.ts +0 -214
- package/core/keyboard_nav/cursor.ts +0 -134
- package/core/keyboard_nav/marker.ts +0 -115
- package/core/keyboard_nav/tab_navigate_cursor.ts +0 -48
- package/core/main.js +0 -303
- package/core/marker_manager.ts +0 -181
- package/core/menu.ts +0 -449
- package/core/menuitem.ts +0 -240
- package/core/metrics_manager.ts +0 -456
- package/core/msg.ts +0 -20
- package/core/mutator.ts +0 -560
- package/core/names.ts +0 -267
- package/core/options.ts +0 -365
- package/core/positionable_helpers.ts +0 -181
- package/core/procedures.ts +0 -443
- package/core/registry.ts +0 -339
- package/core/rendered_connection.ts +0 -568
- package/core/renderers/common/block_rendering.ts +0 -164
- package/core/renderers/common/constants.ts +0 -1124
- package/core/renderers/common/debug.ts +0 -61
- package/core/renderers/common/debugger.ts +0 -433
- package/core/renderers/common/drawer.ts +0 -450
- package/core/renderers/common/i_path_object.ts +0 -161
- package/core/renderers/common/info.ts +0 -718
- package/core/renderers/common/marker_svg.ts +0 -680
- package/core/renderers/common/path_object.ts +0 -272
- package/core/renderers/common/renderer.ts +0 -271
- package/core/renderers/geras/constants.ts +0 -61
- package/core/renderers/geras/drawer.ts +0 -176
- package/core/renderers/geras/geras.ts +0 -37
- package/core/renderers/geras/highlight_constants.ts +0 -337
- package/core/renderers/geras/highlighter.ts +0 -306
- package/core/renderers/geras/info.ts +0 -450
- package/core/renderers/geras/measurables/inline_input.ts +0 -51
- package/core/renderers/geras/measurables/statement_input.ts +0 -50
- package/core/renderers/geras/path_object.ts +0 -138
- package/core/renderers/geras/renderer.ts +0 -126
- package/core/renderers/measurables/base.ts +0 -53
- package/core/renderers/measurables/bottom_row.ts +0 -120
- package/core/renderers/measurables/connection.ts +0 -52
- package/core/renderers/measurables/external_value_input.ts +0 -65
- package/core/renderers/measurables/field.ts +0 -63
- package/core/renderers/measurables/hat.ts +0 -48
- package/core/renderers/measurables/icon.ts +0 -54
- package/core/renderers/measurables/in_row_spacer.ts +0 -44
- package/core/renderers/measurables/inline_input.ts +0 -76
- package/core/renderers/measurables/input_connection.ts +0 -66
- package/core/renderers/measurables/input_row.ts +0 -82
- package/core/renderers/measurables/jagged_edge.ts +0 -43
- package/core/renderers/measurables/next_connection.ts +0 -47
- package/core/renderers/measurables/output_connection.ts +0 -56
- package/core/renderers/measurables/previous_connection.ts +0 -47
- package/core/renderers/measurables/round_corner.ts +0 -49
- package/core/renderers/measurables/row.ts +0 -225
- package/core/renderers/measurables/spacer_row.ts +0 -55
- package/core/renderers/measurables/square_corner.ts +0 -47
- package/core/renderers/measurables/statement_input.ts +0 -55
- package/core/renderers/measurables/top_row.ts +0 -122
- package/core/renderers/measurables/types.ts +0 -332
- package/core/renderers/minimalist/constants.ts +0 -32
- package/core/renderers/minimalist/drawer.ts +0 -38
- package/core/renderers/minimalist/info.ts +0 -52
- package/core/renderers/minimalist/minimalist.ts +0 -22
- package/core/renderers/minimalist/renderer.ts +0 -71
- package/core/renderers/thrasos/info.ts +0 -338
- package/core/renderers/thrasos/renderer.ts +0 -48
- package/core/renderers/thrasos/thrasos.ts +0 -20
- package/core/renderers/zelos/constants.ts +0 -858
- package/core/renderers/zelos/drawer.ts +0 -228
- package/core/renderers/zelos/info.ts +0 -593
- package/core/renderers/zelos/marker_svg.ts +0 -151
- package/core/renderers/zelos/measurables/bottom_row.ts +0 -53
- package/core/renderers/zelos/measurables/inputs.ts +0 -56
- package/core/renderers/zelos/measurables/row_elements.ts +0 -45
- package/core/renderers/zelos/measurables/top_row.ts +0 -58
- package/core/renderers/zelos/path_object.ts +0 -215
- package/core/renderers/zelos/renderer.ts +0 -142
- package/core/renderers/zelos/zelos.ts +0 -39
- package/core/scrollbar.ts +0 -870
- package/core/scrollbar_pair.ts +0 -321
- package/core/serialization/blocks.ts +0 -706
- package/core/serialization/exceptions.ts +0 -98
- package/core/serialization/priorities.ts +0 -32
- package/core/serialization/registry.ts +0 -43
- package/core/serialization/variables.ts +0 -96
- package/core/serialization/workspaces.ts +0 -106
- package/core/shortcut_items.ts +0 -266
- package/core/shortcut_registry.ts +0 -355
- package/core/sprites.ts +0 -29
- package/core/theme/classic.ts +0 -54
- package/core/theme/themes.ts +0 -22
- package/core/theme/zelos.ts +0 -91
- package/core/theme.ts +0 -221
- package/core/theme_manager.ts +0 -186
- package/core/toolbox/category.ts +0 -679
- package/core/toolbox/collapsible_category.ts +0 -273
- package/core/toolbox/separator.ts +0 -105
- package/core/toolbox/toolbox.ts +0 -1044
- package/core/toolbox/toolbox_item.ts +0 -147
- package/core/tooltip.ts +0 -463
- package/core/touch.ts +0 -306
- package/core/touch_gesture.ts +0 -295
- package/core/trashcan.ts +0 -671
- package/core/utils/aria.ts +0 -160
- package/core/utils/array.ts +0 -32
- package/core/utils/colour.ts +0 -276
- package/core/utils/coordinate.ts +0 -124
- package/core/utils/deprecation.ts +0 -41
- package/core/utils/dom.ts +0 -408
- package/core/utils/idgenerator.ts +0 -80
- package/core/utils/keycodes.ts +0 -169
- package/core/utils/math.ts +0 -61
- package/core/utils/metrics.ts +0 -97
- package/core/utils/object.ts +0 -95
- package/core/utils/parsing.ts +0 -261
- package/core/utils/rect.ts +0 -62
- package/core/utils/sentinel.ts +0 -23
- package/core/utils/size.ts +0 -51
- package/core/utils/string.ts +0 -308
- package/core/utils/style.ts +0 -306
- package/core/utils/svg.ts +0 -88
- package/core/utils/svg_math.ts +0 -269
- package/core/utils/svg_paths.ts +0 -140
- package/core/utils/toolbox.ts +0 -433
- package/core/utils/useragent.ts +0 -135
- package/core/utils/xml.ts +0 -97
- package/core/utils.ts +0 -428
- package/core/variable_map.ts +0 -392
- package/core/variable_model.ts +0 -82
- package/core/variables.ts +0 -596
- package/core/variables_dynamic.ts +0 -133
- package/core/warning.ts +0 -161
- package/core/widgetdiv.ts +0 -257
- package/core/workspace.ts +0 -801
- package/core/workspace_audio.ts +0 -156
- package/core/workspace_comment.ts +0 -398
- package/core/workspace_comment_svg.ts +0 -1127
- package/core/workspace_drag_surface_svg.ts +0 -187
- package/core/workspace_dragger.ts +0 -104
- package/core/workspace_svg.ts +0 -2655
- package/core/xml.ts +0 -1023
- package/core/zoom_controls.ts +0 -441
- package/generators/dart/all.js +0 -27
- package/generators/dart/colour.js +0 -105
- package/generators/dart/lists.js +0 -431
- package/generators/dart/logic.js +0 -123
- package/generators/dart/loops.js +0 -161
- package/generators/dart/math.js +0 -446
- package/generators/dart/procedures.js +0 -105
- package/generators/dart/text.js +0 -338
- package/generators/dart/variables.js +0 -32
- package/generators/dart/variables_dynamic.js +0 -21
- package/generators/dart.js +0 -303
- package/generators/javascript/all.js +0 -27
- package/generators/javascript/colour.js +0 -85
- package/generators/javascript/lists.js +0 -405
- package/generators/javascript/logic.js +0 -127
- package/generators/javascript/loops.js +0 -180
- package/generators/javascript/math.js +0 -401
- package/generators/javascript/procedures.js +0 -110
- package/generators/javascript/text.js +0 -371
- package/generators/javascript/variables.js +0 -32
- package/generators/javascript/variables_dynamic.js +0 -21
- package/generators/javascript.js +0 -322
- package/generators/lua/all.js +0 -27
- package/generators/lua/colour.js +0 -71
- package/generators/lua/lists.js +0 -348
- package/generators/lua/logic.js +0 -112
- package/generators/lua/loops.js +0 -168
- package/generators/lua/math.js +0 -406
- package/generators/lua/procedures.js +0 -106
- package/generators/lua/text.js +0 -327
- package/generators/lua/variables.js +0 -31
- package/generators/lua/variables_dynamic.js +0 -21
- package/generators/lua.js +0 -206
- package/generators/php/all.js +0 -27
- package/generators/php/colour.js +0 -81
- package/generators/php/lists.js +0 -481
- package/generators/php/logic.js +0 -119
- package/generators/php/loops.js +0 -161
- package/generators/php/math.js +0 -349
- package/generators/php/procedures.js +0 -125
- package/generators/php/text.js +0 -255
- package/generators/php/variables.js +0 -32
- package/generators/php/variables_dynamic.js +0 -21
- package/generators/php.js +0 -303
- package/generators/python/all.js +0 -27
- package/generators/python/colour.js +0 -67
- package/generators/python/lists.js +0 -346
- package/generators/python/logic.js +0 -120
- package/generators/python/loops.js +0 -206
- package/generators/python/math.js +0 -373
- package/generators/python/procedures.js +0 -129
- package/generators/python/text.js +0 -291
- package/generators/python/variables.js +0 -32
- package/generators/python/variables_dynamic.js +0 -21
- package/generators/python.js +0 -333
package/core/utils/svg_math.ts
DELETED
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2021 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @fileoverview Utility methods for SVG math.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Utility methods realted to figuring out positions of SVG elements.
|
|
13
|
-
* @namespace Blockly.utils.svgMath
|
|
14
|
-
*/
|
|
15
|
-
import * as goog from '../../closure/goog/goog.js';
|
|
16
|
-
goog.declareModuleId('Blockly.utils.svgMath');
|
|
17
|
-
|
|
18
|
-
import type {WorkspaceSvg} from '../workspace_svg.js';
|
|
19
|
-
|
|
20
|
-
import {Coordinate} from './coordinate.js';
|
|
21
|
-
import * as deprecation from './deprecation.js';
|
|
22
|
-
import {Rect} from './rect.js';
|
|
23
|
-
import {Size} from './size.js';
|
|
24
|
-
import * as style from './style.js';
|
|
25
|
-
import * as userAgent from './useragent.js';
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Static regex to pull the x,y values out of an SVG translate() directive.
|
|
30
|
-
* Note that Firefox and IE (9,10) return 'translate(12)' instead of
|
|
31
|
-
* 'translate(12, 0)'.
|
|
32
|
-
* Note that IE (9,10) returns 'translate(16 8)' instead of 'translate(16, 8)'.
|
|
33
|
-
* Note that IE has been reported to return scientific notation (0.123456e-42).
|
|
34
|
-
*/
|
|
35
|
-
const XY_REGEX: RegExp = /translate\(\s*([-+\d.e]+)([ ,]\s*([-+\d.e]+)\s*)?/;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Static regex to pull the x,y values out of a translate() or translate3d()
|
|
39
|
-
* style property.
|
|
40
|
-
* Accounts for same exceptions as XY_REGEX.
|
|
41
|
-
*/
|
|
42
|
-
const XY_STYLE_REGEX: RegExp =
|
|
43
|
-
/transform:\s*translate(?:3d)?\(\s*([-+\d.e]+)\s*px([ ,]\s*([-+\d.e]+)\s*px)?/;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Return the coordinates of the top-left corner of this element relative to
|
|
47
|
-
* its parent. Only for SVG elements and children (e.g. rect, g, path).
|
|
48
|
-
* @param element SVG element to find the coordinates of.
|
|
49
|
-
* @return Object with .x and .y properties.
|
|
50
|
-
* @alias Blockly.utils.svgMath.getRelativeXY
|
|
51
|
-
*/
|
|
52
|
-
export function getRelativeXY(element: Element): Coordinate {
|
|
53
|
-
const xy = new Coordinate(0, 0);
|
|
54
|
-
// First, check for x and y attributes.
|
|
55
|
-
// Checking for the existence of x/y properties is faster than getAttribute.
|
|
56
|
-
// However, x/y contains an SVGAnimatedLength object, so rely on getAttribute
|
|
57
|
-
// to get the number.
|
|
58
|
-
const x = (element as any).x && element.getAttribute('x');
|
|
59
|
-
const y = (element as any).y && element.getAttribute('y');
|
|
60
|
-
if (x) {
|
|
61
|
-
xy.x = parseInt(x, 10);
|
|
62
|
-
}
|
|
63
|
-
if (y) {
|
|
64
|
-
xy.y = parseInt(y, 10);
|
|
65
|
-
}
|
|
66
|
-
// Second, check for transform="translate(...)" attribute.
|
|
67
|
-
const transform = element.getAttribute('transform');
|
|
68
|
-
const r = transform && transform.match(XY_REGEX);
|
|
69
|
-
if (r) {
|
|
70
|
-
xy.x += Number(r[1]);
|
|
71
|
-
if (r[3]) {
|
|
72
|
-
xy.y += Number(r[3]);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// Then check for style = transform: translate(...) or translate3d(...)
|
|
77
|
-
const style = element.getAttribute('style');
|
|
78
|
-
if (style && style.indexOf('translate') > -1) {
|
|
79
|
-
const styleComponents = style.match(XY_STYLE_REGEX);
|
|
80
|
-
if (styleComponents) {
|
|
81
|
-
xy.x += Number(styleComponents[1]);
|
|
82
|
-
if (styleComponents[3]) {
|
|
83
|
-
xy.y += Number(styleComponents[3]);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return xy;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Return the coordinates of the top-left corner of this element relative to
|
|
92
|
-
* the div Blockly was injected into.
|
|
93
|
-
* @param element SVG element to find the coordinates of. If this is not a child
|
|
94
|
-
* of the div Blockly was injected into, the behaviour is undefined.
|
|
95
|
-
* @return Object with .x and .y properties.
|
|
96
|
-
* @alias Blockly.utils.svgMath.getInjectionDivXY
|
|
97
|
-
*/
|
|
98
|
-
export function getInjectionDivXY(element: Element): Coordinate {
|
|
99
|
-
let x = 0;
|
|
100
|
-
let y = 0;
|
|
101
|
-
while (element) {
|
|
102
|
-
const xy = getRelativeXY(element);
|
|
103
|
-
x = x + xy.x;
|
|
104
|
-
y = y + xy.y;
|
|
105
|
-
const classes = element.getAttribute('class') || '';
|
|
106
|
-
if ((' ' + classes + ' ').indexOf(' injectionDiv ') !== -1) {
|
|
107
|
-
break;
|
|
108
|
-
}
|
|
109
|
-
element = element.parentNode as Element;
|
|
110
|
-
}
|
|
111
|
-
return new Coordinate(x, y);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Check if 3D transforms are supported by adding an element
|
|
116
|
-
* and attempting to set the property.
|
|
117
|
-
* @return True if 3D transforms are supported.
|
|
118
|
-
* @alias Blockly.utils.svgMath.is3dSupported
|
|
119
|
-
*/
|
|
120
|
-
export function is3dSupported(): boolean {
|
|
121
|
-
// AnyDuringMigration because: Property 'cached_' does not exist on type '()
|
|
122
|
-
// => boolean'.
|
|
123
|
-
if ((is3dSupported as AnyDuringMigration).cached_ !== undefined) {
|
|
124
|
-
// AnyDuringMigration because: Property 'cached_' does not exist on type
|
|
125
|
-
// '() => boolean'.
|
|
126
|
-
return (is3dSupported as AnyDuringMigration).cached_;
|
|
127
|
-
}
|
|
128
|
-
// CC-BY-SA Lorenzo Polidori
|
|
129
|
-
// stackoverflow.com/questions/5661671/detecting-transform-translate3d-support
|
|
130
|
-
if (!globalThis['getComputedStyle']) {
|
|
131
|
-
return false;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
const el = document.createElement('p');
|
|
135
|
-
let has3d = 'none';
|
|
136
|
-
const transforms = {
|
|
137
|
-
'webkitTransform': '-webkit-transform',
|
|
138
|
-
'OTransform': '-o-transform',
|
|
139
|
-
'msTransform': '-ms-transform',
|
|
140
|
-
'MozTransform': '-moz-transform',
|
|
141
|
-
'transform': 'transform',
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
// Add it to the body to get the computed style.
|
|
145
|
-
document.body.insertBefore(el, null);
|
|
146
|
-
|
|
147
|
-
for (const t in transforms) {
|
|
148
|
-
if ((el.style as AnyDuringMigration)[t] !== undefined) {
|
|
149
|
-
(el.style as AnyDuringMigration)[t] = 'translate3d(1px,1px,1px)';
|
|
150
|
-
const computedStyle = globalThis['getComputedStyle'](el);
|
|
151
|
-
if (!computedStyle) {
|
|
152
|
-
// getComputedStyle in Firefox returns null when Blockly is loaded
|
|
153
|
-
// inside an iframe with display: none. Returning false and not
|
|
154
|
-
// caching is3dSupported means we try again later. This is most likely
|
|
155
|
-
// when users are interacting with blocks which should mean Blockly is
|
|
156
|
-
// visible again.
|
|
157
|
-
// See https://bugzilla.mozilla.org/show_bug.cgi?id=548397
|
|
158
|
-
document.body.removeChild(el);
|
|
159
|
-
return false;
|
|
160
|
-
}
|
|
161
|
-
has3d =
|
|
162
|
-
computedStyle.getPropertyValue((transforms as AnyDuringMigration)[t]);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
document.body.removeChild(el);
|
|
166
|
-
// AnyDuringMigration because: Property 'cached_' does not exist on type '()
|
|
167
|
-
// => boolean'.
|
|
168
|
-
(is3dSupported as AnyDuringMigration).cached_ = has3d !== 'none';
|
|
169
|
-
// AnyDuringMigration because: Property 'cached_' does not exist on type '()
|
|
170
|
-
// => boolean'.
|
|
171
|
-
return (is3dSupported as AnyDuringMigration).cached_;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Get the position of the current viewport in window coordinates. This takes
|
|
176
|
-
* scroll into account.
|
|
177
|
-
* @return An object containing window width, height, and scroll position in
|
|
178
|
-
* window coordinates.
|
|
179
|
-
* @alias Blockly.utils.svgMath.getViewportBBox
|
|
180
|
-
* @internal
|
|
181
|
-
*/
|
|
182
|
-
export function getViewportBBox(): Rect {
|
|
183
|
-
// Pixels, in window coordinates.
|
|
184
|
-
const scrollOffset = style.getViewportPageOffset();
|
|
185
|
-
return new Rect(
|
|
186
|
-
scrollOffset.y, document.documentElement.clientHeight + scrollOffset.y,
|
|
187
|
-
scrollOffset.x, document.documentElement.clientWidth + scrollOffset.x);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* Gets the document scroll distance as a coordinate object.
|
|
192
|
-
* Copied from Closure's goog.dom.getDocumentScroll.
|
|
193
|
-
* @return Object with values 'x' and 'y'.
|
|
194
|
-
* @alias Blockly.utils.svgMath.getDocumentScroll
|
|
195
|
-
*/
|
|
196
|
-
export function getDocumentScroll(): Coordinate {
|
|
197
|
-
const el = document.documentElement;
|
|
198
|
-
const win = window;
|
|
199
|
-
if (userAgent.IE && win.pageYOffset !== el.scrollTop) {
|
|
200
|
-
// The keyboard on IE10 touch devices shifts the page using the pageYOffset
|
|
201
|
-
// without modifying scrollTop. For this case, we want the body scroll
|
|
202
|
-
// offsets.
|
|
203
|
-
return new Coordinate(el.scrollLeft, el.scrollTop);
|
|
204
|
-
}
|
|
205
|
-
return new Coordinate(
|
|
206
|
-
win.pageXOffset || el.scrollLeft, win.pageYOffset || el.scrollTop);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* Converts screen coordinates to workspace coordinates.
|
|
211
|
-
* @param ws The workspace to find the coordinates on.
|
|
212
|
-
* @param screenCoordinates The screen coordinates to be converted to workspace
|
|
213
|
-
* coordinates
|
|
214
|
-
* @return The workspace coordinates.
|
|
215
|
-
* @alias Blockly.utils.svgMath.screenToWsCoordinates
|
|
216
|
-
*/
|
|
217
|
-
export function screenToWsCoordinates(
|
|
218
|
-
ws: WorkspaceSvg, screenCoordinates: Coordinate): Coordinate {
|
|
219
|
-
const screenX = screenCoordinates.x;
|
|
220
|
-
const screenY = screenCoordinates.y;
|
|
221
|
-
|
|
222
|
-
const injectionDiv = ws.getInjectionDiv();
|
|
223
|
-
// Bounding rect coordinates are in client coordinates, meaning that they
|
|
224
|
-
// are in pixels relative to the upper left corner of the visible browser
|
|
225
|
-
// window. These coordinates change when you scroll the browser window.
|
|
226
|
-
const boundingRect = injectionDiv.getBoundingClientRect();
|
|
227
|
-
|
|
228
|
-
// The client coordinates offset by the injection div's upper left corner.
|
|
229
|
-
const clientOffsetPixels =
|
|
230
|
-
new Coordinate(screenX - boundingRect.left, screenY - boundingRect.top);
|
|
231
|
-
|
|
232
|
-
// The offset in pixels between the main workspace's origin and the upper
|
|
233
|
-
// left corner of the injection div.
|
|
234
|
-
const mainOffsetPixels = ws.getOriginOffsetInPixels();
|
|
235
|
-
|
|
236
|
-
// The position of the new comment in pixels relative to the origin of the
|
|
237
|
-
// main workspace.
|
|
238
|
-
const finalOffsetPixels =
|
|
239
|
-
Coordinate.difference(clientOffsetPixels, mainOffsetPixels);
|
|
240
|
-
// The position in main workspace coordinates.
|
|
241
|
-
const finalOffsetMainWs = finalOffsetPixels.scale(1 / ws.scale);
|
|
242
|
-
return finalOffsetMainWs;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* Returns the dimensions of the specified SVG image.
|
|
247
|
-
* @param svg SVG image.
|
|
248
|
-
* @return Contains width and height properties.
|
|
249
|
-
* @deprecated Use workspace.getCachedParentSvgSize. (2021 March 5)
|
|
250
|
-
* @alias Blockly.utils.svgMath.svgSize
|
|
251
|
-
*/
|
|
252
|
-
export function svgSize(svg: SVGElement): Size {
|
|
253
|
-
// When removing this function, remove svg.cachedWidth_ and svg.cachedHeight_
|
|
254
|
-
// from setCachedParentSvgSize.
|
|
255
|
-
// The deprecated name is `Blockly.svgSize` because this function used to be
|
|
256
|
-
// declared in Blockly.js.
|
|
257
|
-
deprecation.warn(
|
|
258
|
-
'Blockly.svgSize', 'March 2021', 'March 2022',
|
|
259
|
-
'workspace.getCachedParentSvgSize');
|
|
260
|
-
svg = svg as AnyDuringMigration;
|
|
261
|
-
return new Size(
|
|
262
|
-
Number(svg.getAttribute('data-cached-width')),
|
|
263
|
-
Number(svg.getAttribute('data-cached-height')));
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
export const TEST_ONLY = {
|
|
267
|
-
XY_REGEX,
|
|
268
|
-
XY_STYLE_REGEX,
|
|
269
|
-
};
|
package/core/utils/svg_paths.ts
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Methods for creating parts of SVG path strings. See
|
|
3
|
-
* developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @license
|
|
8
|
-
* Copyright 2019 Google LLC
|
|
9
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Methods for creating parts of SVG path strings. See
|
|
14
|
-
* @namespace Blockly.utils.svgPaths
|
|
15
|
-
*/
|
|
16
|
-
import * as goog from '../../closure/goog/goog.js';
|
|
17
|
-
goog.declareModuleId('Blockly.utils.svgPaths');
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Create a string representing the given x, y pair. It does not matter whether
|
|
22
|
-
* the coordinate is relative or absolute. The result has leading
|
|
23
|
-
* and trailing spaces, and separates the x and y coordinates with a comma but
|
|
24
|
-
* no space.
|
|
25
|
-
* @param x The x coordinate.
|
|
26
|
-
* @param y The y coordinate.
|
|
27
|
-
* @return A string of the format ' x,y '
|
|
28
|
-
* @alias Blockly.utils.svgPaths.point
|
|
29
|
-
*/
|
|
30
|
-
export function point(x: number, y: number): string {
|
|
31
|
-
return ' ' + x + ',' + y + ' ';
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Draw a cubic or quadratic curve. See
|
|
36
|
-
* developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#Cubic_B%C3%A9zier_Curve
|
|
37
|
-
* These coordinates are unitless and hence in the user coordinate system.
|
|
38
|
-
* @param command The command to use.
|
|
39
|
-
* Should be one of: c, C, s, S, q, Q.
|
|
40
|
-
* @param points An array containing all of the points to pass to the curve
|
|
41
|
-
* command, in order. The points are represented as strings of the format '
|
|
42
|
-
* x, y '.
|
|
43
|
-
* @return A string defining one or more Bezier curves. See the MDN
|
|
44
|
-
* documentation for exact format.
|
|
45
|
-
* @alias Blockly.utils.svgPaths.curve
|
|
46
|
-
*/
|
|
47
|
-
export function curve(command: string, points: string[]): string {
|
|
48
|
-
return ' ' + command + points.join('');
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Move the cursor to the given position without drawing a line.
|
|
53
|
-
* The coordinates are absolute.
|
|
54
|
-
* These coordinates are unitless and hence in the user coordinate system.
|
|
55
|
-
* See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands
|
|
56
|
-
* @param x The absolute x coordinate.
|
|
57
|
-
* @param y The absolute y coordinate.
|
|
58
|
-
* @return A string of the format ' M x,y '
|
|
59
|
-
* @alias Blockly.utils.svgPaths.moveTo
|
|
60
|
-
*/
|
|
61
|
-
export function moveTo(x: number, y: number): string {
|
|
62
|
-
return ' M ' + x + ',' + y + ' ';
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Move the cursor to the given position without drawing a line.
|
|
67
|
-
* Coordinates are relative.
|
|
68
|
-
* These coordinates are unitless and hence in the user coordinate system.
|
|
69
|
-
* See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands
|
|
70
|
-
* @param dx The relative x coordinate.
|
|
71
|
-
* @param dy The relative y coordinate.
|
|
72
|
-
* @return A string of the format ' m dx,dy '
|
|
73
|
-
* @alias Blockly.utils.svgPaths.moveBy
|
|
74
|
-
*/
|
|
75
|
-
export function moveBy(dx: number, dy: number): string {
|
|
76
|
-
return ' m ' + dx + ',' + dy + ' ';
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Draw a line from the current point to the end point, which is the current
|
|
81
|
-
* point shifted by dx along the x-axis and dy along the y-axis.
|
|
82
|
-
* These coordinates are unitless and hence in the user coordinate system.
|
|
83
|
-
* See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands
|
|
84
|
-
* @param dx The relative x coordinate.
|
|
85
|
-
* @param dy The relative y coordinate.
|
|
86
|
-
* @return A string of the format ' l dx,dy '
|
|
87
|
-
* @alias Blockly.utils.svgPaths.lineTo
|
|
88
|
-
*/
|
|
89
|
-
export function lineTo(dx: number, dy: number): string {
|
|
90
|
-
return ' l ' + dx + ',' + dy + ' ';
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Draw multiple lines connecting all of the given points in order. This is
|
|
95
|
-
* equivalent to a series of 'l' commands.
|
|
96
|
-
* These coordinates are unitless and hence in the user coordinate system.
|
|
97
|
-
* See developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#Line_commands
|
|
98
|
-
* @param points An array containing all of the points to draw lines to, in
|
|
99
|
-
* order. The points are represented as strings of the format ' dx,dy '.
|
|
100
|
-
* @return A string of the format ' l (dx,dy)+ '
|
|
101
|
-
* @alias Blockly.utils.svgPaths.line
|
|
102
|
-
*/
|
|
103
|
-
export function line(points: string[]): string {
|
|
104
|
-
return ' l' + points.join('');
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Draw a horizontal or vertical line.
|
|
109
|
-
* The first argument specifies the direction and whether the given position is
|
|
110
|
-
* relative or absolute.
|
|
111
|
-
* These coordinates are unitless and hence in the user coordinate system.
|
|
112
|
-
* See developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#LineTo_path_commands
|
|
113
|
-
* @param command The command to prepend to the coordinate. This should be one
|
|
114
|
-
* of: V, v, H, h.
|
|
115
|
-
* @param val The coordinate to pass to the command. It may be absolute or
|
|
116
|
-
* relative.
|
|
117
|
-
* @return A string of the format ' command val '
|
|
118
|
-
* @alias Blockly.utils.svgPaths.lineOnAxis
|
|
119
|
-
*/
|
|
120
|
-
export function lineOnAxis(command: string, val: number): string {
|
|
121
|
-
return ' ' + command + ' ' + val + ' ';
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Draw an elliptical arc curve.
|
|
126
|
-
* These coordinates are unitless and hence in the user coordinate system.
|
|
127
|
-
* See developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#Elliptical_Arc_Curve
|
|
128
|
-
* @param command The command string. Either 'a' or 'A'.
|
|
129
|
-
* @param flags The flag string. See the MDN documentation for a description
|
|
130
|
-
* and examples.
|
|
131
|
-
* @param radius The radius of the arc to draw.
|
|
132
|
-
* @param point The point to move the cursor to after drawing the arc, specified
|
|
133
|
-
* either in absolute or relative coordinates depending on the command.
|
|
134
|
-
* @return A string of the format 'command radius radius flags point'
|
|
135
|
-
* @alias Blockly.utils.svgPaths.arc
|
|
136
|
-
*/
|
|
137
|
-
export function arc(
|
|
138
|
-
command: string, flags: string, radius: number, point: string): string {
|
|
139
|
-
return command + ' ' + radius + ' ' + radius + ' ' + flags + point;
|
|
140
|
-
}
|