@kirbydesign/designsystem 10.3.1 → 10.4.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.
- package/README.md +7 -0
- package/calendar/calendar.component.d.ts.map +1 -1
- package/checkbox/checkbox.component.d.ts +5 -3
- package/checkbox/checkbox.component.d.ts.map +1 -1
- package/config/index.d.ts +6 -0
- package/config/kirbydesign-designsystem-config.d.ts.map +1 -0
- package/config/provide-kirby.d.ts +27 -0
- package/config/provide-kirby.d.ts.map +1 -0
- package/config/public_api.d.ts +2 -0
- package/config/public_api.d.ts.map +1 -0
- package/dropdown/dropdown.module.d.ts +2 -1
- package/dropdown/dropdown.module.d.ts.map +1 -1
- package/fesm2022/kirbydesign-designsystem-accordion.mjs +12 -12
- package/fesm2022/kirbydesign-designsystem-action-group.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-avatar.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-badge.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-button.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-calendar.mjs +8 -7
- package/fesm2022/kirbydesign-designsystem-calendar.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-card.mjs +18 -18
- package/fesm2022/kirbydesign-designsystem-card.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-chart.mjs +23 -23
- package/fesm2022/kirbydesign-designsystem-checkbox.mjs +13 -8
- package/fesm2022/kirbydesign-designsystem-checkbox.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-config.mjs +37 -0
- package/fesm2022/kirbydesign-designsystem-config.mjs.map +1 -0
- package/fesm2022/kirbydesign-designsystem-data-table.mjs +8 -8
- package/fesm2022/kirbydesign-designsystem-divider.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-dropdown.mjs +18 -15
- package/fesm2022/kirbydesign-designsystem-dropdown.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-empty-state.mjs +9 -9
- package/fesm2022/kirbydesign-designsystem-empty-state.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-fab-sheet.mjs +5 -5
- package/fesm2022/kirbydesign-designsystem-flag.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-form-field.mjs +143 -70
- package/fesm2022/kirbydesign-designsystem-form-field.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-header.mjs +21 -21
- package/fesm2022/kirbydesign-designsystem-header.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-helpers.mjs +9 -9
- package/fesm2022/kirbydesign-designsystem-icon.mjs +11 -12
- package/fesm2022/kirbydesign-designsystem-icon.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-item-group.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-item-sliding.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-item.mjs +11 -11
- package/fesm2022/kirbydesign-designsystem-kirby-app.mjs +8 -8
- package/fesm2022/kirbydesign-designsystem-list.mjs +41 -41
- package/fesm2022/kirbydesign-designsystem-loading-overlay.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-menu.mjs +5 -5
- package/fesm2022/kirbydesign-designsystem-modal.mjs +45 -47
- package/fesm2022/kirbydesign-designsystem-modal.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-page.mjs +86 -47
- package/fesm2022/kirbydesign-designsystem-page.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-popover.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-progress-circle.mjs +7 -7
- package/fesm2022/kirbydesign-designsystem-radio.mjs +36 -18
- package/fesm2022/kirbydesign-designsystem-radio.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-range.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-reorder-list.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-router-outlet.mjs +8 -8
- package/fesm2022/kirbydesign-designsystem-section-header.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-shared-floating.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-shared-portal.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-shared.mjs +65 -23
- package/fesm2022/kirbydesign-designsystem-shared.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-slide-button.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-slide.mjs +14 -14
- package/fesm2022/kirbydesign-designsystem-spinner.mjs +8 -8
- package/fesm2022/kirbydesign-designsystem-tab-navigation.mjs +11 -11
- package/fesm2022/kirbydesign-designsystem-tabs.mjs +14 -14
- package/fesm2022/kirbydesign-designsystem-testing-base.mjs +287 -287
- package/fesm2022/kirbydesign-designsystem-testing-jasmine.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-testing-jest.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-testing.mjs +4 -4
- package/fesm2022/kirbydesign-designsystem-toast.mjs +6 -6
- package/fesm2022/kirbydesign-designsystem-toggle-button.mjs +77 -9
- package/fesm2022/kirbydesign-designsystem-toggle-button.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-toggle.mjs +50 -19
- package/fesm2022/kirbydesign-designsystem-toggle.mjs.map +1 -1
- package/fesm2022/kirbydesign-designsystem-types.mjs +3 -3
- package/fesm2022/kirbydesign-designsystem.mjs +84 -26
- package/fesm2022/kirbydesign-designsystem.mjs.map +1 -1
- package/form-field/form-field.component.d.ts +21 -6
- package/form-field/form-field.component.d.ts.map +1 -1
- package/form-field/input/input.component.d.ts +11 -7
- package/form-field/input/input.component.d.ts.map +1 -1
- package/form-field/textarea/textarea.component.d.ts +8 -4
- package/form-field/textarea/textarea.component.d.ts.map +1 -1
- package/icon/kirby-icon-settings.d.ts.map +1 -1
- package/lib/components/segmented-control/segmented-control.component.d.ts +35 -1
- package/lib/components/segmented-control/segmented-control.component.d.ts.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/kirby.module.d.ts +45 -48
- package/lib/kirby.module.d.ts.map +1 -1
- package/modal/modal/modal-component/modal.component.d.ts.map +1 -1
- package/package.json +40 -40
- package/page/page.component.d.ts +9 -2
- package/page/page.component.d.ts.map +1 -1
- package/radio/radio-group/radio-group.component.d.ts +13 -5
- package/radio/radio-group/radio-group.component.d.ts.map +1 -1
- package/readme.md +1 -1
- package/shared/controls/label-helpers.d.ts +13 -0
- package/shared/controls/label-helpers.d.ts.map +1 -1
- package/shared/fit-heading/fit-heading.directive.d.ts +1 -1
- package/shared/fit-heading/fit-heading.directive.d.ts.map +1 -1
- package/shared/translation/translation.interface.d.ts +1 -0
- package/shared/translation/translation.interface.d.ts.map +1 -1
- package/shared/translation/translation.service.d.ts.map +1 -1
- package/shared/translation/translations/da.d.ts.map +1 -1
- package/shared/translation/translations/de.d.ts +3 -0
- package/shared/translation/translations/de.d.ts.map +1 -0
- package/shared/translation/translations/en.d.ts.map +1 -1
- package/toggle/toggle.component.d.ts +13 -6
- package/toggle/toggle.component.d.ts.map +1 -1
- package/toggle-button/toggle-button.component.d.ts +35 -1
- package/toggle-button/toggle-button.component.d.ts.map +1 -1
- package/types/form-field-control.d.ts +6 -0
- package/types/form-field-control.d.ts.map +1 -0
- package/types/public_api.d.ts +1 -0
- package/types/public_api.d.ts.map +1 -1
- package/fesm2022/kirbydesign-designsystem-kirby-ionic-module.mjs +0 -30
- package/fesm2022/kirbydesign-designsystem-kirby-ionic-module.mjs.map +0 -1
- package/kirby-ionic-module/index.d.ts +0 -6
- package/kirby-ionic-module/kirby-ionic.module.d.ts +0 -7
- package/kirby-ionic-module/kirby-ionic.module.d.ts.map +0 -1
- package/kirby-ionic-module/kirbydesign-designsystem-kirby-ionic-module.d.ts.map +0 -1
- package/kirby-ionic-module/public_api.d.ts +0 -2
- package/kirby-ionic-module/public_api.d.ts.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { Input, Directive, LOCALE_ID, HostListener, Inject, ChangeDetectionStrategy, Component, EventEmitter, Output, HostBinding, ElementRef, ContentChild, ContentChildren, 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';
|
|
@@ -18,10 +18,10 @@ class AffixDirective {
|
|
|
18
18
|
constructor(el) {
|
|
19
19
|
this.el = el;
|
|
20
20
|
}
|
|
21
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.
|
|
22
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.
|
|
21
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AffixDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
22
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.5", type: AffixDirective, isStandalone: true, selector: "[kirby-affix]", inputs: { type: ["kirby-affix", "type"] }, ngImport: i0 }); }
|
|
23
23
|
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: AffixDirective, decorators: [{
|
|
25
25
|
type: Directive,
|
|
26
26
|
args: [{
|
|
27
27
|
standalone: true,
|
|
@@ -137,10 +137,10 @@ class DateInputDirective {
|
|
|
137
137
|
? value.slice(0, value.lastIndexOf(lastNumber[1]) + 1)
|
|
138
138
|
: '';
|
|
139
139
|
}
|
|
140
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.
|
|
141
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.
|
|
140
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DateInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
141
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.5", type: DateInputDirective, isStandalone: true, inputs: { prefillYear: "prefillYear", useNativeDatePicker: "useNativeDatePicker" }, host: { listeners: { "input": "onInput()" } }, ngImport: i0 }); }
|
|
142
142
|
}
|
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DateInputDirective, decorators: [{
|
|
144
144
|
type: Directive,
|
|
145
145
|
args: [{
|
|
146
146
|
standalone: true,
|
|
@@ -161,10 +161,10 @@ class FormFieldMessageComponent {
|
|
|
161
161
|
constructor() {
|
|
162
162
|
this.position = 'left';
|
|
163
163
|
}
|
|
164
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.
|
|
165
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.
|
|
164
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: FormFieldMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
165
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: FormFieldMessageComponent, isStandalone: false, selector: "kirby-form-field-message", inputs: { text: "text", position: "position" }, ngImport: i0, template: "{{ text }}\n<ng-content></ng-content>\n", styles: [":host{font-style:italic;font-size:12px;font-weight:400;font-stretch:normal;line-height:16px;min-height:16px;letter-spacing:normal;color:var(--kirby-text-color-black)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
166
166
|
}
|
|
167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: FormFieldMessageComponent, decorators: [{
|
|
168
168
|
type: Component,
|
|
169
169
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'kirby-form-field-message', standalone: false, template: "{{ text }}\n<ng-content></ng-content>\n", styles: [":host{font-style:italic;font-size:12px;font-weight:400;font-stretch:normal;line-height:16px;min-height:16px;letter-spacing:normal;color:var(--kirby-text-color-black)}\n"] }]
|
|
170
170
|
}], propDecorators: { text: [{
|
|
@@ -195,10 +195,10 @@ class InputCounterComponent {
|
|
|
195
195
|
this._inputChangeSubscription.unsubscribe();
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.
|
|
199
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.
|
|
198
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: InputCounterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
199
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: InputCounterComponent, isStandalone: false, selector: "kirby-input-counter", inputs: { listenTo: "listenTo" }, ngImport: i0, template: "<kirby-form-field-message [text]=\"text\"></kirby-form-field-message>\n", dependencies: [{ kind: "component", type: FormFieldMessageComponent, selector: "kirby-form-field-message", inputs: ["text", "position"] }] }); }
|
|
200
200
|
}
|
|
201
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: InputCounterComponent, decorators: [{
|
|
202
202
|
type: Component,
|
|
203
203
|
args: [{ selector: 'kirby-input-counter', standalone: false, template: "<kirby-form-field-message [text]=\"text\"></kirby-form-field-message>\n" }]
|
|
204
204
|
}], propDecorators: { listenTo: [{
|
|
@@ -211,12 +211,29 @@ var InputSize;
|
|
|
211
211
|
InputSize["large"] = "lg";
|
|
212
212
|
})(InputSize || (InputSize = {}));
|
|
213
213
|
class InputComponent {
|
|
214
|
+
set type(value) {
|
|
215
|
+
const mappedValue = InputComponent.typeToInputmodeMap[value];
|
|
216
|
+
if (mappedValue && !this.inputmode) {
|
|
217
|
+
this.inputmode = mappedValue;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
get hasError() {
|
|
221
|
+
return this._hasError;
|
|
222
|
+
}
|
|
223
|
+
set hasError(value) {
|
|
224
|
+
if (this._hasError !== value) {
|
|
225
|
+
this._hasError = value;
|
|
226
|
+
this.hasErrorChange.emit(this._hasError);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
214
229
|
constructor(elementRef) {
|
|
215
230
|
this.elementRef = elementRef;
|
|
216
231
|
this.kirbyChange = new EventEmitter();
|
|
232
|
+
this._hasError = false;
|
|
217
233
|
this.size = InputSize.large;
|
|
218
234
|
this.autocomplete = 'off';
|
|
219
235
|
this.autocorrect = 'off';
|
|
236
|
+
this.hasErrorChange = new EventEmitter();
|
|
220
237
|
}
|
|
221
238
|
ngOnInit() {
|
|
222
239
|
// The native input value is emitted here to make sure that
|
|
@@ -229,16 +246,15 @@ class InputComponent {
|
|
|
229
246
|
}
|
|
230
247
|
});
|
|
231
248
|
}
|
|
249
|
+
ngOnChanges(changes) {
|
|
250
|
+
if (changes.value) {
|
|
251
|
+
this.kirbyChange.emit(changes.value.currentValue);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
232
254
|
static { this.typeToInputmodeMap = {
|
|
233
255
|
number: 'decimal',
|
|
234
256
|
search: 'search',
|
|
235
257
|
}; }
|
|
236
|
-
set type(value) {
|
|
237
|
-
const mappedValue = InputComponent.typeToInputmodeMap[value];
|
|
238
|
-
if (mappedValue && !this.inputmode) {
|
|
239
|
-
this.inputmode = mappedValue;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
258
|
_onKeyUp(value) {
|
|
243
259
|
this.kirbyChange.emit(value);
|
|
244
260
|
}
|
|
@@ -246,23 +262,17 @@ class InputComponent {
|
|
|
246
262
|
//Value of input element is updated after cut/paste:
|
|
247
263
|
setTimeout(() => this.kirbyChange.emit(target.value));
|
|
248
264
|
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
this.kirbyChange.emit(changes.value.currentValue);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InputComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
255
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.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", "useNativeDatePicker", "useNativeDatePicker"] }], ngImport: i0, template: '', isInline: true, styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}@supports not (selector(::-webkit-date-and-time-value)){:host(input[type=date]::-webkit-date-and-time-value){min-height:1.5em;text-align:start}}@media (hover: hover){:host:not(:disabled):hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:var(--kirby-inputs-background-color-hover);cursor:text}}:host:not(:disabled):active,:host:not(:disabled).interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:var(--kirby-inputs-background-color-active)}:host:not(:disabled){transition:all 80ms linear 0ms;transition-property:background-color}:host[type=date]{background-color:var(--date-input-background-color)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host(.md).error{padding-block:calc(.5em - 1px)}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;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 }); }
|
|
265
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: InputComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
266
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: InputComponent, isStandalone: true, selector: "input[kirby-input]", inputs: { type: "type", size: "size", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", value: "value", maxlength: "maxlength", inputmode: "inputmode" }, outputs: { hasErrorChange: "hasErrorChange" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class": "this.size", "class.borderless": "this.borderless", "attr.aria-invalid": "this.hasError", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.value": "this.value", "attr.maxlength": "this.maxlength", "attr.inputmode": "this.inputmode" } }, usesOnChanges: true, hostDirectives: [{ directive: DateInputDirective, inputs: ["prefillYear", "prefillYear", "useNativeDatePicker", "useNativeDatePicker"] }], ngImport: i0, template: '', isInline: true, styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}@supports not (selector(::-webkit-date-and-time-value)){:host(input[type=date]::-webkit-date-and-time-value){min-height:1.5em;text-align:start}}@media (hover: hover){:host:not(:disabled):hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:var(--kirby-inputs-background-color-hover);cursor:text}}:host:not(:disabled):active,:host:not(:disabled).interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:var(--kirby-inputs-background-color-active)}:host:not(:disabled){transition:all 80ms linear 0ms;transition-property:background-color}:host[type=date]{background-color:var(--date-input-background-color)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host(.md).error{padding-block:calc(.5em - 1px)}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;font-size:var(--kirby-font-size-n);color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
256
267
|
}
|
|
257
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
268
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: InputComponent, decorators: [{
|
|
258
269
|
type: Component,
|
|
259
270
|
args: [{ imports: [CommonModule], hostDirectives: [
|
|
260
271
|
{
|
|
261
272
|
directive: DateInputDirective,
|
|
262
|
-
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
263
273
|
inputs: ['prefillYear', 'useNativeDatePicker'],
|
|
264
274
|
},
|
|
265
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'input[kirby-input]', template: '', styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}@supports not (selector(::-webkit-date-and-time-value)){:host(input[type=date]::-webkit-date-and-time-value){min-height:1.5em;text-align:start}}@media (hover: hover){:host:not(:disabled):hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:var(--kirby-inputs-background-color-hover);cursor:text}}:host:not(:disabled):active,:host:not(:disabled).interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:var(--kirby-inputs-background-color-active)}:host:not(:disabled){transition:all 80ms linear 0ms;transition-property:background-color}:host[type=date]{background-color:var(--date-input-background-color)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host(.md).error{padding-block:calc(.5em - 1px)}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"] }]
|
|
275
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'input[kirby-input]', template: '', styles: [":host(.error){border:1px solid var(--kirby-danger);padding:calc(1em - 1px)}:host(.cloned-input){pointer-events:none;position:absolute;top:0;left:0}:host-context(label).cloned-input{top:24px}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}@supports not (selector(::-webkit-date-and-time-value)){:host(input[type=date]::-webkit-date-and-time-value){min-height:1.5em;text-align:start}}@media (hover: hover){:host:not(:disabled):hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:var(--kirby-inputs-background-color-hover);cursor:text}}:host:not(:disabled):active,:host:not(:disabled).interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:var(--kirby-inputs-background-color-active)}:host:not(:disabled){transition:all 80ms linear 0ms;transition-property:background-color}:host[type=date]{background-color:var(--date-input-background-color)}:host[type=number]{-webkit-appearance:textfield;appearance:textfield}:host::-webkit-outer-spin-button,:host::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:host(.md){border-radius:24px;padding-block:.5em}:host(.md).error{padding-block:calc(.5em - 1px)}:host-context(kirby-item kirby-form-field[slot=end])[type=number]{font-weight:700}.date-mask-wrapper{position:relative}:host-context(.date-mask-wrapper){color:var(--kirby-text-color-semi-dark)}.date-mask{font-family:var(--kirby-font-family);line-height:1.5;font-size:var(--kirby-font-size-n);color:var(--kirby-white-contrast);position:absolute;top:0;left:0;padding:1em}:host(.md)+.date-mask{padding-block:.5em}\n"] }]
|
|
266
276
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { type: [{
|
|
267
277
|
type: Input
|
|
268
278
|
}], size: [{
|
|
@@ -276,6 +286,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
|
276
286
|
}, {
|
|
277
287
|
type: Input
|
|
278
288
|
}], hasError: [{
|
|
289
|
+
type: HostBinding,
|
|
290
|
+
args: ['attr.aria-invalid']
|
|
291
|
+
}, {
|
|
279
292
|
type: HostBinding,
|
|
280
293
|
args: ['class.error']
|
|
281
294
|
}, {
|
|
@@ -305,6 +318,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
|
305
318
|
args: ['attr.inputmode']
|
|
306
319
|
}, {
|
|
307
320
|
type: Input
|
|
321
|
+
}], hasErrorChange: [{
|
|
322
|
+
type: Output
|
|
308
323
|
}], _onKeyUp: [{
|
|
309
324
|
type: HostListener,
|
|
310
325
|
args: ['keyup', ['$event.target.value']]
|
|
@@ -319,25 +334,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
|
319
334
|
class TextareaComponent {
|
|
320
335
|
constructor() {
|
|
321
336
|
this.kirbyChange = new EventEmitter();
|
|
337
|
+
this._hasError = false;
|
|
322
338
|
this.autocomplete = 'off';
|
|
323
339
|
this.autocorrect = 'off';
|
|
340
|
+
this.hasErrorChange = new EventEmitter();
|
|
324
341
|
}
|
|
325
|
-
|
|
326
|
-
this.
|
|
342
|
+
get hasError() {
|
|
343
|
+
return this._hasError;
|
|
327
344
|
}
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
345
|
+
set hasError(value) {
|
|
346
|
+
if (this._hasError !== value) {
|
|
347
|
+
this._hasError = value;
|
|
348
|
+
this.hasErrorChange.emit(this._hasError);
|
|
349
|
+
}
|
|
331
350
|
}
|
|
332
351
|
ngOnChanges(changes) {
|
|
333
352
|
if (changes.value) {
|
|
334
353
|
this.kirbyChange.emit(changes.value.currentValue);
|
|
335
354
|
}
|
|
336
355
|
}
|
|
337
|
-
|
|
338
|
-
|
|
356
|
+
_onKeyUp(value) {
|
|
357
|
+
this.kirbyChange.emit(value);
|
|
358
|
+
}
|
|
359
|
+
_onCutPaste(target) {
|
|
360
|
+
//Value of textarea element is updated after cut/paste:
|
|
361
|
+
setTimeout(() => this.kirbyChange.emit(target.value));
|
|
362
|
+
}
|
|
363
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: TextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
364
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: TextareaComponent, isStandalone: true, selector: "textarea[kirby-textarea]", inputs: { value: "value", borderless: "borderless", hasError: "hasError", autocomplete: "autocomplete", autocorrect: "autocorrect", maxlength: "maxlength" }, outputs: { hasErrorChange: "hasErrorChange" }, host: { listeners: { "keyup": "_onKeyUp($event.target.value)", "paste": "_onCutPaste($event.target)", "cut": "_onCutPaste($event.target)" }, properties: { "class.borderless": "this.borderless", "attr.aria-invalid": "this.hasError", "class.error": "this.hasError", "attr.autocomplete": "this.autocomplete", "attr.autocorrect": "this.autocorrect", "attr.maxlength": "this.maxlength" } }, usesOnChanges: true, ngImport: i0, template: "<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}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}@supports not (selector(::-webkit-date-and-time-value)){:host(input[type=date]::-webkit-date-and-time-value){min-height:1.5em;text-align:start}}@media (hover: hover){:host:not(:disabled):hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:#f5f5f5;cursor:text}}:host:not(:disabled):active,:host:not(:disabled).interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:#ebebeb}:host:not(:disabled){transition:all 80ms linear 0ms;transition-property:background-color}:host{position:relative;font-family:var(--kirby-font-family);resize:none}@media (min-width: 768px){:host{resize:vertical}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
339
365
|
}
|
|
340
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
366
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: TextareaComponent, decorators: [{
|
|
341
367
|
type: Component,
|
|
342
368
|
args: [{ 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}@media (hover: hover) and (pointer: fine){:host:focus{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}:host:focus:not(:focus-visible){box-shadow:0 1px 24px #1c1c1c0a,0 0 0 0 transparent}:host:focus-visible{transition:all 80ms linear 0ms;box-shadow:0 1px 24px #1c1c1c0a,0 0 0 2px var(--kirby-background-color),0 0 0 4px #4d90fe}}:host{background-color:var(--kirby-inputs-background-color);color:var(--kirby-inputs-color);border:none;box-sizing:border-box;font-family:var(--kirby-font-family);font-size:1rem;line-height:1.5;outline:none;margin:0;-webkit-appearance:none;appearance:none;border-radius:16px;box-shadow:var(--kirby-inputs-elevation);padding:1em;width:100%}:host:host-context(kirby-item),:host.borderless{border-radius:0;box-shadow:none;padding-inline:0;width:auto}:host:disabled{background-color:var(--kirby-light-tint);color:var(--kirby-text-color-semi-dark);box-shadow:none}:host::placeholder{color:var(--kirby-inputs-placeholder-color)}@supports not (selector(::-webkit-date-and-time-value)){:host(input[type=date]::-webkit-date-and-time-value){min-height:1.5em;text-align:start}}@media (hover: hover){:host:not(:disabled):hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;background-color:#f5f5f5;cursor:text}}:host:not(:disabled):active,:host:not(:disabled).interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);background-color:#ebebeb}:host:not(:disabled){transition:all 80ms linear 0ms;transition-property:background-color}:host{position:relative;font-family:var(--kirby-font-family);resize:none}@media (min-width: 768px){:host{resize:vertical}}\n"] }]
|
|
343
369
|
}], propDecorators: { value: [{
|
|
@@ -348,6 +374,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
|
348
374
|
}, {
|
|
349
375
|
type: Input
|
|
350
376
|
}], hasError: [{
|
|
377
|
+
type: HostBinding,
|
|
378
|
+
args: ['attr.aria-invalid']
|
|
379
|
+
}, {
|
|
351
380
|
type: HostBinding,
|
|
352
381
|
args: ['class.error']
|
|
353
382
|
}, {
|
|
@@ -367,6 +396,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
|
367
396
|
args: ['attr.maxlength']
|
|
368
397
|
}, {
|
|
369
398
|
type: Input
|
|
399
|
+
}], hasErrorChange: [{
|
|
400
|
+
type: Output
|
|
370
401
|
}], _onKeyUp: [{
|
|
371
402
|
type: HostListener,
|
|
372
403
|
args: ['keyup', ['$event.target.value']]
|
|
@@ -379,14 +410,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
|
379
410
|
}] } });
|
|
380
411
|
|
|
381
412
|
class FormFieldComponent {
|
|
382
|
-
|
|
413
|
+
get message() {
|
|
414
|
+
return this._message;
|
|
415
|
+
}
|
|
416
|
+
set message(value) {
|
|
417
|
+
this._message = value;
|
|
418
|
+
this.setNestedInteractiveElementAttributes();
|
|
419
|
+
}
|
|
420
|
+
constructor(elementRef, platform, renderer, windowRef, resizeObserverService, cdr) {
|
|
383
421
|
this.platform = platform;
|
|
384
422
|
this.renderer = renderer;
|
|
385
423
|
this.windowRef = windowRef;
|
|
386
424
|
this.resizeObserverService = resizeObserverService;
|
|
425
|
+
this.cdr = cdr;
|
|
387
426
|
this.isRegistered = false;
|
|
388
427
|
this.showDefaultCalendarIcon = false;
|
|
389
428
|
this._labelId = UniqueIdGenerator.scopedTo('kirby-form-field-label').next();
|
|
429
|
+
this._errorMessageId = UniqueIdGenerator.scopedTo('kirby-form-field-message').next();
|
|
430
|
+
this._messageId = UniqueIdGenerator.scopedTo('kirby-form-field-message').next();
|
|
390
431
|
this.element = elementRef.nativeElement;
|
|
391
432
|
}
|
|
392
433
|
get _wrapContentInLabel() {
|
|
@@ -407,7 +448,9 @@ class FormFieldComponent {
|
|
|
407
448
|
this.radioGroupComponent?.focus();
|
|
408
449
|
}
|
|
409
450
|
focus() {
|
|
410
|
-
if (!this.
|
|
451
|
+
if (!this.nestedInteractiveElement)
|
|
452
|
+
return;
|
|
453
|
+
if (!(this.input || this.textarea))
|
|
411
454
|
return;
|
|
412
455
|
/*
|
|
413
456
|
* This timeout ensures that any previous manipulation of inputElement
|
|
@@ -419,11 +462,11 @@ class FormFieldComponent {
|
|
|
419
462
|
// See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/hacks/scroll-assist.ts
|
|
420
463
|
const touchStart = new TouchEvent('touchstart');
|
|
421
464
|
const touchEnd = new TouchEvent('touchend');
|
|
422
|
-
this.
|
|
423
|
-
this.
|
|
465
|
+
this.nestedInteractiveElement.dispatchEvent(touchStart);
|
|
466
|
+
this.nestedInteractiveElement.dispatchEvent(touchEnd);
|
|
424
467
|
}
|
|
425
468
|
else {
|
|
426
|
-
this.
|
|
469
|
+
this.nestedInteractiveElement.focus();
|
|
427
470
|
}
|
|
428
471
|
});
|
|
429
472
|
}
|
|
@@ -431,9 +474,6 @@ class FormFieldComponent {
|
|
|
431
474
|
this.isTouch = this.platform.isTouch();
|
|
432
475
|
}
|
|
433
476
|
ngAfterContentInit() {
|
|
434
|
-
if (this.label && this.radioGroupElement) {
|
|
435
|
-
this.renderer.setAttribute(this.radioGroupElement.nativeElement, 'aria-labelledby', this._labelId);
|
|
436
|
-
}
|
|
437
477
|
// Measure the width of all slotted affix elements,
|
|
438
478
|
// and apply their width + standard padding to the input elements
|
|
439
479
|
// padding, so the start/end of the input is correctly indented.
|
|
@@ -449,15 +489,10 @@ class FormFieldComponent {
|
|
|
449
489
|
}
|
|
450
490
|
}
|
|
451
491
|
ngAfterContentChecked() {
|
|
452
|
-
if (!this.
|
|
453
|
-
this.
|
|
492
|
+
if (!this.nestedInteractiveElement) {
|
|
493
|
+
this.registerNestedInteractive();
|
|
454
494
|
}
|
|
455
|
-
|
|
456
|
-
// https://github.com/ionic-team/ionic-framework/issues/22740
|
|
457
|
-
if (!this.isRegistered &&
|
|
458
|
-
this.element.isConnected &&
|
|
459
|
-
!!this.inputElement &&
|
|
460
|
-
!this.inputElement.readOnly) {
|
|
495
|
+
if (!this.isRegistered && this.element.isConnected && (this.input || this.textarea)) {
|
|
461
496
|
// Host is connected to dom and slotted input/textarea is present:
|
|
462
497
|
this.isRegistered = true;
|
|
463
498
|
this.dispatchLoadEvent();
|
|
@@ -465,11 +500,6 @@ class FormFieldComponent {
|
|
|
465
500
|
// Decide if default calendar icon for date input should be shown
|
|
466
501
|
this.showDefaultCalendarIcon = this.shouldShowDefaultCalendarIcon();
|
|
467
502
|
}
|
|
468
|
-
shouldShowDefaultCalendarIcon() {
|
|
469
|
-
return (this.dateInput?.useNativeDatePicker &&
|
|
470
|
-
!this.affixElements.some((affix) => affix.type === 'suffix') // there are no suffix elements
|
|
471
|
-
);
|
|
472
|
-
}
|
|
473
503
|
ngOnDestroy() {
|
|
474
504
|
// Dispatch an `ionInputDidUnload` event to unregister
|
|
475
505
|
// form field + input/textarea from Ionic input shims
|
|
@@ -480,14 +510,51 @@ class FormFieldComponent {
|
|
|
480
510
|
this.affixElements.forEach((affix) => {
|
|
481
511
|
this.resizeObserverService.unobserve(affix.el);
|
|
482
512
|
});
|
|
513
|
+
this.nestedInteractiveErrorSubscription.unsubscribe();
|
|
514
|
+
}
|
|
515
|
+
registerNestedInteractive() {
|
|
516
|
+
this.getNestedInteractiveElement();
|
|
517
|
+
this.setNestedInteractiveElementAttributes();
|
|
518
|
+
this.subscribeToNestedInteractiveError();
|
|
519
|
+
}
|
|
520
|
+
getNestedInteractiveElement() {
|
|
521
|
+
this.nestedInteractiveElement =
|
|
522
|
+
this.input?.nativeElement ||
|
|
523
|
+
this.textarea?.nativeElement ||
|
|
524
|
+
this.radioGroupElement?.nativeElement.querySelector('ion-radio-group');
|
|
483
525
|
}
|
|
484
|
-
|
|
485
|
-
|
|
526
|
+
setNestedInteractiveElementAttributes() {
|
|
527
|
+
if (!this.nestedInteractiveElement)
|
|
528
|
+
return;
|
|
529
|
+
if (this.message) {
|
|
530
|
+
this.renderer.setAttribute(this.nestedInteractiveElement, 'aria-describedby', this._messageId);
|
|
531
|
+
this.renderer.setAttribute(this.nestedInteractiveElement, 'aria-errormessage', this._errorMessageId);
|
|
532
|
+
}
|
|
533
|
+
if (this.label && this.radioGroupElement) {
|
|
534
|
+
this.renderer.setAttribute(this.nestedInteractiveElement, 'aria-labelledby', this._labelId);
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
subscribeToNestedInteractiveError() {
|
|
538
|
+
const nestedInteractiveComponent = this.inputComponent || this.textareaComponent || this.radioGroupComponent;
|
|
539
|
+
// set current value, then listen for changes
|
|
540
|
+
this._nestedInteractiveHasError = !!nestedInteractiveComponent?.hasError;
|
|
541
|
+
this.nestedInteractiveErrorSubscription = nestedInteractiveComponent?.hasErrorChange.subscribe((hasError) => {
|
|
542
|
+
this._nestedInteractiveHasError = hasError;
|
|
543
|
+
this.cdr.markForCheck();
|
|
544
|
+
});
|
|
545
|
+
}
|
|
546
|
+
shouldShowDefaultCalendarIcon() {
|
|
547
|
+
return (this.dateInput?.useNativeDatePicker &&
|
|
548
|
+
!this.affixElements.some((affix) => affix.type === 'suffix') // there are no suffix elements
|
|
549
|
+
);
|
|
550
|
+
}
|
|
551
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: FormFieldComponent, deps: [{ token: i0.ElementRef }, { token: i1.PlatformService }, { token: i0.Renderer2 }, { token: i2.WindowRef }, { token: i3.ResizeObserverService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
552
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: FormFieldComponent, isStandalone: false, selector: "kirby-form-field", inputs: { label: "label", message: "message" }, host: { listeners: { "kirbyRegisterFormField": "_onRegisterFormField()" } }, queries: [{ propertyName: "counter", first: true, predicate: InputCounterComponent, descendants: true }, { propertyName: "radioGroupComponent", first: true, predicate: RadioGroupComponent, descendants: true }, { propertyName: "inputComponent", first: true, predicate: InputComponent, descendants: true }, { propertyName: "textareaComponent", first: true, predicate: TextareaComponent, descendants: true }, { propertyName: "radioGroupElement", first: true, predicate: RadioGroupComponent, descendants: true, read: ElementRef }, { propertyName: "input", first: true, predicate: InputComponent, descendants: true, read: ElementRef }, { propertyName: "textarea", first: true, predicate: TextareaComponent, descendants: true, read: ElementRef }, { propertyName: "dateInput", first: true, predicate: DateInputDirective, descendants: true }, { propertyName: "affixElements", predicate: AffixDirective }], ngImport: i0, template: "<label *ngIf=\"_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n\n <!-- add error message inside label if nested interative is in error state -->\n <ng-container *ngIf=\"_nestedInteractiveHasError\">\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n </ng-container>\n</label>\n\n<!-- add message outside label if nested interative is in valid state -->\n<ng-container *ngIf=\"!_nestedInteractiveHasError && _wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n</ng-container>\n\n<ng-template #messageTemplate>\n <div *ngIf=\"message !== undefined || counter\" class=\"texts\">\n <kirby-form-field-message\n *ngIf=\"message !== undefined\"\n class=\"message\"\n [text]=\"message\"\n [attr.aria-live]=\"_nestedInteractiveHasError ? 'polite' : null\"\n [attr.id]=\"_nestedInteractiveHasError ? _errorMessageId : _messageId\"\n ></kirby-form-field-message>\n\n <div *ngIf=\"counter\" class=\"counter\" aria-hidden=\"true\">\n <ng-content select=\"kirby-input-counter\"></ng-content>\n </div>\n </div>\n</ng-template>\n\n<ng-template #slottedInputTemplate>\n <div class=\"affix-container\">\n <div class=\"prefix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='prefix']\"></ng-content>\n </div>\n <ng-content select=\"input[kirby-input]\"></ng-content>\n <ng-content select=\"textarea[kirby-textarea]\"></ng-content>\n <ng-content select=\"kirby-radio-group\"></ng-content>\n <div class=\"suffix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='suffix']\"></ng-content>\n <ng-container *ngIf=\"showDefaultCalendarIcon\">\n <kirby-icon name=\"calendar\"></kirby-icon>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #labelTextTemplate>\n <ng-container *ngIf=\"label\">\n <span class=\"text\">{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #labelTemplate>\n <ng-container *ngIf=\"label\">\n <label class=\"text\" [id]=\"_labelId\" (click)=\"onLabelClick()\">{{ label }}</label>\n </ng-container>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin-bottom:16px}:host-context(kirby-item){margin-bottom:0}.texts{display:flex;justify-content:space-between;padding:2px 16px 0}.texts .message{flex:75%}.texts .message:only-child{flex-basis:auto}.texts .counter{flex:25%;text-align:right}label{display:block}.text{display:block;font-size:14px;font-weight:300;line-height:20px;margin-bottom:8px;padding:0 16px}.affix-container{position:relative}.affix-container .vertical-align{display:flex;align-items:center;position:absolute;top:0;bottom:0}.affix-container .prefix{left:12px}.affix-container .suffix{right:12px}.affix-container .semi-dark-text ::ng-deep>span,.affix-container .semi-dark-text ::ng-deep>h1,.affix-container .semi-dark-text ::ng-deep>h2,.affix-container .semi-dark-text ::ng-deep>h3,.affix-container .semi-dark-text ::ng-deep>h4,.affix-container .semi-dark-text ::ng-deep>h5,.affix-container .semi-dark-text ::ng-deep>h6,.affix-container .semi-dark-text ::ng-deep>p,.affix-container .semi-dark-text ::ng-deep>data{color:var(--kirby-text-color-semi-dark)}.affix-container:has(input[type=date]){--date-input-background-color: var(--kirby-inputs-background-color)}@media (hover: hover){.affix-container:has(input[type=date]):hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--date-input-background-color: #e0e0e0}}.affix-container:has(input[type=date]):active,.affix-container:has(input[type=date]).interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--date-input-background-color: #cbcbcb}.affix-container:has(input[type=date]) .suffix:not(:empty){top:8px;bottom:8px;padding-inline-start:12px;pointer-events:none;background-color:var(--date-input-background-color);transition:all 80ms linear 0ms;transition-property:background-color}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.IconComponent, selector: "kirby-icon", inputs: ["size", "name"] }, { kind: "component", type: FormFieldMessageComponent, selector: "kirby-form-field-message", inputs: ["text", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
486
553
|
}
|
|
487
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
554
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
488
555
|
type: Component,
|
|
489
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'kirby-form-field', standalone: false, template: "<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 !== undefined || counter\" class=\"texts\">\n
|
|
490
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.PlatformService }, { type: i0.Renderer2 }, { type: i2.WindowRef }, { type: i3.ResizeObserverService }], propDecorators: { label: [{
|
|
556
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'kirby-form-field', standalone: false, template: "<label *ngIf=\"_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n\n <!-- add error message inside label if nested interative is in error state -->\n <ng-container *ngIf=\"_nestedInteractiveHasError\">\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n </ng-container>\n</label>\n\n<!-- add message outside label if nested interative is in valid state -->\n<ng-container *ngIf=\"!_nestedInteractiveHasError && _wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n</ng-container>\n\n<ng-template #messageTemplate>\n <div *ngIf=\"message !== undefined || counter\" class=\"texts\">\n <kirby-form-field-message\n *ngIf=\"message !== undefined\"\n class=\"message\"\n [text]=\"message\"\n [attr.aria-live]=\"_nestedInteractiveHasError ? 'polite' : null\"\n [attr.id]=\"_nestedInteractiveHasError ? _errorMessageId : _messageId\"\n ></kirby-form-field-message>\n\n <div *ngIf=\"counter\" class=\"counter\" aria-hidden=\"true\">\n <ng-content select=\"kirby-input-counter\"></ng-content>\n </div>\n </div>\n</ng-template>\n\n<ng-template #slottedInputTemplate>\n <div class=\"affix-container\">\n <div class=\"prefix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='prefix']\"></ng-content>\n </div>\n <ng-content select=\"input[kirby-input]\"></ng-content>\n <ng-content select=\"textarea[kirby-textarea]\"></ng-content>\n <ng-content select=\"kirby-radio-group\"></ng-content>\n <div class=\"suffix vertical-align semi-dark-text\">\n <ng-content select=\"[kirby-affix='suffix']\"></ng-content>\n <ng-container *ngIf=\"showDefaultCalendarIcon\">\n <kirby-icon name=\"calendar\"></kirby-icon>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #labelTextTemplate>\n <ng-container *ngIf=\"label\">\n <span class=\"text\">{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #labelTemplate>\n <ng-container *ngIf=\"label\">\n <label class=\"text\" [id]=\"_labelId\" (click)=\"onLabelClick()\">{{ label }}</label>\n </ng-container>\n</ng-template>\n", styles: [":host{display:block;position:relative;margin-bottom:16px}:host-context(kirby-item){margin-bottom:0}.texts{display:flex;justify-content:space-between;padding:2px 16px 0}.texts .message{flex:75%}.texts .message:only-child{flex-basis:auto}.texts .counter{flex:25%;text-align:right}label{display:block}.text{display:block;font-size:14px;font-weight:300;line-height:20px;margin-bottom:8px;padding:0 16px}.affix-container{position:relative}.affix-container .vertical-align{display:flex;align-items:center;position:absolute;top:0;bottom:0}.affix-container .prefix{left:12px}.affix-container .suffix{right:12px}.affix-container .semi-dark-text ::ng-deep>span,.affix-container .semi-dark-text ::ng-deep>h1,.affix-container .semi-dark-text ::ng-deep>h2,.affix-container .semi-dark-text ::ng-deep>h3,.affix-container .semi-dark-text ::ng-deep>h4,.affix-container .semi-dark-text ::ng-deep>h5,.affix-container .semi-dark-text ::ng-deep>h6,.affix-container .semi-dark-text ::ng-deep>p,.affix-container .semi-dark-text ::ng-deep>data{color:var(--kirby-text-color-semi-dark)}.affix-container:has(input[type=date]){--date-input-background-color: var(--kirby-inputs-background-color)}@media (hover: hover){.affix-container:has(input[type=date]):hover{--state-layer-opacity: .08;--state-layer-background-color: var(--kirby-black);cursor:pointer;--date-input-background-color: #e0e0e0}}.affix-container:has(input[type=date]):active,.affix-container:has(input[type=date]).interaction-state-active{--state-layer-opacity: .12;--state-layer-background-color: var(--kirby-black);--date-input-background-color: #cbcbcb}.affix-container:has(input[type=date]) .suffix:not(:empty){top:8px;bottom:8px;padding-inline-start:12px;pointer-events:none;background-color:var(--date-input-background-color);transition:all 80ms linear 0ms;transition-property:background-color}\n"] }]
|
|
557
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.PlatformService }, { type: i0.Renderer2 }, { type: i2.WindowRef }, { type: i3.ResizeObserverService }, { type: i0.ChangeDetectorRef }], propDecorators: { label: [{
|
|
491
558
|
type: Input
|
|
492
559
|
}], message: [{
|
|
493
560
|
type: Input
|
|
@@ -500,6 +567,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
|
500
567
|
}], radioGroupComponent: [{
|
|
501
568
|
type: ContentChild,
|
|
502
569
|
args: [RadioGroupComponent]
|
|
570
|
+
}], inputComponent: [{
|
|
571
|
+
type: ContentChild,
|
|
572
|
+
args: [InputComponent]
|
|
573
|
+
}], textareaComponent: [{
|
|
574
|
+
type: ContentChild,
|
|
575
|
+
args: [TextareaComponent]
|
|
503
576
|
}], radioGroupElement: [{
|
|
504
577
|
type: ContentChild,
|
|
505
578
|
args: [RadioGroupComponent, { read: ElementRef }]
|
|
@@ -598,8 +671,8 @@ class DecimalMaskDirective {
|
|
|
598
671
|
maxlengthValue = -Math.abs(maxlengthValue);
|
|
599
672
|
return this.min === undefined ? maxlengthValue : -Math.abs(Math.max(this.min, maxlengthValue));
|
|
600
673
|
}
|
|
601
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.
|
|
602
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.
|
|
674
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DecimalMaskDirective, deps: [{ token: i0.ElementRef }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
675
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.5", type: DecimalMaskDirective, isStandalone: true, selector: "[kirby-decimal-mask]", inputs: { min: "min", max: "max", precision: "precision", setMaxOnOverflow: "setMaxOnOverflow", alignment: "alignment", allowMinus: "allowMinus", disableGroupSeperator: "disableGroupSeperator", maxlength: "maxlength" }, providers: [
|
|
603
676
|
{
|
|
604
677
|
provide: NG_VALUE_ACCESSOR,
|
|
605
678
|
multi: true,
|
|
@@ -607,7 +680,7 @@ class DecimalMaskDirective {
|
|
|
607
680
|
},
|
|
608
681
|
], ngImport: i0 }); }
|
|
609
682
|
}
|
|
610
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
683
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: DecimalMaskDirective, decorators: [{
|
|
611
684
|
type: Directive,
|
|
612
685
|
args: [{
|
|
613
686
|
standalone: true,
|
|
@@ -644,11 +717,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
|
644
717
|
|
|
645
718
|
const declarations = [FormFieldComponent, FormFieldMessageComponent, InputCounterComponent];
|
|
646
719
|
class FormFieldModule {
|
|
647
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.
|
|
648
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.
|
|
649
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.
|
|
720
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: FormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
721
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.5", ngImport: i0, type: FormFieldModule, declarations: [FormFieldComponent, FormFieldMessageComponent, InputCounterComponent], imports: [CommonModule, DecimalMaskDirective, IconModule, AffixDirective], exports: [FormFieldComponent, FormFieldMessageComponent, InputCounterComponent, DecimalMaskDirective, AffixDirective] }); }
|
|
722
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: FormFieldModule, imports: [CommonModule, IconModule] }); }
|
|
650
723
|
}
|
|
651
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.
|
|
724
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: FormFieldModule, decorators: [{
|
|
652
725
|
type: NgModule,
|
|
653
726
|
args: [{
|
|
654
727
|
imports: [CommonModule, DecimalMaskDirective, IconModule, AffixDirective],
|