@acorex/core 20.0.0 → 20.0.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.
Files changed (33) hide show
  1. package/fesm2022/acorex-core-components.mjs +3 -3
  2. package/fesm2022/acorex-core-components.mjs.map +1 -1
  3. package/fesm2022/acorex-core-config.mjs +3 -3
  4. package/fesm2022/acorex-core-config.mjs.map +1 -1
  5. package/fesm2022/acorex-core-date-time.mjs +25 -25
  6. package/fesm2022/acorex-core-date-time.mjs.map +1 -1
  7. package/fesm2022/acorex-core-events.mjs +3 -3
  8. package/fesm2022/acorex-core-events.mjs.map +1 -1
  9. package/fesm2022/acorex-core-file.mjs +10 -10
  10. package/fesm2022/acorex-core-file.mjs.map +1 -1
  11. package/fesm2022/acorex-core-format.mjs +19 -19
  12. package/fesm2022/acorex-core-format.mjs.map +1 -1
  13. package/fesm2022/acorex-core-icon.mjs +3 -3
  14. package/fesm2022/acorex-core-icon.mjs.map +1 -1
  15. package/fesm2022/acorex-core-image.mjs +3 -3
  16. package/fesm2022/acorex-core-image.mjs.map +1 -1
  17. package/fesm2022/acorex-core-locale.mjs +10 -10
  18. package/fesm2022/acorex-core-locale.mjs.map +1 -1
  19. package/fesm2022/acorex-core-network.mjs +3 -3
  20. package/fesm2022/acorex-core-network.mjs.map +1 -1
  21. package/fesm2022/acorex-core-pipes.mjs +3 -3
  22. package/fesm2022/acorex-core-pipes.mjs.map +1 -1
  23. package/fesm2022/acorex-core-platform.mjs +3 -3
  24. package/fesm2022/acorex-core-platform.mjs.map +1 -1
  25. package/fesm2022/acorex-core-storage.mjs +9 -9
  26. package/fesm2022/acorex-core-storage.mjs.map +1 -1
  27. package/fesm2022/acorex-core-translation.mjs +16 -16
  28. package/fesm2022/acorex-core-translation.mjs.map +1 -1
  29. package/fesm2022/acorex-core-utils.mjs +3 -3
  30. package/fesm2022/acorex-core-utils.mjs.map +1 -1
  31. package/fesm2022/acorex-core-validation.mjs +40 -40
  32. package/fesm2022/acorex-core-validation.mjs.map +1 -1
  33. package/package.json +1 -1
