@ardium-ui/ui 3.3.0-alpha1 → 3.3.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/focusable-component.mjs +5 -5
- package/esm2022/lib/_internal/form-field-component.mjs +5 -27
- package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +5 -2
- package/esm2022/lib/_internal/ngmodel-component.mjs +57 -5
- package/esm2022/lib/_internal/selectable-list-component.mjs +10 -12
- package/esm2022/lib/checkbox/checkbox.component.mjs +2 -3
- package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +2 -4
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +3 -3
- package/esm2022/lib/file-inputs/file-input-base.mjs +3 -4
- package/esm2022/lib/form-field/form-field.component.mjs +7 -10
- package/esm2022/lib/form-field/form-field.defaults.mjs +2 -1
- package/esm2022/lib/form-field/form-field.module.mjs +25 -4
- package/esm2022/lib/form-field/horizontal-form-field.component.mjs +33 -0
- package/esm2022/lib/form-field/index.mjs +2 -1
- package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +12 -7
- package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +20 -9
- package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +51 -28
- package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +1 -1
- package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +3 -3
- package/esm2022/lib/inputs/input/input.component.mjs +3 -3
- package/esm2022/lib/inputs/number-input/number-input.component.mjs +3 -3
- package/esm2022/lib/inputs/password-input/password-input.component.mjs +3 -3
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +3 -3
- package/esm2022/lib/radio/radio/radio.component.mjs +77 -6
- package/esm2022/lib/radio/radio/radio.defaults.mjs +3 -3
- package/esm2022/lib/radio/radio-group.component.mjs +3 -3
- package/esm2022/lib/segment/segment.component.mjs +26 -4
- package/esm2022/lib/select/select.component.mjs +4 -4
- package/esm2022/lib/slider/range-slider/range-slider.component.mjs +2 -1
- package/esm2022/lib/table/table.component.mjs +1 -1
- package/fesm2022/ardium-ui-ui.mjs +321 -122
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/_internal/focusable-component.d.ts +1 -1
- package/lib/_internal/form-field-component.d.ts +4 -13
- package/lib/_internal/item-storages/simple-item-storage.d.ts +1 -0
- package/lib/_internal/ngmodel-component.d.ts +16 -3
- package/lib/_internal/selectable-list-component.d.ts +3 -4
- package/lib/checkbox/checkbox.component.d.ts +1 -2
- package/lib/checkbox-list/checkbox-list.component.d.ts +1 -2
- package/lib/file-inputs/file-input-base.d.ts +1 -2
- package/lib/form-field/form-field.component.d.ts +3 -3
- package/lib/form-field/form-field.defaults.d.ts +1 -0
- package/lib/form-field/form-field.module.d.ts +8 -7
- package/lib/form-field/horizontal-form-field.component.d.ts +19 -0
- package/lib/form-field/index.d.ts +1 -0
- package/lib/form-field-frame/form-field-frame.component.d.ts +3 -2
- package/lib/inputs/digit-input/digit-input.component.d.ts +5 -2
- package/lib/inputs/digit-input/digit-input.model.d.ts +0 -1
- package/lib/inputs/digit-input/digit-input.types.d.ts +1 -1
- package/lib/inputs/digit-input/digit-input.utils.d.ts +1 -0
- package/lib/radio/radio/radio.component.d.ts +41 -3
- package/lib/radio/radio/radio.defaults.d.ts +2 -2
- package/lib/radio/radio-group.component.d.ts +1 -2
- package/package.json +1 -1
- package/prebuilt-themes/default/chips.css.map +1 -1
- package/prebuilt-themes/default/core.css +2 -0
- package/prebuilt-themes/default/core.css.map +1 -1
- package/prebuilt-themes/default/form-field-frame.css +10 -4
- package/prebuilt-themes/default/form-field-frame.css.map +1 -1
- package/prebuilt-themes/default/form-field.css +74 -9
- package/prebuilt-themes/default/form-field.css.map +1 -1
- package/prebuilt-themes/default/inputs/digit-input.css +14 -3
- package/prebuilt-themes/default/inputs/digit-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/file-input.css +0 -5
- package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/input.css +0 -5
- package/prebuilt-themes/default/inputs/input.css.map +1 -1
- package/prebuilt-themes/default/inputs/number-input.css +6 -3
- package/prebuilt-themes/default/inputs/number-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/simple-input.css +0 -5
- package/prebuilt-themes/default/inputs/simple-input.css.map +1 -1
- package/prebuilt-themes/default/segment.css +6 -3
- package/prebuilt-themes/default/segment.css.map +1 -1
- package/themes/default/_mixins.scss +6 -4
- package/themes/default/core.scss +3 -0
- package/themes/default/form-field-frame.scss +5 -1
- package/themes/default/form-field.scss +63 -2
- package/themes/default/inputs/digit-input.scss +11 -0
- package/themes/default/inputs/file-input.scss +0 -6
- package/themes/default/inputs/input.scss +1 -7
- package/themes/default/inputs/simple-input.scss +1 -8
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, contentChild, contentChildren, inject, ViewEncapsulation } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, contentChild, contentChildren, inject, input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { coerceBooleanProperty } from '@ardium-ui/devkit';
|
|
2
3
|
import { _FormFieldComponentBase } from '../_internal/form-field-component';
|
|
3
4
|
import { SimpleOneAxisAlignment } from './../types/alignment.types';
|
|
4
5
|
import { ArdiumErrorDirective } from './error/error.directive';
|
|
@@ -9,17 +10,13 @@ import * as i0 from "@angular/core";
|
|
|
9
10
|
export class ArdiumFormFieldComponent {
|
|
10
11
|
constructor() {
|
|
11
12
|
this._DEFAULTS = inject(ARD_FORM_FIELD_DEFAULTS);
|
|
12
|
-
this.
|
|
13
|
+
this.alignHintToLeftByDefault = this._DEFAULTS.defaultHintAlign === SimpleOneAxisAlignment.Left;
|
|
13
14
|
this.control = contentChild(_FormFieldComponentBase);
|
|
14
|
-
this.controlId = computed(() => this.control()?.htmlId());
|
|
15
15
|
this.label = contentChild(ArdiumLabelComponent);
|
|
16
16
|
this.hints = contentChildren(ArdiumHintDirective);
|
|
17
|
-
// readonly leftHints = computed<ArdiumHintDirective[]>(() => this.hints().filter(v => v.left() && !v.right()));
|
|
18
|
-
// readonly rightHints = computed<ArdiumHintDirective[]>(() => this.hints().filter(v => !v.left() && v.right()));
|
|
19
17
|
this.errors = contentChildren(ArdiumErrorDirective);
|
|
20
|
-
// readonly leftErrors = computed<ArdiumErrorDirective[]>(() => this.errors().filter(v => v.left() && !v.right()));
|
|
21
|
-
// readonly rightErrors = computed<ArdiumErrorDirective[]>(() => this.errors().filter(v => !v.left() && v.right()));
|
|
22
18
|
this.hasAnyError = computed(() => this.errors()?.length > 0);
|
|
19
|
+
this.reserveHintLine = input(this._DEFAULTS.reserveHintLine, { transform: v => coerceBooleanProperty(v) });
|
|
23
20
|
}
|
|
24
21
|
ngOnInit() {
|
|
25
22
|
if (!this.control()) {
|
|
@@ -27,10 +24,10 @@ export class ArdiumFormFieldComponent {
|
|
|
27
24
|
}
|
|
28
25
|
}
|
|
29
26
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumFormFieldComponent, selector: "ard-form-field", 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
|
|
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 }); }
|
|
31
28
|
}
|
|
32
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldComponent, decorators: [{
|
|
33
30
|
type: Component,
|
|
34
|
-
args: [{ selector: 'ard-form-field', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div
|
|
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]=\"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"] }]
|
|
35
32
|
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUVMLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFTL0QsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVFxQixjQUFTLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFL0MsNkJBQXdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsS0FBSyxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7UUFFbEcsWUFBTyxHQUFHLFlBQVksQ0FBMEIsdUJBQXVCLENBQUMsQ0FBQztRQUV6RSxVQUFLLEdBQUcsWUFBWSxDQUF1QixvQkFBb0IsQ0FBQyxDQUFDO1FBRWpFLFVBQUssR0FBRyxlQUFlLENBQXNCLG1CQUFtQixDQUFDLENBQUM7UUFDbEUsV0FBTSxHQUFHLGVBQWUsQ0FBdUIsb0JBQW9CLENBQUMsQ0FBQztRQUNyRSxnQkFBVyxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLG9CQUFlLEdBQUcsS0FBSyxDQUFlLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBUzlIO0lBUEMsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUNiLDZHQUE2RyxDQUM5RyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7K0dBcEJVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDZQQUtzQix1QkFBdUIsd0ZBRTVCLG9CQUFvQiwyRUFFbEIsbUJBQW1CLHlEQUNqQixvQkFBb0IsNkNDcEM5RSxvK0NBd0NBOzs0RkRkYSx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0UsZ0JBQWdCLGlCQUdYLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBjb21wdXRlZCxcclxuICBjb250ZW50Q2hpbGQsXHJcbiAgY29udGVudENoaWxkcmVuLFxyXG4gIGluamVjdCxcclxuICBpbnB1dCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xyXG5pbXBvcnQgeyBfRm9ybUZpZWxkQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uL19pbnRlcm5hbC9mb3JtLWZpZWxkLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNpbXBsZU9uZUF4aXNBbGlnbm1lbnQgfSBmcm9tICcuLy4uL3R5cGVzL2FsaWdubWVudC50eXBlcyc7XHJcbmltcG9ydCB7IEFyZGl1bUVycm9yRGlyZWN0aXZlIH0gZnJvbSAnLi9lcnJvci9lcnJvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBBUkRfRk9STV9GSUVMRF9ERUZBVUxUUyB9IGZyb20gJy4vZm9ybS1maWVsZC5kZWZhdWx0cyc7XHJcbmltcG9ydCB7IEFyZGl1bUhpbnREaXJlY3RpdmUgfSBmcm9tICcuL2hpbnQvaGludC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBBcmRpdW1MYWJlbENvbXBvbmVudCB9IGZyb20gJy4vbGFiZWwvbGFiZWwuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXJkLWZvcm0tZmllbGQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcycsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bUZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9ERUZBVUxUUyA9IGluamVjdChBUkRfRk9STV9GSUVMRF9ERUZBVUxUUyk7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBhbGlnbkhpbnRUb0xlZnRCeURlZmF1bHQgPSB0aGlzLl9ERUZBVUxUUy5kZWZhdWx0SGludEFsaWduID09PSBTaW1wbGVPbmVBeGlzQWxpZ25tZW50LkxlZnQ7XHJcblxyXG4gIHJlYWRvbmx5IGNvbnRyb2wgPSBjb250ZW50Q2hpbGQ8X0Zvcm1GaWVsZENvbXBvbmVudEJhc2U+KF9Gb3JtRmllbGRDb21wb25lbnRCYXNlKTtcclxuXHJcbiAgcmVhZG9ubHkgbGFiZWwgPSBjb250ZW50Q2hpbGQ8QXJkaXVtTGFiZWxDb21wb25lbnQ+KEFyZGl1bUxhYmVsQ29tcG9uZW50KTtcclxuXHJcbiAgcmVhZG9ubHkgaGludHMgPSBjb250ZW50Q2hpbGRyZW48QXJkaXVtSGludERpcmVjdGl2ZT4oQXJkaXVtSGludERpcmVjdGl2ZSk7XHJcbiAgcmVhZG9ubHkgZXJyb3JzID0gY29udGVudENoaWxkcmVuPEFyZGl1bUVycm9yRGlyZWN0aXZlPihBcmRpdW1FcnJvckRpcmVjdGl2ZSk7XHJcbiAgcmVhZG9ubHkgaGFzQW55RXJyb3IgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLmVycm9ycygpPy5sZW5ndGggPiAwKTtcclxuICByZWFkb25seSByZXNlcnZlSGludExpbmUgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnJlc2VydmVIaW50TGluZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jb250cm9sKCkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIGBBUkQtRlQ1MTEwOiBGb3JtIGZpZWxkIGNvbXBvbmVudCByZXF1aXJlcyBhbnkgY29udHJvbCAoaW5wdXQpIHRvIGJlIHByZXNlbnQgd2l0aGluIHRoZSBlbGVtZW50LiBGb3VuZCBub25lLmBcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiYXJkLWZvcm0tZmllbGRcIlxyXG4gIFtjbGFzcy5hcmQtZm9ybS1maWVsZF9fd2l0aC1lcnJvcl09XCJjb250cm9sKCk/Lmhhc0Vycm9yKClcIlxyXG4gIFtjbGFzcy5hcmQtZm9ybS1maWVsZF9faXMtc3VjY2Vzc109XCJjb250cm9sKCk/LmlzU3VjY2VzcygpXCJcclxuICBbY2xhc3MuYXJkLWZvcm0tZmllbGRfX2NvbnRyb2wtZGlzYWJsZWRdPVwiY29udHJvbCgpPy5kaXNhYmxlZCgpXCJcclxuPlxyXG4gIDxsYWJlbFxyXG4gICAgY2xhc3M9XCJhcmQtbGFiZWxcIlxyXG4gICAgW2F0dHIuZm9yXT1cImNvbnRyb2woKT8uaHRtbElkKClcIlxyXG4gID5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFyZC1sYWJlbCwgW2FyZC1sYWJlbF1cIiAvPlxyXG4gIDwvbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cImFyZC1mb3JtLWZpZWxkX19pbnB1dFwiPlxyXG4gICAgPG5nLWNvbnRlbnQgLz5cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImFyZC1mb3JtLWZpZWxkX19oaW50c1wiXHJcbiAgICBbY2xhc3MuYXJkLWZvcm0tZmllbGRfX3Jlc2VydmUtaGludC1saW5lXT1cInJlc2VydmVIaW50TGluZSgpXCJcclxuICAgIFtjbGFzcy5hcmQtZm9ybS1maWVsZF9faGludHMtZGVmYXVsdC1sZWZ0XT1cImFsaWduSGludFRvTGVmdEJ5RGVmYXVsdFwiXHJcbiAgPlxyXG4gICAgQGlmIChoYXNBbnlFcnJvcigpKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGRfX2Vycm9yXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFyZC1lcnJvciwgW2FyZC1lcnJvcl1cIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtZm9ybS1maWVsZF9faGludHMtbGVmdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGRfX2RlZmF1bHQtaGludFwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFyZC1oaW50Om5vdChbbGVmdF0pOm5vdChbcmlnaHRdKSwgW2FyZC1oaW50XTpub3QoW2xlZnRdKTpub3QoW3JpZ2h0XSlcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXJkLWhpbnRbbGVmdF0sIFthcmQtaGludF1bbGVmdF1cIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGRfX2hpbnRzLXJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZm9ybS1maWVsZF9fZGVmYXVsdC1oaW50XCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXJkLWhpbnQ6bm90KFtsZWZ0XSk6bm90KFtyaWdodF0pLCBbYXJkLWhpbnRdOm5vdChbbGVmdF0pOm5vdChbcmlnaHRdKVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhcmQtaGludFtyaWdodF0sIFthcmQtaGludF1bcmlnaHRdXCIgLz5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -2,6 +2,7 @@ import { InjectionToken } from '@angular/core';
|
|
|
2
2
|
import { SimpleOneAxisAlignment } from './../types/alignment.types';
|
|
3
3
|
const _formFieldDefaults = {
|
|
4
4
|
defaultHintAlign: SimpleOneAxisAlignment.Left,
|
|
5
|
+
reserveHintLine: false,
|
|
5
6
|
};
|
|
6
7
|
export const ARD_FORM_FIELD_DEFAULTS = new InjectionToken('ard-form-field-defaults', {
|
|
7
8
|
factory: () => ({
|
|
@@ -11,4 +12,4 @@ export const ARD_FORM_FIELD_DEFAULTS = new InjectionToken('ard-form-field-defaul
|
|
|
11
12
|
export function provideFormFieldDefaults(config) {
|
|
12
13
|
return { provide: ARD_FORM_FIELD_DEFAULTS, useValue: { ..._formFieldDefaults, ...config } };
|
|
13
14
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5kZWZhdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmRlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFPcEUsTUFBTSxrQkFBa0IsR0FBeUI7SUFDL0MsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQUMsSUFBSTtJQUM3QyxlQUFlLEVBQUUsS0FBSztDQUN2QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQXVCLHlCQUF5QixFQUFFO0lBQ3pHLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2QsR0FBRyxrQkFBa0I7S0FDdEIsQ0FBQztDQUNILENBQUMsQ0FBQztBQUVILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxNQUFxQztJQUM1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsa0JBQWtCLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDO0FBQzlGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2ltcGxlT25lQXhpc0FsaWdubWVudCB9IGZyb20gJy4vLi4vdHlwZXMvYWxpZ25tZW50LnR5cGVzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXJkRm9ybUZpZWxkRGVmYXVsdHMge1xyXG4gIGRlZmF1bHRIaW50QWxpZ246IFNpbXBsZU9uZUF4aXNBbGlnbm1lbnQ7XHJcbiAgcmVzZXJ2ZUhpbnRMaW5lOiBib29sZWFuO1xyXG59XHJcblxyXG5jb25zdCBfZm9ybUZpZWxkRGVmYXVsdHM6IEFyZEZvcm1GaWVsZERlZmF1bHRzID0ge1xyXG4gIGRlZmF1bHRIaW50QWxpZ246IFNpbXBsZU9uZUF4aXNBbGlnbm1lbnQuTGVmdCxcclxuICByZXNlcnZlSGludExpbmU6IGZhbHNlLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEFSRF9GT1JNX0ZJRUxEX0RFRkFVTFRTID0gbmV3IEluamVjdGlvblRva2VuPEFyZEZvcm1GaWVsZERlZmF1bHRzPignYXJkLWZvcm0tZmllbGQtZGVmYXVsdHMnLCB7XHJcbiAgZmFjdG9yeTogKCkgPT4gKHtcclxuICAgIC4uLl9mb3JtRmllbGREZWZhdWx0cyxcclxuICB9KSxcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUZvcm1GaWVsZERlZmF1bHRzKGNvbmZpZzogUGFydGlhbDxBcmRGb3JtRmllbGREZWZhdWx0cz4pOiBQcm92aWRlciB7XHJcbiAgcmV0dXJuIHsgcHJvdmlkZTogQVJEX0ZPUk1fRklFTERfREVGQVVMVFMsIHVzZVZhbHVlOiB7IC4uLl9mb3JtRmllbGREZWZhdWx0cywgLi4uY29uZmlnIH0gfTtcclxufVxyXG4iXX0=
|
|
@@ -5,19 +5,40 @@ import { ArdiumErrorDirective } from './error/error.directive';
|
|
|
5
5
|
import { ArdiumFormFieldComponent } from './form-field.component';
|
|
6
6
|
import { ArdiumHintComponent } from './hint/hint.component';
|
|
7
7
|
import { ArdiumHintDirective } from './hint/hint.directive';
|
|
8
|
+
import { ArdiumHorizontalFormFieldComponent } from './horizontal-form-field.component';
|
|
8
9
|
import { ArdiumLabelComponent } from './label/label.component';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
export class ArdiumFormFieldModule {
|
|
11
12
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldModule, declarations: [ArdiumFormFieldComponent,
|
|
13
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldModule, declarations: [ArdiumFormFieldComponent,
|
|
14
|
+
ArdiumHorizontalFormFieldComponent,
|
|
15
|
+
ArdiumLabelComponent,
|
|
16
|
+
ArdiumHintComponent,
|
|
17
|
+
ArdiumErrorComponent], imports: [CommonModule, ArdiumHintDirective, ArdiumErrorDirective], exports: [ArdiumFormFieldComponent,
|
|
18
|
+
ArdiumHorizontalFormFieldComponent,
|
|
19
|
+
ArdiumLabelComponent,
|
|
20
|
+
ArdiumHintComponent,
|
|
21
|
+
ArdiumErrorComponent] }); }
|
|
13
22
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldModule, imports: [CommonModule] }); }
|
|
14
23
|
}
|
|
15
24
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldModule, decorators: [{
|
|
16
25
|
type: NgModule,
|
|
17
26
|
args: [{
|
|
18
|
-
declarations: [
|
|
27
|
+
declarations: [
|
|
28
|
+
ArdiumFormFieldComponent,
|
|
29
|
+
ArdiumHorizontalFormFieldComponent,
|
|
30
|
+
ArdiumLabelComponent,
|
|
31
|
+
ArdiumHintComponent,
|
|
32
|
+
ArdiumErrorComponent,
|
|
33
|
+
],
|
|
19
34
|
imports: [CommonModule, ArdiumHintDirective, ArdiumErrorDirective],
|
|
20
|
-
exports: [
|
|
35
|
+
exports: [
|
|
36
|
+
ArdiumFormFieldComponent,
|
|
37
|
+
ArdiumHorizontalFormFieldComponent,
|
|
38
|
+
ArdiumLabelComponent,
|
|
39
|
+
ArdiumHintComponent,
|
|
40
|
+
ArdiumErrorComponent,
|
|
41
|
+
],
|
|
21
42
|
}]
|
|
22
43
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBbUIvRCxNQUFNLE9BQU8scUJBQXFCOytHQUFyQixxQkFBcUI7Z0hBQXJCLHFCQUFxQixpQkFmOUIsd0JBQXdCO1lBQ3hCLGtDQUFrQztZQUNsQyxvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLG9CQUFvQixhQUVaLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsYUFFL0Qsd0JBQXdCO1lBQ3hCLGtDQUFrQztZQUNsQyxvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLG9CQUFvQjtnSEFHWCxxQkFBcUIsWUFUdEIsWUFBWTs7NEZBU1gscUJBQXFCO2tCQWpCakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osd0JBQXdCO3dCQUN4QixrQ0FBa0M7d0JBQ2xDLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsQ0FBQztvQkFDbEUsT0FBTyxFQUFFO3dCQUNQLHdCQUF3Qjt3QkFDeEIsa0NBQWtDO3dCQUNsQyxvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFyZGl1bUVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9lcnJvci9lcnJvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcmRpdW1FcnJvckRpcmVjdGl2ZSB9IGZyb20gJy4vZXJyb3IvZXJyb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQXJkaXVtRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFyZGl1bUhpbnRDb21wb25lbnQgfSBmcm9tICcuL2hpbnQvaGludC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcmRpdW1IaW50RGlyZWN0aXZlIH0gZnJvbSAnLi9oaW50L2hpbnQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQXJkaXVtSG9yaXpvbnRhbEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vaG9yaXpvbnRhbC1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFyZGl1bUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9sYWJlbC9sYWJlbC5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFyZGl1bUZvcm1GaWVsZENvbXBvbmVudCxcclxuICAgIEFyZGl1bUhvcml6b250YWxGb3JtRmllbGRDb21wb25lbnQsXHJcbiAgICBBcmRpdW1MYWJlbENvbXBvbmVudCxcclxuICAgIEFyZGl1bUhpbnRDb21wb25lbnQsXHJcbiAgICBBcmRpdW1FcnJvckNvbXBvbmVudCxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFyZGl1bUhpbnREaXJlY3RpdmUsIEFyZGl1bUVycm9yRGlyZWN0aXZlXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBBcmRpdW1Gb3JtRmllbGRDb21wb25lbnQsXHJcbiAgICBBcmRpdW1Ib3Jpem9udGFsRm9ybUZpZWxkQ29tcG9uZW50LFxyXG4gICAgQXJkaXVtTGFiZWxDb21wb25lbnQsXHJcbiAgICBBcmRpdW1IaW50Q29tcG9uZW50LFxyXG4gICAgQXJkaXVtRXJyb3JDb21wb25lbnQsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bUZvcm1GaWVsZE1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, contentChild, contentChildren, inject, input, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { coerceBooleanProperty } from '@ardium-ui/devkit';
|
|
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';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class ArdiumHorizontalFormFieldComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this._DEFAULTS = inject(ARD_FORM_FIELD_DEFAULTS);
|
|
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 }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumHorizontalFormFieldComponent, decorators: [{
|
|
30
|
+
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]=\"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"] }]
|
|
32
|
+
}] });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9yaXpvbnRhbC1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvZm9ybS1maWVsZC9ob3Jpem9udGFsLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9mb3JtLWZpZWxkL2hvcml6b250YWwtZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUVMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFTL0QsTUFBTSxPQUFPLGtDQUFrQztJQVAvQztRQVFxQixjQUFTLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFL0MsNkJBQXdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsS0FBSyxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7UUFFbEcsWUFBTyxHQUFHLFlBQVksQ0FBMEIsdUJBQXVCLENBQUMsQ0FBQztRQUV6RSxVQUFLLEdBQUcsWUFBWSxDQUF1QixvQkFBb0IsQ0FBQyxDQUFDO1FBRWpFLFVBQUssR0FBRyxlQUFlLENBQXNCLG1CQUFtQixDQUFDLENBQUM7UUFDbEUsV0FBTSxHQUFHLGVBQWUsQ0FBdUIsb0JBQW9CLENBQUMsQ0FBQztRQUNyRSxnQkFBVyxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLG9CQUFlLEdBQUcsS0FBSyxDQUFlLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBUzlIO0lBUEMsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUNiLDZHQUE2RyxDQUM5RyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7K0dBcEJVLGtDQUFrQzttR0FBbEMsa0NBQWtDLHdRQUtZLHVCQUF1Qix3RkFFNUIsb0JBQW9CLDJFQUVsQixtQkFBbUIseURBQ2pCLG9CQUFvQiw2Q0NwQzlFLDZxREE0Q0E7OzRGRGxCYSxrQ0FBa0M7a0JBUDlDLFNBQVM7K0JBQ0UsMkJBQTJCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgY29tcHV0ZWQsXHJcbiAgY29udGVudENoaWxkLFxyXG4gIGNvbnRlbnRDaGlsZHJlbixcclxuICBpbmplY3QsXHJcbiAgaW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IF9Gb3JtRmllbGRDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vX2ludGVybmFsL2Zvcm0tZmllbGQtY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2ltcGxlT25lQXhpc0FsaWdubWVudCB9IGZyb20gJy4vLi4vdHlwZXMvYWxpZ25tZW50LnR5cGVzJztcclxuaW1wb3J0IHsgQXJkaXVtRXJyb3JEaXJlY3RpdmUgfSBmcm9tICcuL2Vycm9yL2Vycm9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEFSRF9GT1JNX0ZJRUxEX0RFRkFVTFRTIH0gZnJvbSAnLi9mb3JtLWZpZWxkLmRlZmF1bHRzJztcclxuaW1wb3J0IHsgQXJkaXVtSGludERpcmVjdGl2ZSB9IGZyb20gJy4vaGludC9oaW50LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEFyZGl1bUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9sYWJlbC9sYWJlbC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcmQtaG9yaXpvbnRhbC1mb3JtLWZpZWxkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaG9yaXpvbnRhbC1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vaG9yaXpvbnRhbC1mb3JtLWZpZWxkLmNvbXBvbmVudC5zY3NzJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtSG9yaXpvbnRhbEZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9ERUZBVUxUUyA9IGluamVjdChBUkRfRk9STV9GSUVMRF9ERUZBVUxUUyk7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBhbGlnbkhpbnRUb0xlZnRCeURlZmF1bHQgPSB0aGlzLl9ERUZBVUxUUy5kZWZhdWx0SGludEFsaWduID09PSBTaW1wbGVPbmVBeGlzQWxpZ25tZW50LkxlZnQ7XHJcblxyXG4gIHJlYWRvbmx5IGNvbnRyb2wgPSBjb250ZW50Q2hpbGQ8X0Zvcm1GaWVsZENvbXBvbmVudEJhc2U+KF9Gb3JtRmllbGRDb21wb25lbnRCYXNlKTtcclxuXHJcbiAgcmVhZG9ubHkgbGFiZWwgPSBjb250ZW50Q2hpbGQ8QXJkaXVtTGFiZWxDb21wb25lbnQ+KEFyZGl1bUxhYmVsQ29tcG9uZW50KTtcclxuXHJcbiAgcmVhZG9ubHkgaGludHMgPSBjb250ZW50Q2hpbGRyZW48QXJkaXVtSGludERpcmVjdGl2ZT4oQXJkaXVtSGludERpcmVjdGl2ZSk7XHJcbiAgcmVhZG9ubHkgZXJyb3JzID0gY29udGVudENoaWxkcmVuPEFyZGl1bUVycm9yRGlyZWN0aXZlPihBcmRpdW1FcnJvckRpcmVjdGl2ZSk7XHJcbiAgcmVhZG9ubHkgaGFzQW55RXJyb3IgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLmVycm9ycygpPy5sZW5ndGggPiAwKTtcclxuICByZWFkb25seSByZXNlcnZlSGludExpbmUgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnJlc2VydmVIaW50TGluZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jb250cm9sKCkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIGBBUkQtRlQ1MTEwOiBGb3JtIGZpZWxkIGNvbXBvbmVudCByZXF1aXJlcyBhbnkgY29udHJvbCAoaW5wdXQpIHRvIGJlIHByZXNlbnQgd2l0aGluIHRoZSBlbGVtZW50LiBGb3VuZCBub25lLmBcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiYXJkLWhvcml6b250YWwtZm9ybS1maWVsZFwiXHJcbiAgW2NsYXNzLmFyZC1mb3JtLWZpZWxkX193aXRoLWVycm9yXT1cImNvbnRyb2woKT8uaGFzRXJyb3IoKVwiXHJcbiAgW2NsYXNzLmFyZC1mb3JtLWZpZWxkX19pcy1zdWNjZXNzXT1cImNvbnRyb2woKT8uaXNTdWNjZXNzKClcIlxyXG4gIFtjbGFzcy5hcmQtZm9ybS1maWVsZF9fY29udHJvbC1kaXNhYmxlZF09XCJjb250cm9sKCk/LmRpc2FibGVkKClcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImFyZC1mb3JtLWZpZWxkX19sYWJlbC1jb250YWluZXJcIj5cclxuICAgIDxsYWJlbFxyXG4gICAgICBjbGFzcz1cImFyZC1sYWJlbFwiXHJcbiAgICAgIFthdHRyLmZvcl09XCJjb250cm9sKCk/Lmh0bWxJZCgpXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXJkLWxhYmVsLCBbYXJkLWxhYmVsXVwiIC8+XHJcbiAgICA8L2xhYmVsPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhcmQtZm9ybS1maWVsZF9fbm9uLWxhYmVsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGRfX2lucHV0XCI+XHJcbiAgICAgIDxuZy1jb250ZW50IC8+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJhcmQtZm9ybS1maWVsZF9faGludHNcIlxyXG4gICAgICBbY2xhc3MuYXJkLWZvcm0tZmllbGRfX3Jlc2VydmUtaGludC1saW5lXT1cInJlc2VydmVIaW50TGluZSgpXCJcclxuICAgICAgW2NsYXNzLmFyZC1mb3JtLWZpZWxkX19oaW50cy1kZWZhdWx0LWxlZnRdPVwiYWxpZ25IaW50VG9MZWZ0QnlEZWZhdWx0XCJcclxuICAgID5cclxuICAgICAgQGlmIChoYXNBbnlFcnJvcigpKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZm9ybS1maWVsZF9fZXJyb3JcIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhcmQtZXJyb3IsIFthcmQtZXJyb3JdXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGRfX2hpbnRzLWxlZnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGRfX2RlZmF1bHQtaGludFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXJkLWhpbnQ6bm90KFtsZWZ0XSk6bm90KFtyaWdodF0pLCBbYXJkLWhpbnRdOm5vdChbbGVmdF0pOm5vdChbcmlnaHRdKVwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXJkLWhpbnRbbGVmdF0sIFthcmQtaGludF1bbGVmdF1cIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFyZC1mb3JtLWZpZWxkX19oaW50cy1yaWdodFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZm9ybS1maWVsZF9fZGVmYXVsdC1oaW50XCI+XHJcbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhcmQtaGludDpub3QoW2xlZnRdKTpub3QoW3JpZ2h0XSksIFthcmQtaGludF06bm90KFtsZWZ0XSk6bm90KFtyaWdodF0pXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhcmQtaGludFtyaWdodF0sIFthcmQtaGludF1bcmlnaHRdXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -4,5 +4,6 @@ export * from './form-field.component';
|
|
|
4
4
|
export * from './form-field.module';
|
|
5
5
|
export * from './hint/hint.component';
|
|
6
6
|
export * from './hint/hint.directive';
|
|
7
|
+
export * from './horizontal-form-field.component';
|
|
7
8
|
export * from './label/label.component';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2Zvcm0tZmllbGQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lcnJvci9lcnJvci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vycm9yL2Vycm9yLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1maWVsZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9oaW50L2hpbnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9oaW50L2hpbnQuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9ob3Jpem9udGFsLWZvcm0tZmllbGQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9sYWJlbC9sYWJlbC5jb21wb25lbnQnO1xyXG5cclxuIl19
|
|
@@ -10,8 +10,7 @@ export class ArdiumFormFieldFrameComponent extends _FocusableComponentBase {
|
|
|
10
10
|
constructor(defaults) {
|
|
11
11
|
super(defaults);
|
|
12
12
|
this.hasError = input(false, { transform: v => coerceBooleanProperty(v) });
|
|
13
|
-
|
|
14
|
-
this.isFocused = false;
|
|
13
|
+
this.isSuccess = input(false, { transform: v => coerceBooleanProperty(v) });
|
|
15
14
|
//! appearance
|
|
16
15
|
/**
|
|
17
16
|
* The appearance of the component, aka the styling.
|
|
@@ -30,7 +29,8 @@ export class ArdiumFormFieldFrameComponent extends _FocusableComponentBase {
|
|
|
30
29
|
`ard-variant-${this.variant()}`,
|
|
31
30
|
this.compact() ? 'ard-compact' : '',
|
|
32
31
|
this.hasError() ? 'ard-has-error' : '',
|
|
33
|
-
this.
|
|
32
|
+
this.isSuccess() ? 'ard-is-success' : '',
|
|
33
|
+
this.isFocused() ? 'ard-focused' : 'ard-unfocused',
|
|
34
34
|
].join(' '));
|
|
35
35
|
//! prefix & suffix
|
|
36
36
|
this.prefixTemplateInput = input(undefined, { alias: 'prefixTemplate' });
|
|
@@ -38,8 +38,12 @@ export class ArdiumFormFieldFrameComponent extends _FocusableComponentBase {
|
|
|
38
38
|
this.prefixTemplate = contentChild(ArdFormFieldPrefixTemplateDirective);
|
|
39
39
|
this.suffixTemplate = contentChild(ArdFormFieldSuffixTemplateDirective);
|
|
40
40
|
}
|
|
41
|
+
//! focused state
|
|
42
|
+
set _setIsFocused(v) {
|
|
43
|
+
this.isFocused.set(v);
|
|
44
|
+
}
|
|
41
45
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldFrameComponent, deps: [{ token: ARD_FORM_FIELD_FRAME_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: { hasError: { classPropertyName: "hasError", publicName: "hasError", isSignal: true, isRequired: false, transformFunction: null },
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: { hasError: { classPropertyName: "hasError", publicName: "hasError", isSignal: true, isRequired: false, transformFunction: null }, isSuccess: { classPropertyName: "isSuccess", publicName: "isSuccess", isSignal: true, isRequired: false, transformFunction: null }, _setIsFocused: { classPropertyName: "_setIsFocused", publicName: "isFocused", isSignal: false, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, prefixTemplateInput: { classPropertyName: "prefixTemplateInput", publicName: "prefixTemplate", isSignal: true, isRequired: false, transformFunction: null }, suffixTemplateInput: { classPropertyName: "suffixTemplateInput", publicName: "suffixTemplate", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdFormFieldPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdFormFieldSuffixTemplateDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ard-form-field-frame\"\n [ngClass]=\"ngClasses()\"\n>\n <div class=\"ard-form-field-overlay\"></div>\n @if (prefixTemplateInput() ?? prefixTemplate()) {\n <div class=\"ard-form-field-prefix-container\">\n <ng-template [ngTemplateOutlet]=\"prefixTemplateInput() ?? prefixTemplate()?.template ?? null\"></ng-template>\n </div>\n }\n <div class=\"ard-form-field-content-container\">\n <ng-content></ng-content>\n </div>\n @if (suffixTemplateInput() ?? suffixTemplate()) {\n <div class=\"ard-form-field-suffix-container\">\n <ng-template [ngTemplateOutlet]=\"suffixTemplateInput() ?? suffixTemplate()?.template ?? null\"></ng-template>\n </div>\n }\n</div>\n", styles: [".ard-form-field-frame{position:relative}.ard-form-field-overlay{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
43
47
|
}
|
|
44
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumFormFieldFrameComponent, decorators: [{
|
|
45
49
|
type: Component,
|
|
@@ -47,7 +51,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
47
51
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
48
52
|
type: Inject,
|
|
49
53
|
args: [ARD_FORM_FIELD_FRAME_DEFAULTS]
|
|
50
|
-
}] }], propDecorators: {
|
|
51
|
-
type: Input
|
|
54
|
+
}] }], propDecorators: { _setIsFocused: [{
|
|
55
|
+
type: Input,
|
|
56
|
+
args: [{ alias: 'isFocused' }]
|
|
52
57
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1mcmFtZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2Zvcm0tZmllbGQtZnJhbWUvZm9ybS1maWVsZC1mcmFtZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2Zvcm0tZmllbGQtZnJhbWUvZm9ybS1maWVsZC1mcmFtZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUVMLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsWUFBWSxFQUNaLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRixPQUFPLEVBQUUsNkJBQTZCLEVBQTZCLE1BQU0sNkJBQTZCLENBQUM7QUFDdkcsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQVN6SCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsdUJBQXVCO0lBRXhFLFlBQW1ELFFBQW1DO1FBQ3BGLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUdULGFBQVEsR0FBRyxLQUFLLENBQWUsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BGLGNBQVMsR0FBRyxLQUFLLENBQWUsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBUTlGLGNBQWM7UUFDZDs7V0FFRztRQUNNLGVBQVUsR0FBRyxLQUFLLENBQXdCLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25GOztXQUVHO1FBQ00sWUFBTyxHQUFHLEtBQUssQ0FBcUIsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekU7O1dBRUc7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFlLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVuRixjQUFTLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRSxDQUN6QztZQUNFLGtCQUFrQixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDckMsZUFBZSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZUFBZTtTQUNuRCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDWixDQUFDO1FBRUYsbUJBQW1CO1FBQ1Ysd0JBQW1CLEdBQUcsS0FBSyxDQUE2QixTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ2hHLHdCQUFtQixHQUFHLEtBQUssQ0FBNkIsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUNoRyxtQkFBYyxHQUFHLFlBQVksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ25FLG1CQUFjLEdBQUcsWUFBWSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7SUF6QzVFLENBQUM7SUFLRCxpQkFBaUI7SUFDakIsSUFDSSxhQUFhLENBQUMsQ0FBVTtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDOytHQWJVLDZCQUE2QixrQkFFcEIsNkJBQTZCO21HQUZ0Qyw2QkFBNkIsbXNDQTRDRCxtQ0FBbUMsaUdBQ25DLG1DQUFtQyx1RkN0RTVFLGlzQkFtQkE7OzRGRE1hLDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDRSxzQkFBc0IsaUJBR2pCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQUlsQyxNQUFNOzJCQUFDLDZCQUE2Qjt5Q0FTN0MsYUFBYTtzQkFEaEIsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgY29tcHV0ZWQsXHJcbiAgY29udGVudENoaWxkLFxyXG4gIGlucHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IF9Gb2N1c2FibGVDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vX2ludGVybmFsL2ZvY3VzYWJsZS1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtRWxlbWVudEFwcGVhcmFuY2UsIEZvcm1FbGVtZW50VmFyaWFudCB9IGZyb20gJy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xyXG5pbXBvcnQgeyBBUkRfRk9STV9GSUVMRF9GUkFNRV9ERUZBVUxUUywgQXJkRm9ybUZpZWxkRnJhbWVEZWZhdWx0cyB9IGZyb20gJy4vZm9ybS1maWVsZC1mcmFtZS5kZWZhdWx0cyc7XHJcbmltcG9ydCB7IEFyZEZvcm1GaWVsZFByZWZpeFRlbXBsYXRlRGlyZWN0aXZlLCBBcmRGb3JtRmllbGRTdWZmaXhUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybS1maWVsZC1mcmFtZS5kaXJlY3RpdmVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXJkLWZvcm0tZmllbGQtZnJhbWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWZpZWxkLWZyYW1lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWZpZWxkLWZyYW1lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bUZvcm1GaWVsZEZyYW1lQ29tcG9uZW50IGV4dGVuZHMgX0ZvY3VzYWJsZUNvbXBvbmVudEJhc2Uge1xyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBBcmRGb3JtRmllbGRGcmFtZURlZmF1bHRzO1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQVJEX0ZPUk1fRklFTERfRlJBTUVfREVGQVVMVFMpIGRlZmF1bHRzOiBBcmRGb3JtRmllbGRGcmFtZURlZmF1bHRzKSB7XHJcbiAgICBzdXBlcihkZWZhdWx0cyk7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBoYXNFcnJvciA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuICByZWFkb25seSBpc1N1Y2Nlc3MgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIC8vISBmb2N1c2VkIHN0YXRlXHJcbiAgQElucHV0KHsgYWxpYXM6ICdpc0ZvY3VzZWQnIH0pXHJcbiAgc2V0IF9zZXRJc0ZvY3VzZWQodjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQuc2V0KHYpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGFwcGVhcmFuY2VcclxuICAvKipcclxuICAgKiBUaGUgYXBwZWFyYW5jZSBvZiB0aGUgY29tcG9uZW50LCBha2EgdGhlIHN0eWxpbmcuXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYXBwZWFyYW5jZSA9IGlucHV0PEZvcm1FbGVtZW50QXBwZWFyYW5jZT4oRm9ybUVsZW1lbnRBcHBlYXJhbmNlLk91dGxpbmVkKTtcclxuICAvKipcclxuICAgKiBUaGUgdmFyaWFudCBvZiB0aGUgY29tcG9uZW50LCBha2EgdGhlIHNoYXBlLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHZhcmlhbnQgPSBpbnB1dDxGb3JtRWxlbWVudFZhcmlhbnQ+KEZvcm1FbGVtZW50VmFyaWFudC5Sb3VuZGVkKTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0byB1c2UgdGhlIGNvbXBhY3Qgc3R5bGluZyBvciBub3QuXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29tcGFjdCA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgbmdDbGFzc2VzID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PlxyXG4gICAgW1xyXG4gICAgICBgYXJkLWFwcGVhcmFuY2UtJHt0aGlzLmFwcGVhcmFuY2UoKX1gLFxyXG4gICAgICBgYXJkLXZhcmlhbnQtJHt0aGlzLnZhcmlhbnQoKX1gLFxyXG4gICAgICB0aGlzLmNvbXBhY3QoKSA/ICdhcmQtY29tcGFjdCcgOiAnJyxcclxuICAgICAgdGhpcy5oYXNFcnJvcigpID8gJ2FyZC1oYXMtZXJyb3InIDogJycsXHJcbiAgICAgIHRoaXMuaXNTdWNjZXNzKCkgPyAnYXJkLWlzLXN1Y2Nlc3MnIDogJycsXHJcbiAgICAgIHRoaXMuaXNGb2N1c2VkKCkgPyAnYXJkLWZvY3VzZWQnIDogJ2FyZC11bmZvY3VzZWQnLFxyXG4gICAgXS5qb2luKCcgJylcclxuICApO1xyXG5cclxuICAvLyEgcHJlZml4ICYgc3VmZml4XHJcbiAgcmVhZG9ubHkgcHJlZml4VGVtcGxhdGVJbnB1dCA9IGlucHV0PE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+Pih1bmRlZmluZWQsIHsgYWxpYXM6ICdwcmVmaXhUZW1wbGF0ZScgfSk7XHJcbiAgcmVhZG9ubHkgc3VmZml4VGVtcGxhdGVJbnB1dCA9IGlucHV0PE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+Pih1bmRlZmluZWQsIHsgYWxpYXM6ICdzdWZmaXhUZW1wbGF0ZScgfSk7XHJcbiAgcmVhZG9ubHkgcHJlZml4VGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkRm9ybUZpZWxkUHJlZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZEZvcm1GaWVsZFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlKTtcclxufVxyXG4iLCI8ZGl2XG4gIGNsYXNzPVwiYXJkLWZvcm0tZmllbGQtZnJhbWVcIlxuICBbbmdDbGFzc109XCJuZ0NsYXNzZXMoKVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJhcmQtZm9ybS1maWVsZC1vdmVybGF5XCI+PC9kaXY+XG4gIEBpZiAocHJlZml4VGVtcGxhdGVJbnB1dCgpID8/IHByZWZpeFRlbXBsYXRlKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGQtcHJlZml4LWNvbnRhaW5lclwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInByZWZpeFRlbXBsYXRlSW5wdXQoKSA/PyBwcmVmaXhUZW1wbGF0ZSgpPy50ZW1wbGF0ZSA/PyBudWxsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiYXJkLWZvcm0tZmllbGQtY29udGVudC1jb250YWluZXJcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICBAaWYgKHN1ZmZpeFRlbXBsYXRlSW5wdXQoKSA/PyBzdWZmaXhUZW1wbGF0ZSgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImFyZC1mb3JtLWZpZWxkLXN1ZmZpeC1jb250YWluZXJcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJzdWZmaXhUZW1wbGF0ZUlucHV0KCkgPz8gc3VmZml4VGVtcGxhdGUoKT8udGVtcGxhdGUgPz8gbnVsbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
|
|
@@ -36,6 +36,7 @@ export class ArdiumDigitInputComponent extends _FormFieldComponentBase {
|
|
|
36
36
|
this._oldConfigArrayDataLength = this.configArrayData().length;
|
|
37
37
|
this._emitChange();
|
|
38
38
|
});
|
|
39
|
+
this._wasViewInit = false;
|
|
39
40
|
//! value two-way binding
|
|
40
41
|
this.outputAsString = input(this._DEFAULTS.outputAsString, { transform: v => coerceBooleanProperty(v) });
|
|
41
42
|
this.outputControlValueAccessorOnFinish = input(false, { transform: v => coerceBooleanProperty(v) });
|
|
@@ -58,13 +59,22 @@ export class ArdiumDigitInputComponent extends _FormFieldComponentBase {
|
|
|
58
59
|
isInputEmpty(index) {
|
|
59
60
|
return !this.model.isDefinedAtIndex(index);
|
|
60
61
|
}
|
|
61
|
-
//! control value accessor's write value implementation
|
|
62
62
|
writeValue(v) {
|
|
63
|
+
if (!this._wasViewInit) {
|
|
64
|
+
this._valueBeforeViewInit = v;
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
63
67
|
this._writeValue(v);
|
|
64
68
|
}
|
|
65
69
|
_writeValue(v) {
|
|
66
70
|
return this.model.writeValue(v);
|
|
67
71
|
}
|
|
72
|
+
ngAfterViewInit() {
|
|
73
|
+
this._wasViewInit = true;
|
|
74
|
+
if (this._valueBeforeViewInit) {
|
|
75
|
+
this._writeValue(this._valueBeforeViewInit);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
68
78
|
set value(v) {
|
|
69
79
|
this.writeValue(v);
|
|
70
80
|
}
|
|
@@ -83,10 +93,11 @@ export class ArdiumDigitInputComponent extends _FormFieldComponentBase {
|
|
|
83
93
|
this.model.validateInputAndSetValue(char, index + i);
|
|
84
94
|
});
|
|
85
95
|
this.focusByIndex(index - 1 + Math.min(value.length, maxLength));
|
|
96
|
+
this._emitChange();
|
|
86
97
|
}
|
|
87
98
|
onInput(event, index) {
|
|
88
|
-
const
|
|
89
|
-
if (!
|
|
99
|
+
const changeSuccessful = this._updateSingleInputValue(event.target.value, index);
|
|
100
|
+
if (!changeSuccessful)
|
|
90
101
|
return;
|
|
91
102
|
this.focusByIndex(index + 1);
|
|
92
103
|
}
|
|
@@ -95,9 +106,6 @@ export class ArdiumDigitInputComponent extends _FormFieldComponentBase {
|
|
|
95
106
|
if (!changeResult?.wasChanged)
|
|
96
107
|
return false;
|
|
97
108
|
this._emitChange();
|
|
98
|
-
if (this.model.isValueFull()) {
|
|
99
|
-
this.blur();
|
|
100
|
-
}
|
|
101
109
|
return true;
|
|
102
110
|
}
|
|
103
111
|
focusByIndex(index, tryFocusingNext, direction) {
|
|
@@ -106,6 +114,9 @@ export class ArdiumDigitInputComponent extends _FormFieldComponentBase {
|
|
|
106
114
|
const nextEl = this.inputs()[index]?.nativeElement;
|
|
107
115
|
if (!nextEl)
|
|
108
116
|
return false;
|
|
117
|
+
if (nextEl.getAttribute('data-ard-static') !== null) {
|
|
118
|
+
return this.focusByIndex(index + (direction ?? 1));
|
|
119
|
+
}
|
|
109
120
|
nextEl.focus();
|
|
110
121
|
if (tryFocusingNext && direction && document.activeElement !== nextEl) {
|
|
111
122
|
return this.focusByIndex(index + direction);
|
|
@@ -163,7 +174,7 @@ export class ArdiumDigitInputComponent extends _FormFieldComponentBase {
|
|
|
163
174
|
provide: _FormFieldComponentBase,
|
|
164
175
|
useExisting: ArdiumDigitInputComponent,
|
|
165
176
|
},
|
|
166
|
-
], viewQueries: [{ propertyName: "inputs", predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"ard-digit-input\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-error]=\"hasError()\"\r\n>\r\n @for (data of configArrayData(); track $index) {\r\n <div\r\n class=\"ard-digit-input__item\"\r\n [class.ard-digit-input__item-with-input]=\"data.type === 'input'\"\r\n >\r\n @if (data.type === 'input') {\r\n <input\r\n #input\r\n #focusableElement\r\n class=\"ard-digit-input__input\"\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [readonly]=\"data.readonly\"\r\n [placeholder]=\"data.placeholder\"\r\n [class.ard-digit-input__input-readonly]=\"data.readonly\"\r\n [class.ard-digit-input__input-empty]=\"isInputEmpty(data.index!)\"\r\n (paste)=\"onPaste($event, data.index!)\"\r\n (input)=\"onInput($event, data.index!)\"\r\n (focus)=\"onFocusMaster($event, data.index!)\"\r\n (blur)=\"onBlurMaster($event, data.index!)\"\r\n (keydown)=\"onKeydown($event, data.index!)\"\r\n />\r\n } @else {\r\n <div class=\"ard-digit-input__static\">\r\n {{ data.char }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
177
|
+
], viewQueries: [{ propertyName: "inputs", predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"ard-digit-input\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-error]=\"hasError()\"\r\n [class.ard-is-success]=\"isSuccess()\"\r\n>\r\n @for (data of configArrayData(); track $index) {\r\n <div\r\n class=\"ard-digit-input__item\"\r\n [class.ard-digit-input__item-with-input]=\"data.type === 'input'\"\r\n >\r\n @if (data.type === 'input') {\r\n <input\r\n #input\r\n #focusableElement\r\n class=\"ard-digit-input__input\"\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [readonly]=\"data.readonly\"\r\n [placeholder]=\"data.placeholder\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [class.ard-digit-input__input-readonly]=\"data.readonly\"\r\n [class.ard-digit-input__input-empty]=\"isInputEmpty(data.index!)\"\r\n (paste)=\"onPaste($event, data.index!)\"\r\n (input)=\"onInput($event, data.index!)\"\r\n (focus)=\"onFocusMaster($event, data.index!)\"\r\n (blur)=\"onBlurMaster($event, data.index!)\"\r\n (keydown)=\"onKeydown($event, data.index!)\"\r\n />\r\n } @else {\r\n <div class=\"ard-digit-input__static\">\r\n {{ data.char }}\r\n </div>\r\n <input\r\n #input\r\n type=\"text\"\r\n class=\"ard-digit-input__static-input\"\r\n data-ard-static\r\n autocomplete=\"off\"\r\n tabindex=\"-1\"\r\n aria-hidden=\"true\"\r\n [value]=\"data.char\"\r\n />\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [".ard-digit-input__static-input{position:absolute;opacity:0;appearance:none;pointer-events:none;width:0;height:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
167
178
|
}
|
|
168
179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumDigitInputComponent, decorators: [{
|
|
169
180
|
type: Component,
|
|
@@ -177,11 +188,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
177
188
|
provide: _FormFieldComponentBase,
|
|
178
189
|
useExisting: ArdiumDigitInputComponent,
|
|
179
190
|
},
|
|
180
|
-
], template: "<div\r\n class=\"ard-digit-input\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-error]=\"hasError()\"\r\n>\r\n @for (data of configArrayData(); track $index) {\r\n <div\r\n class=\"ard-digit-input__item\"\r\n [class.ard-digit-input__item-with-input]=\"data.type === 'input'\"\r\n >\r\n @if (data.type === 'input') {\r\n <input\r\n #input\r\n #focusableElement\r\n class=\"ard-digit-input__input\"\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [readonly]=\"data.readonly\"\r\n [placeholder]=\"data.placeholder\"\r\n [class.ard-digit-input__input-readonly]=\"data.readonly\"\r\n [class.ard-digit-input__input-empty]=\"isInputEmpty(data.index!)\"\r\n (paste)=\"onPaste($event, data.index!)\"\r\n (input)=\"onInput($event, data.index!)\"\r\n (focus)=\"onFocusMaster($event, data.index!)\"\r\n (blur)=\"onBlurMaster($event, data.index!)\"\r\n (keydown)=\"onKeydown($event, data.index!)\"\r\n />\r\n } @else {\r\n <div class=\"ard-digit-input__static\">\r\n {{ data.char }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n" }]
|
|
191
|
+
], template: "<div\r\n class=\"ard-digit-input\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-error]=\"hasError()\"\r\n [class.ard-is-success]=\"isSuccess()\"\r\n>\r\n @for (data of configArrayData(); track $index) {\r\n <div\r\n class=\"ard-digit-input__item\"\r\n [class.ard-digit-input__item-with-input]=\"data.type === 'input'\"\r\n >\r\n @if (data.type === 'input') {\r\n <input\r\n #input\r\n #focusableElement\r\n class=\"ard-digit-input__input\"\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [readonly]=\"data.readonly\"\r\n [placeholder]=\"data.placeholder\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [class.ard-digit-input__input-readonly]=\"data.readonly\"\r\n [class.ard-digit-input__input-empty]=\"isInputEmpty(data.index!)\"\r\n (paste)=\"onPaste($event, data.index!)\"\r\n (input)=\"onInput($event, data.index!)\"\r\n (focus)=\"onFocusMaster($event, data.index!)\"\r\n (blur)=\"onBlurMaster($event, data.index!)\"\r\n (keydown)=\"onKeydown($event, data.index!)\"\r\n />\r\n } @else {\r\n <div class=\"ard-digit-input__static\">\r\n {{ data.char }}\r\n </div>\r\n <input\r\n #input\r\n type=\"text\"\r\n class=\"ard-digit-input__static-input\"\r\n data-ard-static\r\n autocomplete=\"off\"\r\n tabindex=\"-1\"\r\n aria-hidden=\"true\"\r\n [value]=\"data.char\"\r\n />\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [".ard-digit-input__static-input{position:absolute;opacity:0;appearance:none;pointer-events:none;width:0;height:0}\n"] }]
|
|
181
192
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
182
193
|
type: Inject,
|
|
183
194
|
args: [ARD_DIGIT_INPUT_DEFAULTS]
|
|
184
195
|
}] }], propDecorators: { value: [{
|
|
185
196
|
type: Input
|
|
186
197
|
}] } });
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvZGlnaXQtaW5wdXQvZGlnaXQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvZGlnaXQtaW5wdXQvZGlnaXQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFFTCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBeUIsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQXNCdEQsTUFBTSxPQUFPLHlCQUNYLFNBQVEsdUJBQXVCO0lBSS9CLFlBQThDLFFBQStCO1FBQzNFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUdsQixjQUFjO1FBQ0wsV0FBTSxHQUFHLFlBQVksQ0FBK0IsT0FBTyxDQUFDLENBQUM7UUFFdEUsY0FBYztRQUNHLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuRCxjQUFjO1FBQ0wsZUFBVSxHQUFHLEtBQUssQ0FBd0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRSxZQUFPLEdBQUcsS0FBSyxDQUFxQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELFVBQUssR0FBRyxLQUFLLENBQWtCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckQsWUFBTyxHQUFHLEtBQUssQ0FBZSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVwRyxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQVcsRUFBRSxDQUN6QztZQUNFLGtCQUFrQixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDckMsZUFBZSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDL0IsYUFBYSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDcEMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQ1osQ0FBQztRQUVGLHVCQUF1QjtRQUNkLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUF5QjtZQUN2RCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDeEMsQ0FBQyxDQUFDO1FBQ00sb0JBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztRQUU5Qyw4QkFBeUIsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5QiwwQkFBcUIsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMseUJBQXlCO2dCQUFFLE9BQU87WUFFN0UsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDL0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBbUJILHlCQUF5QjtRQUNoQixtQkFBYyxHQUFHLEtBQUssQ0FBZSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVsSCx1Q0FBa0MsR0FBRyxLQUFLLENBQWUsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBTTlHLGdCQUFXLEdBQUcsTUFBTSxFQUFxQyxDQUFDO1FBRTFELGdCQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFFckMsbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBc0MsRUFBRTtZQUN6RSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILGtCQUFrQjtRQUNULGtCQUFhLEdBQUcsTUFBTSxFQUFxQyxDQUFDO1FBRTVELG9CQUFlLEdBQUcsTUFBTSxDQUFTLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDMUQsbUJBQWMsR0FBRyxNQUFNLENBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQTdFakUsQ0FBQztJQXNDUSxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYTtRQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsdURBQXVEO0lBQ3ZELFVBQVUsQ0FBQyxDQUFNO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBQ08sV0FBVyxDQUFDLENBQU07UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBT0QsSUFDSSxLQUFLLENBQUMsQ0FBb0M7UUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBZ0JELGtCQUFrQjtJQUNsQixPQUFPLENBQUMsS0FBcUIsRUFBRSxLQUFhO1FBQzFDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBRW5CLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQy9DLEtBQUs7YUFDRixLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQzthQUNuQixLQUFLLENBQUMsRUFBRSxDQUFDO2FBQ1QsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQVksRUFBRSxLQUFhO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBRSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDTyx1QkFBdUIsQ0FBQyxLQUFhLEVBQUUsS0FBYTtRQUMxRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVU7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUU1QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFbkIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUdELFlBQVksQ0FBQyxLQUFhLEVBQUUsZUFBeUIsRUFBRSxTQUFrQjtRQUN2RSxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDN0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLGFBQWEsQ0FBQztRQUNuRCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRTFCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksZUFBZSxJQUFJLFNBQVMsSUFBSSxRQUFRLENBQUMsYUFBYSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3RFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDLGFBQWEsS0FBSyxNQUFNLENBQUM7SUFDM0MsQ0FBQztJQUNELHFCQUFxQjtJQUNyQixhQUFhLENBQUMsS0FBaUIsRUFBRSxLQUFhO1FBQzVDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUNELFlBQVksQ0FBQyxLQUFpQixFQUFFLEtBQWE7UUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ1MsV0FBVztRQUNuQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFDRCxTQUFTLENBQUMsS0FBb0IsRUFBRSxLQUFhO1FBQzNDLFFBQVEsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLEtBQUssV0FBVztnQkFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLE9BQU87WUFDVCxLQUFLLFlBQVk7Z0JBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxPQUFPO1lBQ1QsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDOUIsT0FBTztZQUNULEtBQUssS0FBSztnQkFDUixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEQsT0FBTztZQUNULEtBQUssV0FBVyxDQUFDO1lBQ2pCLEtBQUssUUFBUTtnQkFDWCxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsT0FBTztRQUNYLENBQUM7SUFDSCxDQUFDOytHQXpLVSx5QkFBeUIsa0JBS2hCLHdCQUF3QjttR0FMakMseUJBQXlCLDJ3Q0FaekI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2dCQUN4RCxLQUFLLEVBQUUsSUFBSTthQUNaO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsV0FBVyxFQUFFLHlCQUF5QjthQUN2QztTQUNGLHFKQ3hDSCw0bUNBbUNBOzs0RkRPYSx5QkFBeUI7a0JBbEJyQyxTQUFTOytCQUNFLGlCQUFpQixpQkFHWixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsdUJBQXVCOzRCQUNoQyxXQUFXLDJCQUEyQjt5QkFDdkM7cUJBQ0Y7OzBCQU9ZLE1BQU07MkJBQUMsd0JBQXdCO3lDQStEeEMsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGNvbXB1dGVkLFxyXG4gIGVmZmVjdCxcclxuICBmb3J3YXJkUmVmLFxyXG4gIGlucHV0LFxyXG4gIG91dHB1dCxcclxuICB2aWV3Q2hpbGRyZW4sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xyXG5pbXBvcnQgeyBfRm9ybUZpZWxkQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL19pbnRlcm5hbC9mb3JtLWZpZWxkLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1FbGVtZW50QXBwZWFyYW5jZSwgRm9ybUVsZW1lbnRWYXJpYW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvdGhlbWluZy50eXBlcyc7XHJcbmltcG9ydCB7IEFSRF9ESUdJVF9JTlBVVF9ERUZBVUxUUywgQXJkRGlnaXRJbnB1dERlZmF1bHRzIH0gZnJvbSAnLi9kaWdpdC1pbnB1dC5kZWZhdWx0cyc7XHJcbmltcG9ydCB7IERpZ2l0SW5wdXRNb2RlbCB9IGZyb20gJy4vZGlnaXQtaW5wdXQubW9kZWwnO1xyXG5pbXBvcnQgeyBEaWdpdElucHV0Q29uZmlnLCBEaWdpdElucHV0U2hhcGUgfSBmcm9tICcuL2RpZ2l0LWlucHV0LnR5cGVzJztcclxuaW1wb3J0IHsgRGlnaXRJbnB1dE1vZGVsSG9zdCB9IGZyb20gJy4vZGlnaXQtaW5wdXQudXRpbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcmQtZGlnaXQtaW5wdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWdpdC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGlnaXQtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtRGlnaXRJbnB1dENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogX0Zvcm1GaWVsZENvbXBvbmVudEJhc2UsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBBcmRpdW1EaWdpdElucHV0Q29tcG9uZW50LFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtRGlnaXRJbnB1dENvbXBvbmVudFxyXG4gIGV4dGVuZHMgX0Zvcm1GaWVsZENvbXBvbmVudEJhc2VcclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBEaWdpdElucHV0TW9kZWxIb3N0LCBPbkluaXRcclxue1xyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBBcmREaWdpdElucHV0RGVmYXVsdHM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfRElHSVRfSU5QVVRfREVGQVVMVFMpIGRlZmF1bHRzOiBBcmREaWdpdElucHV0RGVmYXVsdHMpIHtcclxuICAgIHN1cGVyKGRlZmF1bHRzKTtcclxuICB9XHJcblxyXG4gIC8vISBpbnB1dHMgcmVmXHJcbiAgcmVhZG9ubHkgaW5wdXRzID0gdmlld0NoaWxkcmVuPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+KCdpbnB1dCcpO1xyXG5cclxuICAvLyEgZGF0YSBtb2RlbFxyXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9kZWwgPSBuZXcgRGlnaXRJbnB1dE1vZGVsKHRoaXMpO1xyXG5cclxuICAvLyEgYXBwZWFyYW5jZVxyXG4gIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBpbnB1dDxGb3JtRWxlbWVudEFwcGVhcmFuY2U+KHRoaXMuX0RFRkFVTFRTLmFwcGVhcmFuY2UpO1xyXG4gIHJlYWRvbmx5IHZhcmlhbnQgPSBpbnB1dDxGb3JtRWxlbWVudFZhcmlhbnQ+KHRoaXMuX0RFRkFVTFRTLnZhcmlhbnQpO1xyXG4gIHJlYWRvbmx5IHNoYXBlID0gaW5wdXQ8RGlnaXRJbnB1dFNoYXBlPih0aGlzLl9ERUZBVUxUUy5zaGFwZSk7XHJcblxyXG4gIHJlYWRvbmx5IGNvbXBhY3QgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLmNvbXBhY3QsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgbmdDbGFzc2VzID0gY29tcHV0ZWQoKCk6IHN0cmluZyA9PlxyXG4gICAgW1xyXG4gICAgICBgYXJkLWFwcGVhcmFuY2UtJHt0aGlzLmFwcGVhcmFuY2UoKX1gLFxyXG4gICAgICBgYXJkLXZhcmlhbnQtJHt0aGlzLnZhcmlhbnQoKX1gLFxyXG4gICAgICBgYXJkLXNoYXBlLSR7dGhpcy5zaGFwZSgpfWAsXHJcbiAgICAgIHRoaXMuY29tcGFjdCgpID8gJ2FyZC1jb21wYWN0JyA6ICcnLFxyXG4gICAgXS5qb2luKCcgJylcclxuICApO1xyXG5cclxuICAvLyEgbW9kZWwgYWNjZXNzIHBvaW50c1xyXG4gIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0LnJlcXVpcmVkPHZvaWQsIERpZ2l0SW5wdXRDb25maWc+KHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiB0aGlzLm1vZGVsLnNldENvbmZpZyh2KSxcclxuICB9KTtcclxuICByZWFkb25seSBjb25maWdBcnJheURhdGEgPSB0aGlzLm1vZGVsLmNvbmZpZ0FycmF5RGF0YTtcclxuXHJcbiAgcHJpdmF0ZSBfb2xkQ29uZmlnQXJyYXlEYXRhTGVuZ3RoID0gLTE7XHJcbiAgcmVhZG9ubHkgY29uZmlnQXJyYXlEYXRhRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcclxuICAgIGlmICh0aGlzLmNvbmZpZ0FycmF5RGF0YSgpLmxlbmd0aCA9PT0gdGhpcy5fb2xkQ29uZmlnQXJyYXlEYXRhTGVuZ3RoKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fb2xkQ29uZmlnQXJyYXlEYXRhTGVuZ3RoID0gdGhpcy5jb25maWdBcnJheURhdGEoKS5sZW5ndGg7XHJcbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XHJcbiAgfSk7XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuX29sZENvbmZpZ0FycmF5RGF0YUxlbmd0aCA9IHRoaXMuY29uZmlnQXJyYXlEYXRhKCkubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgaXNJbnB1dEVtcHR5KGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5tb2RlbC5pc0RlZmluZWRBdEluZGV4KGluZGV4KTtcclxuICB9XHJcblxyXG4gIC8vISBjb250cm9sIHZhbHVlIGFjY2Vzc29yJ3Mgd3JpdGUgdmFsdWUgaW1wbGVtZW50YXRpb25cclxuICB3cml0ZVZhbHVlKHY6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fd3JpdGVWYWx1ZSh2KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfd3JpdGVWYWx1ZSh2OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGVsLndyaXRlVmFsdWUodik7XHJcbiAgfVxyXG5cclxuICAvLyEgdmFsdWUgdHdvLXdheSBiaW5kaW5nXHJcbiAgcmVhZG9ubHkgb3V0cHV0QXNTdHJpbmcgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLm91dHB1dEFzU3RyaW5nLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIHJlYWRvbmx5IG91dHB1dENvbnRyb2xWYWx1ZUFjY2Vzc29yT25GaW5pc2ggPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZhbHVlKHY6IHN0cmluZyB8IChzdHJpbmcgfCBudWxsKVtdIHwgbnVsbCkge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKHYpO1xyXG4gIH1cclxuICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG91dHB1dDxzdHJpbmcgfCAoc3RyaW5nIHwgbnVsbClbXSB8IG51bGw+KCk7XHJcblxyXG4gIHJlYWRvbmx5IHN0cmluZ1ZhbHVlID0gdGhpcy5tb2RlbC5zdHJpbmdWYWx1ZTtcclxuXHJcbiAgcmVhZG9ubHkgZW1pdHRhYmxlVmFsdWUgPSBjb21wdXRlZCgoKTogc3RyaW5nIHwgKHN0cmluZyB8IG51bGwpW10gfCBudWxsID0+IHtcclxuICAgIGlmICh0aGlzLm91dHB1dEFzU3RyaW5nKCkpIHJldHVybiB0aGlzLm1vZGVsLnN0cmluZ1ZhbHVlKCk7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbC52YWx1ZSgpO1xyXG4gIH0pO1xyXG5cclxuICAvLyEgZXZlbnQgZW1pdHRlcnNcclxuICByZWFkb25seSBmaW5pc2hlZFZhbHVlID0gb3V0cHV0PHN0cmluZyB8IChzdHJpbmcgfCBudWxsKVtdIHwgbnVsbD4oKTtcclxuXHJcbiAgcmVhZG9ubHkgZm9jdXNJbmRleEV2ZW50ID0gb3V0cHV0PG51bWJlcj4oeyBhbGlhczogJ2ZvY3VzSW5kZXgnIH0pO1xyXG4gIHJlYWRvbmx5IGJsdXJJbmRleEV2ZW50ID0gb3V0cHV0PG51bWJlcj4oeyBhbGlhczogJ2JsdXJJbmRleCcgfSk7XHJcblxyXG4gIC8vISBldmVudCBoYW5kbGVyc1xyXG4gIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQnKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGlmICghdmFsdWUpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLmlucHV0cygpLmxlbmd0aCAtIGluZGV4O1xyXG4gICAgdmFsdWVcclxuICAgICAgLnNsaWNlKDAsIG1heExlbmd0aClcclxuICAgICAgLnNwbGl0KCcnKVxyXG4gICAgICAuZm9yRWFjaCgoY2hhciwgaSkgPT4ge1xyXG4gICAgICAgIHRoaXMubW9kZWwudmFsaWRhdGVJbnB1dEFuZFNldFZhbHVlKGNoYXIsIGluZGV4ICsgaSk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5mb2N1c0J5SW5kZXgoaW5kZXggLSAxICsgTWF0aC5taW4odmFsdWUubGVuZ3RoLCBtYXhMZW5ndGgpKTtcclxuICB9XHJcbiAgb25JbnB1dChldmVudDogRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IHdhc0NoYW5nZWQgPSB0aGlzLl91cGRhdGVTaW5nbGVJbnB1dFZhbHVlKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUsIGluZGV4KTtcclxuICAgIGlmICghd2FzQ2hhbmdlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5mb2N1c0J5SW5kZXgoaW5kZXggKyAxKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdXBkYXRlU2luZ2xlSW5wdXRWYWx1ZSh2YWx1ZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjaGFuZ2VSZXN1bHQgPSB0aGlzLm1vZGVsLnZhbGlkYXRlSW5wdXRBbmRTZXRWYWx1ZSh2YWx1ZSwgaW5kZXgpO1xyXG4gICAgaWYgKCFjaGFuZ2VSZXN1bHQ/Lndhc0NoYW5nZWQpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZWwuaXNWYWx1ZUZ1bGwoKSkge1xyXG4gICAgICB0aGlzLmJsdXIoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBmb2N1c0J5SW5kZXgoaW5kZXg6IG51bWJlcik6IGJvb2xlYW47XHJcbiAgZm9jdXNCeUluZGV4KGluZGV4OiBudW1iZXIsIHRyeUZvY3VzaW5nTmV4dDogYm9vbGVhbiwgZGlyZWN0aW9uOiAxIHwgLTEpOiBib29sZWFuO1xyXG4gIGZvY3VzQnlJbmRleChpbmRleDogbnVtYmVyLCB0cnlGb2N1c2luZ05leHQ/OiBib29sZWFuLCBkaXJlY3Rpb24/OiAxIHwgLTEpOiBib29sZWFuIHtcclxuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5pbnB1dHMoKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuICAgIGNvbnN0IG5leHRFbCA9IHRoaXMuaW5wdXRzKClbaW5kZXhdPy5uYXRpdmVFbGVtZW50O1xyXG4gICAgaWYgKCFuZXh0RWwpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBuZXh0RWwuZm9jdXMoKTtcclxuICAgIGlmICh0cnlGb2N1c2luZ05leHQgJiYgZGlyZWN0aW9uICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IG5leHRFbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5mb2N1c0J5SW5kZXgoaW5kZXggKyBkaXJlY3Rpb24pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IG5leHRFbDtcclxuICB9XHJcbiAgLy9mb2N1cywgYmx1ciwgY2hhbmdlXHJcbiAgb25Gb2N1c01hc3RlcihldmVudDogRm9jdXNFdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5mb2N1c0luZGV4RXZlbnQuZW1pdChpbmRleCk7XHJcbiAgICB0aGlzLm9uRm9jdXMoZXZlbnQpO1xyXG4gIH1cclxuICBvbkJsdXJNYXN0ZXIoZXZlbnQ6IEZvY3VzRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuYmx1ckluZGV4RXZlbnQuZW1pdChpbmRleCk7XHJcbiAgICB0aGlzLm9uQmx1cihldmVudCk7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBfZW1pdENoYW5nZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHYgPSB0aGlzLmVtaXR0YWJsZVZhbHVlKCk7XHJcbiAgICBpZiAoIXRoaXMub3V0cHV0Q29udHJvbFZhbHVlQWNjZXNzb3JPbkZpbmlzaCgpIHx8IHRoaXMubW9kZWwuaXNWYWx1ZUZ1bGwoKSkgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odik7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XHJcbiAgICBpZiAodGhpcy5tb2RlbC5pc1ZhbHVlRnVsbCgpKSB7XHJcbiAgICAgIHRoaXMuZmluaXNoZWRWYWx1ZS5lbWl0KHYpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XHJcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XHJcbiAgICAgICAgdGhpcy5mb2N1c0J5SW5kZXgoaW5kZXggLSAxLCB0cnVlLCAtMSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcclxuICAgICAgICB0aGlzLmZvY3VzQnlJbmRleChpbmRleCArIDEsIHRydWUsICsxKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIGNhc2UgJ0hvbWUnOlxyXG4gICAgICAgIHRoaXMuZm9jdXNCeUluZGV4KDAsIHRydWUsIDEpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgY2FzZSAnRW5kJzpcclxuICAgICAgICB0aGlzLmZvY3VzQnlJbmRleCh0aGlzLmlucHV0cy5sZW5ndGggLSAxLCB0cnVlLCAtMSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICBjYXNlICdCYWNrc3BhY2UnOlxyXG4gICAgICBjYXNlICdEZWxldGUnOlxyXG4gICAgICAgIHRoaXMuX3VwZGF0ZVNpbmdsZUlucHV0VmFsdWUoJycsIGluZGV4KTtcclxuICAgICAgICB0aGlzLmZvY3VzQnlJbmRleChpbmRleCAtIDEsIHRydWUsIC0xKTtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiYXJkLWRpZ2l0LWlucHV0XCJcclxuICBbbmdDbGFzc109XCJuZ0NsYXNzZXMoKVwiXHJcbiAgW2NsYXNzLmFyZC1oYXMtZXJyb3JdPVwiaGFzRXJyb3IoKVwiXHJcbj5cclxuICBAZm9yIChkYXRhIG9mIGNvbmZpZ0FycmF5RGF0YSgpOyB0cmFjayAkaW5kZXgpIHtcclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImFyZC1kaWdpdC1pbnB1dF9faXRlbVwiXHJcbiAgICBbY2xhc3MuYXJkLWRpZ2l0LWlucHV0X19pdGVtLXdpdGgtaW5wdXRdPVwiZGF0YS50eXBlID09PSAnaW5wdXQnXCJcclxuICA+XHJcbiAgICBAaWYgKGRhdGEudHlwZSA9PT0gJ2lucHV0Jykge1xyXG4gICAgPGlucHV0XHJcbiAgICAgICNpbnB1dFxyXG4gICAgICAjZm9jdXNhYmxlRWxlbWVudFxyXG4gICAgICBjbGFzcz1cImFyZC1kaWdpdC1pbnB1dF9faW5wdXRcIlxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgIFtyZWFkb25seV09XCJkYXRhLnJlYWRvbmx5XCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImRhdGEucGxhY2Vob2xkZXJcIlxyXG4gICAgICBbY2xhc3MuYXJkLWRpZ2l0LWlucHV0X19pbnB1dC1yZWFkb25seV09XCJkYXRhLnJlYWRvbmx5XCJcclxuICAgICAgW2NsYXNzLmFyZC1kaWdpdC1pbnB1dF9faW5wdXQtZW1wdHldPVwiaXNJbnB1dEVtcHR5KGRhdGEuaW5kZXghKVwiXHJcbiAgICAgIChwYXN0ZSk9XCJvblBhc3RlKCRldmVudCwgZGF0YS5pbmRleCEpXCJcclxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50LCBkYXRhLmluZGV4ISlcIlxyXG4gICAgICAoZm9jdXMpPVwib25Gb2N1c01hc3RlcigkZXZlbnQsIGRhdGEuaW5kZXghKVwiXHJcbiAgICAgIChibHVyKT1cIm9uQmx1ck1hc3RlcigkZXZlbnQsIGRhdGEuaW5kZXghKVwiXHJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQsIGRhdGEuaW5kZXghKVwiXHJcbiAgICAvPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWRpZ2l0LWlucHV0X19zdGF0aWNcIj5cclxuICAgICAge3sgZGF0YS5jaGFyIH19XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvZGlnaXQtaW5wdXQvZGlnaXQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvZGlnaXQtaW5wdXQvZGlnaXQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFFTCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBeUIsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQXNCdEQsTUFBTSxPQUFPLHlCQUNYLFNBQVEsdUJBQXVCO0lBSS9CLFlBQThDLFFBQStCO1FBQzNFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUdsQixjQUFjO1FBQ0wsV0FBTSxHQUFHLFlBQVksQ0FBK0IsT0FBTyxDQUFDLENBQUM7UUFFdEUsY0FBYztRQUNHLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuRCxjQUFjO1FBQ0wsZUFBVSxHQUFHLEtBQUssQ0FBd0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMs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QUFDOytHQXpMVSx5QkFBeUIsa0JBS2hCLHdCQUF3QjttR0FMakMseUJBQXlCLDJ3Q0FaekI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2dCQUN4RCxLQUFLLEVBQUUsSUFBSTthQUNaO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsV0FBVyxFQUFFLHlCQUF5QjthQUN2QztTQUNGLHFKQ3pDSCw2N0NBK0NBOzs0RkRKYSx5QkFBeUI7a0JBbEJyQyxTQUFTOytCQUNFLGlCQUFpQixpQkFHWixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsdUJBQXVCOzRCQUNoQyxXQUFXLDJCQUEyQjt5QkFDdkM7cUJBQ0Y7OzBCQU9ZLE1BQU07MkJBQUMsd0JBQXdCO3lDQTZFeEMsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgY29tcHV0ZWQsXHJcbiAgZWZmZWN0LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgaW5wdXQsXHJcbiAgb3V0cHV0LFxyXG4gIHZpZXdDaGlsZHJlbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XHJcbmltcG9ydCB7IF9Gb3JtRmllbGRDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vX2ludGVybmFsL2Zvcm0tZmllbGQtY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUVsZW1lbnRBcHBlYXJhbmNlLCBGb3JtRWxlbWVudFZhcmlhbnQgfSBmcm9tICcuLi8uLi90eXBlcy90aGVtaW5nLnR5cGVzJztcclxuaW1wb3J0IHsgQVJEX0RJR0lUX0lOUFVUX0RFRkFVTFRTLCBBcmREaWdpdElucHV0RGVmYXVsdHMgfSBmcm9tICcuL2RpZ2l0LWlucHV0LmRlZmF1bHRzJztcclxuaW1wb3J0IHsgRGlnaXRJbnB1dE1vZGVsIH0gZnJvbSAnLi9kaWdpdC1pbnB1dC5tb2RlbCc7XHJcbmltcG9ydCB7IERpZ2l0SW5wdXRDb25maWcsIERpZ2l0SW5wdXRTaGFwZSB9IGZyb20gJy4vZGlnaXQtaW5wdXQudHlwZXMnO1xyXG5pbXBvcnQgeyBEaWdpdElucHV0TW9kZWxIb3N0IH0gZnJvbSAnLi9kaWdpdC1pbnB1dC51dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FyZC1kaWdpdC1pbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpZ2l0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kaWdpdC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcmRpdW1EaWdpdElucHV0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBfRm9ybUZpZWxkQ29tcG9uZW50QmFzZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IEFyZGl1bURpZ2l0SW5wdXRDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1EaWdpdElucHV0Q29tcG9uZW50XHJcbiAgZXh0ZW5kcyBfRm9ybUZpZWxkQ29tcG9uZW50QmFzZVxyXG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIERpZ2l0SW5wdXRNb2RlbEhvc3QsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdFxyXG57XHJcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IEFyZERpZ2l0SW5wdXREZWZhdWx0cztcclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFSRF9ESUdJVF9JTlBVVF9ERUZBVUxUUykgZGVmYXVsdHM6IEFyZERpZ2l0SW5wdXREZWZhdWx0cykge1xyXG4gICAgc3VwZXIoZGVmYXVsdHMpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGlucHV0cyByZWZcclxuICByZWFkb25seSBpbnB1dHMgPSB2aWV3Q2hpbGRyZW48RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4oJ2lucHV0Jyk7XHJcblxyXG4gIC8vISBkYXRhIG1vZGVsXHJcbiAgcHJpdmF0ZSByZWFkb25seSBtb2RlbCA9IG5ldyBEaWdpdElucHV0TW9kZWwodGhpcyk7XHJcblxyXG4gIC8vISBhcHBlYXJhbmNlXHJcbiAgcmVhZG9ubHkgYXBwZWFyYW5jZSA9IGlucHV0PEZvcm1FbGVtZW50QXBwZWFyYW5jZT4odGhpcy5fREVGQVVMVFMuYXBwZWFyYW5jZSk7XHJcbiAgcmVhZG9ubHkgdmFyaWFudCA9IGlucHV0PEZvcm1FbGVtZW50VmFyaWFudD4odGhpcy5fREVGQVVMVFMudmFyaWFudCk7XHJcbiAgcmVhZG9ubHkgc2hhcGUgPSBpbnB1dDxEaWdpdElucHV0U2hhcGU+KHRoaXMuX0RFRkFVTFRTLnNoYXBlKTtcclxuXHJcbiAgcmVhZG9ubHkgY29tcGFjdCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuY29tcGFjdCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG5cclxuICByZWFkb25seSBuZ0NsYXNzZXMgPSBjb21wdXRlZCgoKTogc3RyaW5nID0+XHJcbiAgICBbXHJcbiAgICAgIGBhcmQtYXBwZWFyYW5jZS0ke3RoaXMuYXBwZWFyYW5jZSgpfWAsXHJcbiAgICAgIGBhcmQtdmFyaWFudC0ke3RoaXMudmFyaWFudCgpfWAsXHJcbiAgICAgIGBhcmQtc2hhcGUtJHt0aGlzLnNoYXBlKCl9YCxcclxuICAgICAgdGhpcy5jb21wYWN0KCkgPyAnYXJkLWNvbXBhY3QnIDogJycsXHJcbiAgICBdLmpvaW4oJyAnKVxyXG4gICk7XHJcblxyXG4gIC8vISBtb2RlbCBhY2Nlc3MgcG9pbnRzXHJcbiAgcmVhZG9ubHkgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8dm9pZCwgRGlnaXRJbnB1dENvbmZpZz4oe1xyXG4gICAgdHJhbnNmb3JtOiB2ID0+IHRoaXMubW9kZWwuc2V0Q29uZmlnKHYpLFxyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IGNvbmZpZ0FycmF5RGF0YSA9IHRoaXMubW9kZWwuY29uZmlnQXJyYXlEYXRhO1xyXG5cclxuICBwcml2YXRlIF9vbGRDb25maWdBcnJheURhdGFMZW5ndGggPSAtMTtcclxuICByZWFkb25seSBjb25maWdBcnJheURhdGFFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnQXJyYXlEYXRhKCkubGVuZ3RoID09PSB0aGlzLl9vbGRDb25maWdBcnJheURhdGFMZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLl9vbGRDb25maWdBcnJheURhdGFMZW5ndGggPSB0aGlzLmNvbmZpZ0FycmF5RGF0YSgpLmxlbmd0aDtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICB9KTtcclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5fb2xkQ29uZmlnQXJyYXlEYXRhTGVuZ3RoID0gdGhpcy5jb25maWdBcnJheURhdGEoKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBpc0lucHV0RW1wdHkoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLm1vZGVsLmlzRGVmaW5lZEF0SW5kZXgoaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGNvbnRyb2wgdmFsdWUgYWNjZXNzb3IncyB3cml0ZSB2YWx1ZSBpbXBsZW1lbnRhdGlvblxyXG4gIHByaXZhdGUgX3ZhbHVlQmVmb3JlVmlld0luaXQ/OiBhbnk7XHJcbiAgd3JpdGVWYWx1ZSh2OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fd2FzVmlld0luaXQpIHtcclxuICAgICAgdGhpcy5fdmFsdWVCZWZvcmVWaWV3SW5pdCA9IHY7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3dyaXRlVmFsdWUodik7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3dyaXRlVmFsdWUodjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbC53cml0ZVZhbHVlKHYpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfd2FzVmlld0luaXQgPSBmYWxzZTtcclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl93YXNWaWV3SW5pdCA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMuX3ZhbHVlQmVmb3JlVmlld0luaXQpIHtcclxuICAgICAgdGhpcy5fd3JpdGVWYWx1ZSh0aGlzLl92YWx1ZUJlZm9yZVZpZXdJbml0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vISB2YWx1ZSB0d28td2F5IGJpbmRpbmdcclxuICByZWFkb25seSBvdXRwdXRBc1N0cmluZyA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMub3V0cHV0QXNTdHJpbmcsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgb3V0cHV0Q29udHJvbFZhbHVlQWNjZXNzb3JPbkZpbmlzaCA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWUodjogc3RyaW5nIHwgKHN0cmluZyB8IG51bGwpW10gfCBudWxsKSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUodik7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gb3V0cHV0PHN0cmluZyB8IChzdHJpbmcgfCBudWxsKVtdIHwgbnVsbD4oKTtcclxuXHJcbiAgcmVhZG9ubHkgc3RyaW5nVmFsdWUgPSB0aGlzLm1vZGVsLnN0cmluZ1ZhbHVlO1xyXG5cclxuICByZWFkb25seSBlbWl0dGFibGVWYWx1ZSA9IGNvbXB1dGVkKCgpOiBzdHJpbmcgfCAoc3RyaW5nIHwgbnVsbClbXSB8IG51bGwgPT4ge1xyXG4gICAgaWYgKHRoaXMub3V0cHV0QXNTdHJpbmcoKSkgcmV0dXJuIHRoaXMubW9kZWwuc3RyaW5nVmFsdWUoKTtcclxuICAgIHJldHVybiB0aGlzLm1vZGVsLnZhbHVlKCk7XHJcbiAgfSk7XHJcblxyXG4gIC8vISBldmVudCBlbWl0dGVyc1xyXG4gIHJlYWRvbmx5IGZpbmlzaGVkVmFsdWUgPSBvdXRwdXQ8c3RyaW5nIHwgKHN0cmluZyB8IG51bGwpW10gfCBudWxsPigpO1xyXG5cclxuICByZWFkb25seSBmb2N1c0luZGV4RXZlbnQgPSBvdXRwdXQ8bnVtYmVyPih7IGFsaWFzOiAnZm9jdXNJbmRleCcgfSk7XHJcbiAgcmVhZG9ubHkgYmx1ckluZGV4RXZlbnQgPSBvdXRwdXQ8bnVtYmVyPih7IGFsaWFzOiAnYmx1ckluZGV4JyB9KTtcclxuXHJcbiAgLy8hIGV2ZW50IGhhbmRsZXJzXHJcbiAgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dCcpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMuaW5wdXRzKCkubGVuZ3RoIC0gaW5kZXg7XHJcbiAgICB2YWx1ZVxyXG4gICAgICAuc2xpY2UoMCwgbWF4TGVuZ3RoKVxyXG4gICAgICAuc3BsaXQoJycpXHJcbiAgICAgIC5mb3JFYWNoKChjaGFyLCBpKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tb2RlbC52YWxpZGF0ZUlucHV0QW5kU2V0VmFsdWUoY2hhciwgaW5kZXggKyBpKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmZvY3VzQnlJbmRleChpbmRleCAtIDEgKyBNYXRoLm1pbih2YWx1ZS5sZW5ndGgsIG1heExlbmd0aCkpO1xyXG5cclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICB9XHJcbiAgb25JbnB1dChldmVudDogRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNoYW5nZVN1Y2Nlc3NmdWwgPSB0aGlzLl91cGRhdGVTaW5nbGVJbnB1dFZhbHVlKChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUsIGluZGV4KTtcclxuICAgIGlmICghY2hhbmdlU3VjY2Vzc2Z1bCkgcmV0dXJuO1xyXG4gICAgdGhpcy5mb2N1c0J5SW5kZXgoaW5kZXggKyAxKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdXBkYXRlU2luZ2xlSW5wdXRWYWx1ZSh2YWx1ZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjaGFuZ2VSZXN1bHQgPSB0aGlzLm1vZGVsLnZhbGlkYXRlSW5wdXRBbmRTZXRWYWx1ZSh2YWx1ZSwgaW5kZXgpO1xyXG5cclxuICAgIGlmICghY2hhbmdlUmVzdWx0Py53YXNDaGFuZ2VkKSByZXR1cm4gZmFsc2U7XHJcbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIGZvY3VzQnlJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbjtcclxuICBmb2N1c0J5SW5kZXgoaW5kZXg6IG51bWJlciwgdHJ5Rm9jdXNpbmdOZXh0OiBib29sZWFuLCBkaXJlY3Rpb246IDEgfCAtMSk6IGJvb2xlYW47XHJcbiAgZm9jdXNCeUluZGV4KGluZGV4OiBudW1iZXIsIHRyeUZvY3VzaW5nTmV4dD86IGJvb2xlYW4sIGRpcmVjdGlvbj86IDEgfCAtMSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLmlucHV0cygpLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgY29uc3QgbmV4dEVsID0gdGhpcy5pbnB1dHMoKVtpbmRleF0/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBpZiAoIW5leHRFbCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmIChuZXh0RWwuZ2V0QXR0cmlidXRlKCdkYXRhLWFyZC1zdGF0aWMnKSAhPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5mb2N1c0J5SW5kZXgoaW5kZXggKyAoZGlyZWN0aW9uID8/IDEpKTtcclxuICAgIH1cclxuICAgIG5leHRFbC5mb2N1cygpO1xyXG4gICAgaWYgKHRyeUZvY3VzaW5nTmV4dCAmJiBkaXJlY3Rpb24gJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gbmV4dEVsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvY3VzQnlJbmRleChpbmRleCArIGRpcmVjdGlvbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gbmV4dEVsO1xyXG4gIH1cclxuICAvL2ZvY3VzLCBibHVyLCBjaGFuZ2VcclxuICBvbkZvY3VzTWFzdGVyKGV2ZW50OiBGb2N1c0V2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzSW5kZXhFdmVudC5lbWl0KGluZGV4KTtcclxuICAgIHRoaXMub25Gb2N1cyhldmVudCk7XHJcbiAgfVxyXG4gIG9uQmx1ck1hc3RlcihldmVudDogRm9jdXNFdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5ibHVySW5kZXhFdmVudC5lbWl0KGluZGV4KTtcclxuICAgIHRoaXMub25CbHVyKGV2ZW50KTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9lbWl0Q2hhbmdlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdiA9IHRoaXMuZW1pdHRhYmxlVmFsdWUoKTtcclxuICAgIGlmICghdGhpcy5vdXRwdXRDb250cm9sVmFsdWVBY2Nlc3Nvck9uRmluaXNoKCkgfHwgdGhpcy5tb2RlbC5pc1ZhbHVlRnVsbCgpKSB0aGlzLl9vbkNoYW5nZVJlZ2lzdGVyZWQ/Lih2KTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcclxuICAgIGlmICh0aGlzLm1vZGVsLmlzVmFsdWVGdWxsKCkpIHtcclxuICAgICAgdGhpcy5maW5pc2hlZFZhbHVlLmVtaXQodik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcclxuICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcclxuICAgICAgICB0aGlzLmZvY3VzQnlJbmRleChpbmRleCAtIDEsIHRydWUsIC0xKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxyXG4gICAgICAgIHRoaXMuZm9jdXNCeUluZGV4KGluZGV4ICsgMSwgdHJ1ZSwgKzEpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgY2FzZSAnSG9tZSc6XHJcbiAgICAgICAgdGhpcy5mb2N1c0J5SW5kZXgoMCwgdHJ1ZSwgMSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICBjYXNlICdFbmQnOlxyXG4gICAgICAgIHRoaXMuZm9jdXNCeUluZGV4KHRoaXMuaW5wdXRzLmxlbmd0aCAtIDEsIHRydWUsIC0xKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIGNhc2UgJ0JhY2tzcGFjZSc6XHJcbiAgICAgIGNhc2UgJ0RlbGV0ZSc6XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2luZ2xlSW5wdXRWYWx1ZSgnJywgaW5kZXgpO1xyXG4gICAgICAgIHRoaXMuZm9jdXNCeUluZGV4KGluZGV4IC0gMSwgdHJ1ZSwgLTEpO1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJhcmQtZGlnaXQtaW5wdXRcIlxyXG4gIFtuZ0NsYXNzXT1cIm5nQ2xhc3NlcygpXCJcclxuICBbY2xhc3MuYXJkLWhhcy1lcnJvcl09XCJoYXNFcnJvcigpXCJcclxuICBbY2xhc3MuYXJkLWlzLXN1Y2Nlc3NdPVwiaXNTdWNjZXNzKClcIlxyXG4+XHJcbiAgQGZvciAoZGF0YSBvZiBjb25maWdBcnJheURhdGEoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJhcmQtZGlnaXQtaW5wdXRfX2l0ZW1cIlxyXG4gICAgW2NsYXNzLmFyZC1kaWdpdC1pbnB1dF9faXRlbS13aXRoLWlucHV0XT1cImRhdGEudHlwZSA9PT0gJ2lucHV0J1wiXHJcbiAgPlxyXG4gICAgQGlmIChkYXRhLnR5cGUgPT09ICdpbnB1dCcpIHtcclxuICAgIDxpbnB1dFxyXG4gICAgICAjaW5wdXRcclxuICAgICAgI2ZvY3VzYWJsZUVsZW1lbnRcclxuICAgICAgY2xhc3M9XCJhcmQtZGlnaXQtaW5wdXRfX2lucHV0XCJcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICBbcmVhZG9ubHldPVwiZGF0YS5yZWFkb25seVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJkYXRhLnBsYWNlaG9sZGVyXCJcclxuICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXHJcbiAgICAgIFtjbGFzcy5hcmQtZGlnaXQtaW5wdXRfX2lucHV0LXJlYWRvbmx5XT1cImRhdGEucmVhZG9ubHlcIlxyXG4gICAgICBbY2xhc3MuYXJkLWRpZ2l0LWlucHV0X19pbnB1dC1lbXB0eV09XCJpc0lucHV0RW1wdHkoZGF0YS5pbmRleCEpXCJcclxuICAgICAgKHBhc3RlKT1cIm9uUGFzdGUoJGV2ZW50LCBkYXRhLmluZGV4ISlcIlxyXG4gICAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQsIGRhdGEuaW5kZXghKVwiXHJcbiAgICAgIChmb2N1cyk9XCJvbkZvY3VzTWFzdGVyKCRldmVudCwgZGF0YS5pbmRleCEpXCJcclxuICAgICAgKGJsdXIpPVwib25CbHVyTWFzdGVyKCRldmVudCwgZGF0YS5pbmRleCEpXCJcclxuICAgICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudCwgZGF0YS5pbmRleCEpXCJcclxuICAgIC8+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtZGlnaXQtaW5wdXRfX3N0YXRpY1wiPlxyXG4gICAgICB7eyBkYXRhLmNoYXIgfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPGlucHV0XHJcbiAgICAgICNpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGNsYXNzPVwiYXJkLWRpZ2l0LWlucHV0X19zdGF0aWMtaW5wdXRcIlxyXG4gICAgICBkYXRhLWFyZC1zdGF0aWNcclxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXHJcbiAgICAgIFt2YWx1ZV09XCJkYXRhLmNoYXJcIlxyXG4gICAgLz5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|