nodeskini 1.0.1 → 1.0.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/blocklySkini/archive/blocklyControleur.js +87 -0
- package/blocklySkini/archive/blocklySkini.js +84 -0
- package/blocklySkini/archive/blocklyhop.js +75 -0
- package/blocklySkini/archive/clientControleurBlocly.js +170 -0
- package/blocklySkini/archive/index.html +76 -0
- package/blocklySkini/archive/testHHsuspend.txt +89 -0
- package/blocklySkini/archive/testHHtrap.txt +262 -0
- package/blocklySkini/archive/testOrchestration.txt +177 -0
- package/blocklySkini/archive/testOrchestration.xml +447 -0
- package/blocklySkini/archive/testOrchestration2.xml +456 -0
- package/blocklySkini/blockly/README.md +77 -0
- package/blocklySkini/blockly/blockly.d.ts +21480 -0
- package/blocklySkini/blockly/blockly.js +25 -0
- package/blocklySkini/blockly/blockly.min.js +2188 -0
- package/blocklySkini/blockly/blockly_compressed.js +1455 -0
- package/blocklySkini/blockly/blockly_compressed.js.map +1 -0
- package/blocklySkini/blockly/blocks/colour.js +122 -0
- package/blocklySkini/blockly/blocks/lists.js +862 -0
- package/blocklySkini/blockly/blocks/logic.js +635 -0
- package/blocklySkini/blockly/blocks/loops.js +357 -0
- package/blocklySkini/blockly/blocks/math.js +566 -0
- package/blocklySkini/blockly/blocks/procedures.js +1072 -0
- package/blocklySkini/blockly/blocks/text.js +923 -0
- package/blocklySkini/blockly/blocks/variables.js +163 -0
- package/blocklySkini/blockly/blocks/variables_dynamic.js +180 -0
- package/blocklySkini/blockly/blocks.d.ts +15 -0
- package/blocklySkini/blockly/blocks.js +27 -0
- package/blocklySkini/blockly/blocks_compressed.js +182 -0
- package/blocklySkini/blockly/blocks_compressed.js.map +1 -0
- package/blocklySkini/blockly/browser.js +36 -0
- package/blocklySkini/blockly/core/block.js +2010 -0
- package/blocklySkini/blockly/core/block_animations.js +203 -0
- package/blocklySkini/blockly/core/block_drag_surface.js +212 -0
- package/blocklySkini/blockly/core/block_dragger.js +378 -0
- package/blocklySkini/blockly/core/block_events.js +548 -0
- package/blocklySkini/blockly/core/block_svg.js +1763 -0
- package/blocklySkini/blockly/core/blockly.js +674 -0
- package/blocklySkini/blockly/core/blocks.js +23 -0
- package/blocklySkini/blockly/core/bubble.js +880 -0
- package/blocklySkini/blockly/core/bubble_dragger.js +274 -0
- package/blocklySkini/blockly/core/comment.js +439 -0
- package/blocklySkini/blockly/core/components/component.js +554 -0
- package/blocklySkini/blockly/core/components/tree/basenode.js +895 -0
- package/blocklySkini/blockly/core/components/tree/treecontrol.js +332 -0
- package/blocklySkini/blockly/core/components/tree/treenode.js +172 -0
- package/blocklySkini/blockly/core/connection.js +682 -0
- package/blocklySkini/blockly/core/connection_checker.js +285 -0
- package/blocklySkini/blockly/core/connection_db.js +295 -0
- package/blocklySkini/blockly/core/constants.js +277 -0
- package/blocklySkini/blockly/core/contextmenu.js +307 -0
- package/blocklySkini/blockly/core/contextmenu_items.js +534 -0
- package/blocklySkini/blockly/core/contextmenu_registry.js +165 -0
- package/blocklySkini/blockly/core/css.js +549 -0
- package/blocklySkini/blockly/core/dropdowndiv.js +776 -0
- package/blocklySkini/blockly/core/events.js +387 -0
- package/blocklySkini/blockly/core/events_abstract.js +106 -0
- package/blocklySkini/blockly/core/extensions.js +450 -0
- package/blocklySkini/blockly/core/field.js +1162 -0
- package/blocklySkini/blockly/core/field_angle.js +562 -0
- package/blocklySkini/blockly/core/field_checkbox.js +220 -0
- package/blocklySkini/blockly/core/field_colour.js +664 -0
- package/blocklySkini/blockly/core/field_dropdown.js +760 -0
- package/blocklySkini/blockly/core/field_image.js +286 -0
- package/blocklySkini/blockly/core/field_label.js +130 -0
- package/blocklySkini/blockly/core/field_label_serializable.js +69 -0
- package/blocklySkini/blockly/core/field_multilineinput.js +299 -0
- package/blocklySkini/blockly/core/field_number.js +317 -0
- package/blocklySkini/blockly/core/field_registry.js +66 -0
- package/blocklySkini/blockly/core/field_textinput.js +616 -0
- package/blocklySkini/blockly/core/field_variable.js +463 -0
- package/blocklySkini/blockly/core/flyout_base.js +1071 -0
- package/blocklySkini/blockly/core/flyout_button.js +325 -0
- package/blocklySkini/blockly/core/flyout_dragger.js +76 -0
- package/blocklySkini/blockly/core/flyout_horizontal.js +388 -0
- package/blocklySkini/blockly/core/flyout_vertical.js +397 -0
- package/blocklySkini/blockly/core/generator.js +482 -0
- package/blocklySkini/blockly/core/gesture.js +993 -0
- package/blocklySkini/blockly/core/grid.js +222 -0
- package/blocklySkini/blockly/core/icon.js +206 -0
- package/blocklySkini/blockly/core/inject.js +487 -0
- package/blocklySkini/blockly/core/input.js +296 -0
- package/blocklySkini/blockly/core/insertion_marker_manager.js +700 -0
- package/blocklySkini/blockly/core/interfaces/i_accessibility.js +72 -0
- package/blocklySkini/blockly/core/interfaces/i_bounded_element.js +31 -0
- package/blocklySkini/blockly/core/interfaces/i_bubble.js +83 -0
- package/blocklySkini/blockly/core/interfaces/i_connection_checker.js +94 -0
- package/blocklySkini/blockly/core/interfaces/i_contextmenu.js +26 -0
- package/blocklySkini/blockly/core/interfaces/i_copyable.js +40 -0
- package/blocklySkini/blockly/core/interfaces/i_deletable.js +27 -0
- package/blocklySkini/blockly/core/interfaces/i_deletearea.js +28 -0
- package/blocklySkini/blockly/core/interfaces/i_flyout.js +178 -0
- package/blocklySkini/blockly/core/interfaces/i_movable.js +27 -0
- package/blocklySkini/blockly/core/interfaces/i_registrable.js +22 -0
- package/blocklySkini/blockly/core/interfaces/i_registrable_field.js +31 -0
- package/blocklySkini/blockly/core/interfaces/i_selectable.js +43 -0
- package/blocklySkini/blockly/core/interfaces/i_styleable.js +33 -0
- package/blocklySkini/blockly/core/interfaces/i_toolbox.js +131 -0
- package/blocklySkini/blockly/core/interfaces/i_toolbox_item.js +148 -0
- package/blocklySkini/blockly/core/keyboard_nav/action.js +26 -0
- package/blocklySkini/blockly/core/keyboard_nav/ast_node.js +684 -0
- package/blocklySkini/blockly/core/keyboard_nav/basic_cursor.js +208 -0
- package/blocklySkini/blockly/core/keyboard_nav/cursor.js +170 -0
- package/blocklySkini/blockly/core/keyboard_nav/flyout_cursor.js +106 -0
- package/blocklySkini/blockly/core/keyboard_nav/key_map.js +190 -0
- package/blocklySkini/blockly/core/keyboard_nav/marker.js +120 -0
- package/blocklySkini/blockly/core/keyboard_nav/navigation.js +1084 -0
- package/blocklySkini/blockly/core/keyboard_nav/tab_navigate_cursor.js +48 -0
- package/blocklySkini/blockly/core/marker_manager.js +183 -0
- package/blocklySkini/blockly/core/menu.js +465 -0
- package/blocklySkini/blockly/core/menuitem.js +280 -0
- package/blocklySkini/blockly/core/msg.js +31 -0
- package/blocklySkini/blockly/core/mutator.js +555 -0
- package/blocklySkini/blockly/core/names.js +186 -0
- package/blocklySkini/blockly/core/options.js +365 -0
- package/blocklySkini/blockly/core/procedures.js +404 -0
- package/blocklySkini/blockly/core/registry.js +265 -0
- package/blocklySkini/blockly/core/rendered_connection.js +565 -0
- package/blocklySkini/blockly/core/renderers/common/block_rendering.js +81 -0
- package/blocklySkini/blockly/core/renderers/common/constants.js +1256 -0
- package/blocklySkini/blockly/core/renderers/common/debugger.js +431 -0
- package/blocklySkini/blockly/core/renderers/common/drawer.js +468 -0
- package/blocklySkini/blockly/core/renderers/common/i_path_object.js +151 -0
- package/blocklySkini/blockly/core/renderers/common/info.js +775 -0
- package/blocklySkini/blockly/core/renderers/common/marker_svg.js +687 -0
- package/blocklySkini/blockly/core/renderers/common/path_object.js +279 -0
- package/blocklySkini/blockly/core/renderers/common/renderer.js +301 -0
- package/blocklySkini/blockly/core/renderers/geras/constants.js +64 -0
- package/blocklySkini/blockly/core/renderers/geras/drawer.js +205 -0
- package/blocklySkini/blockly/core/renderers/geras/highlight_constants.js +311 -0
- package/blocklySkini/blockly/core/renderers/geras/highlighter.js +256 -0
- package/blocklySkini/blockly/core/renderers/geras/info.js +483 -0
- package/blocklySkini/blockly/core/renderers/geras/measurables/inputs.js +67 -0
- package/blocklySkini/blockly/core/renderers/geras/path_object.js +177 -0
- package/blocklySkini/blockly/core/renderers/geras/renderer.js +138 -0
- package/blocklySkini/blockly/core/renderers/measurables/base.js +44 -0
- package/blocklySkini/blockly/core/renderers/measurables/connections.js +114 -0
- package/blocklySkini/blockly/core/renderers/measurables/inputs.js +160 -0
- package/blocklySkini/blockly/core/renderers/measurables/row_elements.js +185 -0
- package/blocklySkini/blockly/core/renderers/measurables/rows.js +532 -0
- package/blocklySkini/blockly/core/renderers/measurables/types.js +349 -0
- package/blocklySkini/blockly/core/renderers/minimalist/constants.js +29 -0
- package/blocklySkini/blockly/core/renderers/minimalist/drawer.js +32 -0
- package/blocklySkini/blockly/core/renderers/minimalist/info.js +45 -0
- package/blocklySkini/blockly/core/renderers/minimalist/renderer.js +70 -0
- package/blocklySkini/blockly/core/renderers/thrasos/info.js +338 -0
- package/blocklySkini/blockly/core/renderers/thrasos/renderer.js +45 -0
- package/blocklySkini/blockly/core/renderers/zelos/constants.js +1002 -0
- package/blocklySkini/blockly/core/renderers/zelos/drawer.js +233 -0
- package/blocklySkini/blockly/core/renderers/zelos/info.js +587 -0
- package/blocklySkini/blockly/core/renderers/zelos/marker_svg.js +148 -0
- package/blocklySkini/blockly/core/renderers/zelos/measurables/inputs.js +47 -0
- package/blocklySkini/blockly/core/renderers/zelos/measurables/row_elements.js +37 -0
- package/blocklySkini/blockly/core/renderers/zelos/measurables/rows.js +108 -0
- package/blocklySkini/blockly/core/renderers/zelos/path_object.js +244 -0
- package/blocklySkini/blockly/core/renderers/zelos/renderer.js +130 -0
- package/blocklySkini/blockly/core/requires.js +84 -0
- package/blocklySkini/blockly/core/scrollbar.js +880 -0
- package/blocklySkini/blockly/core/theme/classic.js +87 -0
- package/blocklySkini/blockly/core/theme/dark.js +33 -0
- package/blocklySkini/blockly/core/theme/deuteranopia.js +104 -0
- package/blocklySkini/blockly/core/theme/highcontrast.js +119 -0
- package/blocklySkini/blockly/core/theme/modern.js +108 -0
- package/blocklySkini/blockly/core/theme/tritanopia.js +103 -0
- package/blocklySkini/blockly/core/theme/zelos.js +106 -0
- package/blocklySkini/blockly/core/theme.js +236 -0
- package/blocklySkini/blockly/core/theme_manager.js +197 -0
- package/blocklySkini/blockly/core/toolbox/category.js +690 -0
- package/blocklySkini/blockly/core/toolbox/collapsible_category.js +294 -0
- package/blocklySkini/blockly/core/toolbox/separator.js +123 -0
- package/blocklySkini/blockly/core/toolbox/toolbox.js +984 -0
- package/blocklySkini/blockly/core/toolbox/toolbox_item.js +145 -0
- package/blocklySkini/blockly/core/toolbox.js +943 -0
- package/blocklySkini/blockly/core/tooltip.js +387 -0
- package/blocklySkini/blockly/core/touch.js +255 -0
- package/blocklySkini/blockly/core/touch_gesture.js +325 -0
- package/blocklySkini/blockly/core/trashcan.js +661 -0
- package/blocklySkini/blockly/core/ui_events.js +85 -0
- package/blocklySkini/blockly/core/utils/aria.js +167 -0
- package/blocklySkini/blockly/core/utils/colour.js +208 -0
- package/blocklySkini/blockly/core/utils/coordinate.js +125 -0
- package/blocklySkini/blockly/core/utils/deprecation.js +34 -0
- package/blocklySkini/blockly/core/utils/dom.js +391 -0
- package/blocklySkini/blockly/core/utils/global.js +37 -0
- package/blocklySkini/blockly/core/utils/idgenerator.js +33 -0
- package/blocklySkini/blockly/core/utils/keycodes.js +164 -0
- package/blocklySkini/blockly/core/utils/math.js +56 -0
- package/blocklySkini/blockly/core/utils/metrics.js +124 -0
- package/blocklySkini/blockly/core/utils/object.js +73 -0
- package/blocklySkini/blockly/core/utils/rect.js +54 -0
- package/blocklySkini/blockly/core/utils/size.js +58 -0
- package/blocklySkini/blockly/core/utils/string.js +284 -0
- package/blocklySkini/blockly/core/utils/style.js +281 -0
- package/blocklySkini/blockly/core/utils/svg.js +181 -0
- package/blocklySkini/blockly/core/utils/svg_paths.js +142 -0
- package/blocklySkini/blockly/core/utils/toolbox.js +401 -0
- package/blocklySkini/blockly/core/utils/useragent.js +110 -0
- package/blocklySkini/blockly/core/utils/xml.js +79 -0
- package/blocklySkini/blockly/core/utils.js +652 -0
- package/blocklySkini/blockly/core/variable_events.js +248 -0
- package/blocklySkini/blockly/core/variable_map.js +414 -0
- package/blocklySkini/blockly/core/variable_model.js +95 -0
- package/blocklySkini/blockly/core/variables.js +571 -0
- package/blocklySkini/blockly/core/variables_dynamic.js +100 -0
- package/blocklySkini/blockly/core/warning.js +200 -0
- package/blocklySkini/blockly/core/widgetdiv.js +241 -0
- package/blocklySkini/blockly/core/workspace.js +786 -0
- package/blocklySkini/blockly/core/workspace_audio.js +153 -0
- package/blocklySkini/blockly/core/workspace_comment.js +373 -0
- package/blocklySkini/blockly/core/workspace_comment_render_svg.js +461 -0
- package/blocklySkini/blockly/core/workspace_comment_svg.js +701 -0
- package/blocklySkini/blockly/core/workspace_drag_surface_svg.js +176 -0
- package/blocklySkini/blockly/core/workspace_dragger.js +85 -0
- package/blocklySkini/blockly/core/workspace_events.js +93 -0
- package/blocklySkini/blockly/core/workspace_svg.js +2661 -0
- package/blocklySkini/blockly/core/ws_comment_events.js +417 -0
- package/blocklySkini/blockly/core/xml.js +827 -0
- package/blocklySkini/blockly/core/zoom_controls.js +449 -0
- package/blocklySkini/blockly/core-browser.js +34 -0
- package/blocklySkini/blockly/core.d.ts +15 -0
- package/blocklySkini/blockly/core.js +38 -0
- package/blocklySkini/blockly/dart.d.ts +15 -0
- package/blocklySkini/blockly/dart.js +27 -0
- package/blocklySkini/blockly/dart_compressed.js +114 -0
- package/blocklySkini/blockly/dart_compressed.js.map +1 -0
- package/blocklySkini/blockly/generators/dart/colour.js +114 -0
- package/blocklySkini/blockly/generators/dart/lists.js +447 -0
- package/blocklySkini/blockly/generators/dart/logic.js +127 -0
- package/blocklySkini/blockly/generators/dart/loops.js +169 -0
- package/blocklySkini/blockly/generators/dart/math.js +485 -0
- package/blocklySkini/blockly/generators/dart/procedures.js +111 -0
- package/blocklySkini/blockly/generators/dart/text.js +339 -0
- package/blocklySkini/blockly/generators/dart/variables.js +32 -0
- package/blocklySkini/blockly/generators/dart/variables_dynamic.js +21 -0
- package/blocklySkini/blockly/generators/dart.js +290 -0
- package/blocklySkini/blockly/generators/javascript/colour.js +89 -0
- package/blocklySkini/blockly/generators/javascript/lists.js +388 -0
- package/blocklySkini/blockly/generators/javascript/logic.js +129 -0
- package/blocklySkini/blockly/generators/javascript/loops.js +184 -0
- package/blocklySkini/blockly/generators/javascript/math.js +409 -0
- package/blocklySkini/blockly/generators/javascript/procedures.js +113 -0
- package/blocklySkini/blockly/generators/javascript/text.js +367 -0
- package/blocklySkini/blockly/generators/javascript/variables.js +32 -0
- package/blocklySkini/blockly/generators/javascript/variables_dynamic.js +23 -0
- package/blocklySkini/blockly/generators/javascript.js +317 -0
- package/blocklySkini/blockly/generators/lua/colour.js +76 -0
- package/blocklySkini/blockly/generators/lua/lists.js +368 -0
- package/blocklySkini/blockly/generators/lua/logic.js +127 -0
- package/blocklySkini/blockly/generators/lua/loops.js +173 -0
- package/blocklySkini/blockly/generators/lua/math.js +423 -0
- package/blocklySkini/blockly/generators/lua/procedures.js +113 -0
- package/blocklySkini/blockly/generators/lua/text.js +353 -0
- package/blocklySkini/blockly/generators/lua/variables.js +32 -0
- package/blocklySkini/blockly/generators/lua/variables_dynamic.js +21 -0
- package/blocklySkini/blockly/generators/lua.js +198 -0
- package/blocklySkini/blockly/generators/php/colour.js +91 -0
- package/blocklySkini/blockly/generators/php/lists.js +498 -0
- package/blocklySkini/blockly/generators/php/logic.js +128 -0
- package/blocklySkini/blockly/generators/php/loops.js +170 -0
- package/blocklySkini/blockly/generators/php/math.js +370 -0
- package/blocklySkini/blockly/generators/php/procedures.js +132 -0
- package/blocklySkini/blockly/generators/php/text.js +271 -0
- package/blocklySkini/blockly/generators/php/variables.js +32 -0
- package/blocklySkini/blockly/generators/php/variables_dynamic.js +21 -0
- package/blocklySkini/blockly/generators/php.js +318 -0
- package/blocklySkini/blockly/generators/python/colour.js +72 -0
- package/blocklySkini/blockly/generators/python/lists.js +349 -0
- package/blocklySkini/blockly/generators/python/logic.js +127 -0
- package/blocklySkini/blockly/generators/python/loops.js +214 -0
- package/blocklySkini/blockly/generators/python/math.js +385 -0
- package/blocklySkini/blockly/generators/python/procedures.js +134 -0
- package/blocklySkini/blockly/generators/python/text.js +293 -0
- package/blocklySkini/blockly/generators/python/variables.js +32 -0
- package/blocklySkini/blockly/generators/python/variables_dynamic.js +21 -0
- package/blocklySkini/blockly/generators/python.js +322 -0
- package/blocklySkini/blockly/index.d.ts +22 -0
- package/blocklySkini/blockly/index.js +24 -0
- package/blocklySkini/blockly/javascript.d.ts +15 -0
- package/blocklySkini/blockly/javascript.js +27 -0
- package/blocklySkini/blockly/javascript_compressed.js +115 -0
- package/blocklySkini/blockly/javascript_compressed.js.map +1 -0
- package/blocklySkini/blockly/lua.d.ts +15 -0
- package/blocklySkini/blockly/lua.js +27 -0
- package/blocklySkini/blockly/lua_compressed.js +94 -0
- package/blocklySkini/blockly/lua_compressed.js.map +1 -0
- package/blocklySkini/blockly/media/1x1.gif +0 -0
- package/blocklySkini/blockly/media/click.mp3 +0 -0
- package/blocklySkini/blockly/media/click.ogg +0 -0
- package/blocklySkini/blockly/media/click.wav +0 -0
- package/blocklySkini/blockly/media/delete.mp3 +0 -0
- package/blocklySkini/blockly/media/delete.ogg +0 -0
- package/blocklySkini/blockly/media/delete.wav +0 -0
- package/blocklySkini/blockly/media/disconnect.mp3 +0 -0
- package/blocklySkini/blockly/media/disconnect.ogg +0 -0
- package/blocklySkini/blockly/media/disconnect.wav +0 -0
- package/blocklySkini/blockly/media/dropdown-arrow.svg +1 -0
- package/blocklySkini/blockly/media/handclosed.cur +0 -0
- package/blocklySkini/blockly/media/handdelete.cur +0 -0
- package/blocklySkini/blockly/media/handopen.cur +0 -0
- package/blocklySkini/blockly/media/pilcrow.png +0 -0
- package/blocklySkini/blockly/media/quote0.png +0 -0
- package/blocklySkini/blockly/media/quote1.png +0 -0
- package/blocklySkini/blockly/media/sprites.png +0 -0
- package/blocklySkini/blockly/media/sprites.svg +74 -0
- package/blocklySkini/blockly/msg/ab.d.ts +16 -0
- package/blocklySkini/blockly/msg/ab.js +447 -0
- package/blocklySkini/blockly/msg/ar.d.ts +16 -0
- package/blocklySkini/blockly/msg/ar.js +447 -0
- package/blocklySkini/blockly/msg/az.d.ts +16 -0
- package/blocklySkini/blockly/msg/az.js +447 -0
- package/blocklySkini/blockly/msg/ba.d.ts +16 -0
- package/blocklySkini/blockly/msg/ba.js +447 -0
- package/blocklySkini/blockly/msg/bcc.d.ts +16 -0
- package/blocklySkini/blockly/msg/bcc.js +447 -0
- package/blocklySkini/blockly/msg/be-tarask.d.ts +16 -0
- package/blocklySkini/blockly/msg/be-tarask.js +447 -0
- package/blocklySkini/blockly/msg/be.d.ts +16 -0
- package/blocklySkini/blockly/msg/be.js +447 -0
- package/blocklySkini/blockly/msg/bg.d.ts +16 -0
- package/blocklySkini/blockly/msg/bg.js +447 -0
- package/blocklySkini/blockly/msg/bn.d.ts +16 -0
- package/blocklySkini/blockly/msg/bn.js +447 -0
- package/blocklySkini/blockly/msg/br.d.ts +16 -0
- package/blocklySkini/blockly/msg/br.js +447 -0
- package/blocklySkini/blockly/msg/ca.d.ts +16 -0
- package/blocklySkini/blockly/msg/ca.js +447 -0
- package/blocklySkini/blockly/msg/constants.d.ts +16 -0
- package/blocklySkini/blockly/msg/cs.d.ts +16 -0
- package/blocklySkini/blockly/msg/cs.js +447 -0
- package/blocklySkini/blockly/msg/da.d.ts +16 -0
- package/blocklySkini/blockly/msg/da.js +447 -0
- package/blocklySkini/blockly/msg/de.d.ts +16 -0
- package/blocklySkini/blockly/msg/de.js +447 -0
- package/blocklySkini/blockly/msg/diq.d.ts +16 -0
- package/blocklySkini/blockly/msg/diq.js +447 -0
- package/blocklySkini/blockly/msg/dty.d.ts +16 -0
- package/blocklySkini/blockly/msg/dty.js +447 -0
- package/blocklySkini/blockly/msg/ee.d.ts +16 -0
- package/blocklySkini/blockly/msg/ee.js +447 -0
- package/blocklySkini/blockly/msg/el.d.ts +16 -0
- package/blocklySkini/blockly/msg/el.js +447 -0
- package/blocklySkini/blockly/msg/en-gb.d.ts +16 -0
- package/blocklySkini/blockly/msg/en-gb.js +447 -0
- package/blocklySkini/blockly/msg/en.d.ts +16 -0
- package/blocklySkini/blockly/msg/en.js +447 -0
- package/blocklySkini/blockly/msg/eo.d.ts +16 -0
- package/blocklySkini/blockly/msg/eo.js +447 -0
- package/blocklySkini/blockly/msg/es.d.ts +16 -0
- package/blocklySkini/blockly/msg/es.js +447 -0
- package/blocklySkini/blockly/msg/et.d.ts +16 -0
- package/blocklySkini/blockly/msg/et.js +447 -0
- package/blocklySkini/blockly/msg/eu.d.ts +16 -0
- package/blocklySkini/blockly/msg/eu.js +447 -0
- package/blocklySkini/blockly/msg/fa.d.ts +16 -0
- package/blocklySkini/blockly/msg/fa.js +447 -0
- package/blocklySkini/blockly/msg/fi.d.ts +16 -0
- package/blocklySkini/blockly/msg/fi.js +447 -0
- package/blocklySkini/blockly/msg/fr.d.ts +16 -0
- package/blocklySkini/blockly/msg/fr.js +447 -0
- package/blocklySkini/blockly/msg/gl.d.ts +16 -0
- package/blocklySkini/blockly/msg/gl.js +447 -0
- package/blocklySkini/blockly/msg/gor.d.ts +16 -0
- package/blocklySkini/blockly/msg/gor.js +447 -0
- package/blocklySkini/blockly/msg/ha.d.ts +16 -0
- package/blocklySkini/blockly/msg/ha.js +447 -0
- package/blocklySkini/blockly/msg/he.d.ts +16 -0
- package/blocklySkini/blockly/msg/he.js +447 -0
- package/blocklySkini/blockly/msg/hi.d.ts +16 -0
- package/blocklySkini/blockly/msg/hi.js +447 -0
- package/blocklySkini/blockly/msg/hrx.d.ts +16 -0
- package/blocklySkini/blockly/msg/hrx.js +447 -0
- package/blocklySkini/blockly/msg/hu.d.ts +16 -0
- package/blocklySkini/blockly/msg/hu.js +447 -0
- package/blocklySkini/blockly/msg/hy.d.ts +16 -0
- package/blocklySkini/blockly/msg/hy.js +447 -0
- package/blocklySkini/blockly/msg/ia.d.ts +16 -0
- package/blocklySkini/blockly/msg/ia.js +447 -0
- package/blocklySkini/blockly/msg/id.d.ts +16 -0
- package/blocklySkini/blockly/msg/id.js +447 -0
- package/blocklySkini/blockly/msg/ig.d.ts +16 -0
- package/blocklySkini/blockly/msg/ig.js +447 -0
- package/blocklySkini/blockly/msg/is.d.ts +16 -0
- package/blocklySkini/blockly/msg/is.js +447 -0
- package/blocklySkini/blockly/msg/it.d.ts +16 -0
- package/blocklySkini/blockly/msg/it.js +447 -0
- package/blocklySkini/blockly/msg/ja.d.ts +16 -0
- package/blocklySkini/blockly/msg/ja.js +447 -0
- package/blocklySkini/blockly/msg/kab.d.ts +16 -0
- package/blocklySkini/blockly/msg/kab.js +447 -0
- package/blocklySkini/blockly/msg/kn.d.ts +16 -0
- package/blocklySkini/blockly/msg/kn.js +447 -0
- package/blocklySkini/blockly/msg/ko.d.ts +16 -0
- package/blocklySkini/blockly/msg/ko.js +447 -0
- package/blocklySkini/blockly/msg/lb.d.ts +16 -0
- package/blocklySkini/blockly/msg/lb.js +447 -0
- package/blocklySkini/blockly/msg/lki.d.ts +16 -0
- package/blocklySkini/blockly/msg/lki.js +447 -0
- package/blocklySkini/blockly/msg/lo.d.ts +16 -0
- package/blocklySkini/blockly/msg/lo.js +447 -0
- package/blocklySkini/blockly/msg/lrc.d.ts +16 -0
- package/blocklySkini/blockly/msg/lrc.js +447 -0
- package/blocklySkini/blockly/msg/lt.d.ts +16 -0
- package/blocklySkini/blockly/msg/lt.js +447 -0
- package/blocklySkini/blockly/msg/lv.d.ts +16 -0
- package/blocklySkini/blockly/msg/lv.js +447 -0
- package/blocklySkini/blockly/msg/mk.d.ts +16 -0
- package/blocklySkini/blockly/msg/mk.js +447 -0
- package/blocklySkini/blockly/msg/mnw.d.ts +16 -0
- package/blocklySkini/blockly/msg/mnw.js +447 -0
- package/blocklySkini/blockly/msg/ms.d.ts +16 -0
- package/blocklySkini/blockly/msg/ms.js +447 -0
- package/blocklySkini/blockly/msg/msg.d.ts +444 -0
- package/blocklySkini/blockly/msg/nb.d.ts +16 -0
- package/blocklySkini/blockly/msg/nb.js +447 -0
- package/blocklySkini/blockly/msg/nl.d.ts +16 -0
- package/blocklySkini/blockly/msg/nl.js +447 -0
- package/blocklySkini/blockly/msg/oc.d.ts +16 -0
- package/blocklySkini/blockly/msg/oc.js +447 -0
- package/blocklySkini/blockly/msg/pl.d.ts +16 -0
- package/blocklySkini/blockly/msg/pl.js +447 -0
- package/blocklySkini/blockly/msg/pms.d.ts +16 -0
- package/blocklySkini/blockly/msg/pms.js +447 -0
- package/blocklySkini/blockly/msg/pt-br.d.ts +16 -0
- package/blocklySkini/blockly/msg/pt-br.js +447 -0
- package/blocklySkini/blockly/msg/pt.d.ts +16 -0
- package/blocklySkini/blockly/msg/pt.js +447 -0
- package/blocklySkini/blockly/msg/qqq.d.ts +16 -0
- package/blocklySkini/blockly/msg/ro.d.ts +16 -0
- package/blocklySkini/blockly/msg/ro.js +447 -0
- package/blocklySkini/blockly/msg/ru.d.ts +16 -0
- package/blocklySkini/blockly/msg/ru.js +447 -0
- package/blocklySkini/blockly/msg/sc.d.ts +16 -0
- package/blocklySkini/blockly/msg/sc.js +447 -0
- package/blocklySkini/blockly/msg/sd.d.ts +16 -0
- package/blocklySkini/blockly/msg/sd.js +447 -0
- package/blocklySkini/blockly/msg/shn.d.ts +16 -0
- package/blocklySkini/blockly/msg/shn.js +447 -0
- package/blocklySkini/blockly/msg/sk.d.ts +16 -0
- package/blocklySkini/blockly/msg/sk.js +447 -0
- package/blocklySkini/blockly/msg/skr-arab.d.ts +16 -0
- package/blocklySkini/blockly/msg/skr-arab.js +447 -0
- package/blocklySkini/blockly/msg/sl.d.ts +16 -0
- package/blocklySkini/blockly/msg/sl.js +447 -0
- package/blocklySkini/blockly/msg/sq.d.ts +16 -0
- package/blocklySkini/blockly/msg/sq.js +447 -0
- package/blocklySkini/blockly/msg/sr-latn.d.ts +16 -0
- package/blocklySkini/blockly/msg/sr-latn.js +447 -0
- package/blocklySkini/blockly/msg/sr.d.ts +16 -0
- package/blocklySkini/blockly/msg/sr.js +447 -0
- package/blocklySkini/blockly/msg/sv.d.ts +16 -0
- package/blocklySkini/blockly/msg/sv.js +447 -0
- package/blocklySkini/blockly/msg/synonyms.d.ts +16 -0
- package/blocklySkini/blockly/msg/ta.d.ts +16 -0
- package/blocklySkini/blockly/msg/ta.js +447 -0
- package/blocklySkini/blockly/msg/tcy.d.ts +16 -0
- package/blocklySkini/blockly/msg/tcy.js +447 -0
- package/blocklySkini/blockly/msg/te.d.ts +16 -0
- package/blocklySkini/blockly/msg/te.js +447 -0
- package/blocklySkini/blockly/msg/th.d.ts +16 -0
- package/blocklySkini/blockly/msg/th.js +447 -0
- package/blocklySkini/blockly/msg/tl.d.ts +16 -0
- package/blocklySkini/blockly/msg/tl.js +447 -0
- package/blocklySkini/blockly/msg/tlh.d.ts +16 -0
- package/blocklySkini/blockly/msg/tlh.js +447 -0
- package/blocklySkini/blockly/msg/tr.d.ts +16 -0
- package/blocklySkini/blockly/msg/tr.js +447 -0
- package/blocklySkini/blockly/msg/ug-arab.d.ts +16 -0
- package/blocklySkini/blockly/msg/ug-arab.js +447 -0
- package/blocklySkini/blockly/msg/uk.d.ts +16 -0
- package/blocklySkini/blockly/msg/uk.js +447 -0
- package/blocklySkini/blockly/msg/ur.d.ts +16 -0
- package/blocklySkini/blockly/msg/ur.js +447 -0
- package/blocklySkini/blockly/msg/vi.d.ts +16 -0
- package/blocklySkini/blockly/msg/vi.js +447 -0
- package/blocklySkini/blockly/msg/xmf.d.ts +16 -0
- package/blocklySkini/blockly/msg/xmf.js +447 -0
- package/blocklySkini/blockly/msg/yo.d.ts +16 -0
- package/blocklySkini/blockly/msg/yo.js +447 -0
- package/blocklySkini/blockly/msg/zh-hans.d.ts +16 -0
- package/blocklySkini/blockly/msg/zh-hans.js +447 -0
- package/blocklySkini/blockly/msg/zh-hant.d.ts +16 -0
- package/blocklySkini/blockly/msg/zh-hant.js +447 -0
- package/blocklySkini/blockly/node.js +35 -0
- package/blocklySkini/blockly/package.json +84 -0
- package/blocklySkini/blockly/php.d.ts +15 -0
- package/blocklySkini/blockly/php.js +27 -0
- package/blocklySkini/blockly/php_compressed.js +103 -0
- package/blocklySkini/blockly/php_compressed.js.map +1 -0
- package/blocklySkini/blockly/python.d.ts +15 -0
- package/blocklySkini/blockly/python.js +27 -0
- package/blocklySkini/blockly/python_compressed.js +98 -0
- package/blocklySkini/blockly/python_compressed.js.map +1 -0
- package/blocklySkini/blocklySkini.html +81 -0
- package/blocklySkini/orchestrations/.xml +1 -0
- package/blocklySkini/orchestrations/BluesSkini-1.xml +231 -0
- package/blocklySkini/orchestrations/BluesSkini-2.xml +741 -0
- package/blocklySkini/orchestrations/BluesSkini-3.xml +731 -0
- package/blocklySkini/orchestrations/BluesSkini-4.xml +695 -0
- package/blocklySkini/orchestrations/BluesSkini-5.xml +731 -0
- package/blocklySkini/orchestrations/BluesSkini.xml +704 -0
- package/blocklySkini/orchestrations/FunkBitwig-1.xml +778 -0
- package/blocklySkini/orchestrations/FunkBitwig-2.xml +471 -0
- package/blocklySkini/orchestrations/JouerLeBonInstrument1-1.xml +784 -0
- package/blocklySkini/orchestrations/MajeurMineur-1.xml +638 -0
- package/blocklySkini/orchestrations/Opus5-3 - Copie.xml +1041 -0
- package/blocklySkini/orchestrations/Opus5-3.xml +1128 -0
- package/blocklySkini/orchestrations/Quatuor1-1.xml +357 -0
- package/blocklySkini/orchestrations/TechnoBitwig-1.xml +221 -0
- package/blocklySkini/orchestrations/TestBlockly.xml +497 -0
- package/blocklySkini/orchestrations/TestBlockly1.xml +500 -0
- package/blocklySkini/orchestrations/TestBlockly2.xml +792 -0
- package/blocklySkini/orchestrations/TestBlockly3-1.xml +1182 -0
- package/blocklySkini/orchestrations/TestBlockly3.xml +1251 -0
- package/blocklySkini/orchestrations/TestFunction.xml +143 -0
- package/blocklySkini/orchestrations/TestIf.xml +80 -0
- package/blocklySkini/orchestrations/TestLoop.xml +127 -0
- package/blocklySkini/orchestrations/TestOrchestration2.xml +460 -0
- package/blocklySkini/orchestrations/TestPrint.xml +70 -0
- package/blocklySkini/orchestrations/TestSubMod.xml +81 -0
- package/blocklySkini/orchestrations/Testlogic.xml +113 -0
- package/blocklySkini/orchestrations/TrouveLaPercu-1.xml +813 -0
- package/blocklySkini/orchestrations/TrouveLaPercu-2.xml +813 -0
- package/blocklySkini/orchestrations/bar.xml +496 -0
- package/blocklySkini/orchestrations/bar2.xml +496 -0
- package/blocklySkini/orchestrations/foo.xml +500 -0
- package/blocklySkini/orchestrations/opus5Blockly - Copie.xml +496 -0
- package/blocklySkini/orchestrations/opus5Blockly-3.xml +868 -0
- package/blocklySkini/orchestrations/opus5Blockly.xml +496 -0
- package/blocklySkini/orchestrations/testOrchestration3.xml +483 -0
- package/blocklySkini/orchestrations/testOrchestration4.xml +487 -0
- package/blocklySkini/scripts/hiphop_blocks.js +6104 -0
- package/blocklySkini/scripts/main2.js +801 -0
- package/blocklySkini/styles/index.css +320 -0
- package/blocklySkini/styles/material.css +11552 -0
- package/package.json +3 -3
|
@@ -0,0 +1,682 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2011 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @fileoverview Components for creating connections between blocks.
|
|
9
|
+
* @author fraser@google.com (Neil Fraser)
|
|
10
|
+
*/
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
goog.provide('Blockly.Connection');
|
|
14
|
+
|
|
15
|
+
goog.require('Blockly.Events');
|
|
16
|
+
goog.require('Blockly.Events.BlockMove');
|
|
17
|
+
goog.require('Blockly.utils.deprecation');
|
|
18
|
+
goog.require('Blockly.Xml');
|
|
19
|
+
|
|
20
|
+
goog.requireType('Blockly.IASTNodeLocationWithBlock');
|
|
21
|
+
goog.requireType('Blockly.IConnectionChecker');
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Class for a connection between blocks.
|
|
26
|
+
* @param {!Blockly.Block} source The block establishing this connection.
|
|
27
|
+
* @param {number} type The type of the connection.
|
|
28
|
+
* @constructor
|
|
29
|
+
* @implements {Blockly.IASTNodeLocationWithBlock}
|
|
30
|
+
*/
|
|
31
|
+
Blockly.Connection = function(source, type) {
|
|
32
|
+
/**
|
|
33
|
+
* @type {!Blockly.Block}
|
|
34
|
+
* @protected
|
|
35
|
+
*/
|
|
36
|
+
this.sourceBlock_ = source;
|
|
37
|
+
/** @type {number} */
|
|
38
|
+
this.type = type;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Constants for checking whether two connections are compatible.
|
|
43
|
+
*/
|
|
44
|
+
Blockly.Connection.CAN_CONNECT = 0;
|
|
45
|
+
Blockly.Connection.REASON_SELF_CONNECTION = 1;
|
|
46
|
+
Blockly.Connection.REASON_WRONG_TYPE = 2;
|
|
47
|
+
Blockly.Connection.REASON_TARGET_NULL = 3;
|
|
48
|
+
Blockly.Connection.REASON_CHECKS_FAILED = 4;
|
|
49
|
+
Blockly.Connection.REASON_DIFFERENT_WORKSPACES = 5;
|
|
50
|
+
Blockly.Connection.REASON_SHADOW_PARENT = 6;
|
|
51
|
+
Blockly.Connection.REASON_DRAG_CHECKS_FAILED = 7;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Connection this connection connects to. Null if not connected.
|
|
55
|
+
* @type {Blockly.Connection}
|
|
56
|
+
*/
|
|
57
|
+
Blockly.Connection.prototype.targetConnection = null;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Has this connection been disposed of?
|
|
61
|
+
* @type {boolean}
|
|
62
|
+
* @package
|
|
63
|
+
*/
|
|
64
|
+
Blockly.Connection.prototype.disposed = false;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* List of compatible value types. Null if all types are compatible.
|
|
68
|
+
* @type {Array}
|
|
69
|
+
* @private
|
|
70
|
+
*/
|
|
71
|
+
Blockly.Connection.prototype.check_ = null;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* DOM representation of a shadow block, or null if none.
|
|
75
|
+
* @type {Element}
|
|
76
|
+
* @private
|
|
77
|
+
*/
|
|
78
|
+
Blockly.Connection.prototype.shadowDom_ = null;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Horizontal location of this connection.
|
|
82
|
+
* @type {number}
|
|
83
|
+
* @package
|
|
84
|
+
*/
|
|
85
|
+
Blockly.Connection.prototype.x = 0;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Vertical location of this connection.
|
|
89
|
+
* @type {number}
|
|
90
|
+
* @package
|
|
91
|
+
*/
|
|
92
|
+
Blockly.Connection.prototype.y = 0;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Connect two connections together. This is the connection on the superior
|
|
96
|
+
* block.
|
|
97
|
+
* @param {!Blockly.Connection} childConnection Connection on inferior block.
|
|
98
|
+
* @protected
|
|
99
|
+
*/
|
|
100
|
+
Blockly.Connection.prototype.connect_ = function(childConnection) {
|
|
101
|
+
var parentConnection = this;
|
|
102
|
+
var parentBlock = parentConnection.getSourceBlock();
|
|
103
|
+
var childBlock = childConnection.getSourceBlock();
|
|
104
|
+
// Disconnect any existing parent on the child connection.
|
|
105
|
+
if (childConnection.isConnected()) {
|
|
106
|
+
childConnection.disconnect();
|
|
107
|
+
}
|
|
108
|
+
if (parentConnection.isConnected()) {
|
|
109
|
+
// Other connection is already connected to something.
|
|
110
|
+
// Disconnect it and reattach it or bump it as needed.
|
|
111
|
+
var orphanBlock = parentConnection.targetBlock();
|
|
112
|
+
var shadowDom = parentConnection.getShadowDom();
|
|
113
|
+
// Temporarily set the shadow DOM to null so it does not respawn.
|
|
114
|
+
parentConnection.shadowDom_ = null;
|
|
115
|
+
// Displaced shadow blocks dissolve rather than reattaching or bumping.
|
|
116
|
+
if (orphanBlock.isShadow()) {
|
|
117
|
+
// Save the shadow block so that field values are preserved.
|
|
118
|
+
// This cast assumes that a block can not be both a shadow block and an insertion marker.
|
|
119
|
+
shadowDom = /** @type {!Element} */ (Blockly.Xml.blockToDom(orphanBlock));
|
|
120
|
+
orphanBlock.dispose(false);
|
|
121
|
+
orphanBlock = null;
|
|
122
|
+
} else if (parentConnection.type == Blockly.INPUT_VALUE) {
|
|
123
|
+
// Value connections.
|
|
124
|
+
// If female block is already connected, disconnect and bump the male.
|
|
125
|
+
if (!orphanBlock.outputConnection) {
|
|
126
|
+
throw Error('Orphan block does not have an output connection.');
|
|
127
|
+
}
|
|
128
|
+
// Attempt to reattach the orphan at the end of the newly inserted
|
|
129
|
+
// block. Since this block may be a row, walk down to the end
|
|
130
|
+
// or to the first (and only) shadow block.
|
|
131
|
+
var connection = Blockly.Connection.lastConnectionInRow(
|
|
132
|
+
childBlock, orphanBlock);
|
|
133
|
+
if (connection) {
|
|
134
|
+
orphanBlock.outputConnection.connect(connection);
|
|
135
|
+
orphanBlock = null;
|
|
136
|
+
}
|
|
137
|
+
} else if (parentConnection.type == Blockly.NEXT_STATEMENT) {
|
|
138
|
+
// Statement connections.
|
|
139
|
+
// Statement blocks may be inserted into the middle of a stack.
|
|
140
|
+
// Split the stack.
|
|
141
|
+
if (!orphanBlock.previousConnection) {
|
|
142
|
+
throw Error('Orphan block does not have a previous connection.');
|
|
143
|
+
}
|
|
144
|
+
// Attempt to reattach the orphan at the bottom of the newly inserted
|
|
145
|
+
// block. Since this block may be a stack, walk down to the end.
|
|
146
|
+
var newBlock = childBlock;
|
|
147
|
+
while (newBlock.nextConnection) {
|
|
148
|
+
var nextBlock = newBlock.getNextBlock();
|
|
149
|
+
if (nextBlock && !nextBlock.isShadow()) {
|
|
150
|
+
newBlock = nextBlock;
|
|
151
|
+
} else {
|
|
152
|
+
var checker = orphanBlock.workspace.connectionChecker;
|
|
153
|
+
if (checker.canConnect(
|
|
154
|
+
orphanBlock.previousConnection, newBlock.nextConnection, false)) {
|
|
155
|
+
newBlock.nextConnection.connect(orphanBlock.previousConnection);
|
|
156
|
+
orphanBlock = null;
|
|
157
|
+
}
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (orphanBlock) {
|
|
163
|
+
// Unable to reattach orphan.
|
|
164
|
+
parentConnection.disconnect();
|
|
165
|
+
if (Blockly.Events.recordUndo) {
|
|
166
|
+
// Bump it off to the side after a moment.
|
|
167
|
+
var group = Blockly.Events.getGroup();
|
|
168
|
+
setTimeout(function() {
|
|
169
|
+
// Verify orphan hasn't been deleted or reconnected.
|
|
170
|
+
if (orphanBlock.workspace && !orphanBlock.getParent()) {
|
|
171
|
+
Blockly.Events.setGroup(group);
|
|
172
|
+
if (orphanBlock.outputConnection) {
|
|
173
|
+
orphanBlock.outputConnection.onFailedConnect(parentConnection);
|
|
174
|
+
} else if (orphanBlock.previousConnection) {
|
|
175
|
+
orphanBlock.previousConnection.onFailedConnect(parentConnection);
|
|
176
|
+
}
|
|
177
|
+
Blockly.Events.setGroup(false);
|
|
178
|
+
}
|
|
179
|
+
}, Blockly.BUMP_DELAY);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// Restore the shadow DOM.
|
|
183
|
+
parentConnection.shadowDom_ = shadowDom;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
var event;
|
|
187
|
+
if (Blockly.Events.isEnabled()) {
|
|
188
|
+
event = new Blockly.Events.BlockMove(childBlock);
|
|
189
|
+
}
|
|
190
|
+
// Establish the connections.
|
|
191
|
+
Blockly.Connection.connectReciprocally_(parentConnection, childConnection);
|
|
192
|
+
// Demote the inferior block so that one is a child of the superior one.
|
|
193
|
+
childBlock.setParent(parentBlock);
|
|
194
|
+
if (event) {
|
|
195
|
+
event.recordNew();
|
|
196
|
+
Blockly.Events.fire(event);
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Dispose of this connection and deal with connected blocks.
|
|
202
|
+
* @package
|
|
203
|
+
*/
|
|
204
|
+
Blockly.Connection.prototype.dispose = function() {
|
|
205
|
+
|
|
206
|
+
// isConnected returns true for shadows and non-shadows.
|
|
207
|
+
if (this.isConnected()) {
|
|
208
|
+
// Destroy the attached shadow block & its children (if it exists).
|
|
209
|
+
this.setShadowDom(null);
|
|
210
|
+
|
|
211
|
+
var targetBlock = this.targetBlock();
|
|
212
|
+
if (targetBlock) {
|
|
213
|
+
// Disconnect the attached normal block.
|
|
214
|
+
targetBlock.unplug();
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
this.disposed = true;
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Get the source block for this connection.
|
|
223
|
+
* @return {!Blockly.Block} The source block.
|
|
224
|
+
*/
|
|
225
|
+
Blockly.Connection.prototype.getSourceBlock = function() {
|
|
226
|
+
return this.sourceBlock_;
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Does the connection belong to a superior block (higher in the source stack)?
|
|
231
|
+
* @return {boolean} True if connection faces down or right.
|
|
232
|
+
*/
|
|
233
|
+
Blockly.Connection.prototype.isSuperior = function() {
|
|
234
|
+
return this.type == Blockly.INPUT_VALUE ||
|
|
235
|
+
this.type == Blockly.NEXT_STATEMENT;
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Is the connection connected?
|
|
240
|
+
* @return {boolean} True if connection is connected to another connection.
|
|
241
|
+
*/
|
|
242
|
+
Blockly.Connection.prototype.isConnected = function() {
|
|
243
|
+
return !!this.targetConnection;
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Checks whether the current connection can connect with the target
|
|
248
|
+
* connection.
|
|
249
|
+
* @param {Blockly.Connection} target Connection to check compatibility with.
|
|
250
|
+
* @return {number} Blockly.Connection.CAN_CONNECT if the connection is legal,
|
|
251
|
+
* an error code otherwise.
|
|
252
|
+
* @deprecated July 2020. Will be deleted July 2021. Use the workspace's
|
|
253
|
+
* connectionChecker instead.
|
|
254
|
+
*/
|
|
255
|
+
Blockly.Connection.prototype.canConnectWithReason = function(target) {
|
|
256
|
+
Blockly.utils.deprecation.warn(
|
|
257
|
+
'Connection.prototype.canConnectWithReason',
|
|
258
|
+
'July 2020',
|
|
259
|
+
'July 2021',
|
|
260
|
+
'the workspace\'s connection checker');
|
|
261
|
+
return this.getConnectionChecker().canConnectWithReason(
|
|
262
|
+
this, target, false);
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* Checks whether the current connection and target connection are compatible
|
|
267
|
+
* and throws an exception if they are not.
|
|
268
|
+
* @param {Blockly.Connection} target The connection to check compatibility
|
|
269
|
+
* with.
|
|
270
|
+
* @package
|
|
271
|
+
* @deprecated July 2020. Will be deleted July 2021. Use the workspace's
|
|
272
|
+
* connectionChecker instead.
|
|
273
|
+
*/
|
|
274
|
+
Blockly.Connection.prototype.checkConnection = function(target) {
|
|
275
|
+
Blockly.utils.deprecation.warn(
|
|
276
|
+
'Connection.prototype.checkConnection',
|
|
277
|
+
'July 2020',
|
|
278
|
+
'July 2021',
|
|
279
|
+
'the workspace\'s connection checker');
|
|
280
|
+
var checker = this.getConnectionChecker();
|
|
281
|
+
var reason = checker.canConnectWithReason(this, target, false);
|
|
282
|
+
if (reason != Blockly.Connection.CAN_CONNECT) {
|
|
283
|
+
throw new Error(checker.getErrorMessage(reason, this, target));
|
|
284
|
+
}
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Get the workspace's connection type checker object.
|
|
289
|
+
* @return {!Blockly.IConnectionChecker} The connection type checker for the
|
|
290
|
+
* source block's workspace.
|
|
291
|
+
* @package
|
|
292
|
+
*/
|
|
293
|
+
Blockly.Connection.prototype.getConnectionChecker = function() {
|
|
294
|
+
return this.sourceBlock_.workspace.connectionChecker;
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Check if the two connections can be dragged to connect to each other.
|
|
299
|
+
* @param {!Blockly.Connection} candidate A nearby connection to check.
|
|
300
|
+
* @return {boolean} True if the connection is allowed, false otherwise.
|
|
301
|
+
* @deprecated July 2020. Will be deleted July 2021. Use the workspace's
|
|
302
|
+
* connectionChecker instead.
|
|
303
|
+
*/
|
|
304
|
+
Blockly.Connection.prototype.isConnectionAllowed = function(candidate) {
|
|
305
|
+
Blockly.utils.deprecation.warn(
|
|
306
|
+
'Connection.prototype.isConnectionAllowed',
|
|
307
|
+
'July 2020',
|
|
308
|
+
'July 2021',
|
|
309
|
+
'the workspace\'s connection checker');
|
|
310
|
+
return this.getConnectionChecker().canConnect(this, candidate, true);
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* Behavior after a connection attempt fails.
|
|
315
|
+
* @param {!Blockly.Connection} _otherConnection Connection that this connection
|
|
316
|
+
* failed to connect to.
|
|
317
|
+
* @package
|
|
318
|
+
*/
|
|
319
|
+
Blockly.Connection.prototype.onFailedConnect = function(_otherConnection) {
|
|
320
|
+
// NOP
|
|
321
|
+
};
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* Connect this connection to another connection.
|
|
325
|
+
* @param {!Blockly.Connection} otherConnection Connection to connect to.
|
|
326
|
+
*/
|
|
327
|
+
Blockly.Connection.prototype.connect = function(otherConnection) {
|
|
328
|
+
if (this.targetConnection == otherConnection) {
|
|
329
|
+
// Already connected together. NOP.
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
var checker = this.getConnectionChecker();
|
|
334
|
+
if (checker.canConnect(this, otherConnection, false)) {
|
|
335
|
+
var eventGroup = Blockly.Events.getGroup();
|
|
336
|
+
if (!eventGroup) {
|
|
337
|
+
Blockly.Events.setGroup(true);
|
|
338
|
+
}
|
|
339
|
+
// Determine which block is superior (higher in the source stack).
|
|
340
|
+
if (this.isSuperior()) {
|
|
341
|
+
// Superior block.
|
|
342
|
+
this.connect_(otherConnection);
|
|
343
|
+
} else {
|
|
344
|
+
// Inferior block.
|
|
345
|
+
otherConnection.connect_(this);
|
|
346
|
+
}
|
|
347
|
+
if (!eventGroup) {
|
|
348
|
+
Blockly.Events.setGroup(false);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
};
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* Update two connections to target each other.
|
|
355
|
+
* @param {Blockly.Connection} first The first connection to update.
|
|
356
|
+
* @param {Blockly.Connection} second The second connection to update.
|
|
357
|
+
* @private
|
|
358
|
+
*/
|
|
359
|
+
Blockly.Connection.connectReciprocally_ = function(first, second) {
|
|
360
|
+
if (!first || !second) {
|
|
361
|
+
throw Error('Cannot connect null connections.');
|
|
362
|
+
}
|
|
363
|
+
first.targetConnection = second;
|
|
364
|
+
second.targetConnection = first;
|
|
365
|
+
};
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* Does the given block have one and only one connection point that will accept
|
|
369
|
+
* an orphaned block?
|
|
370
|
+
* @param {!Blockly.Block} block The superior block.
|
|
371
|
+
* @param {!Blockly.Block} orphanBlock The inferior block.
|
|
372
|
+
* @return {Blockly.Connection} The suitable connection point on 'block',
|
|
373
|
+
* or null.
|
|
374
|
+
* @private
|
|
375
|
+
*/
|
|
376
|
+
Blockly.Connection.singleConnection_ = function(block, orphanBlock) {
|
|
377
|
+
var connection = null;
|
|
378
|
+
var output = orphanBlock.outputConnection;
|
|
379
|
+
for (var i = 0; i < block.inputList.length; i++) {
|
|
380
|
+
var thisConnection = block.inputList[i].connection;
|
|
381
|
+
var typeChecker = output.getConnectionChecker();
|
|
382
|
+
if (thisConnection && thisConnection.type == Blockly.INPUT_VALUE &&
|
|
383
|
+
typeChecker.canConnect(output, thisConnection, false)) {
|
|
384
|
+
if (connection) {
|
|
385
|
+
return null; // More than one connection.
|
|
386
|
+
}
|
|
387
|
+
connection = thisConnection;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
return connection;
|
|
391
|
+
};
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* Walks down a row a blocks, at each stage checking if there are any
|
|
395
|
+
* connections that will accept the orphaned block. If at any point there
|
|
396
|
+
* are zero or multiple eligible connections, returns null. Otherwise
|
|
397
|
+
* returns the only input on the last block in the chain.
|
|
398
|
+
* Terminates early for shadow blocks.
|
|
399
|
+
* @param {!Blockly.Block} startBlock The block on which to start the search.
|
|
400
|
+
* @param {!Blockly.Block} orphanBlock The block that is looking for a home.
|
|
401
|
+
* @return {Blockly.Connection} The suitable connection point on the chain
|
|
402
|
+
* of blocks, or null.
|
|
403
|
+
* @package
|
|
404
|
+
*/
|
|
405
|
+
Blockly.Connection.lastConnectionInRow = function(startBlock, orphanBlock) {
|
|
406
|
+
var newBlock = startBlock;
|
|
407
|
+
var connection;
|
|
408
|
+
while ((connection = Blockly.Connection.singleConnection_(
|
|
409
|
+
/** @type {!Blockly.Block} */ (newBlock), orphanBlock))) {
|
|
410
|
+
newBlock = connection.targetBlock();
|
|
411
|
+
if (!newBlock || newBlock.isShadow()) {
|
|
412
|
+
return connection;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
return null;
|
|
416
|
+
};
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* Disconnect this connection.
|
|
420
|
+
*/
|
|
421
|
+
Blockly.Connection.prototype.disconnect = function() {
|
|
422
|
+
var otherConnection = this.targetConnection;
|
|
423
|
+
if (!otherConnection) {
|
|
424
|
+
throw Error('Source connection not connected.');
|
|
425
|
+
}
|
|
426
|
+
if (otherConnection.targetConnection != this) {
|
|
427
|
+
throw Error('Target connection not connected to source connection.');
|
|
428
|
+
}
|
|
429
|
+
var parentBlock, childBlock, parentConnection;
|
|
430
|
+
if (this.isSuperior()) {
|
|
431
|
+
// Superior block.
|
|
432
|
+
parentBlock = this.sourceBlock_;
|
|
433
|
+
childBlock = otherConnection.getSourceBlock();
|
|
434
|
+
parentConnection = this;
|
|
435
|
+
} else {
|
|
436
|
+
// Inferior block.
|
|
437
|
+
parentBlock = otherConnection.getSourceBlock();
|
|
438
|
+
childBlock = this.sourceBlock_;
|
|
439
|
+
parentConnection = otherConnection;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
var eventGroup = Blockly.Events.getGroup();
|
|
443
|
+
if (!eventGroup) {
|
|
444
|
+
Blockly.Events.setGroup(true);
|
|
445
|
+
}
|
|
446
|
+
this.disconnectInternal_(parentBlock, childBlock);
|
|
447
|
+
if (!childBlock.isShadow()) {
|
|
448
|
+
// If we were disconnecting a shadow, no need to spawn a new one.
|
|
449
|
+
parentConnection.respawnShadow_();
|
|
450
|
+
}
|
|
451
|
+
if (!eventGroup) {
|
|
452
|
+
Blockly.Events.setGroup(false);
|
|
453
|
+
}
|
|
454
|
+
};
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* Disconnect two blocks that are connected by this connection.
|
|
458
|
+
* @param {!Blockly.Block} parentBlock The superior block.
|
|
459
|
+
* @param {!Blockly.Block} childBlock The inferior block.
|
|
460
|
+
* @protected
|
|
461
|
+
*/
|
|
462
|
+
Blockly.Connection.prototype.disconnectInternal_ = function(parentBlock,
|
|
463
|
+
childBlock) {
|
|
464
|
+
var event;
|
|
465
|
+
if (Blockly.Events.isEnabled()) {
|
|
466
|
+
event = new Blockly.Events.BlockMove(childBlock);
|
|
467
|
+
}
|
|
468
|
+
var otherConnection = this.targetConnection;
|
|
469
|
+
otherConnection.targetConnection = null;
|
|
470
|
+
this.targetConnection = null;
|
|
471
|
+
childBlock.setParent(null);
|
|
472
|
+
if (event) {
|
|
473
|
+
event.recordNew();
|
|
474
|
+
Blockly.Events.fire(event);
|
|
475
|
+
}
|
|
476
|
+
};
|
|
477
|
+
|
|
478
|
+
/**
|
|
479
|
+
* Respawn the shadow block if there was one connected to the this connection.
|
|
480
|
+
* @protected
|
|
481
|
+
*/
|
|
482
|
+
Blockly.Connection.prototype.respawnShadow_ = function() {
|
|
483
|
+
var parentBlock = this.getSourceBlock();
|
|
484
|
+
var shadow = this.getShadowDom();
|
|
485
|
+
if (parentBlock.workspace && shadow) {
|
|
486
|
+
var blockShadow =
|
|
487
|
+
Blockly.Xml.domToBlock(shadow, parentBlock.workspace);
|
|
488
|
+
if (blockShadow.outputConnection) {
|
|
489
|
+
this.connect(blockShadow.outputConnection);
|
|
490
|
+
} else if (blockShadow.previousConnection) {
|
|
491
|
+
this.connect(blockShadow.previousConnection);
|
|
492
|
+
} else {
|
|
493
|
+
throw Error('Child block does not have output or previous statement.');
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
};
|
|
497
|
+
|
|
498
|
+
/**
|
|
499
|
+
* Returns the block that this connection connects to.
|
|
500
|
+
* @return {Blockly.Block} The connected block or null if none is connected.
|
|
501
|
+
*/
|
|
502
|
+
Blockly.Connection.prototype.targetBlock = function() {
|
|
503
|
+
if (this.isConnected()) {
|
|
504
|
+
return this.targetConnection.getSourceBlock();
|
|
505
|
+
}
|
|
506
|
+
return null;
|
|
507
|
+
};
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* Is this connection compatible with another connection with respect to the
|
|
511
|
+
* value type system. E.g. square_root("Hello") is not compatible.
|
|
512
|
+
* @param {!Blockly.Connection} otherConnection Connection to compare against.
|
|
513
|
+
* @return {boolean} True if the connections share a type.
|
|
514
|
+
* @deprecated July 2020. Will be deleted July 2021. Use the workspace's
|
|
515
|
+
* connectionChecker instead.
|
|
516
|
+
*/
|
|
517
|
+
Blockly.Connection.prototype.checkType = function(otherConnection) {
|
|
518
|
+
Blockly.utils.deprecation.warn(
|
|
519
|
+
'Connection.prototype.checkType',
|
|
520
|
+
'October 2019',
|
|
521
|
+
'January 2021',
|
|
522
|
+
'the workspace\'s connection checker');
|
|
523
|
+
return this.getConnectionChecker().canConnect(this, otherConnection,
|
|
524
|
+
false);
|
|
525
|
+
};
|
|
526
|
+
|
|
527
|
+
/**
|
|
528
|
+
* Is this connection compatible with another connection with respect to the
|
|
529
|
+
* value type system. E.g. square_root("Hello") is not compatible.
|
|
530
|
+
* @param {!Blockly.Connection} otherConnection Connection to compare against.
|
|
531
|
+
* @return {boolean} True if the connections share a type.
|
|
532
|
+
* @private
|
|
533
|
+
* @deprecated October 2019. Will be deleted January 2021. Use the workspace's
|
|
534
|
+
* connectionChecker instead.
|
|
535
|
+
* @suppress {unusedPrivateMembers}
|
|
536
|
+
*/
|
|
537
|
+
Blockly.Connection.prototype.checkType_ = function(otherConnection) {
|
|
538
|
+
Blockly.utils.deprecation.warn(
|
|
539
|
+
'Connection.prototype.checkType_',
|
|
540
|
+
'October 2019',
|
|
541
|
+
'January 2021',
|
|
542
|
+
'the workspace\'s connection checker');
|
|
543
|
+
return this.checkType(otherConnection);
|
|
544
|
+
};
|
|
545
|
+
|
|
546
|
+
/**
|
|
547
|
+
* Function to be called when this connection's compatible types have changed.
|
|
548
|
+
* @protected
|
|
549
|
+
*/
|
|
550
|
+
Blockly.Connection.prototype.onCheckChanged_ = function() {
|
|
551
|
+
// The new value type may not be compatible with the existing connection.
|
|
552
|
+
if (this.isConnected() && (!this.targetConnection ||
|
|
553
|
+
!this.getConnectionChecker().canConnect(
|
|
554
|
+
this, this.targetConnection, false))) {
|
|
555
|
+
var child = this.isSuperior() ? this.targetBlock() : this.sourceBlock_;
|
|
556
|
+
child.unplug();
|
|
557
|
+
}
|
|
558
|
+
};
|
|
559
|
+
|
|
560
|
+
/**
|
|
561
|
+
* Change a connection's compatibility.
|
|
562
|
+
* @param {?(string|!Array.<string>)} check Compatible value type or list of
|
|
563
|
+
* value types. Null if all types are compatible.
|
|
564
|
+
* @return {!Blockly.Connection} The connection being modified
|
|
565
|
+
* (to allow chaining).
|
|
566
|
+
*/
|
|
567
|
+
Blockly.Connection.prototype.setCheck = function(check) {
|
|
568
|
+
if (check) {
|
|
569
|
+
// Ensure that check is in an array.
|
|
570
|
+
if (!Array.isArray(check)) {
|
|
571
|
+
check = [check];
|
|
572
|
+
}
|
|
573
|
+
this.check_ = check;
|
|
574
|
+
this.onCheckChanged_();
|
|
575
|
+
} else {
|
|
576
|
+
this.check_ = null;
|
|
577
|
+
}
|
|
578
|
+
return this;
|
|
579
|
+
};
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* Get a connection's compatibility.
|
|
583
|
+
* @return {Array} List of compatible value types.
|
|
584
|
+
* Null if all types are compatible.
|
|
585
|
+
* @public
|
|
586
|
+
*/
|
|
587
|
+
Blockly.Connection.prototype.getCheck = function() {
|
|
588
|
+
return this.check_;
|
|
589
|
+
};
|
|
590
|
+
|
|
591
|
+
/**
|
|
592
|
+
* Changes the connection's shadow block.
|
|
593
|
+
* @param {Element} shadow DOM representation of a block or null.
|
|
594
|
+
*/
|
|
595
|
+
Blockly.Connection.prototype.setShadowDom = function(shadow) {
|
|
596
|
+
this.shadowDom_ = shadow;
|
|
597
|
+
var target = this.targetBlock();
|
|
598
|
+
if (!target) {
|
|
599
|
+
this.respawnShadow_();
|
|
600
|
+
} else if (target.isShadow()) {
|
|
601
|
+
// The disconnect from dispose will automatically generate the new shadow.
|
|
602
|
+
target.dispose(false);
|
|
603
|
+
this.respawnShadow_();
|
|
604
|
+
}
|
|
605
|
+
};
|
|
606
|
+
|
|
607
|
+
/**
|
|
608
|
+
* Returns the xml representation of the connection's shadow block.
|
|
609
|
+
* @return {Element} Shadow DOM representation of a block or null.
|
|
610
|
+
*/
|
|
611
|
+
Blockly.Connection.prototype.getShadowDom = function() {
|
|
612
|
+
return this.shadowDom_;
|
|
613
|
+
};
|
|
614
|
+
|
|
615
|
+
/**
|
|
616
|
+
* Find all nearby compatible connections to this connection.
|
|
617
|
+
* Type checking does not apply, since this function is used for bumping.
|
|
618
|
+
*
|
|
619
|
+
* Headless configurations (the default) do not have neighboring connection,
|
|
620
|
+
* and always return an empty list (the default).
|
|
621
|
+
* {@link Blockly.RenderedConnection} overrides this behavior with a list
|
|
622
|
+
* computed from the rendered positioning.
|
|
623
|
+
* @param {number} _maxLimit The maximum radius to another connection.
|
|
624
|
+
* @return {!Array.<!Blockly.Connection>} List of connections.
|
|
625
|
+
* @package
|
|
626
|
+
*/
|
|
627
|
+
Blockly.Connection.prototype.neighbours = function(_maxLimit) {
|
|
628
|
+
return [];
|
|
629
|
+
};
|
|
630
|
+
|
|
631
|
+
/**
|
|
632
|
+
* Get the parent input of a connection.
|
|
633
|
+
* @return {Blockly.Input} The input that the connection belongs to or null if
|
|
634
|
+
* no parent exists.
|
|
635
|
+
* @package
|
|
636
|
+
*/
|
|
637
|
+
Blockly.Connection.prototype.getParentInput = function() {
|
|
638
|
+
var parentInput = null;
|
|
639
|
+
var block = this.sourceBlock_;
|
|
640
|
+
var inputs = block.inputList;
|
|
641
|
+
for (var idx = 0; idx < block.inputList.length; idx++) {
|
|
642
|
+
if (inputs[idx].connection === this) {
|
|
643
|
+
parentInput = inputs[idx];
|
|
644
|
+
break;
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
return parentInput;
|
|
648
|
+
};
|
|
649
|
+
|
|
650
|
+
/**
|
|
651
|
+
* This method returns a string describing this Connection in developer terms
|
|
652
|
+
* (English only). Intended to on be used in console logs and errors.
|
|
653
|
+
* @return {string} The description.
|
|
654
|
+
*/
|
|
655
|
+
Blockly.Connection.prototype.toString = function() {
|
|
656
|
+
var msg;
|
|
657
|
+
var block = this.sourceBlock_;
|
|
658
|
+
if (!block) {
|
|
659
|
+
return 'Orphan Connection';
|
|
660
|
+
} else if (block.outputConnection == this) {
|
|
661
|
+
msg = 'Output Connection of ';
|
|
662
|
+
} else if (block.previousConnection == this) {
|
|
663
|
+
msg = 'Previous Connection of ';
|
|
664
|
+
} else if (block.nextConnection == this) {
|
|
665
|
+
msg = 'Next Connection of ';
|
|
666
|
+
} else {
|
|
667
|
+
var parentInput = null;
|
|
668
|
+
for (var i = 0, input; (input = block.inputList[i]); i++) {
|
|
669
|
+
if (input.connection == this) {
|
|
670
|
+
parentInput = input;
|
|
671
|
+
break;
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
if (parentInput) {
|
|
675
|
+
msg = 'Input "' + parentInput.name + '" connection on ';
|
|
676
|
+
} else {
|
|
677
|
+
console.warn('Connection not actually connected to sourceBlock_');
|
|
678
|
+
return 'Orphan Connection';
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
return msg + block.toDevString();
|
|
682
|
+
};
|