@kirbydesign/designsystem 8.5.2 → 8.6.0-input-bug-fix.0

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.
Files changed (157) hide show
  1. package/esm2020/action-group/action-group.component.mjs +3 -3
  2. package/esm2020/button/button.component.mjs +3 -3
  3. package/esm2020/fab-sheet/fab-sheet.component.mjs +2 -2
  4. package/esm2020/form-field/directives/date/date-input.directive.mjs +26 -5
  5. package/esm2020/form-field/input/input.component.mjs +27 -7
  6. package/esm2020/form-field/textarea/textarea.component.mjs +2 -2
  7. package/esm2020/grid/grid.component.mjs +2 -2
  8. package/esm2020/header/header.component.mjs +2 -2
  9. package/esm2020/item/item.component.mjs +2 -2
  10. package/esm2020/kirby-ionic-module/kirby-ionic.module.mjs +12 -16
  11. package/esm2020/modal/modal/footer/modal-footer.component.mjs +3 -3
  12. package/esm2020/modal/modal/services/modal.helper.mjs +6 -3
  13. package/esm2020/modal/modal-wrapper/config/modal-config.mjs +1 -1
  14. package/esm2020/modal/modal-wrapper/modal-wrapper.component.mjs +28 -10
  15. package/esm2020/modal/v2/footer/footer.component.mjs +2 -2
  16. package/esm2020/modal/v2/modal/modal.component.mjs +2 -2
  17. package/esm2020/modal/v2/wrapper/wrapper.component.mjs +2 -2
  18. package/esm2020/page/page.component.mjs +9 -19
  19. package/esm2020/tab-navigation/tab-navigation/tab-navigation.component.mjs +2 -2
  20. package/esm2020/tabs/tab-button/tab-button.component.mjs +2 -2
  21. package/esm2020/tabs/tabs.component.mjs +2 -2
  22. package/fesm2015/kirbydesign-designsystem-accordion.mjs +1 -0
  23. package/fesm2015/kirbydesign-designsystem-action-group.mjs +3 -2
  24. package/fesm2015/kirbydesign-designsystem-action-group.mjs.map +1 -1
  25. package/fesm2015/kirbydesign-designsystem-alert-experimental.mjs +1 -0
  26. package/fesm2015/kirbydesign-designsystem-avatar.mjs +1 -0
  27. package/fesm2015/kirbydesign-designsystem-button.mjs +3 -2
  28. package/fesm2015/kirbydesign-designsystem-button.mjs.map +1 -1
  29. package/fesm2015/kirbydesign-designsystem-calendar.mjs +1 -0
  30. package/fesm2015/kirbydesign-designsystem-card.mjs +1 -0
  31. package/fesm2015/kirbydesign-designsystem-chart.mjs +1 -0
  32. package/fesm2015/kirbydesign-designsystem-checkbox.mjs +1 -0
  33. package/fesm2015/kirbydesign-designsystem-data-table.mjs +1 -0
  34. package/fesm2015/kirbydesign-designsystem-divider.mjs +1 -0
  35. package/fesm2015/kirbydesign-designsystem-dropdown.mjs +1 -0
  36. package/fesm2015/kirbydesign-designsystem-empty-state.mjs +1 -0
  37. package/fesm2015/kirbydesign-designsystem-fab-sheet.mjs +3 -2
  38. package/fesm2015/kirbydesign-designsystem-flag.mjs +1 -0
  39. package/fesm2015/kirbydesign-designsystem-form-field.mjs +131 -91
  40. package/fesm2015/kirbydesign-designsystem-form-field.mjs.map +1 -1
  41. package/fesm2015/kirbydesign-designsystem-grid.mjs +3 -2
  42. package/fesm2015/kirbydesign-designsystem-header.mjs +3 -2
  43. package/fesm2015/kirbydesign-designsystem-header.mjs.map +1 -1
  44. package/fesm2015/kirbydesign-designsystem-helpers-scss.mjs +1 -0
  45. package/fesm2015/kirbydesign-designsystem-helpers.mjs +1 -0
  46. package/fesm2015/kirbydesign-designsystem-icon.mjs +1 -0
  47. package/fesm2015/kirbydesign-designsystem-item-group.mjs +1 -0
  48. package/fesm2015/kirbydesign-designsystem-item-sliding.mjs +1 -0
  49. package/fesm2015/kirbydesign-designsystem-item.mjs +3 -2
  50. package/fesm2015/kirbydesign-designsystem-item.mjs.map +1 -1
  51. package/fesm2015/kirbydesign-designsystem-kirby-app.mjs +1 -0
  52. package/fesm2015/kirbydesign-designsystem-kirby-ionic-module.mjs +9 -15
  53. package/fesm2015/kirbydesign-designsystem-kirby-ionic-module.mjs.map +1 -1
  54. package/fesm2015/kirbydesign-designsystem-list.mjs +1 -0
  55. package/fesm2015/kirbydesign-designsystem-loading-overlay.mjs +1 -0
  56. package/fesm2015/kirbydesign-designsystem-menu.mjs +1 -0
  57. package/fesm2015/kirbydesign-designsystem-modal-v2.mjs +7 -6
  58. package/fesm2015/kirbydesign-designsystem-modal.mjs +34 -12
  59. package/fesm2015/kirbydesign-designsystem-modal.mjs.map +1 -1
  60. package/fesm2015/kirbydesign-designsystem-page.mjs +9 -18
  61. package/fesm2015/kirbydesign-designsystem-page.mjs.map +1 -1
  62. package/fesm2015/kirbydesign-designsystem-popover.mjs +1 -0
  63. package/fesm2015/kirbydesign-designsystem-progress-circle.mjs +1 -0
  64. package/fesm2015/kirbydesign-designsystem-radio.mjs +1 -0
  65. package/fesm2015/kirbydesign-designsystem-range.mjs +1 -0
  66. package/fesm2015/kirbydesign-designsystem-reorder-list.mjs +1 -0
  67. package/fesm2015/kirbydesign-designsystem-router-outlet.mjs +1 -0
  68. package/fesm2015/kirbydesign-designsystem-section-header.mjs +1 -0
  69. package/fesm2015/kirbydesign-designsystem-shared-floating.mjs +1 -0
  70. package/fesm2015/kirbydesign-designsystem-shared-portal.mjs +1 -0
  71. package/fesm2015/kirbydesign-designsystem-shared.mjs +1 -0
  72. package/fesm2015/kirbydesign-designsystem-slide-button.mjs +1 -0
  73. package/fesm2015/kirbydesign-designsystem-slide.mjs +1 -0
  74. package/fesm2015/kirbydesign-designsystem-spinner.mjs +1 -0
  75. package/fesm2015/kirbydesign-designsystem-tab-navigation.mjs +3 -2
  76. package/fesm2015/kirbydesign-designsystem-tabs.mjs +5 -4
  77. package/fesm2015/kirbydesign-designsystem-testing-base.mjs +1 -0
  78. package/fesm2015/kirbydesign-designsystem-testing-jasmine.mjs +1 -0
  79. package/fesm2015/kirbydesign-designsystem-testing-jest.mjs +1 -0
  80. package/fesm2015/kirbydesign-designsystem-testing.mjs +1 -0
  81. package/fesm2015/kirbydesign-designsystem-toast.mjs +1 -0
  82. package/fesm2015/kirbydesign-designsystem-toggle-button.mjs +1 -0
  83. package/fesm2015/kirbydesign-designsystem-toggle.mjs +1 -0
  84. package/fesm2015/kirbydesign-designsystem-types.mjs +1 -0
  85. package/fesm2015/kirbydesign-designsystem.mjs +1 -0
  86. package/fesm2020/kirbydesign-designsystem-accordion.mjs +1 -0
  87. package/fesm2020/kirbydesign-designsystem-action-group.mjs +3 -2
  88. package/fesm2020/kirbydesign-designsystem-action-group.mjs.map +1 -1
  89. package/fesm2020/kirbydesign-designsystem-alert-experimental.mjs +1 -0
  90. package/fesm2020/kirbydesign-designsystem-avatar.mjs +1 -0
  91. package/fesm2020/kirbydesign-designsystem-button.mjs +3 -2
  92. package/fesm2020/kirbydesign-designsystem-button.mjs.map +1 -1
  93. package/fesm2020/kirbydesign-designsystem-calendar.mjs +1 -0
  94. package/fesm2020/kirbydesign-designsystem-card.mjs +1 -0
  95. package/fesm2020/kirbydesign-designsystem-chart.mjs +1 -0
  96. package/fesm2020/kirbydesign-designsystem-checkbox.mjs +1 -0
  97. package/fesm2020/kirbydesign-designsystem-data-table.mjs +1 -0
  98. package/fesm2020/kirbydesign-designsystem-divider.mjs +1 -0
  99. package/fesm2020/kirbydesign-designsystem-dropdown.mjs +1 -0
  100. package/fesm2020/kirbydesign-designsystem-empty-state.mjs +1 -0
  101. package/fesm2020/kirbydesign-designsystem-fab-sheet.mjs +3 -2
  102. package/fesm2020/kirbydesign-designsystem-flag.mjs +1 -0
  103. package/fesm2020/kirbydesign-designsystem-form-field.mjs +127 -87
  104. package/fesm2020/kirbydesign-designsystem-form-field.mjs.map +1 -1
  105. package/fesm2020/kirbydesign-designsystem-grid.mjs +3 -2
  106. package/fesm2020/kirbydesign-designsystem-header.mjs +3 -2
  107. package/fesm2020/kirbydesign-designsystem-header.mjs.map +1 -1
  108. package/fesm2020/kirbydesign-designsystem-helpers-scss.mjs +1 -0
  109. package/fesm2020/kirbydesign-designsystem-helpers.mjs +1 -0
  110. package/fesm2020/kirbydesign-designsystem-icon.mjs +1 -0
  111. package/fesm2020/kirbydesign-designsystem-item-group.mjs +1 -0
  112. package/fesm2020/kirbydesign-designsystem-item-sliding.mjs +1 -0
  113. package/fesm2020/kirbydesign-designsystem-item.mjs +3 -2
  114. package/fesm2020/kirbydesign-designsystem-item.mjs.map +1 -1
  115. package/fesm2020/kirbydesign-designsystem-kirby-app.mjs +1 -0
  116. package/fesm2020/kirbydesign-designsystem-kirby-ionic-module.mjs +12 -15
  117. package/fesm2020/kirbydesign-designsystem-kirby-ionic-module.mjs.map +1 -1
  118. package/fesm2020/kirbydesign-designsystem-list.mjs +1 -0
  119. package/fesm2020/kirbydesign-designsystem-loading-overlay.mjs +1 -0
  120. package/fesm2020/kirbydesign-designsystem-menu.mjs +1 -0
  121. package/fesm2020/kirbydesign-designsystem-modal-v2.mjs +7 -6
  122. package/fesm2020/kirbydesign-designsystem-modal.mjs +33 -11
  123. package/fesm2020/kirbydesign-designsystem-modal.mjs.map +1 -1
  124. package/fesm2020/kirbydesign-designsystem-page.mjs +9 -18
  125. package/fesm2020/kirbydesign-designsystem-page.mjs.map +1 -1
  126. package/fesm2020/kirbydesign-designsystem-popover.mjs +1 -0
  127. package/fesm2020/kirbydesign-designsystem-progress-circle.mjs +1 -0
  128. package/fesm2020/kirbydesign-designsystem-radio.mjs +1 -0
  129. package/fesm2020/kirbydesign-designsystem-range.mjs +1 -0
  130. package/fesm2020/kirbydesign-designsystem-reorder-list.mjs +1 -0
  131. package/fesm2020/kirbydesign-designsystem-router-outlet.mjs +1 -0
  132. package/fesm2020/kirbydesign-designsystem-section-header.mjs +1 -0
  133. package/fesm2020/kirbydesign-designsystem-shared-floating.mjs +1 -0
  134. package/fesm2020/kirbydesign-designsystem-shared-portal.mjs +1 -0
  135. package/fesm2020/kirbydesign-designsystem-shared.mjs +1 -0
  136. package/fesm2020/kirbydesign-designsystem-slide-button.mjs +1 -0
  137. package/fesm2020/kirbydesign-designsystem-slide.mjs +1 -0
  138. package/fesm2020/kirbydesign-designsystem-spinner.mjs +1 -0
  139. package/fesm2020/kirbydesign-designsystem-tab-navigation.mjs +3 -2
  140. package/fesm2020/kirbydesign-designsystem-tabs.mjs +5 -4
  141. package/fesm2020/kirbydesign-designsystem-testing-base.mjs +1 -0
  142. package/fesm2020/kirbydesign-designsystem-testing-jasmine.mjs +1 -0
  143. package/fesm2020/kirbydesign-designsystem-testing-jest.mjs +1 -0
  144. package/fesm2020/kirbydesign-designsystem-testing.mjs +1 -0
  145. package/fesm2020/kirbydesign-designsystem-toast.mjs +1 -0
  146. package/fesm2020/kirbydesign-designsystem-toggle-button.mjs +1 -0
  147. package/fesm2020/kirbydesign-designsystem-toggle.mjs +1 -0
  148. package/fesm2020/kirbydesign-designsystem-types.mjs +1 -0
  149. package/fesm2020/kirbydesign-designsystem.mjs +1 -0
  150. package/form-field/directives/date/date-input.directive.d.ts +12 -1
  151. package/form-field/input/input.component.d.ts +7 -3
  152. package/icon/src/README.md +16 -0
  153. package/modal/modal-wrapper/config/modal-config.d.ts +1 -0
  154. package/modal/modal-wrapper/modal-wrapper.component.d.ts +4 -1
  155. package/package.json +2 -2
  156. package/page/page.component.d.ts +4 -6
  157. package/README.md +0 -7
