@anzusystems/common-admin 2.0.0-rc.1 → 2.0.0-rc.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.
Files changed (47) hide show
  1. package/dist/common-admin.js +188 -187
  2. package/dist/domains/dam/cropper/components/ACropper.js.map +1 -1
  3. package/dist/domains/dam/cropper/components/ACropper.vue_vue_type_script_setup_true_lang.js +1 -1
  4. package/dist/domains/dam/cropper/components/ACropper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  5. package/dist/domains/dam/cropper/utils/cropperGeometry.js +1 -1
  6. package/dist/domains/dam/cropper/utils/cropperGeometry.js.map +1 -1
  7. package/dist/domains/dam/keyword/factory/KeywordFactory.js +2 -2
  8. package/dist/domains/dam/keyword/factory/KeywordFactory.js.map +1 -1
  9. package/dist/domains/filters/composables/filterFactory.d.ts +31 -2
  10. package/dist/domains/filters/composables/filterFactory.js +78 -67
  11. package/dist/domains/filters/composables/filterFactory.js.map +1 -1
  12. package/dist/domains/system/composables/breadcrumbs.d.ts +6 -6
  13. package/dist/domains/system/composables/breadcrumbs.js +7 -7
  14. package/dist/domains/system/composables/breadcrumbs.js.map +1 -1
  15. package/dist/domains/system/composables/recordActions.d.ts +41 -0
  16. package/dist/domains/system/composables/recordActions.js +33 -0
  17. package/dist/domains/system/composables/recordActions.js.map +1 -0
  18. package/dist/domains/system/composables/recordPage.d.ts +14 -4
  19. package/dist/domains/system/composables/recordPage.js +36 -34
  20. package/dist/domains/system/composables/recordPage.js.map +1 -1
  21. package/dist/lib.d.ts +3 -2
  22. package/dist/vendor/@cropper/element/dist/element.esm.raw.js +1 -1
  23. package/dist/vendor/@cropper/element/dist/element.esm.raw.js.map +1 -1
  24. package/dist/vendor/@cropper/element-canvas/dist/element-canvas.esm.raw.js +1 -1
  25. package/dist/vendor/@cropper/element-canvas/dist/element-canvas.esm.raw.js.map +1 -1
  26. package/dist/vendor/@cropper/element-crosshair/dist/element-crosshair.esm.raw.js +1 -1
  27. package/dist/vendor/@cropper/element-crosshair/dist/element-crosshair.esm.raw.js.map +1 -1
  28. package/dist/vendor/@cropper/element-grid/dist/element-grid.esm.raw.js +1 -1
  29. package/dist/vendor/@cropper/element-grid/dist/element-grid.esm.raw.js.map +1 -1
  30. package/dist/vendor/@cropper/element-handle/dist/element-handle.esm.raw.js +1 -1
  31. package/dist/vendor/@cropper/element-handle/dist/element-handle.esm.raw.js.map +1 -1
  32. package/dist/vendor/@cropper/element-image/dist/element-image.esm.raw.js +74 -58
  33. package/dist/vendor/@cropper/element-image/dist/element-image.esm.raw.js.map +1 -1
  34. package/dist/vendor/@cropper/element-selection/dist/element-selection.esm.raw.js +198 -52
  35. package/dist/vendor/@cropper/element-selection/dist/element-selection.esm.raw.js.map +1 -1
  36. package/dist/vendor/@cropper/element-shade/dist/element-shade.esm.raw.js +11 -4
  37. package/dist/vendor/@cropper/element-shade/dist/element-shade.esm.raw.js.map +1 -1
  38. package/dist/vendor/@cropper/element-viewer/dist/element-viewer.esm.raw.js +8 -8
  39. package/dist/vendor/@cropper/element-viewer/dist/element-viewer.esm.raw.js.map +1 -1
  40. package/dist/vendor/@cropper/utils/dist/utils.esm.raw.js +89 -46
  41. package/dist/vendor/@cropper/utils/dist/utils.esm.raw.js.map +1 -1
  42. package/dist/vendor/{cropperjs2 → cropperjs}/dist/cropper.esm.raw.js +11 -11
  43. package/dist/vendor/cropperjs/dist/cropper.esm.raw.js.map +1 -0
  44. package/package.json +10 -10
  45. package/src/eslint/adminConfig.mjs +2 -1
  46. package/src/eslint/oxlint-admin.json +3 -0
  47. package/dist/vendor/cropperjs2/dist/cropper.esm.raw.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"element-grid.esm.raw.js","names":["CropperElement","style","CropperGrid","newValue","oldValue","name","shadow","fragment","i","row","j","column","CROPPER_GIRD"],"sources":["../../../../../node_modules/@cropper/element-grid/dist/element-grid.esm.raw.js"],"sourcesContent":["import CropperElement from '@cropper/element';\nimport { CROPPER_GIRD } from '@cropper/utils';\n\nvar style = `:host{display:flex;flex-direction:column;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([bordered]){border:1px dashed var(--theme-color)}:host([covered]){bottom:0;left:0;position:absolute;right:0;top:0}:host>span{display:flex;flex:1}:host>span+span{border-top:1px dashed var(--theme-color)}:host>span>span{flex:1}:host>span>span+span{border-left:1px dashed var(--theme-color)}`;\n\nclass CropperGrid extends CropperElement {\n constructor() {\n super(...arguments);\n this.$style = style;\n this.bordered = false;\n this.columns = 3;\n this.covered = false;\n this.rows = 3;\n this.slottable = false;\n this.themeColor = 'rgba(238, 238, 238, 0.5)';\n }\n static get observedAttributes() {\n return super.observedAttributes.concat([\n 'bordered',\n 'columns',\n 'covered',\n 'rows',\n ]);\n }\n $propertyChangedCallback(name, oldValue, newValue) {\n if (Object.is(newValue, oldValue)) {\n return;\n }\n super.$propertyChangedCallback(name, oldValue, newValue);\n if (name === 'rows' || name === 'columns') {\n this.$nextTick(() => {\n this.$render();\n });\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.$render();\n }\n $render() {\n const shadow = this.$getShadowRoot();\n const fragment = document.createDocumentFragment();\n for (let i = 0; i < this.rows; i += 1) {\n const row = document.createElement('span');\n row.setAttribute('data-cropper-grid-row', '');\n row.setAttribute('role', 'row');\n for (let j = 0; j < this.columns; j += 1) {\n const column = document.createElement('span');\n column.setAttribute('role', 'gridcell');\n row.appendChild(column);\n }\n fragment.appendChild(row);\n }\n if (shadow) {\n shadow.querySelectorAll('[data-cropper-grid-row]').forEach((row) => row.remove());\n shadow.appendChild(fragment);\n }\n }\n}\nCropperGrid.$name = CROPPER_GIRD;\nCropperGrid.$version = '2.2.0';\n\nexport { CropperGrid as default };\n"],"ignoreList":[0],"mappings":";;;AAGA,IAAIC,IAAQ,ubAENC,IAAN,cAA0BF,EAAe;CACrC,cAAc;EAQV,AAPA,MAAM,GAAG,SAAS,GAClB,KAAK,SAASC,GACd,KAAK,WAAW,IAChB,KAAK,UAAU,GACf,KAAK,UAAU,IACf,KAAK,OAAO,GACZ,KAAK,YAAY,IACjB,KAAK,aAAa;CACtB;CACA,WAAW,qBAAqB;EAC5B,OAAO,MAAM,mBAAmB,OAAO;GACnC;GACA;GACA;GACA;EACJ,CAAC;CACL;CACA,yBAAyB,GAAM,GAAU,GAAU;EAC/C,AAAI,OAAO,GAAGE,GAAUC,CAAQ,MAGhC,MAAM,yBAAyBC,GAAMD,GAAUD,CAAQ,IACnDE,MAAS,UAAUA,MAAS,cAC5B,KAAK,gBAAgB;GACjB,KAAK,QAAQ;EACjB,CAAC;CAET;CACA,oBAAoB;EAEhB,AADA,MAAM,kBAAkB,GACxB,KAAK,QAAQ;CACjB;CACA,UAAU;EACN,IAAMC,IAAS,KAAK,eAAe,GAC7BC,IAAW,SAAS,uBAAuB;EACjD,KAAK,IAAIC,IAAI,GAAGA,IAAI,KAAK,MAAM,KAAK,GAAG;GACnC,IAAMC,IAAM,SAAS,cAAc,MAAM;GAEzC,AADAA,EAAI,aAAa,yBAAyB,EAAE,GAC5CA,EAAI,aAAa,QAAQ,KAAK;GAC9B,KAAK,IAAIC,IAAI,GAAGA,IAAI,KAAK,SAAS,KAAK,GAAG;IACtC,IAAMC,IAAS,SAAS,cAAc,MAAM;IAE5C,AADAA,EAAO,aAAa,QAAQ,UAAU,GACtCF,EAAI,YAAYE,CAAM;GAC1B;GACA,EAAS,YAAYF,CAAG;EAC5B;EACA,AAAIH,MACAA,EAAO,iBAAiB,yBAAyB,CAAC,CAAC,SAAS,MAAQG,EAAI,OAAO,CAAC,GAChFH,EAAO,YAAYC,CAAQ;CAEnC;AACJ;AACA,EAAY,QAAQK,GACpB,EAAY,WAAW"}
1
+ {"version":3,"file":"element-grid.esm.raw.js","names":["CropperElement","style","CropperGrid","newValue","oldValue","name","shadow","fragment","i","row","j","column","CROPPER_GIRD"],"sources":["../../../../../node_modules/@cropper/element-grid/dist/element-grid.esm.raw.js"],"sourcesContent":["import CropperElement from '@cropper/element';\nimport { CROPPER_GIRD } from '@cropper/utils';\n\nvar style = `:host{display:flex;flex-direction:column;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([bordered]){border:1px dashed var(--theme-color)}:host([covered]){bottom:0;left:0;position:absolute;right:0;top:0}:host>span{display:flex;flex:1}:host>span+span{border-top:1px dashed var(--theme-color)}:host>span>span{flex:1}:host>span>span+span{border-left:1px dashed var(--theme-color)}`;\n\nclass CropperGrid extends CropperElement {\n constructor() {\n super(...arguments);\n this.$style = style;\n this.bordered = false;\n this.columns = 3;\n this.covered = false;\n this.rows = 3;\n this.slottable = false;\n this.themeColor = 'rgba(238, 238, 238, 0.5)';\n }\n static get observedAttributes() {\n return super.observedAttributes.concat([\n 'bordered',\n 'columns',\n 'covered',\n 'rows',\n ]);\n }\n $propertyChangedCallback(name, oldValue, newValue) {\n if (Object.is(newValue, oldValue)) {\n return;\n }\n super.$propertyChangedCallback(name, oldValue, newValue);\n if (name === 'rows' || name === 'columns') {\n this.$nextTick(() => {\n this.$render();\n });\n }\n }\n connectedCallback() {\n super.connectedCallback();\n this.$render();\n }\n $render() {\n const shadow = this.$getShadowRoot();\n const fragment = document.createDocumentFragment();\n for (let i = 0; i < this.rows; i += 1) {\n const row = document.createElement('span');\n row.setAttribute('data-cropper-grid-row', '');\n row.setAttribute('role', 'row');\n for (let j = 0; j < this.columns; j += 1) {\n const column = document.createElement('span');\n column.setAttribute('role', 'gridcell');\n row.appendChild(column);\n }\n fragment.appendChild(row);\n }\n if (shadow) {\n shadow.querySelectorAll('[data-cropper-grid-row]').forEach((row) => row.remove());\n shadow.appendChild(fragment);\n }\n }\n}\nCropperGrid.$name = CROPPER_GIRD;\nCropperGrid.$version = '2.3.1';\n\nexport { CropperGrid as default };\n"],"ignoreList":[0],"mappings":";;;AAGA,IAAIC,IAAQ,ubAENC,IAAN,cAA0BF,EAAe;CACrC,cAAc;EAQV,AAPA,MAAM,GAAG,SAAS,GAClB,KAAK,SAASC,GACd,KAAK,WAAW,IAChB,KAAK,UAAU,GACf,KAAK,UAAU,IACf,KAAK,OAAO,GACZ,KAAK,YAAY,IACjB,KAAK,aAAa;CACtB;CACA,WAAW,qBAAqB;EAC5B,OAAO,MAAM,mBAAmB,OAAO;GACnC;GACA;GACA;GACA;EACJ,CAAC;CACL;CACA,yBAAyB,GAAM,GAAU,GAAU;EAC/C,AAAI,OAAO,GAAGE,GAAUC,CAAQ,MAGhC,MAAM,yBAAyBC,GAAMD,GAAUD,CAAQ,IACnDE,MAAS,UAAUA,MAAS,cAC5B,KAAK,gBAAgB;GACjB,KAAK,QAAQ;EACjB,CAAC;CAET;CACA,oBAAoB;EAEhB,AADA,MAAM,kBAAkB,GACxB,KAAK,QAAQ;CACjB;CACA,UAAU;EACN,IAAMC,IAAS,KAAK,eAAe,GAC7BC,IAAW,SAAS,uBAAuB;EACjD,KAAK,IAAIC,IAAI,GAAGA,IAAI,KAAK,MAAM,KAAK,GAAG;GACnC,IAAMC,IAAM,SAAS,cAAc,MAAM;GAEzC,AADAA,EAAI,aAAa,yBAAyB,EAAE,GAC5CA,EAAI,aAAa,QAAQ,KAAK;GAC9B,KAAK,IAAIC,IAAI,GAAGA,IAAI,KAAK,SAAS,KAAK,GAAG;IACtC,IAAMC,IAAS,SAAS,cAAc,MAAM;IAE5C,AADAA,EAAO,aAAa,QAAQ,UAAU,GACtCF,EAAI,YAAYE,CAAM;GAC1B;GACA,EAAS,YAAYF,CAAG;EAC5B;EACA,AAAIH,MACAA,EAAO,iBAAiB,yBAAyB,CAAC,CAAC,SAAS,MAAQG,EAAI,OAAO,CAAC,GAChFH,EAAO,YAAYC,CAAQ;CAEnC;AACJ;AACA,EAAY,QAAQK,GACpB,EAAY,WAAW"}
@@ -9,7 +9,7 @@ var r = ":host{background-color:var(--theme-color);display:block}:host([action=m
9
9
  return super.observedAttributes.concat(["action", "plain"]);
