{"version":3,"file":"maskito-angular.mjs","sources":["../../../projects/angular/src/lib/maskito.directive.ts","../../../projects/angular/src/lib/maskito.pipe.ts","../../../projects/angular/src/maskito-angular.ts"],"sourcesContent":["import type {OnChanges, OnDestroy} from '@angular/core';\nimport {Directive, ElementRef, inject, Input, NgZone} from '@angular/core';\nimport {DefaultValueAccessor} from '@angular/forms';\nimport type {MaskitoElementPredicate, MaskitoOptions} from '@maskito/core';\nimport {\n    Maskito,\n    MASKITO_DEFAULT_ELEMENT_PREDICATE,\n    maskitoTransform,\n} from '@maskito/core';\n\n@Directive({standalone: true, selector: '[maskito]'})\nexport class MaskitoDirective implements OnDestroy, OnChanges {\n    private readonly elementRef: HTMLElement = inject(ElementRef).nativeElement;\n    private readonly ngZone = inject(NgZone);\n    private maskedElement: Maskito | null = null;\n\n    @Input('maskito')\n    public options: MaskitoOptions | null = null;\n\n    @Input('maskitoElement')\n    public elementPredicate: MaskitoElementPredicate = MASKITO_DEFAULT_ELEMENT_PREDICATE;\n\n    constructor() {\n        const accessor = inject(DefaultValueAccessor, {self: true, optional: true});\n\n        if (accessor) {\n            const original = accessor.writeValue.bind(accessor);\n\n            accessor.writeValue = (value: unknown) => {\n                original(\n                    this.options\n                        ? maskitoTransform(String(value ?? ''), this.options)\n                        : value,\n                );\n            };\n        }\n    }\n\n    public async ngOnChanges(): Promise<void> {\n        const {elementPredicate, options, maskedElement, elementRef, ngZone} = this;\n\n        maskedElement?.destroy();\n\n        if (!options) {\n            return;\n        }\n\n        const predicateResult = await elementPredicate(elementRef);\n\n        if (this.elementPredicate !== elementPredicate || this.options !== options) {\n            // Ignore the result of the predicate if the\n            // maskito element (or its options) has changed before the predicate was resolved.\n            return;\n        }\n\n        ngZone.runOutsideAngular(() => {\n            this.maskedElement = new Maskito(predicateResult, options);\n        });\n    }\n\n    public ngOnDestroy(): void {\n        this.maskedElement?.destroy();\n    }\n}\n","import type {PipeTransform} from '@angular/core';\nimport {Pipe} from '@angular/core';\nimport type {MaskitoOptions} from '@maskito/core';\nimport {MASKITO_DEFAULT_OPTIONS, maskitoTransform} from '@maskito/core';\n\n@Pipe({\n    standalone: true,\n    name: 'maskito',\n})\nexport class MaskitoPipe implements PipeTransform {\n    public transform(value: unknown, maskitoOptions: MaskitoOptions | null): string {\n        return maskitoTransform(\n            String(value ?? ''),\n            maskitoOptions ?? MASKITO_DEFAULT_OPTIONS,\n        );\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}