{"version":3,"sources":["jsdelivr-header.js","/npm/cytoscape-compound-resize@1.0.10/node_modules/browserify/node_modules/browser-pack/_prelude.js","/npm/cytoscape-compound-resize@1.0.10/src/compoundResizeUtilities.js","/npm/cytoscape-compound-resize@1.0.10/src/elementUtilities.js","/npm/cytoscape-compound-resize@1.0.10/src/index.js","/npm/cytoscape-compound-resize@1.0.10/src/scratchUtilities.js"],"names":[],"mappings":"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","file":"/npm/cytoscape-compound-resize@1.0.10/cytoscape-compound-resize.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/cytoscape-compound-resize@1.0.10/cytoscape-compound-resize.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})","var compoundResizeUtilities = function (cy, mode) {\n  var scratchUtilities = require(\"./scratchUtilities\")();\n\n  var self = {\n    setMode: function(newmode) {\n      if(newmode == mode) {\n        return;\n      }\n      \n      var compounds = cy.nodes('$node > node');\n      \n      // If the new mode is 'free' set the paddings to the minimums before setting the mode if minimum paddings exists\n      if (newmode === 'free') {\n        compounds.each(function (i, ele) {\n          var minPaddings = self.getMinimumPaddings(ele);\n          \n          if (!minPaddings) {\n            return;\n          }\n\n          ele.css('padding-top', minPaddings.top);\n          ele.css('padding-bottom', minPaddings.bottom);\n          ele.css('padding-left', minPaddings.left);\n          ele.css('padding-right', minPaddings.right);\n        });\n      }\n      \n      mode = newmode; // Set the new mode\n      \n      // If the new mode is 'min' set the minimum and maximum paddings after setting the new mode\n      if (newmode === 'min') {\n        compounds.each(function (i, ele) {\n          var paddings = {\n            'top': ele.css('padding-top'),\n            'bottom': ele.css('padding-bottom'),\n            'left': ele.css('padding-left'),\n            'right': ele.css('padding-right')\n          };\n\n          self.setExtremePaddings(ele, paddings, 'min', true);\n          self.setExtremePaddings(ele, paddings, 'max', true);\n        });\n      }\n    },\n    getMode: function() {\n      return mode;\n    },\n    setPaddings: function (nodes, paddings) {\n      \n      if (mode !== 'min') {\n        return;\n      }\n      \n      cy.startBatch();\n\n      nodes.each(function (i, ele) {\n        var minPaddings = self.getMinimumPaddings(ele);\n        var maxPaddings = self.getMaximumPaddings(ele);\n\n        if ( paddings.left >= minPaddings.left && paddings.left <= maxPaddings.left ) {\n          ele.css('padding-left', paddings.left);\n        }\n\n        if ( paddings.right >= minPaddings.right && paddings.right <= maxPaddings.right ) {\n          ele.css('padding-right', paddings.right);\n        }\n\n        if ( paddings.top >= minPaddings.top && paddings.top <= maxPaddings.top ) {\n          ele.css('padding-top', paddings.top);\n        }\n\n        if ( paddings.bottom >= minPaddings.bottom && paddings.bottom <= maxPaddings.bottom ) {\n          ele.css('padding-bottom', paddings.bottom);\n        }\n      });\n      \n      cy.endBatch();\n    },\n    // Set extreme paddings of the nodes use force parameter if you do not need to satisfy 'minPaddings <= maxPaddings' rule\n    setExtremePaddings: function (nodes, _paddings, minOrMax, force) {\n      if (mode !== 'min') {\n        return;\n      }\n      \n      cy.startBatch();\n\n      nodes.each(function (i, ele) {\n        var paddingLeft = parseFloat(ele.css('padding-left'));\n        var paddingRight = parseFloat(ele.css('padding-right'));\n        var paddingTop = parseFloat(ele.css('padding-top'));\n        var paddingBottom = parseFloat(ele.css('padding-bottom'));\n\n        var minPaddings = self.getMinimumPaddings(ele);\n        var maxPaddings = self.getMaximumPaddings(ele);\n        \n        // Get the extreme paddings to set them\n        var extremePaddings = minOrMax === 'min' ? minPaddings : maxPaddings;\n\n        var sign = minOrMax === 'min' ? 1 : -1;\n        \n        // Clone _paddings into paddings object\n        var paddings = {\n        };\n        \n        // Filter paddings from _paddings note that the rule of 'maxPaddings >= minPaddings' should be satisfied\n        if (minOrMax === 'min') {\n          for (var prop in _paddings) {\n            if (force || _paddings[prop] <= maxPaddings[prop]) {\n              paddings[prop] = _paddings[prop];\n            }\n          }\n        }\n        else if (minOrMax === 'max') {\n          for (var prop in _paddings) {\n            if (force || _paddings[prop] >= minPaddings[prop]) {\n              paddings[prop] = _paddings[prop];\n            }\n          }\n        }\n\n        // Set the extreme paddings where applicable\n        if (paddings.left) {\n          if (paddingLeft * sign < paddings.left * sign) {\n            // Paddings cannot be smaller then min paddings and cannot be bigger then max paddings\n            ele.css('padding-left', paddings.left);\n          }\n\n          extremePaddings.left = parseFloat(paddings.left);\n        }\n\n        if (paddings.right) {\n          if (paddingRight * sign < paddings.right * sign) {\n            // Paddings cannot be smaller then min paddings and cannot be bigger then max paddings\n            ele.css('padding-right', paddings.right);\n          }\n\n          extremePaddings.right = parseFloat(paddings.right);\n        }\n\n        if (paddings.top) {\n          if (paddingTop * sign < paddings.top * sign) {\n            // Paddings cannot be smaller then min paddings and cannot be bigger then max paddings\n            ele.css('padding-top', paddings.top);\n          }\n\n          extremePaddings.top = parseFloat(paddings.top);\n        }\n\n        if (paddings.bottom) {\n          if (paddingBottom * sign < paddings.bottom * sign) {\n            // Paddings cannot be smaller then min paddings and cannot be bigger then max paddings\n            ele.css('padding-bottom', paddings.bottom);\n          }\n\n          extremePaddings.bottom = parseFloat(paddings.bottom);\n        }\n      });\n\n      cy.endBatch();\n    },\n    getMinimumPaddings: function (node) {\n      if (mode !== 'min') {\n        return null;\n      }\n      \n      var paddings = scratchUtilities.getScratch(node).minPaddings;\n      if (!paddings) {\n        paddings = scratchUtilities.getScratch(node).minPaddings = {};\n      }\n      return paddings;\n    },\n    getMaximumPaddings: function (node) {\n      if (mode !== 'min') {\n        return null;\n      }\n      \n      var paddings = scratchUtilities.getScratch(node).maxPaddings;\n      if (!paddings) {\n        paddings = scratchUtilities.getScratch(node).maxPaddings = {};\n      }\n      return paddings;\n    }\n  };\n\n  return self;\n};\n\nmodule.exports = compoundResizeUtilities;","var elementUtilities = function () {\n  return {\n    //this method returns the nodes non of whose ancestors is not in given nodes\n    getTopMostNodes: function (nodes) {\n      var nodesMap = {};\n      for (var i = 0; i < nodes.length; i++) {\n        nodesMap[nodes[i].id()] = true;\n      }\n      var roots = nodes.filter(function (i, ele) {\n        var parent = ele.parent()[0];\n        while (parent != null) {\n          if (nodesMap[parent.id()]) {\n            return false;\n          }\n          parent = parent.parent()[0];\n        }\n        return true;\n      });\n\n      return roots;\n    },\n    // Get the corner positions of the node\n    getOuterCornerPositions: function(node) {\n      var posX = node.position('x');\n      var posY = node.position('y');\n      var halfWidth = node.width() / 2;\n      var halfHeight = node.height() / 2;\n      \n      return {\n        'top': posY - halfHeight,\n        'bottom': posY + halfHeight,\n        'left': posX - halfWidth,\n        'right': posX + halfWidth\n      };\n    }\n  };\n};\n\nmodule.exports = elementUtilities;",";\n(function () {\n  'use strict';\n  var elementUtilities = require(\"./elementUtilities\")();\n  var compoundResizeUtilities;\n  var mode;\n  \n  // Event functions\n  var tapStartFcn, dragFcn, resizeStartFcn, resizeDragFcn, resizeEndFcn;\n\n  // registers the extension on a cytoscape lib ref\n  var register = function (cytoscape) {\n\n    if (!cytoscape) {\n      return;\n    } // can't register if cytoscape unspecified\n\n    var unbindEvents = function (cy) {\n      cy.off('node', tapStartFcn);\n      cy.off(dragFcn);\n      cy.off(resizeStartFcn);\n      cy.off(resizeDragFcn);\n      cy.off(resizeEndFcn);\n    };\n\n    var bindEvents = function (cy) {\n      var ancestorsCornerPositions;\n      var effectedNodes;\n      var ancestorMap;\n\n      // Fill the data of elements which will be affected by the respositioning \n      var fillEffectedData = function (fillAncestorsMap) {\n        ancestorsCornerPositions = [];\n\n        if (fillAncestorsMap) {\n          ancestorMap = {};\n        }\n\n        effectedNodes.each(function (i, ele) {\n          var corners = []; // It will be used like a queue\n          var currentAncestor = ele.parent()[0];\n\n          while (currentAncestor) {\n            var id = currentAncestor.id();\n\n            var corner = elementUtilities.getOuterCornerPositions(currentAncestor);\n            corner.id = id;\n\n            corners.push(corner);\n\n            if (fillAncestorsMap && !ancestorMap[id]) {\n              ancestorMap[id] = currentAncestor;\n            }\n\n            currentAncestor = currentAncestor.parent()[0];\n          }\n\n          ancestorsCornerPositions.push(corners);\n        });\n      };\n\n      // Update the paddings according to the movement\n      var updatePaddings = function () {\n        // Keeps the already processed ancestors\n        var processedAncestors = {};\n\n        ancestorsCornerPositions.forEach(function (element, index, array) {\n          var cornersQueue = element;\n          while (cornersQueue.length > 0) {\n            var oldCorners = cornersQueue.shift();\n\n            if (processedAncestors[cornersQueue.id]) {\n              continue;\n            }\n\n            processedAncestors[oldCorners.id] = true;\n            var ancestor = ancestorMap[oldCorners.id];\n            var currentCorners = elementUtilities.getOuterCornerPositions(ancestor);\n\n            if (currentCorners.top === oldCorners.top && currentCorners.bottom === oldCorners.bottom\n                    && currentCorners.left === oldCorners.left && currentCorners.right === oldCorners.right) {\n              break;\n            }\n\n            var paddingTop, paddingBottom, paddingLeft, paddingRight;\n\n            var topDiff = currentCorners.top - oldCorners.top;\n\n            if (topDiff != 0) {\n              var currentPadding = parseFloat(ancestor.css('padding-top'));\n              paddingTop = currentPadding + topDiff;\n            }\n\n            var bottomDiff = currentCorners.bottom - oldCorners.bottom;\n\n            if (bottomDiff != 0) {\n              var currentPadding = parseFloat(ancestor.css('padding-bottom'));\n              paddingBottom = currentPadding - bottomDiff;\n            }\n\n            var leftDiff = currentCorners.left - oldCorners.left;\n\n            if (leftDiff != 0) {\n              var currentPadding = parseFloat(ancestor.css('padding-left'));\n              paddingLeft = currentPadding + leftDiff;\n            }\n\n            var rightDiff = currentCorners.right - oldCorners.right;\n\n            if (rightDiff != 0) {\n              var currentPadding = parseFloat(ancestor.css('padding-right'));\n              paddingRight = currentPadding - rightDiff;\n            }\n\n            if (!paddingTop && !paddingBottom && !paddingLeft && !paddingRight) {\n              continue;\n            }\n\n            var paddings = {};\n\n            if (paddingTop) {\n              paddings.top = paddingTop;\n            }\n\n            if (paddingBottom) {\n              paddings.bottom = paddingBottom;\n            }\n\n            if (paddingLeft) {\n              paddings.left = paddingLeft;\n            }\n\n            if (paddingRight) {\n              paddings.right = paddingRight;\n            }\n\n            compoundResizeUtilities.setPaddings(ancestor, paddings);\n          }\n        });\n      };\n      \n      var resizing; // A flag indicating if any node is being resized\n\n      cy.on('tapstart', 'node', tapStartFcn = function () {\n        // If the mode is not 'min' or any node is being resized return directly\n        if( mode !== 'min' || resizing ) {\n          return;\n        }\n        \n        var node = this;\n\n        if (node.selected()) {\n          effectedNodes = cy.nodes(':selected').difference(node.ancestors());\n        }\n        else {\n          effectedNodes = cy.collection().add(node);\n        }\n\n        // We care about the movement of top most nodes\n        effectedNodes = elementUtilities.getTopMostNodes(effectedNodes);\n\n        fillEffectedData(true);\n      });\n\n      cy.on('drag', 'node', dragFcn = function () {\n        if( mode !== 'min' ) {\n          return;\n        }\n        \n        updatePaddings();\n        fillEffectedData(false);\n      });\n\n      cy.on('resizestart', resizeStartFcn = function (e, type, nodes) {\n        resizing = true; // Set the 'resizing' flag \n        \n        if( mode !== 'min' ) {\n          return;\n        }\n        \n        effectedNodes = nodes;\n        fillEffectedData(true);\n      });\n\n      cy.on('resizedrag', resizeDragFcn = function (e, type, nodes) {\n        if( mode !== 'min' ) {\n          return;\n        }\n        \n        updatePaddings();\n        fillEffectedData(false);\n      });\n      \n      cy.on('resizeend', resizeEndFcn = function (e, type, nodes) {\n        resizing = undefined; // Unset the 'resizing' flag\n      });\n    };\n\n    cytoscape('core', 'compoundResize', function (_mode) {\n      var cy = this;\n      \n      if (_mode === 'destroy') {\n        unbindEvents(cy);\n        return;\n      }\n      \n      if( _mode != 'get' ) {\n        compoundResizeUtilities = require('./compoundResizeUtilities')(cy);\n        mode = _mode;\n        compoundResizeUtilities.setMode(mode);\n        bindEvents(cy);\n      }\n\n      return compoundResizeUtilities; // Provide API\n    });\n\n  };\n\n  if (typeof module !== 'undefined' && module.exports) { // expose as a commonjs module\n    module.exports = register;\n  }\n\n  if (typeof define !== 'undefined' && define.amd) { // expose as an amd/requirejs module\n    define('cytoscape-compound-resize', function () {\n      return register;\n    });\n  }\n\n  if (typeof cytoscape !== 'undefined') { // expose to global cytoscape (i.e. window.cytoscape)\n    register(cytoscape);\n  }\n\n})();\n","var scratchUtilities = function () {\n  return {\n    getScratch: function (cyOrEle) {\n      if (!cyOrEle.scratch('_compoundResize')) {\n        cyOrEle.scratch('_compoundResize', {});\n      }\n      return cyOrEle.scratch('_compoundResize');\n    }\n  };\n};\n\nmodule.exports = scratchUtilities;"]}