@@ -1,14 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Input, Component, ChangeDetectionStrategy, EventEmitter, HostBinding, HostListener, ElementRef, ContentChildren, ContentChild, LOCALE_ID, Inject, NgModule } from '@angular/core';
2
+ import { Directive, Input, Component, ChangeDetectionStrategy, LOCALE_ID, Inject, HostListener, EventEmitter, HostBinding, ElementRef, ContentChildren, ContentChild, NgModule } from '@angular/core';
3
3
  import * as i1 from '@kirbydesign/designsystem/helpers';
4
4
  import { UniqueIdGenerator, DesignTokenHelper } from '@kirbydesign/designsystem/helpers';
5
5
  import { RadioGroupComponent } from '@kirbydesign/designsystem/radio';
6
6
  import * as i4 from '@angular/common';
7
- import { CommonModule, getLocaleDateFormat, FormatWidth, getLocaleNumberSymbol, NumberSymbol } from '@angular/common';
8
- import * as i2 from '@kirbydesign/designsystem/types';
9
- import * as i3 from '@kirbydesign/designsystem/shared';
7
+ import { getLocaleDateFormat, FormatWidth, CommonModule, getLocaleNumberSymbol, NumberSymbol } from '@angular/common';
10
8
  import 'inputmask/lib/extensions/inputmask.date.extensions';
