{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/currency/src/currency.props.ts","../../../../../projects/components/widgets/input/currency/src/currency.component.ts","../../../../../projects/components/widgets/input/currency/src/currency.component.html","../../../../../projects/components/widgets/input/currency/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\nimport {FormWidgetType} from '@wm/core';\n\nexport const currencyProps = new Map(\n    [\n        ['class', PROP_STRING],\n        ['currency', PROP_STRING],\n        ['datavalue', PROP_STRING],\n        ['disabled', PROP_BOOLEAN],\n        ['hint', PROP_STRING],\n        ['arialabel', PROP_STRING],\n        ['maxvalue', PROP_NUMBER],\n        ['minvalue', PROP_NUMBER],\n        ['name', PROP_STRING],\n        ['placeholder', {value: 'Enter value', ...PROP_STRING}],\n        ['readonly', PROP_BOOLEAN],\n        ['required', PROP_BOOLEAN],\n        ['shortcutkey', PROP_STRING],\n        ['show', {value: true, ...PROP_BOOLEAN}],\n        ['step', {value: 1, ...PROP_NUMBER}],\n        ['tabindex', {value: 0, ...PROP_NUMBER}],\n        ['trailingzero', {value: false, ...PROP_BOOLEAN}],\n        ['inputmode', {value: 'natural', ...PROP_STRING}]\n    ]\n);\n\nexport const registerProps = () => {\n    register(\n        'wm-currency',\n        currencyProps\n    );\n    registerFormWidget(\n        FormWidgetType.CURRENCY,\n        new Map(currencyProps)\n    );\n};\n","import { FormsModule } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, OnDestroy, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\n\nimport {AbstractI18nService, AppDefaults, CURRENCY_INFO} from '@wm/core';\nimport {IWidgetConfig, provideAs, provideAsWidgetRef, TextContentDirective, TrailingZeroDecimalPipe} from '@wm/components/base';\nimport { NumberLocale } from '@wm/components/input/text';\n\nimport {registerProps} from './currency.props';\n\nconst DEFAULT_CLS = 'input-group app-currency';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n    widgetType: 'wm-currency',\n    hostClass: DEFAULT_CLS\n};\n\n@Component({\n  standalone: true,\n  imports: [TextContentDirective, FormsModule],\n    selector: '[wmCurrency]',\n    templateUrl: './currency.component.html',\n    providers: [\n        provideAs(CurrencyComponent, NG_VALUE_ACCESSOR, true),\n        provideAs(CurrencyComponent, NG_VALIDATORS, true),\n        provideAsWidgetRef(CurrencyComponent)\n    ]\n})\nexport class CurrencyComponent extends NumberLocale implements OnDestroy {\n    static initializeProps = registerProps();\n\n    currencyCode: string;\n    currencySymbol: string;\n    public required: boolean;\n    public regexp: any;\n    public disabled: boolean;\n    public autofocus: boolean;\n    public name: string;\n    public tabindex: any;\n    public shortcutkey: string;\n    public hint: string;\n    public arialabel: string;\n\n    @ViewChild(NgModel, {static: true}) ngModel: NgModel;\n    @ViewChild('input', { static: true, read: ElementRef }) inputEl: ElementRef;\n\n    constructor(inj: Injector,  private appDefaults: AppDefaults, i18nService: AbstractI18nService, trailingZeroDecimalPipe: TrailingZeroDecimalPipe, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n        super(inj, WIDGET_CONFIG, i18nService, trailingZeroDecimalPipe, explicitContext);\n        this.currencyCode = this.appDefaults.currencyCode || 'USD';\n        this.currencySymbol = CURRENCY_INFO[this.appDefaults.currencyCode || \"USD\"].symbol;\n    }\n\n    onPropertyChange(key: string, nv: any, ov?: any) {\n        if (key === 'currency') {\n            this.currencyCode = nv;\n            this.currencySymbol = CURRENCY_INFO[this.currencyCode|| this.appDefaults.currencyCode].symbol;\n        } else {\n            super.onPropertyChange(key, nv, ov);\n        }\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Clear ViewChild references\n        this.ngModel = null;\n        this.inputEl = null;\n\n        // Call parent ngOnDestroy (NumberLocale → StylableComponent → BaseComponent)\n        super.ngOnDestroy();\n    }\n}\n","<span class=\"input-group-addon\" [textContent]=\"currencySymbol\"></span>\n<input class=\"form-control app-textbox app-currency-input\"\n       #input\n       role=\"textbox\"\n       type=\"text\"\n       inputmode=\"decimal\"\n       focus-target\n       [autofocus]=\"autofocus\"\n       [readonly]=\"readonly\"\n       [disabled]=\"disabled\"\n       [required]=\"required\"\n       [pattern]=\"regexp\"\n       [attr.name]=\"name\"\n       [attr.aria-label]=\"arialabel || currencyCode\"\n       [attr.tabindex]=\"tabindex\"\n       [attr.placeholder]=\"placeholder\"\n       [attr.accesskey]=\"shortcutkey\"\n       [ngModel]=\"displayValue\"\n       [ngModelOptions]=\"ngModelOptions\"\n\n       (focus)=\"checkForTrailingZeros($event)\"\n       (input)=\"onInputChange($event.target.value)\"\n       (paste)=\"onPaste($event)\"\n       (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n       (ngModelChange)=\"onModelChange($event)\"\n       (keydown)=\"validateInputEntry($event);\"\n       (keydown.enter)=\"onEnter($event)\"\n       (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n       (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\">\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}