blockly 9.0.0-beta.0 → 9.0.0-beta.2
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 +830 -810
- package/blockly_compressed.js +821 -801
- package/blockly_compressed.js.map +1 -1
- package/blocks.d.ts +0 -5
- package/blocks_compressed.js +9 -9
- 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 +156 -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 +92 -24
- package/core/blockly.d.ts +31 -10
- 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 +51 -24
- package/core/events/events_abstract.d.ts +18 -7
- package/core/events/events_block_base.d.ts +13 -7
- package/core/events/events_block_change.d.ts +24 -11
- package/core/events/events_block_create.d.ts +18 -7
- package/core/events/events_block_delete.d.ts +20 -8
- package/core/events/events_block_drag.d.ts +14 -4
- package/core/events/events_block_move.d.ts +25 -12
- package/core/events/events_bubble_open.d.ts +21 -6
- package/core/events/events_click.d.ts +20 -6
- package/core/events/events_comment_base.d.ts +13 -6
- package/core/events/events_comment_change.d.ts +17 -7
- package/core/events/events_comment_create.d.ts +13 -5
- package/core/events/events_comment_delete.d.ts +4 -11
- package/core/events/events_comment_move.d.ts +19 -8
- package/core/events/events_marker_move.d.ts +16 -5
- package/core/events/events_selected.d.ts +14 -5
- package/core/events/events_theme_change.d.ts +11 -3
- package/core/events/events_toolbox_item_select.d.ts +14 -5
- package/core/events/events_trashcan_open.d.ts +11 -3
- 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 +13 -7
- package/core/events/events_var_create.d.ts +15 -6
- package/core/events/events_var_delete.d.ts +15 -6
- package/core/events/events_var_rename.d.ts +15 -6
- package/core/events/events_viewport.d.ts +14 -3
- package/core/events/utils.d.ts +50 -7
- package/core/events/workspace_events.d.ts +11 -6
- package/core/extensions.d.ts +14 -4
- package/core/field.d.ts +93 -36
- 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 +56 -22
- package/core/grid.d.ts +20 -16
- package/core/icon.d.ts +18 -5
- 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 +3 -1
- 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 +25 -6
- package/core/menuitem.d.ts +22 -7
- package/core/metrics_manager.d.ts +30 -15
- package/core/msg.d.ts +15 -0
- package/core/mutator.d.ts +20 -8
- 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 +29 -7
- package/core/renderers/common/block_rendering.d.ts +9 -2
- package/core/renderers/common/constants.d.ts +57 -18
- 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 +16 -3
- package/core/renderers/common/i_path_object.d.ts +37 -16
- package/core/renderers/common/info.d.ts +28 -11
- package/core/renderers/common/marker_svg.d.ts +42 -11
- package/core/renderers/common/path_object.d.ts +23 -3
- package/core/renderers/common/renderer.d.ts +33 -12
- package/core/renderers/geras/constants.d.ts +6 -2
- package/core/renderers/geras/drawer.d.ts +4 -1
- 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 -1
- 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 +4 -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 +30 -8
- 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 -4
- 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 +5 -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 +5 -4
- 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 +31 -44
- 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 -1
- 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 +9 -2
- 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 +41 -30
- package/core/theme_manager.d.ts +10 -1
- package/core/toolbox/category.d.ts +60 -32
- package/core/toolbox/collapsible_category.d.ts +10 -3
- package/core/toolbox/separator.d.ts +4 -1
- package/core/toolbox/toolbox.d.ts +71 -23
- 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 +19 -4
- 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 +19 -9
- package/core/utils/deprecation.d.ts +6 -4
- package/core/utils/dom.d.ts +37 -18
- package/core/utils/idgenerator.d.ts +14 -4
- 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 +17 -7
- package/core-browser.js +0 -6
- package/core.d.ts +0 -5
- package/core.js +0 -6
- package/dart.d.ts +1 -7
- package/dart_compressed.js.map +1 -1
- package/index.d.ts +2 -6
- package/javascript.d.ts +1 -7
- package/javascript_compressed.js.map +1 -1
- package/lua.d.ts +1 -7
- package/lua_compressed.js.map +1 -1
- package/msg/ab.d.ts +8 -0
- package/msg/ace.d.ts +8 -0
- package/msg/af.d.ts +8 -0
- package/msg/am.d.ts +8 -0
- package/msg/ar.d.ts +8 -0
- package/msg/ast.d.ts +8 -0
- package/msg/az.d.ts +8 -0
- package/msg/ba.d.ts +8 -0
- package/msg/bcc.d.ts +8 -0
- package/msg/be-tarask.d.ts +8 -0
- package/msg/be.d.ts +8 -0
- package/msg/bg.d.ts +8 -0
- package/msg/bn.d.ts +8 -0
- package/msg/br.d.ts +8 -0
- package/msg/bs.d.ts +8 -0
- package/msg/ca.d.ts +8 -0
- package/msg/cdo.d.ts +8 -0
- package/msg/constants.d.ts +16 -0
- package/msg/cs.d.ts +8 -0
- package/msg/da.d.ts +8 -0
- package/msg/de.d.ts +8 -0
- package/msg/diq.d.ts +8 -0
- package/msg/dty.d.ts +8 -0
- package/msg/ee.d.ts +8 -0
- package/msg/el.d.ts +8 -0
- package/msg/en-gb.d.ts +8 -0
- package/msg/en.d.ts +8 -0
- package/msg/eo.d.ts +8 -0
- package/msg/es.d.ts +8 -0
- package/msg/et.d.ts +8 -0
- package/msg/eu.d.ts +8 -0
- package/msg/fa.d.ts +8 -0
- package/msg/fi.d.ts +8 -0
- package/msg/fo.d.ts +8 -0
- package/msg/fr.d.ts +8 -0
- package/msg/frr.d.ts +8 -0
- package/msg/gl.d.ts +8 -0
- package/msg/gn.d.ts +8 -0
- package/msg/gor.d.ts +8 -0
- package/msg/ha.d.ts +8 -0
- package/msg/hak.d.ts +8 -0
- package/msg/he.d.ts +8 -0
- package/msg/hi.d.ts +8 -0
- package/msg/hr.d.ts +8 -0
- package/msg/hrx.d.ts +8 -0
- package/msg/hu.d.ts +8 -0
- package/msg/hy.d.ts +8 -0
- package/msg/ia.d.ts +8 -0
- package/msg/id.d.ts +8 -0
- package/msg/ig.d.ts +8 -0
- package/msg/inh.d.ts +8 -0
- package/msg/is.d.ts +8 -0
- package/msg/it.d.ts +8 -0
- package/msg/ja.d.ts +8 -0
- package/msg/ka.d.ts +8 -0
- package/msg/kab.d.ts +8 -0
- package/msg/kbd-cyrl.d.ts +8 -0
- package/msg/km.d.ts +8 -0
- package/msg/kn.d.ts +8 -0
- package/msg/ko.d.ts +8 -0
- package/msg/ksh.d.ts +8 -0
- package/msg/ku-latn.d.ts +8 -0
- package/msg/ky.d.ts +8 -0
- package/msg/la.d.ts +8 -0
- package/msg/lb.d.ts +8 -0
- package/msg/lki.d.ts +8 -0
- package/msg/lo.d.ts +8 -0
- package/msg/lrc.d.ts +8 -0
- package/msg/lt.d.ts +8 -0
- package/msg/lv.d.ts +8 -0
- package/msg/mg.d.ts +8 -0
- package/msg/mk.d.ts +8 -0
- package/msg/ml.d.ts +8 -0
- package/msg/mnw.d.ts +8 -0
- package/msg/ms.d.ts +8 -0
- package/msg/msg.d.ts +429 -432
- package/msg/my.d.ts +8 -0
- package/msg/mzn.d.ts +8 -0
- package/msg/nb.d.ts +8 -0
- package/msg/ne.d.ts +8 -0
- package/msg/nl.d.ts +8 -0
- package/msg/oc.d.ts +8 -0
- package/msg/olo.d.ts +8 -0
- package/msg/pa.d.ts +8 -0
- package/msg/pl.d.ts +8 -0
- package/msg/pms.d.ts +8 -0
- package/msg/ps.d.ts +8 -0
- package/msg/pt-br.d.ts +8 -0
- package/msg/pt.d.ts +8 -0
- package/msg/qqq.d.ts +16 -0
- package/msg/ro.d.ts +8 -0
- package/msg/ru.d.ts +8 -0
- package/msg/sc.d.ts +8 -0
- package/msg/sco.d.ts +8 -0
- package/msg/sd.d.ts +8 -0
- package/msg/shn.d.ts +8 -0
- package/msg/si.d.ts +8 -0
- package/msg/sk.d.ts +8 -0
- package/msg/skr-arab.d.ts +8 -0
- package/msg/sl.d.ts +8 -0
- package/msg/smn.d.ts +8 -0
- package/msg/sq.d.ts +8 -0
- package/msg/sr-latn.d.ts +8 -0
- package/msg/sr.d.ts +8 -0
- package/msg/sv.d.ts +8 -0
- package/msg/sw.d.ts +8 -0
- package/msg/synonyms.d.ts +16 -0
- package/msg/ta.d.ts +8 -0
- package/msg/tcy.d.ts +8 -0
- package/msg/te.d.ts +8 -0
- package/msg/th.d.ts +8 -0
- package/msg/ti.d.ts +8 -0
- package/msg/tl.d.ts +8 -0
- package/msg/tlh.d.ts +8 -0
- package/msg/tr.d.ts +8 -0
- package/msg/ug-arab.d.ts +8 -0
- package/msg/uk.d.ts +8 -0
- package/msg/ur.d.ts +8 -0
- package/msg/uz.d.ts +8 -0
- package/msg/vi.d.ts +8 -0
- package/msg/xmf.d.ts +8 -0
- package/msg/yo.d.ts +8 -0
- package/msg/yue.d.ts +8 -0
- package/msg/zgh.d.ts +8 -0
- package/msg/zh-hans.d.ts +8 -0
- package/msg/zh-hant.d.ts +8 -0
- package/package.json +6 -3
- package/php.d.ts +1 -7
- package/php_compressed.js.map +1 -1
- package/python.d.ts +1 -7
- 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/block_animations.ts
DELETED
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2018 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @fileoverview Methods animating a block on connection and disconnection.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Methods animating a block on connection and disconnection.
|
|
13
|
-
* @namespace Blockly.blockAnimations
|
|
14
|
-
*/
|
|
15
|
-
import * as goog from '../closure/goog/goog.js';
|
|
16
|
-
goog.declareModuleId('Blockly.blockAnimations');
|
|
17
|
-
|
|
18
|
-
import type {BlockSvg} from './block_svg.js';
|
|
19
|
-
import * as dom from './utils/dom.js';
|
|
20
|
-
import {Svg} from './utils/svg.js';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
/** A bounding box for a cloned block. */
|
|
24
|
-
interface CloneRect {
|
|
25
|
-
x: number;
|
|
26
|
-
y: number;
|
|
27
|
-
width: number;
|
|
28
|
-
height: number;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/** PID of disconnect UI animation. There can only be one at a time. */
|
|
32
|
-
let disconnectPid: AnyDuringMigration = 0;
|
|
33
|
-
|
|
34
|
-
/** SVG group of wobbling block. There can only be one at a time. */
|
|
35
|
-
let disconnectGroup: SVGElement|null = null;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Play some UI effects (sound, animation) when disposing of a block.
|
|
40
|
-
* @param block The block being disposed of.
|
|
41
|
-
* @alias Blockly.blockAnimations.disposeUiEffect
|
|
42
|
-
* @internal
|
|
43
|
-
*/
|
|
44
|
-
export function disposeUiEffect(block: BlockSvg) {
|
|
45
|
-
const workspace = block.workspace;
|
|
46
|
-
const svgGroup = block.getSvgRoot();
|
|
47
|
-
workspace.getAudioManager().play('delete');
|
|
48
|
-
|
|
49
|
-
const xy = workspace.getSvgXY(svgGroup);
|
|
50
|
-
// Deeply clone the current block.
|
|
51
|
-
const clone: SVGGElement = svgGroup.cloneNode(true) as SVGGElement;
|
|
52
|
-
clone.setAttribute('transform', 'translate(' + xy.x + ',' + xy.y + ')');
|
|
53
|
-
workspace.getParentSvg().appendChild(clone);
|
|
54
|
-
const cloneRect =
|
|
55
|
-
{'x': xy.x, 'y': xy.y, 'width': block.width, 'height': block.height};
|
|
56
|
-
disposeUiStep(clone, cloneRect, workspace.RTL, new Date(), workspace.scale);
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Animate a cloned block and eventually dispose of it.
|
|
60
|
-
* This is a class method, not an instance method since the original block has
|
|
61
|
-
* been destroyed and is no longer accessible.
|
|
62
|
-
* @param clone SVG element to animate and dispose of.
|
|
63
|
-
* @param rect Starting rect of the clone.
|
|
64
|
-
* @param rtl True if RTL, false if LTR.
|
|
65
|
-
* @param start Date of animation's start.
|
|
66
|
-
* @param workspaceScale Scale of workspace.
|
|
67
|
-
*/
|
|
68
|
-
function disposeUiStep(
|
|
69
|
-
clone: Element, rect: CloneRect, rtl: boolean, start: Date,
|
|
70
|
-
workspaceScale: number) {
|
|
71
|
-
const ms = new Date().getTime() - start.getTime();
|
|
72
|
-
const percent = ms / 150;
|
|
73
|
-
if (percent > 1) {
|
|
74
|
-
dom.removeNode(clone);
|
|
75
|
-
} else {
|
|
76
|
-
const x =
|
|
77
|
-
rect.x + (rtl ? -1 : 1) * rect.width * workspaceScale / 2 * percent;
|
|
78
|
-
const y = rect.y + rect.height * workspaceScale * percent;
|
|
79
|
-
const scale = (1 - percent) * workspaceScale;
|
|
80
|
-
clone.setAttribute(
|
|
81
|
-
'transform',
|
|
82
|
-
'translate(' + x + ',' + y + ')' +
|
|
83
|
-
' scale(' + scale + ')');
|
|
84
|
-
setTimeout(disposeUiStep, 10, clone, rect, rtl, start, workspaceScale);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Play some UI effects (sound, ripple) after a connection has been established.
|
|
90
|
-
* @param block The block being connected.
|
|
91
|
-
* @alias Blockly.blockAnimations.connectionUiEffect
|
|
92
|
-
* @internal
|
|
93
|
-
*/
|
|
94
|
-
export function connectionUiEffect(block: BlockSvg) {
|
|
95
|
-
const workspace = block.workspace;
|
|
96
|
-
const scale = workspace.scale;
|
|
97
|
-
workspace.getAudioManager().play('click');
|
|
98
|
-
if (scale < 1) {
|
|
99
|
-
return; // Too small to care about visual effects.
|
|
100
|
-
}
|
|
101
|
-
// Determine the absolute coordinates of the inferior block.
|
|
102
|
-
const xy = workspace.getSvgXY(block.getSvgRoot());
|
|
103
|
-
// Offset the coordinates based on the two connection types, fix scale.
|
|
104
|
-
if (block.outputConnection) {
|
|
105
|
-
xy.x += (block.RTL ? 3 : -3) * scale;
|
|
106
|
-
xy.y += 13 * scale;
|
|
107
|
-
} else if (block.previousConnection) {
|
|
108
|
-
xy.x += (block.RTL ? -23 : 23) * scale;
|
|
109
|
-
xy.y += 3 * scale;
|
|
110
|
-
}
|
|
111
|
-
const ripple = dom.createSvgElement(
|
|
112
|
-
Svg.CIRCLE, {
|
|
113
|
-
'cx': xy.x,
|
|
114
|
-
'cy': xy.y,
|
|
115
|
-
'r': 0,
|
|
116
|
-
'fill': 'none',
|
|
117
|
-
'stroke': '#888',
|
|
118
|
-
'stroke-width': 10,
|
|
119
|
-
},
|
|
120
|
-
workspace.getParentSvg());
|
|
121
|
-
// Start the animation.
|
|
122
|
-
connectionUiStep(ripple, new Date(), scale);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Expand a ripple around a connection.
|
|
127
|
-
* @param ripple Element to animate.
|
|
128
|
-
* @param start Date of animation's start.
|
|
129
|
-
* @param scale Scale of workspace.
|
|
130
|
-
*/
|
|
131
|
-
function connectionUiStep(ripple: SVGElement, start: Date, scale: number) {
|
|
132
|
-
const ms = new Date().getTime() - start.getTime();
|
|
133
|
-
const percent = ms / 150;
|
|
134
|
-
if (percent > 1) {
|
|
135
|
-
dom.removeNode(ripple);
|
|
136
|
-
} else {
|
|
137
|
-
ripple.setAttribute('r', (percent * 25 * scale).toString());
|
|
138
|
-
ripple.style.opacity = (1 - percent).toString();
|
|
139
|
-
disconnectPid = setTimeout(connectionUiStep, 10, ripple, start, scale);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Play some UI effects (sound, animation) when disconnecting a block.
|
|
145
|
-
* @param block The block being disconnected.
|
|
146
|
-
* @alias Blockly.blockAnimations.disconnectUiEffect
|
|
147
|
-
* @internal
|
|
148
|
-
*/
|
|
149
|
-
export function disconnectUiEffect(block: BlockSvg) {
|
|
150
|
-
disconnectUiStop();
|
|
151
|
-
block.workspace.getAudioManager().play('disconnect');
|
|
152
|
-
if (block.workspace.scale < 1) {
|
|
153
|
-
return; // Too small to care about visual effects.
|
|
154
|
-
}
|
|
155
|
-
// Horizontal distance for bottom of block to wiggle.
|
|
156
|
-
const DISPLACEMENT = 10;
|
|
157
|
-
// Scale magnitude of skew to height of block.
|
|
158
|
-
const height = block.getHeightWidth().height;
|
|
159
|
-
let magnitude = Math.atan(DISPLACEMENT / height) / Math.PI * 180;
|
|
160
|
-
if (!block.RTL) {
|
|
161
|
-
magnitude *= -1;
|
|
162
|
-
}
|
|
163
|
-
// Start the animation.
|
|
164
|
-
disconnectGroup = block.getSvgRoot();
|
|
165
|
-
disconnectUiStep(disconnectGroup, magnitude, new Date());
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Animate a brief wiggle of a disconnected block.
|
|
170
|
-
* @param group SVG element to animate.
|
|
171
|
-
* @param magnitude Maximum degrees skew (reversed for RTL).
|
|
172
|
-
* @param start Date of animation's start.
|
|
173
|
-
*/
|
|
174
|
-
function disconnectUiStep(group: SVGElement, magnitude: number, start: Date) {
|
|
175
|
-
const DURATION = 200; // Milliseconds.
|
|
176
|
-
const WIGGLES = 3; // Half oscillations.
|
|
177
|
-
|
|
178
|
-
const ms = new Date().getTime() - start.getTime();
|
|
179
|
-
const percent = ms / DURATION;
|
|
180
|
-
|
|
181
|
-
let skew = '';
|
|
182
|
-
if (percent <= 1) {
|
|
183
|
-
const val = Math.round(
|
|
184
|
-
Math.sin(percent * Math.PI * WIGGLES) * (1 - percent) * magnitude);
|
|
185
|
-
skew = `skewX(${val})`;
|
|
186
|
-
disconnectPid = setTimeout(disconnectUiStep, 10, group, magnitude, start);
|
|
187
|
-
}
|
|
188
|
-
group.setAttribute('transform', skew);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Stop the disconnect UI animation immediately.
|
|
193
|
-
* @alias Blockly.blockAnimations.disconnectUiStop
|
|
194
|
-
* @internal
|
|
195
|
-
*/
|
|
196
|
-
export function disconnectUiStop() {
|
|
197
|
-
if (disconnectGroup) {
|
|
198
|
-
clearTimeout(disconnectPid);
|
|
199
|
-
disconnectGroup.setAttribute('transform', '');
|
|
200
|
-
disconnectGroup = null;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2016 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @fileoverview A class that manages a surface for dragging blocks. When a
|
|
9
|
-
* block drag is started, we move the block (and children) to a separate DOM
|
|
10
|
-
* element that we move around using translate3d. At the end of the drag, the
|
|
11
|
-
* blocks are put back in into the SVG they came from. This helps
|
|
12
|
-
* performance by avoiding repainting the entire SVG on every mouse move
|
|
13
|
-
* while dragging blocks.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* A class that manages a surface for dragging blocks. When a
|
|
18
|
-
* block drag is started, we move the block (and children) to a separate DOM
|
|
19
|
-
* element that we move around using translate3d. At the end of the drag, the
|
|
20
|
-
* blocks are put back in into the SVG they came from. This helps
|
|
21
|
-
* performance by avoiding repainting the entire SVG on every mouse move
|
|
22
|
-
* while dragging blocks.
|
|
23
|
-
* @class
|
|
24
|
-
*/
|
|
25
|
-
import * as goog from '../closure/goog/goog.js';
|
|
26
|
-
goog.declareModuleId('Blockly.BlockDragSurfaceSvg');
|
|
27
|
-
|
|
28
|
-
import {Coordinate} from './utils/coordinate.js';
|
|
29
|
-
import * as deprecation from './utils/deprecation.js';
|
|
30
|
-
import * as dom from './utils/dom.js';
|
|
31
|
-
import {Svg} from './utils/svg.js';
|
|
32
|
-
import * as svgMath from './utils/svg_math.js';
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Class for a drag surface for the currently dragged block. This is a separate
|
|
37
|
-
* SVG that contains only the currently moving block, or nothing.
|
|
38
|
-
* @alias Blockly.BlockDragSurfaceSvg
|
|
39
|
-
*/
|
|
40
|
-
export class BlockDragSurfaceSvg {
|
|
41
|
-
/** The SVG drag surface. Set once by BlockDragSurfaceSvg.createDom. */
|
|
42
|
-
private svg_: SVGElement;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* This is where blocks live while they are being dragged if the drag
|
|
46
|
-
* surface is enabled.
|
|
47
|
-
*/
|
|
48
|
-
private dragGroup_: SVGElement;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Cached value for the scale of the drag surface.
|
|
52
|
-
* Used to set/get the correct translation during and after a drag.
|
|
53
|
-
*/
|
|
54
|
-
private scale_ = 1;
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Cached value for the translation of the drag surface.
|
|
58
|
-
* This translation is in pixel units, because the scale is applied to the
|
|
59
|
-
* drag group rather than the top-level SVG.
|
|
60
|
-
*/
|
|
61
|
-
private surfaceXY_: Coordinate = new Coordinate(0, 0);
|
|
62
|
-
private readonly childSurfaceXY_: Coordinate;
|
|
63
|
-
|
|
64
|
-
/** @param container Containing element. */
|
|
65
|
-
constructor(private readonly container: Element) {
|
|
66
|
-
/**
|
|
67
|
-
* Cached value for the translation of the child drag surface in pixel
|
|
68
|
-
* units. Since the child drag surface tracks the translation of the
|
|
69
|
-
* workspace this is ultimately the translation of the workspace.
|
|
70
|
-
*/
|
|
71
|
-
this.childSurfaceXY_ = new Coordinate(0, 0);
|
|
72
|
-
|
|
73
|
-
this.svg_ = dom.createSvgElement(
|
|
74
|
-
Svg.SVG, {
|
|
75
|
-
'xmlns': dom.SVG_NS,
|
|
76
|
-
'xmlns:html': dom.HTML_NS,
|
|
77
|
-
'xmlns:xlink': dom.XLINK_NS,
|
|
78
|
-
'version': '1.1',
|
|
79
|
-
'class': 'blocklyBlockDragSurface',
|
|
80
|
-
},
|
|
81
|
-
this.container);
|
|
82
|
-
this.dragGroup_ = dom.createSvgElement(Svg.G, {}, this.svg_ as SVGElement);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/** Create the drag surface and inject it into the container. */
|
|
86
|
-
createDom() {
|
|
87
|
-
// No alternative provided, because now the dom is just automatically
|
|
88
|
-
// created in the constructor now.
|
|
89
|
-
deprecation.warn('BlockDragSurfaceSvg createDom', 'June 2022', 'June 2023');
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Set the SVG blocks on the drag surface's group and show the surface.
|
|
94
|
-
* Only one block group should be on the drag surface at a time.
|
|
95
|
-
* @param blocks Block or group of blocks to place on the drag surface.
|
|
96
|
-
*/
|
|
97
|
-
setBlocksAndShow(blocks: SVGElement) {
|
|
98
|
-
if (this.dragGroup_.childNodes.length) {
|
|
99
|
-
throw Error('Already dragging a block.');
|
|
100
|
-
}
|
|
101
|
-
// appendChild removes the blocks from the previous parent
|
|
102
|
-
this.dragGroup_.appendChild(blocks);
|
|
103
|
-
this.svg_.style.display = 'block';
|
|
104
|
-
this.surfaceXY_ = new Coordinate(0, 0);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Translate and scale the entire drag surface group to the given position, to
|
|
109
|
-
* keep in sync with the workspace.
|
|
110
|
-
* @param x X translation in pixel coordinates.
|
|
111
|
-
* @param y Y translation in pixel coordinates.
|
|
112
|
-
* @param scale Scale of the group.
|
|
113
|
-
*/
|
|
114
|
-
translateAndScaleGroup(x: number, y: number, scale: number) {
|
|
115
|
-
this.scale_ = scale;
|
|
116
|
-
// Make sure the svg exists on a pixel boundary so that it is not fuzzy.
|
|
117
|
-
const roundX = Math.round(x);
|
|
118
|
-
const roundY = Math.round(y);
|
|
119
|
-
this.childSurfaceXY_.x = roundX;
|
|
120
|
-
this.childSurfaceXY_.y = roundY;
|
|
121
|
-
this.dragGroup_!.setAttribute(
|
|
122
|
-
'transform',
|
|
123
|
-
'translate(' + roundX + ',' + roundY + ') scale(' + scale + ')');
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Translate the drag surface's SVG based on its internal state.
|
|
128
|
-
* @private
|
|
129
|
-
*/
|
|
130
|
-
translateSurfaceInternal_() {
|
|
131
|
-
let x = this.surfaceXY_!.x;
|
|
132
|
-
let y = this.surfaceXY_!.y;
|
|
133
|
-
// Make sure the svg exists on a pixel boundary so that it is not fuzzy.
|
|
134
|
-
x = Math.round(x);
|
|
135
|
-
y = Math.round(y);
|
|
136
|
-
this.svg_.style.display = 'block';
|
|
137
|
-
dom.setCssTransform(this.svg_, 'translate3d(' + x + 'px, ' + y + 'px, 0)');
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Translates the entire surface by a relative offset.
|
|
142
|
-
* @param deltaX Horizontal offset in pixel units.
|
|
143
|
-
* @param deltaY Vertical offset in pixel units.
|
|
144
|
-
*/
|
|
145
|
-
translateBy(deltaX: number, deltaY: number) {
|
|
146
|
-
const x = this.surfaceXY_.x + deltaX;
|
|
147
|
-
const y = this.surfaceXY_.y + deltaY;
|
|
148
|
-
this.surfaceXY_ = new Coordinate(x, y);
|
|
149
|
-
this.translateSurfaceInternal_();
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Translate the entire drag surface during a drag.
|
|
154
|
-
* We translate the drag surface instead of the blocks inside the surface
|
|
155
|
-
* so that the browser avoids repainting the SVG.
|
|
156
|
-
* Because of this, the drag coordinates must be adjusted by scale.
|
|
157
|
-
* @param x X translation for the entire surface.
|
|
158
|
-
* @param y Y translation for the entire surface.
|
|
159
|
-
*/
|
|
160
|
-
translateSurface(x: number, y: number) {
|
|
161
|
-
this.surfaceXY_ = new Coordinate(x * this.scale_, y * this.scale_);
|
|
162
|
-
this.translateSurfaceInternal_();
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Reports the surface translation in scaled workspace coordinates.
|
|
167
|
-
* Use this when finishing a drag to return blocks to the correct position.
|
|
168
|
-
* @return Current translation of the surface.
|
|
169
|
-
*/
|
|
170
|
-
getSurfaceTranslation(): Coordinate {
|
|
171
|
-
const xy = svgMath.getRelativeXY(this.svg_ as SVGElement);
|
|
172
|
-
return new Coordinate(xy.x / this.scale_, xy.y / this.scale_);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* Provide a reference to the drag group (primarily for
|
|
177
|
-
* BlockSvg.getRelativeToSurfaceXY).
|
|
178
|
-
* @return Drag surface group element.
|
|
179
|
-
*/
|
|
180
|
-
getGroup(): SVGElement|null {
|
|
181
|
-
return this.dragGroup_;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Returns the SVG drag surface.
|
|
186
|
-
* @returns The SVG drag surface.
|
|
187
|
-
*/
|
|
188
|
-
getSvgRoot(): SVGElement|null {
|
|
189
|
-
return this.svg_;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* Get the current blocks on the drag surface, if any (primarily
|
|
194
|
-
* for BlockSvg.getRelativeToSurfaceXY).
|
|
195
|
-
* @return Drag surface block DOM element, or null if no blocks exist.
|
|
196
|
-
*/
|
|
197
|
-
getCurrentBlock(): Element|null {
|
|
198
|
-
return this.dragGroup_.firstChild as Element;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Gets the translation of the child block surface
|
|
203
|
-
* This surface is in charge of keeping track of how much the workspace has
|
|
204
|
-
* moved.
|
|
205
|
-
* @return The amount the workspace has been moved.
|
|
206
|
-
*/
|
|
207
|
-
getWsTranslation(): Coordinate {
|
|
208
|
-
// Returning a copy so the coordinate can not be changed outside this class.
|
|
209
|
-
return this.childSurfaceXY_.clone();
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Clear the group and hide the surface; move the blocks off onto the provided
|
|
214
|
-
* element.
|
|
215
|
-
* If the block is being deleted it doesn't need to go back to the original
|
|
216
|
-
* surface, since it would be removed immediately during dispose.
|
|
217
|
-
* @param opt_newSurface Surface the dragging blocks should be moved to, or
|
|
218
|
-
* null if the blocks should be removed from this surface without being
|
|
219
|
-
* moved to a different surface.
|
|
220
|
-
*/
|
|
221
|
-
clearAndHide(opt_newSurface?: Element) {
|
|
222
|
-
const currentBlockElement = this.getCurrentBlock();
|
|
223
|
-
if (currentBlockElement) {
|
|
224
|
-
if (opt_newSurface) {
|
|
225
|
-
// appendChild removes the node from this.dragGroup_
|
|
226
|
-
opt_newSurface.appendChild(currentBlockElement);
|
|
227
|
-
} else {
|
|
228
|
-
this.dragGroup_.removeChild(currentBlockElement);
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
this.svg_.style.display = 'none';
|
|
232
|
-
if (this.dragGroup_.childNodes.length) {
|
|
233
|
-
throw Error('Drag group was not cleared.');
|
|
234
|
-
}
|
|
235
|
-
this.surfaceXY_ = new Coordinate(0, 0);
|
|
236
|
-
}
|
|
237
|
-
}
|