@acorex/cdk 21.0.1-next.5 → 21.0.1-next.51

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 (53) hide show
  1. package/carousel/index.d.ts +5 -7
  2. package/common/index.d.ts +1 -0
  3. package/drawer/index.d.ts +2 -0
  4. package/fesm2022/acorex-cdk-accordion.mjs +24 -24
  5. package/fesm2022/acorex-cdk-accordion.mjs.map +1 -1
  6. package/fesm2022/acorex-cdk-carousel.mjs +22 -31
  7. package/fesm2022/acorex-cdk-carousel.mjs.map +1 -1
  8. package/fesm2022/acorex-cdk-clipboard.mjs +7 -7
  9. package/fesm2022/acorex-cdk-clipboard.mjs.map +1 -1
  10. package/fesm2022/acorex-cdk-common.mjs +118 -109
  11. package/fesm2022/acorex-cdk-common.mjs.map +1 -1
  12. package/fesm2022/acorex-cdk-dom.mjs +4 -4
  13. package/fesm2022/acorex-cdk-dom.mjs.map +1 -1
  14. package/fesm2022/acorex-cdk-double-click.mjs +4 -4
  15. package/fesm2022/acorex-cdk-double-click.mjs.map +1 -1
  16. package/fesm2022/acorex-cdk-drag-drop.mjs +21 -23
  17. package/fesm2022/acorex-cdk-drag-drop.mjs.map +1 -1
  18. package/fesm2022/acorex-cdk-drawer.mjs +27 -17
  19. package/fesm2022/acorex-cdk-drawer.mjs.map +1 -1
  20. package/fesm2022/acorex-cdk-focus-trap.mjs +3 -3
  21. package/fesm2022/acorex-cdk-focus-trap.mjs.map +1 -1
  22. package/fesm2022/acorex-cdk-full-screen.mjs +16 -5
  23. package/fesm2022/acorex-cdk-full-screen.mjs.map +1 -1
  24. package/fesm2022/acorex-cdk-input-mask.mjs +67 -14
  25. package/fesm2022/acorex-cdk-input-mask.mjs.map +1 -1
  26. package/fesm2022/acorex-cdk-list-navigation.mjs +12 -12
  27. package/fesm2022/acorex-cdk-list-navigation.mjs.map +1 -1
  28. package/fesm2022/acorex-cdk-outline.mjs +8 -8
  29. package/fesm2022/acorex-cdk-outline.mjs.map +1 -1
  30. package/fesm2022/acorex-cdk-overlay.mjs +365 -14
  31. package/fesm2022/acorex-cdk-overlay.mjs.map +1 -1
  32. package/fesm2022/acorex-cdk-pan-view.mjs +4 -4
  33. package/fesm2022/acorex-cdk-pan-view.mjs.map +1 -1
  34. package/fesm2022/acorex-cdk-resizable.mjs +4 -4
  35. package/fesm2022/acorex-cdk-resizable.mjs.map +1 -1
  36. package/fesm2022/acorex-cdk-selection.mjs +12 -12
  37. package/fesm2022/acorex-cdk-selection.mjs.map +1 -1
  38. package/fesm2022/acorex-cdk-sliding-item.mjs +3 -3
  39. package/fesm2022/acorex-cdk-sliding-item.mjs.map +1 -1
  40. package/fesm2022/acorex-cdk-sticky.mjs +3 -3
  41. package/fesm2022/acorex-cdk-sticky.mjs.map +1 -1
  42. package/fesm2022/acorex-cdk-uploader.mjs +10 -10
  43. package/fesm2022/acorex-cdk-uploader.mjs.map +1 -1
  44. package/fesm2022/acorex-cdk-virtual-scroll.mjs +11 -11
  45. package/fesm2022/acorex-cdk-virtual-scroll.mjs.map +1 -1
  46. package/fesm2022/acorex-cdk-z-index.mjs +35 -0
  47. package/fesm2022/acorex-cdk-z-index.mjs.map +1 -0
  48. package/full-screen/index.d.ts +5 -0
  49. package/input-mask/index.d.ts +39 -3
  50. package/overlay/index.d.ts +106 -5
  51. package/package.json +12 -8
  52. package/z-index/README.md +3 -0
  53. package/z-index/index.d.ts +14 -0
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk-full-screen.mjs","sources":["../tmp-esm2022/full-screen/lib/full-screen.directive.js","../tmp-esm2022/full-screen/acorex-cdk-full-screen.js"],"sourcesContent":["import { Directive, effect, ElementRef, inject, output, Renderer2, signal, untracked } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Fullscreen directive that provides CSS-based fullscreen functionality\n * Usage: <element axFullscreen #fullscreen=\"axFullscreen\"></element>\n * Then: fullscreen.toggle() or fullscreen.enter() or fullscreen.exit()\n */\nexport class AXFullScreenDirective {\n constructor() {\n /**\n * Current fullscreen state\n */\n this.isFullscreenState = signal(false, ...(ngDevMode ? [{ debugName: \"isFullscreenState\" }] : []));\n /**\n * Original element styles to restore\n */\n this.originalStyles = {};\n /**\n * Original parent element reference\n */\n this.originalParent = null;\n /**\n * Fullscreen container element\n */\n this.fullscreenContainer = null;\n /**\n * Fullscreen change event\n */\n this.fullscreenChange = output();\n this.renderer = inject(Renderer2);\n this.elementRef = inject(ElementRef);\n // Sync state changes to output\n effect(() => {\n const isFullscreen = this.isFullscreenState();\n untracked(() => {\n this.fullscreenChange.emit(isFullscreen);\n });\n });\n }\n /**\n * Toggle fullscreen state\n */\n toggle() {\n if (this.isFullscreenState()) {\n this.exit();\n }\n else {\n this.enter();\n }\n }\n /**\n * Enter fullscreen mode using CSS\n */\n enter() {\n if (this.isFullscreenState()) {\n return;\n }\n const element = this.elementRef.nativeElement;\n try {\n // Store original styles and parent\n this.storeOriginalStyles(element);\n this.originalParent = element.parentElement;\n // Create fullscreen container\n this.fullscreenContainer = this.renderer.createElement('div');\n this.renderer.setStyle(this.fullscreenContainer, 'position', 'fixed');\n this.renderer.setStyle(this.fullscreenContainer, 'top', '0');\n this.renderer.setStyle(this.fullscreenContainer, 'left', '0');\n this.renderer.setStyle(this.fullscreenContainer, 'width', '100vw');\n this.renderer.setStyle(this.fullscreenContainer, 'height', '100vh');\n this.renderer.setStyle(this.fullscreenContainer, 'z-index', '100');\n this.renderer.setStyle(this.fullscreenContainer, 'background-color', '#ffffff');\n this.renderer.setStyle(this.fullscreenContainer, 'overflow', 'auto');\n // Move element to container\n this.renderer.appendChild(this.fullscreenContainer, element);\n // Apply fullscreen styles to element\n this.renderer.setStyle(element, 'position', 'relative');\n this.renderer.setStyle(element, 'width', '100%');\n this.renderer.setStyle(element, 'height', '100%');\n this.renderer.setStyle(element, 'margin', '0');\n this.renderer.setStyle(element, 'padding', '0');\n // Append container to body\n this.renderer.appendChild(document.body, this.fullscreenContainer);\n // Prevent body scroll\n this.renderer.setStyle(document.body, 'overflow', 'hidden');\n this.isFullscreenState.set(true);\n }\n catch (error) {\n console.error('Error entering fullscreen:', error);\n this.restoreOriginalStyles(element);\n }\n }\n /**\n * Exit fullscreen mode\n */\n exit() {\n if (!this.isFullscreenState()) {\n return;\n }\n const element = this.elementRef.nativeElement;\n try {\n // Restore body scroll\n this.renderer.removeStyle(document.body, 'overflow');\n // Move element back to original parent\n if (this.fullscreenContainer && this.originalParent) {\n this.renderer.removeChild(this.fullscreenContainer, element);\n this.renderer.appendChild(this.originalParent, element);\n // Remove container\n this.renderer.removeChild(document.body, this.fullscreenContainer);\n this.fullscreenContainer = null;\n }\n // Restore original styles\n this.restoreOriginalStyles(element);\n this.isFullscreenState.set(false);\n }\n catch (error) {\n console.error('Error exiting fullscreen:', error);\n }\n }\n /**\n * Check if currently in fullscreen mode\n */\n isFullscreen() {\n return this.isFullscreenState();\n }\n /**\n * Store original element styles\n */\n storeOriginalStyles(element) {\n const computedStyle = window.getComputedStyle(element);\n this.originalStyles = {\n position: computedStyle.position,\n top: computedStyle.top,\n left: computedStyle.left,\n width: computedStyle.width,\n height: computedStyle.height,\n zIndex: computedStyle.zIndex,\n backgroundColor: computedStyle.backgroundColor,\n margin: computedStyle.margin,\n padding: computedStyle.padding,\n };\n }\n /**\n * Restore original element styles\n */\n restoreOriginalStyles(element) {\n if (!this.originalStyles) {\n return;\n }\n // Restore each style property\n Object.entries(this.originalStyles).forEach(([key, value]) => {\n const styleKey = this.camelToKebabCase(key);\n if (value) {\n this.renderer.setStyle(element, styleKey, value);\n }\n else {\n this.renderer.removeStyle(element, styleKey);\n }\n });\n this.originalStyles = {};\n }\n /**\n * Convert camelCase to kebab-case for CSS properties\n */\n camelToKebabCase(str) {\n return str.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXFullScreenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.15\", type: AXFullScreenDirective, isStandalone: true, selector: \"[axFullscreen]\", outputs: { fullscreenChange: \"fullscreenChange\" }, exportAs: [\"axFullscreen\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXFullScreenDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axFullscreen]',\n standalone: true,\n exportAs: 'axFullscreen',\n }]\n }], ctorParameters: () => [], propDecorators: { fullscreenChange: [{ type: i0.Output, args: [\"fullscreenChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbC1zY3JlZW4uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2Z1bGwtc2NyZWVuL3NyYy9saWIvZnVsbC1zY3JlZW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU1Rzs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHFCQUFxQjtJQXVDaEM7UUF0Q0E7O1dBRUc7UUFDYyxzQkFBaUIsR0FBRyxNQUFNLENBQVUsS0FBSyw2REFBQyxDQUFDO1FBRTVEOztXQUVHO1FBQ0ssbUJBQWMsR0FVbEIsRUFBRSxDQUFDO1FBRVA7O1dBRUc7UUFDSyxtQkFBYyxHQUF1QixJQUFJLENBQUM7UUFFbEQ7O1dBRUc7UUFDSyx3QkFBbUIsR0FBdUIsSUFBSSxDQUFDO1FBRXZEOztXQUVHO1FBQ00scUJBQWdCLEdBQUcsTUFBTSxFQUFXLENBQUM7UUFFN0IsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUd4RSwrQkFBK0I7UUFDL0IsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzlDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMzQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVB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TyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQixDQUFDLEdBQVc7UUFDbEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLDhCQUE4QixFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVFLENBQUM7K0dBak1VLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsY0FBYztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBvdXRwdXQsIFJlbmRlcmVyMiwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBGdWxsc2NyZWVuIGRpcmVjdGl2ZSB0aGF0IHByb3ZpZGVzIENTUy1iYXNlZCBmdWxsc2NyZWVuIGZ1bmN0aW9uYWxpdHlcbiAqIFVzYWdlOiA8ZWxlbWVudCBheEZ1bGxzY3JlZW4gI2Z1bGxzY3JlZW49XCJheEZ1bGxzY3JlZW5cIj48L2VsZW1lbnQ+XG4gKiBUaGVuOiBmdWxsc2NyZWVuLnRvZ2dsZSgpIG9yIGZ1bGxzY3JlZW4uZW50ZXIoKSBvciBmdWxsc2NyZWVuLmV4aXQoKVxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhGdWxsc2NyZWVuXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGV4cG9ydEFzOiAnYXhGdWxsc2NyZWVuJyxcbn0pXG5leHBvcnQgY2xhc3MgQVhGdWxsU2NyZWVuRGlyZWN0aXZlIHtcbiAgLyoqXG4gICAqIEN1cnJlbnQgZnVsbHNjcmVlbiBzdGF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBpc0Z1bGxzY3JlZW5TdGF0ZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgLyoqXG4gICAqIE9yaWdpbmFsIGVsZW1lbnQgc3R5bGVzIHRvIHJlc3RvcmVcbiAgICovXG4gIHByaXZhdGUgb3JpZ2luYWxTdHlsZXM6IHtcbiAgICBwb3NpdGlvbj86IHN0cmluZztcbiAgICB0b3A/OiBzdHJpbmc7XG4gICAgbGVmdD86IHN0cmluZztcbiAgICB3aWR0aD86IHN0cmluZztcbiAgICBoZWlnaHQ/OiBzdHJpbmc7XG4gICAgekluZGV4Pzogc3RyaW5nO1xuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICBtYXJnaW4/OiBzdHJpbmc7XG4gICAgcGFkZGluZz86IHN0cmluZztcbiAgfSA9IHt9O1xuXG4gIC8qKlxuICAgKiBPcmlnaW5hbCBwYXJlbnQgZWxlbWVudCByZWZlcmVuY2VcbiAgICovXG4gIHByaXZhdGUgb3JpZ2luYWxQYXJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEZ1bGxzY3JlZW4gY29udGFpbmVyIGVsZW1lbnRcbiAgICovXG4gIHByaXZhdGUgZnVsbHNjcmVlbkNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogRnVsbHNjcmVlbiBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHJlYWRvbmx5IGZ1bGxzY3JlZW5DaGFuZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gU3luYyBzdGF0ZSBjaGFuZ2VzIHRvIG91dHB1dFxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBpc0Z1bGxzY3JlZW4gPSB0aGlzLmlzRnVsbHNjcmVlblN0YXRlKCk7XG4gICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2UuZW1pdChpc0Z1bGxzY3JlZW4pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIGZ1bGxzY3JlZW4gc3RhdGVcbiAgICovXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Z1bGxzY3JlZW5TdGF0ZSgpKSB7XG4gICAgICB0aGlzLmV4aXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbnRlcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbnRlciBmdWxsc2NyZWVuIG1vZGUgdXNpbmcgQ1NTXG4gICAqL1xuICBlbnRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Z1bGxzY3JlZW5TdGF0ZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFN0b3JlIG9yaWdpbmFsIHN0eWxlcyBhbmQgcGFyZW50XG4gICAgICB0aGlzLnN0b3JlT3JpZ2luYWxTdHlsZXMoZWxlbWVudCk7XG4gICAgICB0aGlzLm9yaWdpbmFsUGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXG4gICAgICAvLyBDcmVhdGUgZnVsbHNjcmVlbiBjb250YWluZXJcbiAgICAgIHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciwgJ3Bvc2l0aW9uJywgJ2ZpeGVkJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciwgJ3RvcCcsICcwJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciwgJ2xlZnQnLCAnMCcpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIsICd3aWR0aCcsICcxMDB2dycpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIsICdoZWlnaHQnLCAnMTAwdmgnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5mdWxsc2NyZWVuQ29udGFpbmVyLCAnei1pbmRleCcsICcxMDAnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5mdWxsc2NyZWVuQ29udGFpbmVyLCAnYmFja2dyb3VuZC1jb2xvcicsICcjZmZmZmZmJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciwgJ292ZXJmbG93JywgJ2F1dG8nKTtcblxuICAgICAgLy8gTW92ZSBlbGVtZW50IHRvIGNvbnRhaW5lclxuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIsIGVsZW1lbnQpO1xuXG4gICAgICAvLyBBcHBseSBmdWxsc2NyZWVuIHN0eWxlcyB0byBlbGVtZW50XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQsICdwb3NpdGlvbicsICdyZWxhdGl2ZScpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50LCAnd2lkdGgnLCAnMTAwJScpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50LCAnaGVpZ2h0JywgJzEwMCUnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudCwgJ21hcmdpbicsICcwJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQsICdwYWRkaW5nJywgJzAnKTtcblxuICAgICAgLy8gQXBwZW5kIGNvbnRhaW5lciB0byBib2R5XG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lcik7XG5cbiAgICAgIC8vIFByZXZlbnQgYm9keSBzY3JvbGxcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuXG4gICAgICB0aGlzLmlzRnVsbHNjcmVlblN0YXRlLnNldCh0cnVlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZW50ZXJpbmcgZnVsbHNjcmVlbjonLCBlcnJvcik7XG4gICAgICB0aGlzLnJlc3RvcmVPcmlnaW5hbFN0eWxlcyhlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhpdCBmdWxsc2NyZWVuIG1vZGVcbiAgICovXG4gIGV4aXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzRnVsbHNjcmVlblN0YXRlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0cnkge1xuICAgICAgLy8gUmVzdG9yZSBib2R5IHNjcm9sbFxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShkb2N1bWVudC5ib2R5LCAnb3ZlcmZsb3cnKTtcblxuICAgICAgLy8gTW92ZSBlbGVtZW50IGJhY2sgdG8gb3JpZ2luYWwgcGFyZW50XG4gICAgICBpZiAodGhpcy5mdWxsc2NyZWVuQ29udGFpbmVyICYmIHRoaXMub3JpZ2luYWxQYXJlbnQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIsIGVsZW1lbnQpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMub3JpZ2luYWxQYXJlbnQsIGVsZW1lbnQpO1xuXG4gICAgICAgIC8vIFJlbW92ZSBjb250YWluZXJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChkb2N1bWVudC5ib2R5LCB0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIpO1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXN0b3JlIG9yaWdpbmFsIHN0eWxlc1xuICAgICAgdGhpcy5yZXN0b3JlT3JpZ2luYWxTdHlsZXMoZWxlbWVudCk7XG5cbiAgICAgIHRoaXMuaXNGdWxsc2NyZWVuU3RhdGUuc2V0KGZhbHNlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZXhpdGluZyBmdWxsc2NyZWVuOicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgY3VycmVudGx5IGluIGZ1bGxzY3JlZW4gbW9kZVxuICAgKi9cbiAgaXNGdWxsc2NyZWVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRnVsbHNjcmVlblN0YXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcmUgb3JpZ2luYWwgZWxlbWVudCBzdHlsZXNcbiAgICovXG4gIHByaXZhdGUgc3RvcmVPcmlnaW5hbFN0eWxlcyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICB0aGlzLm9yaWdpbmFsU3R5bGVzID0ge1xuICAgICAgcG9zaXRpb246IGNvbXB1dGVkU3R5bGUucG9zaXRpb24sXG4gICAgICB0b3A6IGNvbXB1dGVkU3R5bGUudG9wLFxuICAgICAgbGVmdDogY29tcHV0ZWRTdHlsZS5sZWZ0LFxuICAgICAgd2lkdGg6IGNvbXB1dGVkU3R5bGUud2lkdGgsXG4gICAgICBoZWlnaHQ6IGNvbXB1dGVkU3R5bGUuaGVpZ2h0LFxuICAgICAgekluZGV4OiBjb21wdXRlZFN0eWxlLnpJbmRleCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogY29tcHV0ZWRTdHlsZS5iYWNrZ3JvdW5kQ29sb3IsXG4gICAgICBtYXJnaW46IGNvbXB1dGVkU3R5bGUubWFyZ2luLFxuICAgICAgcGFkZGluZzogY29tcHV0ZWRTdHlsZS5wYWRkaW5nLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVzdG9yZSBvcmlnaW5hbCBlbGVtZW50IHN0eWxlc1xuICAgKi9cbiAgcHJpdmF0ZSByZXN0b3JlT3JpZ2luYWxTdHlsZXMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3JpZ2luYWxTdHlsZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZXN0b3JlIGVhY2ggc3R5bGUgcHJvcGVydHlcbiAgICBPYmplY3QuZW50cmllcyh0aGlzLm9yaWdpbmFsU3R5bGVzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGNvbnN0IHN0eWxlS2V5ID0gdGhpcy5jYW1lbFRvS2ViYWJDYXNlKGtleSk7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50LCBzdHlsZUtleSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShlbGVtZW50LCBzdHlsZUtleSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm9yaWdpbmFsU3R5bGVzID0ge307XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBjYW1lbENhc2UgdG8ga2ViYWItY2FzZSBmb3IgQ1NTIHByb3BlcnRpZXNcbiAgICovXG4gIHByaXZhdGUgY2FtZWxUb0tlYmFiQ2FzZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oW2EtejAtOV18KD89W0EtWl0pKShbQS1aXSkvZywgJyQxLSQyJykudG9Mb3dlckNhc2UoKTtcbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1mdWxsLXNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9mdWxsLXNjcmVlbi9zcmMvYWNvcmV4LWNkay1mdWxsLXNjcmVlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-cdk-full-screen.mjs","sources":["../tmp-esm2022/full-screen/lib/full-screen.directive.js","../tmp-esm2022/full-screen/acorex-cdk-full-screen.js"],"sourcesContent":["import { AXZIndexService } from '@acorex/core/z-index';\nimport { Directive, effect, ElementRef, inject, output, Renderer2, signal, untracked } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Fullscreen directive that provides CSS-based fullscreen functionality\n * Usage: <element axFullscreen #fullscreen=\"axFullscreen\"></element>\n * Then: fullscreen.toggle() or fullscreen.enter() or fullscreen.exit()\n */\nexport class AXFullScreenDirective {\n constructor() {\n /**\n * Current fullscreen state\n */\n this.isFullscreenState = signal(false, ...(ngDevMode ? [{ debugName: \"isFullscreenState\" }] : []));\n /**\n * Original element styles to restore\n */\n this.originalStyles = {};\n /**\n * Original parent element reference\n */\n this.originalParent = null;\n /**\n * Fullscreen container element\n */\n this.fullscreenContainer = null;\n /**\n * Fullscreen change event\n */\n this.fullscreenChange = output();\n /**\n * Z-index token for this fullscreen instance\n */\n this.zToken = null;\n this.renderer = inject(Renderer2);\n this.elementRef = inject(ElementRef);\n this.zIndexService = inject(AXZIndexService);\n // Sync state changes to output\n effect(() => {\n const isFullscreen = this.isFullscreenState();\n untracked(() => {\n this.fullscreenChange.emit(isFullscreen);\n });\n });\n }\n /**\n * Toggle fullscreen state\n */\n toggle() {\n if (this.isFullscreenState()) {\n this.exit();\n }\n else {\n this.enter();\n }\n }\n /**\n * Enter fullscreen mode using CSS\n */\n enter() {\n if (this.isFullscreenState()) {\n return;\n }\n const element = this.elementRef.nativeElement;\n try {\n // Store original styles and parent\n this.storeOriginalStyles(element);\n this.originalParent = element.parentElement;\n // Acquire z-index token\n this.zToken = this.zIndexService.acquire();\n // Create fullscreen container\n this.fullscreenContainer = this.renderer.createElement('div');\n this.renderer.setStyle(this.fullscreenContainer, 'position', 'fixed');\n this.renderer.setStyle(this.fullscreenContainer, 'top', '0');\n this.renderer.setStyle(this.fullscreenContainer, 'left', '0');\n this.renderer.setStyle(this.fullscreenContainer, 'width', '100vw');\n this.renderer.setStyle(this.fullscreenContainer, 'height', '100vh');\n this.renderer.setStyle(this.fullscreenContainer, 'z-index', String(this.zToken.zIndex));\n this.renderer.setStyle(this.fullscreenContainer, 'background-color', '#ffffff');\n this.renderer.setStyle(this.fullscreenContainer, 'overflow', 'auto');\n // Move element to container\n this.renderer.appendChild(this.fullscreenContainer, element);\n // Apply fullscreen styles to element\n this.renderer.setStyle(element, 'position', 'relative');\n this.renderer.setStyle(element, 'width', '100%');\n this.renderer.setStyle(element, 'height', '100%');\n this.renderer.setStyle(element, 'margin', '0');\n this.renderer.setStyle(element, 'padding', '0');\n // Append container to body\n this.renderer.appendChild(document.body, this.fullscreenContainer);\n // Prevent body scroll\n this.renderer.setStyle(document.body, 'overflow', 'hidden');\n this.isFullscreenState.set(true);\n }\n catch (error) {\n console.error('Error entering fullscreen:', error);\n this.restoreOriginalStyles(element);\n }\n }\n /**\n * Exit fullscreen mode\n */\n exit() {\n if (!this.isFullscreenState()) {\n return;\n }\n const element = this.elementRef.nativeElement;\n try {\n // Restore body scroll\n this.renderer.removeStyle(document.body, 'overflow');\n // Move element back to original parent\n if (this.fullscreenContainer && this.originalParent) {\n this.renderer.removeChild(this.fullscreenContainer, element);\n this.renderer.appendChild(this.originalParent, element);\n // Remove container\n this.renderer.removeChild(document.body, this.fullscreenContainer);\n this.fullscreenContainer = null;\n }\n // Release z-index token\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n // Restore original styles\n this.restoreOriginalStyles(element);\n this.isFullscreenState.set(false);\n }\n catch (error) {\n console.error('Error exiting fullscreen:', error);\n }\n }\n /**\n * Check if currently in fullscreen mode\n */\n isFullscreen() {\n return this.isFullscreenState();\n }\n /**\n * Store original element styles\n */\n storeOriginalStyles(element) {\n const computedStyle = window.getComputedStyle(element);\n this.originalStyles = {\n position: computedStyle.position,\n top: computedStyle.top,\n left: computedStyle.left,\n width: computedStyle.width,\n height: computedStyle.height,\n zIndex: computedStyle.zIndex,\n backgroundColor: computedStyle.backgroundColor,\n margin: computedStyle.margin,\n padding: computedStyle.padding,\n };\n }\n /**\n * Restore original element styles\n */\n restoreOriginalStyles(element) {\n if (!this.originalStyles) {\n return;\n }\n // Restore each style property\n Object.entries(this.originalStyles).forEach(([key, value]) => {\n const styleKey = this.camelToKebabCase(key);\n if (value) {\n this.renderer.setStyle(element, styleKey, value);\n }\n else {\n this.renderer.removeStyle(element, styleKey);\n }\n });\n this.originalStyles = {};\n }\n /**\n * Convert camelCase to kebab-case for CSS properties\n */\n camelToKebabCase(str) {\n return str.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, '$1-$2').toLowerCase();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFullScreenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXFullScreenDirective, isStandalone: true, selector: \"[axFullscreen]\", outputs: { fullscreenChange: \"fullscreenChange\" }, exportAs: [\"axFullscreen\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXFullScreenDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axFullscreen]',\n standalone: true,\n exportAs: 'axFullscreen',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbC1zY3JlZW4uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2Z1bGwtc2NyZWVuL3NyYy9saWIvZnVsbC1zY3JlZW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQVksTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFNUc7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUE2Q2hDO1FBNUNBOztXQUVHO1FBQ2Msc0JBQWlCLEdBQUcsTUFBTSxDQUFVLEtBQUssNkRBQUMsQ0FBQztRQUU1RDs7V0FFRztRQUNLLG1CQUFjLEdBVWxCLEVBQUUsQ0FBQztRQUVQOztXQUVHO1FBQ0ssbUJBQWMsR0FBdUIsSUFBSSxDQUFDO1FBRWxEOztXQUVHO1FBQ0ssd0JBQW1CLEdBQXVCLElBQUksQ0FBQztRQUV2RDs7V0FFRztRQUNNLHFCQUFnQixHQUFHLE1BQU0sRUFBVyxDQUFDO1FBRTlDOztXQUVHO1FBQ0ssV0FBTSxHQUFvQixJQUFJLENBQUM7UUFFdEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUN6RCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUd2RCwrQkFBK0I7UUFDL0IsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzlDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FB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SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyxxQkFBcUIsQ0FBQyxPQUFvQjtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO1FBRUQsOEJBQThCO1FBQzlCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDM0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVDLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQixDQUFDLEdBQVc7UUFDbEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLDhCQUE4QixFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVFLENBQUM7OEdBOU1VLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsY0FBYztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFpJbmRleFNlcnZpY2UsIEFYWlRva2VuIH0gZnJvbSAnQGFjb3JleC9jb3JlL3otaW5kZXgnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgb3V0cHV0LCBSZW5kZXJlcjIsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRnVsbHNjcmVlbiBkaXJlY3RpdmUgdGhhdCBwcm92aWRlcyBDU1MtYmFzZWQgZnVsbHNjcmVlbiBmdW5jdGlvbmFsaXR5XG4gKiBVc2FnZTogPGVsZW1lbnQgYXhGdWxsc2NyZWVuICNmdWxsc2NyZWVuPVwiYXhGdWxsc2NyZWVuXCI+PC9lbGVtZW50PlxuICogVGhlbjogZnVsbHNjcmVlbi50b2dnbGUoKSBvciBmdWxsc2NyZWVuLmVudGVyKCkgb3IgZnVsbHNjcmVlbi5leGl0KClcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4RnVsbHNjcmVlbl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBleHBvcnRBczogJ2F4RnVsbHNjcmVlbicsXG59KVxuZXhwb3J0IGNsYXNzIEFYRnVsbFNjcmVlbkRpcmVjdGl2ZSB7XG4gIC8qKlxuICAgKiBDdXJyZW50IGZ1bGxzY3JlZW4gc3RhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNGdWxsc2NyZWVuU3RhdGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBPcmlnaW5hbCBlbGVtZW50IHN0eWxlcyB0byByZXN0b3JlXG4gICAqL1xuICBwcml2YXRlIG9yaWdpbmFsU3R5bGVzOiB7XG4gICAgcG9zaXRpb24/OiBzdHJpbmc7XG4gICAgdG9wPzogc3RyaW5nO1xuICAgIGxlZnQ/OiBzdHJpbmc7XG4gICAgd2lkdGg/OiBzdHJpbmc7XG4gICAgaGVpZ2h0Pzogc3RyaW5nO1xuICAgIHpJbmRleD86IHN0cmluZztcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgbWFyZ2luPzogc3RyaW5nO1xuICAgIHBhZGRpbmc/OiBzdHJpbmc7XG4gIH0gPSB7fTtcblxuICAvKipcbiAgICogT3JpZ2luYWwgcGFyZW50IGVsZW1lbnQgcmVmZXJlbmNlXG4gICAqL1xuICBwcml2YXRlIG9yaWdpbmFsUGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBGdWxsc2NyZWVuIGNvbnRhaW5lciBlbGVtZW50XG4gICAqL1xuICBwcml2YXRlIGZ1bGxzY3JlZW5Db250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEZ1bGxzY3JlZW4gY2hhbmdlIGV2ZW50XG4gICAqL1xuICByZWFkb25seSBmdWxsc2NyZWVuQ2hhbmdlID0gb3V0cHV0PGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIFotaW5kZXggdG9rZW4gZm9yIHRoaXMgZnVsbHNjcmVlbiBpbnN0YW5jZVxuICAgKi9cbiAgcHJpdmF0ZSB6VG9rZW46IEFYWlRva2VuIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHpJbmRleFNlcnZpY2UgPSBpbmplY3QoQVhaSW5kZXhTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBTeW5jIHN0YXRlIGNoYW5nZXMgdG8gb3V0cHV0XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlzRnVsbHNjcmVlbiA9IHRoaXMuaXNGdWxsc2NyZWVuU3RhdGUoKTtcbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZnVsbHNjcmVlbkNoYW5nZS5lbWl0KGlzRnVsbHNjcmVlbik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgZnVsbHNjcmVlbiBzdGF0ZVxuICAgKi9cbiAgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRnVsbHNjcmVlblN0YXRlKCkpIHtcbiAgICAgIHRoaXMuZXhpdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVudGVyKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVudGVyIGZ1bGxzY3JlZW4gbW9kZSB1c2luZyBDU1NcbiAgICovXG4gIGVudGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRnVsbHNjcmVlblN0YXRlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0cnkge1xuICAgICAgLy8gU3RvcmUgb3JpZ2luYWwgc3R5bGVzIGFuZCBwYXJlbnRcbiAgICAgIHRoaXMuc3RvcmVPcmlnaW5hbFN0eWxlcyhlbGVtZW50KTtcbiAgICAgIHRoaXMub3JpZ2luYWxQYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG5cbiAgICAgIC8vIEFjcXVpcmUgei1pbmRleCB0b2tlblxuICAgICAgdGhpcy56VG9rZW4gPSB0aGlzLnpJbmRleFNlcnZpY2UuYWNxdWlyZSgpO1xuXG4gICAgICAvLyBDcmVhdGUgZnVsbHNjcmVlbiBjb250YWluZXJcbiAgICAgIHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciwgJ3Bvc2l0aW9uJywgJ2ZpeGVkJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciwgJ3RvcCcsICcwJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciwgJ2xlZnQnLCAnMCcpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIsICd3aWR0aCcsICcxMDB2dycpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIsICdoZWlnaHQnLCAnMTAwdmgnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5mdWxsc2NyZWVuQ29udGFpbmVyLCAnei1pbmRleCcsIFN0cmluZyh0aGlzLnpUb2tlbi56SW5kZXgpKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5mdWxsc2NyZWVuQ29udGFpbmVyLCAnYmFja2dyb3VuZC1jb2xvcicsICcjZmZmZmZmJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lciwgJ292ZXJmbG93JywgJ2F1dG8nKTtcblxuICAgICAgLy8gTW92ZSBlbGVtZW50IHRvIGNvbnRhaW5lclxuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIsIGVsZW1lbnQpO1xuXG4gICAgICAvLyBBcHBseSBmdWxsc2NyZWVuIHN0eWxlcyB0byBlbGVtZW50XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQsICdwb3NpdGlvbicsICdyZWxhdGl2ZScpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50LCAnd2lkdGgnLCAnMTAwJScpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50LCAnaGVpZ2h0JywgJzEwMCUnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudCwgJ21hcmdpbicsICcwJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQsICdwYWRkaW5nJywgJzAnKTtcblxuICAgICAgLy8gQXBwZW5kIGNvbnRhaW5lciB0byBib2R5XG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMuZnVsbHNjcmVlbkNvbnRhaW5lcik7XG5cbiAgICAgIC8vIFByZXZlbnQgYm9keSBzY3JvbGxcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuXG4gICAgICB0aGlzLmlzRnVsbHNjcmVlblN0YXRlLnNldCh0cnVlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZW50ZXJpbmcgZnVsbHNjcmVlbjonLCBlcnJvcik7XG4gICAgICB0aGlzLnJlc3RvcmVPcmlnaW5hbFN0eWxlcyhlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhpdCBmdWxsc2NyZWVuIG1vZGVcbiAgICovXG4gIGV4aXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzRnVsbHNjcmVlblN0YXRlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0cnkge1xuICAgICAgLy8gUmVzdG9yZSBib2R5IHNjcm9sbFxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShkb2N1bWVudC5ib2R5LCAnb3ZlcmZsb3cnKTtcblxuICAgICAgLy8gTW92ZSBlbGVtZW50IGJhY2sgdG8gb3JpZ2luYWwgcGFyZW50XG4gICAgICBpZiAodGhpcy5mdWxsc2NyZWVuQ29udGFpbmVyICYmIHRoaXMub3JpZ2luYWxQYXJlbnQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIsIGVsZW1lbnQpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMub3JpZ2luYWxQYXJlbnQsIGVsZW1lbnQpO1xuXG4gICAgICAgIC8vIFJlbW92ZSBjb250YWluZXJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChkb2N1bWVudC5ib2R5LCB0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIpO1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5Db250YWluZXIgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBSZWxlYXNlIHotaW5kZXggdG9rZW5cbiAgICAgIHRoaXMuekluZGV4U2VydmljZS5yZWxlYXNlKHRoaXMuelRva2VuKTtcbiAgICAgIHRoaXMuelRva2VuID0gbnVsbDtcblxuICAgICAgLy8gUmVzdG9yZSBvcmlnaW5hbCBzdHlsZXNcbiAgICAgIHRoaXMucmVzdG9yZU9yaWdpbmFsU3R5bGVzKGVsZW1lbnQpO1xuXG4gICAgICB0aGlzLmlzRnVsbHNjcmVlblN0YXRlLnNldChmYWxzZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGV4aXRpbmcgZnVsbHNjcmVlbjonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGN1cnJlbnRseSBpbiBmdWxsc2NyZWVuIG1vZGVcbiAgICovXG4gIGlzRnVsbHNjcmVlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0Z1bGxzY3JlZW5TdGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlIG9yaWdpbmFsIGVsZW1lbnQgc3R5bGVzXG4gICAqL1xuICBwcml2YXRlIHN0b3JlT3JpZ2luYWxTdHlsZXMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgdGhpcy5vcmlnaW5hbFN0eWxlcyA9IHtcbiAgICAgIHBvc2l0aW9uOiBjb21wdXRlZFN0eWxlLnBvc2l0aW9uLFxuICAgICAgdG9wOiBjb21wdXRlZFN0eWxlLnRvcCxcbiAgICAgIGxlZnQ6IGNvbXB1dGVkU3R5bGUubGVmdCxcbiAgICAgIHdpZHRoOiBjb21wdXRlZFN0eWxlLndpZHRoLFxuICAgICAgaGVpZ2h0OiBjb21wdXRlZFN0eWxlLmhlaWdodCxcbiAgICAgIHpJbmRleDogY29tcHV0ZWRTdHlsZS56SW5kZXgsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbXB1dGVkU3R5bGUuYmFja2dyb3VuZENvbG9yLFxuICAgICAgbWFyZ2luOiBjb21wdXRlZFN0eWxlLm1hcmdpbixcbiAgICAgIHBhZGRpbmc6IGNvbXB1dGVkU3R5bGUucGFkZGluZyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3RvcmUgb3JpZ2luYWwgZWxlbWVudCBzdHlsZXNcbiAgICovXG4gIHByaXZhdGUgcmVzdG9yZU9yaWdpbmFsU3R5bGVzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9yaWdpbmFsU3R5bGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUmVzdG9yZSBlYWNoIHN0eWxlIHByb3BlcnR5XG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5vcmlnaW5hbFN0eWxlcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBjb25zdCBzdHlsZUtleSA9IHRoaXMuY2FtZWxUb0tlYmFiQ2FzZShrZXkpO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudCwgc3R5bGVLZXksIHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoZWxlbWVudCwgc3R5bGVLZXkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5vcmlnaW5hbFN0eWxlcyA9IHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgY2FtZWxDYXNlIHRvIGtlYmFiLWNhc2UgZm9yIENTUyBwcm9wZXJ0aWVzXG4gICAqL1xuICBwcml2YXRlIGNhbWVsVG9LZWJhYkNhc2Uoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvKFthLXowLTldfCg/PVtBLVpdKSkoW0EtWl0pL2csICckMS0kMicpLnRvTG93ZXJDYXNlKCk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1mdWxsLXNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9mdWxsLXNjcmVlbi9zcmMvYWNvcmV4LWNkay1mdWxsLXNjcmVlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
@@ -43,8 +43,32 @@ class AXInputMaskDirective {
43
43
  * @default 0
44
44
  */
45
45
  this.decimal = input(0, ...(ngDevMode ? [{ debugName: "decimal" }] : []));
46
+ /**
47
+ * Custom mask pattern for 'mask' mode.
48
+ * Use the following tokens:
49
+ * - `#`: Required digit (0-9)
50
+ * - `^`: Required letter (a-z, A-Z)
51
+ * - `@`: Required alphanumeric (0-9, a-z, A-Z)
52
+ *
53
+ * Use ! before token to escape symbol. For example !# will render # instead of a digit.
54
+ * Any other character is treated as a literal separator.
55
+ * @example '(###) ###-####' for phone numbers
56
+ * @example 'AA-####' for license plates
57
+ * @example '##/##/####' for dates
58
+ */
59
+ this.maskPattern = input(null, ...(ngDevMode ? [{ debugName: "maskPattern" }] : []));
60
+ /**
61
+ * Custom token definitions to extend or override default mask tokens.
62
+ * Each token maps to a pattern regex and optional transformation.
63
+ * @example { 'P': { pattern: /[1-9]/, transform: (c) => c.toUpperCase() } }
64
+ */
65
+ this.customTokens = input({}, ...(ngDevMode ? [{ debugName: "customTokens" }] : []));
46
66
  this.#eff = effect(() => {
47
- void this.initializeMask();
67
+ if (this.maskMode() === null)
68
+ return;
69
+ if (this.maskMode() === 'mask' && !this.maskPattern())
70
+ return;
71
+ this.initializeMask();
48
72
  }, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
