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_dragger.ts
DELETED
|
@@ -1,447 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2017 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @fileoverview Methods for dragging a block visually.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Methods for dragging a block visually.
|
|
13
|
-
* @class
|
|
14
|
-
*/
|
|
15
|
-
import * as goog from '../closure/goog/goog.js';
|
|
16
|
-
goog.declareModuleId('Blockly.BlockDragger');
|
|
17
|
-
|
|
18
|
-
// Unused import preserved for side-effects. Remove if unneeded.
|
|
19
|
-
import './events/events_block_drag.js';
|
|
20
|
-
|
|
21
|
-
import * as blockAnimation from './block_animations.js';
|
|
22
|
-
import type {BlockSvg} from './block_svg.js';
|
|
23
|
-
import * as bumpObjects from './bump_objects.js';
|
|
24
|
-
import * as common from './common.js';
|
|
25
|
-
import type {BlockMove} from './events/events_block_move.js';
|
|
26
|
-
import * as eventUtils from './events/utils.js';
|
|
27
|
-
import type {Icon} from './icon.js';
|
|
28
|
-
import {InsertionMarkerManager} from './insertion_marker_manager.js';
|
|
29
|
-
import type {IBlockDragger} from './interfaces/i_block_dragger.js';
|
|
30
|
-
import type {IDragTarget} from './interfaces/i_drag_target.js';
|
|
31
|
-
import * as registry from './registry.js';
|
|
32
|
-
import {Coordinate} from './utils/coordinate.js';
|
|
33
|
-
import * as dom from './utils/dom.js';
|
|
34
|
-
import type {WorkspaceSvg} from './workspace_svg.js';
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Class for a block dragger. It moves blocks around the workspace when they
|
|
39
|
-
* are being dragged by a mouse or touch.
|
|
40
|
-
* @alias Blockly.BlockDragger
|
|
41
|
-
*/
|
|
42
|
-
export class BlockDragger implements IBlockDragger {
|
|
43
|
-
/** The top block in the stack that is being dragged. */
|
|
44
|
-
protected draggingBlock_: BlockSvg;
|
|
45
|
-
protected draggedConnectionManager_: InsertionMarkerManager;
|
|
46
|
-
|
|
47
|
-
/** The workspace on which the block is being dragged. */
|
|
48
|
-
protected workspace_: WorkspaceSvg;
|
|
49
|
-
|
|
50
|
-
/** Which drag area the mouse pointer is over, if any. */
|
|
51
|
-
private dragTarget_: IDragTarget|null = null;
|
|
52
|
-
|
|
53
|
-
/** Whether the block would be deleted if dropped immediately. */
|
|
54
|
-
protected wouldDeleteBlock_ = false;
|
|
55
|
-
protected startXY_: Coordinate;
|
|
56
|
-
protected dragIconData_: IconPositionData[];
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* @param block The block to drag.
|
|
60
|
-
* @param workspace The workspace to drag on.
|
|
61
|
-
*/
|
|
62
|
-
constructor(block: BlockSvg, workspace: WorkspaceSvg) {
|
|
63
|
-
this.draggingBlock_ = block;
|
|
64
|
-
|
|
65
|
-
/** Object that keeps track of connections on dragged blocks. */
|
|
66
|
-
this.draggedConnectionManager_ =
|
|
67
|
-
new InsertionMarkerManager(this.draggingBlock_);
|
|
68
|
-
|
|
69
|
-
this.workspace_ = workspace;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* The location of the top left corner of the dragging block at the
|
|
73
|
-
* beginning of the drag in workspace coordinates.
|
|
74
|
-
*/
|
|
75
|
-
this.startXY_ = this.draggingBlock_.getRelativeToSurfaceXY();
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* A list of all of the icons (comment, warning, and mutator) that are
|
|
79
|
-
* on this block and its descendants. Moving an icon moves the bubble that
|
|
80
|
-
* extends from it if that bubble is open.
|
|
81
|
-
*/
|
|
82
|
-
this.dragIconData_ = initIconData(block);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Sever all links from this object.
|
|
87
|
-
* @internal
|
|
88
|
-
*/
|
|
89
|
-
dispose() {
|
|
90
|
-
this.dragIconData_.length = 0;
|
|
91
|
-
|
|
92
|
-
if (this.draggedConnectionManager_) {
|
|
93
|
-
this.draggedConnectionManager_.dispose();
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Start dragging a block. This includes moving it to the drag surface.
|
|
99
|
-
* @param currentDragDeltaXY How far the pointer has moved from the position
|
|
100
|
-
* at mouse down, in pixel units.
|
|
101
|
-
* @param healStack Whether or not to heal the stack after disconnecting.
|
|
102
|
-
*/
|
|
103
|
-
startDrag(currentDragDeltaXY: Coordinate, healStack: boolean) {
|
|
104
|
-
if (!eventUtils.getGroup()) {
|
|
105
|
-
eventUtils.setGroup(true);
|
|
106
|
-
}
|
|
107
|
-
this.fireDragStartEvent_();
|
|
108
|
-
|
|
109
|
-
// Mutators don't have the same type of z-ordering as the normal workspace
|
|
110
|
-
// during a drag. They have to rely on the order of the blocks in the SVG.
|
|
111
|
-
// For performance reasons that usually happens at the end of a drag,
|
|
112
|
-
// but do it at the beginning for mutators.
|
|
113
|
-
if (this.workspace_.isMutator) {
|
|
114
|
-
this.draggingBlock_.bringToFront();
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// During a drag there may be a lot of rerenders, but not field changes.
|
|
118
|
-
// Turn the cache on so we don't do spurious remeasures during the drag.
|
|
119
|
-
dom.startTextWidthCache();
|
|
120
|
-
this.workspace_.setResizesEnabled(false);
|
|
121
|
-
blockAnimation.disconnectUiStop();
|
|
122
|
-
|
|
123
|
-
if (this.shouldDisconnect_(healStack)) {
|
|
124
|
-
this.disconnectBlock_(healStack, currentDragDeltaXY);
|
|
125
|
-
}
|
|
126
|
-
this.draggingBlock_.setDragging(true);
|
|
127
|
-
// For future consideration: we may be able to put moveToDragSurface inside
|
|
128
|
-
// the block dragger, which would also let the block not track the block
|
|
129
|
-
// drag surface.
|
|
130
|
-
this.draggingBlock_.moveToDragSurface();
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Whether or not we should disconnect the block when a drag is started.
|
|
135
|
-
* @param healStack Whether or not to heal the stack after disconnecting.
|
|
136
|
-
* @return True to disconnect the block, false otherwise.
|
|
137
|
-
*/
|
|
138
|
-
protected shouldDisconnect_(healStack: boolean): boolean {
|
|
139
|
-
return !!(
|
|
140
|
-
this.draggingBlock_.getParent() ||
|
|
141
|
-
healStack && this.draggingBlock_.nextConnection &&
|
|
142
|
-
this.draggingBlock_.nextConnection.targetBlock());
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Disconnects the block and moves it to a new location.
|
|
147
|
-
* @param healStack Whether or not to heal the stack after disconnecting.
|
|
148
|
-
* @param currentDragDeltaXY How far the pointer has moved from the position
|
|
149
|
-
* at mouse down, in pixel units.
|
|
150
|
-
*/
|
|
151
|
-
protected disconnectBlock_(
|
|
152
|
-
healStack: boolean, currentDragDeltaXY: Coordinate) {
|
|
153
|
-
this.draggingBlock_.unplug(healStack);
|
|
154
|
-
const delta = this.pixelsToWorkspaceUnits_(currentDragDeltaXY);
|
|
155
|
-
const newLoc = Coordinate.sum(this.startXY_, delta);
|
|
156
|
-
|
|
157
|
-
this.draggingBlock_.translate(newLoc.x, newLoc.y);
|
|
158
|
-
blockAnimation.disconnectUiEffect(this.draggingBlock_);
|
|
159
|
-
this.draggedConnectionManager_.updateAvailableConnections();
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/** Fire a UI event at the start of a block drag. */
|
|
163
|
-
protected fireDragStartEvent_() {
|
|
164
|
-
const event = new (eventUtils.get(eventUtils.BLOCK_DRAG))!
|
|
165
|
-
(this.draggingBlock_, true, this.draggingBlock_.getDescendants(false));
|
|
166
|
-
eventUtils.fire(event);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Execute a step of block dragging, based on the given event. Update the
|
|
171
|
-
* display accordingly.
|
|
172
|
-
* @param e The most recent move event.
|
|
173
|
-
* @param currentDragDeltaXY How far the pointer has moved from the position
|
|
174
|
-
* at the start of the drag, in pixel units.
|
|
175
|
-
*/
|
|
176
|
-
drag(e: Event, currentDragDeltaXY: Coordinate) {
|
|
177
|
-
const delta = this.pixelsToWorkspaceUnits_(currentDragDeltaXY);
|
|
178
|
-
const newLoc = Coordinate.sum(this.startXY_, delta);
|
|
179
|
-
this.draggingBlock_.moveDuringDrag(newLoc);
|
|
180
|
-
this.dragIcons_(delta);
|
|
181
|
-
|
|
182
|
-
const oldDragTarget = this.dragTarget_;
|
|
183
|
-
this.dragTarget_ = this.workspace_.getDragTarget(e);
|
|
184
|
-
|
|
185
|
-
this.draggedConnectionManager_.update(delta, this.dragTarget_);
|
|
186
|
-
const oldWouldDeleteBlock = this.wouldDeleteBlock_;
|
|
187
|
-
this.wouldDeleteBlock_ = this.draggedConnectionManager_.wouldDeleteBlock();
|
|
188
|
-
if (oldWouldDeleteBlock !== this.wouldDeleteBlock_) {
|
|
189
|
-
// Prevent unnecessary add/remove class calls.
|
|
190
|
-
this.updateCursorDuringBlockDrag_();
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
// Call drag enter/exit/over after wouldDeleteBlock is called in
|
|
194
|
-
// InsertionMarkerManager.update.
|
|
195
|
-
if (this.dragTarget_ !== oldDragTarget) {
|
|
196
|
-
oldDragTarget && oldDragTarget.onDragExit(this.draggingBlock_);
|
|
197
|
-
this.dragTarget_ && this.dragTarget_.onDragEnter(this.draggingBlock_);
|
|
198
|
-
}
|
|
199
|
-
this.dragTarget_ && this.dragTarget_.onDragOver(this.draggingBlock_);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Finish a block drag and put the block back on the workspace.
|
|
204
|
-
* @param e The mouseup/touchend event.
|
|
205
|
-
* @param currentDragDeltaXY How far the pointer has moved from the position
|
|
206
|
-
* at the start of the drag, in pixel units.
|
|
207
|
-
*/
|
|
208
|
-
endDrag(e: Event, currentDragDeltaXY: Coordinate) {
|
|
209
|
-
// Make sure internal state is fresh.
|
|
210
|
-
this.drag(e, currentDragDeltaXY);
|
|
211
|
-
this.dragIconData_ = [];
|
|
212
|
-
this.fireDragEndEvent_();
|
|
213
|
-
|
|
214
|
-
dom.stopTextWidthCache();
|
|
215
|
-
|
|
216
|
-
blockAnimation.disconnectUiStop();
|
|
217
|
-
|
|
218
|
-
const preventMove = !!this.dragTarget_ &&
|
|
219
|
-
this.dragTarget_.shouldPreventMove(this.draggingBlock_);
|
|
220
|
-
let newLoc: Coordinate;
|
|
221
|
-
let delta: Coordinate|null = null;
|
|
222
|
-
if (preventMove) {
|
|
223
|
-
newLoc = this.startXY_;
|
|
224
|
-
} else {
|
|
225
|
-
const newValues = this.getNewLocationAfterDrag_(currentDragDeltaXY);
|
|
226
|
-
delta = newValues.delta;
|
|
227
|
-
newLoc = newValues.newLocation;
|
|
228
|
-
}
|
|
229
|
-
this.draggingBlock_.moveOffDragSurface(newLoc);
|
|
230
|
-
|
|
231
|
-
if (this.dragTarget_) {
|
|
232
|
-
this.dragTarget_.onDrop(this.draggingBlock_);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
const deleted = this.maybeDeleteBlock_();
|
|
236
|
-
if (!deleted) {
|
|
237
|
-
// These are expensive and don't need to be done if we're deleting.
|
|
238
|
-
this.draggingBlock_.setDragging(false);
|
|
239
|
-
if (delta) { // !preventMove
|
|
240
|
-
this.updateBlockAfterMove_(delta);
|
|
241
|
-
} else {
|
|
242
|
-
// Blocks dragged directly from a flyout may need to be bumped into
|
|
243
|
-
// bounds.
|
|
244
|
-
bumpObjects.bumpIntoBounds(
|
|
245
|
-
this.draggingBlock_.workspace,
|
|
246
|
-
this.workspace_.getMetricsManager().getScrollMetrics(true),
|
|
247
|
-
this.draggingBlock_);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
this.workspace_.setResizesEnabled(true);
|
|
251
|
-
|
|
252
|
-
eventUtils.setGroup(false);
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
/**
|
|
256
|
-
* Calculates the drag delta and new location values after a block is dragged.
|
|
257
|
-
* @param currentDragDeltaXY How far the pointer has moved from the start of
|
|
258
|
-
* the drag, in pixel units.
|
|
259
|
-
* @return New location after drag. delta is in workspace units. newLocation
|
|
260
|
-
* is the new coordinate where the block should end up.
|
|
261
|
-
*/
|
|
262
|
-
protected getNewLocationAfterDrag_(currentDragDeltaXY: Coordinate):
|
|
263
|
-
{delta: Coordinate, newLocation: Coordinate} {
|
|
264
|
-
const delta = this.pixelsToWorkspaceUnits_(currentDragDeltaXY);
|
|
265
|
-
const newLocation = Coordinate.sum(this.startXY_, delta);
|
|
266
|
-
return {
|
|
267
|
-
delta,
|
|
268
|
-
newLocation,
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
/**
|
|
273
|
-
* May delete the dragging block, if allowed. If `this.wouldDeleteBlock_` is
|
|
274
|
-
* not true, the block will not be deleted. This should be called at the end
|
|
275
|
-
* of a block drag.
|
|
276
|
-
* @return True if the block was deleted.
|
|
277
|
-
*/
|
|
278
|
-
protected maybeDeleteBlock_(): boolean {
|
|
279
|
-
if (this.wouldDeleteBlock_) {
|
|
280
|
-
// Fire a move event, so we know where to go back to for an undo.
|
|
281
|
-
this.fireMoveEvent_();
|
|
282
|
-
this.draggingBlock_.dispose(false, true);
|
|
283
|
-
common.draggingConnections.length = 0;
|
|
284
|
-
return true;
|
|
285
|
-
}
|
|
286
|
-
return false;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
/**
|
|
290
|
-
* Updates the necessary information to place a block at a certain location.
|
|
291
|
-
* @param delta The change in location from where the block started the drag
|
|
292
|
-
* to where it ended the drag.
|
|
293
|
-
*/
|
|
294
|
-
protected updateBlockAfterMove_(delta: Coordinate) {
|
|
295
|
-
this.draggingBlock_.moveConnections(delta.x, delta.y);
|
|
296
|
-
this.fireMoveEvent_();
|
|
297
|
-
if (this.draggedConnectionManager_.wouldConnectBlock()) {
|
|
298
|
-
// Applying connections also rerenders the relevant blocks.
|
|
299
|
-
this.draggedConnectionManager_.applyConnections();
|
|
300
|
-
} else {
|
|
301
|
-
this.draggingBlock_.render();
|
|
302
|
-
}
|
|
303
|
-
this.draggingBlock_.scheduleSnapAndBump();
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
/** Fire a UI event at the end of a block drag. */
|
|
307
|
-
protected fireDragEndEvent_() {
|
|
308
|
-
const event = new (eventUtils.get(eventUtils.BLOCK_DRAG))!
|
|
309
|
-
(this.draggingBlock_, false, this.draggingBlock_.getDescendants(false));
|
|
310
|
-
eventUtils.fire(event);
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
/**
|
|
314
|
-
* Adds or removes the style of the cursor for the toolbox.
|
|
315
|
-
* This is what changes the cursor to display an x when a deletable block is
|
|
316
|
-
* held over the toolbox.
|
|
317
|
-
* @param isEnd True if we are at the end of a drag, false otherwise.
|
|
318
|
-
*/
|
|
319
|
-
protected updateToolboxStyle_(isEnd: boolean) {
|
|
320
|
-
const toolbox = this.workspace_.getToolbox();
|
|
321
|
-
|
|
322
|
-
if (toolbox) {
|
|
323
|
-
const style = this.draggingBlock_.isDeletable() ? 'blocklyToolboxDelete' :
|
|
324
|
-
'blocklyToolboxGrab';
|
|
325
|
-
|
|
326
|
-
// AnyDuringMigration because: Property 'removeStyle' does not exist on
|
|
327
|
-
// type 'IToolbox'.
|
|
328
|
-
if (isEnd &&
|
|
329
|
-
typeof (toolbox as AnyDuringMigration).removeStyle === 'function') {
|
|
330
|
-
// AnyDuringMigration because: Property 'removeStyle' does not exist on
|
|
331
|
-
// type 'IToolbox'.
|
|
332
|
-
(toolbox as AnyDuringMigration).removeStyle(style);
|
|
333
|
-
// AnyDuringMigration because: Property 'addStyle' does not exist on
|
|
334
|
-
// type 'IToolbox'.
|
|
335
|
-
} else if (
|
|
336
|
-
!isEnd &&
|
|
337
|
-
typeof (toolbox as AnyDuringMigration).addStyle === 'function') {
|
|
338
|
-
// AnyDuringMigration because: Property 'addStyle' does not exist on
|
|
339
|
-
// type 'IToolbox'.
|
|
340
|
-
(toolbox as AnyDuringMigration).addStyle(style);
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
/** Fire a move event at the end of a block drag. */
|
|
346
|
-
protected fireMoveEvent_() {
|
|
347
|
-
const event = new (eventUtils.get(eventUtils.BLOCK_MOVE))!
|
|
348
|
-
(this.draggingBlock_) as BlockMove;
|
|
349
|
-
event.oldCoordinate = this.startXY_;
|
|
350
|
-
event.recordNew();
|
|
351
|
-
eventUtils.fire(event);
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
/**
|
|
355
|
-
* Update the cursor (and possibly the trash can lid) to reflect whether the
|
|
356
|
-
* dragging block would be deleted if released immediately.
|
|
357
|
-
*/
|
|
358
|
-
protected updateCursorDuringBlockDrag_() {
|
|
359
|
-
this.draggingBlock_.setDeleteStyle(this.wouldDeleteBlock_);
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
/**
|
|
363
|
-
* Convert a coordinate object from pixels to workspace units, including a
|
|
364
|
-
* correction for mutator workspaces.
|
|
365
|
-
* This function does not consider differing origins. It simply scales the
|
|
366
|
-
* input's x and y values.
|
|
367
|
-
* @param pixelCoord A coordinate with x and y values in CSS pixel units.
|
|
368
|
-
* @return The input coordinate divided by the workspace scale.
|
|
369
|
-
*/
|
|
370
|
-
protected pixelsToWorkspaceUnits_(pixelCoord: Coordinate): Coordinate {
|
|
371
|
-
const result = new Coordinate(
|
|
372
|
-
pixelCoord.x / this.workspace_.scale,
|
|
373
|
-
pixelCoord.y / this.workspace_.scale);
|
|
374
|
-
if (this.workspace_.isMutator) {
|
|
375
|
-
// If we're in a mutator, its scale is always 1, purely because of some
|
|
376
|
-
// oddities in our rendering optimizations. The actual scale is the same
|
|
377
|
-
// as the scale on the parent workspace. Fix that for dragging.
|
|
378
|
-
const mainScale = this.workspace_.options.parentWorkspace!.scale;
|
|
379
|
-
result.scale(1 / mainScale);
|
|
380
|
-
}
|
|
381
|
-
return result;
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
/**
|
|
385
|
-
* Move all of the icons connected to this drag.
|
|
386
|
-
* @param dxy How far to move the icons from their original positions, in
|
|
387
|
-
* workspace units.
|
|
388
|
-
*/
|
|
389
|
-
protected dragIcons_(dxy: Coordinate) {
|
|
390
|
-
// Moving icons moves their associated bubbles.
|
|
391
|
-
for (let i = 0; i < this.dragIconData_.length; i++) {
|
|
392
|
-
const data = this.dragIconData_[i];
|
|
393
|
-
data.icon.setIconLocation(Coordinate.sum(data.location, dxy));
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
/**
|
|
398
|
-
* Get a list of the insertion markers that currently exist. Drags have 0, 1,
|
|
399
|
-
* or 2 insertion markers.
|
|
400
|
-
* @return A possibly empty list of insertion marker blocks.
|
|
401
|
-
*/
|
|
402
|
-
getInsertionMarkers(): BlockSvg[] {
|
|
403
|
-
// No insertion markers with the old style of dragged connection managers.
|
|
404
|
-
if (this.draggedConnectionManager_ &&
|
|
405
|
-
this.draggedConnectionManager_.getInsertionMarkers) {
|
|
406
|
-
return this.draggedConnectionManager_.getInsertionMarkers();
|
|
407
|
-
}
|
|
408
|
-
return [];
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
/** Data about the position of a given icon. */
|
|
413
|
-
export interface IconPositionData {
|
|
414
|
-
location: Coordinate;
|
|
415
|
-
icon: Icon;
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
/**
|
|
419
|
-
* Make a list of all of the icons (comment, warning, and mutator) that are
|
|
420
|
-
* on this block and its descendants. Moving an icon moves the bubble that
|
|
421
|
-
* extends from it if that bubble is open.
|
|
422
|
-
* @param block The root block that is being dragged.
|
|
423
|
-
* @return The list of all icons and their locations.
|
|
424
|
-
*/
|
|
425
|
-
function initIconData(block: BlockSvg): IconPositionData[] {
|
|
426
|
-
// Build a list of icons that need to be moved and where they started.
|
|
427
|
-
const dragIconData = [];
|
|
428
|
-
const descendants = (block.getDescendants(false));
|
|
429
|
-
|
|
430
|
-
for (let i = 0, descendant; descendant = descendants[i]; i++) {
|
|
431
|
-
const icons = descendant.getIcons();
|
|
432
|
-
for (let j = 0; j < icons.length; j++) {
|
|
433
|
-
const data = {
|
|
434
|
-
// Coordinate with x and y properties (workspace
|
|
435
|
-
// coordinates).
|
|
436
|
-
location: icons[j].getIconLocation(), // Blockly.Icon
|
|
437
|
-
icon: icons[j],
|
|
438
|
-
};
|
|
439
|
-
dragIconData.push(data);
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
// AnyDuringMigration because: Type '{ location: Coordinate | null; icon:
|
|
443
|
-
// Icon; }[]' is not assignable to type 'IconPositionData[]'.
|
|
444
|
-
return dragIconData as AnyDuringMigration;
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
registry.register(registry.Type.BLOCK_DRAGGER, registry.DEFAULT, BlockDragger);
|