vuedit-image-editor 0.1.0 → 0.2.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/README.md +222 -0
- package/dist/style.css +1 -0
- package/dist/types/components/VueditImageEditor.vue.d.ts +91 -0
- package/dist/types/components/VueditImageEditorModal.vue.d.ts +71 -0
- package/dist/types/components/canvas/FabricCanvas.vue.d.ts +5 -0
- package/dist/types/components/panels/CropPanel.vue.d.ts +32 -0
- package/dist/types/components/panels/DrawPanel.vue.d.ts +24 -0
- package/dist/types/components/panels/FilterPanel.vue.d.ts +28 -0
- package/dist/types/components/panels/ResizePanel.vue.d.ts +35 -0
- package/dist/types/components/panels/RotateFlipPanel.vue.d.ts +31 -0
- package/dist/types/components/panels/ShapePanel.vue.d.ts +26 -0
- package/dist/types/components/panels/TextPanel.vue.d.ts +26 -0
- package/dist/types/components/shared/ColorPicker.vue.d.ts +21 -0
- package/dist/types/components/shared/ConfirmBar.vue.d.ts +23 -0
- package/dist/types/components/shared/RangeSlider.vue.d.ts +27 -0
- package/dist/types/components/toolbar/EditorToolbar.vue.d.ts +26 -0
- package/dist/types/components/toolbar/ToolButton.vue.d.ts +30 -0
- package/dist/types/composables/useCrop.d.ts +18 -0
- package/dist/types/composables/useDraw.d.ts +12 -0
- package/dist/types/composables/useEditorState.d.ts +7 -0
- package/dist/types/composables/useFabricCanvas.d.ts +16 -0
- package/dist/types/composables/useFilters.d.ts +18 -0
- package/dist/types/composables/useHistory.d.ts +11 -0
- package/dist/types/composables/useResize.d.ts +16 -0
- package/dist/types/composables/useRotateFlip.d.ts +12 -0
- package/dist/types/composables/useShapes.d.ts +12 -0
- package/dist/types/composables/useText.d.ts +16 -0
- package/dist/types/composables/useZoom.d.ts +11 -0
- package/dist/types/i18n/ar.d.ts +54 -0
- package/dist/types/i18n/en.d.ts +55 -0
- package/dist/types/i18n/index.d.ts +7 -0
- package/dist/types/icons/CropIcon.vue.d.ts +2 -0
- package/dist/types/icons/DrawIcon.vue.d.ts +2 -0
- package/dist/types/icons/FilterIcon.vue.d.ts +2 -0
- package/dist/types/icons/FlipHIcon.vue.d.ts +2 -0
- package/dist/types/icons/FlipVIcon.vue.d.ts +2 -0
- package/dist/types/icons/RedoIcon.vue.d.ts +2 -0
- package/dist/types/icons/ResizeIcon.vue.d.ts +2 -0
- package/dist/types/icons/RotateIcon.vue.d.ts +2 -0
- package/dist/types/icons/RotateLeftIcon.vue.d.ts +2 -0
- package/dist/types/icons/RotateRightIcon.vue.d.ts +2 -0
- package/dist/types/icons/ShapeIcon.vue.d.ts +2 -0
- package/dist/types/icons/TextIcon.vue.d.ts +2 -0
- package/dist/types/icons/UndoIcon.vue.d.ts +2 -0
- package/dist/types/icons/ZoomInIcon.vue.d.ts +2 -0
- package/dist/types/icons/ZoomOutIcon.vue.d.ts +2 -0
- package/dist/types/icons/index.d.ts +15 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/types/index.d.ts +43 -0
- package/dist/vuedit-image-editor.es.js +8898 -3298
- package/dist/vuedit-image-editor.es.js.map +1 -1
- package/dist/vuedit-image-editor.umd.js +504 -35
- package/dist/vuedit-image-editor.umd.js.map +1 -1
- package/package.json +50 -31
- package/LICENSE +0 -21
- package/dist/index.d.ts +0 -663
- package/dist/vuedit-image-editor.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vuedit-image-editor.umd.js","sources":["../src/types/image-state.ts","../src/core/History.ts","../src/core/ImageReader.ts","../src/engine/useEditorEngine.ts","../src/core/ColorMatrix.ts","../src/core/ImageProcessor.ts","../src/locale/en.ts","../src/locale/ar.ts","../src/components/ui/IconButton.vue","../src/components/EditorToolbar.vue","../src/core/CanvasRenderer.ts","../src/components/EditorCanvas.vue","../src/components/EditorTabs.vue","../src/components/EditorControlPanel.vue","../src/components/ui/Slider.vue","../src/components/ui/Dropdown.vue","../src/plugins/crop/presets.ts","../src/plugins/crop/CropControls.vue","../src/plugins/crop/CropOverlay.vue","../src/plugins/crop/index.ts","../src/plugins/finetune/effects.ts","../src/plugins/finetune/FinetuneControls.vue","../src/plugins/finetune/index.ts","../src/plugins/filter/filterPresets.ts","../src/plugins/filter/FilterControls.vue","../src/plugins/filter/index.ts","../src/plugins/sticker/defaultStickers.ts","../src/plugins/sticker/selectedSticker.ts","../src/plugins/sticker/StickerControls.vue","../src/plugins/sticker/StickerOverlay.vue","../src/plugins/sticker/index.ts","../src/plugins/frame/frameStyles.ts","../src/plugins/frame/FrameControls.vue","../src/plugins/frame/index.ts","../src/plugins/fill/FillControls.vue","../src/plugins/fill/index.ts","../src/plugins/resize/ResizeControls.vue","../src/plugins/resize/index.ts","../src/components/EditorShell.vue","../src/components/EditorModal.vue","../src/core/StatePersistence.ts","../src/index.ts"],"sourcesContent":["export interface CropState {\n /** Normalized 0-1 X position of crop region */\n x: number\n /** Normalized 0-1 Y position of crop region */\n y: number\n /** Normalized 0-1 width of crop region */\n width: number\n /** Normalized 0-1 height of crop region */\n height: number\n /** Locked aspect ratio (width/height), null = free */\n aspectRatio: number | null\n /** Rotation in radians, -PI/4 to PI/4 for free rotation */\n rotation: number\n /** Flip horizontally */\n flipX: boolean\n /** Flip vertically */\n flipY: boolean\n}\n\nexport interface FinetuneState {\n brightness: number // -0.25 to 0.25, base 0\n contrast: number // -0.25 to 0.25, base 0\n saturation: number // -0.25 to 0.25, base 0\n exposure: number // -0.25 to 0.25, base 0\n temperature: number // -0.25 to 0.25, base 0\n gamma: number // 0.2 to 5.0, base 1\n clarity: number // -0.25 to 0.25, base 0\n vignette: number // -1 to 1, base 0\n}\n\nexport interface FilterState {\n /** Filter preset ID, null = no filter */\n id: string | null\n /** Filter intensity 0 to 1 */\n intensity: number\n /** Optional 5x4 color matrix (20 elements) */\n matrix?: number[]\n}\n\nexport interface StickerInstance {\n id: string\n /** URL, data URI, or emoji character */\n src: string\n /** Normalized 0-1 position */\n x: number\n y: number\n /** Normalized 0-1 size */\n width: number\n height: number\n /** Rotation in radians */\n rotation: number\n flipX: boolean\n flipY: boolean\n opacity: number\n}\n\nexport interface FrameState {\n /** Frame style ID, null = no frame */\n style: string | null\n /** Frame thickness as percentage of image size */\n size: number\n /** RGBA color, each 0-1 */\n color: [number, number, number, number]\n /** Corner radius */\n radius: number\n}\n\nexport interface ResizeState {\n width?: number\n height?: number\n fit: 'contain' | 'cover' | 'force'\n upscale: boolean\n}\n\nexport interface ImageState {\n crop: CropState\n finetune: FinetuneState\n filter: FilterState\n stickers: StickerInstance[]\n frame: FrameState\n resize: ResizeState\n backgroundColor: [number, number, number, number]\n}\n\nexport function createDefaultImageState(): ImageState {\n return {\n crop: {\n x: 0,\n y: 0,\n width: 1,\n height: 1,\n aspectRatio: null,\n rotation: 0,\n flipX: false,\n flipY: false,\n },\n finetune: {\n brightness: 0,\n contrast: 0,\n saturation: 0,\n exposure: 0,\n temperature: 0,\n gamma: 1,\n clarity: 0,\n vignette: 0,\n },\n filter: {\n id: null,\n intensity: 1,\n },\n stickers: [],\n frame: {\n style: null,\n size: 0.025,\n color: [1, 1, 1, 1],\n radius: 0,\n },\n resize: {\n fit: 'contain',\n upscale: false,\n },\n backgroundColor: [0, 0, 0, 1],\n }\n}\n","import type { ImageState } from '../types'\n\nfunction deepClone(state: ImageState): ImageState {\n return JSON.parse(JSON.stringify(state))\n}\n\nexport class History {\n private states: ImageState[] = []\n private pointer = -1\n private maxSize: number\n\n constructor(maxSize = 50) {\n this.maxSize = maxSize\n }\n\n /** Push a new state snapshot. Truncates any future (redo) states. */\n push(state: ImageState): void {\n // Truncate future states\n this.states = this.states.slice(0, this.pointer + 1)\n // Deep clone to preserve snapshot\n this.states.push(deepClone(state))\n // Enforce max size\n if (this.states.length > this.maxSize) {\n this.states.shift()\n }\n this.pointer = this.states.length - 1\n }\n\n /** Undo: return the previous state, or null if at the beginning. */\n undo(): ImageState | null {\n if (this.pointer <= 0) return null\n this.pointer--\n return deepClone(this.states[this.pointer])\n }\n\n /** Redo: return the next state, or null if at the end. */\n redo(): ImageState | null {\n if (this.pointer >= this.states.length - 1) return null\n this.pointer++\n return deepClone(this.states[this.pointer])\n }\n\n /** Reset history with a single initial state. */\n reset(state: ImageState): void {\n this.states = [deepClone(state)]\n this.pointer = 0\n }\n\n get canUndo(): boolean {\n return this.pointer > 0\n }\n\n get canRedo(): boolean {\n return this.pointer < this.states.length - 1\n }\n\n get currentIndex(): number {\n return this.pointer\n }\n\n get length(): number {\n return this.states.length\n }\n}\n","/**\n * Load images from various sources into an HTMLImageElement.\n * Handles URL strings, File objects, Blobs, and EXIF orientation.\n */\n\nexport async function loadImage(src: string | File | Blob): Promise<HTMLImageElement> {\n const url = await toObjectUrl(src)\n\n return new Promise((resolve, reject) => {\n const img = new Image()\n img.crossOrigin = 'anonymous'\n\n img.onload = () => {\n // Revoke object URL if we created one (for File/Blob)\n if (typeof src !== 'string') {\n URL.revokeObjectURL(url)\n }\n resolve(img)\n }\n\n img.onerror = () => {\n if (typeof src !== 'string') {\n URL.revokeObjectURL(url)\n }\n reject(new Error(`Failed to load image: ${typeof src === 'string' ? src : 'Blob/File'}`))\n }\n\n img.src = url\n })\n}\n\nasync function toObjectUrl(src: string | File | Blob): Promise<string> {\n if (typeof src === 'string') {\n return src\n }\n return URL.createObjectURL(src)\n}\n\n/**\n * Read EXIF orientation from a File/Blob.\n * Returns orientation value 1-8, or 1 if not found.\n *\n * Modern browsers (Chrome 81+, Firefox 77+, Safari 13.1+) auto-correct\n * EXIF orientation when drawing to canvas, so this is mainly for\n * detecting if we need to handle older browsers.\n */\nexport async function readExifOrientation(file: File | Blob): Promise<number> {\n try {\n const buffer = await file.slice(0, 65536).arrayBuffer()\n const view = new DataView(buffer)\n\n // Check JPEG SOI marker\n if (view.getUint16(0) !== 0xFFD8) return 1\n\n let offset = 2\n while (offset < view.byteLength - 2) {\n const marker = view.getUint16(offset)\n offset += 2\n\n // APP1 marker (EXIF)\n if (marker === 0xFFE1) {\n const length = view.getUint16(offset)\n\n // Check \"Exif\\0\\0\" header\n if (\n view.getUint32(offset + 2) === 0x45786966 &&\n view.getUint16(offset + 6) === 0x0000\n ) {\n const tiffOffset = offset + 8\n const littleEndian = view.getUint16(tiffOffset) === 0x4949\n\n const ifdOffset = view.getUint32(tiffOffset + 4, littleEndian)\n const numEntries = view.getUint16(tiffOffset + ifdOffset, littleEndian)\n\n for (let i = 0; i < numEntries; i++) {\n const entryOffset = tiffOffset + ifdOffset + 2 + i * 12\n if (entryOffset + 12 > view.byteLength) break\n\n const tag = view.getUint16(entryOffset, littleEndian)\n if (tag === 0x0112) {\n // Orientation tag\n return view.getUint16(entryOffset + 8, littleEndian)\n }\n }\n }\n\n offset += length\n } else if ((marker & 0xFF00) === 0xFF00) {\n // Other marker — skip\n offset += view.getUint16(offset)\n } else {\n break\n }\n }\n } catch {\n // Ignore EXIF read errors\n }\n\n return 1\n}\n\n/**\n * Get the natural dimensions of an image, accounting for EXIF orientation.\n * For orientations 5-8, width and height are swapped.\n */\nexport function getOrientedDimensions(\n img: HTMLImageElement,\n orientation: number,\n): { width: number; height: number } {\n const { naturalWidth: w, naturalHeight: h } = img\n if (orientation >= 5 && orientation <= 8) {\n return { width: h, height: w }\n }\n return { width: w, height: h }\n}\n","import { reactive, readonly, provide, inject, ref, shallowRef, computed, toRaw, markRaw, type DeepReadonly, type InjectionKey, type Ref, type ShallowRef } from 'vue'\nimport type { ImageState, EditorPlugin, EditorOptions, ProcessResult } from '../types'\nimport { createDefaultImageState } from '../types'\nimport { History } from '../core/History'\nimport { loadImage } from '../core/ImageReader'\n\nconst EDITOR_KEY = Symbol('vuedit-image-editor')\nexport const LOCALE_KEY = Symbol('vuedit-locale') as InjectionKey<(key: string) => string>\n\nexport interface EditorEngine {\n /** Reactive editor state */\n state: ImageState\n /** Read-only reactive state for consumers */\n readonlyState: DeepReadonly<ImageState>\n /** Source image element */\n sourceImage: Ref<HTMLImageElement | null>\n /** Whether the source image is loading */\n loading: Ref<boolean>\n /** Error message if loading fails */\n error: Ref<string | null>\n /** Registered plugins */\n plugins: Ref<EditorPlugin[]>\n /** Currently active plugin ID */\n activePluginId: Ref<string | null>\n /** Currently active plugin */\n activePlugin: Ref<EditorPlugin | null>\n /** Whether any edits have been made */\n hasEdits: Ref<boolean>\n /** History */\n canUndo: Ref<boolean>\n canRedo: Ref<boolean>\n /** Zoom level (1 = fit to container) */\n zoom: Ref<number>\n /** Editor options */\n options: EditorOptions\n\n /** Load the source image */\n load: (src: string | File | Blob) => Promise<void>\n /** Register a plugin */\n registerPlugin: (plugin: EditorPlugin) => void\n /** Unregister a plugin by ID */\n unregisterPlugin: (id: string) => void\n /** Set active plugin by ID */\n setActivePlugin: (id: string) => void\n /** Update state and push to history */\n updateState: (updater: (state: ImageState) => void) => void\n /** Undo last change */\n undo: () => void\n /** Redo last undone change */\n redo: () => void\n /** Revert to initial state */\n revert: () => void\n /** Set zoom level */\n setZoom: (level: number) => void\n /** Request a re-render of the canvas */\n requestRender: () => void\n /** Render callback — set by EditorCanvas */\n onRender: Ref<(() => void) | null>\n /** Temporary viewport pan during crop drag (pixels) */\n cropDragPan: Ref<{ x: number; y: number }>\n}\n\n/** Deep-clone a reactive state into a plain object */\nfunction cloneState(state: ImageState): ImageState {\n return JSON.parse(JSON.stringify(toRaw(state)))\n}\n\nexport function createEditorEngine(options: EditorOptions): EditorEngine {\n const state = reactive<ImageState>(\n options.initialState\n ? { ...createDefaultImageState(), ...JSON.parse(JSON.stringify(options.initialState)) }\n : createDefaultImageState(),\n )\n\n const initialState = cloneState(state)\n const history = new History(50)\n history.reset(cloneState(state))\n\n const sourceImage = ref<HTMLImageElement | null>(null)\n const loading = ref(false)\n const error = ref<string | null>(null)\n let loadGeneration = 0\n const plugins = shallowRef<EditorPlugin[]>([])\n const activePluginId = ref<string | null>(null)\n const zoom = ref(1)\n const onRender = ref<(() => void) | null>(null)\n const cropDragPan = ref({ x: 0, y: 0 })\n // Reactive counter to trigger recomputation of history-dependent computed properties\n const historyVersion = ref(0)\n\n const activePlugin = computed(() => {\n if (!activePluginId.value) return null\n return plugins.value.find((p) => p.id === activePluginId.value) || null\n })\n\n const canUndo = computed(() => { historyVersion.value; return history.canUndo })\n const canRedo = computed(() => { historyVersion.value; return history.canRedo })\n const hasEdits = computed(() => { historyVersion.value; return history.currentIndex > 0 })\n\n async function load(src: string | File | Blob) {\n const gen = ++loadGeneration\n loading.value = true\n error.value = null\n try {\n const img = await loadImage(src)\n // Guard against stale load — a newer load() call supersedes this one\n if (gen !== loadGeneration) return\n sourceImage.value = img\n requestRender()\n } catch (e) {\n if (gen !== loadGeneration) return\n error.value = e instanceof Error ? e.message : 'Failed to load image'\n } finally {\n if (gen === loadGeneration) {\n loading.value = false\n }\n }\n }\n\n function registerPlugin(plugin: EditorPlugin) {\n if (!plugin.id || !plugin.controls) {\n console.warn('[VueditImageEditor] Plugin missing required fields (id, controls):', plugin)\n return\n }\n if (plugins.value.some((p) => p.id === plugin.id)) return\n // Mark raw to prevent Vue from making component refs deeply reactive\n plugins.value = [...plugins.value, markRaw(plugin)]\n // Auto-activate first plugin\n if (!activePluginId.value) {\n activePluginId.value = plugin.id\n }\n }\n\n function unregisterPlugin(id: string) {\n plugins.value = plugins.value.filter((p) => p.id !== id)\n if (activePluginId.value === id) {\n activePluginId.value = plugins.value[0]?.id || null\n }\n }\n\n function setActivePlugin(id: string) {\n const prev = activePlugin.value\n if (prev?.onDeactivate) prev.onDeactivate()\n\n activePluginId.value = id\n\n const next = plugins.value.find((p) => p.id === id)\n if (next?.onActivate) next.onActivate()\n requestRender()\n }\n\n function updateState(updater: (state: ImageState) => void) {\n updater(state)\n history.push(cloneState(state))\n historyVersion.value++\n requestRender()\n }\n\n function undo() {\n const prev = history.undo()\n if (prev) {\n Object.assign(state, prev)\n historyVersion.value++\n requestRender()\n }\n }\n\n function redo() {\n const next = history.redo()\n if (next) {\n Object.assign(state, next)\n historyVersion.value++\n requestRender()\n }\n }\n\n function revert() {\n // Notify active plugin of state reset\n const current = activePlugin.value\n if (current?.onDeactivate) current.onDeactivate()\n\n Object.assign(state, JSON.parse(JSON.stringify(initialState)))\n history.reset(cloneState(state))\n historyVersion.value++\n\n if (current?.onActivate) current.onActivate()\n requestRender()\n }\n\n function setZoom(level: number) {\n zoom.value = Math.max(0.1, Math.min(10, level))\n requestRender()\n }\n\n function requestRender() {\n if (onRender.value) {\n onRender.value()\n }\n }\n\n return {\n state,\n readonlyState: readonly(state),\n sourceImage,\n loading,\n error,\n plugins,\n activePluginId,\n activePlugin,\n hasEdits,\n canUndo,\n canRedo,\n zoom,\n options,\n load,\n registerPlugin,\n unregisterPlugin,\n setActivePlugin,\n updateState,\n undo,\n redo,\n revert,\n setZoom,\n requestRender,\n onRender,\n cropDragPan,\n }\n}\n\nexport function provideEditor(engine: EditorEngine): void {\n provide(EDITOR_KEY, engine)\n}\n\nexport function useEditor(): EditorEngine {\n const engine = inject<EditorEngine>(EDITOR_KEY)\n if (!engine) {\n throw new Error('[VueditImageEditor] useEditor() called outside of editor context. Make sure to use it inside <EditorShell> or <ImageEditorModal>.')\n }\n return engine\n}\n","/**\n * 5x4 Color Matrix operations for image adjustments and filters.\n *\n * A 5x4 matrix transforms RGBA pixel values:\n * [R'] [m0 m1 m2 m3 m4 ] [R]\n * [G'] = [m5 m6 m7 m8 m9 ] [G]\n * [B'] [m10 m11 m12 m13 m14] [B]\n * [A'] [m15 m16 m17 m18 m19] [A]\n * [1] (bias row, m4/m9/m14/m19 are offsets)\n */\n\n/** Identity matrix — no transformation */\nexport const IDENTITY_MATRIX: number[] = [\n 1, 0, 0, 0, 0,\n 0, 1, 0, 0, 0,\n 0, 0, 1, 0, 0,\n 0, 0, 0, 1, 0,\n]\n\n/** Multiply two 5x4 matrices (treating them as 5x5 with implicit last row [0,0,0,0,1]) */\nexport function multiplyMatrices(a: number[], b: number[]): number[] {\n const result = new Array(20).fill(0)\n\n for (let row = 0; row < 4; row++) {\n for (let col = 0; col < 5; col++) {\n let sum = 0\n for (let k = 0; k < 4; k++) {\n sum += a[row * 5 + k] * b[k * 5 + col]\n }\n // Add bias column contribution\n if (col === 4) {\n sum += a[row * 5 + 4]\n }\n result[row * 5 + col] = sum\n }\n }\n\n return result\n}\n\n/** Compose multiple matrices into one (left to right application order) */\nexport function composeMatrices(...matrices: number[][]): number[] {\n if (matrices.length === 0) return [...IDENTITY_MATRIX]\n let result = matrices[0]\n for (let i = 1; i < matrices.length; i++) {\n result = multiplyMatrices(matrices[i], result)\n }\n return result\n}\n\n/** Brightness adjustment matrix. v: -0.25 to 0.25 */\nexport function brightnessMatrix(v: number): number[] {\n return [\n 1, 0, 0, 0, v,\n 0, 1, 0, 0, v,\n 0, 0, 1, 0, v,\n 0, 0, 0, 1, 0,\n ]\n}\n\n/** Contrast adjustment matrix. v: -0.25 to 0.25 */\nexport function contrastMatrix(v: number): number[] {\n const f = v + 1\n const o = -0.5 * f + 0.5\n return [\n f, 0, 0, 0, o,\n 0, f, 0, 0, o,\n 0, 0, f, 0, o,\n 0, 0, 0, 1, 0,\n ]\n}\n\n/** Saturation adjustment matrix. v: -0.25 to 0.25 */\nexport function saturationMatrix(v: number): number[] {\n const s = v + 1\n const invS = 1 - s\n const r = 0.2126 * invS\n const g = 0.7152 * invS\n const b = 0.0722 * invS\n return [\n r + s, g, b, 0, 0,\n r, g + s, b, 0, 0,\n r, g, b + s, 0, 0,\n 0, 0, 0, 1, 0,\n ]\n}\n\n/** Exposure adjustment matrix. v: -0.25 to 0.25 */\nexport function exposureMatrix(v: number): number[] {\n const f = Math.pow(2, v)\n return [\n f, 0, 0, 0, 0,\n 0, f, 0, 0, 0,\n 0, 0, f, 0, 0,\n 0, 0, 0, 1, 0,\n ]\n}\n\n/** Temperature adjustment matrix. v: -0.25 to 0.25 (positive = warmer, negative = cooler) */\nexport function temperatureMatrix(v: number): number[] {\n return [\n 1 + v, 0, 0, 0, 0,\n 0, 1, 0, 0, 0,\n 0, 0, 1 - v, 0, 0,\n 0, 0, 0, 1, 0,\n ]\n}\n\n/**\n * Apply a 5x4 color matrix to ImageData in-place.\n * Offsets (m4, m9, m14, m19) are in 0-1 range and scaled to 0-255 internally.\n */\nexport function applyColorMatrix(imageData: ImageData, matrix: number[]): void {\n const d = imageData.data\n const len = d.length\n\n const m0 = matrix[0], m1 = matrix[1], m2 = matrix[2], m3 = matrix[3], m4 = matrix[4] * 255\n const m5 = matrix[5], m6 = matrix[6], m7 = matrix[7], m8 = matrix[8], m9 = matrix[9] * 255\n const m10 = matrix[10], m11 = matrix[11], m12 = matrix[12], m13 = matrix[13], m14 = matrix[14] * 255\n const m15 = matrix[15], m16 = matrix[16], m17 = matrix[17], m18 = matrix[18], m19 = matrix[19] * 255\n\n for (let i = 0; i < len; i += 4) {\n const r = d[i]\n const g = d[i + 1]\n const b = d[i + 2]\n const a = d[i + 3]\n\n d[i] = clamp(r * m0 + g * m1 + b * m2 + a * m3 + m4)\n d[i + 1] = clamp(r * m5 + g * m6 + b * m7 + a * m8 + m9)\n d[i + 2] = clamp(r * m10 + g * m11 + b * m12 + a * m13 + m14)\n d[i + 3] = clamp(r * m15 + g * m16 + b * m17 + a * m18 + m19)\n }\n}\n\n/**\n * Apply gamma correction to ImageData in-place.\n * gamma: 0.2 to 5.0, base 1.0 (1 = no change)\n */\nexport function applyGamma(imageData: ImageData, gamma: number): void {\n if (gamma === 1) return\n const d = imageData.data\n const invGamma = 1 / gamma\n // Build lookup table for performance\n const lut = new Uint8Array(256)\n for (let i = 0; i < 256; i++) {\n lut[i] = clamp(Math.pow(i / 255, invGamma) * 255)\n }\n for (let i = 0; i < d.length; i += 4) {\n d[i] = lut[d[i]]\n d[i + 1] = lut[d[i + 1]]\n d[i + 2] = lut[d[i + 2]]\n }\n}\n\n/**\n * Apply vignette effect to ImageData in-place.\n * strength: -1 to 1 (negative = lighten edges, positive = darken edges)\n */\nexport function applyVignette(\n imageData: ImageData,\n strength: number,\n width: number,\n height: number,\n): void {\n if (strength === 0) return\n const d = imageData.data\n const cx = width / 2\n const cy = height / 2\n const maxDist = Math.sqrt(cx * cx + cy * cy)\n\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const i = (y * width + x) * 4\n const dx = x - cx\n const dy = y - cy\n const dist = Math.sqrt(dx * dx + dy * dy) / maxDist\n // Smooth falloff: squared distance for natural vignette\n const factor = 1 - strength * dist * dist\n d[i] = clamp(d[i] * factor)\n d[i + 1] = clamp(d[i + 1] * factor)\n d[i + 2] = clamp(d[i + 2] * factor)\n }\n }\n}\n\n/**\n * Apply clarity (local contrast / unsharp mask) to ImageData in-place.\n * strength: -0.25 to 0.25, base 0. Positive sharpens, negative softens.\n * Uses a 3x3 Laplacian kernel blended with the original.\n */\nexport function applyClarity(imageData: ImageData, strength: number): void {\n if (strength === 0) return\n\n const { data, width, height } = imageData\n const amount = strength * 4 // Scale to useful range\n\n // Copy original data\n const orig = new Uint8ClampedArray(data)\n\n for (let y = 1; y < height - 1; y++) {\n for (let x = 1; x < width - 1; x++) {\n const i = (y * width + x) * 4\n for (let c = 0; c < 3; c++) {\n // 3x3 Laplacian: center * 4 - neighbors\n const center = orig[i + c]\n const laplacian =\n center * 4 -\n orig[((y - 1) * width + x) * 4 + c] -\n orig[((y + 1) * width + x) * 4 + c] -\n orig[(y * width + (x - 1)) * 4 + c] -\n orig[(y * width + (x + 1)) * 4 + c]\n\n // Blend: original + amount * laplacian\n const v = center + amount * laplacian\n data[i + c] = v < 0 ? 0 : v > 255 ? 255 : (v + 0.5) | 0\n }\n }\n }\n}\n\nfunction clamp(v: number): number {\n return v < 0 ? 0 : v > 255 ? 255 : (v + 0.5) | 0\n}\n","import type { ImageState, ProcessResult } from '../types'\nimport {\n applyColorMatrix,\n applyGamma,\n applyVignette,\n applyClarity,\n composeMatrices,\n brightnessMatrix,\n contrastMatrix,\n saturationMatrix,\n exposureMatrix,\n temperatureMatrix,\n IDENTITY_MATRIX,\n} from './ColorMatrix'\n\nexport interface ProcessOptions {\n mimeType?: string\n quality?: number\n maxCanvasPixels?: number\n}\n\nconst DEFAULT_MAX_PIXELS = 16_777_216 // 4096 * 4096\n\nexport class ImageProcessor {\n /**\n * Process image at FULL RESOLUTION.\n * Applies all transformations and exports as Blob.\n */\n async process(\n source: HTMLImageElement,\n state: ImageState,\n options: ProcessOptions = {},\n ): Promise<ProcessResult> {\n const {\n mimeType = 'image/jpeg',\n quality = 0.92,\n maxCanvasPixels = DEFAULT_MAX_PIXELS,\n } = options\n\n const crop = state.crop\n const finetune = state.finetune\n\n // 1. Calculate crop dimensions at full resolution\n let cropX = Math.round(crop.x * source.naturalWidth)\n let cropY = Math.round(crop.y * source.naturalHeight)\n let cropW = Math.round(crop.width * source.naturalWidth)\n let cropH = Math.round(crop.height * source.naturalHeight)\n\n // Clamp to image bounds\n cropX = Math.max(0, Math.min(cropX, source.naturalWidth))\n cropY = Math.max(0, Math.min(cropY, source.naturalHeight))\n cropW = Math.min(cropW, source.naturalWidth - cropX)\n cropH = Math.min(cropH, source.naturalHeight - cropY)\n\n // 2. Determine output dimensions\n let outputW = cropW\n let outputH = cropH\n\n // Apply resize if specified\n if (state.resize.width || state.resize.height) {\n const resizeW = state.resize.width\n const resizeH = state.resize.height\n const fit = state.resize.fit\n\n if (resizeW && resizeH) {\n if (fit === 'force') {\n outputW = resizeW\n outputH = resizeH\n } else if (fit === 'cover') {\n const scale = Math.max(resizeW / cropW, resizeH / cropH)\n outputW = Math.round(cropW * scale)\n outputH = Math.round(cropH * scale)\n } else {\n // contain\n const scale = Math.min(resizeW / cropW, resizeH / cropH)\n outputW = Math.round(cropW * scale)\n outputH = Math.round(cropH * scale)\n }\n } else if (resizeW) {\n const scale = resizeW / cropW\n outputW = resizeW\n outputH = Math.round(cropH * scale)\n } else if (resizeH) {\n const scale = resizeH / cropH\n outputW = Math.round(cropW * scale)\n outputH = resizeH\n }\n\n // Upscale check\n if (!state.resize.upscale) {\n outputW = Math.min(outputW, cropW)\n outputH = Math.min(outputH, cropH)\n }\n }\n\n // 3. Cap to max canvas pixels\n const totalPixels = outputW * outputH\n if (totalPixels > maxCanvasPixels) {\n const scale = Math.sqrt(maxCanvasPixels / totalPixels)\n outputW = Math.floor(outputW * scale)\n outputH = Math.floor(outputH * scale)\n }\n\n // Ensure minimum 1px\n outputW = Math.max(1, outputW)\n outputH = Math.max(1, outputH)\n\n // 4. Calculate rotated bounding box to prevent clipping\n const absRotation = Math.abs(crop.rotation)\n let canvasW = outputW\n let canvasH = outputH\n if (absRotation > 0.001) {\n const cos = Math.abs(Math.cos(crop.rotation))\n const sin = Math.abs(Math.sin(crop.rotation))\n canvasW = Math.ceil(outputW * cos + outputH * sin)\n canvasH = Math.ceil(outputW * sin + outputH * cos)\n }\n\n // Create output canvas sized to contain rotated content\n const canvas = document.createElement('canvas')\n canvas.width = canvasW\n canvas.height = canvasH\n const ctx = canvas.getContext('2d')!\n\n // 4b. Draw background color (if not fully transparent)\n const bg = state.backgroundColor\n if (bg[3] > 0) {\n ctx.fillStyle = `rgba(${Math.round(bg[0] * 255)}, ${Math.round(bg[1] * 255)}, ${Math.round(bg[2] * 255)}, ${bg[3]})`\n ctx.fillRect(0, 0, canvasW, canvasH)\n }\n\n // 5. Apply crop + rotation + flip\n ctx.save()\n ctx.translate(canvasW / 2, canvasH / 2)\n ctx.rotate(crop.rotation)\n ctx.scale(crop.flipX ? -1 : 1, crop.flipY ? -1 : 1)\n\n // Draw cropped region centered\n ctx.drawImage(\n source,\n cropX, cropY, cropW, cropH,\n -outputW / 2, -outputH / 2, outputW, outputH,\n )\n ctx.restore()\n\n // 6. Apply color adjustments\n const matrices: number[][] = []\n\n if (finetune.brightness !== 0) matrices.push(brightnessMatrix(finetune.brightness))\n if (finetune.contrast !== 0) matrices.push(contrastMatrix(finetune.contrast))\n if (finetune.saturation !== 0) matrices.push(saturationMatrix(finetune.saturation))\n if (finetune.exposure !== 0) matrices.push(exposureMatrix(finetune.exposure))\n if (finetune.temperature !== 0) matrices.push(temperatureMatrix(finetune.temperature))\n\n // Compose with filter matrix if present\n if (state.filter.matrix) {\n if (state.filter.intensity < 1) {\n // Interpolate between identity and filter matrix\n const m = state.filter.matrix\n const t = state.filter.intensity\n const interpolated = IDENTITY_MATRIX.map((v, i) => v * (1 - t) + m[i] * t)\n matrices.push(interpolated)\n } else {\n matrices.push(state.filter.matrix)\n }\n }\n\n if (matrices.length > 0) {\n const combined = composeMatrices(...matrices)\n const imageData = ctx.getImageData(0, 0, canvasW, canvasH)\n applyColorMatrix(imageData, combined)\n\n // Apply gamma\n if (finetune.gamma !== 1) {\n applyGamma(imageData, finetune.gamma)\n }\n\n // Apply clarity\n if (finetune.clarity !== 0) {\n applyClarity(imageData, finetune.clarity)\n }\n\n // Apply vignette\n if (finetune.vignette !== 0) {\n applyVignette(imageData, finetune.vignette, canvasW, canvasH)\n }\n\n ctx.putImageData(imageData, 0, 0)\n } else {\n // Still apply gamma, clarity, and vignette if needed\n if (finetune.gamma !== 1 || finetune.clarity !== 0 || finetune.vignette !== 0) {\n const imageData = ctx.getImageData(0, 0, canvasW, canvasH)\n if (finetune.gamma !== 1) applyGamma(imageData, finetune.gamma)\n if (finetune.clarity !== 0) applyClarity(imageData, finetune.clarity)\n if (finetune.vignette !== 0) applyVignette(imageData, finetune.vignette, canvasW, canvasH)\n ctx.putImageData(imageData, 0, 0)\n }\n }\n\n // 7. Draw frame (if any)\n if (state.frame.style) {\n drawFrame(ctx, state.frame.style, state.frame.size, state.frame.color, state.frame.radius, canvasW, canvasH)\n }\n\n // 8. Draw stickers at full resolution\n for (const sticker of state.stickers) {\n await drawSticker(ctx, sticker, canvasW, canvasH)\n }\n\n // 9. Encode to Blob\n const blob = await new Promise<Blob>((resolve, reject) => {\n canvas.toBlob(\n (b) => (b ? resolve(b) : reject(new Error('Failed to encode image'))),\n mimeType,\n quality,\n )\n })\n\n return {\n blob,\n imageState: JSON.parse(JSON.stringify(state)) as ImageState,\n }\n }\n}\n\nfunction drawFrame(\n ctx: CanvasRenderingContext2D,\n style: string,\n size: number,\n color: [number, number, number, number],\n radius: number,\n w: number,\n h: number,\n): void {\n const frameW = Math.round(Math.max(w, h) * size)\n const r = Math.round(radius)\n const colorStr = `rgba(${Math.round(color[0] * 255)}, ${Math.round(color[1] * 255)}, ${Math.round(color[2] * 255)}, ${color[3]})`\n\n ctx.strokeStyle = colorStr\n ctx.fillStyle = colorStr\n\n switch (style) {\n case 'solidSharp':\n ctx.lineWidth = frameW\n ctx.strokeRect(frameW / 2, frameW / 2, w - frameW, h - frameW)\n break\n case 'solidRound':\n ctx.lineWidth = frameW\n roundRect(ctx, frameW / 2, frameW / 2, w - frameW, h - frameW, r + frameW / 2)\n ctx.stroke()\n break\n case 'lineSingle': {\n const inset = frameW * 2\n ctx.lineWidth = 1\n ctx.strokeRect(inset, inset, w - inset * 2, h - inset * 2)\n break\n }\n case 'lineMultiple': {\n ctx.lineWidth = 1\n for (let i = 1; i <= 3; i++) {\n const inset = frameW * i\n ctx.strokeRect(inset, inset, w - inset * 2, h - inset * 2)\n }\n break\n }\n case 'hook': {\n const hookLen = Math.min(w, h) * 0.1\n ctx.lineWidth = frameW * 0.5\n const m = frameW\n // Top-left\n ctx.beginPath(); ctx.moveTo(m, m + hookLen); ctx.lineTo(m, m); ctx.lineTo(m + hookLen, m); ctx.stroke()\n // Top-right\n ctx.beginPath(); ctx.moveTo(w - m - hookLen, m); ctx.lineTo(w - m, m); ctx.lineTo(w - m, m + hookLen); ctx.stroke()\n // Bottom-left\n ctx.beginPath(); ctx.moveTo(m, h - m - hookLen); ctx.lineTo(m, h - m); ctx.lineTo(m + hookLen, h - m); ctx.stroke()\n // Bottom-right\n ctx.beginPath(); ctx.moveTo(w - m - hookLen, h - m); ctx.lineTo(w - m, h - m); ctx.lineTo(w - m, h - m - hookLen); ctx.stroke()\n break\n }\n case 'polaroid': {\n const topFrame = frameW\n const bottomFrame = frameW * 4\n ctx.fillRect(0, 0, w, topFrame)\n ctx.fillRect(0, 0, topFrame, h)\n ctx.fillRect(w - topFrame, 0, topFrame, h)\n ctx.fillRect(0, h - bottomFrame, w, bottomFrame)\n break\n }\n default:\n // edgeSeparate, edgeCross, edgeOverlap — simplified\n ctx.lineWidth = frameW * 0.5\n ctx.strokeRect(frameW, frameW, w - frameW * 2, h - frameW * 2)\n break\n }\n}\n\nfunction roundRect(\n ctx: CanvasRenderingContext2D,\n x: number, y: number,\n w: number, h: number,\n r: number,\n): void {\n ctx.beginPath()\n ctx.moveTo(x + r, y)\n ctx.lineTo(x + w - r, y)\n ctx.arcTo(x + w, y, x + w, y + r, r)\n ctx.lineTo(x + w, y + h - r)\n ctx.arcTo(x + w, y + h, x + w - r, y + h, r)\n ctx.lineTo(x + r, y + h)\n ctx.arcTo(x, y + h, x, y + h - r, r)\n ctx.lineTo(x, y + r)\n ctx.arcTo(x, y, x + r, y, r)\n ctx.closePath()\n}\n\nasync function drawSticker(\n ctx: CanvasRenderingContext2D,\n sticker: { src: string; x: number; y: number; width: number; height: number; rotation: number; flipX: boolean; flipY: boolean; opacity: number },\n canvasW: number,\n canvasH: number,\n): Promise<void> {\n const x = sticker.x * canvasW\n const y = sticker.y * canvasH\n const w = sticker.width * canvasW\n const h = sticker.height * canvasH\n\n ctx.save()\n ctx.globalAlpha = sticker.opacity\n ctx.translate(x + w / 2, y + h / 2)\n ctx.rotate(sticker.rotation)\n ctx.scale(sticker.flipX ? -1 : 1, sticker.flipY ? -1 : 1)\n\n // Check if emoji (non-URL)\n if (!sticker.src.startsWith('http') && !sticker.src.startsWith('data:') && !sticker.src.startsWith('blob:') && !sticker.src.startsWith('/') && !sticker.src.startsWith('.')) {\n // Draw emoji\n const fontSize = Math.min(w, h) * 0.8\n ctx.font = `${fontSize}px sans-serif`\n ctx.textAlign = 'center'\n ctx.textBaseline = 'middle'\n ctx.fillText(sticker.src, 0, 0)\n } else {\n // Load and draw image sticker\n try {\n const img = new Image()\n img.crossOrigin = 'anonymous'\n await new Promise<void>((resolve, reject) => {\n img.onload = () => resolve()\n img.onerror = () => reject()\n img.src = sticker.src\n })\n ctx.drawImage(img, -w / 2, -h / 2, w, h)\n } catch {\n // Skip failed stickers\n }\n }\n\n ctx.restore()\n}\n\n","export const en = {\n // Toolbar\n undo: 'Undo',\n redo: 'Redo',\n revert: 'Revert',\n zoomIn: 'Zoom In',\n zoomOut: 'Zoom Out',\n zoomToFit: 'Zoom to Fit',\n done: 'Done',\n cancel: 'Cancel',\n export: 'Export',\n close: 'Close',\n\n // Plugin tabs\n crop: 'Crop',\n filter: 'Filter',\n finetune: 'Finetune',\n sticker: 'Sticker',\n frame: 'Frame',\n resize: 'Resize',\n\n // Crop controls\n aspectRatio: 'Aspect Ratio',\n custom: 'Custom',\n square: 'Square',\n landscape: 'Landscape',\n portrait: 'Portrait',\n rotation: 'Rotation',\n rotateLeft: 'Rotate Left',\n rotateRight: 'Rotate Right',\n flipHorizontal: 'Flip Horizontal',\n flipVertical: 'Flip Vertical',\n\n // Finetune labels\n brightness: 'Brightness',\n contrast: 'Contrast',\n saturation: 'Saturation',\n exposure: 'Exposure',\n temperature: 'Temperature',\n gamma: 'Gamma',\n clarity: 'Clarity',\n vignette: 'Vignette',\n\n // Filter labels\n original: 'Original',\n intensity: 'Intensity',\n chrome: 'Chrome',\n fade: 'Fade',\n pastel: 'Pastel',\n cold: 'Cold',\n warm: 'Warm',\n mono: 'Mono',\n noir: 'Noir',\n wash: 'Wash',\n stark: 'Stark',\n sepia: 'Sepia',\n rust: 'Rust',\n blues: 'Blues',\n color: 'Color',\n\n // Frame style labels\n solidSharp: 'Solid Sharp',\n solidRound: 'Solid Round',\n lineSingle: 'Line Single',\n lineMultiple: 'Line Multiple',\n hook: 'Hook',\n polaroid: 'Polaroid',\n edgeSeparate: 'Edge Separate',\n edgeCross: 'Edge Cross',\n edgeOverlap: 'Edge Overlap',\n\n // Fill labels\n fill: 'Fill',\n transparent: 'Transparent',\n\n // Sticker labels\n emoji: 'Emoji',\n shapes: 'Shapes',\n\n // Frame labels\n none: 'None',\n frameSize: 'Frame Size',\n frameColor: 'Frame Color',\n\n // Resize labels\n width: 'Width',\n height: 'Height',\n lockAspectRatio: 'Lock Aspect Ratio',\n\n // Loading/error\n loading: 'Loading image...',\n loadError: 'Failed to load image',\n processing: 'Processing...',\n\n // Crop overlay\n cropApply: 'Apply',\n\n // Confirmation\n unsavedChanges: 'You have unsaved changes. Are you sure you want to close?',\n confirm: 'Confirm',\n}\n\nexport type LocaleStrings = typeof en\n","import type { LocaleStrings } from './en'\n\nexport const ar: LocaleStrings = {\n // Toolbar\n undo: 'تراجع',\n redo: 'إعادة',\n revert: 'استعادة',\n zoomIn: 'تكبير',\n zoomOut: 'تصغير',\n zoomToFit: 'ملاءمة العرض',\n done: 'تم',\n cancel: 'إلغاء',\n export: 'تصدير',\n close: 'إغلاق',\n\n // Plugin tabs\n crop: 'قص',\n filter: 'فلتر',\n finetune: 'ضبط دقيق',\n sticker: 'ملصق',\n frame: 'إطار',\n resize: 'تغيير الحجم',\n\n // Crop controls\n aspectRatio: 'نسبة العرض إلى الارتفاع',\n custom: 'مخصص',\n square: 'مربع',\n landscape: 'أفقي',\n portrait: 'عمودي',\n rotation: 'دوران',\n rotateLeft: 'تدوير لليسار',\n rotateRight: 'تدوير لليمين',\n flipHorizontal: 'قلب أفقي',\n flipVertical: 'قلب عمودي',\n\n // Finetune labels\n brightness: 'السطوع',\n contrast: 'التباين',\n saturation: 'التشبع',\n exposure: 'التعريض',\n temperature: 'درجة الحرارة',\n gamma: 'جاما',\n clarity: 'الوضوح',\n vignette: 'تظليل الأطراف',\n\n // Filter labels\n original: 'الأصلي',\n intensity: 'الكثافة',\n chrome: 'كروم',\n fade: 'باهت',\n pastel: 'باستيل',\n cold: 'بارد',\n warm: 'دافئ',\n mono: 'أحادي',\n noir: 'نوار',\n wash: 'مغسول',\n stark: 'حاد',\n sepia: 'بني داكن',\n rust: 'صدأ',\n blues: 'أزرق',\n color: 'ملون',\n\n // Frame style labels\n solidSharp: 'صلب حاد',\n solidRound: 'صلب مستدير',\n lineSingle: 'خط واحد',\n lineMultiple: 'خطوط متعددة',\n hook: 'خطاف',\n polaroid: 'بولارويد',\n edgeSeparate: 'حواف منفصلة',\n edgeCross: 'حواف متقاطعة',\n edgeOverlap: 'حواف متداخلة',\n\n // Fill labels\n fill: 'تعبئة',\n transparent: 'شفاف',\n\n // Sticker labels\n emoji: 'رموز تعبيرية',\n shapes: 'أشكال',\n\n // Frame labels\n none: 'بدون',\n frameSize: 'حجم الإطار',\n frameColor: 'لون الإطار',\n\n // Resize labels\n width: 'العرض',\n height: 'الارتفاع',\n lockAspectRatio: 'قفل نسبة العرض إلى الارتفاع',\n\n // Loading/error\n loading: 'جاري تحميل الصورة...',\n loadError: 'فشل تحميل الصورة',\n processing: 'جاري المعالجة...',\n\n // Crop overlay\n cropApply: 'تطبيق',\n\n // Confirmation\n unsavedChanges: 'لديك تغييرات غير محفوظة. هل أنت متأكد أنك تريد الإغلاق؟',\n confirm: 'تأكيد',\n}\n","<template>\n <button\n :class=\"[\n 'vie-icon-btn',\n { 'vie-icon-btn--accent': variant === 'accent' }\n ]\"\n :disabled=\"disabled\"\n :title=\"title\"\n @click=\"$emit('click', $event)\"\n >\n <span v-if=\"$slots.default\" class=\"vie-icon-btn__icon\">\n <slot />\n </span>\n <span v-if=\"label\" class=\"vie-icon-btn__label\">{{ label }}</span>\n </button>\n</template>\n\n<script setup lang=\"ts\">\ndefineProps<{\n title?: string\n label?: string\n disabled?: boolean\n variant?: 'default' | 'accent'\n}>()\n\ndefineEmits<{\n click: [event: MouseEvent]\n}>()\n</script>\n","<template>\n <div class=\"vie-toolbar\">\n <!-- Left: History controls -->\n <div class=\"vie-toolbar-group\">\n <IconButton\n :title=\"t('undo')\"\n :disabled=\"!engine.canUndo.value\"\n @click=\"engine.undo()\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M3 10h10a5 5 0 0 1 0 10H9\" />\n <path d=\"M3 10l4-4\" />\n <path d=\"M3 10l4 4\" />\n </svg>\n </IconButton>\n\n <IconButton\n :title=\"t('redo')\"\n :disabled=\"!engine.canRedo.value\"\n @click=\"engine.redo()\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M21 10H11a5 5 0 0 0 0 10h4\" />\n <path d=\"M21 10l-4-4\" />\n <path d=\"M21 10l-4 4\" />\n </svg>\n </IconButton>\n\n <IconButton\n :title=\"t('revert')\"\n :disabled=\"!engine.hasEdits.value\"\n @click=\"engine.revert()\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" />\n <path d=\"M3 3v5h5\" />\n </svg>\n </IconButton>\n </div>\n\n <!-- Center: Zoom controls -->\n <div class=\"vie-toolbar-group\">\n <IconButton\n :title=\"t('zoomOut')\"\n @click=\"engine.setZoom(engine.zoom.value - 0.1)\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"M8 11h6\" />\n </svg>\n </IconButton>\n\n <button\n class=\"vie-zoom-label\"\n :title=\"t('zoomToFit')\"\n @click=\"engine.setZoom(1)\"\n >\n {{ Math.round(engine.zoom.value * 100) }}%\n </button>\n\n <IconButton\n :title=\"t('zoomIn')\"\n @click=\"engine.setZoom(engine.zoom.value + 0.1)\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"M8 11h6\" />\n <path d=\"M11 8v6\" />\n </svg>\n </IconButton>\n </div>\n\n <!-- Right: Done button -->\n <div class=\"vie-toolbar-group\">\n <IconButton\n variant=\"accent\"\n :label=\"processing ? t('processing') : t('done')\"\n :disabled=\"processing\"\n @click=\"$emit('done')\"\n >\n <span v-if=\"processing\" class=\"vie-spinner\" style=\"width:16px;height:16px;border-width:2px;\" />\n <svg v-else viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n </IconButton>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject } from 'vue'\nimport { useEditor, LOCALE_KEY } from '../engine/useEditorEngine'\nimport IconButton from './ui/IconButton.vue'\nimport type { LocaleStrings } from '../locale/en'\n\ndefineProps<{\n processing?: boolean\n}>()\n\nconst t = inject(LOCALE_KEY, (key: string) => key)\nconst engine = useEditor()\n\ndefineEmits<{\n done: []\n}>()\n</script>\n","import type { ImageState, FinetuneState, FilterState, CropState, StickerInstance } from '../types'\nimport {\n applyColorMatrix,\n applyGamma,\n applyVignette,\n applyClarity,\n composeMatrices,\n brightnessMatrix,\n contrastMatrix,\n saturationMatrix,\n exposureMatrix,\n temperatureMatrix,\n IDENTITY_MATRIX,\n} from './ColorMatrix'\n\nexport interface ViewportTransform {\n zoom: number\n panX: number\n panY: number\n}\n\nexport class CanvasRenderer {\n private canvas: HTMLCanvasElement\n private ctx: CanvasRenderingContext2D\n private sourceImage: HTMLImageElement | null = null\n private animFrameId: number | null = null\n private needsRender = true\n\n /** Viewport transform */\n viewport: ViewportTransform = { zoom: 1, panX: 0, panY: 0 }\n\n /** Active plugin ID — used to determine whether to show cropped preview */\n activePluginId: string | null = null\n\n /**\n * The full image display rect in CSS pixels.\n * Used by the crop overlay to position handles on top of the image.\n */\n private fullImageRect = { x: 0, y: 0, width: 0, height: 0 }\n\n /** Cached offscreen canvas for color-adjusted preview */\n private previewCanvas: HTMLCanvasElement | null = null\n private previewCtx: CanvasRenderingContext2D | null = null\n private previewCacheKey = ''\n\n /** Max preview dimension for color processing performance */\n private readonly previewMaxSize = 1024\n\n /** Cache for image-based sticker elements */\n private stickerImageCache = new Map<string, HTMLImageElement>()\n\n constructor(canvas: HTMLCanvasElement) {\n this.canvas = canvas\n const ctx = canvas.getContext('2d')\n if (!ctx) throw new Error('Failed to get 2D rendering context')\n this.ctx = ctx\n }\n\n setSource(image: HTMLImageElement | null): void {\n this.sourceImage = image\n // Invalidate preview cache when source changes\n this.previewCacheKey = ''\n this.previewCanvas = null\n this.previewCtx = null\n this.needsRender = true\n }\n\n /** Resize canvas to match container (handles DPR) */\n resize(width: number, height: number): void {\n const dpr = window.devicePixelRatio || 1\n this.canvas.width = width * dpr\n this.canvas.height = height * dpr\n this.canvas.style.width = `${width}px`\n this.canvas.style.height = `${height}px`\n this.ctx.setTransform(dpr, 0, 0, dpr, 0, 0)\n this.needsRender = true\n }\n\n /** Request a render on the next animation frame */\n requestRender(): void {\n this.needsRender = true\n this.scheduleRender()\n }\n\n /** Callback called after each render with context for plugin drawing */\n afterRender: ((ctx: CanvasRenderingContext2D, state: ImageState, imageRect: { x: number; y: number; width: number; height: number }) => void) | null = null\n\n /** Cached getState function for render loop */\n private getState: (() => ImageState) | null = null\n\n /** Start the render loop */\n startRenderLoop(getState: () => ImageState): void {\n this.getState = getState\n this.scheduleRender()\n }\n\n /** Schedule a single render frame (only when needed) */\n private scheduleRender(): void {\n if (this.animFrameId !== null) return\n this.animFrameId = requestAnimationFrame(() => {\n this.animFrameId = null\n if (this.needsRender && this.getState) {\n this.render(this.getState())\n this.needsRender = false\n }\n })\n }\n\n /** Stop the render loop */\n stopRenderLoop(): void {\n if (this.animFrameId !== null) {\n cancelAnimationFrame(this.animFrameId)\n this.animFrameId = null\n }\n }\n\n /**\n * Build a cache key from the finetune + filter state.\n * Only regenerates the preview canvas when these values change.\n */\n private buildEffectsCacheKey(finetune: FinetuneState, filter: FilterState): string {\n return `${finetune.brightness},${finetune.contrast},${finetune.saturation},${finetune.exposure},${finetune.temperature},${finetune.gamma},${finetune.clarity},${finetune.vignette},${filter.id},${filter.intensity},${filter.matrix ? 'M' : 'N'}`\n }\n\n /**\n * Check if any color effects are active.\n */\n private hasColorEffects(finetune: FinetuneState, filter: FilterState): boolean {\n return (\n finetune.brightness !== 0 ||\n finetune.contrast !== 0 ||\n finetune.saturation !== 0 ||\n finetune.exposure !== 0 ||\n finetune.temperature !== 0 ||\n finetune.gamma !== 1 ||\n finetune.clarity !== 0 ||\n finetune.vignette !== 0 ||\n filter.matrix != null\n )\n }\n\n /**\n * Get a color-adjusted preview image.\n * Returns the source image if no effects are active,\n * otherwise returns a cached offscreen canvas with effects applied.\n */\n private getPreviewSource(state: ImageState): HTMLImageElement | HTMLCanvasElement {\n const img = this.sourceImage!\n const { finetune, filter } = state\n\n if (!this.hasColorEffects(finetune, filter)) {\n return img\n }\n\n const cacheKey = this.buildEffectsCacheKey(finetune, filter)\n if (cacheKey === this.previewCacheKey && this.previewCanvas) {\n return this.previewCanvas\n }\n\n // Calculate preview size (cap to previewMaxSize)\n const ratio = Math.min(\n this.previewMaxSize / img.naturalWidth,\n this.previewMaxSize / img.naturalHeight,\n 1,\n )\n const pw = Math.round(img.naturalWidth * ratio)\n const ph = Math.round(img.naturalHeight * ratio)\n\n // Create or resize preview canvas\n if (!this.previewCanvas || this.previewCanvas.width !== pw || this.previewCanvas.height !== ph) {\n this.previewCanvas = document.createElement('canvas')\n this.previewCanvas.width = pw\n this.previewCanvas.height = ph\n this.previewCtx = this.previewCanvas.getContext('2d')!\n }\n\n const pCtx = this.previewCtx!\n\n // Draw source at preview size\n pCtx.drawImage(img, 0, 0, pw, ph)\n\n // Build color matrix\n const matrices: number[][] = []\n if (finetune.brightness !== 0) matrices.push(brightnessMatrix(finetune.brightness))\n if (finetune.contrast !== 0) matrices.push(contrastMatrix(finetune.contrast))\n if (finetune.saturation !== 0) matrices.push(saturationMatrix(finetune.saturation))\n if (finetune.exposure !== 0) matrices.push(exposureMatrix(finetune.exposure))\n if (finetune.temperature !== 0) matrices.push(temperatureMatrix(finetune.temperature))\n\n // Add filter matrix\n if (filter.matrix) {\n if (filter.intensity < 1) {\n const m = filter.matrix\n const t = filter.intensity\n matrices.push(IDENTITY_MATRIX.map((v, i) => v * (1 - t) + m[i] * t))\n } else {\n matrices.push(filter.matrix)\n }\n }\n\n const imageData = pCtx.getImageData(0, 0, pw, ph)\n\n if (matrices.length > 0) {\n applyColorMatrix(imageData, composeMatrices(...matrices))\n }\n\n if (finetune.gamma !== 1) {\n applyGamma(imageData, finetune.gamma)\n }\n\n if (finetune.clarity !== 0) {\n applyClarity(imageData, finetune.clarity)\n }\n\n if (finetune.vignette !== 0) {\n applyVignette(imageData, finetune.vignette, pw, ph)\n }\n\n pCtx.putImageData(imageData, 0, 0)\n\n this.previewCacheKey = cacheKey\n return this.previewCanvas\n }\n\n /** Check if crop is not at full-image defaults */\n private isCropActive(crop: CropState): boolean {\n return crop.x > 0.001 || crop.y > 0.001 || crop.width < 0.999 || crop.height < 0.999\n }\n\n /**\n * Main render method.\n * Draws the image with color adjustments fitted to the canvas.\n * On crop tab: renders full image (CropOverlay handles crop visualization).\n * On other tabs: renders only the cropped region fitted to canvas.\n */\n render(state: ImageState): void {\n const ctx = this.ctx\n const canvas = this.canvas\n const dpr = window.devicePixelRatio || 1\n const cw = canvas.width / dpr\n const ch = canvas.height / dpr\n\n // Clear with editor background\n ctx.clearRect(0, 0, cw, ch)\n\n if (!this.sourceImage) return\n\n const img = this.sourceImage\n const crop = state.crop\n const padding = 40\n const availW = cw - padding * 2\n const availH = ch - padding * 2\n\n // Decide whether to show cropped preview (non-crop tabs with active crop)\n const showCropped = this.activePluginId !== 'crop' && this.isCropActive(crop)\n\n // Get color-adjusted preview source (cached)\n const previewSrc = this.getPreviewSource(state)\n\n if (showCropped) {\n this.renderCroppedView(ctx, state, previewSrc, cw, ch, availW, availH)\n } else {\n this.renderFullView(ctx, state, previewSrc, img, cw, ch, availW, availH)\n }\n\n // Call plugin render hooks (after restore so plugins draw in screen space)\n if (this.afterRender) {\n this.afterRender(ctx, state, this.fullImageRect)\n }\n }\n\n /**\n * Render full image view (used on the crop tab).\n */\n private renderFullView(\n ctx: CanvasRenderingContext2D,\n state: ImageState,\n previewSrc: HTMLImageElement | HTMLCanvasElement,\n img: HTMLImageElement,\n cw: number, ch: number,\n availW: number, availH: number,\n ): void {\n const crop = state.crop\n\n const scale = Math.min(availW / img.naturalWidth, availH / img.naturalHeight)\n const displayW = img.naturalWidth * scale\n const displayH = img.naturalHeight * scale\n const imgX = (cw - displayW) / 2\n const imgY = (ch - displayH) / 2\n\n this.fullImageRect = { x: imgX, y: imgY, width: displayW, height: displayH }\n\n ctx.save()\n\n // Apply viewport zoom and pan\n const vp = this.viewport\n ctx.translate(cw / 2 + vp.panX, ch / 2 + vp.panY)\n ctx.scale(vp.zoom, vp.zoom)\n ctx.translate(-cw / 2, -ch / 2)\n\n // Apply rotation and flip around image center\n const cx = imgX + displayW / 2\n const cy = imgY + displayH / 2\n ctx.translate(cx, cy)\n ctx.rotate(crop.rotation)\n ctx.scale(crop.flipX ? -1 : 1, crop.flipY ? -1 : 1)\n ctx.translate(-cx, -cy)\n\n // Draw background color behind image (if not fully transparent)\n const bg = state.backgroundColor\n if (bg[3] > 0) {\n ctx.fillStyle = `rgba(${Math.round(bg[0] * 255)}, ${Math.round(bg[1] * 255)}, ${Math.round(bg[2] * 255)}, ${bg[3]})`\n ctx.fillRect(imgX, imgY, displayW, displayH)\n }\n\n // Draw the full color-adjusted image\n ctx.drawImage(previewSrc, imgX, imgY, displayW, displayH)\n\n // Draw frame preview (if active)\n if (state.frame.style) {\n this.renderFramePreview(ctx, state, imgX, imgY, displayW, displayH)\n }\n\n // Draw stickers\n if (state.stickers.length > 0) {\n this.renderStickers(ctx, state.stickers, imgX, imgY, displayW, displayH)\n }\n\n ctx.restore()\n }\n\n /**\n * Render cropped view (used on non-crop tabs).\n * Shows only the crop region fitted to the canvas.\n */\n private renderCroppedView(\n ctx: CanvasRenderingContext2D,\n state: ImageState,\n previewSrc: HTMLImageElement | HTMLCanvasElement,\n cw: number, ch: number,\n availW: number, availH: number,\n ): void {\n const img = this.sourceImage!\n const crop = state.crop\n\n // Calculate the crop region's natural pixel dimensions\n const cropNatW = img.naturalWidth * crop.width\n const cropNatH = img.naturalHeight * crop.height\n\n // Fit the CROP REGION to canvas (not the full image)\n const scale = Math.min(availW / cropNatW, availH / cropNatH)\n const displayW = cropNatW * scale\n const displayH = cropNatH * scale\n const imgX = (cw - displayW) / 2\n const imgY = (ch - displayH) / 2\n\n this.fullImageRect = { x: imgX, y: imgY, width: displayW, height: displayH }\n\n // Source rect from preview source (handles both Image and Canvas)\n const srcTotalW = previewSrc instanceof HTMLImageElement ? previewSrc.naturalWidth : previewSrc.width\n const srcTotalH = previewSrc instanceof HTMLImageElement ? previewSrc.naturalHeight : previewSrc.height\n\n ctx.save()\n\n // Apply viewport zoom and pan\n const vp = this.viewport\n ctx.translate(cw / 2 + vp.panX, ch / 2 + vp.panY)\n ctx.scale(vp.zoom, vp.zoom)\n ctx.translate(-cw / 2, -ch / 2)\n\n // Apply rotation and flip around the crop region center\n const cx = imgX + displayW / 2\n const cy = imgY + displayH / 2\n ctx.translate(cx, cy)\n ctx.rotate(crop.rotation)\n ctx.scale(crop.flipX ? -1 : 1, crop.flipY ? -1 : 1)\n ctx.translate(-cx, -cy)\n\n // Draw background color behind crop region\n const bg = state.backgroundColor\n if (bg[3] > 0) {\n ctx.fillStyle = `rgba(${Math.round(bg[0] * 255)}, ${Math.round(bg[1] * 255)}, ${Math.round(bg[2] * 255)}, ${bg[3]})`\n ctx.fillRect(imgX, imgY, displayW, displayH)\n }\n\n // Draw ONLY the crop region from the preview source\n ctx.drawImage(\n previewSrc,\n crop.x * srcTotalW, crop.y * srcTotalH, // source x, y\n crop.width * srcTotalW, crop.height * srcTotalH, // source w, h\n imgX, imgY, displayW, displayH, // dest x, y, w, h\n )\n\n // Draw frame preview around the crop region\n if (state.frame.style) {\n this.renderFramePreview(ctx, state, imgX, imgY, displayW, displayH)\n }\n\n // Draw stickers with positions adjusted relative to crop\n if (state.stickers.length > 0) {\n this.renderStickersInCrop(ctx, state.stickers, crop, imgX, imgY, displayW, displayH)\n }\n\n ctx.restore()\n }\n\n /**\n * Render frame preview overlay on the canvas.\n */\n private renderFramePreview(\n ctx: CanvasRenderingContext2D,\n state: ImageState,\n imgX: number,\n imgY: number,\n w: number,\n h: number,\n ): void {\n const frame = state.frame\n const frameW = Math.round(Math.max(w, h) * frame.size)\n const color = frame.color\n const colorStr = `rgba(${Math.round(color[0] * 255)}, ${Math.round(color[1] * 255)}, ${Math.round(color[2] * 255)}, ${color[3]})`\n const r = Math.round(frame.radius)\n\n ctx.strokeStyle = colorStr\n ctx.fillStyle = colorStr\n\n switch (frame.style) {\n case 'solidSharp':\n ctx.lineWidth = frameW\n ctx.strokeRect(imgX + frameW / 2, imgY + frameW / 2, w - frameW, h - frameW)\n break\n case 'solidRound':\n ctx.lineWidth = frameW\n ctx.beginPath()\n ctx.roundRect(imgX + frameW / 2, imgY + frameW / 2, w - frameW, h - frameW, r + frameW / 2)\n ctx.stroke()\n break\n case 'lineSingle': {\n const inset = frameW * 2\n ctx.lineWidth = 1\n ctx.strokeRect(imgX + inset, imgY + inset, w - inset * 2, h - inset * 2)\n break\n }\n case 'lineMultiple':\n ctx.lineWidth = 1\n for (let i = 1; i <= 3; i++) {\n const inset = frameW * i\n ctx.strokeRect(imgX + inset, imgY + inset, w - inset * 2, h - inset * 2)\n }\n break\n case 'hook': {\n const hookLen = Math.min(w, h) * 0.1\n ctx.lineWidth = frameW * 0.5\n const m = frameW\n ctx.beginPath(); ctx.moveTo(imgX + m, imgY + m + hookLen); ctx.lineTo(imgX + m, imgY + m); ctx.lineTo(imgX + m + hookLen, imgY + m); ctx.stroke()\n ctx.beginPath(); ctx.moveTo(imgX + w - m - hookLen, imgY + m); ctx.lineTo(imgX + w - m, imgY + m); ctx.lineTo(imgX + w - m, imgY + m + hookLen); ctx.stroke()\n ctx.beginPath(); ctx.moveTo(imgX + m, imgY + h - m - hookLen); ctx.lineTo(imgX + m, imgY + h - m); ctx.lineTo(imgX + m + hookLen, imgY + h - m); ctx.stroke()\n ctx.beginPath(); ctx.moveTo(imgX + w - m - hookLen, imgY + h - m); ctx.lineTo(imgX + w - m, imgY + h - m); ctx.lineTo(imgX + w - m, imgY + h - m - hookLen); ctx.stroke()\n break\n }\n case 'polaroid': {\n const topFrame = frameW\n const bottomFrame = frameW * 4\n ctx.fillRect(imgX, imgY, w, topFrame)\n ctx.fillRect(imgX, imgY, topFrame, h)\n ctx.fillRect(imgX + w - topFrame, imgY, topFrame, h)\n ctx.fillRect(imgX, imgY + h - bottomFrame, w, bottomFrame)\n break\n }\n default:\n ctx.lineWidth = frameW * 0.5\n ctx.strokeRect(imgX + frameW, imgY + frameW, w - frameW * 2, h - frameW * 2)\n break\n }\n }\n\n /**\n * Get the full image display rect in CSS pixels.\n * The CropOverlay uses this to position crop handles correctly.\n */\n getImageRect(): { x: number; y: number; width: number; height: number } {\n return { ...this.fullImageRect }\n }\n\n /**\n * Render stickers on the canvas viewport.\n */\n private renderStickers(\n ctx: CanvasRenderingContext2D,\n stickers: StickerInstance[],\n imgX: number,\n imgY: number,\n displayW: number,\n displayH: number,\n ): void {\n for (const sticker of stickers) {\n const x = imgX + sticker.x * displayW\n const y = imgY + sticker.y * displayH\n const w = sticker.width * displayW\n const h = sticker.height * displayH\n\n ctx.save()\n ctx.globalAlpha = sticker.opacity\n ctx.translate(x + w / 2, y + h / 2)\n ctx.rotate(sticker.rotation)\n ctx.scale(sticker.flipX ? -1 : 1, sticker.flipY ? -1 : 1)\n\n const isEmoji =\n !sticker.src.startsWith('http') &&\n !sticker.src.startsWith('data:') &&\n !sticker.src.startsWith('blob:') &&\n !sticker.src.startsWith('/') &&\n !sticker.src.startsWith('.')\n\n if (isEmoji) {\n const fontSize = Math.min(w, h) * 0.8\n ctx.font = `${fontSize}px sans-serif`\n ctx.textAlign = 'center'\n ctx.textBaseline = 'middle'\n ctx.fillText(sticker.src, 0, 0)\n } else {\n let img = this.stickerImageCache.get(sticker.src)\n if (!img) {\n // Cap cache size (LRU eviction: remove oldest entry)\n if (this.stickerImageCache.size >= 50) {\n const firstKey = this.stickerImageCache.keys().next().value!\n this.stickerImageCache.delete(firstKey)\n }\n img = new Image()\n img.crossOrigin = 'anonymous'\n img.src = sticker.src\n this.stickerImageCache.set(sticker.src, img)\n img.onload = () => {\n this.requestRender()\n }\n img.onerror = () => {\n // Remove failed entries so they can be retried\n this.stickerImageCache.delete(sticker.src)\n }\n }\n if (img.complete && img.naturalWidth > 0) {\n ctx.drawImage(img, -w / 2, -h / 2, w, h)\n }\n }\n\n ctx.restore()\n }\n }\n\n /**\n * Render stickers with positions remapped relative to the crop region.\n */\n private renderStickersInCrop(\n ctx: CanvasRenderingContext2D,\n stickers: StickerInstance[],\n crop: CropState,\n imgX: number,\n imgY: number,\n displayW: number,\n displayH: number,\n ): void {\n // Safety: skip if crop dimensions are zero/negative (avoids division by zero)\n if (crop.width <= 0 || crop.height <= 0) return\n\n for (const sticker of stickers) {\n // Remap sticker positions from full-image-normalized to crop-relative\n const adjX = (sticker.x - crop.x) / crop.width\n const adjY = (sticker.y - crop.y) / crop.height\n const adjW = sticker.width / crop.width\n const adjH = sticker.height / crop.height\n\n // Skip stickers fully outside the crop bounds\n if (adjX + adjW < 0 || adjX > 1 || adjY + adjH < 0 || adjY > 1) continue\n\n const x = imgX + adjX * displayW\n const y = imgY + adjY * displayH\n const w = adjW * displayW\n const h = adjH * displayH\n\n ctx.save()\n ctx.globalAlpha = sticker.opacity\n ctx.translate(x + w / 2, y + h / 2)\n ctx.rotate(sticker.rotation)\n ctx.scale(sticker.flipX ? -1 : 1, sticker.flipY ? -1 : 1)\n\n const isEmoji =\n !sticker.src.startsWith('http') &&\n !sticker.src.startsWith('data:') &&\n !sticker.src.startsWith('blob:') &&\n !sticker.src.startsWith('/') &&\n !sticker.src.startsWith('.')\n\n if (isEmoji) {\n const fontSize = Math.min(w, h) * 0.8\n ctx.font = `${fontSize}px sans-serif`\n ctx.textAlign = 'center'\n ctx.textBaseline = 'middle'\n ctx.fillText(sticker.src, 0, 0)\n } else {\n let img = this.stickerImageCache.get(sticker.src)\n if (!img) {\n if (this.stickerImageCache.size >= 50) {\n const firstKey = this.stickerImageCache.keys().next().value!\n this.stickerImageCache.delete(firstKey)\n }\n img = new Image()\n img.crossOrigin = 'anonymous'\n img.src = sticker.src\n this.stickerImageCache.set(sticker.src, img)\n img.onload = () => { this.requestRender() }\n img.onerror = () => { this.stickerImageCache.delete(sticker.src) }\n }\n if (img.complete && img.naturalWidth > 0) {\n ctx.drawImage(img, -w / 2, -h / 2, w, h)\n }\n }\n\n ctx.restore()\n }\n }\n\n destroy(): void {\n this.stopRenderLoop()\n this.sourceImage = null\n this.previewCanvas = null\n this.previewCtx = null\n this.stickerImageCache.clear()\n }\n}\n","<template>\n <div class=\"vie-canvas-wrapper\" ref=\"wrapperRef\" @wheel.prevent=\"onWheel\"\n @mousedown=\"onPanStart\"\n @touchstart.passive=\"onTouchStart\" @touchmove.prevent=\"onTouchMove\" @touchend.passive=\"onTouchEnd\"\n :class=\"{ 'vie-canvas-wrapper--grab': canPan, 'vie-canvas-wrapper--grabbing': isPanning }\">\n <canvas ref=\"canvasRef\" class=\"vie-canvas\" />\n\n <!-- Plugin overlay layer -->\n <div\n v-if=\"engine.activePlugin.value?.overlay\"\n class=\"vie-canvas-overlay vie-canvas-overlay--interactive\"\n >\n <component\n :is=\"engine.activePlugin.value.overlay\"\n :canvas-rect=\"canvasRect\"\n :wrapper-size=\"wrapperSize\"\n />\n </div>\n\n <!-- Loading state -->\n <div v-if=\"engine.loading.value\" class=\"vie-canvas-loading\">\n <span class=\"vie-spinner\" />\n <span>{{ t('loading') }}</span>\n </div>\n\n <!-- Error state -->\n <div v-if=\"engine.error.value\" class=\"vie-canvas-loading\" style=\"color: var(--vie-danger);\">\n {{ t('loadError') }}\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted, onBeforeUnmount, watch, inject } from 'vue'\nimport { CanvasRenderer } from '../core/CanvasRenderer'\nimport { useEditor, LOCALE_KEY } from '../engine/useEditorEngine'\nimport type { LocaleStrings } from '../locale/en'\n\nconst t = inject(LOCALE_KEY, (key: string) => key)\nconst engine = useEditor()\n\nconst wrapperRef = ref<HTMLElement | null>(null)\nconst canvasRef = ref<HTMLCanvasElement | null>(null)\nconst canvasRect = ref({ x: 0, y: 0, width: 0, height: 0 })\nconst wrapperSize = ref({ width: 0, height: 0 })\n\nlet renderer: CanvasRenderer | null = null\nlet resizeObserver: ResizeObserver | null = null\nlet dprMediaQuery: MediaQueryList | null = null\nlet dprChangeHandler: (() => void) | null = null\n\nfunction updateCanvasRect() {\n if (renderer) {\n canvasRect.value = renderer.getImageRect()\n }\n}\n\nonMounted(() => {\n if (!canvasRef.value || !wrapperRef.value) return\n\n renderer = new CanvasRenderer(canvasRef.value)\n\n // Set up resize observer\n resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect\n if (width > 0 && height > 0) {\n wrapperSize.value = { width, height }\n renderer?.resize(width, height)\n renderer?.requestRender()\n // Update rect after resize\n requestAnimationFrame(updateCanvasRect)\n }\n }\n })\n resizeObserver.observe(wrapperRef.value)\n\n // Watch for DPR changes (e.g., moving window between displays)\n function setupDprWatch() {\n dprMediaQuery?.removeEventListener('change', dprChangeHandler!)\n const dpr = window.devicePixelRatio || 1\n dprMediaQuery = window.matchMedia(`(resolution: ${dpr}dppx)`)\n dprChangeHandler = () => {\n // DPR changed — re-resize canvas and re-render\n const { width, height } = wrapperSize.value\n if (width > 0 && height > 0) {\n renderer?.resize(width, height)\n renderer?.requestRender()\n }\n // Re-setup to watch for next DPR change\n setupDprWatch()\n }\n dprMediaQuery.addEventListener('change', dprChangeHandler)\n }\n setupDprWatch()\n\n // Initial size\n const rect = wrapperRef.value.getBoundingClientRect()\n wrapperSize.value = { width: rect.width, height: rect.height }\n renderer.resize(rect.width, rect.height)\n\n // Start render loop\n renderer.startRenderLoop(() => engine.state)\n\n // Wire up plugin render hooks\n renderer.afterRender = (ctx, state, imageRect) => {\n const plugin = engine.activePlugin.value\n if (plugin?.onRender) {\n plugin.onRender({ ctx, state, imageRect })\n }\n }\n\n // Wire up render requests — also update canvasRect after render\n engine.onRender.value = () => {\n renderer?.requestRender()\n requestAnimationFrame(updateCanvasRect)\n }\n\n // Sync active plugin ID so renderer knows when to show cropped preview\n renderer.activePluginId = engine.activePluginId.value\n\n // Initialize smooth zoom/pan state\n zoomTarget = engine.zoom.value\n zoomCurrent = engine.zoom.value\n panTargetX = 0\n panTargetY = 0\n panCurrentX = 0\n panCurrentY = 0\n\n // Load source image\n if (engine.options.src) {\n engine.load(engine.options.src)\n }\n})\n\n// Update renderer when source image changes\nwatch(() => engine.sourceImage.value, (img) => {\n if (renderer && img) {\n renderer.setSource(img)\n renderer.requestRender()\n // Wait for render then update rect\n requestAnimationFrame(() => requestAnimationFrame(updateCanvasRect))\n }\n})\n\n// Update zoom — sync animation state for external changes (toolbar buttons)\nwatch(() => engine.zoom.value, (zoom) => {\n if (renderer) {\n renderer.viewport.zoom = zoom\n renderer.requestRender()\n requestAnimationFrame(updateCanvasRect)\n }\n if (!zoomAnimating) {\n zoomTarget = zoom\n zoomCurrent = zoom\n // Reset pan when zoom returns to fit (1.0)\n if (zoom <= 1.005) {\n panTargetX = 0\n panTargetY = 0\n panCurrentX = 0\n panCurrentY = 0\n syncPan()\n }\n }\n})\n\n// Sync active plugin ID to renderer for cropped preview\nwatch(() => engine.activePluginId.value, (id) => {\n if (renderer) {\n renderer.activePluginId = id\n renderer.requestRender()\n requestAnimationFrame(updateCanvasRect)\n }\n})\n\n// Sync crop drag pan to renderer viewport (additive with zoom pan)\nwatch(() => engine.cropDragPan.value, (pan) => {\n if (renderer) {\n renderer.viewport.panX = panCurrentX + pan.x\n renderer.viewport.panY = panCurrentY + pan.y\n renderer.requestRender()\n }\n}, { deep: true })\n\n// Smooth animated zoom + pan state\nlet zoomTarget = 1\nlet zoomCurrent = 1\nlet zoomAnimating = false\nlet panTargetX = 0\nlet panTargetY = 0\nlet panCurrentX = 0\nlet panCurrentY = 0\n\nfunction syncPan() {\n if (renderer) {\n renderer.viewport.panX = panCurrentX\n renderer.viewport.panY = panCurrentY\n renderer.requestRender()\n requestAnimationFrame(updateCanvasRect)\n }\n}\n\nfunction onWheel(e: WheelEvent) {\n const factor = e.deltaY > 0 ? 0.95 : 1.05\n const newZoomTarget = Math.max(0.1, Math.min(10, zoomTarget * factor))\n\n // Zoom-to-cursor: adjust pan so the point under cursor stays fixed\n const rect = wrapperRef.value!.getBoundingClientRect()\n const cx = e.clientX - rect.left - rect.width / 2\n const cy = e.clientY - rect.top - rect.height / 2\n const ratio = newZoomTarget / zoomTarget\n panTargetX = cx - (cx - panTargetX) * ratio\n panTargetY = cy - (cy - panTargetY) * ratio\n\n zoomTarget = newZoomTarget\n\n // Reset pan when zoom returns to fit (1.0)\n if (zoomTarget <= 1.005) {\n panTargetX = 0\n panTargetY = 0\n }\n\n if (!zoomAnimating) {\n zoomAnimating = true\n animateZoom()\n }\n}\n\nfunction animateZoom() {\n const zDiff = zoomTarget - zoomCurrent\n const pxDiff = panTargetX - panCurrentX\n const pyDiff = panTargetY - panCurrentY\n\n const settled =\n Math.abs(zDiff) < 0.001 &&\n Math.abs(pxDiff) < 0.5 &&\n Math.abs(pyDiff) < 0.5\n\n if (settled) {\n zoomCurrent = zoomTarget\n panCurrentX = panTargetX\n panCurrentY = panTargetY\n engine.setZoom(zoomCurrent)\n syncPan()\n zoomAnimating = false\n return\n }\n\n const ease = 0.15\n zoomCurrent += zDiff * ease\n panCurrentX += pxDiff * ease\n panCurrentY += pyDiff * ease\n engine.setZoom(zoomCurrent)\n syncPan()\n requestAnimationFrame(animateZoom)\n}\n\n// Pan when zoomed (drag to pan)\nconst isPanning = ref(false)\nconst canPan = computed(() => engine.zoom.value > 1.005 && engine.activePluginId.value !== 'crop')\n\nfunction onPanStart(e: MouseEvent) {\n if (e.button !== 0 || !canPan.value) return\n // Only pan from wrapper or canvas, not from plugin overlays\n if (e.target !== wrapperRef.value && e.target !== canvasRef.value) return\n\n e.preventDefault()\n isPanning.value = true\n const startX = e.clientX\n const startY = e.clientY\n const startPanX = panTargetX\n const startPanY = panTargetY\n\n const onPanMove = (ev: MouseEvent) => {\n panTargetX = startPanX + (ev.clientX - startX)\n panTargetY = startPanY + (ev.clientY - startY)\n panCurrentX = panTargetX\n panCurrentY = panTargetY\n syncPan()\n }\n\n const onPanEnd = () => {\n isPanning.value = false\n window.removeEventListener('mousemove', onPanMove)\n window.removeEventListener('mouseup', onPanEnd)\n }\n\n window.addEventListener('mousemove', onPanMove)\n window.addEventListener('mouseup', onPanEnd)\n}\n\n// Pinch-to-zoom touch gestures\nlet lastPinchDist = 0\nlet lastPinchZoom = 1\n\nfunction getTouchDistance(t1: Touch, t2: Touch): number {\n const dx = t1.clientX - t2.clientX\n const dy = t1.clientY - t2.clientY\n return Math.sqrt(dx * dx + dy * dy)\n}\n\nfunction onTouchStart(e: TouchEvent) {\n if (e.touches.length === 2) {\n lastPinchDist = getTouchDistance(e.touches[0], e.touches[1])\n lastPinchZoom = engine.zoom.value\n }\n}\n\nfunction onTouchMove(e: TouchEvent) {\n if (e.touches.length === 2) {\n const dist = getTouchDistance(e.touches[0], e.touches[1])\n if (lastPinchDist > 0) {\n const scale = dist / lastPinchDist\n engine.setZoom(lastPinchZoom * scale)\n }\n }\n}\n\nfunction onTouchEnd(_e: TouchEvent) {\n lastPinchDist = 0\n}\n\nonBeforeUnmount(() => {\n resizeObserver?.disconnect()\n dprMediaQuery?.removeEventListener('change', dprChangeHandler!)\n dprMediaQuery = null\n renderer?.destroy()\n renderer = null\n engine.onRender.value = null\n})\n\ndefineExpose({\n getRenderer: () => renderer,\n})\n</script>\n","<template>\n <div class=\"vie-tab-bar\" role=\"tablist\">\n <button\n v-for=\"plugin in engine.plugins.value\"\n :key=\"plugin.id\"\n role=\"tab\"\n :aria-selected=\"plugin.id === engine.activePluginId.value\"\n :class=\"[\n 'vie-tab',\n { 'vie-tab--active': plugin.id === engine.activePluginId.value }\n ]\"\n @click=\"engine.setActivePlugin(plugin.id)\"\n >\n <span class=\"vie-tab__icon\" v-if=\"typeof plugin.icon === 'string'\" ref=\"iconRefs\" />\n <component v-else :is=\"plugin.icon\" class=\"vie-tab__icon\" />\n <span class=\"vie-tab__label\">{{ t(plugin.labelKey as keyof LocaleStrings) }}</span>\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, onMounted, onUpdated, ref } from 'vue'\nimport { useEditor, LOCALE_KEY } from '../engine/useEditorEngine'\nimport type { LocaleStrings } from '../locale/en'\n\nconst t = inject(LOCALE_KEY, (key: string) => key)\nconst engine = useEditor()\n\nconst iconRefs = ref<HTMLElement[]>([])\n\n/** Allowed SVG elements and attributes for icon sanitization */\nconst ALLOWED_TAGS = new Set([\n 'svg', 'path', 'circle', 'rect', 'line', 'polyline', 'polygon',\n 'ellipse', 'g', 'defs', 'clippath', 'mask', 'use', 'text', 'tspan',\n])\nconst ALLOWED_ATTRS = new Set([\n 'viewbox', 'width', 'height', 'fill', 'stroke', 'stroke-width',\n 'stroke-linecap', 'stroke-linejoin', 'd', 'cx', 'cy', 'r', 'rx', 'ry',\n 'x', 'y', 'x1', 'y1', 'x2', 'y2', 'points', 'transform', 'opacity',\n 'class', 'id', 'clip-path', 'clip-rule', 'fill-rule', 'fill-opacity',\n 'stroke-opacity', 'stroke-dasharray', 'stroke-dashoffset',\n])\n\nfunction sanitizeSvgString(html: string): string {\n const parser = new DOMParser()\n const doc = parser.parseFromString(html, 'image/svg+xml')\n const svg = doc.documentElement\n\n function clean(el: Element): void {\n // Remove disallowed elements\n const children = Array.from(el.children)\n for (const child of children) {\n if (!ALLOWED_TAGS.has(child.tagName.toLowerCase())) {\n child.remove()\n } else {\n // Remove disallowed attributes (especially event handlers)\n for (const attr of Array.from(child.attributes)) {\n if (!ALLOWED_ATTRS.has(attr.name.toLowerCase())) {\n child.removeAttribute(attr.name)\n }\n }\n clean(child)\n }\n }\n }\n\n clean(svg)\n return svg.outerHTML\n}\n\nfunction renderIcons() {\n const plugins = engine.plugins.value.filter((p) => typeof p.icon === 'string')\n iconRefs.value.forEach((el, idx) => {\n if (el && plugins[idx]) {\n el.innerHTML = sanitizeSvgString(plugins[idx].icon as string)\n }\n })\n}\n\nonMounted(renderIcons)\nonUpdated(renderIcons)\n</script>\n","<template>\n <div class=\"vie-control-panel\" v-if=\"engine.activePlugin.value?.controls\">\n <Transition name=\"vie-panel\" mode=\"out-in\">\n <component :is=\"engine.activePlugin.value.controls\" :key=\"engine.activePluginId.value\" />\n </Transition>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useEditor } from '../engine/useEditorEngine'\n\nconst engine = useEditor()\n</script>\n\n<style>\n.vie-panel-enter-active,\n.vie-panel-leave-active {\n transition: opacity 120ms ease;\n}\n.vie-panel-enter-from,\n.vie-panel-leave-to {\n opacity: 0;\n}\n</style>\n","<template>\n <div class=\"vie-slider\" :class=\"{ 'vie-slider--dragging': dragging }\">\n <span v-if=\"label\" class=\"vie-slider__label\" :id=\"labelId\">{{ label }}</span>\n <div\n ref=\"trackRef\"\n class=\"vie-slider__track-wrapper\"\n role=\"slider\"\n tabindex=\"0\"\n :aria-valuemin=\"min\"\n :aria-valuemax=\"max\"\n :aria-valuenow=\"modelValue\"\n :aria-labelledby=\"label ? labelId : undefined\"\n @pointerdown=\"onPointerDown\"\n @dblclick=\"onDoubleClick\"\n @keydown=\"onKeydown\"\n >\n <div class=\"vie-slider__track\">\n <!-- Base mark (center/default indicator) -->\n <div\n class=\"vie-slider__base-mark\"\n :style=\"{ left: normalizedBase * 100 + '%' }\"\n />\n <!-- Tick marks -->\n <div\n v-for=\"(tick, i) in normalizedTicks\"\n :key=\"i\"\n class=\"vie-slider__tick\"\n :style=\"{ left: tick * 100 + '%' }\"\n />\n <div\n class=\"vie-slider__fill\"\n :style=\"fillStyle\"\n />\n <div\n class=\"vie-slider__thumb\"\n :style=\"{ left: thumbPosition + '%' }\"\n >\n <span class=\"vie-slider__thumb-dot\" />\n <span v-if=\"dragging\" class=\"vie-slider__tooltip\">{{ displayValue }}</span>\n </div>\n </div>\n </div>\n <span class=\"vie-slider__value\">{{ displayValue }}</span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed } from 'vue'\n\nconst labelId = `vie-slider-${Math.random().toString(36).slice(2, 9)}`\n\nconst props = withDefaults(defineProps<{\n modelValue: number\n min?: number\n max?: number\n step?: number\n base?: number\n label?: string\n /** Format: 'percent' shows as %, 'number' shows raw value */\n format?: 'percent' | 'number'\n /** Tick mark positions (in value space, not normalized) */\n ticks?: number[]\n}>(), {\n min: 0,\n max: 1,\n step: 0.01,\n base: 0,\n format: 'percent',\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: number]\n}>()\n\nconst trackRef = ref<HTMLElement | null>(null)\nconst dragging = ref(false)\n\nconst normalizedValue = computed(() => {\n return (props.modelValue - props.min) / (props.max - props.min)\n})\n\nconst normalizedBase = computed(() => {\n return (props.base - props.min) / (props.max - props.min)\n})\n\nconst normalizedTicks = computed(() => {\n if (!props.ticks) return []\n return props.ticks.map((t) => (t - props.min) / (props.max - props.min))\n})\n\nconst thumbPosition = computed(() => normalizedValue.value * 100)\n\nconst fillStyle = computed(() => {\n const start = Math.min(normalizedBase.value, normalizedValue.value)\n const end = Math.max(normalizedBase.value, normalizedValue.value)\n return {\n left: start * 100 + '%',\n width: (end - start) * 100 + '%',\n }\n})\n\nconst displayValue = computed(() => {\n if (props.format === 'percent') {\n return Math.round(props.modelValue * 100) + '%'\n }\n return props.modelValue.toFixed(2)\n})\n\nfunction valueFromEvent(e: PointerEvent): number {\n if (!trackRef.value) return props.modelValue\n const rect = trackRef.value.getBoundingClientRect()\n // Support RTL\n const isRtl = getComputedStyle(trackRef.value).direction === 'rtl'\n let ratio: number\n if (isRtl) {\n ratio = (rect.right - e.clientX) / rect.width\n } else {\n ratio = (e.clientX - rect.left) / rect.width\n }\n ratio = Math.max(0, Math.min(1, ratio))\n let value = props.min + ratio * (props.max - props.min)\n // Snap to step\n value = Math.round(value / props.step) * props.step\n return Math.max(props.min, Math.min(props.max, value))\n}\n\nfunction onPointerDown(e: PointerEvent) {\n if (e.button !== 0) return\n dragging.value = true\n emit('update:modelValue', valueFromEvent(e))\n\n const onMove = (ev: PointerEvent) => {\n emit('update:modelValue', valueFromEvent(ev))\n }\n\n const onUp = () => {\n dragging.value = false\n window.removeEventListener('pointermove', onMove)\n window.removeEventListener('pointerup', onUp)\n }\n\n window.addEventListener('pointermove', onMove)\n window.addEventListener('pointerup', onUp)\n}\n\nfunction onDoubleClick() {\n emit('update:modelValue', props.base)\n}\n\nfunction onKeydown(e: KeyboardEvent) {\n let newVal = props.modelValue\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n newVal = Math.min(props.max, props.modelValue + props.step)\n break\n case 'ArrowLeft':\n case 'ArrowDown':\n newVal = Math.max(props.min, props.modelValue - props.step)\n break\n case 'Home':\n newVal = props.min\n break\n case 'End':\n newVal = props.max\n break\n default:\n return\n }\n e.preventDefault()\n emit('update:modelValue', Math.round(newVal / props.step) * props.step)\n}\n</script>\n","<template>\n <div class=\"vie-dropdown\" ref=\"dropdownRef\">\n <button\n class=\"vie-dropdown__trigger\"\n role=\"combobox\"\n :aria-expanded=\"open\"\n aria-haspopup=\"listbox\"\n @click=\"open = !open\"\n >\n <span>{{ selectedLabel }}</span>\n <svg class=\"vie-dropdown__chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M6 9l6 6 6-6\" />\n </svg>\n </button>\n\n <Transition name=\"vie-dropdown\">\n <div v-if=\"open\" class=\"vie-dropdown__menu\" role=\"listbox\">\n <button\n v-for=\"option in options\"\n :key=\"option.value\"\n role=\"option\"\n :aria-selected=\"option.value === modelValue\"\n :class=\"[\n 'vie-dropdown__item',\n { 'vie-dropdown__item--active': option.value === modelValue }\n ]\"\n @click=\"select(option.value)\"\n >\n {{ option.label }}\n </button>\n </div>\n </Transition>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch, onBeforeUnmount } from 'vue'\n\nexport interface DropdownOption {\n label: string\n value: string | number | undefined\n}\n\nconst props = defineProps<{\n modelValue: string | number | undefined\n options: DropdownOption[]\n}>()\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string | number | undefined]\n}>()\n\nconst open = ref(false)\nconst dropdownRef = ref<HTMLElement | null>(null)\n\nconst selectedLabel = computed(() => {\n const found = props.options.find((o) => o.value === props.modelValue)\n return found ? found.label : ''\n})\n\nfunction select(value: string | number | undefined) {\n emit('update:modelValue', value)\n open.value = false\n}\n\nfunction onClickOutside(e: MouseEvent) {\n if (dropdownRef.value && !dropdownRef.value.contains(e.target as Node)) {\n open.value = false\n }\n}\n\n// Only attach click listener when dropdown is open\nwatch(open, (isOpen) => {\n if (isOpen) {\n document.addEventListener('click', onClickOutside)\n } else {\n document.removeEventListener('click', onClickOutside)\n }\n})\n\nonBeforeUnmount(() => {\n document.removeEventListener('click', onClickOutside)\n})\n</script>\n\n<style>\n.vie-dropdown-enter-active,\n.vie-dropdown-leave-active {\n transition: opacity 100ms ease, transform 100ms ease;\n}\n.vie-dropdown-enter-from,\n.vie-dropdown-leave-to {\n opacity: 0;\n transform: translateY(4px);\n}\n</style>\n","export interface CropPreset {\n labelKey: string\n value: number | null\n}\n\nexport const cropPresets: CropPreset[] = [\n { labelKey: 'custom', value: null },\n { labelKey: 'square', value: 1 },\n { labelKey: 'landscape', value: 4 / 3 },\n { labelKey: 'landscape', value: 16 / 9 },\n { labelKey: 'portrait', value: 3 / 4 },\n { labelKey: 'portrait', value: 9 / 16 },\n]\n\n/** Get a display label for a preset */\nexport function presetLabel(preset: CropPreset, t: (key: string) => string): string {\n if (preset.value === null) return t('custom')\n if (preset.value === 1) return t('square') + ' 1:1'\n\n // Determine ratio label\n const ratioMap: Record<number, string> = {\n [4 / 3]: '4:3',\n [16 / 9]: '16:9',\n [3 / 4]: '3:4',\n [9 / 16]: '9:16',\n }\n\n const ratioStr = ratioMap[preset.value] || `${preset.value.toFixed(2)}`\n const dirKey = preset.value > 1 ? 'landscape' : 'portrait'\n return `${t(dirKey)} ${ratioStr}`\n}\n","<template>\n <div class=\"vie-crop-controls\">\n <!-- Aspect Ratio Dropdown -->\n <div class=\"vie-crop-controls__section\">\n <Dropdown\n :model-value=\"currentPresetValue\"\n :options=\"presetOptions\"\n @update:model-value=\"onPresetChange\"\n />\n </div>\n\n <div class=\"vie-crop-controls__divider\" />\n\n <!-- Rotation buttons -->\n <div class=\"vie-crop-controls__section\">\n <IconButton :title=\"t('rotateLeft')\" @click=\"rotateLeft\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M2.5 2v6h6\" />\n <path d=\"M2.5 8C5 4 9 2 13 2a9 9 0 1 1-6 15.7\" />\n </svg>\n </IconButton>\n\n <IconButton :title=\"t('rotateRight')\" @click=\"rotateRight\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M21.5 2v6h-6\" />\n <path d=\"M21.5 8C19 4 15 2 11 2a9 9 0 1 0 6 15.7\" />\n </svg>\n </IconButton>\n </div>\n\n <div class=\"vie-crop-controls__divider\" />\n\n <!-- Flip buttons -->\n <div class=\"vie-crop-controls__section\">\n <IconButton :title=\"t('flipHorizontal')\" @click=\"toggleFlipX\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <path d=\"M12 3v18\" />\n <path d=\"M16 7l4 5-4 5\" />\n <path d=\"M8 7L4 12l4 5\" />\n </svg>\n </IconButton>\n\n <IconButton :title=\"t('flipVertical')\" @click=\"toggleFlipY\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <path d=\"M3 12h18\" />\n <path d=\"M7 8L12 4l5 4\" />\n <path d=\"M7 16l5 4 5-4\" />\n </svg>\n </IconButton>\n </div>\n\n <div class=\"vie-crop-controls__divider\" />\n\n <!-- Rotation slider -->\n <div class=\"vie-crop-controls__rotation\">\n <Slider\n :label=\"t('rotation')\"\n :model-value=\"rotationDeg\"\n :min=\"-45\"\n :max=\"45\"\n :step=\"0.5\"\n :base=\"0\"\n format=\"number\"\n :ticks=\"[-45, -30, -15, 0, 15, 30, 45]\"\n @update:model-value=\"onRotationChange\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, inject, watch } from 'vue'\nimport { useEditor, LOCALE_KEY } from '../../engine/useEditorEngine'\nimport Slider from '../../components/ui/Slider.vue'\nimport Dropdown from '../../components/ui/Dropdown.vue'\nimport IconButton from '../../components/ui/IconButton.vue'\nimport { cropPresets, presetLabel } from './presets'\nimport type { LocaleStrings } from '../../locale/en'\n\nconst t = inject(LOCALE_KEY, (key: string) => key)\nconst engine = useEditor()\n\n// Set centered square crop when image loads and crop is at defaults\nlet initialCropApplied = false\n\nwatch(() => engine.sourceImage.value, (img) => {\n if (!img || initialCropApplied) return\n\n const crop = engine.state.crop\n // Only apply if crop is at full-image defaults (untouched)\n const isDefault =\n crop.x === 0 && crop.y === 0 && crop.width === 1 && crop.height === 1 &&\n crop.aspectRatio === null && crop.rotation === 0 && !crop.flipX && !crop.flipY\n\n if (!isDefault) return\n initialCropApplied = true\n\n const aspect = img.naturalWidth / img.naturalHeight\n if (aspect >= 1) {\n // Landscape: square limited by height\n const sw = 1 / aspect\n engine.updateState((s) => {\n s.crop.x = (1 - sw) / 2\n s.crop.y = 0\n s.crop.width = sw\n s.crop.height = 1\n s.crop.aspectRatio = 1\n })\n } else {\n // Portrait: square limited by width\n const sh = aspect\n engine.updateState((s) => {\n s.crop.x = 0\n s.crop.y = (1 - sh) / 2\n s.crop.width = 1\n s.crop.height = sh\n s.crop.aspectRatio = 1\n })\n }\n}, { immediate: true })\n\n// Aspect ratio presets\nconst presetOptions = computed(() =>\n cropPresets.map((p) => ({\n label: presetLabel(p, t as (key: string) => string),\n value: p.value == null ? 'custom' : p.value,\n })),\n)\n\nconst currentPresetValue = computed(() => {\n const ar = engine.state.crop.aspectRatio\n return ar === null ? 'custom' : ar\n})\n\nfunction onPresetChange(val: string | number | undefined) {\n const newAspectRatio = val === 'custom' ? null : Number(val)\n\n engine.updateState((s) => {\n s.crop.aspectRatio = newAspectRatio\n\n // If aspect ratio is set, adjust crop region to match\n if (newAspectRatio !== null) {\n const currentW = s.crop.width\n const currentH = s.crop.height\n const currentRatio = currentW / currentH\n\n if (currentRatio > newAspectRatio) {\n // Too wide — narrow it\n const newW = currentH * newAspectRatio\n s.crop.x += (currentW - newW) / 2\n s.crop.width = newW\n } else {\n // Too tall — shorten it\n const newH = currentW / newAspectRatio\n s.crop.y += (currentH - newH) / 2\n s.crop.height = newH\n }\n }\n })\n}\n\n// Rotation\nconst rotationDeg = computed(() => {\n return (engine.state.crop.rotation * 180) / Math.PI\n})\n\nfunction onRotationChange(deg: number) {\n engine.updateState((s) => {\n s.crop.rotation = (deg * Math.PI) / 180\n })\n}\n\nfunction rotateLeft() {\n engine.updateState((s) => {\n s.crop.rotation -= Math.PI / 2\n })\n}\n\nfunction rotateRight() {\n engine.updateState((s) => {\n s.crop.rotation += Math.PI / 2\n })\n}\n\n// Flip\nfunction toggleFlipX() {\n engine.updateState((s) => {\n s.crop.flipX = !s.crop.flipX\n })\n}\n\nfunction toggleFlipY() {\n engine.updateState((s) => {\n s.crop.flipY = !s.crop.flipY\n })\n}\n</script>\n","<template>\n <svg\n class=\"vie-crop-overlay\"\n :class=\"{ 'vie-crop-overlay--dragging': dragHandle }\"\n role=\"application\"\n aria-label=\"Crop region\"\n :viewBox=\"`0 0 ${svgWidth} ${svgHeight}`\"\n :width=\"svgWidth\"\n :height=\"svgHeight\"\n style=\"touch-action: none;\"\n @pointerdown=\"onPointerDown\"\n >\n <!-- Dimmed mask: full area minus crop region -->\n <defs>\n <mask :id=\"maskId\">\n <rect x=\"0\" y=\"0\" :width=\"svgWidth\" :height=\"svgHeight\" fill=\"white\" />\n <rect\n :x=\"cropRect.x\" :y=\"cropRect.y\"\n :width=\"Math.max(0, cropRect.width)\" :height=\"Math.max(0, cropRect.height)\"\n fill=\"black\"\n />\n </mask>\n </defs>\n\n <rect\n x=\"0\" y=\"0\"\n :width=\"svgWidth\" :height=\"svgHeight\"\n class=\"vie-crop-mask\"\n :mask=\"`url(#${maskId})`\"\n />\n\n <!-- Crop region border -->\n <rect\n :x=\"cropRect.x\" :y=\"cropRect.y\"\n :width=\"Math.max(0, cropRect.width)\" :height=\"Math.max(0, cropRect.height)\"\n class=\"vie-crop-border\"\n />\n\n <!-- Rule of thirds grid -->\n <g v-if=\"cropRect.width > 10 && cropRect.height > 10\" class=\"vie-crop-grid\">\n <line\n v-for=\"i in 2\" :key=\"'h' + i\"\n :x1=\"cropRect.x\"\n :y1=\"cropRect.y + cropRect.height * (i / 3)\"\n :x2=\"cropRect.x + cropRect.width\"\n :y2=\"cropRect.y + cropRect.height * (i / 3)\"\n />\n <line\n v-for=\"i in 2\" :key=\"'v' + i\"\n :x1=\"cropRect.x + cropRect.width * (i / 3)\"\n :y1=\"cropRect.y\"\n :x2=\"cropRect.x + cropRect.width * (i / 3)\"\n :y2=\"cropRect.y + cropRect.height\"\n />\n </g>\n\n <!-- Move area (inside crop) -->\n <rect\n :x=\"cropRect.x + handleSize\"\n :y=\"cropRect.y + handleSize\"\n :width=\"Math.max(0, cropRect.width - handleSize * 2)\"\n :height=\"Math.max(0, cropRect.height - handleSize * 2)\"\n class=\"vie-crop-move\"\n data-handle=\"move\"\n />\n\n <!-- Corner handles -->\n <rect\n v-for=\"handle in cornerHandles\" :key=\"handle.id\"\n :x=\"handle.x\" :y=\"handle.y\"\n :width=\"handleSize\" :height=\"handleSize\"\n :class=\"['vie-crop-handle', `vie-crop-handle--${handle.id}`]\"\n :data-handle=\"handle.id\"\n rx=\"2\"\n />\n\n <!-- Edge handles -->\n <rect\n v-for=\"handle in edgeHandles\" :key=\"handle.id\"\n :x=\"handle.x\" :y=\"handle.y\"\n :width=\"handle.w\" :height=\"handle.h\"\n :class=\"['vie-crop-handle', `vie-crop-handle--${handle.id}`]\"\n :data-handle=\"handle.id\"\n rx=\"2\"\n />\n\n <!-- Confirm crop pill (bottom-center edge) -->\n <foreignObject\n v-if=\"showConfirmButton\"\n :x=\"cropRect.x + (cropRect.width - 100) / 2\"\n :y=\"cropRect.y + cropRect.height - 14\"\n width=\"100\"\n height=\"36\"\n style=\"pointer-events: none; overflow: visible;\"\n >\n <div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: flex; justify-content: center; pointer-events: none;\">\n <button\n class=\"vie-crop-confirm-pill\"\n @pointerdown.stop\n @click.stop=\"onConfirmCrop\"\n >\n <svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n <span>{{ t('cropApply') }}</span>\n </button>\n </div>\n </foreignObject>\n </svg>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, inject, watch, onBeforeUnmount } from 'vue'\nimport { useEditor, LOCALE_KEY } from '../../engine/useEditorEngine'\n\nconst maskId = `vie-crop-mask-${Math.random().toString(36).slice(2, 9)}`\n\nconst props = defineProps<{\n canvasRect: { x: number; y: number; width: number; height: number }\n wrapperSize: { width: number; height: number }\n}>()\n\nconst engine = useEditor()\nconst t = inject(LOCALE_KEY, (key: string) => key)\nconst handleSize = 12\nconst edgeHandleThickness = 8\nconst edgeHandleLength = 32\n\nconst svgWidth = computed(() => props.wrapperSize.width || 800)\nconst svgHeight = computed(() => props.wrapperSize.height || 600)\n\nconst cropRect = computed(() => {\n const cr = props.canvasRect\n const state = engine.state.crop\n return {\n x: cr.x + state.x * cr.width,\n y: cr.y + state.y * cr.height,\n width: state.width * cr.width,\n height: state.height * cr.height,\n }\n})\n\nconst cornerHandles = computed(() => {\n const r = cropRect.value\n const s = handleSize\n const hs = s / 2\n return [\n { id: 'nw', x: r.x - hs, y: r.y - hs },\n { id: 'ne', x: r.x + r.width - hs, y: r.y - hs },\n { id: 'sw', x: r.x - hs, y: r.y + r.height - hs },\n { id: 'se', x: r.x + r.width - hs, y: r.y + r.height - hs },\n ]\n})\n\nconst edgeHandles = computed(() => {\n const r = cropRect.value\n const len = Math.min(edgeHandleLength, r.width * 0.3, r.height * 0.3)\n const t = edgeHandleThickness\n return [\n { id: 'n', x: r.x + (r.width - len) / 2, y: r.y - t / 2, w: len, h: t },\n { id: 's', x: r.x + (r.width - len) / 2, y: r.y + r.height - t / 2, w: len, h: t },\n { id: 'w', x: r.x - t / 2, y: r.y + (r.height - len) / 2, w: t, h: len },\n { id: 'e', x: r.x + r.width - t / 2, y: r.y + (r.height - len) / 2, w: t, h: len },\n ]\n})\n\n// Drag state\nconst dragHandle = ref<string | null>(null)\nconst dragStart = ref({ x: 0, y: 0 })\nconst cropStart = ref({ x: 0, y: 0, width: 0, height: 0 })\n// Track whether user has actively resized the crop (handle drag, not just preset/auto)\nconst hasUserAdjustedCrop = ref(false)\n\n// Track active drag listeners for cleanup on unmount\nlet activeDragCleanup: (() => void) | null = null\n\nfunction onPointerDown(e: PointerEvent) {\n const target = e.target as SVGElement\n const handle = target.getAttribute('data-handle')\n if (!handle) return\n\n e.preventDefault()\n // Capture pointer so drags work even when cursor leaves the SVG\n const captureEl = (target.ownerSVGElement || target) as Element\n captureEl.setPointerCapture(e.pointerId)\n\n dragHandle.value = handle\n dragStart.value = { x: e.clientX, y: e.clientY }\n cropStart.value = { ...engine.state.crop }\n\n const onMove = (ev: PointerEvent) => {\n if (!dragHandle.value) return\n\n const cr = props.canvasRect\n if (cr.width === 0 || cr.height === 0) return\n\n const dx = (ev.clientX - dragStart.value.x) / cr.width\n const dy = (ev.clientY - dragStart.value.y) / cr.height\n\n const cs = cropStart.value\n const crop = engine.state.crop\n const aspectRatio = crop.aspectRatio\n\n switch (dragHandle.value) {\n case 'move': {\n // Pan the canvas image instead of moving the crop box\n const rawDx = ev.clientX - dragStart.value.x\n const rawDy = ev.clientY - dragStart.value.y\n // Compute clamped target crop position to limit pan within bounds\n const newCropX = clamp01(cs.x - rawDx / cr.width, 0, 1 - crop.width)\n const newCropY = clamp01(cs.y - rawDy / cr.height, 0, 1 - crop.height)\n // Set viewport pan (image shift in pixels) — crop rect stays fixed\n const panX = (cs.x - newCropX) * cr.width\n const panY = (cs.y - newCropY) * cr.height\n engine.cropDragPan.value = { x: panX, y: panY }\n break\n }\n case 'nw': {\n let newX = clamp01(cs.x + dx)\n let newY = clamp01(cs.y + dy)\n let newW = cs.x + cs.width - newX\n let newH = cs.y + cs.height - newY\n\n if (aspectRatio) {\n newH = newW / aspectRatio\n newY = cs.y + cs.height - newH\n if (newY < 0) { newY = 0; newH = cs.y + cs.height; newW = newH * aspectRatio; newX = cs.x + cs.width - newW }\n }\n\n if (newW > 0.02 && newH > 0.02 && newX >= 0 && newY >= 0) {\n crop.x = newX\n crop.y = newY\n crop.width = newW\n crop.height = newH\n }\n break\n }\n case 'ne': {\n let newW = clamp01(cs.width + dx, 0.02, 1 - cs.x)\n let newY = cs.y + dy\n let newH = cs.y + cs.height - newY\n\n if (aspectRatio) {\n newH = newW / aspectRatio\n newY = cs.y + cs.height - newH\n if (newY < 0) { newY = 0; newH = cs.y + cs.height; newW = newH * aspectRatio }\n }\n\n if (newW > 0.02 && newH > 0.02 && newY >= 0 && cs.x + newW <= 1) {\n crop.y = newY\n crop.width = newW\n crop.height = newH\n }\n break\n }\n case 'sw': {\n let newX = clamp01(cs.x + dx)\n let newW = cs.x + cs.width - newX\n let newH = clamp01(cs.height + dy, 0.02, 1 - cs.y)\n\n if (aspectRatio) {\n newW = newH * aspectRatio\n newX = cs.x + cs.width - newW\n if (newX < 0) { newX = 0; newW = cs.x + cs.width; newH = newW / aspectRatio }\n }\n\n if (newW > 0.02 && newH > 0.02 && newX >= 0 && cs.y + newH <= 1) {\n crop.x = newX\n crop.width = newW\n crop.height = newH\n }\n break\n }\n case 'se': {\n let newW = clamp01(cs.width + dx, 0.02, 1 - cs.x)\n let newH = clamp01(cs.height + dy, 0.02, 1 - cs.y)\n\n if (aspectRatio) {\n newH = newW / aspectRatio\n if (cs.y + newH > 1) { newH = 1 - cs.y; newW = newH * aspectRatio }\n }\n\n if (newW > 0.02 && newH > 0.02 && cs.x + newW <= 1 && cs.y + newH <= 1) {\n crop.width = newW\n crop.height = newH\n }\n break\n }\n case 'n': {\n let newY = clamp01(cs.y + dy)\n let newH = cs.y + cs.height - newY\n\n if (aspectRatio) {\n const newW = newH * aspectRatio\n const deltaW = newW - cs.width\n const adjX = clamp01(cs.x - deltaW / 2, 0, 1 - newW)\n if (newW > 0.02 && adjX >= 0 && adjX + newW <= 1) {\n crop.x = adjX\n crop.width = newW\n }\n }\n\n if (newH > 0.02 && newY >= 0) {\n crop.y = newY\n crop.height = newH\n }\n break\n }\n case 's': {\n let newH = clamp01(cs.height + dy, 0.02, 1 - cs.y)\n\n if (aspectRatio) {\n const newW = newH * aspectRatio\n const deltaW = newW - cs.width\n const adjX = clamp01(cs.x - deltaW / 2, 0, 1 - newW)\n if (newW > 0.02 && adjX >= 0 && adjX + newW <= 1) {\n crop.x = adjX\n crop.width = newW\n }\n }\n\n if (newH > 0.02 && cs.y + newH <= 1) {\n crop.height = newH\n }\n break\n }\n case 'w': {\n let newX = clamp01(cs.x + dx)\n let newW = cs.x + cs.width - newX\n\n if (aspectRatio) {\n const newH = newW / aspectRatio\n const deltaH = newH - cs.height\n const adjY = clamp01(cs.y - deltaH / 2, 0, 1 - newH)\n if (newH > 0.02 && adjY >= 0 && adjY + newH <= 1) {\n crop.y = adjY\n crop.height = newH\n }\n }\n\n if (newW > 0.02 && newX >= 0) {\n crop.x = newX\n crop.width = newW\n }\n break\n }\n case 'e': {\n let newW = clamp01(cs.width + dx, 0.02, 1 - cs.x)\n\n if (aspectRatio) {\n const newH = newW / aspectRatio\n const deltaH = newH - cs.height\n const adjY = clamp01(cs.y - deltaH / 2, 0, 1 - newH)\n if (newH > 0.02 && adjY >= 0 && adjY + newH <= 1) {\n crop.y = adjY\n crop.height = newH\n }\n }\n\n if (newW > 0.02 && cs.x + newW <= 1) {\n crop.width = newW\n }\n break\n }\n }\n\n engine.requestRender()\n }\n\n const cleanup = () => {\n window.removeEventListener('pointermove', onMove)\n window.removeEventListener('pointerup', onUp)\n activeDragCleanup = null\n }\n\n const onUp = (ev: PointerEvent) => {\n if (dragHandle.value === 'move') {\n // Finalize: convert viewport pan to crop coordinates, reset pan\n const rawDx = ev.clientX - dragStart.value.x\n const rawDy = ev.clientY - dragStart.value.y\n const cr = props.canvasRect\n const cs = cropStart.value\n const crop = engine.state.crop\n crop.x = clamp01(cs.x - rawDx / cr.width, 0, 1 - crop.width)\n crop.y = clamp01(cs.y - rawDy / cr.height, 0, 1 - crop.height)\n engine.cropDragPan.value = { x: 0, y: 0 }\n }\n if (dragHandle.value) {\n // Mark that user has actively adjusted the crop via handle resize\n if (dragHandle.value !== 'move') {\n hasUserAdjustedCrop.value = true\n }\n // Push current state to history on drag end\n engine.updateState(() => {})\n }\n dragHandle.value = null\n // Release pointer capture on the same element that captured it\n try { captureEl.releasePointerCapture(ev.pointerId) } catch {}\n cleanup()\n }\n\n window.addEventListener('pointermove', onMove)\n window.addEventListener('pointerup', onUp)\n activeDragCleanup = cleanup\n}\n\nonBeforeUnmount(() => {\n // Clean up any active drag listeners if component unmounts mid-drag\n activeDragCleanup?.()\n // Reset viewport pan in case component unmounts mid-drag\n engine.cropDragPan.value = { x: 0, y: 0 }\n})\n\n// Show confirm button only after user actively resized the crop, not during drag\nconst showConfirmButton = computed(() => {\n const crop = engine.state.crop\n return (\n hasUserAdjustedCrop.value &&\n !dragHandle.value &&\n cropRect.value.width > 60 &&\n cropRect.value.height > 60 &&\n (crop.x > 0.001 || crop.y > 0.001 || crop.width < 0.999 || crop.height < 0.999)\n )\n})\n\n// Reset user-adjusted flag when aspect ratio preset changes or crop resets to full image\nwatch(() => engine.state.crop.aspectRatio, () => {\n hasUserAdjustedCrop.value = false\n})\n\nfunction onConfirmCrop() {\n const plugins = engine.plugins.value\n const currentIdx = plugins.findIndex((p) => p.id === engine.activePluginId.value)\n if (currentIdx >= 0 && currentIdx < plugins.length - 1) {\n engine.setActivePlugin(plugins[currentIdx + 1].id)\n }\n}\n\nfunction clamp01(v: number, min = 0, max = 1): number {\n return Math.max(min, Math.min(max, v))\n}\n</script>\n","import type { EditorPlugin } from '../../types'\nimport CropControls from './CropControls.vue'\nimport CropOverlay from './CropOverlay.vue'\n\nconst cropIcon = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M6 2v4\" />\n <path d=\"M6 6h12a2 2 0 0 1 2 2v8\" />\n <path d=\"M18 22v-4\" />\n <path d=\"M18 18H6a2 2 0 0 1-2-2V8\" />\n</svg>`\n\nexport function CropPlugin(): EditorPlugin {\n return {\n id: 'crop',\n icon: cropIcon,\n labelKey: 'crop',\n controls: CropControls,\n overlay: CropOverlay,\n }\n}\n","import type { FinetuneState } from '../../types'\nimport type { LocaleStrings } from '../../locale/en'\n\nexport interface FinetuneEffect {\n key: keyof FinetuneState\n labelKey: keyof LocaleStrings\n min: number\n max: number\n base: number\n step: number\n}\n\nexport const finetuneEffects: FinetuneEffect[] = [\n { key: 'brightness', labelKey: 'brightness', min: -0.25, max: 0.25, base: 0, step: 0.01 },\n { key: 'contrast', labelKey: 'contrast', min: -0.25, max: 0.25, base: 0, step: 0.01 },\n { key: 'saturation', labelKey: 'saturation', min: -0.25, max: 0.25, base: 0, step: 0.01 },\n { key: 'exposure', labelKey: 'exposure', min: -0.25, max: 0.25, base: 0, step: 0.01 },\n { key: 'temperature', labelKey: 'temperature', min: -0.25, max: 0.25, base: 0, step: 0.01 },\n { key: 'gamma', labelKey: 'gamma', min: 0.2, max: 5.0, base: 1, step: 0.05 },\n { key: 'clarity', labelKey: 'clarity', min: -0.25, max: 0.25, base: 0, step: 0.01 },\n { key: 'vignette', labelKey: 'vignette', min: -1, max: 1, base: 0, step: 0.05 },\n]\n","<template>\n <div class=\"vie-finetune-controls\">\n <Slider\n v-for=\"effect in finetuneEffects\"\n :key=\"effect.key\"\n :modelValue=\"engine.state.finetune[effect.key]\"\n :min=\"effect.min\"\n :max=\"effect.max\"\n :step=\"effect.step\"\n :base=\"effect.base\"\n :label=\"t(effect.labelKey)\"\n :format=\"effect.key === 'gamma' ? 'number' : 'percent'\"\n @update:modelValue=\"onUpdate(effect.key, $event)\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject } from 'vue'\nimport type { FinetuneState } from '../../types'\nimport type { LocaleStrings } from '../../locale/en'\nimport { useEditor, LOCALE_KEY } from '../../engine/useEditorEngine'\nimport Slider from '../../components/ui/Slider.vue'\nimport { finetuneEffects } from './effects'\n\nconst engine = useEditor()\nconst t = inject(LOCALE_KEY, (key: string) => key)\n\nfunction onUpdate(key: keyof FinetuneState, value: number) {\n engine.updateState((s) => {\n s.finetune[key] = value\n })\n}\n</script>\n","import type { EditorPlugin } from '../../types'\nimport FinetuneControls from './FinetuneControls.vue'\n\nconst finetuneIcon = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <line x1=\"4\" y1=\"21\" x2=\"4\" y2=\"14\" />\n <line x1=\"4\" y1=\"10\" x2=\"4\" y2=\"3\" />\n <line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"3\" />\n <line x1=\"20\" y1=\"21\" x2=\"20\" y2=\"16\" />\n <line x1=\"20\" y1=\"12\" x2=\"20\" y2=\"3\" />\n <line x1=\"1\" y1=\"14\" x2=\"7\" y2=\"14\" />\n <line x1=\"9\" y1=\"8\" x2=\"15\" y2=\"8\" />\n <line x1=\"17\" y1=\"16\" x2=\"23\" y2=\"16\" />\n</svg>`\n\nexport function FinetunePlugin(): EditorPlugin {\n return {\n id: 'finetune',\n icon: finetuneIcon,\n labelKey: 'finetune',\n controls: FinetuneControls,\n }\n}\n","export interface FilterPreset {\n id: string\n labelKey: string\n matrix: number[]\n}\n\nexport const filterPresets: FilterPreset[] = [\n {\n id: 'chrome',\n labelKey: 'chrome',\n matrix: [\n 1.2, 0.1, 0.1, 0, -0.05,\n 0.05, 1.1, 0.05, 0, -0.02,\n 0.05, 0.1, 1.2, 0, -0.05,\n 0, 0, 0, 1, 0,\n ],\n },\n {\n id: 'fade',\n labelKey: 'fade',\n matrix: [\n 1, 0.02, 0.04, 0, 0.06,\n 0.02, 0.96, 0.04, 0, 0.06,\n 0.04, 0.04, 0.92, 0, 0.08,\n 0, 0, 0, 1, 0,\n ],\n },\n {\n id: 'pastel',\n labelKey: 'pastel',\n matrix: [\n 0.9, 0.1, 0.05, 0, 0.08,\n 0.05, 0.9, 0.1, 0, 0.08,\n 0.1, 0.05, 0.85, 0, 0.1,\n 0, 0, 0, 1, 0,\n ],\n },\n {\n id: 'cold',\n labelKey: 'cold',\n matrix: [\n 0.9, 0, 0.1, 0, -0.02,\n 0, 0.95, 0.1, 0, 0,\n 0, 0.1, 1.1, 0, 0.03,\n 0, 0, 0, 1, 0,\n ],\n },\n {\n id: 'warm',\n labelKey: 'warm',\n matrix: [\n 1.1, 0.1, 0, 0, 0.03,\n 0, 1.0, 0.05, 0, 0.01,\n 0, 0, 0.9, 0, -0.02,\n 0, 0, 0, 1, 0,\n ],\n },\n {\n id: 'monoDefault',\n labelKey: 'mono',\n matrix: [\n 0.2126, 0.7152, 0.0722, 0, 0,\n 0.2126, 0.7152, 0.0722, 0, 0,\n 0.2126, 0.7152, 0.0722, 0, 0,\n 0, 0, 0, 1, 0,\n ],\n },\n {\n id: 'monoNoir',\n labelKey: 'noir',\n matrix: [\n 0.3, 0.8, 0.1, 0, -0.08,\n 0.3, 0.8, 0.1, 0, -0.08,\n 0.3, 0.8, 0.1, 0, -0.08,\n 0, 0, 0, 1, 0,\n ],\n },\n {\n id: 'monoWash',\n labelKey: 'wash',\n matrix: [\n 0.2126, 0.7152, 0.0722, 0, 0.06,\n 0.2126, 0.7152, 0.0722, 0, 0.06,\n 0.2126, 0.7152, 0.0722, 0, 0.06,\n 0, 0, 0, 1, 0,\n ],\n },\n {\n id: 'monoStark',\n labelKey: 'stark',\n matrix: [\n 0.35, 1.0, 0.15, 0, -0.15,\n 0.35, 1.0, 0.15, 0, -0.15,\n 0.35, 1.0, 0.15, 0, -0.15,\n 0, 0, 0, 1, 0,\n ],\n },\n {\n id: 'sepiaDefault',\n labelKey: 'sepia',\n matrix: [\n 0.393, 0.769, 0.189, 0, 0,\n 0.349, 0.686, 0.168, 0, 0,\n 0.272, 0.534, 0.131, 0, 0,\n 0, 0, 0, 1, 0,\n ],\n },\n {\n id: 'sepiaRust',\n labelKey: 'rust',\n matrix: [\n 0.45, 0.75, 0.15, 0, 0.04,\n 0.3, 0.6, 0.15, 0, -0.01,\n 0.2, 0.4, 0.15, 0, -0.04,\n 0, 0, 0, 1, 0,\n ],\n },\n {\n id: 'sepiaBlues',\n labelKey: 'blues',\n matrix: [\n 0.2126, 0.7152, 0.0722, 0, -0.04,\n 0.2126, 0.7152, 0.0722, 0, 0,\n 0.2126, 0.7152, 0.0722, 0, 0.08,\n 0, 0, 0, 1, 0,\n ],\n },\n {\n id: 'sepiaColor',\n labelKey: 'color',\n matrix: [\n 0.4, 0.6, 0.1, 0, 0.02,\n 0.25, 0.7, 0.15, 0, 0.01,\n 0.2, 0.5, 0.4, 0, 0.01,\n 0, 0, 0, 1, 0,\n ],\n },\n]\n","<template>\n <div class=\"vie-filter-controls\">\n <div class=\"vie-filter-strip\">\n <button\n class=\"vie-filter-thumb\"\n :class=\"{ 'vie-filter-thumb--active': !engine.state.filter.id }\"\n @click=\"selectFilter(null)\"\n >\n <canvas ref=\"originalThumbRef\" width=\"96\" height=\"96\" class=\"vie-filter-thumb__canvas\" />\n <span class=\"vie-filter-thumb__label\">{{ t('original') }}</span>\n </button>\n <button\n v-for=\"preset in filterPresets\"\n :key=\"preset.id\"\n class=\"vie-filter-thumb\"\n :class=\"{ 'vie-filter-thumb--active': engine.state.filter.id === preset.id }\"\n @click=\"selectFilter(preset)\"\n >\n <canvas :ref=\"(el) => setThumbRef(preset.id, el as HTMLCanvasElement)\" width=\"96\" height=\"96\" class=\"vie-filter-thumb__canvas\" />\n <span class=\"vie-filter-thumb__label\">{{ t(preset.labelKey as keyof LocaleStrings) || preset.labelKey }}</span>\n </button>\n </div>\n <Slider\n v-if=\"engine.state.filter.id\"\n :modelValue=\"engine.state.filter.intensity\"\n :min=\"0\"\n :max=\"1\"\n :step=\"0.01\"\n :base=\"1\"\n :label=\"t('intensity')\"\n format=\"percent\"\n @update:modelValue=\"onIntensityChange\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, inject, onMounted, onUnmounted, watch } from 'vue'\nimport type { LocaleStrings } from '../../locale/en'\nimport { useEditor, LOCALE_KEY } from '../../engine/useEditorEngine'\nimport { applyColorMatrix, IDENTITY_MATRIX } from '../../core/ColorMatrix'\nimport Slider from '../../components/ui/Slider.vue'\nimport { filterPresets, type FilterPreset } from './filterPresets'\n\nconst engine = useEditor()\nconst t = inject(LOCALE_KEY, (key: string) => key)\n\nconst originalThumbRef = ref<HTMLCanvasElement | null>(null)\nconst thumbRefs = new Map<string, HTMLCanvasElement>()\nconst generatedThumbs = new Set<string>()\nlet observer: IntersectionObserver | null = null\n\nfunction setThumbRef(id: string, el: HTMLCanvasElement | null) {\n if (el) {\n thumbRefs.set(id, el)\n observer?.observe(el)\n }\n}\n\nfunction selectFilter(preset: FilterPreset | null) {\n engine.updateState((s) => {\n if (!preset) {\n s.filter.id = null\n s.filter.matrix = undefined\n } else {\n s.filter.id = preset.id\n s.filter.matrix = [...preset.matrix]\n }\n })\n}\n\nfunction onIntensityChange(value: number) {\n engine.updateState((s) => {\n s.filter.intensity = value\n })\n}\n\nfunction generateThumb(canvas: HTMLCanvasElement, preset: FilterPreset) {\n const img = engine.sourceImage.value\n if (!img) return\n const size = 96\n const ctx = canvas.getContext('2d')!\n ctx.drawImage(img, 0, 0, size, size)\n const imageData = ctx.getImageData(0, 0, size, size)\n applyColorMatrix(imageData, preset.matrix)\n ctx.putImageData(imageData, 0, 0)\n generatedThumbs.add(preset.id)\n}\n\nfunction generateOriginalThumb() {\n const img = engine.sourceImage.value\n if (!img || !originalThumbRef.value) return\n const ctx = originalThumbRef.value.getContext('2d')!\n ctx.drawImage(img, 0, 0, 96, 96)\n}\n\nfunction setupObserver() {\n observer = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n if (!entry.isIntersecting) continue\n const canvas = entry.target as HTMLCanvasElement\n const preset = filterPresets.find((p) => thumbRefs.get(p.id) === canvas)\n if (preset && !generatedThumbs.has(preset.id)) {\n generateThumb(canvas, preset)\n }\n }\n }, { threshold: 0.1 })\n\n // Observe already-registered canvases\n for (const canvas of thumbRefs.values()) {\n observer.observe(canvas)\n }\n}\n\nfunction resetThumbnails() {\n generatedThumbs.clear()\n generateOriginalThumb()\n // Re-generate visible thumbnails\n for (const preset of filterPresets) {\n const canvas = thumbRefs.get(preset.id)\n if (canvas) observer?.unobserve(canvas)\n }\n // Re-observe to trigger generation of visible ones\n for (const canvas of thumbRefs.values()) {\n observer?.observe(canvas)\n }\n}\n\nwatch(() => engine.sourceImage.value, () => {\n setTimeout(resetThumbnails, 50)\n})\n\nonMounted(() => {\n setupObserver()\n setTimeout(() => {\n generateOriginalThumb()\n }, 50)\n})\n\nonUnmounted(() => {\n observer?.disconnect()\n observer = null\n})\n</script>\n","import type { EditorPlugin } from '../../types'\nimport FilterControls from './FilterControls.vue'\n\nconst filterIcon = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z\" />\n <path d=\"M12 20a8 8 0 1 0 0-16\" fill=\"currentColor\" opacity=\"0.3\" />\n <path d=\"M12 4v16\" />\n</svg>`\n\nexport function FilterPlugin(): EditorPlugin {\n return {\n id: 'filter',\n icon: filterIcon,\n labelKey: 'filter',\n controls: FilterControls,\n }\n}\n","export interface StickerCategory {\n id: string\n labelKey: string\n stickers: string[]\n}\n\nexport const defaultStickerCategories: StickerCategory[] = [\n {\n id: 'emoji',\n labelKey: 'emoji',\n stickers: [\n '😀', '😂', '❤️', '🎉', '👍', '⭐', '🔥', '💯',\n '🎨', '📸', '🎵', '🌟', '✅', '❌', '⚡', '🎯',\n '💡', '🏆', '🎲', '🎪', '🌈', '🦋', '🍀', '💎',\n ],\n },\n {\n id: 'shapes',\n labelKey: 'shapes',\n stickers: [\n '⬛', '⬜', '🔴', '🔵', '🟢', '🟡', '🟠', '🟣',\n '▶️', '◀️', '🔺', '🔻', '💠', '🔶', '🔷', '♦️',\n ],\n },\n]\n","import { ref, type Ref } from 'vue'\r\n\r\n/** Per-engine selected sticker ID — uses WeakMap to scope per engine instance */\r\nconst stateMap = new WeakMap<object, Ref<string | null>>()\r\n\r\nexport function getSelectedStickerId(engineState: object): Ref<string | null> {\r\n let r = stateMap.get(engineState)\r\n if (!r) {\r\n r = ref<string | null>(null)\r\n stateMap.set(engineState, r)\r\n }\r\n return r\r\n}\r\n","<template>\n <div class=\"vie-sticker-controls\">\n <div class=\"vie-sticker-tabs\">\n <button\n v-for=\"cat in defaultStickerCategories\"\n :key=\"cat.id\"\n class=\"vie-sticker-tab\"\n :class=\"{ 'vie-sticker-tab--active': activeCategory === cat.id }\"\n @click=\"activeCategory = cat.id\"\n >\n {{ t(cat.labelKey as keyof LocaleStrings) || cat.labelKey }}\n </button>\n <button\n v-if=\"selectedStickerId\"\n class=\"vie-sticker-tab vie-sticker-tab--delete\"\n @click=\"deleteSelected\"\n >\n {{ t('delete' as keyof LocaleStrings) || 'Delete' }}\n </button>\n </div>\n <div class=\"vie-sticker-grid\">\n <button\n v-for=\"sticker in currentStickers\"\n :key=\"sticker\"\n class=\"vie-sticker-item\"\n @click=\"addSticker(sticker)\"\n >\n {{ sticker }}\n </button>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, inject } from 'vue'\nimport type { LocaleStrings } from '../../locale/en'\nimport { useEditor, LOCALE_KEY } from '../../engine/useEditorEngine'\nimport { defaultStickerCategories } from './defaultStickers'\nimport { getSelectedStickerId } from './selectedSticker'\n\nconst engine = useEditor()\nconst t = inject(LOCALE_KEY, (key: string) => key)\nconst selectedStickerId = getSelectedStickerId(engine.state)\n\nconst activeCategory = ref(defaultStickerCategories[0]?.id || 'emoji')\n\nconst currentStickers = computed(() => {\n const cat = defaultStickerCategories.find((c) => c.id === activeCategory.value)\n return cat?.stickers || []\n})\n\nfunction addSticker(src: string) {\n const id = `sticker-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`\n const offset = (engine.state.stickers.length % 5) * 0.03\n engine.updateState((s) => {\n s.stickers.push({\n id,\n src,\n x: 0.35 + offset,\n y: 0.35 + offset,\n width: 0.15,\n height: 0.15,\n rotation: 0,\n flipX: false,\n flipY: false,\n opacity: 1,\n })\n })\n selectedStickerId.value = id\n}\n\nfunction deleteSelected() {\n if (!selectedStickerId.value) return\n const id = selectedStickerId.value\n engine.updateState((s) => {\n const idx = s.stickers.findIndex((st) => st.id === id)\n if (idx >= 0) s.stickers.splice(idx, 1)\n })\n selectedStickerId.value = null\n}\n</script>\n","<template>\r\n <svg\r\n ref=\"svgRef\"\r\n class=\"vie-sticker-overlay\"\r\n :viewBox=\"`0 0 ${wrapperSize.width} ${wrapperSize.height}`\"\r\n :width=\"wrapperSize.width\"\r\n :height=\"wrapperSize.height\"\r\n @pointerdown=\"onPointerDown\"\r\n @keydown=\"onKeyDown\"\r\n tabindex=\"0\"\r\n >\r\n <!-- Transparent hit areas for each sticker -->\r\n <rect\r\n v-for=\"s in displayStickers\"\r\n :key=\"s.id\"\r\n :x=\"s.x\" :y=\"s.y\" :width=\"s.w\" :height=\"s.h\"\r\n fill=\"transparent\"\r\n class=\"vie-sticker-hitarea\"\r\n :data-sticker-id=\"s.id\"\r\n />\r\n\r\n <!-- Selection UI for selected sticker -->\r\n <template v-if=\"sel\">\r\n <!-- Selection border -->\r\n <rect\r\n :x=\"sel.x\" :y=\"sel.y\"\r\n :width=\"sel.w\" :height=\"sel.h\"\r\n class=\"vie-sticker-selection\"\r\n />\r\n\r\n <!-- Corner resize handles -->\r\n <rect\r\n v-for=\"h in cornerHandles\"\r\n :key=\"h.id\"\r\n :x=\"h.x\" :y=\"h.y\"\r\n :width=\"handleSize\" :height=\"handleSize\"\r\n class=\"vie-sticker-handle\"\r\n :data-handle=\"h.id\"\r\n />\r\n\r\n <!-- Rotation connector line -->\r\n <line\r\n :x1=\"sel.x + sel.w / 2\"\r\n :y1=\"sel.y - rotateLineLen\"\r\n :x2=\"sel.x + sel.w / 2\"\r\n :y2=\"sel.y\"\r\n class=\"vie-sticker-rotate-line\"\r\n />\r\n\r\n <!-- Rotation handle -->\r\n <circle\r\n :cx=\"sel.x + sel.w / 2\"\r\n :cy=\"sel.y - rotateLineLen - rotateHandleR\"\r\n :r=\"rotateHandleR\"\r\n class=\"vie-sticker-rotate-handle\"\r\n data-handle=\"rotate\"\r\n />\r\n </template>\r\n </svg>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, ref } from 'vue'\r\nimport { useEditor } from '../../engine/useEditorEngine'\r\nimport { getSelectedStickerId } from './selectedSticker'\r\n\r\nconst props = defineProps<{\r\n canvasRect: { x: number; y: number; width: number; height: number }\r\n wrapperSize: { width: number; height: number }\r\n}>()\r\n\r\nconst engine = useEditor()\r\nconst svgRef = ref<SVGSVGElement | null>(null)\r\nconst selectedId = getSelectedStickerId(engine.state)\r\n\r\nconst handleSize = 10\r\nconst rotateLineLen = 20\r\nconst rotateHandleR = 6\r\n\r\n// Convert normalized sticker coords to display coords\r\nconst displayStickers = computed(() => {\r\n const cr = props.canvasRect\r\n return engine.state.stickers.map((s) => ({\r\n id: s.id,\r\n x: cr.x + s.x * cr.width,\r\n y: cr.y + s.y * cr.height,\r\n w: s.width * cr.width,\r\n h: s.height * cr.height,\r\n }))\r\n})\r\n\r\n// Selected sticker in display coords\r\nconst sel = computed(() => {\r\n if (!selectedId.value) return null\r\n return displayStickers.value.find((s) => s.id === selectedId.value) || null\r\n})\r\n\r\n// Corner handles for selected sticker\r\nconst cornerHandles = computed(() => {\r\n if (!sel.value) return []\r\n const s = sel.value\r\n const hs = handleSize\r\n const half = hs / 2\r\n return [\r\n { id: 'nw', x: s.x - half, y: s.y - half },\r\n { id: 'ne', x: s.x + s.w - half, y: s.y - half },\r\n { id: 'sw', x: s.x - half, y: s.y + s.h - half },\r\n { id: 'se', x: s.x + s.w - half, y: s.y + s.h - half },\r\n ]\r\n})\r\n\r\n// Drag state\r\nconst dragType = ref<'move' | 'resize' | 'rotate' | null>(null)\r\nconst dragHandleId = ref<string | null>(null)\r\nconst dragStartClient = ref({ x: 0, y: 0 })\r\nconst dragStartSticker = ref({ x: 0, y: 0, width: 0, height: 0, rotation: 0 })\r\n\r\nfunction onPointerDown(e: PointerEvent) {\r\n const target = e.target as SVGElement\r\n\r\n // Check rotation handle\r\n const handle = target.getAttribute('data-handle')\r\n if (handle === 'rotate' && selectedId.value) {\r\n e.preventDefault()\r\n startDrag(e, 'rotate', handle)\r\n return\r\n }\r\n\r\n // Check resize handle\r\n if (handle && ['nw', 'ne', 'sw', 'se'].includes(handle) && selectedId.value) {\r\n e.preventDefault()\r\n startDrag(e, 'resize', handle)\r\n return\r\n }\r\n\r\n // Check sticker hit area\r\n const stickerId = target.getAttribute('data-sticker-id')\r\n if (stickerId) {\r\n e.preventDefault()\r\n selectedId.value = stickerId\r\n startDrag(e, 'move', null)\r\n svgRef.value?.focus()\r\n return\r\n }\r\n\r\n // Click on empty area — deselect\r\n selectedId.value = null\r\n}\r\n\r\nfunction startDrag(e: PointerEvent, type: 'move' | 'resize' | 'rotate', handleId: string | null) {\r\n dragType.value = type\r\n dragHandleId.value = handleId\r\n dragStartClient.value = { x: e.clientX, y: e.clientY }\r\n\r\n const sticker = engine.state.stickers.find((s) => s.id === selectedId.value)\r\n if (sticker) {\r\n dragStartSticker.value = {\r\n x: sticker.x,\r\n y: sticker.y,\r\n width: sticker.width,\r\n height: sticker.height,\r\n rotation: sticker.rotation,\r\n }\r\n }\r\n\r\n window.addEventListener('pointermove', onPointerMove)\r\n window.addEventListener('pointerup', onPointerUp)\r\n}\r\n\r\nfunction onPointerMove(e: PointerEvent) {\r\n if (!dragType.value || !selectedId.value) return\r\n\r\n const cr = props.canvasRect\r\n if (cr.width === 0 || cr.height === 0) return\r\n\r\n const dx = (e.clientX - dragStartClient.value.x) / cr.width\r\n const dy = (e.clientY - dragStartClient.value.y) / cr.height\r\n const ds = dragStartSticker.value\r\n\r\n const sticker = engine.state.stickers.find((s) => s.id === selectedId.value)\r\n if (!sticker) return\r\n\r\n switch (dragType.value) {\r\n case 'move': {\r\n sticker.x = clamp(ds.x + dx, 0, 1 - sticker.width)\r\n sticker.y = clamp(ds.y + dy, 0, 1 - sticker.height)\r\n break\r\n }\r\n case 'resize': {\r\n const minSize = 0.03\r\n switch (dragHandleId.value) {\r\n case 'se': {\r\n sticker.width = clamp(ds.width + dx, minSize, 1 - ds.x)\r\n sticker.height = clamp(ds.height + dy, minSize, 1 - ds.y)\r\n break\r\n }\r\n case 'ne': {\r\n const newW = clamp(ds.width + dx, minSize, 1 - ds.x)\r\n const newH = clamp(ds.height - dy, minSize, ds.y + ds.height)\r\n const newY = ds.y + ds.height - newH\r\n sticker.width = newW\r\n sticker.height = newH\r\n sticker.y = newY\r\n break\r\n }\r\n case 'sw': {\r\n const newW = clamp(ds.width - dx, minSize, ds.x + ds.width)\r\n const newH = clamp(ds.height + dy, minSize, 1 - ds.y)\r\n const newX = ds.x + ds.width - newW\r\n sticker.width = newW\r\n sticker.height = newH\r\n sticker.x = newX\r\n break\r\n }\r\n case 'nw': {\r\n const newW = clamp(ds.width - dx, minSize, ds.x + ds.width)\r\n const newH = clamp(ds.height - dy, minSize, ds.y + ds.height)\r\n const newX = ds.x + ds.width - newW\r\n const newY = ds.y + ds.height - newH\r\n sticker.width = newW\r\n sticker.height = newH\r\n sticker.x = newX\r\n sticker.y = newY\r\n break\r\n }\r\n }\r\n break\r\n }\r\n case 'rotate': {\r\n // Compute angle from sticker center to pointer\r\n const sCenterX = cr.x + sticker.x * cr.width + sticker.width * cr.width / 2\r\n const sCenterY = cr.y + sticker.y * cr.height + sticker.height * cr.height / 2\r\n const angle = Math.atan2(e.clientX - sCenterX, -(e.clientY - sCenterY))\r\n sticker.rotation = angle\r\n break\r\n }\r\n }\r\n\r\n engine.requestRender()\r\n}\r\n\r\nfunction onPointerUp() {\r\n if (dragType.value) {\r\n // Push state to history\r\n engine.updateState(() => {})\r\n }\r\n dragType.value = null\r\n dragHandleId.value = null\r\n window.removeEventListener('pointermove', onPointerMove)\r\n window.removeEventListener('pointerup', onPointerUp)\r\n}\r\n\r\nfunction onKeyDown(e: KeyboardEvent) {\r\n if ((e.key === 'Delete' || e.key === 'Backspace') && selectedId.value) {\r\n e.preventDefault()\r\n const id = selectedId.value\r\n engine.updateState((s) => {\r\n const idx = s.stickers.findIndex((st) => st.id === id)\r\n if (idx >= 0) s.stickers.splice(idx, 1)\r\n })\r\n selectedId.value = null\r\n }\r\n}\r\n\r\nfunction clamp(v: number, min: number, max: number): number {\r\n return Math.max(min, Math.min(max, v))\r\n}\r\n</script>\r\n","import type { EditorPlugin } from '../../types'\nimport StickerControls from './StickerControls.vue'\nimport StickerOverlay from './StickerOverlay.vue'\n\nconst stickerIcon = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M8 14s1.5 2 4 2 4-2 4-2\" />\n <line x1=\"9\" y1=\"9\" x2=\"9.01\" y2=\"9\" />\n <line x1=\"15\" y1=\"9\" x2=\"15.01\" y2=\"9\" />\n</svg>`\n\nexport function StickerPlugin(): EditorPlugin {\n return {\n id: 'sticker',\n icon: stickerIcon,\n labelKey: 'sticker',\n controls: StickerControls,\n overlay: StickerOverlay,\n }\n}\n","import type { LocaleStrings } from '../../locale/en'\n\nexport interface FrameStyleDef {\n id: string\n labelKey: keyof LocaleStrings\n}\n\nexport const frameStyles: FrameStyleDef[] = [\n { id: 'solidSharp', labelKey: 'solidSharp' },\n { id: 'solidRound', labelKey: 'solidRound' },\n { id: 'lineSingle', labelKey: 'lineSingle' },\n { id: 'lineMultiple', labelKey: 'lineMultiple' },\n { id: 'hook', labelKey: 'hook' },\n { id: 'polaroid', labelKey: 'polaroid' },\n { id: 'edgeSeparate', labelKey: 'edgeSeparate' },\n { id: 'edgeCross', labelKey: 'edgeCross' },\n { id: 'edgeOverlap', labelKey: 'edgeOverlap' },\n]\n\nexport const defaultFrameColors: [number, number, number, number][] = [\n [1, 1, 1, 1], // White\n [0, 0, 0, 1], // Black\n [0.85, 0.75, 0.6, 1], // Cream\n [0.6, 0.4, 0.2, 1], // Brown\n [0.2, 0.4, 0.6, 1], // Navy\n [0.8, 0.2, 0.2, 1], // Red\n]\n","<template>\n <div class=\"vie-frame-controls\">\n <div class=\"vie-frame-strip\">\n <button\n class=\"vie-frame-style\"\n :class=\"{ 'vie-frame-style--active': !engine.state.frame.style }\"\n @click=\"selectStyle(null)\"\n >\n <span class=\"vie-frame-style__label\">{{ t('none') }}</span>\n </button>\n <button\n v-for=\"style in frameStyles\"\n :key=\"style.id\"\n class=\"vie-frame-style\"\n :class=\"{ 'vie-frame-style--active': engine.state.frame.style === style.id }\"\n @click=\"selectStyle(style.id)\"\n >\n <span class=\"vie-frame-style__label\">{{ t(style.labelKey) }}</span>\n </button>\n </div>\n\n <template v-if=\"engine.state.frame.style\">\n <Slider\n :modelValue=\"engine.state.frame.size\"\n :min=\"0.005\"\n :max=\"0.15\"\n :step=\"0.005\"\n :base=\"0.025\"\n :label=\"t('frameSize')\"\n format=\"percent\"\n @update:modelValue=\"onSizeChange\"\n />\n <div class=\"vie-frame-colors\">\n <span class=\"vie-frame-colors__label\">{{ t('frameColor') }}</span>\n <div class=\"vie-frame-colors__swatches\">\n <button\n v-for=\"(color, i) in defaultFrameColors\"\n :key=\"i\"\n class=\"vie-frame-color-swatch\"\n :class=\"{ 'vie-frame-color-swatch--active': isActiveColor(color) }\"\n :style=\"{ backgroundColor: rgbaToCSS(color) }\"\n @click=\"selectColor(color)\"\n />\n </div>\n </div>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject } from 'vue'\nimport type { LocaleStrings } from '../../locale/en'\nimport { useEditor, LOCALE_KEY } from '../../engine/useEditorEngine'\nimport Slider from '../../components/ui/Slider.vue'\nimport { frameStyles, defaultFrameColors } from './frameStyles'\n\nconst engine = useEditor()\nconst t = inject(LOCALE_KEY, (key: string) => key)\n\nfunction selectStyle(id: string | null) {\n engine.updateState((s) => {\n s.frame.style = id\n })\n}\n\nfunction onSizeChange(value: number) {\n engine.updateState((s) => {\n s.frame.size = value\n })\n}\n\nfunction selectColor(color: [number, number, number, number]) {\n engine.updateState((s) => {\n s.frame.color = [...color]\n })\n}\n\nfunction isActiveColor(color: [number, number, number, number]): boolean {\n const c = engine.state.frame.color\n return c[0] === color[0] && c[1] === color[1] && c[2] === color[2] && c[3] === color[3]\n}\n\nfunction rgbaToCSS(c: [number, number, number, number]): string {\n return `rgba(${Math.round(c[0] * 255)}, ${Math.round(c[1] * 255)}, ${Math.round(c[2] * 255)}, ${c[3]})`\n}\n</script>\n","import type { EditorPlugin } from '../../types'\nimport FrameControls from './FrameControls.vue'\n\nconst frameIcon = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\" />\n <rect x=\"7\" y=\"7\" width=\"10\" height=\"10\" />\n</svg>`\n\nexport function FramePlugin(): EditorPlugin {\n return {\n id: 'frame',\n icon: frameIcon,\n labelKey: 'frame',\n controls: FrameControls,\n }\n}\n","<template>\r\n <div class=\"vie-fill-controls\">\r\n <div class=\"vie-fill-strip\">\r\n <button\r\n v-for=\"(color, i) in fillColors\"\r\n :key=\"i\"\r\n class=\"vie-fill-swatch\"\r\n :class=\"{\r\n 'vie-fill-swatch--active': isActiveColor(color),\r\n 'vie-fill-swatch--transparent': color[3] === 0,\r\n }\"\r\n :style=\"color[3] > 0 ? { backgroundColor: rgbaToCSS(color) } : undefined\"\r\n :title=\"i === 0 ? t('transparent') : undefined\"\r\n @click=\"selectColor(color)\"\r\n />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { inject } from 'vue'\r\nimport type { LocaleStrings } from '../../locale/en'\r\nimport { useEditor, LOCALE_KEY } from '../../engine/useEditorEngine'\r\n\r\nconst engine = useEditor()\r\nconst t = inject(LOCALE_KEY, (key: string) => key)\r\n\r\ntype RGBA = [number, number, number, number]\r\n\r\nconst fillColors: RGBA[] = [\r\n [0, 0, 0, 0], // Transparent\r\n [1, 1, 1, 1], // White\r\n [0.8, 0.8, 0.8, 1], // Light gray\r\n [0.2, 0.2, 0.2, 1], // Dark gray\r\n [0, 0, 0, 1], // Black\r\n [0.1, 0.14, 0.49, 1], // Dark navy\r\n [0.13, 0.59, 0.95, 1], // Blue\r\n [0, 0.74, 0.83, 1], // Cyan\r\n [0, 0.59, 0.53, 1], // Teal\r\n [0.3, 0.69, 0.31, 1], // Green\r\n [0.55, 0.76, 0.29, 1], // Light green\r\n [1, 0.92, 0.23, 1], // Yellow\r\n [1, 0.6, 0, 1], // Orange\r\n [1, 0.34, 0.13, 1], // Deep orange\r\n [0.96, 0.26, 0.21, 1], // Red\r\n [0.91, 0.12, 0.39, 1], // Pink\r\n [0.61, 0.15, 0.69, 1], // Purple\r\n]\r\n\r\nfunction selectColor(color: RGBA) {\r\n engine.updateState((s) => {\r\n s.backgroundColor = [...color]\r\n })\r\n}\r\n\r\nfunction isActiveColor(color: RGBA): boolean {\r\n const c = engine.state.backgroundColor\r\n return c[0] === color[0] && c[1] === color[1] && c[2] === color[2] && c[3] === color[3]\r\n}\r\n\r\nfunction rgbaToCSS(c: RGBA): string {\r\n return `rgba(${Math.round(c[0] * 255)}, ${Math.round(c[1] * 255)}, ${Math.round(c[2] * 255)}, ${c[3]})`\r\n}\r\n</script>\r\n","import type { EditorPlugin } from '../../types'\r\nimport FillControls from './FillControls.vue'\r\n\r\nconst fillIcon = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <path d=\"M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z\" />\r\n</svg>`\r\n\r\nexport function FillPlugin(): EditorPlugin {\r\n return {\r\n id: 'fill',\r\n icon: fillIcon,\r\n labelKey: 'fill',\r\n controls: FillControls,\r\n }\r\n}\r\n","<template>\n <div class=\"vie-resize-controls\">\n <div class=\"vie-resize-dimensions\">\n <div class=\"vie-resize-input\">\n <label class=\"vie-resize-input__label\">{{ t('width') }}</label>\n <div class=\"vie-resize-input__field-wrapper\">\n <input\n type=\"number\"\n class=\"vie-resize-input__field\"\n :value=\"displayWidth\"\n min=\"1\"\n @input=\"onWidthChange(($event.target as HTMLInputElement).value)\"\n />\n <span class=\"vie-resize-input__unit\">px</span>\n </div>\n </div>\n <button\n class=\"vie-resize-lock\"\n :class=\"{ 'vie-resize-lock--active': lockAspect }\"\n @click=\"lockAspect = !lockAspect\"\n :title=\"t('lockAspectRatio')\"\n >\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\" />\n <path v-if=\"lockAspect\" d=\"M7 11V7a5 5 0 0 1 10 0v4\" />\n <path v-else d=\"M7 11V7a5 5 0 0 1 9.9-1\" />\n </svg>\n </button>\n <div class=\"vie-resize-input\">\n <label class=\"vie-resize-input__label\">{{ t('height') }}</label>\n <div class=\"vie-resize-input__field-wrapper\">\n <input\n type=\"number\"\n class=\"vie-resize-input__field\"\n :value=\"displayHeight\"\n min=\"1\"\n @input=\"onHeightChange(($event.target as HTMLInputElement).value)\"\n />\n <span class=\"vie-resize-input__unit\">px</span>\n </div>\n </div>\n </div>\n\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, inject } from 'vue'\nimport type { LocaleStrings } from '../../locale/en'\nimport { useEditor, LOCALE_KEY } from '../../engine/useEditorEngine'\n\nconst engine = useEditor()\nconst t = inject(LOCALE_KEY, (key: string) => key)\n\nconst lockAspect = ref(true)\n\nconst sourceAspectRatio = computed(() => {\n const img = engine.sourceImage.value\n if (!img) return 1\n const crop = engine.state.crop\n return (img.naturalWidth * crop.width) / (img.naturalHeight * crop.height)\n})\n\nconst displayWidth = computed(() => {\n if (engine.state.resize.width) return engine.state.resize.width\n const img = engine.sourceImage.value\n if (!img) return 0\n return Math.round(img.naturalWidth * engine.state.crop.width)\n})\n\nconst displayHeight = computed(() => {\n if (engine.state.resize.height) return engine.state.resize.height\n const img = engine.sourceImage.value\n if (!img) return 0\n return Math.round(img.naturalHeight * engine.state.crop.height)\n})\n\nfunction onWidthChange(val: string) {\n const w = parseInt(val, 10)\n if (!w || w < 1) return\n engine.updateState((s) => {\n s.resize.width = w\n if (lockAspect.value) {\n s.resize.height = Math.round(w / sourceAspectRatio.value)\n }\n })\n}\n\nfunction onHeightChange(val: string) {\n const h = parseInt(val, 10)\n if (!h || h < 1) return\n engine.updateState((s) => {\n s.resize.height = h\n if (lockAspect.value) {\n s.resize.width = Math.round(h * sourceAspectRatio.value)\n }\n })\n}\n\n</script>\n","import type { EditorPlugin } from '../../types'\nimport ResizeControls from './ResizeControls.vue'\n\nconst resizeIcon = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"15 3 21 3 21 9\" />\n <polyline points=\"9 21 3 21 3 15\" />\n <line x1=\"21\" y1=\"3\" x2=\"14\" y2=\"10\" />\n <line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\" />\n</svg>`\n\nexport function ResizePlugin(): EditorPlugin {\n return {\n id: 'resize',\n icon: resizeIcon,\n labelKey: 'resize',\n controls: ResizeControls,\n }\n}\n","<template>\n <div\n ref=\"shellRef\"\n :class=\"[\n 'vie-editor',\n 'vie-shell',\n isHorizontal ? 'vie-shell--horizontal' : '',\n options.theme === 'dark' ? 'vie-theme-dark' : '',\n ]\"\n :dir=\"options.dir || 'ltr'\"\n @keydown=\"onKeydown\"\n tabindex=\"0\"\n >\n <template v-if=\"isHorizontal\">\n <!-- Horizontal layout: tabs on left, main content right -->\n <EditorTabs />\n <div class=\"vie-main\">\n <EditorToolbar @done=\"onDone\" :processing=\"processing\" />\n <EditorCanvas />\n <EditorControlPanel />\n </div>\n </template>\n <template v-else>\n <!-- Vertical layout (default): top to bottom -->\n <EditorToolbar @done=\"onDone\" :processing=\"processing\" />\n <EditorCanvas />\n <EditorControlPanel />\n <EditorTabs />\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, provide, onMounted, onBeforeUnmount, watch } from 'vue'\nimport type { EditorOptions, ProcessResult } from '../types'\nimport { createEditorEngine, provideEditor, LOCALE_KEY, type EditorEngine } from '../engine/useEditorEngine'\nimport { ImageProcessor } from '../core/ImageProcessor'\nimport { en } from '../locale/en'\nimport { ar } from '../locale/ar'\nimport type { LocaleStrings } from '../locale/en'\nimport EditorToolbar from './EditorToolbar.vue'\nimport EditorCanvas from './EditorCanvas.vue'\nimport EditorTabs from './EditorTabs.vue'\nimport EditorControlPanel from './EditorControlPanel.vue'\n\nconst props = defineProps<{\n options: EditorOptions\n}>()\n\nconst emit = defineEmits<{\n process: [result: ProcessResult]\n close: []\n}>()\n\n// Create and provide engine\nconst engine: EditorEngine = createEditorEngine(props.options)\nprovideEditor(engine)\n\n// Provide reactive locale function — re-evaluates when options.locale changes\nconst locales: Record<string, LocaleStrings> = { en, ar }\n\nconst tFn = computed(() => {\n const locale = props.options.locale || 'en'\n return (key: keyof LocaleStrings): string => {\n return locales[locale]?.[key] || locales.en[key] || key\n }\n})\nprovide(LOCALE_KEY, (key: string) => tFn.value(key as keyof LocaleStrings))\n\n// Register plugins based on options\nimport { CropPlugin } from '../plugins/crop'\nimport { FinetunePlugin } from '../plugins/finetune'\nimport { FilterPlugin } from '../plugins/filter'\nimport { StickerPlugin } from '../plugins/sticker'\nimport { FramePlugin } from '../plugins/frame'\nimport { FillPlugin } from '../plugins/fill'\nimport { ResizePlugin } from '../plugins/resize'\n\nconst pluginMap: Record<string, () => void> = {\n crop: () => engine.registerPlugin(CropPlugin()),\n finetune: () => engine.registerPlugin(FinetunePlugin()),\n filter: () => engine.registerPlugin(FilterPlugin()),\n sticker: () => engine.registerPlugin(StickerPlugin()),\n frame: () => engine.registerPlugin(FramePlugin()),\n fill: () => engine.registerPlugin(FillPlugin()),\n resize: () => engine.registerPlugin(ResizePlugin()),\n}\n\nconst enabledPlugins = props.options.plugins || ['crop', 'finetune', 'filter', 'sticker', 'frame', 'resize']\nfor (const id of enabledPlugins) {\n if (pluginMap[id]) pluginMap[id]()\n}\n\n// Register custom (external) plugins\nif (props.options.customPlugins) {\n for (const plugin of props.options.customPlugins) {\n engine.registerPlugin(plugin)\n }\n}\n\n// Responsive layout detection\nconst shellRef = ref<HTMLElement | null>(null)\nconst isHorizontal = ref(false)\nlet resizeObserver: ResizeObserver | null = null\n\nonMounted(() => {\n if (!shellRef.value) return\n resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect\n isHorizontal.value = width > height && width > 700\n }\n })\n resizeObserver.observe(shellRef.value)\n\n // Focus for keyboard shortcuts\n shellRef.value.focus()\n})\n\nonBeforeUnmount(() => {\n resizeObserver?.disconnect()\n})\n\n// Keyboard shortcuts\nfunction onKeydown(e: KeyboardEvent) {\n if (e.ctrlKey || e.metaKey) {\n if (e.key === 'z' && !e.shiftKey) {\n e.preventDefault()\n engine.undo()\n } else if ((e.key === 'z' && e.shiftKey) || e.key === 'y') {\n e.preventDefault()\n engine.redo()\n }\n } else if (e.key === 'Escape') {\n emit('close')\n }\n}\n\n// Export / Done\nconst processing = ref(false)\n\nasync function onDone() {\n if (!engine.sourceImage.value || processing.value) return\n\n processing.value = true\n try {\n const processor = new ImageProcessor()\n const result = await processor.process(\n engine.sourceImage.value,\n engine.state,\n {\n mimeType: props.options.outputMimeType || 'image/jpeg',\n quality: props.options.outputQuality ?? 0.92,\n maxCanvasPixels: props.options.maxCanvasPixels,\n },\n )\n emit('process', result)\n } finally {\n processing.value = false\n }\n}\n</script>\n","<template>\n <Teleport to=\"body\">\n <Transition name=\"vie-modal\">\n <div\n class=\"vie-modal-backdrop\"\n role=\"dialog\"\n aria-modal=\"true\"\n @click.self=\"onBackdropClick\"\n @keydown.esc=\"onClose\"\n @keydown.tab=\"trapFocus\"\n ref=\"backdropRef\"\n >\n <div class=\"vie-modal-container\">\n <EditorShell\n :options=\"editorOptions\"\n @process=\"$emit('process', $event)\"\n @close=\"onClose\"\n />\n </div>\n </div>\n </Transition>\n </Teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted, onBeforeUnmount, nextTick } from 'vue'\nimport type { EditorOptions, ProcessResult, ImageState } from '../types'\nimport EditorShell from './EditorShell.vue'\n\nconst props = withDefaults(defineProps<{\n src: string | File | Blob\n plugins?: string[]\n locale?: 'en' | 'ar'\n dir?: 'ltr' | 'rtl'\n theme?: 'dark' | 'light'\n outputMimeType?: 'image/jpeg' | 'image/png' | 'image/webp'\n outputQuality?: number\n maxCanvasPixels?: number\n initialState?: Partial<ImageState>\n}>(), {\n plugins: () => ['crop', 'finetune', 'filter', 'sticker', 'frame', 'resize'],\n locale: 'en',\n dir: 'ltr',\n theme: 'light',\n outputQuality: 0.92,\n})\n\nconst emit = defineEmits<{\n process: [result: ProcessResult]\n close: []\n}>()\n\nconst backdropRef = ref<HTMLElement | null>(null)\n\nconst editorOptions = computed<EditorOptions>(() => ({\n src: props.src,\n plugins: props.plugins,\n locale: props.locale,\n dir: props.dir,\n theme: props.theme,\n outputMimeType: props.outputMimeType,\n outputQuality: props.outputQuality,\n maxCanvasPixels: props.maxCanvasPixels,\n initialState: props.initialState,\n}))\n\nfunction onClose() {\n emit('close')\n}\n\nfunction onBackdropClick() {\n if (window.confirm('Close editor? Unsaved changes will be lost.')) {\n onClose()\n }\n}\n\n/** Focus trap: keep Tab/Shift+Tab within the modal */\nfunction trapFocus(e: KeyboardEvent) {\n const container = backdropRef.value\n if (!container) return\n\n const focusable = container.querySelectorAll<HTMLElement>(\n 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])',\n )\n if (focusable.length === 0) return\n\n const first = focusable[0]\n const last = focusable[focusable.length - 1]\n\n if (e.shiftKey) {\n if (document.activeElement === first) {\n e.preventDefault()\n last.focus()\n }\n } else {\n if (document.activeElement === last) {\n e.preventDefault()\n first.focus()\n }\n }\n}\n\n// Lock body scroll when modal is open\nlet originalOverflow = ''\n\nonMounted(async () => {\n originalOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n // Auto-focus the modal container after mount\n await nextTick()\n backdropRef.value?.querySelector<HTMLElement>('[tabindex=\"0\"]')?.focus()\n})\n\nonBeforeUnmount(() => {\n document.body.style.overflow = originalOverflow\n})\n</script>\n","import type { ImageState } from '../types'\r\nimport { createDefaultImageState } from '../types'\r\n\r\n/**\r\n * Serialize editor state to a JSON string.\r\n * Safe to store in localStorage, a database, or send over network.\r\n */\r\nexport function serializeState(state: ImageState): string {\r\n return JSON.stringify(state)\r\n}\r\n\r\n/**\r\n * Deserialize a JSON string back to an ImageState.\r\n * Validates the basic structure before returning.\r\n */\r\nexport function deserializeState(json: string): Partial<ImageState> {\r\n const parsed = JSON.parse(json)\r\n if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {\r\n throw new Error('Invalid state: expected an object')\r\n }\r\n\r\n // Sanitize sticker URLs to prevent javascript: injection\r\n if (Array.isArray(parsed.stickers)) {\r\n for (const sticker of parsed.stickers) {\r\n if (typeof sticker.src === 'string') {\r\n const lower = sticker.src.toLowerCase().trim()\r\n if (lower.startsWith('javascript:') || lower.startsWith('vbscript:')) {\r\n sticker.src = ''\r\n }\r\n }\r\n }\r\n }\r\n\r\n return parsed as Partial<ImageState>\r\n}\r\n\r\n/**\r\n * Create a full ImageState from a partial state, filling in defaults.\r\n */\r\nexport function mergeWithDefaults(partial: Partial<ImageState>): ImageState {\r\n const defaults = createDefaultImageState()\r\n return {\r\n ...defaults,\r\n ...partial,\r\n crop: { ...defaults.crop, ...(partial.crop || {}) },\r\n finetune: { ...defaults.finetune, ...(partial.finetune || {}) },\r\n filter: { ...defaults.filter, ...(partial.filter || {}) },\r\n frame: { ...defaults.frame, ...(partial.frame || {}) },\r\n resize: { ...defaults.resize, ...(partial.resize || {}) },\r\n stickers: partial.stickers || defaults.stickers,\r\n backgroundColor: partial.backgroundColor || defaults.backgroundColor,\r\n }\r\n}\r\n","// Styles\nimport './styles/editor.css'\n\n// Public API\nexport { default as ImageEditorModal } from './components/EditorModal.vue'\nexport { default as ImageEditorShell } from './components/EditorShell.vue'\n\n// Composables\nexport { createEditorEngine, useEditor, LOCALE_KEY } from './engine/useEditorEngine'\nexport type { EditorEngine } from './engine/useEditorEngine'\n\n// Plugins\nexport { CropPlugin } from './plugins/crop'\nexport { FinetunePlugin } from './plugins/finetune'\nexport { FilterPlugin } from './plugins/filter'\nexport { StickerPlugin } from './plugins/sticker'\nexport { FramePlugin } from './plugins/frame'\nexport { FillPlugin } from './plugins/fill'\nexport { ResizePlugin } from './plugins/resize'\n\n// Plugin utilities\nexport { filterPresets } from './plugins/filter/filterPresets'\nexport { finetuneEffects } from './plugins/finetune/effects'\nexport { defaultStickerCategories } from './plugins/sticker/defaultStickers'\nexport { frameStyles } from './plugins/frame/frameStyles'\n\n// Core utilities\nexport { ImageProcessor } from './core/ImageProcessor'\nexport { CanvasRenderer } from './core/CanvasRenderer'\nexport { History } from './core/History'\nexport { loadImage } from './core/ImageReader'\nexport { serializeState, deserializeState, mergeWithDefaults } from './core/StatePersistence'\nexport {\n applyColorMatrix,\n applyGamma,\n applyVignette,\n applyClarity,\n brightnessMatrix,\n contrastMatrix,\n saturationMatrix,\n exposureMatrix,\n temperatureMatrix,\n composeMatrices,\n multiplyMatrices,\n IDENTITY_MATRIX,\n} from './core/ColorMatrix'\n\n// Types\nexport type {\n ImageState,\n CropState,\n FinetuneState,\n FilterState,\n StickerInstance,\n FrameState,\n ResizeState,\n EditorPlugin,\n PluginRenderContext,\n EditorOptions,\n ProcessResult,\n} from './types'\n\nexport { createDefaultImageState } from './types'\n\n// Locale\nexport { en } from './locale/en'\nexport { ar } from './locale/ar'\nexport type { LocaleStrings } from './locale/en'\n\n// Vue plugin install function\nimport type { App } from 'vue'\nimport ImageEditorModal from './components/EditorModal.vue'\n\nexport function install(app: App): void {\n app.component('ImageEditorModal', ImageEditorModal)\n}\n\nexport default { install }\n"],"names":["createDefaultImageState","deepClone","state","History","maxSize","loadImage","src","url","toObjectUrl","resolve","reject","img","EDITOR_KEY","LOCALE_KEY","cloneState","toRaw","createEditorEngine","options","reactive","initialState","history","sourceImage","ref","loading","error","loadGeneration","plugins","shallowRef","activePluginId","zoom","onRender","cropDragPan","historyVersion","activePlugin","computed","p","canUndo","canRedo","hasEdits","load","gen","requestRender","e","registerPlugin","plugin","markRaw","unregisterPlugin","id","_a","setActivePlugin","prev","next","updateState","updater","undo","redo","revert","current","setZoom","level","readonly","provideEditor","engine","provide","useEditor","inject","IDENTITY_MATRIX","multiplyMatrices","a","b","result","row","col","sum","k","composeMatrices","matrices","i","brightnessMatrix","v","contrastMatrix","f","saturationMatrix","s","invS","r","g","exposureMatrix","temperatureMatrix","applyColorMatrix","imageData","matrix","d","len","m0","m1","m2","m3","m4","m5","m6","m7","m8","m9","m10","m11","m12","m13","m14","m15","m16","m17","m18","m19","clamp","applyGamma","gamma","invGamma","lut","applyVignette","strength","width","height","cx","cy","maxDist","y","x","dx","dy","dist","factor","applyClarity","data","amount","orig","c","center","laplacian","DEFAULT_MAX_PIXELS","ImageProcessor","source","mimeType","quality","maxCanvasPixels","crop","finetune","cropX","cropY","cropW","cropH","outputW","outputH","resizeW","resizeH","fit","scale","totalPixels","absRotation","canvasW","canvasH","cos","sin","canvas","ctx","bg","m","t","interpolated","combined","drawFrame","sticker","drawSticker","style","size","color","radius","w","frameW","colorStr","roundRect","inset","hookLen","topFrame","bottomFrame","h","fontSize","en","ar","_createElementBlock","_normalizeClass","__props","_cache","$event","$emit","$slots","_openBlock","_hoisted_2","_renderSlot","_ctx","_hoisted_3","_toDisplayString","key","_hoisted_1","_createElementVNode","_createVNode","IconButton","_unref","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","CanvasRenderer","image","dpr","getState","filter","cacheKey","ratio","pw","ph","pCtx","cw","ch","padding","availW","availH","showCropped","previewSrc","displayW","displayH","imgX","imgY","vp","cropNatW","cropNatH","srcTotalW","srcTotalH","frame","stickers","firstKey","adjX","adjY","adjW","adjH","wrapperRef","canvasRef","canvasRect","wrapperSize","renderer","resizeObserver","dprMediaQuery","dprChangeHandler","updateCanvasRect","onMounted","entries","entry","setupDprWatch","rect","imageRect","zoomTarget","zoomCurrent","panTargetX","panTargetY","panCurrentX","panCurrentY","watch","zoomAnimating","syncPan","pan","onWheel","newZoomTarget","animateZoom","zDiff","pxDiff","pyDiff","ease","isPanning","canPan","onPanStart","startX","startY","startPanX","startPanY","onPanMove","ev","onPanEnd","lastPinchDist","lastPinchZoom","getTouchDistance","t1","t2","onTouchStart","onTouchMove","onTouchEnd","_e","onBeforeUnmount","__expose","_createBlock","_resolveDynamicComponent","iconRefs","ALLOWED_TAGS","ALLOWED_ATTRS","sanitizeSvgString","html","svg","clean","el","children","child","attr","renderIcons","idx","onUpdated","_Fragment","_Transition","labelId","props","emit","__emit","trackRef","dragging","normalizedValue","normalizedBase","normalizedTicks","thumbPosition","fillStyle","start","end","displayValue","valueFromEvent","isRtl","value","onPointerDown","onMove","onUp","onDoubleClick","onKeydown","newVal","_renderList","tick","open","dropdownRef","selectedLabel","found","o","select","onClickOutside","isOpen","option","cropPresets","presetLabel","preset","ratioStr","dirKey","initialCropApplied","aspect","sw","sh","presetOptions","currentPresetValue","onPresetChange","val","newAspectRatio","currentW","currentH","newW","newH","rotationDeg","onRotationChange","deg","rotateLeft","rotateRight","toggleFlipX","toggleFlipY","Dropdown","Slider","handleSize","edgeHandleThickness","edgeHandleLength","maskId","svgWidth","svgHeight","cropRect","cr","cornerHandles","hs","edgeHandles","dragHandle","dragStart","cropStart","hasUserAdjustedCrop","activeDragCleanup","target","handle","captureEl","cs","aspectRatio","rawDx","rawDy","newCropX","clamp01","newCropY","panX","panY","newX","newY","deltaW","deltaH","cleanup","showConfirmButton","onConfirmCrop","currentIdx","min","max","_hoisted_13","cropIcon","CropPlugin","CropControls","CropOverlay","finetuneEffects","onUpdate","effect","finetuneIcon","FinetunePlugin","FinetuneControls","filterPresets","originalThumbRef","thumbRefs","generatedThumbs","observer","setThumbRef","selectFilter","onIntensityChange","generateThumb","generateOriginalThumb","setupObserver","resetThumbnails","onUnmounted","filterIcon","FilterPlugin","FilterControls","defaultStickerCategories","stateMap","getSelectedStickerId","engineState","selectedStickerId","activeCategory","currentStickers","cat","addSticker","offset","deleteSelected","st","rotateLineLen","rotateHandleR","svgRef","selectedId","displayStickers","sel","half","dragType","dragHandleId","dragStartClient","dragStartSticker","startDrag","stickerId","type","handleId","onPointerMove","onPointerUp","ds","sCenterX","sCenterY","angle","onKeyDown","stickerIcon","StickerPlugin","StickerControls","StickerOverlay","frameStyles","defaultFrameColors","selectStyle","onSizeChange","selectColor","isActiveColor","rgbaToCSS","_hoisted_8","_normalizeStyle","frameIcon","FramePlugin","FrameControls","fillColors","fillIcon","FillPlugin","FillControls","lockAspect","sourceAspectRatio","displayWidth","displayHeight","onWidthChange","onHeightChange","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","resizeIcon","ResizePlugin","ResizeControls","locales","tFn","locale","pluginMap","enabledPlugins","shellRef","isHorizontal","processing","onDone","EditorTabs","EditorToolbar","EditorCanvas","EditorControlPanel","backdropRef","editorOptions","onClose","onBackdropClick","trapFocus","container","focusable","first","last","originalOverflow","nextTick","_b","_Teleport","EditorShell","serializeState","deserializeState","json","parsed","lower","mergeWithDefaults","partial","defaults","install","app","ImageEditorModal","index"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vuedit-image-editor.umd.js","sources":["../src/i18n/en.ts","../src/i18n/index.ts","../src/i18n/ar.ts","../src/components/canvas/FabricCanvas.vue","../src/components/toolbar/ToolButton.vue","../src/icons/CropIcon.vue","../src/icons/RotateIcon.vue","../src/icons/FilterIcon.vue","../src/icons/TextIcon.vue","../src/icons/DrawIcon.vue","../src/icons/ShapeIcon.vue","../src/icons/ResizeIcon.vue","../src/icons/UndoIcon.vue","../src/icons/RedoIcon.vue","../src/icons/ZoomInIcon.vue","../src/icons/ZoomOutIcon.vue","../src/icons/FlipHIcon.vue","../src/icons/FlipVIcon.vue","../src/icons/RotateLeftIcon.vue","../src/icons/RotateRightIcon.vue","../src/components/toolbar/EditorToolbar.vue","../src/components/shared/ConfirmBar.vue","../src/components/panels/CropPanel.vue","../src/components/shared/RangeSlider.vue","../src/components/panels/RotateFlipPanel.vue","../src/components/panels/FilterPanel.vue","../src/components/shared/ColorPicker.vue","../src/components/panels/TextPanel.vue","../src/components/panels/DrawPanel.vue","../src/components/panels/ShapePanel.vue","../src/components/panels/ResizePanel.vue","../node_modules/fabric/dist/index.min.mjs","../src/composables/useFabricCanvas.ts","../src/composables/useHistory.ts","../src/composables/useEditorState.ts","../src/composables/useCrop.ts","../src/composables/useRotateFlip.ts","../src/composables/useFilters.ts","../src/composables/useText.ts","../src/composables/useDraw.ts","../src/composables/useShapes.ts","../src/composables/useResize.ts","../src/composables/useZoom.ts","../src/components/VueditImageEditor.vue","../src/components/VueditImageEditorModal.vue"],"sourcesContent":["const en = {\n crop: 'Crop',\n rotate: 'Rotate',\n filter: 'Filter',\n text: 'Text',\n draw: 'Draw',\n shape: 'Shape',\n resize: 'Resize',\n\n save: 'Save',\n cancel: 'Cancel',\n apply: 'Apply',\n reset: 'Reset',\n undo: 'Undo',\n redo: 'Redo',\n zoomIn: 'Zoom In',\n zoomOut: 'Zoom Out',\n resetZoom: 'Reset Zoom',\n\n freeform: 'Freeform',\n original: 'Original',\n\n rotateLeft: 'Rotate Left',\n rotateRight: 'Rotate Right',\n flipHorizontal: 'Flip Horizontal',\n flipVertical: 'Flip Vertical',\n degrees: 'Degrees',\n\n brightness: 'Brightness',\n contrast: 'Contrast',\n saturation: 'Saturation',\n exposure: 'Exposure',\n blur: 'Blur',\n grayscale: 'Grayscale',\n sepia: 'Sepia',\n invert: 'Invert',\n\n addText: 'Add Text',\n fontFamily: 'Font',\n fontSize: 'Size',\n fontColor: 'Color',\n bold: 'Bold',\n italic: 'Italic',\n\n brushSize: 'Brush Size',\n brushColor: 'Color',\n opacity: 'Opacity',\n\n rectangle: 'Rectangle',\n circle: 'Circle',\n arrow: 'Arrow',\n line: 'Line',\n strokeColor: 'Stroke',\n fillColor: 'Fill',\n strokeWidth: 'Stroke Width',\n\n width: 'Width',\n height: 'Height',\n lockAspectRatio: 'Lock aspect ratio',\n pixels: 'px',\n} as const\n\nexport type TranslationKeys = keyof typeof en\n\nexport default en\n","import en, { type TranslationKeys } from './en'\nimport ar from './ar'\n\nexport type VueditTranslations = Record<TranslationKeys, string>\n\nconst locales: Record<string, VueditTranslations> = { en, ar }\n\nexport function resolveTranslations(\n locale: string | VueditTranslations\n): (key: TranslationKeys) => string {\n const translations: VueditTranslations =\n typeof locale === 'string' ? locales[locale] || en : locale\n\n return (key: TranslationKeys) => translations[key] || en[key] || key\n}\n\nexport function mergeTranslations(\n base: Partial<VueditTranslations>,\n overrides: Partial<VueditTranslations>\n): VueditTranslations {\n return { ...en, ...base, ...overrides }\n}\n\nexport { en as defaultTranslations }\nexport type { TranslationKeys }\n","const ar = {\n crop: 'قص',\n rotate: 'تدوير',\n filter: 'فلتر',\n text: 'نص',\n draw: 'رسم',\n shape: 'شكل',\n resize: 'تغيير الحجم',\n\n save: 'حفظ',\n cancel: 'إلغاء',\n apply: 'تطبيق',\n reset: 'إعادة تعيين',\n undo: 'تراجع',\n redo: 'إعادة',\n zoomIn: 'تكبير',\n zoomOut: 'تصغير',\n resetZoom: 'إعادة تعيين التكبير',\n\n freeform: 'حر',\n original: 'أصلي',\n\n rotateLeft: 'تدوير لليسار',\n rotateRight: 'تدوير لليمين',\n flipHorizontal: 'قلب أفقي',\n flipVertical: 'قلب عمودي',\n degrees: 'درجة',\n\n brightness: 'السطوع',\n contrast: 'التباين',\n saturation: 'التشبع',\n exposure: 'التعريض',\n blur: 'ضبابية',\n grayscale: 'رمادي',\n sepia: 'بني داكن',\n invert: 'عكس',\n\n addText: 'إضافة نص',\n fontFamily: 'الخط',\n fontSize: 'الحجم',\n fontColor: 'اللون',\n bold: 'غامق',\n italic: 'مائل',\n\n brushSize: 'حجم الفرشاة',\n brushColor: 'اللون',\n opacity: 'الشفافية',\n\n rectangle: 'مستطيل',\n circle: 'دائرة',\n arrow: 'سهم',\n line: 'خط',\n strokeColor: 'لون الحد',\n fillColor: 'لون التعبئة',\n strokeWidth: 'عرض الحد',\n\n width: 'العرض',\n height: 'الارتفاع',\n lockAspectRatio: 'قفل نسبة العرض للارتفاع',\n pixels: 'بكسل',\n} as const\n\nexport default ar\n","<script lang=\"ts\" setup>\nimport { ref, onMounted, onBeforeUnmount } from 'vue'\n\nconst canvasEl = ref<HTMLCanvasElement | null>(null)\nconst containerEl = ref<HTMLDivElement | null>(null)\n\ndefineExpose({\n canvasEl,\n containerEl,\n})\n</script>\n\n<template>\n <div ref=\"containerEl\" class=\"vuedit-canvas-area\">\n <canvas ref=\"canvasEl\" />\n </div>\n</template>\n","<script lang=\"ts\" setup>\ndefineProps<{\n label: string\n active?: boolean\n}>()\n\nconst emit = defineEmits<{\n (e: 'click'): void\n}>()\n</script>\n\n<template>\n <button\n class=\"vuedit-tool-btn\"\n :class=\"{ 'vuedit-tool-btn--active': active }\"\n @click=\"emit('click')\"\n >\n <span class=\"vuedit-tool-btn__icon\">\n <slot />\n </span>\n <span class=\"vuedit-tool-btn__label\">{{ label }}</span>\n </button>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6 2v14a2 2 0 0 0 2 2h14\"/><path d=\"M18 22V8a2 2 0 0 0-2-2H2\"/></svg>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8\"/><path d=\"M21 3v5h-5\"/></svg>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\"/><path d=\"M2 12h20\"/></svg>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"4 7 4 4 20 4 20 7\"/><line x1=\"9\" y1=\"20\" x2=\"15\" y2=\"20\"/><line x1=\"12\" y1=\"4\" x2=\"12\" y2=\"20\"/></svg>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 19l7-7 3 3-7 7-3-3z\"/><path d=\"M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z\"/><path d=\"M2 2l7.586 7.586\"/><circle cx=\"11\" cy=\"11\" r=\"2\"/></svg>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"/></svg>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"15 3 21 3 21 9\"/><polyline points=\"9 21 3 21 3 15\"/><line x1=\"21\" y1=\"3\" x2=\"14\" y2=\"10\"/><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"/></svg>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"1 4 1 10 7 10\"/><path d=\"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\"/></svg>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"23 4 23 10 17 10\"/><path d=\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"/></svg>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/><line x1=\"11\" y1=\"8\" x2=\"11\" y2=\"14\"/><line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\"/></svg>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/><line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\"/></svg>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h3\"/><path d=\"M16 3h3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-3\"/><line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"4\" stroke-dasharray=\"2 2\"/></svg>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v3\"/><path d=\"M21 16v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3\"/><line x1=\"4\" y1=\"12\" x2=\"20\" y2=\"12\" stroke-dasharray=\"2 2\"/></svg>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"1 4 1 10 7 10\"/><path d=\"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\"/></svg>\n</template>\n","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"23 4 23 10 17 10\"/><path d=\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"/></svg>\n</template>\n","<script lang=\"ts\" setup>\nimport type { ToolType } from '@/types'\nimport type { TranslationKeys } from '@/i18n/en'\nimport ToolButton from './ToolButton.vue'\nimport {\n CropIcon,\n RotateIcon,\n FilterIcon,\n TextIcon,\n DrawIcon,\n ShapeIcon,\n ResizeIcon,\n} from '@/icons'\n\ndefineProps<{\n tools: ToolType[]\n activeTool: ToolType | null\n t: (key: TranslationKeys) => string\n}>()\n\nconst emit = defineEmits<{\n (e: 'selectTool', tool: ToolType): void\n}>()\n\nconst iconMap: Record<ToolType, any> = {\n crop: CropIcon,\n rotate: RotateIcon,\n filter: FilterIcon,\n text: TextIcon,\n draw: DrawIcon,\n shape: ShapeIcon,\n resize: ResizeIcon,\n}\n\nconst labelMap: Record<ToolType, TranslationKeys> = {\n crop: 'crop',\n rotate: 'rotate',\n filter: 'filter',\n text: 'text',\n draw: 'draw',\n shape: 'shape',\n resize: 'resize',\n}\n</script>\n\n<template>\n <div class=\"vuedit-toolbar\">\n <ToolButton\n v-for=\"tool in tools\"\n :key=\"tool\"\n :label=\"t(labelMap[tool])\"\n :active=\"activeTool === tool\"\n @click=\"emit('selectTool', tool)\"\n >\n <component :is=\"iconMap[tool]\" />\n </ToolButton>\n </div>\n</template>\n","<script lang=\"ts\" setup>\ndefineProps<{\n applyLabel?: string\n cancelLabel?: string\n}>()\n\nconst emit = defineEmits<{\n (e: 'apply'): void\n (e: 'cancel'): void\n}>()\n</script>\n\n<template>\n <div class=\"vuedit-confirm-bar\">\n <button class=\"vuedit-btn vuedit-btn--secondary\" @click=\"emit('cancel')\">\n {{ cancelLabel || 'Cancel' }}\n </button>\n <button class=\"vuedit-btn vuedit-btn--primary\" @click=\"emit('apply')\">\n {{ applyLabel || 'Apply' }}\n </button>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { CropAspectRatio } from '@/types'\nimport type { TranslationKeys } from '@/i18n/en'\nimport ConfirmBar from '../shared/ConfirmBar.vue'\n\ndefineProps<{\n aspectRatios: CropAspectRatio[]\n selectedRatio: CropAspectRatio | null\n isCropping: boolean\n t: (key: TranslationKeys) => string\n}>()\n\nconst emit = defineEmits<{\n (e: 'selectRatio', ratio: CropAspectRatio): void\n (e: 'apply'): void\n (e: 'cancel'): void\n}>()\n</script>\n\n<template>\n <div>\n <div class=\"vuedit-panel__title\">{{ t('crop') }}</div>\n <div class=\"vuedit-panel__section\">\n <div class=\"vuedit-aspect-ratios\">\n <button\n v-for=\"ratio in aspectRatios\"\n :key=\"ratio.label\"\n class=\"vuedit-aspect-chip\"\n :class=\"{ 'vuedit-aspect-chip--active': selectedRatio?.label === ratio.label }\"\n @click=\"emit('selectRatio', ratio)\"\n >\n {{ ratio.label }}\n </button>\n </div>\n </div>\n <ConfirmBar\n v-if=\"isCropping\"\n :apply-label=\"t('apply')\"\n :cancel-label=\"t('cancel')\"\n @apply=\"emit('apply')\"\n @cancel=\"emit('cancel')\"\n />\n </div>\n</template>\n","<script lang=\"ts\" setup>\nconst props = defineProps<{\n label: string\n modelValue: number\n min?: number\n max?: number\n step?: number\n}>()\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: number): void\n}>()\n\nfunction onInput(event: Event) {\n emit('update:modelValue', parseFloat((event.target as HTMLInputElement).value))\n}\n</script>\n\n<template>\n <div class=\"vuedit-range\">\n <div class=\"vuedit-range__header\">\n <span class=\"vuedit-range__label\">{{ label }}</span>\n <span class=\"vuedit-range__value\">{{ modelValue }}</span>\n </div>\n <input\n type=\"range\"\n :value=\"modelValue\"\n :min=\"min ?? -1\"\n :max=\"max ?? 1\"\n :step=\"step ?? 0.01\"\n @input=\"onInput\"\n />\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { TranslationKeys } from '@/i18n/en'\nimport RangeSlider from '../shared/RangeSlider.vue'\nimport { RotateLeftIcon, RotateRightIcon, FlipHIcon, FlipVIcon } from '@/icons'\n\ndefineProps<{\n rotation: number\n t: (key: TranslationKeys) => string\n}>()\n\nconst emit = defineEmits<{\n (e: 'rotateLeft'): void\n (e: 'rotateRight'): void\n (e: 'flipH'): void\n (e: 'flipV'): void\n (e: 'setRotation', deg: number): void\n}>()\n</script>\n\n<template>\n <div>\n <div class=\"vuedit-panel__title\">{{ t('rotate') }}</div>\n\n <div class=\"vuedit-panel__section\">\n <div class=\"vuedit-toggle-group\">\n <button class=\"vuedit-toggle\" :title=\"t('rotateLeft')\" @click=\"emit('rotateLeft')\">\n <RotateLeftIcon style=\"width:16px;height:16px\" />\n </button>\n <button class=\"vuedit-toggle\" :title=\"t('rotateRight')\" @click=\"emit('rotateRight')\">\n <RotateRightIcon style=\"width:16px;height:16px\" />\n </button>\n <button class=\"vuedit-toggle\" :title=\"t('flipHorizontal')\" @click=\"emit('flipH')\">\n <FlipHIcon style=\"width:16px;height:16px\" />\n </button>\n <button class=\"vuedit-toggle\" :title=\"t('flipVertical')\" @click=\"emit('flipV')\">\n <FlipVIcon style=\"width:16px;height:16px\" />\n </button>\n </div>\n </div>\n\n <div class=\"vuedit-panel__section\">\n <RangeSlider\n :label=\"t('degrees')\"\n :model-value=\"rotation\"\n :min=\"-180\"\n :max=\"180\"\n :step=\"1\"\n @update:model-value=\"emit('setRotation', $event)\"\n />\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { FilterState } from '@/types'\nimport type { TranslationKeys } from '@/i18n/en'\nimport RangeSlider from '../shared/RangeSlider.vue'\n\ndefineProps<{\n state: FilterState\n t: (key: TranslationKeys) => string\n}>()\n\nconst emit = defineEmits<{\n (e: 'update', key: keyof FilterState, value: number | boolean): void\n (e: 'reset'): void\n (e: 'commit'): void\n}>()\n</script>\n\n<template>\n <div>\n <div class=\"vuedit-panel__title\">{{ t('filter') }}</div>\n\n <div class=\"vuedit-panel__section\">\n <RangeSlider\n :label=\"t('brightness')\"\n :model-value=\"state.brightness\"\n :min=\"-1\" :max=\"1\" :step=\"0.01\"\n @update:model-value=\"emit('update', 'brightness', $event)\"\n />\n </div>\n <div class=\"vuedit-panel__section\">\n <RangeSlider\n :label=\"t('contrast')\"\n :model-value=\"state.contrast\"\n :min=\"-1\" :max=\"1\" :step=\"0.01\"\n @update:model-value=\"emit('update', 'contrast', $event)\"\n />\n </div>\n <div class=\"vuedit-panel__section\">\n <RangeSlider\n :label=\"t('saturation')\"\n :model-value=\"state.saturation\"\n :min=\"-1\" :max=\"1\" :step=\"0.01\"\n @update:model-value=\"emit('update', 'saturation', $event)\"\n />\n </div>\n <div class=\"vuedit-panel__section\">\n <RangeSlider\n :label=\"t('exposure')\"\n :model-value=\"state.exposure\"\n :min=\"-1\" :max=\"1\" :step=\"0.01\"\n @update:model-value=\"emit('update', 'exposure', $event)\"\n />\n </div>\n <div class=\"vuedit-panel__section\">\n <RangeSlider\n :label=\"t('blur')\"\n :model-value=\"state.blur\"\n :min=\"0\" :max=\"1\" :step=\"0.01\"\n @update:model-value=\"emit('update', 'blur', $event)\"\n />\n </div>\n\n <div class=\"vuedit-panel__section\">\n <div class=\"vuedit-toggle-group\">\n <button\n class=\"vuedit-toggle\"\n :class=\"{ 'vuedit-toggle--active': state.grayscale }\"\n @click=\"emit('update', 'grayscale', !state.grayscale)\"\n >{{ t('grayscale') }}</button>\n <button\n class=\"vuedit-toggle\"\n :class=\"{ 'vuedit-toggle--active': state.sepia }\"\n @click=\"emit('update', 'sepia', !state.sepia)\"\n >{{ t('sepia') }}</button>\n <button\n class=\"vuedit-toggle\"\n :class=\"{ 'vuedit-toggle--active': state.invert }\"\n @click=\"emit('update', 'invert', !state.invert)\"\n >{{ t('invert') }}</button>\n </div>\n </div>\n\n <div class=\"vuedit-confirm-bar\">\n <button class=\"vuedit-btn vuedit-btn--secondary\" @click=\"emit('reset')\">\n {{ t('reset') }}\n </button>\n <button class=\"vuedit-btn vuedit-btn--primary\" @click=\"emit('commit')\">\n {{ t('apply') }}\n </button>\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nconst props = defineProps<{\n modelValue: string\n label?: string\n}>()\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: string): void\n}>()\n\nconst presets = [\n '#ffffff', '#000000', '#ff0000', '#ff6600', '#ffcc00',\n '#33cc33', '#0099ff', '#6633cc', '#ff3399', '#999999',\n]\n</script>\n\n<template>\n <div class=\"vuedit-panel__section\">\n <label v-if=\"label\" class=\"vuedit-panel__label\">{{ label }}</label>\n <div class=\"vuedit-colors\">\n <button\n v-for=\"color in presets\"\n :key=\"color\"\n class=\"vuedit-color-swatch\"\n :class=\"{ 'vuedit-color-swatch--active': modelValue === color }\"\n :style=\"{ background: color }\"\n @click=\"emit('update:modelValue', color)\"\n />\n <input\n type=\"color\"\n :value=\"modelValue\"\n class=\"vuedit-color-swatch\"\n style=\"padding: 0; cursor: pointer;\"\n @input=\"emit('update:modelValue', ($event.target as HTMLInputElement).value)\"\n />\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { TextConfig } from '@/types'\nimport type { TranslationKeys } from '@/i18n/en'\nimport ColorPicker from '../shared/ColorPicker.vue'\n\ndefineProps<{\n config: TextConfig\n t: (key: TranslationKeys) => string\n}>()\n\nconst emit = defineEmits<{\n (e: 'update', key: keyof TextConfig, value: string | number): void\n (e: 'addText'): void\n}>()\n\nconst fonts = [\n 'Arial',\n 'Helvetica',\n 'Times New Roman',\n 'Georgia',\n 'Courier New',\n 'Verdana',\n 'Impact',\n 'Comic Sans MS',\n]\n</script>\n\n<template>\n <div>\n <div class=\"vuedit-panel__title\">{{ t('text') }}</div>\n\n <div class=\"vuedit-panel__section\">\n <label class=\"vuedit-panel__label\">{{ t('fontFamily') }}</label>\n <select\n class=\"vuedit-select\"\n :value=\"config.fontFamily\"\n @change=\"emit('update', 'fontFamily', ($event.target as HTMLSelectElement).value)\"\n >\n <option v-for=\"font in fonts\" :key=\"font\" :value=\"font\">{{ font }}</option>\n </select>\n </div>\n\n <div class=\"vuedit-panel__section\">\n <label class=\"vuedit-panel__label\">{{ t('fontSize') }}</label>\n <input\n type=\"number\"\n class=\"vuedit-input\"\n :value=\"config.fontSize\"\n min=\"8\"\n max=\"200\"\n @input=\"emit('update', 'fontSize', parseInt(($event.target as HTMLInputElement).value) || 24)\"\n />\n </div>\n\n <ColorPicker\n :label=\"t('fontColor')\"\n :model-value=\"config.fill\"\n @update:model-value=\"emit('update', 'fill', $event)\"\n />\n\n <div class=\"vuedit-panel__section\">\n <div class=\"vuedit-toggle-group\">\n <button\n class=\"vuedit-toggle\"\n :class=\"{ 'vuedit-toggle--active': config.fontWeight === 'bold' }\"\n @click=\"emit('update', 'fontWeight', config.fontWeight === 'bold' ? 'normal' : 'bold')\"\n ><strong>B</strong></button>\n <button\n class=\"vuedit-toggle\"\n :class=\"{ 'vuedit-toggle--active': config.fontStyle === 'italic' }\"\n @click=\"emit('update', 'fontStyle', config.fontStyle === 'italic' ? 'normal' : 'italic')\"\n ><em>I</em></button>\n </div>\n </div>\n\n <div class=\"vuedit-panel__section\">\n <button class=\"vuedit-btn vuedit-btn--primary\" style=\"width:100%\" @click=\"emit('addText')\">\n {{ t('addText') }}\n </button>\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { BrushConfig } from '@/types'\nimport type { TranslationKeys } from '@/i18n/en'\nimport RangeSlider from '../shared/RangeSlider.vue'\nimport ColorPicker from '../shared/ColorPicker.vue'\n\ndefineProps<{\n config: BrushConfig\n t: (key: TranslationKeys) => string\n}>()\n\nconst emit = defineEmits<{\n (e: 'update', key: keyof BrushConfig, value: number | string): void\n}>()\n</script>\n\n<template>\n <div>\n <div class=\"vuedit-panel__title\">{{ t('draw') }}</div>\n\n <div class=\"vuedit-panel__section\">\n <RangeSlider\n :label=\"t('brushSize')\"\n :model-value=\"config.width\"\n :min=\"1\" :max=\"50\" :step=\"1\"\n @update:model-value=\"emit('update', 'width', $event)\"\n />\n </div>\n\n <div class=\"vuedit-panel__section\">\n <RangeSlider\n :label=\"t('opacity')\"\n :model-value=\"config.opacity\"\n :min=\"0\" :max=\"1\" :step=\"0.05\"\n @update:model-value=\"emit('update', 'opacity', $event)\"\n />\n </div>\n\n <ColorPicker\n :label=\"t('brushColor')\"\n :model-value=\"config.color\"\n @update:model-value=\"emit('update', 'color', $event)\"\n />\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { ShapeConfig } from '@/types'\nimport type { TranslationKeys } from '@/i18n/en'\nimport RangeSlider from '../shared/RangeSlider.vue'\nimport ColorPicker from '../shared/ColorPicker.vue'\n\ndefineProps<{\n config: ShapeConfig\n t: (key: TranslationKeys) => string\n}>()\n\nconst emit = defineEmits<{\n (e: 'update', key: keyof ShapeConfig, value: string | number): void\n (e: 'addShape'): void\n}>()\n\nconst shapes = [\n { type: 'rect' as const, label: 'rectangle' as const },\n { type: 'circle' as const, label: 'circle' as const },\n { type: 'line' as const, label: 'line' as const },\n { type: 'arrow' as const, label: 'arrow' as const },\n]\n</script>\n\n<template>\n <div>\n <div class=\"vuedit-panel__title\">{{ t('shape') }}</div>\n\n <div class=\"vuedit-panel__section\">\n <div class=\"vuedit-toggle-group\">\n <button\n v-for=\"s in shapes\"\n :key=\"s.type\"\n class=\"vuedit-toggle\"\n :class=\"{ 'vuedit-toggle--active': config.type === s.type }\"\n @click=\"emit('update', 'type', s.type)\"\n >{{ t(s.label) }}</button>\n </div>\n </div>\n\n <ColorPicker\n :label=\"t('strokeColor')\"\n :model-value=\"config.strokeColor\"\n @update:model-value=\"emit('update', 'strokeColor', $event)\"\n />\n\n <ColorPicker\n :label=\"t('fillColor')\"\n :model-value=\"config.fillColor\"\n @update:model-value=\"emit('update', 'fillColor', $event)\"\n />\n\n <div class=\"vuedit-panel__section\">\n <RangeSlider\n :label=\"t('strokeWidth')\"\n :model-value=\"config.strokeWidth\"\n :min=\"1\" :max=\"20\" :step=\"1\"\n @update:model-value=\"emit('update', 'strokeWidth', $event)\"\n />\n </div>\n\n <div class=\"vuedit-panel__section\">\n <button class=\"vuedit-btn vuedit-btn--primary\" style=\"width:100%\" @click=\"emit('addShape')\">\n {{ t('shape') }}\n </button>\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { TranslationKeys } from '@/i18n/en'\nimport ConfirmBar from '../shared/ConfirmBar.vue'\n\ndefineProps<{\n width: number\n height: number\n lockRatio: boolean\n t: (key: TranslationKeys) => string\n}>()\n\nconst emit = defineEmits<{\n (e: 'setWidth', v: number): void\n (e: 'setHeight', v: number): void\n (e: 'toggleLock'): void\n (e: 'apply'): void\n (e: 'cancel'): void\n}>()\n</script>\n\n<template>\n <div>\n <div class=\"vuedit-panel__title\">{{ t('resize') }}</div>\n\n <div class=\"vuedit-panel__section\">\n <label class=\"vuedit-panel__label\">{{ t('width') }} ({{ t('pixels') }})</label>\n <input\n type=\"number\"\n class=\"vuedit-input\"\n :value=\"width\"\n min=\"1\"\n max=\"10000\"\n @input=\"emit('setWidth', parseInt(($event.target as HTMLInputElement).value) || 1)\"\n />\n </div>\n\n <div class=\"vuedit-panel__section\">\n <label class=\"vuedit-panel__label\">{{ t('height') }} ({{ t('pixels') }})</label>\n <input\n type=\"number\"\n class=\"vuedit-input\"\n :value=\"height\"\n min=\"1\"\n max=\"10000\"\n @input=\"emit('setHeight', parseInt(($event.target as HTMLInputElement).value) || 1)\"\n />\n </div>\n\n <div class=\"vuedit-panel__section\">\n <label style=\"display:flex;align-items:center;gap:8px;cursor:pointer;\">\n <input\n type=\"checkbox\"\n :checked=\"lockRatio\"\n @change=\"emit('toggleLock')\"\n />\n <span class=\"vuedit-panel__label\" style=\"margin:0\">{{ t('lockAspectRatio') }}</span>\n </label>\n </div>\n\n <ConfirmBar\n :apply-label=\"t('apply')\"\n :cancel-label=\"t('cancel')\"\n @apply=\"emit('apply')\"\n @cancel=\"emit('cancel')\"\n />\n </div>\n</template>\n","function t(t,e,s){return(e=function(t){var e=function(t,e){if(\"object\"!=typeof t||!t)return t;var s=t[Symbol.toPrimitive];if(void 0!==s){var i=s.call(t,e);if(\"object\"!=typeof i)return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"==typeof e?e:e+\"\"}(e))in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}class e{constructor(){t(this,\"browserShadowBlurConstant\",1),t(this,\"DPI\",96),t(this,\"devicePixelRatio\",\"undefined\"!=typeof window?window.devicePixelRatio:1),t(this,\"perfLimitSizeTotal\",2097152),t(this,\"maxCacheSideLimit\",4096),t(this,\"minCacheSideLimit\",256),t(this,\"disableStyleCopyPaste\",!1),t(this,\"enableGLFiltering\",!0),t(this,\"textureSize\",4096),t(this,\"forceGLPutImageData\",!1),t(this,\"cachesBoundsOfCurve\",!1),t(this,\"fontPaths\",{}),t(this,\"NUM_FRACTION_DIGITS\",4)}}const s=new class extends e{constructor(t){super(),this.configure(t)}configure(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.assign(this,t)}addFonts(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.fontPaths={...this.fontPaths,...t}}removeFonts(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach(t=>{delete this.fontPaths[t]})}clearFonts(){this.fontPaths={}}restoreDefaults(t){const s=new e,i=(null==t?void 0:t.reduce((t,e)=>(t[e]=s[e],t),{}))||s;this.configure(i)}},i=function(t){for(var e=arguments.length,s=new Array(e>1?e-1:0),i=1;i<e;i++)s[i-1]=arguments[i];return console[t](\"fabric\",...s)};class r extends Error{constructor(t,e){super(`fabric: ${t}`,e)}}class n extends r{constructor(t){super(`${t} 'options.signal' is in 'aborted' state`)}}class o{}class a extends o{testPrecision(t,e){const s=`precision ${e} float;\\nvoid main(){}`,i=t.createShader(t.FRAGMENT_SHADER);return!!i&&(t.shaderSource(i,s),t.compileShader(i),!!t.getShaderParameter(i,t.COMPILE_STATUS))}queryWebGL(t){const e=t.getContext(\"webgl\");e&&(this.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE),this.GLPrecision=[\"highp\",\"mediump\",\"lowp\"].find(t=>this.testPrecision(e,t)),e.getExtension(\"WEBGL_lose_context\").loseContext(),i(\"log\",`WebGL: max texture size ${this.maxTextureSize}`))}isSupported(t){return!!this.maxTextureSize&&this.maxTextureSize>=t}}const h={};let l;const c=t=>{l=t},u=()=>l||(l={document:document,window:window,isTouchSupported:\"ontouchstart\"in window||\"ontouchstart\"in document||window&&window.navigator&&window.navigator.maxTouchPoints>0,WebGLProbe:new a,dispose(){},copyPasteData:h}),d=()=>u().document,g=()=>u().window,f=()=>{var t;return Math.max(null!==(t=s.devicePixelRatio)&&void 0!==t?t:g().devicePixelRatio,1)};const p=new class{constructor(){t(this,\"boundsOfCurveCache\",{}),this.charWidthsCache=new Map}getFontCache(t){let{fontFamily:e,fontStyle:s,fontWeight:i}=t;e=e.toLowerCase();const r=this.charWidthsCache;r.has(e)||r.set(e,new Map);const n=r.get(e),o=`${s.toLowerCase()}_${(i+\"\").toLowerCase()}`;return n.has(o)||n.set(o,new Map),n.get(o)}clearFontCache(t){t?this.charWidthsCache.delete((t||\"\").toLowerCase()):this.charWidthsCache=new Map}limitDimsByArea(t){const{perfLimitSizeTotal:e}=s,i=Math.sqrt(e*t);return[Math.floor(i),Math.floor(e/i)]}};const m=\"7.1.0\";function v(){}const y=Math.PI/2,_=Math.PI/4,x=2*Math.PI,C=Math.PI/180,b=Object.freeze([1,0,0,1,0,0]),S=16,w=.4477152502,T=\"center\",O=\"left\",k=\"top\",D=\"bottom\",M=\"right\",E=\"none\",P=/\\r?\\n/,A=\"moving\",j=\"scaling\",F=\"rotating\",L=\"rotate\",I=\"skewing\",R=\"resizing\",B=\"modifyPoly\",$=\"modifyPath\",X=\"changed\",Y=\"scale\",W=\"scaleX\",V=\"scaleY\",G=\"skewX\",z=\"skewY\",H=\"fill\",N=\"stroke\",U=\"modified\",q=\"ltr\",K=\"rtl\",J=\"normal\",Q=\"json\",Z=\"svg\";const tt=new class{constructor(){this[Q]=new Map,this[Z]=new Map}has(t){return this[Q].has(t)}getClass(t){const e=this[Q].get(t);if(!e)throw new r(`No class registered for ${t}`);return e}setClass(t,e){e?this[Q].set(e,t):(this[Q].set(t.type,t),this[Q].set(t.type.toLowerCase(),t))}getSVGClass(t){return this[Z].get(t)}setSVGClass(t,e){this[Z].set(null!=e?e:t.type.toLowerCase(),t)}};const et=new class extends Array{remove(t){const e=this.indexOf(t);e>-1&&this.splice(e,1)}cancelAll(){const t=this.splice(0);return t.forEach(t=>t.abort()),t}cancelByCanvas(t){if(!t)return[];const e=this.filter(e=>{var s;return e.target===t||\"object\"==typeof e.target&&(null===(s=e.target)||void 0===s?void 0:s.canvas)===t});return e.forEach(t=>t.abort()),e}cancelByTarget(t){if(!t)return[];const e=this.filter(e=>e.target===t);return e.forEach(t=>t.abort()),e}};class st{constructor(){t(this,\"__eventListeners\",{})}on(t,e){if(this.__eventListeners||(this.__eventListeners={}),\"object\"==typeof t)return Object.entries(t).forEach(t=>{let[e,s]=t;this.on(e,s)}),()=>this.off(t);if(e){const s=t;return this.__eventListeners[s]||(this.__eventListeners[s]=[]),this.__eventListeners[s].push(e),()=>this.off(s,e)}return()=>!1}once(t,e){if(\"object\"==typeof t){const e=[];return Object.entries(t).forEach(t=>{let[s,i]=t;e.push(this.once(s,i))}),()=>e.forEach(t=>t())}if(e){const s=this.on(t,function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];e.call(this,...i),s()});return s}return()=>!1}_removeEventListener(t,e){if(this.__eventListeners[t])if(e){const s=this.__eventListeners[t],i=s.indexOf(e);i>-1&&s.splice(i,1)}else this.__eventListeners[t]=[]}off(t,e){if(this.__eventListeners)if(void 0===t)for(const t in this.__eventListeners)this._removeEventListener(t);else\"object\"==typeof t?Object.entries(t).forEach(t=>{let[e,s]=t;this._removeEventListener(e,s)}):this._removeEventListener(t,e)}fire(t,e){var s;if(!this.__eventListeners)return;const i=null===(s=this.__eventListeners[t])||void 0===s?void 0:s.concat();if(i)for(let t=0;t<i.length;t++)i[t].call(this,e||{})}}const it=(t,e)=>{const s=t.indexOf(e);return-1!==s&&t.splice(s,1),t},rt=t=>{if(0===t)return 1;switch(Math.abs(t)/y){case 1:case 3:return 0;case 2:return-1}return Math.cos(t)},nt=t=>{if(0===t)return 0;const e=t/y,s=Math.sign(t);switch(e){case 1:return s;case 2:return 0;case 3:return-s}return Math.sin(t)};class ot{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;\"object\"==typeof t?(this.x=t.x,this.y=t.y):(this.x=t,this.y=e)}add(t){return new ot(this.x+t.x,this.y+t.y)}addEquals(t){return this.x+=t.x,this.y+=t.y,this}scalarAdd(t){return new ot(this.x+t,this.y+t)}scalarAddEquals(t){return this.x+=t,this.y+=t,this}subtract(t){return new ot(this.x-t.x,this.y-t.y)}subtractEquals(t){return this.x-=t.x,this.y-=t.y,this}scalarSubtract(t){return new ot(this.x-t,this.y-t)}scalarSubtractEquals(t){return this.x-=t,this.y-=t,this}multiply(t){return new ot(this.x*t.x,this.y*t.y)}scalarMultiply(t){return new ot(this.x*t,this.y*t)}scalarMultiplyEquals(t){return this.x*=t,this.y*=t,this}divide(t){return new ot(this.x/t.x,this.y/t.y)}scalarDivide(t){return new ot(this.x/t,this.y/t)}scalarDivideEquals(t){return this.x/=t,this.y/=t,this}eq(t){return this.x===t.x&&this.y===t.y}lt(t){return this.x<t.x&&this.y<t.y}lte(t){return this.x<=t.x&&this.y<=t.y}gt(t){return this.x>t.x&&this.y>t.y}gte(t){return this.x>=t.x&&this.y>=t.y}lerp(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.5;return e=Math.max(Math.min(1,e),0),new ot(this.x+(t.x-this.x)*e,this.y+(t.y-this.y)*e)}distanceFrom(t){const e=this.x-t.x,s=this.y-t.y;return Math.sqrt(e*e+s*s)}midPointFrom(t){return this.lerp(t)}min(t){return new ot(Math.min(this.x,t.x),Math.min(this.y,t.y))}max(t){return new ot(Math.max(this.x,t.x),Math.max(this.y,t.y))}toString(){return`${this.x},${this.y}`}setXY(t,e){return this.x=t,this.y=e,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setFromPoint(t){return this.x=t.x,this.y=t.y,this}swap(t){const e=this.x,s=this.y;this.x=t.x,this.y=t.y,t.x=e,t.y=s}clone(){return new ot(this.x,this.y)}rotate(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:at;const s=nt(t),i=rt(t),r=this.subtract(e);return new ot(r.x*i-r.y*s,r.x*s+r.y*i).add(e)}transform(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new ot(t[0]*this.x+t[2]*this.y+(e?0:t[4]),t[1]*this.x+t[3]*this.y+(e?0:t[5]))}}const at=new ot(0,0),ht=t=>!!t&&Array.isArray(t._objects);function lt(e){class s extends e{constructor(){super(...arguments),t(this,\"_objects\",[])}_onObjectAdded(t){}_onObjectRemoved(t){}_onStackOrderChanged(t){}add(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];const i=this._objects.push(...e);return e.forEach(t=>this._onObjectAdded(t)),i}insertAt(t){for(var e=arguments.length,s=new Array(e>1?e-1:0),i=1;i<e;i++)s[i-1]=arguments[i];return this._objects.splice(t,0,...s),s.forEach(t=>this._onObjectAdded(t)),this._objects.length}remove(){const t=this._objects,e=[];for(var s=arguments.length,i=new Array(s),r=0;r<s;r++)i[r]=arguments[r];return i.forEach(s=>{const i=t.indexOf(s);-1!==i&&(t.splice(i,1),e.push(s),this._onObjectRemoved(s))}),e}forEachObject(t){this.getObjects().forEach((e,s,i)=>t(e,s,i))}getObjects(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];return 0===e.length?[...this._objects]:this._objects.filter(t=>t.isType(...e))}item(t){return this._objects[t]}isEmpty(){return 0===this._objects.length}size(){return this._objects.length}contains(t,e){return!!this._objects.includes(t)||!!e&&this._objects.some(e=>e instanceof s&&e.contains(t,!0))}complexity(){return this._objects.reduce((t,e)=>t+=e.complexity?e.complexity():0,0)}sendObjectToBack(t){return!(!t||t===this._objects[0])&&(it(this._objects,t),this._objects.unshift(t),this._onStackOrderChanged(t),!0)}bringObjectToFront(t){return!(!t||t===this._objects[this._objects.length-1])&&(it(this._objects,t),this._objects.push(t),this._onStackOrderChanged(t),!0)}sendObjectBackwards(t,e){if(!t)return!1;const s=this._objects.indexOf(t);if(0!==s){const i=this.findNewLowerIndex(t,s,e);return it(this._objects,t),this._objects.splice(i,0,t),this._onStackOrderChanged(t),!0}return!1}bringObjectForward(t,e){if(!t)return!1;const s=this._objects.indexOf(t);if(s!==this._objects.length-1){const i=this.findNewUpperIndex(t,s,e);return it(this._objects,t),this._objects.splice(i,0,t),this._onStackOrderChanged(t),!0}return!1}moveObjectTo(t,e){return t!==this._objects[e]&&(it(this._objects,t),this._objects.splice(e,0,t),this._onStackOrderChanged(t),!0)}findNewLowerIndex(t,e,s){let i;if(s){i=e;for(let s=e-1;s>=0;--s)if(t.isOverlapping(this._objects[s])){i=s;break}}else i=e-1;return i}findNewUpperIndex(t,e,s){let i;if(s){i=e;for(let s=e+1;s<this._objects.length;++s)if(t.isOverlapping(this._objects[s])){i=s;break}}else i=e+1;return i}collectObjects(t){let{left:e,top:s,width:i,height:r}=t,{includeIntersecting:n=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=[],a=new ot(e,s),h=a.add(new ot(i,r));for(let t=this._objects.length-1;t>=0;t--){const e=this._objects[t];e.selectable&&e.visible&&(n&&e.intersectsWithRect(a,h)||e.isContainedWithinRect(a,h)||n&&e.containsPoint(a)||n&&e.containsPoint(h))&&o.push(e)}return o}}return s}class ct extends st{_setOptions(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(const e in t)this.set(e,t[e])}_setObject(t){for(const e in t)this._set(e,t[e])}set(t,e){return\"object\"==typeof t?this._setObject(t):this._set(t,e),this}_set(t,e){this[t]=e}toggle(t){const e=this.get(t);return\"boolean\"==typeof e&&this.set(t,!e),this}get(t){return this[t]}}function ut(t){return g().requestAnimationFrame(t)}function dt(t){return g().cancelAnimationFrame(t)}let gt=0;const ft=()=>gt++,pt=()=>{const t=d().createElement(\"canvas\");if(!t||void 0===t.getContext)throw new r(\"Failed to create `canvas` element\");return t},mt=()=>d().createElement(\"img\"),vt=t=>{const e=pt();return e.width=t.width,e.height=t.height,e},yt=(t,e,s)=>t.toDataURL(`image/${e}`,s),_t=(t,e,s)=>new Promise((i,r)=>{t.toBlob(i,`image/${e}`,s)}),xt=t=>t*C,Ct=t=>t/C,bt=t=>t.every((t,e)=>t===b[e]),St=(t,e,s)=>new ot(t).transform(e,s),wt=t=>{const e=1/(t[0]*t[3]-t[1]*t[2]),s=[e*t[3],-e*t[1],-e*t[2],e*t[0],0,0],{x:i,y:r}=new ot(t[4],t[5]).transform(s,!0);return s[4]=-i,s[5]=-r,s},Tt=(t,e,s)=>[t[0]*e[0]+t[2]*e[1],t[1]*e[0]+t[3]*e[1],t[0]*e[2]+t[2]*e[3],t[1]*e[2]+t[3]*e[3],s?0:t[0]*e[4]+t[2]*e[5]+t[4],s?0:t[1]*e[4]+t[3]*e[5]+t[5]],Ot=(t,e)=>t.reduceRight((t,s)=>s&&t?Tt(s,t,e):s||t,void 0)||b.concat(),kt=t=>{let[e,s]=t;return Math.atan2(s,e)},Dt=t=>{const e=kt(t),s=Math.pow(t[0],2)+Math.pow(t[1],2),i=Math.sqrt(s),r=(t[0]*t[3]-t[2]*t[1])/i,n=Math.atan2(t[0]*t[2]+t[1]*t[3],s);return{angle:Ct(e),scaleX:i,scaleY:r,skewX:Ct(n),skewY:0,translateX:t[4]||0,translateY:t[5]||0}},Mt=function(t){return[1,0,0,1,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0]};function Et(){let{angle:t=0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{x:e=0,y:s=0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=xt(t),r=rt(i),n=nt(i);return[r,n,-n,r,e?e-(r*e-n*s):0,s?s-(n*e+r*s):0]}const Pt=function(t){return[t,0,0,arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,0,0]},At=t=>Math.tan(xt(t)),jt=t=>[1,0,At(t),1,0,0],Ft=t=>[1,At(t),0,1,0,0],Lt=t=>{let{scaleX:e=1,scaleY:s=1,flipX:i=!1,flipY:r=!1,skewX:n=0,skewY:o=0}=t,a=Pt(i?-e:e,r?-s:s);return n&&(a=Tt(a,jt(n),!0)),o&&(a=Tt(a,Ft(o),!0)),a},It=t=>{const{translateX:e=0,translateY:s=0,angle:i=0}=t;let r=Mt(e,s);i&&(r=Tt(r,Et({angle:i})));const n=Lt(t);return bt(n)||(r=Tt(r,n)),r},Rt=function(t){let{signal:e,crossOrigin:s=null}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(i,o){if(e&&e.aborted)return o(new n(\"loadImage\"));const a=mt();let h;e&&(h=function(t){a.src=\"\",o(t)},e.addEventListener(\"abort\",h,{once:!0}));const l=function(){a.onload=a.onerror=null,h&&(null==e||e.removeEventListener(\"abort\",h)),i(a)};t?(a.onload=l,a.onerror=function(){h&&(null==e||e.removeEventListener(\"abort\",h)),o(new r(`Error loading ${a.src}`))},s&&(a.crossOrigin=s),a.src=t):l()})},Bt=function(t){let{signal:e,reviver:s=v}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((i,r)=>{const n=[];e&&e.addEventListener(\"abort\",r,{once:!0}),Promise.all(t.map(t=>tt.getClass(t.type).fromObject(t,{signal:e}).then(e=>(s(t,e),n.push(e),e)))).then(i).catch(t=>{n.forEach(t=>{t.dispose&&t.dispose()}),r(t)}).finally(()=>{e&&e.removeEventListener(\"abort\",r)})})},$t=function(t){let{signal:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((s,i)=>{const r=[];e&&e.addEventListener(\"abort\",i,{once:!0});const n=Object.values(t).map(t=>t&&t.type&&tt.has(t.type)?Bt([t],{signal:e}).then(t=>{let[e]=t;return r.push(e),e}):t),o=Object.keys(t);Promise.all(n).then(t=>t.reduce((t,e,s)=>(t[o[s]]=e,t),{})).then(s).catch(t=>{r.forEach(t=>{t.dispose&&t.dispose()}),i(t)}).finally(()=>{e&&e.removeEventListener(\"abort\",i)})})},Xt=function(t){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]).reduce((e,s)=>(s in t&&(e[s]=t[s]),e),{})},Yt=(t,e)=>Object.keys(t).reduce((s,i)=>(e(t[i],i,t)&&(s[i]=t[i]),s),{}),Wt=(t,e)=>parseFloat(Number(t).toFixed(e)),Vt=t=>\"matrix(\"+t.map(t=>Wt(t,s.NUM_FRACTION_DIGITS)).join(\" \")+\")\",Gt=t=>!!t&&void 0!==t.toLive,zt=t=>!!t&&\"function\"==typeof t.toObject,Ht=t=>!!t&&void 0!==t.offsetX&&\"source\"in t,Nt=t=>!!t&&\"multiSelectionStacking\"in t;function Ut(t){const e=t&&qt(t);let s=0,i=0;if(!t||!e)return{left:s,top:i};let r=t;const n=e.documentElement,o=e.body||{scrollLeft:0,scrollTop:0};for(;r&&(r.parentNode||r.host)&&(r=r.parentNode||r.host,r===e?(s=o.scrollLeft||n.scrollLeft||0,i=o.scrollTop||n.scrollTop||0):(s+=r.scrollLeft||0,i+=r.scrollTop||0),1!==r.nodeType||\"fixed\"!==r.style.position););return{left:s,top:i}}const qt=t=>t.ownerDocument||null,Kt=t=>{var e;return(null===(e=t.ownerDocument)||void 0===e?void 0:e.defaultView)||null},Jt=function(t,e,s){let{width:i,height:r}=s,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;t.width=i,t.height=r,n>1&&(t.setAttribute(\"width\",(i*n).toString()),t.setAttribute(\"height\",(r*n).toString()),e.scale(n,n))},Qt=(t,e)=>{let{width:s,height:i}=e;s&&(t.style.width=\"number\"==typeof s?`${s}px`:s),i&&(t.style.height=\"number\"==typeof i?`${i}px`:i)};function Zt(t){return void 0!==t.onselectstart&&(t.onselectstart=()=>!1),t.style.userSelect=E,t}class te{constructor(e){t(this,\"_originalCanvasStyle\",void 0),t(this,\"lower\",void 0);const s=this.createLowerCanvas(e);this.lower={el:s,ctx:s.getContext(\"2d\")}}createLowerCanvas(t){const e=(s=t)&&void 0!==s.getContext?t:t&&d().getElementById(t)||pt();var s;if(e.hasAttribute(\"data-fabric\"))throw new r(\"Trying to initialize a canvas that has already been initialized. Did you forget to dispose the canvas?\");return this._originalCanvasStyle=e.style.cssText,e.setAttribute(\"data-fabric\",\"main\"),e.classList.add(\"lower-canvas\"),e}cleanupDOM(t){let{width:e,height:s}=t;const{el:i}=this.lower;i.classList.remove(\"lower-canvas\"),i.removeAttribute(\"data-fabric\"),i.setAttribute(\"width\",`${e}`),i.setAttribute(\"height\",`${s}`),i.style.cssText=this._originalCanvasStyle||\"\",this._originalCanvasStyle=void 0}setDimensions(t,e){const{el:s,ctx:i}=this.lower;Jt(s,i,t,e)}setCSSDimensions(t){Qt(this.lower.el,t)}calcOffset(){return function(t){var e;const s=t&&qt(t),i={left:0,top:0};if(!s)return i;const r=(null===(e=Kt(t))||void 0===e?void 0:e.getComputedStyle(t,null))||{};i.left+=parseInt(r.borderLeftWidth,10)||0,i.top+=parseInt(r.borderTopWidth,10)||0,i.left+=parseInt(r.paddingLeft,10)||0,i.top+=parseInt(r.paddingTop,10)||0;let n={left:0,top:0};const o=s.documentElement;void 0!==t.getBoundingClientRect&&(n=t.getBoundingClientRect());const a=Ut(t);return{left:n.left+a.left-(o.clientLeft||0)+i.left,top:n.top+a.top-(o.clientTop||0)+i.top}}(this.lower.el)}dispose(){u().dispose(this.lower.el),delete this.lower}}const ee={backgroundVpt:!0,backgroundColor:\"\",overlayVpt:!0,overlayColor:\"\",includeDefaultValues:!0,svgViewportTransformation:!0,renderOnAddRemove:!0,skipOffscreen:!0,enableRetinaScaling:!0,imageSmoothingEnabled:!0,controlsAboveOverlay:!1,allowTouchScrolling:!1,viewportTransform:[...b],patternQuality:\"best\"};class se extends(lt(ct)){get lowerCanvasEl(){var t;return null===(t=this.elements.lower)||void 0===t?void 0:t.el}get contextContainer(){var t;return null===(t=this.elements.lower)||void 0===t?void 0:t.ctx}static getDefaults(){return se.ownDefaults}constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),Object.assign(this,this.constructor.getDefaults()),this.set(e),this.initElements(t),this._setDimensionsImpl({width:this.width||this.elements.lower.el.width||0,height:this.height||this.elements.lower.el.height||0}),this.skipControlsDrawing=!1,this.viewportTransform=[...this.viewportTransform],this.calcViewportBoundaries()}initElements(t){this.elements=new te(t)}add(){const t=super.add(...arguments);return arguments.length>0&&this.renderOnAddRemove&&this.requestRenderAll(),t}insertAt(t){for(var e=arguments.length,s=new Array(e>1?e-1:0),i=1;i<e;i++)s[i-1]=arguments[i];const r=super.insertAt(t,...s);return s.length>0&&this.renderOnAddRemove&&this.requestRenderAll(),r}remove(){const t=super.remove(...arguments);return t.length>0&&this.renderOnAddRemove&&this.requestRenderAll(),t}_onObjectAdded(t){t.canvas&&t.canvas!==this&&(i(\"warn\",\"Canvas is trying to add an object that belongs to a different canvas.\\nResulting to default behavior: removing object from previous canvas and adding to new canvas\"),t.canvas.remove(t)),t._set(\"canvas\",this),t.setCoords(),this.fire(\"object:added\",{target:t}),t.fire(\"added\",{target:this})}_onObjectRemoved(t){t._set(\"canvas\",void 0),this.fire(\"object:removed\",{target:t}),t.fire(\"removed\",{target:this})}_onStackOrderChanged(){this.renderOnAddRemove&&this.requestRenderAll()}getRetinaScaling(){return this.enableRetinaScaling?f():1}calcOffset(){return this._offset=this.elements.calcOffset()}getWidth(){return this.width}getHeight(){return this.height}_setDimensionsImpl(t){let{cssOnly:e=!1,backstoreOnly:s=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e){const e={width:this.width,height:this.height,...t};this.elements.setDimensions(e,this.getRetinaScaling()),this.hasLostContext=!0,this.width=e.width,this.height=e.height}s||this.elements.setCSSDimensions(t),this.calcOffset()}setDimensions(t,e){this._setDimensionsImpl(t,e),e&&e.cssOnly||this.requestRenderAll()}getZoom(){return this.viewportTransform[0]}setViewportTransform(t){this.viewportTransform=t,this.calcViewportBoundaries(),this.renderOnAddRemove&&this.requestRenderAll()}zoomToPoint(t,e){const s=t,i=[...this.viewportTransform],r=St(t,wt(i));i[0]=e,i[3]=e;const n=St(r,i);i[4]+=s.x-n.x,i[5]+=s.y-n.y,this.setViewportTransform(i)}setZoom(t){this.zoomToPoint(new ot(0,0),t)}absolutePan(t){const e=[...this.viewportTransform];return e[4]=-t.x,e[5]=-t.y,this.setViewportTransform(e)}relativePan(t){return this.absolutePan(new ot(-t.x-this.viewportTransform[4],-t.y-this.viewportTransform[5]))}getElement(){return this.elements.lower.el}clearContext(t){t.clearRect(0,0,this.width,this.height)}getContext(){return this.elements.lower.ctx}clear(){this.remove(...this.getObjects()),this.backgroundImage=void 0,this.overlayImage=void 0,this.backgroundColor=\"\",this.overlayColor=\"\",this.clearContext(this.getContext()),this.fire(\"canvas:cleared\"),this.renderOnAddRemove&&this.requestRenderAll()}renderAll(){this.cancelRequestedRender(),this.destroyed||this.renderCanvas(this.getContext(),this._objects)}renderAndReset(){this.nextRenderHandle=0,this.renderAll()}requestRenderAll(){this.nextRenderHandle||this.disposed||this.destroyed||(this.nextRenderHandle=ut(()=>this.renderAndReset()))}calcViewportBoundaries(){const t=this.width,e=this.height,s=wt(this.viewportTransform),i=St({x:0,y:0},s),r=St({x:t,y:e},s),n=i.min(r),o=i.max(r);return this.vptCoords={tl:n,tr:new ot(o.x,n.y),bl:new ot(n.x,o.y),br:o}}cancelRequestedRender(){this.nextRenderHandle&&(dt(this.nextRenderHandle),this.nextRenderHandle=0)}drawControls(t){}renderCanvas(t,e){if(this.destroyed)return;const s=this.viewportTransform,i=this.clipPath;this.calcViewportBoundaries(),this.clearContext(t),t.imageSmoothingEnabled=this.imageSmoothingEnabled,t.patternQuality=this.patternQuality,this.fire(\"before:render\",{ctx:t}),this._renderBackground(t),t.save(),t.transform(s[0],s[1],s[2],s[3],s[4],s[5]),this._renderObjects(t,e),t.restore(),this.controlsAboveOverlay||this.skipControlsDrawing||this.drawControls(t),i&&(i._set(\"canvas\",this),i.shouldCache(),i._transformDone=!0,i.renderCache({forClipping:!0}),this.drawClipPathOnCanvas(t,i)),this._renderOverlay(t),this.controlsAboveOverlay&&!this.skipControlsDrawing&&this.drawControls(t),this.fire(\"after:render\",{ctx:t}),this.__cleanupTask&&(this.__cleanupTask(),this.__cleanupTask=void 0)}drawClipPathOnCanvas(t,e){const s=this.viewportTransform;t.save(),t.transform(...s),t.globalCompositeOperation=\"destination-in\",e.transform(t),t.scale(1/e.zoomX,1/e.zoomY),t.drawImage(e._cacheCanvas,-e.cacheTranslationX,-e.cacheTranslationY),t.restore()}_renderObjects(t,e){for(let s=0,i=e.length;s<i;++s)e[s]&&e[s].render(t)}_renderBackgroundOrOverlay(t,e){const s=this[`${e}Color`],i=this[`${e}Image`],r=this.viewportTransform,n=this[`${e}Vpt`];if(!s&&!i)return;const o=Gt(s);if(s){if(t.save(),t.beginPath(),t.moveTo(0,0),t.lineTo(this.width,0),t.lineTo(this.width,this.height),t.lineTo(0,this.height),t.closePath(),t.fillStyle=o?s.toLive(t):s,n&&t.transform(...r),o){t.transform(1,0,0,1,s.offsetX||0,s.offsetY||0);const e=s.gradientTransform||s.patternTransform;e&&t.transform(...e)}t.fill(),t.restore()}if(i){t.save();const{skipOffscreen:e}=this;this.skipOffscreen=n,n&&t.transform(...r),i.render(t),this.skipOffscreen=e,t.restore()}}_renderBackground(t){this._renderBackgroundOrOverlay(t,\"background\")}_renderOverlay(t){this._renderBackgroundOrOverlay(t,\"overlay\")}getCenterPoint(){return new ot(this.width/2,this.height/2)}centerObjectH(t){return this._centerObject(t,new ot(this.getCenterPoint().x,t.getCenterPoint().y))}centerObjectV(t){return this._centerObject(t,new ot(t.getCenterPoint().x,this.getCenterPoint().y))}centerObject(t){return this._centerObject(t,this.getCenterPoint())}viewportCenterObject(t){return this._centerObject(t,this.getVpCenter())}viewportCenterObjectH(t){return this._centerObject(t,new ot(this.getVpCenter().x,t.getCenterPoint().y))}viewportCenterObjectV(t){return this._centerObject(t,new ot(t.getCenterPoint().x,this.getVpCenter().y))}getVpCenter(){return St(this.getCenterPoint(),wt(this.viewportTransform))}_centerObject(t,e){t.setXY(e,T,T),t.setCoords(),this.renderOnAddRemove&&this.requestRenderAll()}toDatalessJSON(t){return this.toDatalessObject(t)}toObject(t){return this._toObjectMethod(\"toObject\",t)}toJSON(){return this.toObject()}toDatalessObject(t){return this._toObjectMethod(\"toDatalessObject\",t)}_toObjectMethod(t,e){const s=this.clipPath,i=s&&!s.excludeFromExport?this._toObject(s,t,e):null;return{version:m,...Xt(this,e),objects:this._objects.filter(t=>!t.excludeFromExport).map(s=>this._toObject(s,t,e)),...this.__serializeBgOverlay(t,e),...i?{clipPath:i}:null}}_toObject(t,e,s){let i;this.includeDefaultValues||(i=t.includeDefaultValues,t.includeDefaultValues=!1);const r=t[e](s);return this.includeDefaultValues||(t.includeDefaultValues=!!i),r}__serializeBgOverlay(t,e){const s={},i=this.backgroundImage,r=this.overlayImage,n=this.backgroundColor,o=this.overlayColor;return Gt(n)?n.excludeFromExport||(s.background=n.toObject(e)):n&&(s.background=n),Gt(o)?o.excludeFromExport||(s.overlay=o.toObject(e)):o&&(s.overlay=o),i&&!i.excludeFromExport&&(s.backgroundImage=this._toObject(i,t,e)),r&&!r.excludeFromExport&&(s.overlayImage=this._toObject(r,t,e)),s}toSVG(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;t.reviver=e;const s=[];return this._setSVGPreamble(s,t),this._setSVGHeader(s,t),this.clipPath&&s.push(`<g clip-path=\"url(#${this.clipPath.clipPathId})\" >\\n`),this._setSVGBgOverlayColor(s,\"background\"),this._setSVGBgOverlayImage(s,\"backgroundImage\",e),this._setSVGObjects(s,e),this.clipPath&&s.push(\"</g>\\n\"),this._setSVGBgOverlayColor(s,\"overlay\"),this._setSVGBgOverlayImage(s,\"overlayImage\",e),s.push(\"</svg>\"),s.join(\"\")}_setSVGPreamble(t,e){e.suppressPreamble||t.push('<?xml version=\"1.0\" encoding=\"',e.encoding||\"UTF-8\",'\" standalone=\"no\" ?>\\n','<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" ','\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\\n')}_setSVGHeader(t,e){const i=e.width||`${this.width}`,r=e.height||`${this.height}`,n=s.NUM_FRACTION_DIGITS,o=e.viewBox;let a;if(o)a=`viewBox=\"${o.x} ${o.y} ${o.width} ${o.height}\" `;else if(this.svgViewportTransformation){const t=this.viewportTransform;a=`viewBox=\"${Wt(-t[4]/t[0],n)} ${Wt(-t[5]/t[3],n)} ${Wt(this.width/t[0],n)} ${Wt(this.height/t[3],n)}\" `}else a=`viewBox=\"0 0 ${this.width} ${this.height}\" `;t.push(\"<svg \",'xmlns=\"http://www.w3.org/2000/svg\" ','xmlns:xlink=\"http://www.w3.org/1999/xlink\" ','version=\"1.1\" ','width=\"',i,'\" ','height=\"',r,'\" ',a,'xml:space=\"preserve\">\\n',\"<desc>Created with Fabric.js \",m,\"</desc>\\n\",\"<defs>\\n\",this.createSVGFontFacesMarkup(),this.createSVGRefElementsMarkup(),this.createSVGClipPathMarkup(e),\"</defs>\\n\")}createSVGClipPathMarkup(t){const e=this.clipPath;return e?(e.clipPathId=`CLIPPATH_${ft()}`,`<clipPath id=\"${e.clipPathId}\" >\\n${e.toClipPathSVG(t.reviver)}</clipPath>\\n`):\"\"}createSVGRefElementsMarkup(){return[\"background\",\"overlay\"].map(t=>{const e=this[`${t}Color`];if(Gt(e)){const s=this[`${t}Vpt`],i=this.viewportTransform,r={isType:()=>!1,width:this.width/(s?i[0]:1),height:this.height/(s?i[3]:1)};return e.toSVG(r,{additionalTransform:s?Vt(i):\"\"})}}).join(\"\")}createSVGFontFacesMarkup(){const t=[],e={},i=s.fontPaths;this._objects.forEach(function e(s){t.push(s),ht(s)&&s._objects.forEach(e)}),t.forEach(t=>{if(!(s=t)||\"function\"!=typeof s._renderText)return;var s;const{styles:r,fontFamily:n}=t;!e[n]&&i[n]&&(e[n]=!0,r&&Object.values(r).forEach(t=>{Object.values(t).forEach(t=>{let{fontFamily:s=\"\"}=t;!e[s]&&i[s]&&(e[s]=!0)})}))});const r=Object.keys(e).map(t=>`\\t\\t@font-face {\\n\\t\\t\\tfont-family: '${t}';\\n\\t\\t\\tsrc: url('${i[t]}');\\n\\t\\t}\\n`).join(\"\");return r?`\\t<style type=\"text/css\"><![CDATA[\\n${r}]]></style>\\n`:\"\"}_setSVGObjects(t,e){this.forEachObject(s=>{s.excludeFromExport||this._setSVGObject(t,s,e)})}_setSVGObject(t,e,s){t.push(e.toSVG(s))}_setSVGBgOverlayImage(t,e,s){const i=this[e];i&&!i.excludeFromExport&&i.toSVG&&t.push(i.toSVG(s))}_setSVGBgOverlayColor(t,e){const s=this[`${e}Color`];if(s)if(Gt(s)){const i=s.repeat||\"\",r=this.width,n=this.height,o=this[`${e}Vpt`]?Vt(wt(this.viewportTransform)):\"\";t.push(`<rect transform=\"${o} translate(${r/2},${n/2})\" x=\"${s.offsetX-r/2}\" y=\"${s.offsetY-n/2}\" width=\"${\"repeat-y\"!==i&&\"no-repeat\"!==i||!Ht(s)?r:s.source.width}\" height=\"${\"repeat-x\"!==i&&\"no-repeat\"!==i||!Ht(s)?n:s.source.height}\" fill=\"url(#SVGID_${s.id})\"></rect>\\n`)}else t.push('<rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" ','fill=\"',s,'\"',\"></rect>\\n\")}loadFromJSON(t,e){let{signal:s}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!t)return Promise.reject(new r(\"`json` is undefined\"));const{objects:i=[],...n}=\"string\"==typeof t?JSON.parse(t):t,{backgroundImage:o,background:a,overlayImage:h,overlay:l,clipPath:c}=n,u=this.renderOnAddRemove;return this.renderOnAddRemove=!1,Promise.all([Bt(i,{reviver:e,signal:s}),$t({backgroundImage:o,backgroundColor:a,overlayImage:h,overlayColor:l,clipPath:c},{signal:s})]).then(t=>{let[e,s]=t;return this.clear(),this.add(...e),this.set(n),this.set(s),this.renderOnAddRemove=u,this})}clone(t){const e=this.toObject(t);return this.cloneWithoutData().loadFromJSON(e)}cloneWithoutData(){const t=vt(this);return new this.constructor(t)}toDataURL(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{format:e=\"png\",quality:s=1,multiplier:i=1,enableRetinaScaling:r=!1}=t,n=i*(r?this.getRetinaScaling():1);return yt(this.toCanvasElement(n,t),e,s)}toBlob(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{format:e=\"png\",quality:s=1,multiplier:i=1,enableRetinaScaling:r=!1}=t,n=i*(r?this.getRetinaScaling():1);return _t(this.toCanvasElement(n,t),e,s)}toCanvasElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,{width:e,height:s,left:i,top:r,filter:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=(e||this.width)*t,a=(s||this.height)*t,h=this.getZoom(),l=this.width,c=this.height,u=this.skipControlsDrawing,d=h*t,g=this.viewportTransform,f=[d,0,0,d,(g[4]-(i||0))*t,(g[5]-(r||0))*t],p=this.enableRetinaScaling,m=vt({width:o,height:a}),v=n?this._objects.filter(t=>n(t)):this._objects;return this.enableRetinaScaling=!1,this.viewportTransform=f,this.width=o,this.height=a,this.skipControlsDrawing=!0,this.calcViewportBoundaries(),this.renderCanvas(m.getContext(\"2d\"),v),this.viewportTransform=g,this.width=l,this.height=c,this.calcViewportBoundaries(),this.enableRetinaScaling=p,this.skipControlsDrawing=u,m}dispose(){return!this.disposed&&this.elements.cleanupDOM({width:this.width,height:this.height}),et.cancelByCanvas(this),this.disposed=!0,new Promise((t,e)=>{const s=()=>{this.destroy(),t(!0)};s.kill=e,this.__cleanupTask&&this.__cleanupTask.kill(\"aborted\"),this.destroyed?t(!1):this.nextRenderHandle?this.__cleanupTask=s:s()})}destroy(){this.destroyed=!0,this.cancelRequestedRender(),this.forEachObject(t=>t.dispose()),this._objects=[],this.backgroundImage&&this.backgroundImage.dispose(),this.backgroundImage=void 0,this.overlayImage&&this.overlayImage.dispose(),this.overlayImage=void 0,this.elements.dispose()}toString(){return`#<Canvas (${this.complexity()}): { objects: ${this._objects.length} }>`}}t(se,\"ownDefaults\",ee);const ie=[\"touchstart\",\"touchmove\",\"touchend\"];const re=t=>{const e=Ut(t.target),s=function(t){const e=t.changedTouches;return e&&e[0]?e[0]:t}(t);return new ot(s.clientX+e.left,s.clientY+e.top)},ne=t=>ie.includes(t.type)||\"touch\"===t.pointerType,oe=t=>{t.preventDefault(),t.stopPropagation()},ae=t=>{let e=0,s=0,i=0,r=0;for(let n=0,o=t.length;n<o;n++){const{x:o,y:a}=t[n];(o>i||!n)&&(i=o),(o<e||!n)&&(e=o),(a>r||!n)&&(r=a),(a<s||!n)&&(s=a)}return{left:e,top:s,width:i-e,height:r-s}},he=(t,e)=>le(t,Tt(e,t.calcOwnMatrix())),le=(t,e)=>{const{translateX:s,translateY:i,scaleX:r,scaleY:n,...o}=Dt(e),a=new ot(s,i);t.flipX=!1,t.flipY=!1,Object.assign(t,o),t.set({scaleX:r,scaleY:n}),t.setPositionByOrigin(a,T,T)},ce=t=>{t.scaleX=1,t.scaleY=1,t.skewX=0,t.skewY=0,t.flipX=!1,t.flipY=!1,t.rotate(0)},ue=t=>({scaleX:t.scaleX,scaleY:t.scaleY,skewX:t.skewX,skewY:t.skewY,angle:t.angle,left:t.left,flipX:t.flipX,flipY:t.flipY,top:t.top}),de=(t,e,s)=>{const i=t/2,r=e/2,n=[new ot(-i,-r),new ot(i,-r),new ot(-i,r),new ot(i,r)].map(t=>t.transform(s)),o=ae(n);return new ot(o.width,o.height)},ge=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:b;return Tt(wt(arguments.length>1&&void 0!==arguments[1]?arguments[1]:b),t)},fe=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:b,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:b;return t.transform(ge(e,s))},pe=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:b,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:b;return t.transform(ge(e,s),!0)},me=(t,e,s)=>{const i=ge(e,s);return le(t,Tt(i,t.calcOwnMatrix())),i},ve={left:-.5,top:-.5,center:0,bottom:.5,right:.5},ye=t=>\"string\"==typeof t?ve[t]:t-.5,_e=new ot(1,0),xe=new ot,Ce=(t,e)=>t.rotate(e),be=(t,e)=>new ot(e).subtract(t),Se=t=>t.distanceFrom(xe),we=(t,e)=>Math.atan2(De(t,e),Me(t,e)),Te=t=>we(_e,t),Oe=t=>t.eq(xe)?t:t.scalarDivide(Se(t)),ke=function(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Oe(new ot(-t.y,t.x).scalarMultiply(e?1:-1))},De=(t,e)=>t.x*e.y-t.y*e.x,Me=(t,e)=>t.x*e.x+t.y*e.y,Ee=(t,e,s)=>{if(t.eq(e)||t.eq(s))return!0;const i=De(e,s),r=De(e,t),n=De(s,t);return i>=0?r>=0&&n<=0:!(r<=0&&n>=0)},Pe=\"not-allowed\";function Ae(t){return ye(t.originX)===ye(T)&&ye(t.originY)===ye(T)}function je(t){return.5-ye(t)}const Fe=(t,e)=>t[e],Le=(t,e,s,i)=>({e:t,transform:e,pointer:new ot(s,i)});function Ie(t,e,s){const i=s,r=fe(t.getCenterPoint(),t.canvas.viewportTransform,void 0),n=Te(be(r,i))+x;return Math.round(n%x/_)}function Re(t,e,s,i,r){var n;let{target:o,corner:a}=t;const h=o.controls[a],l=(null===(n=o.canvas)||void 0===n?void 0:n.getZoom())||1,c=o.padding/l,u=function(t,e,s,i){const r=t.getRelativeCenterPoint(),n=void 0!==s&&void 0!==i?t.translateToGivenOrigin(r,T,T,s,i):new ot(t.left,t.top);return(t.angle?e.rotate(-xt(t.angle),r):e).subtract(n)}(o,new ot(i,r),e,s);return u.x>=c&&(u.x-=c),u.x<=-c&&(u.x+=c),u.y>=c&&(u.y-=c),u.y<=c&&(u.y+=c),u.x-=h.offsetX,u.y-=h.offsetY,u}const Be=t=>t.replace(/\\s+/g,\" \"),$e={aliceblue:\"#F0F8FF\",antiquewhite:\"#FAEBD7\",aqua:\"#0FF\",aquamarine:\"#7FFFD4\",azure:\"#F0FFFF\",beige:\"#F5F5DC\",bisque:\"#FFE4C4\",black:\"#000\",blanchedalmond:\"#FFEBCD\",blue:\"#00F\",blueviolet:\"#8A2BE2\",brown:\"#A52A2A\",burlywood:\"#DEB887\",cadetblue:\"#5F9EA0\",chartreuse:\"#7FFF00\",chocolate:\"#D2691E\",coral:\"#FF7F50\",cornflowerblue:\"#6495ED\",cornsilk:\"#FFF8DC\",crimson:\"#DC143C\",cyan:\"#0FF\",darkblue:\"#00008B\",darkcyan:\"#008B8B\",darkgoldenrod:\"#B8860B\",darkgray:\"#A9A9A9\",darkgrey:\"#A9A9A9\",darkgreen:\"#006400\",darkkhaki:\"#BDB76B\",darkmagenta:\"#8B008B\",darkolivegreen:\"#556B2F\",darkorange:\"#FF8C00\",darkorchid:\"#9932CC\",darkred:\"#8B0000\",darksalmon:\"#E9967A\",darkseagreen:\"#8FBC8F\",darkslateblue:\"#483D8B\",darkslategray:\"#2F4F4F\",darkslategrey:\"#2F4F4F\",darkturquoise:\"#00CED1\",darkviolet:\"#9400D3\",deeppink:\"#FF1493\",deepskyblue:\"#00BFFF\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1E90FF\",firebrick:\"#B22222\",floralwhite:\"#FFFAF0\",forestgreen:\"#228B22\",fuchsia:\"#F0F\",gainsboro:\"#DCDCDC\",ghostwhite:\"#F8F8FF\",gold:\"#FFD700\",goldenrod:\"#DAA520\",gray:\"#808080\",grey:\"#808080\",green:\"#008000\",greenyellow:\"#ADFF2F\",honeydew:\"#F0FFF0\",hotpink:\"#FF69B4\",indianred:\"#CD5C5C\",indigo:\"#4B0082\",ivory:\"#FFFFF0\",khaki:\"#F0E68C\",lavender:\"#E6E6FA\",lavenderblush:\"#FFF0F5\",lawngreen:\"#7CFC00\",lemonchiffon:\"#FFFACD\",lightblue:\"#ADD8E6\",lightcoral:\"#F08080\",lightcyan:\"#E0FFFF\",lightgoldenrodyellow:\"#FAFAD2\",lightgray:\"#D3D3D3\",lightgrey:\"#D3D3D3\",lightgreen:\"#90EE90\",lightpink:\"#FFB6C1\",lightsalmon:\"#FFA07A\",lightseagreen:\"#20B2AA\",lightskyblue:\"#87CEFA\",lightslategray:\"#789\",lightslategrey:\"#789\",lightsteelblue:\"#B0C4DE\",lightyellow:\"#FFFFE0\",lime:\"#0F0\",limegreen:\"#32CD32\",linen:\"#FAF0E6\",magenta:\"#F0F\",maroon:\"#800000\",mediumaquamarine:\"#66CDAA\",mediumblue:\"#0000CD\",mediumorchid:\"#BA55D3\",mediumpurple:\"#9370DB\",mediumseagreen:\"#3CB371\",mediumslateblue:\"#7B68EE\",mediumspringgreen:\"#00FA9A\",mediumturquoise:\"#48D1CC\",mediumvioletred:\"#C71585\",midnightblue:\"#191970\",mintcream:\"#F5FFFA\",mistyrose:\"#FFE4E1\",moccasin:\"#FFE4B5\",navajowhite:\"#FFDEAD\",navy:\"#000080\",oldlace:\"#FDF5E6\",olive:\"#808000\",olivedrab:\"#6B8E23\",orange:\"#FFA500\",orangered:\"#FF4500\",orchid:\"#DA70D6\",palegoldenrod:\"#EEE8AA\",palegreen:\"#98FB98\",paleturquoise:\"#AFEEEE\",palevioletred:\"#DB7093\",papayawhip:\"#FFEFD5\",peachpuff:\"#FFDAB9\",peru:\"#CD853F\",pink:\"#FFC0CB\",plum:\"#DDA0DD\",powderblue:\"#B0E0E6\",purple:\"#800080\",rebeccapurple:\"#639\",red:\"#F00\",rosybrown:\"#BC8F8F\",royalblue:\"#4169E1\",saddlebrown:\"#8B4513\",salmon:\"#FA8072\",sandybrown:\"#F4A460\",seagreen:\"#2E8B57\",seashell:\"#FFF5EE\",sienna:\"#A0522D\",silver:\"#C0C0C0\",skyblue:\"#87CEEB\",slateblue:\"#6A5ACD\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#FFFAFA\",springgreen:\"#00FF7F\",steelblue:\"#4682B4\",tan:\"#D2B48C\",teal:\"#008080\",thistle:\"#D8BFD8\",tomato:\"#FF6347\",turquoise:\"#40E0D0\",violet:\"#EE82EE\",wheat:\"#F5DEB3\",white:\"#FFF\",whitesmoke:\"#F5F5F5\",yellow:\"#FF0\",yellowgreen:\"#9ACD32\"},Xe=(t,e,s)=>(s<0&&(s+=1),s>1&&(s-=1),s<1/6?t+6*(e-t)*s:s<.5?e:s<2/3?t+(e-t)*(2/3-s)*6:t),Ye=(t,e,s,i)=>{t/=255,e/=255,s/=255;const r=Math.max(t,e,s),n=Math.min(t,e,s);let o,a;const h=(r+n)/2;if(r===n)o=a=0;else{const i=r-n;switch(a=h>.5?i/(2-r-n):i/(r+n),r){case t:o=(e-s)/i+(e<s?6:0);break;case e:o=(s-t)/i+2;break;case s:o=(t-e)/i+4}o/=6}return[Math.round(360*o),Math.round(100*a),Math.round(100*h),i]},We=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"1\";return parseFloat(t)/(t.endsWith(\"%\")?100:1)},Ve=t=>Math.min(Math.round(t),255).toString(16).toUpperCase().padStart(2,\"0\"),Ge=t=>{let[e,s,i,r=1]=t;const n=Math.round(.3*e+.59*s+.11*i);return[n,n,n,r]};class ze{constructor(e){if(t(this,\"isUnrecognised\",!1),e)if(e instanceof ze)this.setSource([...e._source]);else if(Array.isArray(e)){const[t,s,i,r=1]=e;this.setSource([t,s,i,r])}else this.setSource(this._tryParsingColor(e));else this.setSource([0,0,0,1])}_tryParsingColor(t){return(t=t.toLowerCase())in $e&&(t=$e[t]),\"transparent\"===t?[255,255,255,0]:ze.sourceFromHex(t)||ze.sourceFromRgb(t)||ze.sourceFromHsl(t)||(this.isUnrecognised=!0)&&[0,0,0,1]}getSource(){return this._source}setSource(t){this._source=t}toRgb(){const[t,e,s]=this.getSource();return`rgb(${t},${e},${s})`}toRgba(){return`rgba(${this.getSource().join(\",\")})`}toHsl(){const[t,e,s]=Ye(...this.getSource());return`hsl(${t},${e}%,${s}%)`}toHsla(){const[t,e,s,i]=Ye(...this.getSource());return`hsla(${t},${e}%,${s}%,${i})`}toHex(){return this.toHexa().slice(0,6)}toHexa(){const[t,e,s,i]=this.getSource();return`${Ve(t)}${Ve(e)}${Ve(s)}${Ve(Math.round(255*i))}`}getAlpha(){return this.getSource()[3]}setAlpha(t){return this._source[3]=t,this}toGrayscale(){return this.setSource(Ge(this.getSource())),this}toBlackWhite(t){const[e,,,s]=Ge(this.getSource()),i=e<(t||127)?0:255;return this.setSource([i,i,i,s]),this}overlayWith(t){t instanceof ze||(t=new ze(t));const e=this.getSource(),s=t.getSource(),[i,r,n]=e.map((t,e)=>Math.round(.5*t+.5*s[e]));return this.setSource([i,r,n,e[3]]),this}static fromRgb(t){return ze.fromRgba(t)}static fromRgba(t){return new ze(ze.sourceFromRgb(t))}static sourceFromRgb(t){const e=Be(t).match(/^rgba?\\(\\s?(\\d{0,3}(?:\\.\\d+)?%?)\\s?[\\s|,]\\s?(\\d{0,3}(?:\\.\\d+)?%?)\\s?[\\s|,]\\s?(\\d{0,3}(?:\\.\\d+)?%?)\\s?(?:\\s?[,/]\\s?(\\d{0,3}(?:\\.\\d+)?%?)\\s?)?\\)$/i);if(e){const[t,s,i]=e.slice(1,4).map(t=>{const e=parseFloat(t);return t.endsWith(\"%\")?Math.round(2.55*e):e});return[t,s,i,We(e[4])]}}static fromHsl(t){return ze.fromHsla(t)}static fromHsla(t){return new ze(ze.sourceFromHsl(t))}static sourceFromHsl(t){const e=Be(t).match(/^hsla?\\(\\s?([+-]?\\d{0,3}(?:\\.\\d+)?(?:deg|turn|rad)?)\\s?[\\s|,]\\s?(\\d{0,3}(?:\\.\\d+)?%?)\\s?[\\s|,]\\s?(\\d{0,3}(?:\\.\\d+)?%?)\\s?(?:\\s?[,/]\\s?(\\d*(?:\\.\\d+)?%?)\\s?)?\\)$/i);if(!e)return;const s=(ze.parseAngletoDegrees(e[1])%360+360)%360/360,i=parseFloat(e[2])/100,r=parseFloat(e[3])/100;let n,o,a;if(0===i)n=o=a=r;else{const t=r<=.5?r*(i+1):r+i-r*i,e=2*r-t;n=Xe(e,t,s+1/3),o=Xe(e,t,s),a=Xe(e,t,s-1/3)}return[Math.round(255*n),Math.round(255*o),Math.round(255*a),We(e[4])]}static fromHex(t){return new ze(ze.sourceFromHex(t))}static sourceFromHex(t){if(t.match(/^#?(([0-9a-f]){3,4}|([0-9a-f]{2}){3,4})$/i)){const e=t.slice(t.indexOf(\"#\")+1);let s;s=e.length<=4?e.split(\"\").map(t=>t+t):e.match(/.{2}/g);const[i,r,n,o=255]=s.map(t=>parseInt(t,16));return[i,r,n,o/255]}}static parseAngletoDegrees(t){const e=t.toLowerCase(),s=parseFloat(e);return e.includes(\"rad\")?Ct(s):e.includes(\"turn\")?360*s:s}}const He=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:S;const i=/\\D{0,2}$/.exec(t),r=parseFloat(t),n=s.DPI;switch(null==i?void 0:i[0]){case\"mm\":return r*n/25.4;case\"cm\":return r*n/2.54;case\"in\":return r*n;case\"pt\":return r*n/72;case\"pc\":return r*n/72*12;case\"em\":return r*e;default:return r}},Ne=t=>{const[e,s]=t.trim().split(\" \"),[i,r]=(n=e)&&n!==E?[n.slice(1,4),n.slice(5,8)]:n===E?[n,n]:[\"Mid\",\"Mid\"];var n;return{meetOrSlice:s||\"meet\",alignX:i,alignY:r}},Ue=function(t,e){let s,i,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(e)if(e.toLive)s=`url(#SVGID_${e.id})`;else{const t=new ze(e),r=t.getAlpha();s=t.toRgb(),1!==r&&(i=r.toString())}else s=\"none\";return r?`${t}: ${s}; ${i?`${t}-opacity: ${i}; `:\"\"}`:`${t}=\"${s}\" ${i?`${t}-opacity=\"${i}\" `:\"\"}`};class qe{getSvgStyles(t){const e=this.fillRule?this.fillRule:\"nonzero\",s=this.strokeWidth?this.strokeWidth:\"0\",i=this.strokeDashArray?this.strokeDashArray.join(\" \"):E,r=this.strokeDashOffset?this.strokeDashOffset:\"0\",n=this.strokeLineCap?this.strokeLineCap:\"butt\",o=this.strokeLineJoin?this.strokeLineJoin:\"miter\",a=this.strokeMiterLimit?this.strokeMiterLimit:\"4\",h=void 0!==this.opacity?this.opacity:\"1\",l=this.visible?\"\":\" visibility: hidden;\",c=t?\"\":this.getSvgFilter(),u=Ue(H,this.fill);return[Ue(N,this.stroke),\"stroke-width: \",s,\"; \",\"stroke-dasharray: \",i,\"; \",\"stroke-linecap: \",n,\"; \",\"stroke-dashoffset: \",r,\"; \",\"stroke-linejoin: \",o,\"; \",\"stroke-miterlimit: \",a,\"; \",u,\"fill-rule: \",e,\"; \",\"opacity: \",h,\";\",c,l].join(\"\")}getSvgFilter(){return this.shadow?`filter: url(#SVGID_${this.shadow.id});`:\"\"}getSvgCommons(){return[this.id?`id=\"${this.id}\" `:\"\",this.clipPath?`clip-path=\"url(#${this.clipPath.clipPathId})\" `:\"\"].join(\"\")}getSvgTransform(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\";const s=t?this.calcTransformMatrix():this.calcOwnMatrix();return`${`transform=\"${Vt(s)}`}${e}\" `}_toSVG(t){return[\"\"]}toSVG(t){return this._createBaseSVGMarkup(this._toSVG(t),{reviver:t})}toClipPathSVG(t){return\"\\t\"+this._createBaseClipPathSVGMarkup(this._toSVG(t),{reviver:t})}_createBaseClipPathSVGMarkup(t){let{reviver:e,additionalTransform:s=\"\"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=[this.getSvgTransform(!0,s),this.getSvgCommons()].join(\"\"),r=t.indexOf(\"COMMON_PARTS\");return t[r]=i,e?e(t.join(\"\")):t.join(\"\")}_createBaseSVGMarkup(t){let{noStyle:e,reviver:s,withShadow:i,additionalTransform:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=e?\"\":`style=\"${this.getSvgStyles()}\" `,o=i?`style=\"${this.getSvgFilter()}\" `:\"\",a=this.clipPath,h=this.strokeUniform?'vector-effect=\"non-scaling-stroke\" ':\"\",l=a&&a.absolutePositioned,c=this.stroke,u=this.fill,d=this.shadow,g=[],f=t.indexOf(\"COMMON_PARTS\");let p;a&&(a.clipPathId=`CLIPPATH_${ft()}`,p=`<clipPath id=\"${a.clipPathId}\" >\\n${a.toClipPathSVG(s)}</clipPath>\\n`),l&&g.push(\"<g \",o,this.getSvgCommons(),\" >\\n\"),g.push(\"<g \",this.getSvgTransform(!1),l?\"\":o+this.getSvgCommons(),\" >\\n\");const m=[n,h,e?\"\":this.addPaintOrder(),\" \",r?`transform=\"${r}\" `:\"\"].join(\"\");return t[f]=m,Gt(u)&&g.push(u.toSVG(this)),Gt(c)&&g.push(c.toSVG(this)),d&&g.push(d.toSVG(this)),a&&g.push(p),g.push(t.join(\"\")),g.push(\"</g>\\n\"),l&&g.push(\"</g>\\n\"),s?s(g.join(\"\")):g.join(\"\")}addPaintOrder(){return this.paintFirst!==H?` paint-order=\"${this.paintFirst}\" `:\"\"}}function Ke(t){return new RegExp(\"^(\"+t.join(\"|\")+\")\\\\b\",\"i\")}const Je=\"textDecorationThickness\",Qe=[\"fontSize\",\"fontWeight\",\"fontFamily\",\"fontStyle\"],Ze=[\"underline\",\"overline\",\"linethrough\"],ts=[...Qe,\"lineHeight\",\"text\",\"charSpacing\",\"textAlign\",\"styles\",\"path\",\"pathStartOffset\",\"pathSide\",\"pathAlign\"],es=[...ts,...Ze,\"textBackgroundColor\",\"direction\",Je],ss=[...Qe,...Ze,N,\"strokeWidth\",H,\"deltaY\",\"textBackgroundColor\",Je],is={_reNewline:P,_reSpacesAndTabs:/[ \\t\\r]/g,_reSpaceAndTab:/[ \\t\\r]/,_reWords:/\\S+/g,fontSize:40,fontWeight:J,fontFamily:\"Times New Roman\",underline:!1,overline:!1,linethrough:!1,textAlign:O,fontStyle:J,lineHeight:1.16,textBackgroundColor:\"\",stroke:null,shadow:null,path:void 0,pathStartOffset:0,pathSide:O,pathAlign:\"baseline\",charSpacing:0,deltaY:0,direction:q,CACHE_FONT_SIZE:400,MIN_TEXT_WIDTH:2,superscript:{size:.6,baseline:-.35},subscript:{size:.6,baseline:.11},_fontSizeFraction:.222,offsets:{underline:.1,linethrough:-.28167,overline:-.81333},_fontSizeMult:1.13,[Je]:66.667},rs=\"justify\",ns=\"justify-left\",os=\"justify-right\",as=\"justify-center\",hs=String.raw`[-+]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][-+]?\\d+)?`,ls=String.raw`(?:\\s*,?\\s+|\\s*,\\s*)`,cs=\"http://www.w3.org/2000/svg\",us=new RegExp(\"(normal|italic)?\\\\s*(normal|small-caps)?\\\\s*(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\\\s*(\"+hs+\"(?:px|cm|mm|em|pt|pc|in)*)(?:\\\\/(normal|\"+hs+\"))?\\\\s+(.*)\"),ds={cx:O,x:O,r:\"radius\",cy:k,y:k,display:\"visible\",visibility:\"visible\",transform:\"transformMatrix\",\"fill-opacity\":\"fillOpacity\",\"fill-rule\":\"fillRule\",\"font-family\":\"fontFamily\",\"font-size\":\"fontSize\",\"font-style\":\"fontStyle\",\"font-weight\":\"fontWeight\",\"letter-spacing\":\"charSpacing\",\"paint-order\":\"paintFirst\",\"stroke-dasharray\":\"strokeDashArray\",\"stroke-dashoffset\":\"strokeDashOffset\",\"stroke-linecap\":\"strokeLineCap\",\"stroke-linejoin\":\"strokeLineJoin\",\"stroke-miterlimit\":\"strokeMiterLimit\",\"stroke-opacity\":\"strokeOpacity\",\"stroke-width\":\"strokeWidth\",\"text-decoration\":\"textDecoration\",\"text-anchor\":\"textAnchor\",opacity:\"opacity\",\"clip-path\":\"clipPath\",\"clip-rule\":\"clipRule\",\"vector-effect\":\"strokeUniform\",\"image-rendering\":\"imageSmoothing\",\"text-decoration-thickness\":Je},gs=\"font-size\",fs=\"clip-path\",ps=Ke([\"path\",\"circle\",\"polygon\",\"polyline\",\"ellipse\",\"rect\",\"line\",\"image\",\"text\"]),ms=Ke([\"symbol\",\"image\",\"marker\",\"pattern\",\"view\",\"svg\"]),vs=Ke([\"symbol\",\"g\",\"a\",\"svg\",\"clipPath\",\"defs\"]),ys=new RegExp(String.raw`^\\s*(${hs})${ls}(${hs})${ls}(${hs})${ls}(${hs})\\s*$`),_s=\"(-?\\\\d+(?:\\\\.\\\\d*)?(?:px)?(?:\\\\s?|$))?\",xs=new RegExp(\"(?:\\\\s|^)\"+_s+_s+\"(\"+hs+\"?(?:px)?)?(?:\\\\s?|$)(?:$|\\\\s)\");class Cs{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e=\"string\"==typeof t?Cs.parseShadow(t):t;Object.assign(this,Cs.ownDefaults,e),this.id=ft()}static parseShadow(t){const e=t.trim(),[,s=0,i=0,r=0]=(xs.exec(e)||[]).map(t=>parseFloat(t)||0);return{color:(e.replace(xs,\"\")||\"rgb(0,0,0)\").trim(),offsetX:s,offsetY:i,blur:r}}toString(){return[this.offsetX,this.offsetY,this.blur,this.color].join(\"px \")}toSVG(t){const e=Ce(new ot(this.offsetX,this.offsetY),xt(-t.angle)),i=new ze(this.color);let r=40,n=40;return t.width&&t.height&&(r=100*Wt((Math.abs(e.x)+this.blur)/t.width,s.NUM_FRACTION_DIGITS)+20,n=100*Wt((Math.abs(e.y)+this.blur)/t.height,s.NUM_FRACTION_DIGITS)+20),t.flipX&&(e.x*=-1),t.flipY&&(e.y*=-1),`<filter id=\"SVGID_${this.id}\" y=\"-${n}%\" height=\"${100+2*n}%\" x=\"-${r}%\" width=\"${100+2*r}%\" >\\n\\t<feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"${Wt(this.blur?this.blur/2:0,s.NUM_FRACTION_DIGITS)}\"></feGaussianBlur>\\n\\t<feOffset dx=\"${Wt(e.x,s.NUM_FRACTION_DIGITS)}\" dy=\"${Wt(e.y,s.NUM_FRACTION_DIGITS)}\" result=\"oBlur\" ></feOffset>\\n\\t<feFlood flood-color=\"${i.toRgb()}\" flood-opacity=\"${i.getAlpha()}\"/>\\n\\t<feComposite in2=\"oBlur\" operator=\"in\" />\\n\\t<feMerge>\\n\\t\\t<feMergeNode></feMergeNode>\\n\\t\\t<feMergeNode in=\"SourceGraphic\"></feMergeNode>\\n\\t</feMerge>\\n</filter>\\n`}toObject(){const t={color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY,affectStroke:this.affectStroke,nonScaling:this.nonScaling,type:this.constructor.type},e=Cs.ownDefaults;return this.includeDefaultValues?t:Yt(t,(t,s)=>t!==e[s])}static async fromObject(t){return new this(t)}}t(Cs,\"ownDefaults\",{color:\"rgb(0,0,0)\",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,nonScaling:!1}),t(Cs,\"type\",\"shadow\"),tt.setClass(Cs,\"shadow\");const bs=(t,e,s)=>Math.max(t,Math.min(e,s)),Ss=[k,O,W,V,\"flipX\",\"flipY\",\"originX\",\"originY\",\"angle\",\"opacity\",\"globalCompositeOperation\",\"shadow\",\"visible\",G,z],ws=[H,N,\"strokeWidth\",\"strokeDashArray\",\"width\",\"height\",\"paintFirst\",\"strokeUniform\",\"strokeLineCap\",\"strokeDashOffset\",\"strokeLineJoin\",\"strokeMiterLimit\",\"backgroundColor\",\"clipPath\"],Ts={top:0,left:0,width:0,height:0,angle:0,flipX:!1,flipY:!1,scaleX:1,scaleY:1,minScaleLimit:0,skewX:0,skewY:0,originX:T,originY:T,strokeWidth:1,strokeUniform:!1,padding:0,opacity:1,paintFirst:H,fill:\"rgb(0,0,0)\",fillRule:\"nonzero\",stroke:null,strokeDashArray:null,strokeDashOffset:0,strokeLineCap:\"butt\",strokeLineJoin:\"miter\",strokeMiterLimit:4,globalCompositeOperation:\"source-over\",backgroundColor:\"\",shadow:null,visible:!0,includeDefaultValues:!0,excludeFromExport:!1,objectCaching:!0,clipPath:void 0,inverted:!1,absolutePositioned:!1,centeredRotation:!0,centeredScaling:!1,dirty:!0},Os=(t,e,s,i)=>(t<Math.abs(e)?(t=e,i=s/4):i=0===e&&0===t?s/x*Math.asin(1):s/x*Math.asin(e/t),{a:t,c:e,p:s,s:i}),ks=(t,e,s,i,r)=>t*Math.pow(2,10*(i-=1))*Math.sin((i*r-e)*x/s),Ds=(t,e,s,i)=>-s*Math.cos(t/i*y)+s+e,Ms=(t,e,s,i)=>(t/=i)<1/2.75?s*(7.5625*t*t)+e:t<2/2.75?s*(7.5625*(t-=1.5/2.75)*t+.75)+e:t<2.5/2.75?s*(7.5625*(t-=2.25/2.75)*t+.9375)+e:s*(7.5625*(t-=2.625/2.75)*t+.984375)+e,Es=(t,e,s,i)=>s-Ms(i-t,0,s,i)+e;var Ps=Object.freeze({__proto__:null,defaultEasing:Ds,easeInBack:function(t,e,s,i){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1.70158;return s*(t/=i)*t*((r+1)*t-r)+e},easeInBounce:Es,easeInCirc:(t,e,s,i)=>-s*(Math.sqrt(1-(t/=i)*t)-1)+e,easeInCubic:(t,e,s,i)=>s*(t/i)**3+e,easeInElastic:(t,e,s,i)=>{const r=s;let n=0;if(0===t)return e;if(1===(t/=i))return e+s;n||(n=.3*i);const{a:o,s:a,p:h}=Os(r,s,n,1.70158);return-ks(o,a,h,t,i)+e},easeInExpo:(t,e,s,i)=>0===t?e:s*2**(10*(t/i-1))+e,easeInOutBack:function(t,e,s,i){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1.70158;return(t/=i/2)<1?s/2*(t*t*((1+(r*=1.525))*t-r))+e:s/2*((t-=2)*t*((1+(r*=1.525))*t+r)+2)+e},easeInOutBounce:(t,e,s,i)=>t<i/2?.5*Es(2*t,0,s,i)+e:.5*Ms(2*t-i,0,s,i)+.5*s+e,easeInOutCirc:(t,e,s,i)=>(t/=i/2)<1?-s/2*(Math.sqrt(1-t**2)-1)+e:s/2*(Math.sqrt(1-(t-=2)*t)+1)+e,easeInOutCubic:(t,e,s,i)=>(t/=i/2)<1?s/2*t**3+e:s/2*((t-2)**3+2)+e,easeInOutElastic:(t,e,s,i)=>{const r=s;let n=0;if(0===t)return e;if(2===(t/=i/2))return e+s;n||(n=i*(.3*1.5));const{a:o,s:a,p:h,c:l}=Os(r,s,n,1.70158);return t<1?-.5*ks(o,a,h,t,i)+e:o*Math.pow(2,-10*(t-=1))*Math.sin((t*i-a)*x/h)*.5+l+e},easeInOutExpo:(t,e,s,i)=>0===t?e:t===i?e+s:(t/=i/2)<1?s/2*2**(10*(t-1))+e:s/2*-(2**(-10*--t)+2)+e,easeInOutQuad:(t,e,s,i)=>(t/=i/2)<1?s/2*t**2+e:-s/2*(--t*(t-2)-1)+e,easeInOutQuart:(t,e,s,i)=>(t/=i/2)<1?s/2*t**4+e:-s/2*((t-=2)*t**3-2)+e,easeInOutQuint:(t,e,s,i)=>(t/=i/2)<1?s/2*t**5+e:s/2*((t-2)**5+2)+e,easeInOutSine:(t,e,s,i)=>-s/2*(Math.cos(Math.PI*t/i)-1)+e,easeInQuad:(t,e,s,i)=>s*(t/=i)*t+e,easeInQuart:(t,e,s,i)=>s*(t/=i)*t**3+e,easeInQuint:(t,e,s,i)=>s*(t/i)**5+e,easeInSine:(t,e,s,i)=>-s*Math.cos(t/i*y)+s+e,easeOutBack:function(t,e,s,i){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1.70158;return s*((t=t/i-1)*t*((r+1)*t+r)+1)+e},easeOutBounce:Ms,easeOutCirc:(t,e,s,i)=>s*Math.sqrt(1-(t=t/i-1)*t)+e,easeOutCubic:(t,e,s,i)=>s*((t/i-1)**3+1)+e,easeOutElastic:(t,e,s,i)=>{const r=s;let n=0;if(0===t)return e;if(1===(t/=i))return e+s;n||(n=.3*i);const{a:o,s:a,p:h,c:l}=Os(r,s,n,1.70158);return o*2**(-10*t)*Math.sin((t*i-a)*x/h)+l+e},easeOutExpo:(t,e,s,i)=>t===i?e+s:s*-(2**(-10*t/i)+1)+e,easeOutQuad:(t,e,s,i)=>-s*(t/=i)*(t-2)+e,easeOutQuart:(t,e,s,i)=>-s*((t=t/i-1)*t**3-1)+e,easeOutQuint:(t,e,s,i)=>s*((t/i-1)**5+1)+e,easeOutSine:(t,e,s,i)=>s*Math.sin(t/i*y)+e});const As=()=>!1;class js{constructor(e){let{startValue:s,byValue:i,duration:r=500,delay:n=0,easing:o=Ds,onStart:a=v,onChange:h=v,onComplete:l=v,abort:c=As,target:u}=e;t(this,\"_state\",\"pending\"),t(this,\"durationProgress\",0),t(this,\"valueProgress\",0),this.tick=this.tick.bind(this),this.duration=r,this.delay=n,this.easing=o,this._onStart=a,this._onChange=h,this._onComplete=l,this._abort=c,this.target=u,this.startValue=s,this.byValue=i,this.value=this.startValue,this.endValue=Object.freeze(this.calculate(this.duration).value)}get state(){return this._state}isDone(){return\"aborted\"===this._state||\"completed\"===this._state}start(){const t=t=>{\"pending\"===this._state&&(this.startTime=t||+new Date,this._state=\"running\",this._onStart(),this.tick(this.startTime))};this.register(),this.delay>0?setTimeout(()=>ut(t),this.delay):ut(t)}tick(t){const e=(t||+new Date)-this.startTime,s=Math.min(e,this.duration);this.durationProgress=s/this.duration;const{value:i,valueProgress:r}=this.calculate(s);this.value=Object.freeze(i),this.valueProgress=r,\"aborted\"!==this._state&&(this._abort(this.value,this.valueProgress,this.durationProgress)?(this._state=\"aborted\",this.unregister()):e>=this.duration?(this.durationProgress=this.valueProgress=1,this._onChange(this.endValue,this.valueProgress,this.durationProgress),this._state=\"completed\",this._onComplete(this.endValue,this.valueProgress,this.durationProgress),this.unregister()):(this._onChange(this.value,this.valueProgress,this.durationProgress),ut(this.tick)))}register(){et.push(this)}unregister(){et.remove(this)}abort(){this._state=\"aborted\",this.unregister()}}class Fs extends js{constructor(t){let{startValue:e=0,endValue:s=100,...i}=t;super({...i,startValue:e,byValue:s-e})}calculate(t){const e=this.easing(t,this.startValue,this.byValue,this.duration);return{value:e,valueProgress:Math.abs((e-this.startValue)/this.byValue)}}}class Ls extends js{constructor(t){let{startValue:e=[0],endValue:s=[100],...i}=t;super({...i,startValue:e,byValue:s.map((t,s)=>t-e[s])})}calculate(t){const e=this.startValue.map((e,s)=>this.easing(t,e,this.byValue[s],this.duration,s));return{value:e,valueProgress:Math.abs((e[0]-this.startValue[0])/this.byValue[0])}}}const Is=(t,e,s,i)=>e+s*(1-Math.cos(t/i*y)),Rs=t=>t&&((e,s,i)=>t(new ze(e).toRgba(),s,i));class Bs extends js{constructor(t){let{startValue:e,endValue:s,easing:i=Is,onChange:r,onComplete:n,abort:o,...a}=t;const h=new ze(e).getSource(),l=new ze(s).getSource();super({...a,startValue:h,byValue:l.map((t,e)=>t-h[e]),easing:i,onChange:Rs(r),onComplete:Rs(n),abort:Rs(o)})}calculate(t){const[e,s,i,r]=this.startValue.map((e,s)=>this.easing(t,e,this.byValue[s],this.duration,s)),n=[...[e,s,i].map(Math.round),bs(0,r,1)];return{value:n,valueProgress:n.map((t,e)=>0!==this.byValue[e]?Math.abs((t-this.startValue[e])/this.byValue[e]):0).find(t=>0!==t)||0}}}function $s(t){const e=(t=>Array.isArray(t.startValue)||Array.isArray(t.endValue))(t)?new Ls(t):new Fs(t);return e.start(),e}function Xs(t){const e=new Bs(t);return e.start(),e}class Ys{constructor(t){this.status=t,this.points=[]}includes(t){return this.points.some(e=>e.eq(t))}append(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];return this.points=this.points.concat(e.filter(t=>!this.includes(t))),this}static isPointContained(t,e,s){let i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(e.eq(s))return t.eq(e);if(e.x===s.x)return t.x===e.x&&(i||t.y>=Math.min(e.y,s.y)&&t.y<=Math.max(e.y,s.y));if(e.y===s.y)return t.y===e.y&&(i||t.x>=Math.min(e.x,s.x)&&t.x<=Math.max(e.x,s.x));{const r=be(e,s),n=be(e,t).divide(r);return i?Math.abs(n.x)===Math.abs(n.y):n.x===n.y&&n.x>=0&&n.x<=1}}static isPointInPolygon(t,e){const s=new ot(t).setX(Math.min(t.x-1,...e.map(t=>t.x)));let i=0;for(let r=0;r<e.length;r++){const n=this.intersectSegmentSegment(e[r],e[(r+1)%e.length],t,s);if(n.includes(t))return!0;i+=Number(\"Intersection\"===n.status)}return i%2==1}static intersectLineLine(t,e,s,i){let r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],n=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];const o=e.x-t.x,a=e.y-t.y,h=i.x-s.x,l=i.y-s.y,c=t.x-s.x,u=t.y-s.y,d=h*u-l*c,g=o*u-a*c,f=l*o-h*a;if(0!==f){const e=d/f,s=g/f;return(r||0<=e&&e<=1)&&(n||0<=s&&s<=1)?new Ys(\"Intersection\").append(new ot(t.x+e*o,t.y+e*a)):new Ys}if(0===d||0===g){const o=r||n||Ys.isPointContained(t,s,i)||Ys.isPointContained(e,s,i)||Ys.isPointContained(s,t,e)||Ys.isPointContained(i,t,e);return new Ys(o?\"Coincident\":void 0)}return new Ys(\"Parallel\")}static intersectSegmentLine(t,e,s,i){return Ys.intersectLineLine(t,e,s,i,!1,!0)}static intersectSegmentSegment(t,e,s,i){return Ys.intersectLineLine(t,e,s,i,!1,!1)}static intersectLinePolygon(t,e,s){let i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const r=new Ys,n=s.length;for(let o,a,h,l=0;l<n;l++){if(o=s[l],a=s[(l+1)%n],h=Ys.intersectLineLine(t,e,o,a,i,!1),\"Coincident\"===h.status)return h;r.append(...h.points)}return r.points.length>0&&(r.status=\"Intersection\"),r}static intersectSegmentPolygon(t,e,s){return Ys.intersectLinePolygon(t,e,s,!1)}static intersectPolygonPolygon(t,e){const s=new Ys,i=t.length,r=[];for(let n=0;n<i;n++){const o=t[n],a=t[(n+1)%i],h=Ys.intersectSegmentPolygon(o,a,e);\"Coincident\"===h.status?(r.push(h),s.append(o,a)):s.append(...h.points)}return r.length>0&&r.length===t.length?new Ys(\"Coincident\"):(s.points.length>0&&(s.status=\"Intersection\"),s)}static intersectPolygonRectangle(t,e,s){const i=e.min(s),r=e.max(s),n=new ot(r.x,i.y),o=new ot(i.x,r.y);return Ys.intersectPolygonPolygon(t,[i,n,r,o])}}class Ws extends ct{getX(){return this.getXY().x}setX(t){this.setXY(this.getXY().setX(t))}getY(){return this.getXY().y}setY(t){this.setXY(this.getXY().setY(t))}getRelativeX(){return this.left}setRelativeX(t){this.left=t}getRelativeY(){return this.top}setRelativeY(t){this.top=t}getXY(){const t=this.getRelativeXY();return this.group?St(t,this.group.calcTransformMatrix()):t}setXY(t,e,s){this.group&&(t=St(t,wt(this.group.calcTransformMatrix()))),this.setRelativeXY(t,e,s)}getRelativeXY(){return new ot(this.left,this.top)}setRelativeXY(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.originX,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.originY;this.setPositionByOrigin(t,e,s)}isStrokeAccountedForInDimensions(){return!1}getCoords(){const{tl:t,tr:e,br:s,bl:i}=this.aCoords||(this.aCoords=this.calcACoords()),r=[t,e,s,i];if(this.group){const t=this.group.calcTransformMatrix();return r.map(e=>St(e,t))}return r}intersectsWithRect(t,e){return\"Intersection\"===Ys.intersectPolygonRectangle(this.getCoords(),t,e).status}intersectsWithObject(t){const e=Ys.intersectPolygonPolygon(this.getCoords(),t.getCoords());return\"Intersection\"===e.status||\"Coincident\"===e.status||t.isContainedWithinObject(this)||this.isContainedWithinObject(t)}isContainedWithinObject(t){return this.getCoords().every(e=>t.containsPoint(e))}isContainedWithinRect(t,e){const{left:s,top:i,width:r,height:n}=this.getBoundingRect();return s>=t.x&&s+r<=e.x&&i>=t.y&&i+n<=e.y}isOverlapping(t){return this.intersectsWithObject(t)||this.isContainedWithinObject(t)||t.isContainedWithinObject(this)}containsPoint(t){return Ys.isPointInPolygon(t,this.getCoords())}isOnScreen(){if(!this.canvas)return!1;const{tl:t,br:e}=this.canvas.vptCoords;return!!this.getCoords().some(s=>s.x<=e.x&&s.x>=t.x&&s.y<=e.y&&s.y>=t.y)||(!!this.intersectsWithRect(t,e)||this.containsPoint(t.midPointFrom(e)))}isPartiallyOnScreen(){if(!this.canvas)return!1;const{tl:t,br:e}=this.canvas.vptCoords;if(this.intersectsWithRect(t,e))return!0;return this.getCoords().every(s=>(s.x>=e.x||s.x<=t.x)&&(s.y>=e.y||s.y<=t.y))&&this.containsPoint(t.midPointFrom(e))}getBoundingRect(){return ae(this.getCoords())}getScaledWidth(){return this._getTransformedDimensions().x}getScaledHeight(){return this._getTransformedDimensions().y}scale(t){this._set(W,t),this._set(V,t),this.setCoords()}scaleToWidth(t){const e=this.getBoundingRect().width/this.getScaledWidth();return this.scale(t/this.width/e)}scaleToHeight(t){const e=this.getBoundingRect().height/this.getScaledHeight();return this.scale(t/this.height/e)}getCanvasRetinaScaling(){var t;return(null===(t=this.canvas)||void 0===t?void 0:t.getRetinaScaling())||1}getTotalAngle(){return this.group?Ct(kt(this.calcTransformMatrix())):this.angle}getViewportTransform(){var t;return(null===(t=this.canvas)||void 0===t?void 0:t.viewportTransform)||b.concat()}calcACoords(){const t=Et({angle:this.angle}),{x:e,y:s}=this.getRelativeCenterPoint(),i=Mt(e,s),r=Tt(i,t),n=this._getTransformedDimensions(),o=n.x/2,a=n.y/2;return{tl:St({x:-o,y:-a},r),tr:St({x:o,y:-a},r),bl:St({x:-o,y:a},r),br:St({x:o,y:a},r)}}setCoords(){this.aCoords=this.calcACoords()}transformMatrixKey(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=[];return!t&&this.group&&(e=this.group.transformMatrixKey(t)),e.push(this.top,this.left,this.width,this.height,this.scaleX,this.scaleY,this.angle,this.strokeWidth,this.skewX,this.skewY,+this.flipX,+this.flipY,ye(this.originX),ye(this.originY)),e}calcTransformMatrix(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.calcOwnMatrix();if(t||!this.group)return e;const s=this.transformMatrixKey(t),i=this.matrixCache;return i&&i.key.every((t,e)=>t===s[e])?i.value:(this.group&&(e=Tt(this.group.calcTransformMatrix(!1),e)),this.matrixCache={key:s,value:e},e)}calcOwnMatrix(){const t=this.transformMatrixKey(!0),e=this.ownMatrixCache;if(e&&e.key.every((e,s)=>e===t[s]))return e.value;const s=this.getRelativeCenterPoint(),i={angle:this.angle,translateX:s.x,translateY:s.y,scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,flipX:this.flipX,flipY:this.flipY},r=It(i);return this.ownMatrixCache={key:t,value:r},r}_getNonTransformedDimensions(){return new ot(this.width,this.height).scalarAdd(this.strokeWidth)}_calculateCurrentDimensions(t){return this._getTransformedDimensions(t).transform(this.getViewportTransform(),!0).scalarAdd(2*this.padding)}_getTransformedDimensions(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e={scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,width:this.width,height:this.height,strokeWidth:this.strokeWidth,...t},s=e.strokeWidth;let i=s,r=0;this.strokeUniform&&(i=0,r=s);const n=e.width+i,o=e.height+i;let a;return a=0===e.skewX&&0===e.skewY?new ot(n*e.scaleX,o*e.scaleY):de(n,o,Lt(e)),a.scalarAdd(r)}translateToGivenOrigin(t,e,s,i,r){let n=t.x,o=t.y;const a=ye(i)-ye(e),h=ye(r)-ye(s);if(a||h){const t=this._getTransformedDimensions();n+=a*t.x,o+=h*t.y}return new ot(n,o)}translateToCenterPoint(t,e,s){if(e===T&&s===T)return t;const i=this.translateToGivenOrigin(t,e,s,T,T);return this.angle?i.rotate(xt(this.angle),t):i}translateToOriginPoint(t,e,s){const i=this.translateToGivenOrigin(t,T,T,e,s);return this.angle?i.rotate(xt(this.angle),t):i}getCenterPoint(){const t=this.getRelativeCenterPoint();return this.group?St(t,this.group.calcTransformMatrix()):t}getRelativeCenterPoint(){return this.translateToCenterPoint(new ot(this.left,this.top),this.originX,this.originY)}getPointByOrigin(t,e){return this.getPositionByOrigin(t,e)}getPositionByOrigin(t,e){return this.translateToOriginPoint(this.getRelativeCenterPoint(),t,e)}setPositionByOrigin(t,e,s){const i=this.translateToCenterPoint(t,e,s),r=this.translateToOriginPoint(i,this.originX,this.originY);this.set({left:r.x,top:r.y})}_getLeftTopCoords(){return this.getPositionByOrigin(O,k)}positionByLeftTop(t){return this.setPositionByOrigin(t,O,k)}}let Vs=class e extends Ws{static getDefaults(){return e.ownDefaults}get type(){const t=this.constructor.type;return\"FabricObject\"===t?\"object\":t.toLowerCase()}set type(t){i(\"warn\",\"Setting type has no effect\",t)}constructor(s){super(),t(this,\"_cacheContext\",null),Object.assign(this,e.ownDefaults),this.setOptions(s)}_createCacheCanvas(){this._cacheCanvas=pt(),this._cacheContext=this._cacheCanvas.getContext(\"2d\"),this._updateCacheCanvas(),this.dirty=!0}_limitCacheSize(t){const e=t.width,i=t.height,r=s.maxCacheSideLimit,n=s.minCacheSideLimit;if(e<=r&&i<=r&&e*i<=s.perfLimitSizeTotal)return e<n&&(t.width=n),i<n&&(t.height=n),t;const o=e/i,[a,h]=p.limitDimsByArea(o),l=bs(n,a,r),c=bs(n,h,r);return e>l&&(t.zoomX/=e/l,t.width=l,t.capped=!0),i>c&&(t.zoomY/=i/c,t.height=c,t.capped=!0),t}_getCacheCanvasDimensions(){const t=this.getTotalObjectScaling(),e=this._getTransformedDimensions({skewX:0,skewY:0}),s=e.x*t.x/this.scaleX,i=e.y*t.y/this.scaleY;return{width:Math.ceil(s+2),height:Math.ceil(i+2),zoomX:t.x,zoomY:t.y,x:s,y:i}}_updateCacheCanvas(){const t=this._cacheCanvas,e=this._cacheContext,{width:s,height:i,zoomX:r,zoomY:n,x:o,y:a}=this._limitCacheSize(this._getCacheCanvasDimensions()),h=s!==t.width||i!==t.height,l=this.zoomX!==r||this.zoomY!==n;if(!t||!e)return!1;if(h||l){s!==t.width||i!==t.height?(t.width=s,t.height=i):(e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,t.width,t.height));const h=o/2,l=a/2;return this.cacheTranslationX=Math.round(t.width/2-h)+h,this.cacheTranslationY=Math.round(t.height/2-l)+l,e.translate(this.cacheTranslationX,this.cacheTranslationY),e.scale(r,n),this.zoomX=r,this.zoomY=n,!0}return!1}setOptions(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._setOptions(t)}transform(t){const e=this.group&&!this.group._transformDone||this.group&&this.canvas&&t===this.canvas.contextTop,s=this.calcTransformMatrix(!e);t.transform(s[0],s[1],s[2],s[3],s[4],s[5])}getObjectScaling(){if(!this.group)return new ot(Math.abs(this.scaleX),Math.abs(this.scaleY));const t=Dt(this.calcTransformMatrix());return new ot(Math.abs(t.scaleX),Math.abs(t.scaleY))}getTotalObjectScaling(){const t=this.getObjectScaling();if(this.canvas){const e=this.canvas.getZoom(),s=this.getCanvasRetinaScaling();return t.scalarMultiply(e*s)}return t}getObjectOpacity(){let t=this.opacity;return this.group&&(t*=this.group.getObjectOpacity()),t}_constrainScale(t){return Math.abs(t)<this.minScaleLimit?t<0?-this.minScaleLimit:this.minScaleLimit:0===t?1e-4:t}_set(t,e){t!==W&&t!==V||(e=this._constrainScale(e)),t===W&&e<0?(this.flipX=!this.flipX,e*=-1):\"scaleY\"===t&&e<0?(this.flipY=!this.flipY,e*=-1):\"shadow\"!==t||!e||e instanceof Cs||(e=new Cs(e));const s=this[t]!==e;return this[t]=e,s&&this.constructor.cacheProperties.includes(t)&&(this.dirty=!0),this.parent&&(this.dirty||s&&this.constructor.stateProperties.includes(t))&&this.parent._set(\"dirty\",!0),this}isNotVisible(){return 0===this.opacity||!this.width&&!this.height&&0===this.strokeWidth||!this.visible}render(t){this.isNotVisible()||this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(t.save(),this._setupCompositeOperation(t),this.drawSelectionBackground(t),this.transform(t),this._setOpacity(t),this._setShadow(t),this.shouldCache()?(this.renderCache(),this.drawCacheOnCanvas(t)):(this._removeCacheCanvas(),this.drawObject(t,!1,{}),this.dirty=!1),t.restore())}drawSelectionBackground(t){}renderCache(t){if(t=t||{},this._cacheCanvas&&this._cacheContext||this._createCacheCanvas(),this.isCacheDirty()&&this._cacheContext){const{zoomX:e,zoomY:s,cacheTranslationX:i,cacheTranslationY:r}=this,{width:n,height:o}=this._cacheCanvas;this.drawObject(this._cacheContext,t.forClipping,{zoomX:e,zoomY:s,cacheTranslationX:i,cacheTranslationY:r,width:n,height:o,parentClipPaths:[]}),this.dirty=!1}}_removeCacheCanvas(){this._cacheCanvas=void 0,this._cacheContext=null}hasStroke(){return!!this.stroke&&\"transparent\"!==this.stroke&&0!==this.strokeWidth}hasFill(){return!!this.fill&&\"transparent\"!==this.fill}needsItsOwnCache(){return!!(this.paintFirst===N&&this.hasFill()&&this.hasStroke()&&this.shadow)||!!this.clipPath}shouldCache(){return this.ownCaching=this.objectCaching&&(!this.parent||!this.parent.isOnACache())||this.needsItsOwnCache(),this.ownCaching}willDrawShadow(){return!!this.shadow&&(0!==this.shadow.offsetX||0!==this.shadow.offsetY)}drawClipPathOnCache(t,e,s){t.save(),e.inverted?t.globalCompositeOperation=\"destination-out\":t.globalCompositeOperation=\"destination-in\",t.setTransform(1,0,0,1,0,0),t.drawImage(s,0,0),t.restore()}drawObject(t,e,s){const i=this.fill,r=this.stroke;e?(this.fill=\"black\",this.stroke=\"\",this._setClippingProperties(t)):this._renderBackground(t),this._render(t),this._drawClipPath(t,this.clipPath,s),this.fill=i,this.stroke=r}createClipPathLayer(t,e){const s=vt(e),i=s.getContext(\"2d\");if(i.translate(e.cacheTranslationX,e.cacheTranslationY),i.scale(e.zoomX,e.zoomY),t._cacheCanvas=s,e.parentClipPaths.forEach(t=>{t.transform(i)}),e.parentClipPaths.push(t),t.absolutePositioned){const t=wt(this.calcTransformMatrix());i.transform(t[0],t[1],t[2],t[3],t[4],t[5])}return t.transform(i),t.drawObject(i,!0,e),s}_drawClipPath(t,e,s){if(!e)return;e._transformDone=!0;const i=this.createClipPathLayer(e,s);this.drawClipPathOnCache(t,e,i)}drawCacheOnCanvas(t){t.scale(1/this.zoomX,1/this.zoomY),t.drawImage(this._cacheCanvas,-this.cacheTranslationX,-this.cacheTranslationY)}isCacheDirty(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.isNotVisible())return!1;const e=this._cacheCanvas,s=this._cacheContext;return!(!e||!s||t||!this._updateCacheCanvas())||!!(this.dirty||this.clipPath&&this.clipPath.absolutePositioned)&&(e&&s&&!t&&(s.save(),s.setTransform(1,0,0,1,0,0),s.clearRect(0,0,e.width,e.height),s.restore()),!0)}_renderBackground(t){if(!this.backgroundColor)return;const e=this._getNonTransformedDimensions();t.fillStyle=this.backgroundColor,t.fillRect(-e.x/2,-e.y/2,e.x,e.y),this._removeShadow(t)}_setOpacity(t){this.group&&!this.group._transformDone?t.globalAlpha=this.getObjectOpacity():t.globalAlpha*=this.opacity}_setStrokeStyles(t,e){const s=e.stroke;s&&(t.lineWidth=e.strokeWidth,t.lineCap=e.strokeLineCap,t.lineDashOffset=e.strokeDashOffset,t.lineJoin=e.strokeLineJoin,t.miterLimit=e.strokeMiterLimit,Gt(s)?\"percentage\"===s.gradientUnits||s.gradientTransform||s.patternTransform?this._applyPatternForTransformedGradient(t,s):(t.strokeStyle=s.toLive(t),this._applyPatternGradientTransform(t,s)):t.strokeStyle=e.stroke)}_setFillStyles(t,e){let{fill:s}=e;s&&(Gt(s)?(t.fillStyle=s.toLive(t),this._applyPatternGradientTransform(t,s)):t.fillStyle=s)}_setClippingProperties(t){t.globalAlpha=1,t.strokeStyle=\"transparent\",t.fillStyle=\"#000000\"}_setLineDash(t,e){e&&0!==e.length&&t.setLineDash(e)}_setShadow(t){if(!this.shadow)return;const e=this.shadow,i=this.canvas,r=this.getCanvasRetinaScaling(),[n,,,o]=(null==i?void 0:i.viewportTransform)||b,a=n*r,h=o*r,l=e.nonScaling?new ot(1,1):this.getObjectScaling();t.shadowColor=e.color,t.shadowBlur=e.blur*s.browserShadowBlurConstant*(a+h)*(l.x+l.y)/4,t.shadowOffsetX=e.offsetX*a*l.x,t.shadowOffsetY=e.offsetY*h*l.y}_removeShadow(t){this.shadow&&(t.shadowColor=\"\",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0)}_applyPatternGradientTransform(t,e){if(!Gt(e))return{offsetX:0,offsetY:0};const s=e.gradientTransform||e.patternTransform,i=-this.width/2+e.offsetX||0,r=-this.height/2+e.offsetY||0;return\"percentage\"===e.gradientUnits?t.transform(this.width,0,0,this.height,i,r):t.transform(1,0,0,1,i,r),s&&t.transform(s[0],s[1],s[2],s[3],s[4],s[5]),{offsetX:i,offsetY:r}}_renderPaintInOrder(t){this.paintFirst===N?(this._renderStroke(t),this._renderFill(t)):(this._renderFill(t),this._renderStroke(t))}_render(t){}_renderFill(t){this.fill&&(t.save(),this._setFillStyles(t,this),\"evenodd\"===this.fillRule?t.fill(\"evenodd\"):t.fill(),t.restore())}_renderStroke(t){if(this.stroke&&0!==this.strokeWidth){if(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this.strokeUniform){const e=this.getObjectScaling();t.scale(1/e.x,1/e.y)}this._setLineDash(t,this.strokeDashArray),this._setStrokeStyles(t,this),t.stroke(),t.restore()}}_applyPatternForTransformedGradient(t,e){var s;const i=this._limitCacheSize(this._getCacheCanvasDimensions()),r=this.getCanvasRetinaScaling(),n=i.x/this.scaleX/r,o=i.y/this.scaleY/r,a=vt({width:Math.ceil(n),height:Math.ceil(o)}),h=a.getContext(\"2d\");h&&(h.beginPath(),h.moveTo(0,0),h.lineTo(n,0),h.lineTo(n,o),h.lineTo(0,o),h.closePath(),h.translate(n/2,o/2),h.scale(i.zoomX/this.scaleX/r,i.zoomY/this.scaleY/r),this._applyPatternGradientTransform(h,e),h.fillStyle=e.toLive(t),h.fill(),t.translate(-this.width/2-this.strokeWidth/2,-this.height/2-this.strokeWidth/2),t.scale(r*this.scaleX/i.zoomX,r*this.scaleY/i.zoomY),t.strokeStyle=null!==(s=h.createPattern(a,\"no-repeat\"))&&void 0!==s?s:\"\")}_findCenterFromElement(){return new ot(this.left+this.width/2,this.top+this.height/2)}clone(t){const e=this.toObject(t);return this.constructor.fromObject(e)}cloneAsImage(t){const e=this.toCanvasElement(t);return new(tt.getClass(\"image\"))(e)}toCanvasElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e=ue(this),s=this.group,i=this.shadow,r=Math.abs,n=t.enableRetinaScaling?f():1,o=(t.multiplier||1)*n,a=t.canvasProvider||(t=>new se(t,{enableRetinaScaling:!1,renderOnAddRemove:!1,skipOffscreen:!1}));delete this.group,t.withoutTransform&&ce(this),t.withoutShadow&&(this.shadow=null),t.viewportTransform&&me(this,this.getViewportTransform()),this.setCoords();const h=pt(),l=this.getBoundingRect(),c=this.shadow,u=new ot;if(c){const t=c.blur,e=c.nonScaling?new ot(1,1):this.getObjectScaling();u.x=2*Math.round(r(c.offsetX)+t)*r(e.x),u.y=2*Math.round(r(c.offsetY)+t)*r(e.y)}const d=l.width+u.x,g=l.height+u.y;h.width=Math.ceil(d),h.height=Math.ceil(g);const p=a(h);\"jpeg\"===t.format&&(p.backgroundColor=\"#fff\"),this.setPositionByOrigin(new ot(p.width/2,p.height/2),T,T);const m=this.canvas;p._objects=[this],this.set(\"canvas\",p),this.setCoords();const v=p.toCanvasElement(o||1,t);return this.set(\"canvas\",m),this.shadow=i,s&&(this.group=s),this.set(e),this.setCoords(),p._objects=[],p.destroy(),v}toDataURL(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return yt(this.toCanvasElement(t),t.format||\"png\",t.quality||1)}toBlob(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return _t(this.toCanvasElement(t),t.format||\"png\",t.quality||1)}isType(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];return e.includes(this.constructor.type)||e.includes(this.type)}complexity(){return 1}toJSON(){return this.toObject()}rotate(t){const{centeredRotation:e,originX:s,originY:i}=this;if(e){const{x:t,y:e}=this.getRelativeCenterPoint();this.originX=T,this.originY=T,this.left=t,this.top=e}if(this.set(\"angle\",t),e){const{x:t,y:e}=this.getPositionByOrigin(s,i);this.left=t,this.top=e,this.originX=s,this.originY=i}}setOnGroup(){}_setupCompositeOperation(t){this.globalCompositeOperation&&(t.globalCompositeOperation=this.globalCompositeOperation)}dispose(){et.cancelByTarget(this),this.off(),this._set(\"canvas\",void 0),this._cacheCanvas&&u().dispose(this._cacheCanvas),this._cacheCanvas=void 0,this._cacheContext=null}animate(t,e){return Object.entries(t).reduce((t,s)=>{let[i,r]=s;return t[i]=this._animate(i,r,e),t},{})}_animate(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=t.split(\".\"),r=this.constructor.colorProperties.includes(i[i.length-1]),{abort:n,startValue:o,onChange:a,onComplete:h}=s,l={...s,target:this,startValue:null!=o?o:i.reduce((t,e)=>t[e],this),endValue:e,abort:null==n?void 0:n.bind(this),onChange:(t,e,s)=>{i.reduce((e,s,r)=>(r===i.length-1&&(e[s]=t),e[s]),this),a&&a(t,e,s)},onComplete:(t,e,s)=>{this.setCoords(),h&&h(t,e,s)}};return r?Xs(l):$s(l)}isDescendantOf(t){const{parent:e,group:s}=this;return e===t||s===t||!!e&&e.isDescendantOf(t)||!!s&&s!==e&&s.isDescendantOf(t)}getAncestors(){const t=[];let e=this;do{e=e.parent,e&&t.push(e)}while(e);return t}findCommonAncestors(t){if(this===t)return{fork:[],otherFork:[],common:[this,...this.getAncestors()]};const e=this.getAncestors(),s=t.getAncestors();if(0===e.length&&s.length>0&&this===s[s.length-1])return{fork:[],otherFork:[t,...s.slice(0,s.length-1)],common:[this]};for(let i,r=0;r<e.length;r++){if(i=e[r],i===t)return{fork:[this,...e.slice(0,r)],otherFork:[],common:e.slice(r)};for(let n=0;n<s.length;n++){if(this===s[n])return{fork:[],otherFork:[t,...s.slice(0,n)],common:[this,...e]};if(i===s[n])return{fork:[this,...e.slice(0,r)],otherFork:[t,...s.slice(0,n)],common:e.slice(r)}}}return{fork:[this,...e],otherFork:[t,...s],common:[]}}hasCommonAncestors(t){const e=this.findCommonAncestors(t);return e&&!!e.common.length}isInFrontOf(t){if(this===t)return;const e=this.findCommonAncestors(t);if(e.fork.includes(t))return!0;if(e.otherFork.includes(this))return!1;const s=e.common[0]||this.canvas;if(!s)return;const i=e.fork.pop(),r=e.otherFork.pop(),n=s._objects.indexOf(i),o=s._objects.indexOf(r);return n>-1&&n>o}toObject(){const t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).concat(e.customProperties,this.constructor.customProperties||[]);let i;const r=s.NUM_FRACTION_DIGITS,{clipPath:n,fill:o,stroke:a,shadow:h,strokeDashArray:l,left:c,top:u,originX:d,originY:g,width:f,height:p,strokeWidth:v,strokeLineCap:y,strokeDashOffset:_,strokeLineJoin:x,strokeUniform:C,strokeMiterLimit:b,scaleX:S,scaleY:w,angle:T,flipX:O,flipY:k,opacity:D,visible:M,backgroundColor:E,fillRule:P,paintFirst:A,globalCompositeOperation:j,skewX:F,skewY:L}=this;n&&!n.excludeFromExport&&(i=n.toObject(t.concat(\"inverted\",\"absolutePositioned\")));const I=t=>Wt(t,r),R={...Xt(this,t),type:this.constructor.type,version:m,originX:d,originY:g,left:I(c),top:I(u),width:I(f),height:I(p),fill:zt(o)?o.toObject():o,stroke:zt(a)?a.toObject():a,strokeWidth:I(v),strokeDashArray:l?l.concat():l,strokeLineCap:y,strokeDashOffset:_,strokeLineJoin:x,strokeUniform:C,strokeMiterLimit:I(b),scaleX:I(S),scaleY:I(w),angle:I(T),flipX:O,flipY:k,opacity:I(D),shadow:h?h.toObject():h,visible:M,backgroundColor:E,fillRule:P,paintFirst:A,globalCompositeOperation:j,skewX:I(F),skewY:I(L),...i?{clipPath:i}:null};return this.includeDefaultValues?R:this._removeDefaultValues(R)}toDatalessObject(t){return this.toObject(t)}_removeDefaultValues(t){const e=this.constructor.getDefaults(),s=Object.keys(e).length>0?e:Object.getPrototypeOf(this);return Yt(t,(t,e)=>{if(e===O||e===k||\"type\"===e)return!0;const i=s[e];return t!==i&&!(Array.isArray(t)&&Array.isArray(i)&&0===t.length&&0===i.length)})}toString(){return`#<${this.constructor.type}>`}static _fromObject(t){let{type:e,...s}=t,{extraParam:i,...r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return $t(s,r).then(t=>i?(delete t[i],new this(s[i],t)):new this(t))}static fromObject(t,e){return this._fromObject(t,e)}};t(Vs,\"stateProperties\",Ss),t(Vs,\"cacheProperties\",ws),t(Vs,\"ownDefaults\",Ts),t(Vs,\"type\",\"FabricObject\"),t(Vs,\"colorProperties\",[H,N,\"backgroundColor\"]),t(Vs,\"customProperties\",[]),tt.setClass(Vs),tt.setClass(Vs,\"object\");const Gs=(t,e)=>{var s;const{transform:{target:i}}=e;null===(s=i.canvas)||void 0===s||s.fire(`object:${t}`,{...e,target:i}),i.fire(t,e)},zs=(t,e,s)=>(i,r,n,o)=>{const a=e(i,r,n,o);return a&&Gs(t,{...Le(i,r,n,o),...s}),a};function Hs(t){return(e,s,i,r)=>{const{target:n,originX:o,originY:a}=s,h=n.getPositionByOrigin(o,a),l=t(e,s,i,r);return n.setPositionByOrigin(h,s.originX,s.originY),l}}const Ns=(t,e,s,i)=>(r,n,o,a)=>{const h=Re(n,n.originX,n.originY,o,a)[s],l=ye(n[e]);if(0===l||l>0&&h<0||l<0&&h>0){const{target:e}=n,s=e.strokeWidth/(e.strokeUniform?e[i]:1),r=Ae(n)?2:1,o=e[t],a=Math.abs(h*r/e[i])-s;return e.set(t,Math.max(a,1)),o!==e[t]}return!1},Us=Ns(\"width\",\"originX\",\"x\",\"scaleX\"),qs=Ns(\"height\",\"originY\",\"y\",\"scaleY\"),Ks=zs(R,Hs(Us)),Js=zs(R,Hs(qs));function Qs(t,e,s,i,r){t.save();const{stroke:n,xSize:o,ySize:a,opName:h}=this.commonRenderProps(t,e,s,r,i);let l=o;o>a?t.scale(1,a/o):a>o&&(l=a,t.scale(o/a,1)),t.beginPath(),t.arc(0,0,l/2,0,x,!1),t[h](),n&&t.stroke(),t.restore()}function Zs(t,e,s,i,r){t.save();const{stroke:n,xSize:o,ySize:a,opName:h}=this.commonRenderProps(t,e,s,r,i),l=o/2,c=a/2;t[`${h}Rect`](-l,-c,o,a),n&&t.strokeRect(-l,-c,o,a),t.restore()}class ti{constructor(e){t(this,\"visible\",!0),t(this,\"actionName\",Y),t(this,\"angle\",0),t(this,\"x\",0),t(this,\"y\",0),t(this,\"offsetX\",0),t(this,\"offsetY\",0),t(this,\"sizeX\",0),t(this,\"sizeY\",0),t(this,\"touchSizeX\",0),t(this,\"touchSizeY\",0),t(this,\"cursorStyle\",\"crosshair\"),t(this,\"withConnection\",!1),Object.assign(this,e)}shouldActivate(t,e,s,i){var r;let{tl:n,tr:o,br:a,bl:h}=i;return(null===(r=e.canvas)||void 0===r?void 0:r.getActiveObject())===e&&e.isControlVisible(t)&&Ys.isPointInPolygon(s,[n,o,a,h])}getActionHandler(t,e,s){return this.actionHandler}getMouseDownHandler(t,e,s){return this.mouseDownHandler}getMouseUpHandler(t,e,s){return this.mouseUpHandler}cursorStyleHandler(t,e,s,i){return e.cursorStyle}getActionName(t,e,s){return e.actionName}getVisibility(t,e){var s,i;return null!==(s=null===(i=t._controlsVisibility)||void 0===i?void 0:i[e])&&void 0!==s?s:this.visible}setVisibility(t,e,s){this.visible=t}positionHandler(t,e,s,i){return new ot(this.x*t.x+this.offsetX,this.y*t.y+this.offsetY).transform(e)}calcCornerCoords(t,e,s,i,r,n){const o=Ot([Mt(s,i),Et({angle:t}),Pt((r?this.touchSizeX:this.sizeX)||e,(r?this.touchSizeY:this.sizeY)||e)]);return{tl:new ot(-.5,-.5).transform(o),tr:new ot(.5,-.5).transform(o),br:new ot(.5,.5).transform(o),bl:new ot(-.5,.5).transform(o)}}commonRenderProps(t,e,s,i){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const{cornerSize:n,cornerColor:o,transparentCorners:a,cornerStrokeColor:h}=r,l=n||i.cornerSize,c=this.sizeX||l,u=this.sizeY||l,d=void 0!==a?a:i.transparentCorners,g=d?N:H,f=h||i.cornerStrokeColor,p=!d&&!!f;return t.fillStyle=o||i.cornerColor||\"\",t.strokeStyle=f||\"\",t.translate(e,s),t.rotate(xt(i.getTotalAngle())),{stroke:p,xSize:c,ySize:u,transparentCorners:d,opName:g}}render(t,e,s,i,r){if(\"circle\"===((i=i||{}).cornerStyle||r.cornerStyle))Qs.call(this,t,e,s,i,r);else Zs.call(this,t,e,s,i,r)}}const ei=(t,e,s)=>s.lockRotation?Pe:e.cursorStyle,si=zs(F,Hs((t,e,s,i)=>{let{target:r,ex:n,ey:o,theta:a,originX:h,originY:l}=e;const c=r.getPositionByOrigin(h,l);if(Fe(r,\"lockRotation\"))return!1;const u=Math.atan2(o-c.y,n-c.x),d=Math.atan2(i-c.y,s-c.x);let g=Ct(d-u+a);if(r.snapAngle&&r.snapAngle>0){const t=r.snapAngle,e=r.snapThreshold||t,s=Math.ceil(g/t)*t,i=Math.floor(g/t)*t;Math.abs(g-i)<e?g=i:Math.abs(g-s)<e&&(g=s)}g<0&&(g=360+g),g%=360;const f=r.angle!==g;return r.angle=g,f}));function ii(t,e){const s=e.canvas,i=t[s.uniScaleKey];return s.uniformScaling&&!i||!s.uniformScaling&&i}function ri(t,e,s){const i=Fe(t,\"lockScalingX\"),r=Fe(t,\"lockScalingY\");if(i&&r)return!0;if(!e&&(i||r)&&s)return!0;if(i&&\"x\"===e)return!0;if(r&&\"y\"===e)return!0;const{width:n,height:o,strokeWidth:a}=t;return 0===n&&0===a&&\"y\"!==e||0===o&&0===a&&\"x\"!==e}const ni=[\"e\",\"se\",\"s\",\"sw\",\"w\",\"nw\",\"n\",\"ne\",\"e\"],oi=(t,e,s,i)=>{const r=ii(t,s);if(ri(s,0!==e.x&&0===e.y?\"x\":0===e.x&&0!==e.y?\"y\":\"\",r))return Pe;const n=Ie(s,0,i);return`${ni[n]}-resize`};function ai(t,e,s,i){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n=e.target,o=r.by,a=ii(t,n);let h,l,c,u,d,g;if(ri(n,o,a))return!1;if(e.gestureScale)l=e.scaleX*e.gestureScale,c=e.scaleY*e.gestureScale;else{if(h=Re(e,e.originX,e.originY,s,i),d=\"y\"!==o?Math.sign(h.x||e.signX||1):1,g=\"x\"!==o?Math.sign(h.y||e.signY||1):1,e.signX||(e.signX=d),e.signY||(e.signY=g),Fe(n,\"lockScalingFlip\")&&(e.signX!==d||e.signY!==g))return!1;if(u=n._getTransformedDimensions(),a&&!o){const t=Math.abs(h.x)+Math.abs(h.y),{original:s}=e,i=t/(Math.abs(u.x*s.scaleX/n.scaleX)+Math.abs(u.y*s.scaleY/n.scaleY));l=s.scaleX*i,c=s.scaleY*i}else l=Math.abs(h.x*n.scaleX/u.x),c=Math.abs(h.y*n.scaleY/u.y);Ae(e)&&(l*=2,c*=2),e.signX!==d&&\"y\"!==o&&(e.originX=je(e.originX),l*=-1,e.signX=d),e.signY!==g&&\"x\"!==o&&(e.originY=je(e.originY),c*=-1,e.signY=g)}const f=n.scaleX,p=n.scaleY;return o?(\"x\"===o&&n.set(W,l),\"y\"===o&&n.set(V,c)):(!Fe(n,\"lockScalingX\")&&n.set(W,l),!Fe(n,\"lockScalingY\")&&n.set(V,c)),f!==n.scaleX||p!==n.scaleY}const hi=zs(j,Hs((t,e,s,i)=>ai(t,e,s,i))),li=zs(j,Hs((t,e,s,i)=>ai(t,e,s,i,{by:\"x\"}))),ci=zs(j,Hs((t,e,s,i)=>ai(t,e,s,i,{by:\"y\"}))),ui={x:{counterAxis:\"y\",scale:W,skew:G,lockSkewing:\"lockSkewingX\",origin:\"originX\",flip:\"flipX\"},y:{counterAxis:\"x\",scale:V,skew:z,lockSkewing:\"lockSkewingY\",origin:\"originY\",flip:\"flipY\"}},di=[\"ns\",\"nesw\",\"ew\",\"nwse\"],gi=(t,e,s,i)=>{if(0!==e.x&&Fe(s,\"lockSkewingY\"))return Pe;if(0!==e.y&&Fe(s,\"lockSkewingX\"))return Pe;const r=Ie(s,0,i)%4;return`${di[r]}-resize`};function fi(t,e,s,i,r){const{target:n}=s,{counterAxis:o,origin:a,lockSkewing:h,skew:l,flip:c}=ui[t];if(Fe(n,h))return!1;const{origin:u,flip:d}=ui[o],g=ye(s[u])*(n[d]?-1:1),f=-Math.sign(g)*(n[c]?-1:1),p=.5*-((0===n[l]&&Re(s,T,T,i,r)[t]>0||n[l]>0?1:-1)*f)+.5,m=zs(I,Hs((e,s,i,r)=>function(t,e,s){let{target:i,ex:r,ey:n,skewingSide:o,...a}=e;const{skew:h}=ui[t],l=s.subtract(new ot(r,n)).divide(new ot(i.scaleX,i.scaleY))[t],c=i[h],u=a[h],d=Math.tan(xt(u)),g=\"y\"===t?i._getTransformedDimensions({scaleX:1,scaleY:1,skewX:0}).x:i._getTransformedDimensions({scaleX:1,scaleY:1}).y,f=2*l*o/Math.max(g,1)+d,p=Ct(Math.atan(f));i.set(h,p);const m=c!==i[h];if(m&&\"y\"===t){const{skewX:t,scaleX:e}=i,s=i._getTransformedDimensions({skewY:c}),r=i._getTransformedDimensions(),n=0!==t?s.x/r.x:1;1!==n&&i.set(W,n*e)}return m}(t,s,new ot(i,r))));return m(e,{...s,[a]:p,skewingSide:f},i,r)}const pi=(t,e,s,i)=>fi(\"x\",t,e,s,i),mi=(t,e,s,i)=>fi(\"y\",t,e,s,i);function vi(t,e){return t[e.canvas.altActionKey]}const yi=(t,e,s)=>{const i=vi(t,s);return 0===e.x?i?G:V:0===e.y?i?z:W:\"\"},_i=(t,e,s,i)=>vi(t,s)?gi(0,e,s,i):oi(t,e,s,i),xi=(t,e,s,i)=>vi(t,e.target)?mi(t,e,s,i):li(t,e,s,i),Ci=(t,e,s,i)=>vi(t,e.target)?pi(t,e,s,i):ci(t,e,s,i),bi=()=>({ml:new ti({x:-.5,y:0,cursorStyleHandler:_i,actionHandler:xi,getActionName:yi}),mr:new ti({x:.5,y:0,cursorStyleHandler:_i,actionHandler:xi,getActionName:yi}),mb:new ti({x:0,y:.5,cursorStyleHandler:_i,actionHandler:Ci,getActionName:yi}),mt:new ti({x:0,y:-.5,cursorStyleHandler:_i,actionHandler:Ci,getActionName:yi}),tl:new ti({x:-.5,y:-.5,cursorStyleHandler:oi,actionHandler:hi}),tr:new ti({x:.5,y:-.5,cursorStyleHandler:oi,actionHandler:hi}),bl:new ti({x:-.5,y:.5,cursorStyleHandler:oi,actionHandler:hi}),br:new ti({x:.5,y:.5,cursorStyleHandler:oi,actionHandler:hi}),mtr:new ti({x:0,y:-.5,actionHandler:si,cursorStyleHandler:ei,offsetY:-40,withConnection:!0,actionName:L})}),Si=()=>({mr:new ti({x:.5,y:0,actionHandler:Ks,cursorStyleHandler:_i,actionName:R}),ml:new ti({x:-.5,y:0,actionHandler:Ks,cursorStyleHandler:_i,actionName:R})}),wi=()=>({...bi(),...Si()});class Ti extends Vs{static getDefaults(){return{...super.getDefaults(),...Ti.ownDefaults}}constructor(t){super(),Object.assign(this,this.constructor.createControls(),Ti.ownDefaults),this.setOptions(t)}static createControls(){return{controls:bi()}}_updateCacheCanvas(){const t=this.canvas;if(this.noScaleCache&&t&&t._currentTransform){const e=t._currentTransform,s=e.target,i=e.action;if(this===s&&i&&i.startsWith(Y))return!1}return super._updateCacheCanvas()}getActiveControl(){const t=this.__corner;return t?{key:t,control:this.controls[t],coord:this.oCoords[t]}:void 0}findControl(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.hasControls||!this.canvas)return;this.__corner=void 0;const s=Object.entries(this.oCoords);for(let i=s.length-1;i>=0;i--){const[r,n]=s[i],o=this.controls[r];if(o.shouldActivate(r,this,t,e?n.touchCorner:n.corner))return this.__corner=r,{key:r,control:o,coord:this.oCoords[r]}}}calcOCoords(){const t=this.getViewportTransform(),e=this.getCenterPoint(),s=Mt(e.x,e.y),i=Et({angle:this.getTotalAngle()-(this.group&&this.flipX?180:0)}),r=Tt(s,i),n=Tt(t,r),o=Tt(n,[1/t[0],0,0,1/t[3],0,0]),a=this.group?Dt(this.calcTransformMatrix()):void 0;a&&(a.scaleX=Math.abs(a.scaleX),a.scaleY=Math.abs(a.scaleY));const h=this._calculateCurrentDimensions(a),l={};return this.forEachControl((t,e)=>{const s=t.positionHandler(h,o,this,t);l[e]=Object.assign(s,this._calcCornerCoords(t,s))}),l}_calcCornerCoords(t,e){const s=this.getTotalAngle();return{corner:t.calcCornerCoords(s,this.cornerSize,e.x,e.y,!1,this),touchCorner:t.calcCornerCoords(s,this.touchCornerSize,e.x,e.y,!0,this)}}setCoords(){super.setCoords(),this.canvas&&(this.oCoords=this.calcOCoords())}forEachControl(t){for(const e in this.controls)t(this.controls[e],e,this)}drawSelectionBackground(t){if(!this.selectionBackgroundColor||this.canvas&&this.canvas._activeObject!==this)return;t.save();const e=this.getRelativeCenterPoint(),s=this._calculateCurrentDimensions(),i=this.getViewportTransform();t.translate(e.x,e.y),t.scale(1/i[0],1/i[3]),t.rotate(xt(this.angle)),t.fillStyle=this.selectionBackgroundColor,t.fillRect(-s.x/2,-s.y/2,s.x,s.y),t.restore()}strokeBorders(t,e){t.strokeRect(-e.x/2,-e.y/2,e.x,e.y)}_drawBorders(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i={hasControls:this.hasControls,borderColor:this.borderColor,borderDashArray:this.borderDashArray,...s};t.save(),t.strokeStyle=i.borderColor,this._setLineDash(t,i.borderDashArray),this.strokeBorders(t,e),i.hasControls&&this.drawControlsConnectingLines(t,e),t.restore()}_renderControls(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{hasBorders:s,hasControls:i}=this,r={hasBorders:s,hasControls:i,...e},n=this.getViewportTransform(),o=r.hasBorders,a=r.hasControls,h=Tt(n,this.calcTransformMatrix()),l=Dt(h);t.save(),t.translate(l.translateX,l.translateY),t.lineWidth=this.borderScaleFactor,this.group===this.parent&&(t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),this.flipX&&(l.angle-=180),t.rotate(xt(this.group?l.angle:this.angle)),o&&this.drawBorders(t,l,e),a&&this.drawControls(t,e),t.restore()}drawBorders(t,e,s){let i;if(s&&s.forActiveSelection||this.group){const t=de(this.width,this.height,Lt(e)),s=this.isStrokeAccountedForInDimensions()?at:(this.strokeUniform?(new ot).scalarAdd(this.canvas?this.canvas.getZoom():1):new ot(e.scaleX,e.scaleY)).scalarMultiply(this.strokeWidth);i=t.add(s).scalarAdd(this.borderScaleFactor).scalarAdd(2*this.padding)}else i=this._calculateCurrentDimensions().scalarAdd(this.borderScaleFactor);this._drawBorders(t,i,s)}drawControlsConnectingLines(t,e){let s=!1;t.beginPath(),this.forEachControl((i,r)=>{i.withConnection&&i.getVisibility(this,r)&&(s=!0,t.moveTo(i.x*e.x,i.y*e.y),t.lineTo(i.x*e.x+i.offsetX,i.y*e.y+i.offsetY))}),s&&t.stroke()}drawControls(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.save();const s=this.getCanvasRetinaScaling(),{cornerStrokeColor:i,cornerDashArray:r,cornerColor:n}=this,o={cornerStrokeColor:i,cornerDashArray:r,cornerColor:n,...e};t.setTransform(s,0,0,s,0,0),t.strokeStyle=t.fillStyle=o.cornerColor,this.transparentCorners||(t.strokeStyle=o.cornerStrokeColor),this._setLineDash(t,o.cornerDashArray),this.forEachControl((e,s)=>{if(e.getVisibility(this,s)){const i=this.oCoords[s];e.render(t,i.x,i.y,o,this)}}),t.restore()}isControlVisible(t){return this.controls[t]&&this.controls[t].getVisibility(this,t)}setControlVisible(t,e){this._controlsVisibility||(this._controlsVisibility={}),this._controlsVisibility[t]=e}setControlsVisibility(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.entries(t).forEach(t=>{let[e,s]=t;return this.setControlVisible(e,s)})}clearContextTop(t){if(!this.canvas)return;const e=this.canvas.contextTop;if(!e)return;const s=this.canvas.viewportTransform;e.save(),e.transform(s[0],s[1],s[2],s[3],s[4],s[5]),this.transform(e);const i=this.width+4,r=this.height+4;return e.clearRect(-i/2,-r/2,i,r),t||e.restore(),e}onDeselect(t){return!1}onSelect(t){return!1}shouldStartDragging(t){return!1}onDragStart(t){return!1}canDrop(t){return!1}renderDragSourceEffect(t){}renderDropTargetEffect(t){}}function Oi(t,e){return e.forEach(e=>{Object.getOwnPropertyNames(e.prototype).forEach(s=>{\"constructor\"!==s&&Object.defineProperty(t.prototype,s,Object.getOwnPropertyDescriptor(e.prototype,s)||Object.create(null))})}),t}t(Ti,\"ownDefaults\",{noScaleCache:!0,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockSkewingX:!1,lockSkewingY:!1,lockScalingFlip:!1,cornerSize:13,touchCornerSize:24,transparentCorners:!0,cornerColor:\"rgb(178,204,255)\",cornerStrokeColor:\"\",cornerStyle:\"rect\",cornerDashArray:null,hasControls:!0,borderColor:\"rgb(178,204,255)\",borderDashArray:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,hasBorders:!0,selectionBackgroundColor:\"\",selectable:!0,evented:!0,perPixelTargetFind:!1,activeOn:\"down\",hoverCursor:null,moveCursor:null});class ki extends Ti{}Oi(ki,[qe]),tt.setClass(ki),tt.setClass(ki,\"object\");const Di=(t,e,s,i)=>{const r=2*(i=Math.round(i))+1,{data:n}=t.getImageData(e-i,s-i,r,r);for(let t=3;t<n.length;t+=4){if(n[t]>0)return!1}return!0};class Mi{constructor(t){this.options=t,this.strokeProjectionMagnitude=this.options.strokeWidth/2,this.scale=new ot(this.options.scaleX,this.options.scaleY),this.strokeUniformScalar=this.options.strokeUniform?new ot(1/this.options.scaleX,1/this.options.scaleY):new ot(1,1)}createSideVector(t,e){const s=be(t,e);return this.options.strokeUniform?s.multiply(this.scale):s}projectOrthogonally(t,e,s){return this.applySkew(t.add(this.calcOrthogonalProjection(t,e,s)))}isSkewed(){return 0!==this.options.skewX||0!==this.options.skewY}applySkew(t){const e=new ot(t);return e.y+=e.x*Math.tan(xt(this.options.skewY)),e.x+=e.y*Math.tan(xt(this.options.skewX)),e}scaleUnitVector(t,e){return t.multiply(this.strokeUniformScalar).scalarMultiply(e)}}const Ei=new ot;class Pi extends Mi{static getOrthogonalRotationFactor(t,e){const s=e?we(t,e):Te(t);return Math.abs(s)<y?-1:1}constructor(e,s,i,r){super(r),t(this,\"AB\",void 0),t(this,\"AC\",void 0),t(this,\"alpha\",void 0),t(this,\"bisector\",void 0),this.A=new ot(e),this.B=new ot(s),this.C=new ot(i),this.AB=this.createSideVector(this.A,this.B),this.AC=this.createSideVector(this.A,this.C),this.alpha=we(this.AB,this.AC),this.bisector=Oe(Ce(this.AB.eq(Ei)?this.AC:this.AB,this.alpha/2))}calcOrthogonalProjection(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.strokeProjectionMagnitude;const i=this.createSideVector(t,e),r=ke(i),n=Pi.getOrthogonalRotationFactor(r,this.bisector);return this.scaleUnitVector(r,s*n)}projectBevel(){const t=[];return(this.alpha%x===0?[this.B]:[this.B,this.C]).forEach(e=>{t.push(this.projectOrthogonally(this.A,e)),t.push(this.projectOrthogonally(this.A,e,-this.strokeProjectionMagnitude))}),t}projectMiter(){const t=[],e=Math.abs(this.alpha),s=1/Math.sin(e/2),i=this.scaleUnitVector(this.bisector,-this.strokeProjectionMagnitude*s),r=this.options.strokeUniform?Se(this.scaleUnitVector(this.bisector,this.options.strokeMiterLimit)):this.options.strokeMiterLimit;return Se(i)/this.strokeProjectionMagnitude<=r&&t.push(this.applySkew(this.A.add(i))),t.push(...this.projectBevel()),t}projectRoundNoSkew(t,e){const s=[],i=new ot(Pi.getOrthogonalRotationFactor(this.bisector),Pi.getOrthogonalRotationFactor(new ot(this.bisector.y,this.bisector.x)));return[new ot(1,0).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar).multiply(i),new ot(0,1).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar).multiply(i)].forEach(i=>{Ee(i,t,e)&&s.push(this.A.add(i))}),s}projectRoundWithSkew(t,e){const s=[],{skewX:i,skewY:r,scaleX:n,scaleY:o,strokeUniform:a}=this.options,h=new ot(Math.tan(xt(i)),Math.tan(xt(r))),l=this.strokeProjectionMagnitude,c=a?l/o/Math.sqrt(1/o**2+1/n**2*h.y**2):l/Math.sqrt(1+h.y**2),u=new ot(Math.sqrt(Math.max(l**2-c**2,0)),c),d=a?l/Math.sqrt(1+h.x**2*(1/o)**2/(1/n+1/n*h.x*h.y)**2):l/Math.sqrt(1+h.x**2/(1+h.x*h.y)**2),g=new ot(d,Math.sqrt(Math.max(l**2-d**2,0)));return[g,g.scalarMultiply(-1),u,u.scalarMultiply(-1)].map(t=>this.applySkew(a?t.multiply(this.strokeUniformScalar):t)).forEach(i=>{Ee(i,t,e)&&s.push(this.applySkew(this.A).add(i))}),s}projectRound(){const t=[];t.push(...this.projectBevel());const e=this.alpha%x===0,s=this.applySkew(this.A),i=t[e?0:2].subtract(s),r=t[e?1:0].subtract(s),n=e?this.applySkew(this.AB.scalarMultiply(-1)):this.applySkew(this.bisector.multiply(this.strokeUniformScalar).scalarMultiply(-1)),o=De(i,n)>0,a=o?i:r,h=o?r:i;return this.isSkewed()?t.push(...this.projectRoundWithSkew(a,h)):t.push(...this.projectRoundNoSkew(a,h)),t}projectPoints(){switch(this.options.strokeLineJoin){case\"miter\":return this.projectMiter();case\"round\":return this.projectRound();default:return this.projectBevel()}}project(){return this.projectPoints().map(t=>({originPoint:this.A,projectedPoint:t,angle:this.alpha,bisector:this.bisector}))}}class Ai extends Mi{constructor(t,e,s){super(s),this.A=new ot(t),this.T=new ot(e)}calcOrthogonalProjection(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.strokeProjectionMagnitude;const i=this.createSideVector(t,e);return this.scaleUnitVector(ke(i),s)}projectButt(){return[this.projectOrthogonally(this.A,this.T,this.strokeProjectionMagnitude),this.projectOrthogonally(this.A,this.T,-this.strokeProjectionMagnitude)]}projectRound(){const t=[];if(!this.isSkewed()&&this.A.eq(this.T)){const e=new ot(1,1).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar);t.push(this.applySkew(this.A.add(e)),this.applySkew(this.A.subtract(e)))}else t.push(...new Pi(this.A,this.T,this.T,this.options).projectRound());return t}projectSquare(){const t=[];if(this.A.eq(this.T)){const e=new ot(1,1).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar);t.push(this.A.add(e),this.A.subtract(e))}else{const e=this.calcOrthogonalProjection(this.A,this.T,this.strokeProjectionMagnitude),s=this.scaleUnitVector(Oe(this.createSideVector(this.A,this.T)),-this.strokeProjectionMagnitude),i=this.A.add(s);t.push(i.add(e),i.subtract(e))}return t.map(t=>this.applySkew(t))}projectPoints(){switch(this.options.strokeLineCap){case\"round\":return this.projectRound();case\"square\":return this.projectSquare();default:return this.projectButt()}}project(){return this.projectPoints().map(t=>({originPoint:this.A,projectedPoint:t}))}}const ji=function(t,e){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const i=[];if(0===t.length)return i;const r=t.reduce((t,e)=>(t[t.length-1].eq(e)||t.push(new ot(e)),t),[new ot(t[0])]);if(1===r.length)s=!0;else if(!s){const t=r[0],e=((t,e)=>{for(let s=t.length-1;s>=0;s--)if(e(t[s],s,t))return s;return-1})(r,e=>!e.eq(t));r.splice(e+1)}return r.forEach((t,r,n)=>{let o,a;0===r?(a=n[1],o=s?t:n[n.length-1]):r===n.length-1?(o=n[r-1],a=s?t:n[0]):(o=n[r-1],a=n[r+1]),s&&1===n.length?i.push(...new Ai(t,t,e).project()):!s||0!==r&&r!==n.length-1?i.push(...new Pi(t,o,a,e).project()):i.push(...new Ai(t,0===r?a:o,e).project())}),i},Fi=t=>{const e={};return Object.keys(t).forEach(s=>{e[s]={},Object.keys(t[s]).forEach(i=>{e[s][i]={...t[s][i]}})}),e},Li=t=>t.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/</g,\"<\").replace(/>/g,\">\");let Ii;const Ri=t=>{if(Ii||Ii||(Ii=\"Intl\"in g()&&\"Segmenter\"in Intl&&new Intl.Segmenter(void 0,{granularity:\"grapheme\"})),Ii){const e=Ii.segment(t);return Array.from(e).map(t=>{let{segment:e}=t;return e})}return Bi(t)},Bi=t=>{const e=[];for(let s,i=0;i<t.length;i++)!1!==(s=$i(t,i))&&e.push(s);return e},$i=(t,e)=>{const s=t.charCodeAt(e);if(isNaN(s))return\"\";if(s<55296||s>57343)return t.charAt(e);if(55296<=s&&s<=56319){if(t.length<=e+1)throw\"High surrogate without following low surrogate\";const s=t.charCodeAt(e+1);if(56320>s||s>57343)throw\"High surrogate without following low surrogate\";return t.charAt(e)+t.charAt(e+1)}if(0===e)throw\"Low surrogate without preceding high surrogate\";const i=t.charCodeAt(e-1);if(55296>i||i>56319)throw\"Low surrogate without preceding high surrogate\";return!1};var Xi=Object.freeze({__proto__:null,capitalize:function(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return`${t.charAt(0).toUpperCase()}${e?t.slice(1):t.slice(1).toLowerCase()}`},escapeXml:Li,graphemeSplit:Ri});const Yi=function(t,e){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t.fill!==e.fill||t.stroke!==e.stroke||t.strokeWidth!==e.strokeWidth||t.fontSize!==e.fontSize||t.fontFamily!==e.fontFamily||t.fontWeight!==e.fontWeight||t.fontStyle!==e.fontStyle||t.textDecorationThickness!==e.textDecorationThickness||t.textBackgroundColor!==e.textBackgroundColor||t.deltaY!==e.deltaY||s&&(t.overline!==e.overline||t.underline!==e.underline||t.linethrough!==e.linethrough)},Wi=(t,e)=>{const s=e.split(\"\\n\"),i=[];let r=-1,n={};t=Fi(t);for(let e=0;e<s.length;e++){const o=Ri(s[e]);if(t[e])for(let s=0;s<o.length;s++){r++;const o=t[e][s];o&&Object.keys(o).length>0&&(Yi(n,o,!0)?i.push({start:r,end:r+1,style:o}):i[i.length-1].end++),n=o||{}}else r+=o.length,n={}}return i},Vi=(t,e)=>{if(!Array.isArray(t))return Fi(t);const s=e.split(P),i={};let r=-1,n=0;for(let e=0;e<s.length;e++){const o=Ri(s[e]);for(let s=0;s<o.length;s++)r++,t[n]&&t[n].start<=r&&r<t[n].end&&(i[e]=i[e]||{},i[e][s]={...t[n].style},r===t[n].end-1&&n++)}return i},Gi=[\"display\",\"transform\",H,\"fill-opacity\",\"fill-rule\",\"opacity\",N,\"stroke-dasharray\",\"stroke-linecap\",\"stroke-dashoffset\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke-width\",\"id\",\"paint-order\",\"vector-effect\",\"instantiated_by_use\",\"clip-path\"];function zi(t,e){const s=t.nodeName,i=t.getAttribute(\"class\"),r=t.getAttribute(\"id\"),n=\"(?![a-zA-Z\\\\-]+)\";let o;if(o=new RegExp(\"^\"+s,\"i\"),e=e.replace(o,\"\"),r&&e.length&&(o=new RegExp(\"#\"+r+n,\"i\"),e=e.replace(o,\"\")),i&&e.length){const t=i.split(\" \");for(let s=t.length;s--;)o=new RegExp(\"\\\\.\"+t[s]+n,\"i\"),e=e.replace(o,\"\")}return 0===e.length}function Hi(t,e){let s=!0;const i=zi(t,e.pop());return i&&e.length&&(s=function(t,e){let s,i=!0;for(;t.parentElement&&1===t.parentElement.nodeType&&e.length;)i&&(s=e.pop()),i=zi(t=t.parentElement,s);return 0===e.length}(t,e)),i&&s&&0===e.length}function Ni(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s={};for(const i in e)Hi(t,i.split(\" \"))&&(s={...s,...e[i]});return s}const Ui=t=>{var e;return null!==(e=ds[t])&&void 0!==e?e:t},qi=new RegExp(`(${hs})`,\"gi\"),Ki=`(${hs})`,Ji=String.raw`(skewX)\\(${Ki}\\)`,Qi=String.raw`(skewY)\\(${Ki}\\)`,Zi=String.raw`(rotate)\\(${Ki}(?: ${Ki} ${Ki})?\\)`,tr=String.raw`(scale)\\(${Ki}(?: ${Ki})?\\)`,er=String.raw`(translate)\\(${Ki}(?: ${Ki})?\\)`,sr=`(?:${String.raw`(matrix)\\(${Ki} ${Ki} ${Ki} ${Ki} ${Ki} ${Ki}\\)`}|${er}|${Zi}|${tr}|${Ji}|${Qi})`,ir=`(?:${sr}*)`,rr=String.raw`^\\s*(?:${ir}?)\\s*$`,nr=new RegExp(rr),or=new RegExp(sr),ar=new RegExp(sr,\"g\");function hr(t){const e=[];if(!(t=(t=>Be(t.replace(qi,\" $1 \").replace(/,/gi,\" \")))(t).replace(/\\s*([()])\\s*/gi,\"$1\"))||t&&!nr.test(t))return[...b];for(const s of t.matchAll(ar)){const t=or.exec(s[0]);if(!t)continue;let i=b;const r=t.filter(t=>!!t),[,n,...o]=r,[a,h,l,c,u,d]=o.map(t=>parseFloat(t));switch(n){case\"translate\":i=Mt(a,h);break;case L:i=Et({angle:a},{x:h,y:l});break;case Y:i=Pt(a,h);break;case G:i=jt(a);break;case z:i=Ft(a);break;case\"matrix\":i=[a,h,l,c,u,d]}e.push(i)}return Ot(e)}function lr(t,e,s,i){const r=Array.isArray(e);let n,o=e;if(t!==H&&t!==N||e!==E){if(\"strokeUniform\"===t)return\"non-scaling-stroke\"===e;if(\"strokeDashArray\"===t)o=e===E?null:e.replace(/,/g,\" \").split(/\\s+/).map(parseFloat);else if(\"transformMatrix\"===t)o=s&&s.transformMatrix?Tt(s.transformMatrix,hr(e)):hr(e);else if(\"visible\"===t)o=e!==E&&\"hidden\"!==e,s&&!1===s.visible&&(o=!1);else if(\"opacity\"===t)o=parseFloat(e),s&&void 0!==s.opacity&&(o*=s.opacity);else if(\"textAnchor\"===t)o=\"start\"===e?O:\"end\"===e?M:T;else if(\"charSpacing\"===t||t===Je)n=He(e,i)/i*1e3;else if(\"paintFirst\"===t){const t=e.indexOf(H),s=e.indexOf(N);o=H,(t>-1&&s>-1&&s<t||-1===t&&s>-1)&&(o=N)}else{if(\"href\"===t||\"xlink:href\"===t||\"font\"===t||\"id\"===t)return e;if(\"imageSmoothing\"===t)return\"optimizeQuality\"===e;n=r?e.map(He):He(e,i)}}else o=\"\";return!r&&isNaN(n)?o:n}function cr(t,e){t.replace(/;\\s*$/,\"\").split(\";\").forEach(t=>{if(!t)return;const[s,i]=t.split(\":\");e[s.trim().toLowerCase()]=i.trim()})}function ur(t){const e={},s=t.getAttribute(\"style\");return s?(\"string\"==typeof s?cr(s,e):function(t,e){Object.entries(t).forEach(t=>{let[s,i]=t;void 0!==i&&(e[s.toLowerCase()]=i)})}(s,e),e):e}const dr={stroke:\"strokeOpacity\",fill:\"fillOpacity\"};function gr(t,e,s){if(!t)return{};let i,r={},n=S;t.parentNode&&vs.test(t.parentNode.nodeName)&&(r=gr(t.parentElement,e,s),r.fontSize&&(i=n=He(r.fontSize)));const o={...e.reduce((e,s)=>{const i=t.getAttribute(s);return i&&(e[s]=i),e},{}),...Ni(t,s),...ur(t)};o[fs]&&t.setAttribute(fs,o[fs]),o[gs]&&(i=He(o[gs],n),o[gs]=`${i}`);const a={};for(const t in o){const e=Ui(t),s=lr(e,o[t],r,i);a[e]=s}a&&a.font&&function(t,e){const s=t.match(us);if(!s)return;const i=s[1],r=s[3],n=s[4],o=s[5],a=s[6];i&&(e.fontStyle=i),r&&(e.fontWeight=isNaN(parseFloat(r))?r:parseFloat(r)),n&&(e.fontSize=He(n)),a&&(e.fontFamily=a),o&&(e.lineHeight=o===J?1:o)}(a.font,a);const h={...r,...a};return vs.test(t.nodeName)?h:function(t){const e=ki.getDefaults();return Object.entries(dr).forEach(s=>{let[i,r]=s;if(void 0===t[r]||\"\"===t[i])return;if(void 0===t[i]){if(!e[i])return;t[i]=e[i]}if(0===t[i].indexOf(\"url(\"))return;const n=new ze(t[i]);t[i]=n.setAlpha(Wt(n.getAlpha()*t[r],2)).toRgba()}),t}(h)}const fr=[\"rx\",\"ry\"];class pr extends ki{static getDefaults(){return{...super.getDefaults(),...pr.ownDefaults}}constructor(t){super(),Object.assign(this,pr.ownDefaults),this.setOptions(t),this._initRxRy()}_initRxRy(){const{rx:t,ry:e}=this;t&&!e?this.ry=t:e&&!t&&(this.rx=e)}_render(t){const{width:e,height:s}=this,i=-e/2,r=-s/2,n=this.rx?Math.min(this.rx,e/2):0,o=this.ry?Math.min(this.ry,s/2):0,a=0!==n||0!==o;t.beginPath(),t.moveTo(i+n,r),t.lineTo(i+e-n,r),a&&t.bezierCurveTo(i+e-w*n,r,i+e,r+w*o,i+e,r+o),t.lineTo(i+e,r+s-o),a&&t.bezierCurveTo(i+e,r+s-w*o,i+e-w*n,r+s,i+e-n,r+s),t.lineTo(i+n,r+s),a&&t.bezierCurveTo(i+w*n,r+s,i,r+s-w*o,i,r+s-o),t.lineTo(i,r+o),a&&t.bezierCurveTo(i,r+w*o,i+w*n,r,i+n,r),t.closePath(),this._renderPaintInOrder(t)}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return super.toObject([...fr,...t])}_toSVG(){const{width:t,height:e,rx:s,ry:i}=this;return[\"<rect \",\"COMMON_PARTS\",`x=\"${-t/2}\" y=\"${-e/2}\" rx=\"${s}\" ry=\"${i}\" width=\"${t}\" height=\"${e}\" />\\n`]}static async fromElement(t,e,s){const{left:i=0,top:r=0,width:n=0,height:o=0,visible:a=!0,...h}=gr(t,this.ATTRIBUTE_NAMES,s);return new this({...e,...h,left:i,top:r,width:n,height:o,visible:Boolean(a&&n&&o)})}}t(pr,\"type\",\"Rect\"),t(pr,\"cacheProperties\",[...ws,...fr]),t(pr,\"ownDefaults\",{rx:0,ry:0}),t(pr,\"ATTRIBUTE_NAMES\",[...Gi,\"x\",\"y\",\"rx\",\"ry\",\"width\",\"height\"]),tt.setClass(pr),tt.setSVGClass(pr);const mr=\"initialization\",vr=\"added\",yr=\"removed\",_r=\"imperative\",xr=(t,e)=>{const{strokeUniform:s,strokeWidth:i,width:r,height:n,group:o}=e,a=o&&o!==t?ge(o.calcTransformMatrix(),t.calcTransformMatrix()):null,h=a?e.getRelativeCenterPoint().transform(a):e.getRelativeCenterPoint(),l=!e.isStrokeAccountedForInDimensions(),c=s&&l?pe(new ot(i,i),void 0,t.calcTransformMatrix()):at,u=!s&&l?i:0,d=de(r+u,n+u,Ot([a,e.calcOwnMatrix()],!0)).add(c).scalarDivide(2);return[h.subtract(d),h.add(d)]};class Cr{calcLayoutResult(t,e){if(this.shouldPerformLayout(t))return this.calcBoundingBox(e,t)}shouldPerformLayout(t){let{type:e,prevStrategy:s,strategy:i}=t;return e===mr||e===_r||!!s&&i!==s}shouldLayoutClipPath(t){let{type:e,target:{clipPath:s}}=t;return e!==mr&&s&&!s.absolutePositioned}getInitialSize(t,e){return e.size}calcBoundingBox(t,e){const{type:s,target:i}=e;if(s===_r&&e.overrides)return e.overrides;if(0===t.length)return;const{left:r,top:n,width:o,height:a}=ae(t.map(t=>xr(i,t)).reduce((t,e)=>t.concat(e),[])),h=new ot(o,a),l=new ot(r,n).add(h.scalarDivide(2));if(s===mr){const t=this.getInitialSize(e,{size:h,center:l});return{center:l,relativeCorrection:new ot(0,0),size:t}}return{center:l.transform(i.calcOwnMatrix()),size:h}}}t(Cr,\"type\",\"strategy\");class br extends Cr{shouldPerformLayout(t){return!0}}t(br,\"type\",\"fit-content\"),tt.setClass(br);const Sr=\"layoutManager\";class wr{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new br;t(this,\"strategy\",void 0),this.strategy=e,this._subscriptions=new Map}performLayout(t){const e={bubbles:!0,strategy:this.strategy,...t,prevStrategy:this._prevLayoutStrategy,stopPropagation(){this.bubbles=!1}};this.onBeforeLayout(e);const s=this.getLayoutResult(e);s&&this.commitLayout(e,s),this.onAfterLayout(e,s),this._prevLayoutStrategy=e.strategy}attachHandlers(t,e){const{target:s}=e;return[U,A,R,F,j,I,X,B,$].map(e=>t.on(e,t=>this.performLayout(e===U?{type:\"object_modified\",trigger:e,e:t,target:s}:{type:\"object_modifying\",trigger:e,e:t,target:s})))}subscribe(t,e){this.unsubscribe(t,e);const s=this.attachHandlers(t,e);this._subscriptions.set(t,s)}unsubscribe(t,e){(this._subscriptions.get(t)||[]).forEach(t=>t()),this._subscriptions.delete(t)}unsubscribeTargets(t){t.targets.forEach(e=>this.unsubscribe(e,t))}subscribeTargets(t){t.targets.forEach(e=>this.subscribe(e,t))}onBeforeLayout(t){const{target:e,type:s}=t,{canvas:i}=e;if(s===mr||s===vr?this.subscribeTargets(t):s===yr&&this.unsubscribeTargets(t),e.fire(\"layout:before\",{context:t}),i&&i.fire(\"object:layout:before\",{target:e,context:t}),s===_r&&t.deep){const{strategy:s,...i}=t;e.forEachObject(t=>t.layoutManager&&t.layoutManager.performLayout({...i,bubbles:!1,target:t}))}}getLayoutResult(t){const{target:e,strategy:s,type:i}=t,r=s.calcLayoutResult(t,e.getObjects());if(!r)return;const n=i===mr?new ot:e.getRelativeCenterPoint(),{center:o,correction:a=new ot,relativeCorrection:h=new ot}=r,l=n.subtract(o).add(a).transform(i===mr?b:wt(e.calcOwnMatrix()),!0).add(h);return{result:r,prevCenter:n,nextCenter:o,offset:l}}commitLayout(t,e){const{target:s}=t,{result:{size:i},nextCenter:r}=e;var n,o;(s.set({width:i.x,height:i.y}),this.layoutObjects(t,e),t.type===mr)?s.set({left:null!==(n=t.x)&&void 0!==n?n:r.x+i.x*ye(s.originX),top:null!==(o=t.y)&&void 0!==o?o:r.y+i.y*ye(s.originY)}):(s.setPositionByOrigin(r,T,T),s.setCoords(),s.set(\"dirty\",!0))}layoutObjects(t,e){const{target:s}=t;s.forEachObject(i=>{i.group===s&&this.layoutObject(t,e,i)}),t.strategy.shouldLayoutClipPath(t)&&this.layoutObject(t,e,s.clipPath)}layoutObject(t,e,s){let{offset:i}=e;s.set({left:s.left+i.x,top:s.top+i.y})}onAfterLayout(t,e){const{target:s,strategy:i,bubbles:r,prevStrategy:n,...o}=t,{canvas:a}=s;s.fire(\"layout:after\",{context:t,result:e}),a&&a.fire(\"object:layout:after\",{context:t,result:e,target:s});const h=s.parent;r&&null!=h&&h.layoutManager&&((o.path||(o.path=[])).push(s),h.layoutManager.performLayout({...o,target:h})),s.set(\"dirty\",!0)}dispose(){const{_subscriptions:t}=this;t.forEach(t=>t.forEach(t=>t())),t.clear()}toObject(){return{type:Sr,strategy:this.strategy.constructor.type}}toJSON(){return this.toObject()}}tt.setClass(wr,Sr);class Tr extends wr{performLayout(){}}class Or extends(lt(ki)){static getDefaults(){return{...super.getDefaults(),...Or.ownDefaults}}constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),t(this,\"_activeObjects\",[]),t(this,\"__objectSelectionTracker\",void 0),t(this,\"__objectSelectionDisposer\",void 0),Object.assign(this,Or.ownDefaults),this.setOptions(s),this.groupInit(e,s)}groupInit(t,e){var s;this._objects=[...t],this.__objectSelectionTracker=this.__objectSelectionMonitor.bind(this,!0),this.__objectSelectionDisposer=this.__objectSelectionMonitor.bind(this,!1),this.forEachObject(t=>{this.enterGroup(t,!1)}),this.layoutManager=null!==(s=e.layoutManager)&&void 0!==s?s:new wr,this.layoutManager.performLayout({type:mr,target:this,targets:[...t],x:e.left,y:e.top})}canEnterGroup(t){return t===this||this.isDescendantOf(t)?(i(\"error\",\"Group: circular object trees are not supported, this call has no effect\"),!1):-1===this._objects.indexOf(t)||(i(\"error\",\"Group: duplicate objects are not supported inside group, this call has no effect\"),!1)}_filterObjectsBeforeEnteringGroup(t){return t.filter((t,e,s)=>this.canEnterGroup(t)&&s.indexOf(t)===e)}add(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];const i=this._filterObjectsBeforeEnteringGroup(e),r=super.add(...i);return this._onAfterObjectsChange(vr,i),r}insertAt(t){for(var e=arguments.length,s=new Array(e>1?e-1:0),i=1;i<e;i++)s[i-1]=arguments[i];const r=this._filterObjectsBeforeEnteringGroup(s),n=super.insertAt(t,...r);return this._onAfterObjectsChange(vr,r),n}remove(){const t=super.remove(...arguments);return this._onAfterObjectsChange(yr,t),t}_onObjectAdded(t){this.enterGroup(t,!0),this.fire(\"object:added\",{target:t}),t.fire(\"added\",{target:this})}_onObjectRemoved(t,e){this.exitGroup(t,e),this.fire(\"object:removed\",{target:t}),t.fire(\"removed\",{target:this})}_onAfterObjectsChange(t,e){this.layoutManager.performLayout({type:t,targets:e,target:this})}_onStackOrderChanged(){this._set(\"dirty\",!0)}_set(t,e){const s=this[t];return super._set(t,e),\"canvas\"===t&&s!==e&&(this._objects||[]).forEach(s=>{s._set(t,e)}),this}_shouldSetNestedCoords(){return this.subTargetCheck}removeAll(){return this._activeObjects=[],this.remove(...this._objects)}__objectSelectionMonitor(t,e){let{target:s}=e;const i=this._activeObjects;if(t)i.push(s),this._set(\"dirty\",!0);else if(i.length>0){const t=i.indexOf(s);t>-1&&(i.splice(t,1),this._set(\"dirty\",!0))}}_watchObject(t,e){t&&this._watchObject(!1,e),t?(e.on(\"selected\",this.__objectSelectionTracker),e.on(\"deselected\",this.__objectSelectionDisposer)):(e.off(\"selected\",this.__objectSelectionTracker),e.off(\"deselected\",this.__objectSelectionDisposer))}enterGroup(t,e){t.group&&t.group.remove(t),t._set(\"parent\",this),this._enterGroup(t,e)}_enterGroup(t,e){e&&le(t,Tt(wt(this.calcTransformMatrix()),t.calcTransformMatrix())),this._shouldSetNestedCoords()&&t.setCoords(),t._set(\"group\",this),t._set(\"canvas\",this.canvas),this._watchObject(!0,t);const s=this.canvas&&this.canvas.getActiveObject&&this.canvas.getActiveObject();s&&(s===t||t.isDescendantOf(s))&&this._activeObjects.push(t)}exitGroup(t,e){this._exitGroup(t,e),t._set(\"parent\",void 0),t._set(\"canvas\",void 0)}_exitGroup(t,e){t._set(\"group\",void 0),e||(le(t,Tt(this.calcTransformMatrix(),t.calcTransformMatrix())),t.setCoords()),this._watchObject(!1,t);const s=this._activeObjects.length>0?this._activeObjects.indexOf(t):-1;s>-1&&this._activeObjects.splice(s,1)}shouldCache(){const t=ki.prototype.shouldCache.call(this);if(t)for(let t=0;t<this._objects.length;t++)if(this._objects[t].willDrawShadow())return this.ownCaching=!1,!1;return t}willDrawShadow(){if(super.willDrawShadow())return!0;for(let t=0;t<this._objects.length;t++)if(this._objects[t].willDrawShadow())return!0;return!1}isOnACache(){return this.ownCaching||!!this.parent&&this.parent.isOnACache()}drawObject(t,e,s){this._renderBackground(t);for(let e=0;e<this._objects.length;e++){var i;const s=this._objects[e];null!==(i=this.canvas)&&void 0!==i&&i.preserveObjectStacking&&s.group!==this?(t.save(),t.transform(...wt(this.calcTransformMatrix())),s.render(t),t.restore()):s.group===this&&s.render(t)}this._drawClipPath(t,this.clipPath,s)}setCoords(){super.setCoords(),this._shouldSetNestedCoords()&&this.forEachObject(t=>t.setCoords())}triggerLayout(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.layoutManager.performLayout({target:this,type:_r,...t})}render(t){this._transformDone=!0,super.render(t),this._transformDone=!1}__serializeObjects(t,e){const s=this.includeDefaultValues;return this._objects.filter(function(t){return!t.excludeFromExport}).map(function(i){const r=i.includeDefaultValues;i.includeDefaultValues=s;const n=i[t||\"toObject\"](e);return i.includeDefaultValues=r,n})}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=this.layoutManager.toObject();return{...super.toObject([\"subTargetCheck\",\"interactive\",...t]),...\"fit-content\"!==e.strategy||this.includeDefaultValues?{layoutManager:e}:{},objects:this.__serializeObjects(\"toObject\",t)}}toString(){return`#<Group: (${this.complexity()})>`}dispose(){this.layoutManager.unsubscribeTargets({targets:this.getObjects(),target:this}),this._activeObjects=[],this.forEachObject(t=>{this._watchObject(!1,t),t.dispose()}),super.dispose()}_createSVGBgRect(t){if(!this.backgroundColor)return\"\";const e=pr.prototype._toSVG.call(this),s=e.indexOf(\"COMMON_PARTS\");e[s]='for=\"group\" ';const i=e.join(\"\");return t?t(i):i}_toSVG(t){const e=[\"<g \",\"COMMON_PARTS\",\" >\\n\"],s=this._createSVGBgRect(t);s&&e.push(\"\\t\\t\",s);for(let s=0;s<this._objects.length;s++)e.push(\"\\t\\t\",this._objects[s].toSVG(t));return e.push(\"</g>\\n\"),e}getSvgStyles(){const t=void 0!==this.opacity&&1!==this.opacity?`opacity: ${this.opacity};`:\"\",e=this.visible?\"\":\" visibility: hidden;\";return[t,this.getSvgFilter(),e].join(\"\")}toClipPathSVG(t){const e=[],s=this._createSVGBgRect(t);s&&e.push(\"\\t\",s);for(let s=0;s<this._objects.length;s++)e.push(\"\\t\",this._objects[s].toClipPathSVG(t));return this._createBaseClipPathSVGMarkup(e,{reviver:t})}static fromObject(t,e){let{type:s,objects:i=[],layoutManager:r,...n}=t;return Promise.all([Bt(i,e),$t(n,e)]).then(t=>{let[e,s]=t;const i=new this(e,{...n,...s,layoutManager:new Tr});if(r){const t=tt.getClass(r.type),e=tt.getClass(r.strategy);i.layoutManager=new t(new e)}else i.layoutManager=new wr;return i.layoutManager.subscribeTargets({type:mr,target:i,targets:i.getObjects()}),i.setCoords(),i})}}t(Or,\"type\",\"Group\"),t(Or,\"ownDefaults\",{strokeWidth:0,subTargetCheck:!1,interactive:!1}),tt.setClass(Or);const kr=(t,e)=>Math.min(e.width/t.width,e.height/t.height),Dr=(t,e)=>Math.max(e.width/t.width,e.height/t.height),Mr=\"\\\\s*,?\\\\s*\",Er=`${Mr}(${hs})`,Pr=`${Er}${Er}${Er}${Mr}([01])${Mr}([01])${Er}${Er}`,Ar={m:\"l\",M:\"L\"},jr=(t,e,s,i,r,n,o,a,h,l,c)=>{const u=rt(t),d=nt(t),g=rt(e),f=nt(e),p=s*r*g-i*n*f+o,m=i*r*g+s*n*f+a;return[\"C\",l+h*(-s*r*d-i*n*u),c+h*(-i*r*d+s*n*u),p+h*(s*r*f+i*n*g),m+h*(i*r*f-s*n*g),p,m]},Fr=(t,e,s,i)=>{const r=Math.atan2(e,t),n=Math.atan2(i,s);return n>=r?n-r:2*Math.PI-(r-n)};function Lr(t,e,i,r,n,o,a,h){let l;if(s.cachesBoundsOfCurve&&(l=[...arguments].join(),p.boundsOfCurveCache[l]))return p.boundsOfCurveCache[l];const c=Math.sqrt,u=Math.abs,d=[],g=[[0,0],[0,0]];let f=6*t-12*i+6*n,m=-3*t+9*i-9*n+3*a,v=3*i-3*t;for(let t=0;t<2;++t){if(t>0&&(f=6*e-12*r+6*o,m=-3*e+9*r-9*o+3*h,v=3*r-3*e),u(m)<1e-12){if(u(f)<1e-12)continue;const t=-v/f;0<t&&t<1&&d.push(t);continue}const s=f*f-4*v*m;if(s<0)continue;const i=c(s),n=(-f+i)/(2*m);0<n&&n<1&&d.push(n);const a=(-f-i)/(2*m);0<a&&a<1&&d.push(a)}let y=d.length;const _=y,x=$r(t,e,i,r,n,o,a,h);for(;y--;){const{x:t,y:e}=x(d[y]);g[0][y]=t,g[1][y]=e}g[0][_]=t,g[1][_]=e,g[0][_+1]=a,g[1][_+1]=h;const C=[new ot(Math.min(...g[0]),Math.min(...g[1])),new ot(Math.max(...g[0]),Math.max(...g[1]))];return s.cachesBoundsOfCurve&&(p.boundsOfCurveCache[l]=C),C}const Ir=(t,e,s)=>{let[i,r,n,o,a,h,l,c]=s;const u=((t,e,s,i,r,n,o)=>{if(0===s||0===i)return[];let a=0,h=0,l=0;const c=Math.PI,u=o*C,d=nt(u),g=rt(u),f=.5*(-g*t-d*e),p=.5*(-g*e+d*t),m=s**2,v=i**2,y=p**2,_=f**2,x=m*v-m*y-v*_;let b=Math.abs(s),S=Math.abs(i);if(x<0){const t=Math.sqrt(1-x/(m*v));b*=t,S*=t}else l=(r===n?-1:1)*Math.sqrt(x/(m*y+v*_));const w=l*b*p/S,T=-l*S*f/b,O=g*w-d*T+.5*t,k=d*w+g*T+.5*e;let D=Fr(1,0,(f-w)/b,(p-T)/S),M=Fr((f-w)/b,(p-T)/S,(-f-w)/b,(-p-T)/S);0===n&&M>0?M-=2*c:1===n&&M<0&&(M+=2*c);const E=Math.ceil(Math.abs(M/c*2)),P=[],A=M/E,j=8/3*Math.sin(A/4)*Math.sin(A/4)/Math.sin(A/2);let F=D+A;for(let t=0;t<E;t++)P[t]=jr(D,F,g,d,b,S,O,k,j,a,h),a=P[t][5],h=P[t][6],D=F,F+=A;return P})(l-t,c-e,r,n,a,h,o);for(let s=0,i=u.length;s<i;s++)u[s][1]+=t,u[s][2]+=e,u[s][3]+=t,u[s][4]+=e,u[s][5]+=t,u[s][6]+=e;return u},Rr=t=>{let e=0,s=0,i=0,r=0;const n=[];let o,a=0,h=0;for(const l of t){const t=[...l];let c;switch(t[0]){case\"l\":t[1]+=e,t[2]+=s;case\"L\":e=t[1],s=t[2],c=[\"L\",e,s];break;case\"h\":t[1]+=e;case\"H\":e=t[1],c=[\"L\",e,s];break;case\"v\":t[1]+=s;case\"V\":s=t[1],c=[\"L\",e,s];break;case\"m\":t[1]+=e,t[2]+=s;case\"M\":e=t[1],s=t[2],i=t[1],r=t[2],c=[\"M\",e,s];break;case\"c\":t[1]+=e,t[2]+=s,t[3]+=e,t[4]+=s,t[5]+=e,t[6]+=s;case\"C\":a=t[3],h=t[4],e=t[5],s=t[6],c=[\"C\",t[1],t[2],a,h,e,s];break;case\"s\":t[1]+=e,t[2]+=s,t[3]+=e,t[4]+=s;case\"S\":\"C\"===o?(a=2*e-a,h=2*s-h):(a=e,h=s),e=t[3],s=t[4],c=[\"C\",a,h,t[1],t[2],e,s],a=c[3],h=c[4];break;case\"q\":t[1]+=e,t[2]+=s,t[3]+=e,t[4]+=s;case\"Q\":a=t[1],h=t[2],e=t[3],s=t[4],c=[\"Q\",a,h,e,s];break;case\"t\":t[1]+=e,t[2]+=s;case\"T\":\"Q\"===o?(a=2*e-a,h=2*s-h):(a=e,h=s),e=t[1],s=t[2],c=[\"Q\",a,h,e,s];break;case\"a\":t[6]+=e,t[7]+=s;case\"A\":Ir(e,s,t).forEach(t=>n.push(t)),e=t[6],s=t[7];break;case\"z\":case\"Z\":e=i,s=r,c=[\"Z\"]}c?(n.push(c),o=c[0]):o=\"\"}return n},Br=(t,e,s,i)=>Math.sqrt((s-t)**2+(i-e)**2),$r=(t,e,s,i,r,n,o,a)=>h=>{const l=h**3,c=(t=>3*t**2*(1-t))(h),u=(t=>3*t*(1-t)**2)(h),d=(t=>(1-t)**3)(h);return new ot(o*l+r*c+s*u+t*d,a*l+n*c+i*u+e*d)},Xr=t=>t**2,Yr=t=>2*t*(1-t),Wr=t=>(1-t)**2,Vr=(t,e,s,i,r,n,o,a)=>h=>{const l=Xr(h),c=Yr(h),u=Wr(h),d=3*(u*(s-t)+c*(r-s)+l*(o-r)),g=3*(u*(i-e)+c*(n-i)+l*(a-n));return Math.atan2(g,d)},Gr=(t,e,s,i,r,n)=>o=>{const a=Xr(o),h=Yr(o),l=Wr(o);return new ot(r*a+s*h+t*l,n*a+i*h+e*l)},zr=(t,e,s,i,r,n)=>o=>{const a=1-o,h=2*(a*(s-t)+o*(r-s)),l=2*(a*(i-e)+o*(n-i));return Math.atan2(l,h)},Hr=(t,e,s)=>{let i=new ot(e,s),r=0;for(let e=1;e<=100;e+=1){const s=t(e/100);r+=Br(i.x,i.y,s.x,s.y),i=s}return r},Nr=(t,e)=>{let s,i=0,r=0,n={x:t.x,y:t.y},o={...n},a=.01,h=0;const l=t.iterator,c=t.angleFinder;for(;r<e&&a>1e-4;)o=l(i),h=i,s=Br(n.x,n.y,o.x,o.y),s+r>e?(i-=a,a/=2):(n=o,i+=a,r+=s);return{...o,angle:c(h)}},Ur=t=>{let e,s,i=0,r=0,n=0,o=0,a=0;const h=[];for(const l of t){const t={x:r,y:n,command:l[0],length:0};switch(l[0]){case\"M\":s=t,s.x=o=r=l[1],s.y=a=n=l[2];break;case\"L\":s=t,s.length=Br(r,n,l[1],l[2]),r=l[1],n=l[2];break;case\"C\":e=$r(r,n,l[1],l[2],l[3],l[4],l[5],l[6]),s=t,s.iterator=e,s.angleFinder=Vr(r,n,l[1],l[2],l[3],l[4],l[5],l[6]),s.length=Hr(e,r,n),r=l[5],n=l[6];break;case\"Q\":e=Gr(r,n,l[1],l[2],l[3],l[4]),s=t,s.iterator=e,s.angleFinder=zr(r,n,l[1],l[2],l[3],l[4]),s.length=Hr(e,r,n),r=l[3],n=l[4];break;case\"Z\":s=t,s.destX=o,s.destY=a,s.length=Br(r,n,o,a),r=o,n=a}i+=s.length,h.push(s)}return h.push({length:i,x:r,y:n}),h},qr=function(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Ur(t),i=0;for(;e-s[i].length>0&&i<s.length-2;)e-=s[i].length,i++;const r=s[i],n=e/r.length,o=t[i];switch(r.command){case\"M\":return{x:r.x,y:r.y,angle:0};case\"Z\":return{...new ot(r.x,r.y).lerp(new ot(r.destX,r.destY),n),angle:Math.atan2(r.destY-r.y,r.destX-r.x)};case\"L\":return{...new ot(r.x,r.y).lerp(new ot(o[1],o[2]),n),angle:Math.atan2(o[2]-r.y,o[1]-r.x)};case\"C\":case\"Q\":return Nr(r,e)}},Kr=new RegExp(\"[mzlhvcsqta][^mzlhvcsqta]*\",\"gi\"),Jr=new RegExp(Pr,\"g\"),Qr=new RegExp(hs,\"gi\"),Zr={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},tn=t=>{var e;const s=[],i=null!==(e=t.match(Kr))&&void 0!==e?e:[];for(const t of i){const e=t[0];if(\"z\"===e||\"Z\"===e){s.push([e]);continue}const i=Zr[e.toLowerCase()];let r=[];if(\"a\"===e||\"A\"===e){Jr.lastIndex=0;for(let e=null;e=Jr.exec(t);)r.push(...e.slice(1))}else r=t.match(Qr)||[];for(let t=0;t<r.length;t+=i){const n=new Array(i),o=Ar[e];n[0]=t>0&&o?o:e;for(let e=0;e<i;e++)n[e+1]=parseFloat(r[t+e]);s.push(n)}}return s},en=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=new ot(t[0]),i=new ot(t[1]),r=1,n=0;const o=[],a=t.length,h=a>2;let l;for(h&&(r=t[2].x<i.x?-1:t[2].x===i.x?0:1,n=t[2].y<i.y?-1:t[2].y===i.y?0:1),o.push([\"M\",s.x-r*e,s.y-n*e]),l=1;l<a;l++){if(!s.eq(i)){const t=s.midPointFrom(i);o.push([\"Q\",s.x,s.y,t.x,t.y])}s=t[l],l+1<t.length&&(i=t[l+1])}return h&&(r=s.x>t[l-2].x?1:s.x===t[l-2].x?0:-1,n=s.y>t[l-2].y?1:s.y===t[l-2].y?0:-1),o.push([\"L\",s.x+r*e,s.y+n*e]),o},sn=(t,e)=>t.map(t=>t.map((t,s)=>0===s||void 0===e?t:Wt(t,e)).join(\" \")).join(\" \"),rn=(t,e)=>Math.floor(Math.random()*(e-t+1))+t,nn=(t,e)=>{let s=t._findCenterFromElement();t.transformMatrix&&((t=>{if(t.transformMatrix){const{scaleX:e,scaleY:s,angle:i,skewX:r}=Dt(t.transformMatrix);t.flipX=!1,t.flipY=!1,t.set(W,e),t.set(V,s),t.angle=i,t.skewX=r,t.skewY=0}})(t),s=s.transform(t.transformMatrix)),delete t.transformMatrix,e&&(t.scaleX*=e.scaleX,t.scaleY*=e.scaleY,t.cropX=e.cropX,t.cropY=e.cropY,s.x+=e.offsetLeft,s.y+=e.offsetTop,t.width=e.width,t.height=e.height),t.setPositionByOrigin(s,T,T)};var on=Object.freeze({__proto__:null,addTransformToObject:he,animate:$s,animateColor:Xs,applyTransformToObject:le,calcAngleBetweenVectors:we,calcDimensionsMatrix:Lt,calcPlaneChangeMatrix:ge,calcVectorRotation:Te,cancelAnimFrame:dt,capValue:bs,composeMatrix:It,copyCanvasElement:t=>{var e;const s=vt(t);return null===(e=s.getContext(\"2d\"))||void 0===e||e.drawImage(t,0,0),s},cos:rt,createCanvasElement:pt,createImage:mt,createRotateMatrix:Et,createScaleMatrix:Pt,createSkewXMatrix:jt,createSkewYMatrix:Ft,createTranslateMatrix:Mt,createVector:be,crossProduct:De,degreesToRadians:xt,dotProduct:Me,ease:Ps,enlivenObjectEnlivables:$t,enlivenObjects:Bt,findScaleToCover:Dr,findScaleToFit:kr,getBoundsOfCurve:Lr,getOrthonormalVector:ke,getPathSegmentsInfo:Ur,getPointOnPath:qr,getPointer:re,getRandomInt:rn,getRegularPolygonPath:(t,e)=>{const s=2*Math.PI/t;let i=-y;t%2==0&&(i+=s/2);const r=new Array(t+1);for(let n=0;n<t;n++){const t=n*s+i,{x:o,y:a}=new ot(rt(t),nt(t)).scalarMultiply(e);r[n]=[0===n?\"M\":\"L\",o,a]}return r[t]=[\"Z\"],r},getSmoothPathFromPoints:en,getSvgAttributes:t=>{const e=[\"instantiated_by_use\",\"style\",\"id\",\"class\"];switch(t){case\"linearGradient\":return e.concat([\"x1\",\"y1\",\"x2\",\"y2\",\"gradientUnits\",\"gradientTransform\"]);case\"radialGradient\":return e.concat([\"gradientUnits\",\"gradientTransform\",\"cx\",\"cy\",\"r\",\"fx\",\"fy\",\"fr\"]);case\"stop\":return e.concat([\"offset\",\"stop-color\",\"stop-opacity\"])}return e},getUnitVector:Oe,groupSVGElements:(t,e)=>t&&1===t.length?t[0]:new Or(t,e),hasStyleChanged:Yi,invertTransform:wt,isBetweenVectors:Ee,isIdentityMatrix:bt,isTouchEvent:ne,isTransparent:Di,joinPath:sn,loadImage:Rt,magnitude:Se,makeBoundingBoxFromPoints:ae,makePathSimpler:Rr,matrixToSVG:Vt,mergeClipPaths:(t,e)=>{var s;let i=t,r=e;i.inverted&&!r.inverted&&(i=e,r=t),me(r,null===(s=r.group)||void 0===s?void 0:s.calcTransformMatrix(),i.calcTransformMatrix());const n=i.inverted&&r.inverted;return n&&(i.inverted=r.inverted=!1),new Or([i],{clipPath:r,inverted:n})},multiplyTransformMatrices:Tt,multiplyTransformMatrixArray:Ot,parsePath:tn,parsePreserveAspectRatioAttribute:Ne,parseUnit:He,pick:Xt,projectStrokeOnPoints:ji,qrDecompose:Dt,radiansToDegrees:Ct,removeFromArray:it,removeTransformFromObject:(t,e)=>{const s=wt(e),i=Tt(s,t.calcOwnMatrix());le(t,i)},removeTransformMatrixForSvgParsing:nn,requestAnimFrame:ut,resetObjectTransform:ce,rotateVector:Ce,saveObjectTransform:ue,sendObjectToPlane:me,sendPointToPlane:fe,sendVectorToPlane:pe,sin:nt,sizeAfterTransform:de,string:Xi,stylesFromArray:Vi,stylesToArray:Wi,toBlob:_t,toDataURL:yt,toFixed:Wt,transformPath:(t,e,s)=>(s&&(e=Tt(e,[1,0,0,1,-s.x,-s.y])),t.map(t=>{const s=[...t];for(let i=1;i<t.length-1;i+=2){const{x:r,y:n}=St({x:t[i],y:t[i+1]},e);s[i]=r,s[i+1]=n}return s})),transformPoint:St});function an(t,e){const s=t.style;s&&Object.entries(e).forEach(t=>{let[e,i]=t;return s.setProperty(e,i)})}class hn extends te{constructor(e){let{allowTouchScrolling:s=!1,containerClass:i=\"\"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(e),t(this,\"upper\",void 0),t(this,\"container\",void 0);const{el:r}=this.lower,n=this.createUpperCanvas();this.upper={el:n,ctx:n.getContext(\"2d\")},this.applyCanvasStyle(r,{allowTouchScrolling:s}),this.applyCanvasStyle(n,{allowTouchScrolling:s,styles:{position:\"absolute\",left:\"0\",top:\"0\"}});const o=this.createContainerElement();o.classList.add(i),r.parentNode&&r.parentNode.replaceChild(o,r),o.append(r,n),this.container=o}createUpperCanvas(){const{el:t}=this.lower,e=pt();return e.className=t.className,e.classList.remove(\"lower-canvas\"),e.classList.add(\"upper-canvas\"),e.setAttribute(\"data-fabric\",\"top\"),e.style.cssText=t.style.cssText,e.setAttribute(\"draggable\",\"true\"),e}createContainerElement(){const t=d().createElement(\"div\");return t.setAttribute(\"data-fabric\",\"wrapper\"),an(t,{position:\"relative\"}),Zt(t),t}applyCanvasStyle(t,e){const{styles:s,allowTouchScrolling:i}=e;an(t,{...s,\"touch-action\":i?\"manipulation\":E}),Zt(t)}setDimensions(t,e){super.setDimensions(t,e);const{el:s,ctx:i}=this.upper;Jt(s,i,t,e)}setCSSDimensions(t){super.setCSSDimensions(t),Qt(this.upper.el,t),Qt(this.container,t)}cleanupDOM(t){const e=this.container,{el:s}=this.lower,{el:i}=this.upper;super.cleanupDOM(t),e.removeChild(i),e.removeChild(s),e.parentNode&&e.parentNode.replaceChild(s,e)}dispose(){super.dispose(),u().dispose(this.upper.el),delete this.upper,delete this.container}}const ln=(t,e,s,i)=>{const{target:r,offsetX:n,offsetY:o}=e,a=s-n,h=i-o,l=!Fe(r,\"lockMovementX\")&&r.left!==a,c=!Fe(r,\"lockMovementY\")&&r.top!==h;return l&&r.set(O,a),c&&r.set(k,h),(l||c)&&Gs(A,Le(t,e,s,i)),l||c},cn=B,un=t=>function(e,s,i){const{points:r,pathOffset:n}=i;return new ot(r[t]).subtract(n).transform(Tt(i.getViewportTransform(),i.calcTransformMatrix()))},dn=(t,e,s,i)=>{const{target:r,pointIndex:n}=e,o=r,a=fe(new ot(s,i),void 0,o.calcOwnMatrix());return o.points[n]=a.add(o.pathOffset),o.setDimensions(),o.set(\"dirty\",!0),!0},gn=(t,e)=>function(s,i,r,n){const o=i.target,a=new ot(o.points[(t>0?t:o.points.length)-1]),h=a.subtract(o.pathOffset).transform(o.calcOwnMatrix()),l=e(s,{...i,pointIndex:t},r,n),c=a.subtract(o.pathOffset).transform(o.calcOwnMatrix()).subtract(h);return o.left-=c.x,o.top-=c.y,l},fn=t=>zs(cn,gn(t,dn));const pn=(t,e,s)=>{const{path:i,pathOffset:r}=t,n=i[e];return new ot(n[s]-r.x,n[s+1]-r.y).transform(Tt(t.getViewportTransform(),t.calcTransformMatrix()))};function mn(t,e,s){const{commandIndex:i,pointIndex:r}=this;return pn(s,i,r)}function vn(t,e,s,i){const{target:r}=e,{commandIndex:n,pointIndex:o}=this,a=((t,e,s,i,r)=>{const{path:n,pathOffset:o}=t,a=n[(i>0?i:n.length)-1],h=new ot(a[r],a[r+1]),l=h.subtract(o).transform(t.calcOwnMatrix()),c=fe(new ot(e,s),void 0,t.calcOwnMatrix());n[i][r]=c.x+o.x,n[i][r+1]=c.y+o.y,t.setDimensions();const u=h.subtract(t.pathOffset).transform(t.calcOwnMatrix()).subtract(l);return t.left-=u.x,t.top-=u.y,t.set(\"dirty\",!0),!0})(r,s,i,n,o);return Gs(this.actionName,{...Le(t,e,s,i),commandIndex:n,pointIndex:o}),a}class yn extends ti{constructor(t){super(t)}render(t,e,s,i,r){const n={...i,cornerColor:this.controlFill,cornerStrokeColor:this.controlStroke,transparentCorners:!this.controlFill};super.render(t,e,s,n,r)}}class _n extends yn{constructor(t){super(t)}render(t,e,s,i,r){const{path:n}=r,{commandIndex:o,pointIndex:a,connectToCommandIndex:h,connectToPointIndex:l}=this;t.save(),t.strokeStyle=this.controlStroke,this.connectionDashArray&&t.setLineDash(this.connectionDashArray);const[c]=n[o],u=pn(r,h,l);if(\"Q\"===c){const i=pn(r,o,a+2);t.moveTo(i.x,i.y),t.lineTo(e,s)}else t.moveTo(e,s);t.lineTo(u.x,u.y),t.stroke(),t.restore(),super.render(t,e,s,i,r)}}const xn=(t,e,s,i,r,n)=>new(s?_n:yn)({commandIndex:t,pointIndex:e,actionName:\"modifyPath\",positionHandler:mn,actionHandler:vn,connectToCommandIndex:r,connectToPointIndex:n,...i,...s?i.controlPointStyle:i.pointStyle});var Cn=Object.freeze({__proto__:null,changeHeight:Js,changeObjectHeight:qs,changeObjectWidth:Us,changeWidth:Ks,createObjectDefaultControls:bi,createPathControls:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s={};let i=\"M\";return t.path.forEach((t,r)=>{const n=t[0];switch(\"Z\"!==n&&(s[`c_${r}_${n}`]=xn(r,t.length-2,!1,e)),n){case\"C\":s[`c_${r}_C_CP_1`]=xn(r,1,!0,e,r-1,(t=>\"C\"===t?5:\"Q\"===t?3:1)(i)),s[`c_${r}_C_CP_2`]=xn(r,3,!0,e,r,5);break;case\"Q\":s[`c_${r}_Q_CP_1`]=xn(r,1,!0,e,r,3)}i=n}),s},createPolyActionHandler:fn,createPolyControls:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s={};for(let i=0;i<(\"number\"==typeof t?t:t.points.length);i++)s[`p${i}`]=new ti({actionName:cn,positionHandler:un(i),actionHandler:fn(i),...e});return s},createPolyPositionHandler:un,createResizeControls:Si,createTextboxDefaultControls:wi,dragHandler:ln,factoryPolyActionHandler:gn,getLocalPoint:Re,polyActionHandler:dn,renderCircleControl:Qs,renderSquareControl:Zs,rotationStyleHandler:ei,rotationWithSnapping:si,scaleCursorStyleHandler:oi,scaleOrSkewActionName:yi,scaleSkewCursorStyleHandler:_i,scalingEqually:hi,scalingX:li,scalingXOrSkewingY:xi,scalingY:ci,scalingYOrSkewingX:Ci,skewCursorStyleHandler:gi,skewHandlerX:pi,skewHandlerY:mi,wrapWithFireEvent:zs,wrapWithFixedAnchor:Hs});class bn extends se{constructor(){super(...arguments),t(this,\"_hoveredTargets\",[]),t(this,\"_currentTransform\",null),t(this,\"_groupSelector\",null),t(this,\"contextTopDirty\",!1)}static getDefaults(){return{...super.getDefaults(),...bn.ownDefaults}}get upperCanvasEl(){var t;return null===(t=this.elements.upper)||void 0===t?void 0:t.el}get contextTop(){var t;return null===(t=this.elements.upper)||void 0===t?void 0:t.ctx}get wrapperEl(){return this.elements.container}initElements(t){this.elements=new hn(t,{allowTouchScrolling:this.allowTouchScrolling,containerClass:this.containerClass}),this._createCacheCanvas()}_onObjectAdded(t){this._objectsToRender=void 0,super._onObjectAdded(t)}_onObjectRemoved(t){this._objectsToRender=void 0,t===this._activeObject&&(this.fire(\"before:selection:cleared\",{deselected:[t]}),this._discardActiveObject(),this.fire(\"selection:cleared\",{deselected:[t]}),t.fire(\"deselected\",{target:t})),t===this._hoveredTarget&&(this._hoveredTarget=void 0,this._hoveredTargets=[]),super._onObjectRemoved(t)}_onStackOrderChanged(){this._objectsToRender=void 0,super._onStackOrderChanged()}_chooseObjectsToRender(){const t=this._activeObject;return!this.preserveObjectStacking&&t?this._objects.filter(e=>!e.group&&e!==t).concat(t):this._objects}renderAll(){this.cancelRequestedRender(),this.destroyed||(!this.contextTopDirty||this._groupSelector||this.isDrawingMode||(this.clearContext(this.contextTop),this.contextTopDirty=!1),this.hasLostContext&&(this.renderTopLayer(this.contextTop),this.hasLostContext=!1),!this._objectsToRender&&(this._objectsToRender=this._chooseObjectsToRender()),this.renderCanvas(this.getContext(),this._objectsToRender))}renderTopLayer(t){t.save(),this.isDrawingMode&&this._isCurrentlyDrawing&&(this.freeDrawingBrush&&this.freeDrawingBrush._render(),this.contextTopDirty=!0),this.selection&&this._groupSelector&&(this._drawSelection(t),this.contextTopDirty=!0),t.restore()}renderTop(){const t=this.contextTop;this.clearContext(t),this.renderTopLayer(t),this.fire(\"after:render\",{ctx:t})}setTargetFindTolerance(t){t=Math.round(t),this.targetFindTolerance=t;const e=this.getRetinaScaling(),s=Math.ceil((2*t+1)*e);this.pixelFindCanvasEl.width=this.pixelFindCanvasEl.height=s,this.pixelFindContext.scale(e,e)}isTargetTransparent(t,e,s){const i=this.targetFindTolerance,r=this.pixelFindContext;this.clearContext(r),r.save(),r.translate(-e+i,-s+i),r.transform(...this.viewportTransform);const n=t.selectionBackgroundColor;t.selectionBackgroundColor=\"\",t.render(r),t.selectionBackgroundColor=n,r.restore();const o=Math.round(i*this.getRetinaScaling());return Di(r,o,o,o)}_isSelectionKeyPressed(t){const e=this.selectionKey;return!!e&&(Array.isArray(e)?!!e.find(e=>!!e&&!0===t[e]):t[e])}_shouldClearSelection(t,e){const s=this.getActiveObjects(),i=this._activeObject;return!!(!e||e&&i&&s.length>1&&-1===s.indexOf(e)&&i!==e&&!this._isSelectionKeyPressed(t)||e&&!e.evented||e&&!e.selectable&&i&&i!==e)}_shouldCenterTransform(t,e,s){if(!t)return;let i;return e===Y||e===W||e===V||e===R?i=this.centeredScaling||t.centeredScaling:e===L&&(i=this.centeredRotation||t.centeredRotation),i?!s:s}_getOriginFromCorner(t,e){const s={x:t.originX,y:t.originY};return e?([\"ml\",\"tl\",\"bl\"].includes(e)?s.x=M:[\"mr\",\"tr\",\"br\"].includes(e)&&(s.x=O),[\"tl\",\"mt\",\"tr\"].includes(e)?s.y=D:[\"bl\",\"mb\",\"br\"].includes(e)&&(s.y=k),s):s}_setupCurrentTransform(t,e,s){var i;const r=e.group?fe(this.getScenePoint(t),void 0,e.group.calcTransformMatrix()):this.getScenePoint(t),{key:n=\"\",control:o}=e.getActiveControl()||{},a=s&&o?null===(i=o.getActionHandler(t,e,o))||void 0===i?void 0:i.bind(o):ln,h=((t,e,s,i)=>{if(!e||!t)return\"drag\";const r=i.controls[e];return r.getActionName(s,r,i)})(s,n,t,e),l=t[this.centeredKey],c=this._shouldCenterTransform(e,h,l)?{x:T,y:T}:this._getOriginFromCorner(e,n),{scaleX:u,scaleY:d,skewX:g,skewY:f,left:p,top:m,angle:v,width:y,height:_,cropX:x,cropY:C}=e,b={target:e,action:h,actionHandler:a,actionPerformed:!1,corner:n,scaleX:u,scaleY:d,skewX:g,skewY:f,offsetX:r.x-p,offsetY:r.y-m,originX:c.x,originY:c.y,ex:r.x,ey:r.y,lastX:r.x,lastY:r.y,theta:xt(v),width:y,height:_,shiftKey:t.shiftKey,altKey:l,original:{...ue(e),originX:c.x,originY:c.y,cropX:x,cropY:C}};this._currentTransform=b,this.fire(\"before:transform\",{e:t,transform:b})}setCursor(t){this.upperCanvasEl.style.cursor=t}_drawSelection(t){const{x:e,y:s,deltaX:i,deltaY:r}=this._groupSelector,n=new ot(e,s).transform(this.viewportTransform),o=new ot(e+i,s+r).transform(this.viewportTransform),a=this.selectionLineWidth/2;let h=Math.min(n.x,o.x),l=Math.min(n.y,o.y),c=Math.max(n.x,o.x),u=Math.max(n.y,o.y);this.selectionColor&&(t.fillStyle=this.selectionColor,t.fillRect(h,l,c-h,u-l)),this.selectionLineWidth&&this.selectionBorderColor&&(t.lineWidth=this.selectionLineWidth,t.strokeStyle=this.selectionBorderColor,h+=a,l+=a,c-=a,u-=a,ki.prototype._setLineDash.call(this,t,this.selectionDashArray),t.strokeRect(h,l,c-h,u-l))}findTarget(t){if(this._targetInfo)return this._targetInfo;if(this.skipTargetFind)return{subTargets:[],currentSubTargets:[]};const e=this.getScenePoint(t),s=this._activeObject,i=this.getActiveObjects(),r=this.searchPossibleTargets(this._objects,e),{subTargets:n,container:o,target:a}=r,h={...r,currentSubTargets:n,currentContainer:o,currentTarget:a};if(!s)return h;const l={...this.searchPossibleTargets([s],e),currentSubTargets:n,currentContainer:o,currentTarget:a};if(s.findControl(this.getViewportPoint(t),ne(t)))return{...l,target:s};if(l.target){if(i.length>1)return l;if(!this.preserveObjectStacking)return l;if(this.preserveObjectStacking&&t[this.altSelectionKey])return l}return h}_pointIsInObjectSelectionArea(t,e){let s=t.getCoords();const i=this.getZoom(),r=t.padding/i;if(r){const[t,e,i,n]=s,o=Math.atan2(e.y-t.y,e.x-t.x),a=rt(o)*r,h=nt(o)*r,l=a+h,c=a-h;s=[new ot(t.x-c,t.y-l),new ot(e.x+l,e.y-c),new ot(i.x+c,i.y+l),new ot(n.x-l,n.y+c)]}return Ys.isPointInPolygon(e,s)}_checkTarget(t,e){if(t&&t.visible&&t.evented&&this._pointIsInObjectSelectionArea(t,e)){if(!this.perPixelTargetFind&&!t.perPixelTargetFind||t.isEditing)return!0;{const s=e.transform(this.viewportTransform);if(!this.isTargetTransparent(t,s.x,s.y))return!0}}return!1}_searchPossibleTargets(t,e,s){let i=t.length;for(;i--;){const r=t[i];if(this._checkTarget(r,e)){if(ht(r)&&r.subTargetCheck){const{target:t}=this._searchPossibleTargets(r._objects,e,s);t&&s.push(t)}return{target:r,subTargets:s}}}return{subTargets:[]}}searchPossibleTargets(t,e){const s=this._searchPossibleTargets(t,e,[]);s.container=s.target;const{container:i,subTargets:r}=s;if(i&&ht(i)&&i.interactive&&r[0]){for(let t=r.length-1;t>0;t--){const e=r[t];if(!ht(e)||!e.interactive)return s.target=e,s}return s.target=r[0],s}return s}getViewportPoint(t){return this._viewportPoint?this._viewportPoint:this._getPointerImpl(t,!0)}getScenePoint(t){return this._scenePoint?this._scenePoint:this._getPointerImpl(t)}_getPointerImpl(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const s=this.upperCanvasEl,i=s.getBoundingClientRect();let r=re(t),n=i.width||0,o=i.height||0;n&&o||(k in i&&D in i&&(o=Math.abs(i.top-i.bottom)),M in i&&O in i&&(n=Math.abs(i.right-i.left))),this.calcOffset(),r.x=r.x-this._offset.left,r.y=r.y-this._offset.top,e||(r=fe(r,void 0,this.viewportTransform));const a=this.getRetinaScaling();1!==a&&(r.x/=a,r.y/=a);const h=0===n||0===o?new ot(1,1):new ot(s.width/n,s.height/o);return r.multiply(h)}_setDimensionsImpl(t,e){this._resetTransformEventData(),super._setDimensionsImpl(t,e),this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(this.contextTop)}_createCacheCanvas(){this.pixelFindCanvasEl=pt(),this.pixelFindContext=this.pixelFindCanvasEl.getContext(\"2d\",{willReadFrequently:!0}),this.setTargetFindTolerance(this.targetFindTolerance)}getTopContext(){return this.elements.upper.ctx}getSelectionContext(){return this.elements.upper.ctx}getSelectionElement(){return this.elements.upper.el}getActiveObject(){return this._activeObject}getActiveObjects(){const t=this._activeObject;return Nt(t)?t.getObjects():t?[t]:[]}_fireSelectionEvents(t,e){let s=!1,i=!1;const r=this.getActiveObjects(),n=[],o=[];t.forEach(t=>{r.includes(t)||(s=!0,t.fire(\"deselected\",{e:e,target:t}),o.push(t))}),r.forEach(i=>{t.includes(i)||(s=!0,i.fire(\"selected\",{e:e,target:i}),n.push(i))}),t.length>0&&r.length>0?(i=!0,s&&this.fire(\"selection:updated\",{e:e,selected:n,deselected:o})):r.length>0?(i=!0,this.fire(\"selection:created\",{e:e,selected:n})):t.length>0&&(i=!0,this.fire(\"selection:cleared\",{e:e,deselected:o})),i&&(this._objectsToRender=void 0)}setActiveObject(t,e){const s=this.getActiveObjects(),i=this._setActiveObject(t,e);return this._fireSelectionEvents(s,e),i}_setActiveObject(t,e){const s=this._activeObject;return s!==t&&(!(!this._discardActiveObject(e,t)&&this._activeObject)&&(!t.onSelect({e:e})&&(this._activeObject=t,Nt(t)&&s!==t&&t.set(\"canvas\",this),t.setCoords(),!0)))}_discardActiveObject(t,e){const s=this._activeObject;return!!s&&(!s.onDeselect({e:t,object:e})&&(this._currentTransform&&this._currentTransform.target===s&&this.endCurrentTransform(t),Nt(s)&&s===this._hoveredTarget&&(this._hoveredTarget=void 0),this._activeObject=void 0,!0))}discardActiveObject(t){const e=this.getActiveObjects(),s=this.getActiveObject();e.length&&this.fire(\"before:selection:cleared\",{e:t,deselected:[s]});const i=this._discardActiveObject(t);return this._fireSelectionEvents(e,t),i}endCurrentTransform(t){const e=this._currentTransform;this._finalizeCurrentTransform(t),e&&e.target&&(e.target.isMoving=!1),this._currentTransform=null}_finalizeCurrentTransform(t){const e=this._currentTransform,s=e.target,i={e:t,target:s,transform:e,action:e.action};s._scaling&&(s._scaling=!1),s.setCoords(),e.actionPerformed&&(this.fire(\"object:modified\",i),s.fire(U,i))}setViewportTransform(t){super.setViewportTransform(t);const e=this._activeObject;e&&e.setCoords()}destroy(){const t=this._activeObject;Nt(t)&&(t.removeAll(),t.dispose()),delete this._activeObject,super.destroy(),this.pixelFindContext=null,this.pixelFindCanvasEl=void 0}clear(){this.discardActiveObject(),this._activeObject=void 0,this.clearContext(this.contextTop),super.clear()}drawControls(t){const e=this._activeObject;e&&e._renderControls(t)}_toObject(t,e,s){const i=this._realizeGroupTransformOnObject(t),r=super._toObject(t,e,s);return t.set(i),r}_realizeGroupTransformOnObject(t){const{group:e}=t;if(e&&Nt(e)&&this._activeObject===e){const s=Xt(t,[\"angle\",\"flipX\",\"flipY\",O,W,V,G,z,k]);return he(t,e.calcOwnMatrix()),s}return{}}_setSVGObject(t,e,s){const i=this._realizeGroupTransformOnObject(e);super._setSVGObject(t,e,s),e.set(i)}}t(bn,\"ownDefaults\",{uniformScaling:!0,uniScaleKey:\"shiftKey\",centeredScaling:!1,centeredRotation:!1,centeredKey:\"altKey\",altActionKey:\"shiftKey\",selection:!0,selectionKey:\"shiftKey\",selectionColor:\"rgba(100, 100, 255, 0.3)\",selectionDashArray:[],selectionBorderColor:\"rgba(255, 255, 255, 0.3)\",selectionLineWidth:1,selectionFullyContained:!1,hoverCursor:\"move\",moveCursor:\"move\",defaultCursor:\"default\",freeDrawingCursor:\"crosshair\",notAllowedCursor:\"not-allowed\",perPixelTargetFind:!1,targetFindTolerance:0,skipTargetFind:!1,stopContextMenu:!0,fireRightClick:!0,fireMiddleClick:!0,enablePointerEvents:!1,containerClass:\"canvas-container\",preserveObjectStacking:!0});class Sn{constructor(e){t(this,\"targets\",[]),t(this,\"__disposer\",void 0);const s=()=>{const{hiddenTextarea:t}=e.getActiveObject()||{};t&&t.focus()},i=e.upperCanvasEl;i.addEventListener(\"click\",s),this.__disposer=()=>i.removeEventListener(\"click\",s)}exitTextEditing(){this.target=void 0,this.targets.forEach(t=>{t.isEditing&&t.exitEditing()})}add(t){this.targets.push(t)}remove(t){this.unregister(t),it(this.targets,t)}register(t){this.target=t}unregister(t){t===this.target&&(this.target=void 0)}onMouseMove(t){var e;(null===(e=this.target)||void 0===e?void 0:e.isEditing)&&this.target.updateSelectionOnMouseMove(t)}clear(){this.targets=[],this.target=void 0}dispose(){this.clear(),this.__disposer(),delete this.__disposer}}const wn={passive:!1},Tn=(t,e)=>({viewportPoint:t.getViewportPoint(e),scenePoint:t.getScenePoint(e)}),On=function(t){for(var e=arguments.length,s=new Array(e>1?e-1:0),i=1;i<e;i++)s[i-1]=arguments[i];return t.addEventListener(...s)},kn=function(t){for(var e=arguments.length,s=new Array(e>1?e-1:0),i=1;i<e;i++)s[i-1]=arguments[i];return t.removeEventListener(...s)},Dn={mouse:{in:\"over\",out:\"out\",targetIn:\"mouseover\",targetOut:\"mouseout\",canvasIn:\"mouse:over\",canvasOut:\"mouse:out\"},drag:{in:\"enter\",out:\"leave\",targetIn:\"dragenter\",targetOut:\"dragleave\",canvasIn:\"drag:enter\",canvasOut:\"drag:leave\"}};class Mn extends bn{constructor(e){super(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),t(this,\"_isClick\",void 0),t(this,\"textEditingManager\",new Sn(this)),[\"_onMouseDown\",\"_onTouchStart\",\"_onMouseMove\",\"_onMouseUp\",\"_onTouchEnd\",\"_onResize\",\"_onMouseWheel\",\"_onMouseOut\",\"_onMouseEnter\",\"_onContextMenu\",\"_onClick\",\"_onDragStart\",\"_onDragEnd\",\"_onDragProgress\",\"_onDragOver\",\"_onDragEnter\",\"_onDragLeave\",\"_onDrop\"].forEach(t=>{this[t]=this[t].bind(this)}),this.addOrRemove(On)}_getEventPrefix(){return this.enablePointerEvents?\"pointer\":\"mouse\"}addOrRemove(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const s=this.upperCanvasEl,i=this._getEventPrefix();t(Kt(s),\"resize\",this._onResize),t(s,i+\"down\",this._onMouseDown),t(s,`${i}move`,this._onMouseMove,wn),t(s,`${i}out`,this._onMouseOut),t(s,`${i}enter`,this._onMouseEnter),t(s,\"wheel\",this._onMouseWheel,{passive:!1}),t(s,\"contextmenu\",this._onContextMenu),e||(t(s,\"click\",this._onClick),t(s,\"dblclick\",this._onClick)),t(s,\"dragstart\",this._onDragStart),t(s,\"dragend\",this._onDragEnd),t(s,\"dragover\",this._onDragOver),t(s,\"dragenter\",this._onDragEnter),t(s,\"dragleave\",this._onDragLeave),t(s,\"drop\",this._onDrop),this.enablePointerEvents||t(s,\"touchstart\",this._onTouchStart,wn)}removeListeners(){this.addOrRemove(kn);const t=this._getEventPrefix(),e=qt(this.upperCanvasEl);kn(e,`${t}up`,this._onMouseUp),kn(e,\"touchend\",this._onTouchEnd,wn),kn(e,`${t}move`,this._onMouseMove,wn),kn(e,\"touchmove\",this._onMouseMove,wn),clearTimeout(this._willAddMouseDown)}_onMouseWheel(t){this._cacheTransformEventData(t),this._handleEvent(t,\"wheel\"),this._resetTransformEventData()}_onMouseOut(t){const e=this._hoveredTarget,s={e:t,...Tn(this,t)};this.fire(\"mouse:out\",{...s,target:e}),this._hoveredTarget=void 0,e&&e.fire(\"mouseout\",{...s}),this._hoveredTargets.forEach(t=>{this.fire(\"mouse:out\",{...s,target:t}),t&&t.fire(\"mouseout\",{...s})}),this._hoveredTargets=[]}_onMouseEnter(t){const{target:e}=this.findTarget(t);this._currentTransform||e||(this.fire(\"mouse:over\",{e:t,...Tn(this,t)}),this._hoveredTarget=void 0,this._hoveredTargets=[])}_onDragStart(t){this._isClick=!1;const e=this.getActiveObject();if(e&&e.onDragStart(t)){this._dragSource=e;const s={e:t,target:e};return this.fire(\"dragstart\",s),e.fire(\"dragstart\",s),void On(this.upperCanvasEl,\"drag\",this._onDragProgress)}oe(t)}_renderDragEffects(t,e,s){let i=!1;const r=this._dropTarget;r&&r!==e&&r!==s&&(r.clearContextTop(),i=!0),null==e||e.clearContextTop(),s!==e&&(null==s||s.clearContextTop());const n=this.contextTop;n.save(),n.transform(...this.viewportTransform),e&&(n.save(),e.transform(n),e.renderDragSourceEffect(t),n.restore(),i=!0),s&&(n.save(),s.transform(n),s.renderDropTargetEffect(t),n.restore(),i=!0),n.restore(),i&&(this.contextTopDirty=!0)}_onDragEnd(t){const{currentSubTargets:e}=this.findTarget(t),s=!!t.dataTransfer&&t.dataTransfer.dropEffect!==E,i=s?this._activeObject:void 0,r={e:t,target:this._dragSource,subTargets:e,dragSource:this._dragSource,didDrop:s,dropTarget:i};kn(this.upperCanvasEl,\"drag\",this._onDragProgress),this.fire(\"dragend\",r),this._dragSource&&this._dragSource.fire(\"dragend\",r),delete this._dragSource,this._onMouseUp(t)}_onDragProgress(t){const e={e:t,target:this._dragSource,dragSource:this._dragSource,dropTarget:this._draggedoverTarget};this.fire(\"drag\",e),this._dragSource&&this._dragSource.fire(\"drag\",e)}_onDragOver(t){const e=\"dragover\",{currentContainer:s,currentSubTargets:i}=this.findTarget(t),r=this._dragSource,n={e:t,target:s,subTargets:i,dragSource:r,canDrop:!1,dropTarget:void 0};let o;this.fire(e,n),this._fireEnterLeaveEvents(t,s,n),s&&(s.canDrop(t)&&(o=s),s.fire(e,n));for(let s=0;s<i.length;s++){const r=i[s];r.canDrop(t)&&(o=r),r.fire(e,n)}this._renderDragEffects(t,r,o),this._dropTarget=o}_onDragEnter(t){const{currentContainer:e,currentSubTargets:s}=this.findTarget(t),i={e:t,target:e,subTargets:s,dragSource:this._dragSource};this.fire(\"dragenter\",i),this._fireEnterLeaveEvents(t,e,i)}_onDragLeave(t){const{currentSubTargets:e}=this.findTarget(t),s={e:t,target:this._draggedoverTarget,subTargets:e,dragSource:this._dragSource};this.fire(\"dragleave\",s),this._fireEnterLeaveEvents(t,void 0,s),this._renderDragEffects(t,this._dragSource),this._dropTarget=void 0,this._hoveredTargets=[]}_onDrop(t){const{currentContainer:e,currentSubTargets:s}=this.findTarget(t),i=this._basicEventHandler(\"drop:before\",{e:t,target:e,subTargets:s,dragSource:this._dragSource,...Tn(this,t)});i.didDrop=!1,i.dropTarget=void 0,this._basicEventHandler(\"drop\",i),this.fire(\"drop:after\",i)}_onContextMenu(t){const{target:e,subTargets:s}=this.findTarget(t),i=this._basicEventHandler(\"contextmenu:before\",{e:t,target:e,subTargets:s});return this.stopContextMenu&&oe(t),this._basicEventHandler(\"contextmenu\",i),!1}_onClick(t){const e=t.detail;e>3||e<2||(this._cacheTransformEventData(t),2==e&&\"dblclick\"===t.type&&this._handleEvent(t,\"dblclick\"),3==e&&this._handleEvent(t,\"tripleclick\"),this._resetTransformEventData())}fireEventFromPointerEvent(t,e,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};this._cacheTransformEventData(t);const{target:r,subTargets:n}=this.findTarget(t),o={e:t,target:r,subTargets:n,...Tn(this,t),transform:this._currentTransform,...i};this.fire(e,o),r&&r.fire(s,o);for(let t=0;t<n.length;t++)n[t]!==r&&n[t].fire(s,o);this._resetTransformEventData()}getPointerId(t){const e=t.changedTouches;return e?e[0]&&e[0].identifier:this.enablePointerEvents?t.pointerId:-1}_isMainEvent(t){return!0===t.isPrimary||!1!==t.isPrimary&&(\"touchend\"===t.type&&0===t.touches.length||(!t.changedTouches||t.changedTouches[0].identifier===this.mainTouchId))}_onTouchStart(t){this._cacheTransformEventData(t);let e=!this.allowTouchScrolling;const s=this._activeObject;void 0===this.mainTouchId&&(this.mainTouchId=this.getPointerId(t)),this.__onMouseDown(t);const{target:i}=this.findTarget(t);(this.isDrawingMode||s&&i===s)&&(e=!0),e&&t.preventDefault();const r=this.upperCanvasEl,n=this._getEventPrefix(),o=qt(r);On(o,\"touchend\",this._onTouchEnd,wn),e&&On(o,\"touchmove\",this._onMouseMove,wn),kn(r,`${n}down`,this._onMouseDown),this._resetTransformEventData()}_onMouseDown(t){this._cacheTransformEventData(t),this.__onMouseDown(t);const e=this.upperCanvasEl,s=this._getEventPrefix();kn(e,`${s}move`,this._onMouseMove,wn);const i=qt(e);On(i,`${s}up`,this._onMouseUp),On(i,`${s}move`,this._onMouseMove,wn),this._resetTransformEventData()}_onTouchEnd(t){if(t.touches.length>0)return;this._cacheTransformEventData(t),this.__onMouseUp(t),this._resetTransformEventData(),delete this.mainTouchId;const e=this._getEventPrefix(),s=qt(this.upperCanvasEl);kn(s,\"touchend\",this._onTouchEnd,wn),kn(s,\"touchmove\",this._onMouseMove,wn),this._willAddMouseDown&&clearTimeout(this._willAddMouseDown),this._willAddMouseDown=setTimeout(()=>{On(this.upperCanvasEl,`${e}down`,this._onMouseDown),this._willAddMouseDown=0},400)}_onMouseUp(t){this._cacheTransformEventData(t),this.__onMouseUp(t);const e=this.upperCanvasEl,s=this._getEventPrefix();if(this._isMainEvent(t)){const t=qt(this.upperCanvasEl);kn(t,`${s}up`,this._onMouseUp),kn(t,`${s}move`,this._onMouseMove,wn),On(e,`${s}move`,this._onMouseMove,wn)}this._resetTransformEventData()}_onMouseMove(t){this._cacheTransformEventData(t);const e=this.getActiveObject();!this.allowTouchScrolling&&(!e||!e.shouldStartDragging(t))&&t.preventDefault&&t.preventDefault(),this.__onMouseMove(t),this._resetTransformEventData()}_onResize(){this.calcOffset(),this._resetTransformEventData()}_shouldRender(t){const e=this.getActiveObject();return!!e!=!!t||e&&t&&e!==t}__onMouseUp(t){var e;this._handleEvent(t,\"up:before\");const s=this._currentTransform,i=this._isClick,{target:r}=this.findTarget(t),{button:n}=t;if(n)return void((this.fireMiddleClick&&1===n||this.fireRightClick&&2===n)&&this._handleEvent(t,\"up\"));if(this.isDrawingMode&&this._isCurrentlyDrawing)return void this._onMouseUpInDrawingMode(t);if(!this._isMainEvent(t))return;let o,a,h=!1;if(s&&(this._finalizeCurrentTransform(t),h=s.actionPerformed),!i){const e=r===this._activeObject;this.handleSelection(t),h||(h=this._shouldRender(r)||!e&&r===this._activeObject)}if(r){const e=r.findControl(this.getViewportPoint(t),ne(t)),{key:i,control:n}=e||{};if(a=i,r.selectable&&r!==this._activeObject&&\"up\"===r.activeOn)this.setActiveObject(r,t),h=!0;else if(n){const e=n.getMouseUpHandler(t,r,n);e&&(o=this.getScenePoint(t),e.call(n,t,s,o.x,o.y))}r.isMoving=!1}if(s&&(s.target!==r||s.corner!==a)){const e=s.target&&s.target.controls[s.corner],i=e&&e.getMouseUpHandler(t,s.target,e);o=o||this.getScenePoint(t),i&&i.call(e,t,s,o.x,o.y)}this._setCursorFromEvent(t,r),this._handleEvent(t,\"up\"),this._groupSelector=null,this._currentTransform=null,r&&(r.__corner=void 0),h?this.requestRenderAll():i||null!==(e=this._activeObject)&&void 0!==e&&e.isEditing||this.renderTop()}_basicEventHandler(t,e){const{target:s,subTargets:i=[]}=e;this.fire(t,e),s&&s.fire(t,e);for(let r=0;r<i.length;r++)i[r]!==s&&i[r].fire(t,e);return e}_handleEvent(t,e,s){const{target:i,subTargets:r}=this.findTarget(t),n={e:t,target:i,subTargets:r,...Tn(this,t),transform:this._currentTransform,...\"down:before\"===e||\"down\"===e?s:{}};\"up:before\"!==e&&\"up\"!==e||(n.isClick=this._isClick),this.fire(`mouse:${e}`,n),i&&i.fire(`mouse${e}`,n);for(let t=0;t<r.length;t++)r[t]!==i&&r[t].fire(`mouse${e}`,n)}_onMouseDownInDrawingMode(t){this._isCurrentlyDrawing=!0,this.getActiveObject()&&(this.discardActiveObject(t),this.requestRenderAll());const e=this.getScenePoint(t);this.freeDrawingBrush&&this.freeDrawingBrush.onMouseDown(e,{e:t,pointer:e}),this._handleEvent(t,\"down\",{alreadySelected:!1})}_onMouseMoveInDrawingMode(t){if(this._isCurrentlyDrawing){const e=this.getScenePoint(t);this.freeDrawingBrush&&this.freeDrawingBrush.onMouseMove(e,{e:t,pointer:e})}this.setCursor(this.freeDrawingCursor),this._handleEvent(t,\"move\")}_onMouseUpInDrawingMode(t){const e=this.getScenePoint(t);this.freeDrawingBrush?this._isCurrentlyDrawing=!!this.freeDrawingBrush.onMouseUp({e:t,pointer:e}):this._isCurrentlyDrawing=!1,this._handleEvent(t,\"up\")}__onMouseDown(t){this._isClick=!0,this._handleEvent(t,\"down:before\");let{target:e}=this.findTarget(t),s=!!e&&e===this._activeObject;const{button:i}=t;if(i)return void((this.fireMiddleClick&&1===i||this.fireRightClick&&2===i)&&this._handleEvent(t,\"down\",{alreadySelected:s}));if(this.isDrawingMode)return void this._onMouseDownInDrawingMode(t);if(!this._isMainEvent(t))return;if(this._currentTransform)return;let r=this._shouldRender(e),n=!1;if(this.handleMultiSelection(t,e)?(e=this._activeObject,n=!0,r=!0):this._shouldClearSelection(t,e)&&this.discardActiveObject(t),this.selection&&(!e||!e.selectable&&!e.isEditing&&e!==this._activeObject)){const e=this.getScenePoint(t);this._groupSelector={x:e.x,y:e.y,deltaY:0,deltaX:0}}if(s=!!e&&e===this._activeObject,e){e.selectable&&\"down\"===e.activeOn&&this.setActiveObject(e,t);const i=e.findControl(this.getViewportPoint(t),ne(t));if(e===this._activeObject&&(i||!n)){this._setupCurrentTransform(t,e,s);const r=i?i.control:void 0,n=this.getScenePoint(t),o=r&&r.getMouseDownHandler(t,e,r);o&&o.call(r,t,this._currentTransform,n.x,n.y)}}r&&(this._objectsToRender=void 0),this._handleEvent(t,\"down\",{alreadySelected:s}),r&&this.requestRenderAll()}_resetTransformEventData(){this._targetInfo=this._viewportPoint=this._scenePoint=void 0}_cacheTransformEventData(t){this._resetTransformEventData(),this._viewportPoint=this.getViewportPoint(t),this._scenePoint=fe(this._viewportPoint,void 0,this.viewportTransform),this._targetInfo=this.findTarget(t),this._currentTransform&&(this._targetInfo.target=this._currentTransform.target)}__onMouseMove(t){if(this._isClick=!1,this._handleEvent(t,\"move:before\"),this.isDrawingMode)return void this._onMouseMoveInDrawingMode(t);if(!this._isMainEvent(t))return;const e=this._groupSelector;if(e){const s=this.getScenePoint(t);e.deltaX=s.x-e.x,e.deltaY=s.y-e.y,this.renderTop()}else if(this._currentTransform)this._transformObject(t);else{const{target:e}=this.findTarget(t);this._setCursorFromEvent(t,e),this._fireOverOutEvents(t,e)}this.textEditingManager.onMouseMove(t),this._handleEvent(t,\"move\")}_fireOverOutEvents(t,e){const{_hoveredTarget:s,_hoveredTargets:i}=this,{subTargets:r}=this.findTarget(t),n=Math.max(i.length,r.length);this.fireSyntheticInOutEvents(\"mouse\",{e:t,target:e,oldTarget:s,fireCanvas:!0});for(let o=0;o<n;o++)r[o]===e||i[o]&&i[o]===s||this.fireSyntheticInOutEvents(\"mouse\",{e:t,target:r[o],oldTarget:i[o]});this._hoveredTarget=e,this._hoveredTargets=r}_fireEnterLeaveEvents(t,e,s){const i=this._draggedoverTarget,r=this._hoveredTargets,{subTargets:n}=this.findTarget(t),o=Math.max(r.length,n.length);this.fireSyntheticInOutEvents(\"drag\",{...s,target:e,oldTarget:i,fireCanvas:!0});for(let t=0;t<o;t++)this.fireSyntheticInOutEvents(\"drag\",{...s,target:n[t],oldTarget:r[t]});this._draggedoverTarget=e}fireSyntheticInOutEvents(t,e){let{target:s,oldTarget:i,fireCanvas:r,e:n,...o}=e;const{targetIn:a,targetOut:h,canvasIn:l,canvasOut:c}=Dn[t],u=i!==s;if(i&&u){const t={...o,e:n,target:i,nextTarget:s,...Tn(this,n)};r&&this.fire(c,t),i.fire(h,t)}if(s&&u){const t={...o,e:n,target:s,previousTarget:i,...Tn(this,n)};r&&this.fire(l,t),s.fire(a,t)}}_transformObject(t){const e=this.getScenePoint(t),s=this._currentTransform,i=s.target,r=i.group?fe(e,void 0,i.group.calcTransformMatrix()):e;s.shiftKey=t.shiftKey,s.altKey=!!this.centeredKey&&t[this.centeredKey],this._performTransformAction(t,s,r),s.actionPerformed&&this.requestRenderAll()}_performTransformAction(t,e,s){const{action:i,actionHandler:r,target:n}=e,o=!!r&&r(t,e,s.x,s.y);o&&n.setCoords(),\"drag\"===i&&o&&(e.target.isMoving=!0,this.setCursor(e.target.moveCursor||this.moveCursor)),e.actionPerformed=e.actionPerformed||o}_setCursorFromEvent(t,e){if(!e)return void this.setCursor(this.defaultCursor);let s=e.hoverCursor||this.hoverCursor;const i=Nt(this._activeObject)?this._activeObject:null,r=(!i||e.group!==i)&&e.findControl(this.getViewportPoint(t));if(r){const{control:s,coord:i}=r;this.setCursor(s.cursorStyleHandler(t,s,e,i))}else{if(e.subTargetCheck){const{subTargets:e}=this.findTarget(t);e.concat().reverse().forEach(t=>{s=t.hoverCursor||s})}this.setCursor(s)}}handleMultiSelection(t,e){const s=this._activeObject,i=Nt(s);if(s&&this._isSelectionKeyPressed(t)&&this.selection&&e&&e.selectable&&(s!==e||i)&&(i||!e.isDescendantOf(s)&&!s.isDescendantOf(e))&&!e.onSelect({e:t})&&!s.getActiveControl()){if(i){const i=s.getObjects();let r=[];if(e===s){const s=this.getScenePoint(t);let n=this.searchPossibleTargets(i,s);if(n.target?(e=n.target,r=n.subTargets):(n=this.searchPossibleTargets(this._objects,s),e=n.target,r=n.subTargets),!e||!e.selectable)return!1}e.group===s?(s.remove(e),this._hoveredTarget=e,this._hoveredTargets=r,1===s.size()&&this._setActiveObject(s.item(0),t)):(s.multiSelectAdd(e),this._hoveredTarget=s,this._hoveredTargets=r),this._fireSelectionEvents(i,t)}else{s.isEditing&&s.exitEditing();const i=new(tt.getClass(\"ActiveSelection\"))([],{canvas:this});i.multiSelectAdd(s,e),this._hoveredTarget=i,this._setActiveObject(i,t),this._fireSelectionEvents([s],t)}return!0}return!1}handleSelection(t){if(!this.selection||!this._groupSelector)return!1;const{x:e,y:s,deltaX:i,deltaY:r}=this._groupSelector,n=new ot(e,s),o=n.add(new ot(i,r)),a=n.min(o),h=n.max(o).subtract(a),l=this.collectObjects({left:a.x,top:a.y,width:h.x,height:h.y},{includeIntersecting:!this.selectionFullyContained}),c=n.eq(o)?l[0]?[l[0]]:[]:l.length>1?l.filter(e=>!e.onSelect({e:t})).reverse():l;if(1===c.length)this.setActiveObject(c[0],t);else if(c.length>1){const e=tt.getClass(\"ActiveSelection\");this.setActiveObject(new e(c,{canvas:this}),t)}return this._groupSelector=null,!0}toCanvasElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=arguments.length>1?arguments[1]:void 0;const{upper:s}=this.elements;s.ctx=void 0;const i=super.toCanvasElement(t,e);return s.ctx=s.el.getContext(\"2d\"),i}clear(){this.textEditingManager.clear(),super.clear()}destroy(){this.removeListeners(),this.textEditingManager.dispose(),super.destroy()}}const En={x1:0,y1:0,x2:0,y2:0},Pn={...En,r1:0,r2:0},An=(t,e)=>isNaN(t)&&\"number\"==typeof e?e:t;function jn(t){return t&&/%$/.test(t)&&Number.isFinite(parseFloat(t))}function Fn(t,e){const s=\"number\"==typeof t?t:\"string\"==typeof t?parseFloat(t)/(jn(t)?100:1):NaN;return bs(0,An(s,e),1)}const Ln=/\\s*;\\s*/,In=/\\s*:\\s*/;function Rn(t,e){let s,i;const r=t.getAttribute(\"style\");if(r){const t=r.split(Ln);\"\"===t[t.length-1]&&t.pop();for(let e=t.length;e--;){const[r,n]=t[e].split(In).map(t=>t.trim());\"stop-color\"===r?s=n:\"stop-opacity\"===r&&(i=n)}}s=s||t.getAttribute(\"stop-color\")||\"rgb(0,0,0)\",i=An(parseFloat(i||t.getAttribute(\"stop-opacity\")||\"\"),1);const n=new ze(s);return n.setAlpha(n.getAlpha()*i*e),{offset:Fn(t.getAttribute(\"offset\"),0),color:n.toRgba()}}function Bn(t,e){const s=[],i=t.getElementsByTagName(\"stop\"),r=Fn(e,1);for(let t=i.length;t--;)s.push(Rn(i[t],r));return s}function $n(t){return\"linearGradient\"===t.nodeName||\"LINEARGRADIENT\"===t.nodeName?\"linear\":\"radial\"}function Xn(t){return\"userSpaceOnUse\"===t.getAttribute(\"gradientUnits\")?\"pixels\":\"percentage\"}function Yn(t,e){return t.getAttribute(e)}function Wn(t,e){return function(t,e){let s,{width:i,height:r,gradientUnits:n}=e;return Object.entries(t).reduce((t,e)=>{let[o,a]=e;if(\"Infinity\"===a)s=1;else if(\"-Infinity\"===a)s=0;else{const t=\"string\"==typeof a;s=t?parseFloat(a):a,t&&jn(a)&&(s*=.01,\"pixels\"===n&&(\"x1\"!==o&&\"x2\"!==o&&\"r2\"!==o||(s*=i),\"y1\"!==o&&\"y2\"!==o||(s*=r)))}return t[o]=s,t},{})}(\"linear\"===$n(t)?function(t){return{x1:Yn(t,\"x1\")||0,y1:Yn(t,\"y1\")||0,x2:Yn(t,\"x2\")||\"100%\",y2:Yn(t,\"y2\")||0}}(t):function(t){return{x1:Yn(t,\"fx\")||Yn(t,\"cx\")||\"50%\",y1:Yn(t,\"fy\")||Yn(t,\"cy\")||\"50%\",r1:0,x2:Yn(t,\"cx\")||\"50%\",y2:Yn(t,\"cy\")||\"50%\",r2:Yn(t,\"r\")||\"50%\"}}(t),{...e,gradientUnits:Xn(t)})}class Vn{constructor(t){const{type:e=\"linear\",gradientUnits:s=\"pixels\",coords:i={},colorStops:r=[],offsetX:n=0,offsetY:o=0,gradientTransform:a,id:h}=t||{};Object.assign(this,{type:e,gradientUnits:s,coords:{...\"radial\"===e?Pn:En,...i},colorStops:r,offsetX:n,offsetY:o,gradientTransform:a,id:h?`${h}_${ft()}`:ft()})}addColorStop(t){for(const e in t)this.colorStops.push({offset:parseFloat(e),color:t[e]});return this}toObject(t){return{...Xt(this,t),type:this.type,coords:{...this.coords},colorStops:this.colorStops.map(t=>({...t})),offsetX:this.offsetX,offsetY:this.offsetY,gradientUnits:this.gradientUnits,gradientTransform:this.gradientTransform?[...this.gradientTransform]:void 0}}toSVG(t){let{additionalTransform:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=[],i=this.gradientTransform?this.gradientTransform.concat():b.concat(),r=\"pixels\"===this.gradientUnits?\"userSpaceOnUse\":\"objectBoundingBox\",n=this.colorStops.map(t=>({...t})).sort((t,e)=>t.offset-e.offset);let o=-this.offsetX,a=-this.offsetY;var h;\"objectBoundingBox\"===r?(o/=t.width,a/=t.height):(o+=t.width/2,a+=t.height/2),(h=t)&&\"function\"==typeof h._renderPathCommands&&\"percentage\"!==this.gradientUnits&&(o-=t.pathOffset.x,a-=t.pathOffset.y),i[4]-=o,i[5]-=a;const l=[`id=\"SVGID_${this.id}\"`,`gradientUnits=\"${r}\"`,`gradientTransform=\"${e?e+\" \":\"\"}${Vt(i)}\"`,\"\"].join(\" \");if(\"linear\"===this.type){const{x1:t,y1:e,x2:i,y2:r}=this.coords;s.push(\"<linearGradient \",l,' x1=\"',t,'\" y1=\"',e,'\" x2=\"',i,'\" y2=\"',r,'\">\\n')}else if(\"radial\"===this.type){const{x1:t,y1:e,x2:i,y2:r,r1:o,r2:a}=this.coords,h=o>a;s.push(\"<radialGradient \",l,' cx=\"',h?t:i,'\" cy=\"',h?e:r,'\" r=\"',h?o:a,'\" fx=\"',h?i:t,'\" fy=\"',h?r:e,'\">\\n'),h&&(n.reverse(),n.forEach(t=>{t.offset=1-t.offset}));const c=Math.min(o,a);if(c>0){const t=c/Math.max(o,a);n.forEach(e=>{e.offset+=t*(1-e.offset)})}}return n.forEach(t=>{let{color:e,offset:i}=t;s.push(`<stop offset=\"${100*i}%\" style=\"stop-color:${e};\"/>\\n`)}),s.push(\"linear\"===this.type?\"</linearGradient>\":\"</radialGradient>\",\"\\n\"),s.join(\"\")}toLive(t){const{x1:e,y1:s,x2:i,y2:r,r1:n,r2:o}=this.coords,a=\"linear\"===this.type?t.createLinearGradient(e,s,i,r):t.createRadialGradient(e,s,n,i,r,o);return this.colorStops.forEach(t=>{let{color:e,offset:s}=t;a.addColorStop(s,e)}),a}static async fromObject(t){const{colorStops:e,gradientTransform:s}=t;return new this({...t,colorStops:e?e.map(t=>({...t})):void 0,gradientTransform:s?[...s]:void 0})}static fromElement(t,e,s){const i=Xn(t),r=e._findCenterFromElement();return new this({id:t.getAttribute(\"id\")||void 0,type:$n(t),coords:Wn(t,{width:s.viewBoxWidth||s.width,height:s.viewBoxHeight||s.height}),colorStops:Bn(t,s.opacity),gradientUnits:i,gradientTransform:hr(t.getAttribute(\"gradientTransform\")||\"\"),...\"pixels\"===i?{offsetX:e.width/2-r.x,offsetY:e.height/2-r.y}:{offsetX:0,offsetY:0}})}}t(Vn,\"type\",\"Gradient\"),tt.setClass(Vn,\"gradient\"),tt.setClass(Vn,\"linear\"),tt.setClass(Vn,\"radial\");class Gn{get type(){return\"pattern\"}set type(t){i(\"warn\",\"Setting type has no effect\",t)}constructor(e){t(this,\"repeat\",\"repeat\"),t(this,\"offsetX\",0),t(this,\"offsetY\",0),t(this,\"crossOrigin\",\"\"),this.id=ft(),Object.assign(this,e)}isImageSource(){return!!this.source&&\"string\"==typeof this.source.src}isCanvasSource(){return!!this.source&&!!this.source.toDataURL}sourceToString(){return this.isImageSource()?this.source.src:this.isCanvasSource()?this.source.toDataURL():\"\"}toLive(t){return this.source&&(!this.isImageSource()||this.source.complete&&0!==this.source.naturalWidth&&0!==this.source.naturalHeight)?t.createPattern(this.source,this.repeat):null}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const{repeat:e,crossOrigin:i}=this;return{...Xt(this,t),type:\"pattern\",source:this.sourceToString(),repeat:e,crossOrigin:i,offsetX:Wt(this.offsetX,s.NUM_FRACTION_DIGITS),offsetY:Wt(this.offsetY,s.NUM_FRACTION_DIGITS),patternTransform:this.patternTransform?[...this.patternTransform]:null}}toSVG(t){let{width:e,height:s}=t;const{source:i,repeat:r,id:n}=this,o=An(this.offsetX/e,0),a=An(this.offsetY/s,0);return[`<pattern id=\"SVGID_${n}\" x=\"${o}\" y=\"${a}\" width=\"${\"repeat-y\"===r||\"no-repeat\"===r?1+Math.abs(o||0):An(i.width/e,0)}\" height=\"${\"repeat-x\"===r||\"no-repeat\"===r?1+Math.abs(a||0):An(i.height/s,0)}\">`,`<image x=\"0\" y=\"0\" width=\"${i.width}\" height=\"${i.height}\" xlink:href=\"${this.sourceToString()}\"></image>`,\"</pattern>\",\"\"].join(\"\\n\")}static async fromObject(t,e){let{type:s,source:i,patternTransform:r,...n}=t;const o=await Rt(i,{...e,crossOrigin:n.crossOrigin});return new this({...n,patternTransform:r&&r.slice(0),source:o})}}t(Gn,\"type\",\"Pattern\"),tt.setClass(Gn),tt.setClass(Gn,\"pattern\");class zn{constructor(e){t(this,\"color\",\"rgb(0, 0, 0)\"),t(this,\"width\",1),t(this,\"shadow\",null),t(this,\"strokeLineCap\",\"round\"),t(this,\"strokeLineJoin\",\"round\"),t(this,\"strokeMiterLimit\",10),t(this,\"strokeDashArray\",null),t(this,\"limitedToCanvasSize\",!1),this.canvas=e}_setBrushStyles(t){t.strokeStyle=this.color,t.lineWidth=this.width,t.lineCap=this.strokeLineCap,t.miterLimit=this.strokeMiterLimit,t.lineJoin=this.strokeLineJoin,t.setLineDash(this.strokeDashArray||[])}_saveAndTransform(t){const e=this.canvas.viewportTransform;t.save(),t.transform(e[0],e[1],e[2],e[3],e[4],e[5])}needsFullRender(){return new ze(this.color).getAlpha()<1||!!this.shadow}_setShadow(){if(!this.shadow||!this.canvas)return;const t=this.canvas,e=this.shadow,s=t.contextTop,i=t.getZoom()*t.getRetinaScaling();s.shadowColor=e.color,s.shadowBlur=e.blur*i,s.shadowOffsetX=e.offsetX*i,s.shadowOffsetY=e.offsetY*i}_resetShadow(){const t=this.canvas.contextTop;t.shadowColor=\"\",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0}_isOutSideCanvas(t){return t.x<0||t.x>this.canvas.getWidth()||t.y<0||t.y>this.canvas.getHeight()}}class Hn extends ki{constructor(t){let{path:e,left:s,top:i,...r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),Object.assign(this,Hn.ownDefaults),this.setOptions(r),this._setPath(t||[],!0),\"number\"==typeof s&&this.set(O,s),\"number\"==typeof i&&this.set(k,i)}_setPath(t,e){this.path=Rr(Array.isArray(t)?t:tn(t)),this.setBoundingBox(e)}_findCenterFromElement(){const t=this._calcBoundsFromPath();return new ot(t.left+t.width/2,t.top+t.height/2)}_renderPathCommands(t){const e=-this.pathOffset.x,s=-this.pathOffset.y;t.beginPath();for(const i of this.path)switch(i[0]){case\"L\":t.lineTo(i[1]+e,i[2]+s);break;case\"M\":t.moveTo(i[1]+e,i[2]+s);break;case\"C\":t.bezierCurveTo(i[1]+e,i[2]+s,i[3]+e,i[4]+s,i[5]+e,i[6]+s);break;case\"Q\":t.quadraticCurveTo(i[1]+e,i[2]+s,i[3]+e,i[4]+s);break;case\"Z\":t.closePath()}}_render(t){this._renderPathCommands(t),this._renderPaintInOrder(t)}toString(){return`#<Path (${this.complexity()}): { \"top\": ${this.top}, \"left\": ${this.left} }>`}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{...super.toObject(t),path:this.path.map(t=>t.slice())}}toDatalessObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=this.toObject(t);return this.sourcePath&&(delete e.path,e.sourcePath=this.sourcePath),e}_toSVG(){return[\"<path \",\"COMMON_PARTS\",`d=\"${sn(this.path,s.NUM_FRACTION_DIGITS)}\" stroke-linecap=\"round\" />\\n`]}_getOffsetTransform(){const t=s.NUM_FRACTION_DIGITS;return` translate(${Wt(-this.pathOffset.x,t)}, ${Wt(-this.pathOffset.y,t)})`}toClipPathSVG(t){const e=this._getOffsetTransform();return\"\\t\"+this._createBaseClipPathSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})}toSVG(t){const e=this._getOffsetTransform();return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})}complexity(){return this.path.length}setDimensions(){this.setBoundingBox()}setBoundingBox(t){const{width:e,height:s,pathOffset:i}=this._calcDimensions();this.set({width:e,height:s,pathOffset:i}),t&&this.setPositionByOrigin(i,T,T)}_calcBoundsFromPath(){const t=[];let e=0,s=0,i=0,r=0;for(const n of this.path)switch(n[0]){case\"L\":i=n[1],r=n[2],t.push({x:e,y:s},{x:i,y:r});break;case\"M\":i=n[1],r=n[2],e=i,s=r;break;case\"C\":t.push(...Lr(i,r,n[1],n[2],n[3],n[4],n[5],n[6])),i=n[5],r=n[6];break;case\"Q\":t.push(...Lr(i,r,n[1],n[2],n[1],n[2],n[3],n[4])),i=n[3],r=n[4];break;case\"Z\":i=e,r=s}return ae(t)}_calcDimensions(){const t=this._calcBoundsFromPath();return{...t,pathOffset:new ot(t.left+t.width/2,t.top+t.height/2)}}static fromObject(t){return this._fromObject(t,{extraParam:\"path\"})}static async fromElement(t,e,s){const{d:i,...r}=gr(t,this.ATTRIBUTE_NAMES,s);return new this(i,{...r,...e,left:void 0,top:void 0})}}t(Hn,\"type\",\"Path\"),t(Hn,\"cacheProperties\",[...ws,\"path\",\"fillRule\"]),t(Hn,\"ATTRIBUTE_NAMES\",[...Gi,\"d\"]),tt.setClass(Hn),tt.setSVGClass(Hn);class Nn extends zn{constructor(e){super(e),t(this,\"decimate\",.4),t(this,\"drawStraightLine\",!1),t(this,\"straightLineKey\",\"shiftKey\"),this._points=[],this._hasStraightLine=!1}needsFullRender(){return super.needsFullRender()||this._hasStraightLine}static drawSegment(t,e,s){const i=e.midPointFrom(s);return t.quadraticCurveTo(e.x,e.y,i.x,i.y),i}onMouseDown(t,e){let{e:s}=e;this.canvas._isMainEvent(s)&&(this.drawStraightLine=!!this.straightLineKey&&s[this.straightLineKey],this._prepareForDrawing(t),this._addPoint(t),this._render())}onMouseMove(t,e){let{e:s}=e;if(this.canvas._isMainEvent(s)&&(this.drawStraightLine=!!this.straightLineKey&&s[this.straightLineKey],(!0!==this.limitedToCanvasSize||!this._isOutSideCanvas(t))&&this._addPoint(t)&&this._points.length>1))if(this.needsFullRender())this.canvas.clearContext(this.canvas.contextTop),this._render();else{const t=this._points,e=t.length,s=this.canvas.contextTop;this._saveAndTransform(s),this.oldEnd&&(s.beginPath(),s.moveTo(this.oldEnd.x,this.oldEnd.y)),this.oldEnd=Nn.drawSegment(s,t[e-2],t[e-1]),s.stroke(),s.restore()}}onMouseUp(t){let{e:e}=t;return!this.canvas._isMainEvent(e)||(this.drawStraightLine=!1,this.oldEnd=void 0,this._finalizeAndAddPath(),!1)}_prepareForDrawing(t){this._reset(),this._addPoint(t),this.canvas.contextTop.moveTo(t.x,t.y)}_addPoint(t){return!(this._points.length>1&&t.eq(this._points[this._points.length-1]))&&(this.drawStraightLine&&this._points.length>1&&(this._hasStraightLine=!0,this._points.pop()),this._points.push(t),!0)}_reset(){this._points=[],this._setBrushStyles(this.canvas.contextTop),this._setShadow(),this._hasStraightLine=!1}_render(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.canvas.contextTop,e=this._points[0],s=this._points[1];if(this._saveAndTransform(t),t.beginPath(),2===this._points.length&&e.x===s.x&&e.y===s.y){const t=this.width/1e3;e.x-=t,s.x+=t}t.moveTo(e.x,e.y);for(let i=1;i<this._points.length;i++)Nn.drawSegment(t,e,s),e=this._points[i],s=this._points[i+1];t.lineTo(e.x,e.y),t.stroke(),t.restore()}convertPointsToSVGPath(t){const e=this.width/1e3;return en(t,e)}createPath(t){const e=new Hn(t,{fill:null,stroke:this.color,strokeWidth:this.width,strokeLineCap:this.strokeLineCap,strokeMiterLimit:this.strokeMiterLimit,strokeLineJoin:this.strokeLineJoin,strokeDashArray:this.strokeDashArray});return this.shadow&&(this.shadow.affectStroke=!0,e.shadow=new Cs(this.shadow)),e}decimatePoints(t,e){if(t.length<=2)return t;let s,i=t[0];const r=this.canvas.getZoom(),n=Math.pow(e/r,2),o=t.length-1,a=[i];for(let e=1;e<o-1;e++)s=Math.pow(i.x-t[e].x,2)+Math.pow(i.y-t[e].y,2),s>=n&&(i=t[e],a.push(i));return a.push(t[o]),a}_finalizeAndAddPath(){this.canvas.contextTop.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate));const t=this.convertPointsToSVGPath(this._points);if(function(t){return\"M 0 0 Q 0 0 0 0 L 0 0\"===sn(t)}(t))return void this.canvas.requestRenderAll();const e=this.createPath(t);this.canvas.clearContext(this.canvas.contextTop),this.canvas.fire(\"before:path:created\",{path:e}),this.canvas.add(e),this.canvas.requestRenderAll(),e.setCoords(),this._resetShadow(),this.canvas.fire(\"path:created\",{path:e})}}const Un=[\"radius\",\"startAngle\",\"endAngle\",\"counterClockwise\"];class qn extends ki{static getDefaults(){return{...super.getDefaults(),...qn.ownDefaults}}constructor(t){super(),Object.assign(this,qn.ownDefaults),this.setOptions(t)}_set(t,e){return super._set(t,e),\"radius\"===t&&this.setRadius(e),this}_render(t){t.beginPath(),t.arc(0,0,this.radius,xt(this.startAngle),xt(this.endAngle),this.counterClockwise),this._renderPaintInOrder(t)}getRadiusX(){return this.get(\"radius\")*this.get(W)}getRadiusY(){return this.get(\"radius\")*this.get(V)}setRadius(t){this.radius=t,this.set({width:2*t,height:2*t})}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return super.toObject([...Un,...t])}_toSVG(){const t=(this.endAngle-this.startAngle)%360;if(0===t)return[\"<circle \",\"COMMON_PARTS\",'cx=\"0\" cy=\"0\" ','r=\"',`${this.radius}`,'\" />\\n'];{const{radius:e}=this,s=xt(this.startAngle),i=xt(this.endAngle),r=rt(s)*e,n=nt(s)*e,o=rt(i)*e,a=nt(i)*e;return[`<path d=\"M ${r} ${n} A ${e} ${e} 0 ${t>180?1:0} ${this.counterClockwise?0:1} ${o} ${a}\" `,\"COMMON_PARTS\",\" />\\n\"]}}static async fromElement(t,e,s){const{left:i=0,top:r=0,radius:n=0,...o}=gr(t,this.ATTRIBUTE_NAMES,s);return new this({...o,radius:n,left:i-n,top:r-n})}static fromObject(t){return super._fromObject(t)}}t(qn,\"type\",\"Circle\"),t(qn,\"cacheProperties\",[...ws,...Un]),t(qn,\"ownDefaults\",{radius:0,startAngle:0,endAngle:360,counterClockwise:!1}),t(qn,\"ATTRIBUTE_NAMES\",[\"cx\",\"cy\",\"r\",...Gi]),tt.setClass(qn),tt.setSVGClass(qn);class Kn extends zn{constructor(e){super(e),t(this,\"width\",10),this.points=[]}drawDot(t){const e=this.addPoint(t),s=this.canvas.contextTop;this._saveAndTransform(s),this.dot(s,e),s.restore()}dot(t,e){t.fillStyle=e.fill,t.beginPath(),t.arc(e.x,e.y,e.radius,0,2*Math.PI,!1),t.closePath(),t.fill()}onMouseDown(t){this.points=[],this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.drawDot(t)}_render(){const t=this.canvas.contextTop,e=this.points;this._saveAndTransform(t);for(let s=0;s<e.length;s++)this.dot(t,e[s]);t.restore()}onMouseMove(t){!0===this.limitedToCanvasSize&&this._isOutSideCanvas(t)||(this.needsFullRender()?(this.canvas.clearContext(this.canvas.contextTop),this.addPoint(t),this._render()):this.drawDot(t))}onMouseUp(){const t=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;const e=[];for(let t=0;t<this.points.length;t++){const s=this.points[t],i=new qn({radius:s.radius,left:s.x,top:s.y,originX:T,originY:T,fill:s.fill});this.shadow&&(i.shadow=new Cs(this.shadow)),e.push(i)}const s=new Or(e,{canvas:this.canvas});this.canvas.fire(\"before:path:created\",{path:s}),this.canvas.add(s),this.canvas.fire(\"path:created\",{path:s}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=t,this.canvas.requestRenderAll()}addPoint(t){let{x:e,y:s}=t;const i={x:e,y:s,radius:rn(Math.max(0,this.width-20),this.width+20)/2,fill:new ze(this.color).setAlpha(rn(0,100)/100).toRgba()};return this.points.push(i),i}}class Jn extends zn{constructor(e){super(e),t(this,\"width\",10),t(this,\"density\",20),t(this,\"dotWidth\",1),t(this,\"dotWidthVariance\",1),t(this,\"randomOpacity\",!1),t(this,\"optimizeOverlapping\",!0),this.sprayChunks=[],this.sprayChunk=[]}onMouseDown(t){this.sprayChunks=[],this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.addSprayChunk(t),this.renderChunck(this.sprayChunk)}onMouseMove(t){!0===this.limitedToCanvasSize&&this._isOutSideCanvas(t)||(this.addSprayChunk(t),this.renderChunck(this.sprayChunk))}onMouseUp(){const t=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;const e=[];for(let t=0;t<this.sprayChunks.length;t++){const s=this.sprayChunks[t];for(let t=0;t<s.length;t++){const i=s[t],r=new pr({width:i.width,height:i.width,left:i.x+1,top:i.y+1,originX:T,originY:T,fill:this.color});e.push(r)}}const s=new Or(this.optimizeOverlapping?function(t){const e={},s=[];for(let i,r=0;r<t.length;r++)i=`${t[r].left}${t[r].top}`,e[i]||(e[i]=!0,s.push(t[r]));return s}(e):e,{objectCaching:!0,subTargetCheck:!1,interactive:!1});this.shadow&&s.set(\"shadow\",new Cs(this.shadow)),this.canvas.fire(\"before:path:created\",{path:s}),this.canvas.add(s),this.canvas.fire(\"path:created\",{path:s}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=t,this.canvas.requestRenderAll()}renderChunck(t){const e=this.canvas.contextTop;e.fillStyle=this.color,this._saveAndTransform(e);for(let s=0;s<t.length;s++){const i=t[s];e.globalAlpha=i.opacity,e.fillRect(i.x,i.y,i.width,i.width)}e.restore()}_render(){const t=this.canvas.contextTop;t.fillStyle=this.color,this._saveAndTransform(t);for(let t=0;t<this.sprayChunks.length;t++)this.renderChunck(this.sprayChunks[t]);t.restore()}addSprayChunk(t){this.sprayChunk=[];const e=this.width/2;for(let s=0;s<this.density;s++)this.sprayChunk.push({x:rn(t.x-e,t.x+e),y:rn(t.y-e,t.y+e),width:this.dotWidthVariance?rn(Math.max(1,this.dotWidth-this.dotWidthVariance),this.dotWidth+this.dotWidthVariance):this.dotWidth,opacity:this.randomOpacity?rn(0,100)/100:1});this.sprayChunks.push(this.sprayChunk)}}class Qn extends Nn{constructor(t){super(t)}getPatternSrc(){const t=pt(),e=t.getContext(\"2d\");return t.width=t.height=25,e&&(e.fillStyle=this.color,e.beginPath(),e.arc(10,10,10,0,2*Math.PI,!1),e.closePath(),e.fill()),t}getPattern(t){return t.createPattern(this.source||this.getPatternSrc(),\"repeat\")}_setBrushStyles(t){super._setBrushStyles(t);const e=this.getPattern(t);e&&(t.strokeStyle=e)}createPath(t){const e=super.createPath(t),s=e._getLeftTopCoords().scalarAdd(e.strokeWidth/2);return e.stroke=new Gn({source:this.source||this.getPatternSrc(),offsetX:-s.x,offsetY:-s.y}),e}}const Zn=[\"x1\",\"x2\",\"y1\",\"y2\"];class to extends ki{constructor(){let[t,e,s,i]=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[0,0,0,0],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),Object.assign(this,to.ownDefaults),this.setOptions(r),this.x1=t,this.x2=s,this.y1=e,this.y2=i,this._setWidthHeight();const{left:n,top:o}=r;\"number\"==typeof n&&this.set(O,n),\"number\"==typeof o&&this.set(k,o)}_setWidthHeight(){const{x1:t,y1:e,x2:s,y2:i}=this;this.width=Math.abs(s-t),this.height=Math.abs(i-e);const{left:r,top:n,width:o,height:a}=ae([{x:t,y:e},{x:s,y:i}]),h=new ot(r+o/2,n+a/2);this.setPositionByOrigin(h,T,T)}_set(t,e){return super._set(t,e),Zn.includes(t)&&this._setWidthHeight(),this}_render(t){t.beginPath();const e=this.calcLinePoints();t.moveTo(e.x1,e.y1),t.lineTo(e.x2,e.y2),t.lineWidth=this.strokeWidth;const s=t.strokeStyle;var i;Gt(this.stroke)?t.strokeStyle=this.stroke.toLive(t):t.strokeStyle=null!==(i=this.stroke)&&void 0!==i?i:t.fillStyle;this.stroke&&this._renderStroke(t),t.strokeStyle=s}_findCenterFromElement(){return new ot((this.x1+this.x2)/2,(this.y1+this.y2)/2)}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{...super.toObject(t),...this.calcLinePoints()}}_getNonTransformedDimensions(){const t=super._getNonTransformedDimensions();return\"butt\"===this.strokeLineCap&&(0===this.width&&(t.y-=this.strokeWidth),0===this.height&&(t.x-=this.strokeWidth)),t}calcLinePoints(){const{x1:t,x2:e,y1:s,y2:i,width:r,height:n}=this,o=t<=e?-1:1,a=s<=i?-1:1;return{x1:o*r/2,x2:o*-r/2,y1:a*n/2,y2:a*-n/2}}_toSVG(){const{x1:t,x2:e,y1:s,y2:i}=this.calcLinePoints();return[\"<line \",\"COMMON_PARTS\",`x1=\"${t}\" y1=\"${s}\" x2=\"${e}\" y2=\"${i}\" />\\n`]}static async fromElement(t,e,s){const{x1:i=0,y1:r=0,x2:n=0,y2:o=0,...a}=gr(t,this.ATTRIBUTE_NAMES,s);return new this([i,r,n,o],a)}static fromObject(t){let{x1:e,y1:s,x2:i,y2:r,...n}=t;return this._fromObject({...n,points:[e,s,i,r]},{extraParam:\"points\"})}}t(to,\"type\",\"Line\"),t(to,\"cacheProperties\",[...ws,...Zn]),t(to,\"ATTRIBUTE_NAMES\",Gi.concat(Zn)),tt.setClass(to),tt.setSVGClass(to);class eo extends ki{static getDefaults(){return{...super.getDefaults(),...eo.ownDefaults}}constructor(t){super(),Object.assign(this,eo.ownDefaults),this.setOptions(t)}_render(t){const e=this.width/2,s=this.height/2;t.beginPath(),t.moveTo(-e,s),t.lineTo(0,-s),t.lineTo(e,s),t.closePath(),this._renderPaintInOrder(t)}_toSVG(){const t=this.width/2,e=this.height/2;return[\"<polygon \",\"COMMON_PARTS\",'points=\"',`${-t} ${e},0 ${-e},${t} ${e}`,'\" />']}}t(eo,\"type\",\"Triangle\"),t(eo,\"ownDefaults\",{width:100,height:100}),tt.setClass(eo),tt.setSVGClass(eo);const so=[\"rx\",\"ry\"];class io extends ki{static getDefaults(){return{...super.getDefaults(),...io.ownDefaults}}constructor(t){super(),Object.assign(this,io.ownDefaults),this.setOptions(t)}_set(t,e){switch(super._set(t,e),t){case\"rx\":this.rx=e,this.set(\"width\",2*e);break;case\"ry\":this.ry=e,this.set(\"height\",2*e)}return this}getRx(){return this.get(\"rx\")*this.get(W)}getRy(){return this.get(\"ry\")*this.get(V)}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return super.toObject([...so,...t])}_toSVG(){return[\"<ellipse \",\"COMMON_PARTS\",`cx=\"0\" cy=\"0\" rx=\"${this.rx}\" ry=\"${this.ry}\" />\\n`]}_render(t){t.beginPath(),t.save(),t.transform(1,0,0,this.ry/this.rx,0,0),t.arc(0,0,this.rx,0,x,!1),t.restore(),this._renderPaintInOrder(t)}static async fromElement(t,e,s){const i=gr(t,this.ATTRIBUTE_NAMES,s);return i.left=(i.left||0)-i.rx,i.top=(i.top||0)-i.ry,new this(i)}}t(io,\"type\",\"Ellipse\"),t(io,\"cacheProperties\",[...ws,...so]),t(io,\"ownDefaults\",{rx:0,ry:0}),t(io,\"ATTRIBUTE_NAMES\",[...Gi,\"cx\",\"cy\",\"rx\",\"ry\"]),tt.setClass(io),tt.setSVGClass(io);const ro={exactBoundingBox:!1};class no extends ki{static getDefaults(){return{...super.getDefaults(),...no.ownDefaults}}constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),t(this,\"strokeDiff\",void 0),Object.assign(this,no.ownDefaults),this.setOptions(s),this.points=e;const{left:i,top:r}=s;this.initialized=!0,this.setBoundingBox(!0),\"number\"==typeof i&&this.set(O,i),\"number\"==typeof r&&this.set(k,r)}isOpen(){return!0}_projectStrokeOnPoints(t){return ji(this.points,t,this.isOpen())}_calcDimensions(t){t={scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,strokeLineCap:this.strokeLineCap,strokeLineJoin:this.strokeLineJoin,strokeMiterLimit:this.strokeMiterLimit,strokeUniform:this.strokeUniform,strokeWidth:this.strokeWidth,...t||{}};const e=this.exactBoundingBox?this._projectStrokeOnPoints(t).map(t=>t.projectedPoint):this.points;if(0===e.length)return{left:0,top:0,width:0,height:0,pathOffset:new ot,strokeOffset:new ot,strokeDiff:new ot};const s=ae(e),i=Lt({...t,scaleX:1,scaleY:1}),r=ae(this.points.map(t=>St(t,i,!0))),n=new ot(this.scaleX,this.scaleY);let o=s.left+s.width/2,a=s.top+s.height/2;return this.exactBoundingBox&&(o-=a*Math.tan(xt(this.skewX)),a-=o*Math.tan(xt(this.skewY))),{...s,pathOffset:new ot(o,a),strokeOffset:new ot(r.left,r.top).subtract(new ot(s.left,s.top)).multiply(n),strokeDiff:new ot(s.width,s.height).subtract(new ot(r.width,r.height)).multiply(n)}}_findCenterFromElement(){const t=ae(this.points);return new ot(t.left+t.width/2,t.top+t.height/2)}setDimensions(){this.setBoundingBox()}setBoundingBox(t){const{left:e,top:s,width:i,height:r,pathOffset:n,strokeOffset:o,strokeDiff:a}=this._calcDimensions();this.set({width:i,height:r,pathOffset:n,strokeOffset:o,strokeDiff:a}),t&&this.setPositionByOrigin(new ot(e+i/2,s+r/2),T,T)}isStrokeAccountedForInDimensions(){return this.exactBoundingBox}_getNonTransformedDimensions(){return this.exactBoundingBox?new ot(this.width,this.height):super._getNonTransformedDimensions()}_getTransformedDimensions(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.exactBoundingBox){let n;if(Object.keys(t).some(t=>this.strokeUniform||this.constructor.layoutProperties.includes(t))){var e,s;const{width:i,height:r}=this._calcDimensions(t);n=new ot(null!==(e=t.width)&&void 0!==e?e:i,null!==(s=t.height)&&void 0!==s?s:r)}else{var i,r;n=new ot(null!==(i=t.width)&&void 0!==i?i:this.width,null!==(r=t.height)&&void 0!==r?r:this.height)}return n.multiply(new ot(t.scaleX||this.scaleX,t.scaleY||this.scaleY))}return super._getTransformedDimensions(t)}_set(t,e){const s=this.initialized&&this[t]!==e,i=super._set(t,e);return this.exactBoundingBox&&s&&((t===W||t===V)&&this.strokeUniform&&this.constructor.layoutProperties.includes(\"strokeUniform\")||this.constructor.layoutProperties.includes(t))&&this.setDimensions(),i}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{...super.toObject(t),points:this.points.map(t=>{let{x:e,y:s}=t;return{x:e,y:s}})}}_toSVG(){const t=[],e=this.pathOffset.x,i=this.pathOffset.y,r=s.NUM_FRACTION_DIGITS;for(let s=0,n=this.points.length;s<n;s++)t.push(Wt(this.points[s].x-e,r),\",\",Wt(this.points[s].y-i,r),\" \");return[`<${this.constructor.type.toLowerCase()} `,\"COMMON_PARTS\",`points=\"${t.join(\"\")}\" />\\n`]}_render(t){const e=this.points.length,s=this.pathOffset.x,i=this.pathOffset.y;if(e&&!isNaN(this.points[e-1].y)){t.beginPath(),t.moveTo(this.points[0].x-s,this.points[0].y-i);for(let r=0;r<e;r++){const e=this.points[r];t.lineTo(e.x-s,e.y-i)}!this.isOpen()&&t.closePath(),this._renderPaintInOrder(t)}}complexity(){return this.points.length}static async fromElement(t,e,s){const i=function(t){if(!t)return[];const e=t.replace(/,/g,\" \").trim().split(/\\s+/),s=[];for(let t=0;t<e.length;t+=2)s.push({x:parseFloat(e[t]),y:parseFloat(e[t+1])});return s}(t.getAttribute(\"points\")),{left:r,top:n,...o}=gr(t,this.ATTRIBUTE_NAMES,s);return new this(i,{...o,...e})}static fromObject(t){return this._fromObject(t,{extraParam:\"points\"})}}t(no,\"ownDefaults\",ro),t(no,\"type\",\"Polyline\"),t(no,\"layoutProperties\",[G,z,\"strokeLineCap\",\"strokeLineJoin\",\"strokeMiterLimit\",\"strokeWidth\",\"strokeUniform\",\"points\"]),t(no,\"cacheProperties\",[...ws,\"points\"]),t(no,\"ATTRIBUTE_NAMES\",[...Gi]),tt.setClass(no),tt.setSVGClass(no);class oo extends no{isOpen(){return!1}}t(oo,\"ownDefaults\",ro),t(oo,\"type\",\"Polygon\"),tt.setClass(oo),tt.setSVGClass(oo);class ao extends ki{isEmptyStyles(t){if(!this.styles)return!0;if(void 0!==t&&!this.styles[t])return!0;const e=void 0===t?this.styles:{line:this.styles[t]};for(const t in e)for(const s in e[t])for(const i in e[t][s])return!1;return!0}styleHas(t,e){if(!this.styles)return!1;if(void 0!==e&&!this.styles[e])return!1;const s=void 0===e?this.styles:{0:this.styles[e]};for(const e in s)for(const i in s[e])if(void 0!==s[e][i][t])return!0;return!1}cleanStyle(t){if(!this.styles)return!1;const e=this.styles;let s,i,r=0,n=!0,o=0;for(const o in e){s=0;for(const a in e[o]){const h=e[o][a]||{};r++,void 0!==h[t]?(i?h[t]!==i&&(n=!1):i=h[t],h[t]===this[t]&&delete h[t]):n=!1,0!==Object.keys(h).length?s++:delete e[o][a]}0===s&&delete e[o]}for(let t=0;t<this._textLines.length;t++)o+=this._textLines[t].length;n&&r===o&&(this[t]=i,this.removeStyle(t))}removeStyle(t){if(!this.styles)return;const e=this.styles;let s,i,r;for(i in e){for(r in s=e[i],s)delete s[r][t],0===Object.keys(s[r]).length&&delete s[r];0===Object.keys(s).length&&delete e[i]}}_extendStyles(t,e){const{lineIndex:s,charIndex:i}=this.get2DCursorLocation(t);this._getLineStyle(s)||this._setLineStyle(s);const r=Yt({...this._getStyleDeclaration(s,i),...e},t=>void 0!==t);this._setStyleDeclaration(s,i,r)}getSelectionStyles(t,e,s){const i=[];for(let r=t;r<(e||t);r++)i.push(this.getStyleAtPosition(r,s));return i}getStyleAtPosition(t,e){const{lineIndex:s,charIndex:i}=this.get2DCursorLocation(t);return e?this.getCompleteStyleDeclaration(s,i):this._getStyleDeclaration(s,i)}setSelectionStyles(t,e,s){for(let i=e;i<(s||e);i++)this._extendStyles(i,t);this._forceClearCache=!0}_getStyleDeclaration(t,e){var s;const i=this.styles&&this.styles[t];return i&&null!==(s=i[e])&&void 0!==s?s:{}}getCompleteStyleDeclaration(t,e){return{...Xt(this,this.constructor._styleProperties),...this._getStyleDeclaration(t,e)}}_setStyleDeclaration(t,e,s){this.styles[t][e]=s}_deleteStyleDeclaration(t,e){delete this.styles[t][e]}_getLineStyle(t){return!!this.styles[t]}_setLineStyle(t){this.styles[t]={}}_deleteLineStyle(t){delete this.styles[t]}}t(ao,\"_styleProperties\",ss);const ho=/ +/g,lo=/\"/g;function co(t,e,i,r,n){return`\\t\\t${function(t,e){let{left:i,top:r,width:n,height:o}=e,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.NUM_FRACTION_DIGITS;const h=Ue(H,t,!1),[l,c,u,d]=[i,r,n,o].map(t=>Wt(t,a));return`<rect ${h} x=\"${l}\" y=\"${c}\" width=\"${u}\" height=\"${d}\"></rect>`}(t,{left:e,top:i,width:r,height:n})}\\n`}let uo;class go extends ao{static getDefaults(){return{...super.getDefaults(),...go.ownDefaults}}constructor(e,s){super(),t(this,\"__charBounds\",[]),Object.assign(this,go.ownDefaults),this.setOptions(s),this.styles||(this.styles={}),this.text=e,this.initialized=!0,this.path&&this.setPathInfo(),this.initDimensions(),this.setCoords()}setPathInfo(){const t=this.path;t&&(t.segmentsInfo=Ur(t.path))}_splitText(){const t=this._splitTextIntoLines(this.text);return this.textLines=t.lines,this._textLines=t.graphemeLines,this._unwrappedTextLines=t._unwrappedLines,this._text=t.graphemeText,t}initDimensions(){this._splitText(),this._clearCache(),this.dirty=!0,this.path?(this.width=this.path.width,this.height=this.path.height):(this.width=this.calcTextWidth()||this.cursorWidth||this.MIN_TEXT_WIDTH,this.height=this.calcTextHeight()),this.textAlign.includes(rs)&&this.enlargeSpaces()}enlargeSpaces(){let t,e,s,i,r,n,o;for(let a=0,h=this._textLines.length;a<h;a++)if((this.textAlign===rs||a!==h-1&&!this.isEndOfWrapping(a))&&(i=0,r=this._textLines[a],e=this.getLineWidth(a),e<this.width&&(o=this.textLines[a].match(this._reSpacesAndTabs)))){s=o.length,t=(this.width-e)/s;for(let e=0;e<=r.length;e++)n=this.__charBounds[a][e],this._reSpaceAndTab.test(r[e])?(n.width+=t,n.kernedWidth+=t,n.left+=i,i+=t):n.left+=i}}isEndOfWrapping(t){return t===this._textLines.length-1}missingNewlineOffset(t){return 1}get2DCursorLocation(t,e){const s=e?this._unwrappedTextLines:this._textLines;let i;for(i=0;i<s.length;i++){if(t<=s[i].length)return{lineIndex:i,charIndex:t};t-=s[i].length+this.missingNewlineOffset(i,e)}return{lineIndex:i-1,charIndex:s[i-1].length<t?s[i-1].length:t}}toString(){return`#<Text (${this.complexity()}): { \"text\": \"${this.text}\", \"fontFamily\": \"${this.fontFamily}\" }>`}_getCacheCanvasDimensions(){const t=super._getCacheCanvasDimensions(),e=this.fontSize;return t.width+=e*t.zoomX,t.height+=e*t.zoomY,t}_render(t){const e=this.path;e&&!e.isNotVisible()&&e._render(t),this._setTextStyles(t),this._renderTextLinesBackground(t),this._renderTextDecoration(t,\"underline\"),this._renderText(t),this._renderTextDecoration(t,\"overline\"),this._renderTextDecoration(t,\"linethrough\")}_renderText(t){this.paintFirst===N?(this._renderTextStroke(t),this._renderTextFill(t)):(this._renderTextFill(t),this._renderTextStroke(t))}_setTextStyles(t,e,s){if(t.textBaseline=\"alphabetic\",this.path)switch(this.pathAlign){case T:t.textBaseline=\"middle\";break;case\"ascender\":t.textBaseline=k;break;case\"descender\":t.textBaseline=D}t.font=this._getFontDeclaration(e,s)}calcTextWidth(){let t=this.getLineWidth(0);for(let e=1,s=this._textLines.length;e<s;e++){const s=this.getLineWidth(e);s>t&&(t=s)}return t}_renderTextLine(t,e,s,i,r,n){this._renderChars(t,e,s,i,r,n)}_renderTextLinesBackground(t){if(!this.textBackgroundColor&&!this.styleHas(\"textBackgroundColor\"))return;const e=t.fillStyle,s=this._getLeftOffset();let i=this._getTopOffset();for(let e=0,r=this._textLines.length;e<r;e++){const r=this.getHeightOfLine(e);if(!this.textBackgroundColor&&!this.styleHas(\"textBackgroundColor\",e)){i+=r;continue}const n=this._textLines[e].length,o=this._getLineLeftOffset(e);let a,h,l=0,c=0,u=this.getValueOfPropertyAt(e,0,\"textBackgroundColor\");const d=this.getHeightOfLineImpl(e);for(let r=0;r<n;r++){const n=this.__charBounds[e][r];h=this.getValueOfPropertyAt(e,r,\"textBackgroundColor\"),this.path?(t.save(),t.translate(n.renderLeft,n.renderTop),t.rotate(n.angle),t.fillStyle=h,h&&t.fillRect(-n.width/2,-d*(1-this._fontSizeFraction),n.width,d),t.restore()):h!==u?(a=s+o+c,this.direction===K&&(a=this.width-a-l),t.fillStyle=u,u&&t.fillRect(a,i,l,d),c=n.left,l=n.width,u=h):l+=n.kernedWidth}h&&!this.path&&(a=s+o+c,this.direction===K&&(a=this.width-a-l),t.fillStyle=h,t.fillRect(a,i,l,d)),i+=r}t.fillStyle=e,this._removeShadow(t)}_measureChar(t,e,s,i){const r=p.getFontCache(e),n=this._getFontDeclaration(e),o=s?s+t:t,a=s&&n===this._getFontDeclaration(i),h=e.fontSize/this.CACHE_FONT_SIZE;let l,c,u,d;if(s&&r.has(s)&&(u=r.get(s)),r.has(t)&&(d=l=r.get(t)),a&&r.has(o)&&(c=r.get(o),d=c-u),void 0===l||void 0===u||void 0===c){const i=function(){if(!uo){const t=vt({width:0,height:0});uo=t.getContext(\"2d\")}return uo}();this._setTextStyles(i,e,!0),void 0===l&&(d=l=i.measureText(t).width,r.set(t,l)),void 0===u&&a&&s&&(u=i.measureText(s).width,r.set(s,u)),a&&void 0===c&&(c=i.measureText(o).width,r.set(o,c),d=c-u)}return{width:l*h,kernedWidth:d*h}}getHeightOfChar(t,e){return this.getValueOfPropertyAt(t,e,\"fontSize\")}measureLine(t){const e=this._measureLine(t);return 0!==this.charSpacing&&(e.width-=this._getWidthOfCharSpacing()),e.width<0&&(e.width=0),e}_measureLine(t){let e,s,i=0;const r=this.pathSide===M,n=this.path,o=this._textLines[t],a=o.length,h=new Array(a);this.__charBounds[t]=h;for(let r=0;r<a;r++){const n=o[r];s=this._getGraphemeBox(n,t,r,e),h[r]=s,i+=s.kernedWidth,e=n}if(h[a]={left:s?s.left+s.width:0,width:0,kernedWidth:0,height:this.fontSize,deltaY:0},n&&n.segmentsInfo){let t=0;const e=n.segmentsInfo[n.segmentsInfo.length-1].length;switch(this.textAlign){case O:t=r?e-i:0;break;case T:t=(e-i)/2;break;case M:t=r?0:e-i}t+=this.pathStartOffset*(r?-1:1);for(let i=r?a-1:0;r?i>=0:i<a;r?i--:i++)s=h[i],t>e?t%=e:t<0&&(t+=e),this._setGraphemeOnPath(t,s),t+=s.kernedWidth}return{width:i,numOfSpaces:0}}_setGraphemeOnPath(t,e){const s=t+e.kernedWidth/2,i=this.path,r=qr(i.path,s,i.segmentsInfo);e.renderLeft=r.x-i.pathOffset.x,e.renderTop=r.y-i.pathOffset.y,e.angle=r.angle+(this.pathSide===M?Math.PI:0)}_getGraphemeBox(t,e,s,i,r){const n=this.getCompleteStyleDeclaration(e,s),o=i?this.getCompleteStyleDeclaration(e,s-1):{},a=this._measureChar(t,n,i,o);let h,l=a.kernedWidth,c=a.width;0!==this.charSpacing&&(h=this._getWidthOfCharSpacing(),c+=h,l+=h);const u={width:c,left:0,height:n.fontSize,kernedWidth:l,deltaY:n.deltaY};if(s>0&&!r){const t=this.__charBounds[e][s-1];u.left=t.left+t.width+a.kernedWidth-a.width}return u}getHeightOfLineImpl(t){const e=this.__lineHeights;if(e[t])return e[t];let s=this.getHeightOfChar(t,0);for(let e=1,i=this._textLines[t].length;e<i;e++)s=Math.max(this.getHeightOfChar(t,e),s);return e[t]=s*this._fontSizeMult}getHeightOfLine(t){return this.getHeightOfLineImpl(t)*this.lineHeight}calcTextHeight(){let t=0;for(let e=0,s=this._textLines.length;e<s;e++)t+=e===s-1?this.getHeightOfLineImpl(e):this.getHeightOfLine(e);return t}_getLeftOffset(){return this.direction===q?-this.width/2:this.width/2}_getTopOffset(){return-this.height/2}_renderTextCommon(t,e){t.save();let s=0;const i=this._getLeftOffset(),r=this._getTopOffset();for(let n=0,o=this._textLines.length;n<o;n++)this._renderTextLine(e,t,this._textLines[n],i+this._getLineLeftOffset(n),r+s+this.getHeightOfLineImpl(n),n),s+=this.getHeightOfLine(n);t.restore()}_renderTextFill(t){(this.fill||this.styleHas(H))&&this._renderTextCommon(t,\"fillText\")}_renderTextStroke(t){(this.stroke&&0!==this.strokeWidth||!this.isEmptyStyles())&&(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this._setLineDash(t,this.strokeDashArray),t.beginPath(),this._renderTextCommon(t,\"strokeText\"),t.closePath(),t.restore())}_renderChars(t,e,s,i,r,n){const o=this.textAlign.includes(rs),a=this.path,h=!o&&0===this.charSpacing&&this.isEmptyStyles(n)&&!a,l=this.direction===q,c=this.direction===q?1:-1,u=e.direction;let d,g,f,p,m,v=\"\",y=0;if(e.save(),u!==this.direction&&(e.canvas.setAttribute(\"dir\",l?q:K),e.direction=l?q:K,e.textAlign=l?O:M),r-=this.getHeightOfLineImpl(n)*this._fontSizeFraction,h)return this._renderChar(t,e,n,0,s.join(\"\"),i,r),void e.restore();for(let h=0,l=s.length-1;h<=l;h++)p=h===l||this.charSpacing||a,v+=s[h],f=this.__charBounds[n][h],0===y?(i+=c*(f.kernedWidth-f.width),y+=f.width):y+=f.kernedWidth,o&&!p&&this._reSpaceAndTab.test(s[h])&&(p=!0),p||(d=d||this.getCompleteStyleDeclaration(n,h),g=this.getCompleteStyleDeclaration(n,h+1),p=Yi(d,g,!1)),p&&(a?(e.save(),e.translate(f.renderLeft,f.renderTop),e.rotate(f.angle),this._renderChar(t,e,n,h,v,-y/2,0),e.restore()):(m=i,this._renderChar(t,e,n,h,v,m,r)),v=\"\",d=g,i+=c*y,y=0);e.restore()}_applyPatternGradientTransformText(t){const e=this.width+this.strokeWidth,s=this.height+this.strokeWidth,i=vt({width:e,height:s}),r=i.getContext(\"2d\");return i.width=e,i.height=s,r.beginPath(),r.moveTo(0,0),r.lineTo(e,0),r.lineTo(e,s),r.lineTo(0,s),r.closePath(),r.translate(e/2,s/2),r.fillStyle=t.toLive(r),this._applyPatternGradientTransform(r,t),r.fill(),r.createPattern(i,\"no-repeat\")}handleFiller(t,e,s){let i,r;return Gt(s)?\"percentage\"===s.gradientUnits||s.gradientTransform||s.patternTransform?(i=-this.width/2,r=-this.height/2,t.translate(i,r),t[e]=this._applyPatternGradientTransformText(s),{offsetX:i,offsetY:r}):(t[e]=s.toLive(t),this._applyPatternGradientTransform(t,s)):(t[e]=s,{offsetX:0,offsetY:0})}_setStrokeStyles(t,e){let{stroke:s,strokeWidth:i}=e;return t.lineWidth=i,t.lineCap=this.strokeLineCap,t.lineDashOffset=this.strokeDashOffset,t.lineJoin=this.strokeLineJoin,t.miterLimit=this.strokeMiterLimit,this.handleFiller(t,\"strokeStyle\",s)}_setFillStyles(t,e){let{fill:s}=e;return this.handleFiller(t,\"fillStyle\",s)}_renderChar(t,e,s,i,r,n,o){const a=this._getStyleDeclaration(s,i),h=this.getCompleteStyleDeclaration(s,i),l=\"fillText\"===t&&h.fill,c=\"strokeText\"===t&&h.stroke&&h.strokeWidth;if(c||l){if(e.save(),e.font=this._getFontDeclaration(h),a.textBackgroundColor&&this._removeShadow(e),a.deltaY&&(o+=a.deltaY),l){const t=this._setFillStyles(e,h);e.fillText(r,n-t.offsetX,o-t.offsetY)}if(c){const t=this._setStrokeStyles(e,h);e.strokeText(r,n-t.offsetX,o-t.offsetY)}e.restore()}}setSuperscript(t,e){this._setScript(t,e,this.superscript)}setSubscript(t,e){this._setScript(t,e,this.subscript)}_setScript(t,e,s){const i=this.get2DCursorLocation(t,!0),r=this.getValueOfPropertyAt(i.lineIndex,i.charIndex,\"fontSize\"),n=this.getValueOfPropertyAt(i.lineIndex,i.charIndex,\"deltaY\"),o={fontSize:r*s.size,deltaY:n+r*s.baseline};this.setSelectionStyles(o,t,e)}_getLineLeftOffset(t){const e=this.getLineWidth(t),s=this.width-e,i=this.textAlign,r=this.direction,n=this.isEndOfWrapping(t);let o=0;return i===rs||i===as&&!n||i===os&&!n||i===ns&&!n?0:(i===T&&(o=s/2),i===M&&(o=s),i===as&&(o=s/2),i===os&&(o=s),r===K&&(i===M||i===os?o=0:i===O||i===ns?o=-s:i!==T&&i!==as||(o=-s/2)),o)}_clearCache(){this._forceClearCache=!1,this.__lineWidths=[],this.__lineHeights=[],this.__charBounds=[]}getLineWidth(t){if(void 0!==this.__lineWidths[t])return this.__lineWidths[t];const{width:e}=this.measureLine(t);return this.__lineWidths[t]=e,e}_getWidthOfCharSpacing(){return 0!==this.charSpacing?this.fontSize*this.charSpacing/1e3:0}getValueOfPropertyAt(t,e,s){var i;return null!==(i=this._getStyleDeclaration(t,e)[s])&&void 0!==i?i:this[s]}_renderTextDecoration(t,e){if(!this[e]&&!this.styleHas(e))return;let s=this._getTopOffset();const i=this._getLeftOffset(),r=this.path,n=this._getWidthOfCharSpacing(),o=\"linethrough\"===e?.5:\"overline\"===e?1:0,a=this.offsets[e];for(let h=0,l=this._textLines.length;h<l;h++){const l=this.getHeightOfLine(h);if(!this[e]&&!this.styleHas(e,h)){s+=l;continue}const c=this._textLines[h],u=l/this.lineHeight,d=this._getLineLeftOffset(h);let g=0,f=0,p=this.getValueOfPropertyAt(h,0,e),m=this.getValueOfPropertyAt(h,0,H),v=this.getValueOfPropertyAt(h,0,Je),y=p,_=m,x=v;const C=s+u*(1-this._fontSizeFraction);let b=this.getHeightOfChar(h,0),S=this.getValueOfPropertyAt(h,0,\"deltaY\");for(let s=0,n=c.length;s<n;s++){const n=this.__charBounds[h][s];y=this.getValueOfPropertyAt(h,s,e),_=this.getValueOfPropertyAt(h,s,H),x=this.getValueOfPropertyAt(h,s,Je);const l=this.getHeightOfChar(h,s),c=this.getValueOfPropertyAt(h,s,\"deltaY\");if(r&&y&&_){const e=this.fontSize*x/1e3;t.save(),t.fillStyle=m,t.translate(n.renderLeft,n.renderTop),t.rotate(n.angle),t.fillRect(-n.kernedWidth/2,a*l+c-o*e,n.kernedWidth,e),t.restore()}else if((y!==p||_!==m||l!==b||x!==v||c!==S)&&f>0){const e=this.fontSize*v/1e3;let s=i+d+g;this.direction===K&&(s=this.width-s-f),p&&m&&v&&(t.fillStyle=m,t.fillRect(s,C+a*b+S-o*e,f,e)),g=n.left,f=n.width,p=y,v=x,m=_,b=l,S=c}else f+=n.kernedWidth}let w=i+d+g;this.direction===K&&(w=this.width-w-f),t.fillStyle=_;const T=this.fontSize*x/1e3;y&&_&&x&&t.fillRect(w,C+a*b+S-o*T,f-n,T),s+=l}this._removeShadow(t)}_getFontDeclaration(){let{fontFamily:t=this.fontFamily,fontStyle:e=this.fontStyle,fontWeight:s=this.fontWeight,fontSize:i=this.fontSize}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;const n=t.includes(\"'\")||t.includes('\"')||t.includes(\",\")||go.genericFonts.includes(t.toLowerCase())?t:`\"${t}\"`;return[e,s,`${r?this.CACHE_FONT_SIZE:i}px`,n].join(\" \")}render(t){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._forceClearCache&&this.initDimensions(),super.render(t)))}graphemeSplit(t){return Ri(t)}_splitTextIntoLines(t){const e=t.split(this._reNewline),s=new Array(e.length),i=[\"\\n\"];let r=[];for(let t=0;t<e.length;t++)s[t]=this.graphemeSplit(e[t]),r=r.concat(s[t],i);return r.pop(),{_unwrappedLines:s,lines:e,graphemeText:r,graphemeLines:s}}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{...super.toObject([...es,...t]),styles:Wi(this.styles,this.text),...this.path?{path:this.path.toObject()}:{}}}set(t,e){const{textLayoutProperties:s}=this.constructor;super.set(t,e);let i=!1,r=!1;if(\"object\"==typeof t)for(const e in t)\"path\"===e&&this.setPathInfo(),i=i||s.includes(e),r=r||\"path\"===e;else i=s.includes(t),r=\"path\"===t;return r&&this.setPathInfo(),i&&this.initialized&&(this.initDimensions(),this.setCoords()),this}complexity(){return 1}static async fromElement(t,e,s){const i=gr(t,go.ATTRIBUTE_NAMES,s),{textAnchor:r=O,textDecoration:n=\"\",dx:o=0,dy:a=0,top:h=0,left:l=0,fontSize:c=S,strokeWidth:u=1,...d}={...e,...i},g=new this(Be(t.textContent||\"\").trim(),{left:l+o,top:h+a,underline:n.includes(\"underline\"),overline:n.includes(\"overline\"),linethrough:n.includes(\"line-through\"),strokeWidth:0,fontSize:c,...d}),f=g.getScaledHeight()/g.height,p=((g.height+g.strokeWidth)*g.lineHeight-g.height)*f,m=g.getScaledHeight()+p;let v=0;return r===T&&(v=g.getScaledWidth()/2),r===M&&(v=g.getScaledWidth()),g.set({left:g.left-v,top:g.top-(m-g.fontSize*(.07+g._fontSizeFraction))/g.lineHeight,strokeWidth:u}),g}static fromObject(t){return this._fromObject({...t,styles:Vi(t.styles||{},t.text)},{extraParam:\"text\"})}}t(go,\"textLayoutProperties\",ts),t(go,\"cacheProperties\",[...ws,...es]),t(go,\"ownDefaults\",is),t(go,\"type\",\"Text\"),t(go,\"genericFonts\",[\"serif\",\"sans-serif\",\"monospace\",\"cursive\",\"fantasy\",\"system-ui\",\"ui-serif\",\"ui-sans-serif\",\"ui-monospace\",\"ui-rounded\",\"math\",\"emoji\",\"fangsong\"]),t(go,\"ATTRIBUTE_NAMES\",Gi.concat(\"x\",\"y\",\"dx\",\"dy\",\"font-family\",\"font-style\",\"font-weight\",\"font-size\",\"letter-spacing\",\"text-decoration\",\"text-anchor\")),Oi(go,[class extends qe{_toSVG(){const t=this._getSVGLeftTopOffsets(),e=this._getSVGTextAndBg(t.textTop,t.textLeft);return this._wrapSVGTextAndBg(e)}toSVG(t){const e=this._createBaseSVGMarkup(this._toSVG(),{reviver:t,noStyle:!0,withShadow:!0}),s=this.path;return s?e+s._createBaseSVGMarkup(s._toSVG(),{reviver:t,withShadow:!0,additionalTransform:Vt(this.calcOwnMatrix())}):e}_getSVGLeftTopOffsets(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}}_wrapSVGTextAndBg(t){let{textBgRects:e,textSpans:s}=t;const i=this.getSvgTextDecoration(this);return[e.join(\"\"),'\\t\\t<text xml:space=\"preserve\" ',`font-family=\"${this.fontFamily.replace(lo,\"'\")}\" `,`font-size=\"${this.fontSize}\" `,this.fontStyle?`font-style=\"${this.fontStyle}\" `:\"\",this.fontWeight?`font-weight=\"${this.fontWeight}\" `:\"\",i?`text-decoration=\"${i}\" `:\"\",\"rtl\"===this.direction?`direction=\"${this.direction}\" `:\"\",'style=\"',this.getSvgStyles(!0),'\"',this.addPaintOrder(),\" >\",s.join(\"\"),\"</text>\\n\"]}_getSVGTextAndBg(t,e){const s=[],i=[];let r,n=t;this.backgroundColor&&i.push(...co(this.backgroundColor,-this.width/2,-this.height/2,this.width,this.height));for(let t=0,o=this._textLines.length;t<o;t++)r=this._getLineLeftOffset(t),\"rtl\"===this.direction&&(r+=this.width),(this.textBackgroundColor||this.styleHas(\"textBackgroundColor\",t))&&this._setSVGTextLineBg(i,t,e+r,n),this._setSVGTextLineText(s,t,e+r,n),n+=this.getHeightOfLine(t);return{textSpans:s,textBgRects:i}}_createTextCharSpan(t,e,i,r,n){const o=s.NUM_FRACTION_DIGITS,a=this.getSvgSpanStyles(e,t!==t.trim()||!!t.match(ho)),h=a?`style=\"${a}\"`:\"\",l=e.deltaY,c=l?` dy=\"${Wt(l,o)}\" `:\"\",{angle:u,renderLeft:d,renderTop:g,width:f}=n;let p=\"\";if(void 0!==d){const t=f/2;u&&(p=` rotate=\"${Wt(Ct(u),o)}\"`);const e=Et({angle:Ct(u)});e[4]=d,e[5]=g;const s=new ot(-t,0).transform(e);i=s.x,r=s.y}return`<tspan x=\"${Wt(i,o)}\" y=\"${Wt(r,o)}\" ${c}${p}${h}>${Li(t)}</tspan>`}_setSVGTextLineText(t,e,s,i){const r=this.getHeightOfLine(e),n=this.textAlign.includes(rs),o=this._textLines[e];let a,h,l,c,u,d=\"\",g=0;i+=r*(1-this._fontSizeFraction)/this.lineHeight;for(let r=0,f=o.length-1;r<=f;r++)u=r===f||this.charSpacing||this.path,d+=o[r],l=this.__charBounds[e][r],0===g?(s+=l.kernedWidth-l.width,g+=l.width):g+=l.kernedWidth,n&&!u&&this._reSpaceAndTab.test(o[r])&&(u=!0),u||(a=a||this.getCompleteStyleDeclaration(e,r),h=this.getCompleteStyleDeclaration(e,r+1),u=Yi(a,h,!0)),u&&(c=this._getStyleDeclaration(e,r),t.push(this._createTextCharSpan(d,c,s,i,l)),d=\"\",a=h,\"rtl\"===this.direction?s-=g:s+=g,g=0)}_setSVGTextLineBg(t,e,s,i){const r=this._textLines[e],n=this.getHeightOfLine(e)/this.lineHeight;let o,a=0,h=0,l=this.getValueOfPropertyAt(e,0,\"textBackgroundColor\");for(let c=0;c<r.length;c++){const{left:r,width:u,kernedWidth:d}=this.__charBounds[e][c];o=this.getValueOfPropertyAt(e,c,\"textBackgroundColor\"),o!==l?(l&&t.push(...co(l,s+h,i,a,n)),h=r,a=u,l=o):a+=d}o&&t.push(...co(l,s+h,i,a,n))}getSvgStyles(t){return`${super.getSvgStyles(t)} text-decoration-thickness: ${Wt(this.textDecorationThickness*this.getObjectScaling().y/10,s.NUM_FRACTION_DIGITS)}%; white-space: pre;`}getSvgSpanStyles(t,e){const{fontFamily:i,strokeWidth:r,stroke:n,fill:o,fontSize:a,fontStyle:h,fontWeight:l,textDecorationThickness:c,linethrough:u,overline:d,underline:g}=t,f=this.getSvgTextDecoration({underline:null!=g?g:this.underline,overline:null!=d?d:this.overline,linethrough:null!=u?u:this.linethrough}),p=c||this.textDecorationThickness;return[n?Ue(N,n):\"\",r?`stroke-width: ${r}; `:\"\",i?`font-family: ${i.includes(\"'\")||i.includes('\"')?i:`'${i}'`}; `:\"\",a?`font-size: ${a}px; `:\"\",h?`font-style: ${h}; `:\"\",l?`font-weight: ${l}; `:\"\",f?`text-decoration: ${f}; text-decoration-thickness: ${Wt(p*this.getObjectScaling().y/10,s.NUM_FRACTION_DIGITS)}%; `:\"\",o?Ue(H,o):\"\",e?\"white-space: pre; \":\"\"].join(\"\")}getSvgTextDecoration(t){return[\"overline\",\"underline\",\"line-through\"].filter(e=>t[e.replace(\"-\",\"\")]).join(\" \")}}]),tt.setClass(go),tt.setSVGClass(go);class fo{constructor(e){t(this,\"target\",void 0),t(this,\"__mouseDownInPlace\",!1),t(this,\"__dragStartFired\",!1),t(this,\"__isDraggingOver\",!1),t(this,\"__dragStartSelection\",void 0),t(this,\"__dragImageDisposer\",void 0),t(this,\"_dispose\",void 0),this.target=e;const s=[this.target.on(\"dragenter\",this.dragEnterHandler.bind(this)),this.target.on(\"dragover\",this.dragOverHandler.bind(this)),this.target.on(\"dragleave\",this.dragLeaveHandler.bind(this)),this.target.on(\"dragend\",this.dragEndHandler.bind(this)),this.target.on(\"drop\",this.dropHandler.bind(this))];this._dispose=()=>{s.forEach(t=>t()),this._dispose=void 0}}isPointerOverSelection(t){const e=this.target,s=e.getSelectionStartFromPointer(t);return e.isEditing&&s>=e.selectionStart&&s<=e.selectionEnd&&e.selectionStart<e.selectionEnd}start(t){return this.__mouseDownInPlace=this.isPointerOverSelection(t)}isActive(){return this.__mouseDownInPlace}end(t){const e=this.isActive();return e&&!this.__dragStartFired&&(this.target.setCursorByClick(t),this.target.initDelayedCursor(!0)),this.__mouseDownInPlace=!1,this.__dragStartFired=!1,this.__isDraggingOver=!1,e}getDragStartSelection(){return this.__dragStartSelection}setDragImage(t,e){var s;let{selectionStart:i,selectionEnd:r}=e;const n=this.target,o=n.canvas,a=new ot(n.flipX?-1:1,n.flipY?-1:1),h=n._getCursorBoundaries(i),l=new ot(h.left+h.leftOffset,h.top+h.topOffset).multiply(a).transform(n.calcTransformMatrix()),c=o.getScenePoint(t).subtract(l),u=n.getCanvasRetinaScaling(),d=n.getBoundingRect(),g=l.subtract(new ot(d.left,d.top)),f=o.viewportTransform,p=g.add(c).transform(f,!0),m=n.backgroundColor,v=Fi(n.styles);n.backgroundColor=\"\";const y={stroke:\"transparent\",fill:\"transparent\",textBackgroundColor:\"transparent\"};n.setSelectionStyles(y,0,i),n.setSelectionStyles(y,r,n.text.length),n.dirty=!0;const _=n.toCanvasElement({enableRetinaScaling:o.enableRetinaScaling,viewportTransform:!0});n.backgroundColor=m,n.styles=v,n.dirty=!0,an(_,{position:\"fixed\",left:-_.width+\"px\",border:E,width:_.width/u+\"px\",height:_.height/u+\"px\"}),this.__dragImageDisposer&&this.__dragImageDisposer(),this.__dragImageDisposer=()=>{_.remove()},qt(t.target||this.target.hiddenTextarea).body.appendChild(_),null===(s=t.dataTransfer)||void 0===s||s.setDragImage(_,p.x,p.y)}onDragStart(t){this.__dragStartFired=!0;const e=this.target,s=this.isActive();if(s&&t.dataTransfer){const s=this.__dragStartSelection={selectionStart:e.selectionStart,selectionEnd:e.selectionEnd},i=e._text.slice(s.selectionStart,s.selectionEnd).join(\"\"),r={text:e.text,value:i,...s};t.dataTransfer.setData(\"text/plain\",i),t.dataTransfer.setData(\"application/fabric\",JSON.stringify({value:i,styles:e.getSelectionStyles(s.selectionStart,s.selectionEnd,!0)})),t.dataTransfer.effectAllowed=\"copyMove\",this.setDragImage(t,r)}return e.abortCursorAnimation(),s}canDrop(t){if(this.target.editable&&!this.target.getActiveControl()&&!t.defaultPrevented){if(this.isActive()&&this.__dragStartSelection){const e=this.target.getSelectionStartFromPointer(t),s=this.__dragStartSelection;return e<s.selectionStart||e>s.selectionEnd}return!0}return!1}targetCanDrop(t){return this.target.canDrop(t)}dragEnterHandler(t){let{e:e}=t;const s=this.targetCanDrop(e);!this.__isDraggingOver&&s&&(this.__isDraggingOver=!0)}dragOverHandler(t){const{e:e}=t,s=this.targetCanDrop(e);!this.__isDraggingOver&&s?this.__isDraggingOver=!0:this.__isDraggingOver&&!s&&(this.__isDraggingOver=!1),this.__isDraggingOver&&(e.preventDefault(),t.canDrop=!0,t.dropTarget=this.target)}dragLeaveHandler(){(this.__isDraggingOver||this.isActive())&&(this.__isDraggingOver=!1)}dropHandler(t){var e;const{e:s}=t,i=s.defaultPrevented;this.__isDraggingOver=!1,s.preventDefault();let r=null===(e=s.dataTransfer)||void 0===e?void 0:e.getData(\"text/plain\");if(r&&!i){const e=this.target,i=e.canvas;let n=e.getSelectionStartFromPointer(s);const{styles:o}=s.dataTransfer.types.includes(\"application/fabric\")?JSON.parse(s.dataTransfer.getData(\"application/fabric\")):{},a=r[Math.max(0,r.length-1)],h=0;if(this.__dragStartSelection){const t=this.__dragStartSelection.selectionStart,s=this.__dragStartSelection.selectionEnd;n>t&&n<=s?n=t:n>s&&(n-=s-t),e.removeChars(t,s),delete this.__dragStartSelection}e._reNewline.test(a)&&(e._reNewline.test(e._text[n])||n===e._text.length)&&(r=r.trimEnd()),t.didDrop=!0,t.dropTarget=e,e.insertChars(r,o,n),i.setActiveObject(e),e.enterEditing(s),e.selectionStart=Math.min(n+h,e._text.length),e.selectionEnd=Math.min(e.selectionStart+r.length,e._text.length),e.hiddenTextarea.value=e.text,e._updateTextarea(),e.hiddenTextarea.focus(),e.fire(X,{index:n+h,action:\"drop\"}),i.fire(\"text:changed\",{target:e}),i.contextTopDirty=!0,i.requestRenderAll()}}dragEndHandler(t){let{e:e}=t;if(this.isActive()&&this.__dragStartFired&&this.__dragStartSelection){var s;const t=this.target,i=this.target.canvas,{selectionStart:r,selectionEnd:n}=this.__dragStartSelection,o=(null===(s=e.dataTransfer)||void 0===s?void 0:s.dropEffect)||E;o===E?(t.selectionStart=r,t.selectionEnd=n,t._updateTextarea(),t.hiddenTextarea.focus()):(t.clearContextTop(),\"move\"===o&&(t.removeChars(r,n),t.selectionStart=t.selectionEnd=r,t.hiddenTextarea&&(t.hiddenTextarea.value=t.text),t._updateTextarea(),t.fire(X,{index:r,action:\"dragend\"}),i.fire(\"text:changed\",{target:t}),i.requestRenderAll()),t.exitEditing())}this.__dragImageDisposer&&this.__dragImageDisposer(),delete this.__dragImageDisposer,delete this.__dragStartSelection,this.__isDraggingOver=!1}dispose(){this._dispose&&this._dispose()}}const po=/[ \\n\\.,;!\\?\\-]/;class mo extends go{constructor(){super(...arguments),t(this,\"_currentCursorOpacity\",1)}initBehavior(){this._tick=this._tick.bind(this),this._onTickComplete=this._onTickComplete.bind(this),this.updateSelectionOnMouseMove=this.updateSelectionOnMouseMove.bind(this)}onDeselect(t){return this.isEditing&&this.exitEditing(),this.selected=!1,super.onDeselect(t)}_animateCursor(t){let{toValue:e,duration:s,delay:i,onComplete:r}=t;return $s({startValue:this._currentCursorOpacity,endValue:e,duration:s,delay:i,onComplete:r,abort:()=>!this.canvas||this.selectionStart!==this.selectionEnd,onChange:t=>{this._currentCursorOpacity=t,this.renderCursorOrSelection()}})}_tick(t){this._currentTickState=this._animateCursor({toValue:0,duration:this.cursorDuration/2,delay:Math.max(t||0,100),onComplete:this._onTickComplete})}_onTickComplete(){var t;null===(t=this._currentTickCompleteState)||void 0===t||t.abort(),this._currentTickCompleteState=this._animateCursor({toValue:1,duration:this.cursorDuration,onComplete:this._tick})}initDelayedCursor(t){this.abortCursorAnimation(),this._tick(t?0:this.cursorDelay)}abortCursorAnimation(){let t=!1;[this._currentTickState,this._currentTickCompleteState].forEach(e=>{e&&!e.isDone()&&(t=!0,e.abort())}),this._currentCursorOpacity=1,t&&this.clearContextTop()}restartCursorIfNeeded(){[this._currentTickState,this._currentTickCompleteState].some(t=>!t||t.isDone())&&this.initDelayedCursor()}selectAll(){return this.selectionStart=0,this.selectionEnd=this._text.length,this._fireSelectionChanged(),this._updateTextarea(),this}cmdAll(){this.selectAll(),this.renderCursorOrSelection()}getSelectedText(){return this._text.slice(this.selectionStart,this.selectionEnd).join(\"\")}findWordBoundaryLeft(t){let e=0,s=t-1;if(this._reSpace.test(this._text[s]))for(;this._reSpace.test(this._text[s]);)e++,s--;for(;/\\S/.test(this._text[s])&&s>-1;)e++,s--;return t-e}findWordBoundaryRight(t){let e=0,s=t;if(this._reSpace.test(this._text[s]))for(;this._reSpace.test(this._text[s]);)e++,s++;for(;/\\S/.test(this._text[s])&&s<this._text.length;)e++,s++;return t+e}findLineBoundaryLeft(t){let e=0,s=t-1;for(;!/\\n/.test(this._text[s])&&s>-1;)e++,s--;return t-e}findLineBoundaryRight(t){let e=0,s=t;for(;!/\\n/.test(this._text[s])&&s<this._text.length;)e++,s++;return t+e}searchWordBoundary(t,e){const s=this._text;let i=t>0&&this._reSpace.test(s[t])&&(-1===e||!P.test(s[t-1]))?t-1:t,r=s[i];for(;i>0&&i<s.length&&!po.test(r);)i+=e,r=s[i];return-1===e&&po.test(r)&&i++,i}selectWord(t){t=null!=t?t:this.selectionStart;const e=this.searchWordBoundary(t,-1),s=Math.max(e,this.searchWordBoundary(t,1));this.selectionStart=e,this.selectionEnd=s,this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()}selectLine(t){t=null!=t?t:this.selectionStart;const e=this.findLineBoundaryLeft(t),s=this.findLineBoundaryRight(t);this.selectionStart=e,this.selectionEnd=s,this._fireSelectionChanged(),this._updateTextarea()}enterEditing(t){!this.isEditing&&this.editable&&(this.enterEditingImpl(),this.fire(\"editing:entered\",t?{e:t}:void 0),this._fireSelectionChanged(),this.canvas&&(this.canvas.fire(\"text:editing:entered\",{target:this,e:t}),this.canvas.requestRenderAll()))}enterEditingImpl(){this.canvas&&(this.canvas.calcOffset(),this.canvas.textEditingManager.exitTextEditing()),this.isEditing=!0,this.initHiddenTextarea(),this.hiddenTextarea.focus(),this.hiddenTextarea.value=this.text,this._updateTextarea(),this._saveEditingProps(),this._setEditingProps(),this._textBeforeEdit=this.text,this._tick()}updateSelectionOnMouseMove(t){if(this.getActiveControl())return;const e=this.hiddenTextarea;qt(e).activeElement!==e&&e.focus();const s=this.getSelectionStartFromPointer(t),i=this.selectionStart,r=this.selectionEnd;(s===this.__selectionStartOnMouseDown&&i!==r||i!==s&&r!==s)&&(s>this.__selectionStartOnMouseDown?(this.selectionStart=this.__selectionStartOnMouseDown,this.selectionEnd=s):(this.selectionStart=s,this.selectionEnd=this.__selectionStartOnMouseDown),this.selectionStart===i&&this.selectionEnd===r||(this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()))}_setEditingProps(){this.hoverCursor=\"text\",this.canvas&&(this.canvas.defaultCursor=this.canvas.moveCursor=\"text\"),this.borderColor=this.editingBorderColor,this.hasControls=this.selectable=!1,this.lockMovementX=this.lockMovementY=!0}fromStringToGraphemeSelection(t,e,s){const i=s.slice(0,t),r=this.graphemeSplit(i).length;if(t===e)return{selectionStart:r,selectionEnd:r};const n=s.slice(t,e);return{selectionStart:r,selectionEnd:r+this.graphemeSplit(n).length}}fromGraphemeToStringSelection(t,e,s){const i=s.slice(0,t).join(\"\").length;if(t===e)return{selectionStart:i,selectionEnd:i};return{selectionStart:i,selectionEnd:i+s.slice(t,e).join(\"\").length}}_updateTextarea(){if(this.cursorOffsetCache={},this.hiddenTextarea){if(!this.inCompositionMode){const t=this.fromGraphemeToStringSelection(this.selectionStart,this.selectionEnd,this._text);this.hiddenTextarea.selectionStart=t.selectionStart,this.hiddenTextarea.selectionEnd=t.selectionEnd}this.updateTextareaPosition()}}updateFromTextArea(){const{hiddenTextarea:t,direction:e,textAlign:s,inCompositionMode:i}=this;if(!t)return;const r=s!==rs?s.replace(\"justify-\",\"\"):e===q?O:M,n=this.getPositionByOrigin(r,\"top\");this.cursorOffsetCache={},this.text=t.value,this.set(\"dirty\",!0),this.initDimensions(),this.setPositionByOrigin(n,r,\"top\"),this.setCoords();const o=this.fromStringToGraphemeSelection(t.selectionStart,t.selectionEnd,t.value);this.selectionEnd=this.selectionStart=o.selectionEnd,i||(this.selectionStart=o.selectionStart),this.updateTextareaPosition()}updateTextareaPosition(){if(this.selectionStart===this.selectionEnd){const t=this._calcTextareaPosition();this.hiddenTextarea.style.left=t.left,this.hiddenTextarea.style.top=t.top}}_calcTextareaPosition(){if(!this.canvas)return{left:\"1px\",top:\"1px\"};const t=this.inCompositionMode?this.compositionStart:this.selectionStart,e=this._getCursorBoundaries(t),s=this.get2DCursorLocation(t),i=s.lineIndex,r=s.charIndex,n=this.getValueOfPropertyAt(i,r,\"fontSize\")*this.lineHeight,o=e.leftOffset,a=this.getCanvasRetinaScaling(),h=this.canvas.upperCanvasEl,l=h.width/a,c=h.height/a,u=l-n,d=c-n,g=new ot(e.left+o,e.top+e.topOffset+n).transform(this.calcTransformMatrix()).transform(this.canvas.viewportTransform).multiply(new ot(h.clientWidth/l,h.clientHeight/c));return g.x<0&&(g.x=0),g.x>u&&(g.x=u),g.y<0&&(g.y=0),g.y>d&&(g.y=d),g.x+=this.canvas._offset.left,g.y+=this.canvas._offset.top,{left:`${g.x}px`,top:`${g.y}px`,fontSize:`${n}px`,charHeight:n}}_saveEditingProps(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:this.hoverCursor,selectable:this.selectable,defaultCursor:this.canvas&&this.canvas.defaultCursor,moveCursor:this.canvas&&this.canvas.moveCursor}}_restoreEditingProps(){this._savedProps&&(this.hoverCursor=this._savedProps.hoverCursor,this.hasControls=this._savedProps.hasControls,this.borderColor=this._savedProps.borderColor,this.selectable=this._savedProps.selectable,this.lockMovementX=this._savedProps.lockMovementX,this.lockMovementY=this._savedProps.lockMovementY,this.canvas&&(this.canvas.defaultCursor=this._savedProps.defaultCursor||this.canvas.defaultCursor,this.canvas.moveCursor=this._savedProps.moveCursor||this.canvas.moveCursor),delete this._savedProps)}exitEditingImpl(){const t=this.hiddenTextarea;this.selected=!1,this.isEditing=!1,t&&(t.blur&&t.blur(),t.parentNode&&t.parentNode.removeChild(t)),this.hiddenTextarea=null,this.abortCursorAnimation(),this.selectionStart!==this.selectionEnd&&this.clearContextTop(),this.selectionEnd=this.selectionStart,this._restoreEditingProps(),this._forceClearCache&&(this.initDimensions(),this.setCoords())}exitEditing(){const t=this._textBeforeEdit!==this.text;return this.exitEditingImpl(),this.fire(\"editing:exited\"),t&&this.fire(U),this.canvas&&(this.canvas.fire(\"text:editing:exited\",{target:this}),t&&this.canvas.fire(\"object:modified\",{target:this})),this}_removeExtraneousStyles(){for(const t in this.styles)this._textLines[t]||delete this.styles[t]}removeStyleFromTo(t,e){const{lineIndex:s,charIndex:i}=this.get2DCursorLocation(t,!0),{lineIndex:r,charIndex:n}=this.get2DCursorLocation(e,!0);if(s!==r){if(this.styles[s])for(let t=i;t<this._unwrappedTextLines[s].length;t++)delete this.styles[s][t];if(this.styles[r])for(let t=n;t<this._unwrappedTextLines[r].length;t++){const e=this.styles[r][t];e&&(this.styles[s]||(this.styles[s]={}),this.styles[s][i+t-n]=e)}for(let t=s+1;t<=r;t++)delete this.styles[t];this.shiftLineStyles(r,s-r)}else if(this.styles[s]){const t=this.styles[s],e=n-i;for(let e=i;e<n;e++)delete t[e];for(const i in this.styles[s]){const s=parseInt(i,10);s>=n&&(t[s-e]=t[i],delete t[i])}}}shiftLineStyles(t,e){const s=Object.assign({},this.styles);for(const i in this.styles){const r=parseInt(i,10);r>t&&(this.styles[r+e]=s[r],s[r-e]||delete this.styles[r])}}insertNewlineStyleObject(t,e,s,i){const r={},n=this._unwrappedTextLines[t].length,o=n===e;let a=!1;s||(s=1),this.shiftLineStyles(t,s);const h=this.styles[t]?this.styles[t][0===e?e:e-1]:void 0;for(const s in this.styles[t]){const i=parseInt(s,10);i>=e&&(a=!0,r[i-e]=this.styles[t][s],o&&0===e||delete this.styles[t][s])}let l=!1;for(a&&!o&&(this.styles[t+s]=r,l=!0),(l||n>e)&&s--;s>0;)i&&i[s-1]?this.styles[t+s]={0:{...i[s-1]}}:h?this.styles[t+s]={0:{...h}}:delete this.styles[t+s],s--;this._forceClearCache=!0}insertCharStyleObject(t,e,s,i){this.styles||(this.styles={});const r=this.styles[t],n=r?{...r}:{};s||(s=1);for(const t in n){const i=parseInt(t,10);i>=e&&(r[i+s]=n[i],n[i-s]||delete r[i])}if(this._forceClearCache=!0,i){for(;s--;)Object.keys(i[s]).length&&(this.styles[t]||(this.styles[t]={}),this.styles[t][e+s]={...i[s]});return}if(!r)return;const o=r[e?e-1:1];for(;o&&s--;)this.styles[t][e+s]={...o}}insertNewStyleBlock(t,e,s){const i=this.get2DCursorLocation(e,!0),r=[0];let n,o=0;for(let e=0;e<t.length;e++)\"\\n\"===t[e]?(o++,r[o]=0):r[o]++;for(r[0]>0&&(this.insertCharStyleObject(i.lineIndex,i.charIndex,r[0],s),s=s&&s.slice(r[0]+1)),o&&this.insertNewlineStyleObject(i.lineIndex,i.charIndex+r[0],o),n=1;n<o;n++)r[n]>0?this.insertCharStyleObject(i.lineIndex+n,0,r[n],s):s&&this.styles[i.lineIndex+n]&&s[0]&&(this.styles[i.lineIndex+n][0]=s[0]),s=s&&s.slice(r[n]+1);r[n]>0&&this.insertCharStyleObject(i.lineIndex+n,0,r[n],s)}removeChars(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t+1;this.removeStyleFromTo(t,e),this._text.splice(t,e-t),this.text=this._text.join(\"\"),this.set(\"dirty\",!0),this.initDimensions(),this.setCoords(),this._removeExtraneousStyles()}insertChars(t,e,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s;i>s&&this.removeStyleFromTo(s,i);const r=this.graphemeSplit(t);this.insertNewStyleBlock(r,s,e),this._text=[...this._text.slice(0,s),...r,...this._text.slice(i)],this.text=this._text.join(\"\"),this.set(\"dirty\",!0),this.initDimensions(),this.setCoords(),this._removeExtraneousStyles()}setSelectionStartEndWithShift(t,e,s){s<=t?(e===t?this._selectionDirection=O:this._selectionDirection===M&&(this._selectionDirection=O,this.selectionEnd=t),this.selectionStart=s):s>t&&s<e?this._selectionDirection===M?this.selectionEnd=s:this.selectionStart=s:(e===t?this._selectionDirection=M:this._selectionDirection===O&&(this._selectionDirection=M,this.selectionStart=e),this.selectionEnd=s)}}class vo extends mo{initHiddenTextarea(){const t=this.canvas&&qt(this.canvas.getElement())||d(),e=t.createElement(\"textarea\");Object.entries({autocapitalize:\"off\",autocorrect:\"off\",autocomplete:\"off\",spellcheck:\"false\",\"data-fabric\":\"textarea\",wrap:\"off\",name:\"fabricTextarea\"}).map(t=>{let[s,i]=t;return e.setAttribute(s,i)});const{top:s,left:i,fontSize:r}=this._calcTextareaPosition();e.style.cssText=`position: absolute; top: ${s}; left: ${i}; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding-top: ${r};`,(this.hiddenTextareaContainer||t.body).appendChild(e),Object.entries({blur:\"blur\",keydown:\"onKeyDown\",keyup:\"onKeyUp\",input:\"onInput\",copy:\"copy\",cut:\"copy\",paste:\"paste\",compositionstart:\"onCompositionStart\",compositionupdate:\"onCompositionUpdate\",compositionend:\"onCompositionEnd\"}).map(t=>{let[s,i]=t;return e.addEventListener(s,this[i].bind(this))}),this.hiddenTextarea=e}blur(){this.abortCursorAnimation()}onKeyDown(t){if(!this.isEditing)return;const e=\"rtl\"===this.direction?this.keysMapRtl:this.keysMap;if(t.keyCode in e)this[e[t.keyCode]](t);else{if(!(t.keyCode in this.ctrlKeysMapDown)||!t.ctrlKey&&!t.metaKey)return;this[this.ctrlKeysMapDown[t.keyCode]](t)}t.stopImmediatePropagation(),t.preventDefault(),t.keyCode>=33&&t.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}onKeyUp(t){!this.isEditing||this._copyDone||this.inCompositionMode?this._copyDone=!1:t.keyCode in this.ctrlKeysMapUp&&(t.ctrlKey||t.metaKey)&&(this[this.ctrlKeysMapUp[t.keyCode]](t),t.stopImmediatePropagation(),t.preventDefault(),this.canvas&&this.canvas.requestRenderAll())}onInput(t){const e=this.fromPaste,{value:i,selectionStart:r,selectionEnd:n}=this.hiddenTextarea;if(this.fromPaste=!1,t&&t.stopPropagation(),!this.isEditing)return;const o=()=>{this.updateFromTextArea(),this.fire(X),this.canvas&&(this.canvas.fire(\"text:changed\",{target:this}),this.canvas.requestRenderAll())};if(\"\"===this.hiddenTextarea.value)return this.styles={},void o();const a=this._splitTextIntoLines(i).graphemeText,h=this._text.length,l=a.length,c=this.selectionStart,d=this.selectionEnd,g=c!==d;let f,p,m,v,y=l-h;const _=this.fromStringToGraphemeSelection(r,n,i),x=c>_.selectionStart;g?(p=this._text.slice(c,d),y+=d-c):l<h&&(p=x?this._text.slice(d+y,d):this._text.slice(c,c-y));const C=a.slice(_.selectionEnd-y,_.selectionEnd);if(p&&p.length&&(C.length&&(f=this.getSelectionStyles(c,c+1,!1),f=C.map(()=>f[0])),g?(m=c,v=d):x?(m=d-p.length,v=d):(m=d,v=d+p.length),this.removeStyleFromTo(m,v)),C.length){const{copyPasteData:t}=u();e&&C.join(\"\")===t.copiedText&&!s.disableStyleCopyPaste&&(f=t.copiedTextStyle),this.insertNewStyleBlock(C,c,f)}o()}onCompositionStart(){this.inCompositionMode=!0}onCompositionEnd(){this.inCompositionMode=!1}onCompositionUpdate(t){let{target:e}=t;const{selectionStart:s,selectionEnd:i}=e;this.compositionStart=s,this.compositionEnd=i,this.updateTextareaPosition()}copy(){if(this.selectionStart===this.selectionEnd)return;const{copyPasteData:t}=u();t.copiedText=this.getSelectedText(),s.disableStyleCopyPaste?t.copiedTextStyle=void 0:t.copiedTextStyle=this.getSelectionStyles(this.selectionStart,this.selectionEnd,!0),this._copyDone=!0}paste(){this.fromPaste=!0}_getWidthBeforeCursor(t,e){let s,i=this._getLineLeftOffset(t);return e>0&&(s=this.__charBounds[t][e-1],i+=s.left+s.width),i}getDownCursorOffset(t,e){const s=this._getSelectionForOffset(t,e),i=this.get2DCursorLocation(s),r=i.lineIndex;if(r===this._textLines.length-1||t.metaKey||34===t.keyCode)return this._text.length-s;const n=i.charIndex,o=this._getWidthBeforeCursor(r,n),a=this._getIndexOnLine(r+1,o);return this._textLines[r].slice(n).length+a+1+this.missingNewlineOffset(r)}_getSelectionForOffset(t,e){return t.shiftKey&&this.selectionStart!==this.selectionEnd&&e?this.selectionEnd:this.selectionStart}getUpCursorOffset(t,e){const s=this._getSelectionForOffset(t,e),i=this.get2DCursorLocation(s),r=i.lineIndex;if(0===r||t.metaKey||33===t.keyCode)return-s;const n=i.charIndex,o=this._getWidthBeforeCursor(r,n),a=this._getIndexOnLine(r-1,o),h=this._textLines[r].slice(0,n),l=this.missingNewlineOffset(r-1);return-this._textLines[r-1].length+a-h.length+(1-l)}_getIndexOnLine(t,e){const s=this._textLines[t];let i,r,n=this._getLineLeftOffset(t),o=0;for(let a=0,h=s.length;a<h;a++)if(i=this.__charBounds[t][a].width,n+=i,n>e){r=!0;const t=n-i,s=n,h=Math.abs(t-e);o=Math.abs(s-e)<h?a:a-1;break}return r||(o=s.length-1),o}moveCursorDown(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown(\"Down\",t)}moveCursorUp(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorUpOrDown(\"Up\",t)}_moveCursorUpOrDown(t,e){const s=this[`get${t}CursorOffset`](e,this._selectionDirection===M);if(e.shiftKey?this.moveCursorWithShift(s):this.moveCursorWithoutShift(s),0!==s){const t=this.text.length;this.selectionStart=bs(0,this.selectionStart,t),this.selectionEnd=bs(0,this.selectionEnd,t),this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea()}}moveCursorWithShift(t){const e=this._selectionDirection===O?this.selectionStart+t:this.selectionEnd+t;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,e),0!==t}moveCursorWithoutShift(t){return t<0?(this.selectionStart+=t,this.selectionEnd=this.selectionStart):(this.selectionEnd+=t,this.selectionStart=this.selectionEnd),0!==t}moveCursorLeft(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorLeftOrRight(\"Left\",t)}_move(t,e,s){let i;if(t.altKey)i=this[`findWordBoundary${s}`](this[e]);else{if(!t.metaKey&&35!==t.keyCode&&36!==t.keyCode)return this[e]+=\"Left\"===s?-1:1,!0;i=this[`findLineBoundary${s}`](this[e])}return void 0!==i&&this[e]!==i&&(this[e]=i,!0)}_moveLeft(t,e){return this._move(t,e,\"Left\")}_moveRight(t,e){return this._move(t,e,\"Right\")}moveCursorLeftWithoutShift(t){let e=!0;return this._selectionDirection=O,this.selectionEnd===this.selectionStart&&0!==this.selectionStart&&(e=this._moveLeft(t,\"selectionStart\")),this.selectionEnd=this.selectionStart,e}moveCursorLeftWithShift(t){return this._selectionDirection===M&&this.selectionStart!==this.selectionEnd?this._moveLeft(t,\"selectionEnd\"):0!==this.selectionStart?(this._selectionDirection=O,this._moveLeft(t,\"selectionStart\")):void 0}moveCursorRight(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight(\"Right\",t)}_moveCursorLeftOrRight(t,e){const s=`moveCursor${t}${e.shiftKey?\"WithShift\":\"WithoutShift\"}`;this._currentCursorOpacity=1,this[s](e)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())}moveCursorRightWithShift(t){return this._selectionDirection===O&&this.selectionStart!==this.selectionEnd?this._moveRight(t,\"selectionStart\"):this.selectionEnd!==this._text.length?(this._selectionDirection=M,this._moveRight(t,\"selectionEnd\")):void 0}moveCursorRightWithoutShift(t){let e=!0;return this._selectionDirection=M,this.selectionStart===this.selectionEnd?(e=this._moveRight(t,\"selectionStart\"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,e}}const yo=t=>!!t.button;class _o extends vo{constructor(){super(...arguments),t(this,\"draggableTextDelegate\",void 0)}initBehavior(){this.on(\"mousedown\",this._mouseDownHandler),this.on(\"mouseup\",this.mouseUpHandler),this.on(\"mousedblclick\",this.doubleClickHandler),this.on(\"mousetripleclick\",this.tripleClickHandler),this.draggableTextDelegate=new fo(this),super.initBehavior()}shouldStartDragging(){return this.draggableTextDelegate.isActive()}onDragStart(t){return this.draggableTextDelegate.onDragStart(t)}canDrop(t){return this.draggableTextDelegate.canDrop(t)}doubleClickHandler(t){this.isEditing&&(this.selectWord(this.getSelectionStartFromPointer(t.e)),this.renderCursorOrSelection())}tripleClickHandler(t){this.isEditing&&(this.selectLine(this.getSelectionStartFromPointer(t.e)),this.renderCursorOrSelection())}_mouseDownHandler(t){let{e:e,alreadySelected:s}=t;this.canvas&&this.editable&&!yo(e)&&!this.getActiveControl()&&(this.draggableTextDelegate.start(e)||(this.canvas.textEditingManager.register(this),s&&(this.inCompositionMode=!1,this.setCursorByClick(e)),this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.selectionStart===this.selectionEnd&&this.abortCursorAnimation(),this.renderCursorOrSelection()),this.selected||(this.selected=s||this.isEditing)))}mouseUpHandler(t){let{e:e,transform:s}=t;const i=this.draggableTextDelegate.end(e);if(this.canvas){this.canvas.textEditingManager.unregister(this);const t=this.canvas._activeObject;if(t&&t!==this)return}!this.editable||this.group&&!this.group.interactive||s&&s.actionPerformed||yo(e)||i||this.selected&&!this.getActiveControl()&&(this.enterEditing(e),this.selectionStart===this.selectionEnd?this.initDelayedCursor(!0):this.renderCursorOrSelection())}setCursorByClick(t){const e=this.getSelectionStartFromPointer(t),s=this.selectionStart,i=this.selectionEnd;t.shiftKey?this.setSelectionStartEndWithShift(s,i,e):(this.selectionStart=e,this.selectionEnd=e),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())}getSelectionStartFromPointer(t){const e=this.canvas.getScenePoint(t).transform(wt(this.calcTransformMatrix())).add(new ot(-this._getLeftOffset(),-this._getTopOffset()));let s=0,i=0,r=0;for(let t=0;t<this._textLines.length&&s<=e.y;t++)s+=this.getHeightOfLine(t),r=t,t>0&&(i+=this._textLines[t-1].length+this.missingNewlineOffset(t-1));let n=Math.abs(this._getLineLeftOffset(r));const o=this._textLines[r].length,a=this.__charBounds[r];for(let t=0;t<o;t++){const s=n+a[t].kernedWidth;if(e.x<=s){Math.abs(e.x-s)<=Math.abs(e.x-n)&&i++;break}n=s,i++}return Math.min(this.flipX?o-i:i,this._text.length)}}const xo=\"moveCursorUp\",Co=\"moveCursorDown\",bo=\"moveCursorLeft\",So=\"moveCursorRight\",wo=\"exitEditing\",To=(t,e)=>{const s=e.getRetinaScaling();t.setTransform(s,0,0,s,0,0);const i=e.viewportTransform;t.transform(i[0],i[1],i[2],i[3],i[4],i[5])},Oo={selectionStart:0,selectionEnd:0,selectionColor:\"rgba(17,119,255,0.3)\",isEditing:!1,editable:!0,editingBorderColor:\"rgba(102,153,255,0.25)\",cursorWidth:2,cursorColor:\"\",cursorDelay:1e3,cursorDuration:600,caching:!0,hiddenTextareaContainer:null,keysMap:{9:wo,27:wo,33:xo,34:Co,35:So,36:bo,37:bo,38:xo,39:So,40:Co},keysMapRtl:{9:wo,27:wo,33:xo,34:Co,35:bo,36:So,37:So,38:xo,39:bo,40:Co},ctrlKeysMapDown:{65:\"cmdAll\"},ctrlKeysMapUp:{67:\"copy\",88:\"cut\"},_selectionDirection:null,_reSpace:/\\s|\\r?\\n/,inCompositionMode:!1};class ko extends _o{static getDefaults(){return{...super.getDefaults(),...ko.ownDefaults}}get type(){const t=super.type;return\"itext\"===t?\"i-text\":t}constructor(t,e){super(t,{...ko.ownDefaults,...e}),this.initBehavior()}_set(t,e){return this.isEditing&&this._savedProps&&t in this._savedProps?(this._savedProps[t]=e,this):(\"canvas\"===t&&(this.canvas instanceof Mn&&this.canvas.textEditingManager.remove(this),e instanceof Mn&&e.textEditingManager.add(this)),super._set(t,e))}setSelectionStart(t){t=Math.max(t,0),this._updateAndFire(\"selectionStart\",t)}setSelectionEnd(t){t=Math.min(t,this.text.length),this._updateAndFire(\"selectionEnd\",t)}_updateAndFire(t,e){this[t]!==e&&(this._fireSelectionChanged(),this[t]=e),this._updateTextarea()}_fireSelectionChanged(){this.fire(\"selection:changed\"),this.canvas&&this.canvas.fire(\"text:selection:changed\",{target:this})}initDimensions(){this.isEditing&&this.initDelayedCursor(),super.initDimensions()}getSelectionStyles(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.selectionStart||0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selectionEnd,s=arguments.length>2?arguments[2]:void 0;return super.getSelectionStyles(t,e,s)}setSelectionStyles(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selectionStart||0,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.selectionEnd;return super.setSelectionStyles(t,e,s)}get2DCursorLocation(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.selectionStart,e=arguments.length>1?arguments[1]:void 0;return super.get2DCursorLocation(t,e)}render(t){super.render(t),this.cursorOffsetCache={},this.renderCursorOrSelection()}toCanvasElement(t){const e=this.isEditing;this.isEditing=!1;const s=super.toCanvasElement(t);return this.isEditing=e,s}renderCursorOrSelection(){if(!this.isEditing||!this.canvas)return;const t=this.clearContextTop(!0);if(!t)return;const e=this._getCursorBoundaries(),s=this.findAncestorsWithClipPath(),i=s.length>0;let r,n=t;if(i){r=vt(t.canvas),n=r.getContext(\"2d\"),To(n,this.canvas);const e=this.calcTransformMatrix();n.transform(e[0],e[1],e[2],e[3],e[4],e[5])}if(this.selectionStart!==this.selectionEnd||this.inCompositionMode?this.renderSelection(n,e):this.renderCursor(n,e),i)for(const e of s){const s=e.clipPath,i=vt(t.canvas),r=i.getContext(\"2d\");if(To(r,this.canvas),!s.absolutePositioned){const t=e.calcTransformMatrix();r.transform(t[0],t[1],t[2],t[3],t[4],t[5])}s.transform(r),s.drawObject(r,!0,{}),this.drawClipPathOnCache(n,s,i)}i&&(t.setTransform(1,0,0,1,0,0),t.drawImage(r,0,0)),this.canvas.contextTopDirty=!0,t.restore()}findAncestorsWithClipPath(){const t=[];let e=this;for(;e;)e.clipPath&&t.push(e),e=e.parent;return t}_getCursorBoundaries(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.selectionStart,e=arguments.length>1?arguments[1]:void 0;const s=this._getLeftOffset(),i=this._getTopOffset(),r=this._getCursorBoundariesOffsets(t,e);return{left:s,top:i,leftOffset:r.left,topOffset:r.top}}_getCursorBoundariesOffsets(t,e){return e?this.__getCursorBoundariesOffsets(t):this.cursorOffsetCache&&\"top\"in this.cursorOffsetCache?this.cursorOffsetCache:this.cursorOffsetCache=this.__getCursorBoundariesOffsets(t)}__getCursorBoundariesOffsets(t){let e=0,s=0;const{charIndex:i,lineIndex:r}=this.get2DCursorLocation(t),{textAlign:n,direction:o}=this;for(let t=0;t<r;t++)e+=this.getHeightOfLine(t);const a=this._getLineLeftOffset(r),h=this.__charBounds[r][i];h&&(s=h.left),0!==this.charSpacing&&i===this._textLines[r].length&&(s-=this._getWidthOfCharSpacing());let l=a+(s>0?s:0);return o===K&&(n===M||n===rs||n===os?l*=-1:n===O||n===ns?l=a-(s>0?s:0):n!==T&&n!==as||(l=a-(s>0?s:0))),{top:e,left:l}}renderCursorAt(t){this._renderCursor(this.canvas.contextTop,this._getCursorBoundaries(t,!0),t)}renderCursor(t,e){this._renderCursor(t,e,this.selectionStart)}getCursorRenderingData(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.selectionStart,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getCursorBoundaries(t);const s=this.get2DCursorLocation(t),i=s.lineIndex,r=s.charIndex>0?s.charIndex-1:0,n=this.getValueOfPropertyAt(i,r,\"fontSize\"),o=this.getObjectScaling().x*this.canvas.getZoom(),a=this.cursorWidth/o,h=this.getValueOfPropertyAt(i,r,\"deltaY\"),l=e.topOffset+(1-this._fontSizeFraction)*this.getHeightOfLine(i)/this.lineHeight-n*(1-this._fontSizeFraction);return{color:this.cursorColor||this.getValueOfPropertyAt(i,r,\"fill\"),opacity:this._currentCursorOpacity,left:e.left+e.leftOffset-a/2,top:l+e.top+h,width:a,height:n}}_renderCursor(t,e,s){const{color:i,opacity:r,left:n,top:o,width:a,height:h}=this.getCursorRenderingData(s,e);t.fillStyle=i,t.globalAlpha=r,t.fillRect(n,o,a,h)}renderSelection(t,e){const s={selectionStart:this.inCompositionMode?this.hiddenTextarea.selectionStart:this.selectionStart,selectionEnd:this.inCompositionMode?this.hiddenTextarea.selectionEnd:this.selectionEnd};this._renderSelection(t,s,e)}renderDragSourceEffect(){const t=this.draggableTextDelegate.getDragStartSelection();this._renderSelection(this.canvas.contextTop,t,this._getCursorBoundaries(t.selectionStart,!0))}renderDropTargetEffect(t){const e=this.getSelectionStartFromPointer(t);this.renderCursorAt(e)}_renderSelection(t,e,s){const{textAlign:i,direction:r}=this,n=e.selectionStart,o=e.selectionEnd,a=i.includes(rs),h=this.get2DCursorLocation(n),l=this.get2DCursorLocation(o),c=h.lineIndex,u=l.lineIndex,d=h.charIndex<0?0:h.charIndex,g=l.charIndex<0?0:l.charIndex;for(let e=c;e<=u;e++){const n=this._getLineLeftOffset(e)||0;let o=this.getHeightOfLine(e),h=0,l=0,f=0;if(e===c&&(l=this.__charBounds[c][d].left),e>=c&&e<u)f=a&&!this.isEndOfWrapping(e)?this.width:this.getLineWidth(e)||5;else if(e===u)if(0===g)f=this.__charBounds[u][g].left;else{const t=this._getWidthOfCharSpacing();f=this.__charBounds[u][g-1].left+this.__charBounds[u][g-1].width-t}h=o,(this.lineHeight<1||e===u&&this.lineHeight>1)&&(o/=this.lineHeight);let p=s.left+n+l,m=o,v=0;const y=f-l;this.inCompositionMode?(t.fillStyle=this.compositionColor||\"black\",m=1,v=o):t.fillStyle=this.selectionColor,r===K&&(i===M||i===rs||i===os?p=this.width-p-y:i===O||i===ns?p=s.left+n-f:i!==T&&i!==as||(p=s.left+n-f)),t.fillRect(p,s.top+s.topOffset+v,y,m),s.topOffset+=h}}getCurrentCharFontSize(){const t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,\"fontSize\")}getCurrentCharColor(){const t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,H)}_getCurrentCharIndex(){const t=this.get2DCursorLocation(this.selectionStart,!0),e=t.charIndex>0?t.charIndex-1:0;return{l:t.lineIndex,c:e}}dispose(){this.exitEditingImpl(),this.draggableTextDelegate.dispose(),super.dispose()}}t(ko,\"ownDefaults\",Oo),t(ko,\"type\",\"IText\"),tt.setClass(ko),tt.setClass(ko,\"i-text\");class Do extends ko{static getDefaults(){return{...super.getDefaults(),...Do.ownDefaults}}constructor(t,e){super(t,{...Do.ownDefaults,...e})}static createControls(){return{controls:wi()}}initDimensions(){this.initialized&&(this.isEditing&&this.initDelayedCursor(),this._clearCache(),this.dynamicMinWidth=0,this._styleMap=this._generateStyleMap(this._splitText()),this.dynamicMinWidth>this.width&&this._set(\"width\",this.dynamicMinWidth),this.textAlign.includes(rs)&&this.enlargeSpaces(),this.height=this.calcTextHeight())}_generateStyleMap(t){let e=0,s=0,i=0;const r={};for(let n=0;n<t.graphemeLines.length;n++)\"\\n\"===t.graphemeText[i]&&n>0?(s=0,i++,e++):!this.splitByGrapheme&&this._reSpaceAndTab.test(t.graphemeText[i])&&n>0&&(s++,i++),r[n]={line:e,offset:s},i+=t.graphemeLines[n].length,s+=t.graphemeLines[n].length;return r}styleHas(t,e){if(this._styleMap&&!this.isWrapping){const t=this._styleMap[e];t&&(e=t.line)}return super.styleHas(t,e)}isEmptyStyles(t){if(!this.styles)return!0;let e,s=0,i=t+1,r=!1;const n=this._styleMap[t],o=this._styleMap[t+1];n&&(t=n.line,s=n.offset),o&&(i=o.line,r=i===t,e=o.offset);const a=void 0===t?this.styles:{line:this.styles[t]};for(const t in a)for(const i in a[t]){const n=parseInt(i,10);if(n>=s&&(!r||n<e))for(const e in a[t][i])return!1}return!0}_getStyleDeclaration(t,e){if(this._styleMap&&!this.isWrapping){const s=this._styleMap[t];if(!s)return{};t=s.line,e=s.offset+e}return super._getStyleDeclaration(t,e)}_setStyleDeclaration(t,e,s){const i=this._styleMap[t];super._setStyleDeclaration(i.line,i.offset+e,s)}_deleteStyleDeclaration(t,e){const s=this._styleMap[t];super._deleteStyleDeclaration(s.line,s.offset+e)}_getLineStyle(t){const e=this._styleMap[t];return!!this.styles[e.line]}_setLineStyle(t){const e=this._styleMap[t];super._setLineStyle(e.line)}_wrapText(t,e){this.isWrapping=!0;const s=this.getGraphemeDataForRender(t),i=[];for(let t=0;t<s.wordsData.length;t++)i.push(...this._wrapLine(t,e,s));return this.isWrapping=!1,i}getGraphemeDataForRender(t){const e=this.splitByGrapheme,s=e?\"\":\" \";let i=0;return{wordsData:t.map((t,r)=>{let n=0;const o=e?this.graphemeSplit(t):this.wordSplit(t);return 0===o.length?[{word:[],width:0}]:o.map(t=>{const o=e?[t]:this.graphemeSplit(t),a=this._measureWord(o,r,n);return i=Math.max(a,i),n+=o.length+s.length,{word:o,width:a}})}),largestWordWidth:i}}_measureWord(t,e){let s,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=0;for(let n=0,o=t.length;n<o;n++){r+=this._getGraphemeBox(t[n],e,n+i,s,true).kernedWidth,s=t[n]}return r}wordSplit(t){return t.split(this._wordJoiners)}_wrapLine(t,e,s){let{largestWordWidth:i,wordsData:r}=s,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;const o=this._getWidthOfCharSpacing(),a=this.splitByGrapheme,h=[],l=a?\"\":\" \";let c=0,u=[],d=0,g=0,f=!0;e-=n;const p=Math.max(e,i,this.dynamicMinWidth),m=r[t];let v;for(d=0,v=0;v<m.length;v++){const{word:e,width:s}=m[v];d+=e.length,c+=g+s-o,c>p&&!f?(h.push(u),u=[],c=s,f=!0):c+=o,f||a||u.push(l),u=u.concat(e),g=a?0:this._measureWord([l],t,d),d++,f=!1}return v&&h.push(u),i+n>this.dynamicMinWidth&&(this.dynamicMinWidth=i-o+n),h}isEndOfWrapping(t){return!this._styleMap[t+1]||this._styleMap[t+1].line!==this._styleMap[t].line}missingNewlineOffset(t,e){return this.splitByGrapheme&&!e?this.isEndOfWrapping(t)?1:0:1}_splitTextIntoLines(t){const e=super._splitTextIntoLines(t),s=this._wrapText(e.lines,this.width),i=new Array(s.length);for(let t=0;t<s.length;t++)i[t]=s[t].join(\"\");return e.lines=i,e.graphemeLines=s,e}getMinWidth(){return Math.max(this.minWidth,this.dynamicMinWidth)}_removeExtraneousStyles(){const t=new Map;for(const e in this._styleMap){const s=parseInt(e,10);if(this._textLines[s]){const s=this._styleMap[e].line;t.set(`${s}`,!0)}}for(const e in this.styles)t.has(e)||delete this.styles[e]}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return super.toObject([\"minWidth\",\"splitByGrapheme\",...t])}}t(Do,\"type\",\"Textbox\"),t(Do,\"textLayoutProperties\",[...ko.textLayoutProperties,\"width\"]),t(Do,\"ownDefaults\",{minWidth:20,dynamicMinWidth:2,lockScalingFlip:!0,noScaleCache:!1,_wordJoiners:/[ \\t\\r]/,splitByGrapheme:!1}),tt.setClass(Do);class Mo extends Cr{shouldPerformLayout(t){return!!t.target.clipPath&&super.shouldPerformLayout(t)}shouldLayoutClipPath(){return!1}calcLayoutResult(t,e){const{target:s}=t,{clipPath:i,group:r}=s;if(!i||!this.shouldPerformLayout(t))return;const{width:n,height:o}=ae(xr(s,i)),a=new ot(n,o);if(i.absolutePositioned){return{center:fe(i.getRelativeCenterPoint(),void 0,r?r.calcTransformMatrix():void 0),size:a}}{const r=i.getRelativeCenterPoint().transform(s.calcOwnMatrix(),!0);if(this.shouldPerformLayout(t)){const{center:s=new ot,correction:i=new ot}=this.calcBoundingBox(e,t)||{};return{center:s.add(r),correction:i.subtract(r),size:a}}return{center:s.getRelativeCenterPoint().add(r),size:a}}}}t(Mo,\"type\",\"clip-path\"),tt.setClass(Mo);class Eo extends Cr{getInitialSize(t,e){let{target:s}=t,{size:i}=e;return new ot(s.width||i.x,s.height||i.y)}}t(Eo,\"type\",\"fixed\"),tt.setClass(Eo);class Po extends wr{subscribeTargets(t){const e=t.target;t.targets.reduce((t,e)=>(e.parent&&t.add(e.parent),t),new Set).forEach(t=>{t.layoutManager.subscribeTargets({target:t,targets:[e]})})}unsubscribeTargets(t){const e=t.target,s=e.getObjects();t.targets.reduce((t,e)=>(e.parent&&t.add(e.parent),t),new Set).forEach(t=>{!s.some(e=>e.parent===t)&&t.layoutManager.unsubscribeTargets({target:t,targets:[e]})})}}class Ao extends Or{static getDefaults(){return{...super.getDefaults(),...Ao.ownDefaults}}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),Object.assign(this,Ao.ownDefaults),this.setOptions(e);const{left:s,top:i,layoutManager:r}=e;this.groupInit(t,{left:s,top:i,layoutManager:null!=r?r:new Po})}_shouldSetNestedCoords(){return!0}__objectSelectionMonitor(){}multiSelectAdd(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];\"selection-order\"===this.multiSelectionStacking?this.add(...e):e.forEach(t=>{const e=this._objects.findIndex(e=>e.isInFrontOf(t)),s=-1===e?this.size():e;this.insertAt(s,t)})}canEnterGroup(t){return this.getObjects().some(e=>e.isDescendantOf(t)||t.isDescendantOf(e))?(i(\"error\",\"ActiveSelection: circular object trees are not supported, this call has no effect\"),!1):super.canEnterGroup(t)}enterGroup(t,e){t.parent&&t.parent===t.group?t.parent._exitGroup(t):t.group&&t.parent!==t.group&&t.group.remove(t),this._enterGroup(t,e)}exitGroup(t,e){this._exitGroup(t,e),t.parent&&t.parent._enterGroup(t,!0)}_onAfterObjectsChange(t,e){super._onAfterObjectsChange(t,e);const s=new Set;e.forEach(t=>{const{parent:e}=t;e&&s.add(e)}),t===yr?s.forEach(t=>{t._onAfterObjectsChange(vr,e)}):s.forEach(t=>{t._set(\"dirty\",!0)})}onDeselect(){return this.removeAll(),!1}toString(){return`#<ActiveSelection: (${this.complexity()})>`}shouldCache(){return!1}isOnACache(){return!1}_renderControls(t,e,s){t.save(),t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1;const i={hasControls:!1,...s,forActiveSelection:!0};for(let e=0;e<this._objects.length;e++)this._objects[e]._renderControls(t,i);super._renderControls(t,e),t.restore()}}t(Ao,\"type\",\"ActiveSelection\"),t(Ao,\"ownDefaults\",{multiSelectionStacking:\"canvas-stacking\"}),tt.setClass(Ao),tt.setClass(Ao,\"activeSelection\");class jo{constructor(){t(this,\"resources\",{})}applyFilters(t,e,s,i,r){const n=r.getContext(\"2d\",{willReadFrequently:!0,desynchronized:!0});if(!n)return;n.drawImage(e,0,0,s,i);const o={sourceWidth:s,sourceHeight:i,imageData:n.getImageData(0,0,s,i),originalEl:e,originalImageData:n.getImageData(0,0,s,i),canvasEl:r,ctx:n,filterBackend:this};t.forEach(t=>{t.applyTo(o)});const{imageData:a}=o;return a.width===s&&a.height===i||(r.width=a.width,r.height=a.height),n.putImageData(a,0,0),o}}class Fo{constructor(){let{tileSize:e=s.textureSize}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t(this,\"aPosition\",new Float32Array([0,0,0,1,1,0,1,1])),t(this,\"resources\",{}),this.tileSize=e,this.setupGLContext(e,e),this.captureGPUInfo()}setupGLContext(t,e){this.dispose(),this.createWebGLCanvas(t,e)}createWebGLCanvas(t,e){const s=vt({width:t,height:e}),i=s.getContext(\"webgl\",{alpha:!0,premultipliedAlpha:!1,depth:!1,stencil:!1,antialias:!1});i&&(i.clearColor(0,0,0,0),this.canvas=s,this.gl=i)}applyFilters(t,e,s,i,r,n){const o=this.gl,a=r.getContext(\"2d\");if(!o||!a)return;let h;n&&(h=this.getCachedTexture(n,e));const l={originalWidth:e.width||e.naturalWidth||0,originalHeight:e.height||e.naturalHeight||0,sourceWidth:s,sourceHeight:i,destinationWidth:s,destinationHeight:i,context:o,sourceTexture:this.createTexture(o,s,i,h?void 0:e),targetTexture:this.createTexture(o,s,i),originalTexture:h||this.createTexture(o,s,i,h?void 0:e),passes:t.length,webgl:!0,aPosition:this.aPosition,programCache:this.programCache,pass:0,filterBackend:this,targetCanvas:r},c=o.createFramebuffer();return o.bindFramebuffer(o.FRAMEBUFFER,c),t.forEach(t=>{t&&t.applyTo(l)}),function(t){const e=t.targetCanvas,s=e.width,i=e.height,r=t.destinationWidth,n=t.destinationHeight;s===r&&i===n||(e.width=r,e.height=n)}(l),this.copyGLTo2D(o,l),o.bindTexture(o.TEXTURE_2D,null),o.deleteTexture(l.sourceTexture),o.deleteTexture(l.targetTexture),o.deleteFramebuffer(c),a.setTransform(1,0,0,1,0,0),l}dispose(){this.canvas&&(this.canvas=null,this.gl=null),this.clearWebGLCaches()}clearWebGLCaches(){this.programCache={},this.textureCache={}}createTexture(t,e,s,i,r){const{NEAREST:n,TEXTURE_2D:o,RGBA:a,UNSIGNED_BYTE:h,CLAMP_TO_EDGE:l,TEXTURE_MAG_FILTER:c,TEXTURE_MIN_FILTER:u,TEXTURE_WRAP_S:d,TEXTURE_WRAP_T:g}=t,f=t.createTexture();return t.bindTexture(o,f),t.texParameteri(o,c,r||n),t.texParameteri(o,u,r||n),t.texParameteri(o,d,l),t.texParameteri(o,g,l),i?t.texImage2D(o,0,a,a,h,i):t.texImage2D(o,0,a,e,s,0,a,h,null),f}getCachedTexture(t,e,s){const{textureCache:i}=this;if(i[t])return i[t];{const r=this.createTexture(this.gl,e.width,e.height,e,s);return r&&(i[t]=r),r}}evictCachesForKey(t){this.textureCache[t]&&(this.gl.deleteTexture(this.textureCache[t]),delete this.textureCache[t])}copyGLTo2D(t,e){const s=t.canvas,i=e.targetCanvas,r=i.getContext(\"2d\");if(!r)return;r.translate(0,i.height),r.scale(1,-1);const n=s.height-i.height;r.drawImage(s,0,n,i.width,i.height,0,0,i.width,i.height)}copyGLTo2DPutImageData(t,e){const s=e.targetCanvas.getContext(\"2d\"),i=e.destinationWidth,r=e.destinationHeight,n=i*r*4;if(!s)return;const o=new Uint8Array(this.imageBuffer,0,n),a=new Uint8ClampedArray(this.imageBuffer,0,n);t.readPixels(0,0,i,r,t.RGBA,t.UNSIGNED_BYTE,o);const h=new ImageData(a,i,r);s.putImageData(h,0,0)}captureGPUInfo(){if(this.gpuInfo)return this.gpuInfo;const t=this.gl,e={renderer:\"\",vendor:\"\"};if(!t)return e;const s=t.getExtension(\"WEBGL_debug_renderer_info\");if(s){const i=t.getParameter(s.UNMASKED_RENDERER_WEBGL),r=t.getParameter(s.UNMASKED_VENDOR_WEBGL);i&&(e.renderer=i.toLowerCase()),r&&(e.vendor=r.toLowerCase())}return this.gpuInfo=e,e}}let Lo;function Io(){const{WebGLProbe:t}=u();return t.queryWebGL(pt()),s.enableGLFiltering&&t.isSupported(s.textureSize)?new Fo({tileSize:s.textureSize}):new jo}function Ro(){return!Lo&&(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&(Lo=Io()),Lo}function Bo(t){Lo=t}const $o=[\"cropX\",\"cropY\"];class Xo extends ki{static getDefaults(){return{...super.getDefaults(),...Xo.ownDefaults}}constructor(e,s){super(),t(this,\"_lastScaleX\",1),t(this,\"_lastScaleY\",1),t(this,\"_filterScalingX\",1),t(this,\"_filterScalingY\",1),this.filters=[],Object.assign(this,Xo.ownDefaults),this.setOptions(s),this.cacheKey=`texture${ft()}`,this.setElement(\"string\"==typeof e?(this.canvas&&qt(this.canvas.getElement())||d()).getElementById(e):e,s)}getElement(){return this._element}setElement(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.removeTexture(this.cacheKey),this.removeTexture(`${this.cacheKey}_filtered`),this._element=t,this._originalElement=t,this._setWidthHeight(e),0!==this.filters.length&&this.applyFilters(),this.resizeFilter&&this.applyResizeFilters()}removeTexture(t){const e=Ro(!1);e instanceof Fo&&e.evictCachesForKey(t)}dispose(){super.dispose(),this.removeTexture(this.cacheKey),this.removeTexture(`${this.cacheKey}_filtered`),this._cacheContext=null,[\"_originalElement\",\"_element\",\"_filteredEl\",\"_cacheCanvas\"].forEach(t=>{const e=this[t];e&&u().dispose(e),this[t]=void 0})}getCrossOrigin(){return this._originalElement&&(this._originalElement.crossOrigin||null)}getOriginalSize(){const t=this.getElement();return t?{width:t.naturalWidth||t.width,height:t.naturalHeight||t.height}:{width:0,height:0}}_stroke(t){if(!this.stroke||0===this.strokeWidth)return;const e=this.width/2,s=this.height/2;t.beginPath(),t.moveTo(-e,-s),t.lineTo(e,-s),t.lineTo(e,s),t.lineTo(-e,s),t.lineTo(-e,-s),t.closePath()}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=[];return this.filters.forEach(t=>{t&&e.push(t.toObject())}),{...super.toObject([...$o,...t]),src:this.getSrc(),crossOrigin:this.getCrossOrigin(),filters:e,...this.resizeFilter?{resizeFilter:this.resizeFilter.toObject()}:{}}}hasCrop(){return!!this.cropX||!!this.cropY||this.width<this._element.width||this.height<this._element.height}_toSVG(){const t=[],e=this._element,s=-this.width/2,i=-this.height/2;let r=[],n=[],o=\"\",a=\"\";if(!e)return[];if(this.hasCrop()){const t=ft();r.push('<clipPath id=\"imageCrop_'+t+'\">\\n','\\t<rect x=\"'+s+'\" y=\"'+i+'\" width=\"'+this.width+'\" height=\"'+this.height+'\" />\\n',\"</clipPath>\\n\"),o=' clip-path=\"url(#imageCrop_'+t+')\" '}if(this.imageSmoothing||(a=' image-rendering=\"optimizeSpeed\"'),t.push(\"\\t<image \",\"COMMON_PARTS\",`xlink:href=\"${this.getSvgSrc(!0)}\" x=\"${s-this.cropX}\" y=\"${i-this.cropY}\" width=\"${e.width||e.naturalWidth}\" height=\"${e.height||e.naturalHeight}\"${a}${o}></image>\\n`),this.stroke||this.strokeDashArray){const t=this.fill;this.fill=null,n=[`\\t<rect x=\"${s}\" y=\"${i}\" width=\"${this.width}\" height=\"${this.height}\" style=\"${this.getSvgStyles()}\" />\\n`],this.fill=t}return r=this.paintFirst!==H?r.concat(n,t):r.concat(t,n),r}getSrc(t){const e=t?this._element:this._originalElement;return e?e.toDataURL?e.toDataURL():this.srcFromAttribute?e.getAttribute(\"src\")||\"\":e.src:this.src||\"\"}getSvgSrc(t){return this.getSrc(t)}setSrc(t){let{crossOrigin:e,signal:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Rt(t,{crossOrigin:e,signal:s}).then(t=>{void 0!==e&&this.set({crossOrigin:e}),this.setElement(t)})}toString(){return`#<Image: { src: \"${this.getSrc()}\" }>`}applyResizeFilters(){const t=this.resizeFilter,e=this.minimumScaleTrigger,s=this.getTotalObjectScaling(),i=s.x,r=s.y,n=this._filteredEl||this._originalElement;if(this.group&&this.set(\"dirty\",!0),!t||i>e&&r>e)return this._element=n,this._filterScalingX=1,this._filterScalingY=1,this._lastScaleX=i,void(this._lastScaleY=r);const o=vt(n),{width:a,height:h}=n;this._element=o,this._lastScaleX=t.scaleX=i,this._lastScaleY=t.scaleY=r,Ro().applyFilters([t],n,a,h,this._element),this._filterScalingX=o.width/this._originalElement.width,this._filterScalingY=o.height/this._originalElement.height}applyFilters(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.filters||[];if(t=t.filter(t=>t&&!t.isNeutralState()),this.set(\"dirty\",!0),this.removeTexture(`${this.cacheKey}_filtered`),0===t.length)return this._element=this._originalElement,this._filteredEl=void 0,this._filterScalingX=1,void(this._filterScalingY=1);const e=this._originalElement,s=e.naturalWidth||e.width,i=e.naturalHeight||e.height;if(this._element===this._originalElement){const t=vt({width:s,height:i});this._element=t,this._filteredEl=t}else this._filteredEl&&(this._element=this._filteredEl,this._filteredEl.getContext(\"2d\").clearRect(0,0,s,i),this._lastScaleX=1,this._lastScaleY=1);Ro().applyFilters(t,this._originalElement,s,i,this._element,this.cacheKey),this._originalElement.width===this._element.width&&this._originalElement.height===this._element.height||(this._filterScalingX=this._element.width/this._originalElement.width,this._filterScalingY=this._element.height/this._originalElement.height)}_render(t){t.imageSmoothingEnabled=this.imageSmoothing,!0!==this.isMoving&&this.resizeFilter&&this._needsResize()&&this.applyResizeFilters(),this._stroke(t),this._renderPaintInOrder(t)}drawCacheOnCanvas(t){t.imageSmoothingEnabled=this.imageSmoothing,super.drawCacheOnCanvas(t)}shouldCache(){return this.needsItsOwnCache()}_renderFill(t){const e=this._element;if(!e)return;const s=this._filterScalingX,i=this._filterScalingY,r=this.width,n=this.height,o=Math.max(this.cropX,0),a=Math.max(this.cropY,0),h=e.naturalWidth||e.width,l=e.naturalHeight||e.height,c=o*s,u=a*i,d=Math.min(r*s,h-c),g=Math.min(n*i,l-u),f=-r/2,p=-n/2,m=Math.min(r,h/s-o),v=Math.min(n,l/i-a);e&&t.drawImage(e,c,u,d,g,f,p,m,v)}_needsResize(){const t=this.getTotalObjectScaling();return t.x!==this._lastScaleX||t.y!==this._lastScaleY}_resetWidthHeight(){this.set(this.getOriginalSize())}_setWidthHeight(){let{width:t,height:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const s=this.getOriginalSize();this.width=t||s.width,this.height=e||s.height}parsePreserveAspectRatioAttribute(){const t=Ne(this.preserveAspectRatio||\"\"),e=this.width,s=this.height,i={width:e,height:s};let r,n=this._element.width,o=this._element.height,a=1,h=1,l=0,c=0,u=0,d=0;return!t||t.alignX===E&&t.alignY===E?(a=e/n,h=s/o):(\"meet\"===t.meetOrSlice&&(a=h=kr(this._element,i),r=(e-n*a)/2,\"Min\"===t.alignX&&(l=-r),\"Max\"===t.alignX&&(l=r),r=(s-o*h)/2,\"Min\"===t.alignY&&(c=-r),\"Max\"===t.alignY&&(c=r)),\"slice\"===t.meetOrSlice&&(a=h=Dr(this._element,i),r=n-e/a,\"Mid\"===t.alignX&&(u=r/2),\"Max\"===t.alignX&&(u=r),r=o-s/h,\"Mid\"===t.alignY&&(d=r/2),\"Max\"===t.alignY&&(d=r),n=e/a,o=s/h)),{width:n,height:o,scaleX:a,scaleY:h,offsetLeft:l,offsetTop:c,cropX:u,cropY:d}}static fromObject(t,e){let{filters:s,resizeFilter:i,src:r,crossOrigin:n,type:o,...a}=t;return Promise.all([Rt(r,{...e,crossOrigin:n}),s&&Bt(s,e),i?Bt([i],e):[],$t(a,e)]).then(t=>{let[e,s=[],[i],n={}]=t;return new this(e,{...a,src:r,filters:s,resizeFilter:i,...n})})}static fromURL(t){let{crossOrigin:e=null,signal:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0;return Rt(t,{crossOrigin:e,signal:s}).then(t=>new this(t,i))}static async fromElement(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2?arguments[2]:void 0;const r=gr(t,this.ATTRIBUTE_NAMES,s);return this.fromURL(r[\"xlink:href\"]||r.href,e,r).catch(t=>(i(\"log\",\"Unable to parse Image\",t),null))}}function Yo(t){if(!ms.test(t.nodeName))return{};const e=t.getAttribute(\"viewBox\");let s,i,r=1,n=1,o=0,a=0;const h=t.getAttribute(\"width\"),l=t.getAttribute(\"height\"),c=t.getAttribute(\"x\")||0,u=t.getAttribute(\"y\")||0,d=!(e&&ys.test(e)),g=!h||!l||\"100%\"===h||\"100%\"===l;let f=\"\",p=0,m=0;if(d&&(c||u)&&t.parentNode&&\"#document\"!==t.parentNode.nodeName&&(f=\" translate(\"+He(c||\"0\")+\" \"+He(u||\"0\")+\") \",s=(t.getAttribute(\"transform\")||\"\")+f,t.setAttribute(\"transform\",s),t.removeAttribute(\"x\"),t.removeAttribute(\"y\")),d&&g)return{width:0,height:0};const v={width:0,height:0};if(d)return v.width=He(h),v.height=He(l),v;const y=e.match(ys);o=-parseFloat(y[1]),a=-parseFloat(y[2]);const _=parseFloat(y[3]),x=parseFloat(y[4]);v.minX=o,v.minY=a,v.viewBoxWidth=_,v.viewBoxHeight=x,g?(v.width=_,v.height=x):(v.width=He(h),v.height=He(l),r=v.width/_,n=v.height/x);const C=Ne(t.getAttribute(\"preserveAspectRatio\")||\"\");if(C.alignX!==E&&(\"meet\"===C.meetOrSlice&&(n=r=r>n?n:r),\"slice\"===C.meetOrSlice&&(n=r=r>n?r:n),p=v.width-_*r,m=v.height-x*r,\"Mid\"===C.alignX&&(p/=2),\"Mid\"===C.alignY&&(m/=2),\"Min\"===C.alignX&&(p=0),\"Min\"===C.alignY&&(m=0)),1===r&&1===n&&0===o&&0===a&&0===c&&0===u)return v;if((c||u)&&\"#document\"!==t.parentNode.nodeName&&(f=\" translate(\"+He(c||\"0\")+\" \"+He(u||\"0\")+\") \"),s=f+\" matrix(\"+r+\" 0 0 \"+n+\" \"+(o*r+p)+\" \"+(a*n+m)+\") \",\"svg\"===t.nodeName){for(i=t.ownerDocument.createElementNS(cs,\"g\");t.firstChild;)i.appendChild(t.firstChild);t.appendChild(i)}else i=t,i.removeAttribute(\"x\"),i.removeAttribute(\"y\"),s=i.getAttribute(\"transform\")+s;return i.setAttribute(\"transform\",s),v}t(Xo,\"type\",\"Image\"),t(Xo,\"cacheProperties\",[...ws,...$o]),t(Xo,\"ownDefaults\",{strokeWidth:0,srcFromAttribute:!1,minimumScaleTrigger:.5,cropX:0,cropY:0,imageSmoothing:!0}),t(Xo,\"ATTRIBUTE_NAMES\",[...Gi,\"x\",\"y\",\"width\",\"height\",\"preserveAspectRatio\",\"xlink:href\",\"href\",\"crossOrigin\",\"image-rendering\"]),tt.setClass(Xo),tt.setSVGClass(Xo);const Wo=t=>t.tagName.replace(\"svg:\",\"\"),Vo=Ke([\"pattern\",\"defs\",\"symbol\",\"metadata\",\"clipPath\",\"mask\",\"desc\"]);function Go(t,e){let s,i,r,n,o=[];for(r=0,n=e.length;r<n;r++)s=e[r],i=t.getElementsByTagNameNS(\"http://www.w3.org/2000/svg\",s),o=o.concat(Array.from(i));return o}const zo=[\"gradientTransform\",\"x1\",\"x2\",\"y1\",\"y2\",\"gradientUnits\",\"cx\",\"cy\",\"r\",\"fx\",\"fy\"],Ho=\"xlink:href\";function No(t,e){var s;const i=(null===(s=e.getAttribute(Ho))||void 0===s?void 0:s.slice(1))||\"\",r=t.getElementById(i);if(r&&r.getAttribute(Ho)&&No(t,r),r&&(zo.forEach(t=>{const s=r.getAttribute(t);!e.hasAttribute(t)&&s&&e.setAttribute(t,s)}),!e.children.length)){const t=r.cloneNode(!0);for(;t.firstChild;)e.appendChild(t.firstChild)}e.removeAttribute(Ho)}const Uo=[\"linearGradient\",\"radialGradient\",\"svg:linearGradient\",\"svg:radialGradient\"];const qo=t=>tt.getSVGClass(Wo(t).toLowerCase());class Ko{constructor(t,e,s,i,r){this.elements=t,this.options=e,this.reviver=s,this.regexUrl=/^url\\(['\"]?#([^'\"]+)['\"]?\\)/g,this.doc=i,this.clipPaths=r,this.gradientDefs=function(t){const e=Go(t,Uo),s={};let i=e.length;for(;i--;){const r=e[i];r.getAttribute(\"xlink:href\")&&No(t,r);const n=r.getAttribute(\"id\");n&&(s[n]=r)}return s}(i),this.cssRules=function(t){const e=t.getElementsByTagName(\"style\"),s={};for(let t=0;t<e.length;t++){const i=(e[t].textContent||\"\").replace(/\\/\\*[\\s\\S]*?\\*\\//g,\"\");\"\"!==i.trim()&&i.split(\"}\").filter((t,e,s)=>s.length>1&&t.trim()).forEach(t=>{if((t.match(/{/g)||[]).length>1&&t.trim().startsWith(\"@\"))return;const e=t.split(\"{\"),i={},r=e[1].trim().split(\";\").filter(function(t){return t.trim()});for(let t=0;t<r.length;t++){const e=r[t].split(\":\"),s=e[0].trim(),n=e[1].trim();i[s]=n}(t=e[0].trim()).split(\",\").forEach(t=>{\"\"!==(t=t.replace(/^svg/i,\"\").trim())&&(s[t]={...s[t]||{},...i})})})}return s}(i)}parse(){return Promise.all(this.elements.map(t=>this.createObject(t)))}async createObject(t){const e=qo(t);if(e){const s=await e.fromElement(t,this.options,this.cssRules);return this.resolveGradient(s,t,H),this.resolveGradient(s,t,N),s instanceof Xo&&s._originalElement?nn(s,s.parsePreserveAspectRatioAttribute()):nn(s),await this.resolveClipPath(s,t),this.reviver&&this.reviver(t,s),s}return null}extractPropertyDefinition(t,e,s){const i=t[e],r=this.regexUrl;if(!r.test(i))return;r.lastIndex=0;const n=r.exec(i)[1];return r.lastIndex=0,s[n]}resolveGradient(t,e,s){const i=this.extractPropertyDefinition(t,s,this.gradientDefs);if(i){const r=e.getAttribute(s+\"-opacity\"),n=Vn.fromElement(i,t,{...this.options,opacity:r});t.set(s,n)}}async resolveClipPath(t,e,s){const i=this.extractPropertyDefinition(t,\"clipPath\",this.clipPaths);if(i){const r=wt(t.calcTransformMatrix()),n=i[0].parentElement;let o=e;for(;!s&&o.parentElement&&o.getAttribute(\"clip-path\")!==t.clipPath;)o=o.parentElement;o.parentElement.appendChild(n);const a=hr(`${o.getAttribute(\"transform\")||\"\"} ${n.getAttribute(\"originalTransform\")||\"\"}`);n.setAttribute(\"transform\",`matrix(${a.join(\",\")})`);const h=await Promise.all(i.map(t=>qo(t).fromElement(t,this.options,this.cssRules).then(t=>(nn(t),t.fillRule=t.clipRule,delete t.clipRule,t)))),l=1===h.length?h[0]:new Or(h),c=Tt(r,l.calcTransformMatrix());l.clipPath&&await this.resolveClipPath(l,o,n.getAttribute(\"clip-path\")?o:void 0);const{scaleX:u,scaleY:d,angle:g,skewX:f,translateX:p,translateY:m}=Dt(c);l.set({flipX:!1,flipY:!1}),l.set({scaleX:u,scaleY:d,angle:g,skewX:f,skewY:0}),l.setPositionByOrigin(new ot(p,m),T,T),t.clipPath=l}else delete t.clipPath}}const Jo=t=>ps.test(Wo(t));async function Qo(t,e){let{crossOrigin:s,signal:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(r&&r.aborted)return i(\"log\",new n(\"parseSVGDocument\")),{objects:[],elements:[],options:{},allElements:[]};const o=t.documentElement;!function(t){const e=Go(t,[\"use\",\"svg:use\"]),s=[\"x\",\"y\",\"xlink:href\",\"href\",\"transform\"];for(const i of e){const e=i.attributes,r={};for(const t of e)t.value&&(r[t.name]=t.value);const n=(r[\"xlink:href\"]||r.href||\"\").slice(1);if(\"\"===n)return;const o=t.getElementById(n);if(null===o)return;let a=o.cloneNode(!0);const h=a.attributes,l={};for(const t of h)t.value&&(l[t.name]=t.value);const{x:c=0,y:u=0,transform:d=\"\"}=r,g=`${d} ${l.transform||\"\"} translate(${c}, ${u})`;if(Yo(a),/^svg$/i.test(a.nodeName)){const t=a.ownerDocument.createElementNS(cs,\"g\");Object.entries(l).forEach(e=>{let[s,i]=e;return t.setAttributeNS(cs,s,i)}),t.append(...a.childNodes),a=t}for(const t of e){if(!t)continue;const{name:e,value:i}=t;if(!s.includes(e))if(\"style\"===e){const t={};cr(i,t),Object.entries(l).forEach(e=>{let[s,i]=e;t[s]=i}),cr(l.style||\"\",t);const s=Object.entries(t).map(t=>t.join(\":\")).join(\";\");a.setAttribute(e,s)}else!l[e]&&a.setAttribute(e,i)}a.setAttribute(\"transform\",g),a.setAttribute(\"instantiated_by_use\",\"1\"),a.removeAttribute(\"id\"),i.parentNode.replaceChild(a,i)}}(t);const a=Array.from(o.getElementsByTagName(\"*\")),h={...Yo(o),crossOrigin:s,signal:r},l=a.filter(t=>(Yo(t),Jo(t)&&!function(t){let e=t;for(;e&&(e=e.parentElement);)if(e&&e.nodeName&&Vo.test(Wo(e))&&!e.getAttribute(\"instantiated_by_use\"))return!0;return!1}(t)));if(!l||l&&!l.length)return{objects:[],elements:[],options:{},allElements:[],options:h,allElements:a};const c={};a.filter(t=>\"clipPath\"===Wo(t)).forEach(t=>{t.setAttribute(\"originalTransform\",t.getAttribute(\"transform\")||\"\");const e=t.getAttribute(\"id\");c[e]=Array.from(t.getElementsByTagName(\"*\")).filter(t=>Jo(t))});const u=new Ko(l,h,e,t,c);return{objects:await u.parse(),elements:l,options:h,allElements:a}}function Zo(t,e,s){return Qo((new(g().DOMParser)).parseFromString(t.trim(),\"text/xml\"),e,s)}function ta(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return fetch(t.replace(/^\\n\\s*/,\"\").trim(),{signal:s.signal}).then(t=>{if(!t.ok)throw new r(`HTTP error! status: ${t.status}`);return t.text()}).then(t=>Zo(t,e,s)).catch(()=>({objects:[],elements:[],options:{},allElements:[]}))}const ea=t=>void 0!==t.webgl,sa=(t,e)=>{const s=vt({width:t,height:e}),i=pt().getContext(\"webgl\"),r={imageBuffer:new ArrayBuffer(t*e*4)},n={destinationWidth:t,destinationHeight:e,targetCanvas:s};let o;o=g().performance.now(),Fo.prototype.copyGLTo2D.call(r,i,n);const a=g().performance.now()-o;o=g().performance.now(),Fo.prototype.copyGLTo2DPutImageData.call(r,i,n);return a>g().performance.now()-o},ia=\"precision highp float\",ra=`\\n ${ia};\\n varying vec2 vTexCoord;\\n uniform sampler2D uTexture;\\n void main() {\\n gl_FragColor = texture2D(uTexture, vTexCoord);\\n }`,na=new RegExp(ia,\"g\");class oa{get type(){return this.constructor.type}constructor(){let{type:t,...e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.assign(this,this.constructor.defaults,e)}getFragmentSource(){return ra}getVertexSource(){return\"\\n attribute vec2 aPosition;\\n varying vec2 vTexCoord;\\n void main() {\\n vTexCoord = aPosition;\\n gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\\n }\"}createProgram(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.getFragmentSource(),s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.getVertexSource();const{WebGLProbe:{GLPrecision:i=\"highp\"}}=u();\"highp\"!==i&&(e=e.replace(na,ia.replace(\"highp\",i)));const n=t.createShader(t.VERTEX_SHADER),o=t.createShader(t.FRAGMENT_SHADER),a=t.createProgram();if(!n||!o||!a)throw new r(\"Vertex, fragment shader or program creation error\");if(t.shaderSource(n,s),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS))throw new r(`Vertex shader compile error for ${this.type}: ${t.getShaderInfoLog(n)}`);if(t.shaderSource(o,e),t.compileShader(o),!t.getShaderParameter(o,t.COMPILE_STATUS))throw new r(`Fragment shader compile error for ${this.type}: ${t.getShaderInfoLog(o)}`);if(t.attachShader(a,n),t.attachShader(a,o),t.linkProgram(a),!t.getProgramParameter(a,t.LINK_STATUS))throw new r(`Shader link error for \"${this.type}\" ${t.getProgramInfoLog(a)}`);const h=this.getUniformLocations(t,a)||{};return h.uStepW=t.getUniformLocation(a,\"uStepW\"),h.uStepH=t.getUniformLocation(a,\"uStepH\"),{program:a,attributeLocations:this.getAttributeLocations(t,a),uniformLocations:h}}getAttributeLocations(t,e){return{aPosition:t.getAttribLocation(e,\"aPosition\")}}getUniformLocations(t,e){const s=this.constructor.uniformLocations,i={};for(let r=0;r<s.length;r++)i[s[r]]=t.getUniformLocation(e,s[r]);return i}sendAttributeData(t,e,s){const i=e.aPosition,r=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,r),t.enableVertexAttribArray(i),t.vertexAttribPointer(i,2,t.FLOAT,!1,0,0),t.bufferData(t.ARRAY_BUFFER,s,t.STATIC_DRAW)}_setupFrameBuffer(t){const e=t.context;if(t.passes>1){const s=t.destinationWidth,i=t.destinationHeight;t.sourceWidth===s&&t.sourceHeight===i||(e.deleteTexture(t.targetTexture),t.targetTexture=t.filterBackend.createTexture(e,s,i)),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t.targetTexture,0)}else e.bindFramebuffer(e.FRAMEBUFFER,null),e.finish()}_swapTextures(t){t.passes--,t.pass++;const e=t.targetTexture;t.targetTexture=t.sourceTexture,t.sourceTexture=e}isNeutralState(t){return!1}applyTo(t){ea(t)?(this._setupFrameBuffer(t),this.applyToWebGL(t),this._swapTextures(t)):this.applyTo2d(t)}applyTo2d(t){}getCacheKey(){return this.type}retrieveShader(t){const e=this.getCacheKey();return t.programCache[e]||(t.programCache[e]=this.createProgram(t.context)),t.programCache[e]}applyToWebGL(t){const e=t.context,s=this.retrieveShader(t);0===t.pass&&t.originalTexture?e.bindTexture(e.TEXTURE_2D,t.originalTexture):e.bindTexture(e.TEXTURE_2D,t.sourceTexture),e.useProgram(s.program),this.sendAttributeData(e,s.attributeLocations,t.aPosition),e.uniform1f(s.uniformLocations.uStepW,1/t.sourceWidth),e.uniform1f(s.uniformLocations.uStepH,1/t.sourceHeight),this.sendUniformData(e,s.uniformLocations),e.viewport(0,0,t.destinationWidth,t.destinationHeight),e.drawArrays(e.TRIANGLE_STRIP,0,4)}bindAdditionalTexture(t,e,s){t.activeTexture(s),t.bindTexture(t.TEXTURE_2D,e),t.activeTexture(t.TEXTURE0)}unbindAdditionalTexture(t,e){t.activeTexture(e),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE0)}sendUniformData(t,e){}createHelpLayer(t){if(!t.helpLayer){const{sourceWidth:e,sourceHeight:s}=t,i=vt({width:e,height:s});t.helpLayer=i}}toObject(){const t=Object.keys(this.constructor.defaults||{});return{type:this.type,...t.reduce((t,e)=>(t[e]=this[e],t),{})}}toJSON(){return this.toObject()}static async fromObject(t,e){let{type:s,...i}=t;return new this(i)}}t(oa,\"type\",\"BaseFilter\"),t(oa,\"uniformLocations\",[]);const aa={multiply:\"gl_FragColor.rgb *= uColor.rgb;\\n\",screen:\"gl_FragColor.rgb = 1.0 - (1.0 - gl_FragColor.rgb) * (1.0 - uColor.rgb);\\n\",add:\"gl_FragColor.rgb += uColor.rgb;\\n\",difference:\"gl_FragColor.rgb = abs(gl_FragColor.rgb - uColor.rgb);\\n\",subtract:\"gl_FragColor.rgb -= uColor.rgb;\\n\",lighten:\"gl_FragColor.rgb = max(gl_FragColor.rgb, uColor.rgb);\\n\",darken:\"gl_FragColor.rgb = min(gl_FragColor.rgb, uColor.rgb);\\n\",exclusion:\"gl_FragColor.rgb += uColor.rgb - 2.0 * (uColor.rgb * gl_FragColor.rgb);\\n\",overlay:\"\\n if (uColor.r < 0.5) {\\n gl_FragColor.r *= 2.0 * uColor.r;\\n } else {\\n gl_FragColor.r = 1.0 - 2.0 * (1.0 - gl_FragColor.r) * (1.0 - uColor.r);\\n }\\n if (uColor.g < 0.5) {\\n gl_FragColor.g *= 2.0 * uColor.g;\\n } else {\\n gl_FragColor.g = 1.0 - 2.0 * (1.0 - gl_FragColor.g) * (1.0 - uColor.g);\\n }\\n if (uColor.b < 0.5) {\\n gl_FragColor.b *= 2.0 * uColor.b;\\n } else {\\n gl_FragColor.b = 1.0 - 2.0 * (1.0 - gl_FragColor.b) * (1.0 - uColor.b);\\n }\\n \",tint:\"\\n gl_FragColor.rgb *= (1.0 - uColor.a);\\n gl_FragColor.rgb += uColor.rgb;\\n \"};class ha extends oa{getCacheKey(){return`${this.type}_${this.mode}`}getFragmentSource(){return`\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform vec4 uColor;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n gl_FragColor = color;\\n if (color.a > 0.0) {\\n ${aa[this.mode]}\\n }\\n }\\n `}applyTo2d(t){let{imageData:{data:e}}=t;const s=new ze(this.color).getSource(),i=this.alpha,r=s[0]*i,n=s[1]*i,o=s[2]*i,a=1-i;for(let t=0;t<e.length;t+=4){const s=e[t],i=e[t+1],h=e[t+2];let l,c,u;switch(this.mode){case\"multiply\":l=s*r/255,c=i*n/255,u=h*o/255;break;case\"screen\":l=255-(255-s)*(255-r)/255,c=255-(255-i)*(255-n)/255,u=255-(255-h)*(255-o)/255;break;case\"add\":l=s+r,c=i+n,u=h+o;break;case\"difference\":l=Math.abs(s-r),c=Math.abs(i-n),u=Math.abs(h-o);break;case\"subtract\":l=s-r,c=i-n,u=h-o;break;case\"darken\":l=Math.min(s,r),c=Math.min(i,n),u=Math.min(h,o);break;case\"lighten\":l=Math.max(s,r),c=Math.max(i,n),u=Math.max(h,o);break;case\"overlay\":l=r<128?2*s*r/255:255-2*(255-s)*(255-r)/255,c=n<128?2*i*n/255:255-2*(255-i)*(255-n)/255,u=o<128?2*h*o/255:255-2*(255-h)*(255-o)/255;break;case\"exclusion\":l=r+s-2*r*s/255,c=n+i-2*n*i/255,u=o+h-2*o*h/255;break;case\"tint\":l=r+s*a,c=n+i*a,u=o+h*a}e[t]=l,e[t+1]=c,e[t+2]=u}}sendUniformData(t,e){const s=new ze(this.color).getSource();s[0]=this.alpha*s[0]/255,s[1]=this.alpha*s[1]/255,s[2]=this.alpha*s[2]/255,s[3]=this.alpha,t.uniform4fv(e.uColor,s)}}t(ha,\"defaults\",{color:\"#F95C63\",mode:\"multiply\",alpha:1}),t(ha,\"type\",\"BlendColor\"),t(ha,\"uniformLocations\",[\"uColor\"]),tt.setClass(ha);const la={multiply:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform sampler2D uImage;\\n uniform vec4 uColor;\\n varying vec2 vTexCoord;\\n varying vec2 vTexCoord2;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n vec4 color2 = texture2D(uImage, vTexCoord2);\\n color.rgba *= color2.rgba;\\n gl_FragColor = color;\\n }\\n \",mask:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform sampler2D uImage;\\n uniform vec4 uColor;\\n varying vec2 vTexCoord;\\n varying vec2 vTexCoord2;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n vec4 color2 = texture2D(uImage, vTexCoord2);\\n color.a = color2.a;\\n gl_FragColor = color;\\n }\\n \"};class ca extends oa{getCacheKey(){return`${this.type}_${this.mode}`}getFragmentSource(){return la[this.mode]}getVertexSource(){return\"\\n attribute vec2 aPosition;\\n varying vec2 vTexCoord;\\n varying vec2 vTexCoord2;\\n uniform mat3 uTransformMatrix;\\n void main() {\\n vTexCoord = aPosition;\\n vTexCoord2 = (uTransformMatrix * vec3(aPosition, 1.0)).xy;\\n gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\\n }\\n \"}applyToWebGL(t){const e=t.context,s=this.createTexture(t.filterBackend,this.image);this.bindAdditionalTexture(e,s,e.TEXTURE1),super.applyToWebGL(t),this.unbindAdditionalTexture(e,e.TEXTURE1)}createTexture(t,e){return t.getCachedTexture(e.cacheKey,e.getElement())}calculateMatrix(){const t=this.image,{width:e,height:s}=t.getElement();return[1/t.scaleX,0,0,0,1/t.scaleY,0,-t.left/e,-t.top/s,1]}applyTo2d(t){let{imageData:{data:e,width:s,height:i},filterBackend:{resources:r}}=t;const n=this.image;r.blendImage||(r.blendImage=pt());const o=r.blendImage,a=o.getContext(\"2d\");o.width!==s||o.height!==i?(o.width=s,o.height=i):a.clearRect(0,0,s,i),a.setTransform(n.scaleX,0,0,n.scaleY,n.left,n.top),a.drawImage(n.getElement(),0,0,s,i);const h=a.getImageData(0,0,s,i).data;for(let t=0;t<e.length;t+=4){const s=e[t],i=e[t+1],r=e[t+2],n=e[t+3],o=h[t],a=h[t+1],l=h[t+2],c=h[t+3];switch(this.mode){case\"multiply\":e[t]=s*o/255,e[t+1]=i*a/255,e[t+2]=r*l/255,e[t+3]=n*c/255;break;case\"mask\":e[t+3]=c}}}sendUniformData(t,e){const s=this.calculateMatrix();t.uniform1i(e.uImage,1),t.uniformMatrix3fv(e.uTransformMatrix,!1,s)}toObject(){return{...super.toObject(),image:this.image&&this.image.toObject()}}static async fromObject(t,e){let{type:s,image:i,...r}=t;return Xo.fromObject(i,e).then(t=>new this({...r,image:t}))}}t(ca,\"type\",\"BlendImage\"),t(ca,\"defaults\",{mode:\"multiply\",alpha:1}),t(ca,\"uniformLocations\",[\"uTransformMatrix\",\"uImage\"]),tt.setClass(ca);class ua extends oa{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform vec2 uDelta;\\n varying vec2 vTexCoord;\\n const float nSamples = 15.0;\\n vec3 v3offset = vec3(12.9898, 78.233, 151.7182);\\n float random(vec3 scale) {\\n /* use the fragment position for a different seed per-pixel */\\n return fract(sin(dot(gl_FragCoord.xyz, scale)) * 43758.5453);\\n }\\n void main() {\\n vec4 color = vec4(0.0);\\n float totalC = 0.0;\\n float totalA = 0.0;\\n float offset = random(v3offset);\\n for (float t = -nSamples; t <= nSamples; t++) {\\n float percent = (t + offset - 0.5) / nSamples;\\n vec4 sample = texture2D(uTexture, vTexCoord + uDelta * percent);\\n float weight = 1.0 - abs(percent);\\n float alpha = weight * sample.a;\\n color.rgb += sample.rgb * alpha;\\n color.a += alpha;\\n totalA += weight;\\n totalC += alpha;\\n }\\n gl_FragColor.rgb = color.rgb / totalC;\\n gl_FragColor.a = color.a / totalA;\\n }\\n \"}applyTo(t){ea(t)?(this.aspectRatio=t.sourceWidth/t.sourceHeight,t.passes++,this._setupFrameBuffer(t),this.horizontal=!0,this.applyToWebGL(t),this._swapTextures(t),this._setupFrameBuffer(t),this.horizontal=!1,this.applyToWebGL(t),this._swapTextures(t)):this.applyTo2d(t)}applyTo2d(t){let{imageData:{data:e,width:s,height:i}}=t;this.aspectRatio=s/i,this.horizontal=!0;let r=this.getBlurValue()*s;const n=new Uint8ClampedArray(e),o=15,a=4*s;for(let t=0;t<e.length;t+=4){let s=0,i=0,h=0,l=0,c=0;const u=t-t%a,d=u+a;for(let n=-14;n<o;n++){const a=n/o,g=4*Math.floor(r*a),f=1-Math.abs(a);let p=t+g;p<u?p=u:p>d&&(p=d);const m=e[p+3]*f;s+=e[p]*m,i+=e[p+1]*m,h+=e[p+2]*m,l+=m,c+=f}n[t]=s/l,n[t+1]=i/l,n[t+2]=h/l,n[t+3]=l/c}this.horizontal=!1,r=this.getBlurValue()*i;for(let t=0;t<n.length;t+=4){let s=0,i=0,h=0,l=0,c=0;const u=t%a,d=n.length-a+u;for(let e=-14;e<o;e++){const g=e/o,f=Math.floor(r*g)*a,p=1-Math.abs(g);let m=t+f;m<u?m=u:m>d&&(m=d);const v=n[m+3]*p;s+=n[m]*v,i+=n[m+1]*v,h+=n[m+2]*v,l+=v,c+=p}e[t]=s/l,e[t+1]=i/l,e[t+2]=h/l,e[t+3]=l/c}}sendUniformData(t,e){const s=this.chooseRightDelta();t.uniform2fv(e.uDelta,s)}isNeutralState(){return 0===this.blur}getBlurValue(){let t=1;const{horizontal:e,aspectRatio:s}=this;return e?s>1&&(t=1/s):s<1&&(t=s),t*this.blur*.12}chooseRightDelta(){const t=this.getBlurValue();return this.horizontal?[t,0]:[0,t]}}t(ua,\"type\",\"Blur\"),t(ua,\"defaults\",{blur:0}),t(ua,\"uniformLocations\",[\"uDelta\"]),tt.setClass(ua);class da extends oa{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uBrightness;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n color.rgb += uBrightness;\\n gl_FragColor = color;\\n }\\n\"}applyTo2d(t){let{imageData:{data:e}}=t;const s=Math.round(255*this.brightness);for(let t=0;t<e.length;t+=4)e[t]+=s,e[t+1]+=s,e[t+2]+=s}isNeutralState(){return 0===this.brightness}sendUniformData(t,e){t.uniform1f(e.uBrightness,this.brightness)}}t(da,\"type\",\"Brightness\"),t(da,\"defaults\",{brightness:0}),t(da,\"uniformLocations\",[\"uBrightness\"]),tt.setClass(da);const ga={matrix:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],colorsOnly:!0};class fa extends oa{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n varying vec2 vTexCoord;\\n uniform mat4 uColorMatrix;\\n uniform vec4 uConstants;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n color *= uColorMatrix;\\n color += uConstants;\\n gl_FragColor = color;\\n }\"}applyTo2d(t){const e=t.imageData.data,s=this.matrix,i=this.colorsOnly;for(let t=0;t<e.length;t+=4){const r=e[t],n=e[t+1],o=e[t+2];if(e[t]=r*s[0]+n*s[1]+o*s[2]+255*s[4],e[t+1]=r*s[5]+n*s[6]+o*s[7]+255*s[9],e[t+2]=r*s[10]+n*s[11]+o*s[12]+255*s[14],!i){const i=e[t+3];e[t]+=i*s[3],e[t+1]+=i*s[8],e[t+2]+=i*s[13],e[t+3]=r*s[15]+n*s[16]+o*s[17]+i*s[18]+255*s[19]}}}sendUniformData(t,e){const s=this.matrix,i=[s[0],s[1],s[2],s[3],s[5],s[6],s[7],s[8],s[10],s[11],s[12],s[13],s[15],s[16],s[17],s[18]],r=[s[4],s[9],s[14],s[19]];t.uniformMatrix4fv(e.uColorMatrix,!1,i),t.uniform4fv(e.uConstants,r)}toObject(){return{...super.toObject(),matrix:[...this.matrix]}}}function pa(e,s){var i;const r=(t(i=class extends fa{toObject(){return{type:this.type,colorsOnly:this.colorsOnly}}},\"type\",e),t(i,\"defaults\",{colorsOnly:!1,matrix:s}),i);return tt.setClass(r,e),r}t(fa,\"type\",\"ColorMatrix\"),t(fa,\"defaults\",ga),t(fa,\"uniformLocations\",[\"uColorMatrix\",\"uConstants\"]),tt.setClass(fa);const ma=pa(\"Brownie\",[.5997,.34553,-.27082,0,.186,-.0377,.86095,.15059,0,-.1449,.24113,-.07441,.44972,0,-.02965,0,0,0,1,0]),va=pa(\"Vintage\",[.62793,.32021,-.03965,0,.03784,.02578,.64411,.03259,0,.02926,.0466,-.08512,.52416,0,.02023,0,0,0,1,0]),ya=pa(\"Kodachrome\",[1.12855,-.39673,-.03992,0,.24991,-.16404,1.08352,-.05498,0,.09698,-.16786,-.56034,1.60148,0,.13972,0,0,0,1,0]),_a=pa(\"Technicolor\",[1.91252,-.85453,-.09155,0,.04624,-.30878,1.76589,-.10601,0,-.27589,-.2311,-.75018,1.84759,0,.12137,0,0,0,1,0]),xa=pa(\"Polaroid\",[1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0]),Ca=pa(\"Sepia\",[.393,.769,.189,0,0,.349,.686,.168,0,0,.272,.534,.131,0,0,0,0,0,1,0]),ba=pa(\"BlackWhite\",[1.5,1.5,1.5,0,-1,1.5,1.5,1.5,0,-1,1.5,1.5,1.5,0,-1,0,0,0,1,0]);class Sa extends oa{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(t),this.subFilters=t.subFilters||[]}applyTo(t){ea(t)&&(t.passes+=this.subFilters.length-1),this.subFilters.forEach(e=>{e.applyTo(t)})}toObject(){return{type:this.type,subFilters:this.subFilters.map(t=>t.toObject())}}isNeutralState(){return!this.subFilters.some(t=>!t.isNeutralState())}static fromObject(t,e){return Promise.all((t.subFilters||[]).map(t=>tt.getClass(t.type).fromObject(t,e))).then(t=>new this({subFilters:t}))}}t(Sa,\"type\",\"Composed\"),tt.setClass(Sa);class wa extends oa{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uContrast;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n float contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\\n color.rgb = contrastF * (color.rgb - 0.5) + 0.5;\\n gl_FragColor = color;\\n }\"}isNeutralState(){return 0===this.contrast}applyTo2d(t){let{imageData:{data:e}}=t;const s=Math.floor(255*this.contrast),i=259*(s+255)/(255*(259-s));for(let t=0;t<e.length;t+=4)e[t]=i*(e[t]-128)+128,e[t+1]=i*(e[t+1]-128)+128,e[t+2]=i*(e[t+2]-128)+128}sendUniformData(t,e){t.uniform1f(e.uContrast,this.contrast)}}t(wa,\"type\",\"Contrast\"),t(wa,\"defaults\",{contrast:0}),t(wa,\"uniformLocations\",[\"uContrast\"]),tt.setClass(wa);const Ta={Convolute_3_1:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[9];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 0);\\n for (float h = 0.0; h < 3.0; h+=1.0) {\\n for (float w = 0.0; w < 3.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 1), uStepH * (h - 1));\\n color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 3.0 + w)];\\n }\\n }\\n gl_FragColor = color;\\n }\\n \",Convolute_3_0:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[9];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 1);\\n for (float h = 0.0; h < 3.0; h+=1.0) {\\n for (float w = 0.0; w < 3.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 1.0), uStepH * (h - 1.0));\\n color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 3.0 + w)];\\n }\\n }\\n float alpha = texture2D(uTexture, vTexCoord).a;\\n gl_FragColor = color;\\n gl_FragColor.a = alpha;\\n }\\n \",Convolute_5_1:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[25];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 0);\\n for (float h = 0.0; h < 5.0; h+=1.0) {\\n for (float w = 0.0; w < 5.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\\n color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 5.0 + w)];\\n }\\n }\\n gl_FragColor = color;\\n }\\n \",Convolute_5_0:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[25];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 1);\\n for (float h = 0.0; h < 5.0; h+=1.0) {\\n for (float w = 0.0; w < 5.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\\n color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 5.0 + w)];\\n }\\n }\\n float alpha = texture2D(uTexture, vTexCoord).a;\\n gl_FragColor = color;\\n gl_FragColor.a = alpha;\\n }\\n \",Convolute_7_1:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[49];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 0);\\n for (float h = 0.0; h < 7.0; h+=1.0) {\\n for (float w = 0.0; w < 7.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\\n color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 7.0 + w)];\\n }\\n }\\n gl_FragColor = color;\\n }\\n \",Convolute_7_0:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[49];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 1);\\n for (float h = 0.0; h < 7.0; h+=1.0) {\\n for (float w = 0.0; w < 7.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\\n color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 7.0 + w)];\\n }\\n }\\n float alpha = texture2D(uTexture, vTexCoord).a;\\n gl_FragColor = color;\\n gl_FragColor.a = alpha;\\n }\\n \",Convolute_9_1:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[81];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 0);\\n for (float h = 0.0; h < 9.0; h+=1.0) {\\n for (float w = 0.0; w < 9.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\\n color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 9.0 + w)];\\n }\\n }\\n gl_FragColor = color;\\n }\\n \",Convolute_9_0:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[81];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 1);\\n for (float h = 0.0; h < 9.0; h+=1.0) {\\n for (float w = 0.0; w < 9.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\\n color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 9.0 + w)];\\n }\\n }\\n float alpha = texture2D(uTexture, vTexCoord).a;\\n gl_FragColor = color;\\n gl_FragColor.a = alpha;\\n }\\n \"};class Oa extends oa{getCacheKey(){return`${this.type}_${Math.sqrt(this.matrix.length)}_${this.opaque?1:0}`}getFragmentSource(){return Ta[this.getCacheKey()]}applyTo2d(t){const e=t.imageData,s=e.data,i=this.matrix,r=Math.round(Math.sqrt(i.length)),n=Math.floor(r/2),o=e.width,a=e.height,h=t.ctx.createImageData(o,a),l=h.data,c=this.opaque?1:0;let u,d,g,f,p,m,v,y,_,x,C,b,S;for(C=0;C<a;C++)for(x=0;x<o;x++){for(p=4*(C*o+x),u=0,d=0,g=0,f=0,S=0;S<r;S++)for(b=0;b<r;b++)v=C+S-n,m=x+b-n,v<0||v>=a||m<0||m>=o||(y=4*(v*o+m),_=i[S*r+b],u+=s[y]*_,d+=s[y+1]*_,g+=s[y+2]*_,c||(f+=s[y+3]*_));l[p]=u,l[p+1]=d,l[p+2]=g,l[p+3]=c?s[p+3]:f}t.imageData=h}sendUniformData(t,e){t.uniform1fv(e.uMatrix,this.matrix)}toObject(){return{...super.toObject(),opaque:this.opaque,matrix:[...this.matrix]}}}t(Oa,\"type\",\"Convolute\"),t(Oa,\"defaults\",{opaque:!1,matrix:[0,0,0,0,1,0,0,0,0]}),t(Oa,\"uniformLocations\",[\"uMatrix\",\"uOpaque\",\"uHalfSize\",\"uSize\"]),tt.setClass(Oa);const ka=\"Gamma\";class Da extends oa{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform vec3 uGamma;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n vec3 correction = (1.0 / uGamma);\\n color.r = pow(color.r, correction.r);\\n color.g = pow(color.g, correction.g);\\n color.b = pow(color.b, correction.b);\\n gl_FragColor = color;\\n gl_FragColor.rgb *= color.a;\\n }\\n\"}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(t),this.gamma=t.gamma||this.constructor.defaults.gamma.concat()}applyTo2d(t){let{imageData:{data:e}}=t;const s=this.gamma,i=1/s[0],r=1/s[1],n=1/s[2];this.rgbValues||(this.rgbValues={r:new Uint8Array(256),g:new Uint8Array(256),b:new Uint8Array(256)});const o=this.rgbValues;for(let t=0;t<256;t++)o.r[t]=255*Math.pow(t/255,i),o.g[t]=255*Math.pow(t/255,r),o.b[t]=255*Math.pow(t/255,n);for(let t=0;t<e.length;t+=4)e[t]=o.r[e[t]],e[t+1]=o.g[e[t+1]],e[t+2]=o.b[e[t+2]]}sendUniformData(t,e){t.uniform3fv(e.uGamma,this.gamma)}isNeutralState(){const{gamma:t}=this;return 1===t[0]&&1===t[1]&&1===t[2]}toObject(){return{type:ka,gamma:this.gamma.concat()}}}t(Da,\"type\",ka),t(Da,\"defaults\",{gamma:[1,1,1]}),t(Da,\"uniformLocations\",[\"uGamma\"]),tt.setClass(Da);const Ma={average:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n float average = (color.r + color.b + color.g) / 3.0;\\n gl_FragColor = vec4(average, average, average, color.a);\\n }\\n \",lightness:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform int uMode;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 col = texture2D(uTexture, vTexCoord);\\n float average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;\\n gl_FragColor = vec4(average, average, average, col.a);\\n }\\n \",luminosity:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform int uMode;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 col = texture2D(uTexture, vTexCoord);\\n float average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;\\n gl_FragColor = vec4(average, average, average, col.a);\\n }\\n \"};class Ea extends oa{applyTo2d(t){let{imageData:{data:e}}=t;for(let t,s=0;s<e.length;s+=4){const i=e[s],r=e[s+1],n=e[s+2];switch(this.mode){case\"average\":t=(i+r+n)/3;break;case\"lightness\":t=(Math.min(i,r,n)+Math.max(i,r,n))/2;break;case\"luminosity\":t=.21*i+.72*r+.07*n}e[s+2]=e[s+1]=e[s]=t}}getCacheKey(){return`${this.type}_${this.mode}`}getFragmentSource(){return Ma[this.mode]}sendUniformData(t,e){t.uniform1i(e.uMode,1)}isNeutralState(){return!1}}t(Ea,\"type\",\"Grayscale\"),t(Ea,\"defaults\",{mode:\"average\"}),t(Ea,\"uniformLocations\",[\"uMode\"]),tt.setClass(Ea);const Pa={...ga,rotation:0};class Aa extends fa{calculateMatrix(){const t=this.rotation*Math.PI,e=rt(t),s=nt(t),i=1/3,r=Math.sqrt(i)*s,n=1-e;this.matrix=[e+n/3,i*n-r,i*n+r,0,0,i*n+r,e+i*n,i*n-r,0,0,i*n-r,i*n+r,e+i*n,0,0,0,0,0,1,0]}isNeutralState(){return 0===this.rotation}applyTo(t){this.calculateMatrix(),super.applyTo(t)}toObject(){return{type:this.type,rotation:this.rotation}}}t(Aa,\"type\",\"HueRotation\"),t(Aa,\"defaults\",Pa),tt.setClass(Aa);class ja extends oa{applyTo2d(t){let{imageData:{data:e}}=t;for(let t=0;t<e.length;t+=4)e[t]=255-e[t],e[t+1]=255-e[t+1],e[t+2]=255-e[t+2],this.alpha&&(e[t+3]=255-e[t+3])}getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform int uInvert;\\n uniform int uAlpha;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n if (uInvert == 1) {\\n if (uAlpha == 1) {\\n gl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,1.0 -color.a);\\n } else {\\n gl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,color.a);\\n }\\n } else {\\n gl_FragColor = color;\\n }\\n }\\n\"}isNeutralState(){return!this.invert}sendUniformData(t,e){t.uniform1i(e.uInvert,Number(this.invert)),t.uniform1i(e.uAlpha,Number(this.alpha))}}t(ja,\"type\",\"Invert\"),t(ja,\"defaults\",{alpha:!1,invert:!0}),t(ja,\"uniformLocations\",[\"uInvert\",\"uAlpha\"]),tt.setClass(ja);class Fa extends oa{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uStepH;\\n uniform float uNoise;\\n uniform float uSeed;\\n varying vec2 vTexCoord;\\n float rand(vec2 co, float seed, float vScale) {\\n return fract(sin(dot(co.xy * vScale ,vec2(12.9898 , 78.233))) * 43758.5453 * (seed + 0.01) / 2.0);\\n }\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n color.rgb += (0.5 - rand(vTexCoord, uSeed, 0.1 / uStepH)) * uNoise;\\n gl_FragColor = color;\\n }\\n\"}applyTo2d(t){let{imageData:{data:e}}=t;const s=this.noise;for(let t=0;t<e.length;t+=4){const i=(.5-Math.random())*s;e[t]+=i,e[t+1]+=i,e[t+2]+=i}}sendUniformData(t,e){t.uniform1f(e.uNoise,this.noise/255),t.uniform1f(e.uSeed,Math.random())}isNeutralState(){return 0===this.noise}}t(Fa,\"type\",\"Noise\"),t(Fa,\"defaults\",{noise:0}),t(Fa,\"uniformLocations\",[\"uNoise\",\"uSeed\"]),tt.setClass(Fa);class La extends oa{applyTo2d(t){let{imageData:{data:e,width:s,height:i}}=t;for(let t=0;t<i;t+=this.blocksize)for(let r=0;r<s;r+=this.blocksize){const n=4*t*s+4*r,o=e[n],a=e[n+1],h=e[n+2],l=e[n+3];for(let n=t;n<Math.min(t+this.blocksize,i);n++)for(let t=r;t<Math.min(r+this.blocksize,s);t++){const i=4*n*s+4*t;e[i]=o,e[i+1]=a,e[i+2]=h,e[i+3]=l}}}isNeutralState(){return 1===this.blocksize}getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uBlocksize;\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n float blockW = uBlocksize * uStepW;\\n float blockH = uBlocksize * uStepH;\\n int posX = int(vTexCoord.x / blockW);\\n int posY = int(vTexCoord.y / blockH);\\n float fposX = float(posX);\\n float fposY = float(posY);\\n vec2 squareCoords = vec2(fposX * blockW, fposY * blockH);\\n vec4 color = texture2D(uTexture, squareCoords);\\n gl_FragColor = color;\\n }\\n\"}sendUniformData(t,e){t.uniform1f(e.uBlocksize,this.blocksize)}}t(La,\"type\",\"Pixelate\"),t(La,\"defaults\",{blocksize:4}),t(La,\"uniformLocations\",[\"uBlocksize\"]),tt.setClass(La);class Ia extends oa{getFragmentSource(){return\"\\nprecision highp float;\\nuniform sampler2D uTexture;\\nuniform vec4 uLow;\\nuniform vec4 uHigh;\\nvarying vec2 vTexCoord;\\nvoid main() {\\n gl_FragColor = texture2D(uTexture, vTexCoord);\\n if(all(greaterThan(gl_FragColor.rgb,uLow.rgb)) && all(greaterThan(uHigh.rgb,gl_FragColor.rgb))) {\\n gl_FragColor.a = 0.0;\\n }\\n}\\n\"}applyTo2d(t){let{imageData:{data:e}}=t;const s=255*this.distance,i=new ze(this.color).getSource(),r=[i[0]-s,i[1]-s,i[2]-s],n=[i[0]+s,i[1]+s,i[2]+s];for(let t=0;t<e.length;t+=4){const s=e[t],i=e[t+1],o=e[t+2];s>r[0]&&i>r[1]&&o>r[2]&&s<n[0]&&i<n[1]&&o<n[2]&&(e[t+3]=0)}}sendUniformData(t,e){const s=new ze(this.color).getSource(),i=this.distance,r=[0+s[0]/255-i,0+s[1]/255-i,0+s[2]/255-i,1],n=[s[0]/255+i,s[1]/255+i,s[2]/255+i,1];t.uniform4fv(e.uLow,r),t.uniform4fv(e.uHigh,n)}}t(Ia,\"type\",\"RemoveColor\"),t(Ia,\"defaults\",{color:\"#FFFFFF\",distance:.02,useAlpha:!1}),t(Ia,\"uniformLocations\",[\"uLow\",\"uHigh\"]),tt.setClass(Ia);class Ra extends oa{sendUniformData(t,e){t.uniform2fv(e.uDelta,this.horizontal?[1/this.width,0]:[0,1/this.height]),t.uniform1fv(e.uTaps,this.taps)}getFilterWindow(){const t=this.tempScale;return Math.ceil(this.lanczosLobes/t)}getCacheKey(){const t=this.getFilterWindow();return`${this.type}_${t}`}getFragmentSource(){const t=this.getFilterWindow();return this.generateShader(t)}getTaps(){const t=this.lanczosCreate(this.lanczosLobes),e=this.tempScale,s=this.getFilterWindow(),i=new Array(s);for(let r=1;r<=s;r++)i[r-1]=t(r*e);return i}generateShader(t){const e=new Array(t);for(let s=1;s<=t;s++)e[s-1]=`${s}.0 * uDelta`;return`\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform vec2 uDelta;\\n varying vec2 vTexCoord;\\n uniform float uTaps[${t}];\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n float sum = 1.0;\\n ${e.map((t,e)=>`\\n color += texture2D(uTexture, vTexCoord + ${t}) * uTaps[${e}] + texture2D(uTexture, vTexCoord - ${t}) * uTaps[${e}];\\n sum += 2.0 * uTaps[${e}];\\n `).join(\"\\n\")}\\n gl_FragColor = color / sum;\\n }\\n `}applyToForWebgl(t){t.passes++,this.width=t.sourceWidth,this.horizontal=!0,this.dW=Math.round(this.width*this.scaleX),this.dH=t.sourceHeight,this.tempScale=this.dW/this.width,this.taps=this.getTaps(),t.destinationWidth=this.dW,super.applyTo(t),t.sourceWidth=t.destinationWidth,this.height=t.sourceHeight,this.horizontal=!1,this.dH=Math.round(this.height*this.scaleY),this.tempScale=this.dH/this.height,this.taps=this.getTaps(),t.destinationHeight=this.dH,super.applyTo(t),t.sourceHeight=t.destinationHeight}applyTo(t){ea(t)?this.applyToForWebgl(t):this.applyTo2d(t)}isNeutralState(){return 1===this.scaleX&&1===this.scaleY}lanczosCreate(t){return e=>{if(e>=t||e<=-t)return 0;if(e<1.1920929e-7&&e>-1.1920929e-7)return 1;const s=(e*=Math.PI)/t;return Math.sin(e)/e*Math.sin(s)/s}}applyTo2d(t){const e=t.imageData,s=this.scaleX,i=this.scaleY;this.rcpScaleX=1/s,this.rcpScaleY=1/i;const r=e.width,n=e.height,o=Math.round(r*s),a=Math.round(n*i);let h;h=\"sliceHack\"===this.resizeType?this.sliceByTwo(t,r,n,o,a):\"hermite\"===this.resizeType?this.hermiteFastResize(t,r,n,o,a):\"bilinear\"===this.resizeType?this.bilinearFiltering(t,r,n,o,a):\"lanczos\"===this.resizeType?this.lanczosResize(t,r,n,o,a):new ImageData(o,a),t.imageData=h}sliceByTwo(t,e,s,i,r){const n=t.imageData,o=.5;let a=!1,h=!1,l=e*o,c=s*o;const u=t.filterBackend.resources;let d=0,g=0;const f=e;let p=0;u.sliceByTwo||(u.sliceByTwo=pt());const m=u.sliceByTwo;(m.width<1.5*e||m.height<s)&&(m.width=1.5*e,m.height=s);const v=m.getContext(\"2d\");for(v.clearRect(0,0,1.5*e,s),v.putImageData(n,0,0),i=Math.floor(i),r=Math.floor(r);!a||!h;)e=l,s=c,i<Math.floor(l*o)?l=Math.floor(l*o):(l=i,a=!0),r<Math.floor(c*o)?c=Math.floor(c*o):(c=r,h=!0),v.drawImage(m,d,g,e,s,f,p,l,c),d=f,g=p,p+=c;return v.getImageData(d,g,i,r)}lanczosResize(t,e,s,i,r){const n=t.imageData.data,o=t.ctx.createImageData(i,r),a=o.data,h=this.lanczosCreate(this.lanczosLobes),l=this.rcpScaleX,c=this.rcpScaleY,u=2/this.rcpScaleX,d=2/this.rcpScaleY,g=Math.ceil(l*this.lanczosLobes/2),f=Math.ceil(c*this.lanczosLobes/2),p={},m={x:0,y:0},v={x:0,y:0};return function t(y){let _,x,C,b,S,w,T,O,k,D,M;for(m.x=(y+.5)*l,v.x=Math.floor(m.x),_=0;_<r;_++){for(m.y=(_+.5)*c,v.y=Math.floor(m.y),S=0,w=0,T=0,O=0,k=0,x=v.x-g;x<=v.x+g;x++)if(!(x<0||x>=e)){D=Math.floor(1e3*Math.abs(x-m.x)),p[D]||(p[D]={});for(let t=v.y-f;t<=v.y+f;t++)t<0||t>=s||(M=Math.floor(1e3*Math.abs(t-m.y)),p[D][M]||(p[D][M]=h(Math.sqrt(Math.pow(D*u,2)+Math.pow(M*d,2))/1e3)),C=p[D][M],C>0&&(b=4*(t*e+x),S+=C,w+=C*n[b],T+=C*n[b+1],O+=C*n[b+2],k+=C*n[b+3]))}b=4*(_*i+y),a[b]=w/S,a[b+1]=T/S,a[b+2]=O/S,a[b+3]=k/S}return++y<i?t(y):o}(0)}bilinearFiltering(t,e,s,i,r){let n,o,a,h,l,c,u,d,g,f,p,m,v,y=0;const _=this.rcpScaleX,x=this.rcpScaleY,C=4*(e-1),b=t.imageData.data,S=t.ctx.createImageData(i,r),w=S.data;for(u=0;u<r;u++)for(d=0;d<i;d++)for(l=Math.floor(_*d),c=Math.floor(x*u),g=_*d-l,f=x*u-c,v=4*(c*e+l),p=0;p<4;p++)n=b[v+p],o=b[v+4+p],a=b[v+C+p],h=b[v+C+4+p],m=n*(1-g)*(1-f)+o*g*(1-f)+a*f*(1-g)+h*g*f,w[y++]=m;return S}hermiteFastResize(t,e,s,i,r){const n=this.rcpScaleX,o=this.rcpScaleY,a=Math.ceil(n/2),h=Math.ceil(o/2),l=t.imageData.data,c=t.ctx.createImageData(i,r),u=c.data;for(let t=0;t<r;t++)for(let s=0;s<i;s++){const r=4*(s+t*i);let c=0,d=0,g=0,f=0,p=0,m=0,v=0;const y=(t+.5)*o;for(let i=Math.floor(t*o);i<(t+1)*o;i++){const t=Math.abs(y-(i+.5))/h,r=(s+.5)*n,o=t*t;for(let t=Math.floor(s*n);t<(s+1)*n;t++){let s=Math.abs(r-(t+.5))/a;const n=Math.sqrt(o+s*s);n>1&&n<-1||(c=2*n*n*n-3*n*n+1,c>0&&(s=4*(t+i*e),v+=c*l[s+3],g+=c,l[s+3]<255&&(c=c*l[s+3]/250),f+=c*l[s],p+=c*l[s+1],m+=c*l[s+2],d+=c))}}u[r]=f/d,u[r+1]=p/d,u[r+2]=m/d,u[r+3]=v/g}return c}}t(Ra,\"type\",\"Resize\"),t(Ra,\"defaults\",{resizeType:\"hermite\",scaleX:1,scaleY:1,lanczosLobes:3}),t(Ra,\"uniformLocations\",[\"uDelta\",\"uTaps\"]),tt.setClass(Ra);class Ba extends oa{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uSaturation;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n float rgMax = max(color.r, color.g);\\n float rgbMax = max(rgMax, color.b);\\n color.r += rgbMax != color.r ? (rgbMax - color.r) * uSaturation : 0.00;\\n color.g += rgbMax != color.g ? (rgbMax - color.g) * uSaturation : 0.00;\\n color.b += rgbMax != color.b ? (rgbMax - color.b) * uSaturation : 0.00;\\n gl_FragColor = color;\\n }\\n\"}applyTo2d(t){let{imageData:{data:e}}=t;const s=-this.saturation;for(let t=0;t<e.length;t+=4){const i=e[t],r=e[t+1],n=e[t+2],o=Math.max(i,r,n);e[t]+=o!==i?(o-i)*s:0,e[t+1]+=o!==r?(o-r)*s:0,e[t+2]+=o!==n?(o-n)*s:0}}sendUniformData(t,e){t.uniform1f(e.uSaturation,-this.saturation)}isNeutralState(){return 0===this.saturation}}t(Ba,\"type\",\"Saturation\"),t(Ba,\"defaults\",{saturation:0}),t(Ba,\"uniformLocations\",[\"uSaturation\"]),tt.setClass(Ba);class $a extends oa{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uVibrance;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n float max = max(color.r, max(color.g, color.b));\\n float avg = (color.r + color.g + color.b) / 3.0;\\n float amt = (abs(max - avg) * 2.0) * uVibrance;\\n color.r += max != color.r ? (max - color.r) * amt : 0.00;\\n color.g += max != color.g ? (max - color.g) * amt : 0.00;\\n color.b += max != color.b ? (max - color.b) * amt : 0.00;\\n gl_FragColor = color;\\n }\\n\"}applyTo2d(t){let{imageData:{data:e}}=t;const s=-this.vibrance;for(let t=0;t<e.length;t+=4){const i=e[t],r=e[t+1],n=e[t+2],o=Math.max(i,r,n),a=(i+r+n)/3,h=2*Math.abs(o-a)/255*s;e[t]+=o!==i?(o-i)*h:0,e[t+1]+=o!==r?(o-r)*h:0,e[t+2]+=o!==n?(o-n)*h:0}}sendUniformData(t,e){t.uniform1f(e.uVibrance,-this.vibrance)}isNeutralState(){return 0===this.vibrance}}t($a,\"type\",\"Vibrance\"),t($a,\"defaults\",{vibrance:0}),t($a,\"uniformLocations\",[\"uVibrance\"]),tt.setClass($a);var Xa=Object.freeze({__proto__:null,BaseFilter:oa,BlackWhite:ba,BlendColor:ha,BlendImage:ca,Blur:ua,Brightness:da,Brownie:ma,ColorMatrix:fa,Composed:Sa,Contrast:wa,Convolute:Oa,Gamma:Da,Grayscale:Ea,HueRotation:Aa,Invert:ja,Kodachrome:ya,Noise:Fa,Pixelate:La,Polaroid:xa,RemoveColor:Ia,Resize:Ra,Saturation:Ba,Sepia:Ca,Technicolor:_a,Vibrance:$a,Vintage:va});export{Ao as ActiveSelection,zn as BaseBrush,Vs as BaseFabricObject,Mn as Canvas,jo as Canvas2dFilterBackend,hn as CanvasDOMManager,qn as Circle,Kn as CircleBrush,Mo as ClipPathLayout,ze as Color,ti as Control,io as Ellipse,Xo as FabricImage,ki as FabricObject,go as FabricText,br as FitContentLayout,Eo as FixedLayout,Vn as Gradient,Or as Group,ko as IText,Xo as Image,Ti as InteractiveFabricObject,Ys as Intersection,wr as LayoutManager,Cr as LayoutStrategy,to as Line,ki as Object,st as Observable,Hn as Path,Gn as Pattern,Qn as PatternBrush,Nn as PencilBrush,ot as Point,oo as Polygon,no as Polyline,pr as Rect,Cs as Shadow,Jn as SprayBrush,se as StaticCanvas,te as StaticCanvasDOMManager,go as Text,Do as Textbox,eo as Triangle,Fo as WebGLFilterBackend,p as cache,tt as classRegistry,s as config,Cn as controlsUtils,lt as createCollectionMixin,Xa as filters,u as getEnv,d as getFabricDocument,g as getFabricWindow,Ro as getFilterBackend,b as iMatrix,Io as initFilterBackend,sa as isPutImageFaster,ea as isWebGLPipelineState,Zo as loadSVGFromString,ta as loadSVGFromURL,Qo as parseSVGDocument,et as runningAnimations,c as setEnv,Bo as setFilterBackend,on as util,m as version};\n//# sourceMappingURL=index.min.mjs.map\n","import { ref, shallowRef, type Ref, nextTick } from 'vue'\nimport { Canvas, FabricImage } from 'fabric'\nimport type { ImageSource, ExportOptions } from '@/types'\n\nexport function useFabricCanvas() {\n const canvas = shallowRef<Canvas | null>(null)\n const originalImage = shallowRef<FabricImage | null>(null)\n const isLoading = ref(false)\n const imageWidth = ref(0)\n const imageHeight = ref(0)\n\n function init(canvasEl: HTMLCanvasElement, container: HTMLElement) {\n canvas.value = new Canvas(canvasEl, {\n preserveObjectStacking: true,\n selection: true,\n backgroundColor: '#1a1a2e',\n })\n fitToContainer(container)\n }\n\n function fitToContainer(container: HTMLElement) {\n if (!canvas.value) return\n const w = container.clientWidth\n const h = container.clientHeight\n canvas.value.setDimensions({ width: w, height: h })\n canvas.value.renderAll()\n }\n\n async function loadImage(source: ImageSource): Promise<void> {\n if (!canvas.value) return\n isLoading.value = true\n\n try {\n let url: string\n let revokeUrl = false\n\n if (source instanceof File || source instanceof Blob) {\n url = URL.createObjectURL(source)\n revokeUrl = true\n } else {\n url = source\n }\n\n const img = await FabricImage.fromURL(url, { crossOrigin: 'anonymous' })\n\n const canvasWidth = canvas.value.getWidth()\n const canvasHeight = canvas.value.getHeight()\n const scale = Math.min(\n canvasWidth / (img.width ?? 1),\n canvasHeight / (img.height ?? 1),\n 1\n )\n\n img.scale(scale)\n img.set({\n left: (canvasWidth - img.getScaledWidth()) / 2,\n top: (canvasHeight - img.getScaledHeight()) / 2,\n selectable: false,\n evented: false,\n })\n\n canvas.value.clear()\n canvas.value.backgroundColor = '#1a1a2e'\n canvas.value.add(img)\n canvas.value.sendObjectToBack(img)\n originalImage.value = img\n imageWidth.value = img.width ?? 0\n imageHeight.value = img.height ?? 0\n canvas.value.renderAll()\n\n if (revokeUrl) {\n URL.revokeObjectURL(url)\n }\n } finally {\n isLoading.value = false\n }\n }\n\n async function exportImage(\n options: ExportOptions\n ): Promise<File | Blob | string | HTMLCanvasElement> {\n if (!canvas.value) throw new Error('Canvas not initialized')\n\n const format = options.mimeType.split('/')[1] || 'png'\n const dataURL = canvas.value.toDataURL({\n format: format as any,\n quality: options.quality,\n multiplier: 1,\n })\n\n switch (options.format) {\n case 'dataurl':\n return dataURL\n case 'canvas':\n return canvas.value.toCanvasElement()\n case 'blob': {\n const response = await fetch(dataURL)\n return response.blob()\n }\n case 'file':\n default: {\n const response = await fetch(dataURL)\n const blob = await response.blob()\n const ext = format === 'jpeg' ? 'jpg' : format\n return new File([blob], `${options.fileName}.${ext}`, {\n type: options.mimeType,\n })\n }\n }\n }\n\n function dispose() {\n canvas.value?.dispose()\n canvas.value = null\n originalImage.value = null\n }\n\n return {\n canvas,\n originalImage,\n isLoading,\n imageWidth,\n imageHeight,\n init,\n fitToContainer,\n loadImage,\n exportImage,\n dispose,\n }\n}\n","import { ref, computed, type ShallowRef } from 'vue'\nimport type { Canvas } from 'fabric'\n\nexport function useHistory(canvas: ShallowRef<Canvas | null>, maxStates = 50) {\n const states = ref<string[]>([])\n const currentIndex = ref(-1)\n const isRestoring = ref(false)\n\n const canUndo = computed(() => currentIndex.value > 0)\n const canRedo = computed(() => currentIndex.value < states.value.length - 1)\n\n function saveState() {\n if (isRestoring.value || !canvas.value) return\n states.value = states.value.slice(0, currentIndex.value + 1)\n const json = JSON.stringify(canvas.value.toJSON())\n states.value.push(json)\n if (states.value.length > maxStates) {\n states.value.shift()\n } else {\n currentIndex.value++\n }\n }\n\n async function restoreState(index: number) {\n if (!canvas.value || index < 0 || index >= states.value.length) return\n isRestoring.value = true\n currentIndex.value = index\n await canvas.value.loadFromJSON(states.value[index])\n canvas.value.renderAll()\n isRestoring.value = false\n }\n\n function undo() {\n if (canUndo.value) restoreState(currentIndex.value - 1)\n }\n\n function redo() {\n if (canRedo.value) restoreState(currentIndex.value + 1)\n }\n\n function clearHistory() {\n states.value = []\n currentIndex.value = -1\n }\n\n return { canUndo, canRedo, saveState, undo, redo, clearHistory }\n}\n","import { ref, computed } from 'vue'\nimport type { ToolType } from '@/types'\n\nexport function useEditorState() {\n const activeTool = ref<ToolType | null>(null)\n\n function setTool(tool: ToolType | null) {\n activeTool.value = activeTool.value === tool ? null : tool\n }\n\n function clearTool() {\n activeTool.value = null\n }\n\n return { activeTool, setTool, clearTool }\n}\n","import { ref, type ShallowRef } from 'vue'\nimport { Canvas, Rect, FabricImage } from 'fabric'\nimport type { CropAspectRatio } from '@/types'\n\nexport function useCrop(\n canvas: ShallowRef<Canvas | null>,\n originalImage: ShallowRef<FabricImage | null>,\n onAfterCrop: () => void\n) {\n const isCropping = ref(false)\n const cropRect = ref<Rect | null>(null)\n const selectedRatio = ref<CropAspectRatio | null>(null)\n\n function startCrop(ratio?: CropAspectRatio) {\n if (!canvas.value) return\n cancelCrop()\n\n isCropping.value = true\n selectedRatio.value = ratio || null\n\n const cw = canvas.value.getWidth()\n const ch = canvas.value.getHeight()\n let w = cw * 0.7\n let h = ch * 0.7\n\n if (ratio?.value) {\n h = w / ratio.value\n if (h > ch * 0.7) {\n h = ch * 0.7\n w = h * ratio.value\n }\n }\n\n const rect = new Rect({\n left: (cw - w) / 2,\n top: (ch - h) / 2,\n width: w,\n height: h,\n fill: 'rgba(255,255,255,0.1)',\n stroke: '#ffffff',\n strokeWidth: 2,\n strokeDashArray: [8, 4],\n cornerColor: '#ffffff',\n cornerStrokeColor: '#333333',\n cornerSize: 10,\n transparentCorners: false,\n lockRotation: true,\n hasRotatingPoint: false,\n })\n\n if (ratio?.value) {\n rect.setControlsVisibility({\n mt: false,\n mb: false,\n ml: false,\n mr: false,\n })\n rect.on('scaling', () => {\n const scaleX = rect.scaleX ?? 1\n const scaleY = rect.scaleY ?? 1\n const newWidth = (rect.width ?? w) * scaleX\n const newHeight = newWidth / (ratio.value ?? 1)\n rect.set({ scaleX: 1, scaleY: 1, width: newWidth, height: newHeight })\n rect.setCoords()\n })\n }\n\n cropRect.value = rect\n canvas.value.add(rect)\n canvas.value.setActiveObject(rect)\n canvas.value.renderAll()\n }\n\n function setAspectRatio(ratio: CropAspectRatio) {\n selectedRatio.value = ratio\n if (isCropping.value) {\n cancelCrop()\n startCrop(ratio)\n }\n }\n\n async function applyCrop() {\n if (!canvas.value || !cropRect.value) return\n\n const rect = cropRect.value\n const left = rect.left ?? 0\n const top = rect.top ?? 0\n const width = rect.getScaledWidth()\n const height = rect.getScaledHeight()\n\n canvas.value.remove(rect as any)\n cropRect.value = null\n isCropping.value = false\n\n const dataURL = canvas.value.toDataURL({\n left,\n top,\n width,\n height,\n multiplier: 1,\n format: 'png' as any,\n })\n\n const img = await FabricImage.fromURL(dataURL)\n const cw = canvas.value.getWidth()\n const ch = canvas.value.getHeight()\n const scale = Math.min(cw / (img.width ?? 1), ch / (img.height ?? 1), 1)\n\n img.scale(scale)\n img.set({\n left: (cw - img.getScaledWidth()) / 2,\n top: (ch - img.getScaledHeight()) / 2,\n selectable: false,\n evented: false,\n })\n\n canvas.value.clear()\n canvas.value.backgroundColor = '#1a1a2e'\n canvas.value.add(img)\n canvas.value.sendObjectToBack(img)\n originalImage.value = img\n canvas.value.renderAll()\n\n onAfterCrop()\n }\n\n function cancelCrop() {\n if (!canvas.value || !cropRect.value) return\n canvas.value.remove(cropRect.value as any)\n cropRect.value = null\n isCropping.value = false\n canvas.value.renderAll()\n }\n\n return {\n isCropping,\n selectedRatio,\n startCrop,\n setAspectRatio,\n applyCrop,\n cancelCrop,\n }\n}\n","import { ref, type ShallowRef } from 'vue'\nimport { Canvas, FabricImage } from 'fabric'\n\nexport function useRotateFlip(\n canvas: ShallowRef<Canvas | null>,\n originalImage: ShallowRef<FabricImage | null>,\n onAfterTransform: () => void\n) {\n const rotation = ref(0)\n const flippedX = ref(false)\n const flippedY = ref(false)\n\n function rotate90(direction: 'left' | 'right') {\n if (!canvas.value) return\n const delta = direction === 'right' ? 90 : -90\n rotation.value = (rotation.value + delta + 360) % 360\n\n canvas.value.getObjects().forEach((obj) => {\n const cx = canvas.value!.getWidth() / 2\n const cy = canvas.value!.getHeight() / 2\n const objLeft = (obj.left ?? 0) - cx\n const objTop = (obj.top ?? 0) - cy\n const rad = (delta * Math.PI) / 180\n\n obj.set({\n left: cx + objLeft * Math.cos(rad) - objTop * Math.sin(rad),\n top: cy + objLeft * Math.sin(rad) + objTop * Math.cos(rad),\n angle: ((obj.angle ?? 0) + delta) % 360,\n })\n obj.setCoords()\n })\n\n canvas.value.renderAll()\n onAfterTransform()\n }\n\n function setRotation(degrees: number) {\n if (!canvas.value || !originalImage.value) return\n const img = originalImage.value\n img.set({ angle: degrees })\n img.setCoords()\n rotation.value = degrees\n canvas.value.renderAll()\n }\n\n function flipHorizontal() {\n if (!canvas.value) return\n flippedX.value = !flippedX.value\n canvas.value.getObjects().forEach((obj) => {\n obj.set({ flipX: !obj.flipX })\n obj.setCoords()\n })\n canvas.value.renderAll()\n onAfterTransform()\n }\n\n function flipVertical() {\n if (!canvas.value) return\n flippedY.value = !flippedY.value\n canvas.value.getObjects().forEach((obj) => {\n obj.set({ flipY: !obj.flipY })\n obj.setCoords()\n })\n canvas.value.renderAll()\n onAfterTransform()\n }\n\n return {\n rotation,\n flippedX,\n flippedY,\n rotate90,\n setRotation,\n flipHorizontal,\n flipVertical,\n }\n}\n","import { reactive, watch, type ShallowRef } from 'vue'\nimport { Canvas, FabricImage, filters } from 'fabric'\nimport type { FilterState } from '@/types'\n\nexport function useFilters(\n canvas: ShallowRef<Canvas | null>,\n backgroundImage: ShallowRef<FabricImage | null>,\n onAfterFilter: () => void\n) {\n const state = reactive<FilterState>({\n brightness: 0,\n contrast: 0,\n saturation: 0,\n exposure: 0,\n blur: 0,\n grayscale: false,\n sepia: false,\n invert: false,\n })\n\n let debounceTimer: ReturnType<typeof setTimeout> | null = null\n\n function applyFilters() {\n if (!backgroundImage.value || !canvas.value) return\n const img = backgroundImage.value\n const list: InstanceType<typeof filters.BaseFilter>[] = []\n\n if (state.brightness !== 0)\n list.push(new filters.Brightness({ brightness: state.brightness }))\n if (state.contrast !== 0)\n list.push(new filters.Contrast({ contrast: state.contrast }))\n if (state.saturation !== 0)\n list.push(new filters.Saturation({ saturation: state.saturation }))\n if (state.exposure !== 0)\n list.push(\n new filters.Gamma({\n gamma: [1 + state.exposure, 1 + state.exposure, 1 + state.exposure],\n })\n )\n if (state.blur > 0) list.push(new filters.Blur({ blur: state.blur }))\n if (state.grayscale) list.push(new filters.Grayscale())\n if (state.sepia) list.push(new filters.Sepia())\n if (state.invert) list.push(new filters.Invert())\n\n img.filters = list\n img.applyFilters()\n canvas.value.renderAll()\n }\n\n function resetFilters() {\n Object.assign(state, {\n brightness: 0,\n contrast: 0,\n saturation: 0,\n exposure: 0,\n blur: 0,\n grayscale: false,\n sepia: false,\n invert: false,\n })\n applyFilters()\n onAfterFilter()\n }\n\n watch(state, () => {\n if (debounceTimer) clearTimeout(debounceTimer)\n debounceTimer = setTimeout(() => {\n applyFilters()\n }, 50)\n })\n\n function commitFilters() {\n applyFilters()\n onAfterFilter()\n }\n\n return { state, applyFilters, resetFilters, commitFilters }\n}\n","import { reactive, type ShallowRef } from 'vue'\nimport { Canvas, IText } from 'fabric'\nimport type { TextConfig } from '@/types'\n\nexport function useText(\n canvas: ShallowRef<Canvas | null>,\n onAfterAdd: () => void\n) {\n const config = reactive<TextConfig>({\n text: 'Text',\n fontFamily: 'Arial',\n fontSize: 24,\n fill: '#ffffff',\n fontWeight: 'normal',\n fontStyle: 'normal',\n textAlign: 'left',\n })\n\n function addText() {\n if (!canvas.value) return\n\n const text = new IText(config.text, {\n left: canvas.value.getWidth() / 2 - 50,\n top: canvas.value.getHeight() / 2 - 20,\n fontFamily: config.fontFamily,\n fontSize: config.fontSize,\n fill: config.fill,\n fontWeight: config.fontWeight,\n fontStyle: config.fontStyle,\n textAlign: config.textAlign,\n editable: true,\n })\n\n canvas.value.add(text)\n canvas.value.setActiveObject(text)\n canvas.value.renderAll()\n onAfterAdd()\n }\n\n function updateSelectedText() {\n if (!canvas.value) return\n const active = canvas.value.getActiveObject()\n if (!(active instanceof IText)) return\n\n active.set({\n fontFamily: config.fontFamily,\n fontSize: config.fontSize,\n fill: config.fill,\n fontWeight: config.fontWeight,\n fontStyle: config.fontStyle,\n textAlign: config.textAlign,\n })\n canvas.value.renderAll()\n }\n\n return { config, addText, updateSelectedText }\n}\n","import { reactive, watch, type ShallowRef } from 'vue'\nimport { Canvas, PencilBrush } from 'fabric'\nimport type { BrushConfig } from '@/types'\n\nexport function useDraw(\n canvas: ShallowRef<Canvas | null>,\n onAfterDraw: () => void\n) {\n const config = reactive<BrushConfig>({\n width: 4,\n color: '#ffffff',\n opacity: 1,\n })\n\n function enableDrawing() {\n if (!canvas.value) return\n canvas.value.isDrawingMode = true\n const brush = new PencilBrush(canvas.value)\n brush.width = config.width\n brush.color = config.color\n canvas.value.freeDrawingBrush = brush\n canvas.value.on('path:created', () => {\n onAfterDraw()\n })\n }\n\n function disableDrawing() {\n if (!canvas.value) return\n canvas.value.isDrawingMode = false\n canvas.value.off('path:created')\n }\n\n watch(config, () => {\n if (!canvas.value?.freeDrawingBrush) return\n canvas.value.freeDrawingBrush.width = config.width\n canvas.value.freeDrawingBrush.color = config.color\n })\n\n return { config, enableDrawing, disableDrawing }\n}\n","import { reactive, type ShallowRef } from 'vue'\nimport { Canvas, Rect, Circle, Line, Path } from 'fabric'\nimport type { ShapeConfig } from '@/types'\n\nexport function useShapes(\n canvas: ShallowRef<Canvas | null>,\n onAfterAdd: () => void\n) {\n const config = reactive<ShapeConfig>({\n type: 'rect',\n strokeColor: '#ffffff',\n fillColor: 'transparent',\n strokeWidth: 2,\n })\n\n function addShape() {\n if (!canvas.value) return\n\n const cx = canvas.value.getWidth() / 2\n const cy = canvas.value.getHeight() / 2\n let shape: any\n\n switch (config.type) {\n case 'rect':\n shape = new Rect({\n left: cx - 50,\n top: cy - 40,\n width: 100,\n height: 80,\n fill: config.fillColor,\n stroke: config.strokeColor,\n strokeWidth: config.strokeWidth,\n })\n break\n\n case 'circle':\n shape = new Circle({\n left: cx - 40,\n top: cy - 40,\n radius: 40,\n fill: config.fillColor,\n stroke: config.strokeColor,\n strokeWidth: config.strokeWidth,\n })\n break\n\n case 'line':\n shape = new Line([cx - 60, cy, cx + 60, cy], {\n stroke: config.strokeColor,\n strokeWidth: config.strokeWidth,\n })\n break\n\n case 'arrow': {\n const startX = cx - 60\n const endX = cx + 60\n const pathData = `M ${startX} ${cy} L ${endX} ${cy} M ${endX - 12} ${cy - 8} L ${endX} ${cy} L ${endX - 12} ${cy + 8}`\n shape = new Path(pathData, {\n fill: '',\n stroke: config.strokeColor,\n strokeWidth: config.strokeWidth,\n strokeLineCap: 'round',\n strokeLineJoin: 'round',\n })\n break\n }\n }\n\n if (shape) {\n canvas.value.add(shape)\n canvas.value.setActiveObject(shape)\n canvas.value.renderAll()\n onAfterAdd()\n }\n }\n\n return { config, addShape }\n}\n","import { ref, type ShallowRef } from 'vue'\nimport { Canvas, FabricImage } from 'fabric'\n\nexport function useResize(\n canvas: ShallowRef<Canvas | null>,\n originalImage: ShallowRef<FabricImage | null>,\n imageWidth: { value: number },\n imageHeight: { value: number },\n onAfterResize: () => void\n) {\n const newWidth = ref(0)\n const newHeight = ref(0)\n const lockRatio = ref(true)\n const aspectRatio = ref(1)\n\n function initResize() {\n newWidth.value = imageWidth.value\n newHeight.value = imageHeight.value\n aspectRatio.value =\n imageHeight.value > 0 ? imageWidth.value / imageHeight.value : 1\n }\n\n function setWidth(w: number) {\n newWidth.value = w\n if (lockRatio.value) {\n newHeight.value = Math.round(w / aspectRatio.value)\n }\n }\n\n function setHeight(h: number) {\n newHeight.value = h\n if (lockRatio.value) {\n newWidth.value = Math.round(h * aspectRatio.value)\n }\n }\n\n async function applyResize() {\n if (!canvas.value || !originalImage.value) return\n\n const dataURL = canvas.value.toDataURL({\n format: 'png' as any,\n multiplier: 1,\n })\n\n const tmpCanvas = document.createElement('canvas')\n tmpCanvas.width = newWidth.value\n tmpCanvas.height = newHeight.value\n const ctx = tmpCanvas.getContext('2d')!\n const imgEl = new window.Image()\n\n await new Promise<void>((resolve) => {\n imgEl.onload = () => {\n ctx.drawImage(imgEl, 0, 0, newWidth.value, newHeight.value)\n resolve()\n }\n imgEl.src = dataURL\n })\n\n const resizedDataURL = tmpCanvas.toDataURL('image/png')\n const img = await FabricImage.fromURL(resizedDataURL)\n\n const cw = canvas.value.getWidth()\n const ch = canvas.value.getHeight()\n const scale = Math.min(cw / (img.width ?? 1), ch / (img.height ?? 1), 1)\n\n img.scale(scale)\n img.set({\n left: (cw - img.getScaledWidth()) / 2,\n top: (ch - img.getScaledHeight()) / 2,\n selectable: false,\n evented: false,\n })\n\n canvas.value.clear()\n canvas.value.backgroundColor = '#1a1a2e'\n canvas.value.add(img)\n originalImage.value = img\n imageWidth.value = newWidth.value\n imageHeight.value = newHeight.value\n canvas.value.renderAll()\n\n onAfterResize()\n }\n\n return { newWidth, newHeight, lockRatio, initResize, setWidth, setHeight, applyResize }\n}\n","import { ref, type ShallowRef } from 'vue'\nimport type { Canvas } from 'fabric'\n\nconst MIN_ZOOM = 0.1\nconst MAX_ZOOM = 5\n\nexport function useZoom(canvas: ShallowRef<Canvas | null>) {\n const zoomLevel = ref(1)\n\n function setZoom(level: number) {\n if (!canvas.value) return\n const clamped = Math.min(MAX_ZOOM, Math.max(MIN_ZOOM, level))\n zoomLevel.value = clamped\n canvas.value.setZoom(clamped)\n canvas.value.renderAll()\n }\n\n function zoomIn() {\n setZoom(zoomLevel.value * 1.15)\n }\n\n function zoomOut() {\n setZoom(zoomLevel.value / 1.15)\n }\n\n function resetZoom() {\n setZoom(1)\n }\n\n function enableWheelZoom() {\n canvas.value?.on('mouse:wheel', (opt) => {\n const delta = opt.e.deltaY\n let zoom = canvas.value!.getZoom()\n zoom *= 0.999 ** delta\n setZoom(zoom)\n opt.e.preventDefault()\n opt.e.stopPropagation()\n })\n }\n\n return { zoomLevel, setZoom, zoomIn, zoomOut, resetZoom, enableWheelZoom }\n}\n","<script lang=\"ts\" setup>\nimport { ref, computed, watch, onMounted, onBeforeUnmount, nextTick } from 'vue'\nimport type { ToolType, CropAspectRatio, ImageSource, FilterState, TextConfig, BrushConfig, ShapeConfig } from '@/types'\nimport { resolveTranslations, type VueditTranslations } from '@/i18n'\nimport FabricCanvas from './canvas/FabricCanvas.vue'\nimport EditorToolbar from './toolbar/EditorToolbar.vue'\nimport CropPanel from './panels/CropPanel.vue'\nimport RotateFlipPanel from './panels/RotateFlipPanel.vue'\nimport FilterPanel from './panels/FilterPanel.vue'\nimport TextPanel from './panels/TextPanel.vue'\nimport DrawPanel from './panels/DrawPanel.vue'\nimport ShapePanel from './panels/ShapePanel.vue'\nimport ResizePanel from './panels/ResizePanel.vue'\nimport { UndoIcon, RedoIcon, ZoomInIcon, ZoomOutIcon } from '@/icons'\nimport { useFabricCanvas } from '@/composables/useFabricCanvas'\nimport { useHistory } from '@/composables/useHistory'\nimport { useEditorState } from '@/composables/useEditorState'\nimport { useCrop } from '@/composables/useCrop'\nimport { useRotateFlip } from '@/composables/useRotateFlip'\nimport { useFilters } from '@/composables/useFilters'\nimport { useText } from '@/composables/useText'\nimport { useDraw } from '@/composables/useDraw'\nimport { useShapes } from '@/composables/useShapes'\nimport { useResize } from '@/composables/useResize'\nimport { useZoom } from '@/composables/useZoom'\n\nconst props = withDefaults(\n defineProps<{\n src: ImageSource\n outputFormat?: 'file' | 'blob' | 'dataurl' | 'canvas'\n outputMimeType?: string\n outputQuality?: number\n outputFileName?: string\n tools?: ToolType[]\n cropAspectRatios?: CropAspectRatio[]\n locale?: string | VueditTranslations\n dir?: 'ltr' | 'rtl' | 'auto'\n }>(),\n {\n outputFormat: 'file',\n outputMimeType: 'image/png',\n outputQuality: 0.92,\n outputFileName: 'edited-image',\n tools: () => ['crop', 'rotate', 'filter', 'text', 'draw', 'shape', 'resize'],\n cropAspectRatios: () => [\n { label: 'Free', value: null },\n { label: '1:1', value: 1 },\n { label: '4:3', value: 4 / 3 },\n { label: '16:9', value: 16 / 9 },\n { label: '3:2', value: 3 / 2 },\n ],\n locale: 'en',\n dir: 'auto',\n }\n)\n\nconst emit = defineEmits<{\n (e: 'save', result: File | Blob | string | HTMLCanvasElement): void\n (e: 'cancel'): void\n (e: 'change', dirty: boolean): void\n (e: 'error', error: Error): void\n}>()\n\nconst t = resolveTranslations(props.locale)\nconst direction = computed(() => {\n if (props.dir !== 'auto') return props.dir\n return typeof props.locale === 'string' && props.locale === 'ar' ? 'rtl' : 'ltr'\n})\n\nconst fabricCanvasRef = ref<InstanceType<typeof FabricCanvas> | null>(null)\n\n// Core composables\nconst {\n canvas,\n originalImage,\n isLoading,\n imageWidth,\n imageHeight,\n init,\n fitToContainer,\n loadImage,\n exportImage,\n dispose,\n} = useFabricCanvas()\n\nconst { canUndo, canRedo, saveState, undo, redo, clearHistory } = useHistory(canvas)\nconst { activeTool, setTool, clearTool } = useEditorState()\n\n// Tool composables\nconst crop = useCrop(canvas, originalImage, saveState)\nconst rotateFlip = useRotateFlip(canvas, originalImage, saveState)\nconst filterTool = useFilters(canvas, originalImage, saveState)\nconst textTool = useText(canvas, saveState)\nconst drawTool = useDraw(canvas, saveState)\nconst shapeTool = useShapes(canvas, saveState)\nconst resizeTool = useResize(canvas, originalImage, imageWidth, imageHeight, saveState)\nconst zoomTool = useZoom(canvas)\n\n// Handle tool switching side effects\nwatch(activeTool, (newTool, oldTool) => {\n // Clean up old tool\n if (oldTool === 'draw') drawTool.disableDrawing()\n if (oldTool === 'crop') crop.cancelCrop()\n\n // Set up new tool\n if (newTool === 'draw') drawTool.enableDrawing()\n if (newTool === 'crop') crop.startCrop(props.cropAspectRatios[0])\n if (newTool === 'resize') resizeTool.initResize()\n})\n\n// Load image\nonMounted(async () => {\n await nextTick()\n if (fabricCanvasRef.value?.canvasEl && fabricCanvasRef.value?.containerEl) {\n init(fabricCanvasRef.value.canvasEl, fabricCanvasRef.value.containerEl)\n zoomTool.enableWheelZoom()\n try {\n await loadImage(props.src)\n clearHistory()\n saveState()\n } catch (err) {\n emit('error', err as Error)\n }\n }\n})\n\nwatch(\n () => props.src,\n async (newSrc) => {\n if (newSrc && canvas.value) {\n try {\n await loadImage(newSrc)\n clearHistory()\n saveState()\n } catch (err) {\n emit('error', err as Error)\n }\n }\n }\n)\n\n// Resize handler\nlet resizeObserver: ResizeObserver | null = null\nonMounted(() => {\n if (fabricCanvasRef.value?.containerEl) {\n resizeObserver = new ResizeObserver(() => {\n if (fabricCanvasRef.value?.containerEl) {\n fitToContainer(fabricCanvasRef.value.containerEl)\n }\n })\n resizeObserver.observe(fabricCanvasRef.value.containerEl)\n }\n})\n\n// Keyboard shortcuts\nfunction onKeydown(e: KeyboardEvent) {\n if (e.ctrlKey || e.metaKey) {\n if (e.key === 'z' && !e.shiftKey) {\n e.preventDefault()\n undo()\n } else if ((e.key === 'z' && e.shiftKey) || e.key === 'y') {\n e.preventDefault()\n redo()\n }\n }\n if (e.key === 'Delete' || e.key === 'Backspace') {\n if (canvas.value?.getActiveObject()) {\n const active = canvas.value.getActiveObject()\n if (active && active !== originalImage.value) {\n canvas.value.remove(active)\n canvas.value.renderAll()\n saveState()\n }\n }\n }\n if (e.key === 'Escape') {\n clearTool()\n }\n}\n\nonMounted(() => document.addEventListener('keydown', onKeydown))\nonBeforeUnmount(() => {\n document.removeEventListener('keydown', onKeydown)\n resizeObserver?.disconnect()\n dispose()\n})\n\n// Actions\nasync function handleSave() {\n try {\n // Deactivate any tool to ensure clean export\n if (activeTool.value === 'draw') drawTool.disableDrawing()\n if (activeTool.value === 'crop') crop.cancelCrop()\n clearTool()\n\n const result = await exportImage({\n format: props.outputFormat,\n mimeType: props.outputMimeType,\n quality: props.outputQuality,\n fileName: props.outputFileName,\n })\n emit('save', result)\n } catch (err) {\n emit('error', err as Error)\n }\n}\n\n// Panel event handlers\nfunction onFilterUpdate(key: keyof FilterState, value: number | boolean) {\n ;(filterTool.state as any)[key] = value\n}\n\nfunction onTextUpdate(key: keyof TextConfig, value: string | number) {\n ;(textTool.config as any)[key] = value\n textTool.updateSelectedText()\n}\n\nfunction onDrawUpdate(key: keyof BrushConfig, value: number | string) {\n ;(drawTool.config as any)[key] = value\n}\n\nfunction onShapeUpdate(key: keyof ShapeConfig, value: string | number) {\n ;(shapeTool.config as any)[key] = value\n}\n</script>\n\n<template>\n <div class=\"vuedit-editor\" :dir=\"direction\">\n <!-- Header: undo/redo + zoom + save/cancel -->\n <div class=\"vuedit-header\">\n <div class=\"vuedit-header__history\">\n <button class=\"vuedit-btn--icon\" :disabled=\"!canUndo\" :title=\"t('undo')\" @click=\"undo\">\n <UndoIcon style=\"width:18px;height:18px\" />\n </button>\n <button class=\"vuedit-btn--icon\" :disabled=\"!canRedo\" :title=\"t('redo')\" @click=\"redo\">\n <RedoIcon style=\"width:18px;height:18px\" />\n </button>\n <span style=\"width:1px;height:24px;background:var(--vuedit-color-border);margin:0 4px\" />\n <button class=\"vuedit-btn--icon\" :title=\"t('zoomIn')\" @click=\"zoomTool.zoomIn()\">\n <ZoomInIcon style=\"width:18px;height:18px\" />\n </button>\n <button class=\"vuedit-btn--icon\" :title=\"t('zoomOut')\" @click=\"zoomTool.zoomOut()\">\n <ZoomOutIcon style=\"width:18px;height:18px\" />\n </button>\n <span style=\"font-size:12px;color:var(--vuedit-color-text-muted);min-width:40px;text-align:center\">\n {{ Math.round(zoomTool.zoomLevel.value * 100) }}%\n </span>\n </div>\n <div class=\"vuedit-header__actions\">\n <button class=\"vuedit-btn vuedit-btn--secondary\" @click=\"emit('cancel')\">\n {{ t('cancel') }}\n </button>\n <button class=\"vuedit-btn vuedit-btn--primary\" @click=\"handleSave\">\n {{ t('save') }}\n </button>\n </div>\n </div>\n\n <!-- Body: panel + canvas -->\n <div class=\"vuedit-body\">\n <div v-if=\"activeTool\" class=\"vuedit-panel\">\n <CropPanel\n v-if=\"activeTool === 'crop'\"\n :aspect-ratios=\"cropAspectRatios\"\n :selected-ratio=\"crop.selectedRatio.value\"\n :is-cropping=\"crop.isCropping.value\"\n :t=\"t\"\n @select-ratio=\"(r) => { crop.setAspectRatio(r); crop.startCrop(r) }\"\n @apply=\"crop.applyCrop\"\n @cancel=\"crop.cancelCrop\"\n />\n <RotateFlipPanel\n v-else-if=\"activeTool === 'rotate'\"\n :rotation=\"rotateFlip.rotation.value\"\n :t=\"t\"\n @rotate-left=\"rotateFlip.rotate90('left')\"\n @rotate-right=\"rotateFlip.rotate90('right')\"\n @flip-h=\"rotateFlip.flipHorizontal\"\n @flip-v=\"rotateFlip.flipVertical\"\n @set-rotation=\"rotateFlip.setRotation\"\n />\n <FilterPanel\n v-else-if=\"activeTool === 'filter'\"\n :state=\"filterTool.state\"\n :t=\"t\"\n @update=\"onFilterUpdate\"\n @reset=\"filterTool.resetFilters\"\n @commit=\"filterTool.commitFilters\"\n />\n <TextPanel\n v-else-if=\"activeTool === 'text'\"\n :config=\"textTool.config\"\n :t=\"t\"\n @update=\"onTextUpdate\"\n @add-text=\"textTool.addText\"\n />\n <DrawPanel\n v-else-if=\"activeTool === 'draw'\"\n :config=\"drawTool.config\"\n :t=\"t\"\n @update=\"onDrawUpdate\"\n />\n <ShapePanel\n v-else-if=\"activeTool === 'shape'\"\n :config=\"shapeTool.config\"\n :t=\"t\"\n @update=\"onShapeUpdate\"\n @add-shape=\"shapeTool.addShape\"\n />\n <ResizePanel\n v-else-if=\"activeTool === 'resize'\"\n :width=\"resizeTool.newWidth.value\"\n :height=\"resizeTool.newHeight.value\"\n :lock-ratio=\"resizeTool.lockRatio.value\"\n :t=\"t\"\n @set-width=\"resizeTool.setWidth\"\n @set-height=\"resizeTool.setHeight\"\n @toggle-lock=\"resizeTool.lockRatio.value = !resizeTool.lockRatio.value\"\n @apply=\"resizeTool.applyResize\"\n @cancel=\"clearTool\"\n />\n </div>\n\n <FabricCanvas ref=\"fabricCanvasRef\" />\n </div>\n\n <!-- Bottom Toolbar -->\n <EditorToolbar\n :tools=\"tools\"\n :active-tool=\"activeTool\"\n :t=\"t\"\n @select-tool=\"setTool\"\n />\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { ref, watch } from 'vue'\nimport VueditImageEditor from './VueditImageEditor.vue'\nimport type { ToolType, CropAspectRatio, ImageSource } from '@/types'\nimport type { VueditTranslations } from '@/i18n'\n\nconst props = withDefaults(\n defineProps<{\n open: boolean\n src: ImageSource\n outputFormat?: 'file' | 'blob' | 'dataurl' | 'canvas'\n outputMimeType?: string\n outputQuality?: number\n outputFileName?: string\n tools?: ToolType[]\n cropAspectRatios?: CropAspectRatio[]\n locale?: string | VueditTranslations\n dir?: 'ltr' | 'rtl' | 'auto'\n }>(),\n {\n outputFormat: 'file',\n outputMimeType: 'image/png',\n outputQuality: 0.92,\n outputFileName: 'edited-image',\n locale: 'en',\n dir: 'auto',\n }\n)\n\nconst emit = defineEmits<{\n (e: 'save', result: File | Blob | string | HTMLCanvasElement): void\n (e: 'close'): void\n}>()\n\nconst dialogRef = ref<HTMLDialogElement | null>(null)\n\nwatch(\n () => props.open,\n (isOpen) => {\n if (isOpen) {\n dialogRef.value?.showModal()\n } else {\n dialogRef.value?.close()\n }\n }\n)\n</script>\n\n<template>\n <Teleport to=\"body\">\n <dialog ref=\"dialogRef\" class=\"vuedit-modal\" @close=\"emit('close')\">\n <VueditImageEditor\n v-if=\"open\"\n :src=\"src\"\n :output-format=\"outputFormat\"\n :output-mime-type=\"outputMimeType\"\n :output-quality=\"outputQuality\"\n :output-file-name=\"outputFileName\"\n :tools=\"tools\"\n :crop-aspect-ratios=\"cropAspectRatios\"\n :locale=\"locale\"\n :dir=\"dir\"\n @save=\"(result) => emit('save', result)\"\n @cancel=\"emit('close')\"\n />\n </dialog>\n </Teleport>\n</template>\n"],"names":["en","locales","resolveTranslations","locale","translations","key","mergeTranslations","base","overrides","canvasEl","ref","containerEl","__expose","_createElementBlock","_createElementVNode","emit","__emit","_normalizeClass","__props","_hoisted_1","_renderSlot","_ctx","_hoisted_2","_toDisplayString","_sfc_render","_cache","_openBlock","iconMap","CropIcon","RotateIcon","FilterIcon","TextIcon","DrawIcon","ShapeIcon","ResizeIcon","labelMap","_Fragment","_renderList","tool","_createBlock","ToolButton","$event","_resolveDynamicComponent","_hoisted_3","ratio","_a","_hoisted_4","ConfirmBar","onInput","event","_createVNode","_unref","RotateLeftIcon","RotateRightIcon","FlipHIcon","FlipVIcon","_hoisted_8","RangeSlider","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_9","presets","color","fonts","font","ColorPicker","_hoisted_10","_hoisted_11","shapes","s","t","e","i","r","n","o","a","h","l","u","d","g","f","p","m","v","y","_","x","C","b","S","w","T","O","k","D","M","E","P","A","j","F","L","I","R","B","$","X","Y","W","V","G","z","H","N","U","q","K","J","Q","Z","tt","et","st","it","rt","nt","ot","at","ht","lt","ct","ut","dt","gt","ft","pt","mt","vt","yt","_t","xt","Ct","bt","St","wt","Tt","Ot","kt","Dt","Mt","Et","Pt","At","jt","Ft","Lt","It","Rt","Bt","$t","Xt","Yt","Wt","Vt","Gt","zt","Ht","Nt","Ut","qt","Kt","Jt","Qt","Zt","te","ee","se","c","ie","re","ne","oe","ae","he","le","ce","ue","de","ge","fe","pe","me","ve","ye","_e","xe","Ce","be","Se","we","De","Me","Te","Oe","ke","Ee","Pe","Ae","je","Fe","Le","Ie","Re","Be","$e","Xe","Ye","We","Ve","Ge","ze","He","Ne","Ue","qe","Ke","Je","Qe","Ze","ts","es","ss","is","rs","ns","os","as","hs","us","ds","gs","fs","vs","_s","xs","Cs","bs","Ss","ws","Ts","Ds","As","js","Fs","Ls","Is","Rs","Bs","$s","Xs","Ys","Ws","Vs","Gs","zs","Hs","Ns","Us","Ks","Qs","Zs","ti","ei","si","ii","ri","ni","oi","ai","hi","li","ci","ui","di","gi","fi","pi","mi","vi","yi","_i","xi","Ci","bi","Si","wi","Ti","Oi","ki","Di","Mi","Ei","Pi","Ai","ji","Fi","Li","Ii","Ri","Bi","$i","Yi","Wi","Vi","Gi","zi","Hi","Ni","Ui","qi","Ki","Ji","Qi","Zi","tr","er","sr","ir","rr","nr","or","ar","hr","lr","cr","ur","dr","gr","fr","pr","mr","vr","yr","_r","xr","Cr","br","Sr","wr","Tr","Or","kr","Dr","Mr","Er","Pr","Ar","jr","Fr","Lr","$r","Ir","Rr","Br","Xr","Yr","Wr","Vr","Gr","zr","Hr","Nr","Ur","qr","Kr","Jr","Qr","Zr","tn","sn","an","hn","ln","bn","Sn","wn","Tn","On","kn","Dn","Mn","En","Pn","An","jn","Fn","Ln","In","Rn","Bn","$n","Xn","Yn","Wn","Vn","Gn","zn","Hn","Nn","Un","qn","Zn","to","eo","so","io","ro","no","oo","ao","ho","lo","co","uo","go","fo","po","mo","vo","yo","_o","xo","Co","bo","So","wo","To","Oo","ko","Do","Mo","Eo","Po","Ao","jo","Fo","Lo","Io","Ro","$o","Xo","ea","ia","ra","na","oa","aa","ha","la","ca","ua","da","ga","fa","pa","ma","va","ya","xa","Ca","ba","Sa","wa","Ta","Oa","ka","Da","Ma","Ea","Pa","Aa","ja","Fa","La","Ia","Ra","Ba","$a","Xa","useFabricCanvas","canvas","shallowRef","originalImage","isLoading","imageWidth","imageHeight","init","container","Canvas","fitToContainer","loadImage","source","url","revokeUrl","img","FabricImage","canvasWidth","canvasHeight","scale","exportImage","options","format","dataURL","blob","ext","dispose","useHistory","maxStates","states","currentIndex","isRestoring","canUndo","computed","canRedo","saveState","json","restoreState","index","undo","redo","clearHistory","useEditorState","activeTool","setTool","clearTool","useCrop","onAfterCrop","isCropping","cropRect","selectedRatio","startCrop","cancelCrop","cw","ch","rect","Rect","scaleX","newWidth","newHeight","setAspectRatio","applyCrop","left","top","width","height","useRotateFlip","onAfterTransform","rotation","flippedX","flippedY","rotate90","direction","delta","obj","cx","cy","objLeft","objTop","rad","setRotation","degrees","flipHorizontal","flipVertical","useFilters","backgroundImage","onAfterFilter","state","reactive","debounceTimer","applyFilters","list","filters","resetFilters","watch","commitFilters","useText","onAfterAdd","config","addText","text","IText","updateSelectedText","active","useDraw","onAfterDraw","enableDrawing","brush","PencilBrush","disableDrawing","useShapes","addShape","shape","Circle","Line","startX","endX","pathData","Path","useResize","onAfterResize","lockRatio","aspectRatio","initResize","setWidth","setHeight","applyResize","tmpCanvas","ctx","imgEl","resolve","resizedDataURL","MIN_ZOOM","MAX_ZOOM","useZoom","zoomLevel","setZoom","level","clamped","zoomIn","zoomOut","resetZoom","enableWheelZoom","opt","zoom","props","fabricCanvasRef","crop","rotateFlip","filterTool","textTool","drawTool","shapeTool","resizeTool","zoomTool","newTool","oldTool","onMounted","nextTick","_b","err","newSrc","resizeObserver","onKeydown","onBeforeUnmount","handleSave","result","onFilterUpdate","value","onTextUpdate","onDrawUpdate","onShapeUpdate","args","UndoIcon","RedoIcon","ZoomInIcon","ZoomOutIcon","CropPanel","RotateFlipPanel","FilterPanel","TextPanel","DrawPanel","ShapePanel","ResizePanel","FabricCanvas","EditorToolbar","dialogRef","isOpen","_Teleport","VueditImageEditor"],"mappings":"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","x_google_ignoreList":[31]}
|