@@ -1 +1 @@
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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3V0aWxzL3NyYy9saWIvY29sb3IudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxTQUF5QixNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLFlBQTBCLE1BQU0saUJBQWlCLENBQUM7QUFJekQsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFvQixFQUFFLElBQWlCO1FBQy9DLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxNQUFNO2dCQUNULE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLEtBQUssTUFBTTtnQkFDVCxPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEI7Z0JBQ0UsT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQW9CLEVBQUUsT0FBb0IsSUFBSTtRQUM1RCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssTUFBTTtnQkFDVCxPQUFPLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUIsS0FBSyxNQUFNO2dCQUNULE9BQU8sTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRTlCLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDWCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BFLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNSLElBQUksT0FBTyxLQUFLLElBQUksUUFBUSxFQUFFLENBQUM7b0JBQzdCLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7d0JBQUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzs7d0JBQ3ZFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzNDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUN0QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFvQjtRQUNqQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsT0FBTyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBd0IsRUFBRSxHQUFrQixFQUFFLFVBQWtCO1FBQ3pFLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFxQixFQUFFLE1BQXFCO1FBQzFELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDN0MsT0FBTyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBb0I7UUFDekMsT0FBTyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFrQixFQUFFLFVBQW1CO1FBQ3BELE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFrQixFQUFFLFVBQW1CO1FBQ25ELE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFrQixFQUFFLFVBQW1CO1FBQ3JELE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFrQixFQUFFLFVBQW1CO1FBQ3JELE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFrQjtRQUNsQyxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFxQixFQUFFLE1BQXFCO1FBQ3ZELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBcUQ7UUFDbkUsT0FBTyxZQUFZLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBa0I7UUFDcEMsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDbkIsRUFBRSxHQUFHLEVBQUUsSUFBSSxhQUFhLENBQUM7UUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1osTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUVuQyxnREFBZ0Q7UUFDaEQsSUFBSSxHQUFHLEdBQUc7WUFDUixDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxHQUFHLFFBQVE7WUFDMUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxHQUFHLFFBQVE7WUFDM0MsQ0FBQyxHQUFHLFFBQVEsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsR0FBRyxPQUFPO1NBQzFDLENBQUM7UUFFRixrQ0FBa0M7UUFDbEMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFcEcseUNBQXlDO1FBQ3pDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXJDLHVFQUF1RTtRQUN2RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDWixHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUUxQyxPQUFPLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUs7UUFDM0IsNkNBQTZDO1FBQzdDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMscUVBQXFFLENBQUMsQ0FBQztRQUNyRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUM7WUFDaEMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEIsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEIsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFMUIscUJBQXFCO1lBQ3JCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFbEYsMkJBQTJCO1lBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNWLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztxQkFDakMsUUFBUSxDQUFDLEVBQUUsQ0FBQztxQkFDWixRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQixRQUFRLElBQUksUUFBUSxDQUFDO1lBQ3ZCLENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBRUQsMkNBQTJDO1FBQzNDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUN6RCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYztRQUNuQiw4QkFBOEI7UUFDOUIsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ2pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFYQ29sb3JNb2RlID0gJ3JnYmEnIHwgJ2hleCcgfCAnaHNsYScgfCAnaHN2YScgfCBudWxsO1xuXG5pbXBvcnQgdGlueWNvbG9yLCB7IENvbG9ySW5wdXQgfSBmcm9tICd0aW55Y29sb3IyJztcbmltcG9ydCB0aW55Z3JhZGllbnQsIHsgSW5zdGFuY2UgfSBmcm9tICd0aW55Z3JhZGllbnQtZXMnO1xuXG5leHBvcnQgdHlwZSBBWENvbG9yRm9ybWF0ID0gQ29sb3JJbnB1dDtcblxuZXhwb3J0IGNsYXNzIEFYQ29sb3JVdGlsIHtcbiAgc3RhdGljIHRvKGNvbG9yOiBBWENvbG9yRm9ybWF0LCBtb2RlOiBBWENvbG9yTW9kZSk6IEFYQ29sb3JGb3JtYXQge1xuICAgIGNvbnN0IF9jb2xvciA9IHRpbnljb2xvcihjb2xvcik7XG4gICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICBjYXNlICdyZ2JhJzpcbiAgICAgICAgcmV0dXJuIF9jb2xvci50b1JnYigpO1xuICAgICAgY2FzZSAnaHNsYSc6XG4gICAgICAgIHJldHVybiBfY29sb3IudG9Ic2woKTtcbiAgICAgIGNhc2UgJ2hzdmEnOlxuICAgICAgICByZXR1cm4gX2NvbG9yLnRvSHN2KCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gX2NvbG9yLnRvSGV4KCk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIHRvU3RyaW5nKGNvbG9yOiBBWENvbG9yRm9ybWF0LCBtb2RlOiBBWENvbG9yTW9kZSA9IG51bGwpOiBzdHJpbmcge1xuICAgIGNvbnN0IF9jb2xvciA9IHRpbnljb2xvcihjb2xvcik7XG4gICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICBjYXNlICdyZ2JhJzpcbiAgICAgICAgcmV0dXJuIF9jb2xvci50b1JnYlN0cmluZygpO1xuICAgICAgY2FzZSAnaHNsYSc6XG4gICAgICAgIHJldHVybiBfY29sb3IudG9Ic2xTdHJpbmcoKTtcbiAgICAgIGNhc2UgJ2hzdmEnOlxuICAgICAgICByZXR1cm4gX2NvbG9yLnRvSHN2U3RyaW5nKCk7XG5cbiAgICAgIGNhc2UgJ2hleCc6IHtcbiAgICAgICAgY29uc3QgcmdiYSA9IF9jb2xvci50b1JnYigpO1xuICAgICAgICByZXR1cm4gcmdiYS5hICE9IDEgPyBfY29sb3IudG9IZXg4U3RyaW5nKCkgOiBfY29sb3IudG9IZXhTdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb2xvciA9PSAnc3RyaW5nJykge1xuICAgICAgICAgIGlmIChjb2xvci50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoJyMnKSkgcmV0dXJuIHRoaXMudG9TdHJpbmcoY29sb3IsICdoZXgnKTtcbiAgICAgICAgICBlbHNlIHJldHVybiB0aGlzLnRvU3RyaW5nKGNvbG9yLCAncmdiYScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKGNvbG9yLCAncmdiYScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGlzVmFsaWQoY29sb3I6IEFYQ29sb3JGb3JtYXQpOiBib29sZWFuIHtcbiAgICBjb25zdCBfY29sb3IgPSB0aW55Y29sb3IoY29sb3IpO1xuICAgIHJldHVybiBfY29sb3IuaXNWYWxpZCgpO1xuICB9XG5cbiAgc3RhdGljIG1peChiYXNlQ29sb3I6IEFYQ29sb3JGb3JtYXQsIGhleDogQVhDb2xvckZvcm1hdCwgcGVyY2VudGFnZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGlueWNvbG9yLm1peChiYXNlQ29sb3IsIGhleCwgcGVyY2VudGFnZSkudG9TdHJpbmcoJ3JnYicpO1xuICB9XG5cbiAgc3RhdGljIG11bHRpcGx5KGNvbG9yMTogQVhDb2xvckZvcm1hdCwgY29sb3IyOiBBWENvbG9yRm9ybWF0KTogc3RyaW5nIHtcbiAgICBjb25zdCByZ2IxID0gdGlueWNvbG9yKGNvbG9yMSkudG9SZ2IoKTtcbiAgICBjb25zdCByZ2IyID0gdGlueWNvbG9yKGNvbG9yMikudG9SZ2IoKTtcbiAgICByZ2IxLmIgPSBNYXRoLmZsb29yKChyZ2IxLmIgKiByZ2IyLmIpIC8gMjU1KTtcbiAgICByZ2IxLmcgPSBNYXRoLmZsb29yKChyZ2IxLmcgKiByZ2IyLmcpIC8gMjU1KTtcbiAgICByZ2IxLnIgPSBNYXRoLmZsb29yKChyZ2IxLnIgKiByZ2IyLnIpIC8gMjU1KTtcbiAgICByZXR1cm4gdGlueWNvbG9yKCdyZ2IgJyArIHJnYjEuciArICcgJyArIHJnYjEuZyArICcgJyArIHJnYjEuYikudG9TdHJpbmcoJ3JnYicpO1xuICB9XG5cbiAgc3RhdGljIGNvbnRyYXN0VG9XaGl0ZShjb2xvcjogQVhDb2xvckZvcm1hdCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRpbnljb2xvci5yZWFkYWJpbGl0eSgnI2ZmZicsIGNvbG9yKTtcbiAgfVxuXG4gIHN0YXRpYyBsaWdodGVuKGhleDogQVhDb2xvckZvcm1hdCwgcGVyY2VudGFnZT86IG51bWJlcikge1xuICAgIHJldHVybiB0aW55Y29sb3IoaGV4KS5saWdodGVuKHBlcmNlbnRhZ2UpO1xuICB9XG5cbiAgc3RhdGljIGRhcmtlbihoZXg6IEFYQ29sb3JGb3JtYXQsIHBlcmNlbnRhZ2U/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 { isBrowser } from '@acorex/core/platform';\n// @dynamic\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() && element) {\n const rtl = element.classList.contains('ax-rtl') ||\n window.getComputedStyle(element, null).getPropertyValue('direction') === 'rtl';\n return rtl;\n }\n return document.documentElement.dir === 'rtl';\n }\n static hasDark(element) {\n if (isBrowser()) {\n return element.closest('.ax-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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvdXRpbHMvc3JjL2xpYi9odG1sLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRCxXQUFXO0FBQ1gsTUFBTSxPQUFPLFVBQVU7SUFDckIsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFvQjtRQUN0QyxNQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUNoRixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLHVCQUF1QixDQUNuQyxDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFvQjtRQUNyQyxNQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUNoRixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLHVCQUF1QixDQUNuQyxDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFvQjtRQUNsQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFxQjtRQUNoQyxJQUFJLFNBQVMsRUFBRSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzNCLE1BQU0sR0FBRyxHQUNQLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDcEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLENBQUM7WUFDakYsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBb0I7UUFDakMsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDcEQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFvQjtRQUN0QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzdELE9BQU8sQ0FBQyxTQUFTLEtBQUssTUFBTSxJQUFJLFNBQVMsS0FBSyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDekcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE9BQW9CO1FBQzlDLE1BQU0sT0FBTyxHQUFrQixFQUFFLENBQUM7UUFDbEMsSUFBSSxjQUFjLEdBQXVCLE9BQU8sQ0FBQztRQUVqRCxPQUFPLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFDRCxjQUFjLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQztRQUNoRCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBBWEh0bWxVdGlsIHtcbiAgc3RhdGljIGZvY3VzRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBsaXN0ID0gWydidXR0b24nLCAnaW5wdXQnLCAnW2hyZWZdJywgJ3NlbGVjdCcsICd0ZXh0YXJlYScsICdbdGFiaW5kZXhdJ10ubWFwKFxuICAgICAgKGMpID0+IGMgKyAnOm5vdChbdGFiaW5kZXg9XCItMVwiXSknLFxuICAgICk7XG4gICAgY29uc3QgZm9jdXNhYmxlID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihsaXN0LmpvaW4oJywgJykpO1xuICAgIGlmIChmb2N1c2FibGUpIHtcbiAgICAgIGZvY3VzYWJsZS5mb2N1cygpO1xuICAgICAgcmV0dXJuIGZvY3VzYWJsZTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgYmx1ckVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgbGlzdCA9IFsnYnV0dG9uJywgJ2lucHV0JywgJ1tocmVmXScsICdzZWxlY3QnLCAndGV4dGFyZWEnLCAnW3RhYmluZGV4XSddLm1hcChcbiAgICAgIChjKSA9PiBjICsgJzpub3QoW3RhYmluZGV4PVwiLTFcIl0pJyxcbiAgICApO1xuICAgIGNvbnN0IGZvY3VzYWJsZSA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4obGlzdC5qb2luKCcsICcpKTtcbiAgICBpZiAoZm9jdXNhYmxlKSB7XG4gICAgICBmb2N1c2FibGUuYmx1cigpO1xuICAgICAgcmV0dXJuIGZvY3VzYWJsZTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgaGFzRm9jdXMoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWxlbWVudC5tYXRjaGVzKCc6Zm9jdXMtd2l0aGluJykgfHwgZWxlbWVudC5tYXRjaGVzKCc6Zm9jdXMnKTtcbiAgfVxuXG4gIHN0YXRpYyBpc1J0bChlbGVtZW50PzogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAoaXNCcm93c2VyKCkgJiYgZWxlbWVudCkge1xuICAgICAgY29uc3QgcnRsID1cbiAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2F4LXJ0bCcpIHx8XG4gICAgICAgIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpID09PSAncnRsJztcbiAgICAgIHJldHVybiBydGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXIgPT09ICdydGwnO1xuICB9XG5cbiAgc3RhdGljIGhhc0RhcmsoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgIHJldHVybiBlbGVtZW50LmNsb3Nlc3QoJy5heC1kYXJrJykgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvKipcbiAgICogSGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIGFuIGVsZW1lbnQgaXMgc2Nyb2xsYWJsZVxuICAgKi9cbiAgc3RhdGljIGlzU2Nyb2xsYWJsZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG92ZXJmbG93WSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLm92ZXJmbG93WTtcbiAgICByZXR1cm4gKG92ZXJmbG93WSA9PT0gJ2F1dG8nIHx8IG92ZXJmbG93WSA9PT0gJ3Njcm9sbCcpICYmIGVsZW1lbnQuc2Nyb2xsSGVpZ2h0ID4gZWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gIH1cblxuICAvKipcbiAgICogVXRpbGl0eSBmdW5jdGlvbiB0byBmaW5kIHNjcm9sbGFibGUgcGFyZW50IGVsZW1lbnRzXG4gICAqL1xuICBzdGF0aWMgZ2V0U2Nyb2xsYWJsZVBhcmVudHMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdIHtcbiAgICBjb25zdCBwYXJlbnRzOiBIVE1MRWxlbWVudFtdID0gW107XG4gICAgbGV0IGN1cnJlbnRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBlbGVtZW50O1xuXG4gICAgd2hpbGUgKGN1cnJlbnRFbGVtZW50KSB7XG4gICAgICBpZiAoQVhIdG1sVXRpbC5pc1Njcm9sbGFibGUoY3VycmVudEVsZW1lbnQpKSB7XG4gICAgICAgIHBhcmVudHMucHVzaChjdXJyZW50RWxlbWVudCk7XG4gICAgICB9XG4gICAgICBjdXJyZW50RWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmVudHM7XG4gIH1cbn1cbiJdfQ==","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.0.3\", ngImport: i0, type: AXUnsubscriber, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AXUnsubscriber }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.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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"}
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/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 { isBrowser } from '@acorex/core/platform';\n// @dynamic\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() && element) {\n const rtl = element.classList.contains('ax-rtl') ||\n window.getComputedStyle(element, null).getPropertyValue('direction') === 'rtl';\n return rtl;\n }\n return document.documentElement.dir === 'rtl';\n }\n static hasDark(element) {\n if (isBrowser()) {\n return element.closest('.ax-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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvdXRpbHMvc3JjL2xpYi9odG1sLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRCxXQUFXO0FBQ1gsTUFBTSxPQUFPLFVBQVU7SUFDckIsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFvQjtRQUN0QyxNQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUNoRixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLHVCQUF1QixDQUNuQyxDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFvQjtRQUNyQyxNQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUNoRixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLHVCQUF1QixDQUNuQyxDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFvQjtRQUNsQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFxQjtRQUNoQyxJQUFJLFNBQVMsRUFBRSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzNCLE1BQU0sR0FBRyxHQUNQLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDcEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLENBQUM7WUFDakYsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBb0I7UUFDakMsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDcEQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFvQjtRQUN0QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzdELE9BQU8sQ0FBQyxTQUFTLEtBQUssTUFBTSxJQUFJLFNBQVMsS0FBSyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDekcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE9BQW9CO1FBQzlDLE1BQU0sT0FBTyxHQUFrQixFQUFFLENBQUM7UUFDbEMsSUFBSSxjQUFjLEdBQXVCLE9BQU8sQ0FBQztRQUVqRCxPQUFPLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFDRCxjQUFjLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQztRQUNoRCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBBWEh0bWxVdGlsIHtcbiAgc3RhdGljIGZvY3VzRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBsaXN0ID0gWydidXR0b24nLCAnaW5wdXQnLCAnW2hyZWZdJywgJ3NlbGVjdCcsICd0ZXh0YXJlYScsICdbdGFiaW5kZXhdJ10ubWFwKFxuICAgICAgKGMpID0+IGMgKyAnOm5vdChbdGFiaW5kZXg9XCItMVwiXSknLFxuICAgICk7XG4gICAgY29uc3QgZm9jdXNhYmxlID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihsaXN0LmpvaW4oJywgJykpO1xuICAgIGlmIChmb2N1c2FibGUpIHtcbiAgICAgIGZvY3VzYWJsZS5mb2N1cygpO1xuICAgICAgcmV0dXJuIGZvY3VzYWJsZTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgYmx1ckVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgbGlzdCA9IFsnYnV0dG9uJywgJ2lucHV0JywgJ1tocmVmXScsICdzZWxlY3QnLCAndGV4dGFyZWEnLCAnW3RhYmluZGV4XSddLm1hcChcbiAgICAgIChjKSA9PiBjICsgJzpub3QoW3RhYmluZGV4PVwiLTFcIl0pJyxcbiAgICApO1xuICAgIGNvbnN0IGZvY3VzYWJsZSA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4obGlzdC5qb2luKCcsICcpKTtcbiAgICBpZiAoZm9jdXNhYmxlKSB7XG4gICAgICBmb2N1c2FibGUuYmx1cigpO1xuICAgICAgcmV0dXJuIGZvY3VzYWJsZTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgaGFzRm9jdXMoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWxlbWVudC5tYXRjaGVzKCc6Zm9jdXMtd2l0aGluJykgfHwgZWxlbWVudC5tYXRjaGVzKCc6Zm9jdXMnKTtcbiAgfVxuXG4gIHN0YXRpYyBpc1J0bChlbGVtZW50PzogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAoaXNCcm93c2VyKCkgJiYgZWxlbWVudCkge1xuICAgICAgY29uc3QgcnRsID1cbiAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2F4LXJ0bCcpIHx8XG4gICAgICAgIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpID09PSAncnRsJztcbiAgICAgIHJldHVybiBydGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXIgPT09ICdydGwnO1xuICB9XG5cbiAgc3RhdGljIGhhc0RhcmsoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgIHJldHVybiBlbGVtZW50LmNsb3Nlc3QoJy5heC1kYXJrJykgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvKipcbiAgICogSGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIGFuIGVsZW1lbnQgaXMgc2Nyb2xsYWJsZVxuICAgKi9cbiAgc3RhdGljIGlzU2Nyb2xsYWJsZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG92ZXJmbG93WSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLm92ZXJmbG93WTtcbiAgICByZXR1cm4gKG92ZXJmbG93WSA9PT0gJ2F1dG8nIHx8IG92ZXJmbG93WSA9PT0gJ3Njcm9sbCcpICYmIGVsZW1lbnQuc2Nyb2xsSGVpZ2h0ID4gZWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gIH1cblxuICAvKipcbiAgICogVXRpbGl0eSBmdW5jdGlvbiB0byBmaW5kIHNjcm9sbGFibGUgcGFyZW50IGVsZW1lbnRzXG4gICAqL1xuICBzdGF0aWMgZ2V0U2Nyb2xsYWJsZVBhcmVudHMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdIHtcbiAgICBjb25zdCBwYXJlbnRzOiBIVE1MRWxlbWVudFtdID0gW107XG4gICAgbGV0IGN1cnJlbnRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBlbGVtZW50O1xuXG4gICAgd2hpbGUgKGN1cnJlbnRFbGVtZW50KSB7XG4gICAgICBpZiAoQVhIdG1sVXRpbC5pc1Njcm9sbGFibGUoY3VycmVudEVsZW1lbnQpKSB7XG4gICAgICAgIHBhcmVudHMucHVzaChjdXJyZW50RWxlbWVudCk7XG4gICAgICB9XG4gICAgICBjdXJyZW50RWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmVudHM7XG4gIH1cbn1cbiJdfQ==","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.0.4\", ngImport: i0, type: AXUnsubscriber, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXUnsubscriber }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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: "20.0.3", ngImport: i0, type: AXCallbackValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
34
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXCallbackValidationRule }); }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCallbackValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
34
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXCallbackValidationRule }); }
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXCallbackValidationRule, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", 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: "20.0.3", ngImport: i0, type: AXRegexValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
76
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXRegexValidationRule }); }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXRegexValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
76
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXRegexValidationRule }); }
77
77
  }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXRegexValidationRule, decorators: [{
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", 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: "20.0.3", ngImport: i0, type: AXRequiredValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
111
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXRequiredValidationRule }); }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXRequiredValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
111
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXRequiredValidationRule }); }
112
112
  }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXRequiredValidationRule, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", 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: "20.0.3", ngImport: i0, type: AXLengthValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