11
9
  import Inputmask from 'inputmask/lib/inputmask';
10
+ import * as i2 from '@kirbydesign/designsystem/types';
11
+ import * as i3 from '@kirbydesign/designsystem/shared';
12
12
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
13
13
  import 'inputmask/lib/extensions/inputmask.numeric.extensions';
14
14
 
@@ -79,18 +79,131 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
79
79
  type: Input
80
80
  }] } });
81
81
 
82
+ class DateInputDirective {
83
+ constructor(elementRef, renderer, locale) {
84
+ this.elementRef = elementRef;
85
+ this.renderer = renderer;
86
+ this.locale = locale;
87
+ this.prefillYear = false;
88
+ /**
89
+ * `isDateInput` is used to avoid removing the type attribute on the input element and calling updateMask()
90
+ * when the directive is not used on a date input.
91
+ * This is needed for the standalone component 'InputComponent', which includes the directive
92
+ * using the `hostDirectives` component decorator prop. Angular ignores the selector of directives
93
+ * applied in the `hostDirectives` property which effectively applies the directive to all kirby-inputs, not only date inputs.
94
+ * This check prevents the directive from executing it's masking on non-date inputs.
95
+ * See: https://angular.io/guide/directive-composition-api
96
+ */
97
+ this.isDateInput = false;
98
+ this.isDateInput = this.elementRef.nativeElement.type === 'date';
99
+ if (this.isDateInput) {
100
+ // Remove type to avoid user-agent specific behaviour for [type="date"]
101
+ this.elementRef.nativeElement.removeAttribute('type');
102
+ }
103
+ }
104
+ onInput() {
105
+ if (!this.isDateInput)
106
+ return;
107
+ this.updateMask(this.elementRef.nativeElement.value);
108
+ }
109
+ ngAfterViewInit() {
110
+ if (!this.isDateInput)
111
+ return;
112
+ this.initMask();
113
+ }
114
+ initMask() {
115
+ const inputFormat = this.getInputFormat();
116
+ const placeholder = this.getPlaceholder(inputFormat);
117
+ // Set initial placeholder ex. dd/mm/yyyy
118
+ this.renderer.setAttribute(this.elementRef.nativeElement, 'placeholder', placeholder);
119
+ // Init InputMask
120
+ new Inputmask('datetime', {
121
+ inputFormat,
122
+ placeholder,
123
+ prefillYear: this.prefillYear,
124
+ }).mask(this.elementRef.nativeElement);
125
+ // Append input overlay, so it's possible to style typed date differntly than the date-mask
126
+ this.appendMaskingElement();
127
+ }
128
+ // Keeps order and seperator from speficied locale
129
+ getInputFormat() {
130
+ const localeDateFormat = getLocaleDateFormat(this.locale, FormatWidth.Short);
131
+ return localeDateFormat
132
+ .toLowerCase()
133
+ .replace(/d+/, 'dd')
134
+ .replace(/m+/, 'mm')
135
+ .replace(/y+/, 'yyyy');
136
+ }
137
+ getPlaceholder(inputFormat) {
138
+ return this.locale === 'da' ? inputFormat.split('y').join('å') : inputFormat;
139
+ }
140
+ appendMaskingElement() {
141
+ const wrapper = this.wrapElement(this.elementRef.nativeElement);
142
+ this.renderer.addClass(wrapper, 'date-mask-wrapper');
143
+ this.maskingElement = this.renderer.createElement('div');
144
+ this.renderer.appendChild(wrapper, this.maskingElement);
145
+ this.renderer.addClass(this.maskingElement, 'date-mask');
146
+ }
147
+ wrapElement(element) {
148
+ const wrapper = this.renderer.createElement('div');
149
+ const parent = element.parentElement;
150
+ this.renderer.insertBefore(parent, wrapper, element);
151
+ this.renderer.appendChild(wrapper, element);
152
+ return wrapper;
153
+ }
154
+ updateMask(value) {
155
+ if (!this.maskingElement)
156
+ return;
157
+ const lastNumber = value.match(/.*?(\d)[^\d]*$/); // get last number in string
158
+ this.maskingElement.innerHTML = value
159
+ ? value.slice(0, value.lastIndexOf(lastNumber[1]) + 1)
160
+ : '';
161
+ }
162
+ }
163
+ /** @nocollapse */ DateInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DateInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Directive });
164
+ /** @nocollapse */ DateInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: DateInputDirective, isStandalone: true, selector: "[kirby-input][type=\"date\"]", inputs: { prefillYear: "prefillYear" }, host: { listeners: { "input": "onInput()" } }, ngImport: i0 });
165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DateInputDirective, decorators: [{
166
+ type: Directive,
167
+ args: [{
168
+ standalone: true,
169
+ selector: '[kirby-input][type="date"]',
170
+ }]
171
+ }], ctorParameters: function () {
172
+ return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
173
+ type: Inject,
174
+ args: [LOCALE_ID]
175
+ }] }];
176
+ }, propDecorators: { onInput: [{
177
+ type: HostListener,
178
+ args: ['input']
179
+ }], prefillYear: [{
180
+ type: Input
181
+ }] } });
182
+
82
183
  var InputSize;
83
184
  (function (InputSize) {
84
185
  InputSize["medium"] = "md";
85
186
  InputSize["large"] = "lg";
86
187
  })(InputSize || (InputSize = {}));
