@daffodil/design 0.93.1 → 0.94.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 +0 -1
- package/accordion/src/accordion-theme.scss +2 -2
- package/article/src/article/_stops-article-cascade.scss +5 -1
- package/article/src/article-theme.scss +2 -2
- package/badge/README.md +85 -0
- package/badge/src/badge-theme.scss +197 -0
- package/breadcrumb/src/breadcrumb-theme.scss +2 -2
- package/button/src/button/basic/button-theme.scss +2 -2
- package/button/src/button/flat/flat-theme.scss +2 -2
- package/button/src/button/icon/icon-theme.scss +2 -2
- package/button/src/button/raised/raised-theme.scss +13 -13
- package/button/src/button/stroked/stroked-theme.scss +2 -2
- package/button/src/button/underline/underline-theme.scss +2 -2
- package/callout/src/callout-theme.scss +12 -2
- package/card/src/card/stroked/stroked-theme.scss +14 -22
- package/card/src/card-base-theme.scss +4 -4
- package/card/src/card-base.scss +13 -16
- package/fesm2022/daffodil-design-accordion.mjs +9 -15
- package/fesm2022/daffodil-design-accordion.mjs.map +1 -1
- package/fesm2022/daffodil-design-article.mjs +2 -2
- package/fesm2022/daffodil-design-article.mjs.map +1 -1
- package/fesm2022/daffodil-design-badge.mjs +87 -0
- package/fesm2022/daffodil-design-badge.mjs.map +1 -0
- package/fesm2022/daffodil-design-breadcrumb.mjs +1 -1
- package/fesm2022/daffodil-design-breadcrumb.mjs.map +1 -1
- package/fesm2022/daffodil-design-button.mjs +1 -1
- package/fesm2022/daffodil-design-button.mjs.map +1 -1
- package/fesm2022/daffodil-design-callout.mjs +2 -2
- package/fesm2022/daffodil-design-card.mjs +9 -11
- package/fesm2022/daffodil-design-card.mjs.map +1 -1
- package/fesm2022/daffodil-design-form-field.mjs +95 -115
- package/fesm2022/daffodil-design-form-field.mjs.map +1 -1
- package/fesm2022/daffodil-design-form.mjs +5 -7
- package/fesm2022/daffodil-design-form.mjs.map +1 -1
- package/fesm2022/daffodil-design-image.mjs +41 -98
- package/fesm2022/daffodil-design-image.mjs.map +1 -1
- package/fesm2022/daffodil-design-input.mjs +3 -3
- package/fesm2022/daffodil-design-input.mjs.map +1 -1
- package/fesm2022/daffodil-design-list.mjs +16 -21
- package/fesm2022/daffodil-design-list.mjs.map +1 -1
- package/fesm2022/daffodil-design-media-gallery.mjs +56 -61
- package/fesm2022/daffodil-design-media-gallery.mjs.map +1 -1
- package/fesm2022/daffodil-design-menu.mjs +61 -38
- package/fesm2022/daffodil-design-menu.mjs.map +1 -1
- package/fesm2022/daffodil-design-native-select.mjs +3 -3
- package/fesm2022/daffodil-design-native-select.mjs.map +1 -1
- package/fesm2022/daffodil-design-notification.mjs +17 -20
- package/fesm2022/daffodil-design-notification.mjs.map +1 -1
- package/fesm2022/daffodil-design-paginator.mjs +71 -76
- package/fesm2022/daffodil-design-paginator.mjs.map +1 -1
- package/fesm2022/daffodil-design-progress-bar.mjs +33 -53
- package/fesm2022/daffodil-design-progress-bar.mjs.map +1 -1
- package/fesm2022/daffodil-design-select.mjs +1 -1
- package/fesm2022/daffodil-design-select.mjs.map +1 -1
- package/fesm2022/daffodil-design-spinner.mjs +17 -16
- package/fesm2022/daffodil-design-spinner.mjs.map +1 -1
- package/fesm2022/daffodil-design-switch.mjs +20 -29
- package/fesm2022/daffodil-design-switch.mjs.map +1 -1
- package/fesm2022/daffodil-design-tabs.mjs +86 -88
- package/fesm2022/daffodil-design-tabs.mjs.map +1 -1
- package/fesm2022/daffodil-design-tag.mjs +14 -17
- package/fesm2022/daffodil-design-tag.mjs.map +1 -1
- package/fesm2022/daffodil-design-text-snippet.mjs +18 -23
- package/fesm2022/daffodil-design-text-snippet.mjs.map +1 -1
- package/fesm2022/daffodil-design-textarea.mjs +3 -3
- package/fesm2022/daffodil-design-textarea.mjs.map +1 -1
- package/fesm2022/daffodil-design-toast.mjs +19 -20
- package/fesm2022/daffodil-design-toast.mjs.map +1 -1
- package/fesm2022/daffodil-design.mjs +95 -69
- package/fesm2022/daffodil-design.mjs.map +1 -1
- package/form/src/hint/hint-theme.scss +2 -2
- package/form-field/src/form-field-theme.scss +2 -2
- package/hero/src/hero-theme.scss +12 -2
- package/list/README.md +10 -0
- package/list/src/list-theme.scss +2 -2
- package/media-gallery/README.md +0 -5
- package/media-gallery/src/media-gallery-theme.scss +2 -2
- package/menu/README.md +5 -0
- package/menu/src/menu-theme.scss +4 -4
- package/notification/src/notification-theme.scss +2 -2
- package/package.json +1 -1
- package/paginator/src/paginator-theme.scss +2 -2
- package/progress-bar/README.md +1 -1
- package/progress-bar/src/progress-bar-theme.scss +2 -2
- package/scss/state/skeleton/_mixins.scss +2 -2
- package/scss/theme/default.scss +15 -0
- package/scss/theme.scss +2 -8
- package/scss/theming/_configure-palette.scss +5 -1
- package/scss/theming/_get-theme-mode.scss +1 -1
- package/scss/theming/_index.scss +2 -3
- package/scss/theming/_light-dark.scss +37 -12
- package/scss/theming/color-shift/_color-shift.scss +56 -0
- package/scss/theming/color-shift/_color-shift.spec.scss +107 -0
- package/scss/theming/color-shift/_index.scss +1 -0
- package/scss/theming/{_daff-theme.scss → default/_daff-theme.scss} +4 -4
- package/scss/theming/default/_index.scss +1 -0
- package/select/src/select-theme.scss +5 -3
- package/switch/src/switch-theme.scss +2 -2
- package/tabs/src/tabs-theme.scss +2 -2
- package/tag/src/tag-theme.scss +2 -2
- package/toast/src/toast-theme.scss +2 -2
- package/tree/src/tree-theme.scss +2 -2
- package/types/daffodil-design-accordion.d.ts +4 -4
- package/types/daffodil-design-badge.d.ts +63 -0
- package/types/daffodil-design-card.d.ts +2 -2
- package/types/daffodil-design-form-field.d.ts +34 -31
- package/types/daffodil-design-form.d.ts +2 -2
- package/types/daffodil-design-image.d.ts +15 -28
- package/types/daffodil-design-list.d.ts +3 -3
- package/types/daffodil-design-media-gallery.d.ts +31 -20
- package/types/daffodil-design-menu.d.ts +51 -20
- package/types/daffodil-design-notification.d.ts +5 -6
- package/types/daffodil-design-paginator.d.ts +20 -25
- package/types/daffodil-design-progress-bar.d.ts +16 -21
- package/types/daffodil-design-spinner.d.ts +2 -2
- package/types/daffodil-design-switch.d.ts +7 -8
- package/types/daffodil-design-tabs.d.ts +29 -29
- package/types/daffodil-design-tag.d.ts +5 -7
- package/types/daffodil-design-text-snippet.d.ts +9 -9
- package/types/daffodil-design.d.ts +53 -38
- package/fesm2022/daffodil-design-loading-icon.mjs +0 -67
- package/fesm2022/daffodil-design-loading-icon.mjs.map +0 -1
- package/loading-icon/README.md +0 -59
- package/loading-icon/src/loading-icon-theme.scss +0 -103
- package/scss/theming/illuminate/illuminate.scss +0 -149
- package/scss/theming/illuminate/illuminate.spec.scss +0 -15
- package/types/daffodil-design-loading-icon.d.ts +0 -31
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive,
|
|
2
|
+
import { Directive, computed, contentChild, signal, input, isDevMode, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@daffodil/design';
|
|
4
4
|
import { DaffPrefixDirective, DaffSuffixDirective, DaffFormLabelDirective, DaffSkeletonableDirective, DaffFormLabelModule } from '@daffodil/design';
|
|
5
5
|
import { DaffFormFieldLabelDirective, DaffHintComponent, DaffErrorMessageComponent } from '@daffodil/design/form';
|
|
@@ -86,67 +86,120 @@ class DaffFormFieldControl {
|
|
|
86
86
|
;
|
|
87
87
|
|
|
88
88
|
let daffFormFieldId = 0;
|
|
89
|
-
var
|
|
90
|
-
(function (
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
})(
|
|
89
|
+
var DaffFormFieldAppearanceEnum;
|
|
90
|
+
(function (DaffFormFieldAppearanceEnum) {
|
|
91
|
+
DaffFormFieldAppearanceEnum["Fluid"] = "fluid";
|
|
92
|
+
DaffFormFieldAppearanceEnum["Fixed"] = "fixed";
|
|
93
|
+
})(DaffFormFieldAppearanceEnum || (DaffFormFieldAppearanceEnum = {}));
|
|
94
94
|
const DaffFormFieldMissingControlMessage = 'A DaffFormFieldComponent must contain a DaffFormFieldControl';
|
|
95
95
|
/**
|
|
96
96
|
* DaffFormFieldComponent is a wrapping component that provides consistent styling and behavior for form control elements.
|
|
97
97
|
*/
|
|
98
98
|
class DaffFormFieldComponent {
|
|
99
|
-
/** @docs-private */
|
|
100
|
-
get isNativeSelect() {
|
|
101
|
-
return this._control.controlType === 'native-select';
|
|
102
|
-
}
|
|
103
99
|
constructor(cd, elementRef) {
|
|
104
100
|
this.cd = cd;
|
|
105
101
|
this.elementRef = elementRef;
|
|
102
|
+
/** @docs-private */
|
|
103
|
+
this.isNativeSelect = computed(() => this._control()?.controlType === 'native-select', ...(ngDevMode ? [{ debugName: "isNativeSelect" }] : /* istanbul ignore next */ []));
|
|
104
|
+
/** @docs-private */
|
|
105
|
+
this._prefix = contentChild(DaffPrefixDirective, ...(ngDevMode ? [{ debugName: "_prefix" }] : /* istanbul ignore next */ []));
|
|
106
|
+
/** @docs-private */
|
|
107
|
+
this._suffix = contentChild(DaffSuffixDirective, ...(ngDevMode ? [{ debugName: "_suffix" }] : /* istanbul ignore next */ []));
|
|
108
|
+
/**
|
|
109
|
+
* @docs-private
|
|
110
|
+
*
|
|
111
|
+
* The child form control that the form field manages.
|
|
112
|
+
*/
|
|
113
|
+
this._control = contentChild(DaffFormFieldControl, ...(ngDevMode ? [{ debugName: "_control" }] : /* istanbul ignore next */ []));
|
|
114
|
+
/**
|
|
115
|
+
* @docs-private
|
|
116
|
+
*
|
|
117
|
+
* @deprecated Deprecated in version 0.86.0. Will be removed in version 1.0.0.
|
|
118
|
+
*/
|
|
119
|
+
this._formLabelDirective = contentChild(DaffFormLabelDirective, ...(ngDevMode ? [{ debugName: "_formLabelDirective" }] : /* istanbul ignore next */ []));
|
|
120
|
+
/**
|
|
121
|
+
* @docs-private
|
|
122
|
+
*/
|
|
123
|
+
this._formFieldLabelDirective = contentChild(DaffFormFieldLabelDirective, ...(ngDevMode ? [{ debugName: "_formFieldLabelDirective" }] : /* istanbul ignore next */ []));
|
|
124
|
+
/**
|
|
125
|
+
* @docs-private
|
|
126
|
+
*/
|
|
127
|
+
this._action = contentChild(DaffFormFieldActionDirective, ...(ngDevMode ? [{ debugName: "_action" }] : /* istanbul ignore next */ []));
|
|
128
|
+
/**
|
|
129
|
+
* @docs-private
|
|
130
|
+
*/
|
|
131
|
+
this._hint = contentChild(DaffHintComponent, ...(ngDevMode ? [{ debugName: "_hint" }] : /* istanbul ignore next */ []));
|
|
132
|
+
/**
|
|
133
|
+
* @docs-private
|
|
134
|
+
*/
|
|
135
|
+
this._error = contentChild(DaffErrorMessageComponent, ...(ngDevMode ? [{ debugName: "_error" }] : /* istanbul ignore next */ []));
|
|
106
136
|
/**
|
|
107
137
|
* @docs-private
|
|
108
138
|
*
|
|
109
139
|
* Tracking property to keep a record of whether or not the
|
|
110
140
|
* form field should be marked as error.
|
|
111
141
|
*/
|
|
112
|
-
this.isError = false;
|
|
142
|
+
this.isError = signal(false, ...(ngDevMode ? [{ debugName: "isError" }] : /* istanbul ignore next */ []));
|
|
113
143
|
/**
|
|
114
144
|
* @docs-private
|
|
115
145
|
*
|
|
116
146
|
* Tracking property to keep a record of whether or not the
|
|
117
147
|
* form field contains any user input.
|
|
118
148
|
*/
|
|
119
|
-
this.isFilled = false;
|
|
149
|
+
this.isFilled = signal(false, ...(ngDevMode ? [{ debugName: "isFilled" }] : /* istanbul ignore next */ []));
|
|
120
150
|
/**
|
|
121
151
|
* @docs-private
|
|
122
152
|
*
|
|
123
153
|
* Tracking property to keep a record of whether or not the
|
|
124
154
|
* form field should be marked as disabled.
|
|
125
155
|
*/
|
|
126
|
-
this.isDisabled = false;
|
|
156
|
+
this.isDisabled = signal(false, ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
127
157
|
/**
|
|
128
158
|
* @docs-private
|
|
129
159
|
*
|
|
130
160
|
* Tracking property to keep a record of whether or not the
|
|
131
161
|
* form field should be marked as valid.
|
|
132
162
|
*/
|
|
133
|
-
this.isValid = false;
|
|
134
|
-
|
|
163
|
+
this.isValid = signal(false, ...(ngDevMode ? [{ debugName: "isValid" }] : /* istanbul ignore next */ []));
|
|
164
|
+
/**
|
|
165
|
+
* The appearance of the form field. Defaults to `fluid`.
|
|
166
|
+
*/
|
|
167
|
+
this.appearance = input(DaffFormFieldAppearanceEnum.Fluid, { ...(ngDevMode ? { debugName: "appearance" } : /* istanbul ignore next */ {}), transform: (value) => value || DaffFormFieldAppearanceEnum.Fluid });
|
|
168
|
+
/**
|
|
169
|
+
* @docs-private
|
|
170
|
+
*/
|
|
171
|
+
this.isFixed = computed(() => this.appearance() === DaffFormFieldAppearanceEnum.Fixed, ...(ngDevMode ? [{ debugName: "isFixed" }] : /* istanbul ignore next */ []));
|
|
135
172
|
/**
|
|
136
173
|
* The unique id of the form field. Defaults to an autogenerated value. When using this,
|
|
137
174
|
* it's your responsibility to ensure that the id for each form field is unique.
|
|
138
175
|
*
|
|
139
176
|
* It gets assigned to the `for` attribute on the `<label>` inside of the form field.
|
|
140
177
|
*/
|
|
141
|
-
this.id = 'daff-form-field-' + ++daffFormFieldId;
|
|
178
|
+
this.id = input('daff-form-field-' + ++daffFormFieldId, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
179
|
+
/**
|
|
180
|
+
* @docs-private
|
|
181
|
+
*/
|
|
182
|
+
this.hasHint = computed(() => !!this._hint(), ...(ngDevMode ? [{ debugName: "hasHint" }] : /* istanbul ignore next */ []));
|
|
142
183
|
/**
|
|
143
184
|
* @docs-private
|
|
144
185
|
*/
|
|
145
|
-
this.hintId = this.id + '-hint';
|
|
186
|
+
this.hintId = computed(() => this.id() + '-hint', ...(ngDevMode ? [{ debugName: "hintId" }] : /* istanbul ignore next */ []));
|
|
146
187
|
/**
|
|
147
188
|
* @docs-private
|
|
148
189
|
*/
|
|
149
|
-
this.
|
|
190
|
+
this.hasErrorMessage = computed(() => !!this._error(), ...(ngDevMode ? [{ debugName: "hasErrorMessage" }] : /* istanbul ignore next */ []));
|
|
191
|
+
/**
|
|
192
|
+
* @docs-private
|
|
193
|
+
*/
|
|
194
|
+
this.errorMessageId = computed(() => this.id() + '-error', ...(ngDevMode ? [{ debugName: "errorMessageId" }] : /* istanbul ignore next */ []));
|
|
195
|
+
/**
|
|
196
|
+
* @docs-private
|
|
197
|
+
*/
|
|
198
|
+
this.autoLabelId = computed(() => this._control()?.supportsAutoLabelling ? this.id() : null, ...(ngDevMode ? [{ debugName: "autoLabelId" }] : /* istanbul ignore next */ []));
|
|
199
|
+
/**
|
|
200
|
+
* @docs-private
|
|
201
|
+
*/
|
|
202
|
+
this.customId = computed(() => this._control()?.supportsAutoLabelling ? null : this.id(), ...(ngDevMode ? [{ debugName: "customId" }] : /* istanbul ignore next */ []));
|
|
150
203
|
}
|
|
151
204
|
/**
|
|
152
205
|
* @docs-private
|
|
@@ -154,58 +207,13 @@ class DaffFormFieldComponent {
|
|
|
154
207
|
* Determines whether or not the form field should display its focused state.
|
|
155
208
|
*/
|
|
156
209
|
get isFocused() {
|
|
157
|
-
return this._control?.focused;
|
|
210
|
+
return this._control()?.focused;
|
|
158
211
|
}
|
|
159
212
|
/**
|
|
160
213
|
* @docs-private
|
|
161
214
|
*/
|
|
162
215
|
get isRaised() {
|
|
163
|
-
return this._control?.raised || this.isFilled;
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* The appearance of the form field. Defaults to `fluid`.
|
|
167
|
-
*/
|
|
168
|
-
get appearance() {
|
|
169
|
-
return this._appearance;
|
|
170
|
-
}
|
|
171
|
-
set appearance(value) {
|
|
172
|
-
if (value === null || value === undefined || value === '') {
|
|
173
|
-
this._appearance = DaffFormFieldApperanaceEnum.Fluid;
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
this._appearance = value;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
;
|
|
180
|
-
/**
|
|
181
|
-
* @docs-private
|
|
182
|
-
*/
|
|
183
|
-
get isFixed() {
|
|
184
|
-
return this._appearance === DaffFormFieldApperanaceEnum.Fixed;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* @docs-private
|
|
188
|
-
*/
|
|
189
|
-
hasHint() {
|
|
190
|
-
return this._hint ? true : false;
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* @docs-private
|
|
194
|
-
*/
|
|
195
|
-
hasErrorMessage() {
|
|
196
|
-
return this._error ? true : false;
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* @docs-private
|
|
200
|
-
*/
|
|
201
|
-
get autoLabelId() {
|
|
202
|
-
return this._control.supportsAutoLabelling ? this.id : null;
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* @docs-private
|
|
206
|
-
*/
|
|
207
|
-
get customId() {
|
|
208
|
-
return this._control.supportsAutoLabelling ? null : this.id;
|
|
216
|
+
return this._control()?.raised || this.isFilled();
|
|
209
217
|
}
|
|
210
218
|
/**
|
|
211
219
|
* @docs-private
|
|
@@ -214,14 +222,14 @@ class DaffFormFieldComponent {
|
|
|
214
222
|
*/
|
|
215
223
|
ngAfterViewInit() {
|
|
216
224
|
if (isDevMode()) {
|
|
217
|
-
if (!this._formFieldLabelDirective && this._control
|
|
218
|
-
console.warn(`Accessibility Warning: The form field with id "${this.id}" uses a control that supports auto-labelling, but no <daff-form-label> component was found.\n\n` +
|
|
225
|
+
if (!this._formFieldLabelDirective() && this._control()?.supportsAutoLabelling && !(this._control()?.id)) {
|
|
226
|
+
console.warn(`Accessibility Warning: The form field with id "${this.id()}" uses a control that supports auto-labelling, but no <daff-form-label> component was found.\n\n` +
|
|
219
227
|
`1. Add a <daff-form-label> component (recommended)\n` +
|
|
220
228
|
`2. OR manually set an 'id' on your input and matching 'for' attribute on your <label>.\n\n` +
|
|
221
229
|
`Why this matters: Proper labelling ensures assistive technologies can identify form fields correctly.`);
|
|
222
230
|
}
|
|
223
|
-
if (this._suffix && this._action && !this.isFixed) {
|
|
224
|
-
console.warn(`UI consideration for form field with id "${this.id}":\n\n` + `In a fluid appearance, avoid using suffix alongside an action.`);
|
|
231
|
+
if (this._suffix() && this._action() && !this.isFixed()) {
|
|
232
|
+
console.warn(`UI consideration for form field with id "${this.id()}":\n\n` + `In a fluid appearance, avoid using suffix alongside an action.`);
|
|
225
233
|
}
|
|
226
234
|
;
|
|
227
235
|
}
|
|
@@ -230,7 +238,7 @@ class DaffFormFieldComponent {
|
|
|
230
238
|
* Validates whether or not the form field is in a "usable" state.
|
|
231
239
|
*/
|
|
232
240
|
_validateFormControl() {
|
|
233
|
-
if (!this._control) {
|
|
241
|
+
if (!this._control()) {
|
|
234
242
|
throw new Error(DaffFormFieldMissingControlMessage);
|
|
235
243
|
}
|
|
236
244
|
}
|
|
@@ -243,11 +251,11 @@ class DaffFormFieldComponent {
|
|
|
243
251
|
*/
|
|
244
252
|
ngAfterContentInit() {
|
|
245
253
|
this._validateFormControl();
|
|
246
|
-
this._control
|
|
247
|
-
this.isFilled
|
|
248
|
-
this.isError
|
|
249
|
-
this.isDisabled
|
|
250
|
-
this.isValid
|
|
254
|
+
this._control()?.stateChanges?.subscribe(({ filled, disabled, error, valid }) => {
|
|
255
|
+
this.isFilled.set(filled);
|
|
256
|
+
this.isError.set(error);
|
|
257
|
+
this.isDisabled.set(disabled);
|
|
258
|
+
this.isValid.set(valid);
|
|
251
259
|
this.cd.markForCheck();
|
|
252
260
|
});
|
|
253
261
|
}
|
|
@@ -262,7 +270,7 @@ class DaffFormFieldComponent {
|
|
|
262
270
|
this._validateFormControl();
|
|
263
271
|
}
|
|
264
272
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffFormFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
265
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DaffFormFieldComponent, isStandalone: true, selector: "daff-form-field", inputs: { appearance: "appearance", id: "id" }, host: { properties: { "class.is-native-select": "isNativeSelect", "class.has-prefix": "_prefix", "class.has-suffix": "_suffix", "class.has-action": "_action", "class.daff-error": "isError", "class.daff-disabled": "isDisabled", "class.daff-valid": "isValid", "class.daff-focused": "isFocused", "class.daff-raised": "isRaised", "class.fluid": "appearance === \"fluid\"", "class.fixed": "appearance === \"fixed\"" }, classAttribute: "daff-form-field" }, queries: [{ propertyName: "_prefix", first: true, predicate: DaffPrefixDirective, descendants: true }, { propertyName: "_suffix", first: true, predicate: DaffSuffixDirective, descendants: true }, { propertyName: "_control", first: true, predicate: DaffFormFieldControl, descendants: true }, { propertyName: "_formLabelDirective", first: true, predicate: DaffFormLabelDirective, descendants: true }, { propertyName: "_formFieldLabelDirective", first: true, predicate: DaffFormFieldLabelDirective, descendants: true }, { propertyName: "_action", first: true, predicate: DaffFormFieldActionDirective, descendants: true }, { propertyName: "_hint", first: true, predicate: DaffHintComponent, descendants: true }, { propertyName: "_error", first: true, predicate: DaffErrorMessageComponent, descendants: true }], hostDirectives: [{ directive: i1.DaffSkeletonableDirective, inputs: ["skeleton", "skeleton"] }], ngImport: i0, template: "<ng-content />\n\n@if (isFixed) {\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n}\n<div class=\"daff-form-field__wrapper\">\n\t<div class=\"daff-form-field__control\">\n\t\t@if (_prefix) {\n\t\t\t<ng-content select=\"[daffPrefix]\"></ng-content>\n\t\t}\n\t\t<div class=\"daff-form-field__inner\">\n\t\t\t@if (!isFixed) {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n\t\t\t}\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t\t@if (_suffix) {\n\t\t\t<ng-content select=\"[daffSuffix]\"></ng-content>\n\t\t}\n\t\t@if (_action && !isFixed) {\n\t\t\t<ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n\t\t}\n\t</div>\n\t@if ((_action && isFixed)) {\n\t\t<ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n\t}\n</div>\n@if (hasHint()) {\n\t<div\n\t\tclass=\"daff-form-field__hint-wrapper\"\n\t\t[id]=\"hintId\">\n\t\t<ng-content select=\"daff-hint\"></ng-content>\n\t</div>\n}\n@if (hasErrorMessage()) {\n\t<div\n\t\tclass=\"daff-form-field__error-wrapper\"\n\t\t[id]=\"errorMessageId\">\n\t\t<ng-content select=\"daff-error-message\"></ng-content>\n\t</div>\n}\n\n<ng-template #actionTemplate>\n\t<ng-content select=\"[daffFormFieldAction]\"></ng-content>\n</ng-template>\n\n<ng-template #labelTemplate>\n @if (_formLabelDirective) {\n <ng-content select=\"label[daffFormLabel]\"></ng-content>\n } @else if(_formFieldLabelDirective) {\n <label class=\"daff-form-field__label\"\n [attr.for]=\"autoLabelId\"\n [attr.id]=\"customId\">\n <ng-content select=\"daff-form-label\"></ng-content>\n\t\t\t@if (_control.required) {\n\t\t\t<span aria-hidden=\"true\">*</span>\n\t\t\t}\n </label>\n } @else {\n <ng-content select=\"label\"></ng-content>\n }\n</ng-template>", styles: [".daff-form-field{display:flex;flex-direction:column;gap:.25rem;position:relative}.daff-form-field.has-prefix .daff-form-field__control{padding-left:0}.daff-form-field.has-suffix .daff-form-field__control{padding-right:0}.daff-form-field__hint-wrapper,.daff-form-field__error-wrapper{display:flex;flex-direction:column;gap:.25rem}.daff-form-field__wrapper{display:flex;gap:.25rem}.daff-form-field__control{display:flex;align-items:center;border-radius:.25rem;font-size:1rem;line-height:1rem;padding:0 1rem;position:relative;width:100%}.daff-form-field__control+.daff-hint,.daff-form-field__control+.daff-error-message{margin-top:.5rem}.daff-form-field.is-native-select .daff-form-field__control:after{content:\"\";position:absolute;top:48%;right:1rem;display:inline-block;border-right:.125rem solid currentColor;border-bottom:.125rem solid currentColor;width:.5rem;height:.5rem;transform:translateY(-50%) rotate(45deg)}.daff-form-field.fixed input,.daff-form-field.fixed textarea,.daff-form-field.fixed select{font-size:1rem;line-height:1.5rem;padding:calc(.75rem - 1px) 0}.daff-form-field.fixed input * ::-webkit-input-placeholder,.daff-form-field.fixed textarea * ::-webkit-input-placeholder,.daff-form-field.fixed select * ::-webkit-input-placeholder{opacity:1}.daff-form-field.fluid .daff-form-field__control * ::-webkit-input-placeholder{opacity:0}.daff-form-field.fluid.has-action .daff-form-field__control{padding-right:0}.daff-form-field.fluid.has-action .daff-form-field__inner{padding-right:1rem}.daff-form-field.fluid .daff-form-field-action{margin-right:.25rem}.daff-form-field.fluid input,.daff-form-field.fluid textarea,.daff-form-field.fluid select{font-size:1rem;line-height:1.5rem;padding:1rem 0}.daff-form-field.fluid label,.daff-form-field.fluid .daff-form-label,.daff-form-field.fluid .daff-form-field__label{position:absolute;left:0;top:1.25rem;pointer-events:none;transform-origin:left top;transition:transform .15s;white-space:nowrap}.daff-form-field.fluid label+input,.daff-form-field.fluid label+textarea,.daff-form-field.fluid label+select,.daff-form-field.fluid label~* input,.daff-form-field.fluid label~* textarea,.daff-form-field.fluid label~* select,.daff-form-field.fluid .daff-form-label+input,.daff-form-field.fluid .daff-form-label+textarea,.daff-form-field.fluid .daff-form-label+select,.daff-form-field.fluid .daff-form-label~* input,.daff-form-field.fluid .daff-form-label~* textarea,.daff-form-field.fluid .daff-form-label~* select,.daff-form-field.fluid .daff-form-field__label+input,.daff-form-field.fluid .daff-form-field__label+textarea,.daff-form-field.fluid .daff-form-field__label+select,.daff-form-field.fluid .daff-form-field__label~* input,.daff-form-field.fluid .daff-form-field__label~* textarea,.daff-form-field.fluid .daff-form-field__label~* select{padding:calc(1.5rem - 1px) 0 calc(.5rem - 1px)}.daff-form-field.fluid.daff-raised label,.daff-form-field.fluid.daff-raised .daff-form-label,.daff-form-field.fluid.daff-raised .daff-form-field__label{transform:translateY(-75%) scale(.75)}.daff-form-field.fluid.daff-raised * ::-webkit-input-placeholder{opacity:1}.daff-form-field.fluid .daff-prefix,.daff-form-field.fluid .daff-suffix{height:3rem;min-width:3rem}.daff-form-field.daff-disabled{cursor:not-allowed;opacity:.5}.daff-form-field__inner{flex-grow:1;position:relative;overflow:hidden}.daff-form-field .daff-prefix,.daff-form-field .daff-suffix{display:flex;align-items:center;justify-content:center;appearance:none;background:none;border:none;height:calc(3rem - 2px);min-width:calc(3rem - 2px)}.daff-form-field.daff-skeleton{display:flex;position:relative;height:3.5rem;width:100%;border-radius:.25rem}.daff-form-field.daff-skeleton:before{animation-name:loading;animation-duration:1s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:alternate;content:\"\";height:3.5rem;width:100%;position:absolute;top:0;left:0}@keyframes loading{0%{opacity:.5}to{opacity:1}}.daff-form-field.daff-skeleton>*{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
273
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DaffFormFieldComponent, isStandalone: true, selector: "daff-form-field", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-native-select": "isNativeSelect()", "class.has-prefix": "_prefix()", "class.has-suffix": "_suffix()", "class.has-action": "_action()", "class.daff-error": "isError()", "class.daff-disabled": "isDisabled()", "class.daff-valid": "isValid()", "class.daff-focused": "isFocused", "class.daff-raised": "isRaised", "class.fluid": "appearance() === \"fluid\"", "class.fixed": "appearance() === \"fixed\"" }, classAttribute: "daff-form-field" }, queries: [{ propertyName: "_prefix", first: true, predicate: DaffPrefixDirective, descendants: true, isSignal: true }, { propertyName: "_suffix", first: true, predicate: DaffSuffixDirective, descendants: true, isSignal: true }, { propertyName: "_control", first: true, predicate: DaffFormFieldControl, descendants: true, isSignal: true }, { propertyName: "_formLabelDirective", first: true, predicate: DaffFormLabelDirective, descendants: true, isSignal: true }, { propertyName: "_formFieldLabelDirective", first: true, predicate: DaffFormFieldLabelDirective, descendants: true, isSignal: true }, { propertyName: "_action", first: true, predicate: DaffFormFieldActionDirective, descendants: true, isSignal: true }, { propertyName: "_hint", first: true, predicate: DaffHintComponent, descendants: true, isSignal: true }, { propertyName: "_error", first: true, predicate: DaffErrorMessageComponent, descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.DaffSkeletonableDirective, inputs: ["skeleton", "skeleton"] }], ngImport: i0, template: "<ng-content />\n\n@if (isFixed()) {\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n}\n<div class=\"daff-form-field__wrapper\">\n\t<div class=\"daff-form-field__control\">\n\t\t@if (_prefix()) {\n\t\t\t<ng-content select=\"[daffPrefix]\"></ng-content>\n\t\t}\n\t\t<div class=\"daff-form-field__inner\">\n\t\t\t@if (!isFixed()) {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n\t\t\t}\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t\t@if (_suffix()) {\n\t\t\t<ng-content select=\"[daffSuffix]\"></ng-content>\n\t\t}\n\t\t@if (_action() && !isFixed()) {\n\t\t\t<ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n\t\t}\n\t</div>\n\t@if ((_action() && isFixed())) {\n\t\t<ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n\t}\n</div>\n@if (hasHint()) {\n\t<div\n\t\tclass=\"daff-form-field__hint-wrapper\"\n\t\t[id]=\"hintId()\">\n\t\t<ng-content select=\"daff-hint\"></ng-content>\n\t</div>\n}\n@if (hasErrorMessage()) {\n\t<div\n\t\tclass=\"daff-form-field__error-wrapper\"\n\t\t[id]=\"errorMessageId()\">\n\t\t<ng-content select=\"daff-error-message\"></ng-content>\n\t</div>\n}\n\n<ng-template #actionTemplate>\n\t<ng-content select=\"[daffFormFieldAction]\"></ng-content>\n</ng-template>\n\n<ng-template #labelTemplate>\n @if (_formLabelDirective()) {\n <ng-content select=\"label[daffFormLabel]\"></ng-content>\n } @else if(_formFieldLabelDirective()) {\n <label class=\"daff-form-field__label\"\n [attr.for]=\"autoLabelId()\"\n [attr.id]=\"customId()\">\n <ng-content select=\"daff-form-label\"></ng-content>\n\t\t\t@if (_control().required) {\n\t\t\t<span aria-hidden=\"true\">*</span>\n\t\t\t}\n </label>\n } @else {\n <ng-content select=\"label\"></ng-content>\n }\n</ng-template>", styles: [".daff-form-field{display:flex;flex-direction:column;gap:.25rem;position:relative}.daff-form-field.has-prefix .daff-form-field__control{padding-left:0}.daff-form-field.has-suffix .daff-form-field__control{padding-right:0}.daff-form-field__hint-wrapper,.daff-form-field__error-wrapper{display:flex;flex-direction:column;gap:.25rem}.daff-form-field__wrapper{display:flex;gap:.25rem}.daff-form-field__control{display:flex;align-items:center;border-radius:.25rem;font-size:1rem;line-height:1rem;padding:0 1rem;position:relative;width:100%}.daff-form-field__control+.daff-hint,.daff-form-field__control+.daff-error-message{margin-top:.5rem}.daff-form-field.is-native-select .daff-form-field__control:after{content:\"\";position:absolute;top:48%;right:1rem;display:inline-block;border-right:.125rem solid currentColor;border-bottom:.125rem solid currentColor;width:.5rem;height:.5rem;transform:translateY(-50%) rotate(45deg)}.daff-form-field.fixed input,.daff-form-field.fixed textarea,.daff-form-field.fixed select{font-size:1rem;line-height:1.5rem;padding:calc(.75rem - 1px) 0}.daff-form-field.fixed input * ::-webkit-input-placeholder,.daff-form-field.fixed textarea * ::-webkit-input-placeholder,.daff-form-field.fixed select * ::-webkit-input-placeholder{opacity:1}.daff-form-field.fluid .daff-form-field__control * ::-webkit-input-placeholder{opacity:0}.daff-form-field.fluid.has-action .daff-form-field__control{padding-right:0}.daff-form-field.fluid.has-action .daff-form-field__inner{padding-right:1rem}.daff-form-field.fluid .daff-form-field-action{margin-right:.25rem}.daff-form-field.fluid input,.daff-form-field.fluid textarea,.daff-form-field.fluid select{font-size:1rem;line-height:1.5rem;padding:1rem 0}.daff-form-field.fluid label,.daff-form-field.fluid .daff-form-label,.daff-form-field.fluid .daff-form-field__label{position:absolute;left:0;top:1.25rem;pointer-events:none;transform-origin:left top;transition:transform .15s;white-space:nowrap}.daff-form-field.fluid label+input,.daff-form-field.fluid label+textarea,.daff-form-field.fluid label+select,.daff-form-field.fluid label~* input,.daff-form-field.fluid label~* textarea,.daff-form-field.fluid label~* select,.daff-form-field.fluid .daff-form-label+input,.daff-form-field.fluid .daff-form-label+textarea,.daff-form-field.fluid .daff-form-label+select,.daff-form-field.fluid .daff-form-label~* input,.daff-form-field.fluid .daff-form-label~* textarea,.daff-form-field.fluid .daff-form-label~* select,.daff-form-field.fluid .daff-form-field__label+input,.daff-form-field.fluid .daff-form-field__label+textarea,.daff-form-field.fluid .daff-form-field__label+select,.daff-form-field.fluid .daff-form-field__label~* input,.daff-form-field.fluid .daff-form-field__label~* textarea,.daff-form-field.fluid .daff-form-field__label~* select{padding:calc(1.5rem - 1px) 0 calc(.5rem - 1px)}.daff-form-field.fluid.daff-raised label,.daff-form-field.fluid.daff-raised .daff-form-label,.daff-form-field.fluid.daff-raised .daff-form-field__label{transform:translateY(-75%) scale(.75)}.daff-form-field.fluid.daff-raised * ::-webkit-input-placeholder{opacity:1}.daff-form-field.fluid .daff-prefix,.daff-form-field.fluid .daff-suffix{height:3rem;min-width:3rem}.daff-form-field.daff-disabled{cursor:not-allowed;opacity:.5}.daff-form-field__inner{flex-grow:1;position:relative;overflow:hidden}.daff-form-field .daff-prefix,.daff-form-field .daff-suffix{display:flex;align-items:center;justify-content:center;appearance:none;background:none;border:none;height:calc(3rem - 2px);min-width:calc(3rem - 2px)}.daff-form-field.daff-skeleton{display:flex;position:relative;height:3.5rem;width:100%;border-radius:.25rem}.daff-form-field.daff-skeleton:before{animation-name:loading;animation-duration:1s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:alternate;content:\"\";height:3.5rem;width:100%;position:absolute;top:0;left:0}@keyframes loading{0%{opacity:.5}to{opacity:1}}.daff-form-field.daff-skeleton>*{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
266
274
|
}
|
|
267
275
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffFormFieldComponent, decorators: [{
|
|
268
276
|
type: Component,
|
|
@@ -270,52 +278,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
270
278
|
NgTemplateOutlet,
|
|
271
279
|
], host: {
|
|
272
280
|
class: 'daff-form-field',
|
|
273
|
-
'[class.is-native-select]': 'isNativeSelect',
|
|
274
|
-
'[class.has-prefix]': '_prefix',
|
|
275
|
-
'[class.has-suffix]': '_suffix',
|
|
276
|
-
'[class.has-action]': '_action',
|
|
277
|
-
'[class.daff-error]': 'isError',
|
|
278
|
-
'[class.daff-disabled]': 'isDisabled',
|
|
279
|
-
'[class.daff-valid]': 'isValid',
|
|
281
|
+
'[class.is-native-select]': 'isNativeSelect()',
|
|
282
|
+
'[class.has-prefix]': '_prefix()',
|
|
283
|
+
'[class.has-suffix]': '_suffix()',
|
|
284
|
+
'[class.has-action]': '_action()',
|
|
285
|
+
'[class.daff-error]': 'isError()',
|
|
286
|
+
'[class.daff-disabled]': 'isDisabled()',
|
|
287
|
+
'[class.daff-valid]': 'isValid()',
|
|
280
288
|
'[class.daff-focused]': 'isFocused',
|
|
281
289
|
'[class.daff-raised]': 'isRaised',
|
|
282
|
-
'[class.fluid]': 'appearance === "fluid"',
|
|
283
|
-
'[class.fixed]': 'appearance === "fixed"',
|
|
290
|
+
'[class.fluid]': 'appearance() === "fluid"',
|
|
291
|
+
'[class.fixed]': 'appearance() === "fixed"',
|
|
284
292
|
}, hostDirectives: [
|
|
285
293
|
{
|
|
286
294
|
directive: DaffSkeletonableDirective,
|
|
287
295
|
inputs: ['skeleton'],
|
|
288
296
|
},
|
|
289
|
-
], template: "<ng-content />\n\n@if (isFixed) {\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n}\n<div class=\"daff-form-field__wrapper\">\n\t<div class=\"daff-form-field__control\">\n\t\t@if (_prefix) {\n\t\t\t<ng-content select=\"[daffPrefix]\"></ng-content>\n\t\t}\n\t\t<div class=\"daff-form-field__inner\">\n\t\t\t@if (!isFixed) {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n\t\t\t}\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t\t@if (_suffix) {\n\t\t\t<ng-content select=\"[daffSuffix]\"></ng-content>\n\t\t}\n\t\t@if (_action && !isFixed) {\n\t\t\t<ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n\t\t}\n\t</div>\n\t@if ((_action && isFixed)) {\n\t\t<ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n\t}\n</div>\n@if (hasHint()) {\n\t<div\n\t\tclass=\"daff-form-field__hint-wrapper\"\n\t\t[id]=\"hintId\">\n\t\t<ng-content select=\"daff-hint\"></ng-content>\n\t</div>\n}\n@if (hasErrorMessage()) {\n\t<div\n\t\tclass=\"daff-form-field__error-wrapper\"\n\t\t[id]=\"errorMessageId\">\n\t\t<ng-content select=\"daff-error-message\"></ng-content>\n\t</div>\n}\n\n<ng-template #actionTemplate>\n\t<ng-content select=\"[daffFormFieldAction]\"></ng-content>\n</ng-template>\n\n<ng-template #labelTemplate>\n @if (_formLabelDirective) {\n <ng-content select=\"label[daffFormLabel]\"></ng-content>\n } @else if(_formFieldLabelDirective) {\n <label class=\"daff-form-field__label\"\n [attr.for]=\"autoLabelId\"\n [attr.id]=\"customId\">\n <ng-content select=\"daff-form-label\"></ng-content>\n\t\t\t@if (_control.required) {\n\t\t\t<span aria-hidden=\"true\">*</span>\n\t\t\t}\n </label>\n } @else {\n <ng-content select=\"label\"></ng-content>\n }\n</ng-template>", styles: [".daff-form-field{display:flex;flex-direction:column;gap:.25rem;position:relative}.daff-form-field.has-prefix .daff-form-field__control{padding-left:0}.daff-form-field.has-suffix .daff-form-field__control{padding-right:0}.daff-form-field__hint-wrapper,.daff-form-field__error-wrapper{display:flex;flex-direction:column;gap:.25rem}.daff-form-field__wrapper{display:flex;gap:.25rem}.daff-form-field__control{display:flex;align-items:center;border-radius:.25rem;font-size:1rem;line-height:1rem;padding:0 1rem;position:relative;width:100%}.daff-form-field__control+.daff-hint,.daff-form-field__control+.daff-error-message{margin-top:.5rem}.daff-form-field.is-native-select .daff-form-field__control:after{content:\"\";position:absolute;top:48%;right:1rem;display:inline-block;border-right:.125rem solid currentColor;border-bottom:.125rem solid currentColor;width:.5rem;height:.5rem;transform:translateY(-50%) rotate(45deg)}.daff-form-field.fixed input,.daff-form-field.fixed textarea,.daff-form-field.fixed select{font-size:1rem;line-height:1.5rem;padding:calc(.75rem - 1px) 0}.daff-form-field.fixed input * ::-webkit-input-placeholder,.daff-form-field.fixed textarea * ::-webkit-input-placeholder,.daff-form-field.fixed select * ::-webkit-input-placeholder{opacity:1}.daff-form-field.fluid .daff-form-field__control * ::-webkit-input-placeholder{opacity:0}.daff-form-field.fluid.has-action .daff-form-field__control{padding-right:0}.daff-form-field.fluid.has-action .daff-form-field__inner{padding-right:1rem}.daff-form-field.fluid .daff-form-field-action{margin-right:.25rem}.daff-form-field.fluid input,.daff-form-field.fluid textarea,.daff-form-field.fluid select{font-size:1rem;line-height:1.5rem;padding:1rem 0}.daff-form-field.fluid label,.daff-form-field.fluid .daff-form-label,.daff-form-field.fluid .daff-form-field__label{position:absolute;left:0;top:1.25rem;pointer-events:none;transform-origin:left top;transition:transform .15s;white-space:nowrap}.daff-form-field.fluid label+input,.daff-form-field.fluid label+textarea,.daff-form-field.fluid label+select,.daff-form-field.fluid label~* input,.daff-form-field.fluid label~* textarea,.daff-form-field.fluid label~* select,.daff-form-field.fluid .daff-form-label+input,.daff-form-field.fluid .daff-form-label+textarea,.daff-form-field.fluid .daff-form-label+select,.daff-form-field.fluid .daff-form-label~* input,.daff-form-field.fluid .daff-form-label~* textarea,.daff-form-field.fluid .daff-form-label~* select,.daff-form-field.fluid .daff-form-field__label+input,.daff-form-field.fluid .daff-form-field__label+textarea,.daff-form-field.fluid .daff-form-field__label+select,.daff-form-field.fluid .daff-form-field__label~* input,.daff-form-field.fluid .daff-form-field__label~* textarea,.daff-form-field.fluid .daff-form-field__label~* select{padding:calc(1.5rem - 1px) 0 calc(.5rem - 1px)}.daff-form-field.fluid.daff-raised label,.daff-form-field.fluid.daff-raised .daff-form-label,.daff-form-field.fluid.daff-raised .daff-form-field__label{transform:translateY(-75%) scale(.75)}.daff-form-field.fluid.daff-raised * ::-webkit-input-placeholder{opacity:1}.daff-form-field.fluid .daff-prefix,.daff-form-field.fluid .daff-suffix{height:3rem;min-width:3rem}.daff-form-field.daff-disabled{cursor:not-allowed;opacity:.5}.daff-form-field__inner{flex-grow:1;position:relative;overflow:hidden}.daff-form-field .daff-prefix,.daff-form-field .daff-suffix{display:flex;align-items:center;justify-content:center;appearance:none;background:none;border:none;height:calc(3rem - 2px);min-width:calc(3rem - 2px)}.daff-form-field.daff-skeleton{display:flex;position:relative;height:3.5rem;width:100%;border-radius:.25rem}.daff-form-field.daff-skeleton:before{animation-name:loading;animation-duration:1s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:alternate;content:\"\";height:3.5rem;width:100%;position:absolute;top:0;left:0}@keyframes loading{0%{opacity:.5}to{opacity:1}}.daff-form-field.daff-skeleton>*{visibility:hidden}\n"] }]
|
|
290
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { _prefix: [{
|
|
291
|
-
type: ContentChild,
|
|
292
|
-
args: [DaffPrefixDirective]
|
|
293
|
-
}], _suffix: [{
|
|
294
|
-
type: ContentChild,
|
|
295
|
-
args: [DaffSuffixDirective]
|
|
296
|
-
}], _control: [{
|
|
297
|
-
type: ContentChild,
|
|
298
|
-
args: [DaffFormFieldControl]
|
|
299
|
-
}], _formLabelDirective: [{
|
|
300
|
-
type: ContentChild,
|
|
301
|
-
args: [DaffFormLabelDirective]
|
|
302
|
-
}], _formFieldLabelDirective: [{
|
|
303
|
-
type: ContentChild,
|
|
304
|
-
args: [DaffFormFieldLabelDirective]
|
|
305
|
-
}], _action: [{
|
|
306
|
-
type: ContentChild,
|
|
307
|
-
args: [DaffFormFieldActionDirective]
|
|
308
|
-
}], _hint: [{
|
|
309
|
-
type: ContentChild,
|
|
310
|
-
args: [DaffHintComponent]
|
|
311
|
-
}], _error: [{
|
|
312
|
-
type: ContentChild,
|
|
313
|
-
args: [DaffErrorMessageComponent]
|
|
314
|
-
}], appearance: [{
|
|
315
|
-
type: Input
|
|
316
|
-
}], id: [{
|
|
317
|
-
type: Input
|
|
318
|
-
}] } });
|
|
297
|
+
], template: "<ng-content />\n\n@if (isFixed()) {\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n}\n<div class=\"daff-form-field__wrapper\">\n\t<div class=\"daff-form-field__control\">\n\t\t@if (_prefix()) {\n\t\t\t<ng-content select=\"[daffPrefix]\"></ng-content>\n\t\t}\n\t\t<div class=\"daff-form-field__inner\">\n\t\t\t@if (!isFixed()) {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n\t\t\t}\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t\t@if (_suffix()) {\n\t\t\t<ng-content select=\"[daffSuffix]\"></ng-content>\n\t\t}\n\t\t@if (_action() && !isFixed()) {\n\t\t\t<ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n\t\t}\n\t</div>\n\t@if ((_action() && isFixed())) {\n\t\t<ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n\t}\n</div>\n@if (hasHint()) {\n\t<div\n\t\tclass=\"daff-form-field__hint-wrapper\"\n\t\t[id]=\"hintId()\">\n\t\t<ng-content select=\"daff-hint\"></ng-content>\n\t</div>\n}\n@if (hasErrorMessage()) {\n\t<div\n\t\tclass=\"daff-form-field__error-wrapper\"\n\t\t[id]=\"errorMessageId()\">\n\t\t<ng-content select=\"daff-error-message\"></ng-content>\n\t</div>\n}\n\n<ng-template #actionTemplate>\n\t<ng-content select=\"[daffFormFieldAction]\"></ng-content>\n</ng-template>\n\n<ng-template #labelTemplate>\n @if (_formLabelDirective()) {\n <ng-content select=\"label[daffFormLabel]\"></ng-content>\n } @else if(_formFieldLabelDirective()) {\n <label class=\"daff-form-field__label\"\n [attr.for]=\"autoLabelId()\"\n [attr.id]=\"customId()\">\n <ng-content select=\"daff-form-label\"></ng-content>\n\t\t\t@if (_control().required) {\n\t\t\t<span aria-hidden=\"true\">*</span>\n\t\t\t}\n </label>\n } @else {\n <ng-content select=\"label\"></ng-content>\n }\n</ng-template>", styles: [".daff-form-field{display:flex;flex-direction:column;gap:.25rem;position:relative}.daff-form-field.has-prefix .daff-form-field__control{padding-left:0}.daff-form-field.has-suffix .daff-form-field__control{padding-right:0}.daff-form-field__hint-wrapper,.daff-form-field__error-wrapper{display:flex;flex-direction:column;gap:.25rem}.daff-form-field__wrapper{display:flex;gap:.25rem}.daff-form-field__control{display:flex;align-items:center;border-radius:.25rem;font-size:1rem;line-height:1rem;padding:0 1rem;position:relative;width:100%}.daff-form-field__control+.daff-hint,.daff-form-field__control+.daff-error-message{margin-top:.5rem}.daff-form-field.is-native-select .daff-form-field__control:after{content:\"\";position:absolute;top:48%;right:1rem;display:inline-block;border-right:.125rem solid currentColor;border-bottom:.125rem solid currentColor;width:.5rem;height:.5rem;transform:translateY(-50%) rotate(45deg)}.daff-form-field.fixed input,.daff-form-field.fixed textarea,.daff-form-field.fixed select{font-size:1rem;line-height:1.5rem;padding:calc(.75rem - 1px) 0}.daff-form-field.fixed input * ::-webkit-input-placeholder,.daff-form-field.fixed textarea * ::-webkit-input-placeholder,.daff-form-field.fixed select * ::-webkit-input-placeholder{opacity:1}.daff-form-field.fluid .daff-form-field__control * ::-webkit-input-placeholder{opacity:0}.daff-form-field.fluid.has-action .daff-form-field__control{padding-right:0}.daff-form-field.fluid.has-action .daff-form-field__inner{padding-right:1rem}.daff-form-field.fluid .daff-form-field-action{margin-right:.25rem}.daff-form-field.fluid input,.daff-form-field.fluid textarea,.daff-form-field.fluid select{font-size:1rem;line-height:1.5rem;padding:1rem 0}.daff-form-field.fluid label,.daff-form-field.fluid .daff-form-label,.daff-form-field.fluid .daff-form-field__label{position:absolute;left:0;top:1.25rem;pointer-events:none;transform-origin:left top;transition:transform .15s;white-space:nowrap}.daff-form-field.fluid label+input,.daff-form-field.fluid label+textarea,.daff-form-field.fluid label+select,.daff-form-field.fluid label~* input,.daff-form-field.fluid label~* textarea,.daff-form-field.fluid label~* select,.daff-form-field.fluid .daff-form-label+input,.daff-form-field.fluid .daff-form-label+textarea,.daff-form-field.fluid .daff-form-label+select,.daff-form-field.fluid .daff-form-label~* input,.daff-form-field.fluid .daff-form-label~* textarea,.daff-form-field.fluid .daff-form-label~* select,.daff-form-field.fluid .daff-form-field__label+input,.daff-form-field.fluid .daff-form-field__label+textarea,.daff-form-field.fluid .daff-form-field__label+select,.daff-form-field.fluid .daff-form-field__label~* input,.daff-form-field.fluid .daff-form-field__label~* textarea,.daff-form-field.fluid .daff-form-field__label~* select{padding:calc(1.5rem - 1px) 0 calc(.5rem - 1px)}.daff-form-field.fluid.daff-raised label,.daff-form-field.fluid.daff-raised .daff-form-label,.daff-form-field.fluid.daff-raised .daff-form-field__label{transform:translateY(-75%) scale(.75)}.daff-form-field.fluid.daff-raised * ::-webkit-input-placeholder{opacity:1}.daff-form-field.fluid .daff-prefix,.daff-form-field.fluid .daff-suffix{height:3rem;min-width:3rem}.daff-form-field.daff-disabled{cursor:not-allowed;opacity:.5}.daff-form-field__inner{flex-grow:1;position:relative;overflow:hidden}.daff-form-field .daff-prefix,.daff-form-field .daff-suffix{display:flex;align-items:center;justify-content:center;appearance:none;background:none;border:none;height:calc(3rem - 2px);min-width:calc(3rem - 2px)}.daff-form-field.daff-skeleton{display:flex;position:relative;height:3.5rem;width:100%;border-radius:.25rem}.daff-form-field.daff-skeleton:before{animation-name:loading;animation-duration:1s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:alternate;content:\"\";height:3.5rem;width:100%;position:absolute;top:0;left:0}@keyframes loading{0%{opacity:.5}to{opacity:1}}.daff-form-field.daff-skeleton>*{visibility:hidden}\n"] }]
|
|
298
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { _prefix: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DaffPrefixDirective), { isSignal: true }] }], _suffix: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DaffSuffixDirective), { isSignal: true }] }], _control: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DaffFormFieldControl), { isSignal: true }] }], _formLabelDirective: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DaffFormLabelDirective), { isSignal: true }] }], _formFieldLabelDirective: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DaffFormFieldLabelDirective), { isSignal: true }] }], _action: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DaffFormFieldActionDirective), { isSignal: true }] }], _hint: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DaffHintComponent), { isSignal: true }] }], _error: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DaffErrorMessageComponent), { isSignal: true }] }], appearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "appearance", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }] } });
|
|
319
299
|
|
|
320
300
|
/**
|
|
321
301
|
* @deprecated in favor of standalone components. Deprecated in version 0.84.0. Will be removed in version 1.0.0.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daffodil-design-form-field.mjs","sources":["../../../libs/design/form-field/src/action/action.directive.ts","../../../libs/design/form-field/src/form-field-control.ts","../../../libs/design/form-field/src/form-field/form-field.component.ts","../../../libs/design/form-field/src/form-field/form-field.component.html","../../../libs/design/form-field/src/form-field.module.ts","../../../libs/design/form-field/src/form-field.ts","../../../libs/design/form-field/src/daffodil-design-form-field.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n/**\n * DaffFormFieldActionDirective marks an element, typically a button, as an action attached to a form control inside `DaffFormFieldComponent`.\n */\n@Directive({\n selector: '[daffFormFieldAction]',\n host: {\n class: 'daff-form-field-action',\n },\n})\nexport class DaffFormFieldActionDirective {}\n","import { NgControl } from '@angular/forms';\nimport {\n BehaviorSubject,\n Observable,\n} from 'rxjs';\n\nimport { DaffFormFieldState } from './form-field-state';\n\n/**\n * Form controls must extend this class to be used inside `DaffFormFieldComponent`.\n *\n * > **Note**\n * > The control is defined as an abstract class instead of an interface to support Angular's dependency injection. Interfaces are erased during TypeScript compilation and cannot be used as DI tokens.\n * >\n * > By using an abstract class, the Angular DI container can match the class token for injection.\n */\nexport abstract class DaffFormFieldControl<T> {\n /**\n * The type of the control (e.g., 'input', 'select', 'textarea').\n * Used to apply control-specific styling or behavior.\n */\n abstract readonly controlType?: any;\n\n /**\n * Whether the control supports automatic label behavior.\n * When `true`, the form field will associate the label with the control using `for` and `id` attributes.\n *\n * Defaults to `true`.\n */\n readonly supportsAutoLabelling?: boolean = true;\n\n /**\n * Whether the control currently has focus.\n */\n abstract readonly focused: boolean;\n\n /**\n * Whether the control is required for form validation.\n */\n abstract readonly required: boolean;\n\n /**\n * Whether the control is disabled.\n */\n abstract readonly disabled: boolean;\n\n /**\n * The unique identifier for the control element.\n */\n readonly id?: string;\n\n /**\n * Whether the label should be in the raised position.\n * By default, matches the focused state.\n */\n get raised() {\n return this.focused;\n };\n\n /**\n * Sets focus on the control.\n *\n * @param event - Optional event that triggers the focus.\n */\n abstract focus(event?: Event): void;\n\n /**\n * The current value of the control.\n */\n abstract readonly value: T;\n\n constructor(public ngControl: NgControl | null) {}\n\n /**\n * Computes the current state of the form field control.\n * Combines control properties and form validation state.\n */\n get state(): DaffFormFieldState {\n return {\n focused: this.focused,\n filled: !!this.value,\n disabled: this.ngControl?.disabled ?? this.disabled,\n error: this.ngControl?.errors && (this.ngControl?.dirty || this.ngControl?.touched),\n valid: !this.ngControl?.errors && this.ngControl?.dirty,\n };\n }\n\n _stateChanges = new BehaviorSubject({\n focused: false,\n filled: false,\n disabled: false,\n error: false,\n valid: true,\n });\n\n /**\n * Observable stream of state changes for the form field control.\n */\n stateChanges: Observable<DaffFormFieldState>;\n\n /**\n * Emits the current state.\n */\n emitState(deferred = false) {\n if(deferred) {\n Promise.resolve().then(() => {\n this._stateChanges.next(this.state);\n });\n return;\n }\n\n this._stateChanges.next(this.state);\n }\n};\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ViewEncapsulation,\n ContentChild,\n AfterContentInit,\n AfterContentChecked,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n Input,\n AfterViewInit,\n isDevMode,\n ElementRef,\n} from '@angular/core';\n\nimport {\n DaffPrefixDirective,\n DaffSuffixDirective,\n DaffSkeletonableDirective,\n DaffFormLabelDirective,\n} from '@daffodil/design';\nimport {\n DaffErrorMessageComponent,\n DaffHintComponent,\n DaffFormFieldLabelDirective,\n} from '@daffodil/design/form';\n\nimport { DaffFormFieldActionDirective } from '../action/action.directive';\nimport { DaffFormFieldControl } from '../form-field-control';\n\nlet daffFormFieldId = 0;\n\nexport type DaffFormFieldApperanace = 'fluid' | 'fixed';\n\nenum DaffFormFieldApperanaceEnum {\n Fluid = 'fluid',\n Fixed = 'fixed',\n}\n\nexport const DaffFormFieldMissingControlMessage = 'A DaffFormFieldComponent must contain a DaffFormFieldControl';\n\n/**\n * DaffFormFieldComponent is a wrapping component that provides consistent styling and behavior for form control elements.\n */\n@Component({\n selector: 'daff-form-field',\n templateUrl: './form-field.component.html',\n styleUrl: './form-field.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n ],\n host: {\n class: 'daff-form-field',\n '[class.is-native-select]': 'isNativeSelect',\n '[class.has-prefix]': '_prefix',\n '[class.has-suffix]': '_suffix',\n '[class.has-action]': '_action',\n '[class.daff-error]': 'isError',\n '[class.daff-disabled]': 'isDisabled',\n '[class.daff-valid]': 'isValid',\n '[class.daff-focused]': 'isFocused',\n '[class.daff-raised]': 'isRaised',\n '[class.fluid]': 'appearance === \"fluid\"',\n '[class.fixed]': 'appearance === \"fixed\"',\n },\n hostDirectives: [\n {\n directive: DaffSkeletonableDirective,\n inputs: ['skeleton'],\n },\n ],\n})\nexport class DaffFormFieldComponent implements AfterContentInit, AfterContentChecked, AfterViewInit {\n /** @docs-private */\n get isNativeSelect() {\n return this._control.controlType === 'native-select';\n }\n\n constructor(private cd: ChangeDetectorRef, public elementRef: ElementRef) {}\n\n /** @docs-private */\n @ContentChild(DaffPrefixDirective) _prefix: DaffPrefixDirective;\n\n /** @docs-private */\n @ContentChild(DaffSuffixDirective) _suffix: DaffSuffixDirective;\n\n /**\n * @docs-private\n *\n * The child form control that the form field manages.\n */\n @ContentChild(DaffFormFieldControl) _control: DaffFormFieldControl<unknown>;\n\n /**\n * @docs-private\n * @deprecated Deprecated in version 0.86.0. Will be removed in version 1.0.0.\n */\n @ContentChild(DaffFormLabelDirective) _formLabelDirective: DaffFormLabelDirective;\n\n /**\n * @docs-private\n */\n @ContentChild(DaffFormFieldLabelDirective) _formFieldLabelDirective: DaffFormFieldLabelDirective;\n\n /**\n * @docs-private\n */\n @ContentChild(DaffFormFieldActionDirective) _action: DaffFormFieldActionDirective;\n\n /**\n * @docs-private\n */\n @ContentChild(DaffHintComponent) private _hint: DaffHintComponent;\n\n /**\n * @docs-private\n */\n @ContentChild(DaffErrorMessageComponent) private _error: DaffErrorMessageComponent;\n\n /**\n * @docs-private\n *\n * Tracking property to keep a record of whether or not the\n * form field should be marked as error.\n */\n isError = false;\n\n /**\n * @docs-private\n *\n * Tracking property to keep a record of whether or not the\n * form field contains any user input.\n */\n isFilled = false;\n\n /**\n * @docs-private\n *\n * Tracking property to keep a record of whether or not the\n * form field should be marked as disabled.\n */\n isDisabled = false;\n\n /**\n * @docs-private\n *\n * Tracking property to keep a record of whether or not the\n * form field should be marked as valid.\n */\n isValid = false;\n\n /**\n * @docs-private\n *\n * Determines whether or not the form field should display its focused state.\n */\n get isFocused() {\n return this._control?.focused;\n }\n\n /**\n * @docs-private\n */\n get isRaised() {\n return this._control?.raised || this.isFilled;\n }\n\n private _appearance: DaffFormFieldApperanace = DaffFormFieldApperanaceEnum.Fluid;\n\n /**\n * The appearance of the form field. Defaults to `fluid`.\n */\n @Input()\n get appearance() {\n return this._appearance;\n }\n\n set appearance(value: DaffFormFieldApperanace) {\n if(value === null || value === undefined || <unknown>value === '') {\n this._appearance = DaffFormFieldApperanaceEnum.Fluid;\n } else {\n this._appearance = value;\n }\n };\n\n /**\n * @docs-private\n */\n get isFixed() {\n return this._appearance === DaffFormFieldApperanaceEnum.Fixed;\n }\n\n /**\n * The unique id of the form field. Defaults to an autogenerated value. When using this,\n * it's your responsibility to ensure that the id for each form field is unique.\n *\n * It gets assigned to the `for` attribute on the `<label>` inside of the form field.\n */\n @Input() id = 'daff-form-field-' + ++daffFormFieldId;\n\n /**\n * @docs-private\n */\n hasHint() {\n return this._hint ? true : false;\n }\n\n /**\n * @docs-private\n */\n hintId = this.id + '-hint';\n\n /**\n * @docs-private\n */\n hasErrorMessage() {\n return this._error ? true : false;\n }\n\n /**\n * @docs-private\n */\n errorMessageId = this.id + '-error';\n\n /**\n * @docs-private\n */\n get autoLabelId() {\n return this._control.supportsAutoLabelling ? this.id : null;\n }\n\n /**\n * @docs-private\n */\n get customId() {\n return this._control.supportsAutoLabelling ? null : this.id;\n }\n\n /**\n * @docs-private\n *\n * Displays a console warning if the `DaffFormFieldLabelDirective` is not used on controls (native HTML control elements) that support auto-labelling.\n */\n ngAfterViewInit() {\n if (isDevMode()) {\n if (!this._formFieldLabelDirective && this._control.supportsAutoLabelling && !(this._control.id)) {\n console.warn(\n `Accessibility Warning: The form field with id \"${this.id}\" uses a control that supports auto-labelling, but no <daff-form-label> component was found.\\n\\n` +\n `1. Add a <daff-form-label> component (recommended)\\n` +\n `2. OR manually set an 'id' on your input and matching 'for' attribute on your <label>.\\n\\n` +\n `Why this matters: Proper labelling ensures assistive technologies can identify form fields correctly.`,\n );\n }\n\n if(this._suffix && this._action && !this.isFixed) {\n console.warn(\n `UI consideration for form field with id \"${this.id}\":\\n\\n` + `In a fluid appearance, avoid using suffix alongside an action.`,\n );\n };\n }\n }\n\n /**\n * Validates whether or not the form field is in a \"usable\" state.\n */\n private _validateFormControl() {\n if (!this._control) {\n throw new Error(DaffFormFieldMissingControlMessage);\n }\n }\n\n /**\n * @docs-private\n *\n * Lifecycle hook to verify that the form field has an acceptable\n * child control instance. Mostly useful for development-time\n * validation of usage.\n */\n ngAfterContentInit() {\n this._validateFormControl();\n\n this._control.stateChanges?.subscribe(({ focused, filled, disabled, error, valid }) => {\n this.isFilled = filled;\n this.isError = error;\n this.isDisabled = disabled;\n this.isValid = valid;\n\n this.cd.markForCheck();\n });\n }\n\n /**\n * @docs-private\n *\n * Lifecycle hook to verify that the form field has an acceptable\n * child control instance. Mostly useful for development-time\n * validation of usage.\n */\n ngAfterContentChecked() {\n this._validateFormControl();\n }\n}\n","<ng-content />\n\n@if (isFixed) {\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n}\n<div class=\"daff-form-field__wrapper\">\n\t<div class=\"daff-form-field__control\">\n\t\t@if (_prefix) {\n\t\t\t<ng-content select=\"[daffPrefix]\"></ng-content>\n\t\t}\n\t\t<div class=\"daff-form-field__inner\">\n\t\t\t@if (!isFixed) {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n\t\t\t}\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t\t@if (_suffix) {\n\t\t\t<ng-content select=\"[daffSuffix]\"></ng-content>\n\t\t}\n\t\t@if (_action && !isFixed) {\n\t\t\t<ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n\t\t}\n\t</div>\n\t@if ((_action && isFixed)) {\n\t\t<ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n\t}\n</div>\n@if (hasHint()) {\n\t<div\n\t\tclass=\"daff-form-field__hint-wrapper\"\n\t\t[id]=\"hintId\">\n\t\t<ng-content select=\"daff-hint\"></ng-content>\n\t</div>\n}\n@if (hasErrorMessage()) {\n\t<div\n\t\tclass=\"daff-form-field__error-wrapper\"\n\t\t[id]=\"errorMessageId\">\n\t\t<ng-content select=\"daff-error-message\"></ng-content>\n\t</div>\n}\n\n<ng-template #actionTemplate>\n\t<ng-content select=\"[daffFormFieldAction]\"></ng-content>\n</ng-template>\n\n<ng-template #labelTemplate>\n @if (_formLabelDirective) {\n <ng-content select=\"label[daffFormLabel]\"></ng-content>\n } @else if(_formFieldLabelDirective) {\n <label class=\"daff-form-field__label\"\n [attr.for]=\"autoLabelId\"\n [attr.id]=\"customId\">\n <ng-content select=\"daff-form-label\"></ng-content>\n\t\t\t@if (_control.required) {\n\t\t\t<span aria-hidden=\"true\">*</span>\n\t\t\t}\n </label>\n } @else {\n <ng-content select=\"label\"></ng-content>\n }\n</ng-template>","import { NgModule } from '@angular/core';\n\nimport { DaffFormLabelModule } from '@daffodil/design';\nimport {\n DaffErrorMessageComponent,\n DaffFormFieldLabelDirective,\n DaffHintComponent,\n} from '@daffodil/design/form';\n\nimport { DaffFormFieldComponent } from './form-field/form-field.component';\n\n/**\n * @deprecated in favor of standalone components. Deprecated in version 0.84.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n imports: [\n DaffFormFieldComponent,\n DaffErrorMessageComponent,\n DaffHintComponent,\n DaffFormFieldLabelDirective,\n DaffFormLabelModule,\n ],\n exports: [\n DaffFormFieldComponent,\n DaffErrorMessageComponent,\n DaffHintComponent,\n DaffFormFieldLabelDirective,\n DaffFormLabelModule,\n ],\n})\nexport class DaffFormFieldModule { }\n","import {\n DaffPrefixDirective,\n DaffSuffixDirective,\n DaffFormLabelDirective,\n} from '@daffodil/design';\nimport {\n DaffErrorMessageComponent,\n DaffFormFieldLabelDirective,\n DaffHintComponent,\n} from '@daffodil/design/form';\n\nimport { DaffFormFieldActionDirective } from './action/action.directive';\nimport { DaffFormFieldComponent } from './form-field/form-field.component';\n\n/**\n * @docs-private\n */\nexport const DAFF_FORM_FIELD_COMPONENTS = <const> [\n DaffFormFieldComponent,\n DaffFormLabelDirective,\n DaffPrefixDirective,\n DaffSuffixDirective,\n DaffFormFieldActionDirective,\n DaffHintComponent,\n DaffFormFieldLabelDirective,\n DaffErrorMessageComponent,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daffodil-design-form-field.mjs","sources":["../../../libs/design/form-field/src/action/action.directive.ts","../../../libs/design/form-field/src/form-field-control.ts","../../../libs/design/form-field/src/form-field/form-field.component.ts","../../../libs/design/form-field/src/form-field/form-field.component.html","../../../libs/design/form-field/src/form-field.module.ts","../../../libs/design/form-field/src/form-field.ts","../../../libs/design/form-field/src/daffodil-design-form-field.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n/**\n * DaffFormFieldActionDirective marks an element, typically a button, as an action attached to a form control inside `DaffFormFieldComponent`.\n */\n@Directive({\n selector: '[daffFormFieldAction]',\n host: {\n class: 'daff-form-field-action',\n },\n})\nexport class DaffFormFieldActionDirective {}\n","import { NgControl } from '@angular/forms';\nimport {\n BehaviorSubject,\n Observable,\n} from 'rxjs';\n\nimport { DaffFormFieldState } from './form-field-state';\n\n/**\n * Form controls must extend this class to be used inside `DaffFormFieldComponent`.\n *\n * > **Note**\n * > The control is defined as an abstract class instead of an interface to support Angular's dependency injection. Interfaces are erased during TypeScript compilation and cannot be used as DI tokens.\n * >\n * > By using an abstract class, the Angular DI container can match the class token for injection.\n */\nexport abstract class DaffFormFieldControl<T> {\n /**\n * The type of the control (e.g., 'input', 'select', 'textarea').\n * Used to apply control-specific styling or behavior.\n */\n abstract readonly controlType?: any;\n\n /**\n * Whether the control supports automatic label behavior.\n * When `true`, the form field will associate the label with the control using `for` and `id` attributes.\n *\n * Defaults to `true`.\n */\n readonly supportsAutoLabelling?: boolean = true;\n\n /**\n * Whether the control currently has focus.\n */\n abstract readonly focused: boolean;\n\n /**\n * Whether the control is required for form validation.\n */\n abstract readonly required: boolean;\n\n /**\n * Whether the control is disabled.\n */\n abstract readonly disabled: boolean;\n\n /**\n * The unique identifier for the control element.\n */\n readonly id?: string;\n\n /**\n * Whether the label should be in the raised position.\n * By default, matches the focused state.\n */\n get raised() {\n return this.focused;\n };\n\n /**\n * Sets focus on the control.\n *\n * @param event - Optional event that triggers the focus.\n */\n abstract focus(event?: Event): void;\n\n /**\n * The current value of the control.\n */\n abstract readonly value: T;\n\n constructor(public ngControl: NgControl | null) {}\n\n /**\n * Computes the current state of the form field control.\n * Combines control properties and form validation state.\n */\n get state(): DaffFormFieldState {\n return {\n focused: this.focused,\n filled: !!this.value,\n disabled: this.ngControl?.disabled ?? this.disabled,\n error: this.ngControl?.errors && (this.ngControl?.dirty || this.ngControl?.touched),\n valid: !this.ngControl?.errors && this.ngControl?.dirty,\n };\n }\n\n _stateChanges = new BehaviorSubject({\n focused: false,\n filled: false,\n disabled: false,\n error: false,\n valid: true,\n });\n\n /**\n * Observable stream of state changes for the form field control.\n */\n stateChanges: Observable<DaffFormFieldState>;\n\n /**\n * Emits the current state.\n */\n emitState(deferred = false) {\n if(deferred) {\n Promise.resolve().then(() => {\n this._stateChanges.next(this.state);\n });\n return;\n }\n\n this._stateChanges.next(this.state);\n }\n};\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ViewEncapsulation,\n AfterContentInit,\n AfterContentChecked,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n AfterViewInit,\n isDevMode,\n ElementRef,\n input,\n contentChild,\n signal,\n computed,\n} from '@angular/core';\n\nimport {\n DaffPrefixDirective,\n DaffSuffixDirective,\n DaffSkeletonableDirective,\n DaffFormLabelDirective,\n} from '@daffodil/design';\nimport {\n DaffErrorMessageComponent,\n DaffHintComponent,\n DaffFormFieldLabelDirective,\n} from '@daffodil/design/form';\n\nimport { DaffFormFieldActionDirective } from '../action/action.directive';\nimport { DaffFormFieldControl } from '../form-field-control';\n\nlet daffFormFieldId = 0;\n\nexport type DaffFormFieldAppearance = 'fluid' | 'fixed';\n\nenum DaffFormFieldAppearanceEnum {\n Fluid = 'fluid',\n Fixed = 'fixed',\n}\n\nexport const DaffFormFieldMissingControlMessage = 'A DaffFormFieldComponent must contain a DaffFormFieldControl';\n\n/**\n * DaffFormFieldComponent is a wrapping component that provides consistent styling and behavior for form control elements.\n */\n@Component({\n selector: 'daff-form-field',\n templateUrl: './form-field.component.html',\n styleUrl: './form-field.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n ],\n host: {\n class: 'daff-form-field',\n '[class.is-native-select]': 'isNativeSelect()',\n '[class.has-prefix]': '_prefix()',\n '[class.has-suffix]': '_suffix()',\n '[class.has-action]': '_action()',\n '[class.daff-error]': 'isError()',\n '[class.daff-disabled]': 'isDisabled()',\n '[class.daff-valid]': 'isValid()',\n '[class.daff-focused]': 'isFocused',\n '[class.daff-raised]': 'isRaised',\n '[class.fluid]': 'appearance() === \"fluid\"',\n '[class.fixed]': 'appearance() === \"fixed\"',\n },\n hostDirectives: [\n {\n directive: DaffSkeletonableDirective,\n inputs: ['skeleton'],\n },\n ],\n})\nexport class DaffFormFieldComponent implements AfterContentInit, AfterContentChecked, AfterViewInit {\n /** @docs-private */\n isNativeSelect = computed(() => this._control()?.controlType === 'native-select');\n\n constructor(\n private cd: ChangeDetectorRef,\n public elementRef: ElementRef,\n ) {}\n\n /** @docs-private */\n _prefix = contentChild(DaffPrefixDirective);\n\n /** @docs-private */\n _suffix = contentChild(DaffSuffixDirective);\n\n /**\n * @docs-private\n *\n * The child form control that the form field manages.\n */\n _control = contentChild(DaffFormFieldControl);\n\n /**\n * @docs-private\n *\n * @deprecated Deprecated in version 0.86.0. Will be removed in version 1.0.0.\n */\n _formLabelDirective = contentChild(DaffFormLabelDirective);\n\n /**\n * @docs-private\n */\n _formFieldLabelDirective = contentChild(DaffFormFieldLabelDirective);\n\n /**\n * @docs-private\n */\n _action = contentChild(DaffFormFieldActionDirective);\n\n /**\n * @docs-private\n */\n private _hint = contentChild(DaffHintComponent);\n\n /**\n * @docs-private\n */\n private _error = contentChild(DaffErrorMessageComponent);\n\n /**\n * @docs-private\n *\n * Tracking property to keep a record of whether or not the\n * form field should be marked as error.\n */\n isError = signal(false);\n\n /**\n * @docs-private\n *\n * Tracking property to keep a record of whether or not the\n * form field contains any user input.\n */\n isFilled = signal(false);\n\n /**\n * @docs-private\n *\n * Tracking property to keep a record of whether or not the\n * form field should be marked as disabled.\n */\n isDisabled = signal(false);\n\n /**\n * @docs-private\n *\n * Tracking property to keep a record of whether or not the\n * form field should be marked as valid.\n */\n isValid = signal(false);\n\n /**\n * @docs-private\n *\n * Determines whether or not the form field should display its focused state.\n */\n get isFocused() {\n return this._control()?.focused;\n }\n\n /**\n * @docs-private\n */\n get isRaised() {\n return this._control()?.raised || this.isFilled();\n }\n\n /**\n * The appearance of the form field. Defaults to `fluid`.\n */\n appearance = input(DaffFormFieldAppearanceEnum.Fluid, {\n transform: (value: DaffFormFieldAppearance | '' | null | undefined) =>\n value || DaffFormFieldAppearanceEnum.Fluid,\n });\n\n /**\n * @docs-private\n */\n isFixed = computed(() => this.appearance() === DaffFormFieldAppearanceEnum.Fixed);\n\n /**\n * The unique id of the form field. Defaults to an autogenerated value. When using this,\n * it's your responsibility to ensure that the id for each form field is unique.\n *\n * It gets assigned to the `for` attribute on the `<label>` inside of the form field.\n */\n id = input('daff-form-field-' + ++daffFormFieldId);\n\n /**\n * @docs-private\n */\n hasHint = computed(() => !!this._hint());\n\n /**\n * @docs-private\n */\n hintId = computed(() => this.id() + '-hint');\n\n /**\n * @docs-private\n */\n hasErrorMessage = computed(() => !!this._error());\n\n /**\n * @docs-private\n */\n errorMessageId = computed(() => this.id() + '-error');\n\n /**\n * @docs-private\n */\n autoLabelId = computed(() => this._control()?.supportsAutoLabelling ? this.id() : null);\n\n /**\n * @docs-private\n */\n customId = computed(() => this._control()?.supportsAutoLabelling ? null : this.id());\n\n /**\n * @docs-private\n *\n * Displays a console warning if the `DaffFormFieldLabelDirective` is not used on controls (native HTML control elements) that support auto-labelling.\n */\n ngAfterViewInit() {\n if (isDevMode()) {\n if (!this._formFieldLabelDirective() && this._control()?.supportsAutoLabelling && !(this._control()?.id)) {\n console.warn(\n `Accessibility Warning: The form field with id \"${this.id()}\" uses a control that supports auto-labelling, but no <daff-form-label> component was found.\\n\\n` +\n `1. Add a <daff-form-label> component (recommended)\\n` +\n `2. OR manually set an 'id' on your input and matching 'for' attribute on your <label>.\\n\\n` +\n `Why this matters: Proper labelling ensures assistive technologies can identify form fields correctly.`,\n );\n }\n\n if(this._suffix() && this._action() && !this.isFixed()) {\n console.warn(\n `UI consideration for form field with id \"${this.id()}\":\\n\\n` + `In a fluid appearance, avoid using suffix alongside an action.`,\n );\n };\n }\n }\n\n /**\n * Validates whether or not the form field is in a \"usable\" state.\n */\n private _validateFormControl() {\n if (!this._control()) {\n throw new Error(DaffFormFieldMissingControlMessage);\n }\n }\n\n /**\n * @docs-private\n *\n * Lifecycle hook to verify that the form field has an acceptable\n * child control instance. Mostly useful for development-time\n * validation of usage.\n */\n ngAfterContentInit() {\n this._validateFormControl();\n\n this._control()?.stateChanges?.subscribe(({ filled, disabled, error, valid }) => {\n this.isFilled.set(filled);\n this.isError.set(error);\n this.isDisabled.set(disabled);\n this.isValid.set(valid);\n\n this.cd.markForCheck();\n });\n }\n\n /**\n * @docs-private\n *\n * Lifecycle hook to verify that the form field has an acceptable\n * child control instance. Mostly useful for development-time\n * validation of usage.\n */\n ngAfterContentChecked() {\n this._validateFormControl();\n }\n}\n","<ng-content />\n\n@if (isFixed()) {\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n}\n<div class=\"daff-form-field__wrapper\">\n\t<div class=\"daff-form-field__control\">\n\t\t@if (_prefix()) {\n\t\t\t<ng-content select=\"[daffPrefix]\"></ng-content>\n\t\t}\n\t\t<div class=\"daff-form-field__inner\">\n\t\t\t@if (!isFixed()) {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n\t\t\t}\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t\t@if (_suffix()) {\n\t\t\t<ng-content select=\"[daffSuffix]\"></ng-content>\n\t\t}\n\t\t@if (_action() && !isFixed()) {\n\t\t\t<ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n\t\t}\n\t</div>\n\t@if ((_action() && isFixed())) {\n\t\t<ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n\t}\n</div>\n@if (hasHint()) {\n\t<div\n\t\tclass=\"daff-form-field__hint-wrapper\"\n\t\t[id]=\"hintId()\">\n\t\t<ng-content select=\"daff-hint\"></ng-content>\n\t</div>\n}\n@if (hasErrorMessage()) {\n\t<div\n\t\tclass=\"daff-form-field__error-wrapper\"\n\t\t[id]=\"errorMessageId()\">\n\t\t<ng-content select=\"daff-error-message\"></ng-content>\n\t</div>\n}\n\n<ng-template #actionTemplate>\n\t<ng-content select=\"[daffFormFieldAction]\"></ng-content>\n</ng-template>\n\n<ng-template #labelTemplate>\n @if (_formLabelDirective()) {\n <ng-content select=\"label[daffFormLabel]\"></ng-content>\n } @else if(_formFieldLabelDirective()) {\n <label class=\"daff-form-field__label\"\n [attr.for]=\"autoLabelId()\"\n [attr.id]=\"customId()\">\n <ng-content select=\"daff-form-label\"></ng-content>\n\t\t\t@if (_control().required) {\n\t\t\t<span aria-hidden=\"true\">*</span>\n\t\t\t}\n </label>\n } @else {\n <ng-content select=\"label\"></ng-content>\n }\n</ng-template>","import { NgModule } from '@angular/core';\n\nimport { DaffFormLabelModule } from '@daffodil/design';\nimport {\n DaffErrorMessageComponent,\n DaffFormFieldLabelDirective,\n DaffHintComponent,\n} from '@daffodil/design/form';\n\nimport { DaffFormFieldComponent } from './form-field/form-field.component';\n\n/**\n * @deprecated in favor of standalone components. Deprecated in version 0.84.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n imports: [\n DaffFormFieldComponent,\n DaffErrorMessageComponent,\n DaffHintComponent,\n DaffFormFieldLabelDirective,\n DaffFormLabelModule,\n ],\n exports: [\n DaffFormFieldComponent,\n DaffErrorMessageComponent,\n DaffHintComponent,\n DaffFormFieldLabelDirective,\n DaffFormLabelModule,\n ],\n})\nexport class DaffFormFieldModule { }\n","import {\n DaffPrefixDirective,\n DaffSuffixDirective,\n DaffFormLabelDirective,\n} from '@daffodil/design';\nimport {\n DaffErrorMessageComponent,\n DaffFormFieldLabelDirective,\n DaffHintComponent,\n} from '@daffodil/design/form';\n\nimport { DaffFormFieldActionDirective } from './action/action.directive';\nimport { DaffFormFieldComponent } from './form-field/form-field.component';\n\n/**\n * @docs-private\n */\nexport const DAFF_FORM_FIELD_COMPONENTS = <const> [\n DaffFormFieldComponent,\n DaffFormLabelDirective,\n DaffPrefixDirective,\n DaffSuffixDirective,\n DaffFormFieldActionDirective,\n DaffHintComponent,\n DaffFormFieldLabelDirective,\n DaffErrorMessageComponent,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { ChangeDetectionStrategy, Component,
|
|
2
|
+
import { ChangeDetectionStrategy, Component, input, Directive } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
class DaffErrorMessageComponent {
|
|
5
5
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffErrorMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -18,20 +18,18 @@ class DaffHintComponent {
|
|
|
18
18
|
/**
|
|
19
19
|
* Displays a validated hint UI.
|
|
20
20
|
* */
|
|
21
|
-
this.validated = false;
|
|
21
|
+
this.validated = input(false, ...(ngDevMode ? [{ debugName: "validated" }] : /* istanbul ignore next */ []));
|
|
22
22
|
}
|
|
23
23
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffHintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
24
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: DaffHintComponent, isStandalone: true, selector: "daff-hint", inputs: { validated: { classPropertyName: "validated", publicName: "validated", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.validated": "validated()" }, classAttribute: "daff-hint" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:flex;gap:.25rem;font-size:.875rem;line-height:1rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
25
|
}
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffHintComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
28
|
args: [{ selector: 'daff-hint', template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
29
29
|
class: 'daff-hint',
|
|
30
|
-
'[class.validated]': 'validated',
|
|
30
|
+
'[class.validated]': 'validated()',
|
|
31
31
|
}, styles: [":host{display:flex;gap:.25rem;font-size:.875rem;line-height:1rem}\n"] }]
|
|
32
|
-
}], propDecorators: { validated: [{
|
|
33
|
-
type: Input
|
|
34
|
-
}] } });
|
|
32
|
+
}], propDecorators: { validated: [{ type: i0.Input, args: [{ isSignal: true, alias: "validated", required: false }] }] } });
|
|
35
33
|
|
|
36
34
|
class DaffFormFieldLabelDirective {
|
|
37
35
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffFormFieldLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daffodil-design-form.mjs","sources":["../../../libs/design/form/src/error-message/error-message.component.ts","../../../libs/design/form/src/hint/hint.component.ts","../../../libs/design/form/src/label/label.directive.ts","../../../libs/design/form/src/form.ts","../../../libs/design/form/src/daffodil-design-form.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\n@Component({\n selector: 'daff-error-message',\n template: '<ng-content></ng-content>',\n styleUrls: ['./error-message.component.scss'],\n host: {\n class: 'daff-error-message',\n 'aria-live': 'polite',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DaffErrorMessageComponent {}\n","import {\n Component,\n ChangeDetectionStrategy,\n
|
|
1
|
+
{"version":3,"file":"daffodil-design-form.mjs","sources":["../../../libs/design/form/src/error-message/error-message.component.ts","../../../libs/design/form/src/hint/hint.component.ts","../../../libs/design/form/src/label/label.directive.ts","../../../libs/design/form/src/form.ts","../../../libs/design/form/src/daffodil-design-form.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\n@Component({\n selector: 'daff-error-message',\n template: '<ng-content></ng-content>',\n styleUrls: ['./error-message.component.scss'],\n host: {\n class: 'daff-error-message',\n 'aria-live': 'polite',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DaffErrorMessageComponent {}\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n} from '@angular/core';\n\n@Component({\n selector: 'daff-hint',\n template: '<ng-content></ng-content>',\n styleUrl: './hint.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'daff-hint',\n '[class.validated]': 'validated()',\n },\n})\nexport class DaffHintComponent {\n /**\n * Displays a validated hint UI.\n * */\n validated = input(false);\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'daff-form-label',\n})\nexport class DaffFormFieldLabelDirective {}\n","import { DaffErrorMessageComponent } from './error-message/error-message.component';\nimport { DaffHintComponent } from './hint/hint.component';\nimport { DaffFormFieldLabelDirective } from './label/label.directive';\n\n/**\n * @docs-private\n */\nexport const DAFF_FORM_HELPER_COMPONENTS = <const> [\n DaffErrorMessageComponent,\n DaffHintComponent,\n DaffFormFieldLabelDirective,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAea,yBAAyB,CAAA;iIAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,qKAR1B,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAQ1B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EACpB,2BAA2B,EAAA,IAAA,EAE/B;AACJ,wBAAA,KAAK,EAAE,oBAAoB;AAC3B,wBAAA,WAAW,EAAE,QAAQ;qBACtB,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA;;;MCGpC,iBAAiB,CAAA;AAV9B,IAAA,WAAA,GAAA;AAWE;;AAEK;AACL,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,gFAAC;AACzB,IAAA;iIALY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,8SARlB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qEAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAQ1B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAV7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,YACX,2BAA2B,EAAA,eAAA,EAEpB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE,WAAW;AAClB,wBAAA,mBAAmB,EAAE,aAAa;AACnC,qBAAA,EAAA,MAAA,EAAA,CAAA,qEAAA,CAAA,EAAA;;;MCRU,2BAA2B,CAAA;iIAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qHAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,iBAAiB;AAC5B,iBAAA;;;ACDD;;AAEG;AACI,MAAM,2BAA2B,GAAW;IACjD,yBAAyB;IACzB,iBAAiB;IACjB,2BAA2B;;;ACV7B;;AAEG;;;;"}
|