@acorex/core 21.0.2-next.58 → 21.0.2-next.59
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/fesm2022/acorex-core-components.mjs +3 -3
- package/fesm2022/acorex-core-components.mjs.map +1 -1
- package/fesm2022/acorex-core-config.mjs +3 -3
- package/fesm2022/acorex-core-config.mjs.map +1 -1
- package/fesm2022/acorex-core-constants.mjs.map +1 -1
- package/fesm2022/acorex-core-date-time.mjs +25 -25
- package/fesm2022/acorex-core-date-time.mjs.map +1 -1
- package/fesm2022/acorex-core-events.mjs +3 -3
- package/fesm2022/acorex-core-events.mjs.map +1 -1
- package/fesm2022/acorex-core-file.mjs +37 -37
- package/fesm2022/acorex-core-file.mjs.map +1 -1
- package/fesm2022/acorex-core-format.mjs +19 -19
- package/fesm2022/acorex-core-format.mjs.map +1 -1
- package/fesm2022/acorex-core-full-screen.mjs +4 -4
- package/fesm2022/acorex-core-full-screen.mjs.map +1 -1
- package/fesm2022/acorex-core-icon.mjs +3 -3
- package/fesm2022/acorex-core-icon.mjs.map +1 -1
- package/fesm2022/acorex-core-image.mjs +3 -3
- package/fesm2022/acorex-core-image.mjs.map +1 -1
- package/fesm2022/acorex-core-locale.mjs +12 -12
- package/fesm2022/acorex-core-locale.mjs.map +1 -1
- package/fesm2022/acorex-core-memoize.mjs.map +1 -1
- package/fesm2022/acorex-core-network.mjs +4 -4
- package/fesm2022/acorex-core-network.mjs.map +1 -1
- package/fesm2022/acorex-core-pipes.mjs +3 -3
- package/fesm2022/acorex-core-pipes.mjs.map +1 -1
- package/fesm2022/acorex-core-platform.mjs +4 -4
- package/fesm2022/acorex-core-platform.mjs.map +1 -1
- package/fesm2022/acorex-core-storage.mjs +9 -9
- package/fesm2022/acorex-core-storage.mjs.map +1 -1
- package/fesm2022/acorex-core-translation.mjs +16 -16
- package/fesm2022/acorex-core-translation.mjs.map +1 -1
- package/fesm2022/acorex-core-utils.mjs +124 -7
- package/fesm2022/acorex-core-utils.mjs.map +1 -1
- package/fesm2022/acorex-core-validation.mjs +40 -40
- package/fesm2022/acorex-core-validation.mjs.map +1 -1
- package/fesm2022/acorex-core-z-index.mjs +3 -3
- package/fesm2022/acorex-core-z-index.mjs.map +1 -1
- package/fesm2022/acorex-core.mjs.map +1 -1
- package/{types/acorex-core-format.d.ts → format/index.d.ts} +2 -2
- package/package.json +24 -25
- package/{types/acorex-core-utils.d.ts → utils/index.d.ts} +28 -9
- package/{types/acorex-core-validation.d.ts → validation/index.d.ts} +10 -10
- /package/{types/acorex-core-components.d.ts → components/index.d.ts} +0 -0
- /package/{types/acorex-core-config.d.ts → config/index.d.ts} +0 -0
- /package/{types/acorex-core-constants.d.ts → constants/index.d.ts} +0 -0
- /package/{types/acorex-core-date-time.d.ts → date-time/index.d.ts} +0 -0
- /package/{types/acorex-core-events.d.ts → events/index.d.ts} +0 -0
- /package/{types/acorex-core-file.d.ts → file/index.d.ts} +0 -0
- /package/{types/acorex-core-full-screen.d.ts → full-screen/index.d.ts} +0 -0
- /package/{types/acorex-core-icon.d.ts → icon/index.d.ts} +0 -0
- /package/{types/acorex-core-image.d.ts → image/index.d.ts} +0 -0
- /package/{types/acorex-core.d.ts → index.d.ts} +0 -0
- /package/{types/acorex-core-locale.d.ts → locale/index.d.ts} +0 -0
- /package/{types/acorex-core-memoize.d.ts → memoize/index.d.ts} +0 -0
- /package/{types/acorex-core-network.d.ts → network/index.d.ts} +0 -0
- /package/{types/acorex-core-pipes.d.ts → pipes/index.d.ts} +0 -0
- /package/{types/acorex-core-platform.d.ts → platform/index.d.ts} +0 -0
- /package/{types/acorex-core-storage.d.ts → storage/index.d.ts} +0 -0
- /package/{types/acorex-core-translation.d.ts → translation/index.d.ts} +0 -0
- /package/{types/acorex-core-z-index.d.ts → z-index/index.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-core-utils.mjs","sources":["../../../../packages/core/utils/src/lib/color.utils.ts","../../../../packages/core/utils/src/lib/drawing.utils.ts","../../../../packages/core/utils/src/lib/execution.utils.ts","../../../../packages/core/utils/src/lib/html-utils.ts","../../../../packages/core/utils/src/lib/lifecycle-helpers.utils.ts","../../../../packages/core/utils/src/lib/string.utils.ts","../../../../packages/core/utils/src/acorex-core-utils.ts"],"sourcesContent":["export type AXColorMode = 'rgba' | 'hex' | 'hsla' | 'hsva' | null;\n\nimport tinycolor, { ColorInput } from 'tinycolor2';\nimport tinygradient, { Instance } from 'tinygradient-es';\n\nexport type AXColorFormat = ColorInput;\n\nexport class AXColorUtil {\n static to(color: AXColorFormat, mode: AXColorMode): AXColorFormat {\n const _color = tinycolor(color);\n switch (mode) {\n case 'rgba':\n return _color.toRgb();\n case 'hsla':\n return _color.toHsl();\n case 'hsva':\n return _color.toHsv();\n default:\n return _color.toHex();\n }\n }\n\n static toString(color: AXColorFormat, mode: AXColorMode = null): string {\n const _color = tinycolor(color);\n switch (mode) {\n case 'rgba':\n return _color.toRgbString();\n case 'hsla':\n return _color.toHslString();\n case 'hsva':\n return _color.toHsvString();\n\n case 'hex': {\n const rgba = _color.toRgb();\n return rgba.a != 1 ? _color.toHex8String() : _color.toHexString();\n }\n default: {\n if (typeof color == 'string') {\n if (color.toLowerCase().startsWith('#')) return this.toString(color, 'hex');\n else return this.toString(color, 'rgba');\n } else {\n return this.toString(color, 'rgba');\n }\n }\n }\n }\n\n static isValid(color: AXColorFormat): boolean {\n const _color = tinycolor(color);\n return _color.isValid();\n }\n\n static mix(baseColor: AXColorFormat, hex: AXColorFormat, percentage: number): string {\n return tinycolor.mix(baseColor, hex, percentage).toString('rgb');\n }\n\n static multiply(color1: AXColorFormat, color2: AXColorFormat): string {\n const rgb1 = tinycolor(color1).toRgb();\n const rgb2 = tinycolor(color2).toRgb();\n rgb1.b = Math.floor((rgb1.b * rgb2.b) / 255);\n rgb1.g = Math.floor((rgb1.g * rgb2.g) / 255);\n rgb1.r = Math.floor((rgb1.r * rgb2.r) / 255);\n return tinycolor('rgb ' + rgb1.r + ' ' + rgb1.g + ' ' + rgb1.b).toString('rgb');\n }\n\n static contrastToWhite(color: AXColorFormat): number {\n return tinycolor.readability('#fff', color);\n }\n\n static lighten(hex: AXColorFormat, percentage?: number) {\n return tinycolor(hex).lighten(percentage);\n }\n\n static darken(hex: AXColorFormat, percentage?: number) {\n return tinycolor(hex).darken(percentage);\n }\n\n static brighten(hex: AXColorFormat, percentage?: number) {\n return tinycolor(hex).brighten(percentage);\n }\n\n static saturate(hex: AXColorFormat, percentage?: number) {\n return tinycolor(hex).saturate(percentage);\n }\n\n static desaturate(hex: AXColorFormat) {\n return tinycolor(hex).getLuminance();\n }\n\n static equal(color1: AXColorFormat, color2: AXColorFormat): boolean {\n return tinycolor.equals(color1, color2);\n }\n\n static gradient(values: unknown[] | { color: unknown; pos: number }[]): Instance {\n return tinygradient([...values]);\n }\n\n static getLuminance(hex: AXColorFormat) {\n return tinycolor(hex).getLuminance();\n }\n\n static xyToRgb(vX, vY): string {\n vY = vY || 0.00000000001;\n const Y = 1;\n const X = (Y / vY) * vX;\n const Z = (Y / vY) * (1 - vX - vY);\n\n // Convert to RGB using Wide RGB D65 conversion.\n let rgb = [\n X * 1.656492 - Y * 0.354851 - Z * 0.255038,\n -X * 0.707196 + Y * 1.655397 + Z * 0.036152,\n X * 0.051713 - Y * 0.121364 + Z * 1.01153,\n ];\n\n // Apply reverse gamma correction.\n rgb = rgb.map((x) => (x <= 0.0031308 ? 12.92 * x : (1.0 + 0.055) * Math.pow(x, 1.0 / 2.4) - 0.055));\n\n // Bring all negative components to zero.\n rgb = rgb.map((x) => Math.max(0, x));\n\n // If one component is greater than 1, weight components by that value.\n const max = Math.max(...rgb);\n if (max > 1) {\n rgb = rgb.map((x) => x / max);\n }\n\n rgb = rgb.map((x) => Math.round(x * 255));\n\n return 'rgb(' + rgb.join(',') + ')';\n }\n\n static colorStringToHex(color) {\n // Check if the input is an RGBA color string\n const rgbaMatch = color.match(/^rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*([\\d.]+))?\\s*\\)$/i);\n if (rgbaMatch) {\n let [_, r, g, b, a] = rgbaMatch;\n r = parseInt(r, 10);\n g = parseInt(g, 10);\n b = parseInt(b, 10);\n a = a ? parseFloat(a) : 1;\n\n // Convert RGB to hex\n let hexColor = `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`;\n\n // Include alpha if present\n if (a < 1) {\n const alphaHex = Math.round(a * 255)\n .toString(16)\n .padStart(2, '0');\n hexColor += alphaHex;\n }\n\n return hexColor;\n }\n\n // Check if the input is a hex color string\n const hexMatch = color.match(/^#([0-9a-fA-F]{3}){1,2}$/);\n if (hexMatch) {\n return color;\n }\n\n throw new Error('Invalid color format');\n }\n\n static getRandomColor(): string {\n // Generate a random hex color\n return `#${Math.floor(Math.random() * 16777215).toString(16)}`;\n }\n}\n","export interface AXPoint {\n x: number;\n y: number;\n}\n\nexport interface AXBoundingClientRect {\n left?: number;\n top?: number;\n width?: number;\n height?: number;\n bottom?: number;\n right?: number;\n}\n// @dynamic\nexport class AXDrawingUtil {\n static collision(a: HTMLElement, b: HTMLElement): boolean {\n const ac = a.getBoundingClientRect();\n const bc = b.getBoundingClientRect();\n\n if (\n ac.left < bc.left + bc.width &&\n ac.left + ac.width > bc.left &&\n ac.top < bc.top + bc.height &&\n ac.top + ac.height > bc.top\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n static isInElementBound(pos: AXPoint, element: HTMLElement): boolean {\n const elBound = element.getBoundingClientRect();\n return AXDrawingUtil.isInRecPoint(pos, {\n left: elBound.x,\n width: elBound.width,\n top: elBound.y,\n height: elBound.height,\n });\n }\n\n static isInRecPoint(pos: AXPoint, rec: AXBoundingClientRect | any): boolean {\n return pos.x >= rec.left && pos.x <= rec.left + rec.width && pos.y >= rec.top && pos.y <= rec.top + rec.height;\n }\n\n static convertRemToPixels(rem: number): number {\n return rem * parseFloat(getComputedStyle(document.documentElement).fontSize);\n }\n}\n","/**\n * Blocks until a condition returns a value or the timeout is reached.\n * Useful for simulating sync behavior with cached async results.\n */\nexport function waitFor<T>(peekFn: () => T | null | undefined, loadFn: () => void, timeoutMs = 100): T | null {\n const end = Date.now() + timeoutMs;\n let result = peekFn();\n\n if (!result) {\n loadFn();\n while (!result && Date.now() < end) {\n result = peekFn();\n }\n }\n\n return result ?? null;\n}\n\n/**\n * Delays for a specific amount of time.\n */\nexport function delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n/**\n * Retries an async function until it succeeds or a max attempt count is reached.\n */\nexport async function retryUntil<T>(fn: () => Promise<T>, attempts = 3, delayMs = 100): Promise<T> {\n let lastError: any;\n for (let i = 0; i < attempts; i++) {\n try {\n return await fn();\n } catch (error) {\n lastError = error;\n if (i < attempts - 1) await delay(delayMs);\n }\n }\n throw lastError;\n}\n\n/**\n * Continuously polls a condition until it returns true or a timeout is reached.\n */\nexport async function pollUntil(condition: () => boolean, intervalMs = 100, timeoutMs = 2000): Promise<boolean> {\n const start = Date.now();\n return new Promise((resolve, reject) => {\n const check = () => {\n if (condition()) {\n resolve(true);\n } else if (Date.now() - start >= timeoutMs) {\n reject(new Error('pollUntil timeout'));\n } else {\n setTimeout(check, intervalMs);\n }\n };\n check();\n });\n}\n\n/**\n * Throttles an async function to ensure only one instance runs at a time.\n */\nexport function throttleAsync<T extends (...args: any[]) => Promise<any>>(fn: T): T {\n let pending: Promise<any> | null = null;\n return ((...args: any[]) => {\n if (!pending) {\n pending = fn(...args).finally(() => {\n pending = null;\n });\n }\n return pending;\n }) as T;\n}\n\n/**\n * Polls a condition with cancel support via AbortSignal.\n */\nexport async function pollUntilAbortable(\n condition: () => boolean,\n intervalMs = 100,\n timeoutMs = 2000,\n signal?: AbortSignal,\n): Promise<boolean> {\n const start = Date.now();\n return new Promise((resolve, reject) => {\n const check = () => {\n if (signal?.aborted) {\n return reject(new Error('pollUntil aborted'));\n }\n if (condition()) {\n resolve(true);\n } else if (Date.now() - start >= timeoutMs) {\n reject(new Error('pollUntil timeout'));\n } else {\n setTimeout(check, intervalMs);\n }\n };\n check();\n });\n}\n\n/**\n * Debounces an async function to run only after no calls are made within the wait window.\n */\nexport function debounceAsync<T extends (...args: any[]) => Promise<any>>(fn: T, waitMs: number): T {\n let timeout: ReturnType<typeof setTimeout>;\n let promise: Promise<any> | null = null;\n\n return ((...args: any[]) => {\n if (timeout) clearTimeout(timeout);\n\n promise = new Promise((resolve) => {\n timeout = setTimeout(() => {\n resolve(fn(...args));\n }, waitMs);\n });\n\n return promise;\n }) as T;\n}\n\n/**\n * Runs a list of fallback functions until one resolves without throwing.\n */\nexport async function fallbackChain<T>(tasks: Array<() => Promise<T>>): Promise<T> {\n let lastError;\n for (const task of tasks) {\n try {\n return await task();\n } catch (err) {\n lastError = err;\n }\n }\n throw lastError ?? new Error('All fallback tasks failed');\n}\n","import { isBrowser } from '@acorex/core/platform';\n\n/** ACoreX layout size classes applied on a host or container. */\nexport const AX_SIZE_CLASSES = ['ax-xs', 'ax-sm', 'ax-md', 'ax-lg', 'ax-xl'] as const;\n\nexport type AXSizeClass = (typeof AX_SIZE_CLASSES)[number];\n\n/** Resolved ACoreX size: the DOM node that carries the token and the token itself. */\nexport interface AXClosestAxSizeMatch {\n element: HTMLElement;\n sizeClass: AXSizeClass;\n}\n\nexport class AXHtmlUtil {\n static focusElement(element: HTMLElement): HTMLElement {\n const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map(\n (c) => c + ':not([tabindex=\"-1\"])',\n );\n const focusable = element.querySelector<HTMLElement>(list.join(', '));\n if (focusable) {\n focusable.focus();\n return focusable;\n }\n return null;\n }\n\n static blurElement(element: HTMLElement): HTMLElement {\n const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map(\n (c) => c + ':not([tabindex=\"-1\"])',\n );\n const focusable = element.querySelector<HTMLElement>(list.join(', '));\n if (focusable) {\n focusable.blur();\n return focusable;\n }\n return null;\n }\n\n static hasFocus(element: HTMLElement) {\n return element.matches(':focus-within') || element.matches(':focus');\n }\n\n static isRtl(element?: HTMLElement): boolean {\n if (!isBrowser()) {\n return false;\n }\n const docIsRtl = document.documentElement.dir === 'rtl';\n\n if (element) {\n const elementStyle = window.getComputedStyle(element);\n const elementDir = elementStyle.getPropertyValue('direction');\n if (elementDir === 'rtl') {\n return true;\n }\n if (elementDir === 'ltr') {\n return false;\n }\n if (element.classList.contains('ax-rtl')) {\n return true;\n }\n }\n return docIsRtl;\n }\n\n static hasDark(element: HTMLElement): boolean {\n if (isBrowser()) {\n return element.closest('.dark') ? true : false;\n }\n return false;\n }\n /**\n * Helper function to check if an element is scrollable\n */\n static isScrollable(element: HTMLElement): boolean {\n const overflowY = window.getComputedStyle(element).overflowY;\n return (overflowY === 'auto' || overflowY === 'scroll') && element.scrollHeight > element.clientHeight;\n }\n\n /**\n * Utility function to find scrollable parent elements\n */\n static getScrollableParents(element: HTMLElement): HTMLElement[] {\n const parents: HTMLElement[] = [];\n let currentElement: HTMLElement | null = element;\n\n while (currentElement) {\n if (AXHtmlUtil.isScrollable(currentElement)) {\n parents.push(currentElement);\n }\n currentElement = currentElement.parentElement;\n }\n\n return parents;\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\nexport function AXAutoUnsubscriber() {\n return function (constructor) {\n const orig = constructor.prototype.ngOnDestroy;\n constructor.prototype.ngOnDestroy = function () {\n for (const prop in this) {\n const property = this[prop];\n if (typeof property.subscribe === 'function') {\n property.unsubscribe();\n }\n }\n orig.apply();\n };\n };\n}\n\n@Injectable()\nexport class AXUnsubscriber implements OnDestroy {\n private readonly _destroy$ = new Subject<void>();\n\n public readonly takeUntilDestroy = <T>(origin: Observable<T> | Subject<T>): Observable<T> | Subject<T> =>\n origin.pipe(takeUntil(this._destroy$));\n\n public unsubscribe(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public ngOnDestroy(): void {\n this.unsubscribe();\n }\n}\n","export function getWordBoundsAtPosition(str: string, position: number): { start: number; end: number } {\n const isSpace = (c) => /[^a-zA-Z0-9]+/i.test(c);\n let start = position - 1;\n\n while (start >= 0 && !isSpace(str[start])) {\n start -= 1;\n }\n start = Math.max(0, start + 1);\n const leftSideString: any = str.slice(start).match(/[a-zA-Z0-9]+/i);\n start += leftSideString.index;\n let end = start + leftSideString[0].length;\n return {\n start,\n end,\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-core-utils.mjs","sources":["../tmp-esm2022/utils/lib/color.utils.js","../tmp-esm2022/utils/lib/drawing.utils.js","../tmp-esm2022/utils/lib/execution.utils.js","../tmp-esm2022/utils/lib/highlight.service.js","../tmp-esm2022/utils/lib/html-utils.js","../tmp-esm2022/utils/lib/lifecycle-helpers.utils.js","../tmp-esm2022/utils/lib/string.utils.js","../tmp-esm2022/utils/acorex-core-utils.js"],"sourcesContent":["import tinycolor from 'tinycolor2';\nimport tinygradient from 'tinygradient-es';\nexport class AXColorUtil {\n static to(color, mode) {\n const _color = tinycolor(color);\n switch (mode) {\n case 'rgba':\n return _color.toRgb();\n case 'hsla':\n return _color.toHsl();\n case 'hsva':\n return _color.toHsv();\n default:\n return _color.toHex();\n }\n }\n static toString(color, mode = null) {\n const _color = tinycolor(color);\n switch (mode) {\n case 'rgba':\n return _color.toRgbString();\n case 'hsla':\n return _color.toHslString();\n case 'hsva':\n return _color.toHsvString();\n case 'hex': {\n const rgba = _color.toRgb();\n return rgba.a != 1 ? _color.toHex8String() : _color.toHexString();\n }\n default: {\n if (typeof color == 'string') {\n if (color.toLowerCase().startsWith('#'))\n return this.toString(color, 'hex');\n else\n return this.toString(color, 'rgba');\n }\n else {\n return this.toString(color, 'rgba');\n }\n }\n }\n }\n static isValid(color) {\n const _color = tinycolor(color);\n return _color.isValid();\n }\n static mix(baseColor, hex, percentage) {\n return tinycolor.mix(baseColor, hex, percentage).toString('rgb');\n }\n static multiply(color1, color2) {\n const rgb1 = tinycolor(color1).toRgb();\n const rgb2 = tinycolor(color2).toRgb();\n rgb1.b = Math.floor((rgb1.b * rgb2.b) / 255);\n rgb1.g = Math.floor((rgb1.g * rgb2.g) / 255);\n rgb1.r = Math.floor((rgb1.r * rgb2.r) / 255);\n return tinycolor('rgb ' + rgb1.r + ' ' + rgb1.g + ' ' + rgb1.b).toString('rgb');\n }\n static contrastToWhite(color) {\n return tinycolor.readability('#fff', color);\n }\n static lighten(hex, percentage) {\n return tinycolor(hex).lighten(percentage);\n }\n static darken(hex, percentage) {\n return tinycolor(hex).darken(percentage);\n }\n static brighten(hex, percentage) {\n return tinycolor(hex).brighten(percentage);\n }\n static saturate(hex, percentage) {\n return tinycolor(hex).saturate(percentage);\n }\n static desaturate(hex) {\n return tinycolor(hex).getLuminance();\n }\n static equal(color1, color2) {\n return tinycolor.equals(color1, color2);\n }\n static gradient(values) {\n return tinygradient([...values]);\n }\n static getLuminance(hex) {\n return tinycolor(hex).getLuminance();\n }\n static xyToRgb(vX, vY) {\n vY = vY || 0.00000000001;\n const Y = 1;\n const X = (Y / vY) * vX;\n const Z = (Y / vY) * (1 - vX - vY);\n // Convert to RGB using Wide RGB D65 conversion.\n let rgb = [\n X * 1.656492 - Y * 0.354851 - Z * 0.255038,\n -X * 0.707196 + Y * 1.655397 + Z * 0.036152,\n X * 0.051713 - Y * 0.121364 + Z * 1.01153,\n ];\n // Apply reverse gamma correction.\n rgb = rgb.map((x) => (x <= 0.0031308 ? 12.92 * x : (1.0 + 0.055) * Math.pow(x, 1.0 / 2.4) - 0.055));\n // Bring all negative components to zero.\n rgb = rgb.map((x) => Math.max(0, x));\n // If one component is greater than 1, weight components by that value.\n const max = Math.max(...rgb);\n if (max > 1) {\n rgb = rgb.map((x) => x / max);\n }\n rgb = rgb.map((x) => Math.round(x * 255));\n return 'rgb(' + rgb.join(',') + ')';\n }\n static colorStringToHex(color) {\n // Check if the input is an RGBA color string\n const rgbaMatch = color.match(/^rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*([\\d.]+))?\\s*\\)$/i);\n if (rgbaMatch) {\n let [_, r, g, b, a] = rgbaMatch;\n r = parseInt(r, 10);\n g = parseInt(g, 10);\n b = parseInt(b, 10);\n a = a ? parseFloat(a) : 1;\n // Convert RGB to hex\n let hexColor = `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`;\n // Include alpha if present\n if (a < 1) {\n const alphaHex = Math.round(a * 255)\n .toString(16)\n .padStart(2, '0');\n hexColor += alphaHex;\n }\n return hexColor;\n }\n // Check if the input is a hex color string\n const hexMatch = color.match(/^#([0-9a-fA-F]{3}){1,2}$/);\n if (hexMatch) {\n return color;\n }\n throw new Error('Invalid color format');\n }\n static getRandomColor() {\n // Generate a random hex color\n return `#${Math.floor(Math.random() * 16777215).toString(16)}`;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3V0aWxzL3NyYy9saWIvY29sb3IudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxTQUF5QixNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLFlBQTBCLE1BQU0saUJBQWlCLENBQUM7QUFJekQsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFvQixFQUFFLElBQWlCO1FBQy9DLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxNQUFNO2dCQUNULE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLEtBQUssTUFBTTtnQkFDVCxPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEI7Z0JBQ0UsT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQW9CLEVBQUUsT0FBb0IsSUFBSTtRQUM1RCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssTUFBTTtnQkFDVCxPQUFPLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUIsS0FBSyxNQUFNO2dCQUNULE9BQU8sTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRTlCLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDWCxNQUFNLElBQUksR0FBRyxNQUFN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Q0FBQztRQUNsQixDQUFDO1FBRUQsMkNBQTJDO1FBQzNDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUN6RCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYztRQUNuQiw4QkFBOEI7UUFDOUIsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ2pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFYQ29sb3JNb2RlID0gJ3JnYmEnIHwgJ2hleCcgfCAnaHNsYScgfCAnaHN2YScgfCBudWxsO1xuXG5pbXBvcnQgdGlueWNvbG9yLCB7IENvbG9ySW5wdXQgfSBmcm9tICd0aW55Y29sb3IyJztcbmltcG9ydCB0aW55Z3JhZGllbnQsIHsgSW5zdGFuY2UgfSBmcm9tICd0aW55Z3JhZGllbnQtZXMnO1xuXG5leHBvcnQgdHlwZSBBWENvbG9yRm9ybWF0ID0gQ29sb3JJbnB1dDtcblxuZXhwb3J0IGNsYXNzIEFYQ29sb3JVdGlsIHtcbiAgc3RhdGljIHRvKGNvbG9yOiBBWENvbG9yRm9ybWF0LCBtb2RlOiBBWENvbG9yTW9kZSk6IEFYQ29sb3JGb3JtYXQge1xuICAgIGNvbnN0IF9jb2xvciA9IHRpbnljb2xvcihjb2xvcik7XG4gICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICBjYXNlICdyZ2JhJzpcbiAgICAgICAgcmV0dXJuIF9jb2xvci50b1JnYigpO1xuICAgICAgY2FzZSAnaHNsYSc6XG4gICAgICAgIHJldHVybiBfY29sb3IudG9Ic2woKTtcbiAgICAgIGNhc2UgJ2hzdmEnOlxuICAgICAgICByZXR1cm4gX2NvbG9yLnRvSHN2KCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gX2NvbG9yLnRvSGV4KCk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIHRvU3RyaW5nKGNvbG9yOiBBWENvbG9yRm9ybWF0LCBtb2RlOiBBWENvbG9yTW9kZSA9IG51bGwpOiBzdHJpbmcge1xuICAgIGNvbnN0IF9jb2xvciA9IHRpbnljb2xvcihjb2xvcik7XG4gICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICBjYXNlICdyZ2JhJzpcbiAgICAgICAgcmV0dXJuIF9jb2xvci50b1JnYlN0cmluZygpO1xuICAgICAgY2FzZSAnaHNsYSc6XG4gICAgICAgIHJldHVybiBfY29sb3IudG9Ic2xTdHJpbmcoKTtcbiAgICAgIGNhc2UgJ2hzdmEnOlxuICAgICAgICByZXR1cm4gX2NvbG9yLnRvSHN2U3RyaW5nKCk7XG5cbiAgICAgIGNhc2UgJ2hleCc6IHtcbiAgICAgICAgY29uc3QgcmdiYSA9IF9jb2xvci50b1JnYigpO1xuICAgICAgICByZXR1cm4gcmdiYS5hICE9IDEgPyBfY29sb3IudG9IZXg4U3RyaW5nKCkgOiBfY29sb3IudG9IZXhTdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb2xvciA9PSAnc3RyaW5nJykge1xuICAgICAgICAgIGlmIChjb2xvci50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoJyMnKSkgcmV0dXJuIHRoaXMudG9TdHJpbmcoY29sb3IsICdoZXgnKTtcbiAgICAgICAgICBlbHNlIHJldHVybiB0aGlzLnRvU3RyaW5nKGNvbG9yLCAncmdiYScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKGNvbG9yLCAncmdiYScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGlzVmFsaWQoY29sb3I6IEFYQ29sb3JGb3JtYXQpOiBib29sZWFuIHtcbiAgICBjb25zdCBfY29sb3IgPSB0aW55Y29sb3IoY29sb3IpO1xuICAgIHJldHVybiBfY29sb3IuaXNWYWxpZCgpO1xuICB9XG5cbiAgc3RhdGljIG1peChiYXNlQ29sb3I6IEFYQ29sb3JGb3JtYXQsIGhleDogQVhDb2xvckZvcm1hdCwgcGVyY2VudGFnZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGlueWNvbG9yLm1peChiYXNlQ29sb3IsIGhleCwgcGVyY2VudGFnZSkudG9TdHJpbmcoJ3JnYicpO1xuICB9XG5cbiAgc3RhdGljIG11bHRpcGx5KGNvbG9yMTogQVhDb2xvckZvcm1hdCwgY29sb3IyOiBBWENvbG9yRm9ybWF0KTogc3RyaW5nIHtcbiAgICBjb25zdCByZ2IxID0gdGlueWNvbG9yKGNvbG9yMSkudG9SZ2IoKTtcbiAgICBjb25zdCByZ2IyID0gdGlueWNvbG9yKGNvbG9yMikudG9SZ2IoKTtcbiAgICByZ2IxLmIgPSBNYXRoLmZsb29yKChyZ2IxLmIgKiByZ2IyLmIpIC8gMjU1KTtcbiAgICByZ2IxLmcgPSBNYXRoLmZsb29yKChyZ2IxLmcgKiByZ2IyLmcpIC8gMjU1KTtcbiAgICByZ2IxLnIgPSBNYXRoLmZsb29yKChyZ2IxLnIgKiByZ2IyLnIpIC8gMjU1KTtcbiAgICByZXR1cm4gdGlueWNvbG9yKCdyZ2IgJyArIHJnYjEuciArICcgJyArIHJnYjEuZyArICcgJyArIHJnYjEuYikudG9TdHJpbmcoJ3JnYicpO1xuICB9XG5cbiAgc3RhdGljIGNvbnRyYXN0VG9XaGl0ZShjb2xvcjogQVhDb2xvckZvcm1hdCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRpbnljb2xvci5yZWFkYWJpbGl0eSgnI2ZmZicsIGNvbG9yKTtcbiAgfVxuXG4gIHN0YXRpYyBsaWdodGVuKGhleDogQVhDb2xvckZvcm1hdCwgcGVyY2VudGFnZT86IG51bWJlcikge1xuICAgIHJldHVybiB0aW55Y29sb3IoaGV4KS5saWdodGVuKHBlcmNlbnRhZ2UpO1xuICB9XG5cbiAgc3RhdGljIGRhcmtlbihoZXg6IEFYQ29sb3JGb3JtYXQsIHBlcmNlbnRhZ2U/OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGlueWNvbG9yKGhleCkuZGFya2VuKHBlcmNlbnRhZ2UpO1xuICB9XG5cbiAgc3RhdGljIGJyaWdodGVuKGhleDogQVhDb2xvckZvcm1hdCwgcGVyY2VudGFnZT86IG51bWJlcikge1xuICAgIHJldHVybiB0aW55Y29sb3IoaGV4KS5icmlnaHRlbihwZXJjZW50YWdlKTtcbiAgfVxuXG4gIHN0YXRpYyBzYXR1cmF0ZShoZXg6IEFYQ29sb3JGb3JtYXQsIHBlcmNlbnRhZ2U/OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGlueWNvbG9yKGhleCkuc2F0dXJhdGUocGVyY2VudGFnZSk7XG4gIH1cblxuICBzdGF0aWMgZGVzYXR1cmF0ZShoZXg6IEFYQ29sb3JGb3JtYXQpIHtcbiAgICByZXR1cm4gdGlueWNvbG9yKGhleCkuZ2V0THVtaW5hbmNlKCk7XG4gIH1cblxuICBzdGF0aWMgZXF1YWwoY29sb3IxOiBBWENvbG9yRm9ybWF0LCBjb2xvcjI6IEFYQ29sb3JGb3JtYXQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGlueWNvbG9yLmVxdWFscyhjb2xvcjEsIGNvbG9yMik7XG4gIH1cblxuICBzdGF0aWMgZ3JhZGllbnQodmFsdWVzOiB1bmtub3duW10gfCB7IGNvbG9yOiB1bmtub3duOyBwb3M6IG51bWJlciB9W10pOiBJbnN0YW5jZSB7XG4gICAgcmV0dXJuIHRpbnlncmFkaWVudChbLi4udmFsdWVzXSk7XG4gIH1cblxuICBzdGF0aWMgZ2V0THVtaW5hbmNlKGhleDogQVhDb2xvckZvcm1hdCkge1xuICAgIHJldHVybiB0aW55Y29sb3IoaGV4KS5nZXRMdW1pbmFuY2UoKTtcbiAgfVxuXG4gIHN0YXRpYyB4eVRvUmdiKHZYLCB2WSk6IHN0cmluZyB7XG4gICAgdlkgPSB2WSB8fCAwLjAwMDAwMDAwMDAxO1xuICAgIGNvbnN0IFkgPSAxO1xuICAgIGNvbnN0IFggPSAoWSAvIHZZKSAqIHZYO1xuICAgIGNvbnN0IFogPSAoWSAvIHZZKSAqICgxIC0gdlggLSB2WSk7XG5cbiAgICAvLyBDb252ZXJ0IHRvIFJHQiB1c2luZyBXaWRlIFJHQiBENjUgY29udmVyc2lvbi5cbiAgICBsZXQgcmdiID0gW1xuICAgICAgWCAqIDEuNjU2NDkyIC0gWSAqIDAuMzU0ODUxIC0gWiAqIDAuMjU1MDM4LFxuICAgICAgLVggKiAwLjcwNzE5NiArIFkgKiAxLjY1NTM5NyArIFogKiAwLjAzNjE1MixcbiAgICAgIFggKiAwLjA1MTcxMyAtIFkgKiAwLjEyMTM2NCArIFogKiAxLjAxMTUzLFxuICAgIF07XG5cbiAgICAvLyBBcHBseSByZXZlcnNlIGdhbW1hIGNvcnJlY3Rpb24uXG4gICAgcmdiID0gcmdiLm1hcCgoeCkgPT4gKHggPD0gMC4wMDMxMzA4ID8gMTIuOTIgKiB4IDogKDEuMCArIDAuMDU1KSAqIE1hdGgucG93KHgsIDEuMCAvIDIuNCkgLSAwLjA1NSkpO1xuXG4gICAgLy8gQnJpbmcgYWxsIG5lZ2F0aXZlIGNvbXBvbmVudHMgdG8gemVyby5cbiAgICByZ2IgPSByZ2IubWFwKCh4KSA9PiBNYXRoLm1heCgwLCB4KSk7XG5cbiAgICAvLyBJZiBvbmUgY29tcG9uZW50IGlzIGdyZWF0ZXIgdGhhbiAxLCB3ZWlnaHQgY29tcG9uZW50cyBieSB0aGF0IHZhbHVlLlxuICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KC4uLnJnYik7XG4gICAgaWYgKG1heCA+IDEpIHtcbiAgICAgIHJnYiA9IHJnYi5tYXAoKHgpID0+IHggLyBtYXgpO1xuICAgIH1cblxuICAgIHJnYiA9IHJnYi5tYXAoKHgpID0+IE1hdGgucm91bmQoeCAqIDI1NSkpO1xuXG4gICAgcmV0dXJuICdyZ2IoJyArIHJnYi5qb2luKCcsJykgKyAnKSc7XG4gIH1cblxuICBzdGF0aWMgY29sb3JTdHJpbmdUb0hleChjb2xvcikge1xuICAgIC8vIENoZWNrIGlmIHRoZSBpbnB1dCBpcyBhbiBSR0JBIGNvbG9yIHN0cmluZ1xuICAgIGNvbnN0IHJnYmFNYXRjaCA9IGNvbG9yLm1hdGNoKC9ecmdiYT9cXChcXHMqKFxcZCspXFxzKixcXHMqKFxcZCspXFxzKixcXHMqKFxcZCspXFxzKig/OixcXHMqKFtcXGQuXSspKT9cXHMqXFwpJC9pKTtcbiAgICBpZiAocmdiYU1hdGNoKSB7XG4gICAgICBsZXQgW18sIHIsIGcsIGIsIGFdID0gcmdiYU1hdGNoO1xuICAgICAgciA9IHBhcnNlSW50KHIsIDEwKTtcbiAgICAgIGcgPSBwYXJzZUludChnLCAxMCk7XG4gICAgICBiID0gcGFyc2VJbnQoYiwgMTApO1xuICAgICAgYSA9IGEgPyBwYXJzZUZsb2F0KGEpIDogMTtcblxuICAgICAgLy8gQ29udmVydCBSR0IgdG8gaGV4XG4gICAgICBsZXQgaGV4Q29sb3IgPSBgIyR7KCgxIDw8IDI0KSArIChyIDw8IDE2KSArIChnIDw8IDgpICsgYikudG9TdHJpbmcoMTYpLnNsaWNlKDEpfWA7XG5cbiAgICAgIC8vIEluY2x1ZGUgYWxwaGEgaWYgcHJlc2VudFxuICAgICAgaWYgKGEgPCAxKSB7XG4gICAgICAgIGNvbnN0IGFscGhhSGV4ID0gTWF0aC5yb3VuZChhICogMjU1KVxuICAgICAgICAgIC50b1N0cmluZygxNilcbiAgICAgICAgICAucGFkU3RhcnQoMiwgJzAnKTtcbiAgICAgICAgaGV4Q29sb3IgKz0gYWxwaGFIZXg7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBoZXhDb2xvcjtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgaW5wdXQgaXMgYSBoZXggY29sb3Igc3RyaW5nXG4gICAgY29uc3QgaGV4TWF0Y2ggPSBjb2xvci5tYXRjaCgvXiMoWzAtOWEtZkEtRl17M30pezEsMn0kLyk7XG4gICAgaWYgKGhleE1hdGNoKSB7XG4gICAgICByZXR1cm4gY29sb3I7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbG9yIGZvcm1hdCcpO1xuICB9XG5cbiAgc3RhdGljIGdldFJhbmRvbUNvbG9yKCk6IHN0cmluZyB7XG4gICAgLy8gR2VuZXJhdGUgYSByYW5kb20gaGV4IGNvbG9yXG4gICAgcmV0dXJuIGAjJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxNjc3NzIxNSkudG9TdHJpbmcoMTYpfWA7XG4gIH1cbn1cbiJdfQ==","// @dynamic\nexport class AXDrawingUtil {\n static collision(a, b) {\n const ac = a.getBoundingClientRect();\n const bc = b.getBoundingClientRect();\n if (ac.left < bc.left + bc.width &&\n ac.left + ac.width > bc.left &&\n ac.top < bc.top + bc.height &&\n ac.top + ac.height > bc.top) {\n return true;\n }\n else {\n return false;\n }\n }\n static isInElementBound(pos, element) {\n const elBound = element.getBoundingClientRect();\n return AXDrawingUtil.isInRecPoint(pos, {\n left: elBound.x,\n width: elBound.width,\n top: elBound.y,\n height: elBound.height,\n });\n }\n static isInRecPoint(pos, rec) {\n return pos.x >= rec.left && pos.x <= rec.left + rec.width && pos.y >= rec.top && pos.y <= rec.top + rec.height;\n }\n static convertRemToPixels(rem) {\n return rem * parseFloat(getComputedStyle(document.documentElement).fontSize);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2luZy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvdXRpbHMvc3JjL2xpYi9kcmF3aW5nLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLFdBQVc7QUFDWCxNQUFNLE9BQU8sYUFBYTtJQUN4QixNQUFNLENBQUMsU0FBUyxDQUFDLENBQWMsRUFBRSxDQUFjO1FBQzdDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRXJDLElBQ0UsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxLQUFLO1lBQzVCLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSTtZQUM1QixFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU07WUFDM0IsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQzNCLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFZLEVBQUUsT0FBb0I7UUFDeEQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDaEQsT0FBTyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRTtZQUNyQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDZixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2QsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQVksRUFBRSxHQUErQjtRQUMvRCxPQUFPLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDakgsQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFXO1FBQ25DLE9BQU8sR0FBRyxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0UsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBWFBvaW50IHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhCb3VuZGluZ0NsaWVudFJlY3Qge1xuICBsZWZ0PzogbnVtYmVyO1xuICB0b3A/OiBudW1iZXI7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIGJvdHRvbT86IG51bWJlcjtcbiAgcmlnaHQ/OiBudW1iZXI7XG59XG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIEFYRHJhd2luZ1V0aWwge1xuICBzdGF0aWMgY29sbGlzaW9uKGE6IEhUTUxFbGVtZW50LCBiOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGFjID0gYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBiYyA9IGIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBpZiAoXG4gICAgICBhYy5sZWZ0IDwgYmMubGVmdCArIGJjLndpZHRoICYmXG4gICAgICBhYy5sZWZ0ICsgYWMud2lkdGggPiBiYy5sZWZ0ICYmXG4gICAgICBhYy50b3AgPCBiYy50b3AgKyBiYy5oZWlnaHQgJiZcbiAgICAgIGFjLnRvcCArIGFjLmhlaWdodCA+IGJjLnRvcFxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgaXNJbkVsZW1lbnRCb3VuZChwb3M6IEFYUG9pbnQsIGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgZWxCb3VuZCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgcmV0dXJuIEFYRHJhd2luZ1V0aWwuaXNJblJlY1BvaW50KHBvcywge1xuICAgICAgbGVmdDogZWxCb3VuZC54LFxuICAgICAgd2lkdGg6IGVsQm91bmQud2lkdGgsXG4gICAgICB0b3A6IGVsQm91bmQueSxcbiAgICAgIGhlaWdodDogZWxCb3VuZC5oZWlnaHQsXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgaXNJblJlY1BvaW50KHBvczogQVhQb2ludCwgcmVjOiBBWEJvdW5kaW5nQ2xpZW50UmVjdCB8IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwb3MueCA+PSByZWMubGVmdCAmJiBwb3MueCA8PSByZWMubGVmdCArIHJlYy53aWR0aCAmJiBwb3MueSA+PSByZWMudG9wICYmIHBvcy55IDw9IHJlYy50b3AgKyByZWMuaGVpZ2h0O1xuICB9XG5cbiAgc3RhdGljIGNvbnZlcnRSZW1Ub1BpeGVscyhyZW06IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHJlbSAqIHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmZvbnRTaXplKTtcbiAgfVxufVxuIl19","/**\n * Blocks until a condition returns a value or the timeout is reached.\n * Useful for simulating sync behavior with cached async results.\n */\nexport function waitFor(peekFn, loadFn, timeoutMs = 100) {\n const end = Date.now() + timeoutMs;\n let result = peekFn();\n if (!result) {\n loadFn();\n while (!result && Date.now() < end) {\n result = peekFn();\n }\n }\n return result ?? null;\n}\n/**\n * Delays for a specific amount of time.\n */\nexport function delay(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n/**\n * Retries an async function until it succeeds or a max attempt count is reached.\n */\nexport async function retryUntil(fn, attempts = 3, delayMs = 100) {\n let lastError;\n for (let i = 0; i < attempts; i++) {\n try {\n return await fn();\n }\n catch (error) {\n lastError = error;\n if (i < attempts - 1)\n await delay(delayMs);\n }\n }\n throw lastError;\n}\n/**\n * Continuously polls a condition until it returns true or a timeout is reached.\n */\nexport async function pollUntil(condition, intervalMs = 100, timeoutMs = 2000) {\n const start = Date.now();\n return new Promise((resolve, reject) => {\n const check = () => {\n if (condition()) {\n resolve(true);\n }\n else if (Date.now() - start >= timeoutMs) {\n reject(new Error('pollUntil timeout'));\n }\n else {\n setTimeout(check, intervalMs);\n }\n };\n check();\n });\n}\n/**\n * Throttles an async function to ensure only one instance runs at a time.\n */\nexport function throttleAsync(fn) {\n let pending = null;\n return ((...args) => {\n if (!pending) {\n pending = fn(...args).finally(() => {\n pending = null;\n });\n }\n return pending;\n });\n}\n/**\n * Polls a condition with cancel support via AbortSignal.\n */\nexport async function pollUntilAbortable(condition, intervalMs = 100, timeoutMs = 2000, signal) {\n const start = Date.now();\n return new Promise((resolve, reject) => {\n const check = () => {\n if (signal?.aborted) {\n return reject(new Error('pollUntil aborted'));\n }\n if (condition()) {\n resolve(true);\n }\n else if (Date.now() - start >= timeoutMs) {\n reject(new Error('pollUntil timeout'));\n }\n else {\n setTimeout(check, intervalMs);\n }\n };\n check();\n });\n}\n/**\n * Debounces an async function to run only after no calls are made within the wait window.\n */\nexport function debounceAsync(fn, waitMs) {\n let timeout;\n let promise = null;\n return ((...args) => {\n if (timeout)\n clearTimeout(timeout);\n promise = new Promise((resolve) => {\n timeout = setTimeout(() => {\n resolve(fn(...args));\n }, waitMs);\n });\n return promise;\n });\n}\n/**\n * Runs a list of fallback functions until one resolves without throwing.\n */\nexport async function fallbackChain(tasks) {\n let lastError;\n for (const task of tasks) {\n try {\n return await task();\n }\n catch (err) {\n lastError = err;\n }\n }\n throw lastError ?? new Error('All fallback tasks failed');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS91dGlscy9zcmMvbGliL2V4ZWN1dGlvbi51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFJLE1BQWtDLEVBQUUsTUFBa0IsRUFBRSxTQUFTLEdBQUcsR0FBRztJQUNoRyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO0lBQ25DLElBQUksTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBRXRCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE1BQU0sRUFBRSxDQUFDO1FBQ1QsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDbkMsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLElBQUksSUFBSSxDQUFDO0FBQ3hCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsRUFBVTtJQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVLENBQUksRUFBb0IsRUFBRSxRQUFRLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxHQUFHO0lBQ25GLElBQUksU0FBYyxDQUFDO0lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sRUFB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N0YsSUFBSSxPQUFzQyxDQUFDO0lBQzNDLElBQUksT0FBTyxHQUF3QixJQUFJLENBQUM7SUFFeEMsT0FBTyxDQUFDLENBQUMsR0FBRyxJQUFXLEVBQUUsRUFBRTtRQUN6QixJQUFJLE9BQU87WUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkMsT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDaEMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hCLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFNLENBQUM7QUFDVixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FBSSxLQUE4QjtJQUNuRSxJQUFJLFNBQVMsQ0FBQztJQUNkLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsU0FBUyxHQUFHLEdBQUcsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sU0FBUyxJQUFJLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQmxvY2tzIHVudGlsIGEgY29uZGl0aW9uIHJldHVybnMgYSB2YWx1ZSBvciB0aGUgdGltZW91dCBpcyByZWFjaGVkLlxuICogVXNlZnVsIGZvciBzaW11bGF0aW5nIHN5bmMgYmVoYXZpb3Igd2l0aCBjYWNoZWQgYXN5bmMgcmVzdWx0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdhaXRGb3I8VD4ocGVla0ZuOiAoKSA9PiBUIHwgbnVsbCB8IHVuZGVmaW5lZCwgbG9hZEZuOiAoKSA9PiB2b2lkLCB0aW1lb3V0TXMgPSAxMDApOiBUIHwgbnVsbCB7XG4gIGNvbnN0IGVuZCA9IERhdGUubm93KCkgKyB0aW1lb3V0TXM7XG4gIGxldCByZXN1bHQgPSBwZWVrRm4oKTtcblxuICBpZiAoIXJlc3VsdCkge1xuICAgIGxvYWRGbigpO1xuICAgIHdoaWxlICghcmVzdWx0ICYmIERhdGUubm93KCkgPCBlbmQpIHtcbiAgICAgIHJlc3VsdCA9IHBlZWtGbigpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQgPz8gbnVsbDtcbn1cblxuLyoqXG4gKiBEZWxheXMgZm9yIGEgc3BlY2lmaWMgYW1vdW50IG9mIHRpbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWxheShtczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xufVxuXG4vKipcbiAqIFJldHJpZXMgYW4gYXN5bmMgZnVuY3Rpb24gdW50aWwgaXQgc3VjY2VlZHMgb3IgYSBtYXggYXR0ZW1wdCBjb3VudCBpcyByZWFjaGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV0cnlVbnRpbDxUPihmbjogKCkgPT4gUHJvbWlzZTxUPiwgYXR0ZW1wdHMgPSAzLCBkZWxheU1zID0gMTAwKTogUHJvbWlzZTxUPiB7XG4gIGxldCBsYXN0RXJyb3I6IGFueTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhdHRlbXB0czsgaSsrKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBmbigpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsYXN0RXJyb3IgPSBlcnJvcjtcbiAgICAgIGlmIChpIDwgYXR0ZW1wdHMgLSAxKSBhd2FpdCBkZWxheShkZWxheU1zKTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbGFzdEVycm9yO1xufVxuXG4vKipcbiAqIENvbnRpbnVvdXNseSBwb2xscyBhIGNvbmRpdGlvbiB1bnRpbCBpdCByZXR1cm5zIHRydWUgb3IgYSB0aW1lb3V0IGlzIHJlYWNoZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwb2xsVW50aWwoY29uZGl0aW9uOiAoKSA9PiBib29sZWFuLCBpbnRlcnZhbE1zID0gMTAwLCB0aW1lb3V0TXMgPSAyMDAwKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBjaGVjayA9ICgpID0+IHtcbiAgICAgIGlmIChjb25kaXRpb24oKSkge1xuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgfSBlbHNlIGlmIChEYXRlLm5vdygpIC0gc3RhcnQgPj0gdGltZW91dE1zKSB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ3BvbGxVbnRpbCB0aW1lb3V0JykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0VGltZW91dChjaGVjaywgaW50ZXJ2YWxNcyk7XG4gICAgICB9XG4gICAgfTtcbiAgICBjaGVjaygpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBUaHJvdHRsZXMgYW4gYXN5bmMgZnVuY3Rpb24gdG8gZW5zdXJlIG9ubHkgb25lIGluc3RhbmNlIHJ1bnMgYXQgYSB0aW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3R0bGVBc3luYzxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBQcm9taXNlPGFueT4+KGZuOiBUKTogVCB7XG4gIGxldCBwZW5kaW5nOiBQcm9taXNlPGFueT4gfCBudWxsID0gbnVsbDtcbiAgcmV0dXJuICgoLi4uYXJnczogYW55W10pID0+IHtcbiAgICBpZiAoIXBlbmRpbmcpIHtcbiAgICAgIHBlbmRpbmcgPSBmbiguLi5hcmdzKS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgcGVuZGluZyA9IG51bGw7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHBlbmRpbmc7XG4gIH0pIGFzIFQ7XG59XG5cbi8qKlxuICogUG9sbHMgYSBjb25kaXRpb24gd2l0aCBjYW5jZWwgc3VwcG9ydCB2aWEgQWJvcnRTaWduYWwuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwb2xsVW50aWxBYm9ydGFibGUoXG4gIGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbixcbiAgaW50ZXJ2YWxNcyA9IDEwMCxcbiAgdGltZW91dE1zID0gMjAwMCxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGNoZWNrID0gKCkgPT4ge1xuICAgICAgaWYgKHNpZ25hbD8uYWJvcnRlZCkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBFcnJvcigncG9sbFVudGlsIGFib3J0ZWQnKSk7XG4gICAgICB9XG4gICAgICBpZiAoY29uZGl0aW9uKCkpIHtcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIH0gZWxzZSBpZiAoRGF0ZS5ub3coKSAtIHN0YXJ0ID49IHRpbWVvdXRNcykge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKCdwb2xsVW50aWwgdGltZW91dCcpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFRpbWVvdXQoY2hlY2ssIGludGVydmFsTXMpO1xuICAgICAgfVxuICAgIH07XG4gICAgY2hlY2soKTtcbiAgfSk7XG59XG5cbi8qKlxuICogRGVib3VuY2VzIGFuIGFzeW5jIGZ1bmN0aW9uIHRvIHJ1biBvbmx5IGFmdGVyIG5vIGNhbGxzIGFyZSBtYWRlIHdpdGhpbiB0aGUgd2FpdCB3aW5kb3cuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWJvdW5jZUFzeW5jPFQgZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IFByb21pc2U8YW55Pj4oZm46IFQsIHdhaXRNczogbnVtYmVyKTogVCB7XG4gIGxldCB0aW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgbGV0IHByb21pc2U6IFByb21pc2U8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gIHJldHVybiAoKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgaWYgKHRpbWVvdXQpIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcblxuICAgIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICByZXNvbHZlKGZuKC4uLmFyZ3MpKTtcbiAgICAgIH0sIHdhaXRNcyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvbWlzZTtcbiAgfSkgYXMgVDtcbn1cblxuLyoqXG4gKiBSdW5zIGEgbGlzdCBvZiBmYWxsYmFjayBmdW5jdGlvbnMgdW50aWwgb25lIHJlc29sdmVzIHdpdGhvdXQgdGhyb3dpbmcuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmYWxsYmFja0NoYWluPFQ+KHRhc2tzOiBBcnJheTwoKSA9PiBQcm9taXNlPFQ+Pik6IFByb21pc2U8VD4ge1xuICBsZXQgbGFzdEVycm9yO1xuICBmb3IgKGNvbnN0IHRhc2sgb2YgdGFza3MpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRhc2soKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxhc3RFcnJvciA9IGVycjtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbGFzdEVycm9yID8/IG5ldyBFcnJvcignQWxsIGZhbGxiYWNrIHRhc2tzIGZhaWxlZCcpO1xufVxuIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nconst HIGHLIGHT_TEXT_CLASS = 'ax-highlight-text';\nconst HIGHLIGHT_MATCH_CLASS = 'ax-highlight';\nconst IGNORED_PARENT_TAGS = new Set(['SCRIPT', 'STYLE', 'TEXTAREA', 'INPUT', 'SELECT', 'OPTION', 'NOSCRIPT']);\n/**\n * Service for applying and resetting text highlighting within specified HTML elements.\n */\nexport class AXHighlightService {\n constructor() {\n this.querySelector = null;\n this.searchValue = null;\n }\n /**\n * Highlights all occurrences of a search value within the elements matching the provided query selector.\n *\n * @param querySelector - CSS selector to identify target elements.\n * @param searchValue - Text to search and highlight.\n */\n highlight(querySelector, searchValue) {\n const trimmed = searchValue.trim();\n if (!querySelector || !trimmed) {\n return;\n }\n this.clear(querySelector);\n this.querySelector = querySelector;\n this.searchValue = trimmed;\n const elements = document.querySelectorAll(querySelector);\n const searchRegex = this.createSearchRegex(trimmed);\n elements.forEach((element) => {\n this.applyHighlight(element, searchRegex);\n });\n }\n /**\n * Resets highlighted text within the elements matching the query selector.\n *\n * @param querySelector - CSS selector to clear. Falls back to the last selector used by `highlight`.\n */\n clear(querySelector) {\n const selector = querySelector ?? this.querySelector;\n if (!selector) {\n return;\n }\n const elements = document.querySelectorAll(`${selector} .${HIGHLIGHT_TEXT_CLASS}`);\n elements.forEach((element) => {\n let combinedText = '';\n element.querySelectorAll('span').forEach((span) => {\n combinedText += span.textContent;\n });\n const mergedSpan = document.createElement('span');\n mergedSpan.textContent = combinedText;\n element.parentNode?.replaceChild(mergedSpan, element);\n });\n if (!querySelector || querySelector === this.querySelector) {\n this.querySelector = null;\n this.searchValue = null;\n }\n }\n createSearchRegex(searchValue) {\n const escaped = searchValue.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return new RegExp(`(${escaped})`, 'gi');\n }\n applyHighlight(element, searchRegex) {\n this.recursivelyHighlight(element, searchRegex);\n }\n recursivelyHighlight(element, searchRegex) {\n const childNodes = Array.from(element.childNodes);\n childNodes.forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n const parent = node.parentElement;\n if (parent?.classList.contains(HIGHLIGHT_TEXT_CLASS) || (parent && IGNORED_PARENT_TAGS.has(parent.tagName))) {\n return;\n }\n const textContent = node.textContent ?? '';\n searchRegex.lastIndex = 0;\n if (searchRegex.test(textContent)) {\n const highlightedHtml = this.createHighlightedHTML(textContent, searchRegex);\n const tempContainer = document.createElement('div');\n tempContainer.innerHTML = highlightedHtml;\n const fragment = document.createDocumentFragment();\n Array.from(tempContainer.childNodes).forEach((child) => fragment.appendChild(child));\n node.replaceWith(fragment);\n }\n return;\n }\n if (node.nodeType === Node.ELEMENT_NODE) {\n this.recursivelyHighlight(node, searchRegex);\n }\n });\n }\n createHighlightedHTML(textContent, searchRegex) {\n let lastIndex = 0;\n let resultHtml = `<span class=\"${HIGHLIGHT_TEXT_CLASS}\">`;\n let match;\n searchRegex.lastIndex = 0;\n while ((match = searchRegex.exec(textContent)) !== null) {\n if (match.index > lastIndex) {\n resultHtml += `<span>${textContent.slice(lastIndex, match.index)}</span>`;\n }\n resultHtml += `<span class=\"${HIGHLIGHT_MATCH_CLASS}\">${match[0]}</span>`;\n lastIndex = searchRegex.lastIndex;\n if (match[0].length === 0) {\n searchRegex.lastIndex++;\n }\n }\n if (lastIndex < textContent.length) {\n resultHtml += `<span>${textContent.slice(lastIndex)}</span>`;\n }\n resultHtml += '</span>';\n return resultHtml;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXHighlightService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXHighlightService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXHighlightService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3V0aWxzL3NyYy9saWIvaGlnaGxpZ2h0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0MsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQztBQUNqRCxNQUFNLHFCQUFxQixHQUFHLGNBQWMsQ0FBQztBQUU3QyxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUU5Rzs7R0FFRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFIL0I7UUFJVSxrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFDcEMsZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO0tBMEgzQztJQXhIQzs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxhQUFxQixFQUFFLFdBQW1CO1FBQ2xELE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1FBRTNCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFcEQsUUFBUSxDQUFD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U0FBUyxDQUFDO1lBRWxDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzFCLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxTQUFTLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25DLFVBQVUsSUFBSSxTQUFTLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsVUFBVSxJQUFJLFNBQVMsQ0FBQztRQUN4QixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOzhHQTNIVSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jb25zdCBISUdITElHSFRfVEVYVF9DTEFTUyA9ICdheC1oaWdobGlnaHQtdGV4dCc7XG5jb25zdCBISUdITElHSFRfTUFUQ0hfQ0xBU1MgPSAnYXgtaGlnaGxpZ2h0JztcblxuY29uc3QgSUdOT1JFRF9QQVJFTlRfVEFHUyA9IG5ldyBTZXQoWydTQ1JJUFQnLCAnU1RZTEUnLCAnVEVYVEFSRUEnLCAnSU5QVVQnLCAnU0VMRUNUJywgJ09QVElPTicsICdOT1NDUklQVCddKTtcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciBhcHBseWluZyBhbmQgcmVzZXR0aW5nIHRleHQgaGlnaGxpZ2h0aW5nIHdpdGhpbiBzcGVjaWZpZWQgSFRNTCBlbGVtZW50cy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYSGlnaGxpZ2h0U2VydmljZSB7XG4gIHByaXZhdGUgcXVlcnlTZWxlY3Rvcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc2VhcmNoVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBIaWdobGlnaHRzIGFsbCBvY2N1cnJlbmNlcyBvZiBhIHNlYXJjaCB2YWx1ZSB3aXRoaW4gdGhlIGVsZW1lbnRzIG1hdGNoaW5nIHRoZSBwcm92aWRlZCBxdWVyeSBzZWxlY3Rvci5cbiAgICpcbiAgICogQHBhcmFtIHF1ZXJ5U2VsZWN0b3IgLSBDU1Mgc2VsZWN0b3IgdG8gaWRlbnRpZnkgdGFyZ2V0IGVsZW1lbnRzLlxuICAgKiBAcGFyYW0gc2VhcmNoVmFsdWUgLSBUZXh0IHRvIHNlYXJjaCBhbmQgaGlnaGxpZ2h0LlxuICAgKi9cbiAgaGlnaGxpZ2h0KHF1ZXJ5U2VsZWN0b3I6IHN0cmluZywgc2VhcmNoVmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHRyaW1tZWQgPSBzZWFyY2hWYWx1ZS50cmltKCk7XG4gICAgaWYgKCFxdWVyeVNlbGVjdG9yIHx8ICF0cmltbWVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbGVhcihxdWVyeVNlbGVjdG9yKTtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IgPSBxdWVyeVNlbGVjdG9yO1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSB0cmltbWVkO1xuXG4gICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHF1ZXJ5U2VsZWN0b3IpO1xuICAgIGNvbnN0IHNlYXJjaFJlZ2V4ID0gdGhpcy5jcmVhdGVTZWFyY2hSZWdleCh0cmltbWVkKTtcblxuICAgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIHRoaXMuYXBwbHlIaWdobGlnaHQoZWxlbWVudCwgc2VhcmNoUmVnZXgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyBoaWdobGlnaHRlZCB0ZXh0IHdpdGhpbiB0aGUgZWxlbWVudHMgbWF0Y2hpbmcgdGhlIHF1ZXJ5IHNlbGVjdG9yLlxuICAgKlxuICAgKiBAcGFyYW0gcXVlcnlTZWxlY3RvciAtIENTUyBzZWxlY3RvciB0byBjbGVhci4gRmFsbHMgYmFjayB0byB0aGUgbGFzdCBzZWxlY3RvciB1c2VkIGJ5IGBoaWdobGlnaHRgLlxuICAgKi9cbiAgY2xlYXIocXVlcnlTZWxlY3Rvcj86IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gcXVlcnlTZWxlY3RvciA/PyB0aGlzLnF1ZXJ5U2VsZWN0b3I7XG4gICAgaWYgKCFzZWxlY3Rvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgJHtzZWxlY3Rvcn0gLiR7SElHSExJR0hUX1RFWFRfQ0xBU1N9YCk7XG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgbGV0IGNvbWJpbmVkVGV4dCA9ICcnO1xuICAgICAgZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzcGFuJykuZm9yRWFjaCgoc3BhbikgPT4ge1xuICAgICAgICBjb21iaW5lZFRleHQgKz0gc3Bhbi50ZXh0Q29udGVudDtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBtZXJnZWRTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgbWVyZ2VkU3Bhbi50ZXh0Q29udGVudCA9IGNvbWJpbmVkVGV4dDtcbiAgICAgIGVsZW1lbnQucGFyZW50Tm9kZT8ucmVwbGFjZUNoaWxkKG1lcmdlZFNwYW4sIGVsZW1lbnQpO1xuICAgIH0pO1xuXG4gICAgaWYgKCFxdWVyeVNlbGVjdG9yIHx8IHF1ZXJ5U2VsZWN0b3IgPT09IHRoaXMucXVlcnlTZWxlY3Rvcikge1xuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yID0gbnVsbDtcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU2VhcmNoUmVnZXgoc2VhcmNoVmFsdWU6IHN0cmluZyk6IFJlZ0V4cCB7XG4gICAgY29uc3QgZXNjYXBlZCA9IHNlYXJjaFZhbHVlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCAnXFxcXCQmJyk7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoYCgke2VzY2FwZWR9KWAsICdnaScpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUhpZ2hsaWdodChlbGVtZW50OiBFbGVtZW50LCBzZWFyY2hSZWdleDogUmVnRXhwKTogdm9pZCB7XG4gICAgdGhpcy5yZWN1cnNpdmVseUhpZ2hsaWdodChlbGVtZW50LCBzZWFyY2hSZWdleCk7XG4gIH1cblxuICBwcml2YXRlIHJlY3Vyc2l2ZWx5SGlnaGxpZ2h0KGVsZW1lbnQ6IE5vZGUsIHNlYXJjaFJlZ2V4OiBSZWdFeHApOiB2b2lkIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gQXJyYXkuZnJvbShlbGVtZW50LmNoaWxkTm9kZXMpO1xuXG4gICAgY2hpbGROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gbm9kZS5wYXJlbnRFbGVtZW50O1xuICAgICAgICBpZiAocGFyZW50Py5jbGFzc0xpc3QuY29udGFpbnMoSElHSExJR0hUX1RFWFRfQ0xBU1MpIHx8IChwYXJlbnQgJiYgSUdOT1JFRF9QQVJFTlRfVEFHUy5oYXMocGFyZW50LnRhZ05hbWUpKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRleHRDb250ZW50ID0gbm9kZS50ZXh0Q29udGVudCA/PyAnJztcbiAgICAgICAgc2VhcmNoUmVnZXgubGFzdEluZGV4ID0gMDtcblxuICAgICAgICBpZiAoc2VhcmNoUmVnZXgudGVzdCh0ZXh0Q29udGVudCkpIHtcbiAgICAgICAgICBjb25zdCBoaWdobGlnaHRlZEh0bWwgPSB0aGlzLmNyZWF0ZUhpZ2hsaWdodGVkSFRNTCh0ZXh0Q29udGVudCwgc2VhcmNoUmVnZXgpO1xuICAgICAgICAgIGNvbnN0IHRlbXBDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICB0ZW1wQ29udGFpbmVyLmlubmVySFRNTCA9IGhpZ2hsaWdodGVkSHRtbDtcblxuICAgICAgICAgIGNvbnN0IGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICAgIEFycmF5LmZyb20odGVtcENvbnRhaW5lci5jaGlsZE5vZGVzKS5mb3JFYWNoKChjaGlsZCkgPT4gZnJhZ21lbnQuYXBwZW5kQ2hpbGQoY2hpbGQpKTtcbiAgICAgICAgICBub2RlLnJlcGxhY2VXaXRoKGZyYWdtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgIHRoaXMucmVjdXJzaXZlbHlIaWdobGlnaHQobm9kZSwgc2VhcmNoUmVnZXgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIaWdobGlnaHRlZEhUTUwodGV4dENvbnRlbnQ6IHN0cmluZywgc2VhcmNoUmVnZXg6IFJlZ0V4cCk6IHN0cmluZyB7XG4gICAgbGV0IGxhc3RJbmRleCA9IDA7XG4gICAgbGV0IHJlc3VsdEh0bWwgPSBgPHNwYW4gY2xhc3M9XCIke0hJR0hMSUdIVF9URVhUX0NMQVNTfVwiPmA7XG4gICAgbGV0IG1hdGNoOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsO1xuXG4gICAgc2VhcmNoUmVnZXgubGFzdEluZGV4ID0gMDtcbiAgICB3aGlsZSAoKG1hdGNoID0gc2VhcmNoUmVnZXguZXhlYyh0ZXh0Q29udGVudCkpICE9PSBudWxsKSB7XG4gICAgICBpZiAobWF0Y2guaW5kZXggPiBsYXN0SW5kZXgpIHtcbiAgICAgICAgcmVzdWx0SHRtbCArPSBgPHNwYW4+JHt0ZXh0Q29udGVudC5zbGljZShsYXN0SW5kZXgsIG1hdGNoLmluZGV4KX08L3NwYW4+YDtcbiAgICAgIH1cblxuICAgICAgcmVzdWx0SHRtbCArPSBgPHNwYW4gY2xhc3M9XCIke0hJR0hMSUdIVF9NQVRDSF9DTEFTU31cIj4ke21hdGNoWzBdfTwvc3Bhbj5gO1xuICAgICAgbGFzdEluZGV4ID0gc2VhcmNoUmVnZXgubGFzdEluZGV4O1xuXG4gICAgICBpZiAobWF0Y2hbMF0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHNlYXJjaFJlZ2V4Lmxhc3RJbmRleCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChsYXN0SW5kZXggPCB0ZXh0Q29udGVudC5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdEh0bWwgKz0gYDxzcGFuPiR7dGV4dENvbnRlbnQuc2xpY2UobGFzdEluZGV4KX08L3NwYW4+YDtcbiAgICB9XG5cbiAgICByZXN1bHRIdG1sICs9ICc8L3NwYW4+JztcbiAgICByZXR1cm4gcmVzdWx0SHRtbDtcbiAgfVxufVxuIl19","import { isBrowser } from '@acorex/core/platform';\nexport class AXHtmlUtil {\n static focusElement(element) {\n const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map((c) => c + ':not([tabindex=\"-1\"])');\n const focusable = element.querySelector(list.join(', '));\n if (focusable) {\n focusable.focus();\n return focusable;\n }\n return null;\n }\n static blurElement(element) {\n const list = ['button', 'input', '[href]', 'select', 'textarea', '[tabindex]'].map((c) => c + ':not([tabindex=\"-1\"])');\n const focusable = element.querySelector(list.join(', '));\n if (focusable) {\n focusable.blur();\n return focusable;\n }\n return null;\n }\n static hasFocus(element) {\n return element.matches(':focus-within') || element.matches(':focus');\n }\n static isRtl(element) {\n if (!isBrowser()) {\n return false;\n }\n const docIsRtl = document.documentElement.dir === 'rtl';\n if (element) {\n const elementStyle = window.getComputedStyle(element);\n const elementDir = elementStyle.getPropertyValue('direction');\n if (elementDir === 'rtl') {\n return true;\n }\n if (elementDir === 'ltr') {\n return false;\n }\n if (element.classList.contains('ax-rtl')) {\n return true;\n }\n }\n return docIsRtl;\n }\n static hasDark(element) {\n if (isBrowser()) {\n return element.closest('.dark') ? true : false;\n }\n return false;\n }\n /**\n * Helper function to check if an element is scrollable\n */\n static isScrollable(element) {\n const overflowY = window.getComputedStyle(element).overflowY;\n return (overflowY === 'auto' || overflowY === 'scroll') && element.scrollHeight > element.clientHeight;\n }\n /**\n * Utility function to find scrollable parent elements\n */\n static getScrollableParents(element) {\n const parents = [];\n let currentElement = element;\n while (currentElement) {\n if (AXHtmlUtil.isScrollable(currentElement)) {\n parents.push(currentElement);\n }\n currentElement = currentElement.parentElement;\n }\n return parents;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvdXRpbHMvc3JjL2xpYi9odG1sLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRCxNQUFNLE9BQU8sVUFBVTtJQUNyQixNQUFNLENBQUMsWUFBWSxDQUFDLE9BQW9CO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQ2hGLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsdUJBQXVCLENBQ25DLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQW9CO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQ2hGLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsdUJBQXVCLENBQ25DLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQW9CO1FBQ2xDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQXFCO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQztRQUV4RCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RELE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5RCxJQUFJLFVBQVUsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBQ0QsSUFBSSxVQUFVLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDekMsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQW9CO1FBQ2pDLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2pELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBb0I7UUFDdEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUM3RCxPQUFPLENBQUMsU0FBUyxLQUFLLE1BQU0sSUFBSSxTQUFTLEtBQUssUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQ3pHLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxPQUFvQjtRQUM5QyxNQUFNLE9BQU8sR0FBa0IsRUFBRSxDQUFDO1FBQ2xDLElBQUksY0FBYyxHQUF1QixPQUFPLENBQUM7UUFFakQsT0FBTyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMvQixDQUFDO1lBQ0QsY0FBYyxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUM7UUFDaEQsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQnJvd3NlciB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5cbmV4cG9ydCBjbGFzcyBBWEh0bWxVdGlsIHtcbiAgc3RhdGljIGZvY3VzRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBsaXN0ID0gWydidXR0b24nLCAnaW5wdXQnLCAnW2hyZWZdJywgJ3NlbGVjdCcsICd0ZXh0YXJlYScsICdbdGFiaW5kZXhdJ10ubWFwKFxuICAgICAgKGMpID0+IGMgKyAnOm5vdChbdGFiaW5kZXg9XCItMVwiXSknLFxuICAgICk7XG4gICAgY29uc3QgZm9jdXNhYmxlID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihsaXN0LmpvaW4oJywgJykpO1xuICAgIGlmIChmb2N1c2FibGUpIHtcbiAgICAgIGZvY3VzYWJsZS5mb2N1cygpO1xuICAgICAgcmV0dXJuIGZvY3VzYWJsZTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgYmx1ckVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgbGlzdCA9IFsnYnV0dG9uJywgJ2lucHV0JywgJ1tocmVmXScsICdzZWxlY3QnLCAndGV4dGFyZWEnLCAnW3RhYmluZGV4XSddLm1hcChcbiAgICAgIChjKSA9PiBjICsgJzpub3QoW3RhYmluZGV4PVwiLTFcIl0pJyxcbiAgICApO1xuICAgIGNvbnN0IGZvY3VzYWJsZSA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4obGlzdC5qb2luKCcsICcpKTtcbiAgICBpZiAoZm9jdXNhYmxlKSB7XG4gICAgICBmb2N1c2FibGUuYmx1cigpO1xuICAgICAgcmV0dXJuIGZvY3VzYWJsZTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgaGFzRm9jdXMoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWxlbWVudC5tYXRjaGVzKCc6Zm9jdXMtd2l0aGluJykgfHwgZWxlbWVudC5tYXRjaGVzKCc6Zm9jdXMnKTtcbiAgfVxuXG4gIHN0YXRpYyBpc1J0bChlbGVtZW50PzogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBpZiAoIWlzQnJvd3NlcigpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGRvY0lzUnRsID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpciA9PT0gJ3J0bCc7XG5cbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgY29uc3QgZWxlbWVudFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgICBjb25zdCBlbGVtZW50RGlyID0gZWxlbWVudFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpO1xuICAgICAgaWYgKGVsZW1lbnREaXIgPT09ICdydGwnKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGVsZW1lbnREaXIgPT09ICdsdHInKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnYXgtcnRsJykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkb2NJc1J0bDtcbiAgfVxuXG4gIHN0YXRpYyBoYXNEYXJrKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICByZXR1cm4gZWxlbWVudC5jbG9zZXN0KCcuZGFyaycpID8gdHJ1ZSA6IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLyoqXG4gICAqIEhlbHBlciBmdW5jdGlvbiB0byBjaGVjayBpZiBhbiBlbGVtZW50IGlzIHNjcm9sbGFibGVcbiAgICovXG4gIHN0YXRpYyBpc1Njcm9sbGFibGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBvdmVyZmxvd1kgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5vdmVyZmxvd1k7XG4gICAgcmV0dXJuIChvdmVyZmxvd1kgPT09ICdhdXRvJyB8fCBvdmVyZmxvd1kgPT09ICdzY3JvbGwnKSAmJiBlbGVtZW50LnNjcm9sbEhlaWdodCA+IGVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICB9XG5cbiAgLyoqXG4gICAqIFV0aWxpdHkgZnVuY3Rpb24gdG8gZmluZCBzY3JvbGxhYmxlIHBhcmVudCBlbGVtZW50c1xuICAgKi9cbiAgc3RhdGljIGdldFNjcm9sbGFibGVQYXJlbnRzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnRbXSB7XG4gICAgY29uc3QgcGFyZW50czogSFRNTEVsZW1lbnRbXSA9IFtdO1xuICAgIGxldCBjdXJyZW50RWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDtcblxuICAgIHdoaWxlIChjdXJyZW50RWxlbWVudCkge1xuICAgICAgaWYgKEFYSHRtbFV0aWwuaXNTY3JvbGxhYmxlKGN1cnJlbnRFbGVtZW50KSkge1xuICAgICAgICBwYXJlbnRzLnB1c2goY3VycmVudEVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgY3VycmVudEVsZW1lbnQgPSBjdXJyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIH1cblxuICAgIHJldHVybiBwYXJlbnRzO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport function AXAutoUnsubscriber() {\n return function (constructor) {\n const orig = constructor.prototype.ngOnDestroy;\n constructor.prototype.ngOnDestroy = function () {\n for (const prop in this) {\n const property = this[prop];\n if (typeof property.subscribe === 'function') {\n property.unsubscribe();\n }\n }\n orig.apply();\n };\n };\n}\nexport class AXUnsubscriber {\n constructor() {\n this._destroy$ = new Subject();\n this.takeUntilDestroy = (origin) => origin.pipe(takeUntil(this._destroy$));\n }\n unsubscribe() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n ngOnDestroy() {\n this.unsubscribe();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXUnsubscriber, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXUnsubscriber }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXUnsubscriber, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLWhlbHBlcnMudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3V0aWxzL3NyYy9saWIvbGlmZWN5Y2xlLWhlbHBlcnMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFdEQsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxPQUFPLFVBQVUsV0FBVztRQUMxQixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUMvQyxXQUFXLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRztZQUNsQyxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN4QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLElBQUksT0FBTyxRQUFRLENBQUMsU0FBUyxLQUFLLFVBQVUsRUFBRSxDQUFDO29CQUM3QyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3pCLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUdELE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRW1CLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWpDLHFCQUFnQixHQUFHLENBQUksTUFBa0MsRUFBOEIsRUFBRSxDQUN2RyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztLQVUxQztJQVJRLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDOzhHQWJVLGNBQWM7a0hBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBBWEF1dG9VbnN1YnNjcmliZXIoKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3IpIHtcbiAgICBjb25zdCBvcmlnID0gY29uc3RydWN0b3IucHJvdG90eXBlLm5nT25EZXN0cm95O1xuICAgIGNvbnN0cnVjdG9yLnByb3RvdHlwZS5uZ09uRGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcCBpbiB0aGlzKSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5ID0gdGhpc1twcm9wXTtcbiAgICAgICAgaWYgKHR5cGVvZiBwcm9wZXJ0eS5zdWJzY3JpYmUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBwcm9wZXJ0eS51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBvcmlnLmFwcGx5KCk7XG4gICAgfTtcbiAgfTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYVW5zdWJzY3JpYmVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ID0gPFQ+KG9yaWdpbjogT2JzZXJ2YWJsZTxUPiB8IFN1YmplY3Q8VD4pOiBPYnNlcnZhYmxlPFQ+IHwgU3ViamVjdDxUPiA9PlxuICAgIG9yaWdpbi5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpO1xuXG4gIHB1YmxpYyB1bnN1YnNjcmliZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==","export function getWordBoundsAtPosition(str, position) {\n const isSpace = (c) => /[^a-zA-Z0-9]+/i.test(c);\n let start = position - 1;\n while (start >= 0 && !isSpace(str[start])) {\n start -= 1;\n }\n start = Math.max(0, start + 1);\n const leftSideString = str.slice(start).match(/[a-zA-Z0-9]+/i);\n start += leftSideString.index;\n let end = start + leftSideString[0].length;\n return {\n start,\n end,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS91dGlscy9zcmMvbGliL3N0cmluZy51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsdUJBQXVCLENBQUMsR0FBVyxFQUFFLFFBQWdCO0lBQ25FLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsSUFBSSxLQUFLLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUV6QixPQUFPLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxQyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUNELEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0IsTUFBTSxjQUFjLEdBQVEsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDcEUsS0FBSyxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsSUFBSSxHQUFHLEdBQUcsS0FBSyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0MsT0FBTztRQUNMLEtBQUs7UUFDTCxHQUFHO0tBQ0osQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2V0V29yZEJvdW5kc0F0UG9zaXRpb24oc3RyOiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIpOiB7IHN0YXJ0OiBudW1iZXI7IGVuZDogbnVtYmVyIH0ge1xuICBjb25zdCBpc1NwYWNlID0gKGMpID0+IC9bXmEtekEtWjAtOV0rL2kudGVzdChjKTtcbiAgbGV0IHN0YXJ0ID0gcG9zaXRpb24gLSAxO1xuXG4gIHdoaWxlIChzdGFydCA+PSAwICYmICFpc1NwYWNlKHN0cltzdGFydF0pKSB7XG4gICAgc3RhcnQgLT0gMTtcbiAgfVxuICBzdGFydCA9IE1hdGgubWF4KDAsIHN0YXJ0ICsgMSk7XG4gIGNvbnN0IGxlZnRTaWRlU3RyaW5nOiBhbnkgPSBzdHIuc2xpY2Uoc3RhcnQpLm1hdGNoKC9bYS16QS1aMC05XSsvaSk7XG4gIHN0YXJ0ICs9IGxlZnRTaWRlU3RyaW5nLmluZGV4O1xuICBsZXQgZW5kID0gc3RhcnQgKyBsZWZ0U2lkZVN0cmluZ1swXS5sZW5ndGg7XG4gIHJldHVybiB7XG4gICAgc3RhcnQsXG4gICAgZW5kLFxuICB9O1xufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3V0aWxzL3NyYy9hY29yZXgtY29yZS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -30,10 +30,10 @@ class AXCallbackValidationRule {
|
|
|
30
30
|
}
|
|
31
31
|
return createResult(validationResult);
|
|
32
32
|
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
34
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXCallbackValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
34
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXCallbackValidationRule }); }
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXCallbackValidationRule, decorators: [{
|
|
37
37
|
type: Injectable
|
|
38
38
|
}] });
|
|
39
39
|
|
|
@@ -72,10 +72,10 @@ class AXRegexValidationRule {
|
|
|
72
72
|
value: value,
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
76
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
75
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXRegexValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
76
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXRegexValidationRule }); }
|
|
77
77
|
}
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXRegexValidationRule, decorators: [{
|
|
79
79
|
type: Injectable
|
|
80
80
|
}] });
|
|
81
81
|
|
|
@@ -107,10 +107,10 @@ class AXRequiredValidationRule {
|
|
|
107
107
|
value,
|
|
108
108
|
};
|
|
109
109
|
}
|
|
110
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
111
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
110
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXRequiredValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
111
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXRequiredValidationRule }); }
|
|
112
112
|
}
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
113
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXRequiredValidationRule, decorators: [{
|
|
114
114
|
type: Injectable
|
|
115
115
|
}] });
|
|
116
116
|
|
|
@@ -130,10 +130,10 @@ class AXLengthValidationRule {
|
|
|
130
130
|
value: value,
|
|
131
131
|
};
|
|
132
132
|
}
|
|
133
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
134
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
133
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXLengthValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
134
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXLengthValidationRule }); }
|
|
135
135
|
}
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXLengthValidationRule, decorators: [{
|
|
137
137
|
type: Injectable
|
|
138
138
|
}] });
|
|
139
139
|
|
|
@@ -151,10 +151,10 @@ class AXMaxLengthValidationRule {
|
|
|
151
151
|
value: value,
|
|
152
152
|
};
|
|
153
153
|
}
|
|
154
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
155
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
154
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXMaxLengthValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
155
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXMaxLengthValidationRule }); }
|
|
156
156
|
}
|
|
157
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXMaxLengthValidationRule, decorators: [{
|
|
158
158
|
type: Injectable
|
|
159
159
|
}] });
|
|
160
160
|
|
|
@@ -171,10 +171,10 @@ class AXMinLengthValidationRule {
|
|
|
171
171
|
value: value,
|
|
172
172
|
};
|
|
173
173
|
}
|
|
174
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
175
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
174
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXMinLengthValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
175
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXMinLengthValidationRule }); }
|
|
176
176
|
}
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXMinLengthValidationRule, decorators: [{
|
|
178
178
|
type: Injectable
|
|
179
179
|
}] });
|
|
180
180
|
|
|
@@ -199,10 +199,10 @@ class AXBetweenValidationRule {
|
|
|
199
199
|
value: value,
|
|
200
200
|
};
|
|
201
201
|
}
|
|
202
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
203
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
202
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXBetweenValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
203
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXBetweenValidationRule }); }
|
|
204
204
|
}
|
|
205
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXBetweenValidationRule, decorators: [{
|
|
206
206
|
type: Injectable
|
|
207
207
|
}] });
|
|
208
208
|
|
|
@@ -222,10 +222,10 @@ class AXEqualValidationRule {
|
|
|
222
222
|
value: value,
|
|
223
223
|
};
|
|
224
224
|
}
|
|
225
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
226
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
225
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXEqualValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
226
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXEqualValidationRule }); }
|
|
227
227
|
}
|
|
228
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
228
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXEqualValidationRule, decorators: [{
|
|
229
229
|
type: Injectable
|
|
230
230
|
}] });
|
|
231
231
|
|
|
@@ -244,10 +244,10 @@ class AXGreaterThanValidationRule {
|
|
|
244
244
|
value: value,
|
|
245
245
|
};
|
|
246
246
|
}
|
|
247
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
248
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
247
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXGreaterThanValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
248
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXGreaterThanValidationRule }); }
|
|
249
249
|
}
|
|
250
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
250
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXGreaterThanValidationRule, decorators: [{
|
|
251
251
|
type: Injectable
|
|
252
252
|
}] });
|
|
253
253
|
|
|
@@ -266,10 +266,10 @@ class AXLessThanValidationRule {
|
|
|
266
266
|
value: value,
|
|
267
267
|
};
|
|
268
268
|
}
|
|
269
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
270
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
269
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXLessThanValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
270
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXLessThanValidationRule }); }
|
|
271
271
|
}
|
|
272
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
272
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXLessThanValidationRule, decorators: [{
|
|
273
273
|
type: Injectable
|
|
274
274
|
}] });
|
|
275
275
|
|
|
@@ -329,10 +329,10 @@ class AXValidationRegistryService {
|
|
|
329
329
|
get(ruleName) {
|
|
330
330
|
return this.plugins.find((c) => c.name == ruleName);
|
|
331
331
|
}
|
|
332
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
333
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
332
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXValidationRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
333
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXValidationRegistryService, providedIn: 'root' }); }
|
|
334
334
|
}
|
|
335
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
335
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXValidationRegistryService, decorators: [{
|
|
336
336
|
type: Injectable,
|
|
337
337
|
args: [{
|
|
338
338
|
providedIn: 'root',
|
|
@@ -373,10 +373,10 @@ class AXValidationService {
|
|
|
373
373
|
ruleFor(value) {
|
|
374
374
|
return new AXValidationRuleChain(this, value);
|
|
375
375
|
}
|
|
376
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
377
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
376
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXValidationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
377
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXValidationService, providedIn: 'root' }); }
|
|
378
378
|
}
|
|
379
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
379
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXValidationService, decorators: [{
|
|
380
380
|
type: Injectable,
|
|
381
381
|
args: [{ providedIn: 'root' }]
|
|
382
382
|
}] });
|
|
@@ -461,11 +461,11 @@ class AXValidationModule {
|
|
|
461
461
|
f();
|
|
462
462
|
});
|
|
463
463
|
}
|
|
464
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
465
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
466
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
464
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXValidationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
465
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.3", ngImport: i0, type: AXValidationModule }); }
|
|
466
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXValidationModule, providers: [...BUILT_IN_RULES] }); }
|
|
467
467
|
}
|
|
468
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
468
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXValidationModule, decorators: [{
|
|
469
469
|
type: NgModule,
|
|
470
470
|
args: [{
|
|
471
471
|
imports: [],
|