@kirbydesign/designsystem 11.4.0 → 11.4.2
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.
- package/action-group/index.d.ts.map +1 -1
- package/badge/index.d.ts.map +1 -1
- package/button/index.d.ts.map +1 -1
- package/calendar/index.d.ts.map +1 -1
- package/card/index.d.ts.map +1 -1
- package/chart/index.d.ts.map +1 -1
- package/config/index.d.ts.map +1 -1
- package/dropdown/index.d.ts +2 -2
- package/dropdown/index.d.ts.map +1 -1
- package/fesm2022/kirbydesign-designsystem-accordion.mjs +10 -10
- package/fesm2022/kirbydesign-designsystem-accordion.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-action-group.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-action-group.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-avatar.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-avatar.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-badge.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-badge.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-button.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-button.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-calendar.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-card.mjs +16 -16
- package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-chart.mjs +22 -22
- package/fesm2022/kirbydesign-designsystem-chart.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-checkbox.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-config.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-data-table.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-data-table.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-divider.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-divider.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-dropdown.mjs +16 -14
- package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-empty-state.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-flag.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-flag.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-form-field.mjs +29 -29
- package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-header.mjs +19 -19
- package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-helpers-scss.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-helpers.mjs +9 -9
- package/fesm2022/kirbydesign-designsystem-helpers.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-icon.mjs +10 -10
- package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-item-group.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-item-group.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-item-sliding.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-item.mjs +20 -12
- package/fesm2022/kirbydesign-designsystem-item.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-kirby-app.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-list.mjs +42 -42
- package/fesm2022/kirbydesign-designsystem-list.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +6 -6
- package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-menu.mjs +16 -9
- package/fesm2022/kirbydesign-designsystem-menu.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-modal.mjs +42 -42
- package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-page.mjs +40 -40
- package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-popover.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-popover.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +6 -6
- package/fesm2022/kirbydesign-designsystem-progress-circle.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-radio.mjs +15 -15
- package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-range.mjs +8 -5
- package/fesm2022/kirbydesign-designsystem-range.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-reorder-list.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-router-outlet.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-section-header.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-section-header.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-shared-floating.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-shared-portal.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-shared.mjs +18 -18
- package/fesm2022/kirbydesign-designsystem-shared.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-slide-button.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-slide-button.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-slide.mjs +13 -13
- package/fesm2022/kirbydesign-designsystem-slide.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-spinner.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-spinner.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +10 -10
- package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-tabs.mjs +13 -13
- package/fesm2022/kirbydesign-designsystem-tabs.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-testing-base.mjs +286 -286
- package/fesm2022/kirbydesign-designsystem-testing-base.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-testing-jest.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-testing.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-testing.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-toast.mjs +6 -6
- package/fesm2022/kirbydesign-designsystem-toast.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +8 -7
- package/fesm2022/kirbydesign-designsystem-toggle-button.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-toggle.mjs +5 -4
- package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-types.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem-types.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem.mjs +32 -29
- package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
- package/flag/index.d.ts.map +1 -1
- package/form-field/index.d.ts.map +1 -1
- package/icon/index.d.ts.map +1 -1
- package/index.d.ts +3 -1
- package/index.d.ts.map +1 -1
- package/item/index.d.ts +6 -3
- package/item/index.d.ts.map +1 -1
- package/item-sliding/index.d.ts.map +1 -1
- package/list/index.d.ts.map +1 -1
- package/menu/index.d.ts +4 -3
- package/menu/index.d.ts.map +1 -1
- package/modal/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/page/index.d.ts.map +1 -1
- package/radio/index.d.ts +2 -2
- package/radio/index.d.ts.map +1 -1
- package/range/index.d.ts +3 -2
- package/range/index.d.ts.map +1 -1
- package/shared/floating/index.d.ts.map +1 -1
- package/shared/index.d.ts.map +1 -1
- package/slide/index.d.ts.map +1 -1
- package/testing/index.d.ts.map +1 -1
- package/testing-base/index.d.ts.map +1 -1
- package/toast/index.d.ts.map +1 -1
- package/toggle/index.d.ts.map +1 -1
- package/toggle-button/index.d.ts.map +1 -1
- package/types/index.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kirbydesign-designsystem-form-field.mjs","sources":["../tmp-esm2022/form-field/directives/affix/affix.directive.js","../tmp-esm2022/form-field/directives/date/date-input.directive.js","../tmp-esm2022/form-field/form-field-message/form-field-message.component.js","../tmp-esm2022/form-field/input-counter/input-counter.component.js","../tmp-esm2022/form-field/input/input.component.js","../tmp-esm2022/form-field/textarea/textarea.component.js","../tmp-esm2022/form-field/form-field.component.js","../tmp-esm2022/form-field/directives/decimal-mask/decimal-mask.directive.js","../tmp-esm2022/form-field/form-field.module.js","../tmp-esm2022/form-field/kirbydesign-designsystem-form-field.js"],"sourcesContent":["import { Directive, Input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AffixDirective {\n constructor(el) {\n this.el = el;\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: AffixDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.13\", type: AffixDirective, isStandalone: true, selector: \"[kirby-affix]\", inputs: { type: [\"kirby-affix\", \"type\"] }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: AffixDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line\n selector: '[kirby-affix]',\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { type: [{\n type: Input,\n args: ['kirby-affix']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZm9ybS1maWVsZC9zcmMvZGlyZWN0aXZlcy9hZmZpeC9hZmZpeC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTdELE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQztrSUFGMUIsY0FBYztzSEFBZCxjQUFjOzs0RkFBZCxjQUFjO2tCQUoxQixTQUFTO21CQUFDO29CQUNULDJCQUEyQjtvQkFDM0IsUUFBUSxFQUFFLGVBQWU7aUJBQzFCOztzQkFFRSxLQUFLO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgc2VsZWN0b3I6ICdba2lyYnktYWZmaXhdJyxcbn0pXG5leHBvcnQgY2xhc3MgQWZmaXhEaXJlY3RpdmUge1xuICBASW5wdXQoJ2tpcmJ5LWFmZml4JykgdHlwZTogJ3ByZWZpeCcgfCAnc3VmZml4JztcbiAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7fVxufVxuIl19","import { FormatWidth, getLocaleDateFormat } from '@angular/common';\nimport { Directive, HostListener, Inject, Input, LOCALE_ID, } from '@angular/core';\nimport Inputmask from 'inputmask/dist/inputmask.es6.js';\nimport * as i0 from \"@angular/core\";\nexport class DateInputDirective {\n onInput() {\n if (!this.isDateInput)\n return;\n if (this.enableInputMask) {\n this.updateMask(this.elementRef.nativeElement.value);\n }\n }\n constructor(elementRef, renderer, locale) {\n this.elementRef = elementRef;\n this.renderer = renderer;\n this.locale = locale;\n this.prefillYear = false;\n this.useNativeDatePicker = false;\n /**\n * `isDateInput` is used to avoid removing the type attribute on the input element and calling updateMask()\n * when the directive is not used on a date input.\n * This is needed for the standalone component 'InputComponent', which includes the directive\n * using the `hostDirectives` component decorator prop. Angular ignores the selector of directives\n * applied in the `hostDirectives` property which effectively applies the directive to all kirby-inputs, not only date inputs.\n * This check prevents the directive from executing it's masking on non-date inputs.\n * See: https://angular.io/guide/directive-composition-api\n */\n this.isDateInput = false;\n /**\n * Inputmask should be enabled exclusively when _not_ using the platform\n * native date picker.\n *\n * `enableInputMask` should be ignored if the type attribute of the `<input>`\n * element is different from 'date' and/or the platform native date picker is\n * explicitly enabled.\n *\n * @private\n * @memberof DateInputDirective\n */\n this.enableInputMask = false;\n this.isDateInput = this.elementRef.nativeElement.type === 'date';\n if (this.isDateInput) {\n // Remove type to avoid user-agent specific behaviour for [type=\"date\"]\n // Has to be done in constructor to avoid browser behavior kicking in\n this.elementRef.nativeElement.removeAttribute('type');\n }\n }\n ngAfterViewInit() {\n if (!this.isDateInput)\n return;\n this.enableInputMask = !this.useNativeDatePicker;\n // This case is identical to date input fields _before_ native date picker\n // option was introduced\n if (this.enableInputMask) {\n this.initMask();\n }\n if (this.useNativeDatePicker) {\n this.elementRef.nativeElement.setAttribute('type', 'date');\n }\n }\n initMask() {\n const inputFormat = this.getInputFormat();\n const placeholder = this.getPlaceholder(inputFormat);\n // Set initial placeholder ex. dd/mm/yyyy\n this.renderer.setAttribute(this.elementRef.nativeElement, 'placeholder', placeholder);\n // Init InputMask\n new Inputmask('datetime', {\n inputFormat,\n placeholder,\n prefillYear: this.prefillYear,\n }).mask(this.elementRef.nativeElement);\n // Append input overlay, so it's possible to style typed date differntly than the date-mask\n this.appendMaskingElement();\n }\n // Keeps order and seperator from speficied locale\n getInputFormat() {\n const localeDateFormat = getLocaleDateFormat(this.locale, FormatWidth.Short);\n return localeDateFormat\n .toLowerCase()\n .replace(/d+/, 'dd')\n .replace(/m+/, 'mm')\n .replace(/y+/, 'yyyy');\n }\n getPlaceholder(inputFormat) {\n return this.locale === 'da' ? inputFormat.split('y').join('å') : inputFormat;\n }\n appendMaskingElement() {\n const wrapper = this.wrapElement(this.elementRef.nativeElement);\n this.renderer.addClass(wrapper, 'date-mask-wrapper');\n this.maskingElement = this.renderer.createElement('div');\n this.renderer.appendChild(wrapper, this.maskingElement);\n this.renderer.addClass(this.maskingElement, 'date-mask');\n }\n wrapElement(element) {\n const wrapper = this.renderer.createElement('div');\n const parent = element.parentElement;\n this.renderer.insertBefore(parent, wrapper, element);\n this.renderer.appendChild(wrapper, element);\n return wrapper;\n }\n updateMask(value) {\n if (!this.maskingElement)\n return;\n const lastNumber = value.match(/.*?(\\d)[^\\d]*$/); // get last number in string\n this.maskingElement.innerHTML = value\n ? value.slice(0, value.lastIndexOf(lastNumber[1]) + 1)\n : '';\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: DateInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Directive }); }\n /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.13\", type: DateInputDirective, isStandalone: true, inputs: { prefillYear: \"prefillYear\", useNativeDatePicker: \"useNativeDatePicker\" }, host: { listeners: { \"input\": \"onInput()\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: DateInputDirective, decorators: [{\n type: Directive,\n args: [{}]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }], propDecorators: { onInput: [{\n type: HostListener,\n args: ['input']\n }], prefillYear: [{\n type: Input\n }], useNativeDatePicker: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9mb3JtLWZpZWxkL3NyYy9kaXJlY3RpdmVzL2RhdGUvZGF0ZS1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25FLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sU0FBUyxNQUFNLGlDQUFpQyxDQUFDOztBQUd4RCxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLE9BQU87UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBRTlCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNILENBQUM7SUErQkQsWUFDVSxVQUFzQixFQUN0QixRQUFtQixFQUNBLE1BQWM7UUFGakMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ0EsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWhDbEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBSXJDOzs7Ozs7OztXQVFHO1FBQ0ssZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFNUI7Ozs7Ozs7Ozs7V0FVRztRQUNLLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBTzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxX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QyxhQUFhLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYztZQUFFLE9BQU87UUFDakMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsNEJBQTRCO1FBQzlFLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxHQUFHLEtBQUs7WUFDbkMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RELENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDVCxDQUFDO2tJQTVIVSxrQkFBa0IscUVBMENuQixTQUFTO3NIQTFDUixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFNBQVM7bUJBQUMsRUFBRTs7MEJBMkNSLE1BQU07MkJBQUMsU0FBUzs7c0JBekNsQixZQUFZO3VCQUFDLE9BQU87O3NCQVNwQixLQUFLOztzQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybWF0V2lkdGgsIGdldExvY2FsZURhdGVGb3JtYXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIExPQ0FMRV9JRCxcbiAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBJbnB1dG1hc2sgZnJvbSAnaW5wdXRtYXNrL2Rpc3QvaW5wdXRtYXNrLmVzNi5qcyc7XG5cbkBEaXJlY3RpdmUoe30pXG5leHBvcnQgY2xhc3MgRGF0ZUlucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JylcbiAgb25JbnB1dCgpIHtcbiAgICBpZiAoIXRoaXMuaXNEYXRlSW5wdXQpIHJldHVybjtcblxuICAgIGlmICh0aGlzLmVuYWJsZUlucHV0TWFzaykge1xuICAgICAgdGhpcy51cGRhdGVNYXNrKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBwcmVmaWxsWWVhciA9IGZhbHNlO1xuICBASW5wdXQoKSB1c2VOYXRpdmVEYXRlUGlja2VyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBtYXNraW5nRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIGBpc0RhdGVJbnB1dGAgaXMgdXNlZCB0byBhdm9pZCByZW1vdmluZyB0aGUgdHlwZSBhdHRyaWJ1dGUgb24gdGhlIGlucHV0IGVsZW1lbnQgYW5kIGNhbGxpbmcgdXBkYXRlTWFzaygpXG4gICAqIHdoZW4gdGhlIGRpcmVjdGl2ZSBpcyBub3QgdXNlZCBvbiBhIGRhdGUgaW5wdXQuXG4gICAqIFRoaXMgaXMgbmVlZGVkIGZvciB0aGUgc3RhbmRhbG9uZSBjb21wb25lbnQgJ0lucHV0Q29tcG9uZW50Jywgd2hpY2ggaW5jbHVkZXMgdGhlIGRpcmVjdGl2ZVxuICAgKiB1c2luZyB0aGUgYGhvc3REaXJlY3RpdmVzYCBjb21wb25lbnQgZGVjb3JhdG9yIHByb3AuIEFuZ3VsYXIgaWdub3JlcyB0aGUgc2VsZWN0b3Igb2YgZGlyZWN0aXZlc1xuICAgKiBhcHBsaWVkIGluIHRoZSBgaG9zdERpcmVjdGl2ZXNgIHByb3BlcnR5IHdoaWNoIGVmZmVjdGl2ZWx5IGFwcGxpZXMgdGhlIGRpcmVjdGl2ZSB0byBhbGwga2lyYnktaW5wdXRzLCBub3Qgb25seSBkYXRlIGlucHV0cy5cbiAgICogVGhpcyBjaGVjayBwcmV2ZW50cyB0aGUgZGlyZWN0aXZlIGZyb20gZXhlY3V0aW5nIGl0J3MgbWFza2luZyBvbiBub24tZGF0ZSBpbnB1dHMuXG4gICAqIFNlZTogaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2RpcmVjdGl2ZS1jb21wb3NpdGlvbi1hcGlcbiAgICovXG4gIHByaXZhdGUgaXNEYXRlSW5wdXQgPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5wdXRtYXNrIHNob3VsZCBiZSBlbmFibGVkIGV4Y2x1c2l2ZWx5IHdoZW4gX25vdF8gdXNpbmcgdGhlIHBsYXRmb3JtXG4gICAqIG5hdGl2ZSBkYXRlIHBpY2tlci5cbiAgICpcbiAgICogYGVuYWJsZUlucHV0TWFza2Agc2hvdWxkIGJlIGlnbm9yZWQgaWYgdGhlIHR5cGUgYXR0cmlidXRlIG9mIHRoZSBgPGlucHV0PmBcbiAgICogZWxlbWVudCBpcyBkaWZmZXJlbnQgZnJvbSAnZGF0ZScgYW5kL29yIHRoZSBwbGF0Zm9ybSBuYXRpdmUgZGF0ZSBwaWNrZXIgaXNcbiAgICogZXhwbGljaXRseSBlbmFibGVkLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAbWVtYmVyb2YgRGF0ZUlucHV0RGlyZWN0aXZlXG4gICAqL1xuICBwcml2YXRlIGVuYWJsZUlucHV0TWFzayA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgbG9jYWxlOiBzdHJpbmdcbiAgKSB7XG4gICAgdGhpcy5pc0RhdGVJbnB1dCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnR5cGUgPT09ICdkYXRlJztcbiAgICBpZiAodGhpcy5pc0RhdGVJbnB1dCkge1xuICAgICAgLy8gUmVtb3ZlIHR5cGUgdG8gYXZvaWQgdXNlci1hZ2VudCBzcGVjaWZpYyBiZWhhdmlvdXIgZm9yIFt0eXBlPVwiZGF0ZVwiXVxuICAgICAgLy8gSGFzIHRvIGJlIGRvbmUgaW4gY29uc3RydWN0b3IgdG8gYXZvaWQgYnJvd3NlciBiZWhhdmlvciBraWNraW5nIGluXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ3R5cGUnKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzRGF0ZUlucHV0KSByZXR1cm47XG5cbiAgICB0aGlzLmVuYWJsZUlucHV0TWFzayA9ICF0aGlzLnVzZU5hdGl2ZURhdGVQaWNrZXI7XG5cbiAgICAvLyBUaGlzIGNhc2UgaXMgaWRlbnRpY2FsIHRvIGRhdGUgaW5wdXQgZmllbGRzIF9iZWZvcmVfIG5hdGl2ZSBkYXRlIHBpY2tlclxuICAgIC8vIG9wdGlvbiB3YXMgaW50cm9kdWNlZFxuICAgIGlmICh0aGlzLmVuYWJsZUlucHV0TWFzaykge1xuICAgICAgdGhpcy5pbml0TWFzaygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVzZU5hdGl2ZURhdGVQaWNrZXIpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgndHlwZScsICdkYXRlJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0TWFzaygpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dEZvcm1hdCA9IHRoaXMuZ2V0SW5wdXRGb3JtYXQoKTtcbiAgICBjb25zdCBwbGFjZWhvbGRlciA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoaW5wdXRGb3JtYXQpO1xuXG4gICAgLy8gU2V0IGluaXRpYWwgcGxhY2Vob2xkZXIgZXguIGRkL21tL3l5eXlcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3BsYWNlaG9sZGVyJywgcGxhY2Vob2xkZXIpO1xuXG4gICAgLy8gSW5pdCBJbnB1dE1hc2tcbiAgICBuZXcgSW5wdXRtYXNrKCdkYXRldGltZScsIHtcbiAgICAgIGlucHV0Rm9ybWF0LFxuICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICBwcmVmaWxsWWVhcjogdGhpcy5wcmVmaWxsWWVhcixcbiAgICB9KS5tYXNrKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICAgIC8vIEFwcGVuZCBpbnB1dCBvdmVybGF5LCBzbyBpdCdzIHBvc3NpYmxlIHRvIHN0eWxlIHR5cGVkIGRhdGUgZGlmZmVybnRseSB0aGFuIHRoZSBkYXRlLW1hc2tcbiAgICB0aGlzLmFwcGVuZE1hc2tpbmdFbGVtZW50KCk7XG4gIH1cblxuICAvLyBLZWVwcyBvcmRlciBhbmQgc2VwZXJhdG9yIGZyb20gc3BlZmljaWVkIGxvY2FsZVxuICBwcml2YXRlIGdldElucHV0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgbG9jYWxlRGF0ZUZvcm1hdCA9IGdldExvY2FsZURhdGVGb3JtYXQodGhpcy5sb2NhbGUsIEZvcm1hdFdpZHRoLlNob3J0KTtcbiAgICByZXR1cm4gbG9jYWxlRGF0ZUZvcm1hdFxuICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgIC5yZXBsYWNlKC9kKy8sICdkZCcpXG4gICAgICAucmVwbGFjZSgvbSsvLCAnbW0nKVxuICAgICAgLnJlcGxhY2UoL3krLywgJ3l5eXknKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGxhY2Vob2xkZXIoaW5wdXRGb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxlID09PSAnZGEnID8gaW5wdXRGb3JtYXQuc3BsaXQoJ3knKS5qb2luKCfDpScpIDogaW5wdXRGb3JtYXQ7XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZE1hc2tpbmdFbGVtZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IHdyYXBwZXIgPSB0aGlzLndyYXBFbGVtZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHdyYXBwZXIsICdkYXRlLW1hc2std3JhcHBlcicpO1xuXG4gICAgdGhpcy5tYXNraW5nRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh3cmFwcGVyLCB0aGlzLm1hc2tpbmdFbGVtZW50KTtcblxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5tYXNraW5nRWxlbWVudCwgJ2RhdGUtbWFzaycpO1xuICB9XG5cbiAgcHJpdmF0ZSB3cmFwRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCB3cmFwcGVyID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBjb25zdCBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUocGFyZW50LCB3cmFwcGVyLCBlbGVtZW50KTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHdyYXBwZXIsIGVsZW1lbnQpO1xuICAgIHJldHVybiB3cmFwcGVyO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVNYXNrKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubWFza2luZ0VsZW1lbnQpIHJldHVybjtcbiAgICBjb25zdCBsYXN0TnVtYmVyID0gdmFsdWUubWF0Y2goLy4qPyhcXGQpW15cXGRdKiQvKTsgLy8gZ2V0IGxhc3QgbnVtYmVyIGluIHN0cmluZ1xuICAgIHRoaXMubWFza2luZ0VsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWVcbiAgICAgID8gdmFsdWUuc2xpY2UoMCwgdmFsdWUubGFzdEluZGV4T2YobGFzdE51bWJlclsxXSkgKyAxKVxuICAgICAgOiAnJztcbiAgfVxufVxuIl19","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class FormFieldMessageComponent {\n constructor() {\n this.position = 'left';\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: FormFieldMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.13\", type: FormFieldMessageComponent, isStandalone: true, selector: \"kirby-form-field-message\", inputs: { text: \"text\", position: \"position\" }, ngImport: i0, template: \"{{ text }}\\n<ng-content></ng-content>\\n\", styles: [\":host{font-style:italic;font-size:12px;font-weight:400;font-stretch:normal;line-height:16px;min-height:16px;letter-spacing:normal;color:var(--kirby-text-color-black)}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: FormFieldMessageComponent, decorators: [{\n type: Component,\n args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'kirby-form-field-message', template: \"{{ text }}\\n<ng-content></ng-content>\\n\", styles: [\":host{font-style:italic;font-size:12px;font-weight:400;font-stretch:normal;line-height:16px;min-height:16px;letter-spacing:normal;color:var(--kirby-text-color-black)}\\n\"] }]\n }], propDecorators: { text: [{\n type: Input\n }], position: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Zvcm0tZmllbGQvc3JjL2Zvcm0tZmllbGQtbWVzc2FnZS9mb3JtLWZpZWxkLW1lc3NhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZm9ybS1maWVsZC9zcmMvZm9ybS1maWVsZC1tZXNzYWdlL2Zvcm0tZmllbGQtbWVzc2FnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRMUUsTUFBTSxPQUFPLHlCQUF5QjtJQU50QztRQVFXLGFBQVEsR0FBcUIsTUFBTSxDQUFDO0tBQzlDO2tJQUhZLHlCQUF5QjtzSEFBekIseUJBQXlCLG9JQ1J0Qyx5Q0FFQTs7NEZETWEseUJBQXlCO2tCQU5yQyxTQUFTO3NDQUNTLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsMEJBQTBCOztzQkFLbkMsS0FBSzs7c0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc2VsZWN0b3I6ICdraXJieS1mb3JtLWZpZWxkLW1lc3NhZ2UnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLW1lc3NhZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtbWVzc2FnZS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZE1lc3NhZ2VDb21wb25lbnQge1xuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnID0gJ2xlZnQnO1xufVxuIiwie3sgdGV4dCB9fVxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19","import { Component, Input } from '@angular/core';\nimport { debounceTime, filter, tap } from 'rxjs';\nimport { FormFieldMessageComponent } from '../form-field-message/form-field-message.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@kirbydesign/designsystem/shared\";\nexport class InputCounterComponent {\n get text() {\n if (this.length === undefined) {\n return undefined;\n }\n const ofMaxlength = this.maxlength ? `/${this.maxlength}` : '';\n return `${this.length}${ofMaxlength}`;\n }\n constructor(translations) {\n this.translations = translations;\n this.skipNextAnnouncement = false;\n }\n ngOnInit() {\n if (this.listenTo) {\n this.length = this.listenTo.value ? this.listenTo.value.length : 0;\n this.skipNextAnnouncement = this.length > 0; //If there is already text in the input, skip the first announcement so we don't announce on refresh or prefilled text fields.\n this.maxlength = this.maxlength = this.listenTo.maxlength\n ? +this.listenTo.maxlength\n : undefined;\n this._inputChangeSubscription = this.listenTo.kirbyChange\n .pipe(tap((value) => (this.length = value?.length || 0)), filter(() => this.skipAnnouncement()), debounceTime(1000))\n .subscribe(() => {\n this.announceText();\n });\n }\n }\n skipAnnouncement() {\n if (this.skipNextAnnouncement) {\n this.skipNextAnnouncement = false;\n return false;\n }\n return true;\n }\n ngOnDestroy() {\n this._inputChangeSubscription?.unsubscribe();\n }\n announceText() {\n const characters = this.translations.get('characters');\n const entered = this.translations.get('entered');\n if (this.maxlength === undefined) {\n this.textToAnnounce = `${characters} ${this.length} ${entered}`;\n }\n else {\n const outOf = this.translations.get('outOf');\n this.textToAnnounce = `${characters} ${this.length} ${outOf} ${this.maxlength} ${entered}`;\n }\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: InputCounterComponent, deps: [{ token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Component }); }\n /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.13\", type: InputCounterComponent, isStandalone: true, selector: \"kirby-input-counter\", inputs: { listenTo: \"listenTo\" }, ngImport: i0, template: \"<kirby-form-field-message [text]=\\\"text\\\"></kirby-form-field-message>\\n<div class=\\\"kirby-visually-hidden\\\" aria-live=\\\"polite\\\">{{ textToAnnounce }}</div>\\n\", dependencies: [{ kind: \"component\", type: FormFieldMessageComponent, selector: \"kirby-form-field-message\", inputs: [\"text\", \"position\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: InputCounterComponent, decorators: [{\n type: Component,\n args: [{ selector: 'kirby-input-counter', imports: [FormFieldMessageComponent], template: \"<kirby-form-field-message [text]=\\\"text\\\"></kirby-form-field-message>\\n<div class=\\\"kirby-visually-hidden\\\" aria-live=\\\"polite\\\">{{ textToAnnounce }}</div>\\n\" }]\n }], ctorParameters: () => [{ type: i1.TranslationService }], propDecorators: { listenTo: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY291bnRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9mb3JtLWZpZWxkL3NyYy9pbnB1dC1jb3VudGVyL2lucHV0LWNvdW50ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZm9ybS1maWVsZC9zcmMvaW5wdXQtY291bnRlci9pbnB1dC1jb3VudGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBZ0IsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7QUFRL0YsTUFBTSxPQUFPLHFCQUFxQjtJQVNoQyxJQUFJLElBQUk7UUFDTixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUIsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0QsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELFlBQW9CLFlBQWdDO1FBQWhDLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQVZwRCx5QkFBb0IsR0FBRyxLQUFLLENBQUM7SUFVMEIsQ0FBQztJQUV4RCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsOEhBQThIO1lBQzNLLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVM7Z0JBQ3ZELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUztnQkFDMUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNkLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVc7aUJBQ3RELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ2xELE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUNyQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQ25CO2lCQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1lBQ2xDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ2xFLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdGLENBQUM7SUFDSCxDQUFDO2tJQTNEVSxxQkFBcUI7c0hBQXJCLHFCQUFxQixpSENkbEMsK0pBRUEsNENEVVkseUJBQXlCOzs0RkFFeEIscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLHFCQUFxQixXQUV0QixDQUFDLHlCQUF5QixDQUFDOztzQkFHbkMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgU3Vic2NyaXB0aW9uLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9zaGFyZWQnO1xuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBGb3JtRmllbGRNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC1tZXNzYWdlL2Zvcm0tZmllbGQtbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuLy4uL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tpcmJ5LWlucHV0LWNvdW50ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtY291bnRlci5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtGb3JtRmllbGRNZXNzYWdlQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRDb3VudGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBsaXN0ZW5UbzogSW5wdXRDb21wb25lbnQgfCBUZXh0YXJlYUNvbXBvbmVudDtcbiAgbGVuZ3RoOiBudW1iZXI7XG4gIG1heGxlbmd0aDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9pbnB1dENoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICB0ZXh0VG9Bbm5vdW5jZTogc3RyaW5nO1xuICBsYXN0QW5ub3VuY2VkTGVuZ3RoOiBudW1iZXI7XG4gIHNraXBOZXh0QW5ub3VuY2VtZW50ID0gZmFsc2U7XG5cbiAgZ2V0IHRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5sZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3Qgb2ZNYXhsZW5ndGggPSB0aGlzLm1heGxlbmd0aCA/IGAvJHt0aGlzLm1heGxlbmd0aH1gIDogJyc7XG4gICAgcmV0dXJuIGAke3RoaXMubGVuZ3RofSR7b2ZNYXhsZW5ndGh9YDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvblNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGlzdGVuVG8pIHtcbiAgICAgIHRoaXMubGVuZ3RoID0gdGhpcy5saXN0ZW5Uby52YWx1ZSA/IHRoaXMubGlzdGVuVG8udmFsdWUubGVuZ3RoIDogMDtcbiAgICAgIHRoaXMuc2tpcE5leHRBbm5vdW5jZW1lbnQgPSB0aGlzLmxlbmd0aCA+IDA7IC8vSWYgdGhlcmUgaXMgYWxyZWFkeSB0ZXh0IGluIHRoZSBpbnB1dCwgc2tpcCB0aGUgZmlyc3QgYW5ub3VuY2VtZW50IHNvIHdlIGRvbid0IGFubm91bmNlIG9uIHJlZnJlc2ggb3IgcHJlZmlsbGVkIHRleHQgZmllbGRzLlxuICAgICAgdGhpcy5tYXhsZW5ndGggPSB0aGlzLm1heGxlbmd0aCA9IHRoaXMubGlzdGVuVG8ubWF4bGVuZ3RoXG4gICAgICAgID8gK3RoaXMubGlzdGVuVG8ubWF4bGVuZ3RoXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgdGhpcy5faW5wdXRDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLmxpc3RlblRvLmtpcmJ5Q2hhbmdlXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgodmFsdWUpID0+ICh0aGlzLmxlbmd0aCA9IHZhbHVlPy5sZW5ndGggfHwgMCkpLFxuICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnNraXBBbm5vdW5jZW1lbnQoKSksXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDEwMDApXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5hbm5vdW5jZVRleHQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBza2lwQW5ub3VuY2VtZW50KCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnNraXBOZXh0QW5ub3VuY2VtZW50KSB7XG4gICAgICB0aGlzLnNraXBOZXh0QW5ub3VuY2VtZW50ID0gZmFsc2U7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5faW5wdXRDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBhbm5vdW5jZVRleHQoKTogdm9pZCB7XG4gICAgY29uc3QgY2hhcmFjdGVycyA9IHRoaXMudHJhbnNsYXRpb25zLmdldCgnY2hhcmFjdGVycycpO1xuICAgIGNvbnN0IGVudGVyZWQgPSB0aGlzLnRyYW5zbGF0aW9ucy5nZXQoJ2VudGVyZWQnKTtcbiAgICBpZiAodGhpcy5tYXhsZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50ZXh0VG9Bbm5vdW5jZSA9IGAke2NoYXJhY3RlcnN9ICR7dGhpcy5sZW5ndGh9ICR7ZW50ZXJlZH1gO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvdXRPZiA9IHRoaXMudHJhbnNsYXRpb25zLmdldCgnb3V0T2YnKTtcbiAgICAgIHRoaXMudGV4dFRvQW5ub3VuY2UgPSBgJHtjaGFyYWN0ZXJzfSAke3RoaXMubGVuZ3RofSAke291dE9mfSAke3RoaXMubWF4bGVuZ3RofSAke2VudGVyZWR9YDtcbiAgICB9XG4gIH1cbn1cbiIsIjxraXJieS1mb3JtLWZpZWxkLW1lc3NhZ2UgW3RleHRdPVwidGV4dFwiPjwva2lyYnktZm9ybS1maWVsZC1tZXNzYWdlPlxuPGRpdiBjbGFzcz1cImtpcmJ5LXZpc3VhbGx5LWhpZGRlblwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPnt7IHRleHRUb0Fubm91bmNlIH19PC9kaXY+XG4iXX0=","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, HostListener, Inject, Input, Optional, Output, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateInputDirective } from '../directives/date/date-input.directive';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../directives/date/date-input.directive\";\nexport var InputSize;\n(function (InputSize) {\n InputSize[\"medium\"] = \"md\";\n InputSize[\"large\"] = \"lg\";\n})(InputSize || (InputSize = {}));\nexport class InputComponent {\n set type(value) {\n const mappedValue = InputComponent.typeToInputmodeMap[value];\n if (mappedValue && !this.inputmode) {\n this.inputmode = mappedValue;\n }\n }\n get hasError() {\n return this._hasError;\n }\n set hasError(value) {\n if (this._hasError !== value) {\n this._hasError = value;\n this.hasErrorChange.emit(this._hasError);\n }\n }\n constructor(elementRef, builtInValueAccessors) {\n this.elementRef = elementRef;\n this.builtInValueAccessors = builtInValueAccessors;\n this.kirbyChange = new EventEmitter();\n this._hasError = false;\n this.size = InputSize.large;\n this.autocomplete = 'off';\n this.autocorrect = 'off';\n this.hasErrorChange = new EventEmitter();\n this.extendBuiltinValueAccessor();\n }\n ngOnInit() {\n // The native input value is emitted here to make sure that\n // the InputCounterComponent receives the value onInit,\n // when [(ngModel)] is used on kirby-input.\n setTimeout(() => {\n const inputValue = this.elementRef.nativeElement.value;\n if (inputValue) {\n this.kirbyChange.emit(inputValue);\n }\n });\n }\n ngOnChanges(changes) {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\n }\n extendBuiltinValueAccessor() {\n if (this.builtInValueAccessors) {\n this.builtInValueAccessors.forEach((accessor) => {\n const originalWriteValue = accessor.writeValue?.bind(accessor);\n accessor.writeValue = (value) => {\n if (originalWriteValue) {\n originalWriteValue(value);\n }\n this.kirbyChange.emit(value);\n };\n });\n }\n }\n static { this.typeToInputmodeMap = {\n number: 'decimal',\n search: 'search',\n }; }\n _onKeyUp(value) {\n this.kirbyChange.emit(value);\n }\n _onCutPaste(target) {\n //Value of input element is updated after cut/paste:\n setTimeout(() => this.kirbyChange.emit(target.value));\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: InputComponent, deps: [{ token: i0.ElementRef }, { token: NG_VALUE_ACCESSOR, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.13\", type: InputComponent, isStandalone: true, selector: \"input[kirby-input]\", inputs: { type: \"type\", size: \"size\", borderless: \"borderless\", hasError: \"hasError\", autocomplete: \"autocomplete\", autocorrect: \"autocorrect\", value: \"value\", maxlength: \"maxlength\", inputmode: \"inputmode\" }, outputs: { hasErrorChange: \"hasErrorChange\" }, host: { listeners: { \"keyup\": \"_onKeyUp($event.target.value)\", \"paste\": \"_onCutPaste($event.target)\", \"cut\": \"_onCutPaste($event.target)\" }, properties: { \"class\": \"this.size\", \"class.borderless\": \"this.borderless\", \"attr.aria-invalid\": \"this.hasError\", \"class.error\": \"this.hasError\", \"attr.autocomplete\": \"this.autocomplete\", \"attr.autocorrect\": \"this.autocorrect\", \"attr.value\": \"this.value\", \"attr.maxlength\": \"this.maxlength\", \"attr.inputmode\": \"this.inputmode\" } }, usesOnChanges: true, hostDirectives: [{ directive: i1.DateInputDirective, inputs: [\"prefillYear\", \"prefillYear\", \"useNativeDatePicker\", \"useNativeDatePicker\"] }], ngImport: i0, template: '', isInline: true, styles: [\":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}@supports not (selector(::-webkit-date-and-time-value)){:host(input[type=date]::-webkit-date-and-time-value){min-height:1.5em;text-align:start}}@media (hover: hover){:host:not(:disabled):hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:var(--kirby-inputs-background-color-hover);cursor:text}}:host:not(:disabled):active,:host:not(:disabled).interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:var(--kirby-inputs-background-color-active)}:host:not(:disabled){transition:all 80ms linear 0ms;transition-property:background-color}:host[type=date]{background-color:var(--date-input-background-color)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host(.md).error{padding-block:calc(.5em - 1px)}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;font-size:var(--kirby-font-size-n);color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: InputComponent, decorators: [{\n type: Component,\n args: [{ hostDirectives: [\n {\n directive: DateInputDirective,\n inputs: ['prefillYear', 'useNativeDatePicker'],\n },\n ], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'input[kirby-input]', template: '', styles: [\":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}@supports not (selector(::-webkit-date-and-time-value)){:host(input[type=date]::-webkit-date-and-time-value){min-height:1.5em;text-align:start}}@media (hover: hover){:host:not(:disabled):hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:var(--kirby-inputs-background-color-hover);cursor:text}}:host:not(:disabled):active,:host:not(:disabled).interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:var(--kirby-inputs-background-color-active)}:host:not(:disabled){transition:all 80ms linear 0ms;transition-property:background-color}:host[type=date]{background-color:var(--date-input-background-color)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host(.md).error{padding-block:calc(.5em - 1px)}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;font-size:var(--kirby-font-size-n);color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [NG_VALUE_ACCESSOR]\n }] }], propDecorators: { type: [{\n type: Input\n }], size: [{\n type: HostBinding,\n args: ['class']\n }, {\n type: Input\n }], borderless: [{\n type: HostBinding,\n args: ['class.borderless']\n }, {\n type: Input\n }], hasError: [{\n type: HostBinding,\n args: ['attr.aria-invalid']\n }, {\n type: HostBinding,\n args: ['class.error']\n }, {\n type: Input\n }], autocomplete: [{\n type: HostBinding,\n args: ['attr.autocomplete']\n }, {\n type: Input\n }], autocorrect: [{\n type: HostBinding,\n args: ['attr.autocorrect']\n }, {\n type: Input\n }], value: [{\n type: HostBinding,\n args: ['attr.value']\n }, {\n type: Input\n }], maxlength: [{\n type: HostBinding,\n args: ['attr.maxlength']\n }, {\n type: Input\n }], inputmode: [{\n type: HostBinding,\n args: ['attr.inputmode']\n }, {\n type: Input\n }], hasErrorChange: [{\n type: Output\n }], _onKeyUp: [{\n type: HostListener,\n args: ['keyup', ['$event.target.value']]\n }], _onCutPaste: [{\n type: HostListener,\n args: ['paste', ['$event.target']]\n }, {\n type: HostListener,\n args: ['cut', ['$event.target']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZm9ybS1maWVsZC9zcmMvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQUU3RSxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLDBCQUFhLENBQUE7SUFDYix5QkFBWSxDQUFBO0FBQ2QsQ0FBQyxFQUhXLFNBQVMsS0FBVCxTQUFTLFFBR3BCO0FBZUQsTUFBTSxPQUFPLGNBQWM7SUFJekIsSUFBYSxJQUFJLENBQUMsS0FBYTtRQUM3QixNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0QsSUFBSSxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFhRCxJQUdJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDekIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENB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c0JBR0wsV0FBVzt1QkFBQyxtQkFBbUI7O3NCQUMvQixXQUFXO3VCQUFDLGFBQWE7O3NCQUN6QixLQUFLOztzQkFZTCxXQUFXO3VCQUFDLG1CQUFtQjs7c0JBQy9CLEtBQUs7O3NCQUdMLFdBQVc7dUJBQUMsa0JBQWtCOztzQkFDOUIsS0FBSzs7c0JBR0wsV0FBVzt1QkFBQyxZQUFZOztzQkFDeEIsS0FBSzs7c0JBR0wsV0FBVzt1QkFBQyxnQkFBZ0I7O3NCQUM1QixLQUFLOztzQkFHTCxXQUFXO3VCQUFDLGdCQUFnQjs7c0JBQzVCLEtBQUs7O3NCQUdMLE1BQU07O3NCQThDTixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDOztzQkFLN0MsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7O3NCQUN2QyxZQUFZO3VCQUFDLEtBQUssRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vdHlwZXMnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9kYXRlL2RhdGUtaW5wdXQuZGlyZWN0aXZlJztcblxuZXhwb3J0IGVudW0gSW5wdXRTaXplIHtcbiAgbWVkaXVtID0gJ21kJyxcbiAgbGFyZ2UgPSAnbGcnLFxufVxuXG5AQ29tcG9uZW50KHtcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IERhdGVJbnB1dERpcmVjdGl2ZSxcbiAgICAgIGlucHV0czogWydwcmVmaWxsWWVhcicsICd1c2VOYXRpdmVEYXRlUGlja2VyJ10sXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnaW5wdXRba2lyYnktaW5wdXRdJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGU6ICcnLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBGb3JtRmllbGRDb250cm9sIHtcbiAga2lyYnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgcHJpdmF0ZSBfaGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgdHlwZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgY29uc3QgbWFwcGVkVmFsdWUgPSBJbnB1dENvbXBvbmVudC50eXBlVG9JbnB1dG1vZGVNYXBbdmFsdWVdO1xuICAgIGlmIChtYXBwZWRWYWx1ZSAmJiAhdGhpcy5pbnB1dG1vZGUpIHtcbiAgICAgIHRoaXMuaW5wdXRtb2RlID0gbWFwcGVkVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIEBJbnB1dCgpXG4gIHNpemU6IElucHV0U2l6ZSB8IGAke0lucHV0U2l6ZX1gID0gSW5wdXRTaXplLmxhcmdlO1xuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHBhZGRpbmcsIHdpZHRoLCByb3VuZGVkIGJvcmRlcnMgYW5kIGRyb3Atc2hhZG93IHdoZW4gc2V0IHRvIGB0cnVlYC5cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYm9yZGVybGVzcycpXG4gIEBJbnB1dCgpXG4gIGJvcmRlcmxlc3M6IGJvb2xlYW47XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtaW52YWxpZCcpXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZXJyb3InKVxuICBASW5wdXQoKVxuICBnZXQgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2hhc0Vycm9yO1xuICB9XG5cbiAgc2V0IGhhc0Vycm9yKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuX2hhc0Vycm9yICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5faGFzRXJyb3IgPSB2YWx1ZTtcbiAgICAgIHRoaXMuaGFzRXJyb3JDaGFuZ2UuZW1pdCh0aGlzLl9oYXNFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmF1dG9jb21wbGV0ZScpXG4gIEBJbnB1dCgpXG4gIGF1dG9jb21wbGV0ZTogJ29uJyB8ICdvZmYnID0gJ29mZic7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmF1dG9jb3JyZWN0JylcbiAgQElucHV0KClcbiAgYXV0b2NvcnJlY3Q6ICdvbicgfCAnb2ZmJyA9ICdvZmYnO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci52YWx1ZScpXG4gIEBJbnB1dCgpXG4gIHZhbHVlOiBzdHJpbmc7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLm1heGxlbmd0aCcpXG4gIEBJbnB1dCgpXG4gIG1heGxlbmd0aDogbnVtYmVyO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5pbnB1dG1vZGUnKVxuICBASW5wdXQoKVxuICBpbnB1dG1vZGU6IHN0cmluZztcblxuICBAT3V0cHV0KCkgaGFzRXJyb3JDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkdfVkFMVUVfQUNDRVNTT1IpIHByaXZhdGUgYnVpbHRJblZhbHVlQWNjZXNzb3JzOiBDb250cm9sVmFsdWVBY2Nlc3NvcltdXG4gICkge1xuICAgIHRoaXMuZXh0ZW5kQnVpbHRpblZhbHVlQWNjZXNzb3IoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFRoZSBuYXRpdmUgaW5wdXQgdmFsdWUgaXMgZW1pdHRlZCBoZXJlIHRvIG1ha2Ugc3VyZSB0aGF0XG4gICAgLy8gdGhlIElucHV0Q291bnRlckNvbXBvbmVudCByZWNlaXZlcyB0aGUgdmFsdWUgb25Jbml0LFxuICAgIC8vIHdoZW4gWyhuZ01vZGVsKV0gaXMgdXNlZCBvbiBraXJieS1pbnB1dC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICAgIGlmIChpbnB1dFZhbHVlKSB7XG4gICAgICAgIHRoaXMua2lyYnlDaGFuZ2UuZW1pdChpbnB1dFZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy52YWx1ZSkge1xuICAgICAgdGhpcy5raXJieUNoYW5nZS5lbWl0KGNoYW5nZXMudmFsdWUuY3VycmVudFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBleHRlbmRCdWlsdGluVmFsdWVBY2Nlc3NvcigpIHtcbiAgICBpZiAodGhpcy5idWlsdEluVmFsdWVBY2Nlc3NvcnMpIHtcbiAgICAgIHRoaXMuYnVpbHRJblZhbHVlQWNjZXNzb3JzLmZvckVhY2goKGFjY2Vzc29yKSA9PiB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsV3JpdGVWYWx1ZSA9IGFjY2Vzc29yLndyaXRlVmFsdWU/LmJpbmQoYWNjZXNzb3IpO1xuICAgICAgICBhY2Nlc3Nvci53cml0ZVZhbHVlID0gKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAob3JpZ2luYWxXcml0ZVZhbHVlKSB7XG4gICAgICAgICAgICBvcmlnaW5hbFdyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmtpcmJ5Q2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgdHlwZVRvSW5wdXRtb2RlTWFwID0ge1xuICAgIG51bWJlcjogJ2RlY2ltYWwnLFxuICAgIHNlYXJjaDogJ3NlYXJjaCcsXG4gIH07XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudC50YXJnZXQudmFsdWUnXSlcbiAgX29uS2V5VXAodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMua2lyYnlDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdwYXN0ZScsIFsnJGV2ZW50LnRhcmdldCddKVxuICBASG9zdExpc3RlbmVyKCdjdXQnLCBbJyRldmVudC50YXJnZXQnXSlcbiAgX29uQ3V0UGFzdGUodGFyZ2V0OiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgLy9WYWx1ZSBvZiBpbnB1dCBlbGVtZW50IGlzIHVwZGF0ZWQgYWZ0ZXIgY3V0L3Bhc3RlOlxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5raXJieUNoYW5nZS5lbWl0KHRhcmdldC52YWx1ZSkpO1xuICB9XG59XG4iXX0=","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, HostListener, Inject, Input, Optional, Output, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nexport class TextareaComponent {\n get hasError() {\n return this._hasError;\n }\n set hasError(value) {\n if (this._hasError !== value) {\n this._hasError = value;\n this.hasErrorChange.emit(this._hasError);\n }\n }\n constructor(elementRef, builtInValueAccessors) {\n this.elementRef = elementRef;\n this.builtInValueAccessors = builtInValueAccessors;\n this.kirbyChange = new EventEmitter();\n this._hasError = false;\n this.autocomplete = 'off';\n this.autocorrect = 'off';\n this.hasErrorChange = new EventEmitter();\n this.extendBuiltinValueAccessor();\n }\n ngOnInit() {\n // The native input value is emitted here to make sure that\n // the InputCounterComponent receives the value onInit,\n // when [(ngModel)] is used on kirby-textarea.\n setTimeout(() => {\n const inputValue = this.elementRef.nativeElement.value;\n if (inputValue) {\n this.kirbyChange.emit(inputValue);\n }\n });\n }\n ngOnChanges(changes) {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\n }\n extendBuiltinValueAccessor() {\n if (this.builtInValueAccessors) {\n this.builtInValueAccessors.forEach((accessor) => {\n const originalWriteValue = accessor.writeValue?.bind(accessor);\n accessor.writeValue = (value) => {\n if (originalWriteValue) {\n originalWriteValue(value);\n }\n this.kirbyChange.emit(value);\n };\n });\n }\n }\n _onKeyUp(value) {\n this.kirbyChange.emit(value);\n }\n _onCutPaste(target) {\n //Value of textarea element is updated after cut/paste:\n setTimeout(() => this.kirbyChange.emit(target.value));\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: TextareaComponent, deps: [{ token: i0.ElementRef }, { token: NG_VALUE_ACCESSOR, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.13\", type: TextareaComponent, isStandalone: true, selector: \"textarea[kirby-textarea]\", inputs: { value: \"value\", borderless: \"borderless\", hasError: \"hasError\", autocomplete: \"autocomplete\", autocorrect: \"autocorrect\", maxlength: \"maxlength\" }, outputs: { hasErrorChange: \"hasErrorChange\" }, host: { listeners: { \"keyup\": \"_onKeyUp($event.target.value)\", \"paste\": \"_onCutPaste($event.target)\", \"cut\": \"_onCutPaste($event.target)\" }, properties: { \"class.borderless\": \"this.borderless\", \"attr.aria-invalid\": \"this.hasError\", \"class.error\": \"this.hasError\", \"attr.autocomplete\": \"this.autocomplete\", \"attr.autocorrect\": \"this.autocorrect\", \"attr.maxlength\": \"this.maxlength\" } }, usesOnChanges: true, ngImport: i0, template: \"@if (!value) {\\n <ng-content></ng-content>\\n}\\n<!-- prettier-ignore -->\\n@if (value) {{{value}}}\\n\", styles: [\":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}@supports not (selector(::-webkit-date-and-time-value)){:host(input[type=date]::-webkit-date-and-time-value){min-height:1.5em;text-align:start}}@media (hover: hover){:host:not(:disabled):hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:#f5f5f5;cursor:text}}:host:not(:disabled):active,:host:not(:disabled).interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:#ebebeb}:host:not(:disabled){transition:all 80ms linear 0ms;transition-property:background-color}:host{position:relative;font-family:var(--kirby-font-family);resize:none}@media (min-width: 768px){:host{resize:vertical}}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: TextareaComponent, decorators: [{\n type: Component,\n args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'textarea[kirby-textarea]', template: \"@if (!value) {\\n <ng-content></ng-content>\\n}\\n<!-- prettier-ignore -->\\n@if (value) {{{value}}}\\n\", styles: [\":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}@supports not (selector(::-webkit-date-and-time-value)){:host(input[type=date]::-webkit-date-and-time-value){min-height:1.5em;text-align:start}}@media (hover: hover){:host:not(:disabled):hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:#f5f5f5;cursor:text}}:host:not(:disabled):active,:host:not(:disabled).interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:#ebebeb}:host:not(:disabled){transition:all 80ms linear 0ms;transition-property:background-color}:host{position:relative;font-family:var(--kirby-font-family);resize:none}@media (min-width: 768px){:host{resize:vertical}}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [NG_VALUE_ACCESSOR]\n }] }], propDecorators: { value: [{\n type: Input\n }], borderless: [{\n type: HostBinding,\n args: ['class.borderless']\n }, {\n type: Input\n }], hasError: [{\n type: HostBinding,\n args: ['attr.aria-invalid']\n }, {\n type: HostBinding,\n args: ['class.error']\n }, {\n type: Input\n }], autocomplete: [{\n type: HostBinding,\n args: ['attr.autocomplete']\n }, {\n type: Input\n }], autocorrect: [{\n type: HostBinding,\n args: ['attr.autocorrect']\n }, {\n type: Input\n }], maxlength: [{\n type: HostBinding,\n args: ['attr.maxlength']\n }, {\n type: Input\n }], hasErrorChange: [{\n type: Output\n }], _onKeyUp: [{\n type: HostListener,\n args: ['keyup', ['$event.target.value']]\n }], _onCutPaste: [{\n type: HostListener,\n args: ['paste', ['$event.target']]\n }, {\n type: HostListener,\n args: ['cut', ['$event.target']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZm9ybS1maWVsZC9zcmMvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZm9ybS1maWVsZC9zcmMvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFVekUsTUFBTSxPQUFPLGlCQUFpQjtJQWE1QixJQUdJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDekIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQWdCRCxZQUNVLFVBQTJDLEVBQ0oscUJBQTZDO1FBRHBGLGVBQVUsR0FBVixVQUFVLENBQWlDO1FBQ0osMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQTFDOUYsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2pDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUEyQm5DLGlCQUFZLEdBQWlCLEtBQUssQ0FBQztRQUluQyxnQkFBVyxHQUFpQixLQUFLLENBQUM7UUFNeEIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBTXJELElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRO1FBQ04sMkRBQTJEO1FBQzNELHVEQUF1RDtRQUN2RCw4Q0FBOEM7UUFDOUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUN2RCxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0gsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDOUMsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDL0QsUUFBUSxDQUFDLFVBQVUsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUNuQyxJQUFJLGtCQUFrQixFQUFFLENBQUM7d0JBQ3ZCLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM1QixDQUFDO29CQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixDQUFDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBR0QsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUlELFdBQVcsQ0FBQyxNQUF3QjtRQUNsQyx1REFBdUQ7UUFDdkQsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7a0lBMUZVLGlCQUFpQiw0Q0EyQ04saUJBQWlCO3NIQTNDNUIsaUJBQWlCLHdyQkN6QjlCLHFHQUtBOzs0RkRvQmEsaUJBQWlCO2tCQVA3QixTQUFTO3NDQUNTLHVCQUF1QixDQUFDLE1BQU0sWUFFckMsMEJBQTBCOzswQkErQ2pDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCOztzQkF2Q3RDLEtBQUs7O3NCQUtMLFdBQVc7dUJBQUMsa0JBQWtCOztzQkFDOUIsS0FBSzs7c0JBR0wsV0FBVzt1QkFBQyxtQkFBbUI7O3NCQUMvQixXQUFXO3VCQUFDLGFBQWE7O3NCQUN6QixLQUFLOztzQkFZTCxXQUFXO3VCQUFDLG1CQUFtQjs7c0JBQy9CLEtBQUs7O3NCQUdMLFdBQVc7dUJBQUMsa0JBQWtCOztzQkFDOUIsS0FBSzs7c0JBR0wsV0FBVzt1QkFBQyxnQkFBZ0I7O3NCQUM1QixLQUFLOztzQkFHTCxNQUFNOztzQkF5Q04sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQzs7c0JBSzdDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDOztzQkFDdkMsWUFBWTt1QkFBQyxLQUFLLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ3RleHRhcmVhW2tpcmJ5LXRleHRhcmVhXScsXG4gIHN0eWxlVXJsczogWycuL3RleHRhcmVhLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRleHRhcmVhQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBGb3JtRmllbGRDb250cm9sLCBPbkluaXQge1xuICBraXJieUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBwcml2YXRlIF9oYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgcGFkZGluZywgd2lkdGgsIHJvdW5kZWQgYm9yZGVycyBhbmQgZHJvcC1zaGFkb3cgd2hlbiBzZXQgdG8gYHRydWVgLlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ib3JkZXJsZXNzJylcbiAgQElucHV0KClcbiAgYm9yZGVybGVzczogYm9vbGVhbjtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1pbnZhbGlkJylcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lcnJvcicpXG4gIEBJbnB1dCgpXG4gIGdldCBoYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGFzRXJyb3I7XG4gIH1cblxuICBzZXQgaGFzRXJyb3IodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5faGFzRXJyb3IgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl9oYXNFcnJvciA9IHZhbHVlO1xuICAgICAgdGhpcy5oYXNFcnJvckNoYW5nZS5lbWl0KHRoaXMuX2hhc0Vycm9yKTtcbiAgICB9XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXV0b2NvbXBsZXRlJylcbiAgQElucHV0KClcbiAgYXV0b2NvbXBsZXRlOiAnb24nIHwgJ29mZicgPSAnb2ZmJztcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXV0b2NvcnJlY3QnKVxuICBASW5wdXQoKVxuICBhdXRvY29ycmVjdDogJ29uJyB8ICdvZmYnID0gJ29mZic7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLm1heGxlbmd0aCcpXG4gIEBJbnB1dCgpXG4gIG1heGxlbmd0aDogbnVtYmVyO1xuXG4gIEBPdXRwdXQoKSBoYXNFcnJvckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4sXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChOR19WQUxVRV9BQ0NFU1NPUikgcHJpdmF0ZSBidWlsdEluVmFsdWVBY2Nlc3NvcnM6IENvbnRyb2xWYWx1ZUFjY2Vzc29yW11cbiAgKSB7XG4gICAgdGhpcy5leHRlbmRCdWlsdGluVmFsdWVBY2Nlc3NvcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gVGhlIG5hdGl2ZSBpbnB1dCB2YWx1ZSBpcyBlbWl0dGVkIGhlcmUgdG8gbWFrZSBzdXJlIHRoYXRcbiAgICAvLyB0aGUgSW5wdXRDb3VudGVyQ29tcG9uZW50IHJlY2VpdmVzIHRoZSB2YWx1ZSBvbkluaXQsXG4gICAgLy8gd2hlbiBbKG5nTW9kZWwpXSBpcyB1c2VkIG9uIGtpcmJ5LXRleHRhcmVhLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgICAgaWYgKGlucHV0VmFsdWUpIHtcbiAgICAgICAgdGhpcy5raXJieUNoYW5nZS5lbWl0KGlucHV0VmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnZhbHVlKSB7XG4gICAgICB0aGlzLmtpcmJ5Q2hhbmdlLmVtaXQoY2hhbmdlcy52YWx1ZS5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGV4dGVuZEJ1aWx0aW5WYWx1ZUFjY2Vzc29yKCkge1xuICAgIGlmICh0aGlzLmJ1aWx0SW5WYWx1ZUFjY2Vzc29ycykge1xuICAgICAgdGhpcy5idWlsdEluVmFsdWVBY2Nlc3NvcnMuZm9yRWFjaCgoYWNjZXNzb3IpID0+IHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxXcml0ZVZhbHVlID0gYWNjZXNzb3Iud3JpdGVWYWx1ZT8uYmluZChhY2Nlc3Nvcik7XG4gICAgICAgIGFjY2Vzc29yLndyaXRlVmFsdWUgPSAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChvcmlnaW5hbFdyaXRlVmFsdWUpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsV3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMua2lyYnlDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50LnRhcmdldC52YWx1ZSddKVxuICBfb25LZXlVcCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5raXJieUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3Bhc3RlJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2N1dCcsIFsnJGV2ZW50LnRhcmdldCddKVxuICBfb25DdXRQYXN0ZSh0YXJnZXQ6IEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICAvL1ZhbHVlIG9mIHRleHRhcmVhIGVsZW1lbnQgaXMgdXBkYXRlZCBhZnRlciBjdXQvcGFzdGU6XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmtpcmJ5Q2hhbmdlLmVtaXQodGFyZ2V0LnZhbHVlKSk7XG4gIH1cbn1cbiIsIkBpZiAoIXZhbHVlKSB7XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbn1cbjwhLS0gcHJldHRpZXItaWdub3JlIC0tPlxuQGlmICh2YWx1ZSkge3t7dmFsdWV9fX1cbiJdfQ==","import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, ElementRef, HostBinding, HostListener, Input, } from '@angular/core';\nimport { DesignTokenHelper, UniqueIdGenerator, } from '@kirbydesign/designsystem/helpers';\nimport { RadioGroupComponent } from '@kirbydesign/designsystem/radio';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\nimport { DropdownComponent } from '@kirbydesign/designsystem/dropdown';\nimport { AffixDirective } from './directives/affix/affix.directive';\nimport { DateInputDirective } from './directives/date/date-input.directive';\nimport { InputCounterComponent } from './input-counter/input-counter.component';\nimport { InputComponent } from './input/input.component';\nimport { TextareaComponent } from './textarea/textarea.component';\nimport { FormFieldMessageComponent } from './form-field-message/form-field-message.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@kirbydesign/designsystem/helpers\";\nimport * as i2 from \"@kirbydesign/designsystem/types\";\nimport * as i3 from \"@kirbydesign/designsystem/shared\";\nexport class FormFieldComponent {\n get label() {\n return this._label;\n }\n set label(value) {\n this._label = value;\n this.setNestedInteractiveLabelAttributes();\n }\n get message() {\n return this._message;\n }\n set message(value) {\n this._message = value;\n this.setNestedInteractiveMessageAttributes();\n }\n constructor(elementRef, platform, renderer, windowRef, resizeObserverService, cdr) {\n this.platform = platform;\n this.renderer = renderer;\n this.windowRef = windowRef;\n this.resizeObserverService = resizeObserverService;\n this.cdr = cdr;\n this.isRegistered = false;\n this.showDefaultCalendarIcon = false;\n this._labelId = UniqueIdGenerator.scopedTo('kirby-form-field-label').next();\n this._errorMessageId = UniqueIdGenerator.scopedTo('kirby-form-field-message').next();\n this._messageId = UniqueIdGenerator.scopedTo('kirby-form-field-message').next();\n this.element = elementRef.nativeElement;\n }\n get _wrapContentInLabel() {\n return !!this.label && (!!this.input || !!this.textarea);\n }\n dispatchLoadEvent() {\n // Dispatch an `ionInputDidLoad` event to register\n // form field + input/textarea with Ionic input shims\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/input-shims.ts\n this.windowRef.nativeWindow.document.dispatchEvent(new CustomEvent('ionInputDidLoad', {\n detail: this.element,\n }));\n }\n _onRegisterFormField() {\n this.dispatchLoadEvent();\n }\n onLabelClick() {\n // If its a radio group its focus method that contains advanced logic\n this.radioGroupComponent\n ? this.radioGroupComponent?.focus()\n : this.nestedInteractiveElement?.focus();\n }\n focus() {\n if (!this.nestedInteractiveElement)\n return;\n if (!(this.input || this.textarea))\n return;\n /*\n * This timeout ensures that any previous manipulation of inputElement\n * (e.g. setting disabled state) has been synced to the DOM before trying to focus.\n */\n setTimeout(() => {\n if (this.isTouch) {\n // Trigger Ionic's input shims to ensure input is scrolled into view.\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/hacks/scroll-assist.ts\n const touchStart = new TouchEvent('touchstart');\n const touchEnd = new TouchEvent('touchend');\n this.nestedInteractiveElement.dispatchEvent(touchStart);\n this.nestedInteractiveElement.dispatchEvent(touchEnd);\n }\n else {\n this.nestedInteractiveElement.focus();\n }\n });\n }\n ngOnInit() {\n this.isTouch = this.platform.isTouch();\n }\n ngAfterContentInit() {\n this.handleAffixOffset();\n }\n ngAfterContentChecked() {\n if (!this.nestedInteractiveElement) {\n this.registerNestedInteractive();\n }\n if (!this.isRegistered && this.element.isConnected && (this.input || this.textarea)) {\n // Host is connected to dom and slotted input/textarea is present:\n this.isRegistered = true;\n this.dispatchLoadEvent();\n }\n // Decide if default calendar icon for date input should be shown\n this.showDefaultCalendarIcon = this.shouldShowDefaultCalendarIcon();\n }\n ngOnDestroy() {\n // Dispatch an `ionInputDidUnload` event to unregister\n // form field + input/textarea from Ionic input shims\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/input-shims.ts\n this.windowRef.nativeWindow.document.dispatchEvent(new CustomEvent('ionInputDidUnload', {\n detail: this.element,\n }));\n this.affixElements.forEach((affix) => {\n this.resizeObserverService.unobserve(affix.el);\n });\n this.nestedInteractiveErrorSubscription?.unsubscribe();\n }\n registerNestedInteractive() {\n this.getNestedInteractiveElement();\n this.setNestedInteractiveLabelAttributes();\n this.setNestedInteractiveMessageAttributes();\n this.subscribeToNestedInteractiveError();\n }\n getNestedInteractiveElement() {\n this.nestedInteractiveElement =\n this.input?.nativeElement ||\n this.textarea?.nativeElement ||\n this.radioGroupElement?.nativeElement.querySelector('ion-radio-group') ||\n this.dropdown?.nativeElement.querySelector('button[kirby-button]');\n }\n setNestedInteractiveMessageAttributes() {\n if (!this.nestedInteractiveElement)\n return;\n if (this.message) {\n this.renderer.setAttribute(this.nestedInteractiveElement, 'aria-describedby', this._messageId);\n this.renderer.setAttribute(this.nestedInteractiveElement, 'aria-errormessage', this._errorMessageId);\n }\n else {\n this.renderer.removeAttribute(this.nestedInteractiveElement, 'aria-describedby');\n this.renderer.removeAttribute(this.nestedInteractiveElement, 'aria-errormessage');\n }\n }\n setNestedInteractiveLabelAttributes() {\n if (!this.nestedInteractiveElement)\n return;\n if (this._wrapContentInLabel)\n return; // return if label is wrapping the nested interactive. No need for aria-labelledby.\n if (this.label) {\n this.renderer.setAttribute(this.nestedInteractiveElement, 'aria-labelledby', this._labelId);\n }\n else {\n this.renderer.removeAttribute(this.nestedInteractiveElement, 'aria-labelledby');\n }\n }\n subscribeToNestedInteractiveError() {\n const nestedInteractiveComponent = this.inputComponent ||\n this.textareaComponent ||\n this.radioGroupComponent ||\n this.dropdownComponent;\n // set current value, then listen for changes\n this._nestedInteractiveHasError = !!nestedInteractiveComponent?.hasError;\n this.nestedInteractiveErrorSubscription = nestedInteractiveComponent?.hasErrorChange.subscribe((hasError) => {\n this._nestedInteractiveHasError = hasError;\n this.cdr.markForCheck();\n });\n }\n shouldShowDefaultCalendarIcon() {\n return (this.dateInput?.useNativeDatePicker &&\n !this.affixElements.some((affix) => affix.type === 'suffix') // there are no suffix elements\n );\n }\n handleAffixOffset() {\n // Measure the width of all slotted affix elements,\n // and apply their width + standard padding to the input elements\n // padding, so the start/end of the input is correctly indented.\n if (this.input) {\n this.affixElements.forEach((affix) => {\n this.resizeObserverService.observe(affix.el, (entry) => {\n const padding = affix.type === 'prefix' ? 'padding-left' : 'padding-right';\n const affixWidth = this.input.nativeElement.type === 'date' ? 0 : entry.contentRect.width;\n const existingPadding = parseInt(DesignTokenHelper.size('s'));\n this.renderer.setStyle(this.input.nativeElement, `${padding}`, `${affixWidth + existingPadding}px`);\n const dateMask = this.element.querySelector('.date-mask');\n if (dateMask) {\n this.renderer.setStyle(dateMask, `${padding}`, `${affixWidth + existingPadding}px`);\n }\n });\n });\n }\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: FormFieldComponent, deps: [{ token: i0.ElementRef }, { token: i1.PlatformService }, { token: i0.Renderer2 }, { token: i2.WindowRef }, { token: i3.ResizeObserverService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.13\", type: FormFieldComponent, isStandalone: true, selector: \"kirby-form-field\", inputs: { label: \"label\", message: \"message\" }, host: { listeners: { \"kirbyRegisterFormField\": \"_onRegisterFormField()\" }, properties: { \"class.wrap-content-in-label\": \"this._wrapContentInLabel\" } }, queries: [{ propertyName: \"counter\", first: true, predicate: InputCounterComponent, descendants: true }, { propertyName: \"radioGroupComponent\", first: true, predicate: RadioGroupComponent, descendants: true }, { propertyName: \"inputComponent\", first: true, predicate: InputComponent, descendants: true }, { propertyName: \"dropdownComponent\", first: true, predicate: DropdownComponent, descendants: true }, { propertyName: \"textareaComponent\", first: true, predicate: TextareaComponent, descendants: true }, { propertyName: \"radioGroupElement\", first: true, predicate: RadioGroupComponent, descendants: true, read: ElementRef }, { propertyName: \"input\", first: true, predicate: InputComponent, descendants: true, read: ElementRef }, { propertyName: \"dropdown\", first: true, predicate: DropdownComponent, descendants: true, read: ElementRef }, { propertyName: \"textarea\", first: true, predicate: TextareaComponent, descendants: true, read: ElementRef }, { propertyName: \"dateInput\", first: true, predicate: DateInputDirective, descendants: true }, { propertyName: \"affixElements\", predicate: AffixDirective }], ngImport: i0, template: \"@if (_wrapContentInLabel) {\\n <label>\\n <ng-container *ngTemplateOutlet=\\\"labelTextTemplate\\\"></ng-container>\\n <ng-container *ngTemplateOutlet=\\\"slottedInputTemplate\\\"></ng-container>\\n <!-- add error message inside label if nested interative is in error state -->\\n @if (_nestedInteractiveHasError) {\\n <ng-container *ngTemplateOutlet=\\\"messageTemplate\\\"></ng-container>\\n }\\n </label>\\n}\\n\\n<!-- add message outside label if nested interative is in valid state -->\\n@if (!_nestedInteractiveHasError && _wrapContentInLabel) {\\n <ng-container *ngTemplateOutlet=\\\"messageTemplate\\\"></ng-container>\\n}\\n\\n@if (!_wrapContentInLabel) {\\n <ng-container *ngTemplateOutlet=\\\"labelTemplate\\\"></ng-container>\\n <ng-container *ngTemplateOutlet=\\\"slottedInputTemplate\\\"></ng-container>\\n <ng-container *ngTemplateOutlet=\\\"messageTemplate\\\"></ng-container>\\n}\\n\\n<ng-template #messageTemplate>\\n @if (message !== undefined || counter) {\\n <div class=\\\"texts\\\">\\n @if (message !== undefined) {\\n <kirby-form-field-message\\n class=\\\"message\\\"\\n [text]=\\\"message\\\"\\n [attr.aria-live]=\\\"_nestedInteractiveHasError ? 'polite' : null\\\"\\n [id]=\\\"_nestedInteractiveHasError ? _errorMessageId : _messageId\\\"\\n ></kirby-form-field-message>\\n }\\n @if (counter) {\\n <div class=\\\"counter\\\">\\n <ng-content select=\\\"kirby-input-counter\\\"></ng-content>\\n </div>\\n }\\n </div>\\n }\\n</ng-template>\\n\\n<ng-template #slottedInputTemplate>\\n <div class=\\\"affix-container\\\">\\n <div class=\\\"prefix vertical-align semi-dark-text\\\">\\n <ng-content select=\\\"[kirby-affix='prefix']\\\"></ng-content>\\n </div>\\n <ng-content select=\\\"input[kirby-input]\\\"></ng-content>\\n <ng-content select=\\\"textarea[kirby-textarea]\\\"></ng-content>\\n <ng-content select=\\\"kirby-radio-group\\\"></ng-content>\\n <ng-content select=\\\"kirby-dropdown\\\"></ng-content>\\n <div class=\\\"suffix vertical-align semi-dark-text\\\">\\n <ng-content select=\\\"[kirby-affix='suffix']\\\"></ng-content>\\n @if (showDefaultCalendarIcon) {\\n <kirby-icon name=\\\"calendar\\\"></kirby-icon>\\n }\\n </div>\\n </div>\\n</ng-template>\\n\\n<ng-template #labelTextTemplate>\\n @if (label) {\\n <span class=\\\"text\\\">{{ label }}</span>\\n }\\n</ng-template>\\n\\n<ng-template #labelTemplate>\\n @if (label) {\\n <label class=\\\"text\\\" [id]=\\\"_labelId\\\" (click)=\\\"onLabelClick()\\\">{{ label }}</label>\\n }\\n</ng-template>\\n\", styles: [\":host{display:block;position:relative;margin-bottom:16px}:host-context(kirby-item){margin-bottom:0}.texts{display:flex;justify-content:space-between;padding:2px 16px 0}.texts .message{flex:75%}.texts .message:only-child{flex-basis:auto}.texts .counter{flex:25%;text-align:right}label{display:block}.text{display:block;font-size:14px;font-weight:300;line-height:20px;margin-bottom:4px;padding:0 16px}.affix-container{position:relative}.affix-container .vertical-align{display:flex;align-items:center;position:absolute;top:0;bottom:0}.affix-container .prefix{left:12px;z-index:1}.affix-container .suffix{right:12px}.affix-container .semi-dark-text ::ng-deep>span,.affix-container .semi-dark-text ::ng-deep>h1,.affix-container .semi-dark-text ::ng-deep>h2,.affix-container .semi-dark-text ::ng-deep>h3,.affix-container .semi-dark-text ::ng-deep>h4,.affix-container .semi-dark-text ::ng-deep>h5,.affix-container .semi-dark-text ::ng-deep>h6,.affix-container .semi-dark-text ::ng-deep>p,.affix-container .semi-dark-text ::ng-deep>data{color:var(--kirby-text-color-semi-dark)}:host:not(.wrap-content-in-label) .affix-container:has(input[type=date]),:host(.wrap-content-in-label) label:has(input[type=date]){--date-input-background-color: var(--kirby-inputs-background-color)}@media (hover: hover){:host:not(.wrap-content-in-label) .affix-container:has(input[type=date]):hover,:host(.wrap-content-in-label) label:has(input[type=date]):hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--date-input-background-color: #e0e0e0}}:host:not(.wrap-content-in-label) .affix-container:has(input[type=date]):active,:host:not(.wrap-content-in-label) .affix-container:has(input[type=date]).interaction-state-active,:host(.wrap-content-in-label) label:has(input[type=date]):active,:host(.wrap-content-in-label) label:has(input[type=date]).interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--date-input-background-color: #cbcbcb}:host:not(.wrap-content-in-label) .affix-container:has(input[type=date]) .suffix:not(:empty),:host(.wrap-content-in-label) label:has(input[type=date]) .suffix:not(:empty){top:8px;bottom:8px;padding-inline-start:12px;pointer-events:none;background-color:var(--date-input-background-color);transition:all 80ms linear 0ms;transition-property:background-color}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: FormFieldMessageComponent, selector: \"kirby-form-field-message\", inputs: [\"text\", \"position\"] }, { kind: \"component\", type: IconComponent, selector: \"kirby-icon\", inputs: [\"size\", \"name\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: FormFieldComponent, decorators: [{\n type: Component,\n args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'kirby-form-field', imports: [NgTemplateOutlet, FormFieldMessageComponent, IconComponent], template: \"@if (_wrapContentInLabel) {\\n <label>\\n <ng-container *ngTemplateOutlet=\\\"labelTextTemplate\\\"></ng-container>\\n <ng-container *ngTemplateOutlet=\\\"slottedInputTemplate\\\"></ng-container>\\n <!-- add error message inside label if nested interative is in error state -->\\n @if (_nestedInteractiveHasError) {\\n <ng-container *ngTemplateOutlet=\\\"messageTemplate\\\"></ng-container>\\n }\\n </label>\\n}\\n\\n<!-- add message outside label if nested interative is in valid state -->\\n@if (!_nestedInteractiveHasError && _wrapContentInLabel) {\\n <ng-container *ngTemplateOutlet=\\\"messageTemplate\\\"></ng-container>\\n}\\n\\n@if (!_wrapContentInLabel) {\\n <ng-container *ngTemplateOutlet=\\\"labelTemplate\\\"></ng-container>\\n <ng-container *ngTemplateOutlet=\\\"slottedInputTemplate\\\"></ng-container>\\n <ng-container *ngTemplateOutlet=\\\"messageTemplate\\\"></ng-container>\\n}\\n\\n<ng-template #messageTemplate>\\n @if (message !== undefined || counter) {\\n <div class=\\\"texts\\\">\\n @if (message !== undefined) {\\n <kirby-form-field-message\\n class=\\\"message\\\"\\n [text]=\\\"message\\\"\\n [attr.aria-live]=\\\"_nestedInteractiveHasError ? 'polite' : null\\\"\\n [id]=\\\"_nestedInteractiveHasError ? _errorMessageId : _messageId\\\"\\n ></kirby-form-field-message>\\n }\\n @if (counter) {\\n <div class=\\\"counter\\\">\\n <ng-content select=\\\"kirby-input-counter\\\"></ng-content>\\n </div>\\n }\\n </div>\\n }\\n</ng-template>\\n\\n<ng-template #slottedInputTemplate>\\n <div class=\\\"affix-container\\\">\\n <div class=\\\"prefix vertical-align semi-dark-text\\\">\\n <ng-content select=\\\"[kirby-affix='prefix']\\\"></ng-content>\\n </div>\\n <ng-content select=\\\"input[kirby-input]\\\"></ng-content>\\n <ng-content select=\\\"textarea[kirby-textarea]\\\"></ng-content>\\n <ng-content select=\\\"kirby-radio-group\\\"></ng-content>\\n <ng-content select=\\\"kirby-dropdown\\\"></ng-content>\\n <div class=\\\"suffix vertical-align semi-dark-text\\\">\\n <ng-content select=\\\"[kirby-affix='suffix']\\\"></ng-content>\\n @if (showDefaultCalendarIcon) {\\n <kirby-icon name=\\\"calendar\\\"></kirby-icon>\\n }\\n </div>\\n </div>\\n</ng-template>\\n\\n<ng-template #labelTextTemplate>\\n @if (label) {\\n <span class=\\\"text\\\">{{ label }}</span>\\n }\\n</ng-template>\\n\\n<ng-template #labelTemplate>\\n @if (label) {\\n <label class=\\\"text\\\" [id]=\\\"_labelId\\\" (click)=\\\"onLabelClick()\\\">{{ label }}</label>\\n }\\n</ng-template>\\n\", styles: [\":host{display:block;position:relative;margin-bottom:16px}:host-context(kirby-item){margin-bottom:0}.texts{display:flex;justify-content:space-between;padding:2px 16px 0}.texts .message{flex:75%}.texts .message:only-child{flex-basis:auto}.texts .counter{flex:25%;text-align:right}label{display:block}.text{display:block;font-size:14px;font-weight:300;line-height:20px;margin-bottom:4px;padding:0 16px}.affix-container{position:relative}.affix-container .vertical-align{display:flex;align-items:center;position:absolute;top:0;bottom:0}.affix-container .prefix{left:12px;z-index:1}.affix-container .suffix{right:12px}.affix-container .semi-dark-text ::ng-deep>span,.affix-container .semi-dark-text ::ng-deep>h1,.affix-container .semi-dark-text ::ng-deep>h2,.affix-container .semi-dark-text ::ng-deep>h3,.affix-container .semi-dark-text ::ng-deep>h4,.affix-container .semi-dark-text ::ng-deep>h5,.affix-container .semi-dark-text ::ng-deep>h6,.affix-container .semi-dark-text ::ng-deep>p,.affix-container .semi-dark-text ::ng-deep>data{color:var(--kirby-text-color-semi-dark)}:host:not(.wrap-content-in-label) .affix-container:has(input[type=date]),:host(.wrap-content-in-label) label:has(input[type=date]){--date-input-background-color: var(--kirby-inputs-background-color)}@media (hover: hover){:host:not(.wrap-content-in-label) .affix-container:has(input[type=date]):hover,:host(.wrap-content-in-label) label:has(input[type=date]):hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--date-input-background-color: #e0e0e0}}:host:not(.wrap-content-in-label) .affix-container:has(input[type=date]):active,:host:not(.wrap-content-in-label) .affix-container:has(input[type=date]).interaction-state-active,:host(.wrap-content-in-label) label:has(input[type=date]):active,:host(.wrap-content-in-label) label:has(input[type=date]).interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--date-input-background-color: #cbcbcb}:host:not(.wrap-content-in-label) .affix-container:has(input[type=date]) .suffix:not(:empty),:host(.wrap-content-in-label) label:has(input[type=date]) .suffix:not(:empty){top:8px;bottom:8px;padding-inline-start:12px;pointer-events:none;background-color:var(--date-input-background-color);transition:all 80ms linear 0ms;transition-property:background-color}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.PlatformService }, { type: i0.Renderer2 }, { type: i2.WindowRef }, { type: i3.ResizeObserverService }, { type: i0.ChangeDetectorRef }], propDecorators: { label: [{\n type: Input\n }], message: [{\n type: Input\n }], affixElements: [{\n type: ContentChildren,\n args: [AffixDirective]\n }], counter: [{\n type: ContentChild,\n args: [InputCounterComponent, { static: false }]\n }], radioGroupComponent: [{\n type: ContentChild,\n args: [RadioGroupComponent]\n }], inputComponent: [{\n type: ContentChild,\n args: [InputComponent]\n }], dropdownComponent: [{\n type: ContentChild,\n args: [DropdownComponent]\n }], textareaComponent: [{\n type: ContentChild,\n args: [TextareaComponent]\n }], radioGroupElement: [{\n type: ContentChild,\n args: [RadioGroupComponent, { read: ElementRef }]\n }], input: [{\n type: ContentChild,\n args: [InputComponent, { read: ElementRef }]\n }], dropdown: [{\n type: ContentChild,\n args: [DropdownComponent, { read: ElementRef }]\n }], textarea: [{\n type: ContentChild,\n args: [TextareaComponent, { read: ElementRef }]\n }], dateInput: [{\n type: ContentChild,\n args: [DateInputDirective]\n }], _wrapContentInLabel: [{\n type: HostBinding,\n args: ['class.wrap-content-in-label']\n }], _onRegisterFormField: [{\n type: HostListener,\n args: ['kirbyRegisterFormField']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9mb3JtLWZpZWxkL3NyYy9mb3JtLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2Zvcm0tZmllbGQvc3JjL2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEdBS04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGlCQUFpQixFQUVqQixpQkFBaUIsR0FDbEIsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUl0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7Ozs7QUFTOUYsTUFBTSxPQUFPLGtCQUFrQjtJQXNCN0IsSUFBYSxLQUFLO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFD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LEVBQUUsVUFBVSxFQUFFOztzQkFFcEQsWUFBWTt1QkFBQyxrQkFBa0I7O3NCQWEvQixXQUFXO3VCQUFDLDZCQUE2Qjs7c0JBZ0J6QyxZQUFZO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBEZXNpZ25Ub2tlbkhlbHBlcixcbiAgUGxhdGZvcm1TZXJ2aWNlLFxuICBVbmlxdWVJZEdlbmVyYXRvcixcbn0gZnJvbSAnQGtpcmJ5ZGVzaWduL2Rlc2lnbnN5c3RlbS9oZWxwZXJzJztcbmltcG9ydCB7IFJhZGlvR3JvdXBDb21wb25lbnQgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL3JhZGlvJztcbmltcG9ydCB7IFJlc2l6ZU9ic2VydmVyU2VydmljZSB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vc2hhcmVkJztcbmltcG9ydCB7IFdpbmRvd1JlZiB9IGZyb20gJ0BraXJieWRlc2lnbi9kZXNpZ25zeXN0ZW0vdHlwZXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2ljb24nO1xuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFmZml4RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2FmZml4L2FmZml4LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYXRlSW5wdXREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0ZS9kYXRlLWlucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJbnB1dENvdW50ZXJDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWNvdW50ZXIvaW5wdXQtY291bnRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUZpZWxkTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1tZXNzYWdlL2Zvcm0tZmllbGQtbWVzc2FnZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHNlbGVjdG9yOiAna2lyYnktZm9ybS1maWVsZCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgRm9ybUZpZWxkTWVzc2FnZUNvbXBvbmVudCwgSWNvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZENvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQsIEFmdGVyQ29udGVudEluaXQsIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIHByaXZhdGUgaXNSZWdpc3RlcmVkID0gZmFsc2U7XG4gIHByaXZhdGUgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgaXNUb3VjaDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBuZXN0ZWRJbnRlcmFjdGl2ZUVsZW1lbnQ6XG4gICAgfCBIVE1MQnV0dG9uRWxlbWVudFxuICAgIHwgSFRNTElucHV0RWxlbWVudFxuICAgIHwgSFRNTFRleHRBcmVhRWxlbWVudFxuICAgIHwgSFRNTElvblJhZGlvR3JvdXBFbGVtZW50O1xuICBwcml2YXRlIG5lc3RlZEludGVyYWN0aXZlRXJyb3JTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfbWVzc2FnZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBzaG93RGVmYXVsdENhbGVuZGFySWNvbiA9IGZhbHNlO1xuXG4gIF9uZXN0ZWRJbnRlcmFjdGl2ZUhhc0Vycm9yOiBib29sZWFuO1xuICBfbGFiZWxJZCA9IFVuaXF1ZUlkR2VuZXJhdG9yLnNjb3BlZFRvKCdraXJieS1mb3JtLWZpZWxkLWxhYmVsJykubmV4dCgpO1xuICBfZXJyb3JNZXNzYWdlSWQgPSBVbmlxdWVJZEdlbmVyYXRvci5zY29wZWRUbygna2lyYnktZm9ybS1maWVsZC1tZXNzYWdlJykubmV4dCgpO1xuICBfbWVzc2FnZUlkID0gVW5pcXVlSWRHZW5lcmF0b3Iuc2NvcGVkVG8oJ2tpcmJ5LWZvcm0tZmllbGQtbWVzc2FnZScpLm5leHQoKTtcblxuICBASW5wdXQoKSBnZXQgbGFiZWwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fbGFiZWw7XG4gIH1cblxuICBzZXQgbGFiZWwodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2xhYmVsID0gdmFsdWU7XG4gICAgdGhpcy5zZXROZXN0ZWRJbnRlcmFjdGl2ZUxhYmVsQXR0cmlidXRlcygpO1xuICB9XG5cbiAgQElucHV0KCkgZ2V0IG1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX21lc3NhZ2U7XG4gIH1cblxuICBzZXQgbWVzc2FnZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX21lc3NhZ2UgPSB2YWx1ZTtcbiAgICB0aGlzLnNldE5lc3RlZEludGVyYWN0aXZlTWVzc2FnZUF0dHJpYnV0ZXMoKTtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGRyZW4oQWZmaXhEaXJlY3RpdmUpIGFmZml4RWxlbWVudHM6IFF1ZXJ5TGlzdDxBZmZpeERpcmVjdGl2ZT47XG4gIEBDb250ZW50Q2hpbGQoSW5wdXRDb3VudGVyQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgY291bnRlcjogSW5wdXRDb3VudGVyQ29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKFJhZGlvR3JvdXBDb21wb25lbnQpIHByaXZhdGUgcmFkaW9Hcm91cENvbXBvbmVudDogUmFkaW9Hcm91cENvbXBvbmVudDtcbiAgQENvbnRlbnRDaGlsZChJbnB1dENvbXBvbmVudCkgaW5wdXRDb21wb25lbnQ6IElucHV0Q29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKERyb3Bkb3duQ29tcG9uZW50KSBkcm9wZG93bkNvbXBvbmVudDogRHJvcGRvd25Db21wb25lbnQ7XG4gIEBDb250ZW50Q2hpbGQoVGV4dGFyZWFDb21wb25lbnQpIHRleHRhcmVhQ29tcG9uZW50OiBUZXh0YXJlYUNvbXBvbmVudDtcbiAgQENvbnRlbnRDaGlsZChSYWRpb0dyb3VwQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHJpdmF0ZSByYWRpb0dyb3VwRWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBDb250ZW50Q2hpbGQoSW5wdXRDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgQENvbnRlbnRDaGlsZChEcm9wZG93bkNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIGRyb3Bkb3duOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQENvbnRlbnRDaGlsZChUZXh0YXJlYUNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIHRleHRhcmVhOiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGQoRGF0ZUlucHV0RGlyZWN0aXZlKSBkYXRlSW5wdXQ6IERhdGVJbnB1dERpcmVjdGl2ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgd2luZG93UmVmOiBXaW5kb3dSZWYsXG4gICAgcHJpdmF0ZSByZXNpemVPYnNlcnZlclNlcnZpY2U6IFJlc2l6ZU9ic2VydmVyU2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53cmFwLWNvbnRlbnQtaW4tbGFiZWwnKVxuICBnZXQgX3dyYXBDb250ZW50SW5MYWJlbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmxhYmVsICYmICghIXRoaXMuaW5wdXQgfHwgISF0aGlzLnRleHRhcmVhKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGF0Y2hMb2FkRXZlbnQoKSB7XG4gICAgLy8gRGlzcGF0Y2ggYW4gYGlvbklucHV0RGlkTG9hZGAgZXZlbnQgdG8gcmVnaXN0ZXJcbiAgICAvLyBmb3JtIGZpZWxkICsgaW5wdXQvdGV4dGFyZWEgd2l0aCBJb25pYyBpbnB1dCBzaGltc1xuICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2lvbmljLXRlYW0vaW9uaWMtZnJhbWV3b3JrL2Jsb2IvbWFzdGVyL2NvcmUvc3JjL3V0aWxzL2lucHV0LXNoaW1zL2lucHV0LXNoaW1zLnRzXG4gICAgdGhpcy53aW5kb3dSZWYubmF0aXZlV2luZG93LmRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2lvbklucHV0RGlkTG9hZCcsIHtcbiAgICAgICAgZGV0YWlsOiB0aGlzLmVsZW1lbnQsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdraXJieVJlZ2lzdGVyRm9ybUZpZWxkJylcbiAgX29uUmVnaXN0ZXJGb3JtRmllbGQoKSB7XG4gICAgdGhpcy5kaXNwYXRjaExvYWRFdmVudCgpO1xuICB9XG5cbiAgb25MYWJlbENsaWNrKCkge1xuICAgIC8vIElmIGl0cyBhIHJhZGlvIGdyb3VwIGl0cyBmb2N1cyBtZXRob2QgdGhhdCBjb250YWlucyBhZHZhbmNlZCBsb2dpY1xuICAgIHRoaXMucmFkaW9Hcm91cENvbXBvbmVudFxuICAgICAgPyB0aGlzLnJhZGlvR3JvdXBDb21wb25lbnQ/LmZvY3VzKClcbiAgICAgIDogdGhpcy5uZXN0ZWRJbnRlcmFjdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMoKSB7XG4gICAgaWYgKCF0aGlzLm5lc3RlZEludGVyYWN0aXZlRWxlbWVudCkgcmV0dXJuO1xuICAgIGlmICghKHRoaXMuaW5wdXQgfHwgdGhpcy50ZXh0YXJlYSkpIHJldHVybjtcblxuICAgIC8qXG4gICAgICogVGhpcyB0aW1lb3V0IGVuc3VyZXMgdGhhdCBhbnkgcHJldmlvdXMgbWFuaXB1bGF0aW9uIG9mIGlucHV0RWxlbWVudFxuICAgICAqIChlLmcuIHNldHRpbmcgZGlzYWJsZWQgc3RhdGUpIGhhcyBiZWVuIHN5bmNlZCB0byB0aGUgRE9NIGJlZm9yZSB0cnlpbmcgdG8gZm9jdXMuXG4gICAgICovXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1RvdWNoKSB7XG4gICAgICAgIC8vIFRyaWdnZXIgSW9uaWMncyBpbnB1dCBzaGltcyB0byBlbnN1cmUgaW5wdXQgaXMgc2Nyb2xsZWQgaW50byB2aWV3LlxuICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9pb25pYy10ZWFtL2lvbmljLWZyYW1ld29yay9ibG9iL21hc3Rlci9jb3JlL3NyYy91dGlscy9pbnB1dC1zaGltcy9oYWNrcy9zY3JvbGwtYXNzaXN0LnRzXG4gICAgICAgIGNvbnN0IHRvdWNoU3RhcnQgPSBuZXcgVG91Y2hFdmVudCgndG91Y2hzdGFydCcpO1xuICAgICAgICBjb25zdCB0b3VjaEVuZCA9IG5ldyBUb3VjaEV2ZW50KCd0b3VjaGVuZCcpO1xuICAgICAgICB0aGlzLm5lc3RlZEludGVyYWN0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KHRvdWNoU3RhcnQpO1xuICAgICAgICB0aGlzLm5lc3RlZEludGVyYWN0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KHRvdWNoRW5kKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubmVzdGVkSW50ZXJhY3RpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmlzVG91Y2ggPSB0aGlzLnBsYXRmb3JtLmlzVG91Y2goKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZUFmZml4T2Zmc2V0KCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm5lc3RlZEludGVyYWN0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5yZWdpc3Rlck5lc3RlZEludGVyYWN0aXZlKCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmlzUmVnaXN0ZXJlZCAmJiB0aGlzLmVsZW1lbnQuaXNDb25uZWN0ZWQgJiYgKHRoaXMuaW5wdXQgfHwgdGhpcy50ZXh0YXJlYSkpIHtcbiAgICAgIC8vIEhvc3QgaXMgY29ubmVjdGVkIHRvIGRvbSBhbmQgc2xvdHRlZCBpbnB1dC90ZXh0YXJlYSBpcyBwcmVzZW50OlxuICAgICAgdGhpcy5pc1JlZ2lzdGVyZWQgPSB0cnVlO1xuICAgICAgdGhpcy5kaXNwYXRjaExvYWRFdmVudCgpO1xuICAgIH1cblxuICAgIC8vIERlY2lkZSBpZiBkZWZhdWx0IGNhbGVuZGFyIGljb24gZm9yIGRhdGUgaW5wdXQgc2hvdWxkIGJlIHNob3duXG4gICAgdGhpcy5zaG93RGVmYXVsdENhbGVuZGFySWNvbiA9IHRoaXMuc2hvdWxkU2hvd0RlZmF1bHRDYWxlbmRhckljb24oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIERpc3BhdGNoIGFuIGBpb25JbnB1dERpZFVubG9hZGAgZXZlbnQgdG8gdW5yZWdpc3RlclxuICAgIC8vIGZvcm0gZmllbGQgKyBpbnB1dC90ZXh0YXJlYSBmcm9tIElvbmljIGlucHV0IHNoaW1zXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1mcmFtZXdvcmsvYmxvYi9tYXN0ZXIvY29yZS9zcmMvdXRpbHMvaW5wdXQtc2hpbXMvaW5wdXQtc2hpbXMudHNcbiAgICB0aGlzLndpbmRvd1JlZi5uYXRpdmVXaW5kb3cuZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudCgnaW9uSW5wdXREaWRVbmxvYWQnLCB7XG4gICAgICAgIGRldGFpbDogdGhpcy5lbGVtZW50LFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5hZmZpeEVsZW1lbnRzLmZvckVhY2goKGFmZml4KSA9PiB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS51bm9ic2VydmUoYWZmaXguZWwpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5uZXN0ZWRJbnRlcmFjdGl2ZUVycm9yU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3Rlck5lc3RlZEludGVyYWN0aXZlKCkge1xuICAgIHRoaXMuZ2V0TmVzdGVkSW50ZXJhY3RpdmVFbGVtZW50KCk7XG4gICAgdGhpcy5zZXROZXN0ZWRJbnRlcmFjdGl2ZUxhYmVsQXR0cmlidXRlcygpO1xuICAgIHRoaXMuc2V0TmVzdGVkSW50ZXJhY3RpdmVNZXNzYWdlQXR0cmlidXRlcygpO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9OZXN0ZWRJbnRlcmFjdGl2ZUVycm9yKCk7XG4gIH1cblxuICBwcml2YXRlIGdldE5lc3RlZEludGVyYWN0aXZlRWxlbWVudCgpIHtcbiAgICB0aGlzLm5lc3RlZEludGVyYWN0aXZlRWxlbWVudCA9XG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50IHx8XG4gICAgICB0aGlzLnRleHRhcmVhPy5uYXRpdmVFbGVtZW50IHx8XG4gICAgICB0aGlzLnJhZGlvR3JvdXBFbGVtZW50Py5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lvbi1yYWRpby1ncm91cCcpIHx8XG4gICAgICB0aGlzLmRyb3Bkb3duPy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbltraXJieS1idXR0b25dJyk7XG4gIH1cblxuICBwcml2YXRlIHNldE5lc3RlZEludGVyYWN0aXZlTWVzc2FnZUF0dHJpYnV0ZXMoKSB7XG4gICAgaWYgKCF0aGlzLm5lc3RlZEludGVyYWN0aXZlRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMubWVzc2FnZSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgIHRoaXMubmVzdGVkSW50ZXJhY3RpdmVFbGVtZW50LFxuICAgICAgICAnYXJpYS1kZXNjcmliZWRieScsXG4gICAgICAgIHRoaXMuX21lc3NhZ2VJZFxuICAgICAgKTtcblxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgIHRoaXMubmVzdGVkSW50ZXJhY3RpdmVFbGVtZW50LFxuICAgICAgICAnYXJpYS1lcnJvcm1lc3NhZ2UnLFxuICAgICAgICB0aGlzLl9lcnJvck1lc3NhZ2VJZFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5uZXN0ZWRJbnRlcmFjdGl2ZUVsZW1lbnQsICdhcmlhLWRlc2NyaWJlZGJ5Jyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLm5lc3RlZEludGVyYWN0aXZlRWxlbWVudCwgJ2FyaWEtZXJyb3JtZXNzYWdlJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXROZXN0ZWRJbnRlcmFjdGl2ZUxhYmVsQXR0cmlidXRlcygpIHtcbiAgICBpZiAoIXRoaXMubmVzdGVkSW50ZXJhY3RpdmVFbGVtZW50KSByZXR1cm47XG4gICAgaWYgKHRoaXMuX3dyYXBDb250ZW50SW5MYWJlbCkgcmV0dXJuOyAvLyByZXR1cm4gaWYgbGFiZWwgaXMgd3JhcHBpbmcgdGhlIG5lc3RlZCBpbnRlcmFjdGl2ZS4gTm8gbmVlZCBmb3IgYXJpYS1sYWJlbGxlZGJ5LlxuXG4gICAgaWYgKHRoaXMubGFiZWwpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubmVzdGVkSW50ZXJhY3RpdmVFbGVtZW50LCAnYXJpYS1sYWJlbGxlZGJ5JywgdGhpcy5fbGFiZWxJZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMubmVzdGVkSW50ZXJhY3RpdmVFbGVtZW50LCAnYXJpYS1sYWJlbGxlZGJ5Jyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb05lc3RlZEludGVyYWN0aXZlRXJyb3IoKSB7XG4gICAgY29uc3QgbmVzdGVkSW50ZXJhY3RpdmVDb21wb25lbnQgPVxuICAgICAgdGhpcy5pbnB1dENvbXBvbmVudCB8fFxuICAgICAgdGhpcy50ZXh0YXJlYUNvbXBvbmVudCB8fFxuICAgICAgdGhpcy5yYWRpb0dyb3VwQ29tcG9uZW50IHx8XG4gICAgICB0aGlzLmRyb3Bkb3duQ29tcG9uZW50O1xuXG4gICAgLy8gc2V0IGN1cnJlbnQgdmFsdWUsIHRoZW4gbGlzdGVuIGZvciBjaGFuZ2VzXG4gICAgdGhpcy5fbmVzdGVkSW50ZXJhY3RpdmVIYXNFcnJvciA9ICEhbmVzdGVkSW50ZXJhY3RpdmVDb21wb25lbnQ/Lmhhc0Vycm9yO1xuICAgIHRoaXMubmVzdGVkSW50ZXJhY3RpdmVFcnJvclN1YnNjcmlwdGlvbiA9IG5lc3RlZEludGVyYWN0aXZlQ29tcG9uZW50Py5oYXNFcnJvckNoYW5nZS5zdWJzY3JpYmUoXG4gICAgICAoaGFzRXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5fbmVzdGVkSW50ZXJhY3RpdmVIYXNFcnJvciA9IGhhc0Vycm9yO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRTaG93RGVmYXVsdENhbGVuZGFySWNvbigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5kYXRlSW5wdXQ/LnVzZU5hdGl2ZURhdGVQaWNrZXIgJiZcbiAgICAgICF0aGlzLmFmZml4RWxlbWVudHMuc29tZSgoYWZmaXgpID0+IGFmZml4LnR5cGUgPT09ICdzdWZmaXgnKSAvLyB0aGVyZSBhcmUgbm8gc3VmZml4IGVsZW1lbnRzXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQWZmaXhPZmZzZXQoKSB7XG4gICAgLy8gTWVhc3VyZSB0aGUgd2lkdGggb2YgYWxsIHNsb3R0ZWQgYWZmaXggZWxlbWVudHMsXG4gICAgLy8gYW5kIGFwcGx5IHRoZWlyIHdpZHRoICsgc3RhbmRhcmQgcGFkZGluZyB0byB0aGUgaW5wdXQgZWxlbWVudHNcbiAgICAvLyBwYWRkaW5nLCBzbyB0aGUgc3RhcnQvZW5kIG9mIHRoZSBpbnB1dCBpcyBjb3JyZWN0bHkgaW5kZW50ZWQuXG4gICAgaWYgKHRoaXMuaW5wdXQpIHtcbiAgICAgIHRoaXMuYWZmaXhFbGVtZW50cy5mb3JFYWNoKChhZmZpeCkgPT4ge1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS5vYnNlcnZlKGFmZml4LmVsLCAoZW50cnkpID0+IHtcbiAgICAgICAgICBjb25zdCBwYWRkaW5nID0gYWZmaXgudHlwZSA9PT0gJ3ByZWZpeCcgPyAncGFkZGluZy1sZWZ0JyA6ICdwYWRkaW5nLXJpZ2h0JztcbiAgICAgICAgICBjb25zdCBhZmZpeFdpZHRoID0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnR5cGUgPT09ICdkYXRlJyA/IDAgOiBlbnRyeS5jb250ZW50UmVjdC53aWR0aDtcbiAgICAgICAgICBjb25zdCBleGlzdGluZ1BhZGRpbmcgPSBwYXJzZUludChEZXNpZ25Ub2tlbkhlbHBlci5zaXplKCdzJykpO1xuXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIGAke3BhZGRpbmd9YCxcbiAgICAgICAgICAgIGAke2FmZml4V2lkdGggKyBleGlzdGluZ1BhZGRpbmd9cHhgXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IGRhdGVNYXNrID0gdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5kYXRlLW1hc2snKTtcbiAgICAgICAgICBpZiAoZGF0ZU1hc2spIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZGF0ZU1hc2ssIGAke3BhZGRpbmd9YCwgYCR7YWZmaXhXaWR0aCArIGV4aXN0aW5nUGFkZGluZ31weGApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAoX3dyYXBDb250ZW50SW5MYWJlbCkge1xuICA8bGFiZWw+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsVGV4dFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNsb3R0ZWRJbnB1dFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBhZGQgZXJyb3IgbWVzc2FnZSBpbnNpZGUgbGFiZWwgaWYgbmVzdGVkIGludGVyYXRpdmUgaXMgaW4gZXJyb3Igc3RhdGUgLS0+XG4gICAgQGlmIChfbmVzdGVkSW50ZXJhY3RpdmVIYXNFcnJvcikge1xuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1lc3NhZ2VUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgPC9sYWJlbD5cbn1cblxuPCEtLSBhZGQgbWVzc2FnZSBvdXRzaWRlIGxhYmVsIGlmIG5lc3RlZCBpbnRlcmF0aXZlIGlzIGluIHZhbGlkIHN0YXRlIC0tPlxuQGlmICghX25lc3RlZEludGVyYWN0aXZlSGFzRXJyb3IgJiYgX3dyYXBDb250ZW50SW5MYWJlbCkge1xuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWVzc2FnZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG59XG5cbkBpZiAoIV93cmFwQ29udGVudEluTGFiZWwpIHtcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNsb3R0ZWRJbnB1dFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZXNzYWdlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbn1cblxuPG5nLXRlbXBsYXRlICNtZXNzYWdlVGVtcGxhdGU+XG4gIEBpZiAobWVzc2FnZSAhPT0gdW5kZWZpbmVkIHx8IGNvdW50ZXIpIHtcbiAgICA8ZGl2IGNsYXNzPVwidGV4dHNcIj5cbiAgICAgIEBpZiAobWVzc2FnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIDxraXJieS1mb3JtLWZpZWxkLW1lc3NhZ2VcbiAgICAgICAgICBjbGFzcz1cIm1lc3NhZ2VcIlxuICAgICAgICAgIFt0ZXh0XT1cIm1lc3NhZ2VcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGl2ZV09XCJfbmVzdGVkSW50ZXJhY3RpdmVIYXNFcnJvciA/ICdwb2xpdGUnIDogbnVsbFwiXG4gICAgICAgICAgW2lkXT1cIl9uZXN0ZWRJbnRlcmFjdGl2ZUhhc0Vycm9yID8gX2Vycm9yTWVzc2FnZUlkIDogX21lc3NhZ2VJZFwiXG4gICAgICAgID48L2tpcmJ5LWZvcm0tZmllbGQtbWVzc2FnZT5cbiAgICAgIH1cbiAgICAgIEBpZiAoY291bnRlcikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlclwiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImtpcmJ5LWlucHV0LWNvdW50ZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3Nsb3R0ZWRJbnB1dFRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiYWZmaXgtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInByZWZpeCB2ZXJ0aWNhbC1hbGlnbiBzZW1pLWRhcmstdGV4dFwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2tpcmJ5LWFmZml4PSdwcmVmaXgnXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpbnB1dFtraXJieS1pbnB1dF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidGV4dGFyZWFba2lyYnktdGV4dGFyZWFdXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImtpcmJ5LXJhZGlvLWdyb3VwXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImtpcmJ5LWRyb3Bkb3duXCI+PC9uZy1jb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJzdWZmaXggdmVydGljYWwtYWxpZ24gc2VtaS1kYXJrLXRleHRcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltraXJieS1hZmZpeD0nc3VmZml4J11cIj48L25nLWNvbnRlbnQ+XG4gICAgICBAaWYgKHNob3dEZWZhdWx0Q2FsZW5kYXJJY29uKSB7XG4gICAgICAgIDxraXJieS1pY29uIG5hbWU9XCJjYWxlbmRhclwiPjwva2lyYnktaWNvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xhYmVsVGV4dFRlbXBsYXRlPlxuICBAaWYgKGxhYmVsKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGFiZWxUZW1wbGF0ZT5cbiAgQGlmIChsYWJlbCkge1xuICAgIDxsYWJlbCBjbGFzcz1cInRleHRcIiBbaWRdPVwiX2xhYmVsSWRcIiAoY2xpY2spPVwib25MYWJlbENsaWNrKClcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=","import { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport { Directive, HostListener, Inject, Input, LOCALE_ID, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport Inputmask from 'inputmask/dist/inputmask.es6.js';\nimport * as i0 from \"@angular/core\";\nexport class DecimalMaskDirective {\n set allowMinus(allowMinus) {\n this._allowMinus = allowMinus || (this.min || 0) < 0;\n }\n set disableGroupSeperator(disabled) {\n this._groupSeperatorDisabled = String(disabled) === '' || String(disabled) === 'true';\n }\n set maxlength(maxlength) {\n this._maxlength = maxlength;\n const maxlengthValue = parseInt('9'.repeat(maxlength));\n this.max = this.getMax(maxlengthValue);\n this.min = this.getMin(maxlengthValue);\n }\n onTouched() {\n this._onTouched();\n }\n constructor(elementRef, locale) {\n this.elementRef = elementRef;\n this.locale = locale;\n this.precision = 2;\n this.setMaxOnOverflow = false;\n this.alignment = 'right';\n this.padPrecisionDigits = false;\n this.groupSeparator = getLocaleNumberSymbol(this.locale, NumberSymbol.Group);\n this.radixPoint = getLocaleNumberSymbol(this.locale, NumberSymbol.Decimal);\n this._allowMinus = false;\n this._onChange = (_) => { };\n this._onTouched = () => { };\n }\n ngOnInit() {\n // Set type=\"text\", because functionality like 'setSelectionRange' are not supported on type=\"number\"\n this.elementRef.nativeElement.setAttribute('type', 'text');\n // Remove maxlength as this is handled by the mask\n this.elementRef.nativeElement.removeAttribute('maxlength');\n this.initMask();\n }\n writeValue(val) {\n if (!this.inputmask)\n return;\n const formattedValue = String(val).replace('.', this.radixPoint);\n this.inputmask.setValue(formattedValue);\n }\n registerOnChange(onChange) {\n this._onChange = onChange;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n setDisabledState(isDisabled) {\n this.elementRef.nativeElement.disabled = isDisabled;\n }\n initMask() {\n new Inputmask('decimal', {\n groupSeparator: this._groupSeperatorDisabled ? '' : this.groupSeparator,\n radixPoint: this.radixPoint,\n digits: this._maxlength ? 0 : this.precision,\n digitsOptional: !this.padPrecisionDigits,\n min: this.min,\n max: this.max,\n allowMinus: this._allowMinus,\n negationSymbol: {\n front: getLocaleNumberSymbol(this.locale, NumberSymbol.MinusSign),\n back: '',\n },\n SetMaxOnOverflow: this.setMaxOnOverflow,\n showMaskOnFocus: false,\n showMaskOnHover: false,\n placeholder: this.padPrecisionDigits ? undefined : '',\n rightAlign: this.alignment === 'right',\n onBeforeWrite: () => {\n if (!this.inputmask)\n return;\n const unmaskedValue = this.inputmask.unmaskedvalue();\n this._onChange(unmaskedValue.replace(this.radixPoint, '.'));\n },\n }).mask(this.elementRef.nativeElement);\n this.inputmask = this.elementRef.nativeElement.inputmask;\n }\n getMax(maxlengthValue) {\n return this.max === undefined ? maxlengthValue : Math.min(this.max, maxlengthValue);\n }\n getMin(maxlengthValue) {\n if (!this.allowMinus)\n return;\n maxlengthValue = -Math.abs(maxlengthValue);\n return this.min === undefined ? maxlengthValue : -Math.abs(Math.max(this.min, maxlengthValue));\n }\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: DecimalMaskDirective, deps: [{ token: i0.ElementRef }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Directive }); }\n /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.13\", type: DecimalMaskDirective, isStandalone: true, selector: \"[kirby-decimal-mask]\", inputs: { min: \"min\", max: \"max\", precision: \"precision\", setMaxOnOverflow: \"setMaxOnOverflow\", alignment: \"alignment\", padPrecisionDigits: \"padPrecisionDigits\", allowMinus: \"allowMinus\", disableGroupSeperator: \"disableGroupSeperator\", maxlength: \"maxlength\" }, host: { listeners: { \"blur\": \"onTouched()\" } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: DecimalMaskDirective,\n },\n ], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: DecimalMaskDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line\n selector: '[kirby-decimal-mask]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: DecimalMaskDirective,\n },\n ],\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }], propDecorators: { min: [{\n type: Input\n }], max: [{\n type: Input\n }], precision: [{\n type: Input\n }], setMaxOnOverflow: [{\n type: Input\n }], alignment: [{\n type: Input\n }], padPrecisionDigits: [{\n type: Input\n }], allowMinus: [{\n type: Input\n }], disableGroupSeperator: [{\n type: Input\n }], maxlength: [{\n type: Input\n }], onTouched: [{\n type: HostListener,\n args: ['blur']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1tYXNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Zvcm0tZmllbGQvc3JjL2RpcmVjdGl2ZXMvZGVjaW1hbC1tYXNrL2RlY2ltYWwtbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLFNBQVMsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFrQnhELE1BQU0sT0FBTyxvQkFBb0I7SUFRL0IsSUFBYSxVQUFVLENBQUMsVUFBbUI7UUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBYSxxQkFBcUIsQ0FBQyxRQUFnQjtRQUNqRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssTUFBTSxDQUFDO0lBQ3hGLENBQUM7SUFFRCxJQUFhLFNBQVMsQ0FBQyxTQUFpQjtRQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUU1QixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsR0FBRyxHQUFH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Q3JCLFNBQVM7c0hBMUNSLG9CQUFvQix5WEFScEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsb0JBQW9CO2FBQ2xDO1NBQ0Y7OzRGQUVVLG9CQUFvQjtrQkFYaEMsU0FBUzttQkFBQztvQkFDVCwyQkFBMkI7b0JBQzNCLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLHNCQUFzQjt5QkFDbEM7cUJBQ0Y7aUJBQ0Y7OzBCQTJDSSxNQUFNOzJCQUFDLFNBQVM7O3NCQXpDbEIsS0FBSzs7c0JBQ0wsS0FBSzs7c0JBQ0wsS0FBSzs7c0JBQ0wsS0FBSzs7c0JBQ0wsS0FBSzs7c0JBQ0wsS0FBSzs7c0JBRUwsS0FBSzs7c0JBSUwsS0FBSzs7c0JBSUwsS0FBSzs7c0JBbUJMLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldExvY2FsZU51bWJlclN5bWJvbCwgTnVtYmVyU3ltYm9sIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBMT0NBTEVfSUQsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgSW5wdXRtYXNrIGZyb20gJ2lucHV0bWFzay9kaXN0L2lucHV0bWFzay5lczYuanMnO1xuXG5pbnRlcmZhY2UgSW5wdXRNYXNrIHtcbiAgdW5tYXNrZWR2YWx1ZTogKCkgPT4gc3RyaW5nO1xuICBzZXRWYWx1ZTogKHZhbDogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gIHNlbGVjdG9yOiAnW2tpcmJ5LWRlY2ltYWwtbWFza10nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IERlY2ltYWxNYXNrRGlyZWN0aXZlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERlY2ltYWxNYXNrRGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG1pbjogbnVtYmVyO1xuICBASW5wdXQoKSBtYXg6IG51bWJlcjtcbiAgQElucHV0KCkgcHJlY2lzaW9uID0gMjtcbiAgQElucHV0KCkgc2V0TWF4T25PdmVyZmxvdyA9IGZhbHNlO1xuICBASW5wdXQoKSBhbGlnbm1lbnQ6ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnO1xuICBASW5wdXQoKSBwYWRQcmVjaXNpb25EaWdpdHM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgYWxsb3dNaW51cyhhbGxvd01pbnVzOiBib29sZWFuKSB7XG4gICAgdGhpcy5fYWxsb3dNaW51cyA9IGFsbG93TWludXMgfHwgKHRoaXMubWluIHx8IDApIDwgMDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlR3JvdXBTZXBlcmF0b3IoZGlzYWJsZWQ6IHN0cmluZykge1xuICAgIHRoaXMuX2dyb3VwU2VwZXJhdG9yRGlzYWJsZWQgPSBTdHJpbmcoZGlzYWJsZWQpID09PSAnJyB8fCBTdHJpbmcoZGlzYWJsZWQpID09PSAndHJ1ZSc7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgbWF4bGVuZ3RoKG1heGxlbmd0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5fbWF4bGVuZ3RoID0gbWF4bGVuZ3RoO1xuXG4gICAgY29uc3QgbWF4bGVuZ3RoVmFsdWUgPSBwYXJzZUludCgnOScucmVwZWF0KG1heGxlbmd0aCkpO1xuICAgIHRoaXMubWF4ID0gdGhpcy5nZXRNYXgobWF4bGVuZ3RoVmFsdWUpO1xuICAgIHRoaXMubWluID0gdGhpcy5nZXRNaW4obWF4bGVuZ3RoVmFsdWUpO1xuICB9XG5cbiAgZ3JvdXBTZXBhcmF0b3IgPSBnZXRMb2NhbGVOdW1iZXJTeW1ib2wodGhpcy5sb2NhbGUsIE51bWJlclN5bWJvbC5Hcm91cCk7XG4gIHJhZGl4UG9pbnQgPSBnZXRMb2NhbGVOdW1iZXJTeW1ib2wodGhpcy5sb2NhbGUsIE51bWJlclN5bWJvbC5EZWNpbWFsKTtcbiAgaW5wdXRtYXNrOiBJbnB1dE1hc2s7XG5cbiAgX2FsbG93TWludXMgPSBmYWxzZTtcbiAgX21heGxlbmd0aDogbnVtYmVyO1xuICBfZ3JvdXBTZXBlcmF0b3JEaXNhYmxlZDogYm9vbGVhbjtcblxuICBfb25DaGFuZ2UgPSAoXzogc3RyaW5nKSA9PiB7fTtcbiAgX29uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBvblRvdWNoZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgbG9jYWxlOiBzdHJpbmdcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFNldCB0eXBlPVwidGV4dFwiLCBiZWNhdXNlIGZ1bmN0aW9uYWxpdHkgbGlrZSAnc2V0U2VsZWN0aW9uUmFuZ2UnIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHR5cGU9XCJudW1iZXJcIlxuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0Jyk7XG5cbiAgICAvLyBSZW1vdmUgbWF4bGVuZ3RoIGFzIHRoaXMgaXMgaGFuZGxlZCBieSB0aGUgbWFza1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnbWF4bGVuZ3RoJyk7XG5cbiAgICB0aGlzLmluaXRNYXNrKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlucHV0bWFzaykgcmV0dXJuO1xuICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gU3RyaW5nKHZhbCkucmVwbGFjZSgnLicsIHRoaXMucmFkaXhQb2ludCk7XG4gICAgdGhpcy5pbnB1dG1hc2suc2V0VmFsdWUoZm9ybWF0dGVkVmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwcml2YXRlIGluaXRNYXNrKCk6IHZvaWQge1xuICAgIG5ldyBJbnB1dG1hc2soJ2RlY2ltYWwnLCB7XG4gICAgICBncm91cFNlcGFyYXRvcjogdGhpcy5fZ3JvdXBTZXBlcmF0b3JEaXNhYmxlZCA/ICcnIDogdGhpcy5ncm91cFNlcGFyYXRvcixcbiAgICAgIHJhZGl4UG9pbnQ6IHRoaXMucmFkaXhQb2ludCxcbiAgICAgIGRpZ2l0czogdGhpcy5fbWF4bGVuZ3RoID8gMCA6IHRoaXMucHJlY2lzaW9uLFxuICAgICAgZGlnaXRzT3B0aW9uYWw6ICF0aGlzLnBhZFByZWNpc2lvbkRpZ2l0cyxcbiAgICAgIG1pbjogdGhpcy5taW4sXG4gICAgICBtYXg6IHRoaXMubWF4LFxuICAgICAgYWxsb3dNaW51czogdGhpcy5fYWxsb3dNaW51cyxcbiAgICAgIG5lZ2F0aW9uU3ltYm9sOiB7XG4gICAgICAgIGZyb250OiBnZXRMb2NhbGVOdW1iZXJTeW1ib2wodGhpcy5sb2NhbGUsIE51bWJlclN5bWJvbC5NaW51c1NpZ24pLFxuICAgICAgICBiYWNrOiAnJyxcbiAgICAgIH0sXG4gICAgICBTZXRNYXhPbk92ZXJmbG93OiB0aGlzLnNldE1heE9uT3ZlcmZsb3csXG4gICAgICBzaG93TWFza09uRm9jdXM6IGZhbHNlLFxuICAgICAgc2hvd01hc2tPbkhvdmVyOiBmYWxzZSxcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnBhZFByZWNpc2lvbkRpZ2l0cyA/IHVuZGVmaW5lZCA6ICcnLFxuICAgICAgcmlnaHRBbGlnbjogdGhpcy5hbGlnbm1lbnQgPT09ICdyaWdodCcsXG4gICAgICBvbkJlZm9yZVdyaXRlOiAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pbnB1dG1hc2spIHJldHVybjtcbiAgICAgICAgY29uc3QgdW5tYXNrZWRWYWx1ZSA9IHRoaXMuaW5wdXRtYXNrLnVubWFza2VkdmFsdWUoKTtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UodW5tYXNrZWRWYWx1ZS5yZXBsYWNlKHRoaXMucmFkaXhQb2ludCwgJy4nKSk7XG4gICAgICB9LFxuICAgIH0pLm1hc2sodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuaW5wdXRtYXNrID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5wdXRtYXNrO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNYXgobWF4bGVuZ3RoVmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubWF4ID09PSB1bmRlZmluZWQgPyBtYXhsZW5ndGhWYWx1ZSA6IE1hdGgubWluKHRoaXMubWF4LCBtYXhsZW5ndGhWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldE1pbihtYXhsZW5ndGhWYWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMuYWxsb3dNaW51cykgcmV0dXJuO1xuICAgIG1heGxlbmd0aFZhbHVlID0gLU1hdGguYWJzKG1heGxlbmd0aFZhbHVlKTtcbiAgICByZXR1cm4gdGhpcy5taW4gPT09IHVuZGVmaW5lZCA/IG1heGxlbmd0aFZhbHVlIDogLU1hdGguYWJzKE1hdGgubWF4KHRoaXMubWluLCBtYXhsZW5ndGhWYWx1ZSkpO1xuICB9XG59XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { FormFieldMessageComponent } from './form-field-message/form-field-message.component';\nimport { FormFieldComponent } from './form-field.component';\nimport { InputCounterComponent } from './input-counter/input-counter.component';\nimport { DecimalMaskDirective } from './directives/decimal-mask/decimal-mask.directive';\nimport { AffixDirective } from './directives/affix/affix.directive';\nimport * as i0 from \"@angular/core\";\nconst imports = [FormFieldComponent, FormFieldMessageComponent, InputCounterComponent];\nexport class FormFieldModule {\n /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: FormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.13\", ngImport: i0, type: FormFieldModule, imports: [CommonModule, DecimalMaskDirective, IconModule, AffixDirective, FormFieldComponent, FormFieldMessageComponent, InputCounterComponent], exports: [FormFieldComponent, FormFieldMessageComponent, InputCounterComponent, DecimalMaskDirective, AffixDirective] }); }\n /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: FormFieldModule, imports: [CommonModule, IconModule, FormFieldComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.13\", ngImport: i0, type: FormFieldModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, DecimalMaskDirective, IconModule, AffixDirective, ...imports],\n exports: [...imports, DecimalMaskDirective, AffixDirective],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9mb3JtLWZpZWxkL3NyYy9mb3JtLWZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUVwRSxNQUFNLE9BQU8sR0FBRyxDQUFDLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLHFCQUFxQixDQUFDLENBQUM7QUFNdkYsTUFBTSxPQUFPLGVBQWU7a0lBQWYsZUFBZTttSUFBZixlQUFlLFlBSGhCLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUh6RCxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSxxQkFBcUIsYUFBcEUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUscUJBQXFCLEVBSTdELG9CQUFvQixFQUFFLGNBQWM7bUlBRS9DLGVBQWUsWUFIaEIsWUFBWSxFQUF3QixVQUFVLEVBSHpDLGtCQUFrQjs7NEZBTXRCLGVBQWU7a0JBSjNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLENBQUM7b0JBQ3JGLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGNBQWMsQ0FBQztpQkFDNUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEljb25Nb2R1bGUgfSBmcm9tICdAa2lyYnlkZXNpZ24vZGVzaWduc3lzdGVtL2ljb24nO1xuaW1wb3J0IHsgRm9ybUZpZWxkTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1maWVsZC1tZXNzYWdlL2Zvcm0tZmllbGQtbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dENvdW50ZXJDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWNvdW50ZXIvaW5wdXQtY291bnRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVjaW1hbE1hc2tEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGVjaW1hbC1tYXNrL2RlY2ltYWwtbWFzay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQWZmaXhEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYWZmaXgvYWZmaXguZGlyZWN0aXZlJztcblxuY29uc3QgaW1wb3J0cyA9IFtGb3JtRmllbGRDb21wb25lbnQsIEZvcm1GaWVsZE1lc3NhZ2VDb21wb25lbnQsIElucHV0Q291bnRlckNvbXBvbmVudF07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERlY2ltYWxNYXNrRGlyZWN0aXZlLCBJY29uTW9kdWxlLCBBZmZpeERpcmVjdGl2ZSwgLi4uaW1wb3J0c10sXG4gIGV4cG9ydHM6IFsuLi5pbXBvcnRzLCBEZWNpbWFsTWFza0RpcmVjdGl2ZSwgQWZmaXhEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2lyYnlkZXNpZ24tZGVzaWduc3lzdGVtLWZvcm0tZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9mb3JtLWZpZWxkL3NyYy9raXJieWRlc2lnbi1kZXNpZ25zeXN0ZW0tZm9ybS1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19"],"names":["i1.DateInputDirective","i1","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kirbydesign-designsystem-form-field.mjs","sources":["../../form-field/src/directives/affix/affix.directive.ts","../../form-field/src/directives/date/date-input.directive.ts","../../form-field/src/form-field-message/form-field-message.component.ts","../../form-field/src/form-field-message/form-field-message.component.html","../../form-field/src/input-counter/input-counter.component.ts","../../form-field/src/input-counter/input-counter.component.html","../../form-field/src/input/input.component.ts","../../form-field/src/textarea/textarea.component.ts","../../form-field/src/textarea/textarea.component.html","../../form-field/src/form-field.component.ts","../../form-field/src/form-field.component.html","../../form-field/src/directives/decimal-mask/decimal-mask.directive.ts","../../form-field/src/form-field.module.ts","../../form-field/src/kirbydesign-designsystem-form-field.ts"],"sourcesContent":["import { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line\n selector: '[kirby-affix]',\n})\nexport class AffixDirective {\n @Input('kirby-affix') type: 'prefix' | 'suffix';\n constructor(public el: ElementRef) {}\n}\n","import { FormatWidth, getLocaleDateFormat } from '@angular/common';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n LOCALE_ID,\n Renderer2,\n} from '@angular/core';\nimport Inputmask from 'inputmask/dist/inputmask.es6.js';\n\n@Directive({})\nexport class DateInputDirective implements AfterViewInit {\n @HostListener('input')\n onInput() {\n if (!this.isDateInput) return;\n\n if (this.enableInputMask) {\n this.updateMask(this.elementRef.nativeElement.value);\n }\n }\n\n @Input() prefillYear = false;\n @Input() useNativeDatePicker = false;\n\n private maskingElement: HTMLElement;\n\n /**\n * `isDateInput` is used to avoid removing the type attribute on the input element and calling updateMask()\n * when the directive is not used on a date input.\n * This is needed for the standalone component 'InputComponent', which includes the directive\n * using the `hostDirectives` component decorator prop. Angular ignores the selector of directives\n * applied in the `hostDirectives` property which effectively applies the directive to all kirby-inputs, not only date inputs.\n * This check prevents the directive from executing it's masking on non-date inputs.\n * See: https://angular.io/guide/directive-composition-api\n */\n private isDateInput = false;\n\n /**\n * Inputmask should be enabled exclusively when _not_ using the platform\n * native date picker.\n *\n * `enableInputMask` should be ignored if the type attribute of the `<input>`\n * element is different from 'date' and/or the platform native date picker is\n * explicitly enabled.\n *\n * @private\n * @memberof DateInputDirective\n */\n private enableInputMask = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Inject(LOCALE_ID) private locale: string\n ) {\n this.isDateInput = this.elementRef.nativeElement.type === 'date';\n if (this.isDateInput) {\n // Remove type to avoid user-agent specific behaviour for [type=\"date\"]\n // Has to be done in constructor to avoid browser behavior kicking in\n this.elementRef.nativeElement.removeAttribute('type');\n }\n }\n\n ngAfterViewInit(): void {\n if (!this.isDateInput) return;\n\n this.enableInputMask = !this.useNativeDatePicker;\n\n // This case is identical to date input fields _before_ native date picker\n // option was introduced\n if (this.enableInputMask) {\n this.initMask();\n }\n\n if (this.useNativeDatePicker) {\n this.elementRef.nativeElement.setAttribute('type', 'date');\n }\n }\n\n private initMask(): void {\n const inputFormat = this.getInputFormat();\n const placeholder = this.getPlaceholder(inputFormat);\n\n // Set initial placeholder ex. dd/mm/yyyy\n this.renderer.setAttribute(this.elementRef.nativeElement, 'placeholder', placeholder);\n\n // Init InputMask\n new Inputmask('datetime', {\n inputFormat,\n placeholder,\n prefillYear: this.prefillYear,\n }).mask(this.elementRef.nativeElement);\n\n // Append input overlay, so it's possible to style typed date differntly than the date-mask\n this.appendMaskingElement();\n }\n\n // Keeps order and seperator from speficied locale\n private getInputFormat(): string {\n const localeDateFormat = getLocaleDateFormat(this.locale, FormatWidth.Short);\n return localeDateFormat\n .toLowerCase()\n .replace(/d+/, 'dd')\n .replace(/m+/, 'mm')\n .replace(/y+/, 'yyyy');\n }\n\n private getPlaceholder(inputFormat: string): string {\n return this.locale === 'da' ? inputFormat.split('y').join('å') : inputFormat;\n }\n\n private appendMaskingElement(): void {\n const wrapper = this.wrapElement(this.elementRef.nativeElement);\n this.renderer.addClass(wrapper, 'date-mask-wrapper');\n\n this.maskingElement = this.renderer.createElement('div');\n this.renderer.appendChild(wrapper, this.maskingElement);\n\n this.renderer.addClass(this.maskingElement, 'date-mask');\n }\n\n private wrapElement(element: HTMLElement): HTMLElement {\n const wrapper = this.renderer.createElement('div');\n const parent = element.parentElement;\n this.renderer.insertBefore(parent, wrapper, element);\n this.renderer.appendChild(wrapper, element);\n return wrapper;\n }\n\n private updateMask(value: string): void {\n if (!this.maskingElement) return;\n const lastNumber = value.match(/.*?(\\d)[^\\d]*$/); // get last number in string\n this.maskingElement.innerHTML = value\n ? value.slice(0, value.lastIndexOf(lastNumber[1]) + 1)\n : '';\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kirby-form-field-message',\n styleUrls: ['./form-field-message.component.scss'],\n templateUrl: './form-field-message.component.html',\n})\nexport class FormFieldMessageComponent {\n @Input() text: string;\n @Input() position: 'left' | 'right' = 'left';\n}\n","{{ text }}\n<ng-content></ng-content>\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { debounceTime, filter, Subscription, tap } from 'rxjs';\n\nimport { TranslationService } from '@kirbydesign/designsystem/shared';\nimport { InputComponent } from '../input/input.component';\n\nimport { FormFieldMessageComponent } from '../form-field-message/form-field-message.component';\nimport { TextareaComponent } from './../textarea/textarea.component';\n\n@Component({\n selector: 'kirby-input-counter',\n templateUrl: './input-counter.component.html',\n imports: [FormFieldMessageComponent],\n})\nexport class InputCounterComponent implements OnInit, OnDestroy {\n @Input() listenTo: InputComponent | TextareaComponent;\n length: number;\n maxlength: number | undefined;\n private _inputChangeSubscription: Subscription;\n textToAnnounce: string;\n lastAnnouncedLength: number;\n skipNextAnnouncement = false;\n\n get text(): string {\n if (this.length === undefined) {\n return undefined;\n }\n const ofMaxlength = this.maxlength ? `/${this.maxlength}` : '';\n return `${this.length}${ofMaxlength}`;\n }\n\n constructor(private translations: TranslationService) {}\n\n ngOnInit(): void {\n if (this.listenTo) {\n this.length = this.listenTo.value ? this.listenTo.value.length : 0;\n this.skipNextAnnouncement = this.length > 0; //If there is already text in the input, skip the first announcement so we don't announce on refresh or prefilled text fields.\n this.maxlength = this.maxlength = this.listenTo.maxlength\n ? +this.listenTo.maxlength\n : undefined;\n this._inputChangeSubscription = this.listenTo.kirbyChange\n .pipe(\n tap((value) => (this.length = value?.length || 0)),\n filter(() => this.skipAnnouncement()),\n debounceTime(1000)\n )\n .subscribe(() => {\n this.announceText();\n });\n }\n }\n\n private skipAnnouncement(): boolean {\n if (this.skipNextAnnouncement) {\n this.skipNextAnnouncement = false;\n return false;\n }\n return true;\n }\n\n ngOnDestroy(): void {\n this._inputChangeSubscription?.unsubscribe();\n }\n\n announceText(): void {\n const characters = this.translations.get('characters');\n const entered = this.translations.get('entered');\n if (this.maxlength === undefined) {\n this.textToAnnounce = `${characters} ${this.length} ${entered}`;\n } else {\n const outOf = this.translations.get('outOf');\n this.textToAnnounce = `${characters} ${this.length} ${outOf} ${this.maxlength} ${entered}`;\n }\n }\n}\n","<kirby-form-field-message [text]=\"text\"></kirby-form-field-message>\n<div class=\"kirby-visually-hidden\" aria-live=\"polite\">{{ textToAnnounce }}</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { FormFieldControl } from '@kirbydesign/designsystem/types';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateInputDirective } from '../directives/date/date-input.directive';\n\nexport enum InputSize {\n medium = 'md',\n large = 'lg',\n}\n\n@Component({\n hostDirectives: [\n {\n directive: DateInputDirective,\n inputs: ['prefillYear', 'useNativeDatePicker'],\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'input[kirby-input]',\n styleUrls: ['./input.component.scss'],\n template: '',\n})\nexport class InputComponent implements OnChanges, OnInit, FormFieldControl {\n kirbyChange = new EventEmitter<string>();\n private _hasError: boolean = false;\n\n @Input() set type(value: string) {\n const mappedValue = InputComponent.typeToInputmodeMap[value];\n if (mappedValue && !this.inputmode) {\n this.inputmode = mappedValue;\n }\n }\n\n @HostBinding('class')\n @Input()\n size: InputSize | `${InputSize}` = InputSize.large;\n\n /**\n * Removes padding, width, rounded borders and drop-shadow when set to `true`.\n */\n @HostBinding('class.borderless')\n @Input()\n borderless: boolean;\n\n @HostBinding('attr.aria-invalid')\n @HostBinding('class.error')\n @Input()\n get hasError(): boolean {\n return this._hasError;\n }\n\n set hasError(value: boolean) {\n if (this._hasError !== value) {\n this._hasError = value;\n this.hasErrorChange.emit(this._hasError);\n }\n }\n\n @HostBinding('attr.autocomplete')\n @Input()\n autocomplete: 'on' | 'off' = 'off';\n\n @HostBinding('attr.autocorrect')\n @Input()\n autocorrect: 'on' | 'off' = 'off';\n\n @HostBinding('attr.value')\n @Input()\n value: string;\n\n @HostBinding('attr.maxlength')\n @Input()\n maxlength: number;\n\n @HostBinding('attr.inputmode')\n @Input()\n inputmode: string;\n\n @Output() hasErrorChange = new EventEmitter<boolean>();\n\n constructor(\n private elementRef: ElementRef<HTMLInputElement>,\n @Optional() @Inject(NG_VALUE_ACCESSOR) private builtInValueAccessors: ControlValueAccessor[]\n ) {\n this.extendBuiltinValueAccessor();\n }\n\n ngOnInit(): void {\n // The native input value is emitted here to make sure that\n // the InputCounterComponent receives the value onInit,\n // when [(ngModel)] is used on kirby-input.\n setTimeout(() => {\n const inputValue = this.elementRef.nativeElement.value;\n if (inputValue) {\n this.kirbyChange.emit(inputValue);\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\n }\n\n extendBuiltinValueAccessor() {\n if (this.builtInValueAccessors) {\n this.builtInValueAccessors.forEach((accessor) => {\n const originalWriteValue = accessor.writeValue?.bind(accessor);\n accessor.writeValue = (value: any) => {\n if (originalWriteValue) {\n originalWriteValue(value);\n }\n this.kirbyChange.emit(value);\n };\n });\n }\n }\n\n private static typeToInputmodeMap = {\n number: 'decimal',\n search: 'search',\n };\n\n @HostListener('keyup', ['$event.target.value'])\n _onKeyUp(value: string) {\n this.kirbyChange.emit(value);\n }\n\n @HostListener('paste', ['$event.target'])\n @HostListener('cut', ['$event.target'])\n _onCutPaste(target: HTMLInputElement) {\n //Value of input element is updated after cut/paste:\n setTimeout(() => this.kirbyChange.emit(target.value));\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FormFieldControl } from '@kirbydesign/designsystem/types';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'textarea[kirby-textarea]',\n styleUrls: ['./textarea.component.scss'],\n templateUrl: './textarea.component.html',\n})\nexport class TextareaComponent implements OnChanges, FormFieldControl, OnInit {\n kirbyChange = new EventEmitter<string>();\n private _hasError: boolean = false;\n\n @Input() value: string;\n\n /**\n * Removes padding, width, rounded borders and drop-shadow when set to `true`.\n */\n @HostBinding('class.borderless')\n @Input()\n borderless: boolean;\n\n @HostBinding('attr.aria-invalid')\n @HostBinding('class.error')\n @Input()\n get hasError(): boolean {\n return this._hasError;\n }\n\n set hasError(value: boolean) {\n if (this._hasError !== value) {\n this._hasError = value;\n this.hasErrorChange.emit(this._hasError);\n }\n }\n\n @HostBinding('attr.autocomplete')\n @Input()\n autocomplete: 'on' | 'off' = 'off';\n\n @HostBinding('attr.autocorrect')\n @Input()\n autocorrect: 'on' | 'off' = 'off';\n\n @HostBinding('attr.maxlength')\n @Input()\n maxlength: number;\n\n @Output() hasErrorChange = new EventEmitter<boolean>();\n\n constructor(\n private elementRef: ElementRef<HTMLTextAreaElement>,\n @Optional() @Inject(NG_VALUE_ACCESSOR) private builtInValueAccessors: ControlValueAccessor[]\n ) {\n this.extendBuiltinValueAccessor();\n }\n\n ngOnInit(): void {\n // The native input value is emitted here to make sure that\n // the InputCounterComponent receives the value onInit,\n // when [(ngModel)] is used on kirby-textarea.\n setTimeout(() => {\n const inputValue = this.elementRef.nativeElement.value;\n if (inputValue) {\n this.kirbyChange.emit(inputValue);\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\n }\n\n extendBuiltinValueAccessor() {\n if (this.builtInValueAccessors) {\n this.builtInValueAccessors.forEach((accessor) => {\n const originalWriteValue = accessor.writeValue?.bind(accessor);\n accessor.writeValue = (value: any) => {\n if (originalWriteValue) {\n originalWriteValue(value);\n }\n this.kirbyChange.emit(value);\n };\n });\n }\n }\n\n @HostListener('keyup', ['$event.target.value'])\n _onKeyUp(value: string) {\n this.kirbyChange.emit(value);\n }\n\n @HostListener('paste', ['$event.target'])\n @HostListener('cut', ['$event.target'])\n _onCutPaste(target: HTMLInputElement) {\n //Value of textarea element is updated after cut/paste:\n setTimeout(() => this.kirbyChange.emit(target.value));\n }\n}\n","@if (!value) {\n <ng-content></ng-content>\n}\n<!-- prettier-ignore -->\n@if (value) {{{value}}}\n","import {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n} from '@angular/core';\nimport {\n DesignTokenHelper,\n PlatformService,\n UniqueIdGenerator,\n} from '@kirbydesign/designsystem/helpers';\nimport { RadioGroupComponent } from '@kirbydesign/designsystem/radio';\nimport { ResizeObserverService } from '@kirbydesign/designsystem/shared';\nimport { WindowRef } from '@kirbydesign/designsystem/types';\nimport { Subscription } from 'rxjs';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { IconComponent } from '@kirbydesign/designsystem/icon';\nimport { DropdownComponent } from '@kirbydesign/designsystem/dropdown';\nimport { AffixDirective } from './directives/affix/affix.directive';\nimport { DateInputDirective } from './directives/date/date-input.directive';\nimport { InputCounterComponent } from './input-counter/input-counter.component';\nimport { InputComponent } from './input/input.component';\n\nimport { TextareaComponent } from './textarea/textarea.component';\nimport { FormFieldMessageComponent } from './form-field-message/form-field-message.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kirby-form-field',\n styleUrls: ['./form-field.component.scss'],\n templateUrl: './form-field.component.html',\n imports: [NgTemplateOutlet, FormFieldMessageComponent, IconComponent],\n})\nexport class FormFieldComponent\n implements AfterContentChecked, AfterContentInit, OnInit, OnDestroy\n{\n private isRegistered = false;\n private element: HTMLElement;\n private isTouch: boolean;\n private nestedInteractiveElement:\n | HTMLButtonElement\n | HTMLInputElement\n | HTMLTextAreaElement\n | HTMLIonRadioGroupElement;\n private nestedInteractiveErrorSubscription: Subscription;\n private _message: string | null | undefined;\n private _label: string | undefined;\n\n showDefaultCalendarIcon = false;\n\n _nestedInteractiveHasError: boolean;\n _labelId = UniqueIdGenerator.scopedTo('kirby-form-field-label').next();\n _errorMessageId = UniqueIdGenerator.scopedTo('kirby-form-field-message').next();\n _messageId = UniqueIdGenerator.scopedTo('kirby-form-field-message').next();\n\n @Input() get label(): string | undefined {\n return this._label;\n }\n\n set label(value: string | undefined) {\n this._label = value;\n this.setNestedInteractiveLabelAttributes();\n }\n\n @Input() get message(): string | null | undefined {\n return this._message;\n }\n\n set message(value: string | null | undefined) {\n this._message = value;\n this.setNestedInteractiveMessageAttributes();\n }\n\n @ContentChildren(AffixDirective) affixElements: QueryList<AffixDirective>;\n @ContentChild(InputCounterComponent, { static: false }) counter: InputCounterComponent;\n @ContentChild(RadioGroupComponent) private radioGroupComponent: RadioGroupComponent;\n @ContentChild(InputComponent) inputComponent: InputComponent;\n @ContentChild(DropdownComponent) dropdownComponent: DropdownComponent;\n @ContentChild(TextareaComponent) textareaComponent: TextareaComponent;\n @ContentChild(RadioGroupComponent, { read: ElementRef })\n private radioGroupElement: ElementRef<HTMLElement>;\n @ContentChild(InputComponent, { read: ElementRef }) input: ElementRef<HTMLInputElement>;\n @ContentChild(DropdownComponent, { read: ElementRef }) dropdown: ElementRef<HTMLElement>;\n @ContentChild(TextareaComponent, { read: ElementRef }) textarea: ElementRef<HTMLTextAreaElement>;\n\n @ContentChild(DateInputDirective) dateInput: DateInputDirective;\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private platform: PlatformService,\n private renderer: Renderer2,\n private windowRef: WindowRef,\n private resizeObserverService: ResizeObserverService,\n private cdr: ChangeDetectorRef\n ) {\n this.element = elementRef.nativeElement;\n }\n\n @HostBinding('class.wrap-content-in-label')\n get _wrapContentInLabel(): boolean {\n return !!this.label && (!!this.input || !!this.textarea);\n }\n\n private dispatchLoadEvent() {\n // Dispatch an `ionInputDidLoad` event to register\n // form field + input/textarea with Ionic input shims\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/input-shims.ts\n this.windowRef.nativeWindow.document.dispatchEvent(\n new CustomEvent('ionInputDidLoad', {\n detail: this.element,\n })\n );\n }\n\n @HostListener('kirbyRegisterFormField')\n _onRegisterFormField() {\n this.dispatchLoadEvent();\n }\n\n onLabelClick() {\n // If its a radio group its focus method that contains advanced logic\n this.radioGroupComponent\n ? this.radioGroupComponent?.focus()\n : this.nestedInteractiveElement?.focus();\n }\n\n public focus() {\n if (!this.nestedInteractiveElement) return;\n if (!(this.input || this.textarea)) return;\n\n /*\n * This timeout ensures that any previous manipulation of inputElement\n * (e.g. setting disabled state) has been synced to the DOM before trying to focus.\n */\n setTimeout(() => {\n if (this.isTouch) {\n // Trigger Ionic's input shims to ensure input is scrolled into view.\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/hacks/scroll-assist.ts\n const touchStart = new TouchEvent('touchstart');\n const touchEnd = new TouchEvent('touchend');\n this.nestedInteractiveElement.dispatchEvent(touchStart);\n this.nestedInteractiveElement.dispatchEvent(touchEnd);\n } else {\n this.nestedInteractiveElement.focus();\n }\n });\n }\n\n ngOnInit() {\n this.isTouch = this.platform.isTouch();\n }\n\n ngAfterContentInit(): void {\n this.handleAffixOffset();\n }\n\n ngAfterContentChecked(): void {\n if (!this.nestedInteractiveElement) {\n this.registerNestedInteractive();\n }\n\n if (!this.isRegistered && this.element.isConnected && (this.input || this.textarea)) {\n // Host is connected to dom and slotted input/textarea is present:\n this.isRegistered = true;\n this.dispatchLoadEvent();\n }\n\n // Decide if default calendar icon for date input should be shown\n this.showDefaultCalendarIcon = this.shouldShowDefaultCalendarIcon();\n }\n\n ngOnDestroy(): void {\n // Dispatch an `ionInputDidUnload` event to unregister\n // form field + input/textarea from Ionic input shims\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/input-shims.ts\n this.windowRef.nativeWindow.document.dispatchEvent(\n new CustomEvent('ionInputDidUnload', {\n detail: this.element,\n })\n );\n\n this.affixElements.forEach((affix) => {\n this.resizeObserverService.unobserve(affix.el);\n });\n\n this.nestedInteractiveErrorSubscription?.unsubscribe();\n }\n\n private registerNestedInteractive() {\n this.getNestedInteractiveElement();\n this.setNestedInteractiveLabelAttributes();\n this.setNestedInteractiveMessageAttributes();\n this.subscribeToNestedInteractiveError();\n }\n\n private getNestedInteractiveElement() {\n this.nestedInteractiveElement =\n this.input?.nativeElement ||\n this.textarea?.nativeElement ||\n this.radioGroupElement?.nativeElement.querySelector('ion-radio-group') ||\n this.dropdown?.nativeElement.querySelector('button[kirby-button]');\n }\n\n private setNestedInteractiveMessageAttributes() {\n if (!this.nestedInteractiveElement) return;\n\n if (this.message) {\n this.renderer.setAttribute(\n this.nestedInteractiveElement,\n 'aria-describedby',\n this._messageId\n );\n\n this.renderer.setAttribute(\n this.nestedInteractiveElement,\n 'aria-errormessage',\n this._errorMessageId\n );\n } else {\n this.renderer.removeAttribute(this.nestedInteractiveElement, 'aria-describedby');\n this.renderer.removeAttribute(this.nestedInteractiveElement, 'aria-errormessage');\n }\n }\n\n private setNestedInteractiveLabelAttributes() {\n if (!this.nestedInteractiveElement) return;\n if (this._wrapContentInLabel) return; // return if label is wrapping the nested interactive. No need for aria-labelledby.\n\n if (this.label) {\n this.renderer.setAttribute(this.nestedInteractiveElement, 'aria-labelledby', this._labelId);\n } else {\n this.renderer.removeAttribute(this.nestedInteractiveElement, 'aria-labelledby');\n }\n }\n\n private subscribeToNestedInteractiveError() {\n const nestedInteractiveComponent =\n this.inputComponent ||\n this.textareaComponent ||\n this.radioGroupComponent ||\n this.dropdownComponent;\n\n // set current value, then listen for changes\n this._nestedInteractiveHasError = !!nestedInteractiveComponent?.hasError;\n this.nestedInteractiveErrorSubscription = nestedInteractiveComponent?.hasErrorChange.subscribe(\n (hasError) => {\n this._nestedInteractiveHasError = hasError;\n this.cdr.markForCheck();\n }\n );\n }\n\n private shouldShowDefaultCalendarIcon() {\n return (\n this.dateInput?.useNativeDatePicker &&\n !this.affixElements.some((affix) => affix.type === 'suffix') // there are no suffix elements\n );\n }\n\n private handleAffixOffset() {\n // Measure the width of all slotted affix elements,\n // and apply their width + standard padding to the input elements\n // padding, so the start/end of the input is correctly indented.\n if (this.input) {\n this.affixElements.forEach((affix) => {\n this.resizeObserverService.observe(affix.el, (entry) => {\n const padding = affix.type === 'prefix' ? 'padding-left' : 'padding-right';\n const affixWidth = this.input.nativeElement.type === 'date' ? 0 : entry.contentRect.width;\n const existingPadding = parseInt(DesignTokenHelper.size('s'));\n\n this.renderer.setStyle(\n this.input.nativeElement,\n `${padding}`,\n `${affixWidth + existingPadding}px`\n );\n\n const dateMask = this.element.querySelector('.date-mask');\n if (dateMask) {\n this.renderer.setStyle(dateMask, `${padding}`, `${affixWidth + existingPadding}px`);\n }\n });\n });\n }\n }\n}\n","@if (_wrapContentInLabel) {\n <label>\n <ng-container *ngTemplateOutlet=\"labelTextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n <!-- add error message inside label if nested interative is in error state -->\n @if (_nestedInteractiveHasError) {\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n }\n </label>\n}\n\n<!-- add message outside label if nested interative is in valid state -->\n@if (!_nestedInteractiveHasError && _wrapContentInLabel) {\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n}\n\n@if (!_wrapContentInLabel) {\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n}\n\n<ng-template #messageTemplate>\n @if (message !== undefined || counter) {\n <div class=\"texts\">\n <div\n aria-live=\"polite\"\n class=\"message\"\n [id]=\"_nestedInteractiveHasError ? _errorMessageId : _messageId\"\n >\n @if (message !== undefined) {\n <kirby-form-field-message [text]=\"message\"></kirby-form-field-message>\n }\n </div>\n @if (counter) {\n <div class=\"counter\">\n <ng-content select=\"kirby-input-counter\"></ng-content>\n </div>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #slottedInputTemplate>\n <div class=\"affix-container\">\n <div class=\"prefix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='prefix']\"></ng-content>\n </div>\n <ng-content select=\"input[kirby-input]\"></ng-content>\n <ng-content select=\"textarea[kirby-textarea]\"></ng-content>\n <ng-content select=\"kirby-radio-group\"></ng-content>\n <ng-content select=\"kirby-dropdown\"></ng-content>\n <div class=\"suffix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='suffix']\"></ng-content>\n @if (showDefaultCalendarIcon) {\n <kirby-icon name=\"calendar\"></kirby-icon>\n }\n </div>\n </div>\n</ng-template>\n\n<ng-template #labelTextTemplate>\n @if (label) {\n <span class=\"text\">{{ label }}</span>\n }\n</ng-template>\n\n<ng-template #labelTemplate>\n @if (label) {\n <label class=\"text\" [id]=\"_labelId\" (click)=\"onLabelClick()\">{{ label }}</label>\n }\n</ng-template>\n","import { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n LOCALE_ID,\n OnInit,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport Inputmask from 'inputmask/dist/inputmask.es6.js';\n\ninterface InputMask {\n unmaskedvalue: () => string;\n setValue: (val: string) => void;\n}\n\n@Directive({\n // eslint-disable-next-line\n selector: '[kirby-decimal-mask]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: DecimalMaskDirective,\n },\n ],\n})\nexport class DecimalMaskDirective implements ControlValueAccessor, OnInit {\n @Input() min: number;\n @Input() max: number;\n @Input() precision = 2;\n @Input() setMaxOnOverflow = false;\n @Input() alignment: 'left' | 'right' = 'right';\n @Input() padPrecisionDigits: boolean = false;\n\n @Input() set allowMinus(allowMinus: boolean) {\n this._allowMinus = allowMinus || (this.min || 0) < 0;\n }\n\n @Input() set disableGroupSeperator(disabled: string) {\n this._groupSeperatorDisabled = String(disabled) === '' || String(disabled) === 'true';\n }\n\n @Input() set maxlength(maxlength: number) {\n this._maxlength = maxlength;\n\n const maxlengthValue = parseInt('9'.repeat(maxlength));\n this.max = this.getMax(maxlengthValue);\n this.min = this.getMin(maxlengthValue);\n }\n\n groupSeparator = getLocaleNumberSymbol(this.locale, NumberSymbol.Group);\n radixPoint = getLocaleNumberSymbol(this.locale, NumberSymbol.Decimal);\n inputmask: InputMask;\n\n _allowMinus = false;\n _maxlength: number;\n _groupSeperatorDisabled: boolean;\n\n _onChange = (_: string) => {};\n _onTouched = () => {};\n\n @HostListener('blur')\n onTouched(): void {\n this._onTouched();\n }\n\n constructor(\n private elementRef: ElementRef,\n @Inject(LOCALE_ID) private locale: string\n ) {}\n\n ngOnInit(): void {\n // Set type=\"text\", because functionality like 'setSelectionRange' are not supported on type=\"number\"\n this.elementRef.nativeElement.setAttribute('type', 'text');\n\n // Remove maxlength as this is handled by the mask\n this.elementRef.nativeElement.removeAttribute('maxlength');\n\n this.initMask();\n }\n\n writeValue(val: number): void {\n if (!this.inputmask) return;\n const formattedValue = String(val).replace('.', this.radixPoint);\n this.inputmask.setValue(formattedValue);\n }\n\n registerOnChange(onChange: any): void {\n this._onChange = onChange;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.elementRef.nativeElement.disabled = isDisabled;\n }\n\n private initMask(): void {\n new Inputmask('decimal', {\n groupSeparator: this._groupSeperatorDisabled ? '' : this.groupSeparator,\n radixPoint: this.radixPoint,\n digits: this._maxlength ? 0 : this.precision,\n digitsOptional: !this.padPrecisionDigits,\n min: this.min,\n max: this.max,\n allowMinus: this._allowMinus,\n negationSymbol: {\n front: getLocaleNumberSymbol(this.locale, NumberSymbol.MinusSign),\n back: '',\n },\n SetMaxOnOverflow: this.setMaxOnOverflow,\n showMaskOnFocus: false,\n showMaskOnHover: false,\n placeholder: this.padPrecisionDigits ? undefined : '',\n rightAlign: this.alignment === 'right',\n onBeforeWrite: () => {\n if (!this.inputmask) return;\n const unmaskedValue = this.inputmask.unmaskedvalue();\n this._onChange(unmaskedValue.replace(this.radixPoint, '.'));\n },\n }).mask(this.elementRef.nativeElement);\n this.inputmask = this.elementRef.nativeElement.inputmask;\n }\n\n private getMax(maxlengthValue: number): number {\n return this.max === undefined ? maxlengthValue : Math.min(this.max, maxlengthValue);\n }\n\n private getMin(maxlengthValue: number): number {\n if (!this.allowMinus) return;\n maxlengthValue = -Math.abs(maxlengthValue);\n return this.min === undefined ? maxlengthValue : -Math.abs(Math.max(this.min, maxlengthValue));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IconModule } from '@kirbydesign/designsystem/icon';\nimport { FormFieldMessageComponent } from './form-field-message/form-field-message.component';\nimport { FormFieldComponent } from './form-field.component';\nimport { InputCounterComponent } from './input-counter/input-counter.component';\nimport { DecimalMaskDirective } from './directives/decimal-mask/decimal-mask.directive';\nimport { AffixDirective } from './directives/affix/affix.directive';\n\nconst imports = [FormFieldComponent, FormFieldMessageComponent, InputCounterComponent];\n\n@NgModule({\n imports: [CommonModule, DecimalMaskDirective, IconModule, AffixDirective, ...imports],\n exports: [...imports, DecimalMaskDirective, AffixDirective],\n})\nexport class FormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i3"],"mappings":"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"}
|