@kirbydesign/designsystem 10.4.0 → 10.4.1

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.
@@ -1 +1 @@
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 standalone: true,\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/lib/extensions/inputmask.date.extensions';\nimport Inputmask from 'inputmask/lib/inputmask';\n\n@Directive({\n standalone: true,\n})\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 standalone: false,\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 { Subscription } from 'rxjs';\n\nimport { InputComponent } from '../input/input.component';\n\nimport { TextareaComponent } from './../textarea/textarea.component';\n\n@Component({\n selector: 'kirby-input-counter',\n templateUrl: './input-counter.component.html',\n standalone: false,\n})\nexport class InputCounterComponent implements OnInit, OnDestroy {\n @Input() listenTo: InputComponent | TextareaComponent;\n length: number;\n maxlength: number;\n private _inputChangeSubscription: Subscription;\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 ngOnInit(): void {\n if (this.listenTo) {\n this.length = this.listenTo.value ? this.listenTo.value.length : 0;\n this.maxlength = this.listenTo.maxlength;\n this._inputChangeSubscription = this.listenTo.kirbyChange.subscribe((value) => {\n this.length = value.length;\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this._inputChangeSubscription) {\n this._inputChangeSubscription.unsubscribe();\n }\n }\n}\n","<kirby-form-field-message [text]=\"text\"></kirby-form-field-message>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { FormFieldControl } from '@kirbydesign/designsystem/types';\nimport { DateInputDirective } from '../directives/date/date-input.directive';\n\nexport enum InputSize {\n medium = 'md',\n large = 'lg',\n}\n\n@Component({\n imports: [CommonModule],\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(private elementRef: ElementRef<HTMLInputElement>) {}\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\n setTimeout(() => {\n const inputValue = this.elementRef.nativeElement.value;\n\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 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 { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { FormFieldControl } from '@kirbydesign/designsystem/types';\n\n@Component({\n imports: [CommonModule],\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 {\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 ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\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","<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n","import {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\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 { 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';\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 standalone: false,\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 | HTMLInputElement\n | HTMLTextAreaElement\n | HTMLIonRadioGroupElement;\n private nestedInteractiveErrorSubscription: Subscription;\n private _message: string | null;\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() label: string;\n @Input() get message(): string | null {\n return this._message;\n }\n\n set message(value: string) {\n this._message = value;\n this.setNestedInteractiveElementAttributes();\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(TextareaComponent) textareaComponent: TextareaComponent;\n @ContentChild(RadioGroupComponent, { read: ElementRef })\n private radioGroupElement: ElementRef<HTMLElement>;\n @ContentChild(InputComponent, { read: ElementRef }) input: ElementRef<HTMLInputElement>;\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 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 this.radioGroupComponent?.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 // 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 });\n }\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.setNestedInteractiveElementAttributes();\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 }\n\n private setNestedInteractiveElementAttributes() {\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 }\n\n if (this.label && this.radioGroupElement) {\n this.renderer.setAttribute(this.nestedInteractiveElement, 'aria-labelledby', this._labelId);\n }\n }\n\n private subscribeToNestedInteractiveError() {\n const nestedInteractiveComponent =\n this.inputComponent || this.textareaComponent || this.radioGroupComponent;\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","<label *ngIf=\"_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n\n <!-- add error message inside label if nested interative is in error state -->\n <ng-container *ngIf=\"_nestedInteractiveHasError\">\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n </ng-container>\n</label>\n\n<!-- add message outside label if nested interative is in valid state -->\n<ng-container *ngIf=\"!_nestedInteractiveHasError && _wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n</ng-container>\n\n<ng-template #messageTemplate>\n <div *ngIf=\"message !== undefined || counter\" class=\"texts\">\n <kirby-form-field-message\n *ngIf=\"message !== undefined\"\n class=\"message\"\n [text]=\"message\"\n [attr.aria-live]=\"_nestedInteractiveHasError ? 'polite' : null\"\n [attr.id]=\"_nestedInteractiveHasError ? _errorMessageId : _messageId\"\n ></kirby-form-field-message>\n\n <div *ngIf=\"counter\" class=\"counter\" aria-hidden=\"true\">\n <ng-content select=\"kirby-input-counter\"></ng-content>\n </div>\n </div>\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 <div class=\"suffix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='suffix']\"></ng-content>\n <ng-container *ngIf=\"showDefaultCalendarIcon\">\n <kirby-icon name=\"calendar\"></kirby-icon>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #labelTextTemplate>\n <ng-container *ngIf=\"label\">\n <span class=\"text\">{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #labelTemplate>\n <ng-container *ngIf=\"label\">\n <label class=\"text\" [id]=\"_labelId\" (click)=\"onLabelClick()\">{{ label }}</label>\n </ng-container>\n</ng-template>\n","import { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport { Directive, ElementRef, Inject, Input, LOCALE_ID, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport 'inputmask/lib/extensions/inputmask.numeric.extensions';\nimport Inputmask from 'inputmask/lib/inputmask';\n\ninterface InputMask {\n unmaskedvalue: () => string;\n setValue: (val: string) => void;\n}\n\n@Directive({\n standalone: true,\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\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onChange = (_: string) => {};\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n registerOnTouched(_: any): void {}\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 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: '',\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 declarations = [FormFieldComponent, FormFieldMessageComponent, InputCounterComponent];\n\n@NgModule({\n imports: [CommonModule, DecimalMaskDirective, IconModule, AffixDirective],\n declarations: [...declarations],\n exports: [...declarations, DecimalMaskDirective, AffixDirective],\n})\nexport class FormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.FormFieldMessageComponent","i1.DateInputDirective","i1","i6.FormFieldMessageComponent"],"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 standalone: true,\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/lib/extensions/inputmask.date.extensions';\nimport Inputmask from 'inputmask/lib/inputmask';\n\n@Directive({\n standalone: true,\n})\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 standalone: false,\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 { Subscription } from 'rxjs';\n\nimport { InputComponent } from '../input/input.component';\n\nimport { TextareaComponent } from './../textarea/textarea.component';\n\n@Component({\n selector: 'kirby-input-counter',\n templateUrl: './input-counter.component.html',\n standalone: false,\n})\nexport class InputCounterComponent implements OnInit, OnDestroy {\n @Input() listenTo: InputComponent | TextareaComponent;\n length: number;\n maxlength: number;\n private _inputChangeSubscription: Subscription;\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 ngOnInit(): void {\n if (this.listenTo) {\n this.length = this.listenTo.value ? this.listenTo.value.length : 0;\n this.maxlength = this.listenTo.maxlength;\n this._inputChangeSubscription = this.listenTo.kirbyChange.subscribe((value) => {\n this.length = value.length;\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this._inputChangeSubscription) {\n this._inputChangeSubscription.unsubscribe();\n }\n }\n}\n","<kirby-form-field-message [text]=\"text\"></kirby-form-field-message>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { FormFieldControl } from '@kirbydesign/designsystem/types';\nimport { DateInputDirective } from '../directives/date/date-input.directive';\n\nexport enum InputSize {\n medium = 'md',\n large = 'lg',\n}\n\n@Component({\n imports: [CommonModule],\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(private elementRef: ElementRef<HTMLInputElement>) {}\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\n setTimeout(() => {\n const inputValue = this.elementRef.nativeElement.value;\n\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 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 { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { FormFieldControl } from '@kirbydesign/designsystem/types';\n\n@Component({\n imports: [CommonModule],\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 {\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 ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\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","<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n","import {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\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 { 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';\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 standalone: false,\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 | HTMLInputElement\n | HTMLTextAreaElement\n | HTMLIonRadioGroupElement;\n private nestedInteractiveErrorSubscription: Subscription;\n private _message: string | null;\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() label: string;\n @Input() get message(): string | null {\n return this._message;\n }\n\n set message(value: string | null) {\n this._message = value;\n this.setNestedInteractiveElementAttributes();\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(TextareaComponent) textareaComponent: TextareaComponent;\n @ContentChild(RadioGroupComponent, { read: ElementRef })\n private radioGroupElement: ElementRef<HTMLElement>;\n @ContentChild(InputComponent, { read: ElementRef }) input: ElementRef<HTMLInputElement>;\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 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 this.radioGroupComponent?.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 // 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 });\n }\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.setNestedInteractiveElementAttributes();\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 }\n\n private setNestedInteractiveElementAttributes() {\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 }\n\n if (this.label && this.radioGroupElement) {\n this.renderer.setAttribute(this.nestedInteractiveElement, 'aria-labelledby', this._labelId);\n }\n }\n\n private subscribeToNestedInteractiveError() {\n const nestedInteractiveComponent =\n this.inputComponent || this.textareaComponent || this.radioGroupComponent;\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","<label *ngIf=\"_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n\n <!-- add error message inside label if nested interative is in error state -->\n <ng-container *ngIf=\"_nestedInteractiveHasError\">\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n </ng-container>\n</label>\n\n<!-- add message outside label if nested interative is in valid state -->\n<ng-container *ngIf=\"!_nestedInteractiveHasError && _wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n</ng-container>\n\n<ng-template #messageTemplate>\n <div *ngIf=\"message !== undefined || counter\" class=\"texts\">\n <kirby-form-field-message\n *ngIf=\"message !== undefined\"\n class=\"message\"\n [text]=\"message\"\n [attr.aria-live]=\"_nestedInteractiveHasError ? 'polite' : null\"\n [attr.id]=\"_nestedInteractiveHasError ? _errorMessageId : _messageId\"\n ></kirby-form-field-message>\n\n <div *ngIf=\"counter\" class=\"counter\" aria-hidden=\"true\">\n <ng-content select=\"kirby-input-counter\"></ng-content>\n </div>\n </div>\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 <div class=\"suffix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='suffix']\"></ng-content>\n <ng-container *ngIf=\"showDefaultCalendarIcon\">\n <kirby-icon name=\"calendar\"></kirby-icon>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #labelTextTemplate>\n <ng-container *ngIf=\"label\">\n <span class=\"text\">{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #labelTemplate>\n <ng-container *ngIf=\"label\">\n <label class=\"text\" [id]=\"_labelId\" (click)=\"onLabelClick()\">{{ label }}</label>\n </ng-container>\n</ng-template>\n","import { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport { Directive, ElementRef, Inject, Input, LOCALE_ID, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport 'inputmask/lib/extensions/inputmask.numeric.extensions';\nimport Inputmask from 'inputmask/lib/inputmask';\n\ninterface InputMask {\n unmaskedvalue: () => string;\n setValue: (val: string) => void;\n}\n\n@Directive({\n standalone: true,\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\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onChange = (_: string) => {};\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n registerOnTouched(_: any): void {}\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 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: '',\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 declarations = [FormFieldComponent, FormFieldMessageComponent, InputCounterComponent];\n\n@NgModule({\n imports: [CommonModule, DecimalMaskDirective, IconModule, AffixDirective],\n declarations: [...declarations],\n exports: [...declarations, DecimalMaskDirective, AffixDirective],\n})\nexport class FormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.FormFieldMessageComponent","i1.DateInputDirective","i1","i6.FormFieldMessageComponent"],"mappings":"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"}
@@ -283,7 +283,7 @@ class FitHeadingDirective {
283
283
  this.isScalingHeader = true;
284
284
  if (!this.hostElementClone) {
285
285
  this.hostElementClone = this.generateHostElementClone();
286
- this.renderer.appendChild(this.elementRef.nativeElement, this.hostElementClone);
286
+ this.renderer.appendChild(this.elementRef.nativeElement.parentElement, this.hostElementClone);
287
287
  }
288
288
  this.renderer.setStyle(this.hostElementClone, 'width', `${this.elementRef.nativeElement.clientWidth}px`);
289
289
  const fallbackSize = this.headingSizes[this.headingSizes.length - 1];
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-shared.mjs","sources":["../../shared/src/resize-observer/resize-observer.factory.ts","../../shared/src/resize-observer/resize-observer.service.ts","../../shared/src/theme-color/theme-color.directive.ts","../../shared/src/component-loader.directive.ts","../../shared/src/fit-heading/fit-heading.directive.ts","../../shared/src/controls/label-helpers.ts","../../shared/src/translation/translations/da.ts","../../shared/src/translation/translations/en.ts","../../shared/src/translation/translations/de.ts","../../shared/src/translation/translation.service.ts","../../shared/src/kirbydesign-designsystem-shared.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n/**\n * Factory that creates a new ResizeObserver and allows us to stub it out in unit tests.\n * @docs-private\n */\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverFactory {\n create(callback: ResizeObserverCallback): ResizeObserver | null {\n return typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(callback);\n }\n}\n","import { ElementRef, Injectable, OnDestroy } from '@angular/core';\nimport { ResizeObserverFactory } from './resize-observer.factory';\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverService implements OnDestroy {\n // IMPORTANT: Keeps track of the existing ResizeObserver so it can be reused for performance.\n // See: https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/z6ienONUb5A/F5-VcUZtBAAJ\n private observer: ResizeObserver | null;\n private observedElements = new WeakMap<Element, (entry: ResizeObserverEntry) => void>();\n\n constructor(private _resizeObserverFactory: ResizeObserverFactory) {\n this.observer = this._resizeObserverFactory.create((entries) => this.handleResize(entries));\n }\n\n observe(\n elementOrRef: Element | ElementRef<Element>,\n action: (entry: ResizeObserverEntry) => void\n ): void {\n const element = elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n if (!this.observedElements.has(element)) {\n if (this.observer) {\n this.observer.observe(element);\n }\n this.observedElements.set(element, action);\n }\n }\n\n ngOnDestroy() {\n if (this.observer) {\n this.observer.disconnect();\n }\n this.observedElements = null;\n }\n\n unobserve(elementOrRef: Element | ElementRef<Element>) {\n const element = elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n if (this.observedElements.has(element)) {\n if (this.observer) {\n this.observer.unobserve(element);\n }\n this.observedElements.delete(element);\n }\n }\n\n private handleResize(entries: ResizeObserverEntry[]) {\n entries.forEach((entry) => {\n const action = this.observedElements.get(entry.target);\n if (action) {\n action(entry);\n }\n });\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\nimport { ColorHelper } from '@kirbydesign/designsystem/helpers';\nimport { ThemeColor } from '@kirbydesign/core';\n\n@Directive({\n standalone: true,\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: `kirby-avatar[themeColor],\n kirby-card[themeColor],\n kirby-icon[themeColor],\n kirby-progress-circle-ring[themeColor],\n kirby-modal-footer[themeColor],\n kirby-empty-state[themeColor]`,\n})\nexport class ThemeColorDirective {\n private _isDefault = true;\n @HostBinding('class.default')\n get isDefault() {\n return this._isDefault;\n }\n\n private _isPrimary: boolean;\n @HostBinding('class.primary')\n get isPrimary() {\n return this._isPrimary;\n }\n\n private _isSecondary: boolean;\n @HostBinding('class.secondary')\n get isSecondary() {\n return this._isSecondary;\n }\n\n private _isTertiary: boolean;\n @HostBinding('class.tertiary')\n get isTertiary() {\n return this._isTertiary;\n }\n\n private _isSuccess: boolean;\n @HostBinding('class.success')\n get isSuccess() {\n return this._isSuccess;\n }\n\n private _isWarning: boolean;\n @HostBinding('class.warning')\n get isWarning() {\n return this._isWarning;\n }\n\n private _isDanger: boolean;\n @HostBinding('class.danger')\n get isDanger() {\n return this._isDanger;\n }\n\n private _isLight: boolean;\n @HostBinding('class.light')\n get isLight() {\n return this._isLight;\n }\n\n private _isMedium: boolean;\n @HostBinding('class.medium')\n get isMedium() {\n return this._isMedium;\n }\n\n private _isDark: boolean;\n @HostBinding('class.dark')\n get isDark() {\n return this._isDark;\n }\n\n private _isWhite: boolean;\n @HostBinding('class.white')\n get isWhite() {\n return this._isWhite;\n }\n\n private _isBrightnessWhite: boolean;\n @HostBinding('class.kirby-color-brightness-white')\n get isBrightnessWhite() {\n return this._isBrightnessWhite;\n }\n\n private _isBrightnessLight: boolean;\n @HostBinding('class.kirby-color-brightness-light')\n get isBrightnessLight() {\n return this._isBrightnessLight;\n }\n\n private _isBrightnessDark: boolean;\n @HostBinding('class.kirby-color-brightness-dark')\n get isBrightnessDark() {\n return this._isBrightnessDark;\n }\n\n @Input() set themeColor(value: ThemeColor) {\n this._isDefault = !value;\n this._isPrimary = value === 'primary';\n this._isSecondary = value === 'secondary';\n this._isTertiary = value === 'tertiary';\n this._isSuccess = value === 'success';\n this._isWarning = value === 'warning';\n this._isDanger = value === 'danger';\n this._isLight = value === 'light';\n this._isMedium = value === 'medium';\n this._isDark = value === 'dark';\n this._isWhite = value === 'white';\n const colorBrightness = ColorHelper.getColorBrightness(value);\n this._isBrightnessWhite = colorBrightness === 'white';\n this._isBrightnessLight = colorBrightness === 'light';\n this._isBrightnessDark = colorBrightness === 'dark';\n }\n}\n","import {\n ComponentFactoryResolver,\n Directive,\n Input,\n OnInit,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ComponentConfiguration } from './component-configuration';\nimport { DynamicComponent } from './dynamic-component';\n\n@Directive({\n selector: '[kirbyLoadComponent]',\n standalone: true,\n})\nexport class ComponentLoaderDirective implements OnInit {\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('kirbyLoadComponent') configuration: ComponentConfiguration;\n @Input() cssClass: string;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit() {\n this.loadCard();\n }\n\n loadCard() {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n this.configuration.component\n );\n this.viewContainerRef.clear();\n const componentRef = this.viewContainerRef.createComponent(componentFactory);\n if (componentRef && componentRef.location && componentRef.location.nativeElement) {\n this.renderer.addClass(componentRef.location.nativeElement, this.cssClass);\n }\n (<DynamicComponent>componentRef.instance).data = this.configuration.data;\n }\n}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\n\nimport { DesignTokenHelper } from '@kirbydesign/designsystem/helpers';\nimport { LineClampHelper } from '@kirbydesign/designsystem/helpers';\nimport { ResizeObserverService } from '../resize-observer/resize-observer.service';\n\nconst fontSize = DesignTokenHelper.fontSize;\nconst lineHeight = DesignTokenHelper.lineHeight;\n\ninterface HeadingSize {\n name: string;\n fontSize: string;\n lineHeight: string;\n}\n\nexport interface FitHeadingConfig {\n maxLines: number;\n}\n\n@Directive({\n standalone: true,\n selector: `h1[kirbyFitHeading],h2[kirbyFitHeading],h3[kirbyFitHeading],[kirbyFitHeading]`,\n providers: [LineClampHelper],\n})\nexport class FitHeadingDirective implements OnInit, OnDestroy {\n @Input('kirbyFitHeading') config?: FitHeadingConfig;\n\n private isObservingHostElement: boolean;\n private hostElementClone: Element;\n private isScalingHeader: boolean; // used to prevent resizeObserver to trigger on font scaling by this.scaleHeader()\n\n private headingSizes: HeadingSize[] = [\n {\n name: 'h1',\n fontSize: fontSize('xl'),\n lineHeight: lineHeight('xl'),\n },\n {\n name: 'h2',\n fontSize: fontSize('l'),\n lineHeight: lineHeight('l'),\n },\n {\n name: 'h3',\n fontSize: fontSize('m'),\n lineHeight: lineHeight('m'),\n },\n ];\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private resizeObserverService: ResizeObserverService,\n private lineClampHelper: LineClampHelper\n ) {}\n\n ngOnInit(): void {\n if (this.config && this.config.maxLines) {\n this.lineClampHelper.setMaxLines(this.elementRef.nativeElement, this.config.maxLines);\n this.observeResize();\n this.isObservingHostElement = true;\n }\n }\n\n ngOnDestroy(): void {\n if (this.isObservingHostElement) {\n this.resizeObserverService.unobserve(this.elementRef);\n if (this.hostElementClone) {\n this.renderer.removeChild(this.elementRef.nativeElement, this.hostElementClone);\n }\n }\n }\n\n private observeResize(): void {\n this.resizeObserverService.observe(this.elementRef, () => {\n /**\n * setTimeout is used here to avoid repeated size changes\n * while the first size change is still ongoing.\n * This would result in the ResizeObserver being called again,\n * giving 'ResizeObserver loop limit exceeded' types of errors.\n */\n setTimeout(() => {\n this.scaleHeader();\n }, 0);\n });\n }\n\n private scaleHeader(): void {\n if (this.isScalingHeader) return;\n\n this.isScalingHeader = true;\n\n if (!this.hostElementClone) {\n this.hostElementClone = this.generateHostElementClone();\n this.renderer.appendChild(this.elementRef.nativeElement, this.hostElementClone);\n }\n\n this.renderer.setStyle(\n this.hostElementClone,\n 'width',\n `${this.elementRef.nativeElement.clientWidth}px`\n );\n\n const fallbackSize = this.headingSizes[this.headingSizes.length - 1];\n const fittedSize = this.headingSizes.find(this.canFitHeading.bind(this)) || fallbackSize;\n\n this.setSize(this.elementRef.nativeElement, fittedSize);\n this.lineClampHelper.setLineHeight(this.elementRef.nativeElement, fittedSize.lineHeight);\n this.isScalingHeader = false;\n }\n\n private canFitHeading(size: HeadingSize) {\n this.setSize(this.hostElementClone, size);\n const lines = this.hostElementClone.clientHeight / parseInt(size.lineHeight);\n return lines <= this.config.maxLines;\n }\n\n private generateHostElementClone(): Element {\n const clone = this.elementRef.nativeElement.cloneNode(true);\n this.renderer.setStyle(clone, 'position', 'absolute');\n this.renderer.setStyle(clone, 'visibility', 'hidden');\n this.lineClampHelper.removeLineClamp(clone);\n return clone;\n }\n\n private setSize(el: Element, size: HeadingSize): void {\n this.renderer.setStyle(el, 'font-size', size.fontSize);\n this.renderer.setStyle(el, 'line-height', size.lineHeight);\n }\n}\n","import { Renderer2 } from '@angular/core';\n\nexport function findItemLabel(element: HTMLElement): HTMLElement {\n const itemEl = element.closest('kirby-item');\n if (itemEl) {\n return itemEl.querySelector('kirby-label');\n }\n\n return null;\n}\n\nexport function setAccessibleLabel(element: HTMLElement): string {\n const label = findItemLabel(element);\n if (label) {\n label.setAttribute('aria-hidden', 'true');\n return label.textContent;\n }\n}\n\nexport function inheritAriaLabelText(element: HTMLElement): string {\n const attribute = 'aria-label';\n if (element.hasAttribute(attribute)) {\n const value = element.getAttribute(attribute);\n element.removeAttribute(attribute);\n return value;\n }\n}\n\n/**\n * Forwards specified attributes from a source element to a target element.\n *\n * @param sourceElement - The HTML element from which attributes will be removed from.\n * @param attributes - An array of attribute names to inherit from the source element.\n * @param renderer - An instance of Angular's Renderer2.\n * @param targetElement - (Optional) The HTML element to which the attributes should be applied.\n * If not provided, the attributes will only be removed from the source element.\n *\n * @returns A record of the inherited attributes and their values. If no attributes are inherited, an empty object is returned.\n */\nexport function forwardAttributes(\n sourceElement: HTMLElement,\n attributes: string[],\n renderer: Renderer2,\n targetElement?: HTMLElement\n): Record<string, any> {\n const inheritedAttributes: Record<string, any> = {};\n\n if (!sourceElement || !attributes || attributes.length === 0) {\n return inheritedAttributes;\n }\n\n attributes.forEach((attribute) => {\n if (sourceElement.hasAttribute(attribute)) {\n const value = sourceElement.getAttribute(attribute);\n inheritedAttributes[attribute] = value;\n\n if (targetElement) {\n renderer.setAttribute(targetElement, attribute, value);\n }\n\n renderer.removeAttribute(sourceElement, attribute);\n }\n });\n\n return inheritedAttributes;\n}\n","import { Translation } from '../translation.interface';\n\nexport const da: Translation = {\n $code: 'da',\n back: 'Tilbage',\n close: 'Luk',\n nextMonth: 'Næste måned',\n nextSlide: 'Næste slide',\n previousMonth: 'Forrige måned',\n previousSlide: 'Forrige slide',\n selectYear: 'Vælg år',\n readMore: 'Læs mere',\n};\n","import { Translation } from '../translation.interface';\n\nexport const en: Translation = {\n $code: 'en',\n back: 'Back',\n close: 'Close',\n nextMonth: 'Next month',\n nextSlide: 'Next slide',\n previousMonth: 'Previous month',\n previousSlide: 'Previous slide',\n selectYear: 'Select year',\n readMore: 'Read more',\n};\n","import { Translation } from '../translation.interface';\n\nexport const de: Translation = {\n $code: 'de',\n back: 'Zurück',\n close: 'Schließen',\n nextMonth: 'Nächsten Monat',\n nextSlide: 'Zur nächsten Folie',\n previousMonth: 'Letzten Monat',\n previousSlide: 'Zur vorherigen Folie',\n selectYear: 'Jahr auswählen',\n readMore: 'Mehr lesen',\n};\n","import { Injectable } from '@angular/core';\nimport { Inject, LOCALE_ID } from '@angular/core';\nimport { da } from './translations/da';\nimport { en } from './translations/en';\nimport { de } from './translations/de';\nimport { Translation } from './translation.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TranslationService {\n private activeTranslation: Translation = en;\n private translations: { [key: string]: Translation } = { da, en, de };\n\n constructor(@Inject(LOCALE_ID) private localeId: string) {\n this.setActiveTranslation(localeId);\n }\n\n private setActiveTranslation(localeId: string): string {\n const baseLocaleId = localeId.split('-')[0];\n const translation = this.translations[baseLocaleId];\n\n if (!translation) {\n console.warn(\n `[Kirby] Internal component translations were not found for locale \"${this.localeId}\", falling back to ${this.get('$code')}`\n );\n return;\n }\n\n this.activeTranslation = translation;\n }\n\n get(key: keyof Translation): string {\n return this.activeTranslation[key];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ResizeObserverFactory","i1.ResizeObserverService"],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-shared.mjs","sources":["../../shared/src/resize-observer/resize-observer.factory.ts","../../shared/src/resize-observer/resize-observer.service.ts","../../shared/src/theme-color/theme-color.directive.ts","../../shared/src/component-loader.directive.ts","../../shared/src/fit-heading/fit-heading.directive.ts","../../shared/src/controls/label-helpers.ts","../../shared/src/translation/translations/da.ts","../../shared/src/translation/translations/en.ts","../../shared/src/translation/translations/de.ts","../../shared/src/translation/translation.service.ts","../../shared/src/kirbydesign-designsystem-shared.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n/**\n * Factory that creates a new ResizeObserver and allows us to stub it out in unit tests.\n * @docs-private\n */\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverFactory {\n create(callback: ResizeObserverCallback): ResizeObserver | null {\n return typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(callback);\n }\n}\n","import { ElementRef, Injectable, OnDestroy } from '@angular/core';\nimport { ResizeObserverFactory } from './resize-observer.factory';\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverService implements OnDestroy {\n // IMPORTANT: Keeps track of the existing ResizeObserver so it can be reused for performance.\n // See: https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/z6ienONUb5A/F5-VcUZtBAAJ\n private observer: ResizeObserver | null;\n private observedElements = new WeakMap<Element, (entry: ResizeObserverEntry) => void>();\n\n constructor(private _resizeObserverFactory: ResizeObserverFactory) {\n this.observer = this._resizeObserverFactory.create((entries) => this.handleResize(entries));\n }\n\n observe(\n elementOrRef: Element | ElementRef<Element>,\n action: (entry: ResizeObserverEntry) => void\n ): void {\n const element = elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n if (!this.observedElements.has(element)) {\n if (this.observer) {\n this.observer.observe(element);\n }\n this.observedElements.set(element, action);\n }\n }\n\n ngOnDestroy() {\n if (this.observer) {\n this.observer.disconnect();\n }\n this.observedElements = null;\n }\n\n unobserve(elementOrRef: Element | ElementRef<Element>) {\n const element = elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n if (this.observedElements.has(element)) {\n if (this.observer) {\n this.observer.unobserve(element);\n }\n this.observedElements.delete(element);\n }\n }\n\n private handleResize(entries: ResizeObserverEntry[]) {\n entries.forEach((entry) => {\n const action = this.observedElements.get(entry.target);\n if (action) {\n action(entry);\n }\n });\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\nimport { ColorHelper } from '@kirbydesign/designsystem/helpers';\nimport { ThemeColor } from '@kirbydesign/core';\n\n@Directive({\n standalone: true,\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: `kirby-avatar[themeColor],\n kirby-card[themeColor],\n kirby-icon[themeColor],\n kirby-progress-circle-ring[themeColor],\n kirby-modal-footer[themeColor],\n kirby-empty-state[themeColor]`,\n})\nexport class ThemeColorDirective {\n private _isDefault = true;\n @HostBinding('class.default')\n get isDefault() {\n return this._isDefault;\n }\n\n private _isPrimary: boolean;\n @HostBinding('class.primary')\n get isPrimary() {\n return this._isPrimary;\n }\n\n private _isSecondary: boolean;\n @HostBinding('class.secondary')\n get isSecondary() {\n return this._isSecondary;\n }\n\n private _isTertiary: boolean;\n @HostBinding('class.tertiary')\n get isTertiary() {\n return this._isTertiary;\n }\n\n private _isSuccess: boolean;\n @HostBinding('class.success')\n get isSuccess() {\n return this._isSuccess;\n }\n\n private _isWarning: boolean;\n @HostBinding('class.warning')\n get isWarning() {\n return this._isWarning;\n }\n\n private _isDanger: boolean;\n @HostBinding('class.danger')\n get isDanger() {\n return this._isDanger;\n }\n\n private _isLight: boolean;\n @HostBinding('class.light')\n get isLight() {\n return this._isLight;\n }\n\n private _isMedium: boolean;\n @HostBinding('class.medium')\n get isMedium() {\n return this._isMedium;\n }\n\n private _isDark: boolean;\n @HostBinding('class.dark')\n get isDark() {\n return this._isDark;\n }\n\n private _isWhite: boolean;\n @HostBinding('class.white')\n get isWhite() {\n return this._isWhite;\n }\n\n private _isBrightnessWhite: boolean;\n @HostBinding('class.kirby-color-brightness-white')\n get isBrightnessWhite() {\n return this._isBrightnessWhite;\n }\n\n private _isBrightnessLight: boolean;\n @HostBinding('class.kirby-color-brightness-light')\n get isBrightnessLight() {\n return this._isBrightnessLight;\n }\n\n private _isBrightnessDark: boolean;\n @HostBinding('class.kirby-color-brightness-dark')\n get isBrightnessDark() {\n return this._isBrightnessDark;\n }\n\n @Input() set themeColor(value: ThemeColor) {\n this._isDefault = !value;\n this._isPrimary = value === 'primary';\n this._isSecondary = value === 'secondary';\n this._isTertiary = value === 'tertiary';\n this._isSuccess = value === 'success';\n this._isWarning = value === 'warning';\n this._isDanger = value === 'danger';\n this._isLight = value === 'light';\n this._isMedium = value === 'medium';\n this._isDark = value === 'dark';\n this._isWhite = value === 'white';\n const colorBrightness = ColorHelper.getColorBrightness(value);\n this._isBrightnessWhite = colorBrightness === 'white';\n this._isBrightnessLight = colorBrightness === 'light';\n this._isBrightnessDark = colorBrightness === 'dark';\n }\n}\n","import {\n ComponentFactoryResolver,\n Directive,\n Input,\n OnInit,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ComponentConfiguration } from './component-configuration';\nimport { DynamicComponent } from './dynamic-component';\n\n@Directive({\n selector: '[kirbyLoadComponent]',\n standalone: true,\n})\nexport class ComponentLoaderDirective implements OnInit {\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('kirbyLoadComponent') configuration: ComponentConfiguration;\n @Input() cssClass: string;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit() {\n this.loadCard();\n }\n\n loadCard() {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n this.configuration.component\n );\n this.viewContainerRef.clear();\n const componentRef = this.viewContainerRef.createComponent(componentFactory);\n if (componentRef && componentRef.location && componentRef.location.nativeElement) {\n this.renderer.addClass(componentRef.location.nativeElement, this.cssClass);\n }\n (<DynamicComponent>componentRef.instance).data = this.configuration.data;\n }\n}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\n\nimport { DesignTokenHelper } from '@kirbydesign/designsystem/helpers';\nimport { LineClampHelper } from '@kirbydesign/designsystem/helpers';\nimport { ResizeObserverService } from '../resize-observer/resize-observer.service';\n\nconst fontSize = DesignTokenHelper.fontSize;\nconst lineHeight = DesignTokenHelper.lineHeight;\n\ninterface HeadingSize {\n name: string;\n fontSize: string;\n lineHeight: string;\n}\n\nexport interface FitHeadingConfig {\n maxLines: number;\n}\n\n@Directive({\n standalone: true,\n selector: `h1[kirbyFitHeading],h2[kirbyFitHeading],h3[kirbyFitHeading],[kirbyFitHeading]`,\n providers: [LineClampHelper],\n})\nexport class FitHeadingDirective implements OnInit, OnDestroy {\n @Input('kirbyFitHeading') config?: FitHeadingConfig;\n\n private isObservingHostElement: boolean;\n private hostElementClone: Element;\n private isScalingHeader: boolean; // used to prevent resizeObserver to trigger on font scaling by this.scaleHeader()\n\n private headingSizes: HeadingSize[] = [\n {\n name: 'h1',\n fontSize: fontSize('xl'),\n lineHeight: lineHeight('xl'),\n },\n {\n name: 'h2',\n fontSize: fontSize('l'),\n lineHeight: lineHeight('l'),\n },\n {\n name: 'h3',\n fontSize: fontSize('m'),\n lineHeight: lineHeight('m'),\n },\n ];\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private resizeObserverService: ResizeObserverService,\n private lineClampHelper: LineClampHelper\n ) {}\n\n ngOnInit(): void {\n if (this.config && this.config.maxLines) {\n this.lineClampHelper.setMaxLines(this.elementRef.nativeElement, this.config.maxLines);\n this.observeResize();\n this.isObservingHostElement = true;\n }\n }\n\n ngOnDestroy(): void {\n if (this.isObservingHostElement) {\n this.resizeObserverService.unobserve(this.elementRef);\n if (this.hostElementClone) {\n this.renderer.removeChild(this.elementRef.nativeElement, this.hostElementClone);\n }\n }\n }\n\n private observeResize(): void {\n this.resizeObserverService.observe(this.elementRef, () => {\n /**\n * setTimeout is used here to avoid repeated size changes\n * while the first size change is still ongoing.\n * This would result in the ResizeObserver being called again,\n * giving 'ResizeObserver loop limit exceeded' types of errors.\n */\n setTimeout(() => {\n this.scaleHeader();\n }, 0);\n });\n }\n\n private scaleHeader(): void {\n if (this.isScalingHeader) return;\n\n this.isScalingHeader = true;\n\n if (!this.hostElementClone) {\n this.hostElementClone = this.generateHostElementClone();\n this.renderer.appendChild(this.elementRef.nativeElement.parentElement, this.hostElementClone);\n }\n\n this.renderer.setStyle(\n this.hostElementClone,\n 'width',\n `${this.elementRef.nativeElement.clientWidth}px`\n );\n\n const fallbackSize = this.headingSizes[this.headingSizes.length - 1];\n const fittedSize = this.headingSizes.find(this.canFitHeading.bind(this)) || fallbackSize;\n\n this.setSize(this.elementRef.nativeElement, fittedSize);\n this.lineClampHelper.setLineHeight(this.elementRef.nativeElement, fittedSize.lineHeight);\n this.isScalingHeader = false;\n }\n\n private canFitHeading(size: HeadingSize) {\n this.setSize(this.hostElementClone, size);\n const lines = this.hostElementClone.clientHeight / parseInt(size.lineHeight);\n return lines <= this.config.maxLines;\n }\n\n private generateHostElementClone(): Element {\n const clone = this.elementRef.nativeElement.cloneNode(true);\n this.renderer.setStyle(clone, 'position', 'absolute');\n this.renderer.setStyle(clone, 'visibility', 'hidden');\n this.lineClampHelper.removeLineClamp(clone);\n return clone;\n }\n\n private setSize(el: Element, size: HeadingSize): void {\n this.renderer.setStyle(el, 'font-size', size.fontSize);\n this.renderer.setStyle(el, 'line-height', size.lineHeight);\n }\n}\n","import { Renderer2 } from '@angular/core';\n\nexport function findItemLabel(element: HTMLElement): HTMLElement {\n const itemEl = element.closest('kirby-item');\n if (itemEl) {\n return itemEl.querySelector('kirby-label');\n }\n\n return null;\n}\n\nexport function setAccessibleLabel(element: HTMLElement): string {\n const label = findItemLabel(element);\n if (label) {\n label.setAttribute('aria-hidden', 'true');\n return label.textContent;\n }\n}\n\nexport function inheritAriaLabelText(element: HTMLElement): string {\n const attribute = 'aria-label';\n if (element.hasAttribute(attribute)) {\n const value = element.getAttribute(attribute);\n element.removeAttribute(attribute);\n return value;\n }\n}\n\n/**\n * Forwards specified attributes from a source element to a target element.\n *\n * @param sourceElement - The HTML element from which attributes will be removed from.\n * @param attributes - An array of attribute names to inherit from the source element.\n * @param renderer - An instance of Angular's Renderer2.\n * @param targetElement - (Optional) The HTML element to which the attributes should be applied.\n * If not provided, the attributes will only be removed from the source element.\n *\n * @returns A record of the inherited attributes and their values. If no attributes are inherited, an empty object is returned.\n */\nexport function forwardAttributes(\n sourceElement: HTMLElement,\n attributes: string[],\n renderer: Renderer2,\n targetElement?: HTMLElement\n): Record<string, any> {\n const inheritedAttributes: Record<string, any> = {};\n\n if (!sourceElement || !attributes || attributes.length === 0) {\n return inheritedAttributes;\n }\n\n attributes.forEach((attribute) => {\n if (sourceElement.hasAttribute(attribute)) {\n const value = sourceElement.getAttribute(attribute);\n inheritedAttributes[attribute] = value;\n\n if (targetElement) {\n renderer.setAttribute(targetElement, attribute, value);\n }\n\n renderer.removeAttribute(sourceElement, attribute);\n }\n });\n\n return inheritedAttributes;\n}\n","import { Translation } from '../translation.interface';\n\nexport const da: Translation = {\n $code: 'da',\n back: 'Tilbage',\n close: 'Luk',\n nextMonth: 'Næste måned',\n nextSlide: 'Næste slide',\n previousMonth: 'Forrige måned',\n previousSlide: 'Forrige slide',\n selectYear: 'Vælg år',\n readMore: 'Læs mere',\n};\n","import { Translation } from '../translation.interface';\n\nexport const en: Translation = {\n $code: 'en',\n back: 'Back',\n close: 'Close',\n nextMonth: 'Next month',\n nextSlide: 'Next slide',\n previousMonth: 'Previous month',\n previousSlide: 'Previous slide',\n selectYear: 'Select year',\n readMore: 'Read more',\n};\n","import { Translation } from '../translation.interface';\n\nexport const de: Translation = {\n $code: 'de',\n back: 'Zurück',\n close: 'Schließen',\n nextMonth: 'Nächsten Monat',\n nextSlide: 'Zur nächsten Folie',\n previousMonth: 'Letzten Monat',\n previousSlide: 'Zur vorherigen Folie',\n selectYear: 'Jahr auswählen',\n readMore: 'Mehr lesen',\n};\n","import { Injectable } from '@angular/core';\nimport { Inject, LOCALE_ID } from '@angular/core';\nimport { da } from './translations/da';\nimport { en } from './translations/en';\nimport { de } from './translations/de';\nimport { Translation } from './translation.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TranslationService {\n private activeTranslation: Translation = en;\n private translations: { [key: string]: Translation } = { da, en, de };\n\n constructor(@Inject(LOCALE_ID) private localeId: string) {\n this.setActiveTranslation(localeId);\n }\n\n private setActiveTranslation(localeId: string): string {\n const baseLocaleId = localeId.split('-')[0];\n const translation = this.translations[baseLocaleId];\n\n if (!translation) {\n console.warn(\n `[Kirby] Internal component translations were not found for locale \"${this.localeId}\", falling back to ${this.get('$code')}`\n );\n return;\n }\n\n this.activeTranslation = translation;\n }\n\n get(key: keyof Translation): string {\n return this.activeTranslation[key];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ResizeObserverFactory","i1.ResizeObserverService"],"mappings":"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"}
@@ -27,7 +27,7 @@ export declare class FormFieldComponent implements AfterContentChecked, AfterCon
27
27
  _messageId: string;
28
28
  label: string;
29
29
  get message(): string | null;
30
- set message(value: string);
30
+ set message(value: string | null);
31
31
  affixElements: QueryList<AffixDirective>;
32
32
  counter: InputCounterComponent;
33
33
  private radioGroupComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"form-field.component.d.ts","sourceRoot":"","sources":["../../form-field/src/form-field.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAEhB,iBAAiB,EAIjB,UAAU,EAGV,SAAS,EACT,MAAM,EACN,SAAS,EACT,SAAS,EACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,eAAe,EAEhB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;;AAElE,qBAOa,kBACX,YAAW,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS;IA2CjE,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,GAAG;IA7Cb,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,wBAAwB,CAGH;IAC7B,OAAO,CAAC,kCAAkC,CAAe;IACzD,OAAO,CAAC,QAAQ,CAAgB;IAEhC,uBAAuB,UAAS;IAEhC,0BAA0B,EAAE,OAAO,CAAC;IACpC,QAAQ,SAA+D;IACvE,eAAe,SAAiE;IAChF,UAAU,SAAiE;IAElE,KAAK,EAAE,MAAM,CAAC;IACvB,IAAa,OAAO,IAAI,MAAM,GAAG,IAAI,CAEpC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAGxB;IAEgC,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAClB,OAAO,EAAE,qBAAqB,CAAC;IACpD,OAAO,CAAC,mBAAmB,CAAsB;IACtD,cAAc,EAAE,cAAc,CAAC;IAC5B,iBAAiB,EAAE,iBAAiB,CAAC;IAEtE,OAAO,CAAC,iBAAiB,CAA0B;IACC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACjC,QAAQ,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAE/D,SAAS,EAAE,kBAAkB,CAAC;gBAG9D,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,EAC3B,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,SAAS,EACpB,qBAAqB,EAAE,qBAAqB,EAC5C,GAAG,EAAE,iBAAiB;IAKhC,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED,OAAO,CAAC,iBAAiB;IAYzB,oBAAoB;IAIpB,YAAY;IAIL,KAAK;IAsBZ,QAAQ;IAIR,kBAAkB,IAAI,IAAI;IAqB1B,qBAAqB,IAAI,IAAI;IAe7B,WAAW,IAAI,IAAI;IAiBnB,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,qCAAqC;IAsB7C,OAAO,CAAC,iCAAiC;IAczC,OAAO,CAAC,6BAA6B;yCA7M1B,kBAAkB;2CAAlB,kBAAkB;CAmN9B"}
1
+ {"version":3,"file":"form-field.component.d.ts","sourceRoot":"","sources":["../../form-field/src/form-field.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAEhB,iBAAiB,EAIjB,UAAU,EAGV,SAAS,EACT,MAAM,EACN,SAAS,EACT,SAAS,EACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,eAAe,EAEhB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;;AAElE,qBAOa,kBACX,YAAW,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS;IA2CjE,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,GAAG;IA7Cb,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,wBAAwB,CAGH;IAC7B,OAAO,CAAC,kCAAkC,CAAe;IACzD,OAAO,CAAC,QAAQ,CAAgB;IAEhC,uBAAuB,UAAS;IAEhC,0BAA0B,EAAE,OAAO,CAAC;IACpC,QAAQ,SAA+D;IACvE,eAAe,SAAiE;IAChF,UAAU,SAAiE;IAElE,KAAK,EAAE,MAAM,CAAC;IACvB,IAAa,OAAO,IAAI,MAAM,GAAG,IAAI,CAEpC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAG/B;IAEgC,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAClB,OAAO,EAAE,qBAAqB,CAAC;IACpD,OAAO,CAAC,mBAAmB,CAAsB;IACtD,cAAc,EAAE,cAAc,CAAC;IAC5B,iBAAiB,EAAE,iBAAiB,CAAC;IAEtE,OAAO,CAAC,iBAAiB,CAA0B;IACC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACjC,QAAQ,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAE/D,SAAS,EAAE,kBAAkB,CAAC;gBAG9D,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,EAC3B,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,SAAS,EACpB,qBAAqB,EAAE,qBAAqB,EAC5C,GAAG,EAAE,iBAAiB;IAKhC,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED,OAAO,CAAC,iBAAiB;IAYzB,oBAAoB;IAIpB,YAAY;IAIL,KAAK;IAsBZ,QAAQ;IAIR,kBAAkB,IAAI,IAAI;IAqB1B,qBAAqB,IAAI,IAAI;IAe7B,WAAW,IAAI,IAAI;IAiBnB,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,qCAAqC;IAsB7C,OAAO,CAAC,iCAAiC;IAczC,OAAO,CAAC,6BAA6B;yCA7M1B,kBAAkB;2CAAlB,kBAAkB;CAmN9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kirbydesign/designsystem",
3
- "version": "10.4.0",
3
+ "version": "10.4.1",
4
4
  "description": "The Kirby Design Angular Components.",
5
5
  "author": "kirby@bankdata.dk",
6
6
  "repository": {
@@ -21,7 +21,7 @@
21
21
  "dependencies": {
22
22
  "@floating-ui/dom": "^1.1.0",
23
23
  "@fontsource/roboto": "4.2.1",
24
- "@kirbydesign/core": "0.0.70",
24
+ "@kirbydesign/core": "0.0.71",
25
25
  "inputmask": "5.0.8",
26
26
  "tslib": "^2.3.0"
27
27
  },
package/readme.md CHANGED
@@ -65,11 +65,10 @@ export class AppModule {}
65
65
 
66
66
  #### Standalone application
67
67
 
68
- Import providers from `KirbyModule` when bootstrapping your application:
68
+ Set up environment providers for Kirby with the `provideKirby()` function:
69
69
 
70
70
  ```ts
71
- import { importProvidersFrom } from '@angular/core';
72
- import { KirbyModule } from '@kirbydesign/designsystem';
71
+ import { provideKirby } from '@kirbydesign/designsystem';
73
72
 
74
73
  ...
75
74