49
73
  }
50
74
  #eff;
@@ -52,29 +76,48 @@ class AXInputMaskDirective {
52
76
  if (this.maskaJs)
53
77
  this.maskaJs.destroy();
54
78
  let mask;
79
+ let tokens;
80
+ // Default tokens for built-in modes
81
+ const defaultTokens = {
82
+ D: { pattern: /-/, optional: true },
83
+ F: { pattern: /[0-9\u06F0-\u06F9\u0660-\u0669]/, repeated: true },
84
+ X: { pattern: /[0-9\u06F0-\u06F9\u0660-\u0669.]/, repeated: true },
85
+ U: { pattern: /[-0-9\u06F0-\u06F9\u0660-\u0669.]/, repeated: true },
86
+ };
87
+ // Tokens for custom mask mode
88
+ const maskModeTokens = {
89
+ '#': { pattern: /[0-9]/ },
90
+ '^': { pattern: /[a-zA-Z]/ },
91
+ '@': { pattern: /[a-zA-Z0-9]/ },
92
+ ...this.customTokens(),
93
+ };
55
94
  switch (this.maskMode()) {
56
95
  case 'hijriDate':
57
96
  mask = [`1###${this.separator()}##${this.separator()}##`];
97
+ tokens = defaultTokens;
58
98
  break;
59
99
  case 'digits':
60
100
  mask = ['DF'];
101
+ tokens = defaultTokens;
61
102
  break;
62
103
  case 'decimal':
63
104
  mask = [`DX`];
105
+ tokens = defaultTokens;
64
106
  break;
65
107
  case 'thousandsSeparator':
66
108
  mask = [`U`];
109
+ tokens = defaultTokens;
110
+ break;
111
+ case 'mask':
112
+ mask = [this.maskPattern()];
113
+ tokens = maskModeTokens;
114
+ break;
67
115
  }
68
116
  const { MaskInput } = await import('maska');
69
117
  this.maskaJs = new MaskInput(this.elm.nativeElement, {
70
118
  mask,
71
119
  reversed: this.maskMode() === 'thousandsSeparator' ? true : false,
72
- tokens: {
73
- D: { pattern: /-/, optional: true },
74
- F: { pattern: /[0-9]/, repeated: true },
75
- X: { pattern: /[0-9.]/, repeated: true },
76
- U: { pattern: /[-0-9.]/, repeated: true },
77
- },
120
+ tokens,
78
121
  postProcess: (value) => {
79
122
  switch (this.maskMode()) {
80
123
  case 'hijriDate':
@@ -85,20 +128,25 @@ class AXInputMaskDirective {
85
128
  return this.decimalMaskHandler(value);
86
129
  case 'thousandsSeparator':
87
130
  return this.thousandsSeparatorHandler(value);
131
+ case 'mask':
132
+ return value;
88
133
  default:
89
134
  return value;
90
135
  }
91
136
  },
92
137
  preProcess: (value) => {
138
+ const normalized = this.convertToEnglishDigits(value);
93
139
  switch (this.maskMode()) {
94
140
  case 'hijriDate':
95
141
  return this.hijriMaskHandler(value);
96
142
  case 'digits':
97
- return this.rangeValueLimit(value);
143
+ return this.rangeValueLimit(normalized);
98
144
  case 'decimal':
99
- return this.decimalMaskHandler(value);
145
+ return this.decimalMaskHandler(normalized);
100
146
  case 'thousandsSeparator':
101
- return this.thousandsSeparatorHandler(value);
147
+ return this.thousandsSeparatorHandler(normalized);
148
+ case 'mask':
149
+ return value;
102
150
  default:
103
151
  return value;
104
152
  }
@@ -188,6 +236,11 @@ class AXInputMaskDirective {
188
236
  }
189
237
  return value;
190
238
  }
239
+ convertToEnglishDigits(value) {
240
+ return value
241
+ .replace(/[۰-۹]/g, (c) => String(c.charCodeAt(0) - 0x06f0))
242
+ .replace(/[٠-٩]/g, (c) => String(c.charCodeAt(0) - 0x0660));
243
+ }
191
244
  decimalMaskHandler(value) {
192
245
  // Remove any non-digit and non-decimal characters except the first decimal point
193
246
  let cleanValue = value;
@@ -216,16 +269,16 @@ class AXInputMaskDirective {
216
269
  }
217
270
  return this.rangeValueLimit(finalValue);
218
271
  }
219
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXInputMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
220
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.15", type: AXInputMaskDirective, isStandalone: true, selector: "[axInputMask]", inputs: { maskMode: { classPropertyName: "maskMode", publicName: "maskMode", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, eager: { classPropertyName: "eager", publicName: "eager", isSignal: true, isRequired: false, transformFunction: null }, minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: true, isRequired: false, transformFunction: null }, decimal: { classPropertyName: "decimal", publicName: "decimal", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onMaskChanged: "onMaskChanged" }, exportAs: ["axInputMask"], ngImport: i0 }); }
272
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXInputMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
273
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.3", type: AXInputMaskDirective, isStandalone: true, selector: "[axInputMask]", inputs: { maskMode: { classPropertyName: "maskMode", publicName: "maskMode", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, eager: { classPropertyName: "eager", publicName: "eager", isSignal: true, isRequired: false, transformFunction: null }, minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: true, isRequired: false, transformFunction: null }, decimal: { classPropertyName: "decimal", publicName: "decimal", isSignal: true, isRequired: false, transformFunction: null }, maskPattern: { classPropertyName: "maskPattern", publicName: "maskPattern", isSignal: true, isRequired: false, transformFunction: null }, customTokens: { classPropertyName: "customTokens", publicName: "customTokens", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onMaskChanged: "onMaskChanged" }, exportAs: ["axInputMask"], ngImport: i0 }); }
221
274
  }
222
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXInputMaskDirective, decorators: [{
275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXInputMaskDirective, decorators: [{
223
276
  type: Directive,
224
277
  args: [{
225
278
  selector: '[axInputMask]',
226
279
  exportAs: 'axInputMask',
227
280
  }]
228
- }], propDecorators: { maskMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "maskMode", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }], eager: [{ type: i0.Input, args: [{ isSignal: true, alias: "eager", required: false }] }], onMaskChanged: [{ type: i0.Output, args: ["onMaskChanged"] }], minValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "minValue", required: false }] }], maxValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxValue", required: false }] }], decimal: [{ type: i0.Input, args: [{ isSignal: true, alias: "decimal", required: false }] }] } });
281
+ }] });
229
282
 