134
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXLengthValidationRule }); }
133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXLengthValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
134
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXLengthValidationRule }); }
135
135
  }
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXLengthValidationRule, decorators: [{
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", 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: "20.0.3", ngImport: i0, type: AXMaxLengthValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
155
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXMaxLengthValidationRule }); }
154
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXMaxLengthValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
155
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXMaxLengthValidationRule }); }
156
156
  }
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXMaxLengthValidationRule, decorators: [{
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", 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: "20.0.3", ngImport: i0, type: AXMinLengthValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
175
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXMinLengthValidationRule }); }
174
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXMinLengthValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
175
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXMinLengthValidationRule }); }
176
176
  }
177
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXMinLengthValidationRule, decorators: [{
177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", 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: "20.0.3", ngImport: i0, type: AXBetweenValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
203
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXBetweenValidationRule }); }
202
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXBetweenValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
203
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXBetweenValidationRule }); }
204
204
  }
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXBetweenValidationRule, decorators: [{
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", 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: "20.0.3", ngImport: i0, type: AXEqualValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
226
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXEqualValidationRule }); }
225
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXEqualValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
226
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXEqualValidationRule }); }
227
227
  }
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXEqualValidationRule, decorators: [{
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", 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: "20.0.3", ngImport: i0, type: AXGreaterThanValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
248
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXGreaterThanValidationRule }); }
247
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXGreaterThanValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
248
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXGreaterThanValidationRule }); }
249
249
  }
