From d5a6d7d3db2d929ad174fb59e3bddfc52eea3c3c Mon Sep 17 00:00:00 2001 From: Rachel Fenichel Date: Fri, 30 Jul 2021 14:13:39 -0700 Subject: [PATCH] Move draggingConnections to common --- core/block_dragger.js | 3 ++- core/block_svg.js | 8 +++++--- core/blockly.js | 8 -------- core/common.js | 31 ++++++++++++++++++++++++++++++- core/connection_checker.js | 5 +++-- tests/deps.js | 6 +++--- 6 files changed, 43 insertions(+), 18 deletions(-) diff --git a/core/block_dragger.js b/core/block_dragger.js index b7c11e8a3..7345c0327 100644 --- a/core/block_dragger.js +++ b/core/block_dragger.js @@ -24,6 +24,7 @@ const InsertionMarkerManager = goog.require('Blockly.InsertionMarkerManager'); /* eslint-disable-next-line no-unused-vars */ const WorkspaceSvg = goog.requireType('Blockly.WorkspaceSvg'); const blockAnimation = goog.require('Blockly.blockAnimations'); +const common = goog.require('Blockly.common'); const dom = goog.require('Blockly.utils.dom'); const events = goog.require('Blockly.Events'); const registry = goog.require('Blockly.registry'); @@ -332,7 +333,7 @@ BlockDragger.prototype.maybeDeleteBlock_ = function() { // Fire a move event, so we know where to go back to for an undo. this.fireMoveEvent_(); this.draggingBlock_.dispose(false, true); - Blockly.draggingConnections = []; + common.setDraggingConnections([]); return true; } return false; diff --git a/core/block_svg.js b/core/block_svg.js index 57d20c1ba..cbb69063e 100644 --- a/core/block_svg.js +++ b/core/block_svg.js @@ -17,6 +17,7 @@ goog.require('Blockly.Block'); goog.require('Blockly.blockAnimations'); goog.require('Blockly.blockRendering.IPathObject'); goog.require('Blockly.browserEvents'); +goog.require('Blockly.common'); goog.require('Blockly.connectionTypes'); goog.require('Blockly.constants'); goog.require('Blockly.ContextMenu'); @@ -824,12 +825,13 @@ Blockly.BlockSvg.prototype.setDragging = function(adding) { var group = this.getSvgRoot(); group.translate_ = ''; group.skew_ = ''; - Blockly.draggingConnections = - Blockly.draggingConnections.concat(this.getConnections_(true)); + var newList = + Blockly.common.getDraggingConnections().concat(this.getConnections_(true)); + Blockly.common.setDraggingConnections(newList); Blockly.utils.dom.addClass( /** @type {!Element} */ (this.svgGroup_), 'blocklyDragging'); } else { - Blockly.draggingConnections = []; + Blockly.common.setDraggingConnections([]); Blockly.utils.dom.removeClass( /** @type {!Element} */ (this.svgGroup_), 'blocklyDragging'); } diff --git a/core/blockly.js b/core/blockly.js index f8dc17d3d..1f8cfa55a 100644 --- a/core/blockly.js +++ b/core/blockly.js @@ -57,7 +57,6 @@ goog.require('Blockly.WorkspaceSvg'); goog.require('Blockly.Xml'); goog.requireType('Blockly.BlockSvg'); -goog.requireType('Blockly.Connection'); goog.requireType('Blockly.ICopyable'); goog.requireType('Blockly.Workspace'); @@ -94,13 +93,6 @@ Object.defineProperty(Blockly, 'mainWorkspace', { */ Blockly.selected = null; -/** - * All of the connections on blocks that are currently being dragged. - * @type {!Array} - * @package - */ -Blockly.draggingConnections = []; - /** * Returns the dimensions of the specified SVG image. * @param {!SVGElement} svg SVG image. diff --git a/core/common.js b/core/common.js index 711cf3571..762ac8f3f 100644 --- a/core/common.js +++ b/core/common.js @@ -14,6 +14,8 @@ goog.module('Blockly.common'); goog.module.declareLegacyNamespace(); +/* eslint-disable-next-line no-unused-vars */ +const Connection = goog.requireType('Blockly.Connection'); /* eslint-disable-next-line no-unused-vars */ const Workspace = goog.requireType('Blockly.Workspace'); @@ -54,7 +56,7 @@ let parentContainer; /** * Get the container element in which to render the WidgetDiv, DropDownDiv and\ * Tooltip. - * @return {?Element} + * @return {?Element} The parent container. */ const getParentContainer = function() { return parentContainer; @@ -72,3 +74,30 @@ const setParentContainer = function(newParent) { parentContainer = newParent; }; exports.setParentContainer = setParentContainer; + +/** + * All of the connections on blocks that are currently being dragged. + * @type {!Array.} + */ +let draggingConnections = []; + +/** + * Get the list of dragging connections. + * @returns {!Array.} The list of connections on blocks that are + * currently being dragged. + */ +const getDraggingConnections = function() { + return draggingConnections; +}; +/** @package **/ +exports.getDraggingConnections = getDraggingConnections; + +/** + * Set the list of dragging connections. + * @param {!Array.} connectionList The new list of connections on + * blocks that are currently being dragged. + */ +const setDraggingConnections = function(connectionList) { + draggingConnections = connectionList; +}; +exports.setDraggingConnections = setDraggingConnections; diff --git a/core/connection_checker.js b/core/connection_checker.js index 20a582aac..c6fb1fd9b 100644 --- a/core/connection_checker.js +++ b/core/connection_checker.js @@ -19,6 +19,7 @@ const Connection = goog.require('Blockly.Connection'); const IConnectionChecker = goog.require('Blockly.IConnectionChecker'); /* eslint-disable-next-line no-unused-vars */ const RenderedConnection = goog.requireType('Blockly.RenderedConnection'); +const common = goog.require('Blockly.common'); const connectionTypes = goog.require('Blockly.connectionTypes'); const internalConstants = goog.require('Blockly.internalConstants'); const registry = goog.require('Blockly.registry'); @@ -239,7 +240,7 @@ ConnectionChecker.prototype.doDragChecks = function(a, b, distance) { } // Don't let blocks try to connect to themselves or ones they nest. - if (Blockly.draggingConnections.indexOf(b) != -1) { + if (common.getDraggingConnections().indexOf(b) != -1) { return false; } @@ -263,7 +264,7 @@ ConnectionChecker.prototype.canConnectToPrevious_ = function(a, b) { } // Don't let blocks try to connect to themselves or ones they nest. - if (Blockly.draggingConnections.indexOf(b) != -1) { + if (common.getDraggingConnections().indexOf(b) != -1) { return false; } diff --git a/tests/deps.js b/tests/deps.js index 784fc398a..2438a641b 100644 --- a/tests/deps.js +++ b/tests/deps.js @@ -10,8 +10,8 @@ goog.addDependency('../../blocks/variables_dynamic.js', ['Blockly.Constants.Vari goog.addDependency('../../core/block.js', ['Blockly.Block'], ['Blockly.ASTNode', 'Blockly.Blocks', 'Blockly.Connection', 'Blockly.Events', 'Blockly.Events.BlockChange', 'Blockly.Events.BlockCreate', 'Blockly.Events.BlockDelete', 'Blockly.Events.BlockMove', 'Blockly.Extensions', 'Blockly.IASTNodeLocation', 'Blockly.IDeletable', 'Blockly.Input', 'Blockly.Tooltip', 'Blockly.Workspace', 'Blockly.connectionTypes', 'Blockly.constants', 'Blockly.fieldRegistry', 'Blockly.inputTypes', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.Size', 'Blockly.utils.object'], {'lang': 'es5'}); goog.addDependency('../../core/block_animations.js', ['Blockly.blockAnimations'], ['Blockly.utils.Svg', 'Blockly.utils.dom'], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../core/block_drag_surface.js', ['Blockly.BlockDragSurfaceSvg'], ['Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.Svg', 'Blockly.utils.dom'], {'lang': 'es6', 'module': 'goog'}); -goog.addDependency('../../core/block_dragger.js', ['Blockly.BlockDragger'], ['Blockly.Events', 'Blockly.Events.BlockDrag', 'Blockly.Events.BlockMove', 'Blockly.IBlockDragger', 'Blockly.InsertionMarkerManager', 'Blockly.blockAnimations', 'Blockly.registry', 'Blockly.utils.Coordinate', 'Blockly.utils.dom'], {'lang': 'es6', 'module': 'goog'}); -goog.addDependency('../../core/block_svg.js', ['Blockly.BlockSvg'], ['Blockly.ASTNode', 'Blockly.Block', 'Blockly.ContextMenu', 'Blockly.ContextMenuRegistry', 'Blockly.Events', 'Blockly.Events.BlockMove', 'Blockly.Events.Selected', 'Blockly.IASTNodeLocationSvg', 'Blockly.IBoundedElement', 'Blockly.ICopyable', 'Blockly.IDraggable', 'Blockly.Msg', 'Blockly.RenderedConnection', 'Blockly.TabNavigateCursor', 'Blockly.Tooltip', 'Blockly.Touch', 'Blockly.Xml', 'Blockly.blockAnimations', 'Blockly.blockRendering.IPathObject', 'Blockly.browserEvents', 'Blockly.connectionTypes', 'Blockly.constants', 'Blockly.internalConstants', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.Rect', 'Blockly.utils.Svg', 'Blockly.utils.deprecation', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.userAgent']); +goog.addDependency('../../core/block_dragger.js', ['Blockly.BlockDragger'], ['Blockly.Events', 'Blockly.Events.BlockDrag', 'Blockly.Events.BlockMove', 'Blockly.IBlockDragger', 'Blockly.InsertionMarkerManager', 'Blockly.blockAnimations', 'Blockly.common', 'Blockly.registry', 'Blockly.utils.Coordinate', 'Blockly.utils.dom'], {'lang': 'es6', 'module': 'goog'}); +goog.addDependency('../../core/block_svg.js', ['Blockly.BlockSvg'], ['Blockly.ASTNode', 'Blockly.Block', 'Blockly.ContextMenu', 'Blockly.ContextMenuRegistry', 'Blockly.Events', 'Blockly.Events.BlockMove', 'Blockly.Events.Selected', 'Blockly.IASTNodeLocationSvg', 'Blockly.IBoundedElement', 'Blockly.ICopyable', 'Blockly.IDraggable', 'Blockly.Msg', 'Blockly.RenderedConnection', 'Blockly.TabNavigateCursor', 'Blockly.Tooltip', 'Blockly.Touch', 'Blockly.Xml', 'Blockly.blockAnimations', 'Blockly.blockRendering.IPathObject', 'Blockly.browserEvents', 'Blockly.common', 'Blockly.connectionTypes', 'Blockly.constants', 'Blockly.internalConstants', 'Blockly.utils', 'Blockly.utils.Coordinate', 'Blockly.utils.Rect', 'Blockly.utils.Svg', 'Blockly.utils.deprecation', 'Blockly.utils.dom', 'Blockly.utils.object', 'Blockly.utils.userAgent']); goog.addDependency('../../core/blockly.js', ['Blockly'], ['Blockly.ComponentManager', 'Blockly.DropDownDiv', 'Blockly.Events', 'Blockly.Events.BlockCreate', 'Blockly.Events.FinishedLoading', 'Blockly.Events.Ui', 'Blockly.Events.UiBase', 'Blockly.Events.VarCreate', 'Blockly.Procedures', 'Blockly.ShortcutRegistry', 'Blockly.Tooltip', 'Blockly.Touch', 'Blockly.Variables', 'Blockly.WidgetDiv', 'Blockly.WorkspaceSvg', 'Blockly.Xml', 'Blockly.browserEvents', 'Blockly.clipboard', 'Blockly.common', 'Blockly.connectionTypes', 'Blockly.constants', 'Blockly.inject', 'Blockly.inputTypes', 'Blockly.internalConstants', 'Blockly.utils', 'Blockly.utils.Size', 'Blockly.utils.colour', 'Blockly.utils.deprecation', 'Blockly.utils.toolbox']); goog.addDependency('../../core/blocks.js', ['Blockly.Blocks'], [], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../core/browser_events.js', ['Blockly.browserEvents'], ['Blockly.Touch', 'Blockly.utils.global'], {'lang': 'es6', 'module': 'goog'}); @@ -22,7 +22,7 @@ goog.addDependency('../../core/comment.js', ['Blockly.Comment'], ['Blockly.Bubbl goog.addDependency('../../core/common.js', ['Blockly.common'], [], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../core/component_manager.js', ['Blockly.ComponentManager'], [], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../core/connection.js', ['Blockly.Connection'], ['Blockly.Events', 'Blockly.Events.BlockMove', 'Blockly.IASTNodeLocationWithBlock', 'Blockly.Xml', 'Blockly.connectionTypes', 'Blockly.constants', 'Blockly.utils.deprecation'], {'lang': 'es6', 'module': 'goog'}); -goog.addDependency('../../core/connection_checker.js', ['Blockly.ConnectionChecker'], ['Blockly.Connection', 'Blockly.IConnectionChecker', 'Blockly.connectionTypes', 'Blockly.internalConstants', 'Blockly.registry'], {'lang': 'es6', 'module': 'goog'}); +goog.addDependency('../../core/connection_checker.js', ['Blockly.ConnectionChecker'], ['Blockly.Connection', 'Blockly.IConnectionChecker', 'Blockly.common', 'Blockly.connectionTypes', 'Blockly.internalConstants', 'Blockly.registry'], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../core/connection_db.js', ['Blockly.ConnectionDB'], ['Blockly.RenderedConnection', 'Blockly.connectionTypes', 'Blockly.constants'], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../core/connection_types.js', ['Blockly.connectionTypes'], [], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../core/constants.js', ['Blockly.constants'], [], {'lang': 'es6', 'module': 'goog'});