10
10
  }
11
11
  };
12
- i.$name = t, i.$version = "2.2.0";
12
+ i.$name = t, i.$version = "2.3.1";
13
13
  //#endregion
14
14
  export { i as default };
15
15
 
@@ -1 +1 @@
1
- {"version":3,"file":"element-handle.esm.raw.js","names":["CropperElement","style","CropperHandle","ACTION_NONE","CROPPER_HANDLE"],"sources":["../../../../../node_modules/@cropper/element-handle/dist/element-handle.esm.raw.js"],"sourcesContent":["import CropperElement from '@cropper/element';\nimport { CROPPER_HANDLE, ACTION_NONE } from '@cropper/utils';\n\nvar style = `:host{background-color:var(--theme-color);display:block}:host([action=move]),:host([action=select]){height:100%;left:0;position:absolute;top:0;width:100%}:host([action=move]){cursor:move}:host([action=select]){cursor:crosshair}:host([action$=-resize]){background-color:transparent;height:15px;position:absolute;width:15px}:host([action$=-resize]):after{background-color:var(--theme-color);content:\"\";display:block;height:5px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:5px}:host([action=n-resize]),:host([action=s-resize]){cursor:ns-resize;left:50%;transform:translateX(-50%);width:100%}:host([action=n-resize]){top:-8px}:host([action=s-resize]){bottom:-8px}:host([action=e-resize]),:host([action=w-resize]){cursor:ew-resize;height:100%;top:50%;transform:translateY(-50%)}:host([action=e-resize]){right:-8px}:host([action=w-resize]){left:-8px}:host([action=ne-resize]){cursor:nesw-resize;right:-8px;top:-8px}:host([action=nw-resize]){cursor:nwse-resize;left:-8px;top:-8px}:host([action=se-resize]){bottom:-8px;cursor:nwse-resize;right:-8px}:host([action=se-resize]):after{height:15px;width:15px}@media (pointer:coarse){:host([action=se-resize]):after{height:10px;width:10px}}@media (pointer:fine){:host([action=se-resize]):after{height:5px;width:5px}}:host([action=sw-resize]){bottom:-8px;cursor:nesw-resize;left:-8px}:host([plain]){background-color:transparent}`;\n\nclass CropperHandle extends CropperElement {\n constructor() {\n super(...arguments);\n this.$onCanvasCropEnd = null;\n this.$onCanvasCropStart = null;\n this.$style = style;\n this.action = ACTION_NONE;\n this.plain = false;\n this.slottable = false;\n this.themeColor = 'rgba(51, 153, 255, 0.5)';\n }\n static get observedAttributes() {\n return super.observedAttributes.concat([\n 'action',\n 'plain',\n ]);\n }\n}\nCropperHandle.$name = CROPPER_HANDLE;\nCropperHandle.$version = '2.2.0';\n\nexport { CropperHandle as default };\n"],"ignoreList":[0],"mappings":";;;AAGA,IAAIC,IAAQ,o3CAENC,IAAN,cAA4BF,EAAe;CACvC,cAAc;EAQV,AAPA,MAAM,GAAG,SAAS,GAClB,KAAK,mBAAmB,MACxB,KAAK,qBAAqB,MAC1B,KAAK,SAASC,GACd,KAAK,SAASE,GACd,KAAK,QAAQ,IACb,KAAK,YAAY,IACjB,KAAK,aAAa;CACtB;CACA,WAAW,qBAAqB;EAC5B,OAAO,MAAM,mBAAmB,OAAO,CACnC,UACA,OACJ,CAAC;CACL;AACJ;AACA,EAAc,QAAQC,GACtB,EAAc,WAAW"}
1
+ {"version":3,"file":"element-handle.esm.raw.js","names":["CropperElement","style","CropperHandle","ACTION_NONE","CROPPER_HANDLE"],"sources":["../../../../../node_modules/@cropper/element-handle/dist/element-handle.esm.raw.js"],"sourcesContent":["import CropperElement from '@cropper/element';\nimport { CROPPER_HANDLE, ACTION_NONE } from '@cropper/utils';\n\nvar style = `:host{background-color:var(--theme-color);display:block}:host([action=move]),:host([action=select]){height:100%;left:0;position:absolute;top:0;width:100%}:host([action=move]){cursor:move}:host([action=select]){cursor:crosshair}:host([action$=-resize]){background-color:transparent;height:15px;position:absolute;width:15px}:host([action$=-resize]):after{background-color:var(--theme-color);content:\"\";display:block;height:5px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:5px}:host([action=n-resize]),:host([action=s-resize]){cursor:ns-resize;left:50%;transform:translateX(-50%);width:100%}:host([action=n-resize]){top:-8px}:host([action=s-resize]){bottom:-8px}:host([action=e-resize]),:host([action=w-resize]){cursor:ew-resize;height:100%;top:50%;transform:translateY(-50%)}:host([action=e-resize]){right:-8px}:host([action=w-resize]){left:-8px}:host([action=ne-resize]){cursor:nesw-resize;right:-8px;top:-8px}:host([action=nw-resize]){cursor:nwse-resize;left:-8px;top:-8px}:host([action=se-resize]){bottom:-8px;cursor:nwse-resize;right:-8px}:host([action=se-resize]):after{height:15px;width:15px}@media (pointer:coarse){:host([action=se-resize]):after{height:10px;width:10px}}@media (pointer:fine){:host([action=se-resize]):after{height:5px;width:5px}}:host([action=sw-resize]){bottom:-8px;cursor:nesw-resize;left:-8px}:host([plain]){background-color:transparent}`;\n\nclass CropperHandle extends CropperElement {\n constructor() {\n super(...arguments);\n this.$onCanvasCropEnd = null;\n this.$onCanvasCropStart = null;\n this.$style = style;\n this.action = ACTION_NONE;\n this.plain = false;\n this.slottable = false;\n this.themeColor = 'rgba(51, 153, 255, 0.5)';\n }\n static get observedAttributes() {\n return super.observedAttributes.concat([\n 'action',\n 'plain',\n ]);\n }\n}\nCropperHandle.$name = CROPPER_HANDLE;\nCropperHandle.$version = '2.3.1';\n\nexport { CropperHandle as default };\n"],"ignoreList":[0],"mappings":";;;AAGA,IAAIC,IAAQ,o3CAENC,IAAN,cAA4BF,EAAe;CACvC,cAAc;EAQV,AAPA,MAAM,GAAG,SAAS,GAClB,KAAK,mBAAmB,MACxB,KAAK,qBAAqB,MAC1B,KAAK,SAASC,GACd,KAAK,SAASE,GACd,KAAK,QAAQ,IACb,KAAK,YAAY,IACjB,KAAK,aAAa;CACtB;CACA,WAAW,qBAAqB;EAC5B,OAAO,MAAM,mBAAmB,OAAO,CACnC,UACA,OACJ,CAAC;CACL;AACJ;AACA,EAAc,QAAQC,GACtB,EAAc,WAAW"}
@@ -1,7 +1,7 @@
1
- import { ACTION_MOVE as e, ACTION_NONE as t, ACTION_ROTATE as n, ACTION_SCALE as r, ACTION_TRANSFORM as i, CROPPER_CANVAS as a, CROPPER_IMAGE as o, CROPPER_SELECTION as s, EVENT_ACTION as c, EVENT_ACTION_END as l, EVENT_ACTION_START as u, EVENT_ERROR as d, EVENT_LOAD as f, OBJECT_FIT_CONTAIN as p, OBJECT_FIT_COVER as m, OBJECT_FIT_FILL as h, OBJECT_FIT_NONE as g, OBJECT_FIT_SCALE_DOWN as _, isFunction as v, isNumber as y, multiplyMatrices as b, off as x, on as S, once as C, toAngleInRadian as w } from "../../utils/dist/utils.esm.raw.js";
2
- import T from "../../element/dist/element.esm.raw.js";
1
+ import { ACTION_MOVE as e, ACTION_NONE as t, ACTION_ROTATE as n, ACTION_SCALE as r, ACTION_TRANSFORM as i, CROPPER_CANVAS as a, CROPPER_IMAGE as o, CROPPER_SELECTION as s, EVENT_ACTION as c, EVENT_ACTION_END as l, EVENT_ACTION_START as u, EVENT_ERROR as d, EVENT_LOAD as f, OBJECT_FIT_CONTAIN as p, OBJECT_FIT_COVER as m, OBJECT_FIT_FILL as h, OBJECT_FIT_NONE as g, OBJECT_FIT_SCALE_DOWN as _, exceedsInset as v, isFunction as y, isNumber as b, multiplyMatrices as x, off as S, on as C, once as w, toAngleInRadian as T } from "../../utils/dist/utils.esm.raw.js";
2
+ import E from "../../element/dist/element.esm.raw.js";
3
3
  //#region node_modules/@cropper/element-image/dist/element-image.esm.raw.js