250
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXGreaterThanValidationRule, decorators: [{
250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", 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: "20.0.3", ngImport: i0, type: AXLessThanValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
270
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXLessThanValidationRule }); }
269
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXLessThanValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
270
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXLessThanValidationRule }); }
271
271
  }
272
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXLessThanValidationRule, decorators: [{
272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", 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: "20.0.3", ngImport: i0, type: AXValidationRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
333
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXValidationRegistryService, providedIn: 'root' }); }
332
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXValidationRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
333
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXValidationRegistryService, providedIn: 'root' }); }
334
334
  }
335
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXValidationRegistryService, decorators: [{
335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXValidationRegistryService, decorators: [{
336
336
  type: Injectable,
337
337
  args: [{
338
338
  providedIn: 'root',
@@ -369,10 +369,10 @@ class AXValidationService {
369
369
  ruleFor(value) {
370
370
  return new AXValidationRuleChain(this, value);
371
371
  }
372
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXValidationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
373
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXValidationService, providedIn: 'root' }); }
372
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXValidationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
373
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXValidationService, providedIn: 'root' }); }
374
374
  }
375
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXValidationService, decorators: [{
375
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXValidationService, decorators: [{
376
376
  type: Injectable,
377
377
  args: [{ providedIn: 'root' }]
378
378
  }] });
@@ -457,11 +457,11 @@ class AXValidationModule {
457
457
  f();
458
458
  });
459
459
  }
460
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXValidationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
461
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.3", ngImport: i0, type: AXValidationModule }); }
462
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXValidationModule, providers: [...BUILT_IN_RULES] }); }
460
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXValidationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
461
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.4", ngImport: i0, type: AXValidationModule }); }
462
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXValidationModule, providers: [...BUILT_IN_RULES] }); }
463
463
  }
464
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AXValidationModule, decorators: [{
464
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: AXValidationModule, decorators: [{
465
465
  type: NgModule,
466
466
  args: [{
467
467
  imports: [],