@ardium-ui/ui 3.2.7 → 3.3.0-alpha.3
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/boolean-component.mjs +1 -1
- package/esm2022/lib/_internal/focusable-component.mjs +8 -6
- package/esm2022/lib/_internal/form-field-component.mjs +57 -0
- package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +4 -1
- package/esm2022/lib/_internal/ngmodel-component.mjs +5 -2
- package/esm2022/lib/_internal/public-api.mjs +2 -0
- package/esm2022/lib/_internal/selectable-list-component.mjs +6 -6
- package/esm2022/lib/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +3 -3
- package/esm2022/lib/form-field/error/error.component.mjs +17 -0
- package/esm2022/lib/form-field/error/error.directive.mjs +17 -0
- package/esm2022/lib/form-field/form-field.component.mjs +34 -0
- package/esm2022/lib/form-field/form-field.defaults.mjs +15 -0
- package/esm2022/lib/form-field/form-field.module.mjs +44 -0
- package/esm2022/lib/form-field/hint/hint.component.mjs +17 -0
- package/esm2022/lib/form-field/hint/hint.directive.mjs +30 -0
- package/esm2022/lib/form-field/horizontal-form-field.component.mjs +34 -0
- package/esm2022/lib/form-field/index.mjs +9 -0
- package/esm2022/lib/form-field/label/label.component.mjs +21 -0
- package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +14 -7
- package/esm2022/lib/inputs/_simple-input-base.mjs +4 -4
- package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +28 -11
- package/esm2022/lib/inputs/digit-input/digit-input.defaults.mjs +3 -3
- package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +5 -3
- 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 +13 -5
- package/esm2022/lib/inputs/hex-input/hex-input.defaults.mjs +3 -3
- package/esm2022/lib/inputs/input/input.component.mjs +12 -3
- package/esm2022/lib/inputs/number-input/number-input.component.mjs +15 -7
- package/esm2022/lib/inputs/number-input/number-input.defaults.mjs +3 -3
- package/esm2022/lib/inputs/password-input/password-input.component.mjs +15 -5
- package/esm2022/lib/inputs/password-input/password-input.defaults.mjs +3 -3
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +12 -3
- package/esm2022/lib/inputs/simple-input/simple-input.defaults.mjs +3 -3
- package/esm2022/lib/segment/segment.component.mjs +3 -3
- package/esm2022/lib/select/select.component.mjs +16 -8
- package/esm2022/lib/select/select.defaults.mjs +3 -3
- package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +1 -1
- package/esm2022/lib/table-pagination/table-pagination.component.mjs +1 -1
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/ardium-ui-ui.mjs +383 -65
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/_internal/focusable-component.d.ts +4 -3
- package/lib/_internal/form-field-component.d.ts +30 -0
- package/lib/_internal/ngmodel-component.d.ts +1 -0
- package/lib/_internal/public-api.d.ts +3 -0
- package/lib/form-field/error/error.component.d.ts +6 -0
- package/lib/form-field/error/error.directive.d.ts +5 -0
- package/lib/form-field/form-field.component.d.ts +20 -0
- package/lib/form-field/form-field.defaults.d.ts +8 -0
- package/lib/form-field/form-field.module.d.ts +14 -0
- package/lib/form-field/hint/hint.component.d.ts +6 -0
- package/lib/form-field/hint/hint.directive.d.ts +8 -0
- package/lib/form-field/horizontal-form-field.component.d.ts +20 -0
- package/lib/form-field/index.d.ts +8 -0
- package/lib/form-field/label/label.component.d.ts +8 -0
- package/lib/form-field-frame/form-field-frame.component.d.ts +4 -2
- package/lib/inputs/_simple-input-base.d.ts +3 -3
- package/lib/inputs/digit-input/digit-input.component.d.ts +6 -4
- package/lib/inputs/digit-input/digit-input.defaults.d.ts +2 -2
- package/lib/inputs/digit-input/digit-input.model.d.ts +4 -1
- package/lib/inputs/digit-input/digit-input.types.d.ts +1 -0
- package/lib/inputs/digit-input/digit-input.utils.d.ts +1 -0
- package/lib/inputs/hex-input/hex-input.component.d.ts +2 -2
- package/lib/inputs/hex-input/hex-input.defaults.d.ts +2 -2
- package/lib/inputs/number-input/number-input.component.d.ts +2 -2
- package/lib/inputs/number-input/number-input.defaults.d.ts +2 -2
- package/lib/inputs/password-input/password-input.component.d.ts +2 -2
- package/lib/inputs/password-input/password-input.defaults.d.ts +2 -2
- package/lib/select/select.component.d.ts +3 -4
- package/lib/select/select.defaults.d.ts +2 -2
- package/package.json +1 -1
- package/prebuilt-themes/default/chips.css.map +1 -1
- package/prebuilt-themes/default/core.css +3 -1
- package/prebuilt-themes/default/core.css.map +1 -1
- package/prebuilt-themes/default/form-field-frame.css +23 -6
- package/prebuilt-themes/default/form-field-frame.css.map +1 -1
- package/prebuilt-themes/default/form-field.css +90 -0
- package/prebuilt-themes/default/form-field.css.map +1 -0
- package/prebuilt-themes/default/inputs/color-input.css +0 -1
- package/prebuilt-themes/default/inputs/color-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/digit-input.css +67 -5
- package/prebuilt-themes/default/inputs/digit-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/file-input.css +0 -6
- package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/hex-input.css +0 -1
- package/prebuilt-themes/default/inputs/hex-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/input.css +0 -6
- package/prebuilt-themes/default/inputs/input.css.map +1 -1
- package/prebuilt-themes/default/inputs/number-input.css +33 -18
- package/prebuilt-themes/default/inputs/number-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/password-input.css +0 -1
- package/prebuilt-themes/default/inputs/password-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/search-bar.css +0 -1
- package/prebuilt-themes/default/inputs/search-bar.css.map +1 -1
- package/prebuilt-themes/default/inputs/simple-input.css +0 -6
- package/prebuilt-themes/default/inputs/simple-input.css.map +1 -1
- package/prebuilt-themes/default/segment.css +18 -1
- package/prebuilt-themes/default/segment.css.map +1 -1
- package/public-api.d.ts +2 -0
- package/themes/default/_mixins.scss +83 -64
- package/themes/default/core.scss +102 -99
- package/themes/default/form-field-frame.scss +79 -78
- package/themes/default/form-field.scss +92 -0
- package/themes/default/inputs/_shared.scss +50 -51
- package/themes/default/inputs/digit-input.scss +95 -56
- package/themes/default/inputs/file-input.scss +0 -6
- package/themes/default/inputs/input.scss +1 -7
- package/themes/default/inputs/number-input.scss +131 -121
- package/themes/default/inputs/simple-input.scss +1 -8
|
@@ -2,14 +2,14 @@ import { ChangeDetectionStrategy, Component, Inject, ViewEncapsulation, computed
|
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { coerceBooleanProperty, coerceNumberProperty } from '@ardium-ui/devkit';
|
|
4
4
|
import { isAnyString, isDefined } from 'simple-bool';
|
|
5
|
-
import {
|
|
5
|
+
import { _FormFieldComponentBase } from '../../_internal/form-field-component';
|
|
6
6
|
import { ARD_PASSWORD_INPUT_DEFAULTS } from './password-input.defaults';
|
|
7
7
|
import { ArdPasswordInputPlaceholderTemplateDirective, ArdPasswordInputPrefixTemplateDirective, ArdPasswordInputRevealButtonTemplateDirective, ArdPasswordInputSuffixTemplateDirective, } from './password-input.directives';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@angular/common";
|
|
10
10
|
import * as i2 from "../../form-field-frame/form-field-frame.component";
|
|
11
11
|
import * as i3 from "../../icon/icon.component";
|
|
12
|
-
export class ArdiumPasswordInputComponent extends
|
|
12
|
+
export class ArdiumPasswordInputComponent extends _FormFieldComponentBase {
|
|
13
13
|
constructor(defaults) {
|
|
14
14
|
super(defaults);
|
|
15
15
|
//! input view
|
|
@@ -50,6 +50,7 @@ export class ArdiumPasswordInputComponent extends _NgModelComponentBase {
|
|
|
50
50
|
this.value = model();
|
|
51
51
|
}
|
|
52
52
|
ngOnInit() {
|
|
53
|
+
super.ngOnInit();
|
|
53
54
|
this._setInputAttributes();
|
|
54
55
|
}
|
|
55
56
|
toggleReveal(newState = !this.revealed()) {
|
|
@@ -63,6 +64,7 @@ export class ArdiumPasswordInputComponent extends _NgModelComponentBase {
|
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
ngOnDestroy() {
|
|
67
|
+
super.ngOnDestroy();
|
|
66
68
|
if (this._hideTimeout) {
|
|
67
69
|
clearTimeout(this._hideTimeout);
|
|
68
70
|
}
|
|
@@ -138,7 +140,11 @@ export class ArdiumPasswordInputComponent extends _NgModelComponentBase {
|
|
|
138
140
|
useExisting: forwardRef(() => ArdiumPasswordInputComponent),
|
|
139
141
|
multi: true,
|
|
140
142
|
},
|
|
141
|
-
|
|
143
|
+
{
|
|
144
|
+
provide: _FormFieldComponentBase,
|
|
145
|
+
useExisting: ArdiumPasswordInputComponent,
|
|
146
|
+
},
|
|
147
|
+
], queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdPasswordInputPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdPasswordInputSuffixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "placeholderTemplate", first: true, predicate: ArdPasswordInputPlaceholderTemplateDirective, descendants: true, isSignal: true }, { propertyName: "revealTemplate", first: true, predicate: ArdPasswordInputRevealButtonTemplateDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "textInputEl", first: true, predicate: ["textInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-password-input\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-value]=\"value()\"\r\n (click)=\"focus()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\" />\r\n }\r\n\r\n <input\r\n #textInput\r\n #focusableElement\r\n [type]=\"!revealable() || !revealed() ? 'password' : 'text'\"\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"readonly()\"\r\n [disabled]=\"disabled()\"\r\n (input)=\"onInput(textInput.value)\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (change)=\"onChange($event)\"\r\n (copy)=\"onCopy($event)\"\r\n [class.ard-revealed]=\"revealable() && revealed()\"\r\n />\r\n </div>\r\n\r\n @if (revealable()) {\r\n <button\r\n class=\"ard-reveal-button\"\r\n type=\"button\"\r\n (click)=\"!holdToReveal() && toggleReveal()\"\r\n (mousedown)=\"holdToReveal() && revealed.set(true)\"\r\n (mouseup)=\"holdToReveal() && revealed.set(false)\"\r\n >\r\n <ng-template\r\n #defaultRevealTemplate\r\n let-revealed\r\n >\r\n <ard-icon [icon]=\"revealed ? 'visibility' : 'visibility_off'\"></ard-icon>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"revealTemplate()?.template || defaultRevealTemplate\"\r\n [ngTemplateOutletContext]=\"revealButtonContext()\"\r\n />\r\n </button>\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: ["hasError", "isSuccess", "isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }, { kind: "component", type: i3.ArdiumIconComponent, selector: "ard-icon", inputs: ["ariaLabel", "icon", "filled", "weight", "grade", "opticalSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
142
148
|
}
|
|
143
149
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumPasswordInputComponent, decorators: [{
|
|
144
150
|
type: Component,
|
|
@@ -148,9 +154,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
148
154
|
useExisting: forwardRef(() => ArdiumPasswordInputComponent),
|
|
149
155
|
multi: true,
|
|
150
156
|
},
|
|
151
|
-
|
|
157
|
+
{
|
|
158
|
+
provide: _FormFieldComponentBase,
|
|
159
|
+
useExisting: ArdiumPasswordInputComponent,
|
|
160
|
+
},
|
|
161
|
+
], template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-password-input\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-value]=\"value()\"\r\n (click)=\"focus()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\" />\r\n }\r\n\r\n <input\r\n #textInput\r\n #focusableElement\r\n [type]=\"!revealable() || !revealed() ? 'password' : 'text'\"\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"readonly()\"\r\n [disabled]=\"disabled()\"\r\n (input)=\"onInput(textInput.value)\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (change)=\"onChange($event)\"\r\n (copy)=\"onCopy($event)\"\r\n [class.ard-revealed]=\"revealable() && revealed()\"\r\n />\r\n </div>\r\n\r\n @if (revealable()) {\r\n <button\r\n class=\"ard-reveal-button\"\r\n type=\"button\"\r\n (click)=\"!holdToReveal() && toggleReveal()\"\r\n (mousedown)=\"holdToReveal() && revealed.set(true)\"\r\n (mouseup)=\"holdToReveal() && revealed.set(false)\"\r\n >\r\n <ng-template\r\n #defaultRevealTemplate\r\n let-revealed\r\n >\r\n <ard-icon [icon]=\"revealed ? 'visibility' : 'visibility_off'\"></ard-icon>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"revealTemplate()?.template || defaultRevealTemplate\"\r\n [ngTemplateOutletContext]=\"revealButtonContext()\"\r\n />\r\n </button>\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n" }]
|
|
152
162
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
153
163
|
type: Inject,
|
|
154
164
|
args: [ARD_PASSWORD_INPUT_DEFAULTS]
|
|
155
165
|
}] }] });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsTUFBTSxFQUdOLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHMUUsT0FBTyxFQUFFLDJCQUEyQixFQUE0QixNQUFNLDJCQUEyQixDQUFDO0FBQ2xHLE9BQU8sRUFDTCw0Q0FBNEMsRUFDNUMsdUNBQXVDLEVBQ3ZDLDZDQUE2QyxFQUM3Qyx1Q0FBdUMsR0FDeEMsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFpQnJDLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxxQkFBcUI7SUFFckUsWUFBaUQsUUFBa0M7UUFDakYsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBR2xCLGNBQWM7UUFDTCxnQkFBVyxHQUFHLFNBQVMsQ0FBK0IsV0FBVyxDQUFDLENBQUM7UUFNbkUsZ0JB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aUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsQ0FBQzs0QkFDM0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OzBCQUlZLE1BQU07MkJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBjb250ZW50Q2hpbGQsXG4gIGZvcndhcmRSZWYsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XG5pbXBvcnQgeyBpc0FueVN0cmluZywgaXNEZWZpbmVkIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xuaW1wb3J0IHsgX05nTW9kZWxDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vX2ludGVybmFsL25nbW9kZWwtY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1FbGVtZW50QXBwZWFyYW5jZSwgRm9ybUVsZW1lbnRWYXJpYW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvdGhlbWluZy50eXBlcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xuaW1wb3J0IHsgQVJEX1BBU1NXT1JEX0lOUFVUX0RFRkFVTFRTLCBBcmRQYXNzd29yZElucHV0RGVmYXVsdHMgfSBmcm9tICcuL3Bhc3N3b3JkLWlucHV0LmRlZmF1bHRzJztcbmltcG9ydCB7XG4gIEFyZFBhc3N3b3JkSW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRQYXNzd29yZElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZFBhc3N3b3JkSW5wdXRSZXZlYWxCdXR0b25UZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkUGFzc3dvcmRJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLFxufSBmcm9tICcuL3Bhc3N3b3JkLWlucHV0LmRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgUGFzc3dvcmRJbnB1dFJldmVhbEJ1dHRvbkNvbnRleHQgfSBmcm9tICcuL3Bhc3N3b3JkLWlucHV0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJkLXBhc3N3b3JkLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtUGFzc3dvcmRJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1QYXNzd29yZElucHV0Q29tcG9uZW50IGV4dGVuZHMgX05nTW9kZWxDb21wb25lbnRCYXNlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IEFyZFBhc3N3b3JkSW5wdXREZWZhdWx0cztcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfUEFTU1dPUkRfSU5QVVRfREVGQVVMVFMpIGRlZmF1bHRzOiBBcmRQYXNzd29yZElucHV0RGVmYXVsdHMpIHtcbiAgICBzdXBlcihkZWZhdWx0cyk7XG4gIH1cblxuICAvLyEgaW5wdXQgdmlld1xuICByZWFkb25seSB0ZXh0SW5wdXRFbCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PigndGV4dElucHV0Jyk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc2V0SW5wdXRBdHRyaWJ1dGVzKCk7XG4gIH1cblxuICByZWFkb25seSBwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4odGhpcy5fREVGQVVMVFMucGxhY2Vob2xkZXIpO1xuICByZWFkb25seSBpbnB1dElkID0gaW5wdXQ8TnVsbGFibGU8c3RyaW5nPj4oKTtcblxuICAvLyEgcHJlZml4ICYgc3VmZml4XG4gIHJlYWRvbmx5IHByZWZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZFBhc3N3b3JkSW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSk7XG4gIHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZFBhc3N3b3JkSW5wdXRTdWZmaXhUZW1wbGF0ZURpcmVjdGl2ZSk7XG5cbiAgLy8hIHBsYWNlaG9sZGVyXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkUGFzc3dvcmRJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUpO1xuXG4gIHJlYWRvbmx5IHNob3VsZERpc3BsYXlQbGFjZWhvbGRlciA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5wbGFjZWhvbGRlcigpICYmICF0aGlzLnZhbHVlKCkpO1xuXG4gIC8vISByZXZlYWxpbmdcbiAgcmVhZG9ubHkgcmV2ZWFsYWJsZSA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMucmV2ZWFsYWJsZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuICByZWFkb25seSBob2xkVG9SZXZlYWwgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLmhvbGRUb1JldmVhbCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuXG4gIHJlYWRvbmx5IGF1dG9IaWRlVGltZW91dE1zID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPiwgYW55Pih0aGlzLl9ERUZBVUxUUy5hdXRvSGlkZVRpbWVvdXRNcywge1xuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy5hdXRvSGlkZVRpbWVvdXRNcyksXG4gIH0pO1xuXG4gIHJlYWRvbmx5IHJldmVhbGVkID0gbW9kZWw8Ym9vbGVhbj4odGhpcy5fREVGQVVMVFMucmV2ZWFsZWQpO1xuXG4gIHByaXZhdGUgX2hpZGVUaW1lb3V0OiBOb2RlSlMuVGltZW91dCB8IG51bGwgPSBudWxsO1xuICB0b2dnbGVSZXZlYWwobmV3U3RhdGUgPSAhdGhpcy5yZXZlYWxlZCgpKTogdm9pZCB7XG4gICAgdGhpcy5yZXZlYWxlZC5zZXQobmV3U3RhdGUpO1xuXG4gICAgaWYgKHRoaXMuX2hpZGVUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5faGlkZVRpbWVvdXQpO1xuICAgIH1cbiAgICBjb25zdCB0aW1lb3V0ID0gdGhpcy5hdXRvSGlkZVRpbWVvdXRNcygpO1xuICAgIGlmICh0aW1lb3V0ICYmIG5ld1N0YXRlKSB7XG4gICAgICB0aGlzLl9oaWRlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZXZlYWxlZC5zZXQoZmFsc2UpLCB0aW1lb3V0KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faGlkZVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9oaWRlVGltZW91dCk7XG4gICAgfVxuICB9XG5cbiAgcmVhZG9ubHkgcmV2ZWFsVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkUGFzc3dvcmRJbnB1dFJldmVhbEJ1dHRvblRlbXBsYXRlRGlyZWN0aXZlKTtcblxuICByZWFkb25seSByZXZlYWxCdXR0b25Db250ZXh0ID0gY29tcHV0ZWQoXG4gICAgKCk6IFBhc3N3b3JkSW5wdXRSZXZlYWxCdXR0b25Db250ZXh0ID0+ICh7XG4gICAgICAkaW1wbGljaXQ6IHRoaXMucmV2ZWFsZWQoKSxcbiAgICB9KVxuICApO1xuXG4gIC8vISBhcHBlYXJhbmNlXG4gIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBpbnB1dDxGb3JtRWxlbWVudEFwcGVhcmFuY2U+KHRoaXMuX0RFRkFVTFRTLmFwcGVhcmFuY2UpO1xuICByZWFkb25seSB2YXJpYW50ID0gaW5wdXQ8Rm9ybUVsZW1lbnRWYXJpYW50Pih0aGlzLl9ERUZBVUxUUy52YXJpYW50KTtcblxuICByZWFkb25seSBjb21wYWN0ID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jb21wYWN0LCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG5cbiAgcmVhZG9ubHkgbmdDbGFzc2VzID0gY29tcHV0ZWQoKCkgPT5cbiAgICBbXG4gICAgICBgYXJkLWFwcGVhcmFuY2UtJHt0aGlzLmFwcGVhcmFuY2UoKX1gLFxuICAgICAgYGFyZC12YXJpYW50LSR7dGhpcy52YXJpYW50KCl9YCxcbiAgICAgIHRoaXMuY29tcGFjdCgpID8gJ2FyZC1jb21wYWN0JyA6ICcnLFxuICAgICAgdGhpcy5yZXZlYWxhYmxlKCkgPyAnYXJkLXJldmVhbGFibGUnIDogJycsXG4gICAgXS5qb2luKCcgJylcbiAgKTtcblxuICAvLyEgb3RoZXIgaW5wdXRzXG4gIHJlYWRvbmx5IGlucHV0QXR0cnMgPSBpbnB1dDxSZWNvcmQ8c3RyaW5nLCBhbnk+Pih0aGlzLl9ERUZBVUxUUy5pbnB1dEF0dHJzKTtcblxuICAvLyEgY29udHJvbCB2YWx1ZSBhY2Nlc3NvcidzIHdyaXRlIHZhbHVlIGltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodjogYW55KSB7XG4gICAgaWYgKCFpc0FueVN0cmluZyh2KSAmJiBpc0RlZmluZWQodikpIHtcbiAgICAgIC8vd2FybiB3aGVuIHVzaW5nIG5vbi1zdHJpbmcvbm9uLW51bGwgdmFsdWVcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgIGBBUkQtV0EwMDIwOiBUcnlpbmcgdG8gc2V0IDxhcmQtcGFzc3dvcmQtaW5wdXQ+J3MgdmFsdWUgdG8gXCIke3Z9XCIgKG9mIHR5cGUgJHt0eXBlb2Ygdn0pLCBleHBlY3RlZCBzdHJpbmcgb3IgbnVsbC5gXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICAvL25vcm1hbGl6ZSB0aGUgdmFsdWVcbiAgICAgIHYgPSB2Py50b1N0cmluZz8uKCkgPz8gU3RyaW5nKHYpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl93cml0ZVZhbHVlKHYpO1xuICB9XG4gIHByb3RlY3RlZCBfd3JpdGVWYWx1ZSh2OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgb2xkVmFsID0gdGhpcy52YWx1ZSgpO1xuICAgIHRoaXMudmFsdWUuc2V0KHYpO1xuICAgIHJldHVybiBvbGRWYWwgIT09IHY7XG4gIH1cbiAgLy8hIHZhbHVlIHR3by13YXkgYmluZGluZ1xuICByZWFkb25seSB2YWx1ZSA9IG1vZGVsPE51bGxhYmxlPHN0cmluZz4+KCk7XG5cbiAgLy8hIGV2ZW50IGhhbmRsZXJzXG4gIG9uSW5wdXQobmV3VmFsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZUhhc0NoYW5nZWQgPSB0aGlzLl93cml0ZVZhbHVlKG5ld1ZhbCk7XG4gICAgaWYgKCF2YWx1ZUhhc0NoYW5nZWQpIHJldHVybjtcbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gIH1cbiAgcHJvdGVjdGVkIF9lbWl0Q2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlKCk7XG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odik7XG4gIH1cbiAgLy9mb2N1cywgYmx1ciwgY2hhbmdlXG4gIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcbiAgfVxuXG4gIC8vIGNvcHlcbiAgb25Db3B5KGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRleHRJbnB1dEVsID0gdGhpcy50ZXh0SW5wdXRFbCgpO1xuICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlKCk7XG4gICAgaWYgKFxuICAgICAgdiAmJlxuICAgICAgdGV4dElucHV0RWwgJiZcbiAgICAgIC8vZG9lcyB0aGUgc2VsZWN0aW9uIGNvdmVyIHRoZSBlbnRpcmUgaW5wdXRcbiAgICAgICgodGV4dElucHV0RWwubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gMCAmJlxuICAgICAgICB0ZXh0SW5wdXRFbC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA9PT0gdGV4dElucHV0RWwubmF0aXZlRWxlbWVudC52YWx1ZS5sZW5ndGgpIHx8XG4gICAgICAgIC8vb3IgaXMgemVyby13aWRlXG4gICAgICAgIHRleHRJbnB1dEVsLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IHRleHRJbnB1dEVsLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kKVxuICAgICkge1xuICAgICAgZXZlbnQuY2xpcGJvYXJkRGF0YT8uc2V0RGF0YSgndGV4dC9wbGFpbicsIHYpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cbiAgLy8hIGhlbHBlcnNcbiAgcHJvdGVjdGVkIF9zZXRJbnB1dEF0dHJpYnV0ZXMoKSB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFpbnB1dCkgcmV0dXJuO1xuXG4gICAgY29uc3QgYXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGF1dG9jb3JyZWN0OiAnb2ZmJyxcbiAgICAgIGF1dG9jYXBpdGFsaXplOiAnb2ZmJyxcbiAgICAgIGF1dG9jb21wbGV0ZTogJ29mZicsXG4gICAgICB0YWJpbmRleDogU3RyaW5nKHRoaXMudGFiSW5kZXgoKSksXG4gICAgICAuLi50aGlzLmlucHV0QXR0cnMoKSxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYXR0cmlidXRlcykpIHtcbiAgICAgIGlucHV0LnNldEF0dHJpYnV0ZShrZXksIFN0cmluZyhhdHRyaWJ1dGVzW2tleV0pKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxhcmQtZm9ybS1maWVsZC1mcmFtZVxuICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlKClcIlxuICBbdmFyaWFudF09XCJ2YXJpYW50KClcIlxuICBbY29tcGFjdF09XCJjb21wYWN0KClcIlxuICBbaXNGb2N1c2VkXT1cImlzRm9jdXNlZFwiXG4gIFtwcmVmaXhUZW1wbGF0ZV09XCJwcmVmaXhUZW1wbGF0ZSgpPy50ZW1wbGF0ZVwiXG4gIFtzdWZmaXhUZW1wbGF0ZV09XCJzdWZmaXhUZW1wbGF0ZSgpPy50ZW1wbGF0ZVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFyZC1wYXNzd29yZC1pbnB1dFwiXG4gICAgW25nQ2xhc3NdPVwibmdDbGFzc2VzKClcIlxuICAgIFtjbGFzcy5hcmQtaGFzLXZhbHVlXT1cInZhbHVlKClcIlxuICAgIChjbGljayk9XCJmb2N1cygpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJhcmQtaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICBAaWYgKHNob3VsZERpc3BsYXlQbGFjZWhvbGRlcigpKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFBsYWNlaG9sZGVyVGVtcGxhdGU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyKCkgfX08L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicGxhY2Vob2xkZXJUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZVwiIC8+XG4gICAgICB9XG5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjdGV4dElucHV0XG4gICAgICAgICNmb2N1c2FibGVFbGVtZW50XG4gICAgICAgIFt0eXBlXT1cIiFyZXZlYWxhYmxlKCkgfHwgIXJldmVhbGVkKCkgPyAncGFzc3dvcmQnIDogJ3RleHQnXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiaW5wdXRJZCgpXCJcbiAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAoaW5wdXQpPVwib25JbnB1dCh0ZXh0SW5wdXQudmFsdWUpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGNvcHkpPVwib25Db3B5KCRldmVudClcIlxuICAgICAgICBbY2xhc3MuYXJkLXJldmVhbGVkXT1cInJldmVhbGFibGUoKSAmJiByZXZlYWxlZCgpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKHJldmVhbGFibGUoKSkge1xuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImFyZC1yZXZlYWwtYnV0dG9uXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCIhaG9sZFRvUmV2ZWFsKCkgJiYgdG9nZ2xlUmV2ZWFsKClcIlxuICAgICAgICAobW91c2Vkb3duKT1cImhvbGRUb1JldmVhbCgpICYmIHJldmVhbGVkLnNldCh0cnVlKVwiXG4gICAgICAgIChtb3VzZXVwKT1cImhvbGRUb1JldmVhbCgpICYmIHJldmVhbGVkLnNldChmYWxzZSlcIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAjZGVmYXVsdFJldmVhbFRlbXBsYXRlXG4gICAgICAgICAgbGV0LXJldmVhbGVkXG4gICAgICAgID5cbiAgICAgICAgICA8YXJkLWljb24gW2ljb25dPVwicmV2ZWFsZWQgPyAndmlzaWJpbGl0eScgOiAndmlzaWJpbGl0eV9vZmYnXCI+PC9hcmQtaWNvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJyZXZlYWxUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0UmV2ZWFsVGVtcGxhdGVcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJyZXZlYWxCdXR0b25Db250ZXh0KClcIlxuICAgICAgICAvPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbjwvYXJkLWZvcm0tZmllbGQtZnJhbWU+XG4iXX0=
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsTUFBTSxFQUdOLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHL0UsT0FBTyxFQUFFLDJCQUEyQixFQUE0QixNQUFNLDJCQUEyQixDQUFDO0FBQ2xHLE9BQU8sRUFDTCw0Q0FBNEMsRUFDNUMsdUNBQXVDLEVBQ3ZDLDZDQUE2QyxFQUM3Qyx1Q0FBdUMsR0FDeEMsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFxQnJDLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSx1QkFBdUI7SUFFdkUsWUFBaUQsUUFBa0M7UUFDakYsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBR2xCLGNBQWM7UUFDTCxnQkFBVyxHQUFHLFNBQVMsQ0FBK0IsV0FBVyxDQUFDLENBQUM7UUFPbkUsZ0JB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RUFpRUE7OzRGRGpCYSw0QkFBNEI7a0JBbEJ4QyxTQUFTOytCQUNFLG9CQUFvQixpQkFHZixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDZCQUE2QixDQUFDOzRCQUMzRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsdUJBQXVCOzRCQUNoQyxXQUFXLDhCQUE4Qjt5QkFDMUM7cUJBQ0Y7OzBCQUlZLE1BQU07MkJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbmplY3QsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBjb21wdXRlZCxcclxuICBjb250ZW50Q2hpbGQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBpbnB1dCxcclxuICBtb2RlbCxcclxuICB2aWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcclxuaW1wb3J0IHsgaXNBbnlTdHJpbmcsIGlzRGVmaW5lZCB9IGZyb20gJ3NpbXBsZS1ib29sJztcclxuaW1wb3J0IHsgX0Zvcm1GaWVsZENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9faW50ZXJuYWwvZm9ybS1maWVsZC1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtRWxlbWVudEFwcGVhcmFuY2UsIEZvcm1FbGVtZW50VmFyaWFudCB9IGZyb20gJy4uLy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xyXG5pbXBvcnQgeyBBUkRfUEFTU1dPUkRfSU5QVVRfREVGQVVMVFMsIEFyZFBhc3N3b3JkSW5wdXREZWZhdWx0cyB9IGZyb20gJy4vcGFzc3dvcmQtaW5wdXQuZGVmYXVsdHMnO1xyXG5pbXBvcnQge1xyXG4gIEFyZFBhc3N3b3JkSW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZFBhc3N3b3JkSW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRQYXNzd29yZElucHV0UmV2ZWFsQnV0dG9uVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgQXJkUGFzc3dvcmRJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLFxyXG59IGZyb20gJy4vcGFzc3dvcmQtaW5wdXQuZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IFBhc3N3b3JkSW5wdXRSZXZlYWxCdXR0b25Db250ZXh0IH0gZnJvbSAnLi9wYXNzd29yZC1pbnB1dC50eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FyZC1wYXNzd29yZC1pbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcmRpdW1QYXNzd29yZElucHV0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBfRm9ybUZpZWxkQ29tcG9uZW50QmFzZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IEFyZGl1bVBhc3N3b3JkSW5wdXRDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1QYXNzd29yZElucHV0Q29tcG9uZW50IGV4dGVuZHMgX0Zvcm1GaWVsZENvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBBcmRQYXNzd29yZElucHV0RGVmYXVsdHM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfUEFTU1dPUkRfSU5QVVRfREVGQVVMVFMpIGRlZmF1bHRzOiBBcmRQYXNzd29yZElucHV0RGVmYXVsdHMpIHtcclxuICAgIHN1cGVyKGRlZmF1bHRzKTtcclxuICB9XHJcblxyXG4gIC8vISBpbnB1dCB2aWV3XHJcbiAgcmVhZG9ubHkgdGV4dElucHV0RWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4oJ3RleHRJbnB1dCcpO1xyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLl9zZXRJbnB1dEF0dHJpYnV0ZXMoKTtcclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPih0aGlzLl9ERUZBVUxUUy5wbGFjZWhvbGRlcik7XHJcbiAgcmVhZG9ubHkgaW5wdXRJZCA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KCk7XHJcblxyXG4gIC8vISBwcmVmaXggJiBzdWZmaXhcclxuICByZWFkb25seSBwcmVmaXhUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRQYXNzd29yZElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZFBhc3N3b3JkSW5wdXRTdWZmaXhUZW1wbGF0ZURpcmVjdGl2ZSk7XHJcblxyXG4gIC8vISBwbGFjZWhvbGRlclxyXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkUGFzc3dvcmRJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICByZWFkb25seSBzaG91bGREaXNwbGF5UGxhY2Vob2xkZXIgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMucGxhY2Vob2xkZXIoKSAmJiAhdGhpcy52YWx1ZSgpKTtcclxuXHJcbiAgLy8hIHJldmVhbGluZ1xyXG4gIHJlYWRvbmx5IHJldmVhbGFibGUgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnJldmVhbGFibGUsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuICByZWFkb25seSBob2xkVG9SZXZlYWwgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLmhvbGRUb1JldmVhbCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG5cclxuICByZWFkb25seSBhdXRvSGlkZVRpbWVvdXRNcyA9IGlucHV0PE51bGxhYmxlPG51bWJlcj4sIGFueT4odGhpcy5fREVGQVVMVFMuYXV0b0hpZGVUaW1lb3V0TXMsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy5hdXRvSGlkZVRpbWVvdXRNcyksXHJcbiAgfSk7XHJcblxyXG4gIHJlYWRvbmx5IHJldmVhbGVkID0gbW9kZWw8Ym9vbGVhbj4odGhpcy5fREVGQVVMVFMucmV2ZWFsZWQpO1xyXG5cclxuICBwcml2YXRlIF9oaWRlVGltZW91dDogTm9kZUpTLlRpbWVvdXQgfCBudWxsID0gbnVsbDtcclxuICB0b2dnbGVSZXZlYWwobmV3U3RhdGUgPSAhdGhpcy5yZXZlYWxlZCgpKTogdm9pZCB7XHJcbiAgICB0aGlzLnJldmVhbGVkLnNldChuZXdTdGF0ZSk7XHJcblxyXG4gICAgaWYgKHRoaXMuX2hpZGVUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9oaWRlVGltZW91dCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0aW1lb3V0ID0gdGhpcy5hdXRvSGlkZVRpbWVvdXRNcygpO1xyXG4gICAgaWYgKHRpbWVvdXQgJiYgbmV3U3RhdGUpIHtcclxuICAgICAgdGhpcy5faGlkZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmV2ZWFsZWQuc2V0KGZhbHNlKSwgdGltZW91dCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICBpZiAodGhpcy5faGlkZVRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2hpZGVUaW1lb3V0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IHJldmVhbFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZFBhc3N3b3JkSW5wdXRSZXZlYWxCdXR0b25UZW1wbGF0ZURpcmVjdGl2ZSk7XHJcblxyXG4gIHJlYWRvbmx5IHJldmVhbEJ1dHRvbkNvbnRleHQgPSBjb21wdXRlZChcclxuICAgICgpOiBQYXNzd29yZElucHV0UmV2ZWFsQnV0dG9uQ29udGV4dCA9PiAoe1xyXG4gICAgICAkaW1wbGljaXQ6IHRoaXMucmV2ZWFsZWQoKSxcclxuICAgIH0pXHJcbiAgKTtcclxuXHJcbiAgLy8hIGFwcGVhcmFuY2VcclxuICByZWFkb25seSBhcHBlYXJhbmNlID0gaW5wdXQ8Rm9ybUVsZW1lbnRBcHBlYXJhbmNlPih0aGlzLl9ERUZBVUxUUy5hcHBlYXJhbmNlKTtcclxuICByZWFkb25seSB2YXJpYW50ID0gaW5wdXQ8Rm9ybUVsZW1lbnRWYXJpYW50Pih0aGlzLl9ERUZBVUxUUy52YXJpYW50KTtcclxuXHJcbiAgcmVhZG9ubHkgY29tcGFjdCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuY29tcGFjdCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xyXG5cclxuICByZWFkb25seSBuZ0NsYXNzZXMgPSBjb21wdXRlZCgoKSA9PlxyXG4gICAgW1xyXG4gICAgICBgYXJkLWFwcGVhcmFuY2UtJHt0aGlzLmFwcGVhcmFuY2UoKX1gLFxyXG4gICAgICBgYXJkLXZhcmlhbnQtJHt0aGlzLnZhcmlhbnQoKX1gLFxyXG4gICAgICB0aGlzLmNvbXBhY3QoKSA/ICdhcmQtY29tcGFjdCcgOiAnJyxcclxuICAgICAgdGhpcy5yZXZlYWxhYmxlKCkgPyAnYXJkLXJldmVhbGFibGUnIDogJycsXHJcbiAgICBdLmpvaW4oJyAnKVxyXG4gICk7XHJcblxyXG4gIC8vISBvdGhlciBpbnB1dHNcclxuICByZWFkb25seSBpbnB1dEF0dHJzID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgYW55Pj4odGhpcy5fREVGQVVMVFMuaW5wdXRBdHRycyk7XHJcblxyXG4gIC8vISBjb250cm9sIHZhbHVlIGFjY2Vzc29yJ3Mgd3JpdGUgdmFsdWUgaW1wbGVtZW50YXRpb25cclxuICB3cml0ZVZhbHVlKHY6IGFueSkge1xyXG4gICAgaWYgKCFpc0FueVN0cmluZyh2KSAmJiBpc0RlZmluZWQodikpIHtcclxuICAgICAgLy93YXJuIHdoZW4gdXNpbmcgbm9uLXN0cmluZy9ub24tbnVsbCB2YWx1ZVxyXG4gICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgbmV3IEVycm9yKFxyXG4gICAgICAgICAgYEFSRC1XQTAwMjA6IFRyeWluZyB0byBzZXQgPGFyZC1wYXNzd29yZC1pbnB1dD4ncyB2YWx1ZSB0byBcIiR7dn1cIiAob2YgdHlwZSAke3R5cGVvZiB2fSksIGV4cGVjdGVkIHN0cmluZyBvciBudWxsLmBcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICAgIC8vbm9ybWFsaXplIHRoZSB2YWx1ZVxyXG4gICAgICB2ID0gdj8udG9TdHJpbmc/LigpID8/IFN0cmluZyh2KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fd3JpdGVWYWx1ZSh2KTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF93cml0ZVZhbHVlKHY6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG9sZFZhbCA9IHRoaXMudmFsdWUoKTtcclxuICAgIHRoaXMudmFsdWUuc2V0KHYpO1xyXG4gICAgcmV0dXJuIG9sZFZhbCAhPT0gdjtcclxuICB9XHJcbiAgLy8hIHZhbHVlIHR3by13YXkgYmluZGluZ1xyXG4gIHJlYWRvbmx5IHZhbHVlID0gbW9kZWw8TnVsbGFibGU8c3RyaW5nPj4oKTtcclxuXHJcbiAgLy8hIGV2ZW50IGhhbmRsZXJzXHJcbiAgb25JbnB1dChuZXdWYWw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFsdWVIYXNDaGFuZ2VkID0gdGhpcy5fd3JpdGVWYWx1ZShuZXdWYWwpO1xyXG4gICAgaWYgKCF2YWx1ZUhhc0NoYW5nZWQpIHJldHVybjtcclxuICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICB9XHJcbiAgcHJvdGVjdGVkIF9lbWl0Q2hhbmdlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdiA9IHRoaXMudmFsdWUoKTtcclxuICAgIHRoaXMuX29uQ2hhbmdlUmVnaXN0ZXJlZD8uKHYpO1xyXG4gIH1cclxuICAvL2ZvY3VzLCBibHVyLCBjaGFuZ2VcclxuICBvbkNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5fZW1pdENoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gY29weVxyXG4gIG9uQ29weShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHRleHRJbnB1dEVsID0gdGhpcy50ZXh0SW5wdXRFbCgpO1xyXG4gICAgY29uc3QgdiA9IHRoaXMudmFsdWUoKTtcclxuICAgIGlmIChcclxuICAgICAgdiAmJlxyXG4gICAgICB0ZXh0SW5wdXRFbCAmJlxyXG4gICAgICAvL2RvZXMgdGhlIHNlbGVjdGlvbiBjb3ZlciB0aGUgZW50aXJlIGlucHV0XHJcbiAgICAgICgodGV4dElucHV0RWwubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gMCAmJlxyXG4gICAgICAgIHRleHRJbnB1dEVsLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kID09PSB0ZXh0SW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlLmxlbmd0aCkgfHxcclxuICAgICAgICAvL29yIGlzIHplcm8td2lkZVxyXG4gICAgICAgIHRleHRJbnB1dEVsLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IHRleHRJbnB1dEVsLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kKVxyXG4gICAgKSB7XHJcbiAgICAgIGV2ZW50LmNsaXBib2FyZERhdGE/LnNldERhdGEoJ3RleHQvcGxhaW4nLCB2KTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8hIGhlbHBlcnNcclxuICBwcm90ZWN0ZWQgX3NldElucHV0QXR0cmlidXRlcygpIHtcclxuICAgIGNvbnN0IGlucHV0ID0gdGhpcy50ZXh0SW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50O1xyXG4gICAgaWYgKCFpbnB1dCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XHJcbiAgICAgIHR5cGU6ICd0ZXh0JyxcclxuICAgICAgYXV0b2NvcnJlY3Q6ICdvZmYnLFxyXG4gICAgICBhdXRvY2FwaXRhbGl6ZTogJ29mZicsXHJcbiAgICAgIGF1dG9jb21wbGV0ZTogJ29mZicsXHJcbiAgICAgIHRhYmluZGV4OiBTdHJpbmcodGhpcy50YWJJbmRleCgpKSxcclxuICAgICAgLi4udGhpcy5pbnB1dEF0dHJzKCksXHJcbiAgICB9O1xyXG5cclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpKSB7XHJcbiAgICAgIGlucHV0LnNldEF0dHJpYnV0ZShrZXksIFN0cmluZyhhdHRyaWJ1dGVzW2tleV0pKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGFyZC1mb3JtLWZpZWxkLWZyYW1lXHJcbiAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZSgpXCJcclxuICBbdmFyaWFudF09XCJ2YXJpYW50KClcIlxyXG4gIFtjb21wYWN0XT1cImNvbXBhY3QoKVwiXHJcbiAgW2lzRm9jdXNlZF09XCJpc0ZvY3VzZWQoKVwiXHJcbiAgW2hhc0Vycm9yXT1cImhhc0Vycm9yKClcIlxyXG4gIFtpc1N1Y2Nlc3NdPVwiaXNTdWNjZXNzKClcIlxyXG4gIFtwcmVmaXhUZW1wbGF0ZV09XCJwcmVmaXhUZW1wbGF0ZSgpPy50ZW1wbGF0ZVwiXHJcbiAgW3N1ZmZpeFRlbXBsYXRlXT1cInN1ZmZpeFRlbXBsYXRlKCk/LnRlbXBsYXRlXCJcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYXJkLXBhc3N3b3JkLWlucHV0XCJcclxuICAgIFtuZ0NsYXNzXT1cIm5nQ2xhc3NlcygpXCJcclxuICAgIFtjbGFzcy5hcmQtaGFzLXZhbHVlXT1cInZhbHVlKClcIlxyXG4gICAgKGNsaWNrKT1cImZvY3VzKClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICAgIEBpZiAoc2hvdWxkRGlzcGxheVBsYWNlaG9sZGVyKCkpIHtcclxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyKCkgfX08L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicGxhY2Vob2xkZXJUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZVwiIC8+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgICN0ZXh0SW5wdXRcclxuICAgICAgICAjZm9jdXNhYmxlRWxlbWVudFxyXG4gICAgICAgIFt0eXBlXT1cIiFyZXZlYWxhYmxlKCkgfHwgIXJldmVhbGVkKCkgPyAncGFzc3dvcmQnIDogJ3RleHQnXCJcclxuICAgICAgICBbYXR0ci5pZF09XCJpbnB1dElkKClcIlxyXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQodGV4dElucHV0LnZhbHVlKVwiXHJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNvcHkpPVwib25Db3B5KCRldmVudClcIlxyXG4gICAgICAgIFtjbGFzcy5hcmQtcmV2ZWFsZWRdPVwicmV2ZWFsYWJsZSgpICYmIHJldmVhbGVkKClcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgQGlmIChyZXZlYWxhYmxlKCkpIHtcclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwiYXJkLXJldmVhbC1idXR0b25cIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIChjbGljayk9XCIhaG9sZFRvUmV2ZWFsKCkgJiYgdG9nZ2xlUmV2ZWFsKClcIlxyXG4gICAgICAgIChtb3VzZWRvd24pPVwiaG9sZFRvUmV2ZWFsKCkgJiYgcmV2ZWFsZWQuc2V0KHRydWUpXCJcclxuICAgICAgICAobW91c2V1cCk9XCJob2xkVG9SZXZlYWwoKSAmJiByZXZlYWxlZC5zZXQoZmFsc2UpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgI2RlZmF1bHRSZXZlYWxUZW1wbGF0ZVxyXG4gICAgICAgICAgbGV0LXJldmVhbGVkXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGFyZC1pY29uIFtpY29uXT1cInJldmVhbGVkID8gJ3Zpc2liaWxpdHknIDogJ3Zpc2liaWxpdHlfb2ZmJ1wiPjwvYXJkLWljb24+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJyZXZlYWxUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0UmV2ZWFsVGVtcGxhdGVcIlxyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInJldmVhbEJ1dHRvbkNvbnRleHQoKVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvYXJkLWZvcm0tZmllbGQtZnJhbWU+XHJcbiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { _formFieldComponentDefaults } from '../../_internal/form-field-component';
|
|
3
3
|
import { FormElementAppearance, FormElementVariant } from './../../types/theming.types';
|
|
4
4
|
const _passwordInputDefaults = {
|
|
5
|
-
...
|
|
5
|
+
..._formFieldComponentDefaults,
|
|
6
6
|
appearance: FormElementAppearance.Outlined,
|
|
7
7
|
variant: FormElementVariant.Rounded,
|
|
8
8
|
compact: false,
|
|
@@ -21,4 +21,4 @@ export const ARD_PASSWORD_INPUT_DEFAULTS = new InjectionToken('ard-password-inpu
|
|
|
21
21
|
export function providePasswordInputDefaults(config) {
|
|
22
22
|
return { provide: ARD_PASSWORD_INPUT_DEFAULTS, useValue: { ..._passwordInputDefaults, ...config } };
|
|
23
23
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtaW5wdXQuZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2lucHV0cy9wYXNzd29yZC1pbnB1dC9wYXNzd29yZC1pbnB1dC5kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBK0IsMkJBQTJCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQWV4RixNQUFNLHNCQUFzQixHQUE2QjtJQUN2RCxHQUFHLDJCQUEyQjtJQUM5QixVQUFVLEVBQUUscUJBQXFCLENBQUMsUUFBUTtJQUMxQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsT0FBTztJQUNuQyxPQUFPLEVBQUUsS0FBSztJQUNkLFdBQVcsRUFBRSxFQUFFO0lBQ2YsVUFBVSxFQUFFLElBQUk7SUFDaEIsWUFBWSxFQUFFLEtBQUs7SUFDbkIsaUJBQWlCLEVBQUUsU0FBUztJQUM1QixRQUFRLEVBQUUsS0FBSztJQUNmLFVBQVUsRUFBRSxFQUFFO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLElBQUksY0FBYyxDQUEyQiw2QkFBNkIsRUFBRTtJQUNySCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNkLEdBQUcsc0JBQXNCO0tBQzFCLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsTUFBeUM7SUFDcEYsT0FBTyxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLHNCQUFzQixFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztBQUN0RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IF9Gb3JtRmllbGRDb21wb25lbnREZWZhdWx0cywgX2Zvcm1GaWVsZENvbXBvbmVudERlZmF1bHRzIH0gZnJvbSAnLi4vLi4vX2ludGVybmFsL2Zvcm0tZmllbGQtY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUVsZW1lbnRBcHBlYXJhbmNlLCBGb3JtRWxlbWVudFZhcmlhbnQgfSBmcm9tICcuLy4uLy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xyXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4vLi4vLi4vdHlwZXMvdXRpbGl0eS50eXBlcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFyZFBhc3N3b3JkSW5wdXREZWZhdWx0cyBleHRlbmRzIF9Gb3JtRmllbGRDb21wb25lbnREZWZhdWx0cyB7XHJcbiAgYXBwZWFyYW5jZTogRm9ybUVsZW1lbnRBcHBlYXJhbmNlO1xyXG4gIHZhcmlhbnQ6IEZvcm1FbGVtZW50VmFyaWFudDtcclxuICBjb21wYWN0OiBib29sZWFuO1xyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgcmV2ZWFsYWJsZTogYm9vbGVhbjtcclxuICBob2xkVG9SZXZlYWw6IGJvb2xlYW47XHJcbiAgYXV0b0hpZGVUaW1lb3V0TXM6IE51bGxhYmxlPG51bWJlcj47XHJcbiAgcmV2ZWFsZWQ6IGJvb2xlYW47XHJcbiAgaW5wdXRBdHRyczogUmVjb3JkPHN0cmluZywgYW55PjtcclxufVxyXG5cclxuY29uc3QgX3Bhc3N3b3JkSW5wdXREZWZhdWx0czogQXJkUGFzc3dvcmRJbnB1dERlZmF1bHRzID0ge1xyXG4gIC4uLl9mb3JtRmllbGRDb21wb25lbnREZWZhdWx0cyxcclxuICBhcHBlYXJhbmNlOiBGb3JtRWxlbWVudEFwcGVhcmFuY2UuT3V0bGluZWQsXHJcbiAgdmFyaWFudDogRm9ybUVsZW1lbnRWYXJpYW50LlJvdW5kZWQsXHJcbiAgY29tcGFjdDogZmFsc2UsXHJcbiAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gIHJldmVhbGFibGU6IHRydWUsXHJcbiAgaG9sZFRvUmV2ZWFsOiBmYWxzZSxcclxuICBhdXRvSGlkZVRpbWVvdXRNczogdW5kZWZpbmVkLFxyXG4gIHJldmVhbGVkOiBmYWxzZSxcclxuICBpbnB1dEF0dHJzOiB7fSxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBBUkRfUEFTU1dPUkRfSU5QVVRfREVGQVVMVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXJkUGFzc3dvcmRJbnB1dERlZmF1bHRzPignYXJkLXBhc3N3b3JkLWlucHV0LWRlZmF1bHRzJywge1xyXG4gIGZhY3Rvcnk6ICgpID0+ICh7XHJcbiAgICAuLi5fcGFzc3dvcmRJbnB1dERlZmF1bHRzLFxyXG4gIH0pLFxyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlUGFzc3dvcmRJbnB1dERlZmF1bHRzKGNvbmZpZzogUGFydGlhbDxBcmRQYXNzd29yZElucHV0RGVmYXVsdHM+KTogUHJvdmlkZXIge1xyXG4gIHJldHVybiB7IHByb3ZpZGU6IEFSRF9QQVNTV09SRF9JTlBVVF9ERUZBVUxUUywgdXNlVmFsdWU6IHsgLi4uX3Bhc3N3b3JkSW5wdXREZWZhdWx0cywgLi4uY29uZmlnIH0gfTtcclxufVxyXG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, contentChild, forwardRef, Inject, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { _FormFieldComponentBase } from '../../_internal/form-field-component';
|
|
3
4
|
import { _SimpleInputComponentBase } from '../_simple-input-base';
|
|
4
5
|
import { ARD_SIMPLE_INPUT_DEFAULTS } from './simple-input.defaults';
|
|
5
6
|
import { ArdSimpleInputPlaceholderTemplateDirective, ArdSimpleInputPrefixTemplateDirective, ArdSimpleInputSuffixTemplateDirective, } from './simple-input.directives';
|
|
@@ -23,7 +24,11 @@ export class ArdiumSimpleInputComponent extends _SimpleInputComponentBase {
|
|
|
23
24
|
useExisting: forwardRef(() => ArdiumSimpleInputComponent),
|
|
24
25
|
multi: true,
|
|
25
26
|
},
|
|
26
|
-
|
|
27
|
+
{
|
|
28
|
+
provide: _FormFieldComponentBase,
|
|
29
|
+
useExisting: ArdiumSimpleInputComponent
|
|
30
|
+
},
|
|
31
|
+
], queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdSimpleInputPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdSimpleInputSuffixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "placeholderTemplate", first: true, predicate: ArdSimpleInputPlaceholderTemplateDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-simple-input\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-value]=\"value\"\r\n (click)=\"focus()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\r\n }\r\n\r\n <input\r\n #textInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"readonly()\"\r\n [disabled]=\"disabled()\"\r\n (input)=\"onInput(textInput.value)\"\r\n (focus)=\"onFocusMaster($event)\"\r\n (blur)=\"onBlurMaster($event)\"\r\n (change)=\"onChange($event)\"\r\n (copy)=\"onCopy($event)\"\r\n />\r\n </div>\r\n\r\n @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"onClearButtonClick($event)\"\r\n />\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;pointer-events:none}.ard-text-align-left input,.ard-text-align-left .ard-placeholder{text-align:left}.ard-text-align-center input,.ard-text-align-center .ard-placeholder{text-align:center}.ard-text-align-right input,.ard-text-align-right .ard-placeholder{text-align:right}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2._ClearButtonComponent, selector: "ard-clear-button" }, { kind: "component", type: i3.ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: ["hasError", "isSuccess", "isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
27
32
|
}
|
|
28
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumSimpleInputComponent, decorators: [{
|
|
29
34
|
type: Component,
|
|
@@ -33,9 +38,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
33
38
|
useExisting: forwardRef(() => ArdiumSimpleInputComponent),
|
|
34
39
|
multi: true,
|
|
35
40
|
},
|
|
36
|
-
|
|
41
|
+
{
|
|
42
|
+
provide: _FormFieldComponentBase,
|
|
43
|
+
useExisting: ArdiumSimpleInputComponent
|
|
44
|
+
},
|
|
45
|
+
], template: "<ard-form-field-frame\r\n [appearance]=\"appearance()\"\r\n [variant]=\"variant()\"\r\n [compact]=\"compact()\"\r\n [isFocused]=\"isFocused()\"\r\n [hasError]=\"hasError()\"\r\n [isSuccess]=\"isSuccess()\"\r\n [prefixTemplate]=\"prefixTemplate()?.template\"\r\n [suffixTemplate]=\"suffixTemplate()?.template\"\r\n>\r\n <div\r\n class=\"ard-simple-input\"\r\n [ngClass]=\"ngClasses()\"\r\n [class.ard-has-value]=\"value\"\r\n (click)=\"focus()\"\r\n >\r\n <div class=\"ard-input-container\">\r\n @if (shouldDisplayPlaceholder()) {\r\n <ng-template #defaultPlaceholderTemplate>\r\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\r\n </ng-template>\r\n\r\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\r\n }\r\n\r\n <input\r\n #textInput\r\n #focusableElement\r\n type=\"text\"\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"tabIndex()\"\r\n [readonly]=\"readonly()\"\r\n [disabled]=\"disabled()\"\r\n (input)=\"onInput(textInput.value)\"\r\n (focus)=\"onFocusMaster($event)\"\r\n (blur)=\"onBlurMaster($event)\"\r\n (change)=\"onChange($event)\"\r\n (copy)=\"onCopy($event)\"\r\n />\r\n </div>\r\n\r\n @if (shouldShowClearButton()) {\r\n <ard-clear-button\r\n [title]=\"clearButtonTitle()\"\r\n (click)=\"onClearButtonClick($event)\"\r\n />\r\n }\r\n </div>\r\n</ard-form-field-frame>\r\n", styles: [".ard-input-container{position:relative}.ard-placeholder{position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;pointer-events:none}.ard-text-align-left input,.ard-text-align-left .ard-placeholder{text-align:left}.ard-text-align-center input,.ard-text-align-center .ard-placeholder{text-align:center}.ard-text-align-right input,.ard-text-align-right .ard-placeholder{text-align:right}\n"] }]
|
|
37
46
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
38
47
|
type: Inject,
|
|
39
48
|
args: [ARD_SIMPLE_INPUT_DEFAULTS]
|
|
40
49
|
}] }] });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL3NpbXBsZS1pbnB1dC9zaW1wbGUtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvc2ltcGxlLWlucHV0L3NpbXBsZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBMEIsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RixPQUFPLEVBQ0wsMENBQTBDLEVBQzFDLHFDQUFxQyxFQUNyQyxxQ0FBcUMsR0FDdEMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFvQm5DLE1BQU0sT0FBTywwQkFBMkIsU0FBUSx5QkFBeUI7SUFFdkUsWUFBK0MsUUFBZ0M7UUFDN0UsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBR2xCLG1CQUFtQjtRQUNWLG1CQUFjLEdBQUcsWUFBWSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDckUsbUJBQWMsR0FBRyxZQUFZLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUU5RSxlQUFlO1FBQ04sd0JBQW1CLEdBQUcsWUFBWSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFQeEYsQ0FBQzsrR0FKVSwwQkFBMEIsa0JBRWpCLHlCQUF5QjttR0FGbEMsMEJBQTBCLDJDQVoxQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBQ3pELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsdUJBQXVCO2dCQUNoQyxXQUFXLEVBQUUsMEJBQTBCO2FBQ3hDO1NBQ0Ysc0VBU3NDLHFDQUFxQyxpR0FDckMscUNBQXFDLHNHQUdoQywwQ0FBMEMsdUZDeEN4RiwwaERBaURBOzs0RkRwQmEsMEJBQTBCO2tCQWxCdEMsU0FBUzsrQkFDRSxrQkFBa0IsaUJBR2IsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHVCQUF1Qjs0QkFDaEMsV0FBVyw0QkFBNEI7eUJBQ3hDO3FCQUNGOzswQkFJWSxNQUFNOzJCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbnRlbnRDaGlsZCwgZm9yd2FyZFJlZiwgSW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgX0Zvcm1GaWVsZENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9faW50ZXJuYWwvZm9ybS1maWVsZC1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBfU2ltcGxlSW5wdXRDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vX3NpbXBsZS1pbnB1dC1iYXNlJztcclxuaW1wb3J0IHsgQVJEX1NJTVBMRV9JTlBVVF9ERUZBVUxUUywgQXJkU2ltcGxlSW5wdXREZWZhdWx0cyB9IGZyb20gJy4vc2ltcGxlLWlucHV0LmRlZmF1bHRzJztcclxuaW1wb3J0IHtcclxuICBBcmRTaW1wbGVJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgQXJkU2ltcGxlSW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRTaW1wbGVJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLFxyXG59IGZyb20gJy4vc2ltcGxlLWlucHV0LmRpcmVjdGl2ZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcmQtc2ltcGxlLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2ltcGxlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zaW1wbGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtU2ltcGxlSW5wdXRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IF9Gb3JtRmllbGRDb21wb25lbnRCYXNlLFxyXG4gICAgICB1c2VFeGlzdGluZzogQXJkaXVtU2ltcGxlSW5wdXRDb21wb25lbnRcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bVNpbXBsZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgX1NpbXBsZUlucHV0Q29tcG9uZW50QmFzZSB7XHJcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IEFyZFNpbXBsZUlucHV0RGVmYXVsdHM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfU0lNUExFX0lOUFVUX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkU2ltcGxlSW5wdXREZWZhdWx0cykge1xyXG4gICAgc3VwZXIoZGVmYXVsdHMpO1xyXG4gIH1cclxuXHJcbiAgLy8hIHByZWZpeCAmIHN1ZmZpeFxyXG4gIHJlYWRvbmx5IHByZWZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZFNpbXBsZUlucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG4gIHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZFNpbXBsZUlucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICAvLyEgcGxhY2Vob2xkZXJcclxuICByZWFkb25seSBwbGFjZWhvbGRlclRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZFNpbXBsZUlucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSk7XHJcbn1cclxuIiwiPGFyZC1mb3JtLWZpZWxkLWZyYW1lXHJcbiAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZSgpXCJcclxuICBbdmFyaWFudF09XCJ2YXJpYW50KClcIlxyXG4gIFtjb21wYWN0XT1cImNvbXBhY3QoKVwiXHJcbiAgW2lzRm9jdXNlZF09XCJpc0ZvY3VzZWQoKVwiXHJcbiAgW2hhc0Vycm9yXT1cImhhc0Vycm9yKClcIlxyXG4gIFtpc1N1Y2Nlc3NdPVwiaXNTdWNjZXNzKClcIlxyXG4gIFtwcmVmaXhUZW1wbGF0ZV09XCJwcmVmaXhUZW1wbGF0ZSgpPy50ZW1wbGF0ZVwiXHJcbiAgW3N1ZmZpeFRlbXBsYXRlXT1cInN1ZmZpeFRlbXBsYXRlKCk/LnRlbXBsYXRlXCJcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYXJkLXNpbXBsZS1pbnB1dFwiXHJcbiAgICBbbmdDbGFzc109XCJuZ0NsYXNzZXMoKVwiXHJcbiAgICBbY2xhc3MuYXJkLWhhcy12YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAoY2xpY2spPVwiZm9jdXMoKVwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1pbnB1dC1jb250YWluZXJcIj5cclxuICAgICAgQGlmIChzaG91bGREaXNwbGF5UGxhY2Vob2xkZXIoKSkge1xyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFBsYWNlaG9sZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLXBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIoKSB9fTwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwbGFjZWhvbGRlclRlbXBsYXRlKCk/LnRlbXBsYXRlIHx8IGRlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgfVxyXG5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgI3RleHRJbnB1dFxyXG4gICAgICAgICNmb2N1c2FibGVFbGVtZW50XHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIFthdHRyLmlkXT1cImlucHV0SWQoKVwiXHJcbiAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcclxuICAgICAgICAoaW5wdXQpPVwib25JbnB1dCh0ZXh0SW5wdXQudmFsdWUpXCJcclxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1c01hc3RlcigkZXZlbnQpXCJcclxuICAgICAgICAoYmx1cik9XCJvbkJsdXJNYXN0ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAoY29weSk9XCJvbkNvcHkoJGV2ZW50KVwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYgKHNob3VsZFNob3dDbGVhckJ1dHRvbigpKSB7XHJcbiAgICAgIDxhcmQtY2xlYXItYnV0dG9uXHJcbiAgICAgICAgW3RpdGxlXT1cImNsZWFyQnV0dG9uVGl0bGUoKVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXJCdXR0b25DbGljaygkZXZlbnQpXCJcclxuICAgICAgLz5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9hcmQtZm9ybS1maWVsZC1mcmFtZT5cclxuIl19
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { _formFieldComponentDefaults } from '../../_internal/form-field-component';
|
|
3
3
|
import { SimpleOneAxisAlignment } from './../../types/alignment.types';
|
|
4
4
|
import { FormElementAppearance, FormElementVariant } from './../../types/theming.types';
|
|
5
5
|
const _simpleInputDefaults = {
|
|
6
|
-
...
|
|
6
|
+
..._formFieldComponentDefaults,
|
|
7
7
|
appearance: FormElementAppearance.Outlined,
|
|
8
8
|
variant: FormElementVariant.Rounded,
|
|
9
9
|
compact: false,
|
|
@@ -22,4 +22,4 @@ export const ARD_SIMPLE_INPUT_DEFAULTS = new InjectionToken('ard-simple-input-de
|
|
|
22
22
|
export function provideSimpleInputDefaults(config) {
|
|
23
23
|
return { provide: ARD_SIMPLE_INPUT_DEFAULTS, useValue: { ..._simpleInputDefaults, ...config } };
|
|
24
24
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWlucHV0LmRlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvc2ltcGxlLWlucHV0L3NpbXBsZS1pbnB1dC5kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSXhGLE1BQU0sb0JBQW9CLEdBQTJCO0lBQ25ELEdBQUcsMkJBQTJCO0lBQzlCLFVBQVUsRUFBRSxxQkFBcUIsQ0FBQyxRQUFRO0lBQzFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO0lBQ25DLE9BQU8sRUFBRSxLQUFLO0lBQ2QsV0FBVyxFQUFFLEVBQUU7SUFDZixTQUFTLEVBQUUsc0JBQXNCLENBQUMsSUFBSTtJQUN0QyxTQUFTLEVBQUUsS0FBSztJQUNoQixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLFVBQVUsRUFBRSxFQUFFO0lBQ2QsU0FBUyxFQUFFLFNBQVM7Q0FDckIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUF5QiwyQkFBMkIsRUFBRTtJQUMvRyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNkLEdBQUcsb0JBQW9CO0tBQ3hCLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsTUFBdUM7SUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLG9CQUFvQixFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztBQUNsRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IF9mb3JtRmllbGRDb21wb25lbnREZWZhdWx0cyB9IGZyb20gJy4uLy4uL19pbnRlcm5hbC9mb3JtLWZpZWxkLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IF9TaW1wbGVJbnB1dENvbXBvbmVudERlZmF1bHRzIH0gZnJvbSAnLi4vX3NpbXBsZS1pbnB1dC1iYXNlJztcclxuaW1wb3J0IHsgU2ltcGxlT25lQXhpc0FsaWdubWVudCB9IGZyb20gJy4vLi4vLi4vdHlwZXMvYWxpZ25tZW50LnR5cGVzJztcclxuaW1wb3J0IHsgRm9ybUVsZW1lbnRBcHBlYXJhbmNlLCBGb3JtRWxlbWVudFZhcmlhbnQgfSBmcm9tICcuLy4uLy4uL3R5cGVzL3RoZW1pbmcudHlwZXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcmRTaW1wbGVJbnB1dERlZmF1bHRzIGV4dGVuZHMgX1NpbXBsZUlucHV0Q29tcG9uZW50RGVmYXVsdHMge31cclxuXHJcbmNvbnN0IF9zaW1wbGVJbnB1dERlZmF1bHRzOiBBcmRTaW1wbGVJbnB1dERlZmF1bHRzID0ge1xyXG4gIC4uLl9mb3JtRmllbGRDb21wb25lbnREZWZhdWx0cyxcclxuICBhcHBlYXJhbmNlOiBGb3JtRWxlbWVudEFwcGVhcmFuY2UuT3V0bGluZWQsXHJcbiAgdmFyaWFudDogRm9ybUVsZW1lbnRWYXJpYW50LlJvdW5kZWQsXHJcbiAgY29tcGFjdDogZmFsc2UsXHJcbiAgcGxhY2Vob2xkZXI6ICcnLFxyXG4gIGFsaWduVGV4dDogU2ltcGxlT25lQXhpc0FsaWdubWVudC5MZWZ0LFxyXG4gIGNsZWFyYWJsZTogZmFsc2UsXHJcbiAgY2xlYXJCdXR0b25UaXRsZTogJ0NsZWFyJyxcclxuICBpbnB1dEF0dHJzOiB7fSxcclxuICBtYXhMZW5ndGg6IHVuZGVmaW5lZCxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBBUkRfU0lNUExFX0lOUFVUX0RFRkFVTFRTID0gbmV3IEluamVjdGlvblRva2VuPEFyZFNpbXBsZUlucHV0RGVmYXVsdHM+KCdhcmQtc2ltcGxlLWlucHV0LWRlZmF1bHRzJywge1xyXG4gIGZhY3Rvcnk6ICgpID0+ICh7XHJcbiAgICAuLi5fc2ltcGxlSW5wdXREZWZhdWx0cyxcclxuICB9KSxcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVNpbXBsZUlucHV0RGVmYXVsdHMoY29uZmlnOiBQYXJ0aWFsPEFyZFNpbXBsZUlucHV0RGVmYXVsdHM+KTogUHJvdmlkZXIge1xyXG4gIHJldHVybiB7IHByb3ZpZGU6IEFSRF9TSU1QTEVfSU5QVVRfREVGQVVMVFMsIHVzZVZhbHVlOiB7IC4uLl9zaW1wbGVJbnB1dERlZmF1bHRzLCAuLi5jb25maWcgfSB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -91,13 +91,13 @@ export class ArdiumSegmentComponent extends _SelectableListComponentBase {
|
|
|
91
91
|
this.itemStorage.unhighlightAll();
|
|
92
92
|
}
|
|
93
93
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumSegmentComponent, deps: [{ token: ARD_SEGMENT_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
94
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumSegmentComponent, selector: "ard-segment", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, iconBased: { classPropertyName: "iconBased", publicName: "iconBased", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null }, uniformWidths: { classPropertyName: "uniformWidths", publicName: "uniformWidths", isSignal: true, isRequired: false, transformFunction: null }, itemsPerRow: { classPropertyName: "itemsPerRow", publicName: "itemsPerRow", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "optionTemplate", first: true, predicate: ArdSegmentOptionTemplateDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n #focusableElement\n class=\"ard-segment-container\"\n [class.ard-disabled]=\"disabled()\"\n [ariaDisabled]=\"disabled()\"\n [ngClass]=\"ngClasses()\"\n [class.ard-focus-visible]=\"isFocused && !isMouseBeingUsed\"\n [class.ard-using-keyboard]=\"!isMouseBeingUsed\"\n [attr.tabindex]=\"tabIndex()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n>\n @for (row of itemRows(); track $index) {\n <div\n class=\"ard-segment-row\"\n [class.ard-segment-row-partial]=\"row.isNotFull\"\n [class.ard-segment-row-uniform]=\"uniformWidths() || itemsPerRow() < items.length\"\n [style]=\"{ '--ard-_segment-row-items': itemsInActualRow }\"\n >\n @for (option of row.options; track $index) {\n <button\n type=\"button\"\n class=\"ard-segment-option\"\n tabindex=\"-1\"\n [class.ard-option-disabled]=\"option.disabled() || (isItemLimitReached() && !option.selected())\"\n [class.ard-option-selected]=\"option.selected()\"\n [class.ard-option-highlighted]=\"option.highlighted()\"\n [ariaSelected]=\"option.selected()\"\n (mouseenter)=\"onItemMouseEnter(option, $event)\"\n (mouseleave)=\"onItemMouseLeave(option, $event)\"\n (click)=\"onItemClick(option, $event)\"\n >\n <div class=\"ard-focus-overlay\"></div>\n <div class=\"ard-button-content\">\n <span class=\"ard-option-label\">\n <ng-template #defaultOptionTemplate>\n {{ option.label() }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"optionTemplate()?.template || defaultOptionTemplate\"\n [ngTemplateOutletContext]=\"getOptionContext(option)\"\n />\n </span>\n </div>\n </button>\n }\n </div>\n }\n</div>\n", styles: [".ard-segment-container{display:flex;flex-direction:column}.ard-segment-container.ard-align-left .ard-segment-option{justify-content:left}.ard-segment-container.ard-align-middle .ard-segment-option{justify-content:center}.ard-segment-container.ard-align-right .ard-segment-option{justify-content:right}.ard-segment-row{width:100%;display:flex;align-items:center}.ard-segment-row.ard-segment-row-uniform{display:grid;grid-template-columns:repeat(var(--ard-_segment-row-items),1fr)}.ard-segment-option{-webkit-user-select:none;user-select:none}.ard-option-disabled{pointer-events:none}\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 }); }
|
|
94
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ArdiumSegmentComponent, selector: "ard-segment", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, iconBased: { classPropertyName: "iconBased", publicName: "iconBased", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null }, uniformWidths: { classPropertyName: "uniformWidths", publicName: "uniformWidths", isSignal: true, isRequired: false, transformFunction: null }, itemsPerRow: { classPropertyName: "itemsPerRow", publicName: "itemsPerRow", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "optionTemplate", first: true, predicate: ArdSegmentOptionTemplateDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n #focusableElement\n class=\"ard-segment-container\"\n [class.ard-disabled]=\"disabled()\"\n [ariaDisabled]=\"disabled()\"\n [ngClass]=\"ngClasses()\"\n [class.ard-focus-visible]=\"isFocused() && !isMouseBeingUsed\"\n [class.ard-using-keyboard]=\"!isMouseBeingUsed\"\n [attr.tabindex]=\"tabIndex()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n>\n @for (row of itemRows(); track $index) {\n <div\n class=\"ard-segment-row\"\n [class.ard-segment-row-partial]=\"row.isNotFull\"\n [class.ard-segment-row-uniform]=\"uniformWidths() || itemsPerRow() < items.length\"\n [style]=\"{ '--ard-_segment-row-items': itemsInActualRow }\"\n >\n @for (option of row.options; track $index) {\n <button\n type=\"button\"\n class=\"ard-segment-option\"\n tabindex=\"-1\"\n [class.ard-option-disabled]=\"option.disabled() || (isItemLimitReached() && !option.selected())\"\n [class.ard-option-selected]=\"option.selected()\"\n [class.ard-option-highlighted]=\"option.highlighted()\"\n [ariaSelected]=\"option.selected()\"\n (mouseenter)=\"onItemMouseEnter(option, $event)\"\n (mouseleave)=\"onItemMouseLeave(option, $event)\"\n (click)=\"onItemClick(option, $event)\"\n >\n <div class=\"ard-focus-overlay\"></div>\n <div class=\"ard-button-content\">\n <span class=\"ard-option-label\">\n <ng-template #defaultOptionTemplate>\n {{ option.label() }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"optionTemplate()?.template || defaultOptionTemplate\"\n [ngTemplateOutletContext]=\"getOptionContext(option)\"\n />\n </span>\n </div>\n </button>\n }\n </div>\n }\n</div>\n", styles: [".ard-segment-container{display:flex;flex-direction:column}.ard-segment-container.ard-align-left .ard-segment-option{justify-content:left}.ard-segment-container.ard-align-middle .ard-segment-option{justify-content:center}.ard-segment-container.ard-align-right .ard-segment-option{justify-content:right}.ard-segment-row{width:100%;display:flex;align-items:center}.ard-segment-row.ard-segment-row-uniform{display:grid;grid-template-columns:repeat(var(--ard-_segment-row-items),1fr)}.ard-segment-option{-webkit-user-select:none;user-select:none}.ard-option-disabled{pointer-events:none}\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 }); }
|
|
95
95
|
}
|
|
96
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumSegmentComponent, decorators: [{
|
|
97
97
|
type: Component,
|
|
98
|
-
args: [{ selector: 'ard-segment', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #focusableElement\n class=\"ard-segment-container\"\n [class.ard-disabled]=\"disabled()\"\n [ariaDisabled]=\"disabled()\"\n [ngClass]=\"ngClasses()\"\n [class.ard-focus-visible]=\"isFocused && !isMouseBeingUsed\"\n [class.ard-using-keyboard]=\"!isMouseBeingUsed\"\n [attr.tabindex]=\"tabIndex()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n>\n @for (row of itemRows(); track $index) {\n <div\n class=\"ard-segment-row\"\n [class.ard-segment-row-partial]=\"row.isNotFull\"\n [class.ard-segment-row-uniform]=\"uniformWidths() || itemsPerRow() < items.length\"\n [style]=\"{ '--ard-_segment-row-items': itemsInActualRow }\"\n >\n @for (option of row.options; track $index) {\n <button\n type=\"button\"\n class=\"ard-segment-option\"\n tabindex=\"-1\"\n [class.ard-option-disabled]=\"option.disabled() || (isItemLimitReached() && !option.selected())\"\n [class.ard-option-selected]=\"option.selected()\"\n [class.ard-option-highlighted]=\"option.highlighted()\"\n [ariaSelected]=\"option.selected()\"\n (mouseenter)=\"onItemMouseEnter(option, $event)\"\n (mouseleave)=\"onItemMouseLeave(option, $event)\"\n (click)=\"onItemClick(option, $event)\"\n >\n <div class=\"ard-focus-overlay\"></div>\n <div class=\"ard-button-content\">\n <span class=\"ard-option-label\">\n <ng-template #defaultOptionTemplate>\n {{ option.label() }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"optionTemplate()?.template || defaultOptionTemplate\"\n [ngTemplateOutletContext]=\"getOptionContext(option)\"\n />\n </span>\n </div>\n </button>\n }\n </div>\n }\n</div>\n", styles: [".ard-segment-container{display:flex;flex-direction:column}.ard-segment-container.ard-align-left .ard-segment-option{justify-content:left}.ard-segment-container.ard-align-middle .ard-segment-option{justify-content:center}.ard-segment-container.ard-align-right .ard-segment-option{justify-content:right}.ard-segment-row{width:100%;display:flex;align-items:center}.ard-segment-row.ard-segment-row-uniform{display:grid;grid-template-columns:repeat(var(--ard-_segment-row-items),1fr)}.ard-segment-option{-webkit-user-select:none;user-select:none}.ard-option-disabled{pointer-events:none}\n"] }]
|
|
98
|
+
args: [{ selector: 'ard-segment', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #focusableElement\n class=\"ard-segment-container\"\n [class.ard-disabled]=\"disabled()\"\n [ariaDisabled]=\"disabled()\"\n [ngClass]=\"ngClasses()\"\n [class.ard-focus-visible]=\"isFocused() && !isMouseBeingUsed\"\n [class.ard-using-keyboard]=\"!isMouseBeingUsed\"\n [attr.tabindex]=\"tabIndex()\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n>\n @for (row of itemRows(); track $index) {\n <div\n class=\"ard-segment-row\"\n [class.ard-segment-row-partial]=\"row.isNotFull\"\n [class.ard-segment-row-uniform]=\"uniformWidths() || itemsPerRow() < items.length\"\n [style]=\"{ '--ard-_segment-row-items': itemsInActualRow }\"\n >\n @for (option of row.options; track $index) {\n <button\n type=\"button\"\n class=\"ard-segment-option\"\n tabindex=\"-1\"\n [class.ard-option-disabled]=\"option.disabled() || (isItemLimitReached() && !option.selected())\"\n [class.ard-option-selected]=\"option.selected()\"\n [class.ard-option-highlighted]=\"option.highlighted()\"\n [ariaSelected]=\"option.selected()\"\n (mouseenter)=\"onItemMouseEnter(option, $event)\"\n (mouseleave)=\"onItemMouseLeave(option, $event)\"\n (click)=\"onItemClick(option, $event)\"\n >\n <div class=\"ard-focus-overlay\"></div>\n <div class=\"ard-button-content\">\n <span class=\"ard-option-label\">\n <ng-template #defaultOptionTemplate>\n {{ option.label() }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"optionTemplate()?.template || defaultOptionTemplate\"\n [ngTemplateOutletContext]=\"getOptionContext(option)\"\n />\n </span>\n </div>\n </button>\n }\n </div>\n }\n</div>\n", styles: [".ard-segment-container{display:flex;flex-direction:column}.ard-segment-container.ard-align-left .ard-segment-option{justify-content:left}.ard-segment-container.ard-align-middle .ard-segment-option{justify-content:center}.ard-segment-container.ard-align-right .ard-segment-option{justify-content:right}.ard-segment-row{width:100%;display:flex;align-items:center}.ard-segment-row.ard-segment-row-uniform{display:grid;grid-template-columns:repeat(var(--ard-_segment-row-items),1fr)}.ard-segment-option{-webkit-user-select:none;user-select:none}.ard-option-disabled{pointer-events:none}\n"] }]
|
|
99
99
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
100
100
|
type: Inject,
|
|
101
101
|
args: [ARD_SEGMENT_DEFAULTS]
|
|
102
102
|
}] }] });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NlZ21lbnQvc2VnbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NlZ21lbnQvc2VnbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBS3RGLE9BQU8sRUFBRSxvQkFBb0IsRUFBc0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBZXpFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSw0QkFBNEI7SUFLdEUsWUFBMEMsUUFBNEI7UUFDcEUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBTEEsaUJBQVksR0FBVyxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBVyxTQUFTLENBQUM7UUFPckQsY0FBYztRQUNMLGVBQVUsR0FBRyxLQUFLLENBQW9CLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakUsWUFBTyxHQUFHLEtBQUssQ0FBaUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxVQUFLLEdBQUcsS0FBSyxDQUFpQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELFVBQUssR0FBRyxLQUFLLENBQW1CLElBQUksQ0FBQyxT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QUM7UUFFckIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFO1lBQUUsT0FBTztRQUVwRCxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVRLE1BQU0sQ0FBQyxLQUFpQjtRQUMvQixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDcEMsQ0FBQzsrR0F4R1Usc0JBQXNCLGtCQUtiLG9CQUFvQjttR0FMN0Isc0JBQXNCLGd3Q0F5RE0saUNBQWlDLHVGQ3pGMUUsZzJEQWtEQTs7NEZEbEJhLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxhQUFhLGlCQUdSLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQU9sQyxNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBjb250ZW50Q2hpbGQsXG4gIGlucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XG5pbXBvcnQgeyBfU2VsZWN0YWJsZUxpc3RDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vX2ludGVybmFsL3NlbGVjdGFibGUtbGlzdC1jb21wb25lbnQnO1xuaW1wb3J0IHsgT25lQXhpc0FsaWdubWVudCB9IGZyb20gJy4uL3R5cGVzL2FsaWdubWVudC50eXBlcyc7XG5pbXBvcnQgeyBDb21wb25lbnRDb2xvciB9IGZyb20gJy4uL3R5cGVzL2NvbG9ycy50eXBlcyc7XG5pbXBvcnQgeyBBcmRPcHRpb25TaW1wbGUgfSBmcm9tICcuLi90eXBlcy9pdGVtLXN0b3JhZ2UudHlwZXMnO1xuaW1wb3J0IHsgU2ltcGxlSXRlbVN0b3JhZ2VIb3N0IH0gZnJvbSAnLi8uLi9faW50ZXJuYWwvaXRlbS1zdG9yYWdlcy9zaW1wbGUtaXRlbS1zdG9yYWdlJztcbmltcG9ydCB7IEFSRF9TRUdNRU5UX0RFRkFVTFRTLCBBcmRTZWdtZW50RGVmYXVsdHMgfSBmcm9tICcuL3NlZ21lbnQuZGVmYXVsdHMnO1xuaW1wb3J0IHsgQXJkU2VnbWVudE9wdGlvblRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9zZWdtZW50LmRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgU2VnbWVudEFwcGVhcmFuY2UsIFNlZ21lbnRWYXJpYW50IH0gZnJvbSAnLi9zZWdtZW50LnR5cGVzJztcblxuaW50ZXJmYWNlIFNlZ21lbnRSb3cge1xuICBvcHRpb25zOiBBcmRPcHRpb25TaW1wbGVbXTtcbiAgaXNOb3RGdWxsPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJkLXNlZ21lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VnbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlZ21lbnQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bVNlZ21lbnRDb21wb25lbnQgZXh0ZW5kcyBfU2VsZWN0YWJsZUxpc3RDb21wb25lbnRCYXNlIGltcGxlbWVudHMgU2ltcGxlSXRlbVN0b3JhZ2VIb3N0LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgX2NvbXBvbmVudElkOiBzdHJpbmcgPSAnMTA0JztcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgX2NvbXBvbmVudE5hbWU6IHN0cmluZyA9ICdzZWdtZW50JztcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX0RFRkFVTFRTITogQXJkU2VnbWVudERlZmF1bHRzO1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFSRF9TRUdNRU5UX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkU2VnbWVudERlZmF1bHRzKSB7XG4gICAgc3VwZXIoZGVmYXVsdHMpO1xuICB9XG5cbiAgLy8hIGFwcGVhcmFuY2VcbiAgcmVhZG9ubHkgYXBwZWFyYW5jZSA9IGlucHV0PFNlZ21lbnRBcHBlYXJhbmNlPih0aGlzLl9ERUZBVUxUUy5hcHBlYXJhbmNlKTtcbiAgcmVhZG9ubHkgdmFyaWFudCA9IGlucHV0PFNlZ21lbnRWYXJpYW50Pih0aGlzLl9ERUZBVUxUUy52YXJpYW50KTtcbiAgcmVhZG9ubHkgY29sb3IgPSBpbnB1dDxDb21wb25lbnRDb2xvcj4odGhpcy5fREVGQVVMVFMuY29sb3IpO1xuICByZWFkb25seSBhbGlnbiA9IGlucHV0PE9uZUF4aXNBbGlnbm1lbnQ+KHRoaXMuX0RFRkFVTFRTLmFsaWduKTtcblxuICByZWFkb25seSBpY29uQmFzZWQgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLmljb25CYXNlZCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuICByZWFkb25seSBjb21wYWN0ID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jb21wYWN0LCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG5cbiAgcmVhZG9ubHkgbmdDbGFzc2VzID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PlxuICAgIFtcbiAgICAgIGBhcmQtYXBwZWFyYW5jZS0ke3RoaXMuYXBwZWFyYW5jZSgpfWAsXG4gICAgICBgYXJkLXZhcmlhbnQtJHt0aGlzLnZhcmlhbnQoKX1gLFxuICAgICAgYGFyZC1jb2xvci0ke3RoaXMuY29sb3IoKX1gLFxuICAgICAgYGFyZC1hbGlnbi0ke3RoaXMuYWxpZ24oKX1gLFxuICAgICAgdGhpcy5pY29uQmFzZWQoKSA/ICdhcmQtaWNvbi1iYXNlZCcgOiAnJyxcbiAgICAgIHRoaXMuY29tcGFjdCgpID8gJ2FyZC1jb21wYWN0JyA6ICcnLFxuICAgICAgdGhpcy5pdGVtUm93cygpLmxlbmd0aCA+IDEgPyAnYXJkLW11bHRpcm93JyA6ICdhcmQtc2luZ2xlcm93JyxcbiAgICBdLmpvaW4oJyAnKVxuICApO1xuXG4gIC8vISBjb2VyY2VkIHByb3BlcnRpZXNcbiAgcmVhZG9ubHkgYXV0b0ZvY3VzID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5hdXRvRm9jdXMsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcbiAgcmVhZG9ubHkgdW5pZm9ybVdpZHRocyA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMudW5pZm9ybVdpZHRocywgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuXG4gIHJlYWRvbmx5IGl0ZW1zUGVyUm93ID0gaW5wdXQ8bnVtYmVyLCBhbnk+KHRoaXMuX0RFRkFVTFRTLml0ZW1zUGVyUm93LCB7XG4gICAgdHJhbnNmb3JtOiB2ID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgdGhpcy5fREVGQVVMVFMuaXRlbXNQZXJSb3cpO1xuICAgICAgaWYgKG5ld1ZhbHVlID09PSAwKSB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVDEwNDBhOiBDYW5ub3Qgc2V0IDxhcmQtc2VnbWVudD4ncyBbaXRlbXNQZXJSb3ddIHRvIDAuYCk7XG4gICAgICBpZiAobmV3VmFsdWUgPCAwKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVDEwNDBiOiBDYW5ub3Qgc2V0IDxhcmQtc2VnbWVudD4ncyBbaXRlbXNQZXJSb3ddIHRvIGEgbmVnYXRpdmUgdmFsdWUsIGdvdCBcIiR7bmV3VmFsdWV9XCIuYCk7XG4gICAgICBpZiAobmV3VmFsdWUgJSAxICE9PSAwKSB7XG4gICAgICAgIGNvbnN0IHJvdW5kZWRWYWx1ZSA9IE1hdGgucm91bmQobmV3VmFsdWUpIHx8IDE7IC8vIHJvdW5kIHRvIG5lYXJlc3QgaW50LCBidXQgbmV2ZXIgcm91bmQgdG8gemVyb1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEFSRC1XQTEwNDBjOiBDYW5ub3Qgc2V0IDxhcmQtc2VnbWVudD4ncyBbaXRlbXNQZXJSb3ddIHRvIGEgbm9uLWludGVyZ2VyIHZhbHVlLCBnb3QgXCIke25ld1ZhbHVlfVwiLiBUaGUgdmFsdWUgd2FzIHJvdW5kZWQgdG8gXCIke3JvdW5kZWRWYWx1ZX1cIi5gXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKG5ld1ZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdWYWx1ZTtcbiAgICB9LFxuICB9KTtcbiAgZ2V0IGl0ZW1zSW5BY3R1YWxSb3coKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc1BlclJvdygpID09PSBJbmZpbml0eSA/IHRoaXMuaXRlbXMubGVuZ3RoIDogdGhpcy5pdGVtc1BlclJvdygpO1xuICB9XG5cbiAgLy8hIG9wdGlvbiB0ZW1wbGF0ZVxuICByZWFkb25seSBvcHRpb25UZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRTZWdtZW50T3B0aW9uVGVtcGxhdGVEaXJlY3RpdmUpO1xuXG4gIC8vISBsaWZlY3ljbGUgaG9va3NcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmF1dG9Gb2N1cygpKSB7XG4gICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLy8hIGl0ZW0gcm93IGdldHRlcnNcbiAgcmVhZG9ubHkgaXRlbVJvd3MgPSBjb21wdXRlZDxTZWdtZW50Um93W10+KCgpID0+IHtcbiAgICBjb25zdCBpdGVtUm93czogU2VnbWVudFJvd1tdID0gW107XG4gICAgbGV0IGN1cnJlbnRSb3c6IEFyZE9wdGlvblNpbXBsZVtdID0gW107XG4gICAgLy9nZXQgYWxsIHJvd3NcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtcykge1xuICAgICAgLy9hZGQgaXRlbVxuICAgICAgY3VycmVudFJvdy5wdXNoKGl0ZW0pO1xuXG4gICAgICAvL3B1c2ggaWYgaXRlbSBhbW91bnQgcmVhY2hlZCB0aGUgbGltaXRcbiAgICAgIGlmICh0aGlzLml0ZW1zUGVyUm93KCkgJiYgY3VycmVudFJvdy5sZW5ndGggPT09IHRoaXMuaXRlbXNQZXJSb3coKSkge1xuICAgICAgICBpdGVtUm93cy5wdXNoKHsgb3B0aW9uczogY3VycmVudFJvdyB9KTtcbiAgICAgICAgY3VycmVudFJvdyA9IFtdO1xuICAgICAgfVxuICAgIH1cbiAgICAvL3B1c2ggdGhlIGxhc3Qgcm93IGlmIGl0IGlzIG5vdCBlbXB0eVxuICAgIGlmIChjdXJyZW50Um93Lmxlbmd0aCAhPT0gMCkge1xuICAgICAgaXRlbVJvd3MucHVzaCh7XG4gICAgICAgIG9wdGlvbnM6IGN1cnJlbnRSb3csXG4gICAgICAgIGlzTm90RnVsbDogQm9vbGVhbih0aGlzLml0ZW1zUGVyUm93KCkpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBpdGVtUm93cztcbiAgfSk7XG5cbiAgLy8hIGZvY3VzIGhhbmRsZXIgb3ZlcnJpZGVcbiAgb3ZlcnJpZGUgb25Gb2N1cyhldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIHN1cGVyLm9uRm9jdXMoZXZlbnQpO1xuXG4gICAgaWYgKHRoaXMuaXRlbVN0b3JhZ2UuaXNBbnlJdGVtSGlnaGxpZ2h0ZWQoKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5pdGVtU3RvcmFnZS5oaWdobGlnaHRGaXJzdEl0ZW0oKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIHN1cGVyLm9uQmx1cihldmVudCk7XG5cbiAgICB0aGlzLml0ZW1TdG9yYWdlLnVuaGlnaGxpZ2h0QWxsKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgI2ZvY3VzYWJsZUVsZW1lbnRcbiAgY2xhc3M9XCJhcmQtc2VnbWVudC1jb250YWluZXJcIlxuICBbY2xhc3MuYXJkLWRpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICBbYXJpYURpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICBbbmdDbGFzc109XCJuZ0NsYXNzZXMoKVwiXG4gIFtjbGFzcy5hcmQtZm9jdXMtdmlzaWJsZV09XCJpc0ZvY3VzZWQgJiYgIWlzTW91c2VCZWluZ1VzZWRcIlxuICBbY2xhc3MuYXJkLXVzaW5nLWtleWJvYXJkXT1cIiFpc01vdXNlQmVpbmdVc2VkXCJcbiAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXG4gIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4+XG4gIEBmb3IgKHJvdyBvZiBpdGVtUm93cygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImFyZC1zZWdtZW50LXJvd1wiXG4gICAgICBbY2xhc3MuYXJkLXNlZ21lbnQtcm93LXBhcnRpYWxdPVwicm93LmlzTm90RnVsbFwiXG4gICAgICBbY2xhc3MuYXJkLXNlZ21lbnQtcm93LXVuaWZvcm1dPVwidW5pZm9ybVdpZHRocygpIHx8IGl0ZW1zUGVyUm93KCkgPCBpdGVtcy5sZW5ndGhcIlxuICAgICAgW3N0eWxlXT1cInsgJy0tYXJkLV9zZWdtZW50LXJvdy1pdGVtcyc6IGl0ZW1zSW5BY3R1YWxSb3cgfVwiXG4gICAgPlxuICAgICAgQGZvciAob3B0aW9uIG9mIHJvdy5vcHRpb25zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiYXJkLXNlZ21lbnQtb3B0aW9uXCJcbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICBbY2xhc3MuYXJkLW9wdGlvbi1kaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWQoKSB8fCAoaXNJdGVtTGltaXRSZWFjaGVkKCkgJiYgIW9wdGlvbi5zZWxlY3RlZCgpKVwiXG4gICAgICAgICAgW2NsYXNzLmFyZC1vcHRpb24tc2VsZWN0ZWRdPVwib3B0aW9uLnNlbGVjdGVkKClcIlxuICAgICAgICAgIFtjbGFzcy5hcmQtb3B0aW9uLWhpZ2hsaWdodGVkXT1cIm9wdGlvbi5oaWdobGlnaHRlZCgpXCJcbiAgICAgICAgICBbYXJpYVNlbGVjdGVkXT1cIm9wdGlvbi5zZWxlY3RlZCgpXCJcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJvbkl0ZW1Nb3VzZUVudGVyKG9wdGlvbiwgJGV2ZW50KVwiXG4gICAgICAgICAgKG1vdXNlbGVhdmUpPVwib25JdGVtTW91c2VMZWF2ZShvcHRpb24sICRldmVudClcIlxuICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayhvcHRpb24sICRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1mb2N1cy1vdmVybGF5XCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1idXR0b24tY29udGVudFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcmQtb3B0aW9uLWxhYmVsXCI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdE9wdGlvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCgpIH19XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGUoKT8udGVtcGxhdGUgfHwgZGVmYXVsdE9wdGlvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0T3B0aW9uQ29udGV4dChvcHRpb24pXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NlZ21lbnQvc2VnbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NlZ21lbnQvc2VnbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBS3RGLE9BQU8sRUFBRSxvQkFBb0IsRUFBc0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBZXpFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSw0QkFBNEI7SUFLdEUsWUFBMEMsUUFBNEI7UUFDcEUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBTEEsaUJBQVksR0FBVyxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBVyxTQUFTLENBQUM7UUFPckQsY0FBYztRQUNMLGVBQVUsR0FBRyxLQUFLLENBQW9CLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakUsWUFBTyxHQUFHLEtBQUssQ0FBaUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxVQUFLLEdBQUcsS0FBSyxDQUFpQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELFVBQUssR0FBRyxLQUFLLENBQW1CLElBQUksQ0FBQyxT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QUM7UUFFckIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFO1lBQUUsT0FBTztRQUVwRCxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVRLE1BQU0sQ0FBQyxLQUFpQjtRQUMvQixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDcEMsQ0FBQzsrR0F4R1Usc0JBQXNCLGtCQUtiLG9CQUFvQjttR0FMN0Isc0JBQXNCLGd3Q0F5RE0saUNBQWlDLHVGQ3pGMUUsazJEQWtEQTs7NEZEbEJhLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxhQUFhLGlCQUdSLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQU9sQyxNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBjb250ZW50Q2hpbGQsXG4gIGlucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XG5pbXBvcnQgeyBfU2VsZWN0YWJsZUxpc3RDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vX2ludGVybmFsL3NlbGVjdGFibGUtbGlzdC1jb21wb25lbnQnO1xuaW1wb3J0IHsgT25lQXhpc0FsaWdubWVudCB9IGZyb20gJy4uL3R5cGVzL2FsaWdubWVudC50eXBlcyc7XG5pbXBvcnQgeyBDb21wb25lbnRDb2xvciB9IGZyb20gJy4uL3R5cGVzL2NvbG9ycy50eXBlcyc7XG5pbXBvcnQgeyBBcmRPcHRpb25TaW1wbGUgfSBmcm9tICcuLi90eXBlcy9pdGVtLXN0b3JhZ2UudHlwZXMnO1xuaW1wb3J0IHsgU2ltcGxlSXRlbVN0b3JhZ2VIb3N0IH0gZnJvbSAnLi8uLi9faW50ZXJuYWwvaXRlbS1zdG9yYWdlcy9zaW1wbGUtaXRlbS1zdG9yYWdlJztcbmltcG9ydCB7IEFSRF9TRUdNRU5UX0RFRkFVTFRTLCBBcmRTZWdtZW50RGVmYXVsdHMgfSBmcm9tICcuL3NlZ21lbnQuZGVmYXVsdHMnO1xuaW1wb3J0IHsgQXJkU2VnbWVudE9wdGlvblRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9zZWdtZW50LmRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgU2VnbWVudEFwcGVhcmFuY2UsIFNlZ21lbnRWYXJpYW50IH0gZnJvbSAnLi9zZWdtZW50LnR5cGVzJztcblxuaW50ZXJmYWNlIFNlZ21lbnRSb3cge1xuICBvcHRpb25zOiBBcmRPcHRpb25TaW1wbGVbXTtcbiAgaXNOb3RGdWxsPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJkLXNlZ21lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VnbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlZ21lbnQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bVNlZ21lbnRDb21wb25lbnQgZXh0ZW5kcyBfU2VsZWN0YWJsZUxpc3RDb21wb25lbnRCYXNlIGltcGxlbWVudHMgU2ltcGxlSXRlbVN0b3JhZ2VIb3N0LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgX2NvbXBvbmVudElkOiBzdHJpbmcgPSAnMTA0JztcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgX2NvbXBvbmVudE5hbWU6IHN0cmluZyA9ICdzZWdtZW50JztcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX0RFRkFVTFRTITogQXJkU2VnbWVudERlZmF1bHRzO1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFSRF9TRUdNRU5UX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkU2VnbWVudERlZmF1bHRzKSB7XG4gICAgc3VwZXIoZGVmYXVsdHMpO1xuICB9XG5cbiAgLy8hIGFwcGVhcmFuY2VcbiAgcmVhZG9ubHkgYXBwZWFyYW5jZSA9IGlucHV0PFNlZ21lbnRBcHBlYXJhbmNlPih0aGlzLl9ERUZBVUxUUy5hcHBlYXJhbmNlKTtcbiAgcmVhZG9ubHkgdmFyaWFudCA9IGlucHV0PFNlZ21lbnRWYXJpYW50Pih0aGlzLl9ERUZBVUxUUy52YXJpYW50KTtcbiAgcmVhZG9ubHkgY29sb3IgPSBpbnB1dDxDb21wb25lbnRDb2xvcj4odGhpcy5fREVGQVVMVFMuY29sb3IpO1xuICByZWFkb25seSBhbGlnbiA9IGlucHV0PE9uZUF4aXNBbGlnbm1lbnQ+KHRoaXMuX0RFRkFVTFRTLmFsaWduKTtcblxuICByZWFkb25seSBpY29uQmFzZWQgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLmljb25CYXNlZCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuICByZWFkb25seSBjb21wYWN0ID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jb21wYWN0LCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG5cbiAgcmVhZG9ubHkgbmdDbGFzc2VzID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PlxuICAgIFtcbiAgICAgIGBhcmQtYXBwZWFyYW5jZS0ke3RoaXMuYXBwZWFyYW5jZSgpfWAsXG4gICAgICBgYXJkLXZhcmlhbnQtJHt0aGlzLnZhcmlhbnQoKX1gLFxuICAgICAgYGFyZC1jb2xvci0ke3RoaXMuY29sb3IoKX1gLFxuICAgICAgYGFyZC1hbGlnbi0ke3RoaXMuYWxpZ24oKX1gLFxuICAgICAgdGhpcy5pY29uQmFzZWQoKSA/ICdhcmQtaWNvbi1iYXNlZCcgOiAnJyxcbiAgICAgIHRoaXMuY29tcGFjdCgpID8gJ2FyZC1jb21wYWN0JyA6ICcnLFxuICAgICAgdGhpcy5pdGVtUm93cygpLmxlbmd0aCA+IDEgPyAnYXJkLW11bHRpcm93JyA6ICdhcmQtc2luZ2xlcm93JyxcbiAgICBdLmpvaW4oJyAnKVxuICApO1xuXG4gIC8vISBjb2VyY2VkIHByb3BlcnRpZXNcbiAgcmVhZG9ubHkgYXV0b0ZvY3VzID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5hdXRvRm9jdXMsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcbiAgcmVhZG9ubHkgdW5pZm9ybVdpZHRocyA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMudW5pZm9ybVdpZHRocywgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuXG4gIHJlYWRvbmx5IGl0ZW1zUGVyUm93ID0gaW5wdXQ8bnVtYmVyLCBhbnk+KHRoaXMuX0RFRkFVTFRTLml0ZW1zUGVyUm93LCB7XG4gICAgdHJhbnNmb3JtOiB2ID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgdGhpcy5fREVGQVVMVFMuaXRlbXNQZXJSb3cpO1xuICAgICAgaWYgKG5ld1ZhbHVlID09PSAwKSB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVDEwNDBhOiBDYW5ub3Qgc2V0IDxhcmQtc2VnbWVudD4ncyBbaXRlbXNQZXJSb3ddIHRvIDAuYCk7XG4gICAgICBpZiAobmV3VmFsdWUgPCAwKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFSRC1GVDEwNDBiOiBDYW5ub3Qgc2V0IDxhcmQtc2VnbWVudD4ncyBbaXRlbXNQZXJSb3ddIHRvIGEgbmVnYXRpdmUgdmFsdWUsIGdvdCBcIiR7bmV3VmFsdWV9XCIuYCk7XG4gICAgICBpZiAobmV3VmFsdWUgJSAxICE9PSAwKSB7XG4gICAgICAgIGNvbnN0IHJvdW5kZWRWYWx1ZSA9IE1hdGgucm91bmQobmV3VmFsdWUpIHx8IDE7IC8vIHJvdW5kIHRvIG5lYXJlc3QgaW50LCBidXQgbmV2ZXIgcm91bmQgdG8gemVyb1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEFSRC1XQTEwNDBjOiBDYW5ub3Qgc2V0IDxhcmQtc2VnbWVudD4ncyBbaXRlbXNQZXJSb3ddIHRvIGEgbm9uLWludGVyZ2VyIHZhbHVlLCBnb3QgXCIke25ld1ZhbHVlfVwiLiBUaGUgdmFsdWUgd2FzIHJvdW5kZWQgdG8gXCIke3JvdW5kZWRWYWx1ZX1cIi5gXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKG5ld1ZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdWYWx1ZTtcbiAgICB9LFxuICB9KTtcbiAgZ2V0IGl0ZW1zSW5BY3R1YWxSb3coKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc1BlclJvdygpID09PSBJbmZpbml0eSA/IHRoaXMuaXRlbXMubGVuZ3RoIDogdGhpcy5pdGVtc1BlclJvdygpO1xuICB9XG5cbiAgLy8hIG9wdGlvbiB0ZW1wbGF0ZVxuICByZWFkb25seSBvcHRpb25UZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRTZWdtZW50T3B0aW9uVGVtcGxhdGVEaXJlY3RpdmUpO1xuXG4gIC8vISBsaWZlY3ljbGUgaG9va3NcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmF1dG9Gb2N1cygpKSB7XG4gICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLy8hIGl0ZW0gcm93IGdldHRlcnNcbiAgcmVhZG9ubHkgaXRlbVJvd3MgPSBjb21wdXRlZDxTZWdtZW50Um93W10+KCgpID0+IHtcbiAgICBjb25zdCBpdGVtUm93czogU2VnbWVudFJvd1tdID0gW107XG4gICAgbGV0IGN1cnJlbnRSb3c6IEFyZE9wdGlvblNpbXBsZVtdID0gW107XG4gICAgLy9nZXQgYWxsIHJvd3NcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtcykge1xuICAgICAgLy9hZGQgaXRlbVxuICAgICAgY3VycmVudFJvdy5wdXNoKGl0ZW0pO1xuXG4gICAgICAvL3B1c2ggaWYgaXRlbSBhbW91bnQgcmVhY2hlZCB0aGUgbGltaXRcbiAgICAgIGlmICh0aGlzLml0ZW1zUGVyUm93KCkgJiYgY3VycmVudFJvdy5sZW5ndGggPT09IHRoaXMuaXRlbXNQZXJSb3coKSkge1xuICAgICAgICBpdGVtUm93cy5wdXNoKHsgb3B0aW9uczogY3VycmVudFJvdyB9KTtcbiAgICAgICAgY3VycmVudFJvdyA9IFtdO1xuICAgICAgfVxuICAgIH1cbiAgICAvL3B1c2ggdGhlIGxhc3Qgcm93IGlmIGl0IGlzIG5vdCBlbXB0eVxuICAgIGlmIChjdXJyZW50Um93Lmxlbmd0aCAhPT0gMCkge1xuICAgICAgaXRlbVJvd3MucHVzaCh7XG4gICAgICAgIG9wdGlvbnM6IGN1cnJlbnRSb3csXG4gICAgICAgIGlzTm90RnVsbDogQm9vbGVhbih0aGlzLml0ZW1zUGVyUm93KCkpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBpdGVtUm93cztcbiAgfSk7XG5cbiAgLy8hIGZvY3VzIGhhbmRsZXIgb3ZlcnJpZGVcbiAgb3ZlcnJpZGUgb25Gb2N1cyhldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIHN1cGVyLm9uRm9jdXMoZXZlbnQpO1xuXG4gICAgaWYgKHRoaXMuaXRlbVN0b3JhZ2UuaXNBbnlJdGVtSGlnaGxpZ2h0ZWQoKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5pdGVtU3RvcmFnZS5oaWdobGlnaHRGaXJzdEl0ZW0oKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uQmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIHN1cGVyLm9uQmx1cihldmVudCk7XG5cbiAgICB0aGlzLml0ZW1TdG9yYWdlLnVuaGlnaGxpZ2h0QWxsKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgI2ZvY3VzYWJsZUVsZW1lbnRcbiAgY2xhc3M9XCJhcmQtc2VnbWVudC1jb250YWluZXJcIlxuICBbY2xhc3MuYXJkLWRpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICBbYXJpYURpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICBbbmdDbGFzc109XCJuZ0NsYXNzZXMoKVwiXG4gIFtjbGFzcy5hcmQtZm9jdXMtdmlzaWJsZV09XCJpc0ZvY3VzZWQoKSAmJiAhaXNNb3VzZUJlaW5nVXNlZFwiXG4gIFtjbGFzcy5hcmQtdXNpbmcta2V5Ym9hcmRdPVwiIWlzTW91c2VCZWluZ1VzZWRcIlxuICBbYXR0ci50YWJpbmRleF09XCJ0YWJJbmRleCgpXCJcbiAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbj5cbiAgQGZvciAocm93IG9mIGl0ZW1Sb3dzKCk7IHRyYWNrICRpbmRleCkge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYXJkLXNlZ21lbnQtcm93XCJcbiAgICAgIFtjbGFzcy5hcmQtc2VnbWVudC1yb3ctcGFydGlhbF09XCJyb3cuaXNOb3RGdWxsXCJcbiAgICAgIFtjbGFzcy5hcmQtc2VnbWVudC1yb3ctdW5pZm9ybV09XCJ1bmlmb3JtV2lkdGhzKCkgfHwgaXRlbXNQZXJSb3coKSA8IGl0ZW1zLmxlbmd0aFwiXG4gICAgICBbc3R5bGVdPVwieyAnLS1hcmQtX3NlZ21lbnQtcm93LWl0ZW1zJzogaXRlbXNJbkFjdHVhbFJvdyB9XCJcbiAgICA+XG4gICAgICBAZm9yIChvcHRpb24gb2Ygcm93Lm9wdGlvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJhcmQtc2VnbWVudC1vcHRpb25cIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgIFtjbGFzcy5hcmQtb3B0aW9uLWRpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZCgpIHx8IChpc0l0ZW1MaW1pdFJlYWNoZWQoKSAmJiAhb3B0aW9uLnNlbGVjdGVkKCkpXCJcbiAgICAgICAgICBbY2xhc3MuYXJkLW9wdGlvbi1zZWxlY3RlZF09XCJvcHRpb24uc2VsZWN0ZWQoKVwiXG4gICAgICAgICAgW2NsYXNzLmFyZC1vcHRpb24taGlnaGxpZ2h0ZWRdPVwib3B0aW9uLmhpZ2hsaWdodGVkKClcIlxuICAgICAgICAgIFthcmlhU2VsZWN0ZWRdPVwib3B0aW9uLnNlbGVjdGVkKClcIlxuICAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uSXRlbU1vdXNlRW50ZXIob3B0aW9uLCAkZXZlbnQpXCJcbiAgICAgICAgICAobW91c2VsZWF2ZSk9XCJvbkl0ZW1Nb3VzZUxlYXZlKG9wdGlvbiwgJGV2ZW50KVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKG9wdGlvbiwgJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvY3VzLW92ZXJsYXlcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWJ1dHRvbi1jb250ZW50XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFyZC1vcHRpb24tbGFiZWxcIj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0T3B0aW9uVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsKCkgfX1cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25UZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0T3B0aW9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRPcHRpb25Db250ZXh0KG9wdGlvbilcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
|