{"version":3,"file":"X_ActiveSelection.mjs","sources":["../../../../src/shapes/canvasx/X_ActiveSelection.ts"],"sourcesContent":["import { ActiveSelection } from '../ActiveSelection';\n\n// import { cursorLock as cursorLockSvg } from './svg/cursorLock';\n\nActiveSelection.prototype.cornerStyle = 'circle';\n\nActiveSelection.prototype.initialize = function (objects, options = {}) {\n  const refinedObjs = [];\n\n  objects.forEach((obj) => {\n    if (obj.objType !== 'common' && !obj.locked) refinedObjs.push(obj);\n  });\n\n  this._objects = refinedObjs || [];\n\n  for (let i = this._objects.length; i--; ) {\n    this._objects[i].group = this;\n  }\n\n  this.lockUniScaling = this._objects.length > 1;\n\n  if (options.originX) {\n    this.originX = options.originX;\n  }\n\n  if (options.originY) {\n    this.originY = options.originY;\n  }\n\n  this._updateObjectsCoords();\n\n  fabric.Object.prototype.initialize.call(this, options);\n\n  this.setCoords();\n\n  this.on('modified', (e) => {});\n\n  this.resetBorderAndControls();\n};\n\nActiveSelection.prototype.getContextMenuList = function () {\n  let menuList;\n\n  const activeSelection = this;\n\n  if (activeSelection.locked) {\n    menuList = ['Group'];\n  } else {\n    menuList = [\n      'Bring to front',\n      'Send to back',\n      'Group',\n      'Duplicate',\n      'Copy',\n      'Paste',\n      'Cut',\n      'Delete',\n    ];\n  }\n\n  if (activeSelection._objects.length > 1) {\n    if (activeSelection.locked) {\n      menuList.push('Unlock All');\n    } else {\n      menuList.push('Lock All');\n    }\n  } else if (activeSelection.locked) {\n    menuList.push('Unlock');\n  } else {\n    menuList.push('Lock');\n  }\n\n  return menuList;\n};\n\nActiveSelection.prototype.resetGroupLockedStatus = function () {\n  const activeSelection = this;\n\n  // const cursorLock = cursorLockSvg;\n};\n\nActiveSelection.prototype.resetBorderAndControls = function () {\n  const activeSelection = this;\n\n  if (activeSelection && activeSelection._objects) {\n    activeSelection.setControlVisible('mtr', false);\n\n    activeSelection.setControlVisible('mtr2', false);\n\n    if (activeSelection._objects.length > 0) {\n      activeSelection.setControlVisible('tl', true);\n      activeSelection.setControlVisible('tr', true);\n      activeSelection.setControlVisible('br', true);\n      activeSelection.setControlVisible('bl', true);\n      activeSelection.hasBorders = true;\n    } else {\n      activeSelection.setControlVisible('tl', false);\n      activeSelection.setControlVisible('tr', false);\n      activeSelection.setControlVisible('br', false);\n      activeSelection.setControlVisible('bl', false);\n      activeSelection.hasBorders = false;\n    }\n\n    activeSelection.setControlVisible('ml', false);\n    activeSelection.setControlVisible('mr', false);\n    activeSelection.setControlVisible('mt', false);\n    activeSelection.setControlVisible('mb', false);\n    activeSelection.setControlVisible('mla', false);\n    activeSelection.setControlVisible('mra', false);\n    activeSelection.setControlVisible('mta', false);\n    activeSelection.setControlVisible('mba', false);\n  }\n};\n\nActiveSelection.prototype._updateObjectsCoords = function (center) {\n  const _center = center || this.getCenterPoint();\n\n  for (let i = this._objects.length; i--; ) {\n    this._updateObjectCoords(this._objects[i], _center);\n  }\n};\n\n/**\n * @private\n * @param {Object} object\n * @param {fabric.Point} center, current center of group.\n */\nActiveSelection.prototype._updateObjectCoords = function (object, center) {\n  let objectLeft = object.left - center.x;\n\n  let objectTop = object.top - center.y;\n\n  const skipControls = true;\n\n  if (Math.abs(objectLeft) < 0.1) objectLeft = 0.1;\n\n  if (Math.abs(objectTop) < 0.1) objectTop = 0.1;\n\n  object.set({\n    left: objectLeft,\n    top: objectTop,\n  });\n\n  object.group = this;\n\n  object.setCoords(skipControls);\n};\n\nActiveSelection.prototype.getCloneWidget = function () {\n  return null;\n};\n\nActiveSelection.prototype.bringObjToFront = function () {\n  const obj = this;\n\n  const ASObjects = obj.sortActiveSelectionObjs();\n\n  const newIndex = canvas.createTopZIndex();\n\n  const newZindexArr = canvas.zindexArrBetween(\n    newIndex,\n    newIndex + 99,\n    ASObjects.length\n  );\n\n  obj.saveUpdatedzIndex(ASObjects, newZindexArr, true);\n};\n\nActiveSelection.prototype.sendObjToBack = function () {\n  const obj = this;\n\n  const ASObjects = obj.sortActiveSelectionObjs();\n\n  const newIndex = canvas._objects[0].zIndex;\n\n  const newZindexArr = canvas.zindexArrBetween(\n    newIndex - 200,\n    newIndex - 100,\n    ASObjects.length\n  );\n\n  obj.saveUpdatedzIndex(ASObjects, newZindexArr, false);\n};\n\nActiveSelection.prototype.sortActiveSelectionObjs = function () {\n  const obj = this;\n\n  const ASObjects = [];\n\n  for (let i = 0; i < obj._objects.length; i++) {\n    if (obj._objects[i]._id) ASObjects.push(obj._objects[i]);\n  }\n\n  ASObjects.sort((a, b) => b.zIndex - a.zIndex);\n\n  return ASObjects;\n};\n\nActiveSelection.prototype.saveUpdatedzIndex = function (\n  ASObjects,\n  newZindexArr,\n  toFront\n) {\n  const obj = this;\n\n  for (let i = 0; i < ASObjects.length; i++) {\n    const asobj = ASObjects[i];\n\n    if (asobj.panelObj) {\n      /* overlap with frame */\n      const parentPanel = canvas.findById(asobj.panelObj);\n\n      if (parentPanel) {\n        /* bring front on a frame is to the top on the frame */\n        if (toFront) canvas.toFrameTop(parentPanel, asobj);\n        /* send back on a frame is to the bottom on the frame */\n        if (!toFront) canvas.toFrameBottom(parentPanel, asobj);\n      }\n    } else {\n      asobj.zIndex = newZindexArr[i];\n    }\n\n    asobj.dirty = true;\n  }\n\n  canvas.requestRenderAll();\n\n  canvas.sortByZIndex();\n\n  obj.saveData('MODIFIED', ['zIndex']);\n};\n\nActiveSelection.prototype.getText = function () {\n  if (this.getObjects().length > 1) {\n    const textsArray = canvas.getActiveObjects().map((item) => item.getText());\n    return textsArray.join('/n').trim();\n  }\n};\n"],"names":["ActiveSelection","prototype","cornerStyle","initialize","objects","options","arguments","length","undefined","refinedObjs","forEach","obj","objType","locked","push","_objects","i","group","lockUniScaling","originX","originY","_updateObjectsCoords","fabric","Object","call","setCoords","on","e","resetBorderAndControls","getContextMenuList","menuList","activeSelection","resetGroupLockedStatus","setControlVisible","hasBorders","center","_center","getCenterPoint","_updateObjectCoords","object","objectLeft","left","x","objectTop","top","y","skipControls","Math","abs","set","getCloneWidget","bringObjToFront","ASObjects","sortActiveSelectionObjs","newIndex","canvas","createTopZIndex","newZindexArr","zindexArrBetween","saveUpdatedzIndex","sendObjToBack","zIndex","_id","sort","a","b","toFront","asobj","panelObj","parentPanel","findById","toFrameTop","toFrameBottom","dirty","requestRenderAll","sortByZIndex","saveData","getText","getObjects","textsArray","getActiveObjects","map","item","join","trim"],"mappings":"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"}