@ardium-ui/ui 4.2.2 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/_internal/form-field-component.mjs +1 -1
- package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +2 -2
- package/esm2022/lib/_internal/selectable-list-component.mjs +1 -1
- 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/file-inputs/file-input-base.mjs +2 -3
- 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 +9 -6
- 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 +10 -1
- package/esm2022/lib/segment/segment.component.mjs +4 -4
- package/esm2022/lib/select/select.component.mjs +4 -3
- package/fesm2022/ardium-ui-ui.mjs +175 -56
- 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 +2 -1
- package/lib/calendar/calendar.component.d.ts +2 -2
- package/lib/calendar/calendar.defaults.d.ts +2 -2
- package/lib/file-inputs/file-input-base.d.ts +0 -1
- 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/lib/inputs/date-input/date-input.component.d.ts +1 -0
- 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/prebuilt-themes/default/inputs/date-input.css +1 -0
- package/prebuilt-themes/default/inputs/date-input.css.map +1 -1
- package/themes/default/buttons/button.scss +2 -2
- package/themes/default/form-field.scss +16 -0
- package/themes/default/inputs/date-input.scss +1 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { computed, Directive, inject, Input, input, output, signal, viewChild } from '@angular/core';
|
|
2
2
|
import { coerceBooleanProperty, coerceNumberProperty, FileSystemMethod, FileSystemService, } from '@ardium-ui/devkit';
|
|
3
3
|
import { isDefined } from 'simple-bool';
|
|
4
4
|
import { _FormFieldComponentBase } from '../_internal/form-field-component';
|
|
@@ -8,7 +8,6 @@ export class _FileInputComponentBase extends _FormFieldComponentBase {
|
|
|
8
8
|
constructor() {
|
|
9
9
|
super(...arguments);
|
|
10
10
|
this._fileSystemService = inject(FileSystemService);
|
|
11
|
-
this._changeDetectorRef = inject(ChangeDetectorRef);
|
|
12
11
|
this.fileInputEl = viewChild('fileInput');
|
|
13
12
|
this.name = input('');
|
|
14
13
|
this._wasViewInit = false;
|
|
@@ -331,4 +330,4 @@ function isMimeTypeMatching(file, mimeType) {
|
|
|
331
330
|
}
|
|
332
331
|
return file.type === mimeType;
|
|
333
332
|
}
|
|
334
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9maWxlLWlucHV0cy9maWxlLWlucHV0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixpQkFBaUIsR0FFbEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRzVFLE9BQU8sRUFBeUIsMkJBQTJCLEVBQXNCLE1BQU0sb0JBQW9CLENBQUM7O0FBRzVHLE1BQU0sT0FBZ0IsdUJBQXdCLFNBQVEsdUJBQXVCO0lBRDdFOztRQUltQix1QkFBa0IsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUl2RCxnQkFBVyxHQUFHLFNBQVMsQ0FBK0IsV0FBVyxDQUFDLENBQUM7UUFFbkUsU0FBSSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQVl4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQU8vQixjQUFjO1FBQ0wsWUFBTyxHQUFHLEtBQUssQ0FBZSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFNUYsWUFBWTtRQUNILGFBQVEsR0FBRyxLQUFLLENBQWUs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O1FBQ3hDLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckIsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELE9BQU8sQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNyQyxDQUFDOytHQWpXbUIsdUJBQXVCO21HQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRDVDLFNBQVM7OEJBZ0dKLEtBQUs7c0JBRFIsS0FBSzs7QUFzUVIsU0FBUyxrQkFBa0IsQ0FBQyxJQUFVLEVBQUUsUUFBZ0I7SUFDdEQsSUFBSSxRQUFRLEtBQUssR0FBRztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ2xDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzVCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIGNvbXB1dGVkLFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIGluamVjdCxcclxuICBJbnB1dCxcclxuICBpbnB1dCxcclxuICBPbkluaXQsXHJcbiAgb3V0cHV0LFxyXG4gIHNpZ25hbCxcclxuICB2aWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgY29lcmNlQm9vbGVhblByb3BlcnR5LFxyXG4gIGNvZXJjZU51bWJlclByb3BlcnR5LFxyXG4gIEZpbGVTeXN0ZW1NZXRob2QsXHJcbiAgRmlsZVN5c3RlbVNlcnZpY2UsXHJcbiAgRmlsZVN5c3RlbVN0YXJ0RGlyZWN0b3J5LFxyXG59IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcclxuaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xyXG5pbXBvcnQgeyBfRm9ybUZpZWxkQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uL19pbnRlcm5hbC9mb3JtLWZpZWxkLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vdHlwZXMvdXRpbGl0eS50eXBlcyc7XHJcbmltcG9ydCB7IF9GaWxlSW5wdXRCYXNlRGVmYXVsdHMgfSBmcm9tICcuL2ZpbGUtaW5wdXQtYmFzZS5kZWZhdWx0cyc7XHJcbmltcG9ydCB7IEZpbGVJbnB1dEZhaWxlZFVwbG9hZCwgRmlsZUlucHV0RmFpbGVkVXBsb2FkUmVhc29uLCBGaWxlSW5wdXRGaWxlVHlwZXMgfSBmcm9tICcuL2ZpbGUtaW5wdXQtdHlwZXMnO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBfRmlsZUlucHV0Q29tcG9uZW50QmFzZSBleHRlbmRzIF9Gb3JtRmllbGRDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX0RFRkFVTFRTITogX0ZpbGVJbnB1dEJhc2VEZWZhdWx0cztcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsZVN5c3RlbVNlcnZpY2UgPSBpbmplY3QoRmlsZVN5c3RlbVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgYWJzdHJhY3QgcmVhZG9ubHkgY29tcG9uZW50SWQ6IHN0cmluZztcclxuXHJcbiAgcmVhZG9ubHkgZmlsZUlucHV0RWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4oJ2ZpbGVJbnB1dCcpO1xyXG5cclxuICByZWFkb25seSBuYW1lID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIGlmICghKHdpbmRvdy5GaWxlICYmIHdpbmRvdy5GaWxlUmVhZGVyICYmIHdpbmRvdy5CbG9iKSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgIG5ldyBFcnJvcihcclxuICAgICAgICAgIGBBUkQtRlQke3RoaXMuY29tcG9uZW50SWR9MDogQ2Fubm90IHVzZSBBcmRpdW0gVUkgZmlsZSBmZWF0dXJlcyBiZWNhdXNlIHRoaXMgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGZpbGUgaGFuZGxpbmchYFxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJvdGVjdGVkIF93YXNWaWV3SW5pdCA9IGZhbHNlO1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3dhc1ZpZXdJbml0ID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLl91cGRhdGVFbGVtZW50VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIC8vISBhcHBlYXJhbmNlXHJcbiAgcmVhZG9ubHkgY29tcGFjdCA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgLy8hIHNldHRpbmdzXHJcbiAgcmVhZG9ubHkgbXVsdGlwbGUgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcbiAgcmVhZG9ubHkgbWF4RmlsZXMgPSBpbnB1dDxOdWxsYWJsZTxudW1iZXI+LCBhbnk+KG51bGwsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIG51bGwpIH0pO1xyXG5cclxuICByZWFkb25seSBtYXhGaWxlc1dpdGhNdWx0aXBsZSA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4gKHRoaXMubXVsdGlwbGUoKSA/IHRoaXMubWF4RmlsZXMoKSA/PyBJbmZpbml0eSA6IDEpKTtcclxuXHJcbiAgcmVhZG9ubHkgYmxvY2tBZnRlclVwbG9hZCA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgZ2V0IHNob3VsZEJlQmxvY2tlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmJsb2NrQWZ0ZXJVcGxvYWQoKSAmJiBpc0RlZmluZWQodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBtYXhGaWxlU2l6ZUJ5dGVzID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPiwgYW55PihudWxsLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCBudWxsKSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgYWNjZXB0ID0gaW5wdXQ8c3RyaW5nIHwgc3RyaW5nW10+KCcqJyk7XHJcbiAgcmVhZG9ubHkgZGlyZWN0b3J5SWQgPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IHN0YXJ0RGlyZWN0b3J5ID0gaW5wdXQ8TnVsbGFibGU8RmlsZVN5c3RlbVN0YXJ0RGlyZWN0b3J5Pj4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBmaWxlVHlwZXMgPSBpbnB1dDxOdWxsYWJsZTxGaWxlSW5wdXRGaWxlVHlwZXM+Pih1bmRlZmluZWQpO1xyXG5cclxuICByZWFkb25seSBhY2NlcHRTdHJpbmcgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcclxuICAgIGNvbnN0IHR5cGVzID0gdGhpcy5maWxlVHlwZXMoKTtcclxuICAgIGlmICh0eXBlcykge1xyXG4gICAgICBjb25zdCBhY2NlcHRFbnRyaWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IHR5cGUgb2YgdHlwZXMpIHtcclxuICAgICAgICBpZiAodHlwZS5hY2NlcHQpIHtcclxuICAgICAgICAgIGZvciAoY29uc3QgbWltZVR5cGUgaW4gdHlwZS5hY2NlcHQpIHtcclxuICAgICAgICAgICAgY29uc3QgZXh0ZW5zaW9ucyA9IHR5cGUuYWNjZXB0W21pbWVUeXBlXTtcclxuICAgICAgICAgICAgaWYgKGV4dGVuc2lvbnMgJiYgZXh0ZW5zaW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgYWNjZXB0RW50cmllcy5wdXNoKC4uLmV4dGVuc2lvbnMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBhY2NlcHRFbnRyaWVzLmpvaW4oJywnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBhY2NlcHQgPSB0aGlzLmFjY2VwdCgpO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYWNjZXB0KSkge1xyXG4gICAgICByZXR1cm4gYWNjZXB0LmpvaW4oJywnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYWNjZXB0O1xyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBhY2NlcHRlZE1pbWVUeXBlcyA9IGNvbXB1dGVkPHsgbWltZVR5cGU6IHN0cmluZzsgZXh0ZW5zaW9uczogU2V0PHN0cmluZz4gfVtdIHwgbnVsbD4oKCkgPT4ge1xyXG4gICAgY29uc3QgdHlwZXMgPSB0aGlzLmZpbGVUeXBlcygpO1xyXG4gICAgaWYgKHR5cGVzKSB7XHJcbiAgICAgIGNvbnN0IG1pbWVUeXBlczogeyBtaW1lVHlwZTogc3RyaW5nOyBleHRlbnNpb25zOiBTZXQ8c3RyaW5nPiB9W10gPSBbXTtcclxuICAgICAgZm9yIChjb25zdCB0eXBlIG9mIHR5cGVzKSB7XHJcbiAgICAgICAgaWYgKHR5cGUuYWNjZXB0KSB7XHJcbiAgICAgICAgICBmb3IgKGNvbnN0IG1pbWVUeXBlIGluIHR5cGUuYWNjZXB0KSB7XHJcbiAgICAgICAgICAgIG1pbWVUeXBlcy5wdXNoKHsgbWltZVR5cGUsIGV4dGVuc2lvbnM6IG5ldyBTZXQodHlwZS5hY2NlcHRbbWltZVR5cGVdKSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG1pbWVUeXBlcztcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH0pO1xyXG5cclxuICAvLyEgdmFsdWVcclxuICBwcm90ZWN0ZWQgX3ZhbHVlOiBGaWxlW10gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKVxyXG4gIGdldCB2YWx1ZSgpOiBGaWxlW10gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcbiAgc2V0IHZhbHVlKHY6IEZpbGUgfCBGaWxlW10gfCBudWxsKSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUodik7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG91dHB1dDxGaWxlW10gfCBudWxsPigpO1xyXG4gIHJlYWRvbmx5IGNoYW5nZUV2ZW50ID0gb3V0cHV0PEZpbGVbXSB8IG51bGw+KHsgYWxpYXM6ICdjaGFuZ2UnIH0pO1xyXG4gIHJlYWRvbmx5IGRyYWdGaWxlc0V2ZW50ID0gb3V0cHV0PEZpbGVbXT4oeyBhbGlhczogJ2RyYWdGaWxlcycgfSk7XHJcbiAgcmVhZG9ubHkgZmFpbGVkVXBsb2FkRXZlbnQgPSBvdXRwdXQ8RmlsZUlucHV0RmFpbGVkVXBsb2FkW10+KHsgYWxpYXM6ICdmYWlsZWRVcGxvYWQnIH0pO1xyXG5cclxuICBwcm90ZWN0ZWQgX3ZhbHVlQmVmb3JlSW5pdDogRmlsZVtdIHwgbnVsbCA9IG51bGw7XHJcbiAgd3JpdGVWYWx1ZSh2OiBGaWxlIHwgRmlsZVtdIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy5fd3JpdGVWYWx1ZSh2LCBmYWxzZSk7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfd3JpdGVWYWx1ZSh2OiBGaWxlIHwgRmlsZVtdIHwgbnVsbCwgZW1pdEV2ZW50cyA9IHRydWUpOiB2b2lkIHtcclxuICAgIGlmICghKHYgaW5zdGFuY2VvZiBGaWxlKSAmJiAhQXJyYXkuaXNBcnJheSh2KSAmJiB2ICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgICAgbmV3IEVycm9yKGBBUkQtRlQke3RoaXMuY29tcG9uZW50SWR9MTogPGFyZC1maWxlLWlucHV0PidzIHZhbHVlIG11c3QgYmUgYSBGaWxlLCBhbiBhcnJheSBvZiBGaWxlcywgb3IgbnVsbC5gKVxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodiBpbnN0YW5jZW9mIEZpbGUpIHtcclxuICAgICAgdiA9IFt2XTtcclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KHYpICYmICF0aGlzLm11bHRpcGxlKCkgJiYgdi5sZW5ndGggPiAxKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBgQVJELVdBJHt0aGlzLmNvbXBvbmVudElkfTI6IDxhcmQtZmlsZS1pbnB1dD4gcmVjZWl2ZWQgYW4gYXJyYXkgb2YgZmlsZXMgYnV0IHRoZSAnbXVsdGlwbGUnIGlucHV0IGlzIG5vdCBzZXQgdG8gdHJ1ZS4gT25seSB0aGUgZmlyc3QgZmlsZSB3aWxsIGJlIHVzZWQuYFxyXG4gICAgICApO1xyXG4gICAgICB2ID0gW3ZbMF1dO1xyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodikgJiYgdi5sZW5ndGggPT09IDApIHtcclxuICAgICAgdiA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHYgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5jdXJyZW50Vmlld1N0YXRlLnNldCgnaWRsZScpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50Vmlld1N0YXRlLnNldCgndXBsb2FkZWQnKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3ZhbHVlID0gdjtcclxuXHJcbiAgICBpZiAodGhpcy5fd2FzVmlld0luaXQpIHRoaXMuX3VwZGF0ZUVsZW1lbnRWYWx1ZSgpO1xyXG5cclxuICAgIGlmIChlbWl0RXZlbnRzKSB7XHJcbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfZW1pdENoYW5nZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlO1xyXG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odik7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XHJcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodik7XHJcbiAgfVxyXG5cclxuICBvcGVuQnJvd3NlRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLl9maWxlU3lzdGVtU2VydmljZS5pc0ZpbGVTeXN0ZW1BUElTdXBwb3J0ZWQoJ3Nob3dPcGVuRmlsZVBpY2tlcicpICYmXHJcbiAgICAgICh0aGlzLmRpcmVjdG9yeUlkKCkgfHwgdGhpcy5zdGFydERpcmVjdG9yeSgpIHx8IHRoaXMuZmlsZVR5cGVzKCkpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5fZmlsZVN5c3RlbVNlcnZpY2VcclxuICAgICAgICAucmVxdWVzdEZpbGVVcGxvYWQoe1xyXG4gICAgICAgICAgbWV0aG9kOiBGaWxlU3lzdGVtTWV0aG9kLlByZWZlckZpbGVTeXN0ZW0sXHJcbiAgICAgICAgICBtdWx0aXBsZTogdGhpcy5tdWx0aXBsZSgpLFxyXG4gICAgICAgICAgZGlyZWN0b3J5SWQ6IHRoaXMuZGlyZWN0b3J5SWQoKSA/PyB1bmRlZmluZWQsXHJcbiAgICAgICAgICBzdGFydERpcmVjdG9yeTogdGhpcy5zdGFydERpcmVjdG9yeSgpID8/IHVuZGVmaW5lZCxcclxuICAgICAgICAgIHR5cGVzOiB0aGlzLmZpbGVUeXBlcygpID8/IHVuZGVmaW5lZCxcclxuICAgICAgICAgIGFjY2VwdDogdGhpcy5hY2NlcHQoKSA9PT0gJyonID8gdW5kZWZpbmVkIDogdGhpcy5hY2NlcHQoKSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC50aGVuKGZpbGVPckZpbGVzID0+IHtcclxuICAgICAgICAgIGlmICghZmlsZU9yRmlsZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5fd3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50Vmlld1N0YXRlLnNldCgnaWRsZScpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCBmaWxlcyA9IEFycmF5LmlzQXJyYXkoZmlsZU9yRmlsZXMpID8gZmlsZU9yRmlsZXMgOiBbZmlsZU9yRmlsZXNdO1xyXG4gICAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLl93cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRWaWV3U3RhdGUuc2V0KCdpZGxlJyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuX3dyaXRlVmFsdWUoZmlsZXMpO1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50Vmlld1N0YXRlLnNldCgndXBsb2FkZWQnKTtcclxuICAgICAgICAgIC8vIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpbGVJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIC8vISB0ZW1wb3JhcnkgdmFsdWVcclxuICAvL2ZvciBkcmFnIGV2ZW50IGhhbmRsaW5nXHJcbiAgcHJvdGVjdGVkIF9kcmFnZ2VkRmlsZXM6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvLyEgdmlldyBzdGF0ZVxyXG4gIHJlYWRvbmx5IGN1cnJlbnRWaWV3U3RhdGUgPSBzaWduYWw8J2lkbGUnIHwgJ2RyYWdvdmVyJyB8ICd1cGxvYWRlZCc+KCdpZGxlJyk7XHJcbiAgcHJpdmF0ZSBfYmVmb3JlRHJhZ292ZXJTdGF0ZTogJ2lkbGUnIHwgJ3VwbG9hZGVkJyA9ICdpZGxlJztcclxuXHJcbiAgLy8hIGV2ZW50IGhhbmRsZXJzXHJcbiAgb25EcmFnb3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgaWYgKHRoaXMuc2hvdWxkQmVCbG9ja2VkKSB7XHJcbiAgICAgIGlmICghZXZlbnQuZGF0YVRyYW5zZmVyKSByZXR1cm47XHJcblxyXG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdub25lJztcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VycmVudFZpZXdTdGF0ZSgpID09PSAnZHJhZ292ZXInKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fZHJhZ2dlZEZpbGVzID0gdGhpcy5fY291bnREcmFnZW50ZXJGaWxlcyhldmVudC5kYXRhVHJhbnNmZXIpO1xyXG5cclxuICAgIGlmICghdGhpcy5fZHJhZ2dlZEZpbGVzKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fYmVmb3JlRHJhZ292ZXJTdGF0ZSA9IHRoaXMuY3VycmVudFZpZXdTdGF0ZSgpIGFzICdpZGxlJyB8ICd1cGxvYWRlZCc7XHJcbiAgICB0aGlzLmN1cnJlbnRWaWV3U3RhdGUuc2V0KCdkcmFnb3ZlcicpO1xyXG4gIH1cclxuICBvbkRyYWdsZWF2ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNob3VsZEJlQmxvY2tlZCkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFZpZXdTdGF0ZSgpICE9PSAnZHJhZ292ZXInKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5jdXJyZW50Vmlld1N0YXRlLnNldCh0aGlzLl9iZWZvcmVEcmFnb3ZlclN0YXRlKTtcclxuICB9XHJcbiAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2hvdWxkQmVCbG9ja2VkKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgZmlsZWxpc3QgPSBldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzO1xyXG4gICAgaWYgKCFmaWxlbGlzdCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRWaWV3U3RhdGUuc2V0KCdpZGxlJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGZpbGVzID0gQXJyYXkuZnJvbShmaWxlbGlzdCk7XHJcbiAgICBpZiAoIWZpbGVzKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFZpZXdTdGF0ZS5zZXQoJ2lkbGUnKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZmlsdGVyZWRGaWxlczogRmlsZVtdID0gW107XHJcbiAgICBjb25zdCBmYWlsZWRGaWxlczogRmlsZUlucHV0RmFpbGVkVXBsb2FkW10gPSBbXTtcclxuICAgIGNvbnN0IGFjY2VwdGVkTWltZVR5cGVzID0gdGhpcy5hY2NlcHRlZE1pbWVUeXBlcygpO1xyXG4gICAgaWYgKGFjY2VwdGVkTWltZVR5cGVzKSB7XHJcbiAgICAgIGxldCBtaW1lVHlwZU1hdGNoZWQgPSBmYWxzZTtcclxuICAgICAgZmlsZUxvb3A6IGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICAgIGNvbnN0IHsgc2hvdWxkQWNjZXB0LCByZWFzb24gfSA9IHRoaXMuX2ZpbHRlckZpbGVzQmFzZWRPblNpemVBbmRDb3VudChmaWxlLCBmaWx0ZXJlZEZpbGVzLmxlbmd0aCk7XHJcbiAgICAgICAgaWYgKCFzaG91bGRBY2NlcHQpIHtcclxuICAgICAgICAgIGZhaWxlZEZpbGVzLnB1c2goeyBmaWxlLCByZWFzb246IHJlYXNvbiEgfSk7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG1pbWVUeXBlTWF0Y2hlZCA9IGZhbHNlO1xyXG4gICAgICAgIGZvciAoY29uc3QgbWltZVR5cGVPYmogb2YgYWNjZXB0ZWRNaW1lVHlwZXMpIHtcclxuICAgICAgICAgIGlmIChpc01pbWVUeXBlTWF0Y2hpbmcoZmlsZSwgbWltZVR5cGVPYmoubWltZVR5cGUpKSB7XHJcbiAgICAgICAgICAgIG1pbWVUeXBlTWF0Y2hlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBleHRlbnNpb24gPSAnLicgKyBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgaWYgKG1pbWVUeXBlT2JqLmV4dGVuc2lvbnMuc2l6ZSA9PT0gMCB8fCBtaW1lVHlwZU9iai5leHRlbnNpb25zLmhhcygnKicpIHx8IG1pbWVUeXBlT2JqLmV4dGVuc2lvbnMuaGFzKGV4dGVuc2lvbikpIHtcclxuICAgICAgICAgICAgICBmaWx0ZXJlZEZpbGVzLnB1c2goZmlsZSk7XHJcbiAgICAgICAgICAgICAgY29udGludWUgZmlsZUxvb3A7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFtaW1lVHlwZU1hdGNoZWQpIHtcclxuICAgICAgICAgIGZhaWxlZEZpbGVzLnB1c2goeyBmaWxlLCByZWFzb246IEZpbGVJbnB1dEZhaWxlZFVwbG9hZFJlYXNvbi5JbnZhbGlkTWltZVR5cGUgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZhaWxlZEZpbGVzLnB1c2goeyBmaWxlLCByZWFzb246IEZpbGVJbnB1dEZhaWxlZFVwbG9hZFJlYXNvbi5NaW1lVHlwZUZvdW5kQnV0RXh0ZW5zaW9uTm90QWxsb3dlZCB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGFjY2VwdCA9IHRoaXMuYWNjZXB0KCk7XHJcbiAgICAgIGxldCBhY2NlcHRFbnRyaWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhY2NlcHQpKSB7XHJcbiAgICAgICAgYWNjZXB0RW50cmllcyA9IGFjY2VwdC5tYXAoZSA9PiBlLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBhY2NlcHRFbnRyaWVzID0gYWNjZXB0LnNwbGl0KCcsJykubWFwKGUgPT4gZS50cmltKCkudG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHR5cGVvZiBhY2NlcHQgPT09ICdzdHJpbmcnICYmIGFjY2VwdCA9PT0gJyonKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XHJcbiAgICAgICAgICBjb25zdCB7IHNob3VsZEFjY2VwdCwgcmVhc29uIH0gPSB0aGlzLl9maWx0ZXJGaWxlc0Jhc2VkT25TaXplQW5kQ291bnQoZmlsZSwgZmlsdGVyZWRGaWxlcy5sZW5ndGgpO1xyXG4gICAgICAgICAgaWYgKCFzaG91bGRBY2NlcHQpIHtcclxuICAgICAgICAgICAgZmFpbGVkRmlsZXMucHVzaCh7IGZpbGUsIHJlYXNvbjogcmVhc29uISB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZmlsZUxvb3A6IGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICAgICAgY29uc3QgeyBzaG91bGRBY2NlcHQsIHJlYXNvbiB9ID0gdGhpcy5fZmlsdGVyRmlsZXNCYXNlZE9uU2l6ZUFuZENvdW50KGZpbGUsIGZpbHRlcmVkRmlsZXMubGVuZ3RoKTtcclxuICAgICAgICAgIGlmICghc2hvdWxkQWNjZXB0KSB7XHJcbiAgICAgICAgICAgIGZhaWxlZEZpbGVzLnB1c2goeyBmaWxlLCByZWFzb246IHJlYXNvbiEgfSk7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9ICcuJyArIGZpbGUubmFtZS5zcGxpdCgnLicpLmF0KC0xKT8udG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgYWNjZXB0RW50cmllcykge1xyXG4gICAgICAgICAgICBpZiAoZXh0ZW5zaW9uID09PSBlbnRyeSkge1xyXG4gICAgICAgICAgICAgIGZpbHRlcmVkRmlsZXMucHVzaChmaWxlKTtcclxuICAgICAgICAgICAgICBjb250aW51ZSBmaWxlTG9vcDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZmFpbGVkRmlsZXMucHVzaCh7IGZpbGUsIHJlYXNvbjogRmlsZUlucHV0RmFpbGVkVXBsb2FkUmVhc29uLkludmFsaWRFeHRlbnNpb24gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kcmFnRmlsZXNFdmVudC5lbWl0KGZpbHRlcmVkRmlsZXMpO1xyXG4gICAgdGhpcy5mYWlsZWRVcGxvYWRFdmVudC5lbWl0KGZhaWxlZEZpbGVzKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRWaWV3U3RhdGUuc2V0KCd1cGxvYWRlZCcpO1xyXG4gICAgdGhpcy5fd3JpdGVWYWx1ZShmaWx0ZXJlZEZpbGVzLmxlbmd0aCA+IDAgPyBmaWx0ZXJlZEZpbGVzIDogbnVsbCk7XHJcbiAgfVxyXG4gIG9uSW5wdXRDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCBmaWxlcyA9IEFycmF5LmZyb20odGhpcy5maWxlSW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50LmZpbGVzID8/IFtdKTtcclxuICAgIGlmIChmaWxlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5fd3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5jdXJyZW50Vmlld1N0YXRlLnNldCgnaWRsZScpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl93cml0ZVZhbHVlKGZpbGVzKTtcclxuICAgIHRoaXMuY3VycmVudFZpZXdTdGF0ZS5zZXQoJ3VwbG9hZGVkJyk7XHJcbiAgfVxyXG5cclxuICAvLyEgaGVscGVyc1xyXG4gIHByaXZhdGUgX2ZpbHRlckZpbGVzQmFzZWRPblNpemVBbmRDb3VudChcclxuICAgIGZpbGU6IEZpbGUsXHJcbiAgICBleGlzdGluZ0ZpbGVDb3VudDogbnVtYmVyXHJcbiAgKTogeyBzaG91bGRBY2NlcHQ6IGJvb2xlYW47IHJlYXNvbj86IEZpbGVJbnB1dEZhaWxlZFVwbG9hZFJlYXNvbiB9IHtcclxuICAgIC8vIGNoZWNrIGNvdW50XHJcbiAgICBpZiAoZXhpc3RpbmdGaWxlQ291bnQgPj0gdGhpcy5tYXhGaWxlc1dpdGhNdWx0aXBsZSgpKSB7XHJcbiAgICAgIHJldHVybiB7IHNob3VsZEFjY2VwdDogZmFsc2UsIHJlYXNvbjogRmlsZUlucHV0RmFpbGVkVXBsb2FkUmVhc29uLlRvb01hbnlGaWxlcyB9O1xyXG4gICAgfVxyXG4gICAgLy8gY2hlY2sgc2l6ZVxyXG4gICAgaWYgKGZpbGUuc2l6ZSA+IDAgJiYgdGhpcy5tYXhGaWxlU2l6ZUJ5dGVzKCkgIT09IG51bGwgJiYgZmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZUJ5dGVzKCkhKSB7XHJcbiAgICAgIHJldHVybiB7IHNob3VsZEFjY2VwdDogZmFsc2UsIHJlYXNvbjogRmlsZUlucHV0RmFpbGVkVXBsb2FkUmVhc29uLkZpbGVUb29CaWcgfTtcclxuICAgIH1cclxuICAgIC8vIGFsbCBnb29kXHJcbiAgICByZXR1cm4geyBzaG91bGRBY2NlcHQ6IHRydWUgfTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9jb3VudERyYWdlbnRlckZpbGVzKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIGlmICghZGF0YSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgcmV0dXJuIEFycmF5LmZyb20oZGF0YS5pdGVtcykuZmlsdGVyKGl0ZW0gPT4gaXRlbS5raW5kID09PSAnZmlsZScpLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfdXBkYXRlRWxlbWVudFZhbHVlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdiA9IHRoaXMudmFsdWU7XHJcblxyXG4gICAgY29uc3QgaW5wdXRFbCA9IHRoaXMuZmlsZUlucHV0RWwoKT8ubmF0aXZlRWxlbWVudDtcclxuICAgIGlmICghaW5wdXRFbCkgcmV0dXJuO1xyXG4gICAgaWYgKCF2KSB7XHJcbiAgICAgIGlucHV0RWwuZmlsZXMgPSBudWxsO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZGF0YVRyYW5zZmVyID0gbmV3IERhdGFUcmFuc2ZlcigpO1xyXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIHYpIHtcclxuICAgICAgZGF0YVRyYW5zZmVyLml0ZW1zLmFkZChmaWxlKTtcclxuICAgIH1cclxuICAgIGlucHV0RWwuZmlsZXMgPSBkYXRhVHJhbnNmZXIuZmlsZXM7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBpc01pbWVUeXBlTWF0Y2hpbmcoZmlsZTogRmlsZSwgbWltZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIGlmIChtaW1lVHlwZSA9PT0gJyonKSByZXR1cm4gdHJ1ZTtcclxuICBpZiAobWltZVR5cGUuZW5kc1dpdGgoJy8qJykpIHtcclxuICAgIGNvbnN0IHByZWZpeCA9IG1pbWVUeXBlLnNsaWNlKDAsIC0yKTtcclxuICAgIHJldHVybiBmaWxlLnR5cGUuc3RhcnRzV2l0aChwcmVmaXgpO1xyXG4gIH1cclxuICByZXR1cm4gZmlsZS50eXBlID09PSBtaW1lVHlwZTtcclxufVxyXG4iXX0=
|
|
333
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9maWxlLWlucHV0cy9maWxlLWlucHV0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFFBQVEsRUFDUixTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixHQUVsQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHNUUsT0FBTyxFQUF5QiwyQkFBMkIsRUFBc0IsTUFBTSxvQkFBb0IsQ0FBQzs7QUFHNUcsTUFBTSxPQUFnQix1QkFBd0IsU0FBUSx1QkFBdUI7SUFEN0U7O1FBSW1CLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBSXZELGdCQUFXLEdBQUcsU0FBUyxDQUErQixXQUFXLENBQUMsQ0FBQztRQUVuRSxTQUFJLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBWXhCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBTy9CLGNBQWM7UUFDTCxZQUFPLEdBQUcsS0FBSyxDQUFlLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU1RixZQUFZO1FBQ0gsYUFBUSxHQUFHLEtBQUssQ0FBZSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxD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S0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ3JDLENBQUM7K0dBaFdtQix1QkFBdUI7bUdBQXZCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFENUMsU0FBUzs4QkErRkosS0FBSztzQkFEUixLQUFLOztBQXNRUixTQUFTLGtCQUFrQixDQUFDLElBQVUsRUFBRSxRQUFnQjtJQUN0RCxJQUFJLFFBQVEsS0FBSyxHQUFHO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDbEMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgY29tcHV0ZWQsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgaW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIGlucHV0LFxyXG4gIE9uSW5pdCxcclxuICBvdXRwdXQsXHJcbiAgc2lnbmFsLFxyXG4gIHZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSxcclxuICBjb2VyY2VOdW1iZXJQcm9wZXJ0eSxcclxuICBGaWxlU3lzdGVtTWV0aG9kLFxyXG4gIEZpbGVTeXN0ZW1TZXJ2aWNlLFxyXG4gIEZpbGVTeXN0ZW1TdGFydERpcmVjdG9yeSxcclxufSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IGlzRGVmaW5lZCB9IGZyb20gJ3NpbXBsZS1ib29sJztcclxuaW1wb3J0IHsgX0Zvcm1GaWVsZENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi9faW50ZXJuYWwvZm9ybS1maWVsZC1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xyXG5pbXBvcnQgeyBfRmlsZUlucHV0QmFzZURlZmF1bHRzIH0gZnJvbSAnLi9maWxlLWlucHV0LWJhc2UuZGVmYXVsdHMnO1xyXG5pbXBvcnQgeyBGaWxlSW5wdXRGYWlsZWRVcGxvYWQsIEZpbGVJbnB1dEZhaWxlZFVwbG9hZFJlYXNvbiwgRmlsZUlucHV0RmlsZVR5cGVzIH0gZnJvbSAnLi9maWxlLWlucHV0LXR5cGVzJztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgX0ZpbGVJbnB1dENvbXBvbmVudEJhc2UgZXh0ZW5kcyBfRm9ybUZpZWxkQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IF9GaWxlSW5wdXRCYXNlRGVmYXVsdHM7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbGVTeXN0ZW1TZXJ2aWNlID0gaW5qZWN0KEZpbGVTeXN0ZW1TZXJ2aWNlKTtcclxuXHJcbiAgYWJzdHJhY3QgcmVhZG9ubHkgY29tcG9uZW50SWQ6IHN0cmluZztcclxuXHJcbiAgcmVhZG9ubHkgZmlsZUlucHV0RWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4oJ2ZpbGVJbnB1dCcpO1xyXG5cclxuICByZWFkb25seSBuYW1lID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIGlmICghKHdpbmRvdy5GaWxlICYmIHdpbmRvdy5GaWxlUmVhZGVyICYmIHdpbmRvdy5CbG9iKSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgIG5ldyBFcnJvcihcclxuICAgICAgICAgIGBBUkQtRlQke3RoaXMuY29tcG9uZW50SWR9MDogQ2Fubm90IHVzZSBBcmRpdW0gVUkgZmlsZSBmZWF0dXJlcyBiZWNhdXNlIHRoaXMgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGZpbGUgaGFuZGxpbmchYFxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJvdGVjdGVkIF93YXNWaWV3SW5pdCA9IGZhbHNlO1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3dhc1ZpZXdJbml0ID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLl91cGRhdGVFbGVtZW50VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIC8vISBhcHBlYXJhbmNlXHJcbiAgcmVhZG9ubHkgY29tcGFjdCA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgLy8hIHNldHRpbmdzXHJcbiAgcmVhZG9ubHkgbXVsdGlwbGUgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcbiAgcmVhZG9ubHkgbWF4RmlsZXMgPSBpbnB1dDxOdWxsYWJsZTxudW1iZXI+LCBhbnk+KG51bGwsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIG51bGwpIH0pO1xyXG5cclxuICByZWFkb25seSBtYXhGaWxlc1dpdGhNdWx0aXBsZSA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4gKHRoaXMubXVsdGlwbGUoKSA/IHRoaXMubWF4RmlsZXMoKSA/PyBJbmZpbml0eSA6IDEpKTtcclxuXHJcbiAgcmVhZG9ubHkgYmxvY2tBZnRlclVwbG9hZCA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgZ2V0IHNob3VsZEJlQmxvY2tlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmJsb2NrQWZ0ZXJVcGxvYWQoKSAmJiBpc0RlZmluZWQodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBtYXhGaWxlU2l6ZUJ5dGVzID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPiwgYW55PihudWxsLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCBudWxsKSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgYWNjZXB0ID0gaW5wdXQ8c3RyaW5nIHwgc3RyaW5nW10+KCcqJyk7XHJcbiAgcmVhZG9ubHkgZGlyZWN0b3J5SWQgPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IHN0YXJ0RGlyZWN0b3J5ID0gaW5wdXQ8TnVsbGFibGU8RmlsZVN5c3RlbVN0YXJ0RGlyZWN0b3J5Pj4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBmaWxlVHlwZXMgPSBpbnB1dDxOdWxsYWJsZTxGaWxlSW5wdXRGaWxlVHlwZXM+Pih1bmRlZmluZWQpO1xyXG5cclxuICByZWFkb25seSBhY2NlcHRTdHJpbmcgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcclxuICAgIGNvbnN0IHR5cGVzID0gdGhpcy5maWxlVHlwZXMoKTtcclxuICAgIGlmICh0eXBlcykge1xyXG4gICAgICBjb25zdCBhY2NlcHRFbnRyaWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IHR5cGUgb2YgdHlwZXMpIHtcclxuICAgICAgICBpZiAodHlwZS5hY2NlcHQpIHtcclxuICAgICAgICAgIGZvciAoY29uc3QgbWltZVR5cGUgaW4gdHlwZS5hY2NlcHQpIHtcclxuICAgICAgICAgICAgY29uc3QgZXh0ZW5zaW9ucyA9IHR5cGUuYWNjZXB0W21pbWVUeXBlXTtcclxuICAgICAgICAgICAgaWYgKGV4dGVuc2lvbnMgJiYgZXh0ZW5zaW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgYWNjZXB0RW50cmllcy5wdXNoKC4uLmV4dGVuc2lvbnMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBhY2NlcHRFbnRyaWVzLmpvaW4oJywnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBhY2NlcHQgPSB0aGlzLmFjY2VwdCgpO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYWNjZXB0KSkge1xyXG4gICAgICByZXR1cm4gYWNjZXB0LmpvaW4oJywnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYWNjZXB0O1xyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBhY2NlcHRlZE1pbWVUeXBlcyA9IGNvbXB1dGVkPHsgbWltZVR5cGU6IHN0cmluZzsgZXh0ZW5zaW9uczogU2V0PHN0cmluZz4gfVtdIHwgbnVsbD4oKCkgPT4ge1xyXG4gICAgY29uc3QgdHlwZXMgPSB0aGlzLmZpbGVUeXBlcygpO1xyXG4gICAgaWYgKHR5cGVzKSB7XHJcbiAgICAgIGNvbnN0IG1pbWVUeXBlczogeyBtaW1lVHlwZTogc3RyaW5nOyBleHRlbnNpb25zOiBTZXQ8c3RyaW5nPiB9W10gPSBbXTtcclxuICAgICAgZm9yIChjb25zdCB0eXBlIG9mIHR5cGVzKSB7XHJcbiAgICAgICAgaWYgKHR5cGUuYWNjZXB0KSB7XHJcbiAgICAgICAgICBmb3IgKGNvbnN0IG1pbWVUeXBlIGluIHR5cGUuYWNjZXB0KSB7XHJcbiAgICAgICAgICAgIG1pbWVUeXBlcy5wdXNoKHsgbWltZVR5cGUsIGV4dGVuc2lvbnM6IG5ldyBTZXQodHlwZS5hY2NlcHRbbWltZVR5cGVdKSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG1pbWVUeXBlcztcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH0pO1xyXG5cclxuICAvLyEgdmFsdWVcclxuICBwcm90ZWN0ZWQgX3ZhbHVlOiBGaWxlW10gfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKVxyXG4gIGdldCB2YWx1ZSgpOiBGaWxlW10gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcbiAgc2V0IHZhbHVlKHY6IEZpbGUgfCBGaWxlW10gfCBudWxsKSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUodik7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG91dHB1dDxGaWxlW10gfCBudWxsPigpO1xyXG4gIHJlYWRvbmx5IGNoYW5nZUV2ZW50ID0gb3V0cHV0PEZpbGVbXSB8IG51bGw+KHsgYWxpYXM6ICdjaGFuZ2UnIH0pO1xyXG4gIHJlYWRvbmx5IGRyYWdGaWxlc0V2ZW50ID0gb3V0cHV0PEZpbGVbXT4oeyBhbGlhczogJ2RyYWdGaWxlcycgfSk7XHJcbiAgcmVhZG9ubHkgZmFpbGVkVXBsb2FkRXZlbnQgPSBvdXRwdXQ8RmlsZUlucHV0RmFpbGVkVXBsb2FkW10+KHsgYWxpYXM6ICdmYWlsZWRVcGxvYWQnIH0pO1xyXG5cclxuICBwcm90ZWN0ZWQgX3ZhbHVlQmVmb3JlSW5pdDogRmlsZVtdIHwgbnVsbCA9IG51bGw7XHJcbiAgd3JpdGVWYWx1ZSh2OiBGaWxlIHwgRmlsZVtdIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy5fd3JpdGVWYWx1ZSh2LCBmYWxzZSk7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfd3JpdGVWYWx1ZSh2OiBGaWxlIHwgRmlsZVtdIHwgbnVsbCwgZW1pdEV2ZW50cyA9IHRydWUpOiB2b2lkIHtcclxuICAgIGlmICghKHYgaW5zdGFuY2VvZiBGaWxlKSAmJiAhQXJyYXkuaXNBcnJheSh2KSAmJiB2ICE9PSBudWxsKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgICAgbmV3IEVycm9yKGBBUkQtRlQke3RoaXMuY29tcG9uZW50SWR9MTogPGFyZC1maWxlLWlucHV0PidzIHZhbHVlIG11c3QgYmUgYSBGaWxlLCBhbiBhcnJheSBvZiBGaWxlcywgb3IgbnVsbC5gKVxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodiBpbnN0YW5jZW9mIEZpbGUpIHtcclxuICAgICAgdiA9IFt2XTtcclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KHYpICYmICF0aGlzLm11bHRpcGxlKCkgJiYgdi5sZW5ndGggPiAxKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBgQVJELVdBJHt0aGlzLmNvbXBvbmVudElkfTI6IDxhcmQtZmlsZS1pbnB1dD4gcmVjZWl2ZWQgYW4gYXJyYXkgb2YgZmlsZXMgYnV0IHRoZSAnbXVsdGlwbGUnIGlucHV0IGlzIG5vdCBzZXQgdG8gdHJ1ZS4gT25seSB0aGUgZmlyc3QgZmlsZSB3aWxsIGJlIHVzZWQuYFxyXG4gICAgICApO1xyXG4gICAgICB2ID0gW3ZbMF1dO1xyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodikgJiYgdi5sZW5ndGggPT09IDApIHtcclxuICAgICAgdiA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHYgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5jdXJyZW50Vmlld1N0YXRlLnNldCgnaWRsZScpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50Vmlld1N0YXRlLnNldCgndXBsb2FkZWQnKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3ZhbHVlID0gdjtcclxuXHJcbiAgICBpZiAodGhpcy5fd2FzVmlld0luaXQpIHRoaXMuX3VwZGF0ZUVsZW1lbnRWYWx1ZSgpO1xyXG5cclxuICAgIGlmIChlbWl0RXZlbnRzKSB7XHJcbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfZW1pdENoYW5nZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlO1xyXG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odik7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XHJcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodik7XHJcbiAgfVxyXG5cclxuICBvcGVuQnJvd3NlRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLl9maWxlU3lzdGVtU2VydmljZS5pc0ZpbGVTeXN0ZW1BUElTdXBwb3J0ZWQoJ3Nob3dPcGVuRmlsZVBpY2tlcicpICYmXHJcbiAgICAgICh0aGlzLmRpcmVjdG9yeUlkKCkgfHwgdGhpcy5zdGFydERpcmVjdG9yeSgpIHx8IHRoaXMuZmlsZVR5cGVzKCkpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5fZmlsZVN5c3RlbVNlcnZpY2VcclxuICAgICAgICAucmVxdWVzdEZpbGVVcGxvYWQoe1xyXG4gICAgICAgICAgbWV0aG9kOiBGaWxlU3lzdGVtTWV0aG9kLlByZWZlckZpbGVTeXN0ZW0sXHJcbiAgICAgICAgICBtdWx0aXBsZTogdGhpcy5tdWx0aXBsZSgpLFxyXG4gICAgICAgICAgZGlyZWN0b3J5SWQ6IHRoaXMuZGlyZWN0b3J5SWQoKSA/PyB1bmRlZmluZWQsXHJcbiAgICAgICAgICBzdGFydERpcmVjdG9yeTogdGhpcy5zdGFydERpcmVjdG9yeSgpID8/IHVuZGVmaW5lZCxcclxuICAgICAgICAgIHR5cGVzOiB0aGlzLmZpbGVUeXBlcygpID8/IHVuZGVmaW5lZCxcclxuICAgICAgICAgIGFjY2VwdDogdGhpcy5hY2NlcHQoKSA9PT0gJyonID8gdW5kZWZpbmVkIDogdGhpcy5hY2NlcHQoKSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC50aGVuKGZpbGVPckZpbGVzID0+IHtcclxuICAgICAgICAgIGlmICghZmlsZU9yRmlsZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5fd3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50Vmlld1N0YXRlLnNldCgnaWRsZScpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCBmaWxlcyA9IEFycmF5LmlzQXJyYXkoZmlsZU9yRmlsZXMpID8gZmlsZU9yRmlsZXMgOiBbZmlsZU9yRmlsZXNdO1xyXG4gICAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLl93cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRWaWV3U3RhdGUuc2V0KCdpZGxlJyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuX3dyaXRlVmFsdWUoZmlsZXMpO1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50Vmlld1N0YXRlLnNldCgndXBsb2FkZWQnKTtcclxuICAgICAgICAgIC8vIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpbGVJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIC8vISB0ZW1wb3JhcnkgdmFsdWVcclxuICAvL2ZvciBkcmFnIGV2ZW50IGhhbmRsaW5nXHJcbiAgcHJvdGVjdGVkIF9kcmFnZ2VkRmlsZXM6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvLyEgdmlldyBzdGF0ZVxyXG4gIHJlYWRvbmx5IGN1cnJlbnRWaWV3U3RhdGUgPSBzaWduYWw8J2lkbGUnIHwgJ2RyYWdvdmVyJyB8ICd1cGxvYWRlZCc+KCdpZGxlJyk7XHJcbiAgcHJpdmF0ZSBfYmVmb3JlRHJhZ292ZXJTdGF0ZTogJ2lkbGUnIHwgJ3VwbG9hZGVkJyA9ICdpZGxlJztcclxuXHJcbiAgLy8hIGV2ZW50IGhhbmRsZXJzXHJcbiAgb25EcmFnb3ZlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgaWYgKHRoaXMuc2hvdWxkQmVCbG9ja2VkKSB7XHJcbiAgICAgIGlmICghZXZlbnQuZGF0YVRyYW5zZmVyKSByZXR1cm47XHJcblxyXG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdub25lJztcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VycmVudFZpZXdTdGF0ZSgpID09PSAnZHJhZ292ZXInKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fZHJhZ2dlZEZpbGVzID0gdGhpcy5fY291bnREcmFnZW50ZXJGaWxlcyhldmVudC5kYXRhVHJhbnNmZXIpO1xyXG5cclxuICAgIGlmICghdGhpcy5fZHJhZ2dlZEZpbGVzKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fYmVmb3JlRHJhZ292ZXJTdGF0ZSA9IHRoaXMuY3VycmVudFZpZXdTdGF0ZSgpIGFzICdpZGxlJyB8ICd1cGxvYWRlZCc7XHJcbiAgICB0aGlzLmN1cnJlbnRWaWV3U3RhdGUuc2V0KCdkcmFnb3ZlcicpO1xyXG4gIH1cclxuICBvbkRyYWdsZWF2ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNob3VsZEJlQmxvY2tlZCkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFZpZXdTdGF0ZSgpICE9PSAnZHJhZ292ZXInKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5jdXJyZW50Vmlld1N0YXRlLnNldCh0aGlzLl9iZWZvcmVEcmFnb3ZlclN0YXRlKTtcclxuICB9XHJcbiAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2hvdWxkQmVCbG9ja2VkKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgZmlsZWxpc3QgPSBldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzO1xyXG4gICAgaWYgKCFmaWxlbGlzdCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRWaWV3U3RhdGUuc2V0KCdpZGxlJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGZpbGVzID0gQXJyYXkuZnJvbShmaWxlbGlzdCk7XHJcbiAgICBpZiAoIWZpbGVzKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFZpZXdTdGF0ZS5zZXQoJ2lkbGUnKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZmlsdGVyZWRGaWxlczogRmlsZVtdID0gW107XHJcbiAgICBjb25zdCBmYWlsZWRGaWxlczogRmlsZUlucHV0RmFpbGVkVXBsb2FkW10gPSBbXTtcclxuICAgIGNvbnN0IGFjY2VwdGVkTWltZVR5cGVzID0gdGhpcy5hY2NlcHRlZE1pbWVUeXBlcygpO1xyXG4gICAgaWYgKGFjY2VwdGVkTWltZVR5cGVzKSB7XHJcbiAgICAgIGxldCBtaW1lVHlwZU1hdGNoZWQgPSBmYWxzZTtcclxuICAgICAgZmlsZUxvb3A6IGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICAgIGNvbnN0IHsgc2hvdWxkQWNjZXB0LCByZWFzb24gfSA9IHRoaXMuX2ZpbHRlckZpbGVzQmFzZWRPblNpemVBbmRDb3VudChmaWxlLCBmaWx0ZXJlZEZpbGVzLmxlbmd0aCk7XHJcbiAgICAgICAgaWYgKCFzaG91bGRBY2NlcHQpIHtcclxuICAgICAgICAgIGZhaWxlZEZpbGVzLnB1c2goeyBmaWxlLCByZWFzb246IHJlYXNvbiEgfSk7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG1pbWVUeXBlTWF0Y2hlZCA9IGZhbHNlO1xyXG4gICAgICAgIGZvciAoY29uc3QgbWltZVR5cGVPYmogb2YgYWNjZXB0ZWRNaW1lVHlwZXMpIHtcclxuICAgICAgICAgIGlmIChpc01pbWVUeXBlTWF0Y2hpbmcoZmlsZSwgbWltZVR5cGVPYmoubWltZVR5cGUpKSB7XHJcbiAgICAgICAgICAgIG1pbWVUeXBlTWF0Y2hlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBleHRlbnNpb24gPSAnLicgKyBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgaWYgKG1pbWVUeXBlT2JqLmV4dGVuc2lvbnMuc2l6ZSA9PT0gMCB8fCBtaW1lVHlwZU9iai5leHRlbnNpb25zLmhhcygnKicpIHx8IG1pbWVUeXBlT2JqLmV4dGVuc2lvbnMuaGFzKGV4dGVuc2lvbikpIHtcclxuICAgICAgICAgICAgICBmaWx0ZXJlZEZpbGVzLnB1c2goZmlsZSk7XHJcbiAgICAgICAgICAgICAgY29udGludWUgZmlsZUxvb3A7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFtaW1lVHlwZU1hdGNoZWQpIHtcclxuICAgICAgICAgIGZhaWxlZEZpbGVzLnB1c2goeyBmaWxlLCByZWFzb246IEZpbGVJbnB1dEZhaWxlZFVwbG9hZFJlYXNvbi5JbnZhbGlkTWltZVR5cGUgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZhaWxlZEZpbGVzLnB1c2goeyBmaWxlLCByZWFzb246IEZpbGVJbnB1dEZhaWxlZFVwbG9hZFJlYXNvbi5NaW1lVHlwZUZvdW5kQnV0RXh0ZW5zaW9uTm90QWxsb3dlZCB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGFjY2VwdCA9IHRoaXMuYWNjZXB0KCk7XHJcbiAgICAgIGxldCBhY2NlcHRFbnRyaWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhY2NlcHQpKSB7XHJcbiAgICAgICAgYWNjZXB0RW50cmllcyA9IGFjY2VwdC5tYXAoZSA9PiBlLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBhY2NlcHRFbnRyaWVzID0gYWNjZXB0LnNwbGl0KCcsJykubWFwKGUgPT4gZS50cmltKCkudG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHR5cGVvZiBhY2NlcHQgPT09ICdzdHJpbmcnICYmIGFjY2VwdCA9PT0gJyonKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XHJcbiAgICAgICAgICBjb25zdCB7IHNob3VsZEFjY2VwdCwgcmVhc29uIH0gPSB0aGlzLl9maWx0ZXJGaWxlc0Jhc2VkT25TaXplQW5kQ291bnQoZmlsZSwgZmlsdGVyZWRGaWxlcy5sZW5ndGgpO1xyXG4gICAgICAgICAgaWYgKCFzaG91bGRBY2NlcHQpIHtcclxuICAgICAgICAgICAgZmFpbGVkRmlsZXMucHVzaCh7IGZpbGUsIHJlYXNvbjogcmVhc29uISB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZmlsZUxvb3A6IGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICAgICAgY29uc3QgeyBzaG91bGRBY2NlcHQsIHJlYXNvbiB9ID0gdGhpcy5fZmlsdGVyRmlsZXNCYXNlZE9uU2l6ZUFuZENvdW50KGZpbGUsIGZpbHRlcmVkRmlsZXMubGVuZ3RoKTtcclxuICAgICAgICAgIGlmICghc2hvdWxkQWNjZXB0KSB7XHJcbiAgICAgICAgICAgIGZhaWxlZEZpbGVzLnB1c2goeyBmaWxlLCByZWFzb246IHJlYXNvbiEgfSk7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGNvbnN0IGV4dGVuc2lvbiA9ICcuJyArIGZpbGUubmFtZS5zcGxpdCgnLicpLmF0KC0xKT8udG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgYWNjZXB0RW50cmllcykge1xyXG4gICAgICAgICAgICBpZiAoZXh0ZW5zaW9uID09PSBlbnRyeSkge1xyXG4gICAgICAgICAgICAgIGZpbHRlcmVkRmlsZXMucHVzaChmaWxlKTtcclxuICAgICAgICAgICAgICBjb250aW51ZSBmaWxlTG9vcDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZmFpbGVkRmlsZXMucHVzaCh7IGZpbGUsIHJlYXNvbjogRmlsZUlucHV0RmFpbGVkVXBsb2FkUmVhc29uLkludmFsaWRFeHRlbnNpb24gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kcmFnRmlsZXNFdmVudC5lbWl0KGZpbHRlcmVkRmlsZXMpO1xyXG4gICAgdGhpcy5mYWlsZWRVcGxvYWRFdmVudC5lbWl0KGZhaWxlZEZpbGVzKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRWaWV3U3RhdGUuc2V0KCd1cGxvYWRlZCcpO1xyXG4gICAgdGhpcy5fd3JpdGVWYWx1ZShmaWx0ZXJlZEZpbGVzLmxlbmd0aCA+IDAgPyBmaWx0ZXJlZEZpbGVzIDogbnVsbCk7XHJcbiAgfVxyXG4gIG9uSW5wdXRDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCBmaWxlcyA9IEFycmF5LmZyb20odGhpcy5maWxlSW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50LmZpbGVzID8/IFtdKTtcclxuICAgIGlmIChmaWxlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5fd3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5jdXJyZW50Vmlld1N0YXRlLnNldCgnaWRsZScpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl93cml0ZVZhbHVlKGZpbGVzKTtcclxuICAgIHRoaXMuY3VycmVudFZpZXdTdGF0ZS5zZXQoJ3VwbG9hZGVkJyk7XHJcbiAgfVxyXG5cclxuICAvLyEgaGVscGVyc1xyXG4gIHByaXZhdGUgX2ZpbHRlckZpbGVzQmFzZWRPblNpemVBbmRDb3VudChcclxuICAgIGZpbGU6IEZpbGUsXHJcbiAgICBleGlzdGluZ0ZpbGVDb3VudDogbnVtYmVyXHJcbiAgKTogeyBzaG91bGRBY2NlcHQ6IGJvb2xlYW47IHJlYXNvbj86IEZpbGVJbnB1dEZhaWxlZFVwbG9hZFJlYXNvbiB9IHtcclxuICAgIC8vIGNoZWNrIGNvdW50XHJcbiAgICBpZiAoZXhpc3RpbmdGaWxlQ291bnQgPj0gdGhpcy5tYXhGaWxlc1dpdGhNdWx0aXBsZSgpKSB7XHJcbiAgICAgIHJldHVybiB7IHNob3VsZEFjY2VwdDogZmFsc2UsIHJlYXNvbjogRmlsZUlucHV0RmFpbGVkVXBsb2FkUmVhc29uLlRvb01hbnlGaWxlcyB9O1xyXG4gICAgfVxyXG4gICAgLy8gY2hlY2sgc2l6ZVxyXG4gICAgaWYgKGZpbGUuc2l6ZSA+IDAgJiYgdGhpcy5tYXhGaWxlU2l6ZUJ5dGVzKCkgIT09IG51bGwgJiYgZmlsZS5zaXplID4gdGhpcy5tYXhGaWxlU2l6ZUJ5dGVzKCkhKSB7XHJcbiAgICAgIHJldHVybiB7IHNob3VsZEFjY2VwdDogZmFsc2UsIHJlYXNvbjogRmlsZUlucHV0RmFpbGVkVXBsb2FkUmVhc29uLkZpbGVUb29CaWcgfTtcclxuICAgIH1cclxuICAgIC8vIGFsbCBnb29kXHJcbiAgICByZXR1cm4geyBzaG91bGRBY2NlcHQ6IHRydWUgfTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9jb3VudERyYWdlbnRlckZpbGVzKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIGlmICghZGF0YSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgcmV0dXJuIEFycmF5LmZyb20oZGF0YS5pdGVtcykuZmlsdGVyKGl0ZW0gPT4gaXRlbS5raW5kID09PSAnZmlsZScpLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfdXBkYXRlRWxlbWVudFZhbHVlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdiA9IHRoaXMudmFsdWU7XHJcblxyXG4gICAgY29uc3QgaW5wdXRFbCA9IHRoaXMuZmlsZUlucHV0RWwoKT8ubmF0aXZlRWxlbWVudDtcclxuICAgIGlmICghaW5wdXRFbCkgcmV0dXJuO1xyXG4gICAgaWYgKCF2KSB7XHJcbiAgICAgIGlucHV0RWwuZmlsZXMgPSBudWxsO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZGF0YVRyYW5zZmVyID0gbmV3IERhdGFUcmFuc2ZlcigpO1xyXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIHYpIHtcclxuICAgICAgZGF0YVRyYW5zZmVyLml0ZW1zLmFkZChmaWxlKTtcclxuICAgIH1cclxuICAgIGlucHV0RWwuZmlsZXMgPSBkYXRhVHJhbnNmZXIuZmlsZXM7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBpc01pbWVUeXBlTWF0Y2hpbmcoZmlsZTogRmlsZSwgbWltZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIGlmIChtaW1lVHlwZSA9PT0gJyonKSByZXR1cm4gdHJ1ZTtcclxuICBpZiAobWltZVR5cGUuZW5kc1dpdGgoJy8qJykpIHtcclxuICAgIGNvbnN0IHByZWZpeCA9IG1pbWVUeXBlLnNsaWNlKDAsIC0yKTtcclxuICAgIHJldHVybiBmaWxlLnR5cGUuc3RhcnRzV2l0aChwcmVmaXgpO1xyXG4gIH1cclxuICByZXR1cm4gZmlsZS50eXBlID09PSBtaW1lVHlwZTtcclxufVxyXG4iXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1uYXRpdmUtaW5wdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtbmF0aXZlLWlucHV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLEdBQUcsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsSUFBSSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUF1QixNQUFNLDBCQUEwQixDQUFDOztBQWdCdkYsTUFBTSxPQUFPLDBDQUEwQztJQWR2RDtRQWVXLGNBQVMsR0FBRyxLQUFLLENBQTJCLFNBQVMsRUFBRTtZQUM5RCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7WUFDeEMsS0FBSyxFQUFFLFVBQVU7U0FDbEIsQ0FBQyxDQUFDO1FBS00sY0FBUyxHQUFHLEtBQUssQ0FBZSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckYsYUFBUSxHQUFHLEtBQUssQ0FBZSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxx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QUFZO3dCQUNyQyx3QkFBd0IsRUFBRSxhQUFhO3FCQUN4QztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUsIGluamVjdCwgSW5qZWN0b3IsIGlucHV0LCBydW5JbkluamVjdGlvbkNvbnRleHQsIFNpZ25hbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgTmdDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IG1hcCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRha2VDaGFuY2UgYXMgUmFuZG9tIH0gZnJvbSAndGFrZS1jaGFuY2UnO1xyXG5pbXBvcnQgeyBBUkRfRk9STV9GSUVMRF9DT05UUk9MLCBBcmRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNoaWxkLnRva2VuJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOlxyXG4gICAgJ2FyZC1mb3JtLWZpZWxkID4gaW5wdXQsIGFyZC1mb3JtLWZpZWxkID4gdGV4dGFyZWEsIGFyZC1mb3JtLWZpZWxkID4gc2VsZWN0LCBhcmQtaG9yaXpvbnRhbC1mb3JtLWZpZWxkID4gaW5wdXQsIGFyZC1ob3Jpem9udGFsLWZvcm0tZmllbGQgPiB0ZXh0YXJlYSwgYXJkLWhvcml6b250YWwtZm9ybS1maWVsZCA+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=
|