87
188
  class InputComponent {
88
- constructor() {
189
+ constructor(elementRef) {
190
+ this.elementRef = elementRef;
89
191
  this.kirbyChange = new EventEmitter();
90
192
  this.size = InputSize.large;
91
193
  this.autocomplete = 'off';
92
194
  this.autocorrect = 'off';
93
195
  }
196
+ ngOnInit() {
197
+ // The native input value is emitted here to make sure that
198
+ // the InputCounterComponent receives the value onInit,
199
+ // when [(ngModel)] is used on kirby-input.
200
+ setTimeout(() => {
201
+ const inputValue = this.elementRef.nativeElement.value;
202
+ if (inputValue) {
203
+ this.kirbyChange.emit(inputValue);
204
+ }
205
+ });
206
+ }
94
207
  set type(value) {
95
208
  const mappedValue = InputComponent.typeToInputmodeMap[value];
96
209
  if (mappedValue && !this.inputmode) {
@@ -114,12 +227,18 @@ InputComponent.typeToInputmodeMap = {
114
227
  number: 'decimal',
115
228
  search: 'search',
116
229
  };
117
- /** @nocollapse */ InputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
118
- /** @nocollapse */ InputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: InputComponent, isStandalone: true, selector: "input[kirby-input]", inputs: { type: "type", size: "size", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", value: "value", maxlength: "maxlength", inputmode: "inputmode" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class": "this.size", "class.borderless": "this.borderless", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.value": "this.value", "attr.maxlength": "this.maxlength", "attr.inputmode": "this.inputmode" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{transition:all 80ms linear 0ms;transition-property:background-color}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:var(--kirby-inputs-background-color-hover);cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:var(--kirby-inputs-background-color-active)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
230
+ /** @nocollapse */ InputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: InputComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
231
+ /** @nocollapse */ InputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: InputComponent, isStandalone: true, selector: "input[kirby-input]", inputs: { type: "type", size: "size", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", value: "value", maxlength: "maxlength", inputmode: "inputmode" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class": "this.size", "class.borderless": "this.borderless", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.value": "this.value", "attr.maxlength": "this.maxlength", "attr.inputmode": "this.inputmode" } }, usesOnChanges: true, hostDirectives: [{ directive: DateInputDirective, inputs: ["prefillYear", "prefillYear"] }], ngImport: i0, template: '', isInline: true, styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{transition:all 80ms linear 0ms;transition-property:background-color}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:var(--kirby-inputs-background-color-hover);cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:var(--kirby-inputs-background-color-active)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
119
232
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: InputComponent, decorators: [{
120
233
  type: Component,
121
- args: [{ standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'input[kirby-input]', template: '', styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{transition:all 80ms linear 0ms;transition-property:background-color}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:var(--kirby-inputs-background-color-hover);cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:var(--kirby-inputs-background-color-active)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"] }]
122
- }], propDecorators: { type: [{
234
+ args: [{ standalone: true, imports: [CommonModule], hostDirectives: [
235
+ {
236
+ directive: DateInputDirective,
237
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
238
+ inputs: ['prefillYear'],
239
+ },
240
+ ], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'input[kirby-input]', template: '', styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{transition:all 80ms linear 0ms;transition-property:background-color}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:var(--kirby-inputs-background-color-hover);cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:var(--kirby-inputs-background-color-active)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"] }]
241
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { type: [{
123
242
  type: Input
124
243
  }], size: [{
125
244
  type: HostBinding,
@@ -192,10 +311,10 @@ class TextareaComponent {
192
311
  }
193
312
  }
194
313
  /** @nocollapse */ TextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
195
- /** @nocollapse */ TextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TextareaComponent, isStandalone: true, selector: "textarea[kirby-textarea]", inputs: { value: "value", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", maxlength: "maxlength" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class.borderless": "this.borderless", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.maxlength": "this.maxlength" } }, usesOnChanges: true, ngImport: i0, template: "<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n", styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{transition:all 80ms linear 0ms;transition-property:background-color;font-family:var(--kirby-font-family);resize:none}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:#f5f5f5;cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:#ebebeb}@media (min-width: 721px){:host{resize:vertical}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
314
+ /** @nocollapse */ TextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TextareaComponent, isStandalone: true, selector: "textarea[kirby-textarea]", inputs: { value: "value", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", maxlength: "maxlength" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class.borderless": "this.borderless", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.maxlength": "this.maxlength" } }, usesOnChanges: true, ngImport: i0, template: "<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n", styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{transition:all 80ms linear 0ms;transition-property:background-color;font-family:var(--kirby-font-family);resize:none}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:#f5f5f5;cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:#ebebeb}@media (min-width: 768px){:host{resize:vertical}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
196
315
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TextareaComponent, decorators: [{
197
316
  type: Component,
198
- args: [{ standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'textarea[kirby-textarea]', template: "<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n", styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{transition:all 80ms linear 0ms;transition-property:background-color;font-family:var(--kirby-font-family);resize:none}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:#f5f5f5;cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:#ebebeb}@media (min-width: 721px){:host{resize:vertical}}\n"] }]
317
+ args: [{ standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'textarea[kirby-textarea]', template: "<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n", styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;display:block;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}:host{transition:all 80ms linear 0ms;transition-property:background-color;font-family:var(--kirby-font-family);resize:none}@media (hover: hover){:host:hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:#f5f5f5;cursor:text}}:host:active,:host.interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:#ebebeb}@media (min-width: 768px){:host{resize:vertical}}\n"] }]
199
318
  }], propDecorators: { value: [{
200
319
  type: Input
201
320
  }], borderless: [{
@@ -356,86 +475,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
356
475
  args: ['kirbyRegisterFormField']
357
476
  }] } });
358
477
 
359
- class DateInputDirective {
360
- constructor(elementRef, renderer, locale) {
361
- this.elementRef = elementRef;
362
- this.renderer = renderer;
363
- this.locale = locale;
364
- // Remove type to avoid user-agent specific behaviour for [type="date"]
365
- this.elementRef.nativeElement.removeAttribute('type');
366
- }
367
- onInput() {
368
- this.updateMask(this.elementRef.nativeElement.value);
369
- }
370
- ngAfterViewInit() {
371
- this.initMask();
372
- }
373
- initMask() {
374
- const inputFormat = this.getInputFormat();
375
- const placeholder = this.getPlaceholder(inputFormat);
376
- // Set initial placeholder ex. dd/mm/yyyy
377
- this.renderer.setAttribute(this.elementRef.nativeElement, 'placeholder', placeholder);
378
- // Init InputMask
379
- new Inputmask('datetime', {
380
- inputFormat,
381
- placeholder,
382
- }).mask(this.elementRef.nativeElement);
383
- // Append input overlay, so it's possible to style typed date differntly than the date-mask
384
- this.appendMaskingElement();
385
- }
386
- // Keeps order and seperator from speficied locale
387
- getInputFormat() {
388
- const localeDateFormat = getLocaleDateFormat(this.locale, FormatWidth.Short);
389
- return localeDateFormat
390
- .toLowerCase()
391
- .replace(/d+/, 'dd')
392
- .replace(/m+/, 'mm')
393
- .replace(/y+/, 'yyyy');
394
- }
395
- getPlaceholder(inputFormat) {
396
- return this.locale === 'da' ? inputFormat.split('y').join('å') : inputFormat;
397
- }
398
- appendMaskingElement() {
399
- const wrapper = this.wrapElement(this.elementRef.nativeElement);
400
- this.renderer.addClass(wrapper, 'date-mask-wrapper');
401
- this.maskingElement = this.renderer.createElement('div');
402
- this.renderer.appendChild(wrapper, this.maskingElement);
403
- this.renderer.addClass(this.maskingElement, 'date-mask');
404
- }
405
- wrapElement(element) {
406
- const wrapper = this.renderer.createElement('div');
407
- const parent = element.parentElement;
408
- this.renderer.insertBefore(parent, wrapper, element);
409
- this.renderer.appendChild(wrapper, element);
410
- return wrapper;
411
- }
412
- updateMask(value) {
413
- if (!this.maskingElement)
414
- return;
415
- const lastNumber = value.match(/.*?(\d)[^\d]*$/); // get last number in string
416
- this.maskingElement.innerHTML = value
417
- ? value.slice(0, value.lastIndexOf(lastNumber[1]) + 1)
418
- : '';
419
- }
420
- }
421
- /** @nocollapse */ DateInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DateInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Directive });
422
- /** @nocollapse */ DateInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: DateInputDirective, isStandalone: true, selector: "[kirby-input][type=\"date\"]", host: { listeners: { "input": "onInput()" } }, ngImport: i0 });
423
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: DateInputDirective, decorators: [{
424
- type: Directive,
425
- args: [{
426
- standalone: true,
427
- selector: '[kirby-input][type="date"]',
428
- }]
429
- }], ctorParameters: function () {
430
- return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
431
- type: Inject,
432
- args: [LOCALE_ID]
433
- }] }];
434
- }, propDecorators: { onInput: [{
435
- type: HostListener,
436
- args: ['input']
437
- }] } });
438
-
439
478
  class DecimalMaskDirective {
440
479
  constructor(elementRef, locale) {
441
480
  this.elementRef = elementRef;
@@ -575,3 +614,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
575
614
 
576
615
  export { AffixDirective, DateInputDirective, DecimalMaskDirective, FormFieldComponent, FormFieldMessageComponent, FormFieldModule, InputComponent, InputCounterComponent, InputSize, TextareaComponent };
577
616
  //# sourceMappingURL=kirbydesign-designsystem-form-field.mjs.map
617
+ //# sourceMappingURL=kirbydesign-designsystem-form-field.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem-form-field.mjs","sources":["../../../../libs/designsystem/form-field/src/directives/affix/affix.directive.ts","../../../../libs/designsystem/form-field/src/form-field-message/form-field-message.component.ts","../../../../libs/designsystem/form-field/src/form-field-message/form-field-message.component.html","../../../../libs/designsystem/form-field/src/input-counter/input-counter.component.ts","../../../../libs/designsystem/form-field/src/input-counter/input-counter.component.html","../../../../libs/designsystem/form-field/src/input/input.component.ts","../../../../libs/designsystem/form-field/src/textarea/textarea.component.ts","../../../../libs/designsystem/form-field/src/textarea/textarea.component.html","../../../../libs/designsystem/form-field/src/form-field.component.ts","../../../../libs/designsystem/form-field/src/form-field.component.html","../../../../libs/designsystem/form-field/src/directives/date/date-input.directive.ts","../../../../libs/designsystem/form-field/src/directives/decimal-mask/decimal-mask.directive.ts","../../../../libs/designsystem/form-field/src/form-field.module.ts","../../../../libs/designsystem/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 { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kirby-form-field-message',\n styleUrls: ['./form-field-message.component.scss'],\n templateUrl: './form-field-message.component.html',\n})\nexport class FormFieldMessageComponent {\n @Input() text: string;\n @Input() position: 'left' | 'right' = 'left';\n}\n","{{ text }}\n<ng-content></ng-content>\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { 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})\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 EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\nexport enum InputSize {\n medium = 'md',\n large = 'lg',\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule],\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 {\n private static typeToInputmodeMap = {\n number: 'decimal',\n search: 'search',\n };\n\n kirbyChange = new EventEmitter<string>();\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('class.error')\n @Input()\n hasError: boolean;\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 @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 ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\n@Component({\n standalone: true,\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 {\n kirbyChange = new EventEmitter<string>();\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('class.error')\n @Input()\n hasError: boolean;\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 @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 ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\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 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 { AffixDirective } from './directives/affix/affix.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})\nexport class FormFieldComponent\n implements AfterContentChecked, AfterContentInit, OnInit, OnDestroy\n{\n private isRegistered = false;\n private element: HTMLElement;\n private inputElement: HTMLInputElement | HTMLTextAreaElement;\n private isTouch: boolean;\n _labelId = UniqueIdGenerator.scopedTo('kirby-form-field-label').next();\n\n @Input() label: string;\n @Input() message: string;\n\n @ContentChildren(AffixDirective) affixElements: QueryList<AffixDirective>;\n @ContentChild(InputCounterComponent, { static: false }) counter: InputCounterComponent;\n @ContentChild(RadioGroupComponent) private radioGroupComponent: RadioGroupComponent;\n @ContentChild(RadioGroupComponent, { read: ElementRef })\n private radioGroupElement: ElementRef<HTMLElement>;\n\n @ContentChild(InputComponent, { read: ElementRef }) input: ElementRef<HTMLInputElement>;\n @ContentChild(TextareaComponent, { read: ElementRef }) textarea: ElementRef<HTMLTextAreaElement>;\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private platform: PlatformService,\n private renderer: Renderer2,\n private windowRef: WindowRef,\n private resizeObserverService: ResizeObserverService\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 && this.radioGroupComponent.focus();\n }\n\n public focus() {\n if (!this.inputElement) return;\n\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.inputElement.dispatchEvent(touchStart);\n this.inputElement.dispatchEvent(touchEnd);\n } else {\n this.inputElement.focus();\n }\n }\n\n ngOnInit() {\n this.isTouch = this.platform.isTouch();\n }\n\n ngAfterContentInit(): void {\n if (this.label && this.radioGroupElement) {\n this.renderer.setAttribute(\n this.radioGroupElement.nativeElement,\n 'aria-labelledby',\n this._labelId\n );\n }\n\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 = 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.inputElement) {\n this.inputElement = this.element.querySelector('input, textarea');\n }\n\n // TODO: remove \"!this.inputElement.readOnly\" when ionic has fixed input click issue\n // https://github.com/ionic-team/ionic-framework/issues/22740\n if (\n !this.isRegistered &&\n this.element.isConnected &&\n !!this.inputElement &&\n !this.inputElement.readOnly\n ) {\n // Host is connected to dom and slotted input/textarea is present:\n this.isRegistered = true;\n this.dispatchLoadEvent();\n }\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}\n","<label *ngIf=\"_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</label>\n\n<ng-container *ngIf=\"!_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</ng-container>\n\n<div *ngIf=\"message || counter\" class=\"texts\">\n <kirby-form-field-message\n *ngIf=\"message\"\n class=\"message\"\n [text]=\"message\"\n ></kirby-form-field-message>\n\n <div *ngIf=\"counter\" class=\"counter\">\n <ng-content select=\"kirby-input-counter\"></ng-content>\n </div>\n</div>\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 </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 { FormatWidth, getLocaleDateFormat } from '@angular/common';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Inject,\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 selector: '[kirby-input][type=\"date\"]',\n})\nexport class DateInputDirective implements AfterViewInit {\n @HostListener('input')\n onInput() {\n this.updateMask(this.elementRef.nativeElement.value);\n }\n\n private maskingElement: HTMLElement;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Inject(LOCALE_ID) private locale: string\n ) {\n // Remove type to avoid user-agent specific behaviour for [type=\"date\"]\n this.elementRef.nativeElement.removeAttribute('type');\n }\n\n ngAfterViewInit(): void {\n this.initMask();\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 }).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 { 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\n @Input() set allowMinus(allowMinus: boolean) {\n this._allowMinus = allowMinus || (this.min || 0) < 0;\n }\n\n @Input() set disableGroupSeperator(disabled: string) {\n this._groupSeperatorDisabled = String(disabled) === '' || String(disabled) === 'true';\n }\n\n @Input() set maxlength(maxlength: number) {\n this._maxlength = maxlength;\n\n const maxlengthValue = parseInt('9'.repeat(maxlength));\n this.max = this.getMax(maxlengthValue);\n this.min = this.getMin(maxlengthValue);\n }\n\n groupSeparator = getLocaleNumberSymbol(this.locale, NumberSymbol.Group);\n radixPoint = getLocaleNumberSymbol(this.locale, NumberSymbol.Decimal);\n inputmask: InputMask;\n\n _allowMinus = false;\n _maxlength: number;\n _groupSeperatorDisabled: boolean;\n\n onChange = (_: string) => {};\n\n constructor(private elementRef: ElementRef, @Inject(LOCALE_ID) private locale: string) {}\n\n ngOnInit(): void {\n // Set type=\"text\", because functionality like 'setSelectionRange' are not supported on type=\"number\"\n this.elementRef.nativeElement.setAttribute('type', 'text');\n\n // Remove maxlength as this is handled by the mask\n this.elementRef.nativeElement.removeAttribute('maxlength');\n\n this.initMask();\n }\n\n writeValue(val: number): void {\n if (!this.inputmask) return;\n const formattedValue = String(val).replace('.', this.radixPoint);\n this.inputmask.setValue(formattedValue);\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n\n registerOnTouched(_: any): void {}\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 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 { 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';\n\nconst declarations = [FormFieldComponent, FormFieldMessageComponent, InputCounterComponent];\n\n@NgModule({\n imports: [CommonModule, DecimalMaskDirective],\n declarations: [...declarations],\n exports: [...declarations, DecimalMaskDirective],\n})\nexport class FormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.FormFieldMessageComponent","i1","i5.FormFieldMessageComponent"],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem-form-field.mjs","sources":["../../../../libs/designsystem/form-field/src/directives/affix/affix.directive.ts","../../../../libs/designsystem/form-field/src/form-field-message/form-field-message.component.ts","../../../../libs/designsystem/form-field/src/form-field-message/form-field-message.component.html","../../../../libs/designsystem/form-field/src/input-counter/input-counter.component.ts","../../../../libs/designsystem/form-field/src/input-counter/input-counter.component.html","../../../../libs/designsystem/form-field/src/directives/date/date-input.directive.ts","../../../../libs/designsystem/form-field/src/input/input.component.ts","../../../../libs/designsystem/form-field/src/textarea/textarea.component.ts","../../../../libs/designsystem/form-field/src/textarea/textarea.component.html","../../../../libs/designsystem/form-field/src/form-field.component.ts","../../../../libs/designsystem/form-field/src/form-field.component.html","../../../../libs/designsystem/form-field/src/directives/decimal-mask/decimal-mask.directive.ts","../../../../libs/designsystem/form-field/src/form-field.module.ts","../../../../libs/designsystem/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 { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kirby-form-field-message',\n styleUrls: ['./form-field-message.component.scss'],\n templateUrl: './form-field-message.component.html',\n})\nexport class FormFieldMessageComponent {\n @Input() text: string;\n @Input() position: 'left' | 'right' = 'left';\n}\n","{{ text }}\n<ng-content></ng-content>\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { 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})\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 { 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 selector: '[kirby-input][type=\"date\"]',\n})\nexport class DateInputDirective implements AfterViewInit {\n @HostListener('input')\n onInput() {\n if (!this.isDateInput) return;\n\n this.updateMask(this.elementRef.nativeElement.value);\n }\n\n @Input() prefillYear = 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 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 this.elementRef.nativeElement.removeAttribute('type');\n }\n }\n\n ngAfterViewInit(): void {\n if (!this.isDateInput) return;\n\n this.initMask();\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 { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { DateInputDirective } from '../directives/date/date-input.directive';\n\nexport enum InputSize {\n medium = 'md',\n large = 'lg',\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n hostDirectives: [\n {\n directive: DateInputDirective,\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['prefillYear'],\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 {\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 private static typeToInputmodeMap = {\n number: 'decimal',\n search: 'search',\n };\n\n kirbyChange = new EventEmitter<string>();\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('class.error')\n @Input()\n hasError: boolean;\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 @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 ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\n@Component({\n standalone: true,\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 {\n kirbyChange = new EventEmitter<string>();\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('class.error')\n @Input()\n hasError: boolean;\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 @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 ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\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 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 { AffixDirective } from './directives/affix/affix.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})\nexport class FormFieldComponent\n implements AfterContentChecked, AfterContentInit, OnInit, OnDestroy\n{\n private isRegistered = false;\n private element: HTMLElement;\n private inputElement: HTMLInputElement | HTMLTextAreaElement;\n private isTouch: boolean;\n _labelId = UniqueIdGenerator.scopedTo('kirby-form-field-label').next();\n\n @Input() label: string;\n @Input() message: string;\n\n @ContentChildren(AffixDirective) affixElements: QueryList<AffixDirective>;\n @ContentChild(InputCounterComponent, { static: false }) counter: InputCounterComponent;\n @ContentChild(RadioGroupComponent) private radioGroupComponent: RadioGroupComponent;\n @ContentChild(RadioGroupComponent, { read: ElementRef })\n private radioGroupElement: ElementRef<HTMLElement>;\n\n @ContentChild(InputComponent, { read: ElementRef }) input: ElementRef<HTMLInputElement>;\n @ContentChild(TextareaComponent, { read: ElementRef }) textarea: ElementRef<HTMLTextAreaElement>;\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private platform: PlatformService,\n private renderer: Renderer2,\n private windowRef: WindowRef,\n private resizeObserverService: ResizeObserverService\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 && this.radioGroupComponent.focus();\n }\n\n public focus() {\n if (!this.inputElement) return;\n\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.inputElement.dispatchEvent(touchStart);\n this.inputElement.dispatchEvent(touchEnd);\n } else {\n this.inputElement.focus();\n }\n }\n\n ngOnInit() {\n this.isTouch = this.platform.isTouch();\n }\n\n ngAfterContentInit(): void {\n if (this.label && this.radioGroupElement) {\n this.renderer.setAttribute(\n this.radioGroupElement.nativeElement,\n 'aria-labelledby',\n this._labelId\n );\n }\n\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 = 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.inputElement) {\n this.inputElement = this.element.querySelector('input, textarea');\n }\n\n // TODO: remove \"!this.inputElement.readOnly\" when ionic has fixed input click issue\n // https://github.com/ionic-team/ionic-framework/issues/22740\n if (\n !this.isRegistered &&\n this.element.isConnected &&\n !!this.inputElement &&\n !this.inputElement.readOnly\n ) {\n // Host is connected to dom and slotted input/textarea is present:\n this.isRegistered = true;\n this.dispatchLoadEvent();\n }\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}\n","<label *ngIf=\"_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</label>\n\n<ng-container *ngIf=\"!_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</ng-container>\n\n<div *ngIf=\"message || counter\" class=\"texts\">\n <kirby-form-field-message\n *ngIf=\"message\"\n class=\"message\"\n [text]=\"message\"\n ></kirby-form-field-message>\n\n <div *ngIf=\"counter\" class=\"counter\">\n <ng-content select=\"kirby-input-counter\"></ng-content>\n </div>\n</div>\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 </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\n @Input() set allowMinus(allowMinus: boolean) {\n this._allowMinus = allowMinus || (this.min || 0) < 0;\n }\n\n @Input() set disableGroupSeperator(disabled: string) {\n this._groupSeperatorDisabled = String(disabled) === '' || String(disabled) === 'true';\n }\n\n @Input() set maxlength(maxlength: number) {\n this._maxlength = maxlength;\n\n const maxlengthValue = parseInt('9'.repeat(maxlength));\n this.max = this.getMax(maxlengthValue);\n this.min = this.getMin(maxlengthValue);\n }\n\n groupSeparator = getLocaleNumberSymbol(this.locale, NumberSymbol.Group);\n radixPoint = getLocaleNumberSymbol(this.locale, NumberSymbol.Decimal);\n inputmask: InputMask;\n\n _allowMinus = false;\n _maxlength: number;\n _groupSeperatorDisabled: boolean;\n\n onChange = (_: string) => {};\n\n constructor(private elementRef: ElementRef, @Inject(LOCALE_ID) private locale: string) {}\n\n ngOnInit(): void {\n // Set type=\"text\", because functionality like 'setSelectionRange' are not supported on type=\"number\"\n this.elementRef.nativeElement.setAttribute('type', 'text');\n\n // Remove maxlength as this is handled by the mask\n this.elementRef.nativeElement.removeAttribute('maxlength');\n\n this.initMask();\n }\n\n writeValue(val: number): void {\n if (!this.inputmask) return;\n const formattedValue = String(val).replace('.', this.radixPoint);\n this.inputmask.setValue(formattedValue);\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n\n registerOnTouched(_: any): void {}\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 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 { 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';\n\nconst declarations = [FormFieldComponent, FormFieldMessageComponent, InputCounterComponent];\n\n@NgModule({\n imports: [CommonModule, DecimalMaskDirective],\n declarations: [...declarations],\n exports: [...declarations, DecimalMaskDirective],\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","i5.FormFieldMessageComponent"],"mappings":"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"}
@@ -116,10 +116,10 @@ class GridComponent {
116
116
  }
117
117
  }
118
118
  /** @nocollapse */ GridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GridComponent, deps: [{ token: BreakpointHelperService }], target: i0.ɵɵFactoryTarget.Component });
119
- /** @nocollapse */ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: GridComponent, isStandalone: true, selector: "kirby-grid", inputs: { maxColumns: "maxColumns", cardConfigurations: "cardConfigurations" }, host: { properties: { "attr.max-columns": "this.maxColumns" } }, ngImport: i0, template: "<ng-container *ngFor=\"let card of cards\">\n <ng-template\n [kirbyLoadComponent]=\"card.configuration\"\n [cssClass]=\"'grid-item--col-' + card.colSpan\"\n ></ng-template>\n</ng-container>\n", styles: [":host{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(var(--kirby-grid-item-min-height, auto),auto);gap:24px;max-width:var(--kirby-page-max-width);margin:0 auto}@media (min-width: 721px){:host[max-columns=\"1\"]{grid-template-columns:repeat(1,1fr)}:host[max-columns=\"2\"]{grid-template-columns:repeat(2,1fr)}:host[max-columns=\"3\"]{grid-template-columns:repeat(3,1fr)}:host[max-columns=\"4\"]{grid-template-columns:repeat(4,1fr)}:host[max-columns=\"5\"]{grid-template-columns:repeat(5,1fr)}:host[max-columns=\"6\"]{grid-template-columns:repeat(6,1fr)}:host[max-columns=\"7\"]{grid-template-columns:repeat(7,1fr)}:host[max-columns=\"8\"]{grid-template-columns:repeat(8,1fr)}:host[max-columns=\"9\"]{grid-template-columns:repeat(9,1fr)}:host[max-columns=\"10\"]{grid-template-columns:repeat(10,1fr)}}@media (min-width: 721px){::ng-deep .grid-item--col-1{grid-column:span 1}}@media (min-width: 721px){::ng-deep .grid-item--col-2{grid-column:span 2}}@media (min-width: 721px){::ng-deep .grid-item--col-3{grid-column:span 3}}@media (min-width: 721px){::ng-deep .grid-item--col-4{grid-column:span 4}}@media (min-width: 721px){::ng-deep .grid-item--col-5{grid-column:span 5}}@media (min-width: 721px){::ng-deep .grid-item--col-6{grid-column:span 6}}@media (min-width: 721px){::ng-deep .grid-item--col-7{grid-column:span 7}}@media (min-width: 721px){::ng-deep .grid-item--col-8{grid-column:span 8}}@media (min-width: 721px){::ng-deep .grid-item--col-9{grid-column:span 9}}@media (min-width: 721px){::ng-deep .grid-item--col-10{grid-column:span 10}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ComponentLoaderDirective, selector: "[kirbyLoadComponent]", inputs: ["kirbyLoadComponent", "cssClass"] }] });
119
+ /** @nocollapse */ GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: GridComponent, isStandalone: true, selector: "kirby-grid", inputs: { maxColumns: "maxColumns", cardConfigurations: "cardConfigurations" }, host: { properties: { "attr.max-columns": "this.maxColumns" } }, ngImport: i0, template: "<ng-container *ngFor=\"let card of cards\">\n <ng-template\n [kirbyLoadComponent]=\"card.configuration\"\n [cssClass]=\"'grid-item--col-' + card.colSpan\"\n ></ng-template>\n</ng-container>\n", styles: [":host{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(var(--kirby-grid-item-min-height, auto),auto);gap:24px;max-width:var(--kirby-page-max-width);margin:0 auto}@media (min-width: 768px){:host[max-columns=\"1\"]{grid-template-columns:repeat(1,1fr)}:host[max-columns=\"2\"]{grid-template-columns:repeat(2,1fr)}:host[max-columns=\"3\"]{grid-template-columns:repeat(3,1fr)}:host[max-columns=\"4\"]{grid-template-columns:repeat(4,1fr)}:host[max-columns=\"5\"]{grid-template-columns:repeat(5,1fr)}:host[max-columns=\"6\"]{grid-template-columns:repeat(6,1fr)}:host[max-columns=\"7\"]{grid-template-columns:repeat(7,1fr)}:host[max-columns=\"8\"]{grid-template-columns:repeat(8,1fr)}:host[max-columns=\"9\"]{grid-template-columns:repeat(9,1fr)}:host[max-columns=\"10\"]{grid-template-columns:repeat(10,1fr)}}@media (min-width: 768px){::ng-deep .grid-item--col-1{grid-column:span 1}}@media (min-width: 768px){::ng-deep .grid-item--col-2{grid-column:span 2}}@media (min-width: 768px){::ng-deep .grid-item--col-3{grid-column:span 3}}@media (min-width: 768px){::ng-deep .grid-item--col-4{grid-column:span 4}}@media (min-width: 768px){::ng-deep .grid-item--col-5{grid-column:span 5}}@media (min-width: 768px){::ng-deep .grid-item--col-6{grid-column:span 6}}@media (min-width: 768px){::ng-deep .grid-item--col-7{grid-column:span 7}}@media (min-width: 768px){::ng-deep .grid-item--col-8{grid-column:span 8}}@media (min-width: 768px){::ng-deep .grid-item--col-9{grid-column:span 9}}@media (min-width: 768px){::ng-deep .grid-item--col-10{grid-column:span 10}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ComponentLoaderDirective, selector: "[kirbyLoadComponent]", inputs: ["kirbyLoadComponent", "cssClass"] }] });
120
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: GridComponent, decorators: [{
121
121
  type: Component,
122
- args: [{ standalone: true, imports: [CommonModule, ComponentLoaderDirective], selector: 'kirby-grid', template: "<ng-container *ngFor=\"let card of cards\">\n <ng-template\n [kirbyLoadComponent]=\"card.configuration\"\n [cssClass]=\"'grid-item--col-' + card.colSpan\"\n ></ng-template>\n</ng-container>\n", styles: [":host{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(var(--kirby-grid-item-min-height, auto),auto);gap:24px;max-width:var(--kirby-page-max-width);margin:0 auto}@media (min-width: 721px){:host[max-columns=\"1\"]{grid-template-columns:repeat(1,1fr)}:host[max-columns=\"2\"]{grid-template-columns:repeat(2,1fr)}:host[max-columns=\"3\"]{grid-template-columns:repeat(3,1fr)}:host[max-columns=\"4\"]{grid-template-columns:repeat(4,1fr)}:host[max-columns=\"5\"]{grid-template-columns:repeat(5,1fr)}:host[max-columns=\"6\"]{grid-template-columns:repeat(6,1fr)}:host[max-columns=\"7\"]{grid-template-columns:repeat(7,1fr)}:host[max-columns=\"8\"]{grid-template-columns:repeat(8,1fr)}:host[max-columns=\"9\"]{grid-template-columns:repeat(9,1fr)}:host[max-columns=\"10\"]{grid-template-columns:repeat(10,1fr)}}@media (min-width: 721px){::ng-deep .grid-item--col-1{grid-column:span 1}}@media (min-width: 721px){::ng-deep .grid-item--col-2{grid-column:span 2}}@media (min-width: 721px){::ng-deep .grid-item--col-3{grid-column:span 3}}@media (min-width: 721px){::ng-deep .grid-item--col-4{grid-column:span 4}}@media (min-width: 721px){::ng-deep .grid-item--col-5{grid-column:span 5}}@media (min-width: 721px){::ng-deep .grid-item--col-6{grid-column:span 6}}@media (min-width: 721px){::ng-deep .grid-item--col-7{grid-column:span 7}}@media (min-width: 721px){::ng-deep .grid-item--col-8{grid-column:span 8}}@media (min-width: 721px){::ng-deep .grid-item--col-9{grid-column:span 9}}@media (min-width: 721px){::ng-deep .grid-item--col-10{grid-column:span 10}}\n"] }]
122
+ args: [{ standalone: true, imports: [CommonModule, ComponentLoaderDirective], selector: 'kirby-grid', template: "<ng-container *ngFor=\"let card of cards\">\n <ng-template\n [kirbyLoadComponent]=\"card.configuration\"\n [cssClass]=\"'grid-item--col-' + card.colSpan\"\n ></ng-template>\n</ng-container>\n", styles: [":host{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(var(--kirby-grid-item-min-height, auto),auto);gap:24px;max-width:var(--kirby-page-max-width);margin:0 auto}@media (min-width: 768px){:host[max-columns=\"1\"]{grid-template-columns:repeat(1,1fr)}:host[max-columns=\"2\"]{grid-template-columns:repeat(2,1fr)}:host[max-columns=\"3\"]{grid-template-columns:repeat(3,1fr)}:host[max-columns=\"4\"]{grid-template-columns:repeat(4,1fr)}:host[max-columns=\"5\"]{grid-template-columns:repeat(5,1fr)}:host[max-columns=\"6\"]{grid-template-columns:repeat(6,1fr)}:host[max-columns=\"7\"]{grid-template-columns:repeat(7,1fr)}:host[max-columns=\"8\"]{grid-template-columns:repeat(8,1fr)}:host[max-columns=\"9\"]{grid-template-columns:repeat(9,1fr)}:host[max-columns=\"10\"]{grid-template-columns:repeat(10,1fr)}}@media (min-width: 768px){::ng-deep .grid-item--col-1{grid-column:span 1}}@media (min-width: 768px){::ng-deep .grid-item--col-2{grid-column:span 2}}@media (min-width: 768px){::ng-deep .grid-item--col-3{grid-column:span 3}}@media (min-width: 768px){::ng-deep .grid-item--col-4{grid-column:span 4}}@media (min-width: 768px){::ng-deep .grid-item--col-5{grid-column:span 5}}@media (min-width: 768px){::ng-deep .grid-item--col-6{grid-column:span 6}}@media (min-width: 768px){::ng-deep .grid-item--col-7{grid-column:span 7}}@media (min-width: 768px){::ng-deep .grid-item--col-8{grid-column:span 8}}@media (min-width: 768px){::ng-deep .grid-item--col-9{grid-column:span 9}}@media (min-width: 768px){::ng-deep .grid-item--col-10{grid-column:span 10}}\n"] }]
123
123
  }], ctorParameters: function () { return [{ type: BreakpointHelperService }]; }, propDecorators: { maxColumns: [{
124
124
  type: HostBinding,
125
125
  args: ['attr.max-columns']
@@ -135,3 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
135
135
 
136
136
  export { BreakpointHelperService, GridCardConfiguration, GridComponent };
137
137
  //# sourceMappingURL=kirbydesign-designsystem-grid.mjs.map
138
+ //# sourceMappingURL=kirbydesign-designsystem-grid.mjs.map