@seniorsistemas/angular-components 19.9.13 → 19.9.14-develop-23365630
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/card/lib/card/card.component.d.ts +2 -0
- package/confirm-dialog/README.md +2 -0
- package/confirm-dialog/lib/confirm-dialog.model.d.ts +2 -0
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +1 -0
- package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +0 -1
- package/esm2022/card/lib/card/card.component.mjs +17 -3
- package/esm2022/chips/lib/chips/chips/chips.component.mjs +3 -3
- package/esm2022/confirm-dialog/lib/confirm-dialog.model.mjs +1 -1
- package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +3 -3
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +12 -7
- package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +3 -5
- package/esm2022/text-area/lib/text-area/text-area.component.mjs +3 -3
- package/fesm2022/seniorsistemas-angular-components-card.mjs +16 -2
- package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-chips.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +11 -6
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.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 +2 -4
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -36,6 +36,8 @@ export declare class CardComponent implements AfterContentInit {
|
|
|
36
36
|
bodyTemplate?: TemplateRef<unknown>;
|
|
37
37
|
footerTemplate?: TemplateRef<unknown>;
|
|
38
38
|
get hasHeader(): string | true;
|
|
39
|
+
onClick(event: MouseEvent): void;
|
|
40
|
+
onKeydown(event: Event): void;
|
|
39
41
|
ngAfterContentInit(): Promise<void>;
|
|
40
42
|
private _getHeaderTemplate;
|
|
41
43
|
private _getBodyTemplate;
|
package/confirm-dialog/README.md
CHANGED
|
@@ -58,6 +58,7 @@ type ConfirmDialog = {
|
|
|
58
58
|
message: string; // Mensagem exibida no corpo (obrigatório)
|
|
59
59
|
acceptLabel: string; // Label do botão de confirmar (obrigatório)
|
|
60
60
|
accept: VoidFunction; // Callback ao confirmar (obrigatório)
|
|
61
|
+
acceptPriority?: ButtonPriority; // Prioridade do botão de confirmar, ex: 'danger' (padrão: 'primary')
|
|
61
62
|
rejectLabel?: string; // Label do botão de cancelar (opcional)
|
|
62
63
|
reject?: VoidFunction; // Callback ao cancelar ou fechar (opcional)
|
|
63
64
|
}
|
|
@@ -78,6 +79,7 @@ this.confirmDialogService.confirm({
|
|
|
78
79
|
header: 'Remover este item?',
|
|
79
80
|
message: 'Uma vez removido, o item não poderá ser restaurado.',
|
|
80
81
|
acceptLabel: 'Remover',
|
|
82
|
+
acceptPriority: 'danger',
|
|
81
83
|
rejectLabel: 'Cancelar',
|
|
82
84
|
accept: () => { this.lastAction = 'Confirmado: item removido'; },
|
|
83
85
|
reject: () => { this.lastAction = 'Cancelado'; },
|
|
@@ -76,6 +76,7 @@ export declare class CountryPhonePickerComponent implements OnInit, ControlValue
|
|
|
76
76
|
set value(value: PhoneSelectionData);
|
|
77
77
|
get open(): boolean;
|
|
78
78
|
set open(open: boolean);
|
|
79
|
+
private _detachDropdownPortal;
|
|
79
80
|
onClickout(event: MouseEvent): void;
|
|
80
81
|
onKeydown(event: KeyboardEvent): void;
|
|
81
82
|
writeValue(value: PhoneSelectionData): void;
|
|
@@ -29,7 +29,6 @@ export declare class LookupComponent implements ControlValueAccessor, OnChanges,
|
|
|
29
29
|
protected rowType: string;
|
|
30
30
|
indicatorLogo: LoadingStateIndicators;
|
|
31
31
|
static nextId: number;
|
|
32
|
-
protected hasSearched: boolean;
|
|
33
32
|
alertConfig?: LookupAlertConfig;
|
|
34
33
|
formControlName?: string;
|
|
35
34
|
id: string;
|
|
@@ -41,6 +41,20 @@ export class CardComponent {
|
|
|
41
41
|
const hasHeaderAttributes = this.title || this.subtitle || this.icon;
|
|
42
42
|
return headerTemplate || hasHeaderAttributes;
|
|
43
43
|
}
|
|
44
|
+
onClick(event) {
|
|
45
|
+
if (this.clickable) {
|
|
46
|
+
this.clicked.emit(event);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
onKeydown(event) {
|
|
50
|
+
if (!this.clickable || event.target !== event.currentTarget) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (event.key === ' ') {
|
|
54
|
+
event.preventDefault();
|
|
55
|
+
}
|
|
56
|
+
this.clicked.emit(event);
|
|
57
|
+
}
|
|
44
58
|
async ngAfterContentInit() {
|
|
45
59
|
await this._setShowBanner();
|
|
46
60
|
this._setTemplates();
|
|
@@ -82,11 +96,11 @@ export class CardComponent {
|
|
|
82
96
|
});
|
|
83
97
|
}
|
|
84
98
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CardComponent, isStandalone: true, selector: "s-card", inputs: { bannerImage: "bannerImage", fullWidth: "fullWidth", clickable: "clickable", title: "title", subtitle: "subtitle", icon: "icon" }, outputs: { clicked: "clicked" }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], ngImport: i0, template: "<div\r\n class=\"inline-flex flex-col bg-grayscale-0 rounded-medium shadow-[0px_1px_5px_0px_#00000040] overflow-hidden\"\r\n [class.w-full]=\"fullWidth\"\r\n [attr.tabindex]=\"clickable ? 0 : null\"\r\n [attr.role]=\"clickable ? 'button' : null\"\r\n [ngClass]=\"{\r\n 'cursor-pointer focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[3px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]': clickable\r\n }\"\r\n (click)=\"
|
|
99
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CardComponent, isStandalone: true, selector: "s-card", inputs: { bannerImage: "bannerImage", fullWidth: "fullWidth", clickable: "clickable", title: "title", subtitle: "subtitle", icon: "icon" }, outputs: { clicked: "clicked" }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], ngImport: i0, template: "<div\r\n class=\"inline-flex flex-col bg-grayscale-0 rounded-medium shadow-[0px_1px_5px_0px_#00000040] overflow-hidden\"\r\n [class.w-full]=\"fullWidth\"\r\n [attr.tabindex]=\"clickable ? 0 : null\"\r\n [attr.role]=\"clickable ? 'button' : null\"\r\n [ngClass]=\"{\r\n 'cursor-pointer focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[3px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]': clickable\r\n }\"\r\n (click)=\"onClick($event)\"\r\n (keydown.enter)=\"onKeydown($event)\"\r\n (keydown.space)=\"onKeydown($event)\"\r\n>\r\n @if (showBanner) {\r\n <div\r\n class=\"bg-no-repeat bg-cover h-[150px] w-full\"\r\n [ngStyle]=\"{ 'background-image': 'url(' + bannerImage + ')' }\"\r\n ></div>\r\n }\r\n\r\n <!-- @if (hasCustomTemplates) {\r\n @if (headerTemplate) {\r\n <div class=\"header\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n </div>\r\n }\r\n @if (bodyTemplate) {\r\n <div class=\"body\">\r\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\r\n </div>\r\n }\r\n @if (footerTemplate) {\r\n <div class=\"footer\">\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n }\r\n} @else {\r\n <div class=\"body\">\r\n <ng-content></ng-content>\r\n </div>\r\n } -->\r\n\r\n @if (hasHeader) {\r\n <div class=\"py-4 px-3\">\r\n @if (headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n }\r\n @if (!headerTemplate) {\r\n <div class=\"flex gap-3\">\r\n @if (icon) {\r\n <div class=\"rounded-[50%] bg-grayscale-20 w-[3em] flex items-center justify-center min-h-[3em]\">\r\n <i [class]=\"icon\"></i>\r\n </div>\r\n }\r\n <div>\r\n @if (title) {\r\n <div class=\"text-grayscale-90 text-sm font-bold\">\r\n {{ title }}\r\n </div>\r\n }\r\n @if (subtitle) {\r\n <div class=\"text-grayscale-60 text-sm font-normal\">\r\n {{ subtitle }}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n <div class=\"p-4\" [class.border-t]=\"hasHeader\" [class.border-t-grayscale-30]=\"hasHeader\">\r\n @if (bodyTemplate) {\r\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n </div>\r\n\r\n @if (footerTemplate) {\r\n <div class=\"p-4 border-t border-t-grayscale-30\">\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n }\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
86
100
|
}
|
|
87
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, decorators: [{
|
|
88
102
|
type: Component,
|
|
89
|
-
args: [{ selector: 's-card', standalone: true, imports: [NgClass, NgStyle, NgTemplateOutlet], template: "<div\r\n class=\"inline-flex flex-col bg-grayscale-0 rounded-medium shadow-[0px_1px_5px_0px_#00000040] overflow-hidden\"\r\n [class.w-full]=\"fullWidth\"\r\n [attr.tabindex]=\"clickable ? 0 : null\"\r\n [attr.role]=\"clickable ? 'button' : null\"\r\n [ngClass]=\"{\r\n 'cursor-pointer focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[3px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]': clickable\r\n }\"\r\n (click)=\"
|
|
103
|
+
args: [{ selector: 's-card', standalone: true, imports: [NgClass, NgStyle, NgTemplateOutlet], template: "<div\r\n class=\"inline-flex flex-col bg-grayscale-0 rounded-medium shadow-[0px_1px_5px_0px_#00000040] overflow-hidden\"\r\n [class.w-full]=\"fullWidth\"\r\n [attr.tabindex]=\"clickable ? 0 : null\"\r\n [attr.role]=\"clickable ? 'button' : null\"\r\n [ngClass]=\"{\r\n 'cursor-pointer focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[3px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]': clickable\r\n }\"\r\n (click)=\"onClick($event)\"\r\n (keydown.enter)=\"onKeydown($event)\"\r\n (keydown.space)=\"onKeydown($event)\"\r\n>\r\n @if (showBanner) {\r\n <div\r\n class=\"bg-no-repeat bg-cover h-[150px] w-full\"\r\n [ngStyle]=\"{ 'background-image': 'url(' + bannerImage + ')' }\"\r\n ></div>\r\n }\r\n\r\n <!-- @if (hasCustomTemplates) {\r\n @if (headerTemplate) {\r\n <div class=\"header\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n </div>\r\n }\r\n @if (bodyTemplate) {\r\n <div class=\"body\">\r\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\r\n </div>\r\n }\r\n @if (footerTemplate) {\r\n <div class=\"footer\">\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n }\r\n} @else {\r\n <div class=\"body\">\r\n <ng-content></ng-content>\r\n </div>\r\n } -->\r\n\r\n @if (hasHeader) {\r\n <div class=\"py-4 px-3\">\r\n @if (headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n }\r\n @if (!headerTemplate) {\r\n <div class=\"flex gap-3\">\r\n @if (icon) {\r\n <div class=\"rounded-[50%] bg-grayscale-20 w-[3em] flex items-center justify-center min-h-[3em]\">\r\n <i [class]=\"icon\"></i>\r\n </div>\r\n }\r\n <div>\r\n @if (title) {\r\n <div class=\"text-grayscale-90 text-sm font-bold\">\r\n {{ title }}\r\n </div>\r\n }\r\n @if (subtitle) {\r\n <div class=\"text-grayscale-60 text-sm font-normal\">\r\n {{ subtitle }}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n <div class=\"p-4\" [class.border-t]=\"hasHeader\" [class.border-t-grayscale-30]=\"hasHeader\">\r\n @if (bodyTemplate) {\r\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n </div>\r\n\r\n @if (footerTemplate) {\r\n <div class=\"p-4 border-t border-t-grayscale-30\">\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n }\r\n</div>\r\n" }]
|
|
90
104
|
}], propDecorators: { bannerImage: [{
|
|
91
105
|
type: Input
|
|
92
106
|
}], fullWidth: [{
|
|
@@ -105,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
105
119
|
type: ContentChildren,
|
|
106
120
|
args: [TemplateDirective]
|
|
107
121
|
}] } });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2FyZC9zcmMvbGliL2NhcmQvY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2FyZC9zcmMvbGliL2NhcmQvY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBRWxJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXJFOzs7Ozs7Ozs7Ozs7R0FZRztBQU9ILE1BQU0sT0FBTyxhQUFhO0lBQ3RCLHNFQUFzRTtJQUUvRCxXQUFXLENBQVU7SUFFNUIsZ0ZBQWdGO0lBRXpFLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFekIsbUhBQW1IO0lBRTVHLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFekIsaUhBQWlIO0lBRTFHLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0lBRWhELG9FQUFvRTtJQUMzRCxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRXBCLG1FQUFtRTtJQUMxRCxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBRXZCLHFFQUFxRTtJQUM1RCxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRVosVUFBVSxHQUFHLEtBQUssQ0FBQztJQUduQixTQUFTLENBQWdDO0lBRXpDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUMzQixjQUFjLENBQXdCO0lBQ3RDLFlBQVksQ0FBd0I7SUFDcEMsY0FBYyxDQUF3QjtJQUU3QyxJQUFXLFNBQVM7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Q29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90ZW1wbGF0ZSc7XHJcbmltcG9ydCB7IE5nQ2xhc3MsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIGNhcnTDo28gY29tIHN1cG9ydGUgYSBiYW5uZXIsIGNhYmXDp2FsaG8gKHTDrXR1bG8sIHN1YnTDrXR1bG8gZSDDrWNvbmUpXHJcbiAqIGUgdGVtcGxhdGVzIGN1c3RvbWl6w6F2ZWlzIHBhcmEgY2FiZcOnYWxobywgY29ycG8gZSByb2RhcMOpIHZpYSBgVGVtcGxhdGVEaXJlY3RpdmVgLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBodG1sXHJcbiAqIDxzLWNhcmQgdGl0bGU9XCJUw610dWxvXCIgc3VidGl0bGU9XCJTdWJ0w610dWxvXCI+XHJcbiAqICAgPG5nLXRlbXBsYXRlIHNUZW1wbGF0ZSB0eXBlPVwiYm9keVwiPkNvbnRlw7pkbzwvbmctdGVtcGxhdGU+XHJcbiAqIDwvcy1jYXJkPlxyXG4gKiBgYGBcclxuICpcclxuICogQGNhdGVnb3J5IFN0cnVjdHVyZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtY2FyZCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW05nQ2xhc3MsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBVUkwgZGEgaW1hZ2VtIGV4aWJpZGEgY29tbyBiYW5uZXIgbm8gdG9wbyBkbyBjYXJkLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBiYW5uZXJJbWFnZT86IHN0cmluZztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEZheiBvIGNhcmQgb2N1cGFyIDEwMCUgZGEgbGFyZ3VyYSBkaXNwb27DrXZlbC4gQGRlZmF1bHQgZmFsc2UgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZnVsbFdpZHRoID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUb3JuYSBvIGNhcmQgaW50ZXJhdGl2bywgaGFiaWxpdGFuZG8gZm9jbyBwb3IgdGVjbGFkbyBlIGNsaXF1ZSBubyBlbGVtZW50byByYWl6LiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjbGlja2FibGUgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gdXN1w6FyaW8gY2xpY2Egb3UgcHJlc3Npb25hIEVudGVyL0VzcGHDp28gbm8gY2FyZCAocmVxdWVyIGBjbGlja2FibGUgPSB0cnVlYCkuICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBjbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gVMOtdHVsbyBleGliaWRvIG5vIGNhYmXDp2FsaG8gZG8gY2FyZC4gQGRlZmF1bHQgJycgKi9cclxuICAgIEBJbnB1dCgpIHRpdGxlID0gJyc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBTdWJ0w610dWxvIGV4aWJpZG8gYWJhaXhvIGRvIHTDrXR1bG8uIEBkZWZhdWx0ICcnICovXHJcbiAgICBASW5wdXQoKSBzdWJ0aXRsZSA9ICcnO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gQ2xhc3NlIGRvIMOtY29uZSBleGliaWRvIG5vIGNhYmXDp2FsaG8uIEBkZWZhdWx0ICcnICovXHJcbiAgICBASW5wdXQoKSBpY29uID0gJyc7XHJcblxyXG4gICAgcHVibGljIHNob3dCYW5uZXIgPSBmYWxzZTtcclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKFRlbXBsYXRlRGlyZWN0aXZlKVxyXG4gICAgcHVibGljIHRlbXBsYXRlcz86IFF1ZXJ5TGlzdDxUZW1wbGF0ZURpcmVjdGl2ZT47XHJcblxyXG4gICAgcHVibGljIGhhc0N1c3RvbVRlbXBsYXRlcyA9IGZhbHNlO1xyXG4gICAgcHVibGljIGhlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgICBwdWJsaWMgYm9keVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgICBwdWJsaWMgZm9vdGVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IGhhc0hlYWRlcigpIHtcclxuICAgICAgICBjb25zdCBoZWFkZXJUZW1wbGF0ZSA9ICEhdGhpcy5oZWFkZXJUZW1wbGF0ZTtcclxuICAgICAgICBjb25zdCBoYXNIZWFkZXJBdHRyaWJ1dGVzID0gdGhpcy50aXRsZSB8fCB0aGlzLnN1YnRpdGxlIHx8IHRoaXMuaWNvbjtcclxuICAgICAgICByZXR1cm4gaGVhZGVyVGVtcGxhdGUgfHwgaGFzSGVhZGVyQXR0cmlidXRlcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgbmdBZnRlckNvbnRlbnRJbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuX3NldFNob3dCYW5uZXIoKTtcclxuICAgICAgICB0aGlzLl9zZXRUZW1wbGF0ZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRIZWFkZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEN1c3RvbVRlbXBsYXRlKCdoZWFkZXInKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRCb2R5VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRDdXN0b21UZW1wbGF0ZSgnYm9keScpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldEZvb3RlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q3VzdG9tVGVtcGxhdGUoJ2Zvb3RlcicpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldEN1c3RvbVRlbXBsYXRlKHR5cGU6IHN0cmluZyk6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZXM/LmZpbmQoKHRlbXBsYXRlOiBUZW1wbGF0ZURpcmVjdGl2ZSkgPT4gdGVtcGxhdGUudHlwZSA9PT0gdHlwZSk/LnRlbXBsYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NldFRlbXBsYXRlcygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmhlYWRlclRlbXBsYXRlID0gdGhpcy5fZ2V0SGVhZGVyVGVtcGxhdGUoKTtcclxuICAgICAgICB0aGlzLmJvZHlUZW1wbGF0ZSA9IHRoaXMuX2dldEJvZHlUZW1wbGF0ZSgpO1xyXG4gICAgICAgIHRoaXMuZm9vdGVyVGVtcGxhdGUgPSB0aGlzLl9nZXRGb290ZXJUZW1wbGF0ZSgpO1xyXG5cclxuICAgICAgICB0aGlzLmhhc0N1c3RvbVRlbXBsYXRlcyA9ICEhKHRoaXMuaGVhZGVyVGVtcGxhdGUgfHwgdGhpcy5ib2R5VGVtcGxhdGUgfHwgdGhpcy5mb290ZXJUZW1wbGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0U2hvd0Jhbm5lcigpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmJhbm5lckltYWdlKSB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpO1xyXG4gICAgICAgICAgICBpbWcuc3JjID0gdGhpcy5iYW5uZXJJbWFnZTtcclxuICAgICAgICAgICAgaW1nLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Jhbm5lciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBpbWcub25lcnJvciA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Jhbm5lciA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAgIGNsYXNzPVwiaW5saW5lLWZsZXggZmxleC1jb2wgYmctZ3JheXNjYWxlLTAgcm91bmRlZC1tZWRpdW0gc2hhZG93LVswcHhfMXB4XzVweF8wcHhfIzAwMDAwMDQwXSBvdmVyZmxvdy1oaWRkZW5cIlxyXG4gICAgW2NsYXNzLnctZnVsbF09XCJmdWxsV2lkdGhcIlxyXG4gICAgW2F0dHIudGFiaW5kZXhdPVwiY2xpY2thYmxlID8gMCA6IG51bGxcIlxyXG4gICAgW2F0dHIucm9sZV09XCJjbGlja2FibGUgPyAnYnV0dG9uJyA6IG51bGxcIlxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICdjdXJzb3ItcG9pbnRlciBmb2N1cy12aXNpYmxlOm91dGxpbmUgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLTIgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW9mZnNldC1bM3B4XSBmb2N1cy12aXNpYmxlOm91dGxpbmUtW3ZhcigtLXMtZm9jdXMtcmluZy1jb2xvciwjMDA5MGZmKV0nOiBjbGlja2FibGVcclxuICAgIH1cIlxyXG4gICAgKGNsaWNrKT1cImNsaWNrYWJsZSAmJiBjbGlja2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAoa2V5ZG93bi5lbnRlcik9XCJjbGlja2FibGUgJiYgY2xpY2tlZC5lbWl0KCRhbnkoJGV2ZW50KSlcIlxyXG4gICAgKGtleWRvd24uc3BhY2UpPVwiY2xpY2thYmxlICYmIGNsaWNrZWQuZW1pdCgkYW55KCRldmVudCkpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXHJcbj5cclxuICAgIEBpZiAoc2hvd0Jhbm5lcikge1xyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJiZy1uby1yZXBlYXQgYmctY292ZXIgaC1bMTUwcHhdIHctZnVsbFwiXHJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKCcgKyBiYW5uZXJJbWFnZSArICcpJyB9XCJcclxuICAgICAgICA+PC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgPCEtLSBAaWYgKGhhc0N1c3RvbVRlbXBsYXRlcykge1xyXG4gIEBpZiAoaGVhZGVyVGVtcGxhdGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbiAgQGlmIChib2R5VGVtcGxhdGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJib2R5XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib2R5VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICBAaWYgKGZvb3RlclRlbXBsYXRlKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG59IEBlbHNlIHtcclxuICA8ZGl2IGNsYXNzPVwiYm9keVwiPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG4gIH0gLS0+XHJcblxyXG4gICAgQGlmIChoYXNIZWFkZXIpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHktNCBweC0zXCI+XHJcbiAgICAgICAgICAgIEBpZiAoaGVhZGVyVGVtcGxhdGUpIHtcclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZiAoIWhlYWRlclRlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaWNvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm91bmRlZC1bNTAlXSBiZy1ncmF5c2NhbGUtMjAgdy1bM2VtXSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtaW4taC1bM2VtXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImljb25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHRpdGxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5c2NhbGUtOTAgdGV4dC1zbSBmb250LWJvbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0aXRsZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzdWJ0aXRsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheXNjYWxlLTYwIHRleHQtc20gZm9udC1ub3JtYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzdWJ0aXRsZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8ZGl2IGNsYXNzPVwicC00XCIgW2NsYXNzLmJvcmRlci10XT1cImhhc0hlYWRlclwiIFtjbGFzcy5ib3JkZXItdC1ncmF5c2NhbGUtMzBdPVwiaGFzSGVhZGVyXCI+XHJcbiAgICAgICAgQGlmIChib2R5VGVtcGxhdGUpIHtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvZHlUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgQGlmIChmb290ZXJUZW1wbGF0ZSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLTQgYm9yZGVyLXQgYm9yZGVyLXQtZ3JheXNjYWxlLTMwXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG48L2Rpdj5cclxuIl19
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2FyZC9zcmMvbGliL2NhcmQvY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2FyZC9zcmMvbGliL2NhcmQvY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBRWxJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXJFOzs7Ozs7Ozs7Ozs7R0FZRztBQU9ILE1BQU0sT0FBTyxhQUFhO0lBQ3RCLHNFQUFzRTtJQUUvRCxXQUFXLENBQVU7SUFFNUIsZ0ZBQWdGO0lBRXpFLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFekIsbUhBQW1IO0lBRTVHLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFekIsaUhBQWlIO0lBRTFHLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0lBRWhELG9FQUFvRTtJQUMzRCxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRXBCLG1FQUFtRTtJQUMxRCxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBRXZCLHFFQUFxRTtJQUM1RCxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRVosVUFBVSxHQUFHLEtBQUssQ0FBQztJQUduQixTQUFTLENBQWdDO0lBRXpDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUMzQixjQUFjLENBQXdCO0lBQ3RDLFlBQVksQ0FBd0I7SUFDcEMsY0FBYyxDQUF3QjtJQUU3QyxJQUFXLFNBQVM7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QTNHUSxhQUFhOzRGQUFiLGFBQWEseVFBNEJMLGlCQUFpQiw2QkNwRHRDLDJpR0FtRkEsNENEN0RjLE9BQU8sb0ZBQUUsT0FBTywyRUFBRSxnQkFBZ0I7OzRGQUVuQyxhQUFhO2tCQU56QixTQUFTOytCQUNJLFFBQVEsY0FFTixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixDQUFDOzhCQUt0QyxXQUFXO3NCQURqQixLQUFLO2dCQUtDLFNBQVM7c0JBRGYsS0FBSztnQkFLQyxTQUFTO3NCQURmLEtBQUs7Z0JBS0MsT0FBTztzQkFEYixNQUFNO2dCQUlFLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLElBQUk7c0JBQVosS0FBSztnQkFLQyxTQUFTO3NCQURmLGVBQWU7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3RlbXBsYXRlJztcclxuaW1wb3J0IHsgTmdDbGFzcywgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgY2FydMOjbyBjb20gc3Vwb3J0ZSBhIGJhbm5lciwgY2FiZcOnYWxobyAodMOtdHVsbywgc3VidMOtdHVsbyBlIMOtY29uZSlcclxuICogZSB0ZW1wbGF0ZXMgY3VzdG9taXrDoXZlaXMgcGFyYSBjYWJlw6dhbGhvLCBjb3JwbyBlIHJvZGFww6kgdmlhIGBUZW1wbGF0ZURpcmVjdGl2ZWAuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHMtY2FyZCB0aXRsZT1cIlTDrXR1bG9cIiBzdWJ0aXRsZT1cIlN1YnTDrXR1bG9cIj5cclxuICogICA8bmctdGVtcGxhdGUgc1RlbXBsYXRlIHR5cGU9XCJib2R5XCI+Q29udGXDumRvPC9uZy10ZW1wbGF0ZT5cclxuICogPC9zLWNhcmQ+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgU3RydWN0dXJlXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncy1jYXJkJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdDbGFzcywgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFVSTCBkYSBpbWFnZW0gZXhpYmlkYSBjb21vIGJhbm5lciBubyB0b3BvIGRvIGNhcmQuICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGJhbm5lckltYWdlPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRmF6IG8gY2FyZCBvY3VwYXIgMTAwJSBkYSBsYXJndXJhIGRpc3BvbsOtdmVsLiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmdWxsV2lkdGggPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRvcm5hIG8gY2FyZCBpbnRlcmF0aXZvLCBoYWJpbGl0YW5kbyBmb2NvIHBvciB0ZWNsYWRvIGUgY2xpcXVlIG5vIGVsZW1lbnRvIHJhaXouIEBkZWZhdWx0IGZhbHNlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNsaWNrYWJsZSA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyB1c3XDoXJpbyBjbGljYSBvdSBwcmVzc2lvbmEgRW50ZXIvRXNwYcOnbyBubyBjYXJkIChyZXF1ZXIgYGNsaWNrYWJsZSA9IHRydWVgKS4gKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUw610dWxvIGV4aWJpZG8gbm8gY2FiZcOnYWxobyBkbyBjYXJkLiBAZGVmYXVsdCAnJyAqL1xyXG4gICAgQElucHV0KCkgdGl0bGUgPSAnJztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFN1YnTDrXR1bG8gZXhpYmlkbyBhYmFpeG8gZG8gdMOtdHVsby4gQGRlZmF1bHQgJycgKi9cclxuICAgIEBJbnB1dCgpIHN1YnRpdGxlID0gJyc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDbGFzc2UgZG8gw61jb25lIGV4aWJpZG8gbm8gY2FiZcOnYWxoby4gQGRlZmF1bHQgJycgKi9cclxuICAgIEBJbnB1dCgpIGljb24gPSAnJztcclxuXHJcbiAgICBwdWJsaWMgc2hvd0Jhbm5lciA9IGZhbHNlO1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVEaXJlY3RpdmUpXHJcbiAgICBwdWJsaWMgdGVtcGxhdGVzPzogUXVlcnlMaXN0PFRlbXBsYXRlRGlyZWN0aXZlPjtcclxuXHJcbiAgICBwdWJsaWMgaGFzQ3VzdG9tVGVtcGxhdGVzID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaGVhZGVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICAgIHB1YmxpYyBib2R5VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICAgIHB1YmxpYyBmb290ZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG5cclxuICAgIHB1YmxpYyBnZXQgaGFzSGVhZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IGhlYWRlclRlbXBsYXRlID0gISF0aGlzLmhlYWRlclRlbXBsYXRlO1xyXG4gICAgICAgIGNvbnN0IGhhc0hlYWRlckF0dHJpYnV0ZXMgPSB0aGlzLnRpdGxlIHx8IHRoaXMuc3VidGl0bGUgfHwgdGhpcy5pY29uO1xyXG4gICAgICAgIHJldHVybiBoZWFkZXJUZW1wbGF0ZSB8fCBoYXNIZWFkZXJBdHRyaWJ1dGVzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2xpY2thYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpY2tlZC5lbWl0KGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uS2V5ZG93bihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2xpY2thYmxlIHx8IGV2ZW50LnRhcmdldCAhPT0gZXZlbnQuY3VycmVudFRhcmdldCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoKGV2ZW50IGFzIEtleWJvYXJkRXZlbnQpLmtleSA9PT0gJyAnKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2xpY2tlZC5lbWl0KGV2ZW50IGFzIHVua25vd24gYXMgTW91c2VFdmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLl9zZXRTaG93QmFubmVyKCk7XHJcbiAgICAgICAgdGhpcy5fc2V0VGVtcGxhdGVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0SGVhZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRDdXN0b21UZW1wbGF0ZSgnaGVhZGVyJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0Qm9keVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q3VzdG9tVGVtcGxhdGUoJ2JvZHknKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRGb290ZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEN1c3RvbVRlbXBsYXRlKCdmb290ZXInKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRDdXN0b21UZW1wbGF0ZSh0eXBlOiBzdHJpbmcpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzPy5maW5kKCh0ZW1wbGF0ZTogVGVtcGxhdGVEaXJlY3RpdmUpID0+IHRlbXBsYXRlLnR5cGUgPT09IHR5cGUpPy50ZW1wbGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZXRUZW1wbGF0ZXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSA9IHRoaXMuX2dldEhlYWRlclRlbXBsYXRlKCk7XHJcbiAgICAgICAgdGhpcy5ib2R5VGVtcGxhdGUgPSB0aGlzLl9nZXRCb2R5VGVtcGxhdGUoKTtcclxuICAgICAgICB0aGlzLmZvb3RlclRlbXBsYXRlID0gdGhpcy5fZ2V0Rm9vdGVyVGVtcGxhdGUoKTtcclxuXHJcbiAgICAgICAgdGhpcy5oYXNDdXN0b21UZW1wbGF0ZXMgPSAhISh0aGlzLmhlYWRlclRlbXBsYXRlIHx8IHRoaXMuYm9keVRlbXBsYXRlIHx8IHRoaXMuZm9vdGVyVGVtcGxhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NldFNob3dCYW5uZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5iYW5uZXJJbWFnZSkge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgICAgICAgaW1nLnNyYyA9IHRoaXMuYmFubmVySW1hZ2U7XHJcbiAgICAgICAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dCYW5uZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgaW1nLm9uZXJyb3IgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dCYW5uZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cImlubGluZS1mbGV4IGZsZXgtY29sIGJnLWdyYXlzY2FsZS0wIHJvdW5kZWQtbWVkaXVtIHNoYWRvdy1bMHB4XzFweF81cHhfMHB4XyMwMDAwMDA0MF0gb3ZlcmZsb3ctaGlkZGVuXCJcclxuICAgIFtjbGFzcy53LWZ1bGxdPVwiZnVsbFdpZHRoXCJcclxuICAgIFthdHRyLnRhYmluZGV4XT1cImNsaWNrYWJsZSA/IDAgOiBudWxsXCJcclxuICAgIFthdHRyLnJvbGVdPVwiY2xpY2thYmxlID8gJ2J1dHRvbicgOiBudWxsXCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAnY3Vyc29yLXBvaW50ZXIgZm9jdXMtdmlzaWJsZTpvdXRsaW5lIGZvY3VzLXZpc2libGU6b3V0bGluZS0yIGZvY3VzLXZpc2libGU6b3V0bGluZS1vZmZzZXQtWzNweF0gZm9jdXMtdmlzaWJsZTpvdXRsaW5lLVt2YXIoLS1zLWZvY3VzLXJpbmctY29sb3IsIzAwOTBmZildJzogY2xpY2thYmxlXHJcbiAgICB9XCJcclxuICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxyXG4gICAgKGtleWRvd24uZW50ZXIpPVwib25LZXlkb3duKCRldmVudClcIlxyXG4gICAgKGtleWRvd24uc3BhY2UpPVwib25LZXlkb3duKCRldmVudClcIlxyXG4+XHJcbiAgICBAaWYgKHNob3dCYW5uZXIpIHtcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiYmctbm8tcmVwZWF0IGJnLWNvdmVyIGgtWzE1MHB4XSB3LWZ1bGxcIlxyXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWltYWdlJzogJ3VybCgnICsgYmFubmVySW1hZ2UgKyAnKScgfVwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIDwhLS0gQGlmIChoYXNDdXN0b21UZW1wbGF0ZXMpIHtcclxuICBAaWYgKGhlYWRlclRlbXBsYXRlKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAoYm9keVRlbXBsYXRlKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiYm9keVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYm9keVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbiAgQGlmIChmb290ZXJUZW1wbGF0ZSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxufSBAZWxzZSB7XHJcbiAgPGRpdiBjbGFzcz1cImJvZHlcIj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuICB9IC0tPlxyXG5cclxuICAgIEBpZiAoaGFzSGVhZGVyKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInB5LTQgcHgtM1wiPlxyXG4gICAgICAgICAgICBAaWYgKGhlYWRlclRlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYgKCFoZWFkZXJUZW1wbGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKGljb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdW5kZWQtWzUwJV0gYmctZ3JheXNjYWxlLTIwIHctWzNlbV0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbWluLWgtWzNlbV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJpY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh0aXRsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheXNjYWxlLTkwIHRleHQtc20gZm9udC1ib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGl0bGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc3VidGl0bGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXlzY2FsZS02MCB0ZXh0LXNtIGZvbnQtbm9ybWFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3VidGl0bGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgPGRpdiBjbGFzcz1cInAtNFwiIFtjbGFzcy5ib3JkZXItdF09XCJoYXNIZWFkZXJcIiBbY2xhc3MuYm9yZGVyLXQtZ3JheXNjYWxlLTMwXT1cImhhc0hlYWRlclwiPlxyXG4gICAgICAgIEBpZiAoYm9keVRlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib2R5VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIEBpZiAoZm9vdGVyVGVtcGxhdGUpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwicC00IGJvcmRlci10IGJvcmRlci10LWdyYXlzY2FsZS0zMFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -206,7 +206,7 @@ export class ChipsComponent {
|
|
|
206
206
|
useExisting: forwardRef(() => ChipsComponent),
|
|
207
207
|
multi: true,
|
|
208
208
|
},
|
|
209
|
-
], queries: [{ propertyName: "templates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef }, { propertyName: "chipItems", predicate: ChipItemComponent, descendants: true }], ngImport: i0, template: "<ul\n role=\"list\"\n class=\"chips-container w-full p-1.5 flex flex-wrap items-center rounded-small border
|
|
209
|
+
], queries: [{ propertyName: "templates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef }, { propertyName: "chipItems", predicate: ChipItemComponent, descendants: true }], ngImport: i0, template: "<ul\n role=\"list\"\n class=\"chips-container w-full p-1.5 flex flex-wrap items-center rounded-small border list-none gap-2 min-h-[35px] focus-within:outline focus-within:outline-2 focus-within:outline-offset-[-2px] focus-within:outline-[var(--s-focus-ring-color,#0090ff)]\"\n [class.border-grayscale-30]=\"!disabled\"\n [class.bg-grayscale-0]=\"!disabled\"\n [class.border-grayscale-20]=\"disabled\"\n [class.bg-grayscale-5]=\"disabled\">\n @for(item of value; track $index) {\n <li role=\"listitem\">\n <s-chip-item\n [templateRef]=\"chipTemplate\"\n [dataRender]=\"item\"\n [objectField]=\"field\"\n [itemIndex]=\"$index\"\n [disabled]=\"disabled\"\n [showTooltip]=\"showTooltip\"\n [maxLengthRenderWithoutTooltip]=\"maxLengthRenderWithoutTooltip\"\n (clickRemove)=\"removeItem($event)\"\n (chipClicked)=\"onChipClicked($event)\">\n </s-chip-item>\n </li>\n }\n\n @if(keyFilter) {\n <input\n #input\n class=\"w-full border-none flex-1 bg-transparent text-grayscale-90 disabled:text-grayscale-30 focus-visible:outline-none\"\n [disabled]=\"disabled || max === value.length\"\n [placeholder]=\"placeholder || ''\"\n [maxlength]=\"maxLength\"\n [id]=\"inputId\"\n [(ngModel)]=\"newItem\"\n [pKeyFilter]=\"keyFilter\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputLostFocus($event)\"\n (keydown)=\"onKeydown($event)\">\n }@else {\n <input\n #input\n class=\"w-full border-none flex-1 bg-transparent text-grayscale-90 disabled:text-grayscale-30 focus-visible:outline-none\"\n [disabled]=\"disabled || max === value.length\"\n [placeholder]=\"placeholder || ''\"\n [maxlength]=\"maxLength\"\n [id]=\"inputId\"\n [(ngModel)]=\"newItem\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputLostFocus($event)\"\n (keydown)=\"onKeydown($event)\">\n }\n</ul>\n@if(infoLabel) {\n <span class=\"text-grayscale-50 text-xs\">\n {{ infoLabel }}\n </span>\n}\n", styles: [":host.ng-invalid.ng-dirty .chips-container{--tw-border-opacity: 1;border-color:rgb(193 48 24 / var(--tw-border-opacity, 1))}\n"], dependencies: [{ kind: "component", type: ChipItemComponent, selector: "s-chip-item", inputs: ["dataRender", "objectField", "disabled", "templateRef", "itemIndex", "showTooltip", "maxLengthRenderWithoutTooltip", "showRemove", "removeIconClass", "hidePointerEvents"], outputs: ["clickRemove", "chipClicked"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: KeyFilter, selector: "[pKeyFilter]", inputs: ["pValidateOnly", "pKeyFilter"], outputs: ["ngModelChange"] }] });
|
|
210
210
|
}
|
|
211
211
|
__decorate([
|
|
212
212
|
CheckDisabled()
|
|
@@ -222,7 +222,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
222
222
|
useExisting: forwardRef(() => ChipsComponent),
|
|
223
223
|
multi: true,
|
|
224
224
|
},
|
|
225
|
-
], standalone: true, imports: [ChipItemComponent, FormsModule, KeyFilter], template: "<ul\n role=\"list\"\n class=\"chips-container w-full p-1.5 flex flex-wrap items-center rounded-small border
|
|
225
|
+
], standalone: true, imports: [ChipItemComponent, FormsModule, KeyFilter], template: "<ul\n role=\"list\"\n class=\"chips-container w-full p-1.5 flex flex-wrap items-center rounded-small border list-none gap-2 min-h-[35px] focus-within:outline focus-within:outline-2 focus-within:outline-offset-[-2px] focus-within:outline-[var(--s-focus-ring-color,#0090ff)]\"\n [class.border-grayscale-30]=\"!disabled\"\n [class.bg-grayscale-0]=\"!disabled\"\n [class.border-grayscale-20]=\"disabled\"\n [class.bg-grayscale-5]=\"disabled\">\n @for(item of value; track $index) {\n <li role=\"listitem\">\n <s-chip-item\n [templateRef]=\"chipTemplate\"\n [dataRender]=\"item\"\n [objectField]=\"field\"\n [itemIndex]=\"$index\"\n [disabled]=\"disabled\"\n [showTooltip]=\"showTooltip\"\n [maxLengthRenderWithoutTooltip]=\"maxLengthRenderWithoutTooltip\"\n (clickRemove)=\"removeItem($event)\"\n (chipClicked)=\"onChipClicked($event)\">\n </s-chip-item>\n </li>\n }\n\n @if(keyFilter) {\n <input\n #input\n class=\"w-full border-none flex-1 bg-transparent text-grayscale-90 disabled:text-grayscale-30 focus-visible:outline-none\"\n [disabled]=\"disabled || max === value.length\"\n [placeholder]=\"placeholder || ''\"\n [maxlength]=\"maxLength\"\n [id]=\"inputId\"\n [(ngModel)]=\"newItem\"\n [pKeyFilter]=\"keyFilter\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputLostFocus($event)\"\n (keydown)=\"onKeydown($event)\">\n }@else {\n <input\n #input\n class=\"w-full border-none flex-1 bg-transparent text-grayscale-90 disabled:text-grayscale-30 focus-visible:outline-none\"\n [disabled]=\"disabled || max === value.length\"\n [placeholder]=\"placeholder || ''\"\n [maxlength]=\"maxLength\"\n [id]=\"inputId\"\n [(ngModel)]=\"newItem\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputLostFocus($event)\"\n (keydown)=\"onKeydown($event)\">\n }\n</ul>\n@if(infoLabel) {\n <span class=\"text-grayscale-50 text-xs\">\n {{ infoLabel }}\n </span>\n}\n", styles: [":host.ng-invalid.ng-dirty .chips-container{--tw-border-opacity: 1;border-color:rgb(193 48 24 / var(--tw-border-opacity, 1))}\n"] }]
|
|
226
226
|
}], propDecorators: { disabled: [{
|
|
227
227
|
type: Input
|
|
228
228
|
}], field: [{
|
|
@@ -279,4 +279,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
279
279
|
type: ViewChildren,
|
|
280
280
|
args: [ChipItemComponent]
|
|
281
281
|
}], onKeydown: [], onInputLostFocus: [] } });
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NoaXBzL3NyYy9saWIvY2hpcHMvY2hpcHMvY2hpcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NoaXBzL3NyYy9saWIvY2hpcHMvY2hpcHMvY2hpcHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUdOLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEYsT0FBTyxFQUFvQixTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFFckU7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBZUgsTUFBTSxPQUFPLGNBQWM7SUFDTixHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFMUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLFlBQVksQ0FBb0I7SUFFdkMsMkVBQTJFO0lBRXBFLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFF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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ29udGVudENoaWxkcmVuLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBJbnB1dCxcclxuICAgIE91dHB1dCxcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NoaWxkcmVuLFxyXG4gICAgaW5qZWN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgS2V5RmlsdGVyUGF0dGVybiwgS2V5RmlsdGVyIH0gZnJvbSAncHJpbWVuZy9rZXlmaWx0ZXInO1xyXG5cclxuaW1wb3J0IHsgQ2hpcEFkZEV2ZW50LCBDaGlwQ2xpY2tFdmVudCwgQ2hpcFJlbW92ZUV2ZW50IH0gZnJvbSAnLi4vbW9kZWxzL2NoaXAtbW9kZWxzJztcclxuaW1wb3J0IHsgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3RlbXBsYXRlJztcclxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQsIHJhbmRvbUhhc2ggfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3V0aWxzJztcclxuaW1wb3J0IHsgQ2hlY2tEaXNhYmxlZCwgcmVzdG9yZUZvY3VzQWZ0ZXJSZW1vdmFsIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9zaGFyZWQnO1xyXG5pbXBvcnQgeyBDaGlwSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2NoaXAtaXRlbS9jaGlwLWl0ZW0uY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSBlbnRyYWRhIGRlIHRhZ3MvY2hpcHMgcXVlIHBlcm1pdGUgYWRpY2lvbmFyIGUgcmVtb3ZlclxyXG4gKiBpdGVucyBkZSB0ZXh0byBsaXZyZW1lbnRlIG91IGEgcGFydGlyIGRlIHVtYSBsaXN0YS4gU3Vwb3J0YSB0ZW1wbGF0ZXMgcGVyc29uYWxpemFkb3NcclxuICogcGFyYSByZW5kZXJpemHDp8OjbyBkZSBjYWRhIGNoaXAsIGZpbHRybyBkZSB0ZWNsYXMsIGxpbWl0ZSBkZSBpdGVucyBlIGR1cGxpY2HDp8OjbyBjb25maWd1csOhdmVsLlxyXG4gKiBJbXBsZW1lbnRhIHtAbGluayBDb250cm9sVmFsdWVBY2Nlc3Nvcn0gcGFyYSB1c28gZW0gZm9ybXVsw6FyaW9zIEFuZ3VsYXIuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHMtY2hpcHNcclxuICogICBmb3JtQ29udHJvbE5hbWU9XCJ0YWdzXCJcclxuICogICBwbGFjZWhvbGRlcj1cIkFkaWNpb25hciB0YWcuLi5cIlxyXG4gKiAgIFttYXhdPVwiMTBcIlxyXG4gKiAgIFthbGxvd0R1cGxpY2F0ZWRdPVwiZmFsc2VcIlxyXG4gKiAgIChhZGRlZCk9XCJvbkFkZGVkKCRldmVudClcIiAvPlxyXG4gKiBgYGBcclxuICpcclxuICogQGNhdGVnb3J5IElucHV0c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtY2hpcHMnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoaXBzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NoaXBzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaGlwc0NvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtDaGlwSXRlbUNvbXBvbmVudCwgRm9ybXNNb2R1bGUsIEtleUZpbHRlcl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGlwc0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgICBwdWJsaWMgbmV3SXRlbSA9ICcnO1xyXG4gICAgcHVibGljIGNoaXBUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEZXNhYmlsaXRhIGEgaW50ZXJhw6fDo28gY29tIG8gY29tcG9uZW50ZS4gQGRlZmF1bHQgZmFsc2UgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIENoYXZlIGRvIG9iamV0byB1c2FkYSBwYXJhIGV4aWJpw6fDo28gcXVhbmRvIG9zIGl0ZW5zIHPDo28gb2JqZXRvcyBjb21wbGV4b3MuIEBkZWZhdWx0ICcnICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZpZWxkID0gJyc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMaXN0YSBkZSBjaGlwcyBhdHVhbG1lbnRlIGV4aWJpZG9zLiBAZGVmYXVsdCBbXSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB2YWx1ZTogYW55W10gPSBbXTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRleHRvIGRlIHBsYWNlaG9sZGVyIGV4aWJpZG8gbm8gY2FtcG8gZGUgZW50cmFkYSBxdWFuZG8gdmF6aW8uICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBOw7ptZXJvIG3DoXhpbW8gZGUgY2hpcHMgcGVybWl0aWRvcy4gQGRlZmF1bHQgSW5maW5pdHkgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbWF4ID0gSW5maW5pdHk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDb21wcmltZW50byBtw6F4aW1vIGRvIHRleHRvIGRlIGNhZGEgY2hpcC4gQGRlZmF1bHQgSW5maW5pdHkgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbWF4TGVuZ3RoID0gSW5maW5pdHk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJZGVudGlmaWNhZG9yIGRvIGVsZW1lbnRvIGA8aW5wdXQ+YCBpbnRlcm5vLiBHZXJhZG8gYXV0b21hdGljYW1lbnRlIHNlIG7Do28gaW5mb3JtYWRvLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpbnB1dElkID0gYGNoaXBzLSR7cmFuZG9tSGFzaCgpfWA7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQZXJtaXRlIGEgYWRpw6fDo28gZGUgY2hpcHMgY29tIHZhbG9yIGR1cGxpY2Fkby4gQGRlZmF1bHQgdHJ1ZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhbGxvd0R1cGxpY2F0ZWQgPSB0cnVlO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gUXVhbmRvIGBmYWxzZWAsIGEgY29tcGFyYcOnw6NvIGRlIGR1cGxpY2F0YXMgw6kgY2FzZS1pbnNlbnNpdGl2ZS4gQGRlZmF1bHQgZmFsc2UgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY2FzZVNlbnNpdGl2ZUR1cGxpY2F0aW9uID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBZGljaW9uYSBvIGNoaXAgYW8gcHJlc3Npb25hciBUYWIuIEBkZWZhdWx0IHRydWUgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYWRkT25UYWIgPSB0cnVlO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gQWRpY2lvbmEgbyBjaGlwIGFvIHBlcmRlciBvIGZvY28gKGJsdXIpLiBAZGVmYXVsdCB0cnVlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGFkZE9uQmx1ciA9IHRydWU7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDYXJhY3RlcmUgc2VwYXJhZG9yIHF1ZSwgcXVhbmRvIGRpZ2l0YWRvLCBjb25maXJtYSBhIGFkacOnw6NvIGRlIHVtIG5vdm8gY2hpcC4gQGRlZmF1bHQgJycgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2VwYXJhdG9yID0gJyc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDb2xvY2EgbyBmb2NvIGF1dG9tYXRpY2FtZW50ZSBubyBjYW1wbyBkZSBlbnRyYWRhIGFvIHJlbmRlcml6YXIgbyBjb21wb25lbnRlLiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhdXRvZm9jdXMgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRleHRvIGluZm9ybWF0aXZvIGV4aWJpZG8gYWJhaXhvIGRvIGNhbXBvIGRlIGVudHJhZGEuIEBkZWZhdWx0ICcnICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGluZm9MYWJlbCA9ICcnO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRXhwcmVzc8OjbyByZWd1bGFyIG91IHBhZHLDo28gcHJlZGVmaW5pZG8gKFByaW1lTkcgS2V5RmlsdGVyUGF0dGVybikgcGFyYSBmaWx0cmFyIHRlY2xhcyBhY2VpdGFzLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBrZXlGaWx0ZXI/OiBSZWdFeHAgfCBLZXlGaWx0ZXJQYXR0ZXJuO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRXhpYmUgdG9vbHRpcCBhbyBwYXNzYXIgbyBtb3VzZSBzb2JyZSBjaGlwcyBjb20gdGV4dG8gdHJ1bmNhZG8uIEBkZWZhdWx0IHRydWUgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1Rvb2x0aXAgPSB0cnVlO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTsO6bWVybyBtw6F4aW1vIGRlIGNhcmFjdGVyZXMgZXhpYmlkb3MgZGlyZXRhbWVudGUgbm8gY2hpcCBzZW0gYXBsaWNhciB0cnVuY2FtZW50by4gQGRlZmF1bHQgMjAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbWF4TGVuZ3RoUmVuZGVyV2l0aG91dFRvb2x0aXAgPSAyMDtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIHVtIG5vdm8gY2hpcCDDqSBhZGljaW9uYWRvIGNvbSBzdWNlc3NvLiAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgYWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENoaXBBZGRFdmVudD4oKTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIHVtIGNoaXAgw6kgcmVtb3ZpZG8gcGVsbyB1c3XDoXJpby4gKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENoaXBSZW1vdmVFdmVudD4oKTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gY2FtcG8gZGUgZW50cmFkYSByZWNlYmUgZm9jby4gKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGZvY3VzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIGNhbXBvIGRlIGVudHJhZGEgcGVyZGUgbyBmb2NvLiAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZm9jdXNMb3N0ID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyB1c3XDoXJpbyBjbGljYSBlbSB1bSBjaGlwIGV4aXN0ZW50ZS4gKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGNoaXBDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwQ2xpY2tFdmVudD4oKTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gc2VtcHJlIHF1ZSBhIGxpc3RhIGRlIGNoaXBzIMOpIGFsdGVyYWRhIChhZGnDp8OjbyBvdSByZW1vw6fDo28pLiAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdIHwgYW55W10+KCk7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZURpcmVjdGl2ZSlcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8VGVtcGxhdGVEaXJlY3RpdmU+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihDaGlwSXRlbUNvbXBvbmVudClcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hpcEl0ZW1zOiBRdWVyeUxpc3Q8Q2hpcEl0ZW1Db21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgcHVibGljIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZ1tdIHwgYW55W10pID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICAgIHB1YmxpYyBvblRvdWNoZWQ6ICh2YWx1ZTogc3RyaW5nW10gfCBhbnlbXSkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG5cclxuICAgIHByaXZhdGUgaXNUYWJFdmVudEFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuYXV0b2ZvY3VzICYmIHRoaXMuaW5wdXQpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnRlbXBsYXRlcykge1xyXG4gICAgICAgICAgICB0aGlzLmNoaXBUZW1wbGF0ZSA9IHRoaXMudGVtcGxhdGVzLmZpbmQoKHgpID0+IHgudHlwZSA9PT0gJ2NoaXAtY29udGFpbmVyJyk/LnRlbXBsYXRlO1xyXG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogc3RyaW5nW10gfCBhbnlbXSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZChvYmopKSB7XHJcbiAgICAgICAgICAgIG9iaiA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnZhbHVlID0gb2JqO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZ1tdIHwgYW55W10pID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQENoZWNrRGlzYWJsZWQoKVxyXG4gICAgcHVibGljIG9uS2V5ZG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgICAgICBjb25zdCBpc0VudGVyID0gJGV2ZW50LmtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NlcGFyYXRvciA9IHRoaXMuc2VwYXJhdG9yICYmICRldmVudC5rZXkgPT09IHRoaXMuc2VwYXJhdG9yO1xyXG4gICAgICAgIGNvbnN0IGV2ZW50S2V5SXNUYWIgPSAkZXZlbnQua2V5ID09PSAnVGFiJztcclxuICAgICAgICBpZiAoZXZlbnRLZXlJc1RhYikge1xyXG4gICAgICAgICAgICBjb25zdCB0YWJUaW1lb3V0VGltZSA9IDUwO1xyXG4gICAgICAgICAgICB0aGlzLmlzVGFiRXZlbnRBY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNUYWJFdmVudEFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LCB0YWJUaW1lb3V0VGltZSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFkZE9uVGFiKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEl0ZW0oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc0VudGVyIHx8IGlzU2VwYXJhdG9yKSB7XHJcbiAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmFkZEl0ZW0oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uSW5wdXRGb2N1cygkZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgICAgICB0aGlzLmZvY3VzZWQuZW1pdCgkZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIEBDaGVja0Rpc2FibGVkKClcclxuICAgIHB1YmxpYyBvbklucHV0TG9zdEZvY3VzKCRldmVudDogRm9jdXNFdmVudCkge1xyXG4gICAgICAgIGlmICghdGhpcy5hZGRPbkJsdXIgfHwgdGhpcy5pc1RhYkV2ZW50QWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hZGRJdGVtKCk7XHJcbiAgICAgICAgdGhpcy5mb2N1c0xvc3QuZW1pdCgkZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVJdGVtKHsgaXRlbUluZGV4LCBldmVudCB9OiB7IGl0ZW1JbmRleDogbnVtYmVyOyBldmVudDogRXZlbnQgfSkge1xyXG4gICAgICAgIGNvbnN0IF9yZW1vdmVkSXRlbSA9IHRoaXMudmFsdWVbaXRlbUluZGV4XTtcclxuICAgICAgICB0aGlzLnZhbHVlLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlZC5lbWl0KHsgdmFsdWU6IF9yZW1vdmVkSXRlbSwgb3JpZ2luYWxFdmVudDogZXZlbnQgfSk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHJlc3RvcmVGb2N1c0FmdGVyUmVtb3ZhbCh0aGlzLmNoaXBJdGVtcz8udG9BcnJheSgpID8/IFtdLCBpdGVtSW5kZXgsICgpID0+IHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uQ2hpcENsaWNrZWQoeyBldmVudCwgZGF0YSB9OiB7IGV2ZW50OiBFdmVudDsgZGF0YTogc3RyaW5nIHwgT2JqZWN0IH0pIHtcclxuICAgICAgICB0aGlzLmNoaXBDbGlja2VkLmVtaXQoeyB2YWx1ZTogZGF0YSwgb3JpZ2luYWxFdmVudDogZXZlbnQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGRJdGVtKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNWYWx1ZVRvQWRkKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pc01heFJlYWNoZWQoKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkSXRlbUxlbmd0aCgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdmFsdWVUb0FkZCA9IHRoaXMuZ2V0VmFsdWVUb0FkZCgpO1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNEdXBsaWNhdGVkSXRlbSgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVWYWx1ZSh2YWx1ZVRvQWRkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5uZXdJdGVtID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYXNWYWx1ZVRvQWRkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMubmV3SXRlbTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzTWF4UmVhY2hlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gISEodGhpcy5tYXggJiYgdGhpcy52YWx1ZS5sZW5ndGggPT09IHRoaXMubWF4KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzVmFsaWRJdGVtTGVuZ3RoKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1heExlbmd0aCA/IHRoaXMubmV3SXRlbS5sZW5ndGggPD0gdGhpcy5tYXhMZW5ndGggOiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0TWFwcGVkVmFsdWVzKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCA/IHRoaXMudmFsdWUubWFwKCh4KSA9PiB4W3RoaXMuZmllbGRdKSA6IHRoaXMudmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRWYWx1ZVRvQWRkKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQgPyB7IFt0aGlzLmZpZWxkXTogdGhpcy5uZXdJdGVtIH0gOiB0aGlzLm5ld0l0ZW07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYXNEdXBsaWNhdGVkSXRlbSgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5hbGxvd0R1cGxpY2F0ZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBtYXBwZWRWYWx1ZXMgPSB0aGlzLmdldE1hcHBlZFZhbHVlcygpO1xyXG4gICAgICAgIHJldHVybiAhIW1hcHBlZFZhbHVlcy5maW5kKCh4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNhc2VTZW5zaXRpdmVEdXBsaWNhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHggPT09IHRoaXMubmV3SXRlbTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB4LnRvTG93ZXJDYXNlKCkgPT09IHRoaXMubmV3SXRlbS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdG9yZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gWy4uLnRoaXMudmFsdWUsIHZhbHVlXTtcclxuICAgICAgICB0aGlzLmFkZGVkLmVtaXQoeyB2YWx1ZSB9KTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPHVsXG4gICAgcm9sZT1cImxpc3RcIlxuICAgIGNsYXNzPVwiY2hpcHMtY29udGFpbmVyIHctZnVsbCBwLTEuNSBmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgcm91bmRlZC1zbWFsbCBib3JkZXIgYm9yZGVyLWdyYXlzY2FsZS0zMCBiZy1ncmF5c2NhbGUtMCBsaXN0LW5vbmUgZ2FwLTIgbWluLWgtWzM1cHhdIGZvY3VzLXdpdGhpbjpvdXRsaW5lIGZvY3VzLXdpdGhpbjpvdXRsaW5lLTIgZm9jdXMtd2l0aGluOm91dGxpbmUtb2Zmc2V0LVstMnB4XSBmb2N1cy13aXRoaW46b3V0bGluZS1bdmFyKC0tcy1mb2N1cy1yaW5nLWNvbG9yLCMwMDkwZmYpXVwiPlxuICAgIEBmb3IoaXRlbSBvZiB2YWx1ZTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxsaSByb2xlPVwibGlzdGl0ZW1cIj5cbiAgICAgICAgICAgIDxzLWNoaXAtaXRlbVxuICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZVJlZl09XCJjaGlwVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtkYXRhUmVuZGVyXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgIFtvYmplY3RGaWVsZF09XCJmaWVsZFwiXG4gICAgICAgICAgICAgICAgW2l0ZW1JbmRleF09XCIkaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwXT1cInNob3dUb29sdGlwXCJcbiAgICAgICAgICAgICAgICBbbWF4TGVuZ3RoUmVuZGVyV2l0aG91dFRvb2x0aXBdPVwibWF4TGVuZ3RoUmVuZGVyV2l0aG91dFRvb2x0aXBcIlxuICAgICAgICAgICAgICAgIChjbGlja1JlbW92ZSk9XCJyZW1vdmVJdGVtKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjaGlwQ2xpY2tlZCk9XCJvbkNoaXBDbGlja2VkKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvcy1jaGlwLWl0ZW0+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuXG4gICAgQGlmKGtleUZpbHRlcikge1xuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICNpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJiZy1ncmF5c2NhbGUtMCB3LWZ1bGwgYm9yZGVyLW5vbmUgZmxleC0xIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBtYXggPT09IHZhbHVlLmxlbmd0aFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICAgICAgW21heGxlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgICAgICAgICAgW2lkXT1cImlucHV0SWRcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJuZXdJdGVtXCJcbiAgICAgICAgICAgIFtwS2V5RmlsdGVyXT1cImtleUZpbHRlclwiXG4gICAgICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAgKGJsdXIpPVwib25JbnB1dExvc3RGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCI+XG4gICAgfUBlbHNlIHtcbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiYmctZ3JheXNjYWxlLTAgdy1mdWxsIGJvcmRlci1ub25lIGZsZXgtMSBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbWF4ID09PSB2YWx1ZS5sZW5ndGhcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCJcbiAgICAgICAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibmV3SXRlbVwiXG4gICAgICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAgKGJsdXIpPVwib25JbnB1dExvc3RGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCI+XG4gICAgfVxuPC91bD5cbkBpZihpbmZvTGFiZWwpIHtcbiAgICA8c3BhbiBjbGFzcz1cInRleHQtZ3JheXNjYWxlLTUwIHRleHQteHNcIj5cbiAgICAgICAge3sgaW5mb0xhYmVsIH19XG4gICAgPC9zcGFuPlxufVxuIl19
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NoaXBzL3NyYy9saWIvY2hpcHMvY2hpcHMvY2hpcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NoaXBzL3NyYy9saWIvY2hpcHMvY2hpcHMvY2hpcHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUdOLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEYsT0FBTyxFQUFvQixTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFFckU7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBZUgsTUFBTSxPQUFPLGNBQWM7SUFDTixHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFMUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLFlBQVksQ0FBb0I7SUFFdkMsMkVBQTJFO0lBRXBFLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFF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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ29udGVudENoaWxkcmVuLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBJbnB1dCxcclxuICAgIE91dHB1dCxcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIFRlbXBsYXRlUmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgVmlld0NoaWxkcmVuLFxyXG4gICAgaW5qZWN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgS2V5RmlsdGVyUGF0dGVybiwgS2V5RmlsdGVyIH0gZnJvbSAncHJpbWVuZy9rZXlmaWx0ZXInO1xyXG5cclxuaW1wb3J0IHsgQ2hpcEFkZEV2ZW50LCBDaGlwQ2xpY2tFdmVudCwgQ2hpcFJlbW92ZUV2ZW50IH0gZnJvbSAnLi4vbW9kZWxzL2NoaXAtbW9kZWxzJztcclxuaW1wb3J0IHsgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3RlbXBsYXRlJztcclxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQsIHJhbmRvbUhhc2ggfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3V0aWxzJztcclxuaW1wb3J0IHsgQ2hlY2tEaXNhYmxlZCwgcmVzdG9yZUZvY3VzQWZ0ZXJSZW1vdmFsIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9zaGFyZWQnO1xyXG5pbXBvcnQgeyBDaGlwSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2NoaXAtaXRlbS9jaGlwLWl0ZW0uY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSBlbnRyYWRhIGRlIHRhZ3MvY2hpcHMgcXVlIHBlcm1pdGUgYWRpY2lvbmFyIGUgcmVtb3ZlclxyXG4gKiBpdGVucyBkZSB0ZXh0byBsaXZyZW1lbnRlIG91IGEgcGFydGlyIGRlIHVtYSBsaXN0YS4gU3Vwb3J0YSB0ZW1wbGF0ZXMgcGVyc29uYWxpemFkb3NcclxuICogcGFyYSByZW5kZXJpemHDp8OjbyBkZSBjYWRhIGNoaXAsIGZpbHRybyBkZSB0ZWNsYXMsIGxpbWl0ZSBkZSBpdGVucyBlIGR1cGxpY2HDp8OjbyBjb25maWd1csOhdmVsLlxyXG4gKiBJbXBsZW1lbnRhIHtAbGluayBDb250cm9sVmFsdWVBY2Nlc3Nvcn0gcGFyYSB1c28gZW0gZm9ybXVsw6FyaW9zIEFuZ3VsYXIuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHMtY2hpcHNcclxuICogICBmb3JtQ29udHJvbE5hbWU9XCJ0YWdzXCJcclxuICogICBwbGFjZWhvbGRlcj1cIkFkaWNpb25hciB0YWcuLi5cIlxyXG4gKiAgIFttYXhdPVwiMTBcIlxyXG4gKiAgIFthbGxvd0R1cGxpY2F0ZWRdPVwiZmFsc2VcIlxyXG4gKiAgIChhZGRlZCk9XCJvbkFkZGVkKCRldmVudClcIiAvPlxyXG4gKiBgYGBcclxuICpcclxuICogQGNhdGVnb3J5IElucHV0c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3MtY2hpcHMnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoaXBzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NoaXBzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaGlwc0NvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtDaGlwSXRlbUNvbXBvbmVudCwgRm9ybXNNb2R1bGUsIEtleUZpbHRlcl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGlwc0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgICBwdWJsaWMgbmV3SXRlbSA9ICcnO1xyXG4gICAgcHVibGljIGNoaXBUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBEZXNhYmlsaXRhIGEgaW50ZXJhw6fDo28gY29tIG8gY29tcG9uZW50ZS4gQGRlZmF1bHQgZmFsc2UgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIENoYXZlIGRvIG9iamV0byB1c2FkYSBwYXJhIGV4aWJpw6fDo28gcXVhbmRvIG9zIGl0ZW5zIHPDo28gb2JqZXRvcyBjb21wbGV4b3MuIEBkZWZhdWx0ICcnICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZpZWxkID0gJyc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBMaXN0YSBkZSBjaGlwcyBhdHVhbG1lbnRlIGV4aWJpZG9zLiBAZGVmYXVsdCBbXSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB2YWx1ZTogYW55W10gPSBbXTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRleHRvIGRlIHBsYWNlaG9sZGVyIGV4aWJpZG8gbm8gY2FtcG8gZGUgZW50cmFkYSBxdWFuZG8gdmF6aW8uICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBOw7ptZXJvIG3DoXhpbW8gZGUgY2hpcHMgcGVybWl0aWRvcy4gQGRlZmF1bHQgSW5maW5pdHkgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbWF4ID0gSW5maW5pdHk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDb21wcmltZW50byBtw6F4aW1vIGRvIHRleHRvIGRlIGNhZGEgY2hpcC4gQGRlZmF1bHQgSW5maW5pdHkgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbWF4TGVuZ3RoID0gSW5maW5pdHk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBJZGVudGlmaWNhZG9yIGRvIGVsZW1lbnRvIGA8aW5wdXQ+YCBpbnRlcm5vLiBHZXJhZG8gYXV0b21hdGljYW1lbnRlIHNlIG7Do28gaW5mb3JtYWRvLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpbnB1dElkID0gYGNoaXBzLSR7cmFuZG9tSGFzaCgpfWA7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBQZXJtaXRlIGEgYWRpw6fDo28gZGUgY2hpcHMgY29tIHZhbG9yIGR1cGxpY2Fkby4gQGRlZmF1bHQgdHJ1ZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhbGxvd0R1cGxpY2F0ZWQgPSB0cnVlO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gUXVhbmRvIGBmYWxzZWAsIGEgY29tcGFyYcOnw6NvIGRlIGR1cGxpY2F0YXMgw6kgY2FzZS1pbnNlbnNpdGl2ZS4gQGRlZmF1bHQgZmFsc2UgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY2FzZVNlbnNpdGl2ZUR1cGxpY2F0aW9uID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBBZGljaW9uYSBvIGNoaXAgYW8gcHJlc3Npb25hciBUYWIuIEBkZWZhdWx0IHRydWUgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYWRkT25UYWIgPSB0cnVlO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gQWRpY2lvbmEgbyBjaGlwIGFvIHBlcmRlciBvIGZvY28gKGJsdXIpLiBAZGVmYXVsdCB0cnVlICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGFkZE9uQmx1ciA9IHRydWU7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDYXJhY3RlcmUgc2VwYXJhZG9yIHF1ZSwgcXVhbmRvIGRpZ2l0YWRvLCBjb25maXJtYSBhIGFkacOnw6NvIGRlIHVtIG5vdm8gY2hpcC4gQGRlZmF1bHQgJycgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2VwYXJhdG9yID0gJyc7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDb2xvY2EgbyBmb2NvIGF1dG9tYXRpY2FtZW50ZSBubyBjYW1wbyBkZSBlbnRyYWRhIGFvIHJlbmRlcml6YXIgbyBjb21wb25lbnRlLiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhdXRvZm9jdXMgPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFRleHRvIGluZm9ybWF0aXZvIGV4aWJpZG8gYWJhaXhvIGRvIGNhbXBvIGRlIGVudHJhZGEuIEBkZWZhdWx0ICcnICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGluZm9MYWJlbCA9ICcnO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRXhwcmVzc8OjbyByZWd1bGFyIG91IHBhZHLDo28gcHJlZGVmaW5pZG8gKFByaW1lTkcgS2V5RmlsdGVyUGF0dGVybikgcGFyYSBmaWx0cmFyIHRlY2xhcyBhY2VpdGFzLiAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBrZXlGaWx0ZXI/OiBSZWdFeHAgfCBLZXlGaWx0ZXJQYXR0ZXJuO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRXhpYmUgdG9vbHRpcCBhbyBwYXNzYXIgbyBtb3VzZSBzb2JyZSBjaGlwcyBjb20gdGV4dG8gdHJ1bmNhZG8uIEBkZWZhdWx0IHRydWUgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1Rvb2x0aXAgPSB0cnVlO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gTsO6bWVybyBtw6F4aW1vIGRlIGNhcmFjdGVyZXMgZXhpYmlkb3MgZGlyZXRhbWVudGUgbm8gY2hpcCBzZW0gYXBsaWNhciB0cnVuY2FtZW50by4gQGRlZmF1bHQgMjAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbWF4TGVuZ3RoUmVuZGVyV2l0aG91dFRvb2x0aXAgPSAyMDtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIHVtIG5vdm8gY2hpcCDDqSBhZGljaW9uYWRvIGNvbSBzdWNlc3NvLiAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgYWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENoaXBBZGRFdmVudD4oKTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIHVtIGNoaXAgw6kgcmVtb3ZpZG8gcGVsbyB1c3XDoXJpby4gKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENoaXBSZW1vdmVFdmVudD4oKTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gY2FtcG8gZGUgZW50cmFkYSByZWNlYmUgZm9jby4gKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGZvY3VzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XHJcblxyXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIGNhbXBvIGRlIGVudHJhZGEgcGVyZGUgbyBmb2NvLiAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZm9jdXNMb3N0ID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyB1c3XDoXJpbyBjbGljYSBlbSB1bSBjaGlwIGV4aXN0ZW50ZS4gKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGNoaXBDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwQ2xpY2tFdmVudD4oKTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gc2VtcHJlIHF1ZSBhIGxpc3RhIGRlIGNoaXBzIMOpIGFsdGVyYWRhIChhZGnDp8OjbyBvdSByZW1vw6fDo28pLiAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdIHwgYW55W10+KCk7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZURpcmVjdGl2ZSlcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8VGVtcGxhdGVEaXJlY3RpdmU+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihDaGlwSXRlbUNvbXBvbmVudClcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hpcEl0ZW1zOiBRdWVyeUxpc3Q8Q2hpcEl0ZW1Db21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgcHVibGljIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZ1tdIHwgYW55W10pID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICAgIHB1YmxpYyBvblRvdWNoZWQ6ICh2YWx1ZTogc3RyaW5nW10gfCBhbnlbXSkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG5cclxuICAgIHByaXZhdGUgaXNUYWJFdmVudEFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuYXV0b2ZvY3VzICYmIHRoaXMuaW5wdXQpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnRlbXBsYXRlcykge1xyXG4gICAgICAgICAgICB0aGlzLmNoaXBUZW1wbGF0ZSA9IHRoaXMudGVtcGxhdGVzLmZpbmQoKHgpID0+IHgudHlwZSA9PT0gJ2NoaXAtY29udGFpbmVyJyk/LnRlbXBsYXRlO1xyXG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogc3RyaW5nW10gfCBhbnlbXSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZChvYmopKSB7XHJcbiAgICAgICAgICAgIG9iaiA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnZhbHVlID0gb2JqO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZ1tdIHwgYW55W10pID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQENoZWNrRGlzYWJsZWQoKVxyXG4gICAgcHVibGljIG9uS2V5ZG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgICAgICBjb25zdCBpc0VudGVyID0gJGV2ZW50LmtleSA9PT0gJ0VudGVyJztcclxuICAgICAgICBjb25zdCBpc1NlcGFyYXRvciA9IHRoaXMuc2VwYXJhdG9yICYmICRldmVudC5rZXkgPT09IHRoaXMuc2VwYXJhdG9yO1xyXG4gICAgICAgIGNvbnN0IGV2ZW50S2V5SXNUYWIgPSAkZXZlbnQua2V5ID09PSAnVGFiJztcclxuICAgICAgICBpZiAoZXZlbnRLZXlJc1RhYikge1xyXG4gICAgICAgICAgICBjb25zdCB0YWJUaW1lb3V0VGltZSA9IDUwO1xyXG4gICAgICAgICAgICB0aGlzLmlzVGFiRXZlbnRBY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNUYWJFdmVudEFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LCB0YWJUaW1lb3V0VGltZSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFkZE9uVGFiKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEl0ZW0oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc0VudGVyIHx8IGlzU2VwYXJhdG9yKSB7XHJcbiAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB0aGlzLmFkZEl0ZW0oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uSW5wdXRGb2N1cygkZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgICAgICB0aGlzLmZvY3VzZWQuZW1pdCgkZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIEBDaGVja0Rpc2FibGVkKClcclxuICAgIHB1YmxpYyBvbklucHV0TG9zdEZvY3VzKCRldmVudDogRm9jdXNFdmVudCkge1xyXG4gICAgICAgIGlmICghdGhpcy5hZGRPbkJsdXIgfHwgdGhpcy5pc1RhYkV2ZW50QWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hZGRJdGVtKCk7XHJcbiAgICAgICAgdGhpcy5mb2N1c0xvc3QuZW1pdCgkZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVJdGVtKHsgaXRlbUluZGV4LCBldmVudCB9OiB7IGl0ZW1JbmRleDogbnVtYmVyOyBldmVudDogRXZlbnQgfSkge1xyXG4gICAgICAgIGNvbnN0IF9yZW1vdmVkSXRlbSA9IHRoaXMudmFsdWVbaXRlbUluZGV4XTtcclxuICAgICAgICB0aGlzLnZhbHVlLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIHRoaXMucmVtb3ZlZC5lbWl0KHsgdmFsdWU6IF9yZW1vdmVkSXRlbSwgb3JpZ2luYWxFdmVudDogZXZlbnQgfSk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHJlc3RvcmVGb2N1c0FmdGVyUmVtb3ZhbCh0aGlzLmNoaXBJdGVtcz8udG9BcnJheSgpID8/IFtdLCBpdGVtSW5kZXgsICgpID0+IHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uQ2hpcENsaWNrZWQoeyBldmVudCwgZGF0YSB9OiB7IGV2ZW50OiBFdmVudDsgZGF0YTogc3RyaW5nIHwgT2JqZWN0IH0pIHtcclxuICAgICAgICB0aGlzLmNoaXBDbGlja2VkLmVtaXQoeyB2YWx1ZTogZGF0YSwgb3JpZ2luYWxFdmVudDogZXZlbnQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGRJdGVtKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNWYWx1ZVRvQWRkKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pc01heFJlYWNoZWQoKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkSXRlbUxlbmd0aCgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdmFsdWVUb0FkZCA9IHRoaXMuZ2V0VmFsdWVUb0FkZCgpO1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNEdXBsaWNhdGVkSXRlbSgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVWYWx1ZSh2YWx1ZVRvQWRkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5uZXdJdGVtID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYXNWYWx1ZVRvQWRkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMubmV3SXRlbTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzTWF4UmVhY2hlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gISEodGhpcy5tYXggJiYgdGhpcy52YWx1ZS5sZW5ndGggPT09IHRoaXMubWF4KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzVmFsaWRJdGVtTGVuZ3RoKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1heExlbmd0aCA/IHRoaXMubmV3SXRlbS5sZW5ndGggPD0gdGhpcy5tYXhMZW5ndGggOiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0TWFwcGVkVmFsdWVzKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCA/IHRoaXMudmFsdWUubWFwKCh4KSA9PiB4W3RoaXMuZmllbGRdKSA6IHRoaXMudmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRWYWx1ZVRvQWRkKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQgPyB7IFt0aGlzLmZpZWxkXTogdGhpcy5uZXdJdGVtIH0gOiB0aGlzLm5ld0l0ZW07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYXNEdXBsaWNhdGVkSXRlbSgpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5hbGxvd0R1cGxpY2F0ZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBtYXBwZWRWYWx1ZXMgPSB0aGlzLmdldE1hcHBlZFZhbHVlcygpO1xyXG4gICAgICAgIHJldHVybiAhIW1hcHBlZFZhbHVlcy5maW5kKCh4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNhc2VTZW5zaXRpdmVEdXBsaWNhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHggPT09IHRoaXMubmV3SXRlbTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB4LnRvTG93ZXJDYXNlKCkgPT09IHRoaXMubmV3SXRlbS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdG9yZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gWy4uLnRoaXMudmFsdWUsIHZhbHVlXTtcclxuICAgICAgICB0aGlzLmFkZGVkLmVtaXQoeyB2YWx1ZSB9KTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPHVsXG4gICAgcm9sZT1cImxpc3RcIlxuICAgIGNsYXNzPVwiY2hpcHMtY29udGFpbmVyIHctZnVsbCBwLTEuNSBmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgcm91bmRlZC1zbWFsbCBib3JkZXIgbGlzdC1ub25lIGdhcC0yIG1pbi1oLVszNXB4XSBmb2N1cy13aXRoaW46b3V0bGluZSBmb2N1cy13aXRoaW46b3V0bGluZS0yIGZvY3VzLXdpdGhpbjpvdXRsaW5lLW9mZnNldC1bLTJweF0gZm9jdXMtd2l0aGluOm91dGxpbmUtW3ZhcigtLXMtZm9jdXMtcmluZy1jb2xvciwjMDA5MGZmKV1cIlxuICAgIFtjbGFzcy5ib3JkZXItZ3JheXNjYWxlLTMwXT1cIiFkaXNhYmxlZFwiXG4gICAgW2NsYXNzLmJnLWdyYXlzY2FsZS0wXT1cIiFkaXNhYmxlZFwiXG4gICAgW2NsYXNzLmJvcmRlci1ncmF5c2NhbGUtMjBdPVwiZGlzYWJsZWRcIlxuICAgIFtjbGFzcy5iZy1ncmF5c2NhbGUtNV09XCJkaXNhYmxlZFwiPlxuICAgIEBmb3IoaXRlbSBvZiB2YWx1ZTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxsaSByb2xlPVwibGlzdGl0ZW1cIj5cbiAgICAgICAgICAgIDxzLWNoaXAtaXRlbVxuICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZVJlZl09XCJjaGlwVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtkYXRhUmVuZGVyXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgIFtvYmplY3RGaWVsZF09XCJmaWVsZFwiXG4gICAgICAgICAgICAgICAgW2l0ZW1JbmRleF09XCIkaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dUb29sdGlwXT1cInNob3dUb29sdGlwXCJcbiAgICAgICAgICAgICAgICBbbWF4TGVuZ3RoUmVuZGVyV2l0aG91dFRvb2x0aXBdPVwibWF4TGVuZ3RoUmVuZGVyV2l0aG91dFRvb2x0aXBcIlxuICAgICAgICAgICAgICAgIChjbGlja1JlbW92ZSk9XCJyZW1vdmVJdGVtKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjaGlwQ2xpY2tlZCk9XCJvbkNoaXBDbGlja2VkKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvcy1jaGlwLWl0ZW0+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuXG4gICAgQGlmKGtleUZpbHRlcikge1xuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICNpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgYm9yZGVyLW5vbmUgZmxleC0xIGJnLXRyYW5zcGFyZW50IHRleHQtZ3JheXNjYWxlLTkwIGRpc2FibGVkOnRleHQtZ3JheXNjYWxlLTMwIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBtYXggPT09IHZhbHVlLmxlbmd0aFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICAgICAgW21heGxlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgICAgICAgICAgW2lkXT1cImlucHV0SWRcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJuZXdJdGVtXCJcbiAgICAgICAgICAgIFtwS2V5RmlsdGVyXT1cImtleUZpbHRlclwiXG4gICAgICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAgKGJsdXIpPVwib25JbnB1dExvc3RGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCI+XG4gICAgfUBlbHNlIHtcbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGJvcmRlci1ub25lIGZsZXgtMSBiZy10cmFuc3BhcmVudCB0ZXh0LWdyYXlzY2FsZS05MCBkaXNhYmxlZDp0ZXh0LWdyYXlzY2FsZS0zMCBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbWF4ID09PSB2YWx1ZS5sZW5ndGhcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCJcbiAgICAgICAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibmV3SXRlbVwiXG4gICAgICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAgKGJsdXIpPVwib25JbnB1dExvc3RGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCI+XG4gICAgfVxuPC91bD5cbkBpZihpbmZvTGFiZWwpIHtcbiAgICA8c3BhbiBjbGFzcz1cInRleHQtZ3JheXNjYWxlLTUwIHRleHQteHNcIj5cbiAgICAgICAge3sgaW5mb0xhYmVsIH19XG4gICAgPC9zcGFuPlxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2cubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY29uZmlybS1kaWFsb2cvc3JjL2xpYi9jb25maXJtLWRpYWxvZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCdXR0b25Qcmlvcml0eSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvYnV0dG9uJztcblxuZXhwb3J0IHR5cGUgQ29uZmlybURpYWxvZyA9IHtcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYWNjZXB0TGFiZWw6IHN0cmluZyxcbiAgICBhY2NlcHRQcmlvcml0eT86IEJ1dHRvblByaW9yaXR5LFxuICAgIHJlamVjdExhYmVsPzogc3RyaW5nLFxuICAgIGhlYWRlcjogc3RyaW5nLFxuICAgIGFjY2VwdDogVm9pZEZ1bmN0aW9uLFxuICAgIHJlamVjdD86IFZvaWRGdW5jdGlvblxufVxuIl19
|
|
@@ -27,10 +27,10 @@ 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
|
|
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 priority=\"link\"\n />\n }\n <s-button\n [label]=\"confirmDialog.acceptLabel\"\n (clicked)=\"activeDialog.close(true)\"\n [priority]=\"confirmDialog.acceptPriority ?? '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,
|
|
34
|
-
args: [{ standalone: true, imports: [DialogComponent, TemplateModule, ButtonModule], 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
|
|
34
|
+
args: [{ standalone: true, imports: [DialogComponent, TemplateModule, ButtonModule], 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 priority=\"link\"\n />\n }\n <s-button\n [label]=\"confirmDialog.acceptLabel\"\n (clicked)=\"activeDialog.close(true)\"\n [priority]=\"confirmDialog.acceptPriority ?? 'primary'\"\n />\n </div>\n </div>\n </ng-template>\n </s-dialog>\n}\n" }]
|
|
35
35
|
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NvbmZpcm0tZGlhbG9nL3NyYy9saWIvcG9wdXAtY29uZmlybS1kaWFsb2cvcG9wdXAtY29uZmlybS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2NvbmZpcm0tZGlhbG9nL3NyYy9saWIvcG9wdXAtY29uZmlybS1kaWFsb2cvcG9wdXAtY29uZmlybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7OztBQUV6RTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBTUgsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxhQUFhLENBQWlCO3dHQURyQiwyQkFBMkI7NEZBQTNCLDJCQUEyQix3RUM5QnhDLG1vQ0E4QkEsNENESGMsZUFBZSxtTUFBRSxjQUFjLGlJQUFFLFlBQVk7OzRGQUc5QywyQkFBMkI7a0JBTHZDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvZGlhbG9nJztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2cgfSBmcm9tICcuLi9jb25maXJtLWRpYWxvZy5tb2RlbCc7XG5pbXBvcnQgeyBUZW1wbGF0ZU1vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGVtcGxhdGUnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24nO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGludGVybm8gZG8gZGnDoWxvZ28gZGUgY29uZmlybWHDp8OjbywgcmVuZGVyaXphZG8gcGVsbyBgQ29uZmlybURpYWxvZ1NlcnZpY2VgLlxuICogRXhpYmUgdW1hIGphbmVsYSBtb2RhbCBjb20gdW1hIG1lbnNhZ2VtLCB0w610dWxvIGUgYm90w7VlcyBkZSBhY2VpdGFyIGUgcmVqZWl0YXIgY29uZmlndXLDoXZlaXMuXG4gKiBOw6NvIGRldmUgc2VyIGluc3RhbmNpYWRvIGRpcmV0YW1lbnRlOyB1dGlsaXplIGBDb25maXJtRGlhbG9nU2VydmljZS5vcGVuKClgIHBhcmEgZXhpYmktbG8uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBVc28gdmlhIHNlcnZpw6dvXG4gKiB0aGlzLmNvbmZpcm1EaWFsb2dTZXJ2aWNlLm9wZW4oe1xuICogICBoZWFkZXI6ICdDb25maXJtYXIgZXhjbHVzw6NvJyxcbiAqICAgbWVzc2FnZTogJ0Rlc2VqYSByZWFsbWVudGUgZXhjbHVpciBlc3RlIGl0ZW0/JyxcbiAqICAgYWNjZXB0TGFiZWw6ICdFeGNsdWlyJyxcbiAqICAgcmVqZWN0TGFiZWw6ICdDYW5jZWxhcicsXG4gKiAgIGFjY2VwdDogKCkgPT4gdGhpcy5kZWxldGUoKSxcbiAqIH0pO1xuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IE92ZXJsYXlcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRGlhbG9nQ29tcG9uZW50LCBUZW1wbGF0ZU1vZHVsZSwgQnV0dG9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcG9wdXAtY29uZmlybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBQb3B1cENvbmZpcm1EaWFsb2dDb21wb25lbnQge1xuICAgIGNvbmZpcm1EaWFsb2chOiBDb25maXJtRGlhbG9nO1xufVxuXG4iLCJAaWYgKGNvbmZpcm1EaWFsb2cpIHtcbiAgICA8cy1kaWFsb2cgW2hlYWRlcl09XCJjb25maXJtRGlhbG9nLmhlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc3Bhbi0xMlwiPlxuICAgICAgICAgICAgICAgIHt7IGNvbmZpcm1EaWFsb2cubWVzc2FnZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIHNUZW1wbGF0ZT1cImZvb3RlclwiXG4gICAgICAgICAgICBsZXQtYWN0aXZlRGlhbG9nPVwiYWN0aXZlRGlhbG9nXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zcGFuLTEyIGZsZXggZmxleC13cmFwIGp1c3RpZnktZW5kIGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoY29uZmlybURpYWxvZy5yZWplY3RMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHMtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpcm1EaWFsb2cucmVqZWN0TGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cImFjdGl2ZURpYWxvZy5jbG9zZShmYWxzZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5PVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxzLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpcm1EaWFsb2cuYWNjZXB0TGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwiYWN0aXZlRGlhbG9nLmNsb3NlKHRydWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwcmlvcml0eV09XCJjb25maXJtRGlhbG9nLmFjY2VwdFByaW9yaXR5ID8/ICdwcmltYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3MtZGlhbG9nPlxufVxuIl19
|