230
283
  /**
231
284
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk-input-mask.mjs","sources":["../tmp-esm2022/input-mask/lib/input-mask.directive.js","../tmp-esm2022/input-mask/acorex-cdk-input-mask.js"],"sourcesContent":["import { Directive, effect, ElementRef, inject, input, output } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Directive that provides input masking functionality for various data types including\n * Hijri dates, digits, decimal numbers, and thousands-separated numbers.\n * Built on top of the Maska.js library for robust input validation and formatting.\n */\nexport class AXInputMaskDirective {\n constructor() {\n this.elm = inject(ElementRef);\n /**\n * The mode of input masking to apply.\n * @default 'digits'\n */\n this.maskMode = input('digits', ...(ngDevMode ? [{ debugName: \"maskMode\" }] : []));\n /**\n * The separator character used in the mask (e.g., '/' for dates, ',' for thousands).\n * @default '/'\n */\n this.separator = input('/', ...(ngDevMode ? [{ debugName: \"separator\" }] : []));\n /**\n * Whether to apply the mask eagerly (as user types) or on blur.\n * @default false\n */\n this.eager = input(false, ...(ngDevMode ? [{ debugName: \"eager\" }] : []));\n /**\n * Event emitted when the masked value changes.\n */\n this.onMaskChanged = output();\n /**\n * Minimum allowed value for numeric inputs.\n * @default null\n */\n this.minValue = input(null, ...(ngDevMode ? [{ debugName: \"minValue\" }] : []));\n /**\n * Maximum allowed value for numeric inputs.\n * @default null\n */\n this.maxValue = input(null, ...(ngDevMode ? [{ debugName: \"maxValue\" }] : []));\n /**\n * Number of decimal places allowed for decimal inputs.\n * @default 0\n */\n this.decimal = input(0, ...(ngDevMode ? [{ debugName: \"decimal\" }] : []));\n this.#eff = effect(() => {\n void this.initializeMask();\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n }\n #eff;\n async initializeMask() {\n if (this.maskaJs)\n this.maskaJs.destroy();\n let mask;\n switch (this.maskMode()) {\n case 'hijriDate':\n mask = [`1###${this.separator()}##${this.separator()}##`];\n break;\n case 'digits':\n mask = ['DF'];\n break;\n case 'decimal':\n mask = [`DX`];\n break;\n case 'thousandsSeparator':\n mask = [`U`];\n }\n const { MaskInput } = await import('maska');\n this.maskaJs = new MaskInput(this.elm.nativeElement, {\n mask,\n reversed: this.maskMode() === 'thousandsSeparator' ? true : false,\n tokens: {\n D: { pattern: /-/, optional: true },\n F: { pattern: /[0-9]/, repeated: true },\n X: { pattern: /[0-9.]/, repeated: true },\n U: { pattern: /[-0-9.]/, repeated: true },\n },\n postProcess: (value) => {\n switch (this.maskMode()) {\n case 'hijriDate':\n return this.hijriMaskHandler(value);\n case 'digits':\n return this.rangeValueLimit(value);\n case 'decimal':\n return this.decimalMaskHandler(value);\n case 'thousandsSeparator':\n return this.thousandsSeparatorHandler(value);\n default:\n return value;\n }\n },\n preProcess: (value) => {\n switch (this.maskMode()) {\n case 'hijriDate':\n return this.hijriMaskHandler(value);\n case 'digits':\n return this.rangeValueLimit(value);\n case 'decimal':\n return this.decimalMaskHandler(value);\n case 'thousandsSeparator':\n return this.thousandsSeparatorHandler(value);\n default:\n return value;\n }\n },\n onMaska: (details) => {\n this.onMaskChanged.emit(details);\n },\n eager: this.eager(),\n });\n }\n thousandsSeparatorHandler(value) {\n let thousandsSeparator = this.separator();\n switch (this.separator()) {\n case '-':\n thousandsSeparator = '_';\n break;\n case '.':\n thousandsSeparator = ',';\n break;\n }\n let clearValue;\n const firstChar = value.charAt(0);\n const restOfString = value.slice(1);\n if (firstChar === '-') {\n clearValue = '-' + restOfString.replace(/-/g, '');\n }\n else {\n clearValue = value.replace(/-/g, '');\n }\n // Ensure only one decimal point\n const decimalParts = clearValue.split('.');\n if (decimalParts.length > 2) {\n clearValue = decimalParts[0] + '.' + decimalParts.slice(1).join('');\n }\n // Apply range limits to the cleaned value\n clearValue = this.rangeValueLimit(clearValue);\n const addSeparator = clearValue.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator);\n return addSeparator;\n }\n hijriMaskHandler(value) {\n const [yearStr, monthStr, dayStr] = value.split(this.separator());\n const year = +yearStr;\n const month = +monthStr;\n const day = +dayStr;\n //Month Logics\n if (!month || !year)\n return value;\n if (month > 12) {\n return `${yearStr}${this.separator()}12`;\n }\n if (month < 1) {\n return `${yearStr}${this.separator()}01`;\n }\n //Day Logics\n if (!day)\n return value;\n if (day < 1) {\n return `${yearStr}-${monthStr}${this.separator()}01`;\n }\n let maxDay = 30;\n if (month <= 6) {\n maxDay = 31;\n }\n else if (month === 12) {\n // Hijri leap year rule: (11 * year + 14) % 30 < 11\n const isKabise = (11 * year + 14) % 30 < 11;\n maxDay = isKabise ? 30 : 29;\n }\n if (day > maxDay) {\n return `${yearStr}${this.separator()}${monthStr}${this.separator()}${maxDay}`;\n }\n return value;\n }\n rangeValueLimit(value) {\n let convertedValue;\n if (this.separator()) {\n convertedValue = +value.split(this.separator()).join('');\n }\n else {\n convertedValue = +value;\n }\n if (this.minValue() && convertedValue < this.minValue()) {\n return this.minValue().toString();\n }\n if (this.maxValue() && convertedValue > this.maxValue()) {\n return this.maxValue().toString();\n }\n return value;\n }\n decimalMaskHandler(value) {\n // Remove any non-digit and non-decimal characters except the first decimal point\n let cleanValue = value;\n let finalValue;\n // Ensure only one decimal point\n const decimalParts = cleanValue.split('.');\n if (decimalParts.length > 2) {\n cleanValue = decimalParts[0] + '.' + decimalParts.slice(1).join('');\n }\n // Split into integer and decimal parts\n const parts = cleanValue.split('.');\n const integerPart = parts[0] || '';\n const decimalPart = parts[1] || '';\n // Limit decimal part to the specified number of digits\n const limitedDecimalPart = decimalPart.slice(0, this.decimal());\n // Reconstruct the value\n if (limitedDecimalPart.length > 0) {\n finalValue = integerPart + '.' + limitedDecimalPart;\n }\n else if (cleanValue.includes('.')) {\n // If there's a decimal point but no decimal part, keep the decimal point\n finalValue = integerPart + '.';\n }\n else {\n finalValue = integerPart;\n }\n return this.rangeValueLimit(finalValue);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXInputMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.15\", type: AXInputMaskDirective, isStandalone: true, selector: \"[axInputMask]\", inputs: { maskMode: { classPropertyName: \"maskMode\", publicName: \"maskMode\", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: \"separator\", publicName: \"separator\", isSignal: true, isRequired: false, transformFunction: null }, eager: { classPropertyName: \"eager\", publicName: \"eager\", isSignal: true, isRequired: false, transformFunction: null }, minValue: { classPropertyName: \"minValue\", publicName: \"minValue\", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: \"maxValue\", publicName: \"maxValue\", isSignal: true, isRequired: false, transformFunction: null }, decimal: { classPropertyName: \"decimal\", publicName: \"decimal\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onMaskChanged: \"onMaskChanged\" }, exportAs: [\"axInputMask\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXInputMaskDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axInputMask]',\n exportAs: 'axInputMask',\n }]\n }], propDecorators: { maskMode: [{ type: i0.Input, args: [{ isSignal: true, alias: \"maskMode\", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: \"separator\", required: false }] }], eager: [{ type: i0.Input, args: [{ isSignal: true, alias: \"eager\", required: false }] }], onMaskChanged: [{ type: i0.Output, args: [\"onMaskChanged\"] }], minValue: [{ type: i0.Input, args: [{ isSignal: true, alias: \"minValue\", required: false }] }], maxValue: [{ type: i0.Input, args: [{ isSignal: true, alias: \"maxValue\", required: false }] }], decimal: [{ type: i0.Input, args: [{ isSignal: true, alias: \"decimal\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvaW5wdXQtbWFzay9zcmMvbGliL2lucHV0LW1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFpQnJGOzs7O0dBSUc7QUFLSCxNQUFNLE9BQU8sb0JBQW9CO0lBSmpDO1FBS1UsUUFBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUdqQzs7O1dBR0c7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFtQixRQUFRLG9EQUFDLENBQUM7UUFFN0M7OztXQUdHO1FBQ0gsY0FBUyxHQUFHLEtBQUssQ0FBUyxHQUFHLHFEQUFDLENBQUM7UUFFL0I7OztXQUdHO1FBQ0gsVUFBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLGlEQUFDLENBQUM7UUFFckI7O1dBRUc7UUFDSCxrQkFBYSxHQUFHLE1BQU0sRUFBb0IsQ0FBQztRQUUzQzs7O1dBR0c7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFTLElBQUksb0RBQUMsQ0FBQztRQUUvQjs7O1dBR0c7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFTLElBQUksb0RBQUMsQ0FBQztRQUUvQjs7O1dBR0c7UUFDSCxZQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsbURBQUMsQ0FBQztRQUVuQixTQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNqQixLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM3QixDQUFDLGdEQUFDLENBQUM7S0FrTUo7SUFwTUMsSUFBSSxDQUVEO0lBRUssS0FBSyxDQUFDLGNBQWM7UUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLElBQUksQ0FBQyxPQUFPLENB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Q0FBQzsrR0FoUFUsb0JBQW9CO21HQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRSxhQUFhO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZWZmZWN0LCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgTWFza0lucHV0IH0gZnJvbSAnbWFza2EnO1xuXG4vKipcbiAqIEV2ZW50IHBheWxvYWQgZm9yIGlucHV0IG1hc2sgdmFsdWUgY2hhbmdlcy5cbiAqL1xuZXhwb3J0IHR5cGUgQVhJbnB1dE1hc2tFdmVudCA9IHtcbiAgbWFza2VkOiBzdHJpbmc7XG4gIHVubWFza2VkOiBzdHJpbmc7XG4gIGNvbXBsZXRlZDogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQXZhaWxhYmxlIGlucHV0IG1hc2sgbW9kZXMgZm9yIGRpZmZlcmVudCBkYXRhIHR5cGVzLlxuICovXG5leHBvcnQgdHlwZSBBWElucHV0TWFza01vZGVzID0gJ2hpanJpRGF0ZScgfCAnZGlnaXRzJyB8ICd0aG91c2FuZHNTZXBhcmF0b3InIHwgJ2RlY2ltYWwnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0aGF0IHByb3ZpZGVzIGlucHV0IG1hc2tpbmcgZnVuY3Rpb25hbGl0eSBmb3IgdmFyaW91cyBkYXRhIHR5cGVzIGluY2x1ZGluZ1xuICogSGlqcmkgZGF0ZXMsIGRpZ2l0cywgZGVjaW1hbCBudW1iZXJzLCBhbmQgdGhvdXNhbmRzLXNlcGFyYXRlZCBudW1iZXJzLlxuICogQnVpbHQgb24gdG9wIG9mIHRoZSBNYXNrYS5qcyBsaWJyYXJ5IGZvciByb2J1c3QgaW5wdXQgdmFsaWRhdGlvbiBhbmQgZm9ybWF0dGluZy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4SW5wdXRNYXNrXScsXG4gIGV4cG9ydEFzOiAnYXhJbnB1dE1hc2snLFxufSlcbmV4cG9ydCBjbGFzcyBBWElucHV0TWFza0RpcmVjdGl2ZSB7XG4gIHByaXZhdGUgZWxtID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIG1hc2thSnM6IE1hc2tJbnB1dDtcblxuICAvKipcbiAgICogVGhlIG1vZGUgb2YgaW5wdXQgbWFza2luZyB0byBhcHBseS5cbiAgICogQGRlZmF1bHQgJ2RpZ2l0cydcbiAgICovXG4gIG1hc2tNb2RlID0gaW5wdXQ8QVhJbnB1dE1hc2tNb2Rlcz4oJ2RpZ2l0cycpO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VwYXJhdG9yIGNoYXJhY3RlciB1c2VkIGluIHRoZSBtYXNrIChlLmcuLCAnLycgZm9yIGRhdGVzLCAnLCcgZm9yIHRob3VzYW5kcykuXG4gICAqIEBkZWZhdWx0ICcvJ1xuICAgKi9cbiAgc2VwYXJhdG9yID0gaW5wdXQ8c3RyaW5nPignLycpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFwcGx5IHRoZSBtYXNrIGVhZ2VybHkgKGFzIHVzZXIgdHlwZXMpIG9yIG9uIGJsdXIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBlYWdlciA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBtYXNrZWQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIG9uTWFza0NoYW5nZWQgPSBvdXRwdXQ8QVhJbnB1dE1hc2tFdmVudD4oKTtcblxuICAvKipcbiAgICogTWluaW11bSBhbGxvd2VkIHZhbHVlIGZvciBudW1lcmljIGlucHV0cy5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgbWluVmFsdWUgPSBpbnB1dDxudW1iZXI+KG51bGwpO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIGFsbG93ZWQgdmFsdWUgZm9yIG51bWVyaWMgaW5wdXRzLlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBtYXhWYWx1ZSA9IGlucHV0PG51bWJlcj4obnVsbCk7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBhbGxvd2VkIGZvciBkZWNpbWFsIGlucHV0cy5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgZGVjaW1hbCA9IGlucHV0KDApO1xuXG4gICNlZmYgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgdGhpcy5pbml0aWFsaXplTWFzaygpO1xuICB9KTtcblxuICBwcml2YXRlIGFzeW5jIGluaXRpYWxpemVNYXNrKCkge1xuICAgIGlmICh0aGlzLm1hc2thSnMpIHRoaXMubWFza2FKcy5kZXN0cm95KCk7XG5cbiAgICBsZXQgbWFzazogc3RyaW5nW107XG5cbiAgICBzd2l0Y2ggKHRoaXMubWFza01vZGUoKSkge1xuICAgICAgY2FzZSAnaGlqcmlEYXRlJzpcbiAgICAgICAgbWFzayA9IFtgMSMjIyR7dGhpcy5zZXBhcmF0b3IoKX0jIyR7dGhpcy5zZXBhcmF0b3IoKX0jI2BdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RpZ2l0cyc6XG4gICAgICAgIG1hc2sgPSBbJ0RGJ107XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVjaW1hbCc6XG4gICAgICAgIG1hc2sgPSBbYERYYF07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndGhvdXNhbmRzU2VwYXJhdG9yJzpcbiAgICAgICAgbWFzayA9IFtgVWBdO1xuICAgIH1cblxuICAgIGNvbnN0IHsgTWFza0lucHV0IH0gPSBhd2FpdCBpbXBvcnQoJ21hc2thJyk7XG5cbiAgICB0aGlzLm1hc2thSnMgPSBuZXcgTWFza0lucHV0KHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIG1hc2ssXG4gICAgICByZXZlcnNlZDogdGhpcy5tYXNrTW9kZSgpID09PSAndGhvdXNhbmRzU2VwYXJhdG9yJyA/IHRydWUgOiBmYWxzZSxcbiAgICAgIHRva2Vuczoge1xuICAgICAgICBEOiB7IHBhdHRlcm46IC8tLywgb3B0aW9uYWw6IHRydWUgfSxcbiAgICAgICAgRjogeyBwYXR0ZXJuOiAvWzAtOV0vLCByZXBlYXRlZDogdHJ1ZSB9LFxuICAgICAgICBYOiB7IHBhdHRlcm46IC9bMC05Ll0vLCByZXBlYXRlZDogdHJ1ZSB9LFxuICAgICAgICBVOiB7IHBhdHRlcm46IC9bLTAtOS5dLywgcmVwZWF0ZWQ6IHRydWUgfSxcbiAgICAgIH0sXG4gICAgICBwb3N0UHJvY2VzczogKHZhbHVlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5tYXNrTW9kZSgpKSB7XG4gICAgICAgICAgY2FzZSAnaGlqcmlEYXRlJzpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhpanJpTWFza0hhbmRsZXIodmFsdWUpO1xuICAgICAgICAgIGNhc2UgJ2RpZ2l0cyc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yYW5nZVZhbHVlTGltaXQodmFsdWUpO1xuICAgICAgICAgIGNhc2UgJ2RlY2ltYWwnOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVjaW1hbE1hc2tIYW5kbGVyKHZhbHVlKTtcbiAgICAgICAgICBjYXNlICd0aG91c2FuZHNTZXBhcmF0b3InOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGhvdXNhbmRzU2VwYXJhdG9ySGFuZGxlcih2YWx1ZSk7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHByZVByb2Nlc3M6ICh2YWx1ZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHRoaXMubWFza01vZGUoKSkge1xuICAgICAgICAgIGNhc2UgJ2hpanJpRGF0ZSc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oaWpyaU1hc2tIYW5kbGVyKHZhbHVlKTtcbiAgICAgICAgICBjYXNlICdkaWdpdHMnOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmFuZ2VWYWx1ZUxpbWl0KHZhbHVlKTtcbiAgICAgICAgICBjYXNlICdkZWNpbWFsJzpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRlY2ltYWxNYXNrSGFuZGxlcih2YWx1ZSk7XG4gICAgICAgICAgY2FzZSAndGhvdXNhbmRzU2VwYXJhdG9yJzpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRob3VzYW5kc1NlcGFyYXRvckhhbmRsZXIodmFsdWUpO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBvbk1hc2thOiAoZGV0YWlscykgPT4ge1xuICAgICAgICB0aGlzLm9uTWFza0NoYW5nZWQuZW1pdChkZXRhaWxzKTtcbiAgICAgIH0sXG4gICAgICBlYWdlcjogdGhpcy5lYWdlcigpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB0aG91c2FuZHNTZXBhcmF0b3JIYW5kbGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBsZXQgdGhvdXNhbmRzU2VwYXJhdG9yID0gdGhpcy5zZXBhcmF0b3IoKTtcblxuICAgIHN3aXRjaCAodGhpcy5zZXBhcmF0b3IoKSkge1xuICAgICAgY2FzZSAnLSc6XG4gICAgICAgIHRob3VzYW5kc1NlcGFyYXRvciA9ICdfJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcuJzpcbiAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yID0gJywnO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBsZXQgY2xlYXJWYWx1ZTogc3RyaW5nO1xuXG4gICAgY29uc3QgZmlyc3RDaGFyID0gdmFsdWUuY2hhckF0KDApO1xuICAgIGNvbnN0IHJlc3RPZlN0cmluZyA9IHZhbHVlLnNsaWNlKDEpO1xuXG4gICAgaWYgKGZpcnN0Q2hhciA9PT0gJy0nKSB7XG4gICAgICBjbGVhclZhbHVlID0gJy0nICsgcmVzdE9mU3RyaW5nLnJlcGxhY2UoLy0vZywgJycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjbGVhclZhbHVlID0gdmFsdWUucmVwbGFjZSgvLS9nLCAnJyk7XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIG9ubHkgb25lIGRlY2ltYWwgcG9pbnRcbiAgICBjb25zdCBkZWNpbWFsUGFydHMgPSBjbGVhclZhbHVlLnNwbGl0KCcuJyk7XG4gICAgaWYgKGRlY2ltYWxQYXJ0cy5sZW5ndGggPiAyKSB7XG4gICAgICBjbGVhclZhbHVlID0gZGVjaW1hbFBhcnRzWzBdICsgJy4nICsgZGVjaW1hbFBhcnRzLnNsaWNlKDEpLmpvaW4oJycpO1xuICAgIH1cblxuICAgIC8vIEFwcGx5IHJhbmdlIGxpbWl0cyB0byB0aGUgY2xlYW5lZCB2YWx1ZVxuICAgIGNsZWFyVmFsdWUgPSB0aGlzLnJhbmdlVmFsdWVMaW1pdChjbGVhclZhbHVlKTtcblxuICAgIGNvbnN0IGFkZFNlcGFyYXRvciA9IGNsZWFyVmFsdWUucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgdGhvdXNhbmRzU2VwYXJhdG9yKTtcblxuICAgIHJldHVybiBhZGRTZXBhcmF0b3I7XG4gIH1cblxuICBwcml2YXRlIGhpanJpTWFza0hhbmRsZXIodmFsdWU6IHN0cmluZykge1xuICAgIGNvbnN0IFt5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyXSA9IHZhbHVlLnNwbGl0KHRoaXMuc2VwYXJhdG9yKCkpO1xuXG4gICAgY29uc3QgeWVhciA9ICt5ZWFyU3RyO1xuICAgIGNvbnN0IG1vbnRoID0gK21vbnRoU3RyO1xuICAgIGNvbnN0IGRheSA9ICtkYXlTdHI7XG5cbiAgICAvL01vbnRoIExvZ2ljc1xuICAgIGlmICghbW9udGggfHwgIXllYXIpIHJldHVybiB2YWx1ZTtcbiAgICBpZiAobW9udGggPiAxMikge1xuICAgICAgcmV0dXJuIGAke3llYXJTdHJ9JHt0aGlzLnNlcGFyYXRvcigpfTEyYDtcbiAgICB9XG4gICAgaWYgKG1vbnRoIDwgMSkge1xuICAgICAgcmV0dXJuIGAke3llYXJTdHJ9JHt0aGlzLnNlcGFyYXRvcigpfTAxYDtcbiAgICB9XG5cbiAgICAvL0RheSBMb2dpY3NcbiAgICBpZiAoIWRheSkgcmV0dXJuIHZhbHVlO1xuXG4gICAgaWYgKGRheSA8IDEpIHtcbiAgICAgIHJldHVybiBgJHt5ZWFyU3RyfS0ke21vbnRoU3RyfSR7dGhpcy5zZXBhcmF0b3IoKX0wMWA7XG4gICAgfVxuXG4gICAgbGV0IG1heERheSA9IDMwO1xuICAgIGlmIChtb250aCA8PSA2KSB7XG4gICAgICBtYXhEYXkgPSAzMTtcbiAgICB9IGVsc2UgaWYgKG1vbnRoID09PSAxMikge1xuICAgICAgLy8gSGlqcmkgbGVhcCB5ZWFyIHJ1bGU6ICgxMSAqIHllYXIgKyAxNCkgJSAzMCA8IDExXG4gICAgICBjb25zdCBpc0thYmlzZSA9ICgxMSAqIHllYXIgKyAxNCkgJSAzMCA8IDExO1xuICAgICAgbWF4RGF5ID0gaXNLYWJpc2UgPyAzMCA6IDI5O1xuICAgIH1cblxuICAgIGlmIChkYXkgPiBtYXhEYXkpIHtcbiAgICAgIHJldHVybiBgJHt5ZWFyU3RyfSR7dGhpcy5zZXBhcmF0b3IoKX0ke21vbnRoU3RyfSR7dGhpcy5zZXBhcmF0b3IoKX0ke21heERheX1gO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmFuZ2VWYWx1ZUxpbWl0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBsZXQgY29udmVydGVkVmFsdWU6IG51bWJlcjtcblxuICAgIGlmICh0aGlzLnNlcGFyYXRvcigpKSB7XG4gICAgICBjb252ZXJ0ZWRWYWx1ZSA9ICt2YWx1ZS5zcGxpdCh0aGlzLnNlcGFyYXRvcigpKS5qb2luKCcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udmVydGVkVmFsdWUgPSArdmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubWluVmFsdWUoKSAmJiBjb252ZXJ0ZWRWYWx1ZSA8IHRoaXMubWluVmFsdWUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMubWluVmFsdWUoKS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1heFZhbHVlKCkgJiYgY29udmVydGVkVmFsdWUgPiB0aGlzLm1heFZhbHVlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLm1heFZhbHVlKCkudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGRlY2ltYWxNYXNrSGFuZGxlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgLy8gUmVtb3ZlIGFueSBub24tZGlnaXQgYW5kIG5vbi1kZWNpbWFsIGNoYXJhY3RlcnMgZXhjZXB0IHRoZSBmaXJzdCBkZWNpbWFsIHBvaW50XG4gICAgbGV0IGNsZWFuVmFsdWUgPSB2YWx1ZTtcbiAgICBsZXQgZmluYWxWYWx1ZTogc3RyaW5nO1xuXG4gICAgLy8gRW5zdXJlIG9ubHkgb25lIGRlY2ltYWwgcG9pbnRcbiAgICBjb25zdCBkZWNpbWFsUGFydHMgPSBjbGVhblZhbHVlLnNwbGl0KCcuJyk7XG4gICAgaWYgKGRlY2ltYWxQYXJ0cy5sZW5ndGggPiAyKSB7XG4gICAgICBjbGVhblZhbHVlID0gZGVjaW1hbFBhcnRzWzBdICsgJy4nICsgZGVjaW1hbFBhcnRzLnNsaWNlKDEpLmpvaW4oJycpO1xuICAgIH1cblxuICAgIC8vIFNwbGl0IGludG8gaW50ZWdlciBhbmQgZGVjaW1hbCBwYXJ0c1xuICAgIGNvbnN0IHBhcnRzID0gY2xlYW5WYWx1ZS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGludGVnZXJQYXJ0ID0gcGFydHNbMF0gfHwgJyc7XG4gICAgY29uc3QgZGVjaW1hbFBhcnQgPSBwYXJ0c1sxXSB8fCAnJztcblxuICAgIC8vIExpbWl0IGRlY2ltYWwgcGFydCB0byB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBkaWdpdHNcbiAgICBjb25zdCBsaW1pdGVkRGVjaW1hbFBhcnQgPSBkZWNpbWFsUGFydC5zbGljZSgwLCB0aGlzLmRlY2ltYWwoKSk7XG5cbiAgICAvLyBSZWNvbnN0cnVjdCB0aGUgdmFsdWVcbiAgICBpZiAobGltaXRlZERlY2ltYWxQYXJ0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGZpbmFsVmFsdWUgPSBpbnRlZ2VyUGFydCArICcuJyArIGxpbWl0ZWREZWNpbWFsUGFydDtcbiAgICB9IGVsc2UgaWYgKGNsZWFuVmFsdWUuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgLy8gSWYgdGhlcmUncyBhIGRlY2ltYWwgcG9pbnQgYnV0IG5vIGRlY2ltYWwgcGFydCwga2VlcCB0aGUgZGVjaW1hbCBwb2ludFxuICAgICAgZmluYWxWYWx1ZSA9IGludGVnZXJQYXJ0ICsgJy4nO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaW5hbFZhbHVlID0gaW50ZWdlclBhcnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmFuZ2VWYWx1ZUxpbWl0KGZpbmFsVmFsdWUpO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1pbnB1dC1tYXNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2lucHV0LW1hc2svc3JjL2Fjb3JleC1jZGstaW5wdXQtbWFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-cdk-input-mask.mjs","sources":["../tmp-esm2022/input-mask/lib/input-mask.directive.js","../tmp-esm2022/input-mask/acorex-cdk-input-mask.js"],"sourcesContent":["import { Directive, effect, ElementRef, inject, input, output } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Directive that provides input masking functionality for various data types including\n * Hijri dates, digits, decimal numbers, and thousands-separated numbers.\n * Built on top of the Maska.js library for robust input validation and formatting.\n */\nexport class AXInputMaskDirective {\n constructor() {\n this.elm = inject(ElementRef);\n /**\n * The mode of input masking to apply.\n * @default 'digits'\n */\n this.maskMode = input('digits', ...(ngDevMode ? [{ debugName: \"maskMode\" }] : []));\n /**\n * The separator character used in the mask (e.g., '/' for dates, ',' for thousands).\n * @default '/'\n */\n this.separator = input('/', ...(ngDevMode ? [{ debugName: \"separator\" }] : []));\n /**\n * Whether to apply the mask eagerly (as user types) or on blur.\n * @default false\n */\n this.eager = input(false, ...(ngDevMode ? [{ debugName: \"eager\" }] : []));\n /**\n * Event emitted when the masked value changes.\n */\n this.onMaskChanged = output();\n /**\n * Minimum allowed value for numeric inputs.\n * @default null\n */\n this.minValue = input(null, ...(ngDevMode ? [{ debugName: \"minValue\" }] : []));\n /**\n * Maximum allowed value for numeric inputs.\n * @default null\n */\n this.maxValue = input(null, ...(ngDevMode ? [{ debugName: \"maxValue\" }] : []));\n /**\n * Number of decimal places allowed for decimal inputs.\n * @default 0\n */\n this.decimal = input(0, ...(ngDevMode ? [{ debugName: \"decimal\" }] : []));\n /**\n * Custom mask pattern for 'mask' mode.\n * Use the following tokens:\n * - `#`: Required digit (0-9)\n * - `^`: Required letter (a-z, A-Z)\n * - `@`: Required alphanumeric (0-9, a-z, A-Z)\n *\n * Use ! before token to escape symbol. For example !# will render # instead of a digit.\n * Any other character is treated as a literal separator.\n * @example '(###) ###-####' for phone numbers\n * @example 'AA-####' for license plates\n * @example '##/##/####' for dates\n */\n this.maskPattern = input(null, ...(ngDevMode ? [{ debugName: \"maskPattern\" }] : []));\n /**\n * Custom token definitions to extend or override default mask tokens.\n * Each token maps to a pattern regex and optional transformation.\n * @example { 'P': { pattern: /[1-9]/, transform: (c) => c.toUpperCase() } }\n */\n this.customTokens = input({}, ...(ngDevMode ? [{ debugName: \"customTokens\" }] : []));\n this.#eff = effect(() => {\n if (this.maskMode() === null)\n return;\n if (this.maskMode() === 'mask' && !this.maskPattern())\n return;\n this.initializeMask();\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n }\n #eff;\n async initializeMask() {\n if (this.maskaJs)\n this.maskaJs.destroy();\n let mask;\n let tokens;\n // Default tokens for built-in modes\n const defaultTokens = {\n D: { pattern: /-/, optional: true },\n F: { pattern: /[0-9\\u06F0-\\u06F9\\u0660-\\u0669]/, repeated: true },\n X: { pattern: /[0-9\\u06F0-\\u06F9\\u0660-\\u0669.]/, repeated: true },\n U: { pattern: /[-0-9\\u06F0-\\u06F9\\u0660-\\u0669.]/, repeated: true },\n };\n // Tokens for custom mask mode\n const maskModeTokens = {\n '#': { pattern: /[0-9]/ },\n '^': { pattern: /[a-zA-Z]/ },\n '@': { pattern: /[a-zA-Z0-9]/ },\n ...this.customTokens(),\n };\n switch (this.maskMode()) {\n case 'hijriDate':\n mask = [`1###${this.separator()}##${this.separator()}##`];\n tokens = defaultTokens;\n break;\n case 'digits':\n mask = ['DF'];\n tokens = defaultTokens;\n break;\n case 'decimal':\n mask = [`DX`];\n tokens = defaultTokens;\n break;\n case 'thousandsSeparator':\n mask = [`U`];\n tokens = defaultTokens;\n break;\n case 'mask':\n mask = [this.maskPattern()];\n tokens = maskModeTokens;\n break;\n }\n const { MaskInput } = await import('maska');\n this.maskaJs = new MaskInput(this.elm.nativeElement, {\n mask,\n reversed: this.maskMode() === 'thousandsSeparator' ? true : false,\n tokens,\n postProcess: (value) => {\n switch (this.maskMode()) {\n case 'hijriDate':\n return this.hijriMaskHandler(value);\n case 'digits':\n return this.rangeValueLimit(value);\n case 'decimal':\n return this.decimalMaskHandler(value);\n case 'thousandsSeparator':\n return this.thousandsSeparatorHandler(value);\n case 'mask':\n return value;\n default:\n return value;\n }\n },\n preProcess: (value) => {\n const normalized = this.convertToEnglishDigits(value);\n switch (this.maskMode()) {\n case 'hijriDate':\n return this.hijriMaskHandler(value);\n case 'digits':\n return this.rangeValueLimit(normalized);\n case 'decimal':\n return this.decimalMaskHandler(normalized);\n case 'thousandsSeparator':\n return this.thousandsSeparatorHandler(normalized);\n case 'mask':\n return value;\n default:\n return value;\n }\n },\n onMaska: (details) => {\n this.onMaskChanged.emit(details);\n },\n eager: this.eager(),\n });\n }\n thousandsSeparatorHandler(value) {\n let thousandsSeparator = this.separator();\n switch (this.separator()) {\n case '-':\n thousandsSeparator = '_';\n break;\n case '.':\n thousandsSeparator = ',';\n break;\n }\n let clearValue;\n const firstChar = value.charAt(0);\n const restOfString = value.slice(1);\n if (firstChar === '-') {\n clearValue = '-' + restOfString.replace(/-/g, '');\n }\n else {\n clearValue = value.replace(/-/g, '');\n }\n // Ensure only one decimal point\n const decimalParts = clearValue.split('.');\n if (decimalParts.length > 2) {\n clearValue = decimalParts[0] + '.' + decimalParts.slice(1).join('');\n }\n // Apply range limits to the cleaned value\n clearValue = this.rangeValueLimit(clearValue);\n const addSeparator = clearValue.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator);\n return addSeparator;\n }\n hijriMaskHandler(value) {\n const [yearStr, monthStr, dayStr] = value.split(this.separator());\n const year = +yearStr;\n const month = +monthStr;\n const day = +dayStr;\n //Month Logics\n if (!month || !year)\n return value;\n if (month > 12) {\n return `${yearStr}${this.separator()}12`;\n }\n if (month < 1) {\n return `${yearStr}${this.separator()}01`;\n }\n //Day Logics\n if (!day)\n return value;\n if (day < 1) {\n return `${yearStr}-${monthStr}${this.separator()}01`;\n }\n let maxDay = 30;\n if (month <= 6) {\n maxDay = 31;\n }\n else if (month === 12) {\n // Hijri leap year rule: (11 * year + 14) % 30 < 11\n const isKabise = (11 * year + 14) % 30 < 11;\n maxDay = isKabise ? 30 : 29;\n }\n if (day > maxDay) {\n return `${yearStr}${this.separator()}${monthStr}${this.separator()}${maxDay}`;\n }\n return value;\n }\n rangeValueLimit(value) {\n let convertedValue;\n if (this.separator()) {\n convertedValue = +value.split(this.separator()).join('');\n }\n else {\n convertedValue = +value;\n }\n if (this.minValue() && convertedValue < this.minValue()) {\n return this.minValue().toString();\n }\n if (this.maxValue() && convertedValue > this.maxValue()) {\n return this.maxValue().toString();\n }\n return value;\n }\n convertToEnglishDigits(value) {\n return value\n .replace(/[۰-۹]/g, (c) => String(c.charCodeAt(0) - 0x06f0))\n .replace(/[٠-٩]/g, (c) => String(c.charCodeAt(0) - 0x0660));\n }\n decimalMaskHandler(value) {\n // Remove any non-digit and non-decimal characters except the first decimal point\n let cleanValue = value;\n let finalValue;\n // Ensure only one decimal point\n const decimalParts = cleanValue.split('.');\n if (decimalParts.length > 2) {\n cleanValue = decimalParts[0] + '.' + decimalParts.slice(1).join('');\n }\n // Split into integer and decimal parts\n const parts = cleanValue.split('.');\n const integerPart = parts[0] || '';\n const decimalPart = parts[1] || '';\n // Limit decimal part to the specified number of digits\n const limitedDecimalPart = decimalPart.slice(0, this.decimal());\n // Reconstruct the value\n if (limitedDecimalPart.length > 0) {\n finalValue = integerPart + '.' + limitedDecimalPart;\n }\n else if (cleanValue.includes('.')) {\n // If there's a decimal point but no decimal part, keep the decimal point\n finalValue = integerPart + '.';\n }\n else {\n finalValue = integerPart;\n }\n return this.rangeValueLimit(finalValue);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXInputMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: AXInputMaskDirective, isStandalone: true, selector: \"[axInputMask]\", inputs: { maskMode: { classPropertyName: \"maskMode\", publicName: \"maskMode\", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: \"separator\", publicName: \"separator\", isSignal: true, isRequired: false, transformFunction: null }, eager: { classPropertyName: \"eager\", publicName: \"eager\", isSignal: true, isRequired: false, transformFunction: null }, minValue: { classPropertyName: \"minValue\", publicName: \"minValue\", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: \"maxValue\", publicName: \"maxValue\", isSignal: true, isRequired: false, transformFunction: null }, decimal: { classPropertyName: \"decimal\", publicName: \"decimal\", isSignal: true, isRequired: false, transformFunction: null }, maskPattern: { classPropertyName: \"maskPattern\", publicName: \"maskPattern\", isSignal: true, isRequired: false, transformFunction: null }, customTokens: { classPropertyName: \"customTokens\", publicName: \"customTokens\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onMaskChanged: \"onMaskChanged\" }, exportAs: [\"axInputMask\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXInputMaskDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axInputMask]',\n exportAs: 'axInputMask',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvaW5wdXQtbWFzay9zcmMvbGliL2lucHV0LW1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFpQ3JGOzs7O0dBSUc7QUFLSCxNQUFNLE9BQU8sb0JBQW9CO0lBSmpDO1FBS1UsUUFBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUdqQzs7O1dBR0c7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFtQixRQUFRLG9EQUFDLENBQUM7UUFFN0M7OztXQUdHO1FBQ0gsY0FBUyxHQUFHLEtBQUssQ0FBUyxHQUFHLHFEQUFDLENBQUM7UUFFL0I7OztXQUdHO1FBQ0gsVUFBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLGlEQUFDLENBQUM7UUFFckI7O1dBRUc7UUFDSCxrQkFBYSxHQUFHLE1BQU0sRUFBb0IsQ0FBQztRQUUzQzs7O1dBR0c7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFTLElBQUksb0RBQUMsQ0FBQztRQUUvQjs7O1dBR0c7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFTLElBQUksb0RBQUMsQ0FBQztRQUUvQjs7O1dBR0c7UUFDSCxZQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsbURBQUMsQ0FBQztRQUVuQjs7Ozs7Ozs7Ozs7O1dBWUc7UUFDSCxnQkFBVyxHQUFHLEtBQUssQ0FBUyxJQUFJLHVEQUFDLENBQUM7UUFFbEM7Ozs7V0FJRztRQUNILGlCQUFZLEdBQUcsS0FBSyxDQUFlLEVBQUUsd0RBQUMsQ0FBQztRQUV2QyxTQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNqQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJO2dCQUFFLE9BQU87WUFDckMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFBRSxPQUFPO1lBQzlELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixDQUFDLGdEQUFDLENBQUM7S0FxT0o7SUF6T0MsSUFBSSxDQUlEO0lBRUssS0FBSyxDQUFDLGNBQWM7UUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFekMsSUFBSSxJQUFjLENBQUM7UUFDbkIsSUFBSSxNQUdILENBQUM7UUFFRixvQ0FBb0M7UUFDcEMsTUFBTSxhQUFhLEdBQWlCO1lBQ2xDLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNuQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNqRSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNsRSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtTQUNwRSxDQUFDO1FBRUYsOEJBQThCO1FBQzlCLE1BQU0sY0FBYyxHQUFpQjtZQUNuQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFO1lBQ3pCLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUU7WUFDNUIsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRTtZQUMvQixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUU7U0FDdkIsQ0FBQztRQUVGLFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDeEIsS0FBSyxXQUFXO2dCQUNkLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzFELE1BQU0sR0FBRyxhQUFhLENBQUM7Z0JBQ3ZCLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2QsTUFBTSxHQUFHLGFBQWEsQ0FBQztnQkFDdkIsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDZCxNQUFNLEdBQUcsYUFBYSxDQUFDO2dCQUN2QixNQUFNO1lBQ1IsS0FBSyxvQkFBb0I7Z0JBQ3ZCLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLE1BQU0sR0FBRyxhQUFhLENBQUM7Z0JBQ3ZCLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQzVCLE1BQU0sR0FBRyxjQUFjLENBQUM7Z0JBQ3hCLE1BQU07UUFDVixDQUFDO1FBRUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUU7WUFDbkQsSUFBSTtZQUNKLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSztZQUNqRSxNQUFNO1lBQ04sV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3JCLFFBQVEsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7b0JBQ3hCLEtBQUssV0FBVzt3QkFDZCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdEMsS0FBSyxRQUFRO3dCQUNYLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDckMsS0FBSyxTQUFTO3dCQUNaLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN4QyxLQUFLLG9CQUFvQjt3QkFDdkIsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQy9DLEtBQUssTUFBTTt3QkFDVCxPQUFPLEtBQUssQ0FBQztvQkFDZjt3QkFDRSxPQUFPLEtBQUssQ0FBQztnQkFDakIsQ0FBQztZQUNILENBQUM7WUFDRCxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0RCxRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO29CQUN4QixLQUFLLFdBQVc7d0JBQ2QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3RDLEtBQUssUUFBUTt3QkFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQzFDLEtBQUssU0FBUzt3QkFDWixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDN0MsS0FBSyxvQkFBb0I7d0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNwRCxLQUFLLE1BQU07d0JBQ1QsT0FBTyxLQUFLLENBQUM7b0JBQ2Y7d0JBQ0UsT0FBTyxLQUFLLENBQUM7Z0JBQ2pCLENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8seUJBQXlCLENBQUMsS0FBYTtRQUM3QyxJQUFJLGtCQUFrQixHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUUxQyxRQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLEtBQUssR0FBRztnQkFDTixrQkFBa0IsR0FBRyxHQUFHLENBQUM7Z0JBQ3pCLE1BQU07WUFDUixLQUFLLEdBQUc7Z0JBQ04sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO2dCQUN6QixNQUFNO1FBQ1YsQ0FBQztRQUVELElBQUksVUFBa0IsQ0FBQztRQUV2QixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEMsSUFBSSxTQUFTLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDdEIsVUFBVSxHQUFHLEdBQUcsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsZ0NBQWdDO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVCLFVBQVUsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFFRCwwQ0FBMEM7UUFDMUMsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUMsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBRXJGLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ3BDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFbEUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDdEIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDeEIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFFcEIsY0FBYztRQUNkLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDbEMsSUFBSSxLQUFLLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDZixPQUFPLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDO1FBQzNDLENBQUM7UUFDRCxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNkLE9BQU8sR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUM7UUFDM0MsQ0FBQztRQUVELFlBQVk7UUFDWixJQUFJLENBQUMsR0FBRztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRXZCLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ1osT0FBTyxHQUFHLE9BQU8sSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUM7UUFDdkQsQ0FBQztRQUVELElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNmLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDZCxDQUFDO2FBQU0sSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsbURBQW1EO1lBQ25ELE1BQU0sUUFBUSxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQzVDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFFRCxJQUFJLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUNqQixPQUFPLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ2hGLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBYTtRQUNuQyxJQUFJLGNBQXNCLENBQUM7UUFFM0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNyQixjQUFjLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDO2FBQU0sQ0FBQztZQUNOLGNBQWMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUMxQixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3hELE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDeEQsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDcEMsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQWE7UUFDMUMsT0FBTyxLQUFLO2FBQ1QsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7YUFDMUQsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBYTtRQUN0QyxpRkFBaUY7UUFDakYsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksVUFBa0IsQ0FBQztRQUV2QixnQ0FBZ0M7UUFDaEMsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsVUFBVSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELHVDQUF1QztRQUN2QyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVuQyx1REFBdUQ7UUFDdkQsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVoRSx3QkFBd0I7UUFDeEIsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEMsVUFBVSxHQUFHLFdBQVcsR0FBRyxHQUFHLEdBQUcsa0JBQWtCLENBQUM7UUFDdEQsQ0FBQzthQUFNLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BDLHlFQUF5RTtZQUN6RSxVQUFVLEdBQUcsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUNqQyxDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsR0FBRyxXQUFXLENBQUM7UUFDM0IsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDOzhHQTNTVSxvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFLGFBQWE7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBNYXNrSW5wdXQgfSBmcm9tICdtYXNrYSc7XG5cbi8qKlxuICogRXZlbnQgcGF5bG9hZCBmb3IgaW5wdXQgbWFzayB2YWx1ZSBjaGFuZ2VzLlxuICovXG5leHBvcnQgdHlwZSBBWElucHV0TWFza0V2ZW50ID0ge1xuICBtYXNrZWQ6IHN0cmluZztcbiAgdW5tYXNrZWQ6IHN0cmluZztcbiAgY29tcGxldGVkOiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBBdmFpbGFibGUgaW5wdXQgbWFzayBtb2RlcyBmb3IgZGlmZmVyZW50IGRhdGEgdHlwZXMuXG4gKi9cbmV4cG9ydCB0eXBlIEFYSW5wdXRNYXNrTW9kZXMgPSAnaGlqcmlEYXRlJyB8ICdkaWdpdHMnIHwgJ3Rob3VzYW5kc1NlcGFyYXRvcicgfCAnZGVjaW1hbCcgfCAnbWFzayc7XG5cbi8qKlxuICogVG9rZW4gZGVmaW5pdGlvbnMgZm9yIGN1c3RvbSBtYXNrIHBhdHRlcm5zLlxuICogLSBgI2A6IERpZ2l0ICgwLTkpXG4gKiAtIGBeYDogTGV0dGVyIChhLXosIEEtWilcbiAqIC0gYEBgOiBBbHBoYW51bWVyaWMgKDAtOSwgYS16LCBBLVopXG4gKi9cbmV4cG9ydCB0eXBlIEFYTWFza1Rva2VucyA9IHtcbiAgW2tleTogc3RyaW5nXToge1xuICAgIHBhdHRlcm46IFJlZ0V4cDtcbiAgICBvcHRpb25hbD86IGJvb2xlYW47XG4gICAgdHJhbnNmb3JtPzogKGNoYXI6IHN0cmluZykgPT4gc3RyaW5nO1xuICAgIHJlcGVhdGVkPzogYm9vbGVhbjtcbiAgICBtdWx0aXBsZT86IGJvb2xlYW47XG4gIH07XG59O1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0aGF0IHByb3ZpZGVzIGlucHV0IG1hc2tpbmcgZnVuY3Rpb25hbGl0eSBmb3IgdmFyaW91cyBkYXRhIHR5cGVzIGluY2x1ZGluZ1xuICogSGlqcmkgZGF0ZXMsIGRpZ2l0cywgZGVjaW1hbCBudW1iZXJzLCBhbmQgdGhvdXNhbmRzLXNlcGFyYXRlZCBudW1iZXJzLlxuICogQnVpbHQgb24gdG9wIG9mIHRoZSBNYXNrYS5qcyBsaWJyYXJ5IGZvciByb2J1c3QgaW5wdXQgdmFsaWRhdGlvbiBhbmQgZm9ybWF0dGluZy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4SW5wdXRNYXNrXScsXG4gIGV4cG9ydEFzOiAnYXhJbnB1dE1hc2snLFxufSlcbmV4cG9ydCBjbGFzcyBBWElucHV0TWFza0RpcmVjdGl2ZSB7XG4gIHByaXZhdGUgZWxtID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIG1hc2thSnM6IE1hc2tJbnB1dDtcblxuICAvKipcbiAgICogVGhlIG1vZGUgb2YgaW5wdXQgbWFza2luZyB0byBhcHBseS5cbiAgICogQGRlZmF1bHQgJ2RpZ2l0cydcbiAgICovXG4gIG1hc2tNb2RlID0gaW5wdXQ8QVhJbnB1dE1hc2tNb2Rlcz4oJ2RpZ2l0cycpO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VwYXJhdG9yIGNoYXJhY3RlciB1c2VkIGluIHRoZSBtYXNrIChlLmcuLCAnLycgZm9yIGRhdGVzLCAnLCcgZm9yIHRob3VzYW5kcykuXG4gICAqIEBkZWZhdWx0ICcvJ1xuICAgKi9cbiAgc2VwYXJhdG9yID0gaW5wdXQ8c3RyaW5nPignLycpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFwcGx5IHRoZSBtYXNrIGVhZ2VybHkgKGFzIHVzZXIgdHlwZXMpIG9yIG9uIGJsdXIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBlYWdlciA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBtYXNrZWQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIG9uTWFza0NoYW5nZWQgPSBvdXRwdXQ8QVhJbnB1dE1hc2tFdmVudD4oKTtcblxuICAvKipcbiAgICogTWluaW11bSBhbGxvd2VkIHZhbHVlIGZvciBudW1lcmljIGlucHV0cy5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgbWluVmFsdWUgPSBpbnB1dDxudW1iZXI+KG51bGwpO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIGFsbG93ZWQgdmFsdWUgZm9yIG51bWVyaWMgaW5wdXRzLlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBtYXhWYWx1ZSA9IGlucHV0PG51bWJlcj4obnVsbCk7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBhbGxvd2VkIGZvciBkZWNpbWFsIGlucHV0cy5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgZGVjaW1hbCA9IGlucHV0KDApO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gbWFzayBwYXR0ZXJuIGZvciAnbWFzaycgbW9kZS5cbiAgICogVXNlIHRoZSBmb2xsb3dpbmcgdG9rZW5zOlxuICAgKiAtIGAjYDogUmVxdWlyZWQgZGlnaXQgKDAtOSlcbiAgICogLSBgXmA6IFJlcXVpcmVkIGxldHRlciAoYS16LCBBLVopXG4gICAqIC0gYEBgOiBSZXF1aXJlZCBhbHBoYW51bWVyaWMgKDAtOSwgYS16LCBBLVopXG4gICAqXG4gICAqIFVzZSAhIGJlZm9yZSB0b2tlbiB0byBlc2NhcGUgc3ltYm9sLiBGb3IgZXhhbXBsZSAhIyB3aWxsIHJlbmRlciAjIGluc3RlYWQgb2YgYSBkaWdpdC5cbiAgICogQW55IG90aGVyIGNoYXJhY3RlciBpcyB0cmVhdGVkIGFzIGEgbGl0ZXJhbCBzZXBhcmF0b3IuXG4gICAqIEBleGFtcGxlICcoIyMjKSAjIyMtIyMjIycgZm9yIHBob25lIG51bWJlcnNcbiAgICogQGV4YW1wbGUgJ0FBLSMjIyMnIGZvciBsaWNlbnNlIHBsYXRlc1xuICAgKiBAZXhhbXBsZSAnIyMvIyMvIyMjIycgZm9yIGRhdGVzXG4gICAqL1xuICBtYXNrUGF0dGVybiA9IGlucHV0PHN0cmluZz4obnVsbCk7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSB0b2tlbiBkZWZpbml0aW9ucyB0byBleHRlbmQgb3Igb3ZlcnJpZGUgZGVmYXVsdCBtYXNrIHRva2Vucy5cbiAgICogRWFjaCB0b2tlbiBtYXBzIHRvIGEgcGF0dGVybiByZWdleCBhbmQgb3B0aW9uYWwgdHJhbnNmb3JtYXRpb24uXG4gICAqIEBleGFtcGxlIHsgJ1AnOiB7IHBhdHRlcm46IC9bMS05XS8sIHRyYW5zZm9ybTogKGMpID0+IGMudG9VcHBlckNhc2UoKSB9IH1cbiAgICovXG4gIGN1c3RvbVRva2VucyA9IGlucHV0PEFYTWFza1Rva2Vucz4oe30pO1xuXG4gICNlZmYgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aGlzLm1hc2tNb2RlKCkgPT09IG51bGwpIHJldHVybjtcbiAgICBpZiAodGhpcy5tYXNrTW9kZSgpID09PSAnbWFzaycgJiYgIXRoaXMubWFza1BhdHRlcm4oKSkgcmV0dXJuO1xuICAgIHRoaXMuaW5pdGlhbGl6ZU1hc2soKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0aWFsaXplTWFzaygpIHtcbiAgICBpZiAodGhpcy5tYXNrYUpzKSB0aGlzLm1hc2thSnMuZGVzdHJveSgpO1xuXG4gICAgbGV0IG1hc2s6IHN0cmluZ1tdO1xuICAgIGxldCB0b2tlbnM6IFJlY29yZDxcbiAgICAgIHN0cmluZyxcbiAgICAgIHsgcGF0dGVybjogUmVnRXhwOyBvcHRpb25hbD86IGJvb2xlYW47IHJlcGVhdGVkPzogYm9vbGVhbjsgdHJhbnNmb3JtPzogKGNoYXI6IHN0cmluZykgPT4gc3RyaW5nIH1cbiAgICA+O1xuXG4gICAgLy8gRGVmYXVsdCB0b2tlbnMgZm9yIGJ1aWx0LWluIG1vZGVzXG4gICAgY29uc3QgZGVmYXVsdFRva2VuczogQVhNYXNrVG9rZW5zID0ge1xuICAgICAgRDogeyBwYXR0ZXJuOiAvLS8sIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICBGOiB7IHBhdHRlcm46IC9bMC05XFx1MDZGMC1cXHUwNkY5XFx1MDY2MC1cXHUwNjY5XS8sIHJlcGVhdGVkOiB0cnVlIH0sXG4gICAgICBYOiB7IHBhdHRlcm46IC9bMC05XFx1MDZGMC1cXHUwNkY5XFx1MDY2MC1cXHUwNjY5Ll0vLCByZXBlYXRlZDogdHJ1ZSB9LFxuICAgICAgVTogeyBwYXR0ZXJuOiAvWy0wLTlcXHUwNkYwLVxcdTA2RjlcXHUwNjYwLVxcdTA2NjkuXS8sIHJlcGVhdGVkOiB0cnVlIH0sXG4gICAgfTtcblxuICAgIC8vIFRva2VucyBmb3IgY3VzdG9tIG1hc2sgbW9kZVxuICAgIGNvbnN0IG1hc2tNb2RlVG9rZW5zOiBBWE1hc2tUb2tlbnMgPSB7XG4gICAgICAnIyc6IHsgcGF0dGVybjogL1swLTldLyB9LFxuICAgICAgJ14nOiB7IHBhdHRlcm46IC9bYS16QS1aXS8gfSxcbiAgICAgICdAJzogeyBwYXR0ZXJuOiAvW2EtekEtWjAtOV0vIH0sXG4gICAgICAuLi50aGlzLmN1c3RvbVRva2VucygpLFxuICAgIH07XG5cbiAgICBzd2l0Y2ggKHRoaXMubWFza01vZGUoKSkge1xuICAgICAgY2FzZSAnaGlqcmlEYXRlJzpcbiAgICAgICAgbWFzayA9IFtgMSMjIyR7dGhpcy5zZXBhcmF0b3IoKX0jIyR7dGhpcy5zZXBhcmF0b3IoKX0jI2BdO1xuICAgICAgICB0b2tlbnMgPSBkZWZhdWx0VG9rZW5zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RpZ2l0cyc6XG4gICAgICAgIG1hc2sgPSBbJ0RGJ107XG4gICAgICAgIHRva2VucyA9IGRlZmF1bHRUb2tlbnM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVjaW1hbCc6XG4gICAgICAgIG1hc2sgPSBbYERYYF07XG4gICAgICAgIHRva2VucyA9IGRlZmF1bHRUb2tlbnM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndGhvdXNhbmRzU2VwYXJhdG9yJzpcbiAgICAgICAgbWFzayA9IFtgVWBdO1xuICAgICAgICB0b2tlbnMgPSBkZWZhdWx0VG9rZW5zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ21hc2snOlxuICAgICAgICBtYXNrID0gW3RoaXMubWFza1BhdHRlcm4oKV07XG4gICAgICAgIHRva2VucyA9IG1hc2tNb2RlVG9rZW5zO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCB7IE1hc2tJbnB1dCB9ID0gYXdhaXQgaW1wb3J0KCdtYXNrYScpO1xuXG4gICAgdGhpcy5tYXNrYUpzID0gbmV3IE1hc2tJbnB1dCh0aGlzLmVsbS5uYXRpdmVFbGVtZW50LCB7XG4gICAgICBtYXNrLFxuICAgICAgcmV2ZXJzZWQ6IHRoaXMubWFza01vZGUoKSA9PT0gJ3Rob3VzYW5kc1NlcGFyYXRvcicgPyB0cnVlIDogZmFsc2UsXG4gICAgICB0b2tlbnMsXG4gICAgICBwb3N0UHJvY2VzczogKHZhbHVlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5tYXNrTW9kZSgpKSB7XG4gICAgICAgICAgY2FzZSAnaGlqcmlEYXRlJzpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhpanJpTWFza0hhbmRsZXIodmFsdWUpO1xuICAgICAgICAgIGNhc2UgJ2RpZ2l0cyc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yYW5nZVZhbHVlTGltaXQodmFsdWUpO1xuICAgICAgICAgIGNhc2UgJ2RlY2ltYWwnOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVjaW1hbE1hc2tIYW5kbGVyKHZhbHVlKTtcbiAgICAgICAgICBjYXNlICd0aG91c2FuZHNTZXBhcmF0b3InOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGhvdXNhbmRzU2VwYXJhdG9ySGFuZGxlcih2YWx1ZSk7XG4gICAgICAgICAgY2FzZSAnbWFzayc6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHByZVByb2Nlc3M6ICh2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkID0gdGhpcy5jb252ZXJ0VG9FbmdsaXNoRGlnaXRzKHZhbHVlKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLm1hc2tNb2RlKCkpIHtcbiAgICAgICAgICBjYXNlICdoaWpyaURhdGUnOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGlqcmlNYXNrSGFuZGxlcih2YWx1ZSk7XG4gICAgICAgICAgY2FzZSAnZGlnaXRzJzpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJhbmdlVmFsdWVMaW1pdChub3JtYWxpemVkKTtcbiAgICAgICAgICBjYXNlICdkZWNpbWFsJzpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRlY2ltYWxNYXNrSGFuZGxlcihub3JtYWxpemVkKTtcbiAgICAgICAgICBjYXNlICd0aG91c2FuZHNTZXBhcmF0b3InOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGhvdXNhbmRzU2VwYXJhdG9ySGFuZGxlcihub3JtYWxpemVkKTtcbiAgICAgICAgICBjYXNlICdtYXNrJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgb25NYXNrYTogKGRldGFpbHMpID0+IHtcbiAgICAgICAgdGhpcy5vbk1hc2tDaGFuZ2VkLmVtaXQoZGV0YWlscyk7XG4gICAgICB9LFxuICAgICAgZWFnZXI6IHRoaXMuZWFnZXIoKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdGhvdXNhbmRzU2VwYXJhdG9ySGFuZGxlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgbGV0IHRob3VzYW5kc1NlcGFyYXRvciA9IHRoaXMuc2VwYXJhdG9yKCk7XG5cbiAgICBzd2l0Y2ggKHRoaXMuc2VwYXJhdG9yKCkpIHtcbiAgICAgIGNhc2UgJy0nOlxuICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3IgPSAnXyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnLic6XG4gICAgICAgIHRob3VzYW5kc1NlcGFyYXRvciA9ICcsJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgbGV0IGNsZWFyVmFsdWU6IHN0cmluZztcblxuICAgIGNvbnN0IGZpcnN0Q2hhciA9IHZhbHVlLmNoYXJBdCgwKTtcbiAgICBjb25zdCByZXN0T2ZTdHJpbmcgPSB2YWx1ZS5zbGljZSgxKTtcblxuICAgIGlmIChmaXJzdENoYXIgPT09ICctJykge1xuICAgICAgY2xlYXJWYWx1ZSA9ICctJyArIHJlc3RPZlN0cmluZy5yZXBsYWNlKC8tL2csICcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xlYXJWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoLy0vZywgJycpO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSBvbmx5IG9uZSBkZWNpbWFsIHBvaW50XG4gICAgY29uc3QgZGVjaW1hbFBhcnRzID0gY2xlYXJWYWx1ZS5zcGxpdCgnLicpO1xuICAgIGlmIChkZWNpbWFsUGFydHMubGVuZ3RoID4gMikge1xuICAgICAgY2xlYXJWYWx1ZSA9IGRlY2ltYWxQYXJ0c1swXSArICcuJyArIGRlY2ltYWxQYXJ0cy5zbGljZSgxKS5qb2luKCcnKTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSByYW5nZSBsaW1pdHMgdG8gdGhlIGNsZWFuZWQgdmFsdWVcbiAgICBjbGVhclZhbHVlID0gdGhpcy5yYW5nZVZhbHVlTGltaXQoY2xlYXJWYWx1ZSk7XG5cbiAgICBjb25zdCBhZGRTZXBhcmF0b3IgPSBjbGVhclZhbHVlLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIHRob3VzYW5kc1NlcGFyYXRvcik7XG5cbiAgICByZXR1cm4gYWRkU2VwYXJhdG9yO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWpyaU1hc2tIYW5kbGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBbeWVhclN0ciwgbW9udGhTdHIsIGRheVN0cl0gPSB2YWx1ZS5zcGxpdCh0aGlzLnNlcGFyYXRvcigpKTtcblxuICAgIGNvbnN0IHllYXIgPSAreWVhclN0cjtcbiAgICBjb25zdCBtb250aCA9ICttb250aFN0cjtcbiAgICBjb25zdCBkYXkgPSArZGF5U3RyO1xuXG4gICAgLy9Nb250aCBMb2dpY3NcbiAgICBpZiAoIW1vbnRoIHx8ICF5ZWFyKSByZXR1cm4gdmFsdWU7XG4gICAgaWYgKG1vbnRoID4gMTIpIHtcbiAgICAgIHJldHVybiBgJHt5ZWFyU3RyfSR7dGhpcy5zZXBhcmF0b3IoKX0xMmA7XG4gICAgfVxuICAgIGlmIChtb250aCA8IDEpIHtcbiAgICAgIHJldHVybiBgJHt5ZWFyU3RyfSR7dGhpcy5zZXBhcmF0b3IoKX0wMWA7XG4gICAgfVxuXG4gICAgLy9EYXkgTG9naWNzXG4gICAgaWYgKCFkYXkpIHJldHVybiB2YWx1ZTtcblxuICAgIGlmIChkYXkgPCAxKSB7XG4gICAgICByZXR1cm4gYCR7eWVhclN0cn0tJHttb250aFN0cn0ke3RoaXMuc2VwYXJhdG9yKCl9MDFgO1xuICAgIH1cblxuICAgIGxldCBtYXhEYXkgPSAzMDtcbiAgICBpZiAobW9udGggPD0gNikge1xuICAgICAgbWF4RGF5ID0gMzE7XG4gICAgfSBlbHNlIGlmIChtb250aCA9PT0gMTIpIHtcbiAgICAgIC8vIEhpanJpIGxlYXAgeWVhciBydWxlOiAoMTEgKiB5ZWFyICsgMTQpICUgMzAgPCAxMVxuICAgICAgY29uc3QgaXNLYWJpc2UgPSAoMTEgKiB5ZWFyICsgMTQpICUgMzAgPCAxMTtcbiAgICAgIG1heERheSA9IGlzS2FiaXNlID8gMzAgOiAyOTtcbiAgICB9XG5cbiAgICBpZiAoZGF5ID4gbWF4RGF5KSB7XG4gICAgICByZXR1cm4gYCR7eWVhclN0cn0ke3RoaXMuc2VwYXJhdG9yKCl9JHttb250aFN0cn0ke3RoaXMuc2VwYXJhdG9yKCl9JHttYXhEYXl9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHJhbmdlVmFsdWVMaW1pdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgbGV0IGNvbnZlcnRlZFZhbHVlOiBudW1iZXI7XG5cbiAgICBpZiAodGhpcy5zZXBhcmF0b3IoKSkge1xuICAgICAgY29udmVydGVkVmFsdWUgPSArdmFsdWUuc3BsaXQodGhpcy5zZXBhcmF0b3IoKSkuam9pbignJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnZlcnRlZFZhbHVlID0gK3ZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1pblZhbHVlKCkgJiYgY29udmVydGVkVmFsdWUgPCB0aGlzLm1pblZhbHVlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLm1pblZhbHVlKCkudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tYXhWYWx1ZSgpICYmIGNvbnZlcnRlZFZhbHVlID4gdGhpcy5tYXhWYWx1ZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhWYWx1ZSgpLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0VG9FbmdsaXNoRGlnaXRzKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB2YWx1ZVxuICAgICAgLnJlcGxhY2UoL1vbsC3buV0vZywgKGMpID0+IFN0cmluZyhjLmNoYXJDb2RlQXQoMCkgLSAweDA2ZjApKVxuICAgICAgLnJlcGxhY2UoL1vZoC3ZqV0vZywgKGMpID0+IFN0cmluZyhjLmNoYXJDb2RlQXQoMCkgLSAweDA2NjApKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVjaW1hbE1hc2tIYW5kbGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBSZW1vdmUgYW55IG5vbi1kaWdpdCBhbmQgbm9uLWRlY2ltYWwgY2hhcmFjdGVycyBleGNlcHQgdGhlIGZpcnN0IGRlY2ltYWwgcG9pbnRcbiAgICBsZXQgY2xlYW5WYWx1ZSA9IHZhbHVlO1xuICAgIGxldCBmaW5hbFZhbHVlOiBzdHJpbmc7XG5cbiAgICAvLyBFbnN1cmUgb25seSBvbmUgZGVjaW1hbCBwb2ludFxuICAgIGNvbnN0IGRlY2ltYWxQYXJ0cyA9IGNsZWFuVmFsdWUuc3BsaXQoJy4nKTtcbiAgICBpZiAoZGVjaW1hbFBhcnRzLmxlbmd0aCA+IDIpIHtcbiAgICAgIGNsZWFuVmFsdWUgPSBkZWNpbWFsUGFydHNbMF0gKyAnLicgKyBkZWNpbWFsUGFydHMuc2xpY2UoMSkuam9pbignJyk7XG4gICAgfVxuXG4gICAgLy8gU3BsaXQgaW50byBpbnRlZ2VyIGFuZCBkZWNpbWFsIHBhcnRzXG4gICAgY29uc3QgcGFydHMgPSBjbGVhblZhbHVlLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgaW50ZWdlclBhcnQgPSBwYXJ0c1swXSB8fCAnJztcbiAgICBjb25zdCBkZWNpbWFsUGFydCA9IHBhcnRzWzFdIHx8ICcnO1xuXG4gICAgLy8gTGltaXQgZGVjaW1hbCBwYXJ0IHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRpZ2l0c1xuICAgIGNvbnN0IGxpbWl0ZWREZWNpbWFsUGFydCA9IGRlY2ltYWxQYXJ0LnNsaWNlKDAsIHRoaXMuZGVjaW1hbCgpKTtcblxuICAgIC8vIFJlY29uc3RydWN0IHRoZSB2YWx1ZVxuICAgIGlmIChsaW1pdGVkRGVjaW1hbFBhcnQubGVuZ3RoID4gMCkge1xuICAgICAgZmluYWxWYWx1ZSA9IGludGVnZXJQYXJ0ICsgJy4nICsgbGltaXRlZERlY2ltYWxQYXJ0O1xuICAgIH0gZWxzZSBpZiAoY2xlYW5WYWx1ZS5pbmNsdWRlcygnLicpKSB7XG4gICAgICAvLyBJZiB0aGVyZSdzIGEgZGVjaW1hbCBwb2ludCBidXQgbm8gZGVjaW1hbCBwYXJ0LCBrZWVwIHRoZSBkZWNpbWFsIHBvaW50XG4gICAgICBmaW5hbFZhbHVlID0gaW50ZWdlclBhcnQgKyAnLic7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbmFsVmFsdWUgPSBpbnRlZ2VyUGFydDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yYW5nZVZhbHVlTGltaXQoZmluYWxWYWx1ZSk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1pbnB1dC1tYXNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2lucHV0LW1hc2svc3JjL2Fjb3JleC1jZGstaW5wdXQtbWFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
@@ -97,16 +97,16 @@ class AXListNavigationDirective {
97
97
  });
98
98
  e.itemElem.nativeElement.scrollIntoView(this.scrollOption);
99
99
  }
100
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXListNavigationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
101
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.15", type: AXListNavigationDirective, isStandalone: true, selector: "[axListNavigation]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onNavigationChanged: "onNavigationChanged", onKeypress: "onKeypress" }, queries: [{ propertyName: "childElem", predicate: AXListNavigationItemDirective, descendants: true, isSignal: true }], exportAs: ["axListNavigation"], ngImport: i0 }); }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
101
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.3", type: AXListNavigationDirective, isStandalone: true, selector: "[axListNavigation]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onNavigationChanged: "onNavigationChanged", onKeypress: "onKeypress" }, queries: [{ propertyName: "childElem", predicate: AXListNavigationItemDirective, descendants: true, isSignal: true }], exportAs: ["axListNavigation"], ngImport: i0 }); }
102
102
  }
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXListNavigationDirective, decorators: [{
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationDirective, decorators: [{
104
104
  type: Directive,
105
105
  args: [{
106
106
  selector: '[axListNavigation]',
107
107
  exportAs: 'axListNavigation',
108
108
  }]
109
- }], propDecorators: { childElem: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => AXListNavigationItemDirective), { ...{ descendants: true }, isSignal: true }] }], onNavigationChanged: [{ type: i0.Output, args: ["onNavigationChanged"] }], onKeypress: [{ type: i0.Output, args: ["onKeypress"] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }] } });
109
+ }] });
110
110
 
