{"version":3,"file":"asoftwareworld-card-validator-card-cvv.mjs","sources":["../../src/card-validator/card-cvv/card-cvv.ts","../../src/card-validator/card-cvv/card-cvv.html","../../src/card-validator/card-cvv/card-cvv.module.ts","../../src/card-validator/card-cvv/public_api.ts","../../src/card-validator/card-cvv/asoftwareworld-card-validator-card-cvv.ts"],"sourcesContent":["/**\r\n * @license\r\n * Copyright ASW (A Software World) All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file\r\n */\r\nimport {\r\n    Component,\r\n    HostBinding,\r\n    Input,\r\n    Injector,\r\n    OnInit,\r\n    OnDestroy,\r\n    DoCheck,\r\n    ElementRef,\r\n    forwardRef\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NG_VALIDATORS, NgControl } from '@angular/forms';\r\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { Subject } from 'rxjs';\r\nimport { CardCvvService, CardCvvValidator } from '@asoftwareworld/card-validator/common';\r\n\r\n@Component({\r\n    selector: 'asw-card-cvv',\r\n    templateUrl: './card-cvv.html',\r\n    styleUrls: ['./card-cvv.scss'],\r\n    providers: [\r\n        {\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => AswCardCvv),\r\n            multi: true\r\n        },\r\n        {\r\n            provide: NG_VALIDATORS,\r\n            useExisting: CardCvvValidator,\r\n            multi: true\r\n        },\r\n        {\r\n            provide: MatFormFieldControl,\r\n            useExisting: AswCardCvv,\r\n            multi: true\r\n        }\r\n    ]\r\n})\r\nexport class AswCardCvv implements OnInit, OnDestroy, DoCheck, ControlValueAccessor, MatFormFieldControl<AswCardCvv> {\r\n    static nextId = 0;\r\n    cardCvv = '';\r\n    onTouched: any;\r\n    focused = false;\r\n    cvvMaxlength = 4;\r\n    errorState = false;\r\n    ngControl: NgControl | null = null;\r\n    stateChanges = new Subject<void>();\r\n    onChanges: any;\r\n\r\n    @Input()\r\n    get value(): any {\r\n        return this.value$;\r\n    }\r\n    set value(cardNumber) {\r\n        this.value$ = cardNumber;\r\n        this.onChanges(cardNumber);\r\n        this.stateChanges.next();\r\n    }\r\n    private value$: any;\r\n\r\n    @Input()\r\n    get placeholder(): string {\r\n        return this.placeholder$;\r\n    }\r\n    set placeholder(placeholder: string) {\r\n        this.placeholder$ = placeholder;\r\n        this.stateChanges.next();\r\n    }\r\n    private placeholder$!: string;\r\n\r\n    @Input()\r\n    get empty(): boolean {\r\n        return !(!!this.cardCvv);\r\n    }\r\n\r\n    @Input()\r\n    get required(): boolean {\r\n        return this.required$;\r\n    }\r\n    set required(req: BooleanInput) {\r\n        this.required$ = coerceBooleanProperty(req);\r\n        this.stateChanges.next();\r\n    }\r\n    private required$ = false;\r\n\r\n    @Input()\r\n    get disabled(): boolean {\r\n        if (this.ngControl && this.ngControl.disabled !== null) {\r\n            return this.ngControl.disabled;\r\n        }\r\n        return this.disabled$;\r\n    }\r\n    set disabled(value: BooleanInput) {\r\n        this.disabled$ = coerceBooleanProperty(value);\r\n        this.stateChanges.next();\r\n    }\r\n    private disabled$ = false;\r\n\r\n    @Input() aswInputClass?: string;\r\n\r\n    @HostBinding() id = `asw-card-cvv-${AswCardCvv.nextId}`;\r\n    @HostBinding('attr.aria-describedby') describedBy = '';\r\n    @HostBinding('class.floating')\r\n    get shouldLabelFloat(): boolean {\r\n        return this.focused || !this.empty;\r\n    }\r\n\r\n    constructor(\r\n        private injector: Injector,\r\n        private elementRef: ElementRef<HTMLElement>,\r\n        private focusMonitor: FocusMonitor,\r\n        private cardCvvService: CardCvvService\r\n    ) {\r\n        focusMonitor.monitor(elementRef.nativeElement, true).subscribe((origin: FocusOrigin) => {\r\n            this.focused = !!origin;\r\n            this.stateChanges.next();\r\n        });\r\n    }\r\n\r\n    ngOnInit(): void {\r\n        this.ngControl = this.injector.get(NgControl);\r\n        if (this.ngControl !== null) {\r\n            // Setting the value accessor directly (instead of using\r\n            // the providers) to avoid running into a circular import.\r\n            this.ngControl.valueAccessor = this;\r\n        }\r\n    }\r\n\r\n    ngDoCheck(): void {\r\n        if (this.cardCvvService.code) {\r\n            this.cvvMaxlength = this.cardCvvService.code.size.length <= 1\r\n                ? this.cardCvvService.code.size[0] : this.cardCvvService.code.size[1];\r\n        }\r\n        if (this.ngControl) {\r\n            this.errorState = this.ngControl.invalid && this.ngControl.touched ? true : false;\r\n            this.stateChanges.next();\r\n        }\r\n    }\r\n\r\n    writeValue(value: string): void {\r\n        if (value) {\r\n            this.cardCvv = value;\r\n        }\r\n    }\r\n\r\n    registerOnChange(fn: any): void {\r\n        this.onChanges = fn;\r\n    }\r\n\r\n    registerOnTouched(fn: any): void {\r\n        this.onTouched = fn;\r\n    }\r\n\r\n    setDescribedByIds(ids: string[]): void {\r\n        this.describedBy = ids.join(' ');\r\n    }\r\n\r\n    onContainerClick(event: MouseEvent): void {\r\n        if ((event.target as Element).tagName.toLowerCase() !== 'input') {\r\n            this.elementRef.nativeElement.querySelector('input')?.focus();\r\n        }\r\n    }\r\n\r\n    updateCvv(event: Event): void {\r\n        const value = (event.target as HTMLInputElement).value;\r\n        this.cardCvv = value;\r\n        this.onChanges(value);\r\n        this.ngControl?.control?.markAsDirty();\r\n    }\r\n\r\n    updateOnTouch(): void {\r\n        if (this.ngControl) {\r\n            this.onTouched(this.ngControl.control?.value);\r\n            this.ngControl.control?.markAsTouched();\r\n        }\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n        this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\r\n        this.stateChanges.complete();\r\n    }\r\n}\r\n","<div class=\"asw-card-cvv-container\">\r\n    <input\r\n        type=\"text\"\r\n        matInput\r\n        [placeholder]=\"placeholder || ''\"\r\n        [required]=\"required\"\r\n        [disabled]=\"disabled\"\r\n        [value]=\"cardCvv\"\r\n        [ngClass]=\"aswInputClass\"\r\n        aswNumbersOnly\r\n        [attr.maxlength]=\"cvvMaxlength\"\r\n        (blur)=\"updateOnTouch()\"\r\n        (input)=\"updateCvv($event)\">\r\n</div>","/**\r\n * @license\r\n * Copyright ASW (A Software World) All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file\r\n */\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { AswCardCvv } from './card-cvv';\r\nimport { AswDirectiveModule } from '@asoftwareworld/card-validator/common';\r\n\r\n@NgModule({\r\n    declarations: [\r\n        AswCardCvv\r\n    ],\r\n    imports: [\r\n        CommonModule,\r\n        FormsModule,\r\n        ReactiveFormsModule,\r\n        MatFormFieldModule,\r\n        MatInputModule,\r\n        AswDirectiveModule\r\n    ],\r\n    exports: [\r\n        AswCardCvv\r\n    ]\r\n})\r\nexport class AswCardCvvModule { }\r\n","/**\r\n * @license\r\n * Copyright ASW (A Software World) All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file\r\n */\r\n\r\nexport * from './card-cvv';\r\nexport * from './card-cvv.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}