@ardium-ui/ui 3.1.1 → 3.1.3-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/inputs/_simple-input-base.mjs +3 -9
- package/esm2022/lib/inputs/input/input.component.mjs +4 -4
- package/esm2022/lib/inputs/input/input.directives.mjs +5 -5
- package/esm2022/lib/inputs/input/input.module.mjs +7 -7
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +9 -3
- package/fesm2022/ardium-ui-ui.mjs +78 -78
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/inputs/_simple-input-base.d.ts +4 -5
- package/lib/inputs/input/input.component.d.ts +2 -2
- package/lib/inputs/input/input.directives.d.ts +3 -3
- package/lib/inputs/input/input.module.d.ts +1 -1
- package/lib/inputs/simple-input/simple-input.component.d.ts +5 -1
- package/package.json +1 -1
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { computed,
|
|
1
|
+
import { computed, Directive, input, Input, output, viewChild } from '@angular/core';
|
|
2
2
|
import { coerceBooleanProperty, coerceNumberProperty } from '@ardium-ui/devkit';
|
|
3
3
|
import { _NgModelComponentBase, _ngModelComponentDefaults } from '../_internal/ngmodel-component';
|
|
4
4
|
import { SimpleOneAxisAlignment } from './../types/alignment.types';
|
|
5
5
|
import { FormElementAppearance, FormElementVariant } from './../types/theming.types';
|
|
6
6
|
import { SimpleInputModel } from './input-utils';
|
|
7
|
-
import { ArdSimpleInputPlaceholderTemplateDirective, ArdSimpleInputPrefixTemplateDirective, ArdSimpleInputSuffixTemplateDirective, } from './simple-input/simple-input.directives';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
export const _simpleInputComponentDefaults = {
|
|
10
9
|
..._ngModelComponentDefaults,
|
|
@@ -28,11 +27,6 @@ export class _SimpleInputComponentBase extends _NgModelComponentBase {
|
|
|
28
27
|
this.placeholder = input(this._DEFAULTS.placeholder);
|
|
29
28
|
this.inputId = input(undefined);
|
|
30
29
|
this.clearButtonTitle = input(this._DEFAULTS.clearButtonTitle);
|
|
31
|
-
//! prefix & suffix
|
|
32
|
-
this.prefixTemplate = contentChild(ArdSimpleInputPrefixTemplateDirective);
|
|
33
|
-
this.suffixTemplate = contentChild(ArdSimpleInputSuffixTemplateDirective);
|
|
34
|
-
//! placeholder
|
|
35
|
-
this.placeholderTemplate = contentChild(ArdSimpleInputPlaceholderTemplateDirective);
|
|
36
30
|
this.shouldDisplayPlaceholder = computed(() => Boolean(this.placeholder()) && !this.inputModel.value());
|
|
37
31
|
//! appearance
|
|
38
32
|
this.appearance = input(this._DEFAULTS.appearance);
|
|
@@ -149,11 +143,11 @@ export class _SimpleInputComponentBase extends _NgModelComponentBase {
|
|
|
149
143
|
}
|
|
150
144
|
}
|
|
151
145
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: _SimpleInputComponentBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
152
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.0.2", type: _SimpleInputComponentBase, inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, clearButtonTitle: { classPropertyName: "clearButtonTitle", publicName: "clearButtonTitle", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, alignText: { classPropertyName: "alignText", publicName: "alignText", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, inputAttrs: { classPropertyName: "inputAttrs", publicName: "inputAttrs", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", inputEvent: "input", changeEvent: "change", clearEvent: "clear" },
|
|
146
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.0.2", type: _SimpleInputComponentBase, inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, clearButtonTitle: { classPropertyName: "clearButtonTitle", publicName: "clearButtonTitle", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, alignText: { classPropertyName: "alignText", publicName: "alignText", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, inputAttrs: { classPropertyName: "inputAttrs", publicName: "inputAttrs", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", inputEvent: "input", changeEvent: "change", clearEvent: "clear" }, viewQueries: [{ propertyName: "textInputEl", first: true, predicate: ["textInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
|
|
153
147
|
}
|
|
154
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: _SimpleInputComponentBase, decorators: [{
|
|
155
149
|
type: Directive
|
|
156
150
|
}], propDecorators: { value: [{
|
|
157
151
|
type: Input
|
|
158
152
|
}] } });
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX3NpbXBsZS1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvX3NpbXBsZS1pbnB1dC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsUUFBUSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBNkIseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUNMLDBDQUEwQyxFQUMxQyxxQ0FBcUMsRUFDckMscUNBQXFDLEdBQ3RDLE1BQU0sd0NBQXdDLENBQUM7O0FBY2hELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFrQztJQUMxRSxHQUFHLHlCQUF5QjtJQUM1QixVQUFVLEVBQUUscUJBQXFCLENBQUMsUUFBUTtJQUMxQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsT0FBTztJQUNuQyxPQUFPLEVBQUUsS0FBSztJQUNkLFdBQVcsRUFBRSxFQUFFO0lBQ2YsU0FBUyxFQUFFLHNCQUFzQixDQUFDLElBQUk7SUFDdEMsU0FBUyxFQUFFLEtBQUs7SUFDaEIsZ0JBQWdCLEVBQUUsT0FBTztJQUN6QixVQUFVLEVBQUUsRUFBRTtJQUNkLFNBQVMsRUFBRSxTQUFTO0NBQ3JCLENBQUM7QUFHRixNQUFNLE9BQWdCLHlCQUEwQixTQUFRLHFCQUFxQjtJQUQ3RTs7UUFJRSxjQUFjO1FBQ0wsZ0JBQVcsR0FBRyxTQUFTLENBQStCLFdBQVcsQ0FBQyxDQUFDO1FBRXpELGVBQVUsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBV3BCLGdCQUFXLEdBQUcsS0FBSyxDQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEQsWUFBTyxHQUFHLEtBQUssQ0FBbUIsU0FBUyxDQUFDLENBQUM7UUFDN0MscUJBQWdCLEdBQUcsS0FBSyxDQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUUzRSxtQkFBbUI7UUFDVixtQkFBYyxHQUFHLFlBQVksQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ3JFLG1CQUFjLEdBQUcsWUFBWSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFFOUUsZUFBZTtRQUNOLHdCQUFtQixHQUFHLFlBQVksQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBRS9FLDZCQUF3QixHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFckgsY0FBYztRQUNMLGVBQVUsR0FBRyxLQUFLLENBQXdCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckUsWUFBTyxHQUFHLEtBQUssQ0FBcUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RCxjQUFTLEdBQUcsS0FBSyxDQUF5QixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBFLFlBQU8sR0FBRyxLQUFLLENBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFcEcsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFXLEVBQUUsQ0FDekM7WUFDRSxrQkFBa0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3JDLGVBQWUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQy9CLGtCQUFrQixJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDeEMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQ1osQ0FBQztRQUVGLGdCQUFnQjtRQUNQLGVBQVUsR0FBRyxLQUFLLENBQXNCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFNUUsb0NBQW9DO1FBQzNCLGNBQVMsR0FBRyxLQUFLLENBQXdCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1lBQzFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztTQUNsRSxDQUFDLENBQUM7UUFFSCxzQ0FBc0M7UUFDN0IsY0FBUyxHQUFHLEtBQUssQ0FBZSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQU1qSCx5QkFBeUI7UUFDZixxQkFBZ0IsR0FBbUIsSUFBSSxDQUFDO1FBWXpDLGdCQUFXLEdBQUcsTUFBTSxFQUFpQixDQUFDO1FBRS9DLGtCQUFrQjtRQUNULGVBQVUsR0FBRyxNQUFNLENBQWdCLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkQsZ0JBQVcsR0FBRyxNQUFNLENBQWdCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDekQsZUFBVSxHQUFHLE1BQU0sQ0FBYSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBMkI3RCxlQUFlO1FBQ04sMEJBQXFCLEdBQUcsUUFBUSxDQUN2QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FDL0UsQ0FBQztLQXdDSDtJQS9JQyxlQUFlO1FBQ2IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsZUFBZTtRQUNmLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN2QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQTJDRCx1REFBdUQ7SUFDdkQsVUFBVSxDQUFDLENBQU07UUFDZixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBR0QsSUFDSSxLQUFLLENBQUMsQ0FBZ0I7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFRRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLE1BQWM7UUFDcEIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGVBQWU7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ1MsVUFBVTtRQUNsQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QscUJBQXFCO0lBQ3JCLGFBQWEsQ0FBQyxLQUFpQjtRQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxZQUFZLENBQUMsS0FBaUI7UUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQVk7UUFDbkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBQ1MsV0FBVztRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUtELGtCQUFrQixDQUFDLEtBQWlCO1FBQ2xDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELGNBQWM7SUFDZCxNQUFNLENBQUMsS0FBcUI7UUFDMUIsSUFDRSxJQUFJLENBQUMsS0FBSztZQUNWLDJDQUEyQztZQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLGFBQWEsQ0FBQyxjQUFjLEtBQUssQ0FBQztnQkFDdEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLGFBQWEsQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2dCQUNsRyxpQkFBaUI7Z0JBQ2pCLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxhQUFhLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxhQUFhLENBQUMsWUFBWSxDQUFDLEVBQ3RHLENBQUM7WUFDRCxLQUFLLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUNELFdBQVc7SUFDRCxtQkFBbUI7UUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRyxDQUFDLGFBQWEsQ0FBQztRQUNoRCxNQUFNLFVBQVUsR0FBMkI7WUFDekMsSUFBSSxFQUFFLE1BQU07WUFDWixXQUFXLEVBQUUsS0FBSztZQUNsQixjQUFjLEVBQUUsS0FBSztZQUNyQixZQUFZLEVBQUUsS0FBSztZQUNuQixRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7U0FDckIsQ0FBQztRQUVGLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDOzhHQXRKbUIseUJBQXlCO2tHQUF6Qix5QkFBeUIsNG1EQXVCTixxQ0FBcUMsaUdBQ3JDLHFDQUFxQyxzR0FHaEMsMENBQTBDOzsyRkEzQmxFLHlCQUF5QjtrQkFEOUMsU0FBUzs4QkFtRUosS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgY29tcHV0ZWQsIGNvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbnB1dCwgSW5wdXQsIG91dHB1dCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xuaW1wb3J0IHsgX05nTW9kZWxDb21wb25lbnRCYXNlLCBfTmdNb2RlbENvbXBvbmVudERlZmF1bHRzLCBfbmdNb2RlbENvbXBvbmVudERlZmF1bHRzIH0gZnJvbSAnLi4vX2ludGVybmFsL25nbW9kZWwtY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZU9uZUF4aXNBbGlnbm1lbnQgfSBmcm9tICcuLy4uL3R5cGVzL2FsaWdubWVudC50eXBlcyc7XG5pbXBvcnQgeyBGb3JtRWxlbWVudEFwcGVhcmFuY2UsIEZvcm1FbGVtZW50VmFyaWFudCB9IGZyb20gJy4vLi4vdHlwZXMvdGhlbWluZy50eXBlcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4vLi4vdHlwZXMvdXRpbGl0eS50eXBlcyc7XG5pbXBvcnQgeyBTaW1wbGVJbnB1dE1vZGVsIH0gZnJvbSAnLi9pbnB1dC11dGlscyc7XG5pbXBvcnQge1xuICBBcmRTaW1wbGVJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZFNpbXBsZUlucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZFNpbXBsZUlucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUsXG59IGZyb20gJy4vc2ltcGxlLWlucHV0L3NpbXBsZS1pbnB1dC5kaXJlY3RpdmVzJztcblxuZXhwb3J0IGludGVyZmFjZSBfU2ltcGxlSW5wdXRDb21wb25lbnREZWZhdWx0cyBleHRlbmRzIF9OZ01vZGVsQ29tcG9uZW50RGVmYXVsdHMge1xuICBhcHBlYXJhbmNlOiBGb3JtRWxlbWVudEFwcGVhcmFuY2U7XG4gIHZhcmlhbnQ6IEZvcm1FbGVtZW50VmFyaWFudDtcbiAgY29tcGFjdDogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgYWxpZ25UZXh0OiBTaW1wbGVPbmVBeGlzQWxpZ25tZW50O1xuICBjbGVhcmFibGU6IGJvb2xlYW47XG4gIGNsZWFyQnV0dG9uVGl0bGU6IHN0cmluZztcbiAgaW5wdXRBdHRyczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgbWF4TGVuZ3RoOiBOdWxsYWJsZTxudW1iZXI+O1xufVxuXG5leHBvcnQgY29uc3QgX3NpbXBsZUlucHV0Q29tcG9uZW50RGVmYXVsdHM6IF9TaW1wbGVJbnB1dENvbXBvbmVudERlZmF1bHRzID0ge1xuICAuLi5fbmdNb2RlbENvbXBvbmVudERlZmF1bHRzLFxuICBhcHBlYXJhbmNlOiBGb3JtRWxlbWVudEFwcGVhcmFuY2UuT3V0bGluZWQsXG4gIHZhcmlhbnQ6IEZvcm1FbGVtZW50VmFyaWFudC5Sb3VuZGVkLFxuICBjb21wYWN0OiBmYWxzZSxcbiAgcGxhY2Vob2xkZXI6ICcnLFxuICBhbGlnblRleHQ6IFNpbXBsZU9uZUF4aXNBbGlnbm1lbnQuTGVmdCxcbiAgY2xlYXJhYmxlOiBmYWxzZSxcbiAgY2xlYXJCdXR0b25UaXRsZTogJ0NsZWFyJyxcbiAgaW5wdXRBdHRyczoge30sXG4gIG1heExlbmd0aDogdW5kZWZpbmVkLFxufTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgX1NpbXBsZUlucHV0Q29tcG9uZW50QmFzZSBleHRlbmRzIF9OZ01vZGVsQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX0RFRkFVTFRTITogX1NpbXBsZUlucHV0Q29tcG9uZW50RGVmYXVsdHM7XG5cbiAgLy8hIGlucHV0IHZpZXdcbiAgcmVhZG9ubHkgdGV4dElucHV0RWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4oJ3RleHRJbnB1dCcpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpbnB1dE1vZGVsID0gbmV3IFNpbXBsZUlucHV0TW9kZWwodGhpcyk7XG4gIHByaXZhdGUgX3dhc1ZpZXdJbml0ID0gZmFsc2U7XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl93YXNWaWV3SW5pdCA9IHRydWU7XG4gICAgdGhpcy5fc2V0SW5wdXRBdHRyaWJ1dGVzKCk7XG4gICAgLy9zZXQgdGhlIHZhbHVlXG4gICAgaWYgKHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCkge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCk7XG4gICAgICBkZWxldGUgdGhpcy5fdmFsdWVCZWZvcmVJbml0O1xuICAgIH1cbiAgfVxuXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPih0aGlzLl9ERUZBVUxUUy5wbGFjZWhvbGRlcik7XG4gIHJlYWRvbmx5IGlucHV0SWQgPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBjbGVhckJ1dHRvblRpdGxlID0gaW5wdXQ8c3RyaW5nPih0aGlzLl9ERUZBVUxUUy5jbGVhckJ1dHRvblRpdGxlKTtcblxuICAvLyEgcHJlZml4ICYgc3VmZml4XG4gIHJlYWRvbmx5IHByZWZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZFNpbXBsZUlucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xuICByZWFkb25seSBzdWZmaXhUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRTaW1wbGVJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlKTtcblxuICAvLyEgcGxhY2Vob2xkZXJcbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXJUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRTaW1wbGVJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUpO1xuXG4gIHJlYWRvbmx5IHNob3VsZERpc3BsYXlQbGFjZWhvbGRlciA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IEJvb2xlYW4odGhpcy5wbGFjZWhvbGRlcigpKSAmJiAhdGhpcy5pbnB1dE1vZGVsLnZhbHVlKCkpO1xuXG4gIC8vISBhcHBlYXJhbmNlXG4gIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBpbnB1dDxGb3JtRWxlbWVudEFwcGVhcmFuY2U+KHRoaXMuX0RFRkFVTFRTLmFwcGVhcmFuY2UpO1xuICByZWFkb25seSB2YXJpYW50ID0gaW5wdXQ8Rm9ybUVsZW1lbnRWYXJpYW50Pih0aGlzLl9ERUZBVUxUUy52YXJpYW50KTtcbiAgcmVhZG9ubHkgYWxpZ25UZXh0ID0gaW5wdXQ8U2ltcGxlT25lQXhpc0FsaWdubWVudD4odGhpcy5fREVGQVVMVFMuYWxpZ25UZXh0KTtcblxuICByZWFkb25seSBjb21wYWN0ID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jb21wYWN0LCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG5cbiAgcmVhZG9ubHkgbmdDbGFzc2VzID0gY29tcHV0ZWQoKCk6IHN0cmluZyA9PlxuICAgIFtcbiAgICAgIGBhcmQtYXBwZWFyYW5jZS0ke3RoaXMuYXBwZWFyYW5jZSgpfWAsXG4gICAgICBgYXJkLXZhcmlhbnQtJHt0aGlzLnZhcmlhbnQoKX1gLFxuICAgICAgYGFyZC10ZXh0LWFsaWduLSR7dGhpcy5hbGlnblRleHQoKX1gLFxuICAgICAgdGhpcy5jb21wYWN0KCkgPyAnYXJkLWNvbXBhY3QnIDogJycsXG4gICAgICB0aGlzLmNsZWFyYWJsZSgpID8gJ2FyZC1jbGVhcmFibGUnIDogJycsXG4gICAgXS5qb2luKCcgJylcbiAgKTtcblxuICAvLyEgb3RoZXIgaW5wdXRzXG4gIHJlYWRvbmx5IGlucHV0QXR0cnMgPSBpbnB1dDxSZWNvcmQ8c3RyaW5nLCBhbnk+Pih0aGlzLl9ERUZBVUxUUy5pbnB1dEF0dHJzKTtcblxuICAvLyEgbnVtYmVyIGF0dHJpYnV0ZSBzZXR0ZXJzL2dldHRlcnNcbiAgcmVhZG9ubHkgbWF4TGVuZ3RoID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPiwgYW55Pih0aGlzLl9ERUZBVUxUUy5tYXhMZW5ndGgsIHtcbiAgICB0cmFuc2Zvcm06IHYgPT4gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgdGhpcy5fREVGQVVMVFMubWF4TGVuZ3RoKSxcbiAgfSk7XG5cbiAgLy8hIG5vLXZhbHVlIGF0dHJpYnV0ZSBzZXR0ZXJzL2dldHRlcnNcbiAgcmVhZG9ubHkgY2xlYXJhYmxlID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jbGVhcmFibGUsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcblxuICAvLyEgY29udHJvbCB2YWx1ZSBhY2Nlc3NvcidzIHdyaXRlIHZhbHVlIGltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodjogYW55KSB7XG4gICAgdGhpcy5pbnB1dE1vZGVsLndyaXRlVmFsdWUodik7XG4gIH1cbiAgLy8hIHZhbHVlIHR3by13YXkgYmluZGluZ1xuICBwcm90ZWN0ZWQgX3ZhbHVlQmVmb3JlSW5pdD86IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKVxuICBzZXQgdmFsdWUodjogc3RyaW5nIHwgbnVsbCkge1xuICAgIGlmICghdGhpcy5fd2FzVmlld0luaXQpIHtcbiAgICAgIHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCA9IHY7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMud3JpdGVWYWx1ZSh2KTtcbiAgfVxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRNb2RlbC52YWx1ZSgpO1xuICB9XG4gIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gb3V0cHV0PHN0cmluZyB8IG51bGw+KCk7XG5cbiAgLy8hIGV2ZW50IGVtaXR0ZXJzXG4gIHJlYWRvbmx5IGlucHV0RXZlbnQgPSBvdXRwdXQ8c3RyaW5nIHwgbnVsbD4oeyBhbGlhczogJ2lucHV0JyB9KTtcbiAgcmVhZG9ubHkgY2hhbmdlRXZlbnQgPSBvdXRwdXQ8c3RyaW5nIHwgbnVsbD4oeyBhbGlhczogJ2NoYW5nZScgfSk7XG4gIHJlYWRvbmx5IGNsZWFyRXZlbnQgPSBvdXRwdXQ8TW91c2VFdmVudD4oeyBhbGlhczogJ2NsZWFyJyB9KTtcblxuICAvLyEgZXZlbnQgaGFuZGxlcnNcbiAgb25JbnB1dChuZXdWYWw6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlSGFzQ2hhbmdlZCA9IHRoaXMuaW5wdXRNb2RlbC53cml0ZVZhbHVlKG5ld1ZhbCk7XG4gICAgaWYgKCF2YWx1ZUhhc0NoYW5nZWQpIHJldHVybjtcbiAgICB0aGlzLl9lbWl0SW5wdXQoKTtcbiAgfVxuICBwcm90ZWN0ZWQgX2VtaXRJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZVJlZ2lzdGVyZWQ/Lih0aGlzLnZhbHVlKTtcbiAgICB0aGlzLmlucHV0RXZlbnQuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cbiAgLy9mb2N1cywgYmx1ciwgY2hhbmdlXG4gIG9uRm9jdXNNYXN0ZXIoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm9uRm9jdXMoZXZlbnQpO1xuICB9XG4gIG9uQmx1ck1hc3RlcihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIHRoaXMub25CbHVyKGV2ZW50KTtcbiAgfVxuICBvbkNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gIH1cbiAgcHJvdGVjdGVkIF9lbWl0Q2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh0aGlzLmlucHV0TW9kZWwudmFsdWUoKSk7XG4gIH1cbiAgLy8gY2xlYXIgYnV0dG9uXG4gIHJlYWRvbmx5IHNob3VsZFNob3dDbGVhckJ1dHRvbiA9IGNvbXB1dGVkPGJvb2xlYW4+KFxuICAgICgpID0+IHRoaXMuY2xlYXJhYmxlKCkgJiYgIXRoaXMuZGlzYWJsZWQoKSAmJiBCb29sZWFuKHRoaXMuaW5wdXRNb2RlbC52YWx1ZSgpKVxuICApO1xuICBvbkNsZWFyQnV0dG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmlucHV0TW9kZWwuY2xlYXIoKTtcbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gICAgdGhpcy5fZW1pdElucHV0KCk7XG4gICAgdGhpcy5jbGVhckV2ZW50LmVtaXQoZXZlbnQpO1xuICAgIHRoaXMuZm9jdXMoKTtcbiAgfVxuXG4gIC8vISBjb3B5IGV2ZW50XG4gIG9uQ29weShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnZhbHVlICYmXG4gICAgICAvL2RvZXMgdGhlIHNlbGVjdGlvbiBjb3ZlciB0aGUgZW50aXJlIGlucHV0XG4gICAgICAoKHRoaXMudGV4dElucHV0RWwoKT8ubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gMCAmJlxuICAgICAgICB0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kID09PSB0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoKSB8fFxuICAgICAgICAvL29yIGlzIHplcm8td2lkZVxuICAgICAgICB0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IHRoaXMudGV4dElucHV0RWwoKT8ubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQpXG4gICAgKSB7XG4gICAgICBldmVudC5jbGlwYm9hcmREYXRhPy5zZXREYXRhKCd0ZXh0L3BsYWluJywgdGhpcy52YWx1ZSk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuICAvLyEgaGVscGVyc1xuICBwcm90ZWN0ZWQgX3NldElucHV0QXR0cmlidXRlcygpIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMudGV4dElucHV0RWwoKSEubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgYXV0b2NvcnJlY3Q6ICdvZmYnLFxuICAgICAgYXV0b2NhcGl0YWxpemU6ICdvZmYnLFxuICAgICAgYXV0b2NvbXBsZXRlOiAnb2ZmJyxcbiAgICAgIHRhYmluZGV4OiBTdHJpbmcodGhpcy50YWJJbmRleCgpKSxcbiAgICAgIC4uLnRoaXMuaW5wdXRBdHRycygpLFxuICAgIH07XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKSkge1xuICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKGtleSwgU3RyaW5nKGF0dHJpYnV0ZXNba2V5XSkpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX3NpbXBsZS1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvX3NpbXBsZS1pbnB1dC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsUUFBUSxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUE2Qix5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFjakQsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQWtDO0lBQzFFLEdBQUcseUJBQXlCO0lBQzVCLFVBQVUsRUFBRSxxQkFBcUIsQ0FBQyxRQUFRO0lBQzFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO0lBQ25DLE9BQU8sRUFBRSxLQUFLO0lBQ2QsV0FBVyxFQUFFLEVBQUU7SUFDZixTQUFTLEVBQUUsc0JBQXNCLENBQUMsSUFBSTtJQUN0QyxTQUFTLEVBQUUsS0FBSztJQUNoQixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLFVBQVUsRUFBRSxFQUFFO0lBQ2QsU0FBUyxFQUFFLFNBQVM7Q0FDckIsQ0FBQztBQUdGLE1BQU0sT0FBZ0IseUJBQTBCLFNBQVEscUJBQXFCO0lBRDdFOztRQUlFLGNBQWM7UUFDTCxnQkFBVyxHQUFHLFNBQVMsQ0FBK0IsV0FBVyxDQUFDLENBQUM7UUFFekQs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RSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2dCQUNsRyxpQkFBaUI7Z0JBQ2pCLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxhQUFhLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxhQUFhLENBQUMsWUFBWSxDQUFDLEVBQ3RHLENBQUM7WUFDRCxLQUFLLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUNELFdBQVc7SUFDRCxtQkFBbUI7UUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRyxDQUFDLGFBQWEsQ0FBQztRQUNoRCxNQUFNLFVBQVUsR0FBMkI7WUFDekMsSUFBSSxFQUFFLE1BQU07WUFDWixXQUFXLEVBQUUsS0FBSztZQUNsQixjQUFjLEVBQUUsS0FBSztZQUNyQixZQUFZLEVBQUUsS0FBSztZQUNuQixRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUU7U0FDckIsQ0FBQztRQUVGLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDOzhHQXRKbUIseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBRDlDLFNBQVM7OEJBbUVKLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIGNvbXB1dGVkLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGlucHV0LCBJbnB1dCwgb3V0cHV0LCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XG5pbXBvcnQgeyBfTmdNb2RlbENvbXBvbmVudEJhc2UsIF9OZ01vZGVsQ29tcG9uZW50RGVmYXVsdHMsIF9uZ01vZGVsQ29tcG9uZW50RGVmYXVsdHMgfSBmcm9tICcuLi9faW50ZXJuYWwvbmdtb2RlbC1jb21wb25lbnQnO1xuaW1wb3J0IHsgU2ltcGxlT25lQXhpc0FsaWdubWVudCB9IGZyb20gJy4vLi4vdHlwZXMvYWxpZ25tZW50LnR5cGVzJztcbmltcG9ydCB7IEZvcm1FbGVtZW50QXBwZWFyYW5jZSwgRm9ybUVsZW1lbnRWYXJpYW50IH0gZnJvbSAnLi8uLi90eXBlcy90aGVtaW5nLnR5cGVzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi8uLi90eXBlcy91dGlsaXR5LnR5cGVzJztcbmltcG9ydCB7IFNpbXBsZUlucHV0TW9kZWwgfSBmcm9tICcuL2lucHV0LXV0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBfU2ltcGxlSW5wdXRDb21wb25lbnREZWZhdWx0cyBleHRlbmRzIF9OZ01vZGVsQ29tcG9uZW50RGVmYXVsdHMge1xuICBhcHBlYXJhbmNlOiBGb3JtRWxlbWVudEFwcGVhcmFuY2U7XG4gIHZhcmlhbnQ6IEZvcm1FbGVtZW50VmFyaWFudDtcbiAgY29tcGFjdDogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgYWxpZ25UZXh0OiBTaW1wbGVPbmVBeGlzQWxpZ25tZW50O1xuICBjbGVhcmFibGU6IGJvb2xlYW47XG4gIGNsZWFyQnV0dG9uVGl0bGU6IHN0cmluZztcbiAgaW5wdXRBdHRyczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgbWF4TGVuZ3RoOiBOdWxsYWJsZTxudW1iZXI+O1xufVxuXG5leHBvcnQgY29uc3QgX3NpbXBsZUlucHV0Q29tcG9uZW50RGVmYXVsdHM6IF9TaW1wbGVJbnB1dENvbXBvbmVudERlZmF1bHRzID0ge1xuICAuLi5fbmdNb2RlbENvbXBvbmVudERlZmF1bHRzLFxuICBhcHBlYXJhbmNlOiBGb3JtRWxlbWVudEFwcGVhcmFuY2UuT3V0bGluZWQsXG4gIHZhcmlhbnQ6IEZvcm1FbGVtZW50VmFyaWFudC5Sb3VuZGVkLFxuICBjb21wYWN0OiBmYWxzZSxcbiAgcGxhY2Vob2xkZXI6ICcnLFxuICBhbGlnblRleHQ6IFNpbXBsZU9uZUF4aXNBbGlnbm1lbnQuTGVmdCxcbiAgY2xlYXJhYmxlOiBmYWxzZSxcbiAgY2xlYXJCdXR0b25UaXRsZTogJ0NsZWFyJyxcbiAgaW5wdXRBdHRyczoge30sXG4gIG1heExlbmd0aDogdW5kZWZpbmVkLFxufTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgX1NpbXBsZUlucHV0Q29tcG9uZW50QmFzZSBleHRlbmRzIF9OZ01vZGVsQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX0RFRkFVTFRTITogX1NpbXBsZUlucHV0Q29tcG9uZW50RGVmYXVsdHM7XG5cbiAgLy8hIGlucHV0IHZpZXdcbiAgcmVhZG9ubHkgdGV4dElucHV0RWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4oJ3RleHRJbnB1dCcpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpbnB1dE1vZGVsID0gbmV3IFNpbXBsZUlucHV0TW9kZWwodGhpcyk7XG4gIHByaXZhdGUgX3dhc1ZpZXdJbml0ID0gZmFsc2U7XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl93YXNWaWV3SW5pdCA9IHRydWU7XG4gICAgdGhpcy5fc2V0SW5wdXRBdHRyaWJ1dGVzKCk7XG4gICAgLy9zZXQgdGhlIHZhbHVlXG4gICAgaWYgKHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCkge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuX3ZhbHVlQmVmb3JlSW5pdCk7XG4gICAgICBkZWxldGUgdGhpcy5fdmFsdWVCZWZvcmVJbml0O1xuICAgIH1cbiAgfVxuXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPih0aGlzLl9ERUZBVUxUUy5wbGFjZWhvbGRlcik7XG4gIHJlYWRvbmx5IGlucHV0SWQgPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBjbGVhckJ1dHRvblRpdGxlID0gaW5wdXQ8c3RyaW5nPih0aGlzLl9ERUZBVUxUUy5jbGVhckJ1dHRvblRpdGxlKTtcblxuICAvLyEgcHJlZml4ICYgc3VmZml4XG4gIGFic3RyYWN0IHJlYWRvbmx5IHByZWZpeFRlbXBsYXRlOiBhbnk7XG4gIGFic3RyYWN0IHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlOiBhbnk7XG5cbiAgLy8hIHBsYWNlaG9sZGVyXG4gIGFic3RyYWN0IHJlYWRvbmx5IHBsYWNlaG9sZGVyVGVtcGxhdGU6IGFueTtcblxuICByZWFkb25seSBzaG91bGREaXNwbGF5UGxhY2Vob2xkZXIgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiBCb29sZWFuKHRoaXMucGxhY2Vob2xkZXIoKSkgJiYgIXRoaXMuaW5wdXRNb2RlbC52YWx1ZSgpKTtcblxuICAvLyEgYXBwZWFyYW5jZVxuICByZWFkb25seSBhcHBlYXJhbmNlID0gaW5wdXQ8Rm9ybUVsZW1lbnRBcHBlYXJhbmNlPih0aGlzLl9ERUZBVUxUUy5hcHBlYXJhbmNlKTtcbiAgcmVhZG9ubHkgdmFyaWFudCA9IGlucHV0PEZvcm1FbGVtZW50VmFyaWFudD4odGhpcy5fREVGQVVMVFMudmFyaWFudCk7XG4gIHJlYWRvbmx5IGFsaWduVGV4dCA9IGlucHV0PFNpbXBsZU9uZUF4aXNBbGlnbm1lbnQ+KHRoaXMuX0RFRkFVTFRTLmFsaWduVGV4dCk7XG5cbiAgcmVhZG9ubHkgY29tcGFjdCA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuY29tcGFjdCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkKCgpOiBzdHJpbmcgPT5cbiAgICBbXG4gICAgICBgYXJkLWFwcGVhcmFuY2UtJHt0aGlzLmFwcGVhcmFuY2UoKX1gLFxuICAgICAgYGFyZC12YXJpYW50LSR7dGhpcy52YXJpYW50KCl9YCxcbiAgICAgIGBhcmQtdGV4dC1hbGlnbi0ke3RoaXMuYWxpZ25UZXh0KCl9YCxcbiAgICAgIHRoaXMuY29tcGFjdCgpID8gJ2FyZC1jb21wYWN0JyA6ICcnLFxuICAgICAgdGhpcy5jbGVhcmFibGUoKSA/ICdhcmQtY2xlYXJhYmxlJyA6ICcnLFxuICAgIF0uam9pbignICcpXG4gICk7XG5cbiAgLy8hIG90aGVyIGlucHV0c1xuICByZWFkb25seSBpbnB1dEF0dHJzID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgYW55Pj4odGhpcy5fREVGQVVMVFMuaW5wdXRBdHRycyk7XG5cbiAgLy8hIG51bWJlciBhdHRyaWJ1dGUgc2V0dGVycy9nZXR0ZXJzXG4gIHJlYWRvbmx5IG1heExlbmd0aCA9IGlucHV0PE51bGxhYmxlPG51bWJlcj4sIGFueT4odGhpcy5fREVGQVVMVFMubWF4TGVuZ3RoLCB7XG4gICAgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIHRoaXMuX0RFRkFVTFRTLm1heExlbmd0aCksXG4gIH0pO1xuXG4gIC8vISBuby12YWx1ZSBhdHRyaWJ1dGUgc2V0dGVycy9nZXR0ZXJzXG4gIHJlYWRvbmx5IGNsZWFyYWJsZSA9IGlucHV0PGJvb2xlYW4sIGFueT4odGhpcy5fREVGQVVMVFMuY2xlYXJhYmxlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG5cbiAgLy8hIGNvbnRyb2wgdmFsdWUgYWNjZXNzb3IncyB3cml0ZSB2YWx1ZSBpbXBsZW1lbnRhdGlvblxuICB3cml0ZVZhbHVlKHY6IGFueSkge1xuICAgIHRoaXMuaW5wdXRNb2RlbC53cml0ZVZhbHVlKHYpO1xuICB9XG4gIC8vISB2YWx1ZSB0d28td2F5IGJpbmRpbmdcbiAgcHJvdGVjdGVkIF92YWx1ZUJlZm9yZUluaXQ/OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHY6IHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAoIXRoaXMuX3dhc1ZpZXdJbml0KSB7XG4gICAgICB0aGlzLl92YWx1ZUJlZm9yZUluaXQgPSB2O1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLndyaXRlVmFsdWUodik7XG4gIH1cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmlucHV0TW9kZWwudmFsdWUoKTtcbiAgfVxuICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG91dHB1dDxzdHJpbmcgfCBudWxsPigpO1xuXG4gIC8vISBldmVudCBlbWl0dGVyc1xuICByZWFkb25seSBpbnB1dEV2ZW50ID0gb3V0cHV0PHN0cmluZyB8IG51bGw+KHsgYWxpYXM6ICdpbnB1dCcgfSk7XG4gIHJlYWRvbmx5IGNoYW5nZUV2ZW50ID0gb3V0cHV0PHN0cmluZyB8IG51bGw+KHsgYWxpYXM6ICdjaGFuZ2UnIH0pO1xuICByZWFkb25seSBjbGVhckV2ZW50ID0gb3V0cHV0PE1vdXNlRXZlbnQ+KHsgYWxpYXM6ICdjbGVhcicgfSk7XG5cbiAgLy8hIGV2ZW50IGhhbmRsZXJzXG4gIG9uSW5wdXQobmV3VmFsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZUhhc0NoYW5nZWQgPSB0aGlzLmlucHV0TW9kZWwud3JpdGVWYWx1ZShuZXdWYWwpO1xuICAgIGlmICghdmFsdWVIYXNDaGFuZ2VkKSByZXR1cm47XG4gICAgdGhpcy5fZW1pdElucHV0KCk7XG4gIH1cbiAgcHJvdGVjdGVkIF9lbWl0SW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odGhpcy52YWx1ZSk7XG4gICAgdGhpcy5pbnB1dEV2ZW50LmVtaXQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICB9XG4gIC8vZm9jdXMsIGJsdXIsIGNoYW5nZVxuICBvbkZvY3VzTWFzdGVyKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5vbkZvY3VzKGV2ZW50KTtcbiAgfVxuICBvbkJsdXJNYXN0ZXIoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQmx1cihldmVudCk7XG4gIH1cbiAgb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5fZW1pdENoYW5nZSgpO1xuICB9XG4gIHByb3RlY3RlZCBfZW1pdENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodGhpcy5pbnB1dE1vZGVsLnZhbHVlKCkpO1xuICB9XG4gIC8vIGNsZWFyIGJ1dHRvblxuICByZWFkb25seSBzaG91bGRTaG93Q2xlYXJCdXR0b24gPSBjb21wdXRlZDxib29sZWFuPihcbiAgICAoKSA9PiB0aGlzLmNsZWFyYWJsZSgpICYmICF0aGlzLmRpc2FibGVkKCkgJiYgQm9vbGVhbih0aGlzLmlucHV0TW9kZWwudmFsdWUoKSlcbiAgKTtcbiAgb25DbGVhckJ1dHRvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pbnB1dE1vZGVsLmNsZWFyKCk7XG4gICAgdGhpcy5fZW1pdENoYW5nZSgpO1xuICAgIHRoaXMuX2VtaXRJbnB1dCgpO1xuICAgIHRoaXMuY2xlYXJFdmVudC5lbWl0KGV2ZW50KTtcbiAgICB0aGlzLmZvY3VzKCk7XG4gIH1cblxuICAvLyEgY29weSBldmVudFxuICBvbkNvcHkoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy52YWx1ZSAmJlxuICAgICAgLy9kb2VzIHRoZSBzZWxlY3Rpb24gY292ZXIgdGhlIGVudGlyZSBpbnB1dFxuICAgICAgKCh0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDAgJiZcbiAgICAgICAgdGhpcy50ZXh0SW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA9PT0gdGhpcy50ZXh0SW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50LnZhbHVlLmxlbmd0aCkgfHxcbiAgICAgICAgLy9vciBpcyB6ZXJvLXdpZGVcbiAgICAgICAgdGhpcy50ZXh0SW5wdXRFbCgpPy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSB0aGlzLnRleHRJbnB1dEVsKCk/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kKVxuICAgICkge1xuICAgICAgZXZlbnQuY2xpcGJvYXJkRGF0YT8uc2V0RGF0YSgndGV4dC9wbGFpbicsIHRoaXMudmFsdWUpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cbiAgLy8hIGhlbHBlcnNcbiAgcHJvdGVjdGVkIF9zZXRJbnB1dEF0dHJpYnV0ZXMoKSB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLnRleHRJbnB1dEVsKCkhLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgYXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGF1dG9jb3JyZWN0OiAnb2ZmJyxcbiAgICAgIGF1dG9jYXBpdGFsaXplOiAnb2ZmJyxcbiAgICAgIGF1dG9jb21wbGV0ZTogJ29mZicsXG4gICAgICB0YWJpbmRleDogU3RyaW5nKHRoaXMudGFiSW5kZXgoKSksXG4gICAgICAuLi50aGlzLmlucHV0QXR0cnMoKSxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYXR0cmlidXRlcykpIHtcbiAgICAgIGlucHV0LnNldEF0dHJpYnV0ZShrZXksIFN0cmluZyhhdHRyaWJ1dGVzW2tleV0pKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -10,7 +10,7 @@ import { FormElementAppearance, FormElementVariant } from '../../types/theming.t
|
|
|
10
10
|
import { _SimpleInputComponentBase } from '../_simple-input-base';
|
|
11
11
|
import { InputModel, escapeAndCreateRegex } from './../input-utils';
|
|
12
12
|
import { ARD_INPUT_DEFAULTS } from './input.defaults';
|
|
13
|
-
import { ArdInputLoadingTemplateDirective, ArdInputPlaceholderTemplateDirective, ArdInputPrefixTemplateDirective, ArdInputSuffixTemplateDirective,
|
|
13
|
+
import { ArdInputLoadingTemplateDirective, ArdInputPlaceholderTemplateDirective, ArdInputPrefixTemplateDirective, ArdInputSuffixTemplateDirective, ArdInputSuggestionTemplateDirective, } from './input.directives';
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
import * as i1 from "@angular/common";
|
|
16
16
|
import * as i2 from "../../form-field-frame/form-field-frame.component";
|
|
@@ -65,7 +65,7 @@ export class ArdiumInputComponent extends _SimpleInputComponentBase {
|
|
|
65
65
|
this.shouldDisplaySuggestions = computed(() => !this.disabled() && (this.suggestionItems().length > 0 || this.areSuggestionsLoading()) && this._suggestionDropdowOpen());
|
|
66
66
|
this.areSuggestionsLoading = input(false, { transform: v => coerceBooleanProperty(v) });
|
|
67
67
|
this.suggestionsLoadingText = input(this.DEFAULTS.suggestionsLoadingText);
|
|
68
|
-
this.suggestionTemplate = contentChild(
|
|
68
|
+
this.suggestionTemplate = contentChild(ArdInputSuggestionTemplateDirective);
|
|
69
69
|
this.suggestionLoadingTemplate = contentChild(ArdInputLoadingTemplateDirective);
|
|
70
70
|
//! suggestions overlay
|
|
71
71
|
this.dropdownHost = viewChild('suggestionsHost');
|
|
@@ -236,7 +236,7 @@ export class ArdiumInputComponent extends _SimpleInputComponentBase {
|
|
|
236
236
|
useExisting: forwardRef(() => ArdiumInputComponent),
|
|
237
237
|
multi: true,
|
|
238
238
|
},
|
|
239
|
-
], queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdInputPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdInputSuffixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "placeholderTemplate", first: true, predicate: ArdInputPlaceholderTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suggestionTemplate", first: true, predicate:
|
|
239
|
+
], queries: [{ propertyName: "prefixTemplate", first: true, predicate: ArdInputPrefixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suffixTemplate", first: true, predicate: ArdInputSuffixTemplateDirective, descendants: true, isSignal: true }, { propertyName: "placeholderTemplate", first: true, predicate: ArdInputPlaceholderTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suggestionTemplate", first: true, predicate: ArdInputSuggestionTemplateDirective, descendants: true, isSignal: true }, { propertyName: "suggestionLoadingTemplate", first: true, predicate: ArdInputLoadingTemplateDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "dropdownHost", first: true, predicate: ["suggestionsHost"], descendants: true, isSignal: true }, { propertyName: "dropdownTemplate", first: true, predicate: ["suggestionsTemplate"], descendants: true, read: TemplateRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ard-form-field-frame\n [appearance]=\"appearance()\"\n [variant]=\"variant()\"\n [compact]=\"compact()\"\n [isFocused]=\"isFocused\"\n [prefixTemplate]=\"prefixTemplate()?.template\"\n [suffixTemplate]=\"suffixTemplate()?.template\"\n>\n <div\n class=\"ard-input\"\n #suggestionsHost\n [ngClass]=\"ngClasses()\"\n [class.ard-has-value]=\"value\"\n (click)=\"focus()\"\n >\n <div class=\"ard-input-container\">\n @if (shouldDisplayAutocomplete()) {\n <div class=\"ard-autocomplete\">{{ autocomplete() }}</div>\n }\n @if (shouldDisplayPlaceholder()) {\n <ng-template #defaultPlaceholderTemplate>\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\n </ng-template>\n\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\n }\n <input\n #textInput\n #focusableElement\n type=\"text\"\n [attr.id]=\"inputId()\"\n [attr.tabindex]=\"tabIndex()\"\n [readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n (input)=\"onInput(textInput.value)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n (copy)=\"onCopy($event)\"\n />\n </div>\n\n @if (shouldShowClearButton()) {\n <ard-clear-button\n [title]=\"clearButtonTitle()\"\n (click)=\"onClearButtonClick($event)\"\n />\n }\n </div>\n</ard-form-field-frame>\n\n<ng-template #suggestionsTemplate>\n <ard-dropdown-panel\n class=\"ard-dropdown-panel ard-input-suggestions-panel\"\n role=\"listbox\"\n [compact]=\"compact\"\n aria-label=\"Suggestions\"\n [appearance]=\"dropdownAppearanceOrDefault()\"\n [variant]=\"dropdownVariantOrDefault()\"\n [isOpen]=\"shouldDisplaySuggestions()\"\n (ardClickOutside)=\"handleSuggestionClickOutside($event)\"\n (mousemove)=\"onMouseMove()\"\n >\n @for (item of suggestionItems(); track item.index) {\n <div\n class=\"ard-option\"\n role=\"option\"\n [class.ard-option-selected]=\"item.selected()\"\n [class.ard-option-highlighted]=\"item.highlighted()\"\n [attr.aria-selected]=\"item.selected()\"\n (click)=\"selectSuggestion(item, $event)\"\n (mouseenter)=\"onSuggestionMouseEnter(item, $event)\"\n (mouseleave)=\"onSuggestionMouseLeave(item, $event)\"\n >\n <span class=\"ard-option-label\">\n <ng-template #defaultOptionTemplate>\n {{ item.label() }}\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"suggestionTemplate()?.template || defaultOptionTemplate\"\n [ngTemplateOutletContext]=\"getOptionContext(item)\"\n ></ng-template>\n </span>\n </div>\n }\n @if (areSuggestionsLoading()) {\n <ng-template #defaultLoadingPlaceholderTemplate>\n <div class=\"ard-option ard-option-disabled\">{{ suggestionsLoadingText() }}</div>\n </ng-template>\n\n <ng-template [ngTemplateOutlet]=\"suggestionLoadingTemplate()?.template || defaultLoadingPlaceholderTemplate\"></ng-template>\n }\n </ard-dropdown-panel>\n</ng-template>\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}.ard-autocomplete{position:absolute}\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.ArdiumFormFieldFrameComponent, selector: "ard-form-field-frame", inputs: ["isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }, { kind: "component", type: i3._ClearButtonComponent, selector: "ard-clear-button" }, { kind: "component", type: i4.ArdiumDropdownPanelComponent, selector: "ard-dropdown-panel", inputs: ["panelId", "headerTemplate", "footerTemplate", "filterValue", "appearance", "variant", "compact", "isOpen"], outputs: ["scroll", "scrollToEnd"] }, { kind: "directive", type: i5.ClickOutsideDirective, selector: "[ardClickOutside]", outputs: ["ardClickOutside"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
240
240
|
}
|
|
241
241
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumInputComponent, decorators: [{
|
|
242
242
|
type: Component,
|
|
@@ -262,4 +262,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
262
262
|
type: HostListener,
|
|
263
263
|
args: ['keydown', ['$event']]
|
|
264
264
|
}] } });
|
|
265
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixPQUFPLEVBQUUsYUFBYSxFQUFjLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQTJCLE1BQU0scURBQXFELENBQUM7QUFDbkgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFMUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUs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aUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDOzhHQWpRVSxvQkFBb0Isa0JBVVgsa0JBQWtCO2tHQVYzQixvQkFBb0IscXdEQVJwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixzRUFvRCtDLCtCQUErQixpR0FDL0IsK0JBQStCLHNHQUcxQixvQ0FBb0MscUdBK0I5Qyw4QkFBOEIsNEdBQ3ZCLGdDQUFnQyxzUkFJYixXQUFXLG9FQ2xKbEYscW9HQThGQTs7MkZEdENhLG9CQUFvQjtrQkFkaEMsU0FBUzsrQkFDRSxXQUFXLGlCQUdOLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzswQkFZWSxNQUFNOzJCQUFDLGtCQUFrQjt5Q0F5RGxDLFdBQVc7c0JBRGQsS0FBSztnQkEyRE4sY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWU7Z0JBaUI3QixXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVztnQkFrRXpCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0ZWRQb3NpdGlvbiwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiwgU2Nyb2xsU3RyYXRlZ3lPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQXJyYXlQcm9wZXJ0eSwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICdzaW1wbGUtYm9vbCc7XG5pbXBvcnQgeyBTaW1wbGVzdEl0ZW1TdG9yYWdlLCBTaW1wbGVzdEl0ZW1TdG9yYWdlSG9zdCB9IGZyb20gJy4uLy4uL19pbnRlcm5hbC9pdGVtLXN0b3JhZ2VzL3NpbXBsZXN0LWl0ZW0tc3RvcmFnZSc7XG5pbXBvcnQgeyBEcm9wZG93blBhbmVsQXBwZWFyYW5jZSwgRHJvcGRvd25QYW5lbFZhcmlhbnQgfSBmcm9tICcuLi8uLi9kcm9wZG93bi1wYW5lbC9kcm9wZG93bi1wYW5lbC50eXBlcyc7XG5pbXBvcnQgeyBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMvaXRlbS1zdG9yYWdlLnR5cGVzJztcbmltcG9ydCB7IEZvcm1FbGVtZW50QXBwZWFyYW5jZSwgRm9ybUVsZW1lbnRWYXJpYW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvdGhlbWluZy50eXBlcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xuaW1wb3J0IHsgX1NpbXBsZUlucHV0Q29tcG9uZW50QmFzZSB9IGZyb20gJy4uL19zaW1wbGUtaW5wdXQtYmFzZSc7XG5pbXBvcnQgeyBPcHRpb25Db250ZXh0IH0gZnJvbSAnLi8uLi8uLi90eXBlcy9pdGVtLXN0b3JhZ2UudHlwZXMnO1xuaW1wb3J0IHsgSW5wdXRNb2RlbCwgSW5wdXRNb2RlbEhvc3QsIGVzY2FwZUFuZENyZWF0ZVJlZ2V4IH0gZnJvbSAnLi8uLi9pbnB1dC11dGlscyc7XG5pbXBvcnQgeyBBUkRfSU5QVVRfREVGQVVMVFMsIEFyZElucHV0RGVmYXVsdHMgfSBmcm9tICcuL2lucHV0LmRlZmF1bHRzJztcbmltcG9ydCB7XG4gIEFyZElucHV0TG9hZGluZ1RlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZElucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZFN1Z2dlc3Rpb25UZW1wbGF0ZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi9pbnB1dC5kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJkLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtSW5wdXRDb21wb25lbnRcbiAgZXh0ZW5kcyBfU2ltcGxlSW5wdXRDb21wb25lbnRCYXNlXG4gIGltcGxlbWVudHMgSW5wdXRNb2RlbEhvc3QsIFNpbXBsZXN0SXRlbVN0b3JhZ2VIb3N0LCBBZnRlclZpZXdJbml0XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxTdHJhdGVneU9wdHMgPSBpbmplY3QoU2Nyb2xsU3RyYXRlZ3lPcHRpb25zKTtcbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBBcmRJbnB1dERlZmF1bHRzO1xuICBwdWJsaWMgcmVhZG9ubHkgREVGQVVMVFMhOiBBcmRJbnB1dERlZmF1bHRzO1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFSRF9JTlBVVF9ERUZBVUxUUykgZGVmYXVsdHM6IEFyZElucHV0RGVmYXVsdHMpIHtcbiAgICBzdXBlcihkZWZhdWx0cyk7XG5cbiAgICB0aGlzLkRFRkFVTFRTID0gdGhpcy5fREVGQVVMVFM7XG4gIH1cblxuICAvLyEgaW5wdXQgdmlld1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgaW5wdXRNb2RlbCA9IG5ldyBJbnB1dE1vZGVsKHRoaXMpO1xuXG4gIC8vISBhbGxvd2xpc3QvZGVueWxpc3Qgb2YgY2hhcmFjdGVyc1xuICAvL3VzZSBzdGFuZGFyZCBzdHJpbmcgZm9yIGRlbnlsaXN0LCBwcmVwZW5kIHdpdGggXiBmb3IgYWxsb3dsaXN0XG4gIHJlYWRvbmx5IGNoYXJsaXN0RnJvbUlucHV0ID0gaW5wdXQ8UmVnRXhwIHwgdW5kZWZpbmVkLCBzdHJpbmc+KHVuZGVmaW5lZCwge1xuICAgIGFsaWFzOiAnY2hhcmxpc3QnLFxuICAgIHRyYW5zZm9ybTogdiA9PiB7XG4gICAgICBpZiAoIWlzU3RyaW5nKHYpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQVJELUZUMDAzMzogW2NoYXJsaXN0XSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZywgZ290IFwiXCIuJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBuZWdhdGVkID0gdi5zdGFydHNXaXRoKCdeJyk7XG4gICAgICByZXR1cm4gZXNjYXBlQW5kQ3JlYXRlUmVnZXgodiwgJycsICFuZWdhdGVkKTtcbiAgICB9LFxuICB9KTtcbiAgcmVhZG9ubHkgY2hhcmxpc3RDYXNlSW5zZW5zaXRpdmUgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG5cbiAgcmVhZG9ubHkgY2hhcmxpc3QgPSBjb21wdXRlZDxSZWdFeHAgfCB1bmRlZmluZWQ+KCgpID0+IHtcbiAgICBjb25zdCBjID0gdGhpcy5jaGFybGlzdEZyb21JbnB1dCgpO1xuICAgIGlmICghdGhpcy5jaGFybGlzdENhc2VJbnNlbnNpdGl2ZSgpIHx8ICFjKSB7XG4gICAgICByZXR1cm4gYztcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoYy5zb3VyY2UsICdpJyk7XG4gIH0pO1xuXG4gIC8vISBhdXRvY29tcGxldGVcbiAgcmVhZG9ubHkgYXV0b2NvbXBsZXRlID0gaW5wdXQ8TnVsbGFibGU8c3RyaW5nPj4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSBzaG91bGREaXNwbGF5QXV0b2NvbXBsZXRlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gIXRoaXMuZGlzYWJsZWQoKSAmJiBCb29sZWFuKHRoaXMuYXV0b2NvbXBsZXRlKCkpKTtcblxuICAvL2F1dG9jb21wbGV0ZSBldmVudFxuICByZWFkb25seSBhY2NlcHRBdXRvY29tcGxldGVFdmVudCA9IG91dHB1dCh7IGFsaWFzOiAnYWNjZXB0QXV0b2NvbXBsZXRlJyB9KTtcblxuICAvLyEgcHJlZml4ICYgc3VmZml4XG4gIG92ZXJyaWRlIHJlYWRvbmx5IHByZWZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xuICBvdmVycmlkZSByZWFkb25seSBzdWZmaXhUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlKTtcblxuICAvLyEgcGxhY2Vob2xkZXJcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUpO1xuXG4gIC8vISBzdWdnZXN0aW9uc1xuICByZWFkb25seSBzdWdnZXN0aW9uU3RvcmFnZSA9IG5ldyBTaW1wbGVzdEl0ZW1TdG9yYWdlKHRoaXMpO1xuXG4gIHJlYWRvbmx5IHZhbHVlRnJvbSA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHVuZGVmaW5lZCwgeyBhbGlhczogJ3N1Z2dWYWx1ZUZyb20nIH0pO1xuICByZWFkb25seSBsYWJlbEZyb20gPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQsIHsgYWxpYXM6ICdzdWdnTGFiZWxGcm9tJyB9KTtcblxuICByZWFkb25seSBhY2NlcHRTdWdnZXN0aW9uRXZlbnQgPSBvdXRwdXQ8YW55Pih7IGFsaWFzOiAnYWNjZXB0U3VnZ2VzdGlvbicgfSk7XG5cbiAgcmVhZG9ubHkgc3VnZ2VzdGlvbkl0ZW1zID0gdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5pdGVtcztcblxuICBASW5wdXQoKVxuICBzZXQgc3VnZ2VzdGlvbnModmFsdWU6IGFueSkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHZhbHVlID0gY29lcmNlQXJyYXlQcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLnNldEl0ZW1zKHZhbHVlKTtcblxuICAgIHRoaXMuX3N1Z2dlc3Rpb25Ecm9wZG93T3Blbi5zZXQodHJ1ZSk7XG4gICAgdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5oaWdobGlnaHRGaXJzdEl0ZW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1Z2dlc3Rpb25Ecm9wZG93T3BlbiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgc2hvdWxkRGlzcGxheVN1Z2dlc3Rpb25zID0gY29tcHV0ZWQoXG4gICAgKCkgPT4gIXRoaXMuZGlzYWJsZWQoKSAmJiAodGhpcy5zdWdnZXN0aW9uSXRlbXMoKS5sZW5ndGggPiAwIHx8IHRoaXMuYXJlU3VnZ2VzdGlvbnNMb2FkaW5nKCkpICYmIHRoaXMuX3N1Z2dlc3Rpb25Ecm9wZG93T3BlbigpXG4gICk7XG5cbiAgcmVhZG9ubHkgYXJlU3VnZ2VzdGlvbnNMb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbiwgYW55PihmYWxzZSwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpIH0pO1xuICByZWFkb25seSBzdWdnZXN0aW9uc0xvYWRpbmdUZXh0ID0gaW5wdXQ8c3RyaW5nPih0aGlzLkRFRkFVTFRTLnN1Z2dlc3Rpb25zTG9hZGluZ1RleHQpO1xuXG4gIHJlYWRvbmx5IHN1Z2dlc3Rpb25UZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRTdWdnZXN0aW9uVGVtcGxhdGVEaXJlY3RpdmUpO1xuICByZWFkb25seSBzdWdnZXN0aW9uTG9hZGluZ1RlbXBsYXRlID0gY29udGVudENoaWxkKEFyZElucHV0TG9hZGluZ1RlbXBsYXRlRGlyZWN0aXZlKTtcblxuICAvLyEgc3VnZ2VzdGlvbnMgb3ZlcmxheVxuICByZWFkb25seSBkcm9wZG93bkhvc3QgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4+KCdzdWdnZXN0aW9uc0hvc3QnKTtcbiAgcmVhZG9ubHkgZHJvcGRvd25UZW1wbGF0ZSA9IHZpZXdDaGlsZCgnc3VnZ2VzdGlvbnNUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSk7XG5cbiAgcHJpdmF0ZSBkcm9wZG93bk92ZXJsYXkhOiBPdmVybGF5UmVmO1xuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5kcm9wZG93bkhvc3QoKSEpXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgfSBhcyBDb25uZWN0ZWRQb3NpdGlvbixcbiAgICAgIF0pXG4gICAgICAud2l0aFB1c2goZmFsc2UpO1xuXG4gICAgY29uc3QgY29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneTogc3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5zY3JvbGxTdHJhdGVneU9wdHMuYmxvY2soKSxcbiAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIHRoaXMuZHJvcGRvd25PdmVybGF5ID0gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWcpO1xuXG4gICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuZHJvcGRvd25UZW1wbGF0ZSgpISwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICB0aGlzLmRyb3Bkb3duT3ZlcmxheS5hdHRhY2gocG9ydGFsKTtcblxuICAgIHRoaXMuc2V0T3ZlcmxheVNpemUoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBzZXRPdmVybGF5U2l6ZSgpOiB2b2lkIHtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5kcm9wZG93bkhvc3QoKT8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLmRyb3Bkb3duT3ZlcmxheS51cGRhdGVTaXplKHsgd2lkdGg6IHJlY3Q/LndpZHRoIH0pO1xuICB9XG5cbiAgZ2V0T3B0aW9uQ29udGV4dChpdGVtOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtKTogT3B0aW9uQ29udGV4dDxBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRpbXBsaWNpdDogaXRlbSxcbiAgICAgIGl0ZW0sXG4gICAgICBpdGVtRGF0YTogaXRlbS5pdGVtRGF0YSxcbiAgICB9O1xuICB9XG5cbiAgLy8hIHN1Z2dlc3Rpb24taGlnaGxpZ2gtcmVsYXRlZFxuICBwcml2YXRlIF9pc01vdXNlQmVpbmdVc2VkID0gZmFsc2U7XG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZScpXG4gIG9uTW91c2VNb3ZlKCkge1xuICAgIHRoaXMuX2lzTW91c2VCZWluZ1VzZWQgPSB0cnVlO1xuICB9XG4gIG9uU3VnZ2VzdGlvbk1vdXNlRW50ZXIoaXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzTW91c2VCZWluZ1VzZWQpIHJldHVybjtcbiAgICB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLmhpZ2hsaWdodEl0ZW0oaXRlbSk7XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuICBvblN1Z2dlc3Rpb25Nb3VzZUxlYXZlKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0sIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc01vdXNlQmVpbmdVc2VkKSByZXR1cm47XG4gICAgdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS51bmhpZ2hsaWdodEl0ZW0oaXRlbSk7XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIC8vISBzdWdnZXN0aW9uIHNlbGVjdGlvblxuICBzZWxlY3RTdWdnZXN0aW9uKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0sIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLl9zZWxlY3RTdWdnZXN0aW9uKGl0ZW0pO1xuICB9XG4gIHByaXZhdGUgX3NlbGVjdFN1Z2dlc3Rpb24oaXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5zZWxlY3RJdGVtKGl0ZW0pO1xuICAgIHRoaXMud3JpdGVWYWx1ZShzZWxlY3RlZCA/PyAnJyk7XG5cbiAgICB0aGlzLmFjY2VwdFN1Z2dlc3Rpb25FdmVudC5lbWl0KHNlbGVjdGVkKTtcblxuICAgIC8vaW1wb3J0YW50IHRvIGRvIHRob3NlIHR3byB0aGluZ3MgaW4gdGhpcyBleGFjdCBvcmRlclxuICAgIHRoaXMuZm9jdXMoKTtcbiAgICB0aGlzLl9zdWdnZXN0aW9uRHJvcGRvd09wZW4uc2V0KGZhbHNlKTtcbiAgfVxuICBoYW5kbGVTdWdnZXN0aW9uQ2xpY2tPdXRzaWRlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZERpc3BsYXlTdWdnZXN0aW9ucygpKSByZXR1cm47XG5cbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMudmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSkgcmV0dXJuO1xuXG4gICAgdGhpcy5fc3VnZ2VzdGlvbkRyb3Bkb3dPcGVuLnNldChmYWxzZSk7XG4gIH1cbiAgLy8hIHN1Z2dlc3Rpb24gYXBwZWFyYW5jZVxuICByZWFkb25seSBkcm9wZG93bkFwcGVhcmFuY2UgPSBpbnB1dDxOdWxsYWJsZTxEcm9wZG93blBhbmVsQXBwZWFyYW5jZT4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGRyb3Bkb3duQXBwZWFyYW5jZU9yRGVmYXVsdCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5kcm9wZG93bkFwcGVhcmFuY2UoKSkgcmV0dXJuIHRoaXMuZHJvcGRvd25BcHBlYXJhbmNlKCkhO1xuICAgIGlmICh0aGlzLmFwcGVhcmFuY2UoKSA9PT0gRm9ybUVsZW1lbnRBcHBlYXJhbmNlLk91dGxpbmVkKSByZXR1cm4gRHJvcGRvd25QYW5lbEFwcGVhcmFuY2UuT3V0bGluZWQ7XG4gICAgcmV0dXJuIERyb3Bkb3duUGFuZWxBcHBlYXJhbmNlLlJhaXNlZDtcbiAgfSk7XG4gIHJlYWRvbmx5IGRyb3Bkb3duVmFyaWFudCA9IGlucHV0PE51bGxhYmxlPERyb3Bkb3duUGFuZWxWYXJpYW50Pj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZHJvcGRvd25WYXJpYW50T3JEZWZhdWx0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duVmFyaWFudCgpKSByZXR1cm4gdGhpcy5kcm9wZG93blZhcmlhbnQoKSE7XG4gICAgY29uc3QgdmFyaWFudCA9IHRoaXMudmFyaWFudCgpO1xuICAgIGlmICh2YXJpYW50ID09PSBGb3JtRWxlbWVudFZhcmlhbnQuUGlsbCkgcmV0dXJuIERyb3Bkb3duUGFuZWxWYXJpYW50LlJvdW5kZWQ7XG4gICAgcmV0dXJuIHZhcmlhbnQ7XG4gIH0pO1xuXG4gIC8vISBmb2N1cyBvdmVycmlkZVxuICBvdmVycmlkZSBvbkZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fc3VnZ2VzdGlvbkRyb3Bkb3dPcGVuLnNldCh0cnVlKTtcbiAgICBpZiAoIXRoaXMuc3VnZ2VzdGlvblN0b3JhZ2UuaGlnaGxpZ2h0ZWRJdGVtKCkpIHRoaXMuc3VnZ2VzdGlvblN0b3JhZ2UuaGlnaGxpZ2h0Rmlyc3RJdGVtKCk7XG5cbiAgICBzdXBlci5vbkZvY3VzKGV2ZW50KTtcbiAgfVxuXG4gIC8vISBrZXkgcHJlc3MgaGFuZGxlcnNcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgIGNhc2UgJ0VudGVyJzoge1xuICAgICAgICB0aGlzLl9vblRhYk9yRW50ZXJQcmVzcyhldmVudCk7XG4gICAgICAgIHRoaXMuX29uRW50ZXJQcmVzcyhldmVudCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ1RhYic6IHtcbiAgICAgICAgdGhpcy5fb25UYWJPckVudGVyUHJlc3MoZXZlbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOiB7XG4gICAgICAgIHRoaXMuX29uQXJyb3dEb3duUHJlc3MoZXZlbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjYXNlICdBcnJvd1VwJzoge1xuICAgICAgICB0aGlzLl9vbkFycm93VXBQcmVzcyhldmVudCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIF9vblRhYk9yRW50ZXJQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGREaXNwbGF5QXV0b2NvbXBsZXRlKCkpIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5vbklucHV0KHRoaXMuYXV0b2NvbXBsZXRlKCkgPz8gJycpO1xuICAgIHRoaXMuYWNjZXB0QXV0b2NvbXBsZXRlRXZlbnQuZW1pdCgpO1xuICB9XG4gIHByaXZhdGUgX29uRW50ZXJQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGREaXNwbGF5U3VnZ2VzdGlvbnMoKSkgcmV0dXJuO1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLmhpZ2hsaWdodGVkSXRlbSgpO1xuICAgIGlmICghaXRlbSkgcmV0dXJuO1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLl9zZWxlY3RTdWdnZXN0aW9uKGl0ZW0pO1xuICB9XG4gIHByaXZhdGUgX29uQXJyb3dEb3duUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkRGlzcGxheVN1Z2dlc3Rpb25zKCkpIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5faXNNb3VzZUJlaW5nVXNlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5oaWdobGlnaHROZXh0SXRlbSgrMSk7XG4gIH1cbiAgcHJpdmF0ZSBfb25BcnJvd1VwUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkRGlzcGxheVN1Z2dlc3Rpb25zKCkpIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5faXNNb3VzZUJlaW5nVXNlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5oaWdobGlnaHROZXh0SXRlbSgtMSk7XG4gIH1cbn1cbiIsIjxhcmQtZm9ybS1maWVsZC1mcmFtZVxuICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlKClcIlxuICBbdmFyaWFudF09XCJ2YXJpYW50KClcIlxuICBbY29tcGFjdF09XCJjb21wYWN0KClcIlxuICBbaXNGb2N1c2VkXT1cImlzRm9jdXNlZFwiXG4gIFtwcmVmaXhUZW1wbGF0ZV09XCJwcmVmaXhUZW1wbGF0ZSgpPy50ZW1wbGF0ZVwiXG4gIFtzdWZmaXhUZW1wbGF0ZV09XCJzdWZmaXhUZW1wbGF0ZSgpPy50ZW1wbGF0ZVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFyZC1pbnB1dFwiXG4gICAgI3N1Z2dlc3Rpb25zSG9zdFxuICAgIFtuZ0NsYXNzXT1cIm5nQ2xhc3NlcygpXCJcbiAgICBbY2xhc3MuYXJkLWhhcy12YWx1ZV09XCJ2YWx1ZVwiXG4gICAgKGNsaWNrKT1cImZvY3VzKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImFyZC1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgIEBpZiAoc2hvdWxkRGlzcGxheUF1dG9jb21wbGV0ZSgpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtYXV0b2NvbXBsZXRlXCI+e3sgYXV0b2NvbXBsZXRlKCkgfX08L2Rpdj5cbiAgICAgIH1cbiAgICAgIEBpZiAoc2hvdWxkRGlzcGxheVBsYWNlaG9sZGVyKCkpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLXBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIoKSB9fTwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwbGFjZWhvbGRlclRlbXBsYXRlKCk/LnRlbXBsYXRlIHx8IGRlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIH1cbiAgICAgIDxpbnB1dFxuICAgICAgICAjdGV4dElucHV0XG4gICAgICAgICNmb2N1c2FibGVFbGVtZW50XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW2F0dHIuaWRdPVwiaW5wdXRJZCgpXCJcbiAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAoaW5wdXQpPVwib25JbnB1dCh0ZXh0SW5wdXQudmFsdWUpXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgKGNvcHkpPVwib25Db3B5KCRldmVudClcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoc2hvdWxkU2hvd0NsZWFyQnV0dG9uKCkpIHtcbiAgICAgIDxhcmQtY2xlYXItYnV0dG9uXG4gICAgICAgIFt0aXRsZV09XCJjbGVhckJ1dHRvblRpdGxlKClcIlxuICAgICAgICAoY2xpY2spPVwib25DbGVhckJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgICAgLz5cbiAgICB9XG4gIDwvZGl2PlxuPC9hcmQtZm9ybS1maWVsZC1mcmFtZT5cblxuPG5nLXRlbXBsYXRlICNzdWdnZXN0aW9uc1RlbXBsYXRlPlxuICA8YXJkLWRyb3Bkb3duLXBhbmVsXG4gICAgY2xhc3M9XCJhcmQtZHJvcGRvd24tcGFuZWwgYXJkLWlucHV0LXN1Z2dlc3Rpb25zLXBhbmVsXCJcbiAgICByb2xlPVwibGlzdGJveFwiXG4gICAgW2NvbXBhY3RdPVwiY29tcGFjdFwiXG4gICAgYXJpYS1sYWJlbD1cIlN1Z2dlc3Rpb25zXCJcbiAgICBbYXBwZWFyYW5jZV09XCJkcm9wZG93bkFwcGVhcmFuY2VPckRlZmF1bHQoKVwiXG4gICAgW3ZhcmlhbnRdPVwiZHJvcGRvd25WYXJpYW50T3JEZWZhdWx0KClcIlxuICAgIFtpc09wZW5dPVwic2hvdWxkRGlzcGxheVN1Z2dlc3Rpb25zKClcIlxuICAgIChhcmRDbGlja091dHNpZGUpPVwiaGFuZGxlU3VnZ2VzdGlvbkNsaWNrT3V0c2lkZSgkZXZlbnQpXCJcbiAgICAobW91c2Vtb3ZlKT1cIm9uTW91c2VNb3ZlKClcIlxuICA+XG4gICAgQGZvciAoaXRlbSBvZiBzdWdnZXN0aW9uSXRlbXMoKTsgdHJhY2sgaXRlbS5pbmRleCkge1xuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImFyZC1vcHRpb25cIlxuICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgW2NsYXNzLmFyZC1vcHRpb24tc2VsZWN0ZWRdPVwiaXRlbS5zZWxlY3RlZCgpXCJcbiAgICAgICAgW2NsYXNzLmFyZC1vcHRpb24taGlnaGxpZ2h0ZWRdPVwiaXRlbS5oaWdobGlnaHRlZCgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpdGVtLnNlbGVjdGVkKClcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0U3VnZ2VzdGlvbihpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwib25TdWdnZXN0aW9uTW91c2VFbnRlcihpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgKG1vdXNlbGVhdmUpPVwib25TdWdnZXN0aW9uTW91c2VMZWF2ZShpdGVtLCAkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhcmQtb3B0aW9uLWxhYmVsXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0T3B0aW9uVGVtcGxhdGU+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsKCkgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJzdWdnZXN0aW9uVGVtcGxhdGUoKT8udGVtcGxhdGUgfHwgZGVmYXVsdE9wdGlvblRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRPcHRpb25Db250ZXh0KGl0ZW0pXCJcbiAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAoYXJlU3VnZ2VzdGlvbnNMb2FkaW5nKCkpIHtcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExvYWRpbmdQbGFjZWhvbGRlclRlbXBsYXRlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLW9wdGlvbiBhcmQtb3B0aW9uLWRpc2FibGVkXCI+e3sgc3VnZ2VzdGlvbnNMb2FkaW5nVGV4dCgpIH19PC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic3VnZ2VzdGlvbkxvYWRpbmdUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0TG9hZGluZ1BsYWNlaG9sZGVyVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgPC9hcmQtZHJvcGRvd24tcGFuZWw+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaW5wdXQvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaW5wdXQvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixPQUFPLEVBQUUsYUFBYSxFQUFjLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQTJCLE1BQU0scURBQXFELENBQUM7QUFDbkgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFMUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUs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aUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDOzhHQWpRVSxvQkFBb0Isa0JBVVgsa0JBQWtCO2tHQVYzQixvQkFBb0IscXdEQVJwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixzRUFvRCtDLCtCQUErQixpR0FDL0IsK0JBQStCLHNHQUcxQixvQ0FBb0MscUdBK0I5QyxtQ0FBbUMsNEdBQzVCLGdDQUFnQyxzUkFJYixXQUFXLG9FQ2xKbEYscW9HQThGQTs7MkZEdENhLG9CQUFvQjtrQkFkaEMsU0FBUzsrQkFDRSxXQUFXLGlCQUdOLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzswQkFZWSxNQUFNOzJCQUFDLGtCQUFrQjt5Q0F5RGxDLFdBQVc7c0JBRGQsS0FBSztnQkEyRE4sY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWU7Z0JBaUI3QixXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVztnQkFrRXpCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0ZWRQb3NpdGlvbiwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiwgU2Nyb2xsU3RyYXRlZ3lPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQXJyYXlQcm9wZXJ0eSwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICdzaW1wbGUtYm9vbCc7XG5pbXBvcnQgeyBTaW1wbGVzdEl0ZW1TdG9yYWdlLCBTaW1wbGVzdEl0ZW1TdG9yYWdlSG9zdCB9IGZyb20gJy4uLy4uL19pbnRlcm5hbC9pdGVtLXN0b3JhZ2VzL3NpbXBsZXN0LWl0ZW0tc3RvcmFnZSc7XG5pbXBvcnQgeyBEcm9wZG93blBhbmVsQXBwZWFyYW5jZSwgRHJvcGRvd25QYW5lbFZhcmlhbnQgfSBmcm9tICcuLi8uLi9kcm9wZG93bi1wYW5lbC9kcm9wZG93bi1wYW5lbC50eXBlcyc7XG5pbXBvcnQgeyBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMvaXRlbS1zdG9yYWdlLnR5cGVzJztcbmltcG9ydCB7IEZvcm1FbGVtZW50QXBwZWFyYW5jZSwgRm9ybUVsZW1lbnRWYXJpYW50IH0gZnJvbSAnLi4vLi4vdHlwZXMvdGhlbWluZy50eXBlcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3V0aWxpdHkudHlwZXMnO1xuaW1wb3J0IHsgX1NpbXBsZUlucHV0Q29tcG9uZW50QmFzZSB9IGZyb20gJy4uL19zaW1wbGUtaW5wdXQtYmFzZSc7XG5pbXBvcnQgeyBPcHRpb25Db250ZXh0IH0gZnJvbSAnLi8uLi8uLi90eXBlcy9pdGVtLXN0b3JhZ2UudHlwZXMnO1xuaW1wb3J0IHsgSW5wdXRNb2RlbCwgSW5wdXRNb2RlbEhvc3QsIGVzY2FwZUFuZENyZWF0ZVJlZ2V4IH0gZnJvbSAnLi8uLi9pbnB1dC11dGlscyc7XG5pbXBvcnQgeyBBUkRfSU5QVVRfREVGQVVMVFMsIEFyZElucHV0RGVmYXVsdHMgfSBmcm9tICcuL2lucHV0LmRlZmF1bHRzJztcbmltcG9ydCB7XG4gIEFyZElucHV0TG9hZGluZ1RlbXBsYXRlRGlyZWN0aXZlLFxuICBBcmRJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZElucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZElucHV0U3VnZ2VzdGlvblRlbXBsYXRlRGlyZWN0aXZlLFxufSBmcm9tICcuL2lucHV0LmRpcmVjdGl2ZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcmQtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcmRpdW1JbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1JbnB1dENvbXBvbmVudFxuICBleHRlbmRzIF9TaW1wbGVJbnB1dENvbXBvbmVudEJhc2VcbiAgaW1wbGVtZW50cyBJbnB1dE1vZGVsSG9zdCwgU2ltcGxlc3RJdGVtU3RvcmFnZUhvc3QsIEFmdGVyVmlld0luaXRcbntcbiAgcHJpdmF0ZSByZWFkb25seSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFN0cmF0ZWd5T3B0cyA9IGluamVjdChTY3JvbGxTdHJhdGVneU9wdGlvbnMpO1xuICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IEFyZElucHV0RGVmYXVsdHM7XG4gIHB1YmxpYyByZWFkb25seSBERUZBVUxUUyE6IEFyZElucHV0RGVmYXVsdHM7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQVJEX0lOUFVUX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkSW5wdXREZWZhdWx0cykge1xuICAgIHN1cGVyKGRlZmF1bHRzKTtcblxuICAgIHRoaXMuREVGQVVMVFMgPSB0aGlzLl9ERUZBVUxUUztcbiAgfVxuXG4gIC8vISBpbnB1dCB2aWV3XG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBpbnB1dE1vZGVsID0gbmV3IElucHV0TW9kZWwodGhpcyk7XG5cbiAgLy8hIGFsbG93bGlzdC9kZW55bGlzdCBvZiBjaGFyYWN0ZXJzXG4gIC8vdXNlIHN0YW5kYXJkIHN0cmluZyBmb3IgZGVueWxpc3QsIHByZXBlbmQgd2l0aCBeIGZvciBhbGxvd2xpc3RcbiAgcmVhZG9ubHkgY2hhcmxpc3RGcm9tSW5wdXQgPSBpbnB1dDxSZWdFeHAgfCB1bmRlZmluZWQsIHN0cmluZz4odW5kZWZpbmVkLCB7XG4gICAgYWxpYXM6ICdjaGFybGlzdCcsXG4gICAgdHJhbnNmb3JtOiB2ID0+IHtcbiAgICAgIGlmICghaXNTdHJpbmcodikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBUkQtRlQwMDMzOiBbY2hhcmxpc3RdIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nLCBnb3QgXCJcIi4nKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG5lZ2F0ZWQgPSB2LnN0YXJ0c1dpdGgoJ14nKTtcbiAgICAgIHJldHVybiBlc2NhcGVBbmRDcmVhdGVSZWdleCh2LCAnJywgIW5lZ2F0ZWQpO1xuICAgIH0sXG4gIH0pO1xuICByZWFkb25seSBjaGFybGlzdENhc2VJbnNlbnNpdGl2ZSA9IGlucHV0PGJvb2xlYW4sIGFueT4oZmFsc2UsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcblxuICByZWFkb25seSBjaGFybGlzdCA9IGNvbXB1dGVkPFJlZ0V4cCB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgIGNvbnN0IGMgPSB0aGlzLmNoYXJsaXN0RnJvbUlucHV0KCk7XG4gICAgaWYgKCF0aGlzLmNoYXJsaXN0Q2FzZUluc2Vuc2l0aXZlKCkgfHwgIWMpIHtcbiAgICAgIHJldHVybiBjO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChjLnNvdXJjZSwgJ2knKTtcbiAgfSk7XG5cbiAgLy8hIGF1dG9jb21wbGV0ZVxuICByZWFkb25seSBhdXRvY29tcGxldGUgPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IHNob3VsZERpc3BsYXlBdXRvY29tcGxldGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiAhdGhpcy5kaXNhYmxlZCgpICYmIEJvb2xlYW4odGhpcy5hdXRvY29tcGxldGUoKSkpO1xuXG4gIC8vYXV0b2NvbXBsZXRlIGV2ZW50XG4gIHJlYWRvbmx5IGFjY2VwdEF1dG9jb21wbGV0ZUV2ZW50ID0gb3V0cHV0KHsgYWxpYXM6ICdhY2NlcHRBdXRvY29tcGxldGUnIH0pO1xuXG4gIC8vISBwcmVmaXggJiBzdWZmaXhcbiAgb3ZlcnJpZGUgcmVhZG9ubHkgcHJlZml4VGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkSW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSk7XG4gIG92ZXJyaWRlIHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZElucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xuXG4gIC8vISBwbGFjZWhvbGRlclxuICBvdmVycmlkZSByZWFkb25seSBwbGFjZWhvbGRlclRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZElucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSk7XG5cbiAgLy8hIHN1Z2dlc3Rpb25zXG4gIHJlYWRvbmx5IHN1Z2dlc3Rpb25TdG9yYWdlID0gbmV3IFNpbXBsZXN0SXRlbVN0b3JhZ2UodGhpcyk7XG5cbiAgcmVhZG9ubHkgdmFsdWVGcm9tID0gaW5wdXQ8TnVsbGFibGU8c3RyaW5nPj4odW5kZWZpbmVkLCB7IGFsaWFzOiAnc3VnZ1ZhbHVlRnJvbScgfSk7XG4gIHJlYWRvbmx5IGxhYmVsRnJvbSA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KHVuZGVmaW5lZCwgeyBhbGlhczogJ3N1Z2dMYWJlbEZyb20nIH0pO1xuXG4gIHJlYWRvbmx5IGFjY2VwdFN1Z2dlc3Rpb25FdmVudCA9IG91dHB1dDxhbnk+KHsgYWxpYXM6ICdhY2NlcHRTdWdnZXN0aW9uJyB9KTtcblxuICByZWFkb25seSBzdWdnZXN0aW9uSXRlbXMgPSB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLml0ZW1zO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBzdWdnZXN0aW9ucyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkgdmFsdWUgPSBjb2VyY2VBcnJheVByb3BlcnR5KHZhbHVlKTtcblxuICAgIHRoaXMuc3VnZ2VzdGlvblN0b3JhZ2Uuc2V0SXRlbXModmFsdWUpO1xuXG4gICAgdGhpcy5fc3VnZ2VzdGlvbkRyb3Bkb3dPcGVuLnNldCh0cnVlKTtcbiAgICB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLmhpZ2hsaWdodEZpcnN0SXRlbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3VnZ2VzdGlvbkRyb3Bkb3dPcGVuID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBzaG91bGREaXNwbGF5U3VnZ2VzdGlvbnMgPSBjb21wdXRlZChcbiAgICAoKSA9PiAhdGhpcy5kaXNhYmxlZCgpICYmICh0aGlzLnN1Z2dlc3Rpb25JdGVtcygpLmxlbmd0aCA+IDAgfHwgdGhpcy5hcmVTdWdnZXN0aW9uc0xvYWRpbmcoKSkgJiYgdGhpcy5fc3VnZ2VzdGlvbkRyb3Bkb3dPcGVuKClcbiAgKTtcblxuICByZWFkb25seSBhcmVTdWdnZXN0aW9uc0xvYWRpbmcgPSBpbnB1dDxib29sZWFuLCBhbnk+KGZhbHNlLCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XG4gIHJlYWRvbmx5IHN1Z2dlc3Rpb25zTG9hZGluZ1RleHQgPSBpbnB1dDxzdHJpbmc+KHRoaXMuREVGQVVMVFMuc3VnZ2VzdGlvbnNMb2FkaW5nVGV4dCk7XG5cbiAgcmVhZG9ubHkgc3VnZ2VzdGlvblRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZElucHV0U3VnZ2VzdGlvblRlbXBsYXRlRGlyZWN0aXZlKTtcbiAgcmVhZG9ubHkgc3VnZ2VzdGlvbkxvYWRpbmdUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZChBcmRJbnB1dExvYWRpbmdUZW1wbGF0ZURpcmVjdGl2ZSk7XG5cbiAgLy8hIHN1Z2dlc3Rpb25zIG92ZXJsYXlcbiAgcmVhZG9ubHkgZHJvcGRvd25Ib3N0ID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+Pignc3VnZ2VzdGlvbnNIb3N0Jyk7XG4gIHJlYWRvbmx5IGRyb3Bkb3duVGVtcGxhdGUgPSB2aWV3Q2hpbGQoJ3N1Z2dlc3Rpb25zVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pO1xuXG4gIHByaXZhdGUgZHJvcGRvd25PdmVybGF5ITogT3ZlcmxheVJlZjtcblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZHJvcGRvd25Ib3N0KCkhKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICB7XG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgIH0gYXMgQ29ubmVjdGVkUG9zaXRpb24sXG4gICAgICBdKVxuICAgICAgLndpdGhQdXNoKGZhbHNlKTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHN0cmF0ZWd5LFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuc2Nyb2xsU3RyYXRlZ3lPcHRzLmJsb2NrKCksXG4gICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRyb3Bkb3duT3ZlcmxheSA9IHRoaXMub3ZlcmxheS5jcmVhdGUoY29uZmlnKTtcblxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmRyb3Bkb3duVGVtcGxhdGUoKSEsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgdGhpcy5kcm9wZG93bk92ZXJsYXkuYXR0YWNoKHBvcnRhbCk7XG5cbiAgICB0aGlzLnNldE92ZXJsYXlTaXplKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgc2V0T3ZlcmxheVNpemUoKTogdm9pZCB7XG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZHJvcGRvd25Ib3N0KCk/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5kcm9wZG93bk92ZXJsYXkudXBkYXRlU2l6ZSh7IHdpZHRoOiByZWN0Py53aWR0aCB9KTtcbiAgfVxuXG4gIGdldE9wdGlvbkNvbnRleHQoaXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSk6IE9wdGlvbkNvbnRleHQ8QXJkU2ltcGxlc3RTdG9yYWdlSXRlbT4ge1xuICAgIHJldHVybiB7XG4gICAgICAkaW1wbGljaXQ6IGl0ZW0sXG4gICAgICBpdGVtLFxuICAgICAgaXRlbURhdGE6IGl0ZW0uaXRlbURhdGEsXG4gICAgfTtcbiAgfVxuXG4gIC8vISBzdWdnZXN0aW9uLWhpZ2hsaWdoLXJlbGF0ZWRcbiAgcHJpdmF0ZSBfaXNNb3VzZUJlaW5nVXNlZCA9IGZhbHNlO1xuICBASG9zdExpc3RlbmVyKCdtb3VzZW1vdmUnKVxuICBvbk1vdXNlTW92ZSgpIHtcbiAgICB0aGlzLl9pc01vdXNlQmVpbmdVc2VkID0gdHJ1ZTtcbiAgfVxuICBvblN1Z2dlc3Rpb25Nb3VzZUVudGVyKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0sIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc01vdXNlQmVpbmdVc2VkKSByZXR1cm47XG4gICAgdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5oaWdobGlnaHRJdGVtKGl0ZW0pO1xuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbiAgb25TdWdnZXN0aW9uTW91c2VMZWF2ZShpdGVtOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtLCBldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNNb3VzZUJlaW5nVXNlZCkgcmV0dXJuO1xuICAgIHRoaXMuc3VnZ2VzdGlvblN0b3JhZ2UudW5oaWdobGlnaHRJdGVtKGl0ZW0pO1xuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICAvLyEgc3VnZ2VzdGlvbiBzZWxlY3Rpb25cbiAgc2VsZWN0U3VnZ2VzdGlvbihpdGVtOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtLCBldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5fc2VsZWN0U3VnZ2VzdGlvbihpdGVtKTtcbiAgfVxuICBwcml2YXRlIF9zZWxlY3RTdWdnZXN0aW9uKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0pOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc3VnZ2VzdGlvblN0b3JhZ2Uuc2VsZWN0SXRlbShpdGVtKTtcbiAgICB0aGlzLndyaXRlVmFsdWUoc2VsZWN0ZWQgPz8gJycpO1xuXG4gICAgdGhpcy5hY2NlcHRTdWdnZXN0aW9uRXZlbnQuZW1pdChzZWxlY3RlZCk7XG5cbiAgICAvL2ltcG9ydGFudCB0byBkbyB0aG9zZSB0d28gdGhpbmdzIGluIHRoaXMgZXhhY3Qgb3JkZXJcbiAgICB0aGlzLmZvY3VzKCk7XG4gICAgdGhpcy5fc3VnZ2VzdGlvbkRyb3Bkb3dPcGVuLnNldChmYWxzZSk7XG4gIH1cbiAgaGFuZGxlU3VnZ2VzdGlvbkNsaWNrT3V0c2lkZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGREaXNwbGF5U3VnZ2VzdGlvbnMoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0aGlzLnZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCkpIHJldHVybjtcblxuICAgIHRoaXMuX3N1Z2dlc3Rpb25Ecm9wZG93T3Blbi5zZXQoZmFsc2UpO1xuICB9XG4gIC8vISBzdWdnZXN0aW9uIGFwcGVhcmFuY2VcbiAgcmVhZG9ubHkgZHJvcGRvd25BcHBlYXJhbmNlID0gaW5wdXQ8TnVsbGFibGU8RHJvcGRvd25QYW5lbEFwcGVhcmFuY2U+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBkcm9wZG93bkFwcGVhcmFuY2VPckRlZmF1bHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZHJvcGRvd25BcHBlYXJhbmNlKCkpIHJldHVybiB0aGlzLmRyb3Bkb3duQXBwZWFyYW5jZSgpITtcbiAgICBpZiAodGhpcy5hcHBlYXJhbmNlKCkgPT09IEZvcm1FbGVtZW50QXBwZWFyYW5jZS5PdXRsaW5lZCkgcmV0dXJuIERyb3Bkb3duUGFuZWxBcHBlYXJhbmNlLk91dGxpbmVkO1xuICAgIHJldHVybiBEcm9wZG93blBhbmVsQXBwZWFyYW5jZS5SYWlzZWQ7XG4gIH0pO1xuICByZWFkb25seSBkcm9wZG93blZhcmlhbnQgPSBpbnB1dDxOdWxsYWJsZTxEcm9wZG93blBhbmVsVmFyaWFudD4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGRyb3Bkb3duVmFyaWFudE9yRGVmYXVsdCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5kcm9wZG93blZhcmlhbnQoKSkgcmV0dXJuIHRoaXMuZHJvcGRvd25WYXJpYW50KCkhO1xuICAgIGNvbnN0IHZhcmlhbnQgPSB0aGlzLnZhcmlhbnQoKTtcbiAgICBpZiAodmFyaWFudCA9PT0gRm9ybUVsZW1lbnRWYXJpYW50LlBpbGwpIHJldHVybiBEcm9wZG93blBhbmVsVmFyaWFudC5Sb3VuZGVkO1xuICAgIHJldHVybiB2YXJpYW50O1xuICB9KTtcblxuICAvLyEgZm9jdXMgb3ZlcnJpZGVcbiAgb3ZlcnJpZGUgb25Gb2N1cyhldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX3N1Z2dlc3Rpb25Ecm9wZG93T3Blbi5zZXQodHJ1ZSk7XG4gICAgaWYgKCF0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLmhpZ2hsaWdodGVkSXRlbSgpKSB0aGlzLnN1Z2dlc3Rpb25TdG9yYWdlLmhpZ2hsaWdodEZpcnN0SXRlbSgpO1xuXG4gICAgc3VwZXIub25Gb2N1cyhldmVudCk7XG4gIH1cblxuICAvLyEga2V5IHByZXNzIGhhbmRsZXJzXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICBjYXNlICdFbnRlcic6IHtcbiAgICAgICAgdGhpcy5fb25UYWJPckVudGVyUHJlc3MoZXZlbnQpO1xuICAgICAgICB0aGlzLl9vbkVudGVyUHJlc3MoZXZlbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjYXNlICdUYWInOiB7XG4gICAgICAgIHRoaXMuX29uVGFiT3JFbnRlclByZXNzKGV2ZW50KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FzZSAnQXJyb3dEb3duJzoge1xuICAgICAgICB0aGlzLl9vbkFycm93RG93blByZXNzKGV2ZW50KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FzZSAnQXJyb3dVcCc6IHtcbiAgICAgICAgdGhpcy5fb25BcnJvd1VwUHJlc3MoZXZlbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBfb25UYWJPckVudGVyUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkRGlzcGxheUF1dG9jb21wbGV0ZSgpKSByZXR1cm47XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIHRoaXMub25JbnB1dCh0aGlzLmF1dG9jb21wbGV0ZSgpID8/ICcnKTtcbiAgICB0aGlzLmFjY2VwdEF1dG9jb21wbGV0ZUV2ZW50LmVtaXQoKTtcbiAgfVxuICBwcml2YXRlIF9vbkVudGVyUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkRGlzcGxheVN1Z2dlc3Rpb25zKCkpIHJldHVybjtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5zdWdnZXN0aW9uU3RvcmFnZS5oaWdobGlnaHRlZEl0ZW0oKTtcbiAgICBpZiAoIWl0ZW0pIHJldHVybjtcblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5fc2VsZWN0U3VnZ2VzdGlvbihpdGVtKTtcbiAgfVxuICBwcml2YXRlIF9vbkFycm93RG93blByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZERpc3BsYXlTdWdnZXN0aW9ucygpKSByZXR1cm47XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIHRoaXMuX2lzTW91c2VCZWluZ1VzZWQgPSBmYWxzZTtcblxuICAgIHRoaXMuc3VnZ2VzdGlvblN0b3JhZ2UuaGlnaGxpZ2h0TmV4dEl0ZW0oKzEpO1xuICB9XG4gIHByaXZhdGUgX29uQXJyb3dVcFByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3VsZERpc3BsYXlTdWdnZXN0aW9ucygpKSByZXR1cm47XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIHRoaXMuX2lzTW91c2VCZWluZ1VzZWQgPSBmYWxzZTtcblxuICAgIHRoaXMuc3VnZ2VzdGlvblN0b3JhZ2UuaGlnaGxpZ2h0TmV4dEl0ZW0oLTEpO1xuICB9XG59XG4iLCI8YXJkLWZvcm0tZmllbGQtZnJhbWVcbiAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZSgpXCJcbiAgW3ZhcmlhbnRdPVwidmFyaWFudCgpXCJcbiAgW2NvbXBhY3RdPVwiY29tcGFjdCgpXCJcbiAgW2lzRm9jdXNlZF09XCJpc0ZvY3VzZWRcIlxuICBbcHJlZml4VGVtcGxhdGVdPVwicHJlZml4VGVtcGxhdGUoKT8udGVtcGxhdGVcIlxuICBbc3VmZml4VGVtcGxhdGVdPVwic3VmZml4VGVtcGxhdGUoKT8udGVtcGxhdGVcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJhcmQtaW5wdXRcIlxuICAgICNzdWdnZXN0aW9uc0hvc3RcbiAgICBbbmdDbGFzc109XCJuZ0NsYXNzZXMoKVwiXG4gICAgW2NsYXNzLmFyZC1oYXMtdmFsdWVdPVwidmFsdWVcIlxuICAgIChjbGljayk9XCJmb2N1cygpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJhcmQtaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICBAaWYgKHNob3VsZERpc3BsYXlBdXRvY29tcGxldGUoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWF1dG9jb21wbGV0ZVwiPnt7IGF1dG9jb21wbGV0ZSgpIH19PC9kaXY+XG4gICAgICB9XG4gICAgICBAaWYgKHNob3VsZERpc3BsYXlQbGFjZWhvbGRlcigpKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFBsYWNlaG9sZGVyVGVtcGxhdGU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyKCkgfX08L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicGxhY2Vob2xkZXJUZW1wbGF0ZSgpPy50ZW1wbGF0ZSB8fCBkZWZhdWx0UGxhY2Vob2xkZXJUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICB9XG4gICAgICA8aW5wdXRcbiAgICAgICAgI3RleHRJbnB1dFxuICAgICAgICAjZm9jdXNhYmxlRWxlbWVudFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFthdHRyLmlkXT1cImlucHV0SWQoKVwiXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQodGV4dElucHV0LnZhbHVlKVwiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgICAgIChjb3B5KT1cIm9uQ29weSgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKHNob3VsZFNob3dDbGVhckJ1dHRvbigpKSB7XG4gICAgICA8YXJkLWNsZWFyLWJ1dHRvblxuICAgICAgICBbdGl0bGVdPVwiY2xlYXJCdXR0b25UaXRsZSgpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXJCdXR0b25DbGljaygkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgfVxuICA8L2Rpdj5cbjwvYXJkLWZvcm0tZmllbGQtZnJhbWU+XG5cbjxuZy10ZW1wbGF0ZSAjc3VnZ2VzdGlvbnNUZW1wbGF0ZT5cbiAgPGFyZC1kcm9wZG93bi1wYW5lbFxuICAgIGNsYXNzPVwiYXJkLWRyb3Bkb3duLXBhbmVsIGFyZC1pbnB1dC1zdWdnZXN0aW9ucy1wYW5lbFwiXG4gICAgcm9sZT1cImxpc3Rib3hcIlxuICAgIFtjb21wYWN0XT1cImNvbXBhY3RcIlxuICAgIGFyaWEtbGFiZWw9XCJTdWdnZXN0aW9uc1wiXG4gICAgW2FwcGVhcmFuY2VdPVwiZHJvcGRvd25BcHBlYXJhbmNlT3JEZWZhdWx0KClcIlxuICAgIFt2YXJpYW50XT1cImRyb3Bkb3duVmFyaWFudE9yRGVmYXVsdCgpXCJcbiAgICBbaXNPcGVuXT1cInNob3VsZERpc3BsYXlTdWdnZXN0aW9ucygpXCJcbiAgICAoYXJkQ2xpY2tPdXRzaWRlKT1cImhhbmRsZVN1Z2dlc3Rpb25DbGlja091dHNpZGUoJGV2ZW50KVwiXG4gICAgKG1vdXNlbW92ZSk9XCJvbk1vdXNlTW92ZSgpXCJcbiAgPlxuICAgIEBmb3IgKGl0ZW0gb2Ygc3VnZ2VzdGlvbkl0ZW1zKCk7IHRyYWNrIGl0ZW0uaW5kZXgpIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJhcmQtb3B0aW9uXCJcbiAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgIFtjbGFzcy5hcmQtb3B0aW9uLXNlbGVjdGVkXT1cIml0ZW0uc2VsZWN0ZWQoKVwiXG4gICAgICAgIFtjbGFzcy5hcmQtb3B0aW9uLWhpZ2hsaWdodGVkXT1cIml0ZW0uaGlnaGxpZ2h0ZWQoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXRlbS5zZWxlY3RlZCgpXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdFN1Z2dlc3Rpb24oaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cIm9uU3VnZ2VzdGlvbk1vdXNlRW50ZXIoaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cIm9uU3VnZ2VzdGlvbk1vdXNlTGVhdmUoaXRlbSwgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXJkLW9wdGlvbi1sYWJlbFwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdE9wdGlvblRlbXBsYXRlPlxuICAgICAgICAgICAge3sgaXRlbS5sYWJlbCgpIH19XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwic3VnZ2VzdGlvblRlbXBsYXRlKCk/LnRlbXBsYXRlIHx8IGRlZmF1bHRPcHRpb25UZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0T3B0aW9uQ29udGV4dChpdGVtKVwiXG4gICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKGFyZVN1Z2dlc3Rpb25zTG9hZGluZygpKSB7XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMb2FkaW5nUGxhY2Vob2xkZXJUZW1wbGF0ZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1vcHRpb24gYXJkLW9wdGlvbi1kaXNhYmxlZFwiPnt7IHN1Z2dlc3Rpb25zTG9hZGluZ1RleHQoKSB9fTwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInN1Z2dlc3Rpb25Mb2FkaW5nVGVtcGxhdGUoKT8udGVtcGxhdGUgfHwgZGVmYXVsdExvYWRpbmdQbGFjZWhvbGRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gIDwvYXJkLWRyb3Bkb3duLXBhbmVsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Directive } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export class
|
|
3
|
+
export class ArdInputSuggestionTemplateDirective {
|
|
4
4
|
constructor(template) {
|
|
5
5
|
this.template = template;
|
|
6
6
|
}
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type:
|
|
8
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type:
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdInputSuggestionTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: ArdInputSuggestionTemplateDirective, selector: "ard-input > ng-template[ard-suggestion-tmp]", ngImport: i0 }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type:
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdInputSuggestionTemplateDirective, decorators: [{
|
|
11
11
|
type: Directive,
|
|
12
12
|
args: [{ selector: 'ard-input > ng-template[ard-suggestion-tmp]' }]
|
|
13
13
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
55
55
|
type: Directive,
|
|
56
56
|
args: [{ selector: 'ard-input > ng-template[ard-suffix-tmp]' }]
|
|
57
57
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL2lucHV0L2lucHV0LmRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFJdkQsTUFBTSxPQUFPLG1DQUFtQztJQUM5QyxZQUFtQixRQUE0RDtRQUE1RCxhQUFRLEdBQVIsUUFBUSxDQUFvRDtJQUFHLENBQUM7OEdBRHhFLG1DQUFtQztrR0FBbkMsbUNBQW1DOzsyRkFBbkMsbUNBQW1DO2tCQUQvQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLDZDQUE2QyxFQUFFOztBQU10RSxNQUFNLE9BQU8sb0NBQW9DO0lBQy9DLFlBQW1CLFFBQWdDO1FBQWhDLGFBQVEsR0FBUixRQUFRLENBQXdCO0lBQUcsQ0FBQzs4R0FENUMsb0NBQW9DO2tHQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBRGhELFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsOENBQThDLEVBQUU7O0FBTXZFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDM0MsWUFBbUIsUUFBZ0M7UUFBaEMsYUFBUSxHQUFSLFFBQVEsQ0FBd0I7SUFBRyxDQUFDOzhHQUQ1QyxnQ0FBZ0M7a0dBQWhDLGdDQUFnQzs7MkZBQWhDLGdDQUFnQztrQkFENUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwwQ0FBMEMsRUFBRTs7QUFNbkUsTUFBTSxPQUFPLCtCQUErQjtJQUMxQyxZQUFtQixRQUFnQztRQUFoQyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtJQUFHLENBQUM7OEdBRDVDLCtCQUErQjtrR0FBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUQzQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHlDQUF5QyxFQUFFOztBQU1sRSxNQUFNLE9BQU8sK0JBQStCO0lBQzFDLFlBQW1CLFFBQWdDO1FBQWhDLGFBQVEsR0FBUixRQUFRLENBQXdCO0lBQUcsQ0FBQzs4R0FENUMsK0JBQStCO2tHQUEvQiwrQkFBK0I7OzJGQUEvQiwrQkFBK0I7a0JBRDNDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUseUNBQXlDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtLCBPcHRpb25Db250ZXh0IH0gZnJvbSAnLi4vLi4vdHlwZXMvaXRlbS1zdG9yYWdlLnR5cGVzJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLWlucHV0ID4gbmctdGVtcGxhdGVbYXJkLXN1Z2dlc3Rpb24tdG1wXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRJbnB1dFN1Z2dlc3Rpb25UZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8T3B0aW9uQ29udGV4dDxBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtPj4pIHt9XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2FyZC1pbnB1dCA+IG5nLXRlbXBsYXRlW2FyZC1wbGFjZWhvbGRlci10bXBdJyB9KVxuZXhwb3J0IGNsYXNzIEFyZElucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5kZWZpbmVkPikge31cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLWlucHV0ID4gbmctdGVtcGxhdGVbYXJkLWxvYWRpbmctdG1wXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRJbnB1dExvYWRpbmdUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5kZWZpbmVkPikge31cbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLWlucHV0ID4gbmctdGVtcGxhdGVbYXJkLXByZWZpeC10bXBdJyB9KVxuZXhwb3J0IGNsYXNzIEFyZElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVuZGVmaW5lZD4pIHt9XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2FyZC1pbnB1dCA+IG5nLXRlbXBsYXRlW2FyZC1zdWZmaXgtdG1wXScgfSlcbmV4cG9ydCBjbGFzcyBBcmRJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmRlZmluZWQ+KSB7fVxufVxuIl19
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
3
|
import { ArdiumClickOutsideEventModule } from '@ardium-ui/devkit';
|
|
4
|
+
import { _ClearButtonModule } from '../../_internal/clear-button/clear-button.module';
|
|
4
5
|
import { ArdiumDropdownPanelModule } from '../../dropdown-panel/dropdown-panel.module';
|
|
5
6
|
import { ArdiumFormFieldFrameModule } from '../../form-field-frame/form-field-frame.module';
|
|
6
|
-
import { _ClearButtonModule } from '../../_internal/clear-button/clear-button.module';
|
|
7
7
|
import { ArdiumInputComponent } from './input.component';
|
|
8
|
-
import { ArdInputLoadingTemplateDirective, ArdInputPlaceholderTemplateDirective, ArdInputPrefixTemplateDirective, ArdInputSuffixTemplateDirective,
|
|
8
|
+
import { ArdInputLoadingTemplateDirective, ArdInputPlaceholderTemplateDirective, ArdInputPrefixTemplateDirective, ArdInputSuffixTemplateDirective, ArdInputSuggestionTemplateDirective, } from './input.directives';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export class ArdiumInputModule {
|
|
11
11
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
12
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: ArdiumInputModule, declarations: [ArdiumInputComponent,
|
|
13
|
-
|
|
13
|
+
ArdInputSuggestionTemplateDirective,
|
|
14
14
|
ArdInputPlaceholderTemplateDirective,
|
|
15
15
|
ArdInputLoadingTemplateDirective,
|
|
16
16
|
ArdInputPrefixTemplateDirective,
|
|
@@ -19,7 +19,7 @@ export class ArdiumInputModule {
|
|
|
19
19
|
_ClearButtonModule,
|
|
20
20
|
ArdiumDropdownPanelModule,
|
|
21
21
|
ArdiumClickOutsideEventModule], exports: [ArdiumInputComponent,
|
|
22
|
-
|
|
22
|
+
ArdInputSuggestionTemplateDirective,
|
|
23
23
|
ArdInputPlaceholderTemplateDirective,
|
|
24
24
|
ArdInputLoadingTemplateDirective,
|
|
25
25
|
ArdInputPrefixTemplateDirective,
|
|
@@ -35,7 +35,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
35
35
|
args: [{
|
|
36
36
|
declarations: [
|
|
37
37
|
ArdiumInputComponent,
|
|
38
|
-
|
|
38
|
+
ArdInputSuggestionTemplateDirective,
|
|
39
39
|
ArdInputPlaceholderTemplateDirective,
|
|
40
40
|
ArdInputLoadingTemplateDirective,
|
|
41
41
|
ArdInputPrefixTemplateDirective,
|
|
@@ -50,7 +50,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
50
50
|
],
|
|
51
51
|
exports: [
|
|
52
52
|
ArdiumInputComponent,
|
|
53
|
-
|
|
53
|
+
ArdInputSuggestionTemplateDirective,
|
|
54
54
|
ArdInputPlaceholderTemplateDirective,
|
|
55
55
|
ArdInputLoadingTemplateDirective,
|
|
56
56
|
ArdInputPrefixTemplateDirective,
|
|
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
58
58
|
],
|
|
59
59
|
}]
|
|
60
60
|
}] });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvaW5wdXQvaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sRUFDSCxnQ0FBZ0MsRUFDaEMsb0NBQW9DLEVBQ3BDLCtCQUErQixFQUMvQiwrQkFBK0IsRUFDL0IsbUNBQW1DLEdBQ3RDLE1BQU0sb0JBQW9CLENBQUM7O0FBMkI1QixNQUFNLE9BQU8saUJBQWlCOzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkF2QjFCLG9CQUFvQjtZQUNwQixtQ0FBbUM7WUFDbkMsb0NBQW9DO1lBQ3BDLGdDQUFnQztZQUNoQywrQkFBK0I7WUFDL0IsK0JBQStCLGFBRy9CLFlBQVk7WUFDWiwwQkFBMEI7WUFDMUIsa0JBQWtCO1lBQ2xCLHlCQUF5QjtZQUN6Qiw2QkFBNkIsYUFHN0Isb0JBQW9CO1lBQ3BCLG1DQUFtQztZQUNuQyxvQ0FBb0M7WUFDcEMsZ0NBQWdDO1lBQ2hDLCtCQUErQjtZQUMvQiwrQkFBK0I7K0dBR3RCLGlCQUFpQixZQWYxQixZQUFZO1lBQ1osMEJBQTBCO1lBQzFCLGtCQUFrQjtZQUNsQix5QkFBeUI7WUFDekIsNkJBQTZCOzsyRkFXcEIsaUJBQWlCO2tCQXpCN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osb0JBQW9CO3dCQUNwQixtQ0FBbUM7d0JBQ25DLG9DQUFvQzt3QkFDcEMsZ0NBQWdDO3dCQUNoQywrQkFBK0I7d0JBQy9CLCtCQUErQjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osMEJBQTBCO3dCQUMxQixrQkFBa0I7d0JBQ2xCLHlCQUF5Qjt3QkFDekIsNkJBQTZCO3FCQUM5QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asb0JBQW9CO3dCQUNwQixtQ0FBbUM7d0JBQ25DLG9DQUFvQzt3QkFDcEMsZ0NBQWdDO3dCQUNoQywrQkFBK0I7d0JBQy9CLCtCQUErQjtxQkFDaEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFyZGl1bUNsaWNrT3V0c2lkZUV2ZW50TW9kdWxlIH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xuaW1wb3J0IHsgX0NsZWFyQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vX2ludGVybmFsL2NsZWFyLWJ1dHRvbi9jbGVhci1idXR0b24ubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bURyb3Bkb3duUGFuZWxNb2R1bGUgfSBmcm9tICcuLi8uLi9kcm9wZG93bi1wYW5lbC9kcm9wZG93bi1wYW5lbC5tb2R1bGUnO1xuaW1wb3J0IHsgQXJkaXVtRm9ybUZpZWxkRnJhbWVNb2R1bGUgfSBmcm9tICcuLi8uLi9mb3JtLWZpZWxkLWZyYW1lL2Zvcm0tZmllbGQtZnJhbWUubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBBcmRJbnB1dExvYWRpbmdUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkSW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIEFyZElucHV0U3VnZ2VzdGlvblRlbXBsYXRlRGlyZWN0aXZlLFxufSBmcm9tICcuL2lucHV0LmRpcmVjdGl2ZXMnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBcmRpdW1JbnB1dENvbXBvbmVudCxcbiAgICBBcmRJbnB1dFN1Z2dlc3Rpb25UZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkSW5wdXRMb2FkaW5nVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkSW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRJbnB1dFN1ZmZpeFRlbXBsYXRlRGlyZWN0aXZlLFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFyZGl1bUZvcm1GaWVsZEZyYW1lTW9kdWxlLFxuICAgIF9DbGVhckJ1dHRvbk1vZHVsZSxcbiAgICBBcmRpdW1Ecm9wZG93blBhbmVsTW9kdWxlLFxuICAgIEFyZGl1bUNsaWNrT3V0c2lkZUV2ZW50TW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQXJkaXVtSW5wdXRDb21wb25lbnQsXG4gICAgQXJkSW5wdXRTdWdnZXN0aW9uVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkSW5wdXRQbGFjZWhvbGRlclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIEFyZElucHV0TG9hZGluZ1RlbXBsYXRlRGlyZWN0aXZlLFxuICAgIEFyZElucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkSW5wdXRTdWZmaXhUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtSW5wdXRNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, forwardRef, Inject, ViewEncapsulation } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, contentChild, forwardRef, Inject, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { _SimpleInputComponentBase } from '../_simple-input-base';
|
|
4
4
|
import { ARD_SIMPLE_INPUT_DEFAULTS } from './simple-input.defaults';
|
|
5
|
+
import { ArdSimpleInputPlaceholderTemplateDirective, ArdSimpleInputPrefixTemplateDirective, ArdSimpleInputSuffixTemplateDirective, } from './simple-input.directives';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "@angular/common";
|
|
7
8
|
import * as i2 from "../../_internal/clear-button/clear-button.component";
|
|
@@ -9,6 +10,11 @@ import * as i3 from "../../form-field-frame/form-field-frame.component";
|
|
|
9
10
|
export class ArdiumSimpleInputComponent extends _SimpleInputComponentBase {
|
|
10
11
|
constructor(defaults) {
|
|
11
12
|
super(defaults);
|
|
13
|
+
//! prefix & suffix
|
|
14
|
+
this.prefixTemplate = contentChild(ArdSimpleInputPrefixTemplateDirective);
|
|
15
|
+
this.suffixTemplate = contentChild(ArdSimpleInputSuffixTemplateDirective);
|
|
16
|
+
//! placeholder
|
|
17
|
+
this.placeholderTemplate = contentChild(ArdSimpleInputPlaceholderTemplateDirective);
|
|
12
18
|
}
|
|
13
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumSimpleInputComponent, deps: [{ token: ARD_SIMPLE_INPUT_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
20
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: ArdiumSimpleInputComponent, selector: "ard-simple-input", providers: [
|
|
@@ -17,7 +23,7 @@ export class ArdiumSimpleInputComponent extends _SimpleInputComponentBase {
|
|
|
17
23
|
useExisting: forwardRef(() => ArdiumSimpleInputComponent),
|
|
18
24
|
multi: true,
|
|
19
25
|
},
|
|
20
|
-
], usesInheritance: true, ngImport: i0, template: "<ard-form-field-frame\n [appearance]=\"appearance()\"\n [variant]=\"variant()\"\n [compact]=\"compact\"\n [isFocused]=\"isFocused\"\n [prefixTemplate]=\"prefixTemplate()?.template\"\n [suffixTemplate]=\"suffixTemplate()?.template\"\n>\n <div\n class=\"ard-simple-input\"\n [ngClass]=\"ngClasses()\"\n [class.ard-has-value]=\"value\"\n (click)=\"focus()\"\n >\n <div class=\"ard-input-container\">\n @if (shouldDisplayPlaceholder()) {\n <ng-template #defaultPlaceholderTemplate>\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\n </ng-template>\n\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\n }\n\n <input\n #textInput\n #focusableElement\n type=\"text\"\n [attr.id]=\"inputId()\"\n [attr.tabindex]=\"tabIndex()\"\n [readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n (input)=\"onInput(textInput.value)\"\n (focus)=\"onFocusMaster($event)\"\n (blur)=\"onBlurMaster($event)\"\n (change)=\"onChange($event)\"\n (copy)=\"onCopy($event)\"\n />\n </div>\n\n @if (shouldShowClearButton()) {\n <ard-clear-button\n [title]=\"clearButtonTitle()\"\n (click)=\"onClearButtonClick($event)\"\n />\n }\n </div>\n</ard-form-field-frame>\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: ["isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
26
|
+
], 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\n [appearance]=\"appearance()\"\n [variant]=\"variant()\"\n [compact]=\"compact\"\n [isFocused]=\"isFocused\"\n [prefixTemplate]=\"prefixTemplate()?.template\"\n [suffixTemplate]=\"suffixTemplate()?.template\"\n>\n <div\n class=\"ard-simple-input\"\n [ngClass]=\"ngClasses()\"\n [class.ard-has-value]=\"value\"\n (click)=\"focus()\"\n >\n <div class=\"ard-input-container\">\n @if (shouldDisplayPlaceholder()) {\n <ng-template #defaultPlaceholderTemplate>\n <div class=\"ard-placeholder\">{{ placeholder() }}</div>\n </ng-template>\n\n <ng-template [ngTemplateOutlet]=\"placeholderTemplate()?.template || defaultPlaceholderTemplate\"></ng-template>\n }\n\n <input\n #textInput\n #focusableElement\n type=\"text\"\n [attr.id]=\"inputId()\"\n [attr.tabindex]=\"tabIndex()\"\n [readonly]=\"readonly()\"\n [disabled]=\"disabled()\"\n (input)=\"onInput(textInput.value)\"\n (focus)=\"onFocusMaster($event)\"\n (blur)=\"onBlurMaster($event)\"\n (change)=\"onChange($event)\"\n (copy)=\"onCopy($event)\"\n />\n </div>\n\n @if (shouldShowClearButton()) {\n <ard-clear-button\n [title]=\"clearButtonTitle()\"\n (click)=\"onClearButtonClick($event)\"\n />\n }\n </div>\n</ard-form-field-frame>\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: ["isFocused", "appearance", "variant", "compact", "prefixTemplate", "suffixTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
21
27
|
}
|
|
22
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ArdiumSimpleInputComponent, decorators: [{
|
|
23
29
|
type: Component,
|
|
@@ -32,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
32
38
|
type: Inject,
|
|
33
39
|
args: [ARD_SIMPLE_INPUT_DEFAULTS]
|
|
34
40
|
}] }] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvaW5wdXRzL3NpbXBsZS1pbnB1dC9zaW1wbGUtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9pbnB1dHMvc2ltcGxlLWlucHV0L3NpbXBsZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBMEIsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RixPQUFPLEVBQ0wsMENBQTBDLEVBQzFDLHFDQUFxQyxFQUNyQyxxQ0FBcUMsR0FDdEMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFnQm5DLE1BQU0sT0FBTywwQkFBMkIsU0FBUSx5QkFBeUI7SUFFdkUsWUFBK0MsUUFBZ0M7UUFDN0UsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBR2xCLG1CQUFtQjtRQUNWLG1CQUFjLEdBQUcsWUFBWSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDckUsbUJBQWMsR0FBRyxZQUFZLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUU5RSxlQUFlO1FBQ04sd0JBQW1CLEdBQUcsWUFBWSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFQeEYsQ0FBQzs4R0FKVSwwQkFBMEIsa0JBRWpCLHlCQUF5QjtrR0FGbEMsMEJBQTBCLDJDQVIxQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBQ3pELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixzRUFTc0MscUNBQXFDLGlHQUNyQyxxQ0FBcUMsc0dBR2hDLDBDQUEwQyx1RkNuQ3hGLHczQ0ErQ0E7OzJGRHZCYSwwQkFBMEI7a0JBZHRDLFNBQVM7K0JBQ0Usa0JBQWtCLGlCQUdiLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7NEJBQ3pELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzswQkFJWSxNQUFNOzJCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbnRlbnRDaGlsZCwgZm9yd2FyZFJlZiwgSW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBfU2ltcGxlSW5wdXRDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vX3NpbXBsZS1pbnB1dC1iYXNlJztcbmltcG9ydCB7IEFSRF9TSU1QTEVfSU5QVVRfREVGQVVMVFMsIEFyZFNpbXBsZUlucHV0RGVmYXVsdHMgfSBmcm9tICcuL3NpbXBsZS1pbnB1dC5kZWZhdWx0cyc7XG5pbXBvcnQge1xuICBBcmRTaW1wbGVJbnB1dFBsYWNlaG9sZGVyVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZFNpbXBsZUlucHV0UHJlZml4VGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZFNpbXBsZUlucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUsXG59IGZyb20gJy4vc2ltcGxlLWlucHV0LmRpcmVjdGl2ZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcmQtc2ltcGxlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpbXBsZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpbXBsZS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcmRpdW1TaW1wbGVJbnB1dENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBcmRpdW1TaW1wbGVJbnB1dENvbXBvbmVudCBleHRlbmRzIF9TaW1wbGVJbnB1dENvbXBvbmVudEJhc2Uge1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX0RFRkFVTFRTITogQXJkU2ltcGxlSW5wdXREZWZhdWx0cztcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfU0lNUExFX0lOUFVUX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkU2ltcGxlSW5wdXREZWZhdWx0cykge1xuICAgIHN1cGVyKGRlZmF1bHRzKTtcbiAgfVxuXG4gIC8vISBwcmVmaXggJiBzdWZmaXhcbiAgcmVhZG9ubHkgcHJlZml4VGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoQXJkU2ltcGxlSW5wdXRQcmVmaXhUZW1wbGF0ZURpcmVjdGl2ZSk7XG4gIHJlYWRvbmx5IHN1ZmZpeFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZFNpbXBsZUlucHV0U3VmZml4VGVtcGxhdGVEaXJlY3RpdmUpO1xuXG4gIC8vISBwbGFjZWhvbGRlclxuICByZWFkb25seSBwbGFjZWhvbGRlclRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZFNpbXBsZUlucHV0UGxhY2Vob2xkZXJUZW1wbGF0ZURpcmVjdGl2ZSk7XG59XG4iLCI8YXJkLWZvcm0tZmllbGQtZnJhbWVcbiAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZSgpXCJcbiAgW3ZhcmlhbnRdPVwidmFyaWFudCgpXCJcbiAgW2NvbXBhY3RdPVwiY29tcGFjdFwiXG4gIFtpc0ZvY3VzZWRdPVwiaXNGb2N1c2VkXCJcbiAgW3ByZWZpeFRlbXBsYXRlXT1cInByZWZpeFRlbXBsYXRlKCk/LnRlbXBsYXRlXCJcbiAgW3N1ZmZpeFRlbXBsYXRlXT1cInN1ZmZpeFRlbXBsYXRlKCk/LnRlbXBsYXRlXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXJkLXNpbXBsZS1pbnB1dFwiXG4gICAgW25nQ2xhc3NdPVwibmdDbGFzc2VzKClcIlxuICAgIFtjbGFzcy5hcmQtaGFzLXZhbHVlXT1cInZhbHVlXCJcbiAgICAoY2xpY2spPVwiZm9jdXMoKVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgQGlmIChzaG91bGREaXNwbGF5UGxhY2Vob2xkZXIoKSkge1xuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRQbGFjZWhvbGRlclRlbXBsYXRlPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtcGxhY2Vob2xkZXJcIj57eyBwbGFjZWhvbGRlcigpIH19PC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBsYWNlaG9sZGVyVGVtcGxhdGUoKT8udGVtcGxhdGUgfHwgZGVmYXVsdFBsYWNlaG9sZGVyVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgfVxuXG4gICAgICA8aW5wdXRcbiAgICAgICAgI3RleHRJbnB1dFxuICAgICAgICAjZm9jdXNhYmxlRWxlbWVudFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFthdHRyLmlkXT1cImlucHV0SWQoKVwiXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4KClcIlxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQodGV4dElucHV0LnZhbHVlKVwiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzTWFzdGVyKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXJNYXN0ZXIoJGV2ZW50KVwiXG4gICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChjb3B5KT1cIm9uQ29weSgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKHNob3VsZFNob3dDbGVhckJ1dHRvbigpKSB7XG4gICAgICA8YXJkLWNsZWFyLWJ1dHRvblxuICAgICAgICBbdGl0bGVdPVwiY2xlYXJCdXR0b25UaXRsZSgpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXJCdXR0b25DbGljaygkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgfVxuICA8L2Rpdj5cbjwvYXJkLWZvcm0tZmllbGQtZnJhbWU+XG4iXX0=
|