4
- var E = ":host{display:inline-block}img{display:block;height:100%;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}", D = /* @__PURE__ */ new WeakMap(), O = [
4
+ var D = ":host{display:inline-block}img{display:block;height:100%;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}", O = /* @__PURE__ */ new WeakMap(), k = [
5
5
  "alt",
6
6
  "crossorigin",
7
7
  "decoding",
@@ -12,37 +12,40 @@ var E = ":host{display:inline-block}img{display:block;height:100%;max-height:non
12
12
  "sizes",
13
13
  "src",
14
14
  "srcset"
15
- ], k = class extends T {
15
+ ], A = class extends E {
16
16
  constructor() {
17
- super(...arguments), this.$isReady = !1, this.$matrix = [
17
+ super(...arguments), this.$isReady = !1, this.$insetRejected = !1, this.$matrix = [
18
18
  1,
19
19
  0,
20
20
  0,
21
21
  1,
22
22
  0,
23
23
  0
24
- ], this.$onLoad = null, this.$onCanvasAction = null, this.$onCanvasActionEnd = null, this.$onCanvasActionStart = null, this.$actionStartTarget = null, this.$style = E, this.$image = new Image(), this.initialCenterSize = "", this.initialFit = p, this.maxFit = "", this.minFit = "", this.rotatable = !1, this.scalable = !1, this.skewable = !1, this.slottable = !1, this.translatable = !1, this.alt = "", this.crossorigin = "", this.decoding = "", this.elementtiming = "", this.fetchpriority = "", this.loading = "", this.referrerpolicy = "", this.sizes = "", this.src = "", this.srcset = "";
24
+ ], this.$onLoad = null, this.$onCanvasAction = null, this.$onCanvasActionEnd = null, this.$onCanvasActionStart = null, this.$actionStartTarget = null, this.$style = D, this.$image = new Image(), this.initialCenterSize = "", this.initialFit = p, this.maxFit = "", this.minFit = "", this.maxInset = "auto", this.minInset = "auto", this.zoomAroundCenter = !1, this.rotatable = !1, this.scalable = !1, this.skewable = !1, this.slottable = !1, this.translatable = !1, this.alt = "", this.crossorigin = "", this.decoding = "", this.elementtiming = "", this.fetchpriority = "", this.loading = "", this.referrerpolicy = "", this.sizes = "", this.src = "", this.srcset = "";
25
25
  }
26
26
  set $canvas(e) {
27
- D.set(this, e);
27
+ O.set(this, e);
28
28
  }
29
29
  get $canvas() {
30
- return D.get(this);
30
+ return O.get(this);
31
31
  }
32
32
  static get observedAttributes() {
33
- return super.observedAttributes.concat(O, [
33
+ return super.observedAttributes.concat(k, [
34
34
  "initial-center-size",
35
35
  "initial-fit",
36
36
  "max-fit",
37
+ "max-inset",
37
38
  "min-fit",
39
+ "min-inset",
38
40
  "rotatable",
39
41
  "scalable",
40
42
  "skewable",
41
- "translatable"
43
+ "translatable",
44
+ "zoom-around-center"
42
45
  ]);
43
46
  }
44
47
  attributeChangedCallback(e, t, n) {
45
- Object.is(n, t) || (super.attributeChangedCallback(e, t, n), O.includes(e) && (n === null ? this.$image.removeAttribute(e) : this.$image.setAttribute(e, n)));
48
+ Object.is(n, t) || (super.attributeChangedCallback(e, t, n), k.includes(e) && (n === null ? this.$image.removeAttribute(e) : this.$image.setAttribute(e, n)));
46
49
  }
47
50
  $propertyChangedCallback(e, t, n) {
48
51
  if (!Object.is(n, t)) switch (super.$propertyChangedCallback(e, t, n), e) {
@@ -54,6 +57,8 @@ var E = ":host{display:inline-block}img{display:block;height:100%;max-height:non
54
57
  break;
55
58
  case "maxFit":
56
59
  case "minFit":
60
+ case "maxInset":
61
+ case "minInset":
57
62
  this.$nextTick(() => {
58
63
  this.$isReady && this.$canvas && (this.$resetTransform(), this.$center(this.initialCenterSize || this.initialFit));
59
64
  });
@@ -71,11 +76,43 @@ var E = ":host{display:inline-block}img{display:block;height:100%;max-height:non
71
76
  e.defaultPrevented || (this.$actionStartTarget = e.detail?.relatedEvent?.target);
72
77
  }, this.$onCanvasActionEnd = () => {
73
78
  this.$actionStartTarget = null;
74
- }, this.$onCanvasAction = this.$handleAction.bind(this), S(t, u, this.$onCanvasActionStart), S(t, l, this.$onCanvasActionEnd), S(t, c, this.$onCanvasAction)), this.$onLoad = this.$handleLoad.bind(this), S(e, f, this.$onLoad), this.$getShadowRoot().appendChild(e);
79
+ }, this.$onCanvasAction = this.$handleAction.bind(this), C(t, u, this.$onCanvasActionStart), C(t, l, this.$onCanvasActionEnd), C(t, c, this.$onCanvasAction)), this.$onLoad = this.$handleLoad.bind(this), C(e, f, this.$onLoad), e.complete && e.naturalWidth > 0 && e.naturalHeight > 0 && this.$handleLoad(), this.$getShadowRoot().appendChild(e);
75
80
  }
76
81
  disconnectedCallback() {
77
82
  let { $image: e, $canvas: t } = this;
78
- t && (this.$onCanvasActionStart &&= (x(t, u, this.$onCanvasActionStart), null), this.$onCanvasActionEnd &&= (x(t, l, this.$onCanvasActionEnd), null), this.$onCanvasAction &&= (x(t, c, this.$onCanvasAction), null)), e && this.$onLoad && (x(e, f, this.$onLoad), this.$onLoad = null), this.$getShadowRoot().removeChild(e), super.disconnectedCallback();
83
+ t && (this.$onCanvasActionStart &&= (S(t, u, this.$onCanvasActionStart), null), this.$onCanvasActionEnd &&= (S(t, l, this.$onCanvasActionEnd), null), this.$onCanvasAction &&= (S(t, c, this.$onCanvasAction), null)), e && this.$onLoad && (S(e, f, this.$onLoad), this.$onLoad = null), this.$getShadowRoot().removeChild(e), super.disconnectedCallback();
84
+ }
85
+ $exceedsFit(e, t) {
86
+ let { naturalWidth: n, naturalHeight: r } = this.$image, { maxFit: i, minFit: a } = this;
87
+ switch (i === "scale-down" && (i = n >= t.width || r >= t.height ? p : g), i) {
88
+ case m:
89
+ if (e.width > t.width && e.height > t.height) return !0;
90
+ break;
91
+ case h:
92
+ case p:
93
+ if (e.width > t.width || e.height > t.height) return !0;
94
+ break;
95
+ case g: if (e.width > n || e.height > r) return !0;
96
+ }
97
+ switch (a === "scale-down" && (a = n >= t.width || r >= t.height ? p : g), a) {
98
+ case m:
99
+ case h:
100
+ if (e.width < t.width || e.height < t.height) return !0;
101
+ break;
102
+ case p:
103
+ if (e.width < t.width && e.height < t.height) return !0;
104
+ break;
105
+ case g: if (e.width < n || e.height < r) return !0;
106
+ }
107
+ return !1;
108
+ }
109
+ $exceedsInset(e, t) {
110
+ return v([
111
+ e.top - t.top,
112
+ t.right - e.right,
113
+ t.bottom - e.bottom,
114
+ e.left - t.left
115
+ ], this.maxInset, this.minInset, this.$canvas, t);
79
116
  }
80
117
  $handleLoad() {
81
118
  let { $image: e } = this;
@@ -109,8 +146,11 @@ var E = ":host{display:inline-block}img{display:block;height:100%;max-height:non
109
146
  if (a) {
110
147
  let e = a.target.closest(this.$getTagNameOf(s));
111
148
  if (!e || !e.zoomable || e.zoomable && e.dynamic) {
112
- let { x: e, y: t } = this.getBoundingClientRect();
113
- this.$zoom(c.scale, a.clientX - e, a.clientY - t);
149
+ if (this.zoomAroundCenter) this.$zoom(c.scale);
150
+ else {
151
+ let { x: e, y: t } = this.getBoundingClientRect();
152
+ this.$zoom(c.scale, a.clientX - e, a.clientY - t);
153
+ }
114
154
  }
115
155
  } else this.$zoom(c.scale);
116
156
  }
@@ -138,16 +178,16 @@ var E = ":host{display:inline-block}img{display:block;height:100%;max-height:non
138
178
  if (t.complete) t.naturalWidth > 0 && t.naturalHeight > 0 ? e(t) : n(r);
139
179
  else {
140
180
  let i = () => {
141
- x(t, d, a), setTimeout(() => {
181
+ S(t, d, a), setTimeout(() => {
142
182
  e(t);
143
183
  });
144
184
  }, a = () => {
145
- x(t, f, i), n(r);
185
+ S(t, f, i), n(r);
146
186
  };
147
- C(t, f, i), C(t, d, a);
187
+ w(t, f, i), w(t, d, a);
148
188
  }
149
189
  });
150
- return v(e) && n.then((t) => (e(t), t)), n;
190
+ return y(e) && n.then((t) => (e(t), t)), n;
151
191
  }
152
192
  $center(e) {
153
193
  let { parentElement: t } = this;
@@ -214,14 +254,14 @@ var E = ":host{display:inline-block}img{display:block;height:100%;max-height:non
214
254
  return this;
215
255
  }
