@ardium-ui/ui 4.2.3 → 4.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/_internal/form-field-component.mjs +1 -1
- package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +15 -4
- package/esm2022/lib/_internal/selectable-list-component.mjs +2 -2
- package/esm2022/lib/calendar/calendar.component.mjs +20 -7
- package/esm2022/lib/calendar/calendar.defaults.mjs +3 -3
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +4 -4
- package/esm2022/lib/form-field/form-field-base.mjs +53 -0
- package/esm2022/lib/form-field/form-field-child.token.mjs +3 -0
- package/esm2022/lib/form-field/form-field-native-inputs.mjs +80 -0
- package/esm2022/lib/form-field/form-field.component.mjs +7 -28
- package/esm2022/lib/form-field/form-field.defaults.mjs +3 -1
- package/esm2022/lib/form-field/form-field.module.mjs +6 -1
- package/esm2022/lib/form-field/horizontal-form-field.component.mjs +7 -28
- package/esm2022/lib/form-field/index.mjs +2 -1
- package/esm2022/lib/form-field/label/label.component.mjs +10 -4
- package/esm2022/lib/inputs/date-input/date-input.component.mjs +4 -3
- package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +4 -3
- package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +4 -3
- package/esm2022/lib/inputs/input/input.component.mjs +4 -4
- package/esm2022/lib/inputs/number-input/number-input.component.mjs +4 -3
- package/esm2022/lib/inputs/password-input/password-input.component.mjs +4 -3
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +4 -4
- package/esm2022/lib/radio/radio-group.component.mjs +4 -3
- package/esm2022/lib/segment/segment.component.mjs +4 -4
- package/esm2022/lib/select/select.component.mjs +4 -3
- package/fesm2022/ardium-ui-ui.mjs +178 -57
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/_internal/form-field-component.d.ts +2 -1
- package/lib/_internal/selectable-list-component.d.ts +4 -3
- package/lib/calendar/calendar.component.d.ts +2 -2
- package/lib/calendar/calendar.defaults.d.ts +2 -2
- package/lib/form-field/form-field-base.d.ts +22 -0
- package/lib/form-field/form-field-child.token.d.ts +8 -0
- package/lib/form-field/form-field-native-inputs.d.ts +22 -0
- package/lib/form-field/form-field.component.d.ts +3 -15
- package/lib/form-field/form-field.defaults.d.ts +2 -0
- package/lib/form-field/form-field.module.d.ts +8 -7
- package/lib/form-field/horizontal-form-field.component.d.ts +3 -15
- package/lib/form-field/index.d.ts +1 -0
- package/lib/form-field/label/label.component.d.ts +4 -1
- package/package.json +1 -1
- package/prebuilt-themes/default/buttons/button.css +2 -2
- package/prebuilt-themes/default/form-field.css +13 -0
- package/prebuilt-themes/default/form-field.css.map +1 -1
- package/themes/default/buttons/button.scss +2 -2
- package/themes/default/form-field.scss +16 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { computed, contentChild, contentChildren, Directive, inject, input } from '@angular/core';
|
|
2
|
+
import { coerceBooleanProperty } from '@ardium-ui/devkit';
|
|
3
|
+
import { isFunction } from 'simple-bool';
|
|
4
|
+
import { SimpleOneAxisAlignment } from '../types/alignment.types';
|
|
5
|
+
import { ArdiumErrorDirective } from './error/error.directive';
|
|
6
|
+
import { ARD_FORM_FIELD_CONTROL } from './form-field-child.token';
|
|
7
|
+
import { ARD_FORM_FIELD_DEFAULTS } from './form-field.defaults';
|
|
8
|
+
import { ArdiumHintDirective } from './hint/hint.directive';
|
|
9
|
+
import { ArdiumLabelComponent } from './label/label.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class _FormFieldBase {
|
|
12
|
+
constructor() {
|
|
13
|
+
this._DEFAULTS = inject(ARD_FORM_FIELD_DEFAULTS);
|
|
14
|
+
this.alignHintToLeftByDefault = this._DEFAULTS.defaultHintAlign === SimpleOneAxisAlignment.Left;
|
|
15
|
+
this.control = contentChild(ARD_FORM_FIELD_CONTROL);
|
|
16
|
+
// get controlRequired() {
|
|
17
|
+
// const fnOrValue = this.control()?.required;
|
|
18
|
+
// return isFunction(fnOrValue) ? fnOrValue() : fnOrValue;
|
|
19
|
+
// }
|
|
20
|
+
this.label = contentChild(ArdiumLabelComponent);
|
|
21
|
+
this.hints = contentChildren(ArdiumHintDirective);
|
|
22
|
+
this.errors = contentChildren(ArdiumErrorDirective);
|
|
23
|
+
this.hasAnyError = computed(() => this.errors()?.length > 0);
|
|
24
|
+
this.reserveHintLine = input(this._DEFAULTS.reserveHintLine, { transform: v => coerceBooleanProperty(v) });
|
|
25
|
+
}
|
|
26
|
+
get controlHasError() {
|
|
27
|
+
const fnOrValue = this.control()?.hasError;
|
|
28
|
+
return isFunction(fnOrValue) ? fnOrValue() : fnOrValue;
|
|
29
|
+
}
|
|
30
|
+
get controlIsSuccess() {
|
|
31
|
+
const fnOrValue = this.control()?.isSuccess;
|
|
32
|
+
return isFunction(fnOrValue) ? fnOrValue() : fnOrValue;
|
|
33
|
+
}
|
|
34
|
+
get controlDisabled() {
|
|
35
|
+
const fnOrValue = this.control()?.disabled;
|
|
36
|
+
return isFunction(fnOrValue) ? fnOrValue() : fnOrValue;
|
|
37
|
+
}
|
|
38
|
+
get controlHtmlId() {
|
|
39
|
+
const fnOrValue = this.control()?.htmlId;
|
|
40
|
+
return isFunction(fnOrValue) ? fnOrValue() : fnOrValue;
|
|
41
|
+
}
|
|
42
|
+
ngOnInit() {
|
|
43
|
+
if (!this.control()) {
|
|
44
|
+
throw new Error(`ARD-FT5110: Form field component requires any control (input) to be present within the element. Found none.`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: _FormFieldBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
48
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: _FormFieldBase, inputs: { reserveHintLine: { classPropertyName: "reserveHintLine", publicName: "reserveHintLine", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "control", first: true, predicate: ARD_FORM_FIELD_CONTROL, descendants: true, isSignal: true }, { propertyName: "label", first: true, predicate: ArdiumLabelComponent, descendants: true, isSignal: true }, { propertyName: "hints", predicate: ArdiumHintDirective, isSignal: true }, { propertyName: "errors", predicate: ArdiumErrorDirective, isSignal: true }], ngImport: i0 }); }
|
|
49
|
+
}
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: _FormFieldBase, decorators: [{
|
|
51
|
+
type: Directive
|
|
52
|
+
}] });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQXVCLE1BQU0sMEJBQTBCLENBQUM7QUFDdkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRy9ELE1BQU0sT0FBZ0IsY0FBYztJQURwQztRQUVxQixjQUFTLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFL0MsNkJBQXdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsS0FBSyxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7UUFFbEcsWUFBTyxHQUFHLFlBQVksQ0FBc0Isc0JBQXNCLENBQUMsQ0FBQztRQWtCN0UsMEJBQTBCO1FBQzFCLGdEQUFnRDtRQUNoRCw0REFBNEQ7UUFDNUQsSUFBSTtRQUVLLFVBQUssR0FBRyxZQUFZLENBQXVCLG9CQUFvQixDQUFDLENBQUM7UUFFakUsVUFBSyxHQUFHLGVBQWUsQ0FBc0IsbUJBQW1CLENBQUMsQ0FBQztRQUNsRSxXQUFNLEdBQUcsZUFBZSxDQUF1QixvQkFBb0IsQ0FBQyxDQUFDO1FBQ3JFLGdCQUFXLEdBQUcsUUFBUSxDQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakUsb0JBQWUsR0FBRyxLQUFLLENBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7S0FTOUg7SUFuQ0MsSUFBSSxlQUFlO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLENBQUM7UUFDM0MsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDekQsQ0FBQztJQUNELElBQUksZ0JBQWdCO1FBQ2xCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLENBQUM7UUFDNUMsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDekQsQ0FBQztJQUNELElBQUksZUFBZTtRQUNqQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxDQUFDO1FBQzNDLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3pELENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDZixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxDQUFDO1FBQ3pDLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3pELENBQUM7SUFhRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkdBQTZHLENBQzlHLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQzsrR0F6Q21CLGNBQWM7bUdBQWQsY0FBYyxpT0FLbUIsc0JBQXNCLHdGQXVCdkIsb0JBQW9CLDJFQUVsQixtQkFBbUIseURBQ2pCLG9CQUFvQjs7NEZBL0J4RCxjQUFjO2tCQURuQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIGNvbnRlbnRDaGlsZCwgY29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xyXG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xyXG5pbXBvcnQgeyBTaW1wbGVPbmVBeGlzQWxpZ25tZW50IH0gZnJvbSAnLi4vdHlwZXMvYWxpZ25tZW50LnR5cGVzJztcclxuaW1wb3J0IHsgQXJkaXVtRXJyb3JEaXJlY3RpdmUgfSBmcm9tICcuL2Vycm9yL2Vycm9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEFSRF9GT1JNX0ZJRUxEX0NPTlRST0wsIEFyZEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuL2Zvcm0tZmllbGQtY2hpbGQudG9rZW4nO1xyXG5pbXBvcnQgeyBBUkRfRk9STV9GSUVMRF9ERUZBVUxUUyB9IGZyb20gJy4vZm9ybS1maWVsZC5kZWZhdWx0cyc7XHJcbmltcG9ydCB7IEFyZGl1bUhpbnREaXJlY3RpdmUgfSBmcm9tICcuL2hpbnQvaGludC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBBcmRpdW1MYWJlbENvbXBvbmVudCB9IGZyb20gJy4vbGFiZWwvbGFiZWwuY29tcG9uZW50JztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgX0Zvcm1GaWVsZEJhc2Uge1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBfREVGQVVMVFMgPSBpbmplY3QoQVJEX0ZPUk1fRklFTERfREVGQVVMVFMpO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgYWxpZ25IaW50VG9MZWZ0QnlEZWZhdWx0ID0gdGhpcy5fREVGQVVMVFMuZGVmYXVsdEhpbnRBbGlnbiA9PT0gU2ltcGxlT25lQXhpc0FsaWdubWVudC5MZWZ0O1xyXG5cclxuICByZWFkb25seSBjb250cm9sID0gY29udGVudENoaWxkPEFyZEZvcm1GaWVsZENvbnRyb2w+KEFSRF9GT1JNX0ZJRUxEX0NPTlRST0wpO1xyXG5cclxuICBnZXQgY29udHJvbEhhc0Vycm9yKCkge1xyXG4gICAgY29uc3QgZm5PclZhbHVlID0gdGhpcy5jb250cm9sKCk/Lmhhc0Vycm9yO1xyXG4gICAgcmV0dXJuIGlzRnVuY3Rpb24oZm5PclZhbHVlKSA/IGZuT3JWYWx1ZSgpIDogZm5PclZhbHVlO1xyXG4gIH1cclxuICBnZXQgY29udHJvbElzU3VjY2VzcygpIHtcclxuICAgIGNvbnN0IGZuT3JWYWx1ZSA9IHRoaXMuY29udHJvbCgpPy5pc1N1Y2Nlc3M7XHJcbiAgICByZXR1cm4gaXNGdW5jdGlvbihmbk9yVmFsdWUpID8gZm5PclZhbHVlKCkgOiBmbk9yVmFsdWU7XHJcbiAgfVxyXG4gIGdldCBjb250cm9sRGlzYWJsZWQoKSB7XHJcbiAgICBjb25zdCBmbk9yVmFsdWUgPSB0aGlzLmNvbnRyb2woKT8uZGlzYWJsZWQ7XHJcbiAgICByZXR1cm4gaXNGdW5jdGlvbihmbk9yVmFsdWUpID8gZm5PclZhbHVlKCkgOiBmbk9yVmFsdWU7XHJcbiAgfVxyXG4gIGdldCBjb250cm9sSHRtbElkKCkge1xyXG4gICAgY29uc3QgZm5PclZhbHVlID0gdGhpcy5jb250cm9sKCk/Lmh0bWxJZDtcclxuICAgIHJldHVybiBpc0Z1bmN0aW9uKGZuT3JWYWx1ZSkgPyBmbk9yVmFsdWUoKSA6IGZuT3JWYWx1ZTtcclxuICB9XHJcbiAgLy8gZ2V0IGNvbnRyb2xSZXF1aXJlZCgpIHtcclxuICAvLyAgIGNvbnN0IGZuT3JWYWx1ZSA9IHRoaXMuY29udHJvbCgpPy5yZXF1aXJlZDtcclxuICAvLyAgIHJldHVybiBpc0Z1bmN0aW9uKGZuT3JWYWx1ZSkgPyBmbk9yVmFsdWUoKSA6IGZuT3JWYWx1ZTtcclxuICAvLyB9XHJcblxyXG4gIHJlYWRvbmx5IGxhYmVsID0gY29udGVudENoaWxkPEFyZGl1bUxhYmVsQ29tcG9uZW50PihBcmRpdW1MYWJlbENvbXBvbmVudCk7XHJcblxyXG4gIHJlYWRvbmx5IGhpbnRzID0gY29udGVudENoaWxkcmVuPEFyZGl1bUhpbnREaXJlY3RpdmU+KEFyZGl1bUhpbnREaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IGVycm9ycyA9IGNvbnRlbnRDaGlsZHJlbjxBcmRpdW1FcnJvckRpcmVjdGl2ZT4oQXJkaXVtRXJyb3JEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IGhhc0FueUVycm9yID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5lcnJvcnMoKT8ubGVuZ3RoID4gMCk7XHJcbiAgcmVhZG9ubHkgcmVzZXJ2ZUhpbnRMaW5lID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5yZXNlcnZlSGludExpbmUsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbCgpKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICBgQVJELUZUNTExMDogRm9ybSBmaWVsZCBjb21wb25lbnQgcmVxdWlyZXMgYW55IGNvbnRyb2wgKGlucHV0KSB0byBiZSBwcmVzZW50IHdpdGhpbiB0aGUgZWxlbWVudC4gRm91bmQgbm9uZS5gXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const ARD_FORM_FIELD_CONTROL = new InjectionToken('ard-form-field-control');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jaGlsZC50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvZm9ybS1maWVsZC9mb3JtLWZpZWxkLWNoaWxkLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFZL0MsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQXNCLHdCQUF3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcmRGb3JtRmllbGRDb250cm9sIHtcclxuICBoYXNFcnJvcjogKCgpID0+IGJvb2xlYW4pIHwgYm9vbGVhbjtcclxuICBpc1N1Y2Nlc3M/OiAoKCkgPT4gYm9vbGVhbikgfCBib29sZWFuO1xyXG4gIGRpc2FibGVkOiAoKCkgPT4gYm9vbGVhbikgfCBib29sZWFuO1xyXG4gIGh0bWxJZDogKCgpID0+IHN0cmluZykgfCBzdHJpbmc7XHJcbiAgLy8gcmVtb3ZlZCBmb3Igbm93XHJcbiAgLy8gd2lsbCBicmluZyBiYWNrIHdoZW4gSSBmaWd1cmUgb3V0IGhvdyAoYW5kIGlmKSB0byBwYXNzIGl0IG9udG8gdGhlIGxhYmVsXHJcbiAgLy8gcmVxdWlyZWQ/OiAoKCkgPT4gYm9vbGVhbikgfCBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQVJEX0ZPUk1fRklFTERfQ09OVFJPTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBcmRGb3JtRmllbGRDb250cm9sPignYXJkLWZvcm0tZmllbGQtY29udHJvbCcpO1xyXG4iXX0=
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { computed, Directive, inject, Injector, input, runInInjectionContext, signal } from '@angular/core';
|
|
2
|
+
import { toObservable } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { NgControl, Validators } from '@angular/forms';
|
|
4
|
+
import { coerceBooleanProperty } from '@ardium-ui/devkit';
|
|
5
|
+
import { map } from 'rxjs';
|
|
6
|
+
import { TakeChance as Random } from 'take-chance';
|
|
7
|
+
import { ARD_FORM_FIELD_CONTROL } from './form-field-child.token';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class ArdiumFormFieldNativeInputAdapterDirective {
|
|
10
|
+
constructor() {
|
|
11
|
+
this._required = input(undefined, {
|
|
12
|
+
transform: v => coerceBooleanProperty(v),
|
|
13
|
+
alias: 'required',
|
|
14
|
+
});
|
|
15
|
+
this.isSuccess = input(false, { transform: v => coerceBooleanProperty(v) });
|
|
16
|
+
this.disabled = input(false, { transform: v => coerceBooleanProperty(v) });
|
|
17
|
+
//! form field related
|
|
18
|
+
this._injector = inject(Injector);
|
|
19
|
+
this.wasTouched = signal(false);
|
|
20
|
+
this._ngControl = null;
|
|
21
|
+
this.htmlId = input(Random.id());
|
|
22
|
+
this._hasError = input(undefined, {
|
|
23
|
+
transform: v => coerceBooleanProperty(v),
|
|
24
|
+
alias: 'hasError',
|
|
25
|
+
});
|
|
26
|
+
this._hasErrorInControl = signal(false);
|
|
27
|
+
this.hasError = computed(() => this._hasError() ?? (this.wasTouched() && this._hasErrorInControl()));
|
|
28
|
+
}
|
|
29
|
+
get required() {
|
|
30
|
+
return this._required() ?? !!this._ngControl?.control?.hasValidator(Validators.required);
|
|
31
|
+
}
|
|
32
|
+
ngOnInit() {
|
|
33
|
+
this._ngControl = this._injector.get(NgControl, null);
|
|
34
|
+
if (this._ngControl) {
|
|
35
|
+
// if (!this._ngControl.valueAccessor || (this && this instanceof (this._ngControl.valueAccessor as any).constructor)) {
|
|
36
|
+
// this._ngControl.valueAccessor = this;
|
|
37
|
+
// }
|
|
38
|
+
this._hasErrorInControl.set(this._ngControl.status === 'INVALID');
|
|
39
|
+
this._statusChangesSub = this._ngControl.statusChanges
|
|
40
|
+
?.pipe(map(v => v === 'INVALID'))
|
|
41
|
+
.subscribe(v => this._hasErrorInControl.set(v));
|
|
42
|
+
if (!this._ngControl.control)
|
|
43
|
+
return;
|
|
44
|
+
runInInjectionContext(this._injector, () => {
|
|
45
|
+
// do not read the next line of code if you are easily frightened
|
|
46
|
+
// I'm not proud of this part, but it had to be done. God please forgive me
|
|
47
|
+
// I didn't find any other feasible way to detect when the control changes its touched state
|
|
48
|
+
// so it had to be hacked like this
|
|
49
|
+
toObservable(this._ngControl?.control?.touchedReactive)?.subscribe(v => this.wasTouched.set(v));
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
ngOnDestroy() {
|
|
54
|
+
this._statusChangesSub?.unsubscribe();
|
|
55
|
+
}
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldNativeInputAdapterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
57
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: ArdiumFormFieldNativeInputAdapterDirective, selector: "ard-form-field > input, ard-form-field > textarea, ard-form-field > select, ard-horizontal-form-field > input, ard-horizontal-form-field > textarea, ard-horizontal-form-field > select", inputs: { _required: { classPropertyName: "_required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, isSuccess: { classPropertyName: "isSuccess", publicName: "isSuccess", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, htmlId: { classPropertyName: "htmlId", publicName: "htmlId", isSignal: true, isRequired: false, transformFunction: null }, _hasError: { classPropertyName: "_hasError", publicName: "hasError", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ard-has-error": "hasError()", "class.ard-is-success": "isSuccess()" } }, providers: [
|
|
58
|
+
{
|
|
59
|
+
provide: ARD_FORM_FIELD_CONTROL,
|
|
60
|
+
useExisting: ArdiumFormFieldNativeInputAdapterDirective,
|
|
61
|
+
},
|
|
62
|
+
], ngImport: i0 }); }
|
|
63
|
+
}
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldNativeInputAdapterDirective, decorators: [{
|
|
65
|
+
type: Directive,
|
|
66
|
+
args: [{
|
|
67
|
+
selector: 'ard-form-field > input, ard-form-field > textarea, ard-form-field > select, ard-horizontal-form-field > input, ard-horizontal-form-field > textarea, ard-horizontal-form-field > select',
|
|
68
|
+
providers: [
|
|
69
|
+
{
|
|
70
|
+
provide: ARD_FORM_FIELD_CONTROL,
|
|
71
|
+
useExisting: ArdiumFormFieldNativeInputAdapterDirective,
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
host: {
|
|
75
|
+
'[class.ard-has-error]': 'hasError()',
|
|
76
|
+
'[class.ard-is-success]': 'isSuccess()',
|
|
77
|
+
},
|
|
78
|
+
}]
|
|
79
|
+
}] });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1uYXRpdmUtaW5wdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtbmF0aXZlLWlucHV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLEdBQUcsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsSUFBSSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUF1QixNQUFNLDBCQUEwQixDQUFDOztBQWdCdkYsTUFBTSxPQUFPLDBDQUEwQztJQWR2RDtRQWVXLGNBQVMsR0FBRyxLQUFLLENBQTJCLFNBQVMsRUFBRTtZQUM5RCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7WUFDeEMsS0FBSyxFQUFFLFVBQVU7U0FDbEIsQ0FBQyxDQUFDO1FBS00sY0FBUyxHQUFHLEtBQUssQ0FBZSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckYsYUFBUSxHQUFHLEtBQUssQ0FBZSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFN0Ysc0JBQXNCO1FBQ0gsY0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV2QyxlQUFVLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBOEJuQyxlQUFVLEdBQXFCLElBQUksQ0FBQztRQUVyQyxXQUFNLEdBQUcsS0FBSyxDQUFTLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXBDLGNBQVMsR0FBRyxLQUFLLENBQTJCLFNBQVMsRUFBRTtZQUM5RCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7WUFDeEMsS0FBSyxFQUFFLFVBQVU7U0FDbEIsQ0FBQyxDQUFDO1FBQ2MsdUJBQWtCLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BELGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUtuSDtJQXREQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBV0QsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXRELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLHdIQUF3SDtZQUN4SCwwQ0FBMEM7WUFDMUMsSUFBSTtZQUVKLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUM7WUFFbEUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYTtnQkFDcEQsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDO2lCQUNoQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTztnQkFBRSxPQUFPO1lBRXJDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUN6QyxpRUFBaUU7Z0JBQ2pFLDJFQUEyRTtnQkFDM0UsNEZBQTRGO2dCQUM1RixtQ0FBbUM7Z0JBQ25DLFlBQVksQ0FBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQTJCLEVBQUUsZUFBa0MsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUM3RyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDdkIsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFZRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7K0dBMURVLDBDQUEwQzttR0FBMUMsMENBQTBDLDA4QkFYMUM7WUFDVDtnQkFDRSxPQUFPLEVBQUUsc0JBQXNCO2dCQUMvQixXQUFXLEVBQUUsMENBQTBDO2FBQ3hEO1NBQ0Y7OzRGQU1VLDBDQUEwQztrQkFkdEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQ04seUxBQXlMO29CQUMzTCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHNCQUFzQjs0QkFDL0IsV0FBVyw0Q0FBNEM7eUJBQ3hEO3FCQUNGO29CQUNELElBQUksRUFBRTt3QkFDSix1QkFBdUIsRUFBRSxZQUFZO3dCQUNyQyx3QkFBd0IsRUFBRSxhQUFhO3FCQUN4QztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUsIGluamVjdCwgSW5qZWN0b3IsIGlucHV0LCBydW5JbkluamVjdGlvbkNvbnRleHQsIFNpZ25hbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgTmdDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IG1hcCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRha2VDaGFuY2UgYXMgUmFuZG9tIH0gZnJvbSAndGFrZS1jaGFuY2UnO1xyXG5pbXBvcnQgeyBBUkRfRk9STV9GSUVMRF9DT05UUk9MLCBBcmRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNoaWxkLnRva2VuJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOlxyXG4gICAgJ2FyZC1mb3JtLWZpZWxkID4gaW5wdXQsIGFyZC1mb3JtLWZpZWxkID4gdGV4dGFyZWEsIGFyZC1mb3JtLWZpZWxkID4gc2VsZWN0LCBhcmQtaG9yaXpvbnRhbC1mb3JtLWZpZWxkID4gaW5wdXQsIGFyZC1ob3Jpem9udGFsLWZvcm0tZmllbGQgPiB0ZXh0YXJlYSwgYXJkLWhvcml6b250YWwtZm9ybS1maWVsZCA+IHNlbGVjdCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEFSRF9GT1JNX0ZJRUxEX0NPTlRST0wsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBBcmRpdW1Gb3JtRmllbGROYXRpdmVJbnB1dEFkYXB0ZXJEaXJlY3RpdmUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgaG9zdDoge1xyXG4gICAgJ1tjbGFzcy5hcmQtaGFzLWVycm9yXSc6ICdoYXNFcnJvcigpJyxcclxuICAgICdbY2xhc3MuYXJkLWlzLXN1Y2Nlc3NdJzogJ2lzU3VjY2VzcygpJyxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtRm9ybUZpZWxkTmF0aXZlSW5wdXRBZGFwdGVyRGlyZWN0aXZlIGltcGxlbWVudHMgQXJkRm9ybUZpZWxkQ29udHJvbCB7XHJcbiAgcmVhZG9ubHkgX3JlcXVpcmVkID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZCwgYW55Pih1bmRlZmluZWQsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodiksXHJcbiAgICBhbGlhczogJ3JlcXVpcmVkJyxcclxuICB9KTtcclxuICBnZXQgcmVxdWlyZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQoKSA/PyAhIXRoaXMuX25nQ29udHJvbD8uY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgaXNTdWNjZXNzID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG5cclxuICAvLyEgZm9ybSBmaWVsZCByZWxhdGVkXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcblxyXG4gIHJlYWRvbmx5IHdhc1RvdWNoZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBwcml2YXRlIF9zdGF0dXNDaGFuZ2VzU3ViPzogU3Vic2NyaXB0aW9uO1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbmdDb250cm9sID0gdGhpcy5faW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX25nQ29udHJvbCkge1xyXG4gICAgICAvLyBpZiAoIXRoaXMuX25nQ29udHJvbC52YWx1ZUFjY2Vzc29yIHx8ICh0aGlzICYmIHRoaXMgaW5zdGFuY2VvZiAodGhpcy5fbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgYXMgYW55KS5jb25zdHJ1Y3RvcikpIHtcclxuICAgICAgLy8gICB0aGlzLl9uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICAgIC8vIH1cclxuXHJcbiAgICAgIHRoaXMuX2hhc0Vycm9ySW5Db250cm9sLnNldCh0aGlzLl9uZ0NvbnRyb2wuc3RhdHVzID09PSAnSU5WQUxJRCcpO1xyXG5cclxuICAgICAgdGhpcy5fc3RhdHVzQ2hhbmdlc1N1YiA9IHRoaXMuX25nQ29udHJvbC5zdGF0dXNDaGFuZ2VzXHJcbiAgICAgICAgPy5waXBlKG1hcCh2ID0+IHYgPT09ICdJTlZBTElEJykpXHJcbiAgICAgICAgLnN1YnNjcmliZSh2ID0+IHRoaXMuX2hhc0Vycm9ySW5Db250cm9sLnNldCh2KSk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuX25nQ29udHJvbC5jb250cm9sKSByZXR1cm47XHJcblxyXG4gICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5faW5qZWN0b3IsICgpID0+IHtcclxuICAgICAgICAvLyBkbyBub3QgcmVhZCB0aGUgbmV4dCBsaW5lIG9mIGNvZGUgaWYgeW91IGFyZSBlYXNpbHkgZnJpZ2h0ZW5lZFxyXG4gICAgICAgIC8vIEknbSBub3QgcHJvdWQgb2YgdGhpcyBwYXJ0LCBidXQgaXQgaGFkIHRvIGJlIGRvbmUuIEdvZCBwbGVhc2UgZm9yZ2l2ZSBtZVxyXG4gICAgICAgIC8vIEkgZGlkbid0IGZpbmQgYW55IG90aGVyIGZlYXNpYmxlIHdheSB0byBkZXRlY3Qgd2hlbiB0aGUgY29udHJvbCBjaGFuZ2VzIGl0cyB0b3VjaGVkIHN0YXRlXHJcbiAgICAgICAgLy8gc28gaXQgaGFkIHRvIGJlIGhhY2tlZCBsaWtlIHRoaXNcclxuICAgICAgICB0b09ic2VydmFibGUoKHRoaXMuX25nQ29udHJvbD8uY29udHJvbCBhcyBhbnkgfCB1bmRlZmluZWQpPy50b3VjaGVkUmVhY3RpdmUgYXMgU2lnbmFsPGJvb2xlYW4+KT8uc3Vic2NyaWJlKHYgPT5cclxuICAgICAgICAgIHRoaXMud2FzVG91Y2hlZC5zZXQodilcclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJvdGVjdGVkIF9uZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwgPSBudWxsO1xyXG5cclxuICByZWFkb25seSBodG1sSWQgPSBpbnB1dDxzdHJpbmc+KFJhbmRvbS5pZCgpKTtcclxuXHJcbiAgcmVhZG9ubHkgX2hhc0Vycm9yID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZCwgYW55Pih1bmRlZmluZWQsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodiksXHJcbiAgICBhbGlhczogJ2hhc0Vycm9yJyxcclxuICB9KTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9oYXNFcnJvckluQ29udHJvbCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcmVhZG9ubHkgaGFzRXJyb3IgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLl9oYXNFcnJvcigpID8/ICh0aGlzLndhc1RvdWNoZWQoKSAmJiB0aGlzLl9oYXNFcnJvckluQ29udHJvbCgpKSk7XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RhdHVzQ2hhbmdlc1N1Yj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,33 +1,12 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component,
|
|
2
|
-
import {
|
|
3
|
-
import { _FormFieldComponentBase } from '../_internal/form-field-component';
|
|
4
|
-
import { SimpleOneAxisAlignment } from './../types/alignment.types';
|
|
5
|
-
import { ArdiumErrorDirective } from './error/error.directive';
|
|
6
|
-
import { ARD_FORM_FIELD_DEFAULTS } from './form-field.defaults';
|
|
7
|
-
import { ArdiumHintDirective } from './hint/hint.directive';
|
|
8
|
-
import { ArdiumLabelComponent } from './label/label.component';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { _FormFieldBase } from './form-field-base';
|
|
9
3
|
import * as i0 from "@angular/core";
|
|
10
|
-
export class ArdiumFormFieldComponent {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.alignHintToLeftByDefault = this._DEFAULTS.defaultHintAlign === SimpleOneAxisAlignment.Left;
|
|
14
|
-
this.control = contentChild(_FormFieldComponentBase);
|
|
15
|
-
this.label = contentChild(ArdiumLabelComponent);
|
|
16
|
-
this.hints = contentChildren(ArdiumHintDirective);
|
|
17
|
-
this.errors = contentChildren(ArdiumErrorDirective);
|
|
18
|
-
this.hasAnyError = computed(() => this.errors()?.length > 0);
|
|
19
|
-
this.reserveHintLine = input(this._DEFAULTS.reserveHintLine, { transform: v => coerceBooleanProperty(v) });
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() {
|
|
22
|
-
if (!this.control()) {
|
|
23
|
-
throw new Error(`ARD-FT5110: Form field component requires any control (input) to be present within the element. Found none.`);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumFormFieldComponent, selector: "ard-form-field", inputs: { reserveHintLine: { classPropertyName: "reserveHintLine", publicName: "reserveHintLine", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "control", first: true, predicate: _FormFieldComponentBase, descendants: true, isSignal: true }, { propertyName: "label", first: true, predicate: ArdiumLabelComponent, descendants: true, isSignal: true }, { propertyName: "hints", predicate: ArdiumHintDirective, isSignal: true }, { propertyName: "errors", predicate: ArdiumErrorDirective, isSignal: true }], ngImport: i0, template: "<div\r\n class=\"ard-form-field\"\r\n [class.ard-form-field__with-error]=\"control()?.hasError()\"\r\n [class.ard-form-field__is-success]=\"control()?.isSuccess()\"\r\n [class.ard-form-field__control-disabled]=\"control()?.disabled()\"\r\n>\r\n <label\r\n class=\"ard-label\"\r\n [attr.for]=\"control()?.htmlId()\"\r\n >\r\n <ng-content select=\"ard-label, [ard-label]\" />\r\n </label>\r\n <div class=\"ard-form-field__input\">\r\n <ng-content />\r\n </div>\r\n <div\r\n class=\"ard-form-field__hints\"\r\n [class.ard-form-field__reserve-hint-line]=\"reserveHintLine()\"\r\n [class.ard-form-field__hints-default-left]=\"alignHintToLeftByDefault\"\r\n >\r\n @if (hasAnyError()) {\r\n <div class=\"ard-form-field__error\">\r\n <ng-content select=\"ard-error, [ard-error]\" />\r\n </div>\r\n } @else {\r\n <div class=\"ard-form-field__hints-left\">\r\n <div class=\"ard-form-field__default-hint\">\r\n <ng-content select=\"ard-hint:not([left]):not([right]), [ard-hint]:not([left]):not([right])\" />\r\n </div>\r\n <ng-content select=\"ard-hint[left], [ard-hint][left]\" />\r\n </div>\r\n <div class=\"ard-form-field__hints-right\">\r\n <div class=\"ard-form-field__default-hint\">\r\n <ng-content select=\"ard-hint:not([left]):not([right]), [ard-hint]:not([left]):not([right])\" />\r\n </div>\r\n <ng-content select=\"ard-hint[right], [ard-hint][right]\" />\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}.ard-form-field__hints{display:flex;justify-content:space-between}.ard-form-field__hints>*{display:flex;flex-direction:column}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
4
|
+
export class ArdiumFormFieldComponent extends _FormFieldBase {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumFormFieldComponent, selector: "ard-form-field", usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"ard-form-field\"\r\n [class.ard-form-field__with-error]=\"controlHasError\"\r\n [class.ard-form-field__is-success]=\"controlIsSuccess\"\r\n [class.ard-form-field__control-disabled]=\"controlDisabled\"\r\n>\r\n <label\r\n class=\"ard-form-field__label\"\r\n [attr.for]=\"controlHtmlId\"\r\n >\r\n <ng-content select=\"ard-label, [ard-label]\" />\r\n </label>\r\n <div class=\"ard-form-field__input\">\r\n <ng-content />\r\n </div>\r\n <div\r\n class=\"ard-form-field__hints\"\r\n [class.ard-form-field__reserve-hint-line]=\"reserveHintLine()\"\r\n [class.ard-form-field__hints-default-left]=\"alignHintToLeftByDefault\"\r\n >\r\n @if (hasAnyError()) {\r\n <div class=\"ard-form-field__error\">\r\n <ng-content select=\"ard-error, [ard-error]\" />\r\n </div>\r\n } @else {\r\n <div class=\"ard-form-field__hints-left\">\r\n <div class=\"ard-form-field__default-hint\">\r\n <ng-content select=\"ard-hint:not([left]):not([right]), [ard-hint]:not([left]):not([right])\" />\r\n </div>\r\n <ng-content select=\"ard-hint[left], [ard-hint][left]\" />\r\n </div>\r\n <div class=\"ard-form-field__hints-right\">\r\n <div class=\"ard-form-field__default-hint\">\r\n <ng-content select=\"ard-hint:not([left]):not([right]), [ard-hint]:not([left]):not([right])\" />\r\n </div>\r\n <ng-content select=\"ard-hint[right], [ard-hint][right]\" />\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}.ard-form-field__hints{display:flex;justify-content:space-between}.ard-form-field__hints>*{display:flex;flex-direction:column}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
28
7
|
}
|
|
29
8
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldComponent, decorators: [{
|
|
30
9
|
type: Component,
|
|
31
|
-
args: [{ selector: 'ard-form-field', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"ard-form-field\"\r\n [class.ard-form-field__with-error]=\"
|
|
10
|
+
args: [{ selector: 'ard-form-field', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"ard-form-field\"\r\n [class.ard-form-field__with-error]=\"controlHasError\"\r\n [class.ard-form-field__is-success]=\"controlIsSuccess\"\r\n [class.ard-form-field__control-disabled]=\"controlDisabled\"\r\n>\r\n <label\r\n class=\"ard-form-field__label\"\r\n [attr.for]=\"controlHtmlId\"\r\n >\r\n <ng-content select=\"ard-label, [ard-label]\" />\r\n </label>\r\n <div class=\"ard-form-field__input\">\r\n <ng-content />\r\n </div>\r\n <div\r\n class=\"ard-form-field__hints\"\r\n [class.ard-form-field__reserve-hint-line]=\"reserveHintLine()\"\r\n [class.ard-form-field__hints-default-left]=\"alignHintToLeftByDefault\"\r\n >\r\n @if (hasAnyError()) {\r\n <div class=\"ard-form-field__error\">\r\n <ng-content select=\"ard-error, [ard-error]\" />\r\n </div>\r\n } @else {\r\n <div class=\"ard-form-field__hints-left\">\r\n <div class=\"ard-form-field__default-hint\">\r\n <ng-content select=\"ard-hint:not([left]):not([right]), [ard-hint]:not([left]):not([right])\" />\r\n </div>\r\n <ng-content select=\"ard-hint[left], [ard-hint][left]\" />\r\n </div>\r\n <div class=\"ard-form-field__hints-right\">\r\n <div class=\"ard-form-field__default-hint\">\r\n <ng-content select=\"ard-hint:not([left]):not([right]), [ard-hint]:not([left]):not([right])\" />\r\n </div>\r\n <ng-content select=\"ard-hint[right], [ard-hint][right]\" />\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}.ard-form-field__hints{display:flex;justify-content:space-between}.ard-form-field__hints>*{display:flex;flex-direction:column}\n"] }]
|
|
32
11
|
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFTbkQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGNBQWM7K0dBQS9DLHdCQUF3QjttR0FBeEIsd0JBQXdCLDZFQ1ZyQyx3OUNBd0NBOzs0RkQ5QmEsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLGdCQUFnQixpQkFHWCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBfRm9ybUZpZWxkQmFzZSB9IGZyb20gJy4vZm9ybS1maWVsZC1iYXNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXJkLWZvcm0tZmllbGQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcycsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bUZvcm1GaWVsZENvbXBvbmVudCBleHRlbmRzIF9Gb3JtRmllbGRCYXNlIGltcGxlbWVudHMgT25Jbml0IHt9XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImFyZC1mb3JtLWZpZWxkXCJcclxuICBbY2xhc3MuYXJkLWZvcm0tZmllbGRfX3dpdGgtZXJyb3JdPVwiY29udHJvbEhhc0Vycm9yXCJcclxuICBbY2xhc3MuYXJkLWZvcm0tZmllbGRfX2lzLXN1Y2Nlc3NdPVwiY29udHJvbElzU3VjY2Vzc1wiXHJcbiAgW2NsYXNzLmFyZC1mb3JtLWZpZWxkX19jb250cm9sLWRpc2FibGVkXT1cImNvbnRyb2xEaXNhYmxlZFwiXHJcbj5cclxuICA8bGFiZWxcclxuICAgIGNsYXNzPVwiYXJkLWZvcm0tZmllbGRfX2xhYmVsXCJcclxuICAgIFthdHRyLmZvcl09XCJjb250cm9sSHRtbElkXCJcclxuICA+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhcmQtbGFiZWwsIFthcmQtbGFiZWxdXCIgLz5cclxuICA8L2xhYmVsPlxyXG4gIDxkaXYgY2xhc3M9XCJhcmQtZm9ybS1maWVsZF9faW5wdXRcIj5cclxuICAgIDxuZy1jb250ZW50IC8+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJhcmQtZm9ybS1maWVsZF9faGludHNcIlxyXG4gICAgW2NsYXNzLmFyZC1mb3JtLWZpZWxkX19yZXNlcnZlLWhpbnQtbGluZV09XCJyZXNlcnZlSGludExpbmUoKVwiXHJcbiAgICBbY2xhc3MuYXJkLWZvcm0tZmllbGRfX2hpbnRzLWRlZmF1bHQtbGVmdF09XCJhbGlnbkhpbnRUb0xlZnRCeURlZmF1bHRcIlxyXG4gID5cclxuICAgIEBpZiAoaGFzQW55RXJyb3IoKSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1mb3JtLWZpZWxkX19lcnJvclwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhcmQtZXJyb3IsIFthcmQtZXJyb3JdXCIgLz5cclxuICAgIDwvZGl2PlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGRfX2hpbnRzLWxlZnRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFyZC1mb3JtLWZpZWxkX19kZWZhdWx0LWhpbnRcIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhcmQtaGludDpub3QoW2xlZnRdKTpub3QoW3JpZ2h0XSksIFthcmQtaGludF06bm90KFtsZWZ0XSk6bm90KFtyaWdodF0pXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFyZC1oaW50W2xlZnRdLCBbYXJkLWhpbnRdW2xlZnRdXCIgLz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1mb3JtLWZpZWxkX19oaW50cy1yaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGRfX2RlZmF1bHQtaGludFwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFyZC1oaW50Om5vdChbbGVmdF0pOm5vdChbcmlnaHRdKSwgW2FyZC1oaW50XTpub3QoW2xlZnRdKTpub3QoW3JpZ2h0XSlcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXJkLWhpbnRbcmlnaHRdLCBbYXJkLWhpbnRdW3JpZ2h0XVwiIC8+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -3,6 +3,8 @@ import { SimpleOneAxisAlignment } from './../types/alignment.types';
|
|
|
3
3
|
const _formFieldDefaults = {
|
|
4
4
|
defaultHintAlign: SimpleOneAxisAlignment.Left,
|
|
5
5
|
reserveHintLine: false,
|
|
6
|
+
labelRequiredText: '*',
|
|
7
|
+
labelOptionalText: '(optional)',
|
|
6
8
|
};
|
|
7
9
|
export const ARD_FORM_FIELD_DEFAULTS = new InjectionToken('ard-form-field-defaults', {
|
|
8
10
|
factory: () => ({
|
|
@@ -12,4 +14,4 @@ export const ARD_FORM_FIELD_DEFAULTS = new InjectionToken('ard-form-field-defaul
|
|
|
12
14
|
export function provideFormFieldDefaults(config) {
|
|
13
15
|
return { provide: ARD_FORM_FIELD_DEFAULTS, useValue: { ..._formFieldDefaults, ...config } };
|
|
14
16
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5kZWZhdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmRlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFTcEUsTUFBTSxrQkFBa0IsR0FBeUI7SUFDL0MsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQUMsSUFBSTtJQUM3QyxlQUFlLEVBQUUsS0FBSztJQUN0QixpQkFBaUIsRUFBRSxHQUFHO0lBQ3RCLGlCQUFpQixFQUFFLFlBQVk7Q0FDaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUF1Qix5QkFBeUIsRUFBRTtJQUN6RyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNkLEdBQUcsa0JBQWtCO0tBQ3RCLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsTUFBcUM7SUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLGtCQUFrQixFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztBQUM5RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNpbXBsZU9uZUF4aXNBbGlnbm1lbnQgfSBmcm9tICcuLy4uL3R5cGVzL2FsaWdubWVudC50eXBlcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFyZEZvcm1GaWVsZERlZmF1bHRzIHtcclxuICBkZWZhdWx0SGludEFsaWduOiBTaW1wbGVPbmVBeGlzQWxpZ25tZW50O1xyXG4gIHJlc2VydmVIaW50TGluZTogYm9vbGVhbjtcclxuICBsYWJlbFJlcXVpcmVkVGV4dDogc3RyaW5nO1xyXG4gIGxhYmVsT3B0aW9uYWxUZXh0OiBzdHJpbmc7XHJcbn1cclxuXHJcbmNvbnN0IF9mb3JtRmllbGREZWZhdWx0czogQXJkRm9ybUZpZWxkRGVmYXVsdHMgPSB7XHJcbiAgZGVmYXVsdEhpbnRBbGlnbjogU2ltcGxlT25lQXhpc0FsaWdubWVudC5MZWZ0LFxyXG4gIHJlc2VydmVIaW50TGluZTogZmFsc2UsXHJcbiAgbGFiZWxSZXF1aXJlZFRleHQ6ICcqJyxcclxuICBsYWJlbE9wdGlvbmFsVGV4dDogJyhvcHRpb25hbCknLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEFSRF9GT1JNX0ZJRUxEX0RFRkFVTFRTID0gbmV3IEluamVjdGlvblRva2VuPEFyZEZvcm1GaWVsZERlZmF1bHRzPignYXJkLWZvcm0tZmllbGQtZGVmYXVsdHMnLCB7XHJcbiAgZmFjdG9yeTogKCkgPT4gKHtcclxuICAgIC4uLl9mb3JtRmllbGREZWZhdWx0cyxcclxuICB9KSxcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUZvcm1GaWVsZERlZmF1bHRzKGNvbmZpZzogUGFydGlhbDxBcmRGb3JtRmllbGREZWZhdWx0cz4pOiBQcm92aWRlciB7XHJcbiAgcmV0dXJuIHsgcHJvdmlkZTogQVJEX0ZPUk1fRklFTERfREVGQVVMVFMsIHVzZVZhbHVlOiB7IC4uLl9mb3JtRmllbGREZWZhdWx0cywgLi4uY29uZmlnIH0gfTtcclxufVxyXG4iXX0=
|
|
@@ -2,6 +2,7 @@ import { CommonModule } from '@angular/common';
|
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
3
|
import { ArdiumErrorComponent } from './error/error.component';
|
|
4
4
|
import { ArdiumErrorDirective } from './error/error.directive';
|
|
5
|
+
import { ArdiumFormFieldNativeInputAdapterDirective } from './form-field-native-inputs';
|
|
5
6
|
import { ArdiumFormFieldComponent } from './form-field.component';
|
|
6
7
|
import { ArdiumHintComponent } from './hint/hint.component';
|
|
7
8
|
import { ArdiumHintDirective } from './hint/hint.directive';
|
|
@@ -12,10 +13,12 @@ export class ArdiumFormFieldModule {
|
|
|
12
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
14
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldModule, declarations: [ArdiumFormFieldComponent,
|
|
14
15
|
ArdiumHorizontalFormFieldComponent,
|
|
16
|
+
ArdiumFormFieldNativeInputAdapterDirective,
|
|
15
17
|
ArdiumLabelComponent,
|
|
16
18
|
ArdiumHintComponent,
|
|
17
19
|
ArdiumErrorComponent], imports: [CommonModule, ArdiumHintDirective, ArdiumErrorDirective], exports: [ArdiumFormFieldComponent,
|
|
18
20
|
ArdiumHorizontalFormFieldComponent,
|
|
21
|
+
ArdiumFormFieldNativeInputAdapterDirective,
|
|
19
22
|
ArdiumLabelComponent,
|
|
20
23
|
ArdiumHintComponent,
|
|
21
24
|
ArdiumErrorComponent] }); }
|
|
@@ -27,6 +30,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
27
30
|
declarations: [
|
|
28
31
|
ArdiumFormFieldComponent,
|
|
29
32
|
ArdiumHorizontalFormFieldComponent,
|
|
33
|
+
ArdiumFormFieldNativeInputAdapterDirective,
|
|
30
34
|
ArdiumLabelComponent,
|
|
31
35
|
ArdiumHintComponent,
|
|
32
36
|
ArdiumErrorComponent,
|
|
@@ -35,10 +39,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
35
39
|
exports: [
|
|
36
40
|
ArdiumFormFieldComponent,
|
|
37
41
|
ArdiumHorizontalFormFieldComponent,
|
|
42
|
+
ArdiumFormFieldNativeInputAdapterDirective,
|
|
38
43
|
ArdiumLabelComponent,
|
|
39
44
|
ArdiumHintComponent,
|
|
40
45
|
ArdiumErrorComponent,
|
|
41
46
|
],
|
|
42
47
|
}]
|
|
43
48
|
}] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBcUIvRCxNQUFNLE9BQU8scUJBQXFCOytHQUFyQixxQkFBcUI7Z0hBQXJCLHFCQUFxQixpQkFqQjlCLHdCQUF3QjtZQUN4QixrQ0FBa0M7WUFDbEMsMENBQTBDO1lBQzFDLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIsb0JBQW9CLGFBRVosWUFBWSxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixhQUUvRCx3QkFBd0I7WUFDeEIsa0NBQWtDO1lBQ2xDLDBDQUEwQztZQUMxQyxvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLG9CQUFvQjtnSEFHWCxxQkFBcUIsWUFWdEIsWUFBWTs7NEZBVVgscUJBQXFCO2tCQW5CakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osd0JBQXdCO3dCQUN4QixrQ0FBa0M7d0JBQ2xDLDBDQUEwQzt3QkFDMUMsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixDQUFDO29CQUNsRSxPQUFPLEVBQUU7d0JBQ1Asd0JBQXdCO3dCQUN4QixrQ0FBa0M7d0JBQ2xDLDBDQUEwQzt3QkFDMUMsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLG9CQUFvQjtxQkFDckI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcmRpdW1FcnJvckNvbXBvbmVudCB9IGZyb20gJy4vZXJyb3IvZXJyb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXJkaXVtRXJyb3JEaXJlY3RpdmUgfSBmcm9tICcuL2Vycm9yL2Vycm9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEFyZGl1bUZvcm1GaWVsZE5hdGl2ZUlucHV0QWRhcHRlckRpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybS1maWVsZC1uYXRpdmUtaW5wdXRzJztcclxuaW1wb3J0IHsgQXJkaXVtRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFyZGl1bUhpbnRDb21wb25lbnQgfSBmcm9tICcuL2hpbnQvaGludC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcmRpdW1IaW50RGlyZWN0aXZlIH0gZnJvbSAnLi9oaW50L2hpbnQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQXJkaXVtSG9yaXpvbnRhbEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vaG9yaXpvbnRhbC1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFyZGl1bUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9sYWJlbC9sYWJlbC5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFyZGl1bUZvcm1GaWVsZENvbXBvbmVudCxcclxuICAgIEFyZGl1bUhvcml6b250YWxGb3JtRmllbGRDb21wb25lbnQsXHJcbiAgICBBcmRpdW1Gb3JtRmllbGROYXRpdmVJbnB1dEFkYXB0ZXJEaXJlY3RpdmUsXHJcbiAgICBBcmRpdW1MYWJlbENvbXBvbmVudCxcclxuICAgIEFyZGl1bUhpbnRDb21wb25lbnQsXHJcbiAgICBBcmRpdW1FcnJvckNvbXBvbmVudCxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFyZGl1bUhpbnREaXJlY3RpdmUsIEFyZGl1bUVycm9yRGlyZWN0aXZlXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBBcmRpdW1Gb3JtRmllbGRDb21wb25lbnQsXHJcbiAgICBBcmRpdW1Ib3Jpem9udGFsRm9ybUZpZWxkQ29tcG9uZW50LFxyXG4gICAgQXJkaXVtRm9ybUZpZWxkTmF0aXZlSW5wdXRBZGFwdGVyRGlyZWN0aXZlLFxyXG4gICAgQXJkaXVtTGFiZWxDb21wb25lbnQsXHJcbiAgICBBcmRpdW1IaW50Q29tcG9uZW50LFxyXG4gICAgQXJkaXVtRXJyb3JDb21wb25lbnQsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bUZvcm1GaWVsZE1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -1,33 +1,12 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component,
|
|
2
|
-
import {
|
|
3
|
-
import { _FormFieldComponentBase } from '../_internal/form-field-component';
|
|
4
|
-
import { SimpleOneAxisAlignment } from './../types/alignment.types';
|
|
5
|
-
import { ArdiumErrorDirective } from './error/error.directive';
|
|
6
|
-
import { ARD_FORM_FIELD_DEFAULTS } from './form-field.defaults';
|
|
7
|
-
import { ArdiumHintDirective } from './hint/hint.directive';
|
|
8
|
-
import { ArdiumLabelComponent } from './label/label.component';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { _FormFieldBase } from './form-field-base';
|
|
9
3
|
import * as i0 from "@angular/core";
|
|
10
|
-
export class ArdiumHorizontalFormFieldComponent {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.alignHintToLeftByDefault = this._DEFAULTS.defaultHintAlign === SimpleOneAxisAlignment.Left;
|
|
14
|
-
this.control = contentChild(_FormFieldComponentBase);
|
|
15
|
-
this.label = contentChild(ArdiumLabelComponent);
|
|
16
|
-
this.hints = contentChildren(ArdiumHintDirective);
|
|
17
|
-
this.errors = contentChildren(ArdiumErrorDirective);
|
|
18
|
-
this.hasAnyError = computed(() => this.errors()?.length > 0);
|
|
19
|
-
this.reserveHintLine = input(this._DEFAULTS.reserveHintLine, { transform: v => coerceBooleanProperty(v) });
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() {
|
|
22
|
-
if (!this.control()) {
|
|
23
|
-
throw new Error(`ARD-FT5110: Form field component requires any control (input) to be present within the element. Found none.`);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumHorizontalFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumHorizontalFormFieldComponent, selector: "ard-horizontal-form-field", inputs: { reserveHintLine: { classPropertyName: "reserveHintLine", publicName: "reserveHintLine", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "control", first: true, predicate: _FormFieldComponentBase, descendants: true, isSignal: true }, { propertyName: "label", first: true, predicate: ArdiumLabelComponent, descendants: true, isSignal: true }, { propertyName: "hints", predicate: ArdiumHintDirective, isSignal: true }, { propertyName: "errors", predicate: ArdiumErrorDirective, isSignal: true }], ngImport: i0, template: "<div\r\n class=\"ard-horizontal-form-field\"\r\n [class.ard-form-field__with-error]=\"control()?.hasError()\"\r\n [class.ard-form-field__is-success]=\"control()?.isSuccess()\"\r\n [class.ard-form-field__control-disabled]=\"control()?.disabled()\"\r\n>\r\n <div class=\"ard-form-field__label-container\">\r\n <label\r\n class=\"ard-label\"\r\n [attr.for]=\"control()?.htmlId()\"\r\n >\r\n <ng-content select=\"ard-label, [ard-label]\" />\r\n </label>\r\n </div>\r\n <div class=\"ard-form-field__non-label\">\r\n <div class=\"ard-form-field__input\">\r\n <ng-content />\r\n </div>\r\n <div\r\n class=\"ard-form-field__hints\"\r\n [class.ard-form-field__reserve-hint-line]=\"reserveHintLine()\"\r\n [class.ard-form-field__hints-default-left]=\"alignHintToLeftByDefault\"\r\n >\r\n @if (hasAnyError()) {\r\n <div class=\"ard-form-field__error\">\r\n <ng-content select=\"ard-error, [ard-error]\" />\r\n </div>\r\n } @else {\r\n <div class=\"ard-form-field__hints-left\">\r\n <div class=\"ard-form-field__default-hint\">\r\n <ng-content select=\"ard-hint:not([left]):not([right]), [ard-hint]:not([left]):not([right])\" />\r\n </div>\r\n <ng-content select=\"ard-hint[left], [ard-hint][left]\" />\r\n </div>\r\n <div class=\"ard-form-field__hints-right\">\r\n <div class=\"ard-form-field__default-hint\">\r\n <ng-content select=\"ard-hint:not([left]):not([right]), [ard-hint]:not([left]):not([right])\" />\r\n </div>\r\n <ng-content select=\"ard-hint[right], [ard-hint][right]\" />\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}.ard-horizontal-form-field{display:flex}.ard-form-field__hints{display:flex;justify-content:space-between}.ard-form-field__hints>*{display:flex;flex-direction:column}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
4
|
+
export class ArdiumHorizontalFormFieldComponent extends _FormFieldBase {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumHorizontalFormFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumHorizontalFormFieldComponent, selector: "ard-horizontal-form-field", usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"ard-horizontal-form-field\"\r\n [class.ard-form-field__with-error]=\"controlHasError\"\r\n [class.ard-form-field__is-success]=\"controlIsSuccess\"\r\n [class.ard-form-field__control-disabled]=\"controlDisabled\"\r\n>\r\n <div class=\"ard-form-field__label-container\">\r\n <label\r\n class=\"ard-form-field__label\"\r\n [attr.for]=\"controlHtmlId\"\r\n >\r\n <ng-content select=\"ard-label, [ard-label]\" />\r\n </label>\r\n </div>\r\n <div class=\"ard-form-field__non-label\">\r\n <div class=\"ard-form-field__input\">\r\n <ng-content />\r\n </div>\r\n <div\r\n class=\"ard-form-field__hints\"\r\n [class.ard-form-field__reserve-hint-line]=\"reserveHintLine()\"\r\n [class.ard-form-field__hints-default-left]=\"alignHintToLeftByDefault\"\r\n >\r\n @if (hasAnyError()) {\r\n <div class=\"ard-form-field__error\">\r\n <ng-content select=\"ard-error, [ard-error]\" />\r\n </div>\r\n } @else {\r\n <div class=\"ard-form-field__hints-left\">\r\n <div class=\"ard-form-field__default-hint\">\r\n <ng-content select=\"ard-hint:not([left]):not([right]), [ard-hint]:not([left]):not([right])\" />\r\n </div>\r\n <ng-content select=\"ard-hint[left], [ard-hint][left]\" />\r\n </div>\r\n <div class=\"ard-form-field__hints-right\">\r\n <div class=\"ard-form-field__default-hint\">\r\n <ng-content select=\"ard-hint:not([left]):not([right]), [ard-hint]:not([left]):not([right])\" />\r\n </div>\r\n <ng-content select=\"ard-hint[right], [ard-hint][right]\" />\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}.ard-horizontal-form-field{display:flex}.ard-form-field__hints{display:flex;justify-content:space-between}.ard-form-field__hints>*{display:flex;flex-direction:column}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
28
7
|
}
|
|
29
8
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumHorizontalFormFieldComponent, decorators: [{
|
|
30
9
|
type: Component,
|
|
31
|
-
args: [{ selector: 'ard-horizontal-form-field', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"ard-horizontal-form-field\"\r\n [class.ard-form-field__with-error]=\"
|
|
10
|
+
args: [{ selector: 'ard-horizontal-form-field', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"ard-horizontal-form-field\"\r\n [class.ard-form-field__with-error]=\"controlHasError\"\r\n [class.ard-form-field__is-success]=\"controlIsSuccess\"\r\n [class.ard-form-field__control-disabled]=\"controlDisabled\"\r\n>\r\n <div class=\"ard-form-field__label-container\">\r\n <label\r\n class=\"ard-form-field__label\"\r\n [attr.for]=\"controlHtmlId\"\r\n >\r\n <ng-content select=\"ard-label, [ard-label]\" />\r\n </label>\r\n </div>\r\n <div class=\"ard-form-field__non-label\">\r\n <div class=\"ard-form-field__input\">\r\n <ng-content />\r\n </div>\r\n <div\r\n class=\"ard-form-field__hints\"\r\n [class.ard-form-field__reserve-hint-line]=\"reserveHintLine()\"\r\n [class.ard-form-field__hints-default-left]=\"alignHintToLeftByDefault\"\r\n >\r\n @if (hasAnyError()) {\r\n <div class=\"ard-form-field__error\">\r\n <ng-content select=\"ard-error, [ard-error]\" />\r\n </div>\r\n } @else {\r\n <div class=\"ard-form-field__hints-left\">\r\n <div class=\"ard-form-field__default-hint\">\r\n <ng-content select=\"ard-hint:not([left]):not([right]), [ard-hint]:not([left]):not([right])\" />\r\n </div>\r\n <ng-content select=\"ard-hint[left], [ard-hint][left]\" />\r\n </div>\r\n <div class=\"ard-form-field__hints-right\">\r\n <div class=\"ard-form-field__default-hint\">\r\n <ng-content select=\"ard-hint:not([left]):not([right]), [ard-hint]:not([left]):not([right])\" />\r\n </div>\r\n <ng-content select=\"ard-hint[right], [ard-hint][right]\" />\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}.ard-horizontal-form-field{display:flex}.ard-form-field__hints{display:flex;justify-content:space-between}.ard-form-field__hints>*{display:flex;flex-direction:column}\n"] }]
|
|
32
11
|
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9yaXpvbnRhbC1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvZm9ybS1maWVsZC9ob3Jpem9udGFsLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9mb3JtLWZpZWxkL2hvcml6b250YWwtZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFTbkQsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLGNBQWM7K0dBQXpELGtDQUFrQzttR0FBbEMsa0NBQWtDLHdGQ1YvQywrckRBNENBOzs0RkRsQ2Esa0NBQWtDO2tCQVA5QyxTQUFTOytCQUNFLDJCQUEyQixpQkFHdEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgX0Zvcm1GaWVsZEJhc2UgfSBmcm9tICcuL2Zvcm0tZmllbGQtYmFzZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FyZC1ob3Jpem9udGFsLWZvcm0tZmllbGQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ob3Jpem9udGFsLWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9ob3Jpem9udGFsLWZvcm0tZmllbGQuY29tcG9uZW50LnNjc3MnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1Ib3Jpem9udGFsRm9ybUZpZWxkQ29tcG9uZW50IGV4dGVuZHMgX0Zvcm1GaWVsZEJhc2UgaW1wbGVtZW50cyBPbkluaXQge31cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiYXJkLWhvcml6b250YWwtZm9ybS1maWVsZFwiXHJcbiAgW2NsYXNzLmFyZC1mb3JtLWZpZWxkX193aXRoLWVycm9yXT1cImNvbnRyb2xIYXNFcnJvclwiXHJcbiAgW2NsYXNzLmFyZC1mb3JtLWZpZWxkX19pcy1zdWNjZXNzXT1cImNvbnRyb2xJc1N1Y2Nlc3NcIlxyXG4gIFtjbGFzcy5hcmQtZm9ybS1maWVsZF9fY29udHJvbC1kaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWRcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImFyZC1mb3JtLWZpZWxkX19sYWJlbC1jb250YWluZXJcIj5cclxuICAgIDxsYWJlbFxyXG4gICAgICBjbGFzcz1cImFyZC1mb3JtLWZpZWxkX19sYWJlbFwiXHJcbiAgICAgIFthdHRyLmZvcl09XCJjb250cm9sSHRtbElkXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXJkLWxhYmVsLCBbYXJkLWxhYmVsXVwiIC8+XHJcbiAgICA8L2xhYmVsPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhcmQtZm9ybS1maWVsZF9fbm9uLWxhYmVsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGRfX2lucHV0XCI+XHJcbiAgICAgIDxuZy1jb250ZW50IC8+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJhcmQtZm9ybS1maWVsZF9faGludHNcIlxyXG4gICAgICBbY2xhc3MuYXJkLWZvcm0tZmllbGRfX3Jlc2VydmUtaGludC1saW5lXT1cInJlc2VydmVIaW50TGluZSgpXCJcclxuICAgICAgW2NsYXNzLmFyZC1mb3JtLWZpZWxkX19oaW50cy1kZWZhdWx0LWxlZnRdPVwiYWxpZ25IaW50VG9MZWZ0QnlEZWZhdWx0XCJcclxuICAgID5cclxuICAgICAgQGlmIChoYXNBbnlFcnJvcigpKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1mb3JtLWZpZWxkX19lcnJvclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXJkLWVycm9yLCBbYXJkLWVycm9yXVwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZm9ybS1maWVsZF9faGludHMtbGVmdFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1mb3JtLWZpZWxkX19kZWZhdWx0LWhpbnRcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXJkLWhpbnQ6bm90KFtsZWZ0XSk6bm90KFtyaWdodF0pLCBbYXJkLWhpbnRdOm5vdChbbGVmdF0pOm5vdChbcmlnaHRdKVwiIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFyZC1oaW50W2xlZnRdLCBbYXJkLWhpbnRdW2xlZnRdXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGRfX2hpbnRzLXJpZ2h0XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGRfX2RlZmF1bHQtaGludFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhcmQtaGludDpub3QoW2xlZnRdKTpub3QoW3JpZ2h0XSksIFthcmQtaGludF06bm90KFtsZWZ0XSk6bm90KFtyaWdodF0pXCIgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXJkLWhpbnRbcmlnaHRdLCBbYXJkLWhpbnRdW3JpZ2h0XVwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export * from './error/error.component';
|
|
2
2
|
export * from './error/error.directive';
|
|
3
|
+
export * from './form-field-native-inputs';
|
|
3
4
|
export * from './form-field.component';
|
|
4
5
|
export * from './form-field.module';
|
|
5
6
|
export * from './hint/hint.component';
|
|
6
7
|
export * from './hint/hint.directive';
|
|
7
8
|
export * from './horizontal-form-field.component';
|
|
8
9
|
export * from './label/label.component';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2Zvcm0tZmllbGQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Vycm9yL2Vycm9yLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3IvZXJyb3IuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLW5hdGl2ZS1pbnB1dHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaGludC9oaW50LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaGludC9oaW50LmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaG9yaXpvbnRhbC1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGFiZWwvbGFiZWwuY29tcG9uZW50JztcclxuXHJcbiJdfQ==
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { Component, effect, input } from '@angular/core';
|
|
1
|
+
import { Component, effect, inject, input } from '@angular/core';
|
|
2
2
|
import { coerceBooleanProperty } from '@ardium-ui/devkit';
|
|
3
|
+
import { ARD_FORM_FIELD_DEFAULTS } from '../form-field.defaults';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export class ArdiumLabelComponent {
|
|
5
6
|
constructor() {
|
|
7
|
+
this._DEFAULTS = inject(ARD_FORM_FIELD_DEFAULTS);
|
|
6
8
|
this.required = input(false, { transform: v => coerceBooleanProperty(v) });
|
|
7
9
|
this.optional = input(false, { transform: v => coerceBooleanProperty(v) });
|
|
10
|
+
this.requiredText = input(this._DEFAULTS.labelRequiredText);
|
|
11
|
+
this.optionalText = input(this._DEFAULTS.labelOptionalText);
|
|
8
12
|
effect(() => {
|
|
9
13
|
if (this.required() && this.optional()) {
|
|
10
14
|
console.error(`ARD-NF5110: Cannot set a form field label to be both required and optional.`);
|
|
@@ -12,10 +16,12 @@ export class ArdiumLabelComponent {
|
|
|
12
16
|
});
|
|
13
17
|
}
|
|
14
18
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumLabelComponent, selector: "ard-label", inputs: { required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "optional", isSignal: true, isRequired: false, transformFunction: null }, requiredText: { classPropertyName: "requiredText", publicName: "requiredText", isSignal: true, isRequired: false, transformFunction: null }, optionalText: { classPropertyName: "optionalText", publicName: "optionalText", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ard-label": "true" } }, ngImport: i0, template: "<div\r\n class=\"ard-label__text\"\r\n [class.ard-label__required]=\"required()\"\r\n [class.ard-label__optional]=\"optional()\"\r\n>\r\n <ng-content />\r\n <span class=\"ard-label__required-optional-text\">\r\n @if (required() && !optional()) {\r\n {{ requiredText() }}\r\n } @else if (optional() && !required()) {\r\n {{ optionalText() }}\r\n }\r\n </span>\r\n</div>\r\n" }); }
|
|
16
20
|
}
|
|
17
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumLabelComponent, decorators: [{
|
|
18
22
|
type: Component,
|
|
19
|
-
args: [{ selector: 'ard-label',
|
|
23
|
+
args: [{ selector: 'ard-label', host: {
|
|
24
|
+
'[class.ard-label]': 'true',
|
|
25
|
+
}, template: "<div\r\n class=\"ard-label__text\"\r\n [class.ard-label__required]=\"required()\"\r\n [class.ard-label__optional]=\"optional()\"\r\n>\r\n <ng-content />\r\n <span class=\"ard-label__required-optional-text\">\r\n @if (required() && !optional()) {\r\n {{ requiredText() }}\r\n } @else if (optional() && !required()) {\r\n {{ optionalText() }}\r\n }\r\n </span>\r\n</div>\r\n" }]
|
|
20
26
|
}], ctorParameters: () => [] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9mb3JtLWZpZWxkL2xhYmVsL2xhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvZm9ybS1maWVsZC9sYWJlbC9sYWJlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQVNqRSxNQUFNLE9BQU8sb0JBQW9CO0lBUy9CO1FBUm1CLGNBQVMsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUV0RCxhQUFRLEdBQUcsS0FBSyxDQUFlLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRixhQUFRLEdBQUcsS0FBSyxDQUFlLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVwRixpQkFBWSxHQUFHLEtBQUssQ0FBUyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0QsaUJBQVksR0FBRyxLQUFLLENBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBR3RFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFDdkMsT0FBTyxDQUFDLEtBQUssQ0FBQyw2RUFBNkUsQ0FBQyxDQUFDO1lBQy9GLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBZlUsb0JBQW9CO21HQUFwQixvQkFBb0IsOG9CQ1hqQywyWUFjQTs7NEZESGEsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLFdBQVcsUUFFZjt3QkFDSixtQkFBbUIsRUFBRSxNQUFNO3FCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcclxuaW1wb3J0IHsgQVJEX0ZPUk1fRklFTERfREVGQVVMVFMgfSBmcm9tICcuLi9mb3JtLWZpZWxkLmRlZmF1bHRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXJkLWxhYmVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGFiZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGhvc3Q6IHtcclxuICAgICdbY2xhc3MuYXJkLWxhYmVsXSc6ICd0cnVlJyxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtTGFiZWxDb21wb25lbnQge1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBfREVGQVVMVFMgPSBpbmplY3QoQVJEX0ZPUk1fRklFTERfREVGQVVMVFMpO1xyXG5cclxuICByZWFkb25seSByZXF1aXJlZCA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuICByZWFkb25seSBvcHRpb25hbCA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgcmVxdWlyZWRUZXh0ID0gaW5wdXQ8c3RyaW5nPih0aGlzLl9ERUZBVUxUUy5sYWJlbFJlcXVpcmVkVGV4dCk7XHJcbiAgcmVhZG9ubHkgb3B0aW9uYWxUZXh0ID0gaW5wdXQ8c3RyaW5nPih0aGlzLl9ERUZBVUxUUy5sYWJlbE9wdGlvbmFsVGV4dCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMucmVxdWlyZWQoKSAmJiB0aGlzLm9wdGlvbmFsKCkpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGBBUkQtTkY1MTEwOiBDYW5ub3Qgc2V0IGEgZm9ybSBmaWVsZCBsYWJlbCB0byBiZSBib3RoIHJlcXVpcmVkIGFuZCBvcHRpb25hbC5gKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImFyZC1sYWJlbF9fdGV4dFwiXHJcbiAgW2NsYXNzLmFyZC1sYWJlbF9fcmVxdWlyZWRdPVwicmVxdWlyZWQoKVwiXHJcbiAgW2NsYXNzLmFyZC1sYWJlbF9fb3B0aW9uYWxdPVwib3B0aW9uYWwoKVwiXHJcbj5cclxuICA8bmctY29udGVudCAvPlxyXG4gIDxzcGFuIGNsYXNzPVwiYXJkLWxhYmVsX19yZXF1aXJlZC1vcHRpb25hbC10ZXh0XCI+XHJcbiAgICBAaWYgKHJlcXVpcmVkKCkgJiYgIW9wdGlvbmFsKCkpIHtcclxuICAgIHt7IHJlcXVpcmVkVGV4dCgpIH19XHJcbiAgICB9IEBlbHNlIGlmIChvcHRpb25hbCgpICYmICFyZXF1aXJlZCgpKSB7XHJcbiAgICB7eyBvcHRpb25hbFRleHQoKSB9fVxyXG4gICAgfVxyXG4gIDwvc3Bhbj5cclxuPC9kaXY+XHJcbiJdfQ==
|