@paperless/core 1.26.7 → 1.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/build/p-2786d383.entry.js +2 -0
- package/dist/build/{p-e33a73c2.entry.js.map → p-2786d383.entry.js.map} +1 -1
- package/dist/build/p-3ea2d7a2.entry.js +2 -0
- package/dist/build/{p-f34e08ec.entry.js.map → p-3ea2d7a2.entry.js.map} +1 -1
- package/dist/build/p-57a32088.entry.js +2 -0
- package/dist/build/p-57a32088.entry.js.map +1 -0
- package/dist/build/p-6cbe8dc8.entry.js +2 -0
- package/dist/build/{p-f6c6919a.entry.js.map → p-6cbe8dc8.entry.js.map} +1 -1
- package/dist/{paperless/p-424d5c8a.entry.js → build/p-7bf042c9.entry.js} +2 -2
- package/dist/{paperless/p-424d5c8a.entry.js.map → build/p-7bf042c9.entry.js.map} +1 -1
- package/dist/build/p-b848c222.entry.js +2 -0
- package/dist/{paperless/p-3a6efecd.entry.js.map → build/p-b848c222.entry.js.map} +1 -1
- package/dist/build/p-d8641c29.entry.js +2 -0
- package/dist/build/{p-d23db949.entry.js.map → p-d8641c29.entry.js.map} +1 -1
- package/dist/build/p-fe39443a.entry.js +2 -0
- package/dist/build/{p-b6f43309.entry.js.map → p-fe39443a.entry.js.map} +1 -1
- package/dist/build/paperless.css +1 -1
- package/dist/build/paperless.esm.js +1 -1
- package/dist/cjs/p-avatar.cjs.entry.js +1 -1
- package/dist/cjs/p-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/p-backdrop.cjs.entry.js +1 -1
- package/dist/cjs/p-backdrop.cjs.entry.js.map +1 -1
- package/dist/cjs/p-cropper.cjs.entry.js +1 -1
- package/dist/cjs/p-cropper.cjs.entry.js.map +1 -1
- package/dist/cjs/p-dropdown_2.cjs.entry.js +1 -1
- package/dist/cjs/p-dropdown_2.cjs.entry.js.map +1 -1
- package/dist/cjs/p-layout.cjs.entry.js +1 -1
- package/dist/cjs/p-layout.cjs.entry.js.map +1 -1
- package/dist/cjs/p-modal-body_4.cjs.entry.js +1 -1
- package/dist/cjs/p-modal-body_4.cjs.entry.js.map +1 -1
- package/dist/cjs/p-stepper-item.cjs.entry.js +1 -1
- package/dist/cjs/p-stepper-item.cjs.entry.js.map +1 -1
- package/dist/cjs/p-stepper-line.cjs.entry.js +1 -1
- package/dist/cjs/p-stepper-line.cjs.entry.js.map +1 -1
- package/dist/collection/components/atoms/avatar/avatar.component.css +1 -1
- package/dist/collection/components/atoms/backdrop/backdrop.component.css +1 -1
- package/dist/collection/components/atoms/dropdown-menu-item/dropdown-menu-item.component.css +1 -1
- package/dist/collection/components/atoms/layout/layout.component.css +1 -1
- package/dist/collection/components/atoms/modal-container/modal-container.component.css +1 -1
- package/dist/collection/components/atoms/stepper-item/stepper-item.component.css +1 -1
- package/dist/collection/components/atoms/stepper-line/stepper-line.component.css +1 -1
- package/dist/collection/components/molecules/cropper/cropper.component.css +1 -1
- package/dist/components/avatar.component.js +1 -1
- package/dist/components/avatar.component.js.map +1 -1
- package/dist/components/backdrop.component.js +1 -1
- package/dist/components/backdrop.component.js.map +1 -1
- package/dist/components/dropdown-menu-item.component.js +1 -1
- package/dist/components/dropdown-menu-item.component.js.map +1 -1
- package/dist/components/modal-container.component.js +1 -1
- package/dist/components/modal-container.component.js.map +1 -1
- package/dist/components/p-cropper.js +1 -1
- package/dist/components/p-cropper.js.map +1 -1
- package/dist/components/p-layout.js +1 -1
- package/dist/components/p-layout.js.map +1 -1
- package/dist/components/p-stepper-item.js +1 -1
- package/dist/components/p-stepper-item.js.map +1 -1
- package/dist/components/stepper-line.component.js +1 -1
- package/dist/components/stepper-line.component.js.map +1 -1
- package/dist/esm/p-avatar.entry.js +1 -1
- package/dist/esm/p-avatar.entry.js.map +1 -1
- package/dist/esm/p-backdrop.entry.js +1 -1
- package/dist/esm/p-backdrop.entry.js.map +1 -1
- package/dist/esm/p-cropper.entry.js +1 -1
- package/dist/esm/p-cropper.entry.js.map +1 -1
- package/dist/esm/p-dropdown_2.entry.js +1 -1
- package/dist/esm/p-dropdown_2.entry.js.map +1 -1
- package/dist/esm/p-layout.entry.js +1 -1
- package/dist/esm/p-layout.entry.js.map +1 -1
- package/dist/esm/p-modal-body_4.entry.js +1 -1
- package/dist/esm/p-modal-body_4.entry.js.map +1 -1
- package/dist/esm/p-stepper-item.entry.js +1 -1
- package/dist/esm/p-stepper-item.entry.js.map +1 -1
- package/dist/esm/p-stepper-line.entry.js +1 -1
- package/dist/esm/p-stepper-line.entry.js.map +1 -1
- package/dist/index.html +1 -1
- package/dist/paperless/p-2786d383.entry.js +2 -0
- package/dist/paperless/{p-e33a73c2.entry.js.map → p-2786d383.entry.js.map} +1 -1
- package/dist/paperless/p-3ea2d7a2.entry.js +2 -0
- package/dist/paperless/{p-f34e08ec.entry.js.map → p-3ea2d7a2.entry.js.map} +1 -1
- package/dist/paperless/p-57a32088.entry.js +2 -0
- package/dist/paperless/p-57a32088.entry.js.map +1 -0
- package/dist/paperless/p-6cbe8dc8.entry.js +2 -0
- package/dist/paperless/{p-f6c6919a.entry.js.map → p-6cbe8dc8.entry.js.map} +1 -1
- package/dist/{build/p-424d5c8a.entry.js → paperless/p-7bf042c9.entry.js} +2 -2
- package/dist/{build/p-424d5c8a.entry.js.map → paperless/p-7bf042c9.entry.js.map} +1 -1
- package/dist/paperless/p-b848c222.entry.js +2 -0
- package/dist/{build/p-3a6efecd.entry.js.map → paperless/p-b848c222.entry.js.map} +1 -1
- package/dist/paperless/p-d8641c29.entry.js +2 -0
- package/dist/paperless/{p-d23db949.entry.js.map → p-d8641c29.entry.js.map} +1 -1
- package/dist/paperless/p-fe39443a.entry.js +2 -0
- package/dist/paperless/{p-b6f43309.entry.js.map → p-fe39443a.entry.js.map} +1 -1
- package/dist/paperless/paperless.css +249 -27
- package/dist/paperless/paperless.esm.js +1 -1
- package/dist/sw.js +1 -1
- package/dist/sw.js.map +1 -1
- package/hydrate/index.js +8 -8
- package/package.json +2 -2
- package/dist/build/p-3a6efecd.entry.js +0 -2
- package/dist/build/p-4cc872f7.entry.js +0 -2
- package/dist/build/p-4cc872f7.entry.js.map +0 -1
- package/dist/build/p-b6f43309.entry.js +0 -2
- package/dist/build/p-d23db949.entry.js +0 -2
- package/dist/build/p-e33a73c2.entry.js +0 -2
- package/dist/build/p-f34e08ec.entry.js +0 -2
- package/dist/build/p-f6c6919a.entry.js +0 -2
- package/dist/paperless/p-3a6efecd.entry.js +0 -2
- package/dist/paperless/p-4cc872f7.entry.js +0 -2
- package/dist/paperless/p-4cc872f7.entry.js.map +0 -1
- package/dist/paperless/p-b6f43309.entry.js +0 -2
- package/dist/paperless/p-d23db949.entry.js +0 -2
- package/dist/paperless/p-e33a73c2.entry.js +0 -2
- package/dist/paperless/p-f34e08ec.entry.js +0 -2
- package/dist/paperless/p-f6c6919a.entry.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-cropper.entry.cjs.js","mappings":"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","names":["style","canvasCache","h","Host"],"sources":["node_modules/clsx/dist/clsx.mjs","../../node_modules/@cropper/utils/dist/utils.esm.raw.js","../../node_modules/@cropper/element/dist/element.esm.raw.js","../../node_modules/@cropper/element-canvas/dist/element-canvas.esm.raw.js","../../node_modules/@cropper/element-image/dist/element-image.esm.raw.js","../../node_modules/@cropper/element-shade/dist/element-shade.esm.raw.js","../../node_modules/@cropper/element-handle/dist/element-handle.esm.raw.js","../../node_modules/@cropper/element-selection/dist/element-selection.esm.raw.js","../../node_modules/@cropper/element-grid/dist/element-grid.esm.raw.js","../../node_modules/@cropper/element-crosshair/dist/element-crosshair.esm.raw.js","../../node_modules/@cropper/element-viewer/dist/element-viewer.esm.raw.js","../../node_modules/cropperjs/dist/cropper.esm.raw.js","src/components/molecules/cropper/cropper.component.scss?tag=p-cropper&encapsulation=shadow","src/components/molecules/cropper/cropper.component.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","const IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\nconst WINDOW = IS_BROWSER ? window : {};\nconst IS_TOUCH_DEVICE = IS_BROWSER ? 'ontouchstart' in WINDOW.document.documentElement : false;\nconst HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false;\nconst NAMESPACE = 'cropper';\nconst CROPPER_CANVAS = `${NAMESPACE}-canvas`;\nconst CROPPER_CROSSHAIR = `${NAMESPACE}-crosshair`;\nconst CROPPER_GIRD = `${NAMESPACE}-grid`;\nconst CROPPER_HANDLE = `${NAMESPACE}-handle`;\nconst CROPPER_IMAGE = `${NAMESPACE}-image`;\nconst CROPPER_SELECTION = `${NAMESPACE}-selection`;\nconst CROPPER_SHADE = `${NAMESPACE}-shade`;\nconst CROPPER_VIEWER = `${NAMESPACE}-viewer`;\n// Actions\nconst ACTION_SELECT = 'select';\nconst ACTION_MOVE = 'move';\nconst ACTION_SCALE = 'scale';\nconst ACTION_ROTATE = 'rotate';\nconst ACTION_TRANSFORM = 'transform';\nconst ACTION_NONE = 'none';\nconst ACTION_RESIZE_NORTH = 'n-resize';\nconst ACTION_RESIZE_EAST = 'e-resize';\nconst ACTION_RESIZE_SOUTH = 's-resize';\nconst ACTION_RESIZE_WEST = 'w-resize';\nconst ACTION_RESIZE_NORTHEAST = 'ne-resize';\nconst ACTION_RESIZE_NORTHWEST = 'nw-resize';\nconst ACTION_RESIZE_SOUTHEAST = 'se-resize';\nconst ACTION_RESIZE_SOUTHWEST = 'sw-resize';\n// Attributes\nconst ATTRIBUTE_ACTION = 'action';\n// Native events\nconst EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup';\nconst EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove';\nconst EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown';\nconst EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START;\nconst EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE;\nconst EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END;\nconst EVENT_ERROR = 'error';\nconst EVENT_KEYDOWN = 'keydown';\nconst EVENT_LOAD = 'load';\nconst EVENT_RESIZE = 'resize';\nconst EVENT_WHEEL = 'wheel';\n// Custom events\nconst EVENT_ACTION = 'action';\nconst EVENT_ACTION_END = 'actionend';\nconst EVENT_ACTION_MOVE = 'actionmove';\nconst EVENT_ACTION_START = 'actionstart';\nconst EVENT_CHANGE = 'change';\nconst EVENT_TRANSFORM = 'transform';\n\n/**\n * Check if the given value is a string.\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the given value is a string, else `false`.\n */\nfunction isString(value) {\n return typeof value === 'string';\n}\n/**\n * Check if the given value is not a number.\n */\nconst isNaN = Number.isNaN || WINDOW.isNaN;\n/**\n * Check if the given value is a number.\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the given value is a number, else `false`.\n */\nfunction isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n/**\n * Check if the given value is a positive number.\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the given value is a positive number, else `false`.\n */\nfunction isPositiveNumber(value) {\n return isNumber(value) && value > 0 && value < Infinity;\n}\n/**\n * Check if the given value is undefined.\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the given value is undefined, else `false`.\n */\nfunction isUndefined(value) {\n return typeof value === 'undefined';\n}\n/**\n * Check if the given value is an object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is an object, else `false`.\n */\nfunction isObject(value) {\n return typeof value === 'object' && value !== null;\n}\nconst { hasOwnProperty } = Object.prototype;\n/**\n * Check if the given value is a plain object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a plain object, else `false`.\n */\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n try {\n const { constructor } = value;\n const { prototype } = constructor;\n return constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf');\n }\n catch (error) {\n return false;\n }\n}\n/**\n * Check if the given value is a function.\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the given value is a function, else `false`.\n */\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n/**\n * Check if the given node is an element.\n * @param {*} node The node to check.\n * @returns {boolean} Returns `true` if the given node is an element; otherwise, `false`.\n */\nfunction isElement(node) {\n return typeof node === 'object' && node !== null && node.nodeType === 1;\n}\nconst REGEXP_CAMEL_CASE = /([a-z\\d])([A-Z])/g;\n/**\n * Transform the given string from camelCase to kebab-case.\n * @param {string} value The value to transform.\n * @returns {string} Returns the transformed value.\n */\nfunction toKebabCase(value) {\n return String(value).replace(REGEXP_CAMEL_CASE, '$1-$2').toLowerCase();\n}\nconst REGEXP_KEBAB_CASE = /-[A-z\\d]/g;\n/**\n * Transform the given string from kebab-case to camelCase.\n * @param {string} value The value to transform.\n * @returns {string} Returns the transformed value.\n */\nfunction toCamelCase(value) {\n return value.replace(REGEXP_KEBAB_CASE, (substring) => substring.slice(1).toUpperCase());\n}\nconst REGEXP_SPACES = /\\s\\s*/;\n/**\n * Remove event listener from the event target.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener}\n * @param {EventTarget} target The target of the event.\n * @param {string} types The types of the event.\n * @param {EventListenerOrEventListenerObject} listener The listener of the event.\n * @param {EventListenerOptions} [options] The options specify characteristics about the event listener.\n */\nfunction off(target, types, listener, options) {\n types.trim().split(REGEXP_SPACES).forEach((type) => {\n target.removeEventListener(type, listener, options);\n });\n}\n/**\n * Add event listener to the event target.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener}\n * @param {EventTarget} target The target of the event.\n * @param {string} types The types of the event.\n * @param {EventListenerOrEventListenerObject} listener The listener of the event.\n * @param {AddEventListenerOptions} [options] The options specify characteristics about the event listener.\n */\nfunction on(target, types, listener, options) {\n types.trim().split(REGEXP_SPACES).forEach((type) => {\n target.addEventListener(type, listener, options);\n });\n}\n/**\n * Add once event listener to the event target.\n * @param {EventTarget} target The target of the event.\n * @param {string} types The types of the event.\n * @param {EventListenerOrEventListenerObject} listener The listener of the event.\n * @param {AddEventListenerOptions} [options] The options specify characteristics about the event listener.\n */\nfunction once(target, types, listener, options) {\n on(target, types, listener, Object.assign(Object.assign({}, options), { once: true }));\n}\nconst defaultEventOptions = {\n bubbles: true,\n cancelable: true,\n composed: true,\n};\n/**\n * Dispatch event on the event target.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/dispatchEvent}\n * @param {EventTarget} target The target of the event.\n * @param {string} type The name of the event.\n * @param {*} [detail] The data passed when initializing the event.\n * @param {CustomEventInit} [options] The other event options.\n * @returns {boolean} Returns the result value.\n */\nfunction emit(target, type, detail, options) {\n return target.dispatchEvent(new CustomEvent(type, Object.assign(Object.assign(Object.assign({}, defaultEventOptions), { detail }), options)));\n}\nconst resolvedPromise = Promise.resolve();\n/**\n * Defers the callback to be executed after the next DOM update cycle.\n * @param {*} [context] The `this` context.\n * @param {Function} [callback] The callback to execute after the next DOM update cycle.\n * @returns {Promise} A promise that resolves to nothing.\n */\nfunction nextTick(context, callback) {\n return callback\n ? resolvedPromise.then(context ? callback.bind(context) : callback)\n : resolvedPromise;\n}\n/**\n * Get the offset base on the document.\n * @param {Element} element The target element.\n * @returns {object} The offset data.\n */\nfunction getOffset(element) {\n const { documentElement } = element.ownerDocument;\n const box = element.getBoundingClientRect();\n return {\n left: box.left + (WINDOW.pageXOffset - documentElement.clientLeft),\n top: box.top + (WINDOW.pageYOffset - documentElement.clientTop),\n };\n}\nconst REGEXP_ANGLE_UNIT = /deg|g?rad|turn$/i;\n/**\n * Convert an angle to a radian number.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/angle}\n * @param {number|string} angle The angle to convert.\n * @returns {number} Returns the radian number.\n */\nfunction toAngleInRadian(angle) {\n const value = parseFloat(angle) || 0;\n if (value !== 0) {\n const [unit = 'rad'] = String(angle).match(REGEXP_ANGLE_UNIT) || [];\n switch (unit.toLowerCase()) {\n case 'deg':\n return (value / 360) * (Math.PI * 2);\n case 'grad':\n return (value / 400) * (Math.PI * 2);\n case 'turn':\n return value * (Math.PI * 2);\n }\n }\n return value;\n}\nconst SIZE_ADJUSTMENT_TYPE_CONTAIN = 'contain';\nconst SIZE_ADJUSTMENT_TYPE_COVER = 'cover';\n/**\n * Get the max sizes in a rectangle under the given aspect ratio.\n * @param {object} data The original sizes.\n * @param {string} [type] The adjust type.\n * @returns {object} Returns the result sizes.\n */\nfunction getAdjustedSizes(data, type = SIZE_ADJUSTMENT_TYPE_CONTAIN) {\n const { aspectRatio } = data;\n let { width, height } = data;\n const isValidWidth = isPositiveNumber(width);\n const isValidHeight = isPositiveNumber(height);\n if (isValidWidth && isValidHeight) {\n const adjustedWidth = height * aspectRatio;\n if ((type === SIZE_ADJUSTMENT_TYPE_CONTAIN && adjustedWidth > width)\n || (type === SIZE_ADJUSTMENT_TYPE_COVER && adjustedWidth < width)) {\n height = width / aspectRatio;\n }\n else {\n width = height * aspectRatio;\n }\n }\n else if (isValidWidth) {\n height = width / aspectRatio;\n }\n else if (isValidHeight) {\n width = height * aspectRatio;\n }\n return {\n width,\n height,\n };\n}\n/**\n * Multiply multiple matrices.\n * @param {Array} matrix The first matrix.\n * @param {Array} args The rest matrices.\n * @returns {Array} Returns the result matrix.\n */\nfunction multiplyMatrices(matrix, ...args) {\n if (args.length === 0) {\n return matrix;\n }\n const [a1, b1, c1, d1, e1, f1] = matrix;\n const [a2, b2, c2, d2, e2, f2] = args[0];\n // ┌ a1 c1 e1 ┐ ┌ a2 c2 e2 ┐\n // │ b1 d1 f1 │ × │ b2 d2 f2 │\n // └ 0 0 1 ┘ └ 0 0 1 ┘\n matrix = [\n a1 * a2 + c1 * b2 /* + e1 * 0 */,\n b1 * a2 + d1 * b2 /* + f1 * 0 */,\n a1 * c2 + c1 * d2 /* + e1 * 0 */,\n b1 * c2 + d1 * d2 /* + f1 * 0 */,\n a1 * e2 + c1 * f2 + e1 /* * 1 */,\n b1 * e2 + d1 * f2 + f1 /* * 1 */,\n ];\n return multiplyMatrices(matrix, ...args.slice(1));\n}\n\nexport { ACTION_MOVE, ACTION_NONE, ACTION_RESIZE_EAST, ACTION_RESIZE_NORTH, ACTION_RESIZE_NORTHEAST, ACTION_RESIZE_NORTHWEST, ACTION_RESIZE_SOUTH, ACTION_RESIZE_SOUTHEAST, ACTION_RESIZE_SOUTHWEST, ACTION_RESIZE_WEST, ACTION_ROTATE, ACTION_SCALE, ACTION_SELECT, ACTION_TRANSFORM, ATTRIBUTE_ACTION, CROPPER_CANVAS, CROPPER_CROSSHAIR, CROPPER_GIRD, CROPPER_HANDLE, CROPPER_IMAGE, CROPPER_SELECTION, CROPPER_SHADE, CROPPER_VIEWER, EVENT_ACTION, EVENT_ACTION_END, EVENT_ACTION_MOVE, EVENT_ACTION_START, EVENT_CHANGE, EVENT_ERROR, EVENT_KEYDOWN, EVENT_LOAD, EVENT_POINTER_DOWN, EVENT_POINTER_MOVE, EVENT_POINTER_UP, EVENT_RESIZE, EVENT_TOUCH_END, EVENT_TOUCH_MOVE, EVENT_TOUCH_START, EVENT_TRANSFORM, EVENT_WHEEL, HAS_POINTER_EVENT, IS_BROWSER, IS_TOUCH_DEVICE, NAMESPACE, WINDOW, emit, getAdjustedSizes, getOffset, isElement, isFunction, isNaN, isNumber, isObject, isPlainObject, isPositiveNumber, isString, isUndefined, multiplyMatrices, nextTick, off, on, once, toAngleInRadian, toCamelCase, toKebabCase };\n","import { WINDOW, toCamelCase, toKebabCase, isNaN, isUndefined, isNumber, emit, nextTick, isObject, IS_BROWSER } from '@cropper/utils';\n\nvar style = `:host([hidden]){display:none!important}`;\n\nconst REGEXP_SUFFIX = /left|top|width|height/i;\nconst DEFAULT_SHADOW_ROOT_MODE = 'open';\nconst shadowRoots = new WeakMap();\nconst styleSheets = new WeakMap();\nconst tagNames = new Map();\nconst supportsAdoptedStyleSheets = WINDOW.document && Array.isArray(WINDOW.document.adoptedStyleSheets) && 'replaceSync' in WINDOW.CSSStyleSheet.prototype;\nclass CropperElement extends HTMLElement {\n get $sharedStyle() {\n return `${this.themeColor ? `:host{--theme-color: ${this.themeColor};}` : ''}${style}`;\n }\n constructor() {\n var _a, _b;\n super();\n this.shadowRootMode = DEFAULT_SHADOW_ROOT_MODE;\n this.slottable = true;\n const name = (_b = (_a = Object.getPrototypeOf(this)) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.$name;\n if (name) {\n tagNames.set(name, this.tagName.toLowerCase());\n }\n }\n static get observedAttributes() {\n return [\n 'shadow-root-mode',\n 'slottable',\n 'theme-color',\n ];\n }\n // Convert attribute to property\n attributeChangedCallback(name, oldValue, newValue) {\n if (Object.is(newValue, oldValue)) {\n return;\n }\n const propertyName = toCamelCase(name);\n const oldPropertyValue = this[propertyName];\n let newPropertyValue = newValue;\n switch (typeof oldPropertyValue) {\n case 'boolean':\n newPropertyValue = newValue !== null && newValue !== 'false';\n break;\n case 'number':\n newPropertyValue = Number(newValue);\n break;\n }\n this[propertyName] = newPropertyValue;\n switch (name) {\n case 'theme-color': {\n const styleSheet = styleSheets.get(this);\n const styles = this.$sharedStyle;\n if (styleSheet && styles) {\n if (supportsAdoptedStyleSheets) {\n styleSheet.replaceSync(styles);\n }\n else {\n styleSheet.textContent = styles;\n }\n }\n break;\n }\n }\n }\n // Convert property to attribute\n $propertyChangedCallback(name, oldValue, newValue) {\n if (Object.is(newValue, oldValue)) {\n return;\n }\n name = toKebabCase(name);\n switch (typeof newValue) {\n case 'boolean':\n if (newValue === true) {\n if (!this.hasAttribute(name)) {\n this.setAttribute(name, '');\n }\n }\n else {\n this.removeAttribute(name);\n }\n break;\n case 'number':\n if (isNaN(newValue)) {\n newValue = '';\n }\n else {\n newValue = String(newValue);\n }\n // Fall through\n // case 'string':\n // eslint-disable-next-line no-fallthrough\n default:\n if (newValue) {\n if (this.getAttribute(name) !== newValue) {\n this.setAttribute(name, newValue);\n }\n }\n else {\n this.removeAttribute(name);\n }\n }\n }\n connectedCallback() {\n // Observe properties after observed attributes\n Object.getPrototypeOf(this).constructor.observedAttributes.forEach((attribute) => {\n const property = toCamelCase(attribute);\n let value = this[property];\n if (!isUndefined(value)) {\n this.$propertyChangedCallback(property, undefined, value);\n }\n Object.defineProperty(this, property, {\n enumerable: true,\n configurable: true,\n get() {\n return value;\n },\n set(newValue) {\n const oldValue = value;\n value = newValue;\n this.$propertyChangedCallback(property, oldValue, newValue);\n },\n });\n });\n const shadow = this.attachShadow({\n mode: this.shadowRootMode || DEFAULT_SHADOW_ROOT_MODE,\n });\n if (!this.shadowRoot) {\n shadowRoots.set(this, shadow);\n }\n styleSheets.set(this, this.$addStyles(this.$sharedStyle));\n if (this.$style) {\n this.$addStyles(this.$style);\n }\n if (this.$template) {\n const template = document.createElement('template');\n template.innerHTML = this.$template;\n shadow.appendChild(template.content);\n }\n if (this.slottable) {\n const slot = document.createElement('slot');\n shadow.appendChild(slot);\n }\n }\n disconnectedCallback() {\n if (styleSheets.has(this)) {\n styleSheets.delete(this);\n }\n if (shadowRoots.has(this)) {\n shadowRoots.delete(this);\n }\n }\n // eslint-disable-next-line class-methods-use-this\n $getTagNameOf(name) {\n var _a;\n return (_a = tagNames.get(name)) !== null && _a !== void 0 ? _a : name;\n }\n $setStyles(properties) {\n Object.keys(properties).forEach((property) => {\n let value = properties[property];\n if (isNumber(value)) {\n if (value !== 0 && REGEXP_SUFFIX.test(property)) {\n value = `${value}px`;\n }\n else {\n value = String(value);\n }\n }\n this.style[property] = value;\n });\n return this;\n }\n /**\n * Outputs the shadow root of the element.\n * @returns {ShadowRoot} Returns the shadow root.\n */\n $getShadowRoot() {\n return this.shadowRoot || shadowRoots.get(this);\n }\n /**\n * Adds styles to the shadow root.\n * @param {string} styles The styles to add.\n * @returns {CSSStyleSheet|HTMLStyleElement} Returns the generated style sheet.\n */\n $addStyles(styles) {\n let styleSheet;\n const shadow = this.$getShadowRoot();\n if (supportsAdoptedStyleSheets) {\n styleSheet = new CSSStyleSheet();\n styleSheet.replaceSync(styles);\n shadow.adoptedStyleSheets = shadow.adoptedStyleSheets.concat(styleSheet);\n }\n else {\n styleSheet = document.createElement('style');\n styleSheet.textContent = styles;\n shadow.appendChild(styleSheet);\n }\n return styleSheet;\n }\n /**\n * Dispatches an event at the element.\n * @param {string} type The name of the event.\n * @param {*} [detail] The data passed when initializing the event.\n * @param {CustomEventInit} [options] The other event options.\n * @returns {boolean} Returns the result value.\n */\n $emit(type, detail, options) {\n return emit(this, type, detail, options);\n }\n /**\n * Defers the callback to be executed after the next DOM update cycle.\n * @param {Function} [callback] The callback to execute after the next DOM update cycle.\n * @returns {Promise} A promise that resolves to nothing.\n */\n $nextTick(callback) {\n return nextTick(this, callback);\n }\n /**\n * Defines the constructor as a new custom element.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/define}\n * @param {string|object} [name] The element name.\n * @param {object} [options] The element definition options.\n */\n static $define(name, options) {\n if (isObject(name)) {\n options = name;\n name = '';\n }\n if (!name) {\n name = this.$name || this.name;\n }\n name = toKebabCase(name);\n if (IS_BROWSER && WINDOW.customElements && !WINDOW.customElements.get(name)) {\n customElements.define(name, this, options);\n }\n }\n}\nCropperElement.$version = '2.0.0-beta.4';\n\nexport { CropperElement as default };\n","import CropperElement from '@cropper/element';\nimport { CROPPER_CANVAS, ACTION_NONE, on, EVENT_POINTER_DOWN, EVENT_POINTER_MOVE, EVENT_POINTER_UP, EVENT_WHEEL, off, isNumber, isElement, ATTRIBUTE_ACTION, EVENT_ACTION_START, EVENT_ACTION_MOVE, ACTION_TRANSFORM, EVENT_ACTION, EVENT_ACTION_END, ACTION_SCALE, isString, isPlainObject, isPositiveNumber, getAdjustedSizes, CROPPER_IMAGE, isFunction, ACTION_ROTATE } from '@cropper/utils';\n\nvar style = `:host{display:block;min-height:100px;min-width:200px;overflow:hidden;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([background]){background-color:#fff;background-image:repeating-linear-gradient(45deg,#ccc 25%,transparent 0,transparent 75%,#ccc 0,#ccc),repeating-linear-gradient(45deg,#ccc 25%,transparent 0,transparent 75%,#ccc 0,#ccc);background-image:repeating-conic-gradient(#ccc 0 25%,#fff 0 50%);background-position:0 0,.5rem .5rem;background-size:1rem 1rem}:host([disabled]){pointer-events:none}:host([disabled]):after{bottom:0;content:\"\";cursor:not-allowed;display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}`;\n\nclass CropperCanvas extends CropperElement {\n constructor() {\n super(...arguments);\n this.$onPointerDown = null;\n this.$onPointerMove = null;\n this.$onPointerUp = null;\n this.$onWheel = null;\n this.$wheeling = false;\n this.$pointers = new Map();\n this.$style = style;\n this.$action = ACTION_NONE;\n this.background = false;\n this.disabled = false;\n this.scaleStep = 0.1;\n this.themeColor = '#39f';\n }\n static get observedAttributes() {\n return super.observedAttributes.concat([\n 'background',\n 'disabled',\n 'scale-step',\n ]);\n }\n connectedCallback() {\n super.connectedCallback();\n if (!this.disabled) {\n this.$bind();\n }\n }\n disconnectedCallback() {\n if (!this.disabled) {\n this.$unbind();\n }\n super.disconnectedCallback();\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 'disabled':\n if (newValue) {\n this.$unbind();\n }\n else {\n this.$bind();\n }\n break;\n }\n }\n $bind() {\n if (!this.$onPointerDown) {\n this.$onPointerDown = this.$handlePointerDown.bind(this);\n on(this, EVENT_POINTER_DOWN, this.$onPointerDown);\n }\n if (!this.$onPointerMove) {\n this.$onPointerMove = this.$handlePointerMove.bind(this);\n on(this.ownerDocument, EVENT_POINTER_MOVE, this.$onPointerMove);\n }\n if (!this.$onPointerUp) {\n this.$onPointerUp = this.$handlePointerUp.bind(this);\n on(this.ownerDocument, EVENT_POINTER_UP, this.$onPointerUp);\n }\n if (!this.$onWheel) {\n this.$onWheel = this.$handleWheel.bind(this);\n on(this, EVENT_WHEEL, this.$onWheel, {\n passive: false,\n capture: true,\n });\n }\n }\n $unbind() {\n if (this.$onPointerDown) {\n off(this, EVENT_POINTER_DOWN, this.$onPointerDown);\n this.$onPointerDown = null;\n }\n if (this.$onPointerMove) {\n off(this.ownerDocument, EVENT_POINTER_MOVE, this.$onPointerMove);\n this.$onPointerMove = null;\n }\n if (this.$onPointerUp) {\n off(this.ownerDocument, EVENT_POINTER_UP, this.$onPointerUp);\n this.$onPointerUp = null;\n }\n if (this.$onWheel) {\n off(this, EVENT_WHEEL, this.$onWheel, {\n capture: true,\n });\n this.$onWheel = null;\n }\n }\n $handlePointerDown(event) {\n const { buttons, button, type } = event;\n if (this.disabled || (\n // Handle pointer or mouse event, and ignore touch event\n ((type === 'pointerdown' && event.pointerType === 'mouse') || type === 'mousedown') && (\n // No primary button (Usually the left button)\n (isNumber(buttons) && buttons !== 1) || (isNumber(button) && button !== 0)\n // Open context menu\n || event.ctrlKey))) {\n return;\n }\n const { $pointers } = this;\n let action = '';\n if (event.changedTouches) {\n Array.from(event.changedTouches).forEach(({ identifier, pageX, pageY, }) => {\n $pointers.set(identifier, {\n startX: pageX,\n startY: pageY,\n endX: pageX,\n endY: pageY,\n });\n });\n }\n else {\n const { pointerId = 0, pageX, pageY } = event;\n $pointers.set(pointerId, {\n startX: pageX,\n startY: pageY,\n endX: pageX,\n endY: pageY,\n });\n }\n if ($pointers.size > 1) {\n action = ACTION_TRANSFORM;\n }\n else if (isElement(event.target)) {\n action = event.target.action || event.target.getAttribute(ATTRIBUTE_ACTION) || '';\n }\n if (this.$emit(EVENT_ACTION_START, {\n action,\n relatedEvent: event,\n }) === false) {\n return;\n }\n // Prevent page zooming in the browsers for iOS.\n event.preventDefault();\n this.$action = action;\n this.style.willChange = 'transform';\n }\n $handlePointerMove(event) {\n const { $action, $pointers } = this;\n if (this.disabled || $action === ACTION_NONE || $pointers.size === 0) {\n return;\n }\n if (this.$emit(EVENT_ACTION_MOVE, {\n action: $action,\n relatedEvent: event,\n }) === false) {\n return;\n }\n // Prevent page scrolling.\n event.preventDefault();\n if (event.changedTouches) {\n Array.from(event.changedTouches).forEach(({ identifier, pageX, pageY, }) => {\n const pointer = $pointers.get(identifier);\n if (pointer) {\n Object.assign(pointer, {\n endX: pageX,\n endY: pageY,\n });\n }\n });\n }\n else {\n const { pointerId = 0, pageX, pageY } = event;\n const pointer = $pointers.get(pointerId);\n if (pointer) {\n Object.assign(pointer, {\n endX: pageX,\n endY: pageY,\n });\n }\n }\n const detail = {\n action: $action,\n relatedEvent: event,\n };\n if ($action === ACTION_TRANSFORM) {\n const pointers2 = new Map($pointers);\n let maxRotateRate = 0;\n let maxScaleRate = 0;\n let rotate = 0;\n let scale = 0;\n let centerX = event.pageX;\n let centerY = event.pageY;\n $pointers.forEach((pointer, pointerId) => {\n pointers2.delete(pointerId);\n pointers2.forEach((pointer2) => {\n let x1 = pointer2.startX - pointer.startX;\n let y1 = pointer2.startY - pointer.startY;\n let x2 = pointer2.endX - pointer.endX;\n let y2 = pointer2.endY - pointer.endY;\n let z1 = 0;\n let z2 = 0;\n let a1 = 0;\n let a2 = 0;\n if (x1 === 0) {\n if (y1 < 0) {\n a1 = Math.PI * 2;\n }\n else if (y1 > 0) {\n a1 = Math.PI;\n }\n }\n else if (x1 > 0) {\n a1 = (Math.PI / 2) + Math.atan(y1 / x1);\n }\n else if (x1 < 0) {\n a1 = (Math.PI * 1.5) + Math.atan(y1 / x1);\n }\n if (x2 === 0) {\n if (y2 < 0) {\n a2 = Math.PI * 2;\n }\n else if (y2 > 0) {\n a2 = Math.PI;\n }\n }\n else if (x2 > 0) {\n a2 = (Math.PI / 2) + Math.atan(y2 / x2);\n }\n else if (x2 < 0) {\n a2 = (Math.PI * 1.5) + Math.atan(y2 / x2);\n }\n if (a2 > 0 || a1 > 0) {\n const rotateRate = a2 - a1;\n const absRotateRate = Math.abs(rotateRate);\n if (absRotateRate > maxRotateRate) {\n maxRotateRate = absRotateRate;\n rotate = rotateRate;\n centerX = (pointer.startX + pointer2.startX) / 2;\n centerY = (pointer.startY + pointer2.startY) / 2;\n }\n }\n x1 = Math.abs(x1);\n y1 = Math.abs(y1);\n x2 = Math.abs(x2);\n y2 = Math.abs(y2);\n if (x1 > 0 && y1 > 0) {\n z1 = Math.sqrt((x1 * x1) + (y1 * y1));\n }\n else if (x1 > 0) {\n z1 = x1;\n }\n else if (y1 > 0) {\n z1 = y1;\n }\n if (x2 > 0 && y2 > 0) {\n z2 = Math.sqrt((x2 * x2) + (y2 * y2));\n }\n else if (x2 > 0) {\n z2 = x2;\n }\n else if (y2 > 0) {\n z2 = y2;\n }\n if (z1 > 0 && z2 > 0) {\n const scaleRate = (z2 - z1) / z1;\n const absScaleRate = Math.abs(scaleRate);\n if (absScaleRate > maxScaleRate) {\n maxScaleRate = absScaleRate;\n scale = scaleRate;\n centerX = (pointer.startX + pointer2.startX) / 2;\n centerY = (pointer.startY + pointer2.startY) / 2;\n }\n }\n });\n });\n const rotatable = maxRotateRate > 0;\n const scalable = maxScaleRate > 0;\n if (rotatable && scalable) {\n detail.rotate = rotate;\n detail.scale = scale;\n detail.centerX = centerX;\n detail.centerY = centerY;\n }\n else if (rotatable) {\n detail.action = ACTION_ROTATE;\n detail.rotate = rotate;\n detail.centerX = centerX;\n detail.centerY = centerY;\n }\n else if (scalable) {\n detail.action = ACTION_SCALE;\n detail.scale = scale;\n detail.centerX = centerX;\n detail.centerY = centerY;\n }\n else {\n detail.action = ACTION_NONE;\n }\n }\n else {\n const [pointer] = Array.from($pointers.values());\n Object.assign(detail, pointer);\n }\n // Override the starting coordinate\n $pointers.forEach((pointer) => {\n pointer.startX = pointer.endX;\n pointer.startY = pointer.endY;\n });\n if (detail.action !== ACTION_NONE) {\n this.$emit(EVENT_ACTION, detail, {\n cancelable: false,\n });\n }\n }\n $handlePointerUp(event) {\n const { $action, $pointers } = this;\n if (this.disabled || $action === ACTION_NONE) {\n return;\n }\n if (this.$emit(EVENT_ACTION_END, {\n action: $action,\n relatedEvent: event,\n }) === false) {\n return;\n }\n event.preventDefault();\n if (event.changedTouches) {\n Array.from(event.changedTouches).forEach(({ identifier, }) => {\n $pointers.delete(identifier);\n });\n }\n else {\n const { pointerId = 0 } = event;\n $pointers.delete(pointerId);\n }\n if ($pointers.size === 0) {\n this.style.willChange = '';\n this.$action = ACTION_NONE;\n }\n }\n $handleWheel(event) {\n if (this.disabled) {\n return;\n }\n event.preventDefault();\n // Limit wheel speed to prevent zoom too fast (#21)\n if (this.$wheeling) {\n return;\n }\n this.$wheeling = true;\n // Debounce by 50ms\n setTimeout(() => {\n this.$wheeling = false;\n }, 50);\n const delta = event.deltaY > 0 ? -1 : 1;\n const scale = delta * this.scaleStep;\n this.$emit(EVENT_ACTION, {\n action: ACTION_SCALE,\n scale,\n relatedEvent: event,\n }, {\n cancelable: false,\n });\n }\n /**\n * Changes the current action to a new one.\n * @param {string} action The new action.\n * @returns {CropperCanvas} Returns `this` for chaining.\n */\n $setAction(action) {\n if (isString(action)) {\n this.$action = action;\n }\n return this;\n }\n /**\n * Generates a real canvas element, with the image draw into if there is one.\n * @param {object} [options] The available options.\n * @param {number} [options.width] The width of the canvas.\n * @param {number} [options.height] The height of the canvas.\n * @param {Function} [options.beforeDraw] The function called before drawing the image onto the canvas.\n * @returns {Promise} Returns a promise that resolves to the generated canvas element.\n */\n $toCanvas(options) {\n return new Promise((resolve, reject) => {\n if (!this.isConnected) {\n reject(new Error('The current element is not connected to the DOM.'));\n return;\n }\n const canvas = document.createElement('canvas');\n let width = this.offsetWidth;\n let height = this.offsetHeight;\n let scale = 1;\n if (isPlainObject(options)\n && (isPositiveNumber(options.width) || isPositiveNumber(options.height))) {\n ({ width, height } = getAdjustedSizes({\n aspectRatio: width / height,\n width: options.width,\n height: options.height,\n }));\n scale = width / this.offsetWidth;\n }\n canvas.width = width;\n canvas.height = height;\n const cropperImage = this.querySelector(this.$getTagNameOf(CROPPER_IMAGE));\n if (!cropperImage) {\n resolve(canvas);\n return;\n }\n cropperImage.$ready().then((image) => {\n const context = canvas.getContext('2d');\n if (context) {\n const [a, b, c, d, e, f] = cropperImage.$getTransform();\n let newE = e;\n let newF = f;\n let destWidth = image.naturalWidth;\n let destHeight = image.naturalHeight;\n if (scale !== 1) {\n newE *= scale;\n newF *= scale;\n destWidth *= scale;\n destHeight *= scale;\n }\n const centerX = destWidth / 2;\n const centerY = destHeight / 2;\n context.fillStyle = 'transparent';\n context.fillRect(0, 0, width, height);\n if (isPlainObject(options) && isFunction(options.beforeDraw)) {\n options.beforeDraw.call(this, context, canvas);\n }\n context.save();\n // Move the transform origin to the center of the image.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin\n context.translate(centerX, centerY);\n context.transform(a, b, c, d, newE, newF);\n // Reset the transform origin to the top-left of the image.\n context.translate(-centerX, -centerY);\n context.drawImage(image, 0, 0, destWidth, destHeight);\n context.restore();\n }\n resolve(canvas);\n }).catch(reject);\n });\n }\n}\nCropperCanvas.$name = CROPPER_CANVAS;\nCropperCanvas.$version = '2.0.0-beta.4';\n\nexport { CropperCanvas as default };\n","import CropperElement from '@cropper/element';\nimport { CROPPER_IMAGE, CROPPER_CANVAS, on, EVENT_ACTION_START, EVENT_ACTION_END, EVENT_ACTION, EVENT_LOAD, off, ACTION_TRANSFORM, ACTION_ROTATE, ACTION_SCALE, ACTION_NONE, ACTION_MOVE, CROPPER_SELECTION, once, EVENT_ERROR, isFunction, isNumber, toAngleInRadian, multiplyMatrices, 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 'importance',\n 'loading',\n 'referrerpolicy',\n 'sizes',\n 'src',\n 'srcset',\n];\nclass CropperImage extends CropperElement {\n constructor() {\n super(...arguments);\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 this.rotatable = true;\n this.scalable = true;\n this.skewable = true;\n this.slottable = false;\n this.translatable = true;\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 '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 this.$image.setAttribute(name, newValue);\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 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('cover');\n }\n }\n $handleAction(event) {\n if (this.hidden || !(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 const cropperSelectionTagName = this.$getTagNameOf(CROPPER_SELECTION);\n let selection = $canvas.querySelector(cropperSelectionTagName);\n if (selection && selection.multiple && !selection.active) {\n selection = $canvas.querySelector(`${cropperSelectionTagName}[active]`);\n }\n if (!selection || selection.hidden || !selection.movable\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 { x, y } = this.getBoundingClientRect();\n this.$zoom(detail.scale, relatedEvent.clientX - x, relatedEvent.clientY - y);\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 - (b * translateX)) / d;\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 resolve($image);\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 this.$move(endX - startX, endY - startY);\n if (size && (width !== containerWidth || height !== containerHeight)) {\n const scaleX = containerWidth / width;\n const scaleY = containerHeight / height;\n switch (size) {\n case 'cover':\n this.$scale(Math.max(scaleX, scaleY));\n break;\n case 'contain':\n this.$scale(Math.min(scaleX, scaleY));\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 - (b * e)) / d;\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 - (b * e)) / d;\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 - (b * translateX)) / d;\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 - (b * translateX)) / d;\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 newMatrix = [a, b, c, d, e, f];\n if (this.$emit(EVENT_TRANSFORM, {\n matrix: newMatrix,\n oldMatrix: this.$matrix,\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.0.0-beta.4';\n\nexport { CropperImage as default };\n","import CropperElement from '@cropper/element';\nimport { CROPPER_SHADE, CROPPER_CANVAS, CROPPER_SELECTION, ACTION_SELECT, on, EVENT_ACTION_START, EVENT_ACTION_END, EVENT_CHANGE, off, isNumber, WINDOW } from '@cropper/utils';\n\nvar style = `:host{display:block;height:0;left:0;outline:var(--theme-color) solid 1px;position:relative;top:0;width:0}:host([transparent]){outline-color:transparent}`;\n\nconst canvasCache = new WeakMap();\nclass CropperShade extends CropperElement {\n constructor() {\n super(...arguments);\n this.$onCanvasChange = null;\n this.$onCanvasActionEnd = null;\n this.$onCanvasActionStart = null;\n this.$style = style;\n this.x = 0;\n this.y = 0;\n this.width = 0;\n this.height = 0;\n this.slottable = false;\n this.themeColor = 'rgba(0, 0, 0, 0.65)';\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([\n 'height',\n 'width',\n 'x',\n 'y',\n ]);\n }\n connectedCallback() {\n super.connectedCallback();\n const $canvas = this.closest(this.$getTagNameOf(CROPPER_CANVAS));\n if ($canvas) {\n this.$canvas = $canvas;\n this.style.position = 'absolute';\n const $selection = $canvas.querySelector(this.$getTagNameOf(CROPPER_SELECTION));\n if ($selection) {\n this.$onCanvasActionStart = (event) => {\n if ($selection.hidden && event.detail.action === ACTION_SELECT) {\n this.hidden = false;\n }\n };\n this.$onCanvasActionEnd = (event) => {\n if ($selection.hidden && event.detail.action === ACTION_SELECT) {\n this.hidden = true;\n }\n };\n this.$onCanvasChange = (event) => {\n const { x, y, width, height, } = event.detail;\n this.$change(x, y, width, height);\n if ($selection.hidden || (x === 0 && y === 0 && width === 0 && height === 0)) {\n this.hidden = true;\n }\n };\n on($canvas, EVENT_ACTION_START, this.$onCanvasActionStart);\n on($canvas, EVENT_ACTION_END, this.$onCanvasActionEnd);\n on($canvas, EVENT_CHANGE, this.$onCanvasChange);\n }\n }\n this.$render();\n }\n disconnectedCallback() {\n const { $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.$onCanvasChange) {\n off($canvas, EVENT_CHANGE, this.$onCanvasChange);\n this.$onCanvasChange = null;\n }\n }\n super.disconnectedCallback();\n }\n /**\n * Changes the position and/or size of the shade.\n * @param {number} x The new position in the horizontal direction.\n * @param {number} y The new position in the vertical direction.\n * @param {number} [width] The new width.\n * @param {number} [height] The new height.\n * @returns {CropperShade} Returns `this` for chaining.\n */\n $change(x, y, width = this.width, height = this.height) {\n if (!isNumber(x)\n || !isNumber(y)\n || !isNumber(width)\n || !isNumber(height)\n || (x === this.x && y === this.y && width === this.width && height === this.height)) {\n return this;\n }\n if (this.hidden) {\n this.hidden = false;\n }\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n return this.$render();\n }\n /**\n * Resets the shade to its initial position and size.\n * @returns {CropperShade} Returns `this` for chaining.\n */\n $reset() {\n return this.$change(0, 0, 0, 0);\n }\n /**\n * Refreshes the position or size of the shade.\n * @returns {CropperShade} Returns `this` for chaining.\n */\n $render() {\n return this.$setStyles({\n transform: `translate(${this.x}px, ${this.y}px)`,\n width: this.width,\n height: this.height,\n outlineWidth: WINDOW.innerWidth,\n });\n }\n}\nCropperShade.$name = CROPPER_SHADE;\nCropperShade.$version = '2.0.0-beta.4';\n\nexport { CropperShade as default };\n","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.0.0-beta.4';\n\nexport { CropperHandle as default };\n","import CropperElement from '@cropper/element';\nimport { CROPPER_SELECTION, EVENT_CHANGE, on, EVENT_KEYDOWN, off, isPositiveNumber, CROPPER_CANVAS, getAdjustedSizes, EVENT_ACTION_START, EVENT_ACTION_END, EVENT_ACTION, ACTION_SELECT, ACTION_SCALE, getOffset, ACTION_MOVE, ACTION_RESIZE_SOUTHEAST, ACTION_RESIZE_SOUTHWEST, ACTION_RESIZE_NORTHWEST, ACTION_RESIZE_NORTHEAST, isNumber, isPlainObject, CROPPER_IMAGE, isFunction, ACTION_RESIZE_WEST, ACTION_RESIZE_EAST, ACTION_RESIZE_SOUTH, ACTION_RESIZE_NORTH } from '@cropper/utils';\n\nvar style = `:host{display:block;left:0;position:relative;right:0}:host([outlined]){outline:1px solid var(--theme-color)}:host([multiple]){outline:1px dashed hsla(0,0%,100%,.5)}:host([multiple]):after{bottom:0;content:\"\";cursor:pointer;display:block;left:0;position:absolute;right:0;top:0}:host([multiple][active]){outline-color:var(--theme-color);z-index:1}:host([multiple])>*{visibility:hidden}:host([multiple][active])>*{visibility:visible}:host([multiple][active]):after{display:none}`;\n\nconst canvasCache = new WeakMap();\nclass CropperSelection extends CropperElement {\n constructor() {\n super(...arguments);\n this.$onCanvasAction = null;\n this.$onCanvasActionStart = null;\n this.$onCanvasActionEnd = null;\n this.$onDocumentKeyDown = null;\n this.$action = '';\n this.$actionStartTarget = null;\n this.$style = style;\n this.x = 0;\n this.y = 0;\n this.width = 0;\n this.height = 0;\n this.aspectRatio = NaN;\n this.initialAspectRatio = NaN;\n this.initialCoverage = NaN;\n this.active = false;\n this.movable = false;\n this.resizable = false;\n this.zoomable = false;\n this.multiple = false;\n this.keyboard = false;\n this.outlined = false;\n this.precise = false;\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([\n 'active',\n 'aspect-ratio',\n 'height',\n 'initial-aspect-ratio',\n 'initial-coverage',\n 'keyboard',\n 'movable',\n 'multiple',\n 'outlined',\n 'precise',\n 'resizable',\n 'width',\n 'x',\n 'y',\n 'zoomable',\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 'aspectRatio':\n if (!isPositiveNumber(newValue)) {\n this.aspectRatio = NaN;\n }\n break;\n case 'initialAspectRatio':\n if (!isPositiveNumber(newValue)) {\n this.initialAspectRatio = NaN;\n }\n break;\n case 'initialCoverage':\n if (!isPositiveNumber(newValue) || newValue > 1) {\n this.initialCoverage = NaN;\n }\n break;\n case 'keyboard':\n this.$nextTick(() => {\n if (this.$canvas) {\n if (newValue) {\n if (!this.$onDocumentKeyDown) {\n this.$onDocumentKeyDown = this.$handleKeyDown.bind(this);\n on(this.ownerDocument, EVENT_KEYDOWN, this.$onDocumentKeyDown);\n }\n }\n else if (this.$onDocumentKeyDown) {\n off(this.ownerDocument, EVENT_KEYDOWN, this.$onDocumentKeyDown);\n this.$onDocumentKeyDown = null;\n }\n }\n });\n break;\n case 'multiple':\n this.$nextTick(() => {\n if (this.$canvas) {\n const selections = this.$getSelections();\n if (newValue) {\n selections.forEach((selection) => {\n selection.active = false;\n });\n this.active = true;\n this.$emit(EVENT_CHANGE, {\n x: this.x,\n y: this.y,\n width: this.width,\n height: this.height,\n });\n }\n else {\n this.active = false;\n selections.slice(1).forEach((selection) => {\n this.$removeSelection(selection);\n });\n }\n }\n });\n break;\n }\n }\n connectedCallback() {\n super.connectedCallback();\n const $canvas = this.closest(this.$getTagNameOf(CROPPER_CANVAS));\n if ($canvas) {\n this.$canvas = $canvas;\n this.$setStyles({\n position: 'absolute',\n transform: `translate(${this.x}px, ${this.y}px)`,\n });\n if (!this.hidden) {\n this.$render();\n }\n const { initialCoverage, parentElement } = this;\n if (isPositiveNumber(initialCoverage) && parentElement) {\n const aspectRatio = this.aspectRatio || this.initialAspectRatio;\n const { offsetWidth, offsetHeight } = parentElement;\n let width = offsetWidth * initialCoverage;\n let height = offsetHeight * initialCoverage;\n if (isPositiveNumber(aspectRatio)) {\n ({ width, height } = getAdjustedSizes({ aspectRatio, width, height }));\n }\n this.$change(this.x, this.y, width, height);\n this.$center();\n }\n this.$onCanvasActionStart = this.$handleActionStart.bind(this);\n this.$onCanvasActionEnd = this.$handleActionEnd.bind(this);\n this.$onCanvasAction = this.$handleAction.bind(this);\n on($canvas, EVENT_ACTION_START, this.$onCanvasActionStart);\n on($canvas, EVENT_ACTION_END, this.$onCanvasActionStart);\n on($canvas, EVENT_ACTION, this.$onCanvasAction);\n }\n else {\n this.$render();\n }\n }\n disconnectedCallback() {\n const { $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 super.disconnectedCallback();\n }\n $getSelections() {\n let selections = [];\n if (this.parentElement) {\n selections = Array.from(this.parentElement.querySelectorAll(this.$getTagNameOf(CROPPER_SELECTION)));\n }\n return selections;\n }\n $createSelection() {\n const newSelection = this.cloneNode(true);\n if (this.hasAttribute('id')) {\n newSelection.removeAttribute('id');\n }\n this.active = false;\n if (this.parentElement) {\n this.parentElement.insertBefore(newSelection, this.nextSibling);\n }\n return newSelection;\n }\n $removeSelection(selection = this) {\n if (this.parentElement) {\n const selections = this.$getSelections();\n if (selections.length > 1) {\n const index = selections.indexOf(selection);\n const activeSelection = selections[index + 1] || selections[index - 1];\n if (activeSelection) {\n selection.active = false;\n this.parentElement.removeChild(selection);\n activeSelection.active = true;\n activeSelection.$emit(EVENT_CHANGE, {\n x: activeSelection.x,\n y: activeSelection.y,\n width: activeSelection.width,\n height: activeSelection.height,\n });\n }\n }\n else {\n this.$reset();\n this.hidden = true;\n }\n }\n }\n $handleActionStart(event) {\n var _a, _b;\n const relatedTarget = (_b = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.relatedEvent) === null || _b === void 0 ? void 0 : _b.target;\n this.$action = '';\n this.$actionStartTarget = relatedTarget;\n if (!this.hidden\n && this.multiple\n && !this.active\n && relatedTarget === this\n && this.parentElement) {\n this.$getSelections().forEach((selection) => {\n selection.active = false;\n });\n this.active = true;\n this.$emit(EVENT_CHANGE, {\n x: this.x,\n y: this.y,\n width: this.width,\n height: this.height,\n });\n }\n }\n $handleAction(event) {\n const { currentTarget, detail } = event;\n if (currentTarget && detail) {\n const { relatedEvent } = detail;\n let { action } = detail;\n // Switching to another selection\n if (!action && this.multiple) {\n // Get the `action` property from the focusing in selection\n action = this.$action || (relatedEvent === null || relatedEvent === void 0 ? void 0 : relatedEvent.target.action);\n this.$action = action;\n }\n if (!action\n || (this.hidden && action !== ACTION_SELECT)\n || (this.multiple && !this.active && action !== ACTION_SCALE)) {\n return;\n }\n const moveX = detail.endX - detail.startX;\n const moveY = detail.endY - detail.startY;\n const { width, height } = this;\n let { aspectRatio } = this;\n // Locking aspect ratio by holding shift key\n if (!isPositiveNumber(aspectRatio) && event.shiftKey) {\n aspectRatio = isPositiveNumber(width) && isPositiveNumber(height) ? width / height : 1;\n }\n switch (action) {\n case ACTION_SELECT: {\n const { $canvas } = this;\n const offset = getOffset(currentTarget);\n (this.multiple && !this.hidden ? this.$createSelection() : this).$change(detail.startX - offset.left, detail.startY - offset.top, moveX, moveY, aspectRatio);\n action = ACTION_RESIZE_SOUTHEAST;\n if (moveX < 0) {\n if (moveY > 0) {\n action = ACTION_RESIZE_SOUTHWEST;\n }\n else if (moveY < 0) {\n action = ACTION_RESIZE_NORTHWEST;\n }\n }\n else if (moveX > 0) {\n if (moveY < 0) {\n action = ACTION_RESIZE_NORTHEAST;\n }\n }\n if ($canvas) {\n $canvas.$action = action;\n }\n break;\n }\n case ACTION_MOVE:\n if (this.movable\n && (this.$actionStartTarget && this.contains(this.$actionStartTarget))) {\n this.$move(moveX, moveY);\n }\n break;\n case ACTION_SCALE:\n if (relatedEvent && this.zoomable) {\n const offset = getOffset(currentTarget);\n this.$zoom(detail.scale, relatedEvent.pageX - offset.left, relatedEvent.pageY - offset.top);\n }\n break;\n default:\n this.$resize(action, moveX, moveY, aspectRatio);\n }\n }\n }\n $handleActionEnd() {\n this.$action = '';\n this.$actionStartTarget = null;\n }\n $handleKeyDown(event) {\n if (this.hidden\n || !this.keyboard\n || (this.multiple && !this.active)\n || event.defaultPrevented) {\n return;\n }\n switch (event.key) {\n case 'Backspace':\n if (event.metaKey) {\n event.preventDefault();\n this.$removeSelection();\n }\n break;\n case 'Delete':\n event.preventDefault();\n this.$removeSelection();\n break;\n // Move to the left\n case 'ArrowLeft':\n event.preventDefault();\n this.$move(-1, 0);\n break;\n // Move to the right\n case 'ArrowRight':\n event.preventDefault();\n this.$move(1, 0);\n break;\n // Move to the top\n case 'ArrowUp':\n event.preventDefault();\n this.$move(0, -1);\n break;\n // Move to the bottom\n case 'ArrowDown':\n event.preventDefault();\n this.$move(0, 1);\n break;\n case '+':\n event.preventDefault();\n this.$zoom(0.1);\n break;\n case '-':\n event.preventDefault();\n this.$zoom(-0.1);\n break;\n }\n }\n /**\n * Aligns the selection to the center of its parent element.\n * @returns {CropperSelection} Returns `this` for chaining.\n */\n $center() {\n const { parentElement } = this;\n if (!parentElement) {\n return this;\n }\n const x = (parentElement.offsetWidth - this.width) / 2;\n const y = (parentElement.offsetHeight - this.height) / 2;\n return this.$change(x, y);\n }\n /**\n * Moves the selection.\n * @param {number} x The moving distance in the horizontal direction.\n * @param {number} [y] The moving distance in the vertical direction.\n * @returns {CropperSelection} Returns `this` for chaining.\n */\n $move(x, y = x) {\n return this.$moveTo(this.x + x, this.y + y);\n }\n /**\n * Moves the selection 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 {CropperSelection} Returns `this` for chaining.\n */\n $moveTo(x, y = x) {\n if (!this.movable) {\n return this;\n }\n return this.$change(x, y);\n }\n /**\n * Adjusts the size the selection on a specific side or corner.\n * @param {string} action Indicates the side or corner to resize.\n * @param {number} [offsetX] The horizontal offset of the specific side or corner.\n * @param {number} [offsetY] The vertical offset of the specific side or corner.\n * @param {number} [aspectRatio] The aspect ratio for computing the new size if it is necessary.\n * @returns {CropperSelection} Returns `this` for chaining.\n */\n $resize(action, offsetX = 0, offsetY = 0, aspectRatio = this.aspectRatio) {\n if (!this.resizable) {\n return this;\n }\n const hasValidAspectRatio = isPositiveNumber(aspectRatio);\n const { $canvas } = this;\n let { x, y, width, height, } = this;\n switch (action) {\n case ACTION_RESIZE_NORTH:\n y += offsetY;\n height -= offsetY;\n if (height < 0) {\n action = ACTION_RESIZE_SOUTH;\n height = -height;\n y -= height;\n }\n if (hasValidAspectRatio) {\n offsetX = offsetY * aspectRatio;\n x += offsetX / 2;\n width -= offsetX;\n if (width < 0) {\n width = -width;\n x -= width;\n }\n }\n break;\n case ACTION_RESIZE_EAST:\n width += offsetX;\n if (width < 0) {\n action = ACTION_RESIZE_WEST;\n width = -width;\n x -= width;\n }\n if (hasValidAspectRatio) {\n offsetY = offsetX / aspectRatio;\n y -= offsetY / 2;\n height += offsetY;\n if (height < 0) {\n height = -height;\n y -= height;\n }\n }\n break;\n case ACTION_RESIZE_SOUTH:\n height += offsetY;\n if (height < 0) {\n action = ACTION_RESIZE_NORTH;\n height = -height;\n y -= height;\n }\n if (hasValidAspectRatio) {\n offsetX = offsetY * aspectRatio;\n x -= offsetX / 2;\n width += offsetX;\n if (width < 0) {\n width = -width;\n x -= width;\n }\n }\n break;\n case ACTION_RESIZE_WEST:\n x += offsetX;\n width -= offsetX;\n if (width < 0) {\n action = ACTION_RESIZE_EAST;\n width = -width;\n x -= width;\n }\n if (hasValidAspectRatio) {\n offsetY = offsetX / aspectRatio;\n y += offsetY / 2;\n height -= offsetY;\n if (height < 0) {\n height = -height;\n y -= height;\n }\n }\n break;\n case ACTION_RESIZE_NORTHEAST:\n if (hasValidAspectRatio) {\n offsetY = -offsetX / aspectRatio;\n }\n y += offsetY;\n height -= offsetY;\n width += offsetX;\n if (width < 0 && height < 0) {\n action = ACTION_RESIZE_SOUTHWEST;\n width = -width;\n height = -height;\n x -= width;\n y -= height;\n }\n else if (width < 0) {\n action = ACTION_RESIZE_NORTHWEST;\n width = -width;\n x -= width;\n }\n else if (height < 0) {\n action = ACTION_RESIZE_SOUTHEAST;\n height = -height;\n y -= height;\n }\n break;\n case ACTION_RESIZE_NORTHWEST:\n if (hasValidAspectRatio) {\n offsetY = offsetX / aspectRatio;\n }\n x += offsetX;\n y += offsetY;\n width -= offsetX;\n height -= offsetY;\n if (width < 0 && height < 0) {\n action = ACTION_RESIZE_SOUTHEAST;\n width = -width;\n height = -height;\n x -= width;\n y -= height;\n }\n else if (width < 0) {\n action = ACTION_RESIZE_NORTHEAST;\n width = -width;\n x -= width;\n }\n else if (height < 0) {\n action = ACTION_RESIZE_SOUTHWEST;\n height = -height;\n y -= height;\n }\n break;\n case ACTION_RESIZE_SOUTHEAST:\n if (hasValidAspectRatio) {\n offsetY = offsetX / aspectRatio;\n }\n width += offsetX;\n height += offsetY;\n if (width < 0 && height < 0) {\n action = ACTION_RESIZE_NORTHWEST;\n width = -width;\n height = -height;\n x -= width;\n y -= height;\n }\n else if (width < 0) {\n action = ACTION_RESIZE_SOUTHWEST;\n width = -width;\n x -= width;\n }\n else if (height < 0) {\n action = ACTION_RESIZE_NORTHEAST;\n height = -height;\n y -= height;\n }\n break;\n case ACTION_RESIZE_SOUTHWEST:\n if (hasValidAspectRatio) {\n offsetY = -offsetX / aspectRatio;\n }\n x += offsetX;\n width -= offsetX;\n height += offsetY;\n if (width < 0 && height < 0) {\n action = ACTION_RESIZE_NORTHEAST;\n width = -width;\n height = -height;\n x -= width;\n y -= height;\n }\n else if (width < 0) {\n action = ACTION_RESIZE_SOUTHEAST;\n width = -width;\n x -= width;\n }\n else if (height < 0) {\n action = ACTION_RESIZE_NORTHWEST;\n height = -height;\n y -= height;\n }\n break;\n }\n if ($canvas) {\n $canvas.$setAction(action);\n }\n return this.$change(x, y, width, height);\n }\n /**\n * Zooms the selection.\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 selection.\n * @param {number} [y] The zoom origin in the vertical, defaults to the center of the selection.\n * @returns {CropperSelection} Returns `this` for chaining.\n */\n $zoom(scale, x, y) {\n if (!this.zoomable || scale === 0) {\n return this;\n }\n if (scale < 0) {\n scale = 1 / (1 - scale);\n }\n else {\n scale += 1;\n }\n const { width, height } = this;\n const newWidth = width * scale;\n const newHeight = height * scale;\n let newX = this.x;\n let newY = this.y;\n if (isNumber(x) && isNumber(y)) {\n newX -= (newWidth - width) * ((x - this.x) / width);\n newY -= (newHeight - height) * ((y - this.y) / height);\n }\n else {\n // Zoom from the center of the selection\n newX -= (newWidth - width) / 2;\n newY -= (newHeight - height) / 2;\n }\n return this.$change(newX, newY, newWidth, newHeight);\n }\n /**\n * Changes the position and/or size of the selection.\n * @param {number} x The new position in the horizontal direction.\n * @param {number} y The new position in the vertical direction.\n * @param {number} [width] The new width.\n * @param {number} [height] The new height.\n * @param {number} [aspectRatio] The new aspect ratio for this change only.\n * @returns {CropperSelection} Returns `this` for chaining.\n */\n $change(x, y, width = this.width, height = this.height, aspectRatio = this.aspectRatio) {\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height)) {\n return this;\n }\n if (!this.precise) {\n x = Math.round(x);\n y = Math.round(y);\n width = Math.round(width);\n height = Math.round(height);\n }\n if (x === this.x && y === this.y && width === this.width && height === this.height) {\n return this;\n }\n if (this.hidden) {\n this.hidden = false;\n }\n if (isPositiveNumber(aspectRatio)) {\n ({ width, height } = getAdjustedSizes({ aspectRatio, width, height }, 'cover'));\n }\n if (this.$emit(EVENT_CHANGE, {\n x,\n y,\n width,\n height,\n }) === false) {\n return this;\n }\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n return this.$render();\n }\n /**\n * Resets the selection to its initial position and size.\n * @returns {CropperSelection} Returns `this` for chaining.\n */\n $reset() {\n return this.$change(0, 0, 0, 0);\n }\n /**\n * Refreshes the position or size of the selection.\n * @returns {CropperSelection} Returns `this` for chaining.\n */\n $render() {\n return this.$setStyles({\n transform: `translate(${this.x}px, ${this.y}px)`,\n width: this.width,\n height: this.height,\n });\n }\n /**\n * Generates a real canvas element, with the image (selected area only) draw into if there is one.\n * @param {object} [options] The available options.\n * @param {number} [options.width] The width of the canvas.\n * @param {number} [options.height] The height of the canvas.\n * @param {Function} [options.beforeDraw] The function called before drawing the image onto the canvas.\n * @returns {Promise} Returns a promise that resolves to the generated canvas element.\n */\n $toCanvas(options) {\n return new Promise((resolve, reject) => {\n if (!this.isConnected) {\n reject(new Error('The current element is not connected to the DOM.'));\n return;\n }\n const canvas = document.createElement('canvas');\n let { width, height } = this;\n let scale = 1;\n if (isPlainObject(options)\n && (isPositiveNumber(options.width) || isPositiveNumber(options.height))) {\n ({ width, height } = getAdjustedSizes({\n aspectRatio: width / height,\n width: options.width,\n height: options.height,\n }));\n scale = width / this.width;\n }\n canvas.width = width;\n canvas.height = height;\n if (!this.$canvas) {\n resolve(canvas);\n return;\n }\n const cropperImage = this.$canvas.querySelector(this.$getTagNameOf(CROPPER_IMAGE));\n if (!cropperImage) {\n resolve(canvas);\n return;\n }\n cropperImage.$ready().then((image) => {\n const context = canvas.getContext('2d');\n if (context) {\n const [a, b, c, d, e, f] = cropperImage.$getTransform();\n const offsetX = -this.x;\n const offsetY = -this.y;\n const translateX = ((offsetX * d) - (c * offsetY)) / ((a * d) - (c * b));\n const translateY = (offsetY - (b * translateX)) / d;\n let newE = a * translateX + c * translateY + e;\n let newF = b * translateX + d * translateY + f;\n let destWidth = image.naturalWidth;\n let destHeight = image.naturalHeight;\n if (scale !== 1) {\n newE *= scale;\n newF *= scale;\n destWidth *= scale;\n destHeight *= scale;\n }\n const centerX = destWidth / 2;\n const centerY = destHeight / 2;\n context.fillStyle = 'transparent';\n context.fillRect(0, 0, width, height);\n if (isPlainObject(options) && isFunction(options.beforeDraw)) {\n options.beforeDraw.call(this, context, canvas);\n }\n context.save();\n // Move the transform origin to the center of the image.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin\n context.translate(centerX, centerY);\n context.transform(a, b, c, d, newE, newF);\n // Move the transform origin to the top-left of the image.\n context.translate(-centerX, -centerY);\n context.drawImage(image, 0, 0, destWidth, destHeight);\n context.restore();\n }\n resolve(canvas);\n }).catch(reject);\n });\n }\n}\nCropperSelection.$name = CROPPER_SELECTION;\nCropperSelection.$version = '2.0.0-beta.4';\n\nexport { CropperSelection as default };\n","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.$render();\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('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.innerHTML = '';\n shadow.appendChild(fragment);\n }\n }\n}\nCropperGrid.$name = CROPPER_GIRD;\nCropperGrid.$version = '2.0.0-beta.4';\n\nexport { CropperGrid as default };\n","import CropperElement from '@cropper/element';\nimport { CROPPER_CROSSHAIR } from '@cropper/utils';\n\nvar style = `:host{display:inline-block;height:1em;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1em}:host:after,:host:before{background-color:var(--theme-color);content:\"\";display:block;position:absolute}:host:before{height:1px;left:0;top:50%;transform:translateY(-50%);width:100%}:host:after{height:100%;left:50%;top:0;transform:translateX(-50%);width:1px}:host([centered]){left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}`;\n\nclass CropperCrosshair extends CropperElement {\n constructor() {\n super(...arguments);\n this.$style = style;\n this.centered = false;\n this.slottable = false;\n this.themeColor = 'rgba(238, 238, 238, 0.5)';\n }\n static get observedAttributes() {\n return super.observedAttributes.concat([\n 'centered',\n ]);\n }\n}\nCropperCrosshair.$name = CROPPER_CROSSHAIR;\nCropperCrosshair.$version = '2.0.0-beta.4';\n\nexport { CropperCrosshair as default };\n","import CropperElement from '@cropper/element';\nimport { CROPPER_VIEWER, CROPPER_SELECTION, isElement, on, EVENT_CHANGE, CROPPER_CANVAS, CROPPER_IMAGE, EVENT_LOAD, EVENT_TRANSFORM, off } from '@cropper/utils';\n\nvar style = `:host{display:block;height:100%;overflow:hidden;position:relative;width:100%}`;\n\nconst imageCache = new WeakMap();\nconst selectionCache = new WeakMap();\nconst sourceImageCache = new WeakMap();\nconst RESIZE_BOTH = 'both';\nconst RESIZE_HORIZONTAL = 'horizontal';\nconst RESIZE_VERTICAL = 'vertical';\nconst RESIZE_NONE = 'none';\nclass CropperViewer extends CropperElement {\n constructor() {\n super(...arguments);\n this.$onSelectionChange = null;\n this.$onSourceImageLoad = null;\n this.$onSourceImageTransform = null;\n this.$scale = 1;\n this.$style = style;\n this.resize = RESIZE_VERTICAL;\n this.selection = '';\n this.slottable = false;\n }\n set $image(element) {\n imageCache.set(this, element);\n }\n get $image() {\n return imageCache.get(this);\n }\n set $sourceImage(element) {\n sourceImageCache.set(this, element);\n }\n get $sourceImage() {\n return sourceImageCache.get(this);\n }\n set $selection(element) {\n selectionCache.set(this, element);\n }\n get $selection() {\n return selectionCache.get(this);\n }\n static get observedAttributes() {\n return super.observedAttributes.concat([\n 'resize',\n 'selection',\n ]);\n }\n connectedCallback() {\n super.connectedCallback();\n let $selection = null;\n if (this.selection) {\n $selection = this.ownerDocument.querySelector(this.selection);\n }\n else {\n $selection = this.closest(this.$getTagNameOf(CROPPER_SELECTION));\n }\n if (isElement($selection)) {\n this.$selection = $selection;\n this.$onSelectionChange = this.$handleSelectionChange.bind(this);\n on($selection, EVENT_CHANGE, this.$onSelectionChange);\n const $canvas = $selection.closest(this.$getTagNameOf(CROPPER_CANVAS));\n if ($canvas) {\n const $sourceImage = $canvas.querySelector(this.$getTagNameOf(CROPPER_IMAGE));\n if ($sourceImage) {\n this.$sourceImage = $sourceImage;\n this.$image = $sourceImage.cloneNode(true);\n this.$getShadowRoot().appendChild(this.$image);\n this.$onSourceImageLoad = this.$handleSourceImageLoad.bind(this);\n this.$onSourceImageTransform = this.$handleSourceImageTransform.bind(this);\n on($sourceImage.$image, EVENT_LOAD, this.$onSourceImageLoad);\n on($sourceImage, EVENT_TRANSFORM, this.$onSourceImageTransform);\n }\n }\n this.$render();\n }\n }\n disconnectedCallback() {\n const { $selection, $sourceImage } = this;\n if ($selection && this.$onSelectionChange) {\n off($selection, EVENT_CHANGE, this.$onSelectionChange);\n this.$onSelectionChange = null;\n }\n if ($sourceImage && this.$onSourceImageLoad) {\n off($sourceImage.$image, EVENT_LOAD, this.$onSourceImageLoad);\n this.$onSourceImageLoad = null;\n }\n if ($sourceImage && this.$onSourceImageTransform) {\n off($sourceImage, EVENT_TRANSFORM, this.$onSourceImageTransform);\n this.$onSourceImageTransform = null;\n }\n super.disconnectedCallback();\n }\n $handleSelectionChange(event) {\n this.$render(event.detail);\n }\n $handleSourceImageLoad() {\n const { $image, $sourceImage } = this;\n const oldSrc = $image.getAttribute('src');\n const newSrc = $sourceImage.getAttribute('src');\n if (newSrc && newSrc !== oldSrc) {\n $image.setAttribute('src', newSrc);\n $image.$ready(() => {\n setTimeout(() => {\n const { x, y } = this.$selection;\n this.$transformImageByOffset($sourceImage.$getTransform(), -x, -y);\n });\n });\n }\n }\n $handleSourceImageTransform(event) {\n const { x, y } = this.$selection;\n this.$transformImageByOffset(event.detail.matrix, -x, -y);\n }\n $render(selection) {\n const { x, y, width, height, } = selection || this.$selection;\n const styles = {};\n const { clientWidth, clientHeight } = this;\n let newWidth = clientWidth;\n let newHeight = clientHeight;\n let scale = NaN;\n switch (this.resize) {\n case RESIZE_BOTH:\n scale = 1;\n newWidth = width;\n newHeight = height;\n styles.width = width;\n styles.height = height;\n break;\n case RESIZE_HORIZONTAL:\n scale = clientHeight / height;\n newWidth = width * scale;\n styles.width = newWidth;\n break;\n case RESIZE_VERTICAL:\n scale = clientWidth / width;\n newHeight = height * scale;\n styles.height = newHeight;\n break;\n case RESIZE_NONE:\n default:\n if (clientWidth > 0) {\n scale = clientWidth / width;\n }\n else if (clientHeight > 0) {\n scale = clientHeight / height;\n }\n }\n this.$scale = scale;\n this.$setStyles(styles);\n if (this.$sourceImage) {\n this.$transformImageByOffset(this.$sourceImage.$getTransform(), -x, -y);\n }\n }\n $transformImageByOffset(matrix, x, y) {\n const { $image, $scale, $sourceImage, } = this;\n if ($sourceImage && $image && $scale > 0) {\n const [a, b, c, d, e, f] = matrix;\n const translateX = ((x * d) - (c * y)) / ((a * d) - (c * b));\n const translateY = (y - (b * translateX)) / d;\n const newE = a * translateX + c * translateY + e;\n const newF = b * translateX + d * translateY + f;\n $image.$ready((image) => {\n this.$setStyles.call($image, {\n width: image.naturalWidth * $scale,\n height: image.naturalHeight * $scale,\n });\n });\n $image.$setTransform(a, b, c, d, newE * $scale, newF * $scale);\n }\n }\n}\nCropperViewer.$name = CROPPER_VIEWER;\nCropperViewer.$version = '2.0.0-beta.4';\n\nexport { RESIZE_BOTH, RESIZE_HORIZONTAL, RESIZE_NONE, RESIZE_VERTICAL, CropperViewer as default };\n","/*! Cropper.js v2.0.0-beta.4 | (c) 2015-present Chen Fengyuan | MIT */\nimport { isString, isElement, CROPPER_IMAGE, CROPPER_CANVAS, CROPPER_SELECTION } from '@cropper/utils';\nexport * from '@cropper/utils';\nimport { CropperCanvas, CropperCrosshair, CropperGrid, CropperHandle, CropperImage, CropperSelection, CropperShade, CropperViewer } from '@cropper/elements';\nexport * from '@cropper/elements';\n\nvar DEFAULT_TEMPLATE = ('<cropper-canvas background>'\n + '<cropper-image></cropper-image>'\n + '<cropper-shade hidden></cropper-shade>'\n + '<cropper-handle action=\"select\" plain></cropper-handle>'\n + '<cropper-selection initial-coverage=\"0.5\" movable resizable zoomable>'\n + '<cropper-grid role=\"grid\" bordered covered></cropper-grid>'\n + '<cropper-crosshair centered></cropper-crosshair>'\n + '<cropper-handle action=\"move\" theme-color=\"rgba(255, 255, 255, 0.35)\"></cropper-handle>'\n + '<cropper-handle action=\"n-resize\"></cropper-handle>'\n + '<cropper-handle action=\"e-resize\"></cropper-handle>'\n + '<cropper-handle action=\"s-resize\"></cropper-handle>'\n + '<cropper-handle action=\"w-resize\"></cropper-handle>'\n + '<cropper-handle action=\"ne-resize\"></cropper-handle>'\n + '<cropper-handle action=\"nw-resize\"></cropper-handle>'\n + '<cropper-handle action=\"se-resize\"></cropper-handle>'\n + '<cropper-handle action=\"sw-resize\"></cropper-handle>'\n + '</cropper-selection>'\n + '</cropper-canvas>');\n\nconst REGEXP_ALLOWED_ELEMENTS = /^img|canvas$/;\nconst REGEXP_BLOCKED_TAGS = /<(\\/?(?:script|style)[^>]*)>/gi;\nconst DEFAULT_OPTIONS = {\n template: DEFAULT_TEMPLATE,\n};\nCropperCanvas.$define();\nCropperCrosshair.$define();\nCropperGrid.$define();\nCropperHandle.$define();\nCropperImage.$define();\nCropperSelection.$define();\nCropperShade.$define();\nCropperViewer.$define();\nclass Cropper {\n constructor(element, options) {\n this.options = DEFAULT_OPTIONS;\n if (isString(element)) {\n element = document.querySelector(element);\n }\n if (!isElement(element) || !REGEXP_ALLOWED_ELEMENTS.test(element.localName)) {\n throw new Error('The first argument is required and must be an <img> or <canvas> element.');\n }\n this.element = element;\n options = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);\n this.options = options;\n const { ownerDocument } = element;\n let { container } = options;\n if (container) {\n if (isString(container)) {\n container = ownerDocument.querySelector(container);\n }\n if (!isElement(container)) {\n throw new Error('The `container` option must be an element or a valid selector.');\n }\n }\n if (!isElement(container)) {\n if (element.parentElement) {\n container = element.parentElement;\n }\n else {\n container = ownerDocument.body;\n }\n }\n this.container = container;\n const tagName = element.localName;\n let src = '';\n if (tagName === 'img') {\n ({ src } = element);\n }\n else if (tagName === 'canvas' && window.HTMLCanvasElement) {\n src = element.toDataURL();\n }\n const { template } = options;\n if (template && isString(template)) {\n const templateElement = document.createElement('template');\n const documentFragment = document.createDocumentFragment();\n templateElement.innerHTML = template.replace(REGEXP_BLOCKED_TAGS, '<$1>');\n documentFragment.appendChild(templateElement.content);\n Array.from(documentFragment.querySelectorAll(CROPPER_IMAGE)).forEach((image) => {\n image.setAttribute('src', src);\n image.setAttribute('alt', element.alt || 'The image to crop');\n });\n if (element.parentElement) {\n element.style.display = 'none';\n container.insertBefore(documentFragment, element.nextSibling);\n }\n else {\n container.appendChild(documentFragment);\n }\n }\n }\n getCropperCanvas() {\n return this.container.querySelector(CROPPER_CANVAS);\n }\n getCropperImage() {\n return this.container.querySelector(CROPPER_IMAGE);\n }\n getCropperSelection() {\n return this.container.querySelector(CROPPER_SELECTION);\n }\n getCropperSelections() {\n return this.container.querySelectorAll(CROPPER_SELECTION);\n }\n}\nCropper.version = '2.0.0-beta.4';\n\nexport { Cropper as default };\n",":host {\n\t@import '../../../style/form/range';\n\t@apply mb-6 flex w-full flex-col items-center justify-between gap-6;\n}\n","import {\n\tComponent,\n\tEvent,\n\tEventEmitter,\n\tHost,\n\tListen,\n\tProp,\n\tState,\n\th,\n} from '@stencil/core';\nimport { clsx } from 'clsx';\nimport 'cropperjs';\nimport { CropperImage, CropperSelection } from 'cropperjs';\n\n@Component({\n\ttag: 'p-cropper',\n\tstyleUrl: 'cropper.component.scss',\n\tshadow: true,\n})\nexport class Cropper {\n\t/**\n\t * Variant of the image that's being cropped\n\t */\n\t@Prop({ reflect: true }) variant: 'user' | 'company' = 'user';\n\n\t/**\n\t * The image to crop (url or base64)\n\t */\n\t@Prop() value: any;\n\n\t/**\n\t * The return type of the onchange\n\t */\n\t@Prop() returnType: 'canvas' | 'base64' = 'base64';\n\n\t/**\n\t * Event when the value changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tvalueChange: EventEmitter<any>;\n\n\tprivate _imageRef: CropperImage;\n\tprivate _selectionRef: CropperSelection;\n\n\tprivate _maxScale = 0;\n\tprivate _minScale = 0;\n\n\tprivate _resizeDebounceTimeout: NodeJS.Timer;\n\tprivate _toCanvasDebounceTimeout: NodeJS.Timer;\n\n\t@State()\n\tprivate _loaded = false;\n\n\t@State()\n\tprivate _currentScale = 0;\n\n\t@Listen('resize', { target: 'window' })\n\tonResize() {\n\t\tif (this._resizeDebounceTimeout) {\n\t\t\tclearTimeout(this._resizeDebounceTimeout);\n\t\t}\n\n\t\tthis._resizeDebounceTimeout = setTimeout(() => {\n\t\t\tthis._selectionRef.$center();\n\t\t\tthis._imageRef.$center();\n\t\t}, 200);\n\t}\n\n\tcomponentDidLoad() {\n\t\tsetTimeout(() => {\n\t\t\tthis._loaded = true;\n\t\t}, 200);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class=\"p-cropper\">\n\t\t\t\t{this._loaded && (\n\t\t\t\t\t<cropper-canvas\n\t\t\t\t\t\tclass=\"h-[17.5rem] w-full border-0 border-b border-solid border-mystic-medium bg-white\"\n\t\t\t\t\t\tonAction={() => this._onAction()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<cropper-image\n\t\t\t\t\t\t\tsrc={this.value}\n\t\t\t\t\t\t\talt=\"Picture\"\n\t\t\t\t\t\t\tref={(ref) =>\n\t\t\t\t\t\t\t\tthis._setImageRef(ref as CropperImage)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tscalable\n\t\t\t\t\t\t\tcrossorigin=\"anonymous\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<cropper-shade\n\t\t\t\t\t\t\tclass={clsx({\n\t\t\t\t\t\t\t\t'rounded-round': this.variant === 'user',\n\t\t\t\t\t\t\t\trounded: this.variant === 'company',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\ttheme-color=\"rgba(255, 255, 255, 0.5)\"\n\t\t\t\t\t\t\thidden\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<cropper-selection\n\t\t\t\t\t\t\tinitial-coverage=\"0.7\"\n\t\t\t\t\t\t\taspect-ratio=\"1\"\n\t\t\t\t\t\t\tref={(ref) =>\n\t\t\t\t\t\t\t\t(this._selectionRef = ref as CropperSelection)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<cropper-handle action=\"move\" plain></cropper-handle>\n\t\t\t\t\t</cropper-canvas>\n\t\t\t\t)}\n\n\t\t\t\t<div class=\"flex w-full items-center gap-2 px-14 text-storm-vague tablet:max-w-xs tablet:px-1\">\n\t\t\t\t\t<p-icon variant=\"minus\" />\n\t\t\t\t\t<input\n\t\t\t\t\t\tclass=\"p-input w-full\"\n\t\t\t\t\t\ttype=\"range\"\n\t\t\t\t\t\tmin=\"0\"\n\t\t\t\t\t\tmax=\"100\"\n\t\t\t\t\t\tvalue={this._currentScale}\n\t\t\t\t\t\tonInput={(ev) =>\n\t\t\t\t\t\t\tthis._onInput((ev.target as HTMLInputElement).value)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstep=\"0.5\"\n\t\t\t\t\t/>\n\t\t\t\t\t<p-icon variant=\"plus\" />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\tprivate _setImageRef(ref: CropperImage) {\n\t\tif (this._imageRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._imageRef = ref;\n\t\tthis._imageRef.$ready((image) =>\n\t\t\tsetTimeout(() => this._setInitialState(image), 200)\n\t\t);\n\t}\n\n\tprivate _setInitialState(image) {\n\t\tlet scale: number;\n\t\tif (image.naturalWidth > image.naturalHeight) {\n\t\t\t// set scale by height\n\t\t\tscale = 200 / image.naturalHeight;\n\t\t}\n\n\t\tif (image.naturalHeight >= image.naturalWidth) {\n\t\t\t// set scale by width\n\t\t\tscale = 200 / image.naturalWidth;\n\t\t}\n\n\t\tconst current = this._imageRef.$getTransform();\n\n\t\tthis._minScale = scale;\n\t\tthis._maxScale = current[0];\n\n\t\tthis._selectionRef.$resize('nw-resize', 200, 200, 1);\n\t\tthis._selectionRef.$center();\n\n\t\tthis._setScale(scale);\n\t\tthis._toCanvas();\n\t}\n\n\tprivate _onAction() {\n\t\tthis._setCurrentScale();\n\t\tthis._toCanvas();\n\t}\n\n\tprivate _setScale(\n\t\tscale: number,\n\t\tsetCenter: boolean = true,\n\t\tsetCurrentScale: boolean = true\n\t) {\n\t\tconst transform = this._imageRef.$getTransform();\n\t\tthis._imageRef.$setTransform([\n\t\t\tscale,\n\t\t\t0,\n\t\t\t0,\n\t\t\tscale,\n\t\t\ttransform[4],\n\t\t\ttransform[5],\n\t\t]);\n\n\t\tif (setCenter) {\n\t\t\tthis._imageRef.$center();\n\t\t}\n\n\t\tif (setCurrentScale) {\n\t\t\tthis._setCurrentScale();\n\t\t}\n\t}\n\n\tprivate _setCurrentScale() {\n\t\tconst transform = this._imageRef.$getTransform();\n\t\tconst current = transform[0];\n\n\t\tif (current < this._minScale) {\n\t\t\tthis._setScale(this._minScale, true, false);\n\t\t\tthis._currentScale = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tif (current > this._maxScale) {\n\t\t\tthis._setScale(this._maxScale, true, false);\n\t\t\tthis._currentScale = 100;\n\t\t\treturn;\n\t\t}\n\n\t\tif (current === this._minScale) {\n\t\t\tthis._currentScale = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tif (current === this._maxScale) {\n\t\t\tthis._currentScale = 100;\n\t\t\treturn;\n\t\t}\n\n\t\tconst minMaxDiff = this._maxScale - this._minScale;\n\t\tconst currentDiff = current - this._minScale;\n\n\t\tconst percentage = (currentDiff / minMaxDiff) * 100;\n\t\tthis._currentScale = percentage;\n\t}\n\n\tprivate _onInput(value) {\n\t\tconst transform = this._imageRef.$getTransform();\n\t\tconst current = transform[0];\n\t\tconst minMaxDiff = this._maxScale - this._minScale;\n\n\t\tconst toSet = minMaxDiff * (value / 100);\n\n\t\tif (toSet === current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setScale(toSet + this._minScale, false, false);\n\t\tthis._currentScale = value;\n\n\t\tthis._toCanvas();\n\t}\n\n\tprivate _toCanvas() {\n\t\tif (this._toCanvasDebounceTimeout) {\n\t\t\tclearTimeout(this._toCanvasDebounceTimeout);\n\t\t}\n\n\t\tthis._toCanvasDebounceTimeout = setTimeout(async () => {\n\t\t\tconst canvas = await this._selectionRef.$toCanvas();\n\t\t\tif (this.returnType === 'canvas') {\n\t\t\t\tthis.valueChange.emit(canvas);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst data = canvas.toDataURL('image/png');\n\t\t\tthis.valueChange.emit(data);\n\t\t}, 200);\n\t}\n}\n"],"version":3}
|
|
1
|
+
{"file":"p-cropper.entry.cjs.js","mappings":"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","names":["style","canvasCache","h","Host"],"sources":["node_modules/clsx/dist/clsx.mjs","../../node_modules/@cropper/utils/dist/utils.esm.raw.js","../../node_modules/@cropper/element/dist/element.esm.raw.js","../../node_modules/@cropper/element-canvas/dist/element-canvas.esm.raw.js","../../node_modules/@cropper/element-image/dist/element-image.esm.raw.js","../../node_modules/@cropper/element-shade/dist/element-shade.esm.raw.js","../../node_modules/@cropper/element-handle/dist/element-handle.esm.raw.js","../../node_modules/@cropper/element-selection/dist/element-selection.esm.raw.js","../../node_modules/@cropper/element-grid/dist/element-grid.esm.raw.js","../../node_modules/@cropper/element-crosshair/dist/element-crosshair.esm.raw.js","../../node_modules/@cropper/element-viewer/dist/element-viewer.esm.raw.js","../../node_modules/cropperjs/dist/cropper.esm.raw.js","src/components/molecules/cropper/cropper.component.scss?tag=p-cropper&encapsulation=shadow","src/components/molecules/cropper/cropper.component.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","const IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\nconst WINDOW = IS_BROWSER ? window : {};\nconst IS_TOUCH_DEVICE = IS_BROWSER ? 'ontouchstart' in WINDOW.document.documentElement : false;\nconst HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false;\nconst NAMESPACE = 'cropper';\nconst CROPPER_CANVAS = `${NAMESPACE}-canvas`;\nconst CROPPER_CROSSHAIR = `${NAMESPACE}-crosshair`;\nconst CROPPER_GIRD = `${NAMESPACE}-grid`;\nconst CROPPER_HANDLE = `${NAMESPACE}-handle`;\nconst CROPPER_IMAGE = `${NAMESPACE}-image`;\nconst CROPPER_SELECTION = `${NAMESPACE}-selection`;\nconst CROPPER_SHADE = `${NAMESPACE}-shade`;\nconst CROPPER_VIEWER = `${NAMESPACE}-viewer`;\n// Actions\nconst ACTION_SELECT = 'select';\nconst ACTION_MOVE = 'move';\nconst ACTION_SCALE = 'scale';\nconst ACTION_ROTATE = 'rotate';\nconst ACTION_TRANSFORM = 'transform';\nconst ACTION_NONE = 'none';\nconst ACTION_RESIZE_NORTH = 'n-resize';\nconst ACTION_RESIZE_EAST = 'e-resize';\nconst ACTION_RESIZE_SOUTH = 's-resize';\nconst ACTION_RESIZE_WEST = 'w-resize';\nconst ACTION_RESIZE_NORTHEAST = 'ne-resize';\nconst ACTION_RESIZE_NORTHWEST = 'nw-resize';\nconst ACTION_RESIZE_SOUTHEAST = 'se-resize';\nconst ACTION_RESIZE_SOUTHWEST = 'sw-resize';\n// Attributes\nconst ATTRIBUTE_ACTION = 'action';\n// Native events\nconst EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup';\nconst EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove';\nconst EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown';\nconst EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START;\nconst EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE;\nconst EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END;\nconst EVENT_ERROR = 'error';\nconst EVENT_KEYDOWN = 'keydown';\nconst EVENT_LOAD = 'load';\nconst EVENT_RESIZE = 'resize';\nconst EVENT_WHEEL = 'wheel';\n// Custom events\nconst EVENT_ACTION = 'action';\nconst EVENT_ACTION_END = 'actionend';\nconst EVENT_ACTION_MOVE = 'actionmove';\nconst EVENT_ACTION_START = 'actionstart';\nconst EVENT_CHANGE = 'change';\nconst EVENT_TRANSFORM = 'transform';\n\n/**\n * Check if the given value is a string.\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the given value is a string, else `false`.\n */\nfunction isString(value) {\n return typeof value === 'string';\n}\n/**\n * Check if the given value is not a number.\n */\nconst isNaN = Number.isNaN || WINDOW.isNaN;\n/**\n * Check if the given value is a number.\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the given value is a number, else `false`.\n */\nfunction isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n/**\n * Check if the given value is a positive number.\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the given value is a positive number, else `false`.\n */\nfunction isPositiveNumber(value) {\n return isNumber(value) && value > 0 && value < Infinity;\n}\n/**\n * Check if the given value is undefined.\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the given value is undefined, else `false`.\n */\nfunction isUndefined(value) {\n return typeof value === 'undefined';\n}\n/**\n * Check if the given value is an object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is an object, else `false`.\n */\nfunction isObject(value) {\n return typeof value === 'object' && value !== null;\n}\nconst { hasOwnProperty } = Object.prototype;\n/**\n * Check if the given value is a plain object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a plain object, else `false`.\n */\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n try {\n const { constructor } = value;\n const { prototype } = constructor;\n return constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf');\n }\n catch (error) {\n return false;\n }\n}\n/**\n * Check if the given value is a function.\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the given value is a function, else `false`.\n */\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n/**\n * Check if the given node is an element.\n * @param {*} node The node to check.\n * @returns {boolean} Returns `true` if the given node is an element; otherwise, `false`.\n */\nfunction isElement(node) {\n return typeof node === 'object' && node !== null && node.nodeType === 1;\n}\nconst REGEXP_CAMEL_CASE = /([a-z\\d])([A-Z])/g;\n/**\n * Transform the given string from camelCase to kebab-case.\n * @param {string} value The value to transform.\n * @returns {string} Returns the transformed value.\n */\nfunction toKebabCase(value) {\n return String(value).replace(REGEXP_CAMEL_CASE, '$1-$2').toLowerCase();\n}\nconst REGEXP_KEBAB_CASE = /-[A-z\\d]/g;\n/**\n * Transform the given string from kebab-case to camelCase.\n * @param {string} value The value to transform.\n * @returns {string} Returns the transformed value.\n */\nfunction toCamelCase(value) {\n return value.replace(REGEXP_KEBAB_CASE, (substring) => substring.slice(1).toUpperCase());\n}\nconst REGEXP_SPACES = /\\s\\s*/;\n/**\n * Remove event listener from the event target.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener}\n * @param {EventTarget} target The target of the event.\n * @param {string} types The types of the event.\n * @param {EventListenerOrEventListenerObject} listener The listener of the event.\n * @param {EventListenerOptions} [options] The options specify characteristics about the event listener.\n */\nfunction off(target, types, listener, options) {\n types.trim().split(REGEXP_SPACES).forEach((type) => {\n target.removeEventListener(type, listener, options);\n });\n}\n/**\n * Add event listener to the event target.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener}\n * @param {EventTarget} target The target of the event.\n * @param {string} types The types of the event.\n * @param {EventListenerOrEventListenerObject} listener The listener of the event.\n * @param {AddEventListenerOptions} [options] The options specify characteristics about the event listener.\n */\nfunction on(target, types, listener, options) {\n types.trim().split(REGEXP_SPACES).forEach((type) => {\n target.addEventListener(type, listener, options);\n });\n}\n/**\n * Add once event listener to the event target.\n * @param {EventTarget} target The target of the event.\n * @param {string} types The types of the event.\n * @param {EventListenerOrEventListenerObject} listener The listener of the event.\n * @param {AddEventListenerOptions} [options] The options specify characteristics about the event listener.\n */\nfunction once(target, types, listener, options) {\n on(target, types, listener, Object.assign(Object.assign({}, options), { once: true }));\n}\nconst defaultEventOptions = {\n bubbles: true,\n cancelable: true,\n composed: true,\n};\n/**\n * Dispatch event on the event target.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/dispatchEvent}\n * @param {EventTarget} target The target of the event.\n * @param {string} type The name of the event.\n * @param {*} [detail] The data passed when initializing the event.\n * @param {CustomEventInit} [options] The other event options.\n * @returns {boolean} Returns the result value.\n */\nfunction emit(target, type, detail, options) {\n return target.dispatchEvent(new CustomEvent(type, Object.assign(Object.assign(Object.assign({}, defaultEventOptions), { detail }), options)));\n}\nconst resolvedPromise = Promise.resolve();\n/**\n * Defers the callback to be executed after the next DOM update cycle.\n * @param {*} [context] The `this` context.\n * @param {Function} [callback] The callback to execute after the next DOM update cycle.\n * @returns {Promise} A promise that resolves to nothing.\n */\nfunction nextTick(context, callback) {\n return callback\n ? resolvedPromise.then(context ? callback.bind(context) : callback)\n : resolvedPromise;\n}\n/**\n * Get the offset base on the document.\n * @param {Element} element The target element.\n * @returns {object} The offset data.\n */\nfunction getOffset(element) {\n const { documentElement } = element.ownerDocument;\n const box = element.getBoundingClientRect();\n return {\n left: box.left + (WINDOW.pageXOffset - documentElement.clientLeft),\n top: box.top + (WINDOW.pageYOffset - documentElement.clientTop),\n };\n}\nconst REGEXP_ANGLE_UNIT = /deg|g?rad|turn$/i;\n/**\n * Convert an angle to a radian number.\n * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/angle}\n * @param {number|string} angle The angle to convert.\n * @returns {number} Returns the radian number.\n */\nfunction toAngleInRadian(angle) {\n const value = parseFloat(angle) || 0;\n if (value !== 0) {\n const [unit = 'rad'] = String(angle).match(REGEXP_ANGLE_UNIT) || [];\n switch (unit.toLowerCase()) {\n case 'deg':\n return (value / 360) * (Math.PI * 2);\n case 'grad':\n return (value / 400) * (Math.PI * 2);\n case 'turn':\n return value * (Math.PI * 2);\n }\n }\n return value;\n}\nconst SIZE_ADJUSTMENT_TYPE_CONTAIN = 'contain';\nconst SIZE_ADJUSTMENT_TYPE_COVER = 'cover';\n/**\n * Get the max sizes in a rectangle under the given aspect ratio.\n * @param {object} data The original sizes.\n * @param {string} [type] The adjust type.\n * @returns {object} Returns the result sizes.\n */\nfunction getAdjustedSizes(data, type = SIZE_ADJUSTMENT_TYPE_CONTAIN) {\n const { aspectRatio } = data;\n let { width, height } = data;\n const isValidWidth = isPositiveNumber(width);\n const isValidHeight = isPositiveNumber(height);\n if (isValidWidth && isValidHeight) {\n const adjustedWidth = height * aspectRatio;\n if ((type === SIZE_ADJUSTMENT_TYPE_CONTAIN && adjustedWidth > width)\n || (type === SIZE_ADJUSTMENT_TYPE_COVER && adjustedWidth < width)) {\n height = width / aspectRatio;\n }\n else {\n width = height * aspectRatio;\n }\n }\n else if (isValidWidth) {\n height = width / aspectRatio;\n }\n else if (isValidHeight) {\n width = height * aspectRatio;\n }\n return {\n width,\n height,\n };\n}\n/**\n * Multiply multiple matrices.\n * @param {Array} matrix The first matrix.\n * @param {Array} args The rest matrices.\n * @returns {Array} Returns the result matrix.\n */\nfunction multiplyMatrices(matrix, ...args) {\n if (args.length === 0) {\n return matrix;\n }\n const [a1, b1, c1, d1, e1, f1] = matrix;\n const [a2, b2, c2, d2, e2, f2] = args[0];\n // ┌ a1 c1 e1 ┐ ┌ a2 c2 e2 ┐\n // │ b1 d1 f1 │ × │ b2 d2 f2 │\n // └ 0 0 1 ┘ └ 0 0 1 ┘\n matrix = [\n a1 * a2 + c1 * b2 /* + e1 * 0 */,\n b1 * a2 + d1 * b2 /* + f1 * 0 */,\n a1 * c2 + c1 * d2 /* + e1 * 0 */,\n b1 * c2 + d1 * d2 /* + f1 * 0 */,\n a1 * e2 + c1 * f2 + e1 /* * 1 */,\n b1 * e2 + d1 * f2 + f1 /* * 1 */,\n ];\n return multiplyMatrices(matrix, ...args.slice(1));\n}\n\nexport { ACTION_MOVE, ACTION_NONE, ACTION_RESIZE_EAST, ACTION_RESIZE_NORTH, ACTION_RESIZE_NORTHEAST, ACTION_RESIZE_NORTHWEST, ACTION_RESIZE_SOUTH, ACTION_RESIZE_SOUTHEAST, ACTION_RESIZE_SOUTHWEST, ACTION_RESIZE_WEST, ACTION_ROTATE, ACTION_SCALE, ACTION_SELECT, ACTION_TRANSFORM, ATTRIBUTE_ACTION, CROPPER_CANVAS, CROPPER_CROSSHAIR, CROPPER_GIRD, CROPPER_HANDLE, CROPPER_IMAGE, CROPPER_SELECTION, CROPPER_SHADE, CROPPER_VIEWER, EVENT_ACTION, EVENT_ACTION_END, EVENT_ACTION_MOVE, EVENT_ACTION_START, EVENT_CHANGE, EVENT_ERROR, EVENT_KEYDOWN, EVENT_LOAD, EVENT_POINTER_DOWN, EVENT_POINTER_MOVE, EVENT_POINTER_UP, EVENT_RESIZE, EVENT_TOUCH_END, EVENT_TOUCH_MOVE, EVENT_TOUCH_START, EVENT_TRANSFORM, EVENT_WHEEL, HAS_POINTER_EVENT, IS_BROWSER, IS_TOUCH_DEVICE, NAMESPACE, WINDOW, emit, getAdjustedSizes, getOffset, isElement, isFunction, isNaN, isNumber, isObject, isPlainObject, isPositiveNumber, isString, isUndefined, multiplyMatrices, nextTick, off, on, once, toAngleInRadian, toCamelCase, toKebabCase };\n","import { WINDOW, toCamelCase, toKebabCase, isNaN, isUndefined, isNumber, emit, nextTick, isObject, IS_BROWSER } from '@cropper/utils';\n\nvar style = `:host([hidden]){display:none!important}`;\n\nconst REGEXP_SUFFIX = /left|top|width|height/i;\nconst DEFAULT_SHADOW_ROOT_MODE = 'open';\nconst shadowRoots = new WeakMap();\nconst styleSheets = new WeakMap();\nconst tagNames = new Map();\nconst supportsAdoptedStyleSheets = WINDOW.document && Array.isArray(WINDOW.document.adoptedStyleSheets) && 'replaceSync' in WINDOW.CSSStyleSheet.prototype;\nclass CropperElement extends HTMLElement {\n get $sharedStyle() {\n return `${this.themeColor ? `:host{--theme-color: ${this.themeColor};}` : ''}${style}`;\n }\n constructor() {\n var _a, _b;\n super();\n this.shadowRootMode = DEFAULT_SHADOW_ROOT_MODE;\n this.slottable = true;\n const name = (_b = (_a = Object.getPrototypeOf(this)) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.$name;\n if (name) {\n tagNames.set(name, this.tagName.toLowerCase());\n }\n }\n static get observedAttributes() {\n return [\n 'shadow-root-mode',\n 'slottable',\n 'theme-color',\n ];\n }\n // Convert attribute to property\n attributeChangedCallback(name, oldValue, newValue) {\n if (Object.is(newValue, oldValue)) {\n return;\n }\n const propertyName = toCamelCase(name);\n const oldPropertyValue = this[propertyName];\n let newPropertyValue = newValue;\n switch (typeof oldPropertyValue) {\n case 'boolean':\n newPropertyValue = newValue !== null && newValue !== 'false';\n break;\n case 'number':\n newPropertyValue = Number(newValue);\n break;\n }\n this[propertyName] = newPropertyValue;\n switch (name) {\n case 'theme-color': {\n const styleSheet = styleSheets.get(this);\n const styles = this.$sharedStyle;\n if (styleSheet && styles) {\n if (supportsAdoptedStyleSheets) {\n styleSheet.replaceSync(styles);\n }\n else {\n styleSheet.textContent = styles;\n }\n }\n break;\n }\n }\n }\n // Convert property to attribute\n $propertyChangedCallback(name, oldValue, newValue) {\n if (Object.is(newValue, oldValue)) {\n return;\n }\n name = toKebabCase(name);\n switch (typeof newValue) {\n case 'boolean':\n if (newValue === true) {\n if (!this.hasAttribute(name)) {\n this.setAttribute(name, '');\n }\n }\n else {\n this.removeAttribute(name);\n }\n break;\n case 'number':\n if (isNaN(newValue)) {\n newValue = '';\n }\n else {\n newValue = String(newValue);\n }\n // Fall through\n // case 'string':\n // eslint-disable-next-line no-fallthrough\n default:\n if (newValue) {\n if (this.getAttribute(name) !== newValue) {\n this.setAttribute(name, newValue);\n }\n }\n else {\n this.removeAttribute(name);\n }\n }\n }\n connectedCallback() {\n // Observe properties after observed attributes\n Object.getPrototypeOf(this).constructor.observedAttributes.forEach((attribute) => {\n const property = toCamelCase(attribute);\n let value = this[property];\n if (!isUndefined(value)) {\n this.$propertyChangedCallback(property, undefined, value);\n }\n Object.defineProperty(this, property, {\n enumerable: true,\n configurable: true,\n get() {\n return value;\n },\n set(newValue) {\n const oldValue = value;\n value = newValue;\n this.$propertyChangedCallback(property, oldValue, newValue);\n },\n });\n });\n const shadow = this.attachShadow({\n mode: this.shadowRootMode || DEFAULT_SHADOW_ROOT_MODE,\n });\n if (!this.shadowRoot) {\n shadowRoots.set(this, shadow);\n }\n styleSheets.set(this, this.$addStyles(this.$sharedStyle));\n if (this.$style) {\n this.$addStyles(this.$style);\n }\n if (this.$template) {\n const template = document.createElement('template');\n template.innerHTML = this.$template;\n shadow.appendChild(template.content);\n }\n if (this.slottable) {\n const slot = document.createElement('slot');\n shadow.appendChild(slot);\n }\n }\n disconnectedCallback() {\n if (styleSheets.has(this)) {\n styleSheets.delete(this);\n }\n if (shadowRoots.has(this)) {\n shadowRoots.delete(this);\n }\n }\n // eslint-disable-next-line class-methods-use-this\n $getTagNameOf(name) {\n var _a;\n return (_a = tagNames.get(name)) !== null && _a !== void 0 ? _a : name;\n }\n $setStyles(properties) {\n Object.keys(properties).forEach((property) => {\n let value = properties[property];\n if (isNumber(value)) {\n if (value !== 0 && REGEXP_SUFFIX.test(property)) {\n value = `${value}px`;\n }\n else {\n value = String(value);\n }\n }\n this.style[property] = value;\n });\n return this;\n }\n /**\n * Outputs the shadow root of the element.\n * @returns {ShadowRoot} Returns the shadow root.\n */\n $getShadowRoot() {\n return this.shadowRoot || shadowRoots.get(this);\n }\n /**\n * Adds styles to the shadow root.\n * @param {string} styles The styles to add.\n * @returns {CSSStyleSheet|HTMLStyleElement} Returns the generated style sheet.\n */\n $addStyles(styles) {\n let styleSheet;\n const shadow = this.$getShadowRoot();\n if (supportsAdoptedStyleSheets) {\n styleSheet = new CSSStyleSheet();\n styleSheet.replaceSync(styles);\n shadow.adoptedStyleSheets = shadow.adoptedStyleSheets.concat(styleSheet);\n }\n else {\n styleSheet = document.createElement('style');\n styleSheet.textContent = styles;\n shadow.appendChild(styleSheet);\n }\n return styleSheet;\n }\n /**\n * Dispatches an event at the element.\n * @param {string} type The name of the event.\n * @param {*} [detail] The data passed when initializing the event.\n * @param {CustomEventInit} [options] The other event options.\n * @returns {boolean} Returns the result value.\n */\n $emit(type, detail, options) {\n return emit(this, type, detail, options);\n }\n /**\n * Defers the callback to be executed after the next DOM update cycle.\n * @param {Function} [callback] The callback to execute after the next DOM update cycle.\n * @returns {Promise} A promise that resolves to nothing.\n */\n $nextTick(callback) {\n return nextTick(this, callback);\n }\n /**\n * Defines the constructor as a new custom element.\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/define}\n * @param {string|object} [name] The element name.\n * @param {object} [options] The element definition options.\n */\n static $define(name, options) {\n if (isObject(name)) {\n options = name;\n name = '';\n }\n if (!name) {\n name = this.$name || this.name;\n }\n name = toKebabCase(name);\n if (IS_BROWSER && WINDOW.customElements && !WINDOW.customElements.get(name)) {\n customElements.define(name, this, options);\n }\n }\n}\nCropperElement.$version = '2.0.0-beta.4';\n\nexport { CropperElement as default };\n","import CropperElement from '@cropper/element';\nimport { CROPPER_CANVAS, ACTION_NONE, on, EVENT_POINTER_DOWN, EVENT_POINTER_MOVE, EVENT_POINTER_UP, EVENT_WHEEL, off, isNumber, isElement, ATTRIBUTE_ACTION, EVENT_ACTION_START, EVENT_ACTION_MOVE, ACTION_TRANSFORM, EVENT_ACTION, EVENT_ACTION_END, ACTION_SCALE, isString, isPlainObject, isPositiveNumber, getAdjustedSizes, CROPPER_IMAGE, isFunction, ACTION_ROTATE } from '@cropper/utils';\n\nvar style = `:host{display:block;min-height:100px;min-width:200px;overflow:hidden;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host([background]){background-color:#fff;background-image:repeating-linear-gradient(45deg,#ccc 25%,transparent 0,transparent 75%,#ccc 0,#ccc),repeating-linear-gradient(45deg,#ccc 25%,transparent 0,transparent 75%,#ccc 0,#ccc);background-image:repeating-conic-gradient(#ccc 0 25%,#fff 0 50%);background-position:0 0,.5rem .5rem;background-size:1rem 1rem}:host([disabled]){pointer-events:none}:host([disabled]):after{bottom:0;content:\"\";cursor:not-allowed;display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}`;\n\nclass CropperCanvas extends CropperElement {\n constructor() {\n super(...arguments);\n this.$onPointerDown = null;\n this.$onPointerMove = null;\n this.$onPointerUp = null;\n this.$onWheel = null;\n this.$wheeling = false;\n this.$pointers = new Map();\n this.$style = style;\n this.$action = ACTION_NONE;\n this.background = false;\n this.disabled = false;\n this.scaleStep = 0.1;\n this.themeColor = '#39f';\n }\n static get observedAttributes() {\n return super.observedAttributes.concat([\n 'background',\n 'disabled',\n 'scale-step',\n ]);\n }\n connectedCallback() {\n super.connectedCallback();\n if (!this.disabled) {\n this.$bind();\n }\n }\n disconnectedCallback() {\n if (!this.disabled) {\n this.$unbind();\n }\n super.disconnectedCallback();\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 'disabled':\n if (newValue) {\n this.$unbind();\n }\n else {\n this.$bind();\n }\n break;\n }\n }\n $bind() {\n if (!this.$onPointerDown) {\n this.$onPointerDown = this.$handlePointerDown.bind(this);\n on(this, EVENT_POINTER_DOWN, this.$onPointerDown);\n }\n if (!this.$onPointerMove) {\n this.$onPointerMove = this.$handlePointerMove.bind(this);\n on(this.ownerDocument, EVENT_POINTER_MOVE, this.$onPointerMove);\n }\n if (!this.$onPointerUp) {\n this.$onPointerUp = this.$handlePointerUp.bind(this);\n on(this.ownerDocument, EVENT_POINTER_UP, this.$onPointerUp);\n }\n if (!this.$onWheel) {\n this.$onWheel = this.$handleWheel.bind(this);\n on(this, EVENT_WHEEL, this.$onWheel, {\n passive: false,\n capture: true,\n });\n }\n }\n $unbind() {\n if (this.$onPointerDown) {\n off(this, EVENT_POINTER_DOWN, this.$onPointerDown);\n this.$onPointerDown = null;\n }\n if (this.$onPointerMove) {\n off(this.ownerDocument, EVENT_POINTER_MOVE, this.$onPointerMove);\n this.$onPointerMove = null;\n }\n if (this.$onPointerUp) {\n off(this.ownerDocument, EVENT_POINTER_UP, this.$onPointerUp);\n this.$onPointerUp = null;\n }\n if (this.$onWheel) {\n off(this, EVENT_WHEEL, this.$onWheel, {\n capture: true,\n });\n this.$onWheel = null;\n }\n }\n $handlePointerDown(event) {\n const { buttons, button, type } = event;\n if (this.disabled || (\n // Handle pointer or mouse event, and ignore touch event\n ((type === 'pointerdown' && event.pointerType === 'mouse') || type === 'mousedown') && (\n // No primary button (Usually the left button)\n (isNumber(buttons) && buttons !== 1) || (isNumber(button) && button !== 0)\n // Open context menu\n || event.ctrlKey))) {\n return;\n }\n const { $pointers } = this;\n let action = '';\n if (event.changedTouches) {\n Array.from(event.changedTouches).forEach(({ identifier, pageX, pageY, }) => {\n $pointers.set(identifier, {\n startX: pageX,\n startY: pageY,\n endX: pageX,\n endY: pageY,\n });\n });\n }\n else {\n const { pointerId = 0, pageX, pageY } = event;\n $pointers.set(pointerId, {\n startX: pageX,\n startY: pageY,\n endX: pageX,\n endY: pageY,\n });\n }\n if ($pointers.size > 1) {\n action = ACTION_TRANSFORM;\n }\n else if (isElement(event.target)) {\n action = event.target.action || event.target.getAttribute(ATTRIBUTE_ACTION) || '';\n }\n if (this.$emit(EVENT_ACTION_START, {\n action,\n relatedEvent: event,\n }) === false) {\n return;\n }\n // Prevent page zooming in the browsers for iOS.\n event.preventDefault();\n this.$action = action;\n this.style.willChange = 'transform';\n }\n $handlePointerMove(event) {\n const { $action, $pointers } = this;\n if (this.disabled || $action === ACTION_NONE || $pointers.size === 0) {\n return;\n }\n if (this.$emit(EVENT_ACTION_MOVE, {\n action: $action,\n relatedEvent: event,\n }) === false) {\n return;\n }\n // Prevent page scrolling.\n event.preventDefault();\n if (event.changedTouches) {\n Array.from(event.changedTouches).forEach(({ identifier, pageX, pageY, }) => {\n const pointer = $pointers.get(identifier);\n if (pointer) {\n Object.assign(pointer, {\n endX: pageX,\n endY: pageY,\n });\n }\n });\n }\n else {\n const { pointerId = 0, pageX, pageY } = event;\n const pointer = $pointers.get(pointerId);\n if (pointer) {\n Object.assign(pointer, {\n endX: pageX,\n endY: pageY,\n });\n }\n }\n const detail = {\n action: $action,\n relatedEvent: event,\n };\n if ($action === ACTION_TRANSFORM) {\n const pointers2 = new Map($pointers);\n let maxRotateRate = 0;\n let maxScaleRate = 0;\n let rotate = 0;\n let scale = 0;\n let centerX = event.pageX;\n let centerY = event.pageY;\n $pointers.forEach((pointer, pointerId) => {\n pointers2.delete(pointerId);\n pointers2.forEach((pointer2) => {\n let x1 = pointer2.startX - pointer.startX;\n let y1 = pointer2.startY - pointer.startY;\n let x2 = pointer2.endX - pointer.endX;\n let y2 = pointer2.endY - pointer.endY;\n let z1 = 0;\n let z2 = 0;\n let a1 = 0;\n let a2 = 0;\n if (x1 === 0) {\n if (y1 < 0) {\n a1 = Math.PI * 2;\n }\n else if (y1 > 0) {\n a1 = Math.PI;\n }\n }\n else if (x1 > 0) {\n a1 = (Math.PI / 2) + Math.atan(y1 / x1);\n }\n else if (x1 < 0) {\n a1 = (Math.PI * 1.5) + Math.atan(y1 / x1);\n }\n if (x2 === 0) {\n if (y2 < 0) {\n a2 = Math.PI * 2;\n }\n else if (y2 > 0) {\n a2 = Math.PI;\n }\n }\n else if (x2 > 0) {\n a2 = (Math.PI / 2) + Math.atan(y2 / x2);\n }\n else if (x2 < 0) {\n a2 = (Math.PI * 1.5) + Math.atan(y2 / x2);\n }\n if (a2 > 0 || a1 > 0) {\n const rotateRate = a2 - a1;\n const absRotateRate = Math.abs(rotateRate);\n if (absRotateRate > maxRotateRate) {\n maxRotateRate = absRotateRate;\n rotate = rotateRate;\n centerX = (pointer.startX + pointer2.startX) / 2;\n centerY = (pointer.startY + pointer2.startY) / 2;\n }\n }\n x1 = Math.abs(x1);\n y1 = Math.abs(y1);\n x2 = Math.abs(x2);\n y2 = Math.abs(y2);\n if (x1 > 0 && y1 > 0) {\n z1 = Math.sqrt((x1 * x1) + (y1 * y1));\n }\n else if (x1 > 0) {\n z1 = x1;\n }\n else if (y1 > 0) {\n z1 = y1;\n }\n if (x2 > 0 && y2 > 0) {\n z2 = Math.sqrt((x2 * x2) + (y2 * y2));\n }\n else if (x2 > 0) {\n z2 = x2;\n }\n else if (y2 > 0) {\n z2 = y2;\n }\n if (z1 > 0 && z2 > 0) {\n const scaleRate = (z2 - z1) / z1;\n const absScaleRate = Math.abs(scaleRate);\n if (absScaleRate > maxScaleRate) {\n maxScaleRate = absScaleRate;\n scale = scaleRate;\n centerX = (pointer.startX + pointer2.startX) / 2;\n centerY = (pointer.startY + pointer2.startY) / 2;\n }\n }\n });\n });\n const rotatable = maxRotateRate > 0;\n const scalable = maxScaleRate > 0;\n if (rotatable && scalable) {\n detail.rotate = rotate;\n detail.scale = scale;\n detail.centerX = centerX;\n detail.centerY = centerY;\n }\n else if (rotatable) {\n detail.action = ACTION_ROTATE;\n detail.rotate = rotate;\n detail.centerX = centerX;\n detail.centerY = centerY;\n }\n else if (scalable) {\n detail.action = ACTION_SCALE;\n detail.scale = scale;\n detail.centerX = centerX;\n detail.centerY = centerY;\n }\n else {\n detail.action = ACTION_NONE;\n }\n }\n else {\n const [pointer] = Array.from($pointers.values());\n Object.assign(detail, pointer);\n }\n // Override the starting coordinate\n $pointers.forEach((pointer) => {\n pointer.startX = pointer.endX;\n pointer.startY = pointer.endY;\n });\n if (detail.action !== ACTION_NONE) {\n this.$emit(EVENT_ACTION, detail, {\n cancelable: false,\n });\n }\n }\n $handlePointerUp(event) {\n const { $action, $pointers } = this;\n if (this.disabled || $action === ACTION_NONE) {\n return;\n }\n if (this.$emit(EVENT_ACTION_END, {\n action: $action,\n relatedEvent: event,\n }) === false) {\n return;\n }\n event.preventDefault();\n if (event.changedTouches) {\n Array.from(event.changedTouches).forEach(({ identifier, }) => {\n $pointers.delete(identifier);\n });\n }\n else {\n const { pointerId = 0 } = event;\n $pointers.delete(pointerId);\n }\n if ($pointers.size === 0) {\n this.style.willChange = '';\n this.$action = ACTION_NONE;\n }\n }\n $handleWheel(event) {\n if (this.disabled) {\n return;\n }\n event.preventDefault();\n // Limit wheel speed to prevent zoom too fast (#21)\n if (this.$wheeling) {\n return;\n }\n this.$wheeling = true;\n // Debounce by 50ms\n setTimeout(() => {\n this.$wheeling = false;\n }, 50);\n const delta = event.deltaY > 0 ? -1 : 1;\n const scale = delta * this.scaleStep;\n this.$emit(EVENT_ACTION, {\n action: ACTION_SCALE,\n scale,\n relatedEvent: event,\n }, {\n cancelable: false,\n });\n }\n /**\n * Changes the current action to a new one.\n * @param {string} action The new action.\n * @returns {CropperCanvas} Returns `this` for chaining.\n */\n $setAction(action) {\n if (isString(action)) {\n this.$action = action;\n }\n return this;\n }\n /**\n * Generates a real canvas element, with the image draw into if there is one.\n * @param {object} [options] The available options.\n * @param {number} [options.width] The width of the canvas.\n * @param {number} [options.height] The height of the canvas.\n * @param {Function} [options.beforeDraw] The function called before drawing the image onto the canvas.\n * @returns {Promise} Returns a promise that resolves to the generated canvas element.\n */\n $toCanvas(options) {\n return new Promise((resolve, reject) => {\n if (!this.isConnected) {\n reject(new Error('The current element is not connected to the DOM.'));\n return;\n }\n const canvas = document.createElement('canvas');\n let width = this.offsetWidth;\n let height = this.offsetHeight;\n let scale = 1;\n if (isPlainObject(options)\n && (isPositiveNumber(options.width) || isPositiveNumber(options.height))) {\n ({ width, height } = getAdjustedSizes({\n aspectRatio: width / height,\n width: options.width,\n height: options.height,\n }));\n scale = width / this.offsetWidth;\n }\n canvas.width = width;\n canvas.height = height;\n const cropperImage = this.querySelector(this.$getTagNameOf(CROPPER_IMAGE));\n if (!cropperImage) {\n resolve(canvas);\n return;\n }\n cropperImage.$ready().then((image) => {\n const context = canvas.getContext('2d');\n if (context) {\n const [a, b, c, d, e, f] = cropperImage.$getTransform();\n let newE = e;\n let newF = f;\n let destWidth = image.naturalWidth;\n let destHeight = image.naturalHeight;\n if (scale !== 1) {\n newE *= scale;\n newF *= scale;\n destWidth *= scale;\n destHeight *= scale;\n }\n const centerX = destWidth / 2;\n const centerY = destHeight / 2;\n context.fillStyle = 'transparent';\n context.fillRect(0, 0, width, height);\n if (isPlainObject(options) && isFunction(options.beforeDraw)) {\n options.beforeDraw.call(this, context, canvas);\n }\n context.save();\n // Move the transform origin to the center of the image.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin\n context.translate(centerX, centerY);\n context.transform(a, b, c, d, newE, newF);\n // Reset the transform origin to the top-left of the image.\n context.translate(-centerX, -centerY);\n context.drawImage(image, 0, 0, destWidth, destHeight);\n context.restore();\n }\n resolve(canvas);\n }).catch(reject);\n });\n }\n}\nCropperCanvas.$name = CROPPER_CANVAS;\nCropperCanvas.$version = '2.0.0-beta.4';\n\nexport { CropperCanvas as default };\n","import CropperElement from '@cropper/element';\nimport { CROPPER_IMAGE, CROPPER_CANVAS, on, EVENT_ACTION_START, EVENT_ACTION_END, EVENT_ACTION, EVENT_LOAD, off, ACTION_TRANSFORM, ACTION_ROTATE, ACTION_SCALE, ACTION_NONE, ACTION_MOVE, CROPPER_SELECTION, once, EVENT_ERROR, isFunction, isNumber, toAngleInRadian, multiplyMatrices, 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 'importance',\n 'loading',\n 'referrerpolicy',\n 'sizes',\n 'src',\n 'srcset',\n];\nclass CropperImage extends CropperElement {\n constructor() {\n super(...arguments);\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 this.rotatable = true;\n this.scalable = true;\n this.skewable = true;\n this.slottable = false;\n this.translatable = true;\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 '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 this.$image.setAttribute(name, newValue);\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 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('cover');\n }\n }\n $handleAction(event) {\n if (this.hidden || !(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 const cropperSelectionTagName = this.$getTagNameOf(CROPPER_SELECTION);\n let selection = $canvas.querySelector(cropperSelectionTagName);\n if (selection && selection.multiple && !selection.active) {\n selection = $canvas.querySelector(`${cropperSelectionTagName}[active]`);\n }\n if (!selection || selection.hidden || !selection.movable\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 { x, y } = this.getBoundingClientRect();\n this.$zoom(detail.scale, relatedEvent.clientX - x, relatedEvent.clientY - y);\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 - (b * translateX)) / d;\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 resolve($image);\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 this.$move(endX - startX, endY - startY);\n if (size && (width !== containerWidth || height !== containerHeight)) {\n const scaleX = containerWidth / width;\n const scaleY = containerHeight / height;\n switch (size) {\n case 'cover':\n this.$scale(Math.max(scaleX, scaleY));\n break;\n case 'contain':\n this.$scale(Math.min(scaleX, scaleY));\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 - (b * e)) / d;\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 - (b * e)) / d;\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 - (b * translateX)) / d;\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 - (b * translateX)) / d;\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 newMatrix = [a, b, c, d, e, f];\n if (this.$emit(EVENT_TRANSFORM, {\n matrix: newMatrix,\n oldMatrix: this.$matrix,\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.0.0-beta.4';\n\nexport { CropperImage as default };\n","import CropperElement from '@cropper/element';\nimport { CROPPER_SHADE, CROPPER_CANVAS, CROPPER_SELECTION, ACTION_SELECT, on, EVENT_ACTION_START, EVENT_ACTION_END, EVENT_CHANGE, off, isNumber, WINDOW } from '@cropper/utils';\n\nvar style = `:host{display:block;height:0;left:0;outline:var(--theme-color) solid 1px;position:relative;top:0;width:0}:host([transparent]){outline-color:transparent}`;\n\nconst canvasCache = new WeakMap();\nclass CropperShade extends CropperElement {\n constructor() {\n super(...arguments);\n this.$onCanvasChange = null;\n this.$onCanvasActionEnd = null;\n this.$onCanvasActionStart = null;\n this.$style = style;\n this.x = 0;\n this.y = 0;\n this.width = 0;\n this.height = 0;\n this.slottable = false;\n this.themeColor = 'rgba(0, 0, 0, 0.65)';\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([\n 'height',\n 'width',\n 'x',\n 'y',\n ]);\n }\n connectedCallback() {\n super.connectedCallback();\n const $canvas = this.closest(this.$getTagNameOf(CROPPER_CANVAS));\n if ($canvas) {\n this.$canvas = $canvas;\n this.style.position = 'absolute';\n const $selection = $canvas.querySelector(this.$getTagNameOf(CROPPER_SELECTION));\n if ($selection) {\n this.$onCanvasActionStart = (event) => {\n if ($selection.hidden && event.detail.action === ACTION_SELECT) {\n this.hidden = false;\n }\n };\n this.$onCanvasActionEnd = (event) => {\n if ($selection.hidden && event.detail.action === ACTION_SELECT) {\n this.hidden = true;\n }\n };\n this.$onCanvasChange = (event) => {\n const { x, y, width, height, } = event.detail;\n this.$change(x, y, width, height);\n if ($selection.hidden || (x === 0 && y === 0 && width === 0 && height === 0)) {\n this.hidden = true;\n }\n };\n on($canvas, EVENT_ACTION_START, this.$onCanvasActionStart);\n on($canvas, EVENT_ACTION_END, this.$onCanvasActionEnd);\n on($canvas, EVENT_CHANGE, this.$onCanvasChange);\n }\n }\n this.$render();\n }\n disconnectedCallback() {\n const { $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.$onCanvasChange) {\n off($canvas, EVENT_CHANGE, this.$onCanvasChange);\n this.$onCanvasChange = null;\n }\n }\n super.disconnectedCallback();\n }\n /**\n * Changes the position and/or size of the shade.\n * @param {number} x The new position in the horizontal direction.\n * @param {number} y The new position in the vertical direction.\n * @param {number} [width] The new width.\n * @param {number} [height] The new height.\n * @returns {CropperShade} Returns `this` for chaining.\n */\n $change(x, y, width = this.width, height = this.height) {\n if (!isNumber(x)\n || !isNumber(y)\n || !isNumber(width)\n || !isNumber(height)\n || (x === this.x && y === this.y && width === this.width && height === this.height)) {\n return this;\n }\n if (this.hidden) {\n this.hidden = false;\n }\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n return this.$render();\n }\n /**\n * Resets the shade to its initial position and size.\n * @returns {CropperShade} Returns `this` for chaining.\n */\n $reset() {\n return this.$change(0, 0, 0, 0);\n }\n /**\n * Refreshes the position or size of the shade.\n * @returns {CropperShade} Returns `this` for chaining.\n */\n $render() {\n return this.$setStyles({\n transform: `translate(${this.x}px, ${this.y}px)`,\n width: this.width,\n height: this.height,\n outlineWidth: WINDOW.innerWidth,\n });\n }\n}\nCropperShade.$name = CROPPER_SHADE;\nCropperShade.$version = '2.0.0-beta.4';\n\nexport { CropperShade as default };\n","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.0.0-beta.4';\n\nexport { CropperHandle as default };\n","import CropperElement from '@cropper/element';\nimport { CROPPER_SELECTION, EVENT_CHANGE, on, EVENT_KEYDOWN, off, isPositiveNumber, CROPPER_CANVAS, getAdjustedSizes, EVENT_ACTION_START, EVENT_ACTION_END, EVENT_ACTION, ACTION_SELECT, ACTION_SCALE, getOffset, ACTION_MOVE, ACTION_RESIZE_SOUTHEAST, ACTION_RESIZE_SOUTHWEST, ACTION_RESIZE_NORTHWEST, ACTION_RESIZE_NORTHEAST, isNumber, isPlainObject, CROPPER_IMAGE, isFunction, ACTION_RESIZE_WEST, ACTION_RESIZE_EAST, ACTION_RESIZE_SOUTH, ACTION_RESIZE_NORTH } from '@cropper/utils';\n\nvar style = `:host{display:block;left:0;position:relative;right:0}:host([outlined]){outline:1px solid var(--theme-color)}:host([multiple]){outline:1px dashed hsla(0,0%,100%,.5)}:host([multiple]):after{bottom:0;content:\"\";cursor:pointer;display:block;left:0;position:absolute;right:0;top:0}:host([multiple][active]){outline-color:var(--theme-color);z-index:1}:host([multiple])>*{visibility:hidden}:host([multiple][active])>*{visibility:visible}:host([multiple][active]):after{display:none}`;\n\nconst canvasCache = new WeakMap();\nclass CropperSelection extends CropperElement {\n constructor() {\n super(...arguments);\n this.$onCanvasAction = null;\n this.$onCanvasActionStart = null;\n this.$onCanvasActionEnd = null;\n this.$onDocumentKeyDown = null;\n this.$action = '';\n this.$actionStartTarget = null;\n this.$style = style;\n this.x = 0;\n this.y = 0;\n this.width = 0;\n this.height = 0;\n this.aspectRatio = NaN;\n this.initialAspectRatio = NaN;\n this.initialCoverage = NaN;\n this.active = false;\n this.movable = false;\n this.resizable = false;\n this.zoomable = false;\n this.multiple = false;\n this.keyboard = false;\n this.outlined = false;\n this.precise = false;\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([\n 'active',\n 'aspect-ratio',\n 'height',\n 'initial-aspect-ratio',\n 'initial-coverage',\n 'keyboard',\n 'movable',\n 'multiple',\n 'outlined',\n 'precise',\n 'resizable',\n 'width',\n 'x',\n 'y',\n 'zoomable',\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 'aspectRatio':\n if (!isPositiveNumber(newValue)) {\n this.aspectRatio = NaN;\n }\n break;\n case 'initialAspectRatio':\n if (!isPositiveNumber(newValue)) {\n this.initialAspectRatio = NaN;\n }\n break;\n case 'initialCoverage':\n if (!isPositiveNumber(newValue) || newValue > 1) {\n this.initialCoverage = NaN;\n }\n break;\n case 'keyboard':\n this.$nextTick(() => {\n if (this.$canvas) {\n if (newValue) {\n if (!this.$onDocumentKeyDown) {\n this.$onDocumentKeyDown = this.$handleKeyDown.bind(this);\n on(this.ownerDocument, EVENT_KEYDOWN, this.$onDocumentKeyDown);\n }\n }\n else if (this.$onDocumentKeyDown) {\n off(this.ownerDocument, EVENT_KEYDOWN, this.$onDocumentKeyDown);\n this.$onDocumentKeyDown = null;\n }\n }\n });\n break;\n case 'multiple':\n this.$nextTick(() => {\n if (this.$canvas) {\n const selections = this.$getSelections();\n if (newValue) {\n selections.forEach((selection) => {\n selection.active = false;\n });\n this.active = true;\n this.$emit(EVENT_CHANGE, {\n x: this.x,\n y: this.y,\n width: this.width,\n height: this.height,\n });\n }\n else {\n this.active = false;\n selections.slice(1).forEach((selection) => {\n this.$removeSelection(selection);\n });\n }\n }\n });\n break;\n }\n }\n connectedCallback() {\n super.connectedCallback();\n const $canvas = this.closest(this.$getTagNameOf(CROPPER_CANVAS));\n if ($canvas) {\n this.$canvas = $canvas;\n this.$setStyles({\n position: 'absolute',\n transform: `translate(${this.x}px, ${this.y}px)`,\n });\n if (!this.hidden) {\n this.$render();\n }\n const { initialCoverage, parentElement } = this;\n if (isPositiveNumber(initialCoverage) && parentElement) {\n const aspectRatio = this.aspectRatio || this.initialAspectRatio;\n const { offsetWidth, offsetHeight } = parentElement;\n let width = offsetWidth * initialCoverage;\n let height = offsetHeight * initialCoverage;\n if (isPositiveNumber(aspectRatio)) {\n ({ width, height } = getAdjustedSizes({ aspectRatio, width, height }));\n }\n this.$change(this.x, this.y, width, height);\n this.$center();\n }\n this.$onCanvasActionStart = this.$handleActionStart.bind(this);\n this.$onCanvasActionEnd = this.$handleActionEnd.bind(this);\n this.$onCanvasAction = this.$handleAction.bind(this);\n on($canvas, EVENT_ACTION_START, this.$onCanvasActionStart);\n on($canvas, EVENT_ACTION_END, this.$onCanvasActionStart);\n on($canvas, EVENT_ACTION, this.$onCanvasAction);\n }\n else {\n this.$render();\n }\n }\n disconnectedCallback() {\n const { $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 super.disconnectedCallback();\n }\n $getSelections() {\n let selections = [];\n if (this.parentElement) {\n selections = Array.from(this.parentElement.querySelectorAll(this.$getTagNameOf(CROPPER_SELECTION)));\n }\n return selections;\n }\n $createSelection() {\n const newSelection = this.cloneNode(true);\n if (this.hasAttribute('id')) {\n newSelection.removeAttribute('id');\n }\n this.active = false;\n if (this.parentElement) {\n this.parentElement.insertBefore(newSelection, this.nextSibling);\n }\n return newSelection;\n }\n $removeSelection(selection = this) {\n if (this.parentElement) {\n const selections = this.$getSelections();\n if (selections.length > 1) {\n const index = selections.indexOf(selection);\n const activeSelection = selections[index + 1] || selections[index - 1];\n if (activeSelection) {\n selection.active = false;\n this.parentElement.removeChild(selection);\n activeSelection.active = true;\n activeSelection.$emit(EVENT_CHANGE, {\n x: activeSelection.x,\n y: activeSelection.y,\n width: activeSelection.width,\n height: activeSelection.height,\n });\n }\n }\n else {\n this.$reset();\n this.hidden = true;\n }\n }\n }\n $handleActionStart(event) {\n var _a, _b;\n const relatedTarget = (_b = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.relatedEvent) === null || _b === void 0 ? void 0 : _b.target;\n this.$action = '';\n this.$actionStartTarget = relatedTarget;\n if (!this.hidden\n && this.multiple\n && !this.active\n && relatedTarget === this\n && this.parentElement) {\n this.$getSelections().forEach((selection) => {\n selection.active = false;\n });\n this.active = true;\n this.$emit(EVENT_CHANGE, {\n x: this.x,\n y: this.y,\n width: this.width,\n height: this.height,\n });\n }\n }\n $handleAction(event) {\n const { currentTarget, detail } = event;\n if (currentTarget && detail) {\n const { relatedEvent } = detail;\n let { action } = detail;\n // Switching to another selection\n if (!action && this.multiple) {\n // Get the `action` property from the focusing in selection\n action = this.$action || (relatedEvent === null || relatedEvent === void 0 ? void 0 : relatedEvent.target.action);\n this.$action = action;\n }\n if (!action\n || (this.hidden && action !== ACTION_SELECT)\n || (this.multiple && !this.active && action !== ACTION_SCALE)) {\n return;\n }\n const moveX = detail.endX - detail.startX;\n const moveY = detail.endY - detail.startY;\n const { width, height } = this;\n let { aspectRatio } = this;\n // Locking aspect ratio by holding shift key\n if (!isPositiveNumber(aspectRatio) && event.shiftKey) {\n aspectRatio = isPositiveNumber(width) && isPositiveNumber(height) ? width / height : 1;\n }\n switch (action) {\n case ACTION_SELECT: {\n const { $canvas } = this;\n const offset = getOffset(currentTarget);\n (this.multiple && !this.hidden ? this.$createSelection() : this).$change(detail.startX - offset.left, detail.startY - offset.top, moveX, moveY, aspectRatio);\n action = ACTION_RESIZE_SOUTHEAST;\n if (moveX < 0) {\n if (moveY > 0) {\n action = ACTION_RESIZE_SOUTHWEST;\n }\n else if (moveY < 0) {\n action = ACTION_RESIZE_NORTHWEST;\n }\n }\n else if (moveX > 0) {\n if (moveY < 0) {\n action = ACTION_RESIZE_NORTHEAST;\n }\n }\n if ($canvas) {\n $canvas.$action = action;\n }\n break;\n }\n case ACTION_MOVE:\n if (this.movable\n && (this.$actionStartTarget && this.contains(this.$actionStartTarget))) {\n this.$move(moveX, moveY);\n }\n break;\n case ACTION_SCALE:\n if (relatedEvent && this.zoomable) {\n const offset = getOffset(currentTarget);\n this.$zoom(detail.scale, relatedEvent.pageX - offset.left, relatedEvent.pageY - offset.top);\n }\n break;\n default:\n this.$resize(action, moveX, moveY, aspectRatio);\n }\n }\n }\n $handleActionEnd() {\n this.$action = '';\n this.$actionStartTarget = null;\n }\n $handleKeyDown(event) {\n if (this.hidden\n || !this.keyboard\n || (this.multiple && !this.active)\n || event.defaultPrevented) {\n return;\n }\n switch (event.key) {\n case 'Backspace':\n if (event.metaKey) {\n event.preventDefault();\n this.$removeSelection();\n }\n break;\n case 'Delete':\n event.preventDefault();\n this.$removeSelection();\n break;\n // Move to the left\n case 'ArrowLeft':\n event.preventDefault();\n this.$move(-1, 0);\n break;\n // Move to the right\n case 'ArrowRight':\n event.preventDefault();\n this.$move(1, 0);\n break;\n // Move to the top\n case 'ArrowUp':\n event.preventDefault();\n this.$move(0, -1);\n break;\n // Move to the bottom\n case 'ArrowDown':\n event.preventDefault();\n this.$move(0, 1);\n break;\n case '+':\n event.preventDefault();\n this.$zoom(0.1);\n break;\n case '-':\n event.preventDefault();\n this.$zoom(-0.1);\n break;\n }\n }\n /**\n * Aligns the selection to the center of its parent element.\n * @returns {CropperSelection} Returns `this` for chaining.\n */\n $center() {\n const { parentElement } = this;\n if (!parentElement) {\n return this;\n }\n const x = (parentElement.offsetWidth - this.width) / 2;\n const y = (parentElement.offsetHeight - this.height) / 2;\n return this.$change(x, y);\n }\n /**\n * Moves the selection.\n * @param {number} x The moving distance in the horizontal direction.\n * @param {number} [y] The moving distance in the vertical direction.\n * @returns {CropperSelection} Returns `this` for chaining.\n */\n $move(x, y = x) {\n return this.$moveTo(this.x + x, this.y + y);\n }\n /**\n * Moves the selection 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 {CropperSelection} Returns `this` for chaining.\n */\n $moveTo(x, y = x) {\n if (!this.movable) {\n return this;\n }\n return this.$change(x, y);\n }\n /**\n * Adjusts the size the selection on a specific side or corner.\n * @param {string} action Indicates the side or corner to resize.\n * @param {number} [offsetX] The horizontal offset of the specific side or corner.\n * @param {number} [offsetY] The vertical offset of the specific side or corner.\n * @param {number} [aspectRatio] The aspect ratio for computing the new size if it is necessary.\n * @returns {CropperSelection} Returns `this` for chaining.\n */\n $resize(action, offsetX = 0, offsetY = 0, aspectRatio = this.aspectRatio) {\n if (!this.resizable) {\n return this;\n }\n const hasValidAspectRatio = isPositiveNumber(aspectRatio);\n const { $canvas } = this;\n let { x, y, width, height, } = this;\n switch (action) {\n case ACTION_RESIZE_NORTH:\n y += offsetY;\n height -= offsetY;\n if (height < 0) {\n action = ACTION_RESIZE_SOUTH;\n height = -height;\n y -= height;\n }\n if (hasValidAspectRatio) {\n offsetX = offsetY * aspectRatio;\n x += offsetX / 2;\n width -= offsetX;\n if (width < 0) {\n width = -width;\n x -= width;\n }\n }\n break;\n case ACTION_RESIZE_EAST:\n width += offsetX;\n if (width < 0) {\n action = ACTION_RESIZE_WEST;\n width = -width;\n x -= width;\n }\n if (hasValidAspectRatio) {\n offsetY = offsetX / aspectRatio;\n y -= offsetY / 2;\n height += offsetY;\n if (height < 0) {\n height = -height;\n y -= height;\n }\n }\n break;\n case ACTION_RESIZE_SOUTH:\n height += offsetY;\n if (height < 0) {\n action = ACTION_RESIZE_NORTH;\n height = -height;\n y -= height;\n }\n if (hasValidAspectRatio) {\n offsetX = offsetY * aspectRatio;\n x -= offsetX / 2;\n width += offsetX;\n if (width < 0) {\n width = -width;\n x -= width;\n }\n }\n break;\n case ACTION_RESIZE_WEST:\n x += offsetX;\n width -= offsetX;\n if (width < 0) {\n action = ACTION_RESIZE_EAST;\n width = -width;\n x -= width;\n }\n if (hasValidAspectRatio) {\n offsetY = offsetX / aspectRatio;\n y += offsetY / 2;\n height -= offsetY;\n if (height < 0) {\n height = -height;\n y -= height;\n }\n }\n break;\n case ACTION_RESIZE_NORTHEAST:\n if (hasValidAspectRatio) {\n offsetY = -offsetX / aspectRatio;\n }\n y += offsetY;\n height -= offsetY;\n width += offsetX;\n if (width < 0 && height < 0) {\n action = ACTION_RESIZE_SOUTHWEST;\n width = -width;\n height = -height;\n x -= width;\n y -= height;\n }\n else if (width < 0) {\n action = ACTION_RESIZE_NORTHWEST;\n width = -width;\n x -= width;\n }\n else if (height < 0) {\n action = ACTION_RESIZE_SOUTHEAST;\n height = -height;\n y -= height;\n }\n break;\n case ACTION_RESIZE_NORTHWEST:\n if (hasValidAspectRatio) {\n offsetY = offsetX / aspectRatio;\n }\n x += offsetX;\n y += offsetY;\n width -= offsetX;\n height -= offsetY;\n if (width < 0 && height < 0) {\n action = ACTION_RESIZE_SOUTHEAST;\n width = -width;\n height = -height;\n x -= width;\n y -= height;\n }\n else if (width < 0) {\n action = ACTION_RESIZE_NORTHEAST;\n width = -width;\n x -= width;\n }\n else if (height < 0) {\n action = ACTION_RESIZE_SOUTHWEST;\n height = -height;\n y -= height;\n }\n break;\n case ACTION_RESIZE_SOUTHEAST:\n if (hasValidAspectRatio) {\n offsetY = offsetX / aspectRatio;\n }\n width += offsetX;\n height += offsetY;\n if (width < 0 && height < 0) {\n action = ACTION_RESIZE_NORTHWEST;\n width = -width;\n height = -height;\n x -= width;\n y -= height;\n }\n else if (width < 0) {\n action = ACTION_RESIZE_SOUTHWEST;\n width = -width;\n x -= width;\n }\n else if (height < 0) {\n action = ACTION_RESIZE_NORTHEAST;\n height = -height;\n y -= height;\n }\n break;\n case ACTION_RESIZE_SOUTHWEST:\n if (hasValidAspectRatio) {\n offsetY = -offsetX / aspectRatio;\n }\n x += offsetX;\n width -= offsetX;\n height += offsetY;\n if (width < 0 && height < 0) {\n action = ACTION_RESIZE_NORTHEAST;\n width = -width;\n height = -height;\n x -= width;\n y -= height;\n }\n else if (width < 0) {\n action = ACTION_RESIZE_SOUTHEAST;\n width = -width;\n x -= width;\n }\n else if (height < 0) {\n action = ACTION_RESIZE_NORTHWEST;\n height = -height;\n y -= height;\n }\n break;\n }\n if ($canvas) {\n $canvas.$setAction(action);\n }\n return this.$change(x, y, width, height);\n }\n /**\n * Zooms the selection.\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 selection.\n * @param {number} [y] The zoom origin in the vertical, defaults to the center of the selection.\n * @returns {CropperSelection} Returns `this` for chaining.\n */\n $zoom(scale, x, y) {\n if (!this.zoomable || scale === 0) {\n return this;\n }\n if (scale < 0) {\n scale = 1 / (1 - scale);\n }\n else {\n scale += 1;\n }\n const { width, height } = this;\n const newWidth = width * scale;\n const newHeight = height * scale;\n let newX = this.x;\n let newY = this.y;\n if (isNumber(x) && isNumber(y)) {\n newX -= (newWidth - width) * ((x - this.x) / width);\n newY -= (newHeight - height) * ((y - this.y) / height);\n }\n else {\n // Zoom from the center of the selection\n newX -= (newWidth - width) / 2;\n newY -= (newHeight - height) / 2;\n }\n return this.$change(newX, newY, newWidth, newHeight);\n }\n /**\n * Changes the position and/or size of the selection.\n * @param {number} x The new position in the horizontal direction.\n * @param {number} y The new position in the vertical direction.\n * @param {number} [width] The new width.\n * @param {number} [height] The new height.\n * @param {number} [aspectRatio] The new aspect ratio for this change only.\n * @returns {CropperSelection} Returns `this` for chaining.\n */\n $change(x, y, width = this.width, height = this.height, aspectRatio = this.aspectRatio) {\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height)) {\n return this;\n }\n if (!this.precise) {\n x = Math.round(x);\n y = Math.round(y);\n width = Math.round(width);\n height = Math.round(height);\n }\n if (x === this.x && y === this.y && width === this.width && height === this.height) {\n return this;\n }\n if (this.hidden) {\n this.hidden = false;\n }\n if (isPositiveNumber(aspectRatio)) {\n ({ width, height } = getAdjustedSizes({ aspectRatio, width, height }, 'cover'));\n }\n if (this.$emit(EVENT_CHANGE, {\n x,\n y,\n width,\n height,\n }) === false) {\n return this;\n }\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n return this.$render();\n }\n /**\n * Resets the selection to its initial position and size.\n * @returns {CropperSelection} Returns `this` for chaining.\n */\n $reset() {\n return this.$change(0, 0, 0, 0);\n }\n /**\n * Refreshes the position or size of the selection.\n * @returns {CropperSelection} Returns `this` for chaining.\n */\n $render() {\n return this.$setStyles({\n transform: `translate(${this.x}px, ${this.y}px)`,\n width: this.width,\n height: this.height,\n });\n }\n /**\n * Generates a real canvas element, with the image (selected area only) draw into if there is one.\n * @param {object} [options] The available options.\n * @param {number} [options.width] The width of the canvas.\n * @param {number} [options.height] The height of the canvas.\n * @param {Function} [options.beforeDraw] The function called before drawing the image onto the canvas.\n * @returns {Promise} Returns a promise that resolves to the generated canvas element.\n */\n $toCanvas(options) {\n return new Promise((resolve, reject) => {\n if (!this.isConnected) {\n reject(new Error('The current element is not connected to the DOM.'));\n return;\n }\n const canvas = document.createElement('canvas');\n let { width, height } = this;\n let scale = 1;\n if (isPlainObject(options)\n && (isPositiveNumber(options.width) || isPositiveNumber(options.height))) {\n ({ width, height } = getAdjustedSizes({\n aspectRatio: width / height,\n width: options.width,\n height: options.height,\n }));\n scale = width / this.width;\n }\n canvas.width = width;\n canvas.height = height;\n if (!this.$canvas) {\n resolve(canvas);\n return;\n }\n const cropperImage = this.$canvas.querySelector(this.$getTagNameOf(CROPPER_IMAGE));\n if (!cropperImage) {\n resolve(canvas);\n return;\n }\n cropperImage.$ready().then((image) => {\n const context = canvas.getContext('2d');\n if (context) {\n const [a, b, c, d, e, f] = cropperImage.$getTransform();\n const offsetX = -this.x;\n const offsetY = -this.y;\n const translateX = ((offsetX * d) - (c * offsetY)) / ((a * d) - (c * b));\n const translateY = (offsetY - (b * translateX)) / d;\n let newE = a * translateX + c * translateY + e;\n let newF = b * translateX + d * translateY + f;\n let destWidth = image.naturalWidth;\n let destHeight = image.naturalHeight;\n if (scale !== 1) {\n newE *= scale;\n newF *= scale;\n destWidth *= scale;\n destHeight *= scale;\n }\n const centerX = destWidth / 2;\n const centerY = destHeight / 2;\n context.fillStyle = 'transparent';\n context.fillRect(0, 0, width, height);\n if (isPlainObject(options) && isFunction(options.beforeDraw)) {\n options.beforeDraw.call(this, context, canvas);\n }\n context.save();\n // Move the transform origin to the center of the image.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin\n context.translate(centerX, centerY);\n context.transform(a, b, c, d, newE, newF);\n // Move the transform origin to the top-left of the image.\n context.translate(-centerX, -centerY);\n context.drawImage(image, 0, 0, destWidth, destHeight);\n context.restore();\n }\n resolve(canvas);\n }).catch(reject);\n });\n }\n}\nCropperSelection.$name = CROPPER_SELECTION;\nCropperSelection.$version = '2.0.0-beta.4';\n\nexport { CropperSelection as default };\n","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.$render();\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('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.innerHTML = '';\n shadow.appendChild(fragment);\n }\n }\n}\nCropperGrid.$name = CROPPER_GIRD;\nCropperGrid.$version = '2.0.0-beta.4';\n\nexport { CropperGrid as default };\n","import CropperElement from '@cropper/element';\nimport { CROPPER_CROSSHAIR } from '@cropper/utils';\n\nvar style = `:host{display:inline-block;height:1em;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1em}:host:after,:host:before{background-color:var(--theme-color);content:\"\";display:block;position:absolute}:host:before{height:1px;left:0;top:50%;transform:translateY(-50%);width:100%}:host:after{height:100%;left:50%;top:0;transform:translateX(-50%);width:1px}:host([centered]){left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}`;\n\nclass CropperCrosshair extends CropperElement {\n constructor() {\n super(...arguments);\n this.$style = style;\n this.centered = false;\n this.slottable = false;\n this.themeColor = 'rgba(238, 238, 238, 0.5)';\n }\n static get observedAttributes() {\n return super.observedAttributes.concat([\n 'centered',\n ]);\n }\n}\nCropperCrosshair.$name = CROPPER_CROSSHAIR;\nCropperCrosshair.$version = '2.0.0-beta.4';\n\nexport { CropperCrosshair as default };\n","import CropperElement from '@cropper/element';\nimport { CROPPER_VIEWER, CROPPER_SELECTION, isElement, on, EVENT_CHANGE, CROPPER_CANVAS, CROPPER_IMAGE, EVENT_LOAD, EVENT_TRANSFORM, off } from '@cropper/utils';\n\nvar style = `:host{display:block;height:100%;overflow:hidden;position:relative;width:100%}`;\n\nconst imageCache = new WeakMap();\nconst selectionCache = new WeakMap();\nconst sourceImageCache = new WeakMap();\nconst RESIZE_BOTH = 'both';\nconst RESIZE_HORIZONTAL = 'horizontal';\nconst RESIZE_VERTICAL = 'vertical';\nconst RESIZE_NONE = 'none';\nclass CropperViewer extends CropperElement {\n constructor() {\n super(...arguments);\n this.$onSelectionChange = null;\n this.$onSourceImageLoad = null;\n this.$onSourceImageTransform = null;\n this.$scale = 1;\n this.$style = style;\n this.resize = RESIZE_VERTICAL;\n this.selection = '';\n this.slottable = false;\n }\n set $image(element) {\n imageCache.set(this, element);\n }\n get $image() {\n return imageCache.get(this);\n }\n set $sourceImage(element) {\n sourceImageCache.set(this, element);\n }\n get $sourceImage() {\n return sourceImageCache.get(this);\n }\n set $selection(element) {\n selectionCache.set(this, element);\n }\n get $selection() {\n return selectionCache.get(this);\n }\n static get observedAttributes() {\n return super.observedAttributes.concat([\n 'resize',\n 'selection',\n ]);\n }\n connectedCallback() {\n super.connectedCallback();\n let $selection = null;\n if (this.selection) {\n $selection = this.ownerDocument.querySelector(this.selection);\n }\n else {\n $selection = this.closest(this.$getTagNameOf(CROPPER_SELECTION));\n }\n if (isElement($selection)) {\n this.$selection = $selection;\n this.$onSelectionChange = this.$handleSelectionChange.bind(this);\n on($selection, EVENT_CHANGE, this.$onSelectionChange);\n const $canvas = $selection.closest(this.$getTagNameOf(CROPPER_CANVAS));\n if ($canvas) {\n const $sourceImage = $canvas.querySelector(this.$getTagNameOf(CROPPER_IMAGE));\n if ($sourceImage) {\n this.$sourceImage = $sourceImage;\n this.$image = $sourceImage.cloneNode(true);\n this.$getShadowRoot().appendChild(this.$image);\n this.$onSourceImageLoad = this.$handleSourceImageLoad.bind(this);\n this.$onSourceImageTransform = this.$handleSourceImageTransform.bind(this);\n on($sourceImage.$image, EVENT_LOAD, this.$onSourceImageLoad);\n on($sourceImage, EVENT_TRANSFORM, this.$onSourceImageTransform);\n }\n }\n this.$render();\n }\n }\n disconnectedCallback() {\n const { $selection, $sourceImage } = this;\n if ($selection && this.$onSelectionChange) {\n off($selection, EVENT_CHANGE, this.$onSelectionChange);\n this.$onSelectionChange = null;\n }\n if ($sourceImage && this.$onSourceImageLoad) {\n off($sourceImage.$image, EVENT_LOAD, this.$onSourceImageLoad);\n this.$onSourceImageLoad = null;\n }\n if ($sourceImage && this.$onSourceImageTransform) {\n off($sourceImage, EVENT_TRANSFORM, this.$onSourceImageTransform);\n this.$onSourceImageTransform = null;\n }\n super.disconnectedCallback();\n }\n $handleSelectionChange(event) {\n this.$render(event.detail);\n }\n $handleSourceImageLoad() {\n const { $image, $sourceImage } = this;\n const oldSrc = $image.getAttribute('src');\n const newSrc = $sourceImage.getAttribute('src');\n if (newSrc && newSrc !== oldSrc) {\n $image.setAttribute('src', newSrc);\n $image.$ready(() => {\n setTimeout(() => {\n const { x, y } = this.$selection;\n this.$transformImageByOffset($sourceImage.$getTransform(), -x, -y);\n });\n });\n }\n }\n $handleSourceImageTransform(event) {\n const { x, y } = this.$selection;\n this.$transformImageByOffset(event.detail.matrix, -x, -y);\n }\n $render(selection) {\n const { x, y, width, height, } = selection || this.$selection;\n const styles = {};\n const { clientWidth, clientHeight } = this;\n let newWidth = clientWidth;\n let newHeight = clientHeight;\n let scale = NaN;\n switch (this.resize) {\n case RESIZE_BOTH:\n scale = 1;\n newWidth = width;\n newHeight = height;\n styles.width = width;\n styles.height = height;\n break;\n case RESIZE_HORIZONTAL:\n scale = clientHeight / height;\n newWidth = width * scale;\n styles.width = newWidth;\n break;\n case RESIZE_VERTICAL:\n scale = clientWidth / width;\n newHeight = height * scale;\n styles.height = newHeight;\n break;\n case RESIZE_NONE:\n default:\n if (clientWidth > 0) {\n scale = clientWidth / width;\n }\n else if (clientHeight > 0) {\n scale = clientHeight / height;\n }\n }\n this.$scale = scale;\n this.$setStyles(styles);\n if (this.$sourceImage) {\n this.$transformImageByOffset(this.$sourceImage.$getTransform(), -x, -y);\n }\n }\n $transformImageByOffset(matrix, x, y) {\n const { $image, $scale, $sourceImage, } = this;\n if ($sourceImage && $image && $scale > 0) {\n const [a, b, c, d, e, f] = matrix;\n const translateX = ((x * d) - (c * y)) / ((a * d) - (c * b));\n const translateY = (y - (b * translateX)) / d;\n const newE = a * translateX + c * translateY + e;\n const newF = b * translateX + d * translateY + f;\n $image.$ready((image) => {\n this.$setStyles.call($image, {\n width: image.naturalWidth * $scale,\n height: image.naturalHeight * $scale,\n });\n });\n $image.$setTransform(a, b, c, d, newE * $scale, newF * $scale);\n }\n }\n}\nCropperViewer.$name = CROPPER_VIEWER;\nCropperViewer.$version = '2.0.0-beta.4';\n\nexport { RESIZE_BOTH, RESIZE_HORIZONTAL, RESIZE_NONE, RESIZE_VERTICAL, CropperViewer as default };\n","/*! Cropper.js v2.0.0-beta.4 | (c) 2015-present Chen Fengyuan | MIT */\nimport { isString, isElement, CROPPER_IMAGE, CROPPER_CANVAS, CROPPER_SELECTION } from '@cropper/utils';\nexport * from '@cropper/utils';\nimport { CropperCanvas, CropperCrosshair, CropperGrid, CropperHandle, CropperImage, CropperSelection, CropperShade, CropperViewer } from '@cropper/elements';\nexport * from '@cropper/elements';\n\nvar DEFAULT_TEMPLATE = ('<cropper-canvas background>'\n + '<cropper-image></cropper-image>'\n + '<cropper-shade hidden></cropper-shade>'\n + '<cropper-handle action=\"select\" plain></cropper-handle>'\n + '<cropper-selection initial-coverage=\"0.5\" movable resizable zoomable>'\n + '<cropper-grid role=\"grid\" bordered covered></cropper-grid>'\n + '<cropper-crosshair centered></cropper-crosshair>'\n + '<cropper-handle action=\"move\" theme-color=\"rgba(255, 255, 255, 0.35)\"></cropper-handle>'\n + '<cropper-handle action=\"n-resize\"></cropper-handle>'\n + '<cropper-handle action=\"e-resize\"></cropper-handle>'\n + '<cropper-handle action=\"s-resize\"></cropper-handle>'\n + '<cropper-handle action=\"w-resize\"></cropper-handle>'\n + '<cropper-handle action=\"ne-resize\"></cropper-handle>'\n + '<cropper-handle action=\"nw-resize\"></cropper-handle>'\n + '<cropper-handle action=\"se-resize\"></cropper-handle>'\n + '<cropper-handle action=\"sw-resize\"></cropper-handle>'\n + '</cropper-selection>'\n + '</cropper-canvas>');\n\nconst REGEXP_ALLOWED_ELEMENTS = /^img|canvas$/;\nconst REGEXP_BLOCKED_TAGS = /<(\\/?(?:script|style)[^>]*)>/gi;\nconst DEFAULT_OPTIONS = {\n template: DEFAULT_TEMPLATE,\n};\nCropperCanvas.$define();\nCropperCrosshair.$define();\nCropperGrid.$define();\nCropperHandle.$define();\nCropperImage.$define();\nCropperSelection.$define();\nCropperShade.$define();\nCropperViewer.$define();\nclass Cropper {\n constructor(element, options) {\n this.options = DEFAULT_OPTIONS;\n if (isString(element)) {\n element = document.querySelector(element);\n }\n if (!isElement(element) || !REGEXP_ALLOWED_ELEMENTS.test(element.localName)) {\n throw new Error('The first argument is required and must be an <img> or <canvas> element.');\n }\n this.element = element;\n options = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);\n this.options = options;\n const { ownerDocument } = element;\n let { container } = options;\n if (container) {\n if (isString(container)) {\n container = ownerDocument.querySelector(container);\n }\n if (!isElement(container)) {\n throw new Error('The `container` option must be an element or a valid selector.');\n }\n }\n if (!isElement(container)) {\n if (element.parentElement) {\n container = element.parentElement;\n }\n else {\n container = ownerDocument.body;\n }\n }\n this.container = container;\n const tagName = element.localName;\n let src = '';\n if (tagName === 'img') {\n ({ src } = element);\n }\n else if (tagName === 'canvas' && window.HTMLCanvasElement) {\n src = element.toDataURL();\n }\n const { template } = options;\n if (template && isString(template)) {\n const templateElement = document.createElement('template');\n const documentFragment = document.createDocumentFragment();\n templateElement.innerHTML = template.replace(REGEXP_BLOCKED_TAGS, '<$1>');\n documentFragment.appendChild(templateElement.content);\n Array.from(documentFragment.querySelectorAll(CROPPER_IMAGE)).forEach((image) => {\n image.setAttribute('src', src);\n image.setAttribute('alt', element.alt || 'The image to crop');\n });\n if (element.parentElement) {\n element.style.display = 'none';\n container.insertBefore(documentFragment, element.nextSibling);\n }\n else {\n container.appendChild(documentFragment);\n }\n }\n }\n getCropperCanvas() {\n return this.container.querySelector(CROPPER_CANVAS);\n }\n getCropperImage() {\n return this.container.querySelector(CROPPER_IMAGE);\n }\n getCropperSelection() {\n return this.container.querySelector(CROPPER_SELECTION);\n }\n getCropperSelections() {\n return this.container.querySelectorAll(CROPPER_SELECTION);\n }\n}\nCropper.version = '2.0.0-beta.4';\n\nexport { Cropper as default };\n",":host {\n\t@import '../../../style/form/range';\n\t@apply mb-6 flex w-full flex-col items-center justify-between gap-6;\n}\n","import {\n\tComponent,\n\tEvent,\n\tEventEmitter,\n\tHost,\n\tListen,\n\tProp,\n\tState,\n\th,\n} from '@stencil/core';\nimport { clsx } from 'clsx';\nimport 'cropperjs';\nimport { CropperImage, CropperSelection } from 'cropperjs';\n\n@Component({\n\ttag: 'p-cropper',\n\tstyleUrl: 'cropper.component.scss',\n\tshadow: true,\n})\nexport class Cropper {\n\t/**\n\t * Variant of the image that's being cropped\n\t */\n\t@Prop({ reflect: true }) variant: 'user' | 'company' = 'user';\n\n\t/**\n\t * The image to crop (url or base64)\n\t */\n\t@Prop() value: any;\n\n\t/**\n\t * The return type of the onchange\n\t */\n\t@Prop() returnType: 'canvas' | 'base64' = 'base64';\n\n\t/**\n\t * Event when the value changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tvalueChange: EventEmitter<any>;\n\n\tprivate _imageRef: CropperImage;\n\tprivate _selectionRef: CropperSelection;\n\n\tprivate _maxScale = 0;\n\tprivate _minScale = 0;\n\n\tprivate _resizeDebounceTimeout: NodeJS.Timer;\n\tprivate _toCanvasDebounceTimeout: NodeJS.Timer;\n\n\t@State()\n\tprivate _loaded = false;\n\n\t@State()\n\tprivate _currentScale = 0;\n\n\t@Listen('resize', { target: 'window' })\n\tonResize() {\n\t\tif (this._resizeDebounceTimeout) {\n\t\t\tclearTimeout(this._resizeDebounceTimeout);\n\t\t}\n\n\t\tthis._resizeDebounceTimeout = setTimeout(() => {\n\t\t\tthis._selectionRef.$center();\n\t\t\tthis._imageRef.$center();\n\t\t}, 200);\n\t}\n\n\tcomponentDidLoad() {\n\t\tsetTimeout(() => {\n\t\t\tthis._loaded = true;\n\t\t}, 200);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class=\"p-cropper\">\n\t\t\t\t{this._loaded && (\n\t\t\t\t\t<cropper-canvas\n\t\t\t\t\t\tclass=\"h-[17.5rem] w-full border-0 border-b border-solid border-mystic-medium bg-white\"\n\t\t\t\t\t\tonAction={() => this._onAction()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<cropper-image\n\t\t\t\t\t\t\tsrc={this.value}\n\t\t\t\t\t\t\talt=\"Picture\"\n\t\t\t\t\t\t\tref={(ref) =>\n\t\t\t\t\t\t\t\tthis._setImageRef(ref as CropperImage)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tscalable\n\t\t\t\t\t\t\tcrossorigin=\"anonymous\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<cropper-shade\n\t\t\t\t\t\t\tclass={clsx({\n\t\t\t\t\t\t\t\t'rounded-round': this.variant === 'user',\n\t\t\t\t\t\t\t\trounded: this.variant === 'company',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\ttheme-color=\"rgba(255, 255, 255, 0.5)\"\n\t\t\t\t\t\t\thidden\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<cropper-selection\n\t\t\t\t\t\t\tinitial-coverage=\"0.7\"\n\t\t\t\t\t\t\taspect-ratio=\"1\"\n\t\t\t\t\t\t\tref={(ref) =>\n\t\t\t\t\t\t\t\t(this._selectionRef = ref as CropperSelection)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<cropper-handle action=\"move\" plain></cropper-handle>\n\t\t\t\t\t</cropper-canvas>\n\t\t\t\t)}\n\n\t\t\t\t<div class=\"flex w-full items-center gap-2 px-14 text-storm-vague tablet:max-w-xs tablet:px-1\">\n\t\t\t\t\t<p-icon variant=\"minus\" />\n\t\t\t\t\t<input\n\t\t\t\t\t\tclass=\"p-input w-full\"\n\t\t\t\t\t\ttype=\"range\"\n\t\t\t\t\t\tmin=\"0\"\n\t\t\t\t\t\tmax=\"100\"\n\t\t\t\t\t\tvalue={this._currentScale}\n\t\t\t\t\t\tonInput={(ev) =>\n\t\t\t\t\t\t\tthis._onInput((ev.target as HTMLInputElement).value)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstep=\"0.5\"\n\t\t\t\t\t/>\n\t\t\t\t\t<p-icon variant=\"plus\" />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\tprivate _setImageRef(ref: CropperImage) {\n\t\tif (this._imageRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._imageRef = ref;\n\t\tthis._imageRef.$ready((image) =>\n\t\t\tsetTimeout(() => this._setInitialState(image), 200)\n\t\t);\n\t}\n\n\tprivate _setInitialState(image) {\n\t\tlet scale: number;\n\t\tif (image.naturalWidth > image.naturalHeight) {\n\t\t\t// set scale by height\n\t\t\tscale = 200 / image.naturalHeight;\n\t\t}\n\n\t\tif (image.naturalHeight >= image.naturalWidth) {\n\t\t\t// set scale by width\n\t\t\tscale = 200 / image.naturalWidth;\n\t\t}\n\n\t\tconst current = this._imageRef.$getTransform();\n\n\t\tthis._minScale = scale;\n\t\tthis._maxScale = current[0];\n\n\t\tthis._selectionRef.$resize('nw-resize', 200, 200, 1);\n\t\tthis._selectionRef.$center();\n\n\t\tthis._setScale(scale);\n\t\tthis._toCanvas();\n\t}\n\n\tprivate _onAction() {\n\t\tthis._setCurrentScale();\n\t\tthis._toCanvas();\n\t}\n\n\tprivate _setScale(\n\t\tscale: number,\n\t\tsetCenter: boolean = true,\n\t\tsetCurrentScale: boolean = true\n\t) {\n\t\tconst transform = this._imageRef.$getTransform();\n\t\tthis._imageRef.$setTransform([\n\t\t\tscale,\n\t\t\t0,\n\t\t\t0,\n\t\t\tscale,\n\t\t\ttransform[4],\n\t\t\ttransform[5],\n\t\t]);\n\n\t\tif (setCenter) {\n\t\t\tthis._imageRef.$center();\n\t\t}\n\n\t\tif (setCurrentScale) {\n\t\t\tthis._setCurrentScale();\n\t\t}\n\t}\n\n\tprivate _setCurrentScale() {\n\t\tconst transform = this._imageRef.$getTransform();\n\t\tconst current = transform[0];\n\n\t\tif (current < this._minScale) {\n\t\t\tthis._setScale(this._minScale, true, false);\n\t\t\tthis._currentScale = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tif (current > this._maxScale) {\n\t\t\tthis._setScale(this._maxScale, true, false);\n\t\t\tthis._currentScale = 100;\n\t\t\treturn;\n\t\t}\n\n\t\tif (current === this._minScale) {\n\t\t\tthis._currentScale = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tif (current === this._maxScale) {\n\t\t\tthis._currentScale = 100;\n\t\t\treturn;\n\t\t}\n\n\t\tconst minMaxDiff = this._maxScale - this._minScale;\n\t\tconst currentDiff = current - this._minScale;\n\n\t\tconst percentage = (currentDiff / minMaxDiff) * 100;\n\t\tthis._currentScale = percentage;\n\t}\n\n\tprivate _onInput(value) {\n\t\tconst transform = this._imageRef.$getTransform();\n\t\tconst current = transform[0];\n\t\tconst minMaxDiff = this._maxScale - this._minScale;\n\n\t\tconst toSet = minMaxDiff * (value / 100);\n\n\t\tif (toSet === current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._setScale(toSet + this._minScale, false, false);\n\t\tthis._currentScale = value;\n\n\t\tthis._toCanvas();\n\t}\n\n\tprivate _toCanvas() {\n\t\tif (this._toCanvasDebounceTimeout) {\n\t\t\tclearTimeout(this._toCanvasDebounceTimeout);\n\t\t}\n\n\t\tthis._toCanvasDebounceTimeout = setTimeout(async () => {\n\t\t\tconst canvas = await this._selectionRef.$toCanvas();\n\t\t\tif (this.returnType === 'canvas') {\n\t\t\t\tthis.valueChange.emit(canvas);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst data = canvas.toDataURL('image/png');\n\t\t\tthis.valueChange.emit(data);\n\t\t}, 200);\n\t}\n}\n"],"version":3}
|