216
256
  $move(e, t = e) {
217
- if (this.translatable && y(e) && y(t)) {
218
- let [n, r, i, a] = this.$matrix, o = (e * a - i * t) / (n * a - i * r), s = (t * n - r * e) / (n * a - i * r);
219
- this.$translate(o, s);
257
+ if (this.translatable && b(e) && b(t)) {
258
+ let [n, r, i, a] = this.$matrix, o = (e * a - i * t) / (n * a - i * r), s = (t * n - r * e) / (n * a - i * r), { $matrix: c } = this;
259
+ this.$translate(o, s), this.$matrix === c && this.$insetRejected && e !== 0 && t !== 0 && (this.$move(e, 0), this.$move(0, t));
220
260
  }
221
261
  return this;
222
262
  }
223
263
  $moveTo(e, t = e) {
224
- if (this.translatable && y(e) && y(t)) {
264
+ if (this.translatable && b(e) && b(t)) {
225
265
  let [n, r, i, a] = this.$matrix, o = (e * a - i * t) / (n * a - i * r), s = (t * n - r * e) / (n * a - i * r);
226
266
  this.$setTransform(n, r, i, a, o, s);
227
267
  }
@@ -229,13 +269,13 @@ var E = ":host{display:inline-block}img{display:block;height:100%;max-height:non
229
269
  }
230
270
  $rotate(e, t, n) {
231
271
  if (this.rotatable) {
232
- let r = w(e), i = Math.cos(r), a = Math.sin(r), [o, s, c, l] = [
272
+ let r = T(e), i = Math.cos(r), a = Math.sin(r), [o, s, c, l] = [
233
273
  i,
234
274
  a,
235
275
  -a,
236
276
  i
237
277
  ];
238
- if (y(t) && y(n)) {
278
+ if (b(t) && b(n)) {
239
279
  let [e, r, i, a] = this.$matrix, { width: u, height: d } = this.getBoundingClientRect(), f = u / 2, p = d / 2, m = t - f, h = n - p, g = (m * a - i * h) / (e * a - i * r), _ = (h * e - r * m) / (e * a - i * r);
240
280
  this.$transform(o, s, c, l, g * (1 - o) - _ * c, _ * (1 - l) - g * s);
241
281
  } else this.$transform(o, s, c, l, 0, 0);
@@ -244,7 +284,7 @@ var E = ":host{display:inline-block}img{display:block;height:100%;max-height:non
244
284
  }
245
285
  $zoom(e, t, n) {
246
286
  if (!this.scalable || e === 0) return this;
247
- if (e < 0 ? e = 1 / (1 - e) : e += 1, y(t) && y(n)) {
287
+ if (e < 0 ? e = 1 / (1 - e) : e += 1, b(t) && b(n)) {
248
288
  let [r, i, a, o] = this.$matrix, { width: s, height: c } = this.getBoundingClientRect(), l = s / 2, u = c / 2, d = t - l, f = n - u, p = (d * o - a * f) / (r * o - a * i), m = (f * r - i * d) / (r * o - a * i);
249
289
  this.$transform(e, 0, 0, e, p * (1 - e), m * (1 - e));
250
290
  } else this.$scale(e);
@@ -255,16 +295,16 @@ var E = ":host{display:inline-block}img{display:block;height:100%;max-height:non
255
295
  }
256
296
  $skew(e, t = 0) {
257
297
  if (this.skewable) {
258
- let n = w(e), r = w(t);
298
+ let n = T(e), r = T(t);
259
299
  this.$transform(1, Math.tan(r), Math.tan(n), 1, 0, 0);
260
300
  }
261
301
  return this;
262
302
  }
263
303
  $translate(e, t = e) {
264
- return this.translatable && y(e) && y(t) && this.$transform(1, 0, 0, 1, e, t), this;
304
+ return this.translatable && b(e) && b(t) && this.$transform(1, 0, 0, 1, e, t), this;
265
305
  }
266
306
  $transform(e, t, n, r, i, a) {
267
- return y(e) && y(t) && y(n) && y(r) && y(i) && y(a) ? this.$setTransform(b(this.$matrix, [
307
+ return b(e) && b(t) && b(n) && b(r) && b(i) && b(a) ? this.$setTransform(x(this.$matrix, [
268
308
  e,
269
309
  t,
270
310
  n,
@@ -274,7 +314,7 @@ var E = ":host{display:inline-block}img{display:block;height:100%;max-height:non
274
314
  ])) : this;
275
315
  }
276
316
  $setTransform(e, t, n, r, i, a) {
277
- if ((this.rotatable || this.scalable || this.skewable || this.translatable) && (Array.isArray(e) && ([e, t, n, r, i, a] = e), y(e) && y(t) && y(n) && y(r) && y(i) && y(a))) {
317
+ if (this.$insetRejected = !1, (this.rotatable || this.scalable || this.skewable || this.translatable) && (Array.isArray(e) && ([e, t, n, r, i, a] = e), b(e) && b(t) && b(n) && b(r) && b(i) && b(a))) {
278
318
  let o = [...this.$matrix], s = [
279
319
  e,
280
320
  t,
@@ -287,32 +327,8 @@ var E = ":host{display:inline-block}img{display:block;height:100%;max-height:non
287
327
  let { $canvas: e } = this, t = e.getBoundingClientRect();
288
328
  this.style.transform = `matrix(${s.join(", ")})`;
289
329
  let n = this.$image.getBoundingClientRect();
290
- this.style.transform = `matrix(${o.join(", ")})`;
291
- let { maxFit: r, minFit: i } = this;
292
- if (r || i) {
293
- if (n.top > t.bottom || n.right < t.left || n.bottom < t.top || n.left > t.right) return this;
294
- let { naturalWidth: e, naturalHeight: a } = this.$image;
295
- switch (r === "scale-down" && (r = e >= t.width || a >= t.height ? p : g), r) {
296
- case m:
297
- if (n.width > t.width && n.height > t.height) return this;
298
- break;
299
- case h:
300
- case p:
301
- if (n.width > t.width || n.height > t.height) return this;
302
- break;
303
- case g: if (n.width > e || n.height > a) return this;
304
- }
305
- switch (i === "scale-down" && (i = e >= t.width || a >= t.height ? p : g), i) {
306
- case m:
307
- case h:
308
- if (n.width < t.width || n.height < t.height) return this;
309
- break;
310
- case p:
311
- if (n.width < t.width && n.height < t.height) return this;
312
- break;
313
- case g: if (n.width < e || n.height < a) return this;
314
- }
315
- }
330
+ if (this.style.transform = `matrix(${o.join(", ")})`, this.$exceedsFit(n, t)) return this;
331
+ if (this.$exceedsInset(n, t)) return this.$insetRejected = !0, this;
316
332
  if (this.$emit("change", {
317
333
  x: n.x - t.x,
318
334
  y: n.y - t.y,
@@ -342,8 +358,8 @@ var E = ":host{display:inline-block}img{display:block;height:100%;max-height:non
342
358
  ]);
343
359
  }
344
360
  };
345
- k.$name = o, k.$version = "2.2.0";
361
+ A.$name = o, A.$version = "2.3.1";
346
362
  //#endregion
347
- export { k as default };
363
+ export { A as default };
348
364
 
349
365
  //# sourceMappingURL=element-image.esm.raw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"element-image.esm.raw.js","names":["CropperElement","style","canvasCache","NATIVE_ATTRIBUTES","CropperImage","OBJECT_FIT_CONTAIN","element","newValue","oldValue","name","$canvas","CROPPER_CANVAS","event","on","EVENT_ACTION_START","EVENT_ACTION_END","EVENT_ACTION","$image","EVENT_LOAD","off","detail","action","ACTION_ROTATE","ACTION_SCALE","ACTION_NONE","ACTION_MOVE","$selection","relatedEvent","CROPPER_SELECTION","x","y","ACTION_TRANSFORM","scale","cos","rotate","sin","scaleX","skewY","skewX","scaleY","clientRect","a","b","c","originX","originY","moveX","moveY","translateX","translateY","promise","error","resolve","reject","onLoad","EVENT_ERROR","onError","once","isFunction","callback","image","parentElement","container","containerWidth","containerHeight","startX","width","startY","height","endX","endY","translatable","size","maxFit","minFit","OBJECT_FIT_COVER","naturalWidth","naturalHeight","OBJECT_FIT_FILL","OBJECT_FIT_SCALE_DOWN","scalable","OBJECT_FIT_NONE","isNumber","d","e","f","radian","toAngleInRadian","angle","radianX","radianY","multiplyMatrices","oldMatrix","newMatrix","canvasRect","imageRect","CROPPER_IMAGE"],"sources":["../../../../../node_modules/@cropper/element-image/dist/element-image.esm.raw.js"],"sourcesContent":["import CropperElement from '@cropper/element';\nimport { CROPPER_IMAGE, OBJECT_FIT_CONTAIN, CROPPER_CANVAS, on, EVENT_ACTION_START, EVENT_ACTION_END, EVENT_ACTION, EVENT_LOAD, off, ACTION_TRANSFORM, ACTION_ROTATE, ACTION_SCALE, ACTION_NONE, CROPPER_SELECTION, ACTION_MOVE, once, EVENT_ERROR, isFunction, OBJECT_FIT_COVER, OBJECT_FIT_FILL, OBJECT_FIT_SCALE_DOWN, OBJECT_FIT_NONE, isNumber, toAngleInRadian, multiplyMatrices, EVENT_CHANGE, EVENT_TRANSFORM } from '@cropper/utils';\n\nvar style = `:host{display:inline-block}img{display:block;height:100%;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}`;\n\nconst canvasCache = new WeakMap();\nconst NATIVE_ATTRIBUTES = [\n 'alt',\n 'crossorigin',\n 'decoding',\n 'elementtiming',\n 'fetchpriority',\n 'loading',\n 'referrerpolicy',\n 'sizes',\n 'src',\n 'srcset',\n];\nclass CropperImage extends CropperElement {\n constructor() {\n super(...arguments);\n this.$isReady = false;\n this.$matrix = [1, 0, 0, 1, 0, 0];\n this.$onLoad = null;\n this.$onCanvasAction = null;\n this.$onCanvasActionEnd = null;\n this.$onCanvasActionStart = null;\n this.$actionStartTarget = null;\n this.$style = style;\n this.$image = new Image();\n /**\n * @deprecated since version 2.2.0, use `initialFit` instead.\n */\n this.initialCenterSize = '';\n this.initialFit = OBJECT_FIT_CONTAIN;\n this.maxFit = '';\n this.minFit = '';\n this.rotatable = false;\n this.scalable = false;\n this.skewable = false;\n this.slottable = false;\n this.translatable = false;\n // Native attributes\n this.alt = '';\n this.crossorigin = '';\n this.decoding = '';\n this.elementtiming = '';\n this.fetchpriority = '';\n this.loading = '';\n this.referrerpolicy = '';\n this.sizes = '';\n this.src = '';\n this.srcset = '';\n }\n set $canvas(element) {\n canvasCache.set(this, element);\n }\n get $canvas() {\n return canvasCache.get(this);\n }\n static get observedAttributes() {\n return super.observedAttributes.concat(NATIVE_ATTRIBUTES, [\n 'initial-center-size',\n 'initial-fit',\n 'max-fit',\n 'min-fit',\n 'rotatable',\n 'scalable',\n 'skewable',\n 'translatable',\n ]);\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (Object.is(newValue, oldValue)) {\n return;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n // Inherits the native attributes\n if (NATIVE_ATTRIBUTES.includes(name)) {\n if (newValue === null) {\n this.$image.removeAttribute(name);\n }\n else {\n this.$image.setAttribute(name, newValue);\n }\n }\n }\n $propertyChangedCallback(name, oldValue, newValue) {\n if (Object.is(newValue, oldValue)) {\n return;\n }\n super.$propertyChangedCallback(name, oldValue, newValue);\n switch (name) {\n case 'initialCenterSize':\n case 'initialFit':\n this.$nextTick(() => {\n if (this.$isReady && this.$canvas) {\n this.$center(newValue);\n }\n });\n break;\n case 'maxFit':\n case 'minFit':\n this.$nextTick(() => {\n if (this.$isReady && this.$canvas) {\n this.$resetTransform();\n this.$center(this.initialCenterSize || this.initialFit);\n }\n });\n break;\n case 'src':\n this.$isReady = false;\n break;\n }\n }\n connectedCallback() {\n super.connectedCallback();\n const { $image } = this;\n const $canvas = this.closest(this.$getTagNameOf(CROPPER_CANVAS));\n if ($canvas) {\n this.$canvas = $canvas;\n this.$setStyles({\n // Make it a block element to avoid side effects (#1074).\n display: 'block',\n position: 'absolute',\n });\n this.$onCanvasActionStart = (event) => {\n var _a, _b;\n if (event.defaultPrevented) {\n return;\n }\n this.$actionStartTarget = (_b = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.relatedEvent) === null || _b === void 0 ? void 0 : _b.target;\n };\n this.$onCanvasActionEnd = () => {\n this.$actionStartTarget = null;\n };\n this.$onCanvasAction = this.$handleAction.bind(this);\n on($canvas, EVENT_ACTION_START, this.$onCanvasActionStart);\n on($canvas, EVENT_ACTION_END, this.$onCanvasActionEnd);\n on($canvas, EVENT_ACTION, this.$onCanvasAction);\n }\n this.$onLoad = this.$handleLoad.bind(this);\n on($image, EVENT_LOAD, this.$onLoad);\n this.$getShadowRoot().appendChild($image);\n }\n disconnectedCallback() {\n const { $image, $canvas } = this;\n if ($canvas) {\n if (this.$onCanvasActionStart) {\n off($canvas, EVENT_ACTION_START, this.$onCanvasActionStart);\n this.$onCanvasActionStart = null;\n }\n if (this.$onCanvasActionEnd) {\n off($canvas, EVENT_ACTION_END, this.$onCanvasActionEnd);\n this.$onCanvasActionEnd = null;\n }\n if (this.$onCanvasAction) {\n off($canvas, EVENT_ACTION, this.$onCanvasAction);\n this.$onCanvasAction = null;\n }\n }\n if ($image && this.$onLoad) {\n off($image, EVENT_LOAD, this.$onLoad);\n this.$onLoad = null;\n }\n this.$getShadowRoot().removeChild($image);\n super.disconnectedCallback();\n }\n $handleLoad() {\n const { $image } = this;\n this.$setStyles({\n width: $image.naturalWidth,\n height: $image.naturalHeight,\n });\n if (this.$canvas) {\n this.$center(this.initialCenterSize || this.initialFit);\n }\n this.$isReady = true;\n }\n $handleAction(event) {\n if (event.defaultPrevented\n || this.hidden\n || !(this.rotatable || this.scalable || this.translatable)) {\n return;\n }\n const { $canvas } = this;\n const { detail } = event;\n if (detail) {\n const { relatedEvent } = detail;\n let { action } = detail;\n if (action === ACTION_TRANSFORM && (!this.rotatable || !this.scalable)) {\n if (this.rotatable) {\n action = ACTION_ROTATE;\n }\n else if (this.scalable) {\n action = ACTION_SCALE;\n }\n else {\n action = ACTION_NONE;\n }\n }\n switch (action) {\n case ACTION_MOVE:\n if (this.translatable) {\n let $selection = null;\n if (relatedEvent) {\n $selection = relatedEvent.target.closest(this.$getTagNameOf(CROPPER_SELECTION));\n }\n if (!$selection) {\n $selection = $canvas.querySelector(this.$getTagNameOf(CROPPER_SELECTION));\n }\n if ($selection && $selection.multiple && !$selection.active) {\n $selection = $canvas.querySelector(`${this.$getTagNameOf(CROPPER_SELECTION)}[active]`);\n }\n if (!$selection || $selection.hidden || !$selection.movable || $selection.dynamic\n || !(this.$actionStartTarget && $selection.contains(this.$actionStartTarget))) {\n this.$move(detail.endX - detail.startX, detail.endY - detail.startY);\n }\n }\n break;\n case ACTION_ROTATE:\n if (this.rotatable) {\n if (relatedEvent) {\n const { x, y } = this.getBoundingClientRect();\n this.$rotate(detail.rotate, relatedEvent.clientX - x, relatedEvent.clientY - y);\n }\n else {\n this.$rotate(detail.rotate);\n }\n }\n break;\n case ACTION_SCALE:\n if (this.scalable) {\n if (relatedEvent) {\n const $selection = relatedEvent.target.closest(this.$getTagNameOf(CROPPER_SELECTION));\n if (!$selection\n || !$selection.zoomable\n || ($selection.zoomable && $selection.dynamic)) {\n const { x, y } = this.getBoundingClientRect();\n this.$zoom(detail.scale, relatedEvent.clientX - x, relatedEvent.clientY - y);\n }\n }\n else {\n this.$zoom(detail.scale);\n }\n }\n break;\n case ACTION_TRANSFORM:\n if (this.rotatable && this.scalable) {\n const { rotate } = detail;\n let { scale } = detail;\n if (scale < 0) {\n scale = 1 / (1 - scale);\n }\n else {\n scale += 1;\n }\n const cos = Math.cos(rotate);\n const sin = Math.sin(rotate);\n const [scaleX, skewY, skewX, scaleY] = [\n cos * scale,\n sin * scale,\n -sin * scale,\n cos * scale,\n ];\n if (relatedEvent) {\n const clientRect = this.getBoundingClientRect();\n const x = relatedEvent.clientX - clientRect.x;\n const y = relatedEvent.clientY - clientRect.y;\n const [a, b, c, d] = this.$matrix;\n const originX = clientRect.width / 2;\n const originY = clientRect.height / 2;\n const moveX = x - originX;\n const moveY = y - originY;\n const translateX = ((moveX * d) - (c * moveY)) / ((a * d) - (c * b));\n const translateY = ((moveY * a) - (b * moveX)) / ((a * d) - (c * b));\n /**\n * Equals to\n * this.$rotate(rotate, x, y);\n * this.$scale(scale, x, y);\n */\n this.$transform(scaleX, skewY, skewX, scaleY, translateX * (1 - scaleX) + translateY * skewX, translateY * (1 - scaleY) + translateX * skewY);\n }\n else {\n /**\n * Equals to\n * this.$rotate(rotate);\n * this.$scale(scale);\n */\n this.$transform(scaleX, skewY, skewX, scaleY, 0, 0);\n }\n }\n break;\n }\n }\n }\n /**\n * Defers the callback to execute after successfully loading the image.\n * @param {Function} [callback] The callback to execute after successfully loading the image.\n * @returns {Promise} Returns a promise that resolves to the image element.\n */\n $ready(callback) {\n const { $image } = this;\n const promise = new Promise((resolve, reject) => {\n const error = new Error('Failed to load the image source');\n if ($image.complete) {\n if ($image.naturalWidth > 0 && $image.naturalHeight > 0) {\n resolve($image);\n }\n else {\n reject(error);\n }\n }\n else {\n const onLoad = () => {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n off($image, EVENT_ERROR, onError);\n // Ensure the image is fully rendered.\n setTimeout(() => {\n resolve($image);\n });\n };\n const onError = () => {\n off($image, EVENT_LOAD, onLoad);\n reject(error);\n };\n once($image, EVENT_LOAD, onLoad);\n once($image, EVENT_ERROR, onError);\n }\n });\n if (isFunction(callback)) {\n promise.then((image) => {\n callback(image);\n return image;\n });\n }\n return promise;\n }\n /**\n * Aligns the image to the center of its parent element.\n * @param {string} [size] The size of the image.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $center(size) {\n const { parentElement } = this;\n if (!parentElement) {\n return this;\n }\n const container = parentElement.getBoundingClientRect();\n const containerWidth = container.width;\n const containerHeight = container.height;\n const { x, y, width, height, } = this.getBoundingClientRect();\n const startX = x + (width / 2);\n const startY = y + (height / 2);\n const endX = container.x + (containerWidth / 2);\n const endY = container.y + (containerHeight / 2);\n const { translatable } = this;\n if (!translatable && !this.$isReady) {\n this.translatable = true;\n this.$nextTick(() => {\n this.translatable = translatable;\n });\n }\n this.$move(endX - startX, endY - startY);\n const { maxFit, minFit } = this;\n if (size || maxFit || minFit) {\n const { naturalWidth, naturalHeight } = this.$image;\n switch (size) {\n case OBJECT_FIT_COVER:\n if ([\n OBJECT_FIT_FILL,\n OBJECT_FIT_CONTAIN,\n OBJECT_FIT_SCALE_DOWN,\n ].includes(maxFit) || (maxFit === OBJECT_FIT_NONE\n && (naturalWidth < containerWidth || naturalHeight < containerHeight))) {\n size = maxFit;\n }\n else if (minFit === OBJECT_FIT_NONE\n && naturalWidth > containerWidth\n && naturalHeight > containerHeight) {\n size = minFit;\n }\n break;\n case OBJECT_FIT_FILL:\n if ([OBJECT_FIT_CONTAIN, OBJECT_FIT_SCALE_DOWN].includes(maxFit) || (maxFit === OBJECT_FIT_NONE\n && (naturalWidth < containerWidth || naturalHeight < containerHeight))) {\n size = maxFit;\n }\n else if (minFit === OBJECT_FIT_COVER || (minFit === OBJECT_FIT_NONE\n && naturalWidth > containerWidth\n && naturalHeight > containerHeight)) {\n size = minFit;\n }\n break;\n case OBJECT_FIT_CONTAIN:\n if (maxFit === OBJECT_FIT_SCALE_DOWN || (maxFit === OBJECT_FIT_NONE\n && naturalWidth < containerWidth\n && naturalHeight < containerHeight)) {\n size = maxFit;\n }\n else if ([OBJECT_FIT_COVER, OBJECT_FIT_FILL].includes(minFit) || (minFit === OBJECT_FIT_NONE\n && (naturalWidth > containerWidth || naturalHeight > containerHeight))) {\n size = minFit;\n }\n break;\n case OBJECT_FIT_SCALE_DOWN:\n if (maxFit === OBJECT_FIT_NONE\n && naturalWidth < containerWidth\n && naturalHeight < containerHeight) {\n size = maxFit;\n }\n else if ([OBJECT_FIT_COVER, OBJECT_FIT_FILL, OBJECT_FIT_CONTAIN].includes(minFit) || (minFit === OBJECT_FIT_NONE\n && (naturalWidth > containerWidth && naturalHeight > containerHeight))) {\n size = minFit;\n }\n break;\n // case OBJECT_FIT_NONE:\n default:\n if ([\n OBJECT_FIT_COVER,\n OBJECT_FIT_FILL,\n OBJECT_FIT_CONTAIN,\n OBJECT_FIT_SCALE_DOWN,\n ].includes(maxFit)\n && (naturalWidth > containerWidth || naturalHeight > containerHeight)) {\n size = maxFit;\n }\n else if ([\n OBJECT_FIT_COVER,\n OBJECT_FIT_FILL,\n OBJECT_FIT_CONTAIN,\n OBJECT_FIT_SCALE_DOWN,\n ].includes(minFit) && naturalWidth < containerWidth && naturalHeight < containerHeight) {\n size = minFit;\n }\n }\n const scaleX = containerWidth / width;\n const scaleY = containerHeight / height;\n const { scalable } = this;\n if (!scalable && !this.$isReady) {\n this.scalable = true;\n this.$nextTick(() => {\n this.scalable = scalable;\n });\n }\n switch (size) {\n case OBJECT_FIT_COVER:\n this.$scale(Math.max(scaleX, scaleY));\n break;\n case OBJECT_FIT_CONTAIN:\n this.$scale(Math.min(scaleX, scaleY));\n break;\n case OBJECT_FIT_FILL:\n this.$scale(scaleX, scaleY);\n break;\n case OBJECT_FIT_SCALE_DOWN:\n this.$scale(Math.min(scaleX, scaleY, 1));\n break;\n case OBJECT_FIT_NONE:\n this.$scale(1);\n break;\n }\n }\n return this;\n }\n /**\n * Moves the image.\n * @param {number} x The moving distance in the horizontal direction.\n * @param {number} [y] The moving distance in the vertical direction.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $move(x, y = x) {\n if (this.translatable && isNumber(x) && isNumber(y)) {\n const [a, b, c, d] = this.$matrix;\n const e = ((x * d) - (c * y)) / ((a * d) - (c * b));\n const f = ((y * a) - (b * x)) / ((a * d) - (c * b));\n this.$translate(e, f);\n }\n return this;\n }\n /**\n * Moves the image to a specific position.\n * @param {number} x The new position in the horizontal direction.\n * @param {number} [y] The new position in the vertical direction.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $moveTo(x, y = x) {\n if (this.translatable && isNumber(x) && isNumber(y)) {\n const [a, b, c, d] = this.$matrix;\n const e = ((x * d) - (c * y)) / ((a * d) - (c * b));\n const f = ((y * a) - (b * x)) / ((a * d) - (c * b));\n this.$setTransform(a, b, c, d, e, f);\n }\n return this;\n }\n /**\n * Rotates the image.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate}\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/rotate}\n * @param {number|string} angle The rotation angle (in radians).\n * @param {number} [x] The rotation origin in the horizontal, defaults to the center of the image.\n * @param {number} [y] The rotation origin in the vertical, defaults to the center of the image.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $rotate(angle, x, y) {\n if (this.rotatable) {\n const radian = toAngleInRadian(angle);\n const cos = Math.cos(radian);\n const sin = Math.sin(radian);\n const [scaleX, skewY, skewX, scaleY] = [cos, sin, -sin, cos];\n if (isNumber(x) && isNumber(y)) {\n const [a, b, c, d] = this.$matrix;\n const { width, height } = this.getBoundingClientRect();\n const originX = width / 2;\n const originY = height / 2;\n const moveX = x - originX;\n const moveY = y - originY;\n const translateX = ((moveX * d) - (c * moveY)) / ((a * d) - (c * b));\n const translateY = ((moveY * a) - (b * moveX)) / ((a * d) - (c * b));\n /**\n * Equals to\n * this.$translate(translateX, translateX);\n * this.$rotate(angle);\n * this.$translate(-translateX, -translateX);\n */\n this.$transform(scaleX, skewY, skewX, scaleY, translateX * (1 - scaleX) - translateY * skewX, translateY * (1 - scaleY) - translateX * skewY);\n }\n else {\n this.$transform(scaleX, skewY, skewX, scaleY, 0, 0);\n }\n }\n return this;\n }\n /**\n * Zooms the image.\n * @param {number} scale The zoom factor. Positive numbers for zooming in, and negative numbers for zooming out.\n * @param {number} [x] The zoom origin in the horizontal, defaults to the center of the image.\n * @param {number} [y] The zoom origin in the vertical, defaults to the center of the image.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $zoom(scale, x, y) {\n if (!this.scalable || scale === 0) {\n return this;\n }\n if (scale < 0) {\n scale = 1 / (1 - scale);\n }\n else {\n scale += 1;\n }\n if (isNumber(x) && isNumber(y)) {\n const [a, b, c, d] = this.$matrix;\n const { width, height } = this.getBoundingClientRect();\n const originX = width / 2;\n const originY = height / 2;\n const moveX = x - originX;\n const moveY = y - originY;\n const translateX = ((moveX * d) - (c * moveY)) / ((a * d) - (c * b));\n const translateY = ((moveY * a) - (b * moveX)) / ((a * d) - (c * b));\n /**\n * Equals to\n * this.$translate(translateX, translateX);\n * this.$scale(scale);\n * this.$translate(-translateX, -translateX);\n */\n this.$transform(scale, 0, 0, scale, translateX * (1 - scale), translateY * (1 - scale));\n }\n else {\n this.$scale(scale);\n }\n return this;\n }\n /**\n * Scales the image.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scale}\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/scale}\n * @param {number} x The scaling factor in the horizontal direction.\n * @param {number} [y] The scaling factor in the vertical direction.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $scale(x, y = x) {\n if (this.scalable) {\n this.$transform(x, 0, 0, y, 0, 0);\n }\n return this;\n }\n /**\n * Skews the image.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skew}\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/transform}\n * @param {number|string} x The skewing angle in the horizontal direction.\n * @param {number|string} [y] The skewing angle in the vertical direction.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $skew(x, y = 0) {\n if (this.skewable) {\n const radianX = toAngleInRadian(x);\n const radianY = toAngleInRadian(y);\n this.$transform(1, Math.tan(radianY), Math.tan(radianX), 1, 0, 0);\n }\n return this;\n }\n /**\n * Translates the image.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translate}\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/translate}\n * @param {number} x The translating distance in the horizontal direction.\n * @param {number} [y] The translating distance in the vertical direction.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $translate(x, y = x) {\n if (this.translatable && isNumber(x) && isNumber(y)) {\n this.$transform(1, 0, 0, 1, x, y);\n }\n return this;\n }\n /**\n * Transforms the image.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix}\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/transform}\n * @param {number} a The scaling factor in the horizontal direction.\n * @param {number} b The skewing angle in the vertical direction.\n * @param {number} c The skewing angle in the horizontal direction.\n * @param {number} d The scaling factor in the vertical direction.\n * @param {number} e The translating distance in the horizontal direction.\n * @param {number} f The translating distance in the vertical direction.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $transform(a, b, c, d, e, f) {\n if (isNumber(a)\n && isNumber(b)\n && isNumber(c)\n && isNumber(d)\n && isNumber(e)\n && isNumber(f)) {\n return this.$setTransform(multiplyMatrices(this.$matrix, [a, b, c, d, e, f]));\n }\n return this;\n }\n /**\n * Resets (overrides) the current transform to the specific identity matrix.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setTransform}\n * @param {number|Array} a The scaling factor in the horizontal direction.\n * @param {number} b The skewing angle in the vertical direction.\n * @param {number} c The skewing angle in the horizontal direction.\n * @param {number} d The scaling factor in the vertical direction.\n * @param {number} e The translating distance in the horizontal direction.\n * @param {number} f The translating distance in the vertical direction.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $setTransform(a, b, c, d, e, f) {\n if (this.rotatable || this.scalable || this.skewable || this.translatable) {\n if (Array.isArray(a)) {\n [a, b, c, d, e, f] = a;\n }\n if (isNumber(a)\n && isNumber(b)\n && isNumber(c)\n && isNumber(d)\n && isNumber(e)\n && isNumber(f)) {\n const oldMatrix = [...this.$matrix];\n const newMatrix = [a, b, c, d, e, f];\n if (this.$isReady && this.$canvas) {\n const { $canvas } = this;\n const canvasRect = $canvas.getBoundingClientRect();\n this.style.transform = `matrix(${newMatrix.join(', ')})`;\n const imageRect = this.$image.getBoundingClientRect();\n this.style.transform = `matrix(${oldMatrix.join(', ')})`;\n let { maxFit, minFit } = this;\n if (maxFit || minFit) {\n // Check if the image is completely outside the canvas after transformation,\n // if so, skip the transformation to avoid losing the image.\n if (imageRect.top > canvasRect.bottom\n || imageRect.right < canvasRect.left\n || imageRect.bottom < canvasRect.top\n || imageRect.left > canvasRect.right) {\n return this;\n }\n const { naturalWidth, naturalHeight } = this.$image;\n if (maxFit === OBJECT_FIT_SCALE_DOWN) {\n if (naturalWidth >= canvasRect.width || naturalHeight >= canvasRect.height) {\n maxFit = OBJECT_FIT_CONTAIN;\n }\n else {\n maxFit = OBJECT_FIT_NONE;\n }\n }\n switch (maxFit) {\n case OBJECT_FIT_COVER:\n if (imageRect.width > canvasRect.width && imageRect.height > canvasRect.height) {\n return this;\n }\n break;\n case OBJECT_FIT_FILL:\n case OBJECT_FIT_CONTAIN:\n if (imageRect.width > canvasRect.width || imageRect.height > canvasRect.height) {\n return this;\n }\n break;\n case OBJECT_FIT_NONE:\n if (imageRect.width > naturalWidth || imageRect.height > naturalHeight) {\n return this;\n }\n break;\n }\n if (minFit === OBJECT_FIT_SCALE_DOWN) {\n if (naturalWidth >= canvasRect.width || naturalHeight >= canvasRect.height) {\n minFit = OBJECT_FIT_CONTAIN;\n }\n else {\n minFit = OBJECT_FIT_NONE;\n }\n }\n switch (minFit) {\n case OBJECT_FIT_COVER:\n case OBJECT_FIT_FILL:\n if (imageRect.width < canvasRect.width || imageRect.height < canvasRect.height) {\n return this;\n }\n break;\n case OBJECT_FIT_CONTAIN:\n if (imageRect.width < canvasRect.width && imageRect.height < canvasRect.height) {\n return this;\n }\n break;\n case OBJECT_FIT_NONE:\n if (imageRect.width < naturalWidth || imageRect.height < naturalHeight) {\n return this;\n }\n break;\n }\n }\n if (this.$emit(EVENT_CHANGE, {\n x: imageRect.x - canvasRect.x,\n y: imageRect.y - canvasRect.y,\n width: imageRect.width,\n height: imageRect.height,\n }) === false) {\n return this;\n }\n }\n if (this.$emit(EVENT_TRANSFORM, {\n matrix: newMatrix,\n oldMatrix,\n }) === false) {\n return this;\n }\n this.$matrix = newMatrix;\n this.style.transform = `matrix(${newMatrix.join(', ')})`;\n }\n }\n return this;\n }\n /**\n * Retrieves the current transformation matrix being applied to the element.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/getTransform}\n * @returns {Array} Returns the readonly transformation matrix.\n */\n $getTransform() {\n return this.$matrix.slice();\n }\n /**\n * Resets the current transform to the initial identity matrix.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/resetTransform}\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $resetTransform() {\n return this.$setTransform([1, 0, 0, 1, 0, 0]);\n }\n}\nCropperImage.$name = CROPPER_IMAGE;\nCropperImage.$version = '2.2.0';\n\nexport { CropperImage as default };\n"],"ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"element-image.esm.raw.js","names":["CropperElement","style","canvasCache","NATIVE_ATTRIBUTES","CropperImage","OBJECT_FIT_CONTAIN","element","newValue","oldValue","name","$canvas","CROPPER_CANVAS","event","on","EVENT_ACTION_START","EVENT_ACTION_END","EVENT_ACTION","$image","EVENT_LOAD","off","maxFit","naturalWidth","canvasRect","naturalHeight","OBJECT_FIT_NONE","OBJECT_FIT_COVER","imageRect","OBJECT_FIT_FILL","minFit","exceedsInset","detail","action","ACTION_ROTATE","ACTION_SCALE","ACTION_NONE","ACTION_MOVE","$selection","relatedEvent","CROPPER_SELECTION","x","y","ACTION_TRANSFORM","scale","cos","rotate","sin","scaleX","skewY","skewX","scaleY","clientRect","a","b","c","originX","originY","moveX","moveY","translateX","translateY","promise","error","resolve","reject","onLoad","EVENT_ERROR","onError","once","isFunction","callback","image","parentElement","container","containerWidth","containerHeight","startX","width","startY","height","endX","endY","translatable","size","OBJECT_FIT_SCALE_DOWN","scalable","isNumber","d","e","f","$matrix","radian","toAngleInRadian","angle","radianX","radianY","multiplyMatrices","oldMatrix","newMatrix","CROPPER_IMAGE"],"sources":["../../../../../node_modules/@cropper/element-image/dist/element-image.esm.raw.js"],"sourcesContent":["import CropperElement from '@cropper/element';\nimport { CROPPER_IMAGE, OBJECT_FIT_CONTAIN, CROPPER_CANVAS, on, EVENT_ACTION_START, EVENT_ACTION_END, EVENT_ACTION, EVENT_LOAD, off, OBJECT_FIT_SCALE_DOWN, OBJECT_FIT_NONE, OBJECT_FIT_FILL, OBJECT_FIT_COVER, exceedsInset, ACTION_TRANSFORM, ACTION_ROTATE, ACTION_SCALE, ACTION_NONE, CROPPER_SELECTION, ACTION_MOVE, once, EVENT_ERROR, isFunction, isNumber, toAngleInRadian, multiplyMatrices, EVENT_CHANGE, EVENT_TRANSFORM } from '@cropper/utils';\n\nvar style = `:host{display:inline-block}img{display:block;height:100%;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}`;\n\nconst canvasCache = new WeakMap();\nconst NATIVE_ATTRIBUTES = [\n 'alt',\n 'crossorigin',\n 'decoding',\n 'elementtiming',\n 'fetchpriority',\n 'loading',\n 'referrerpolicy',\n 'sizes',\n 'src',\n 'srcset',\n];\nclass CropperImage extends CropperElement {\n constructor() {\n super(...arguments);\n this.$isReady = false;\n this.$insetRejected = false;\n this.$matrix = [1, 0, 0, 1, 0, 0];\n this.$onLoad = null;\n this.$onCanvasAction = null;\n this.$onCanvasActionEnd = null;\n this.$onCanvasActionStart = null;\n this.$actionStartTarget = null;\n this.$style = style;\n this.$image = new Image();\n /**\n * @deprecated since version 2.2.0, use `initialFit` instead.\n */\n this.initialCenterSize = '';\n this.initialFit = OBJECT_FIT_CONTAIN;\n this.maxFit = '';\n this.minFit = '';\n this.maxInset = 'auto';\n this.minInset = 'auto';\n this.zoomAroundCenter = false;\n this.rotatable = false;\n this.scalable = false;\n this.skewable = false;\n this.slottable = false;\n this.translatable = false;\n // Native attributes\n this.alt = '';\n this.crossorigin = '';\n this.decoding = '';\n this.elementtiming = '';\n this.fetchpriority = '';\n this.loading = '';\n this.referrerpolicy = '';\n this.sizes = '';\n this.src = '';\n this.srcset = '';\n }\n set $canvas(element) {\n canvasCache.set(this, element);\n }\n get $canvas() {\n return canvasCache.get(this);\n }\n static get observedAttributes() {\n return super.observedAttributes.concat(NATIVE_ATTRIBUTES, [\n 'initial-center-size',\n 'initial-fit',\n 'max-fit',\n 'max-inset',\n 'min-fit',\n 'min-inset',\n 'rotatable',\n 'scalable',\n 'skewable',\n 'translatable',\n 'zoom-around-center',\n ]);\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (Object.is(newValue, oldValue)) {\n return;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n // Inherits the native attributes\n if (NATIVE_ATTRIBUTES.includes(name)) {\n if (newValue === null) {\n this.$image.removeAttribute(name);\n }\n else {\n this.$image.setAttribute(name, newValue);\n }\n }\n }\n $propertyChangedCallback(name, oldValue, newValue) {\n if (Object.is(newValue, oldValue)) {\n return;\n }\n super.$propertyChangedCallback(name, oldValue, newValue);\n switch (name) {\n case 'initialCenterSize':\n case 'initialFit':\n this.$nextTick(() => {\n if (this.$isReady && this.$canvas) {\n this.$center(newValue);\n }\n });\n break;\n case 'maxFit':\n case 'minFit':\n case 'maxInset':\n case 'minInset':\n this.$nextTick(() => {\n if (this.$isReady && this.$canvas) {\n this.$resetTransform();\n this.$center(this.initialCenterSize || this.initialFit);\n }\n });\n break;\n case 'src':\n this.$isReady = false;\n break;\n }\n }\n connectedCallback() {\n super.connectedCallback();\n const { $image } = this;\n const $canvas = this.closest(this.$getTagNameOf(CROPPER_CANVAS));\n if ($canvas) {\n this.$canvas = $canvas;\n this.$setStyles({\n // Make it a block element to avoid side effects (#1074).\n display: 'block',\n position: 'absolute',\n });\n this.$onCanvasActionStart = (event) => {\n var _a, _b;\n if (event.defaultPrevented) {\n return;\n }\n this.$actionStartTarget = (_b = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.relatedEvent) === null || _b === void 0 ? void 0 : _b.target;\n };\n this.$onCanvasActionEnd = () => {\n this.$actionStartTarget = null;\n };\n this.$onCanvasAction = this.$handleAction.bind(this);\n on($canvas, EVENT_ACTION_START, this.$onCanvasActionStart);\n on($canvas, EVENT_ACTION_END, this.$onCanvasActionEnd);\n on($canvas, EVENT_ACTION, this.$onCanvasAction);\n }\n this.$onLoad = this.$handleLoad.bind(this);\n on($image, EVENT_LOAD, this.$onLoad);\n if ($image.complete && $image.naturalWidth > 0 && $image.naturalHeight > 0) {\n this.$handleLoad();\n }\n this.$getShadowRoot().appendChild($image);\n }\n disconnectedCallback() {\n const { $image, $canvas } = this;\n if ($canvas) {\n if (this.$onCanvasActionStart) {\n off($canvas, EVENT_ACTION_START, this.$onCanvasActionStart);\n this.$onCanvasActionStart = null;\n }\n if (this.$onCanvasActionEnd) {\n off($canvas, EVENT_ACTION_END, this.$onCanvasActionEnd);\n this.$onCanvasActionEnd = null;\n }\n if (this.$onCanvasAction) {\n off($canvas, EVENT_ACTION, this.$onCanvasAction);\n this.$onCanvasAction = null;\n }\n }\n if ($image && this.$onLoad) {\n off($image, EVENT_LOAD, this.$onLoad);\n this.$onLoad = null;\n }\n this.$getShadowRoot().removeChild($image);\n super.disconnectedCallback();\n }\n $exceedsFit(imageRect, canvasRect) {\n const { naturalWidth, naturalHeight } = this.$image;\n let { maxFit, minFit } = this;\n if (maxFit === OBJECT_FIT_SCALE_DOWN) {\n if (naturalWidth >= canvasRect.width || naturalHeight >= canvasRect.height) {\n maxFit = OBJECT_FIT_CONTAIN;\n }\n else {\n maxFit = OBJECT_FIT_NONE;\n }\n }\n switch (maxFit) {\n case OBJECT_FIT_COVER:\n if (imageRect.width > canvasRect.width && imageRect.height > canvasRect.height) {\n return true;\n }\n break;\n case OBJECT_FIT_FILL:\n case OBJECT_FIT_CONTAIN:\n if (imageRect.width > canvasRect.width || imageRect.height > canvasRect.height) {\n return true;\n }\n break;\n case OBJECT_FIT_NONE:\n if (imageRect.width > naturalWidth || imageRect.height > naturalHeight) {\n return true;\n }\n break;\n }\n if (minFit === OBJECT_FIT_SCALE_DOWN) {\n if (naturalWidth >= canvasRect.width || naturalHeight >= canvasRect.height) {\n minFit = OBJECT_FIT_CONTAIN;\n }\n else {\n minFit = OBJECT_FIT_NONE;\n }\n }\n switch (minFit) {\n case OBJECT_FIT_COVER:\n case OBJECT_FIT_FILL:\n if (imageRect.width < canvasRect.width || imageRect.height < canvasRect.height) {\n return true;\n }\n break;\n case OBJECT_FIT_CONTAIN:\n if (imageRect.width < canvasRect.width && imageRect.height < canvasRect.height) {\n return true;\n }\n break;\n case OBJECT_FIT_NONE:\n if (imageRect.width < naturalWidth || imageRect.height < naturalHeight) {\n return true;\n }\n break;\n }\n return false;\n }\n $exceedsInset(imageRect, canvasRect) {\n return exceedsInset([\n imageRect.top - canvasRect.top,\n canvasRect.right - imageRect.right,\n canvasRect.bottom - imageRect.bottom,\n imageRect.left - canvasRect.left,\n ], this.maxInset, this.minInset, this.$canvas, canvasRect);\n }\n $handleLoad() {\n const { $image } = this;\n this.$setStyles({\n width: $image.naturalWidth,\n height: $image.naturalHeight,\n });\n if (this.$canvas) {\n this.$center(this.initialCenterSize || this.initialFit);\n }\n this.$isReady = true;\n }\n $handleAction(event) {\n if (event.defaultPrevented\n || this.hidden\n || !(this.rotatable || this.scalable || this.translatable)) {\n return;\n }\n const { $canvas } = this;\n const { detail } = event;\n if (detail) {\n const { relatedEvent } = detail;\n let { action } = detail;\n if (action === ACTION_TRANSFORM && (!this.rotatable || !this.scalable)) {\n if (this.rotatable) {\n action = ACTION_ROTATE;\n }\n else if (this.scalable) {\n action = ACTION_SCALE;\n }\n else {\n action = ACTION_NONE;\n }\n }\n switch (action) {\n case ACTION_MOVE:\n if (this.translatable) {\n let $selection = null;\n if (relatedEvent) {\n $selection = relatedEvent.target.closest(this.$getTagNameOf(CROPPER_SELECTION));\n }\n if (!$selection) {\n $selection = $canvas.querySelector(this.$getTagNameOf(CROPPER_SELECTION));\n }\n if ($selection && $selection.multiple && !$selection.active) {\n $selection = $canvas.querySelector(`${this.$getTagNameOf(CROPPER_SELECTION)}[active]`);\n }\n if (!$selection || $selection.hidden || !$selection.movable || $selection.dynamic\n || !(this.$actionStartTarget && $selection.contains(this.$actionStartTarget))) {\n this.$move(detail.endX - detail.startX, detail.endY - detail.startY);\n }\n }\n break;\n case ACTION_ROTATE:\n if (this.rotatable) {\n if (relatedEvent) {\n const { x, y } = this.getBoundingClientRect();\n this.$rotate(detail.rotate, relatedEvent.clientX - x, relatedEvent.clientY - y);\n }\n else {\n this.$rotate(detail.rotate);\n }\n }\n break;\n case ACTION_SCALE:\n if (this.scalable) {\n if (relatedEvent) {\n const $selection = relatedEvent.target.closest(this.$getTagNameOf(CROPPER_SELECTION));\n if (!$selection\n || !$selection.zoomable\n || ($selection.zoomable && $selection.dynamic)) {\n if (this.zoomAroundCenter) {\n this.$zoom(detail.scale);\n }\n else {\n const { x, y } = this.getBoundingClientRect();\n this.$zoom(detail.scale, relatedEvent.clientX - x, relatedEvent.clientY - y);\n }\n }\n }\n else {\n this.$zoom(detail.scale);\n }\n }\n break;\n case ACTION_TRANSFORM:\n if (this.rotatable && this.scalable) {\n const { rotate } = detail;\n let { scale } = detail;\n if (scale < 0) {\n scale = 1 / (1 - scale);\n }\n else {\n scale += 1;\n }\n const cos = Math.cos(rotate);\n const sin = Math.sin(rotate);\n const [scaleX, skewY, skewX, scaleY] = [\n cos * scale,\n sin * scale,\n -sin * scale,\n cos * scale,\n ];\n if (relatedEvent) {\n const clientRect = this.getBoundingClientRect();\n const x = relatedEvent.clientX - clientRect.x;\n const y = relatedEvent.clientY - clientRect.y;\n const [a, b, c, d] = this.$matrix;\n const originX = clientRect.width / 2;\n const originY = clientRect.height / 2;\n const moveX = x - originX;\n const moveY = y - originY;\n const translateX = ((moveX * d) - (c * moveY)) / ((a * d) - (c * b));\n const translateY = ((moveY * a) - (b * moveX)) / ((a * d) - (c * b));\n /**\n * Equals to\n * this.$rotate(rotate, x, y);\n * this.$scale(scale, x, y);\n */\n this.$transform(scaleX, skewY, skewX, scaleY, translateX * (1 - scaleX) + translateY * skewX, translateY * (1 - scaleY) + translateX * skewY);\n }\n else {\n /**\n * Equals to\n * this.$rotate(rotate);\n * this.$scale(scale);\n */\n this.$transform(scaleX, skewY, skewX, scaleY, 0, 0);\n }\n }\n break;\n }\n }\n }\n /**\n * Defers the callback to execute after successfully loading the image.\n * @param {Function} [callback] The callback to execute after successfully loading the image.\n * @returns {Promise} Returns a promise that resolves to the image element.\n */\n $ready(callback) {\n const { $image } = this;\n const promise = new Promise((resolve, reject) => {\n const error = new Error('Failed to load the image source');\n if ($image.complete) {\n if ($image.naturalWidth > 0 && $image.naturalHeight > 0) {\n resolve($image);\n }\n else {\n reject(error);\n }\n }\n else {\n const onLoad = () => {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n off($image, EVENT_ERROR, onError);\n // Ensure the image is fully rendered.\n setTimeout(() => {\n resolve($image);\n });\n };\n const onError = () => {\n off($image, EVENT_LOAD, onLoad);\n reject(error);\n };\n once($image, EVENT_LOAD, onLoad);\n once($image, EVENT_ERROR, onError);\n }\n });\n if (isFunction(callback)) {\n promise.then((image) => {\n callback(image);\n return image;\n });\n }\n return promise;\n }\n /**\n * Aligns the image to the center of its parent element.\n * @param {string} [size] The size of the image.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $center(size) {\n const { parentElement } = this;\n if (!parentElement) {\n return this;\n }\n const container = parentElement.getBoundingClientRect();\n const containerWidth = container.width;\n const containerHeight = container.height;\n const { x, y, width, height, } = this.getBoundingClientRect();\n const startX = x + (width / 2);\n const startY = y + (height / 2);\n const endX = container.x + (containerWidth / 2);\n const endY = container.y + (containerHeight / 2);\n const { translatable } = this;\n if (!translatable && !this.$isReady) {\n this.translatable = true;\n this.$nextTick(() => {\n this.translatable = translatable;\n });\n }\n this.$move(endX - startX, endY - startY);\n const { maxFit, minFit } = this;\n if (size || maxFit || minFit) {\n const { naturalWidth, naturalHeight } = this.$image;\n switch (size) {\n case OBJECT_FIT_COVER:\n if ([\n OBJECT_FIT_FILL,\n OBJECT_FIT_CONTAIN,\n OBJECT_FIT_SCALE_DOWN,\n ].includes(maxFit) || (maxFit === OBJECT_FIT_NONE\n && (naturalWidth < containerWidth || naturalHeight < containerHeight))) {\n size = maxFit;\n }\n else if (minFit === OBJECT_FIT_NONE\n && naturalWidth > containerWidth\n && naturalHeight > containerHeight) {\n size = minFit;\n }\n break;\n case OBJECT_FIT_FILL:\n if ([OBJECT_FIT_CONTAIN, OBJECT_FIT_SCALE_DOWN].includes(maxFit) || (maxFit === OBJECT_FIT_NONE\n && (naturalWidth < containerWidth || naturalHeight < containerHeight))) {\n size = maxFit;\n }\n else if (minFit === OBJECT_FIT_COVER || (minFit === OBJECT_FIT_NONE\n && naturalWidth > containerWidth\n && naturalHeight > containerHeight)) {\n size = minFit;\n }\n break;\n case OBJECT_FIT_CONTAIN:\n if (maxFit === OBJECT_FIT_SCALE_DOWN || (maxFit === OBJECT_FIT_NONE\n && naturalWidth < containerWidth\n && naturalHeight < containerHeight)) {\n size = maxFit;\n }\n else if ([OBJECT_FIT_COVER, OBJECT_FIT_FILL].includes(minFit) || (minFit === OBJECT_FIT_NONE\n && (naturalWidth > containerWidth || naturalHeight > containerHeight))) {\n size = minFit;\n }\n break;\n case OBJECT_FIT_SCALE_DOWN:\n if (maxFit === OBJECT_FIT_NONE\n && naturalWidth < containerWidth\n && naturalHeight < containerHeight) {\n size = maxFit;\n }\n else if ([OBJECT_FIT_COVER, OBJECT_FIT_FILL, OBJECT_FIT_CONTAIN].includes(minFit) || (minFit === OBJECT_FIT_NONE\n && (naturalWidth > containerWidth && naturalHeight > containerHeight))) {\n size = minFit;\n }\n break;\n // case OBJECT_FIT_NONE:\n default:\n if ([\n OBJECT_FIT_COVER,\n OBJECT_FIT_FILL,\n OBJECT_FIT_CONTAIN,\n OBJECT_FIT_SCALE_DOWN,\n ].includes(maxFit)\n && (naturalWidth > containerWidth || naturalHeight > containerHeight)) {\n size = maxFit;\n }\n else if ([\n OBJECT_FIT_COVER,\n OBJECT_FIT_FILL,\n OBJECT_FIT_CONTAIN,\n OBJECT_FIT_SCALE_DOWN,\n ].includes(minFit) && naturalWidth < containerWidth && naturalHeight < containerHeight) {\n size = minFit;\n }\n }\n const scaleX = containerWidth / width;\n const scaleY = containerHeight / height;\n const { scalable } = this;\n if (!scalable && !this.$isReady) {\n this.scalable = true;\n this.$nextTick(() => {\n this.scalable = scalable;\n });\n }\n switch (size) {\n case OBJECT_FIT_COVER:\n this.$scale(Math.max(scaleX, scaleY));\n break;\n case OBJECT_FIT_CONTAIN:\n this.$scale(Math.min(scaleX, scaleY));\n break;\n case OBJECT_FIT_FILL:\n this.$scale(scaleX, scaleY);\n break;\n case OBJECT_FIT_SCALE_DOWN:\n this.$scale(Math.min(scaleX, scaleY, 1));\n break;\n case OBJECT_FIT_NONE:\n this.$scale(1);\n break;\n }\n }\n return this;\n }\n /**\n * Moves the image.\n * @param {number} x The moving distance in the horizontal direction.\n * @param {number} [y] The moving distance in the vertical direction.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $move(x, y = x) {\n if (this.translatable && isNumber(x) && isNumber(y)) {\n const [a, b, c, d] = this.$matrix;\n const e = ((x * d) - (c * y)) / ((a * d) - (c * b));\n const f = ((y * a) - (b * x)) / ((a * d) - (c * b));\n const { $matrix } = this;\n this.$translate(e, f);\n // Slides along the inset limit instead of sticking when only one axis breaks it.\n if (this.$matrix === $matrix && this.$insetRejected && x !== 0 && y !== 0) {\n this.$move(x, 0);\n this.$move(0, y);\n }\n }\n return this;\n }\n /**\n * Moves the image to a specific position.\n * @param {number} x The new position in the horizontal direction.\n * @param {number} [y] The new position in the vertical direction.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $moveTo(x, y = x) {\n if (this.translatable && isNumber(x) && isNumber(y)) {\n const [a, b, c, d] = this.$matrix;\n const e = ((x * d) - (c * y)) / ((a * d) - (c * b));\n const f = ((y * a) - (b * x)) / ((a * d) - (c * b));\n this.$setTransform(a, b, c, d, e, f);\n }\n return this;\n }\n /**\n * Rotates the image.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate}\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/rotate}\n * @param {number|string} angle The rotation angle (in radians).\n * @param {number} [x] The rotation origin in the horizontal, defaults to the center of the image.\n * @param {number} [y] The rotation origin in the vertical, defaults to the center of the image.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $rotate(angle, x, y) {\n if (this.rotatable) {\n const radian = toAngleInRadian(angle);\n const cos = Math.cos(radian);\n const sin = Math.sin(radian);\n const [scaleX, skewY, skewX, scaleY] = [cos, sin, -sin, cos];\n if (isNumber(x) && isNumber(y)) {\n const [a, b, c, d] = this.$matrix;\n const { width, height } = this.getBoundingClientRect();\n const originX = width / 2;\n const originY = height / 2;\n const moveX = x - originX;\n const moveY = y - originY;\n const translateX = ((moveX * d) - (c * moveY)) / ((a * d) - (c * b));\n const translateY = ((moveY * a) - (b * moveX)) / ((a * d) - (c * b));\n /**\n * Equals to\n * this.$translate(translateX, translateX);\n * this.$rotate(angle);\n * this.$translate(-translateX, -translateX);\n */\n this.$transform(scaleX, skewY, skewX, scaleY, translateX * (1 - scaleX) - translateY * skewX, translateY * (1 - scaleY) - translateX * skewY);\n }\n else {\n this.$transform(scaleX, skewY, skewX, scaleY, 0, 0);\n }\n }\n return this;\n }\n /**\n * Zooms the image.\n * @param {number} scale The zoom factor. Positive numbers for zooming in, and negative numbers for zooming out.\n * @param {number} [x] The zoom origin in the horizontal, defaults to the center of the image.\n * @param {number} [y] The zoom origin in the vertical, defaults to the center of the image.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $zoom(scale, x, y) {\n if (!this.scalable || scale === 0) {\n return this;\n }\n if (scale < 0) {\n scale = 1 / (1 - scale);\n }\n else {\n scale += 1;\n }\n if (isNumber(x) && isNumber(y)) {\n const [a, b, c, d] = this.$matrix;\n const { width, height } = this.getBoundingClientRect();\n const originX = width / 2;\n const originY = height / 2;\n const moveX = x - originX;\n const moveY = y - originY;\n const translateX = ((moveX * d) - (c * moveY)) / ((a * d) - (c * b));\n const translateY = ((moveY * a) - (b * moveX)) / ((a * d) - (c * b));\n /**\n * Equals to\n * this.$translate(translateX, translateX);\n * this.$scale(scale);\n * this.$translate(-translateX, -translateX);\n */\n this.$transform(scale, 0, 0, scale, translateX * (1 - scale), translateY * (1 - scale));\n }\n else {\n this.$scale(scale);\n }\n return this;\n }\n /**\n * Scales the image.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scale}\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/scale}\n * @param {number} x The scaling factor in the horizontal direction.\n * @param {number} [y] The scaling factor in the vertical direction.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $scale(x, y = x) {\n if (this.scalable) {\n this.$transform(x, 0, 0, y, 0, 0);\n }\n return this;\n }\n /**\n * Skews the image.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skew}\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/transform}\n * @param {number|string} x The skewing angle in the horizontal direction.\n * @param {number|string} [y] The skewing angle in the vertical direction.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $skew(x, y = 0) {\n if (this.skewable) {\n const radianX = toAngleInRadian(x);\n const radianY = toAngleInRadian(y);\n this.$transform(1, Math.tan(radianY), Math.tan(radianX), 1, 0, 0);\n }\n return this;\n }\n /**\n * Translates the image.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translate}\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/translate}\n * @param {number} x The translating distance in the horizontal direction.\n * @param {number} [y] The translating distance in the vertical direction.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $translate(x, y = x) {\n if (this.translatable && isNumber(x) && isNumber(y)) {\n this.$transform(1, 0, 0, 1, x, y);\n }\n return this;\n }\n /**\n * Transforms the image.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix}\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/transform}\n * @param {number} a The scaling factor in the horizontal direction.\n * @param {number} b The skewing angle in the vertical direction.\n * @param {number} c The skewing angle in the horizontal direction.\n * @param {number} d The scaling factor in the vertical direction.\n * @param {number} e The translating distance in the horizontal direction.\n * @param {number} f The translating distance in the vertical direction.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $transform(a, b, c, d, e, f) {\n if (isNumber(a)\n && isNumber(b)\n && isNumber(c)\n && isNumber(d)\n && isNumber(e)\n && isNumber(f)) {\n return this.$setTransform(multiplyMatrices(this.$matrix, [a, b, c, d, e, f]));\n }\n return this;\n }\n /**\n * Resets (overrides) the current transform to the specific identity matrix.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setTransform}\n * @param {number|Array} a The scaling factor in the horizontal direction.\n * @param {number} b The skewing angle in the vertical direction.\n * @param {number} c The skewing angle in the horizontal direction.\n * @param {number} d The scaling factor in the vertical direction.\n * @param {number} e The translating distance in the horizontal direction.\n * @param {number} f The translating distance in the vertical direction.\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $setTransform(a, b, c, d, e, f) {\n this.$insetRejected = false;\n if (this.rotatable || this.scalable || this.skewable || this.translatable) {\n if (Array.isArray(a)) {\n [a, b, c, d, e, f] = a;\n }\n if (isNumber(a)\n && isNumber(b)\n && isNumber(c)\n && isNumber(d)\n && isNumber(e)\n && isNumber(f)) {\n const oldMatrix = [...this.$matrix];\n const newMatrix = [a, b, c, d, e, f];\n if (this.$isReady && this.$canvas) {\n const { $canvas } = this;\n const canvasRect = $canvas.getBoundingClientRect();\n this.style.transform = `matrix(${newMatrix.join(', ')})`;\n const imageRect = this.$image.getBoundingClientRect();\n this.style.transform = `matrix(${oldMatrix.join(', ')})`;\n if (this.$exceedsFit(imageRect, canvasRect)) {\n return this;\n }\n if (this.$exceedsInset(imageRect, canvasRect)) {\n this.$insetRejected = true;\n return this;\n }\n if (this.$emit(EVENT_CHANGE, {\n x: imageRect.x - canvasRect.x,\n y: imageRect.y - canvasRect.y,\n width: imageRect.width,\n height: imageRect.height,\n }) === false) {\n return this;\n }\n }\n if (this.$emit(EVENT_TRANSFORM, {\n matrix: newMatrix,\n oldMatrix,\n }) === false) {\n return this;\n }\n this.$matrix = newMatrix;\n this.style.transform = `matrix(${newMatrix.join(', ')})`;\n }\n }\n return this;\n }\n /**\n * Retrieves the current transformation matrix being applied to the element.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/getTransform}\n * @returns {Array} Returns the readonly transformation matrix.\n */\n $getTransform() {\n return this.$matrix.slice();\n }\n /**\n * Resets the current transform to the initial identity matrix.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/resetTransform}\n * @returns {CropperImage} Returns `this` for chaining.\n */\n $resetTransform() {\n return this.$setTransform([1, 0, 0, 1, 0, 0]);\n }\n}\nCropperImage.$name = CROPPER_IMAGE;\nCropperImage.$version = '2.3.1';\n\nexport { CropperImage as default };\n"],"ignoreList":[0],"mappings":"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"}