@seniorsistemas/angular-components 19.9.10 → 19.9.11-develop-1dc6275b
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/button/lib/button/button.component.d.ts +3 -1
- package/dynamic-form/dynamic-form/form-field/addon-config.d.ts +12 -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/button/lib/button/button.component.mjs +7 -3
- package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +1 -1
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +2 -2
- package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/components/grid/row/row.component.mjs +2 -2
- 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-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/boolean/boolean-radio-field/boolean-field.component.mjs +1 -1
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/button-field/button-field.component.mjs +1 -1
- 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/radio-button/radio-button-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +8 -7
- package/esm2022/editor/lib/editor/link-dialog/link-dialog.component.mjs +2 -2
- package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +1 -1
- package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +2 -2
- package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +2 -2
- package/esm2022/global-search/lib/global-search/global-search.component.mjs +2 -2
- package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +1 -1
- package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +1 -1
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +2 -2
- package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
- 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/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +1 -1
- package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +1 -1
- package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +1 -1
- package/esm2022/picklist/lib/picklist/picklist.component.mjs +2 -2
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +2 -2
- package/esm2022/select/lib/select/select.component.mjs +3 -3
- package/esm2022/spotlight/lib/spotlight/spotlight.component.mjs +2 -2
- package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-button.mjs +6 -2
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
- 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-datepicker.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-datepicker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +64 -24
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-editor.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-inline-edit.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-kanban.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-spotlight.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-spotlight.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.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
|
@@ -137,11 +137,13 @@ export declare class ButtonComponent implements OnChanges {
|
|
|
137
137
|
*/
|
|
138
138
|
clicked: EventEmitter<any>;
|
|
139
139
|
isMenuOpen: boolean;
|
|
140
|
+
tieredMenuOpened: import("@angular/core").OutputEmitterRef<void>;
|
|
141
|
+
tieredMenuClosed: import("@angular/core").OutputEmitterRef<void>;
|
|
140
142
|
validateSlideButton(): boolean;
|
|
141
143
|
ngOnChanges(_: SimpleChanges): void;
|
|
142
144
|
isRotateAnimation(): boolean;
|
|
143
145
|
onTieredMenuOpened(): void;
|
|
144
146
|
onTieredMenuClosed(): void;
|
|
145
147
|
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
146
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "s-button", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; "rightIconClass": { "alias": "rightIconClass"; "required": false; }; "caret": { "alias": "caret"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "auxiliary": { "alias": "auxiliary"; "required": false; }; "type": { "alias": "type"; "required": false; }; "priority": { "alias": "priority"; "required": false; }; "menuOptions": { "alias": "menuOptions"; "required": false; }; "size": { "alias": "size"; "required": false; }; "slide": { "alias": "slide"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; "badge": { "alias": "badge"; "required": false; }; "iconColor": { "alias": "iconColor"; "required": false; }; "menuAriaLabel": { "alias": "menuAriaLabel"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
|
|
148
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "s-button", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; "rightIconClass": { "alias": "rightIconClass"; "required": false; }; "caret": { "alias": "caret"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "auxiliary": { "alias": "auxiliary"; "required": false; }; "type": { "alias": "type"; "required": false; }; "priority": { "alias": "priority"; "required": false; }; "menuOptions": { "alias": "menuOptions"; "required": false; }; "size": { "alias": "size"; "required": false; }; "slide": { "alias": "slide"; "required": false; }; "animation": { "alias": "animation"; "required": false; }; "badge": { "alias": "badge"; "required": false; }; "iconColor": { "alias": "iconColor"; "required": false; }; "menuAriaLabel": { "alias": "menuAriaLabel"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "clicked": "clicked"; "tieredMenuOpened": "tieredMenuOpened"; "tieredMenuClosed": "tieredMenuClosed"; }, never, ["*"], true, never>;
|
|
147
149
|
}
|
|
@@ -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;
|
|
@@ -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>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, HostBinding, Input, output, Output } from '@angular/core';
|
|
2
2
|
import { NgClass, NgStyle } from '@angular/common';
|
|
3
3
|
import { BadgeModule } from '@seniorsistemas/angular-components/badge';
|
|
4
4
|
import { TieredMenuModule } from '@seniorsistemas/angular-components/tiered-menu';
|
|
@@ -140,6 +140,8 @@ export class ButtonComponent {
|
|
|
140
140
|
*/
|
|
141
141
|
clicked = new EventEmitter();
|
|
142
142
|
isMenuOpen = false;
|
|
143
|
+
tieredMenuOpened = output();
|
|
144
|
+
tieredMenuClosed = output();
|
|
143
145
|
validateSlideButton() {
|
|
144
146
|
return !!(this.slide && (this.priority === 'default' || this.priority === 'link') && this.label?.length);
|
|
145
147
|
}
|
|
@@ -159,12 +161,14 @@ export class ButtonComponent {
|
|
|
159
161
|
}
|
|
160
162
|
onTieredMenuOpened() {
|
|
161
163
|
this.isMenuOpen = true;
|
|
164
|
+
this.tieredMenuOpened.emit();
|
|
162
165
|
}
|
|
163
166
|
onTieredMenuClosed() {
|
|
164
167
|
this.isMenuOpen = false;
|
|
168
|
+
this.tieredMenuClosed.emit();
|
|
165
169
|
}
|
|
166
170
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
167
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ButtonComponent, isStandalone: true, selector: "s-button", inputs: { id: "id", label: "label", tooltip: "tooltip", tooltipPosition: "tooltipPosition", iconClass: "iconClass", rightIconClass: "rightIconClass", caret: "caret", styleClass: "styleClass", baseZIndex: "baseZIndex", disabled: "disabled", auxiliary: "auxiliary", type: "type", priority: "priority", menuOptions: "menuOptions", size: "size", slide: "slide", animation: "animation", badge: "badge", iconColor: "iconColor", menuAriaLabel: "menuAriaLabel", ariaLabel: "ariaLabel" }, outputs: { clicked: "clicked" }, host: { properties: { "class.s-button-with-badge": "!!badge", "style.min-width": "this.minWidth" } }, usesOnChanges: true, ngImport: i0, template: "<button\n [id]=\"id\"\n [type]=\"type\"\n [class]=\"styleClass\"\n class=\"inline-flex items-center justify-center border border-solid cursor-pointer font-open-sans text-sm max-w-full min-w-[40px] outline-none overflow-visible py-[5px] px-[10px] relative no-underline normal-case transition-[background-color,border-color,color] duration-200 ease-out text-grayscale-0 disabled:cursor-text disabled:opacity-50\"\n [ngClass]=\"{\n 'rounded-medium': !auxiliary,\n 'rounded-[20px]': auxiliary && !(iconClass && !label && !menuOptions.length),\n 'rounded-[50%]': auxiliary && !!(iconClass && !label && !menuOptions.length),\n 'h-[35px]': size !== 'small',\n 'h-[25px]': size === 'small',\n 'max-w-6 max-h-6 min-w-6': size === 'small' && !!(iconClass && !label && !menuOptions.length),\n 's-button-auxiliary': auxiliary,\n 's-button-with-icon': !!iconClass,\n 's-button-with-text': !!label,\n 's-button-only-icon': !!(iconClass && !label && !menuOptions.length),\n 's-button-empty': !iconClass && !label,\n 's-button-size-default': size === 'default',\n 's-button-size-small': size === 'small',\n 's-button-priority-default': priority === 'default',\n 's-button-priority-primary': priority === 'primary',\n 's-button-priority-secondary': priority === 'secondary',\n 's-button-priority-link': priority === 'link',\n 's-button-priority-danger': priority === 'danger',\n 's-button-multiple': (caret && menuOptions.length) || !!rightIconClass,\n 's-button--slide': validateSlideButton(),\n 's-button--rotate-animation': isRotateAnimation(),\n }\"\n sTieredMenu\n [items]=\"menuOptions\"\n [ariaLabel]=\"menuAriaLabel\"\n [attr.aria-haspopup]=\"menuOptions.length ? 'menu' : null\"\n [attr.aria-expanded]=\"menuOptions.length ? isMenuOpen : null\"\n [attr.aria-label]=\"ariaLabel\"\n [disabled]=\"disabled\"\n [sTooltip]=\"tooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n (tieredMenuOpened)=\"onTieredMenuOpened()\"\n (tieredMenuClosed)=\"onTieredMenuClosed()\"\n (click)=\"clicked.emit($event)\"\n>\n @if (iconClass) {\n <span\n [class]=\"iconClass\"\n [ngClass]=\"{\n 's-button-icon inline-flex items-center justify-center': true,\n 'mr-[10px]': !label && menuOptions.length,\n }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if (label) {\n <span\n class=\"s-button-text block overflow-hidden text-ellipsis whitespace-nowrap\"\n [ngClass]=\"{\n 'mr-[10px]': !!rightIconClass || menuOptions.length,\n 'ml-[10px]': !!iconClass,\n }\"\n >\n {{ label }}\n </span>\n }\n <ng-content></ng-content>\n @if (rightIconClass) {\n <span\n [class]=\"rightIconClass\"\n [ngClass]=\"{ 's-button-right-icon inline-flex items-center justify-center': true }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if ((caret && menuOptions.length) || (menuOptions && menuOptions.length)) {\n <span\n class=\"menu-options-icon fa fa-fw fa-caret-down\"\n aria-hidden=\"true\"\n >\n </span>\n }\n</button>\n@if (badge) {\n <div class=\"z-[99] relative right-[15px] bottom-[16px]\">\n <s-badge\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n [iconClass]=\"badge.iconClass\"\n >\n </s-badge>\n </div>\n}\n\n", styles: [":host{display:inline-flex;position:relative}:host.s-button-with-badge{margin-right:-15px}button:focus-visible{outline:2px solid var(--s-focus-ring-color);outline-offset:3px}button.s-button-priority-primary{background-color:#428bca;border-color:#428bca}button.s-button-priority-primary .menu-options-icon{color:#fff}button.s-button-priority-primary:hover:not(:disabled){background-color:#2b6597}button.s-button-priority-primary:active:not(:disabled),button.s-button-priority-primary.s-button-active:not(:disabled){background-color:#255783;border-color:#255783}button.s-button-priority-secondary{background-color:#7892a1;border-color:#7892a1}button.s-button-priority-secondary .menu-options-icon{color:#fff}button.s-button-priority-secondary:hover:not(:disabled){background-color:#546b79}button.s-button-priority-secondary:active:not(:disabled),button.s-button-priority-secondary.s-button-active:not(:disabled){background-color:#4a5e6a;border-color:#4a5e6a}button.s-button-priority-default{background-color:#fff;border-color:#ccc;color:#333}button.s-button-priority-default .menu-options-icon{color:#333}button.s-button-priority-default:hover:not(:disabled){background-color:#d9d9d9}button.s-button-priority-default:active:not(:disabled),button.s-button-priority-default.s-button-active:not(:disabled){background-color:#ccc;border-color:#ccc}button.s-button-priority-danger{background-color:#9c3a3a;border-color:#9c3a3a}button.s-button-priority-danger .menu-options-icon{color:#fff}button.s-button-priority-danger:hover:not(:disabled){background-color:#642525}button.s-button-priority-danger:active:not(:disabled),button.s-button-priority-danger.s-button-active:not(:disabled){background-color:#521e1e;border-color:#521e1e}button.s-button-priority-link{background-color:transparent;border-color:transparent}button.s-button-priority-link .s-button-icon,button.s-button-priority-link .s-button-right-icon,button.s-button-priority-link .s-button-text,button.s-button-priority-link .s-button-menu-icon{color:#428bca}button.s-button-priority-link:hover:not(:disabled){background-color:transparent}button.s-button-priority-link:hover:not(:disabled) .s-button-icon,button.s-button-priority-link:hover:not(:disabled) .s-button-right-icon,button.s-button-priority-link:hover:not(:disabled) .s-button-text,button.s-button-priority-link:hover:not(:disabled) .s-button-menu-icon{color:#2b6597}button.s-button-priority-link:focus-visible .s-button-icon,button.s-button-priority-link:focus-visible .s-button-right-icon,button.s-button-priority-link:focus-visible .s-button-text,button.s-button-priority-link:focus-visible .s-button-menu-icon{color:#2b6597}button.s-button-priority-link:active:not(:disabled),button.s-button-priority-link.s-button-active:not(:disabled){background-color:transparent;border-color:transparent}button.s-button-priority-link:active:not(:disabled) .s-button-icon,button.s-button-priority-link:active:not(:disabled) .s-button-right-icon,button.s-button-priority-link:active:not(:disabled) .s-button-text,button.s-button-priority-link:active:not(:disabled) .s-button-menu-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-right-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-text,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-menu-icon{color:#255783}button.s-button-with-text,button.s-button-with-icon.s-button-multiple{min-width:80px}button.s-button-with-icon.s-button-with-text.s-button-multiple{min-width:100px}button.s-button-multiple.s-button-size-small.s-button-empty{width:25px;min-width:25px}.s-button--slide.s-button-with-text,.s-button--slide.s-button-with-icon.s-button-multiple{min-width:40px}.s-button--slide .s-button-text{opacity:0;position:absolute;width:0}.s-button--slide:hover:not(:disabled) .s-button-text{opacity:1;position:relative;transition:1s ease;width:auto}.s-button--slide:hover:not(:disabled).s-button--rotate-animation .s-button-icon,.s-button--slide:hover:not(:disabled).s-button--rotate-animation .s-button-right-icon{transform:rotate(360deg);transition:1.5s ease}.s-button-active .s-button-menu-icon{transform:rotateX(180deg)}.menu-options-icon{color:#212533}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "component", type: i1.BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign", "enableTruncateText"], outputs: ["selected"] }, { kind: "ngmodule", type: TieredMenuModule }, { kind: "directive", type: i2.TieredMenuDirective, selector: "[sTieredMenu]", inputs: ["items", "focusedItem", "triggerEvent", "ariaLabel"], outputs: ["tieredMenuOpened", "tieredMenuClosed"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }] });
|
|
171
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ButtonComponent, isStandalone: true, selector: "s-button", inputs: { id: "id", label: "label", tooltip: "tooltip", tooltipPosition: "tooltipPosition", iconClass: "iconClass", rightIconClass: "rightIconClass", caret: "caret", styleClass: "styleClass", baseZIndex: "baseZIndex", disabled: "disabled", auxiliary: "auxiliary", type: "type", priority: "priority", menuOptions: "menuOptions", size: "size", slide: "slide", animation: "animation", badge: "badge", iconColor: "iconColor", menuAriaLabel: "menuAriaLabel", ariaLabel: "ariaLabel" }, outputs: { clicked: "clicked", tieredMenuOpened: "tieredMenuOpened", tieredMenuClosed: "tieredMenuClosed" }, host: { properties: { "class.s-button-with-badge": "!!badge", "style.min-width": "this.minWidth" } }, usesOnChanges: true, ngImport: i0, template: "<button\n [id]=\"id\"\n [type]=\"type\"\n [class]=\"styleClass\"\n class=\"inline-flex items-center justify-center border border-solid cursor-pointer font-open-sans text-sm max-w-full min-w-[40px] outline-none overflow-visible py-[5px] px-[10px] relative no-underline normal-case transition-[background-color,border-color,color] duration-200 ease-out text-grayscale-0 disabled:cursor-text disabled:opacity-50\"\n [ngClass]=\"{\n 'rounded-medium': !auxiliary,\n 'rounded-[20px]': auxiliary && !(iconClass && !label && !menuOptions.length),\n 'rounded-[50%]': auxiliary && !!(iconClass && !label && !menuOptions.length),\n 'h-[35px]': size !== 'small',\n 'h-[25px]': size === 'small',\n 'max-w-6 max-h-6 min-w-6': size === 'small' && !!(iconClass && !label && !menuOptions.length),\n 's-button-auxiliary': auxiliary,\n 's-button-with-icon': !!iconClass,\n 's-button-with-text': !!label,\n 's-button-only-icon': !!(iconClass && !label && !menuOptions.length),\n 's-button-empty': !iconClass && !label,\n 's-button-size-default': size === 'default',\n 's-button-size-small': size === 'small',\n 's-button-priority-default': priority === 'default',\n 's-button-priority-primary': priority === 'primary',\n 's-button-priority-secondary': priority === 'secondary',\n 's-button-priority-link': priority === 'link',\n 's-button-priority-danger': priority === 'danger',\n 's-button-multiple': (caret && menuOptions.length) || !!rightIconClass,\n 's-button--slide': validateSlideButton(),\n 's-button--rotate-animation': isRotateAnimation(),\n }\"\n sTieredMenu\n [items]=\"menuOptions\"\n [ariaLabel]=\"menuAriaLabel\"\n [attr.aria-haspopup]=\"menuOptions.length ? 'menu' : null\"\n [attr.aria-expanded]=\"menuOptions.length ? isMenuOpen : null\"\n [attr.aria-label]=\"ariaLabel\"\n [disabled]=\"disabled\"\n [sTooltip]=\"tooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n (tieredMenuOpened)=\"onTieredMenuOpened()\"\n (tieredMenuClosed)=\"onTieredMenuClosed()\"\n (click)=\"clicked.emit($event)\"\n>\n @if (iconClass) {\n <span\n [class]=\"iconClass\"\n [ngClass]=\"{\n 's-button-icon inline-flex items-center justify-center': true,\n 'mr-[10px]': !label && menuOptions.length,\n }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if (label) {\n <span\n class=\"s-button-text block overflow-hidden text-ellipsis whitespace-nowrap\"\n [ngClass]=\"{\n 'mr-[10px]': !!rightIconClass || menuOptions.length,\n 'ml-[10px]': !!iconClass,\n }\"\n >\n {{ label }}\n </span>\n }\n <ng-content></ng-content>\n @if (rightIconClass) {\n <span\n [class]=\"rightIconClass\"\n [ngClass]=\"{ 's-button-right-icon inline-flex items-center justify-center': true }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if ((caret && menuOptions.length) || (menuOptions && menuOptions.length)) {\n <span\n class=\"menu-options-icon fa fa-fw fa-caret-down\"\n aria-hidden=\"true\"\n >\n </span>\n }\n</button>\n@if (badge) {\n <div class=\"z-[99] relative right-[15px] bottom-[16px]\">\n <s-badge\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n [iconClass]=\"badge.iconClass\"\n >\n </s-badge>\n </div>\n}\n\n", styles: [":host{display:inline-flex;position:relative}:host.s-button-with-badge{margin-right:-15px}button:focus-visible{outline:2px solid var(--s-focus-ring-color);outline-offset:3px}button.s-button-priority-primary{background-color:#428bca;border-color:#428bca}button.s-button-priority-primary .menu-options-icon{color:#fff}button.s-button-priority-primary:hover:not(:disabled){background-color:#2b6597}button.s-button-priority-primary:active:not(:disabled),button.s-button-priority-primary.s-button-active:not(:disabled){background-color:#255783;border-color:#255783}button.s-button-priority-secondary{background-color:#7892a1;border-color:#7892a1}button.s-button-priority-secondary .menu-options-icon{color:#fff}button.s-button-priority-secondary:hover:not(:disabled){background-color:#546b79}button.s-button-priority-secondary:active:not(:disabled),button.s-button-priority-secondary.s-button-active:not(:disabled){background-color:#4a5e6a;border-color:#4a5e6a}button.s-button-priority-default{background-color:#fff;border-color:#ccc;color:#333}button.s-button-priority-default .menu-options-icon{color:#333}button.s-button-priority-default:hover:not(:disabled){background-color:#d9d9d9}button.s-button-priority-default:active:not(:disabled),button.s-button-priority-default.s-button-active:not(:disabled){background-color:#ccc;border-color:#ccc}button.s-button-priority-danger{background-color:#9c3a3a;border-color:#9c3a3a}button.s-button-priority-danger .menu-options-icon{color:#fff}button.s-button-priority-danger:hover:not(:disabled){background-color:#642525}button.s-button-priority-danger:active:not(:disabled),button.s-button-priority-danger.s-button-active:not(:disabled){background-color:#521e1e;border-color:#521e1e}button.s-button-priority-link{background-color:transparent;border-color:transparent}button.s-button-priority-link .s-button-icon,button.s-button-priority-link .s-button-right-icon,button.s-button-priority-link .s-button-text,button.s-button-priority-link .s-button-menu-icon{color:#428bca}button.s-button-priority-link:hover:not(:disabled){background-color:transparent}button.s-button-priority-link:hover:not(:disabled) .s-button-icon,button.s-button-priority-link:hover:not(:disabled) .s-button-right-icon,button.s-button-priority-link:hover:not(:disabled) .s-button-text,button.s-button-priority-link:hover:not(:disabled) .s-button-menu-icon{color:#2b6597}button.s-button-priority-link:focus-visible .s-button-icon,button.s-button-priority-link:focus-visible .s-button-right-icon,button.s-button-priority-link:focus-visible .s-button-text,button.s-button-priority-link:focus-visible .s-button-menu-icon{color:#2b6597}button.s-button-priority-link:active:not(:disabled),button.s-button-priority-link.s-button-active:not(:disabled){background-color:transparent;border-color:transparent}button.s-button-priority-link:active:not(:disabled) .s-button-icon,button.s-button-priority-link:active:not(:disabled) .s-button-right-icon,button.s-button-priority-link:active:not(:disabled) .s-button-text,button.s-button-priority-link:active:not(:disabled) .s-button-menu-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-right-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-text,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-menu-icon{color:#255783}button.s-button-with-text,button.s-button-with-icon.s-button-multiple{min-width:80px}button.s-button-with-icon.s-button-with-text.s-button-multiple{min-width:100px}button.s-button-multiple.s-button-size-small.s-button-empty{width:25px;min-width:25px}.s-button--slide.s-button-with-text,.s-button--slide.s-button-with-icon.s-button-multiple{min-width:40px}.s-button--slide .s-button-text{opacity:0;position:absolute;width:0}.s-button--slide:hover:not(:disabled) .s-button-text{opacity:1;position:relative;transition:1s ease;width:auto}.s-button--slide:hover:not(:disabled).s-button--rotate-animation .s-button-icon,.s-button--slide:hover:not(:disabled).s-button--rotate-animation .s-button-right-icon{transform:rotate(360deg);transition:1.5s ease}.s-button-active .s-button-menu-icon{transform:rotateX(180deg)}.menu-options-icon{color:#212533}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "component", type: i1.BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign", "enableTruncateText"], outputs: ["selected"] }, { kind: "ngmodule", type: TieredMenuModule }, { kind: "directive", type: i2.TieredMenuDirective, selector: "[sTieredMenu]", inputs: ["items", "focusedItem", "triggerEvent", "ariaLabel"], outputs: ["tieredMenuOpened", "tieredMenuClosed"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }] });
|
|
168
172
|
}
|
|
169
173
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
170
174
|
type: Component,
|
|
@@ -219,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
219
223
|
}], clicked: [{
|
|
220
224
|
type: Output
|
|
221
225
|
}] } });
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24vc3JjL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24vc3JjL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUU5RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RSxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdEcsT0FBTyxFQUFFLGFBQWEsRUFBb0IsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7O0FBS3RFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQVdILE1BQU0sT0FBTyxlQUFlO0lBRWpCLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFFekI7OztPQUdHO0lBRUksRUFBRSxHQUFJLFlBQVksVUFBVSxFQUFFLEVBQUUsQ0FBQztJQUV4Qzs7T0FFRztJQUVJLEtBQUssQ0FBVTtJQUV0Qjs7T0FFRztJQUVJLE9BQU8sQ0FBVTtJQUV4Qjs7OztPQUlHO0lBRUksZUFBZSxHQUFxQixLQUFLLENBQUM7SUFFakQ7O09BRUc7SUFFSSxTQUFTLENBQVU7SUFFMUI7O09BRUc7SUFFSSxjQUFjLENBQVU7SUFFL0I7Ozs7T0FJRztJQUVJLEtBQUssR0FBRyxJQUFJLENBQUM7SUFFcEI7Ozs7T0FJRztJQUVJLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFFdkI7Ozs7T0FJRztJQUVJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFdEI7Ozs7T0FJRztJQUVJLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFeEI7Ozs7T0FJRztJQUVJLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFekI7Ozs7T0FJRztJQUVJLElBQUksR0FBSSxRQUFRLENBQUM7SUFFeEI7Ozs7O09BS0c7SUFFSSxRQUFRLEdBQW9CLFNBQVMsQ0FBQztJQUU3Qzs7OztPQUlHO0lBRUksV0FBVyxHQUF5QixFQUFFLENBQUM7SUFFOUM7Ozs7T0FJRztJQUVJLElBQUksR0FBeUIsU0FBUyxDQUFDO0lBRTlDOzs7OztPQUtHO0lBRUksS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVyQjs7T0FFRztJQUVJLFNBQVMsQ0FBb0I7SUFFcEM7O09BRUc7SUFFSSxLQUFLLENBQXFCO0lBRWpDOztPQUVHO0lBRUksU0FBUyxDQUFVO0lBRTFCOztPQUVHO0lBRUksYUFBYSxDQUFVO0lBRTlCOztPQUVHO0lBRUksU0FBUyxDQUFVO0lBRTFCOztPQUVHO0lBRUksT0FBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRWhELFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFbkIsbUJBQW1CO1FBQ3RCLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRU0sV0FBVyxDQUFDLENBQWdCO1FBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUzQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztRQUU1QyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLE9BQU8sSUFBSSxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFFTSxpQkFBaUI7UUFDcEIsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FBQztJQUN2QyxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQzt3R0EvTFEsZUFBZTs0RkFBZixlQUFlLGdzQkNyQzVCLGlxSEE2RkEsNnRJRDFEYyxPQUFPLG9GQUFFLE9BQU8sMEVBQUUsV0FBVyxtUEFBRSxnQkFBZ0IsZ09BQUUsYUFBYTs7NEZBRS9ELGVBQWU7a0JBVjNCLFNBQVM7K0JBQ0ksVUFBVSxRQUdkO3dCQUNGLDZCQUE2QixFQUFFLFNBQVM7cUJBQzNDLGNBQ1csSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDOzhCQUlsRSxRQUFRO3NCQURkLFdBQVc7dUJBQUMsaUJBQWlCO2dCQVF2QixFQUFFO3NCQURSLEtBQUs7Z0JBT0MsS0FBSztzQkFEWCxLQUFLO2dCQU9DLE9BQU87c0JBRGIsS0FBSztnQkFTQyxlQUFlO3NCQURyQixLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxjQUFjO3NCQURwQixLQUFLO2dCQVNDLEtBQUs7c0JBRFgsS0FBSztnQkFTQyxVQUFVO3NCQURoQixLQUFLO2dCQVNDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBU0MsUUFBUTtzQkFEZCxLQUFLO2dCQVNDLFNBQVM7c0JBRGYsS0FBSztnQkFTQyxJQUFJO3NCQURWLEtBQUs7Z0JBVUMsUUFBUTtzQkFEZCxLQUFLO2dCQVNDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBU0MsSUFBSTtzQkFEVixLQUFLO2dCQVVDLEtBQUs7c0JBRFgsS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUs7Z0JBT0MsS0FBSztzQkFEWCxLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxhQUFhO3NCQURuQixLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxPQUFPO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJhZGdlTW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBUaWVyZWRNZW51SXRlbURhdGEsIFRpZXJlZE1lbnVNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3RpZXJlZC1tZW51JztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUsIFRvb2x0aXBQb3NpdGlvbnMgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgcmFuZG9tSGFzaCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdXRpbHMnO1xuaW1wb3J0IHsgQnV0dG9uQW5pbWF0aW9ucyB9IGZyb20gJy4vbW9kZWxzL2J1dHRvbi1hbmltYXRpb25zJztcbmltcG9ydCB7IEJ1dHRvbkJhZGdlQ29uZmlnIH0gZnJvbSAnLi9tb2RlbHMvYnV0dG9uLWJhZGdlLWNvbmZpZyc7XG5pbXBvcnQgeyBCdXR0b25Qcmlvcml0eSB9IGZyb20gJy4vbW9kZWxzL2J1dHRvbi1wcmlvcml0eSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgYm90w6NvIHZlcnPDoXRpbCBxdWUgc3Vwb3J0YSDDrWNvbmVzLCB0b29sdGlwLCBtZW51IGRlIG9ww6fDtWVzXG4gKiAodGllcmVkIG1lbnUpLCBiYWRnZSwgYW5pbWHDp8O1ZXMgZSBkaWZlcmVudGVzIHByaW9yaWRhZGVzIHZpc3VhaXMuIFBvZGUgc2VyIGNvbmZpZ3VyYWRvXG4gKiBjb21vIGJvdMOjbyBkZSBhw6fDo28gc2ltcGxlcywgYm90w6NvIGNvbSBtZW51IGRyb3Bkb3duIG91IGJvdMOjbyBkZXNsaXphbnRlIChzbGlkZSkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxzLWJ1dHRvblxuICogICBsYWJlbD1cIlNhbHZhclwiXG4gKiAgIGljb25DbGFzcz1cImZhcyBmYS1zYXZlXCJcbiAqICAgcHJpb3JpdHk9XCJwcmltYXJ5XCJcbiAqICAgKGNsaWNrZWQpPVwib25TYXZlKClcIiAvPlxuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IElucHV0c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3MtYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3Mucy1idXR0b24td2l0aC1iYWRnZV0nOiAnISFiYWRnZScsXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ1N0eWxlLCBCYWRnZU1vZHVsZSwgVGllcmVkTWVudU1vZHVsZSwgVG9vbHRpcE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4td2lkdGgnKVxuICAgIHB1YmxpYyBtaW5XaWR0aCA9ICc0MHB4JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJZGVudGlmaWNhZG9yIMO6bmljbyBkbyBlbGVtZW50byBib3TDo28gbm8gRE9NLlxuICAgICAqIEdlcmFkbyBhdXRvbWF0aWNhbWVudGUgc2UgbsOjbyBpbmZvcm1hZG8uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQ/ID0gYHMtYnV0dG9uLSR7cmFuZG9tSGFzaCgpfWA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGV4dG8gZXhpYmlkbyBkZW50cm8gZG8gYm90w6NvLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRleHRvIGRvIHRvb2x0aXAgZXhpYmlkbyBhbyBwYXNzYXIgbyBtb3VzZSBzb2JyZSBvIGJvdMOjby5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0b29sdGlwPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBvc2nDp8OjbyBkbyB0b29sdGlwIGVtIHJlbGHDp8OjbyBhbyBib3TDo28uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAndG9wJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRvb2x0aXBQb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9ucyA9ICd0b3AnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENsYXNzZSBkZSDDrWNvbmUgZXhpYmlkYSDDoCBlc3F1ZXJkYSBkbyBsYWJlbCAoZXguOiBgJ2ZhcyBmYS1zYXZlJ2ApLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25DbGFzcz86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDbGFzc2UgZGUgw61jb25lIGV4aWJpZGEgw6AgZGlyZWl0YSBkbyBsYWJlbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByaWdodEljb25DbGFzcz86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFeGliZSBvIMOtY29uZSBkZSBjYXJldCAoc2V0YSkgcXVhbmRvIG8gYm90w6NvIHBvc3N1aSB1bSBtZW51IGRlIG9ww6fDtWVzLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNhcmV0ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDbGFzc2UgQ1NTIGFkaWNpb25hbCBhcGxpY2FkYSBhbyBlbGVtZW50byBgPGJ1dHRvbj5gIGludGVybm8uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN0eWxlQ2xhc3MgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBaLWluZGV4IGJhc2UgZG8gcGFpbmVsIGRvIG1lbnUgZHJvcGRvd24gYXNzb2NpYWRvIGFvIGJvdMOjby5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBiYXNlWkluZGV4ID0gMDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZXNhYmlsaXRhIG8gYm90w6NvLCBpbXBlZGluZG8gY2xpcXVlcyBlIGludGVyYcOnw6NvIGRvIHVzdcOhcmlvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFwbGljYSBlc3RpbG8gYXV4aWxpYXIgKG1lbm9zIGRlc3RhcXVlIHZpc3VhbCkgYW8gYm90w6NvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXhpbGlhcnkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaXBvIGRvIGVsZW1lbnRvIGA8YnV0dG9uPmAgSFRNTCAoYCdidXR0b24nYCwgYCdzdWJtaXQnYCwgYCdyZXNldCdgKS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICdidXR0b24nXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHlwZT8gPSAnYnV0dG9uJztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQcmlvcmlkYWRlIHZpc3VhbCBkbyBib3TDo28sIHF1ZSBkZXRlcm1pbmEgc2V1IGVzdGlsby5cbiAgICAgKiBBY2VpdGEgYCdwcmltYXJ5J2AsIGAnZGVmYXVsdCdgLCBgJ2RhbmdlcidgLCBgJ2xpbmsnYCwgZW50cmUgb3V0cm9zLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ3ByaW1hcnknXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcHJpb3JpdHk/OiBCdXR0b25Qcmlvcml0eSA9ICdwcmltYXJ5JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0YSBkZSBpdGVucyBkbyBtZW51IGRyb3Bkb3duIGV4aWJpZG8gYW8gY2xpY2FyIG5vIGNhcmV0IGRvIGJvdMOjby5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFtdXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWVudU9wdGlvbnM6IFRpZXJlZE1lbnVJdGVtRGF0YVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGFtYW5obyB2aXN1YWwgZG8gYm90w6NvLiBBY2VpdGEgYCdkZWZhdWx0J2Agb3UgYCdzbWFsbCdgLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ2RlZmF1bHQnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2l6ZT86ICdkZWZhdWx0JyB8ICdzbWFsbCcgPSAnZGVmYXVsdCc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSGFiaWxpdGEgbyBtb2RvIHNsaWRlLCBxdWUgZXhpYmUgdW1hIGFuaW1hw6fDo28gZGUgZGVzbGl6ZSBhbyBwYXNzYXIgbyBtb3VzZS5cbiAgICAgKiBSZXF1ZXIgYHByaW9yaXR5YCBpZ3VhbCBhIGAnZGVmYXVsdCdgIG91IGAnbGluaydgIGUgdW0gYGxhYmVsYCBkZWZpbmlkby5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2xpZGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaXBvIGRlIGFuaW1hw6fDo28gYXBsaWNhZGEgYW8gYm90w6NvIChgJ3JvdGF0ZSdgLCBgJ3B1bHNlJ2AsIGV0Yy4pLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFuaW1hdGlvbj86IEJ1dHRvbkFuaW1hdGlvbnM7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhw6fDo28gZG8gYmFkZ2UgZXhpYmlkbyBzb2JyZSBvIGJvdMOjbywgY29tIGNvbnRhZG9yIG91IGluZGljYWRvciB2aXN1YWwuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYmFkZ2U/OiBCdXR0b25CYWRnZUNvbmZpZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDb3IgYXBsaWNhZGEgYW8gw61jb25lIGRvIGJvdMOjbywgc29icmVzY3JldmVuZG8gYSBjb3IgcGFkcsOjbyBkbyB0ZW1hLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25Db2xvcj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUZXh0byBhbHRlcm5hdGl2byBwYXJhIG8gbWVudSBhc3NvY2lhZG8gYW8gYm90w6NvLCB1dGlsaXphZG8gcGFyYSBhY2Vzc2liaWxpZGFkZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtZW51QXJpYUxhYmVsPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRleHRvIGFsdGVybmF0aXZvIHBhcmEgcXVhbmRvIG8gYm90w6NvIG7Do28gdGl2ZXIgdW0gdGV4dG8gZXhwbGljaXRvLCB1dGlsaXphZG8gcGFyYSBhY2Vzc2liaWxpZGFkZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhcmlhTGFiZWw/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBhbyBjbGljYXIgbm8gYm90w6NvLCBkZXNkZSBxdWUgbsOjbyBlc3RlamEgZGVzYWJpbGl0YWRvLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBpc01lbnVPcGVuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgdmFsaWRhdGVTbGlkZUJ1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuc2xpZGUgJiYgKHRoaXMucHJpb3JpdHkgPT09ICdkZWZhdWx0JyB8fCB0aGlzLnByaW9yaXR5ID09PSAnbGluaycpICYmIHRoaXMubGFiZWw/Lmxlbmd0aCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGFzSWNvbiA9IHRoaXMuaWNvbkNsYXNzO1xuICAgICAgICBjb25zdCBoYXNUZXh0ID0gdGhpcy5sYWJlbDtcblxuICAgICAgICBjb25zdCBpc011bHRpcGxlID0gdGhpcy5tZW51T3B0aW9ucz8ubGVuZ3RoO1xuXG4gICAgICAgIGlmIChoYXNUZXh0IHx8IChoYXNJY29uICYmIGlzTXVsdGlwbGUpKSB7XG4gICAgICAgICAgICB0aGlzLm1pbldpZHRoID0gJzgwcHgnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNUZXh0ICYmIGhhc0ljb24gJiYgaXNNdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5taW5XaWR0aCA9ICcxMDBweCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaXNSb3RhdGVBbmltYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbiA9PT0gJ3JvdGF0ZSc7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVGllcmVkTWVudU9wZW5lZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc01lbnVPcGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UaWVyZWRNZW51Q2xvc2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTWVudU9wZW4gPSBmYWxzZTtcbiAgICB9XG59XG5cbiIsIjxidXR0b25cbiAgICBbaWRdPVwiaWRcIlxuICAgIFt0eXBlXT1cInR5cGVcIlxuICAgIFtjbGFzc109XCJzdHlsZUNsYXNzXCJcbiAgICBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBib3JkZXIgYm9yZGVyLXNvbGlkIGN1cnNvci1wb2ludGVyIGZvbnQtb3Blbi1zYW5zIHRleHQtc20gbWF4LXctZnVsbCBtaW4tdy1bNDBweF0gb3V0bGluZS1ub25lIG92ZXJmbG93LXZpc2libGUgcHktWzVweF0gcHgtWzEwcHhdIHJlbGF0aXZlIG5vLXVuZGVybGluZSBub3JtYWwtY2FzZSB0cmFuc2l0aW9uLVtiYWNrZ3JvdW5kLWNvbG9yLGJvcmRlci1jb2xvcixjb2xvcl0gZHVyYXRpb24tMjAwIGVhc2Utb3V0IHRleHQtZ3JheXNjYWxlLTAgZGlzYWJsZWQ6Y3Vyc29yLXRleHQgZGlzYWJsZWQ6b3BhY2l0eS01MFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAncm91bmRlZC1tZWRpdW0nOiAhYXV4aWxpYXJ5LFxuICAgICAgICAncm91bmRlZC1bMjBweF0nOiBhdXhpbGlhcnkgJiYgIShpY29uQ2xhc3MgJiYgIWxhYmVsICYmICFtZW51T3B0aW9ucy5sZW5ndGgpLFxuICAgICAgICAncm91bmRlZC1bNTAlXSc6IGF1eGlsaWFyeSAmJiAhIShpY29uQ2xhc3MgJiYgIWxhYmVsICYmICFtZW51T3B0aW9ucy5sZW5ndGgpLFxuICAgICAgICAnaC1bMzVweF0nOiBzaXplICE9PSAnc21hbGwnLFxuICAgICAgICAnaC1bMjVweF0nOiBzaXplID09PSAnc21hbGwnLFxuICAgICAgICAnbWF4LXctNiBtYXgtaC02IG1pbi13LTYnOiBzaXplID09PSAnc21hbGwnICYmICEhKGljb25DbGFzcyAmJiAhbGFiZWwgJiYgIW1lbnVPcHRpb25zLmxlbmd0aCksXG4gICAgICAgICdzLWJ1dHRvbi1hdXhpbGlhcnknOiBhdXhpbGlhcnksXG4gICAgICAgICdzLWJ1dHRvbi13aXRoLWljb24nOiAhIWljb25DbGFzcyxcbiAgICAgICAgJ3MtYnV0dG9uLXdpdGgtdGV4dCc6ICEhbGFiZWwsXG4gICAgICAgICdzLWJ1dHRvbi1vbmx5LWljb24nOiAhIShpY29uQ2xhc3MgJiYgIWxhYmVsICYmICFtZW51T3B0aW9ucy5sZW5ndGgpLFxuICAgICAgICAncy1idXR0b24tZW1wdHknOiAhaWNvbkNsYXNzICYmICFsYWJlbCxcbiAgICAgICAgJ3MtYnV0dG9uLXNpemUtZGVmYXVsdCc6IHNpemUgPT09ICdkZWZhdWx0JyxcbiAgICAgICAgJ3MtYnV0dG9uLXNpemUtc21hbGwnOiBzaXplID09PSAnc21hbGwnLFxuICAgICAgICAncy1idXR0b24tcHJpb3JpdHktZGVmYXVsdCc6IHByaW9yaXR5ID09PSAnZGVmYXVsdCcsXG4gICAgICAgICdzLWJ1dHRvbi1wcmlvcml0eS1wcmltYXJ5JzogcHJpb3JpdHkgPT09ICdwcmltYXJ5JyxcbiAgICAgICAgJ3MtYnV0dG9uLXByaW9yaXR5LXNlY29uZGFyeSc6IHByaW9yaXR5ID09PSAnc2Vjb25kYXJ5JyxcbiAgICAgICAgJ3MtYnV0dG9uLXByaW9yaXR5LWxpbmsnOiBwcmlvcml0eSA9PT0gJ2xpbmsnLFxuICAgICAgICAncy1idXR0b24tcHJpb3JpdHktZGFuZ2VyJzogcHJpb3JpdHkgPT09ICdkYW5nZXInLFxuICAgICAgICAncy1idXR0b24tbXVsdGlwbGUnOiAoY2FyZXQgJiYgbWVudU9wdGlvbnMubGVuZ3RoKSB8fCAhIXJpZ2h0SWNvbkNsYXNzLFxuICAgICAgICAncy1idXR0b24tLXNsaWRlJzogdmFsaWRhdGVTbGlkZUJ1dHRvbigpLFxuICAgICAgICAncy1idXR0b24tLXJvdGF0ZS1hbmltYXRpb24nOiBpc1JvdGF0ZUFuaW1hdGlvbigpLFxuICAgIH1cIlxuICAgIHNUaWVyZWRNZW51XG4gICAgW2l0ZW1zXT1cIm1lbnVPcHRpb25zXCJcbiAgICBbYXJpYUxhYmVsXT1cIm1lbnVBcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwibWVudU9wdGlvbnMubGVuZ3RoID8gJ21lbnUnIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJtZW51T3B0aW9ucy5sZW5ndGggPyBpc01lbnVPcGVuIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3NUb29sdGlwXT1cInRvb2x0aXBcIlxuICAgIFt0b29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCJcbiAgICAodGllcmVkTWVudU9wZW5lZCk9XCJvblRpZXJlZE1lbnVPcGVuZWQoKVwiXG4gICAgKHRpZXJlZE1lbnVDbG9zZWQpPVwib25UaWVyZWRNZW51Q2xvc2VkKClcIlxuICAgIChjbGljayk9XCJjbGlja2VkLmVtaXQoJGV2ZW50KVwiXG4+XG4gICAgQGlmIChpY29uQ2xhc3MpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIFtjbGFzc109XCJpY29uQ2xhc3NcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdzLWJ1dHRvbi1pY29uIGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlcic6IHRydWUsXG4gICAgICAgICAgICAgICAgJ21yLVsxMHB4XSc6ICFsYWJlbCAmJiBtZW51T3B0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IGljb25Db2xvciB9XCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbiAgICBAaWYgKGxhYmVsKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInMtYnV0dG9uLXRleHQgYmxvY2sgb3ZlcmZsb3ctaGlkZGVuIHRleHQtZWxsaXBzaXMgd2hpdGVzcGFjZS1ub3dyYXBcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdtci1bMTBweF0nOiAhIXJpZ2h0SWNvbkNsYXNzIHx8IG1lbnVPcHRpb25zLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAnbWwtWzEwcHhdJzogISFpY29uQ2xhc3MsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgQGlmIChyaWdodEljb25DbGFzcykge1xuICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2NsYXNzXT1cInJpZ2h0SWNvbkNsYXNzXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3MtYnV0dG9uLXJpZ2h0LWljb24gaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyJzogdHJ1ZSB9XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IGljb25Db2xvciB9XCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbiAgICBAaWYgKChjYXJldCAmJiBtZW51T3B0aW9ucy5sZW5ndGgpIHx8IChtZW51T3B0aW9ucyAmJiBtZW51T3B0aW9ucy5sZW5ndGgpKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cIm1lbnUtb3B0aW9ucy1pY29uIGZhIGZhLWZ3IGZhLWNhcmV0LWRvd25cIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuPC9idXR0b24+XG5AaWYgKGJhZGdlKSB7XG4gICAgPGRpdiBjbGFzcz1cInotWzk5XSByZWxhdGl2ZSByaWdodC1bMTVweF0gYm90dG9tLVsxNnB4XVwiPlxuICAgICAgICA8cy1iYWRnZVxuICAgICAgICAgICAgW2NvbG9yXT1cImJhZGdlLmNvbG9yXCJcbiAgICAgICAgICAgIFt0ZXh0XT1cImJhZGdlLnRleHRcIlxuICAgICAgICAgICAgW2ljb25DbGFzc109XCJiYWRnZS5pY29uQ2xhc3NcIlxuICAgICAgICA+XG4gICAgICAgIDwvcy1iYWRnZT5cbiAgICA8L2Rpdj5cbn1cblxuIl19
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24vc3JjL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24vc3JjL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFdEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdkUsT0FBTyxFQUFzQixnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxhQUFhLEVBQW9CLE1BQU0sNENBQTRDLENBQUM7QUFDN0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7OztBQUt0RTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFXSCxNQUFNLE9BQU8sZUFBZTtJQUVqQixRQUFRLEdBQUcsTUFBTSxDQUFDO0lBRXpCOzs7T0FHRztJQUVJLEVBQUUsR0FBSSxZQUFZLFVBQVUsRUFBRSxFQUFFLENBQUM7SUFFeEM7O09BRUc7SUFFSSxLQUFLLENBQVU7SUFFdEI7O09BRUc7SUFFSSxPQUFPLENBQVU7SUFFeEI7Ozs7T0FJRztJQUVJLGVBQWUsR0FBcUIsS0FBSyxDQUFDO0lBRWpEOztPQUVHO0lBRUksU0FBUyxDQUFVO0lBRTFCOztPQUVHO0lBRUksY0FBYyxDQUFVO0lBRS9COzs7O09BSUc7SUFFSSxLQUFLLEdBQUcsSUFBSSxD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QixLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxjQUFjO3NCQURwQixLQUFLO2dCQVNDLEtBQUs7c0JBRFgsS0FBSztnQkFTQyxVQUFVO3NCQURoQixLQUFLO2dCQVNDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBU0MsUUFBUTtzQkFEZCxLQUFLO2dCQVNDLFNBQVM7c0JBRGYsS0FBSztnQkFTQyxJQUFJO3NCQURWLEtBQUs7Z0JBVUMsUUFBUTtzQkFEZCxLQUFLO2dCQVNDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBU0MsSUFBSTtzQkFEVixLQUFLO2dCQVVDLEtBQUs7c0JBRFgsS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUs7Z0JBT0MsS0FBSztzQkFEWCxLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxhQUFhO3NCQURuQixLQUFLO2dCQU9DLFNBQVM7c0JBRGYsS0FBSztnQkFPQyxPQUFPO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIG91dHB1dCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5nQ2xhc3MsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQmFkZ2VNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IFRpZXJlZE1lbnVJdGVtRGF0YSwgVGllcmVkTWVudU1vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGllcmVkLW1lbnUnO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSwgVG9vbHRpcFBvc2l0aW9ucyB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyByYW5kb21IYXNoIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25BbmltYXRpb25zIH0gZnJvbSAnLi9tb2RlbHMvYnV0dG9uLWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQnV0dG9uQmFkZ2VDb25maWcgfSBmcm9tICcuL21vZGVscy9idXR0b24tYmFkZ2UtY29uZmlnJztcbmltcG9ydCB7IEJ1dHRvblByaW9yaXR5IH0gZnJvbSAnLi9tb2RlbHMvYnV0dG9uLXByaW9yaXR5JztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSBib3TDo28gdmVyc8OhdGlsIHF1ZSBzdXBvcnRhIMOtY29uZXMsIHRvb2x0aXAsIG1lbnUgZGUgb3DDp8O1ZXNcbiAqICh0aWVyZWQgbWVudSksIGJhZGdlLCBhbmltYcOnw7VlcyBlIGRpZmVyZW50ZXMgcHJpb3JpZGFkZXMgdmlzdWFpcy4gUG9kZSBzZXIgY29uZmlndXJhZG9cbiAqIGNvbW8gYm90w6NvIGRlIGHDp8OjbyBzaW1wbGVzLCBib3TDo28gY29tIG1lbnUgZHJvcGRvd24gb3UgYm90w6NvIGRlc2xpemFudGUgKHNsaWRlKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtYnV0dG9uXG4gKiAgIGxhYmVsPVwiU2FsdmFyXCJcbiAqICAgaWNvbkNsYXNzPVwiZmFzIGZhLXNhdmVcIlxuICogICBwcmlvcml0eT1cInByaW1hcnlcIlxuICogICAoY2xpY2tlZCk9XCJvblNhdmUoKVwiIC8+XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgSW5wdXRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2J1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5zLWJ1dHRvbi13aXRoLWJhZGdlXSc6ICchIWJhZGdlJyxcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nQ2xhc3MsIE5nU3R5bGUsIEJhZGdlTW9kdWxlLCBUaWVyZWRNZW51TW9kdWxlLCBUb29sdGlwTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1pbi13aWR0aCcpXG4gICAgcHVibGljIG1pbldpZHRoID0gJzQwcHgnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIElkZW50aWZpY2Fkb3Igw7puaWNvIGRvIGVsZW1lbnRvIGJvdMOjbyBubyBET00uXG4gICAgICogR2VyYWRvIGF1dG9tYXRpY2FtZW50ZSBzZSBuw6NvIGluZm9ybWFkby5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZD8gPSBgcy1idXR0b24tJHtyYW5kb21IYXNoKCl9YDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUZXh0byBleGliaWRvIGRlbnRybyBkbyBib3TDo28uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWw/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGV4dG8gZG8gdG9vbHRpcCBleGliaWRvIGFvIHBhc3NhciBvIG1vdXNlIHNvYnJlIG8gYm90w6NvLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRvb2x0aXA/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUG9zacOnw6NvIGRvIHRvb2x0aXAgZW0gcmVsYcOnw6NvIGFvIGJvdMOjby5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICd0b3AnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb25zID0gJ3RvcCc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2xhc3NlIGRlIMOtY29uZSBleGliaWRhIMOgIGVzcXVlcmRhIGRvIGxhYmVsIChleC46IGAnZmFzIGZhLXNhdmUnYCkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbkNsYXNzPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENsYXNzZSBkZSDDrWNvbmUgZXhpYmlkYSDDoCBkaXJlaXRhIGRvIGxhYmVsLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJpZ2h0SWNvbkNsYXNzPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV4aWJlIG8gw61jb25lIGRlIGNhcmV0IChzZXRhKSBxdWFuZG8gbyBib3TDo28gcG9zc3VpIHVtIG1lbnUgZGUgb3DDp8O1ZXMuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FyZXQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENsYXNzZSBDU1MgYWRpY2lvbmFsIGFwbGljYWRhIGFvIGVsZW1lbnRvIGA8YnV0dG9uPmAgaW50ZXJuby5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3R5bGVDbGFzcyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFotaW5kZXggYmFzZSBkbyBwYWluZWwgZG8gbWVudSBkcm9wZG93biBhc3NvY2lhZG8gYW8gYm90w6NvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJhc2VaSW5kZXggPSAwO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERlc2FiaWxpdGEgbyBib3TDo28sIGltcGVkaW5kbyBjbGlxdWVzIGUgaW50ZXJhw6fDo28gZG8gdXN1w6FyaW8uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXBsaWNhIGVzdGlsbyBhdXhpbGlhciAobWVub3MgZGVzdGFxdWUgdmlzdWFsKSBhbyBib3TDo28uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF1eGlsaWFyeSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRpcG8gZG8gZWxlbWVudG8gYDxidXR0b24+YCBIVE1MIChgJ2J1dHRvbidgLCBgJ3N1Ym1pdCdgLCBgJ3Jlc2V0J2ApLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ2J1dHRvbidcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0eXBlPyA9ICdidXR0b24nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByaW9yaWRhZGUgdmlzdWFsIGRvIGJvdMOjbywgcXVlIGRldGVybWluYSBzZXUgZXN0aWxvLlxuICAgICAqIEFjZWl0YSBgJ3ByaW1hcnknYCwgYCdkZWZhdWx0J2AsIGAnZGFuZ2VyJ2AsIGAnbGluaydgLCBlbnRyZSBvdXRyb3MuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAncHJpbWFyeSdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwcmlvcml0eT86IEJ1dHRvblByaW9yaXR5ID0gJ3ByaW1hcnknO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIExpc3RhIGRlIGl0ZW5zIGRvIG1lbnUgZHJvcGRvd24gZXhpYmlkbyBhbyBjbGljYXIgbm8gY2FyZXQgZG8gYm90w6NvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgW11cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtZW51T3B0aW9uczogVGllcmVkTWVudUl0ZW1EYXRhW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUYW1hbmhvIHZpc3VhbCBkbyBib3TDo28uIEFjZWl0YSBgJ2RlZmF1bHQnYCBvdSBgJ3NtYWxsJ2AuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnZGVmYXVsdCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaXplPzogJ2RlZmF1bHQnIHwgJ3NtYWxsJyA9ICdkZWZhdWx0JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBIYWJpbGl0YSBvIG1vZG8gc2xpZGUsIHF1ZSBleGliZSB1bWEgYW5pbWHDp8OjbyBkZSBkZXNsaXplIGFvIHBhc3NhciBvIG1vdXNlLlxuICAgICAqIFJlcXVlciBgcHJpb3JpdHlgIGlndWFsIGEgYCdkZWZhdWx0J2Agb3UgYCdsaW5rJ2AgZSB1bSBgbGFiZWxgIGRlZmluaWRvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzbGlkZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRpcG8gZGUgYW5pbWHDp8OjbyBhcGxpY2FkYSBhbyBib3TDo28gKGAncm90YXRlJ2AsIGAncHVsc2UnYCwgZXRjLikuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYW5pbWF0aW9uPzogQnV0dG9uQW5pbWF0aW9ucztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmHDp8OjbyBkbyBiYWRnZSBleGliaWRvIHNvYnJlIG8gYm90w6NvLCBjb20gY29udGFkb3Igb3UgaW5kaWNhZG9yIHZpc3VhbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBiYWRnZT86IEJ1dHRvbkJhZGdlQ29uZmlnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvciBhcGxpY2FkYSBhbyDDrWNvbmUgZG8gYm90w6NvLCBzb2JyZXNjcmV2ZW5kbyBhIGNvciBwYWRyw6NvIGRvIHRlbWEuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbkNvbG9yPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRleHRvIGFsdGVybmF0aXZvIHBhcmEgbyBtZW51IGFzc29jaWFkbyBhbyBib3TDo28sIHV0aWxpemFkbyBwYXJhIGFjZXNzaWJpbGlkYWRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1lbnVBcmlhTGFiZWw/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGV4dG8gYWx0ZXJuYXRpdm8gcGFyYSBxdWFuZG8gbyBib3TDo28gbsOjbyB0aXZlciB1bSB0ZXh0byBleHBsaWNpdG8sIHV0aWxpemFkbyBwYXJhIGFjZXNzaWJpbGlkYWRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFyaWFMYWJlbD86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIGFvIGNsaWNhciBubyBib3TDo28sIGRlc2RlIHF1ZSBuw6NvIGVzdGVqYSBkZXNhYmlsaXRhZG8uXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGlzTWVudU9wZW4gPSBmYWxzZTtcblxuICAgIHRpZXJlZE1lbnVPcGVuZWQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICAgIHRpZXJlZE1lbnVDbG9zZWQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICAgIHB1YmxpYyB2YWxpZGF0ZVNsaWRlQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISEodGhpcy5zbGlkZSAmJiAodGhpcy5wcmlvcml0eSA9PT0gJ2RlZmF1bHQnIHx8IHRoaXMucHJpb3JpdHkgPT09ICdsaW5rJykgJiYgdGhpcy5sYWJlbD8ubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoXzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBoYXNJY29uID0gdGhpcy5pY29uQ2xhc3M7XG4gICAgICAgIGNvbnN0IGhhc1RleHQgPSB0aGlzLmxhYmVsO1xuXG4gICAgICAgIGNvbnN0IGlzTXVsdGlwbGUgPSB0aGlzLm1lbnVPcHRpb25zPy5sZW5ndGg7XG5cbiAgICAgICAgaWYgKGhhc1RleHQgfHwgKGhhc0ljb24gJiYgaXNNdWx0aXBsZSkpIHtcbiAgICAgICAgICAgIHRoaXMubWluV2lkdGggPSAnODBweCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhc1RleHQgJiYgaGFzSWNvbiAmJiBpc011bHRpcGxlKSB7XG4gICAgICAgICAgICB0aGlzLm1pbldpZHRoID0gJzEwMHB4JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc1JvdGF0ZUFuaW1hdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uID09PSAncm90YXRlJztcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UaWVyZWRNZW51T3BlbmVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTWVudU9wZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLnRpZXJlZE1lbnVPcGVuZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRpZXJlZE1lbnVDbG9zZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNNZW51T3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRpZXJlZE1lbnVDbG9zZWQuZW1pdCgpO1xuICAgIH1cbn1cblxuIiwiPGJ1dHRvblxuICAgIFtpZF09XCJpZFwiXG4gICAgW3R5cGVdPVwidHlwZVwiXG4gICAgW2NsYXNzXT1cInN0eWxlQ2xhc3NcIlxuICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJvcmRlciBib3JkZXItc29saWQgY3Vyc29yLXBvaW50ZXIgZm9udC1vcGVuLXNhbnMgdGV4dC1zbSBtYXgtdy1mdWxsIG1pbi13LVs0MHB4XSBvdXRsaW5lLW5vbmUgb3ZlcmZsb3ctdmlzaWJsZSBweS1bNXB4XSBweC1bMTBweF0gcmVsYXRpdmUgbm8tdW5kZXJsaW5lIG5vcm1hbC1jYXNlIHRyYW5zaXRpb24tW2JhY2tncm91bmQtY29sb3IsYm9yZGVyLWNvbG9yLGNvbG9yXSBkdXJhdGlvbi0yMDAgZWFzZS1vdXQgdGV4dC1ncmF5c2NhbGUtMCBkaXNhYmxlZDpjdXJzb3ItdGV4dCBkaXNhYmxlZDpvcGFjaXR5LTUwXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdyb3VuZGVkLW1lZGl1bSc6ICFhdXhpbGlhcnksXG4gICAgICAgICdyb3VuZGVkLVsyMHB4XSc6IGF1eGlsaWFyeSAmJiAhKGljb25DbGFzcyAmJiAhbGFiZWwgJiYgIW1lbnVPcHRpb25zLmxlbmd0aCksXG4gICAgICAgICdyb3VuZGVkLVs1MCVdJzogYXV4aWxpYXJ5ICYmICEhKGljb25DbGFzcyAmJiAhbGFiZWwgJiYgIW1lbnVPcHRpb25zLmxlbmd0aCksXG4gICAgICAgICdoLVszNXB4XSc6IHNpemUgIT09ICdzbWFsbCcsXG4gICAgICAgICdoLVsyNXB4XSc6IHNpemUgPT09ICdzbWFsbCcsXG4gICAgICAgICdtYXgtdy02IG1heC1oLTYgbWluLXctNic6IHNpemUgPT09ICdzbWFsbCcgJiYgISEoaWNvbkNsYXNzICYmICFsYWJlbCAmJiAhbWVudU9wdGlvbnMubGVuZ3RoKSxcbiAgICAgICAgJ3MtYnV0dG9uLWF1eGlsaWFyeSc6IGF1eGlsaWFyeSxcbiAgICAgICAgJ3MtYnV0dG9uLXdpdGgtaWNvbic6ICEhaWNvbkNsYXNzLFxuICAgICAgICAncy1idXR0b24td2l0aC10ZXh0JzogISFsYWJlbCxcbiAgICAgICAgJ3MtYnV0dG9uLW9ubHktaWNvbic6ICEhKGljb25DbGFzcyAmJiAhbGFiZWwgJiYgIW1lbnVPcHRpb25zLmxlbmd0aCksXG4gICAgICAgICdzLWJ1dHRvbi1lbXB0eSc6ICFpY29uQ2xhc3MgJiYgIWxhYmVsLFxuICAgICAgICAncy1idXR0b24tc2l6ZS1kZWZhdWx0Jzogc2l6ZSA9PT0gJ2RlZmF1bHQnLFxuICAgICAgICAncy1idXR0b24tc2l6ZS1zbWFsbCc6IHNpemUgPT09ICdzbWFsbCcsXG4gICAgICAgICdzLWJ1dHRvbi1wcmlvcml0eS1kZWZhdWx0JzogcHJpb3JpdHkgPT09ICdkZWZhdWx0JyxcbiAgICAgICAgJ3MtYnV0dG9uLXByaW9yaXR5LXByaW1hcnknOiBwcmlvcml0eSA9PT0gJ3ByaW1hcnknLFxuICAgICAgICAncy1idXR0b24tcHJpb3JpdHktc2Vjb25kYXJ5JzogcHJpb3JpdHkgPT09ICdzZWNvbmRhcnknLFxuICAgICAgICAncy1idXR0b24tcHJpb3JpdHktbGluayc6IHByaW9yaXR5ID09PSAnbGluaycsXG4gICAgICAgICdzLWJ1dHRvbi1wcmlvcml0eS1kYW5nZXInOiBwcmlvcml0eSA9PT0gJ2RhbmdlcicsXG4gICAgICAgICdzLWJ1dHRvbi1tdWx0aXBsZSc6IChjYXJldCAmJiBtZW51T3B0aW9ucy5sZW5ndGgpIHx8ICEhcmlnaHRJY29uQ2xhc3MsXG4gICAgICAgICdzLWJ1dHRvbi0tc2xpZGUnOiB2YWxpZGF0ZVNsaWRlQnV0dG9uKCksXG4gICAgICAgICdzLWJ1dHRvbi0tcm90YXRlLWFuaW1hdGlvbic6IGlzUm90YXRlQW5pbWF0aW9uKCksXG4gICAgfVwiXG4gICAgc1RpZXJlZE1lbnVcbiAgICBbaXRlbXNdPVwibWVudU9wdGlvbnNcIlxuICAgIFthcmlhTGFiZWxdPVwibWVudUFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJtZW51T3B0aW9ucy5sZW5ndGggPyAnbWVudScgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm1lbnVPcHRpb25zLmxlbmd0aCA/IGlzTWVudU9wZW4gOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbc1Rvb2x0aXBdPVwidG9vbHRpcFwiXG4gICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb25cIlxuICAgICh0aWVyZWRNZW51T3BlbmVkKT1cIm9uVGllcmVkTWVudU9wZW5lZCgpXCJcbiAgICAodGllcmVkTWVudUNsb3NlZCk9XCJvblRpZXJlZE1lbnVDbG9zZWQoKVwiXG4gICAgKGNsaWNrKT1cImNsaWNrZWQuZW1pdCgkZXZlbnQpXCJcbj5cbiAgICBAaWYgKGljb25DbGFzcykge1xuICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2NsYXNzXT1cImljb25DbGFzc1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3MtYnV0dG9uLWljb24gaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAnbXItWzEwcHhdJzogIWxhYmVsICYmIG1lbnVPcHRpb25zLmxlbmd0aCxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogaWNvbkNvbG9yIH1cIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuICAgIEBpZiAobGFiZWwpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwicy1idXR0b24tdGV4dCBibG9jayBvdmVyZmxvdy1oaWRkZW4gdGV4dC1lbGxpcHNpcyB3aGl0ZXNwYWNlLW5vd3JhcFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ21yLVsxMHB4XSc6ICEhcmlnaHRJY29uQ2xhc3MgfHwgbWVudU9wdGlvbnMubGVuZ3RoLFxuICAgICAgICAgICAgICAgICdtbC1bMTBweF0nOiAhIWljb25DbGFzcyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICBAaWYgKHJpZ2h0SWNvbkNsYXNzKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBbY2xhc3NdPVwicmlnaHRJY29uQ2xhc3NcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncy1idXR0b24tcmlnaHQtaWNvbiBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXInOiB0cnVlIH1cIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogaWNvbkNvbG9yIH1cIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuICAgIEBpZiAoKGNhcmV0ICYmIG1lbnVPcHRpb25zLmxlbmd0aCkgfHwgKG1lbnVPcHRpb25zICYmIG1lbnVPcHRpb25zLmxlbmd0aCkpIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwibWVudS1vcHRpb25zLWljb24gZmEgZmEtZncgZmEtY2FyZXQtZG93blwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG48L2J1dHRvbj5cbkBpZiAoYmFkZ2UpIHtcbiAgICA8ZGl2IGNsYXNzPVwiei1bOTldIHJlbGF0aXZlIHJpZ2h0LVsxNXB4XSBib3R0b20tWzE2cHhdXCI+XG4gICAgICAgIDxzLWJhZGdlXG4gICAgICAgICAgICBbY29sb3JdPVwiYmFkZ2UuY29sb3JcIlxuICAgICAgICAgICAgW3RleHRdPVwiYmFkZ2UudGV4dFwiXG4gICAgICAgICAgICBbaWNvbkNsYXNzXT1cImJhZGdlLmljb25DbGFzc1wiXG4gICAgICAgID5cbiAgICAgICAgPC9zLWJhZGdlPlxuICAgIDwvZGl2PlxufVxuXG4iXX0=
|
|
@@ -27,7 +27,7 @@ import * as i2 from "@seniorsistemas/angular-components/button";
|
|
|
27
27
|
export class PopupConfirmDialogComponent {
|
|
28
28
|
confirmDialog;
|
|
29
29
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopupConfirmDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PopupConfirmDialogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "@if (confirmDialog) {\n <s-dialog [header]=\"confirmDialog.header\">\n <div class=\"grid grid-cols-12\">\n <div class=\"col-span-12\">\n {{ confirmDialog.message }}\n </div>\n </div>\n <ng-template\n sTemplate=\"footer\"\n let-activeDialog=\"activeDialog\"\n >\n <div class=\"grid grid-cols-12\">\n <div class=\"col-span-12 flex flex-wrap justify-end gap-3\">\n @if (confirmDialog.rejectLabel) {\n <s-button\n [label]=\"confirmDialog.rejectLabel\"\n (clicked)=\"activeDialog.close(false)\"\n label=\"A\u00E7\u00E3o secund\u00E1ria\"\n priority=\"link\"\n />\n }\n <s-button\n [label]=\"confirmDialog.acceptLabel\"\n (clicked)=\"activeDialog.close(true)\"\n priority=\"primary\"\n />\n </div>\n </div>\n </ng-template>\n </s-dialog>\n}\n", dependencies: [{ kind: "component", type: DialogComponent, selector: "s-dialog", inputs: ["header", "visible", "size", "contentClassName", "escapeOnEsc", "destroyClickOutside", "closeAriaLabel"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: TemplateModule }, { kind: "directive", type: i1.TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.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"] }] });
|
|
30
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PopupConfirmDialogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "@if (confirmDialog) {\n <s-dialog [header]=\"confirmDialog.header\">\n <div class=\"grid grid-cols-12\">\n <div class=\"col-span-12\">\n {{ confirmDialog.message }}\n </div>\n </div>\n <ng-template\n sTemplate=\"footer\"\n let-activeDialog=\"activeDialog\"\n >\n <div class=\"grid grid-cols-12\">\n <div class=\"col-span-12 flex flex-wrap justify-end gap-3\">\n @if (confirmDialog.rejectLabel) {\n <s-button\n [label]=\"confirmDialog.rejectLabel\"\n (clicked)=\"activeDialog.close(false)\"\n label=\"A\u00E7\u00E3o secund\u00E1ria\"\n priority=\"link\"\n />\n }\n <s-button\n [label]=\"confirmDialog.acceptLabel\"\n (clicked)=\"activeDialog.close(true)\"\n priority=\"primary\"\n />\n </div>\n </div>\n </ng-template>\n </s-dialog>\n}\n", dependencies: [{ kind: "component", type: DialogComponent, selector: "s-dialog", inputs: ["header", "visible", "size", "contentClassName", "escapeOnEsc", "destroyClickOutside", "closeAriaLabel"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: TemplateModule }, { kind: "directive", type: i1.TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.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"] }] });
|
|
31
31
|
}
|
|
32
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopupConfirmDialogComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
@@ -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"] }, { 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"] }, { 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=
|