111
111
  class AXListNavigationItemDirective {
112
112
  constructor() {
@@ -135,25 +135,25 @@ class AXListNavigationItemDirective {
135
135
  });
136
136
  }
137
137
  #init;
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXListNavigationItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
139
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: AXListNavigationItemDirective, isStandalone: true, selector: "[axListNavigationItem]", outputs: { onKeypress: "onKeypress" }, exportAs: ["axListNavigationItem"], ngImport: i0 }); }
138
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
139
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.3", type: AXListNavigationItemDirective, isStandalone: true, selector: "[axListNavigationItem]", outputs: { onKeypress: "onKeypress" }, exportAs: ["axListNavigationItem"], ngImport: i0 }); }
140
140
  }
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXListNavigationItemDirective, decorators: [{
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationItemDirective, decorators: [{
142
142
  type: Directive,
143
143
  args: [{
144
144
  selector: '[axListNavigationItem]',
145
145
  exportAs: 'axListNavigationItem',
146
146
  }]
147
- }], propDecorators: { onKeypress: [{ type: i0.Output, args: ["onKeypress"] }] } });
147
+ }] });
148
148
 
149
149
  const COMPONENT = [AXListNavigationDirective, AXListNavigationItemDirective];
150
150
  const MODULES = [CommonModule];
151
151
  class AXListNavigationModule {
152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXListNavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
153
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: AXListNavigationModule, imports: [CommonModule, AXListNavigationDirective, AXListNavigationItemDirective], exports: [AXListNavigationDirective, AXListNavigationItemDirective] }); }
154
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXListNavigationModule, imports: [MODULES] }); }
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
153
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationModule, imports: [CommonModule, AXListNavigationDirective, AXListNavigationItemDirective], exports: [AXListNavigationDirective, AXListNavigationItemDirective] }); }
154
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationModule, imports: [MODULES] }); }
155
155
  }
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXListNavigationModule, decorators: [{
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationModule, decorators: [{
157
157
  type: NgModule,
158
158
  args: [{
159
159
  imports: [...MODULES, ...COMPONENT],