@seniorsistemas/angular-components 19.9.11 → 19.9.12-develop-18460917
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/dynamic-form/dynamic-form/form-field/addon-config.d.ts +12 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.d.ts +5 -0
- package/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.d.ts +0 -1
- package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +1 -0
- package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -0
- package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +1 -0
- package/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.d.ts +4 -0
- package/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.d.ts +1 -0
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +2 -2
- package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +3 -3
- package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/addon-config.mjs +29 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +8 -7
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +6 -5
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +8 -7
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +14 -5
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +8 -7
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +3 -3
- package/esm2022/input-group/lib/input-group/input-group.component.mjs +37 -0
- package/esm2022/input-group/lib/input-group/input-group.module.mjs +16 -0
- package/esm2022/input-group/lib/input-group/types/input-group-addon.mjs +2 -0
- package/esm2022/input-group/public-api.mjs +3 -0
- package/esm2022/input-group/seniorsistemas-angular-components-input-group.mjs +5 -0
- package/esm2022/select/lib/select/select.component.mjs +3 -3
- package/esm2022/text-area/lib/text-area/text-area.component.mjs +21 -6
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-datepicker.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-datepicker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +62 -22
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-input-group.mjs +57 -0
- package/fesm2022/seniorsistemas-angular-components-input-group.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-select.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +20 -5
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/input-group/README.md +106 -0
- package/input-group/index.d.ts +5 -0
- package/input-group/lib/input-group/input-group.component.d.ts +27 -0
- package/input-group/lib/input-group/input-group.module.d.ts +7 -0
- package/input-group/lib/input-group/types/input-group-addon.d.ts +10 -0
- package/input-group/package.json +3 -0
- package/input-group/public-api.d.ts +3 -0
- package/package.json +7 -1
- package/styles.css +1 -0
- package/text-area/lib/text-area/text-area.component.d.ts +12 -3
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { ButtonPriority } from "@seniorsistemas/angular-components/button";
|
|
2
|
+
import { InputGroupAddon } from "@seniorsistemas/angular-components/input-group";
|
|
3
|
+
import { FormFieldUtilsService } from "../services/form-field-utils.service";
|
|
2
4
|
export interface AddonConfig {
|
|
3
5
|
label?: string;
|
|
4
6
|
icon?: string;
|
|
5
7
|
callback?: VoidFunction;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Não tem mais efeito: os addons são renderizados pelo `s-input-group`, que não possui prioridade.
|
|
10
|
+
*/
|
|
6
11
|
priority?: ButtonPriority;
|
|
7
12
|
disabled?: (() => boolean) | boolean;
|
|
8
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Cria uma função que converte um `AddonConfig` em `InputGroupAddon`, reaproveitando o mesmo objeto
|
|
16
|
+
* enquanto o `AddonConfig` for o mesmo (evita reatribuir o input do `s-input-group` a cada ciclo de detecção).
|
|
17
|
+
*
|
|
18
|
+
* O addon fica desabilitado quando o próprio `disabled` do addon for verdadeiro ou quando o form control estiver desabilitado.
|
|
19
|
+
*/
|
|
20
|
+
export declare function createAddonResolver(fieldUtils: FormFieldUtilsService, isFormDisabled: () => boolean): (addon: AddonConfig | undefined) => InputGroupAddon | undefined;
|
|
@@ -46,6 +46,11 @@ export interface TextAreaFieldConfig extends FieldConfig {
|
|
|
46
46
|
* Número máximo de caracteres permitidos no campo.
|
|
47
47
|
*/
|
|
48
48
|
maxLength?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Id do(s) elemento(s) que descrevem o campo (ex.: texto de ajuda).
|
|
51
|
+
* Encaminhado como `aria-describedby` ao `<textarea>` interno.
|
|
52
|
+
*/
|
|
53
|
+
ariaDescribedBy?: string;
|
|
49
54
|
}
|
|
50
55
|
declare module './field' {
|
|
51
56
|
interface FieldTypeMap {
|
|
@@ -19,7 +19,6 @@ export interface TextFieldConfig extends FieldConfig {
|
|
|
19
19
|
/**
|
|
20
20
|
* Máscara de entrada aplicada ao campo. Pode ser uma string fixa ou uma função que retorna a máscara dinamicamente.
|
|
21
21
|
* Exemplo de máscara: `'999.999.999-99'` (CPF), `'(99) 99999-9999'` (telefone).
|
|
22
|
-
* Quando definida, `leftAddon` e `rightAddon` não funcionam.
|
|
23
22
|
*/
|
|
24
23
|
mask?: stringFn | string;
|
|
25
24
|
/**
|
package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare class BignumberFieldComponent implements OnInit, AfterViewInit, O
|
|
|
11
11
|
field: import("@angular/core").InputSignal<BignumberFieldConfig | NumberFieldConfig>;
|
|
12
12
|
formControl: import("@angular/core").InputSignal<FormControl<any>>;
|
|
13
13
|
fieldUtils: FormFieldUtilsService;
|
|
14
|
+
protected readonly toAddon: (addon: import("../../addon-config").AddonConfig | undefined) => import("@seniorsistemas/angular-components/input-group").InputGroupAddon | undefined;
|
|
14
15
|
onInput: EventEmitter<any>;
|
|
15
16
|
onFocus: EventEmitter<any>;
|
|
16
17
|
onComplete: EventEmitter<any>;
|
|
@@ -653,6 +653,7 @@ export declare class CurrencyFieldComponent implements BaseFieldComponentConfig,
|
|
|
653
653
|
};
|
|
654
654
|
};
|
|
655
655
|
mask?: string;
|
|
656
|
+
protected readonly isFormDisabled: () => boolean;
|
|
656
657
|
inputRef: import("@angular/core").Signal<any>;
|
|
657
658
|
ngOnInit(): void;
|
|
658
659
|
ngAfterViewInit(): void;
|
|
@@ -12,6 +12,7 @@ export declare class NumberFieldComponent implements OnInit, OnDestroy, BaseFiel
|
|
|
12
12
|
field: import("@angular/core").InputSignal<NumberFieldConfig>;
|
|
13
13
|
formControl: import("@angular/core").InputSignal<FormControl<any>>;
|
|
14
14
|
fieldUtils: FormFieldUtilsService;
|
|
15
|
+
protected readonly toAddon: (addon: import("../../addon-config").AddonConfig | undefined) => import("@seniorsistemas/angular-components/input-group").InputGroupAddon | undefined;
|
|
15
16
|
onInput: EventEmitter<any>;
|
|
16
17
|
onFocus: EventEmitter<any>;
|
|
17
18
|
onComplete: EventEmitter<any>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { InputGroupAddon } from '@seniorsistemas/angular-components/input-group';
|
|
3
4
|
import { PasswordFieldConfig } from '../../configurations/fields/password-field';
|
|
4
5
|
import { BaseFieldComponentConfig } from '../base-field-component';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
@@ -13,10 +14,13 @@ export declare class PasswordFieldComponent implements OnInit, AfterViewInit, On
|
|
|
13
14
|
inputRef: ElementRef | null;
|
|
14
15
|
private ngUnsubscribe;
|
|
15
16
|
passwordVisible: boolean;
|
|
17
|
+
protected readonly showPasswordAddon: InputGroupAddon;
|
|
18
|
+
protected readonly hidePasswordAddon: InputGroupAddon;
|
|
16
19
|
private readonly formUtils;
|
|
17
20
|
ngOnInit(): void;
|
|
18
21
|
ngOnDestroy(): void;
|
|
19
22
|
onChangeVisible(): void;
|
|
23
|
+
private createToggleAddon;
|
|
20
24
|
ngAfterViewInit(): void;
|
|
21
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<PasswordFieldComponent, never>;
|
|
22
26
|
static ɵcmp: i0.ɵɵComponentDeclaration<PasswordFieldComponent, "ng-component", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "formControl": { "alias": "formControl"; "required": true; "isSignal": true; }; }, { "onInput": "onInput"; "onFocus": "onFocus"; "onComplete": "onComplete"; }, never, never, true, never>;
|
|
@@ -9,6 +9,7 @@ export declare class TextFieldComponent implements OnInit, AfterViewInit, OnDest
|
|
|
9
9
|
field: import("@angular/core").InputSignal<TextFieldConfig>;
|
|
10
10
|
formControl: import("@angular/core").InputSignal<FormControl<any>>;
|
|
11
11
|
fieldUtils: FormFieldUtilsService;
|
|
12
|
+
protected readonly toAddon: (addon: import("../../addon-config").AddonConfig | undefined) => import("@seniorsistemas/angular-components/input-group").InputGroupAddon | undefined;
|
|
12
13
|
onInput: EventEmitter<any>;
|
|
13
14
|
onFocus: EventEmitter<any>;
|
|
14
15
|
onComplete: EventEmitter<any>;
|
|
@@ -151,7 +151,7 @@ export class ContentGeneratorComponent {
|
|
|
151
151
|
removalVersion: '20.0.0',
|
|
152
152
|
},
|
|
153
153
|
},
|
|
154
|
-
], viewQueries: [{ propertyName: "textArea", first: true, predicate: ["textAreaElement"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.DeprecatedSelectorDirective }], ngImport: i0, template: "<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<s-dialog\n [(visible)]=\"isVisible\"\n [escapeOnEsc]=\"false\"\n [destroyClickOutside]=\"false\"\n size=\"lg\"\n (visibleChange)=\"onHideDialog()\"\n>\n <ng-template sTemplate=\"header\">\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </ng-template>\n\n <form [formGroup]=\"formGroup\">\n <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n <s-textarea\n inputId=\"context\"\n formControlName=\"context\"\n [speechRecognition]=\"speechRecognition\"\n [keepContext]=\"keepContext\"\n />\n </form>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (clicked)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n [disabled]=\"disabled()\"\n >\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n [disabled]=\"disabled()\"\n >\n </s-button>\n </div>\n </ng-template>\n</s-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n #textAreaElement\n [inputId]=\"id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [rows]=\"rows\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n [maxLength]=\"maxLength\"\n [speechRecognition]=\"speechRecognition\"\n [disabled]=\"disabled()\"\n >\n </s-textarea>\n <!--TODO: Tooltip em propriedade-->\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\"\n [disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <div style=\"width: 100%; height: 100%;\">\n <span *sSVGFactory=\"'iassist'\"></span>\n </div>\n</ng-template>\n", styles: ["s-content-generator.ng-invalid.ng-dirty .textarea-ia textarea,s-text-area-ia.ng-invalid.ng-dirty .textarea-ia textarea{border-color:#c13018}.footer-content{display:flex;flex-grow:0}.textarea-ia{display:flex;align-items:flex-end;gap:8px}.iassist-button{display:flex;justify-content:center;align-items:center;border:none;border-radius:50%;box-shadow:none;height:32px;width:32px}.iassist-button:disabled{opacity:.5}.dialog-header{display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}s-textarea{width:100%}.speech-recognition{margin-bottom:12.5px}\n"], dependencies: [{ kind: "component", type: LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading", "progressBarMode", "progressBarValue", "progressBarLabel"] }, { kind: "component", type: DialogComponent, selector: "s-dialog", inputs: ["header", "visible", "size", "contentClassName", "escapeOnEsc", "destroyClickOutside", "closeAriaLabel"], outputs: ["visibleChange"] }, { kind: "directive", type: TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TextAreaComponent_1, selector: "s-textarea", inputs: ["inputId", "rows", "speechRecognition", "keyFilter", "keepContext", "speechRecognitionPlaceholder", "maxLength", "placeholder", "inputStyle", "readOnly"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked", "tieredMenuOpened", "tieredMenuClosed"] }, { kind: "directive", type: SVGFactoryDirective, selector: "[sSVGFactory]", inputs: ["sSVGFactory"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
154
|
+
], viewQueries: [{ propertyName: "textArea", first: true, predicate: ["textAreaElement"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.DeprecatedSelectorDirective }], ngImport: i0, template: "<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<s-dialog\n [(visible)]=\"isVisible\"\n [escapeOnEsc]=\"false\"\n [destroyClickOutside]=\"false\"\n size=\"lg\"\n (visibleChange)=\"onHideDialog()\"\n>\n <ng-template sTemplate=\"header\">\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </ng-template>\n\n <form [formGroup]=\"formGroup\">\n <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n <s-textarea\n inputId=\"context\"\n formControlName=\"context\"\n [speechRecognition]=\"speechRecognition\"\n [keepContext]=\"keepContext\"\n />\n </form>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (clicked)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n [disabled]=\"disabled()\"\n >\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n [disabled]=\"disabled()\"\n >\n </s-button>\n </div>\n </ng-template>\n</s-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n #textAreaElement\n [inputId]=\"id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [rows]=\"rows\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n [maxLength]=\"maxLength\"\n [speechRecognition]=\"speechRecognition\"\n [disabled]=\"disabled()\"\n >\n </s-textarea>\n <!--TODO: Tooltip em propriedade-->\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\"\n [disabled]=\"disabled()\"\n >\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <div style=\"width: 100%; height: 100%;\">\n <span *sSVGFactory=\"'iassist'\"></span>\n </div>\n</ng-template>\n", styles: ["s-content-generator.ng-invalid.ng-dirty .textarea-ia textarea,s-text-area-ia.ng-invalid.ng-dirty .textarea-ia textarea{border-color:#c13018}.footer-content{display:flex;flex-grow:0}.textarea-ia{display:flex;align-items:flex-end;gap:8px}.iassist-button{display:flex;justify-content:center;align-items:center;border:none;border-radius:50%;box-shadow:none;height:32px;width:32px}.iassist-button:disabled{opacity:.5}.dialog-header{display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}s-textarea{width:100%}.speech-recognition{margin-bottom:12.5px}\n"], dependencies: [{ kind: "component", type: LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading", "progressBarMode", "progressBarValue", "progressBarLabel"] }, { kind: "component", type: DialogComponent, selector: "s-dialog", inputs: ["header", "visible", "size", "contentClassName", "escapeOnEsc", "destroyClickOutside", "closeAriaLabel"], outputs: ["visibleChange"] }, { kind: "directive", type: TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TextAreaComponent_1, selector: "s-textarea", inputs: ["inputId", "rows", "speechRecognition", "keyFilter", "keepContext", "speechRecognitionPlaceholder", "maxLength", "placeholder", "inputStyle", "readOnly", "ariaDescribedBy"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked", "tieredMenuOpened", "tieredMenuClosed"] }, { kind: "directive", type: SVGFactoryDirective, selector: "[sSVGFactory]", inputs: ["sSVGFactory"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
155
155
|
}
|
|
156
156
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorComponent, decorators: [{
|
|
157
157
|
type: Component,
|
|
@@ -204,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
204
204
|
}], maxLength: [{
|
|
205
205
|
type: Input
|
|
206
206
|
}] } });
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NvbnRlbnQtZ2VuZXJhdG9yL3NyYy9saWIvY29udGVudC1nZW5lcmF0b3IvY29udGVudC1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NvbnRlbnQtZ2VuZXJhdG9yL3NyYy9saWIvY29udGVudC1nZW5lcmF0b3IvY29udGVudC1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLEtBQUssRUFDTCxLQUFLLEVBRUwsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ04sTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSWhFLE9BQU8sRUFFSCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsbUJBQW1CLEdBQ3RCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFvQixhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLDJCQUEyQixHQUM5QixNQUFNLCtEQUErRCxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFFSCxpQkFBaUIsSUFBSSxtQkFBbUIsR0FDM0MsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxP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QUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7d0JBQ0Q7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsUUFBUSxFQUFFO2dDQUNOLFdBQVcsRUFBRSxnQkFBZ0I7Z0NBQzdCLFdBQVcsRUFBRSxxQkFBcUI7Z0NBQ2xDLGNBQWMsRUFBRSxRQUFROzZCQUMzQjt5QkFDSjtxQkFDSixrQkFDZSxDQUFDLDJCQUEyQixDQUFDLGlCQUM5QixpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLElBQUksV0FDUDt3QkFDTCxxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixhQUFhO3FCQUNoQjs4QkFlTSxFQUFFO3NCQURSLEtBQUs7Z0JBS0MsS0FBSztzQkFEWCxLQUFLO2dCQUtDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBS0MsTUFBTTtzQkFEWixLQUFLO2dCQUtDLFFBQVE7c0JBRGQsS0FBSztnQkFLQyxJQUFJO3NCQURWLEtBQUs7Z0JBS0MsSUFBSTtzQkFEVixLQUFLO2dCQUtDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFLQyxXQUFXO3NCQURqQixLQUFLO2dCQUtOLDRCQUE0QjtzQkFEM0IsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIERlc3Ryb3lSZWYsXHJcbiAgICBmb3J3YXJkUmVmLFxyXG4gICAgaW5wdXQsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIHZpZXdDaGlsZCxcclxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gICAgaW5qZWN0LFxyXG4gICAgc2lnbmFsLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gICAgRm9ybUJ1aWxkZXIsXHJcbiAgICBGb3JtR3JvdXAsXHJcbiAgICBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBERVBSRUNBVEVEX0NPTkZJRyxcclxuICAgIERlcHJlY2F0ZWRTZWxlY3RvckRpcmVjdGl2ZSxcclxufSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2NvbW1vbi9kZXByZWNhdGVkLXNlbGVjdG9yJztcclxuaW1wb3J0IHsgU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9zcGVlY2gtcmVjb2duaXRpb24nO1xyXG5pbXBvcnQge1xyXG4gICAgVGV4dEFyZWFDb21wb25lbnQsXHJcbiAgICBUZXh0QXJlYUNvbXBvbmVudCBhcyBUZXh0QXJlYUNvbXBvbmVudF8xLFxyXG59IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGV4dC1hcmVhJztcclxuaW1wb3J0IHsgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgSUFzc2lzdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9JQXNzaXN0L2lhc3Npc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IElBc3Npc3RSZXNwb25zZSB9IGZyb20gJy4uL3NlcnZpY2VzL0lBc3Npc3QvbW9kZWxzL2lhc3Npc3QtcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBMb2FkaW5nU3RhdGVDb21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvYWRpbmctc3RhdGUnO1xyXG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2RpYWxvZyc7XHJcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90ZW1wbGF0ZSc7XHJcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2J1dHRvbic7XHJcbmltcG9ydCB7IFNWR0ZhY3RvcnlEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2NvbW1vbic7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgw6FyZWEgZGUgdGV4dG8gY29tIGdlcmHDp8OjbyBkZSBjb250ZcO6ZG8gcG9yIGludGVsaWfDqm5jaWEgYXJ0aWZpY2lhbC5cclxuICogSW50ZWdyYS1zZSBhbyBzZXJ2acOnbyBJQXNzaXN0IHBhcmEgc3VnZXJpciBlIGNvbXBsZXRhciB0ZXh0b3MgY29tIGJhc2UgZW0gdW0gcHJvbXB0IGNvbmZpZ3Vyw6F2ZWwuXHJcbiAqIFN1cG9ydGEgcmVjb25oZWNpbWVudG8gZGUgdm96IG9wY2lvbmFsIGUgbWFudMOpbSBjb250ZXh0byBlbnRyZSBnZXJhw6fDtWVzIHF1YW5kbyBga2VlcENvbnRleHRgIMOpIGB0cnVlYC5cclxuICogSW1wbGVtZW50YSB7QGxpbmsgQ29udHJvbFZhbHVlQWNjZXNzb3J9IHBhcmEgdXNvIGVtIGZvcm11bMOhcmlvcyBBbmd1bGFyLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBodG1sXHJcbiAqIDxzLWNvbnRlbnQtZ2VuZXJhdG9yXHJcbiAqICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpY2FvXCJcclxuICogICBsYWJlbD1cIkRlc2NyacOnw6NvXCJcclxuICogICBwcm9tcHQ9XCJHZXJlIHVtYSBkZXNjcmnDp8OjbyBwYXJhIG8gcHJvZHV0b1wiXHJcbiAqICAgW3Jvd3NdPVwiNVwiXHJcbiAqICAgW3NwZWVjaFJlY29nbml0aW9uXT1cInRydWVcIiAvPlxyXG4gKiBgYGBcclxuICpcclxuICogQGNhdGVnb3J5IElucHV0c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtY29udGVudC1nZW5lcmF0b3IsIHMtdGV4dC1hcmVhLWlhJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb250ZW50LWdlbmVyYXRvci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ29udGVudEdlbmVyYXRvckNvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBERVBSRUNBVEVEX0NPTkZJRyxcclxuICAgICAgICAgICAgdXNlVmFsdWU6IHtcclxuICAgICAgICAgICAgICAgIG9sZFNlbGVjdG9yOiAncy10ZXh0LWFyZWEtaWEnLFxyXG4gICAgICAgICAgICAgICAgbmV3U2VsZWN0b3I6ICdzLWNvbnRlbnQtZ2VuZXJhdG9yJyxcclxuICAgICAgICAgICAgICAgIHJlbW92YWxWZXJzaW9uOiAnMjAuMC4wJyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxuICAgIGhvc3REaXJlY3RpdmVzOiBbRGVwcmVjYXRlZFNlbGVjdG9yRGlyZWN0aXZlXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIExvYWRpbmdTdGF0ZUNvbXBvbmVudCxcclxuICAgICAgICBEaWFsb2dDb21wb25lbnQsXHJcbiAgICAgICAgVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFRleHRBcmVhQ29tcG9uZW50XzEsXHJcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgICAgIFNWR0ZhY3RvcnlEaXJlY3RpdmUsXHJcbiAgICAgICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250ZW50R2VuZXJhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pYXNzaXN0U2VydmljZSA9IGluamVjdChJQXNzaXN0U2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtQnVpbGRlciA9IGluamVjdChGb3JtQnVpbGRlcik7XHJcbiAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UgPSBpbmplY3QoU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcblxyXG4gIGRpc2FibGVkID0gc2lnbmFsKGZhbHNlKTtcclxuXHJcbiAgICB0ZXh0QXJlYSA9IHZpZXdDaGlsZDxUZXh0QXJlYUNvbXBvbmVudD4oJ3RleHRBcmVhRWxlbWVudCcpO1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgaWQgPSAwO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gSWRlbnRpZmljYWRvciDDum5pY28gZG8gY29tcG9uZW50ZSBubyBET00uIEdlcmFkbyBhdXRvbWF0aWNhbWVudGUgc2UgbsOjbyBpbmZvcm1hZG8uICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlkID0gYENvbnRlbnRHZW5lcmF0b3JfJHtDb250ZW50R2VuZXJhdG9yQ29tcG9uZW50LmlkLS19YDtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIExhYmVsIGV4aWJpZG8gYWNpbWEgZGEgw6FyZWEgZGUgdGV4dG8uICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGxhYmVsITogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gVGV4dG8gZGUgcGxhY2Vob2xkZXIgZXhpYmlkbyBuYSDDoXJlYSBkZSB0ZXh0byBxdWFuZG8gdmF6aWEuIEBkZWZhdWx0ICcnICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluc3RydcOnw6NvIChwcm9tcHQpIGVudmlhZGEgYW8gc2VydmnDp28gZGUgSUEgcGFyYSBnZXJhciBvIGNvbnRlw7pkbyBzdWdlcmlkby4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcHJvbXB0ITogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gVG9ybmEgYSDDoXJlYSBkZSB0ZXh0byBzb21lbnRlIGxlaXR1cmEuIEBkZWZhdWx0IGZhbHNlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBOw7ptZXJvIGRlIGxpbmhhcyB2aXPDrXZlaXMgZGEgw6FyZWEgZGUgdGV4dG8uIEBkZWZhdWx0IDEwICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJvd3M6IG51bWJlciA9IDEwO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTsO6bWVybyBkZSBjb2x1bmFzIHZpc8OtdmVpcyBkYSDDoXJlYSBkZSB0ZXh0by4gQGRlZmF1bHQgMTAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29sczogbnVtYmVyID0gMTA7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBIYWJpbGl0YSBvIGJvdMOjbyBkZSByZWNvbmhlY2ltZW50byBkZSB2b3ogcGFyYSBkaXRhZG8gZGUgdGV4dG8uIEBkZWZhdWx0IGZhbHNlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNwZWVjaFJlY29nbml0aW9uID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBRdWFuZG8gYHRydWVgLCBvIGhpc3TDs3JpY28gZGUgZ2VyYcOnw7VlcyBhbnRlcmlvcmVzIMOpIGVudmlhZG8gYW8gc2VydmnDp28gZGUgSUEgY29tbyBjb250ZXh0by4gQGRlZmF1bHQgZmFsc2UgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMga2VlcENvbnRleHQgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRleHRvIGRlIHBsYWNlaG9sZGVyIGV4aWJpZG8gbm8gY2FtcG8gZGUgcmVjb25oZWNpbWVudG8gZGUgdm96LiBAZGVmYXVsdCAnJyAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXIgPSAnJztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIExpbWl0ZSBtw6F4aW1vIGRlIGNhcmFjdGVyZXMgcGVybWl0aWRvcyBuYSDDoXJlYSBkZSB0ZXh0by4gYG51bGxgIGRlc2FiaWxpdGEgbyBsaW1pdGUuIEBkZWZhdWx0IG51bGwgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBtYXhMZW5ndGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRXN0aWxvcyBDU1MgaW5saW5lIGFwbGljYWRvcyDDoCDDoXJlYSBkZSB0ZXh0byBpbnRlcm5hLiAqL1xyXG4gICAgdGV4dEFyZWFTdHlsZSA9IGlucHV0PFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbj4+KHt9KTtcclxuXHJcbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgIHB1YmxpYyBjb250ZXh0Rm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICBwdWJsaWMgaXNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgdmFsdWUgPSAnJztcclxuXHJcbiAgICBwcml2YXRlIF9vbkNoYW5nZT86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xyXG4gICAgcHJpdmF0ZSBfb25Ub3VjaGVkPzogKCkgPT4gdm9pZDtcclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlRGlhbG9nRm9ybUdyb3VwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWQuc2V0KGlzRGlzYWJsZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gb25DaGFuZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCA9IG9uVG91Y2hlZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX29uQ2hhbmdlPy4odmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzaG93RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5fb25Ub3VjaGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGlkZURpYWxvZygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkhpZGVEaWFsb2coKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNWaXNpYmxlID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2NvbnRleHQnKT8uc2V0VmFsdWUoJycpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3VibWl0Q29udGV4dCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdjb250ZXh0Jyk7XHJcbiAgICAgICAgaWYgKCFjb250ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLl9pYXNzaXN0U2VydmljZVxyXG4gICAgICAgICAgICAuYXNrSUEoY29udGV4dC52YWx1ZSwge1xyXG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuaWQsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5sYWJlbCxcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnBsYWNlaG9sZGVyLFxyXG4gICAgICAgICAgICAgICAgcHJvbXB0OiB0aGlzLnByb21wdCxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoZXJyLm1lc3NhZ2UpKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogSUFzc2lzdFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gcmVzLnRleHQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vbkNoYW5nZT8uKHRoaXMudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuaGlkZURpYWxvZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NyZWF0ZURpYWxvZ0Zvcm1Hcm91cCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgY29udGV4dDogWycnXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCI8cy1sb2FkaW5nLXN0YXRlXG4gICAgW2xvYWRpbmddPVwiaXNMb2FkaW5nXCJcbiAgICBbYmxvY2tXaW5kb3ddPVwidHJ1ZVwiXG4+XG48L3MtbG9hZGluZy1zdGF0ZT5cblxuPHMtZGlhbG9nXG4gICAgWyh2aXNpYmxlKV09XCJpc1Zpc2libGVcIlxuICAgIFtlc2NhcGVPbkVzY109XCJmYWxzZVwiXG4gICAgW2Rlc3Ryb3lDbGlja091dHNpZGVdPVwiZmFsc2VcIlxuICAgIHNpemU9XCJsZ1wiXG4gICAgKHZpc2libGVDaGFuZ2UpPVwib25IaWRlRGlhbG9nKClcIlxuPlxuICAgIDxuZy10ZW1wbGF0ZSBzVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWFzc2lzdC1pY29uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpYXNzaXN0SWNvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgSUFzc2lzdCAtIENvbnRlbnQgR2VuZXJhdG9yXG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiY29udGV4dFwiPnt7ICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuY29udGV4dCcgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICA8cy10ZXh0YXJlYVxuICAgICAgICAgICAgaW5wdXRJZD1cImNvbnRleHRcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29udGV4dFwiXG4gICAgICAgICAgICBbc3BlZWNoUmVjb2duaXRpb25dPVwic3BlZWNoUmVjb2duaXRpb25cIlxuICAgICAgICAgICAgW2tlZXBDb250ZXh0XT1cImtlZXBDb250ZXh0XCJcbiAgICAgICAgLz5cbiAgICA8L2Zvcm0+XG5cbiAgICA8bmctdGVtcGxhdGUgc1RlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItY29udGVudFwiPlxuICAgICAgICAgICAgPHMtYnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCItc3VibWl0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZ2VuZXJhdGVfdGV4dCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIChjbGlja2VkKT1cInN1Ym1pdENvbnRleHQoKVwiXG4gICAgICAgICAgICAgICAgc1Rvb2x0aXA9XCIoQUxUICsgU0hJRlQgKyBTKVwiXG4gICAgICAgICAgICAgICAgc2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3MtYnV0dG9uPlxuICAgICAgICAgICAgPHMtYnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCItY2FuY2VsLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgcHJpb3JpdHk9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5jYW5jZWwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJoaWRlRGlhbG9nKClcIlxuICAgICAgICAgICAgICAgIHNUb29sdGlwPVwiKEFMVCArIFNISUZUICsgQylcIlxuICAgICAgICAgICAgICAgIHNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9zLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvcy1kaWFsb2c+XG5cbjxkaXYgY2xhc3M9XCJ0ZXh0YXJlYS1pYVwiPlxuICAgIDxzLXRleHRhcmVhXG4gICAgICAgICN0ZXh0QXJlYUVsZW1lbnRcbiAgICAgICAgW2lucHV0SWRdPVwiaWRcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtrZWVwQ29udGV4dF09XCJrZWVwQ29udGV4dFwiXG4gICAgICAgIFtzcGVlY2hSZWNvZ25pdGlvblBsYWNlaG9sZGVyXT1cInNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXJcIlxuICAgICAgICBbbWF4TGVuZ3RoXT1cIm1heExlbmd0aFwiXG4gICAgICAgIFtzcGVlY2hSZWNvZ25pdGlvbl09XCJzcGVlY2hSZWNvZ25pdGlvblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICA+XG4gICAgPC9zLXRleHRhcmVhPlxuICAgIDwhLS1UT0RPOiBUb29sdGlwIGVtIHByb3ByaWVkYWRlLS0+XG4gICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImlhc3Npc3QtYnV0dG9uXCJcbiAgICAgICAgW2NsYXNzLnNwZWVjaC1yZWNvZ25pdGlvbl09XCJzcGVlY2hSZWNvZ25pdGlvbiAmJiBzcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UuaGFzU3VwcG9ydFNwZWVjaFJlY29nbml0aW9uXCJcbiAgICAgICAgKGNsaWNrKT1cInNob3dEaWFsb2coKVwiXG4gICAgICAgIHNUb29sdGlwPVwiSUFzc2lzdCAtIENvbnRlbnQgR2VuZXJhdG9yXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpYXNzaXN0SWNvblwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjaWFzc2lzdEljb24+XG4gICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XCI+XG4gICAgICAgIDxzcGFuICpzU1ZHRmFjdG9yeT1cIidpYXNzaXN0J1wiPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NvbnRlbnQtZ2VuZXJhdG9yL3NyYy9saWIvY29udGVudC1nZW5lcmF0b3IvY29udGVudC1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NvbnRlbnQtZ2VuZXJhdG9yL3NyYy9saWIvY29udGVudC1nZW5lcmF0b3IvY29udGVudC1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLEtBQUssRUFDTCxLQUFLLEVBRUwsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ04sTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSWhFLE9BQU8sRUFFSCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsbUJBQW1CLEdBQ3RCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFvQixhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLDJCQUEyQixHQUM5QixNQUFNLCtEQUErRCxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFFSCxpQkFBaUIsSUFBSSxtQkFBbUIsR0FDM0MsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxP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QUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7d0JBQ0Q7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsUUFBUSxFQUFFO2dDQUNOLFdBQVcsRUFBRSxnQkFBZ0I7Z0NBQzdCLFdBQVcsRUFBRSxxQkFBcUI7Z0NBQ2xDLGNBQWMsRUFBRSxRQUFROzZCQUMzQjt5QkFDSjtxQkFDSixrQkFDZSxDQUFDLDJCQUEyQixDQUFDLGlCQUM5QixpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLElBQUksV0FDUDt3QkFDTCxxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixhQUFhO3FCQUNoQjs4QkFlTSxFQUFFO3NCQURSLEtBQUs7Z0JBS0MsS0FBSztzQkFEWCxLQUFLO2dCQUtDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBS0MsTUFBTTtzQkFEWixLQUFLO2dCQUtDLFFBQVE7c0JBRGQsS0FBSztnQkFLQyxJQUFJO3NCQURWLEtBQUs7Z0JBS0MsSUFBSTtzQkFEVixLQUFLO2dCQUtDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFLQyxXQUFXO3NCQURqQixLQUFLO2dCQUtOLDRCQUE0QjtzQkFEM0IsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIERlc3Ryb3lSZWYsXHJcbiAgICBmb3J3YXJkUmVmLFxyXG4gICAgaW5wdXQsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIHZpZXdDaGlsZCxcclxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gICAgaW5qZWN0LFxyXG4gICAgc2lnbmFsLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gICAgRm9ybUJ1aWxkZXIsXHJcbiAgICBGb3JtR3JvdXAsXHJcbiAgICBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBERVBSRUNBVEVEX0NPTkZJRyxcclxuICAgIERlcHJlY2F0ZWRTZWxlY3RvckRpcmVjdGl2ZSxcclxufSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2NvbW1vbi9kZXByZWNhdGVkLXNlbGVjdG9yJztcclxuaW1wb3J0IHsgU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9zcGVlY2gtcmVjb2duaXRpb24nO1xyXG5pbXBvcnQge1xyXG4gICAgVGV4dEFyZWFDb21wb25lbnQsXHJcbiAgICBUZXh0QXJlYUNvbXBvbmVudCBhcyBUZXh0QXJlYUNvbXBvbmVudF8xLFxyXG59IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGV4dC1hcmVhJztcclxuaW1wb3J0IHsgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgSUFzc2lzdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9JQXNzaXN0L2lhc3Npc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IElBc3Npc3RSZXNwb25zZSB9IGZyb20gJy4uL3NlcnZpY2VzL0lBc3Npc3QvbW9kZWxzL2lhc3Npc3QtcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBMb2FkaW5nU3RhdGVDb21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2xvYWRpbmctc3RhdGUnO1xyXG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2RpYWxvZyc7XHJcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90ZW1wbGF0ZSc7XHJcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2J1dHRvbic7XHJcbmltcG9ydCB7IFNWR0ZhY3RvcnlEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2NvbW1vbic7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgw6FyZWEgZGUgdGV4dG8gY29tIGdlcmHDp8OjbyBkZSBjb250ZcO6ZG8gcG9yIGludGVsaWfDqm5jaWEgYXJ0aWZpY2lhbC5cclxuICogSW50ZWdyYS1zZSBhbyBzZXJ2acOnbyBJQXNzaXN0IHBhcmEgc3VnZXJpciBlIGNvbXBsZXRhciB0ZXh0b3MgY29tIGJhc2UgZW0gdW0gcHJvbXB0IGNvbmZpZ3Vyw6F2ZWwuXHJcbiAqIFN1cG9ydGEgcmVjb25oZWNpbWVudG8gZGUgdm96IG9wY2lvbmFsIGUgbWFudMOpbSBjb250ZXh0byBlbnRyZSBnZXJhw6fDtWVzIHF1YW5kbyBga2VlcENvbnRleHRgIMOpIGB0cnVlYC5cclxuICogSW1wbGVtZW50YSB7QGxpbmsgQ29udHJvbFZhbHVlQWNjZXNzb3J9IHBhcmEgdXNvIGVtIGZvcm11bMOhcmlvcyBBbmd1bGFyLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBodG1sXHJcbiAqIDxzLWNvbnRlbnQtZ2VuZXJhdG9yXHJcbiAqICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpY2FvXCJcclxuICogICBsYWJlbD1cIkRlc2NyacOnw6NvXCJcclxuICogICBwcm9tcHQ9XCJHZXJlIHVtYSBkZXNjcmnDp8OjbyBwYXJhIG8gcHJvZHV0b1wiXHJcbiAqICAgW3Jvd3NdPVwiNVwiXHJcbiAqICAgW3NwZWVjaFJlY29nbml0aW9uXT1cInRydWVcIiAvPlxyXG4gKiBgYGBcclxuICpcclxuICogQGNhdGVnb3J5IElucHV0c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtY29udGVudC1nZW5lcmF0b3IsIHMtdGV4dC1hcmVhLWlhJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb250ZW50LWdlbmVyYXRvci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ29udGVudEdlbmVyYXRvckNvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBERVBSRUNBVEVEX0NPTkZJRyxcclxuICAgICAgICAgICAgdXNlVmFsdWU6IHtcclxuICAgICAgICAgICAgICAgIG9sZFNlbGVjdG9yOiAncy10ZXh0LWFyZWEtaWEnLFxyXG4gICAgICAgICAgICAgICAgbmV3U2VsZWN0b3I6ICdzLWNvbnRlbnQtZ2VuZXJhdG9yJyxcclxuICAgICAgICAgICAgICAgIHJlbW92YWxWZXJzaW9uOiAnMjAuMC4wJyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxuICAgIGhvc3REaXJlY3RpdmVzOiBbRGVwcmVjYXRlZFNlbGVjdG9yRGlyZWN0aXZlXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIExvYWRpbmdTdGF0ZUNvbXBvbmVudCxcclxuICAgICAgICBEaWFsb2dDb21wb25lbnQsXHJcbiAgICAgICAgVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFRleHRBcmVhQ29tcG9uZW50XzEsXHJcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgICAgIFNWR0ZhY3RvcnlEaXJlY3RpdmUsXHJcbiAgICAgICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250ZW50R2VuZXJhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pYXNzaXN0U2VydmljZSA9IGluamVjdChJQXNzaXN0U2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtQnVpbGRlciA9IGluamVjdChGb3JtQnVpbGRlcik7XHJcbiAgICBzcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UgPSBpbmplY3QoU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcblxyXG4gIGRpc2FibGVkID0gc2lnbmFsKGZhbHNlKTtcclxuXHJcbiAgICB0ZXh0QXJlYSA9IHZpZXdDaGlsZDxUZXh0QXJlYUNvbXBvbmVudD4oJ3RleHRBcmVhRWxlbWVudCcpO1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgaWQgPSAwO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gSWRlbnRpZmljYWRvciDDum5pY28gZG8gY29tcG9uZW50ZSBubyBET00uIEdlcmFkbyBhdXRvbWF0aWNhbWVudGUgc2UgbsOjbyBpbmZvcm1hZG8uICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlkID0gYENvbnRlbnRHZW5lcmF0b3JfJHtDb250ZW50R2VuZXJhdG9yQ29tcG9uZW50LmlkLS19YDtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIExhYmVsIGV4aWJpZG8gYWNpbWEgZGEgw6FyZWEgZGUgdGV4dG8uICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGxhYmVsITogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gVGV4dG8gZGUgcGxhY2Vob2xkZXIgZXhpYmlkbyBuYSDDoXJlYSBkZSB0ZXh0byBxdWFuZG8gdmF6aWEuIEBkZWZhdWx0ICcnICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEluc3RydcOnw6NvIChwcm9tcHQpIGVudmlhZGEgYW8gc2VydmnDp28gZGUgSUEgcGFyYSBnZXJhciBvIGNvbnRlw7pkbyBzdWdlcmlkby4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcHJvbXB0ITogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gVG9ybmEgYSDDoXJlYSBkZSB0ZXh0byBzb21lbnRlIGxlaXR1cmEuIEBkZWZhdWx0IGZhbHNlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBOw7ptZXJvIGRlIGxpbmhhcyB2aXPDrXZlaXMgZGEgw6FyZWEgZGUgdGV4dG8uIEBkZWZhdWx0IDEwICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJvd3M6IG51bWJlciA9IDEwO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTsO6bWVybyBkZSBjb2x1bmFzIHZpc8OtdmVpcyBkYSDDoXJlYSBkZSB0ZXh0by4gQGRlZmF1bHQgMTAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29sczogbnVtYmVyID0gMTA7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBIYWJpbGl0YSBvIGJvdMOjbyBkZSByZWNvbmhlY2ltZW50byBkZSB2b3ogcGFyYSBkaXRhZG8gZGUgdGV4dG8uIEBkZWZhdWx0IGZhbHNlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNwZWVjaFJlY29nbml0aW9uID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBRdWFuZG8gYHRydWVgLCBvIGhpc3TDs3JpY28gZGUgZ2VyYcOnw7VlcyBhbnRlcmlvcmVzIMOpIGVudmlhZG8gYW8gc2VydmnDp28gZGUgSUEgY29tbyBjb250ZXh0by4gQGRlZmF1bHQgZmFsc2UgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMga2VlcENvbnRleHQgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRleHRvIGRlIHBsYWNlaG9sZGVyIGV4aWJpZG8gbm8gY2FtcG8gZGUgcmVjb25oZWNpbWVudG8gZGUgdm96LiBAZGVmYXVsdCAnJyAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXIgPSAnJztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIExpbWl0ZSBtw6F4aW1vIGRlIGNhcmFjdGVyZXMgcGVybWl0aWRvcyBuYSDDoXJlYSBkZSB0ZXh0by4gYG51bGxgIGRlc2FiaWxpdGEgbyBsaW1pdGUuIEBkZWZhdWx0IG51bGwgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBtYXhMZW5ndGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRXN0aWxvcyBDU1MgaW5saW5lIGFwbGljYWRvcyDDoCDDoXJlYSBkZSB0ZXh0byBpbnRlcm5hLiAqL1xyXG4gICAgdGV4dEFyZWFTdHlsZSA9IGlucHV0PFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbj4+KHt9KTtcclxuXHJcbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgIHB1YmxpYyBjb250ZXh0Rm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICBwdWJsaWMgaXNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgdmFsdWUgPSAnJztcclxuXHJcbiAgICBwcml2YXRlIF9vbkNoYW5nZT86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xyXG4gICAgcHJpdmF0ZSBfb25Ub3VjaGVkPzogKCkgPT4gdm9pZDtcclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlRGlhbG9nRm9ybUdyb3VwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWQuc2V0KGlzRGlzYWJsZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gb25DaGFuZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCA9IG9uVG91Y2hlZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX29uQ2hhbmdlPy4odmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzaG93RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5fb25Ub3VjaGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGlkZURpYWxvZygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkhpZGVEaWFsb2coKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNWaXNpYmxlID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2NvbnRleHQnKT8uc2V0VmFsdWUoJycpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3VibWl0Q29udGV4dCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdjb250ZXh0Jyk7XHJcbiAgICAgICAgaWYgKCFjb250ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLl9pYXNzaXN0U2VydmljZVxyXG4gICAgICAgICAgICAuYXNrSUEoY29udGV4dC52YWx1ZSwge1xyXG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuaWQsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5sYWJlbCxcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnBsYWNlaG9sZGVyLFxyXG4gICAgICAgICAgICAgICAgcHJvbXB0OiB0aGlzLnByb21wdCxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoZXJyLm1lc3NhZ2UpKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogSUFzc2lzdFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gcmVzLnRleHQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vbkNoYW5nZT8uKHRoaXMudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuaGlkZURpYWxvZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NyZWF0ZURpYWxvZ0Zvcm1Hcm91cCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgY29udGV4dDogWycnXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCI8cy1sb2FkaW5nLXN0YXRlXG4gICAgW2xvYWRpbmddPVwiaXNMb2FkaW5nXCJcbiAgICBbYmxvY2tXaW5kb3ddPVwidHJ1ZVwiXG4+XG48L3MtbG9hZGluZy1zdGF0ZT5cblxuPHMtZGlhbG9nXG4gICAgWyh2aXNpYmxlKV09XCJpc1Zpc2libGVcIlxuICAgIFtlc2NhcGVPbkVzY109XCJmYWxzZVwiXG4gICAgW2Rlc3Ryb3lDbGlja091dHNpZGVdPVwiZmFsc2VcIlxuICAgIHNpemU9XCJsZ1wiXG4gICAgKHZpc2libGVDaGFuZ2UpPVwib25IaWRlRGlhbG9nKClcIlxuPlxuICAgIDxuZy10ZW1wbGF0ZSBzVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWFzc2lzdC1pY29uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpYXNzaXN0SWNvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgSUFzc2lzdCAtIENvbnRlbnQgR2VuZXJhdG9yXG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiY29udGV4dFwiPnt7ICdwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuY29udGV4dCcgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICA8cy10ZXh0YXJlYVxuICAgICAgICAgICAgaW5wdXRJZD1cImNvbnRleHRcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29udGV4dFwiXG4gICAgICAgICAgICBbc3BlZWNoUmVjb2duaXRpb25dPVwic3BlZWNoUmVjb2duaXRpb25cIlxuICAgICAgICAgICAgW2tlZXBDb250ZXh0XT1cImtlZXBDb250ZXh0XCJcbiAgICAgICAgLz5cbiAgICA8L2Zvcm0+XG5cbiAgICA8bmctdGVtcGxhdGUgc1RlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItY29udGVudFwiPlxuICAgICAgICAgICAgPHMtYnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCItc3VibWl0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuZ2VuZXJhdGVfdGV4dCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIChjbGlja2VkKT1cInN1Ym1pdENvbnRleHQoKVwiXG4gICAgICAgICAgICAgICAgc1Rvb2x0aXA9XCIoQUxUICsgU0hJRlQgKyBTKVwiXG4gICAgICAgICAgICAgICAgc2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3MtYnV0dG9uPlxuICAgICAgICAgICAgPHMtYnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCItY2FuY2VsLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgcHJpb3JpdHk9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5jYW5jZWwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJoaWRlRGlhbG9nKClcIlxuICAgICAgICAgICAgICAgIHNUb29sdGlwPVwiKEFMVCArIFNISUZUICsgQylcIlxuICAgICAgICAgICAgICAgIHNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9zLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvcy1kaWFsb2c+XG5cbjxkaXYgY2xhc3M9XCJ0ZXh0YXJlYS1pYVwiPlxuICAgIDxzLXRleHRhcmVhXG4gICAgICAgICN0ZXh0QXJlYUVsZW1lbnRcbiAgICAgICAgW2lucHV0SWRdPVwiaWRcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtrZWVwQ29udGV4dF09XCJrZWVwQ29udGV4dFwiXG4gICAgICAgIFtzcGVlY2hSZWNvZ25pdGlvblBsYWNlaG9sZGVyXT1cInNwZWVjaFJlY29nbml0aW9uUGxhY2Vob2xkZXJcIlxuICAgICAgICBbbWF4TGVuZ3RoXT1cIm1heExlbmd0aFwiXG4gICAgICAgIFtzcGVlY2hSZWNvZ25pdGlvbl09XCJzcGVlY2hSZWNvZ25pdGlvblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICA+XG4gICAgPC9zLXRleHRhcmVhPlxuICAgIDwhLS1UT0RPOiBUb29sdGlwIGVtIHByb3ByaWVkYWRlLS0+XG4gICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImlhc3Npc3QtYnV0dG9uXCJcbiAgICAgICAgW2NsYXNzLnNwZWVjaC1yZWNvZ25pdGlvbl09XCJzcGVlY2hSZWNvZ25pdGlvbiAmJiBzcGVlY2hSZWNvZ25pdGlvblNlcnZpY2UuaGFzU3VwcG9ydFNwZWVjaFJlY29nbml0aW9uXCJcbiAgICAgICAgKGNsaWNrKT1cInNob3dEaWFsb2coKVwiXG4gICAgICAgIHNUb29sdGlwPVwiSUFzc2lzdCAtIENvbnRlbnQgR2VuZXJhdG9yXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpYXNzaXN0SWNvblwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjaWFzc2lzdEljb24+XG4gICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XCI+XG4gICAgICAgIDxzcGFuICpzU1ZHRmFjdG9yeT1cIidpYXNzaXN0J1wiPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -90,11 +90,11 @@ export class ControlErrorsComponent {
|
|
|
90
90
|
this.onDestroy$.complete();
|
|
91
91
|
}
|
|
92
92
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ControlErrorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
93
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ControlErrorsComponent, isStandalone: true, selector: "s-control-errors", inputs: { id: "id", control: "control", errorMessages: "errorMessages", form: "form" }, usesOnChanges: true, ngImport: i0, template: "@for (errorMessage of errorMessagesList; track errorMessage.id) {\n @if (errorMessage) {\n <div
|
|
93
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ControlErrorsComponent, isStandalone: true, selector: "s-control-errors", inputs: { id: "id", control: "control", errorMessages: "errorMessages", form: "form" }, usesOnChanges: true, ngImport: i0, template: "@for (errorMessage of errorMessagesList; track errorMessage.id) {\n @if (errorMessage.message) {\n <div\n class=\"mt-[5px] text-xs text-criticality-red\"\n role=\"alert\"\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n >\n {{ errorMessage.message }}\n </div>\n }\n}\n\n" });
|
|
94
94
|
}
|
|
95
95
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ControlErrorsComponent, decorators: [{
|
|
96
96
|
type: Component,
|
|
97
|
-
args: [{ selector: 's-control-errors', standalone: true, template: "@for (errorMessage of errorMessagesList; track errorMessage.id) {\n @if (errorMessage) {\n <div
|
|
97
|
+
args: [{ selector: 's-control-errors', standalone: true, template: "@for (errorMessage of errorMessagesList; track errorMessage.id) {\n @if (errorMessage.message) {\n <div\n class=\"mt-[5px] text-xs text-criticality-red\"\n role=\"alert\"\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n >\n {{ errorMessage.message }}\n </div>\n }\n}\n\n" }]
|
|
98
98
|
}], propDecorators: { id: [{
|
|
99
99
|
type: Input
|
|
100
100
|
}], control: [{
|
|
@@ -105,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
105
105
|
}], form: [{
|
|
106
106
|
type: Input
|
|
107
107
|
}] } });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1lcnJvcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NvbnRyb2wtZXJyb3JzL3NyYy9saWIvY29udHJvbC1lcnJvcnMvY29udHJvbC1lcnJvcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NvbnRyb2wtZXJyb3JzL3NyYy9saWIvY29udHJvbC1lcnJvcnMvY29udHJvbC1lcnJvcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxLQUFLLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBRy9GLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU8xQzs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQU1ILE1BQU0sT0FBTyxzQkFBc0I7SUFDeEIsTUFBTSxDQUFVLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDOUIsTUFBTSxDQUFVLG1CQUFtQixHQUFHLENBQUMsQ0FBQztJQUN4QyxNQUFNLENBQVUsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUU3QixNQUFNLENBQUMsT0FBTyxHQUFHLHNCQUFzQixDQUFDLFVBQVUsQ0FBQztJQUVwRCxNQUFNLENBQUMsU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBRUksRUFBRSxHQUFHLG9CQUFvQixzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO0lBRXJFOzs7T0FHRztJQUVJLE9BQU8sQ0FBNkI7SUFFM0M7Ozs7Ozs7O09BUUc7SUFFSSxhQUFhLEdBQVEsRUFBRSxDQUFDO0lBRS9COzs7T0FHRztJQUVJLElBQUksQ0FBTTtJQUVqQixpQkFBaUIsR0FBdUIsRUFBRSxDQUFDO0lBRTFCLFVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRWxEOzs7OztPQUtHO0lBQ0ssb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0lBRWxDLFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUM5RyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUU3QyxJQUFJLFNBQVMsS0FBSyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ2hDLENBQUM7SUFDTCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTFELE9BQU8sR0FBRyxLQUFLLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztZQUU1QixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1RSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDdEksT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLENBQUM7U0FDdkMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO3dHQTlGUSxzQkFBc0I7NEZBQXRCLHNCQUFzQix5TEM5Qm5DLG9XQWFBOzs0RkRpQmEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNJLGtCQUFrQixjQUVoQixJQUFJOzhCQWtCVCxFQUFFO3NCQURSLEtBQUs7Z0JBUUMsT0FBTztzQkFEYixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFhbEIsYUFBYTtzQkFEbkIsS0FBSztnQkFRQyxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERvQ2hlY2ssIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuXHJcbnR5cGUgRXJyb3JNZXNzYWdlVHlwZSA9IHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBtZXNzYWdlOiBzdHJpbmc7XHJcbn07XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgcXVlIGV4aWJlIGFzIG1lbnNhZ2VucyBkZSBlcnJvIGRlIHZhbGlkYcOnw6NvIGFzc29jaWFkYXMgYSB1bSBjb250cm9sZSBkZSBmb3JtdWzDoXJpby5cclxuICogT2JzZXJ2YSBhcyBhbHRlcmHDp8O1ZXMgZGUgZXN0YWRvIGRvIGNvbnRyb2xlIGUgcmVuZGVyaXphIGFzIG1lbnNhZ2VucyBtYXBlYWRhcyBlbSBgZXJyb3JNZXNzYWdlc2AuXHJcbiAqIENvbXBhdGl2ZWwgY29tIGBBYnN0cmFjdENvbnRyb2xgIGRvIFJlYWN0aXZlIEZvcm1zIGUgYE5nTW9kZWxgIGRvIFRlbXBsYXRlLURyaXZlbiBGb3Jtcy5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8cy1jb250cm9sLWVycm9yc1xyXG4gKiAgIFtjb250cm9sXT1cImZvcm0uZ2V0KCdlbWFpbCcpXCJcclxuICogICBbZXJyb3JNZXNzYWdlc109XCJ7IHJlcXVpcmVkOiAnRS1tYWlsIG9icmlnYXTDs3JpbycsIGVtYWlsOiAnRS1tYWlsIGludsOhbGlkbycgfVwiXHJcbiAqIC8+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgRmVlZGJhY2tcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzLWNvbnRyb2wtZXJyb3JzJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb250cm9sLWVycm9ycy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udHJvbEVycm9yc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBEb0NoZWNrIHtcclxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgbmV4dElkU2VlZCA9IDA7XHJcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBSQU5ET01fSURfRU5EX0lOREVYID0gOTtcclxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEJBU0VfMzYgPSAzNjtcclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBfbmV4dElkID0gQ29udHJvbEVycm9yc0NvbXBvbmVudC5uZXh0SWRTZWVkO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TmV4dElkKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX25leHRJZCsrO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIElkZW50aWZpY2Fkb3Igw7puaWNvIGRvIGNvbXBvbmVudGUuIEdlcmFkbyBhdXRvbWF0aWNhbWVudGUgc2UgbsOjbyBpbmZvcm1hZG8uXHJcbiAgICAgKiBVc2FkbyBwYXJhIGFzc29jaWHDp8OjbyBhY2Vzc8OtdmVsIGNvbSBvIGNhbXBvIGNvcnJlc3BvbmRlbnRlLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlkID0gYHMtY29udHJvbC1lcnJvcnMtJHtDb250cm9sRXJyb3JzQ29tcG9uZW50LmdldE5leHRJZCgpfWA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29udHJvbGUgZG8gZm9ybXVsw6FyaW8gY3Vqb3MgZXJyb3Mgc2Vyw6NvIGV4aWJpZG9zLlxyXG4gICAgICogQWNlaXRhIGBBYnN0cmFjdENvbnRyb2xgIChSZWFjdGl2ZSBGb3Jtcykgb3UgYE5nTW9kZWxgIChUZW1wbGF0ZS1Ecml2ZW4gRm9ybXMpLiBDYW1wbyBvYnJpZ2F0w7NyaW8uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgY29udHJvbCE6IEFic3RyYWN0Q29udHJvbCB8IE5nTW9kZWw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gTWFwYSBkZSBjaGF2ZXMgZGUgZXJybyBwYXJhIG1lbnNhZ2VucyBkZSB0ZXh0byBleGliaWRhcyBhbyB1c3XDoXJpby5cclxuICAgICAqIENhZGEgY2hhdmUgY29ycmVzcG9uZGUgYSB1bSBlcnJvIHF1ZSBwb2RlIGVzdGFyIHByZXNlbnRlIGVtIGBjb250cm9sLmVycm9yc2AuXHJcbiAgICAgKlxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIGBgYHRzXHJcbiAgICAgKiB7IHJlcXVpcmVkOiAnQ2FtcG8gb2JyaWdhdMOzcmlvJywgbWlubGVuZ3RoOiAnTcOtbmltbyA4IGNhcmFjdGVyZXMnIH1cclxuICAgICAqIGBgYFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZXM6IGFueSA9IHt9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZmVyw6puY2lhIGFvIGZvcm11bMOhcmlvIHBhaS4gVXRpbGl6YWRvIGVtIGNlbsOhcmlvcyBkZSB2YWxpZGHDp8OjbyBjdXN0b21pemFkYVxyXG4gICAgICogcXVlIGRlcGVuZGVtIGRvIGVzdGFkbyBnZXJhbCBkbyBmb3JtdWzDoXJpby5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb3JtOiBhbnk7XHJcblxyXG4gICAgZXJyb3JNZXNzYWdlc0xpc3Q6IEVycm9yTWVzc2FnZVR5cGVbXSA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBc3NpbmF0dXJhIGJhcmF0YSBkbyDDumx0aW1vIGVzdGFkbyB2ZXJpZmljYWRvIChkaXJ0eSArIGNoYXZlcyBkZSBlcnJvKS5cclxuICAgICAqIFBlcm1pdGUgcmVhZ2lyIGEgYG1hcmtBc0RpcnR5KClgIGNoYW1hZG8gc2VtIGFsdGVyYcOnw6NvIGRlIHZhbG9yIChleDogdmFsaWRhw6fDo29cclxuICAgICAqIGRpc3BhcmFkYSBtYW51YWxtZW50ZSBubyBzdWJtaXQpIHNlbSByZWNhbGN1bGFyIGBlcnJvck1lc3NhZ2VzTGlzdGAgZW0gdG9kbyBjaWNsb1xyXG4gICAgICogZGUgY2hhbmdlIGRldGVjdGlvbiDigJQgc8OzIHF1YW5kbyBlc3NlIGVzdGFkbyBkZSBmYXRvIG11ZGEuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbGFzdENoZWNrZWRTaWduYXR1cmUgPSAnJztcclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2NvbnRyb2wnXSAmJiBjaGFuZ2VzWydjb250cm9sJ10uZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sPy52YWx1ZUNoYW5nZXM/LnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNldEVycm9yTWVzc2FnZXNMaXN0KCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ0RvQ2hlY2soKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgc2lnbmF0dXJlID0gdGhpcy5nZXRDb250cm9sU2lnbmF0dXJlKCk7XHJcblxyXG4gICAgICAgIGlmIChzaWduYXR1cmUgIT09IHRoaXMubGFzdENoZWNrZWRTaWduYXR1cmUpIHtcclxuICAgICAgICAgICAgdGhpcy5sYXN0Q2hlY2tlZFNpZ25hdHVyZSA9IHNpZ25hdHVyZTtcclxuICAgICAgICAgICAgdGhpcy5zZXRFcnJvck1lc3NhZ2VzTGlzdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENvbnRyb2xTaWduYXR1cmUoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBkaXJ0eSA9ICEhdGhpcy5jb250cm9sPy5kaXJ0eTtcclxuICAgICAgICBjb25zdCBlcnJvcktleXMgPSBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2w/LmVycm9ycyB8fCB7fSk7XHJcblxyXG4gICAgICAgIHJldHVybiBgJHtkaXJ0eX18JHtlcnJvcktleXMuam9pbignLCcpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RXJyb3JNZXNzYWdlc0xpc3QoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2w/LmRpcnR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlc0xpc3QgPSBbXTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlc0xpc3QgPSBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2wuZXJyb3JzIHx8IHt9KS5tYXAoKGVycm9yKSA9PiAoe1xyXG4gICAgICAgICAgICBpZDogYCR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKENvbnRyb2xFcnJvcnNDb21wb25lbnQuQkFTRV8zNikuc3Vic3RyaW5nKDIsIENvbnRyb2xFcnJvcnNDb21wb25lbnQuUkFORE9NX0lEX0VORF9JTkRFWCl9YCxcclxuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5lcnJvck1lc3NhZ2VzPy5bZXJyb3JdLFxyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG59XHJcbiIsIkBmb3IgKGVycm9yTWVzc2FnZSBvZiBlcnJvck1lc3NhZ2VzTGlzdDsgdHJhY2sgZXJyb3JNZXNzYWdlLmlkKSB7XG4gICAgQGlmIChlcnJvck1lc3NhZ2UubWVzc2FnZSkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIm10LVs1cHhdIHRleHQteHMgdGV4dC1jcml0aWNhbGl0eS1yZWRcIlxuICAgICAgICAgICAgcm9sZT1cImFsZXJ0XCJcbiAgICAgICAgICAgIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiXG4gICAgICAgICAgICBhcmlhLWF0b21pYz1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBlcnJvck1lc3NhZ2UubWVzc2FnZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG59XG5cbiJdfQ==
|