@seniorsistemas/angular-components 19.4.1 → 19.5.1
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/accordion/lib/accordion/accordion.module.d.ts +2 -1
- package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +10 -1
- package/esm2022/accordion/lib/accordion/accordion.module.mjs +5 -18
- package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +11 -3
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +1 -1
- package/esm2022/loading-state/lib/loading-state/components/loading-state-indicators.mjs +2 -1
- package/esm2022/loading-state/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.mjs +41 -0
- package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +30 -3
- package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +15 -4
- package/esm2022/loading-state/lib/loading-state/loading-state.module.mjs +5 -2
- package/esm2022/loading-state/public-api.mjs +1 -1
- package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +8 -3
- package/esm2022/stats-card/lib/stats-card/stats-card.module.mjs +5 -4
- package/fesm2022/seniorsistemas-angular-components-accordion.mjs +14 -19
- package/fesm2022/seniorsistemas-angular-components-accordion.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-loading-state.mjs +84 -6
- package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +11 -5
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
- package/loading-state/lib/loading-state/components/loading-state-indicators.d.ts +2 -1
- package/loading-state/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.d.ts +24 -0
- package/loading-state/lib/loading-state/loading-state.component.d.ts +22 -1
- package/loading-state/lib/loading-state/loading-state.directive.d.ts +8 -2
- package/loading-state/lib/loading-state/loading-state.module.d.ts +4 -3
- package/loading-state/public-api.d.ts +1 -0
- package/package.json +1 -1
- package/stats-card/lib/stats-card/stats-card.component.d.ts +3 -1
- package/stats-card/lib/stats-card/stats-card.module.d.ts +2 -1
|
@@ -5,8 +5,9 @@ import * as i3 from "@angular/common";
|
|
|
5
5
|
import * as i4 from "@angular/forms";
|
|
6
6
|
import * as i5 from "@seniorsistemas/angular-components/tooltip";
|
|
7
7
|
import * as i6 from "@seniorsistemas/angular-components/switch";
|
|
8
|
+
import * as i7 from "@seniorsistemas/angular-components/badge";
|
|
8
9
|
export declare class AccordionModule {
|
|
9
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<AccordionModule, never>;
|
|
10
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AccordionModule, [typeof i1.AccordionComponent, typeof i2.AccordionPanelComponent], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof i5.TooltipModule, typeof i6.SwitchModule], [typeof i1.AccordionComponent, typeof i2.AccordionPanelComponent]>;
|
|
11
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AccordionModule, [typeof i1.AccordionComponent, typeof i2.AccordionPanelComponent], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof i5.TooltipModule, typeof i6.SwitchModule, typeof i7.BadgeModule], [typeof i1.AccordionComponent, typeof i2.AccordionPanelComponent]>;
|
|
11
12
|
static ɵinj: i0.ɵɵInjectorDeclaration<AccordionModule>;
|
|
12
13
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AfterViewInit, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { UntypedFormControl } from '@angular/forms';
|
|
3
3
|
import { AccordionButtonSettings, ValidationMessageIconColor } from '../../models/accordion-button-settings';
|
|
4
|
+
import { BadgeColors } from '@seniorsistemas/angular-components/badge';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
/**
|
|
6
7
|
* @description Painel individual do {@link AccordionComponent}. Gerencia o estado de
|
|
@@ -25,6 +26,14 @@ export declare class AccordionPanelComponent implements OnChanges, AfterViewInit
|
|
|
25
26
|
* @description Título exibido no cabeçalho do painel. Campo obrigatório.
|
|
26
27
|
*/
|
|
27
28
|
header: string;
|
|
29
|
+
/**
|
|
30
|
+
* @description Cria um componente Badge ao lado dos botões de ação no cabeçalho do painel.
|
|
31
|
+
* O objeto de configuração deve conter o texto e a cor do badge.
|
|
32
|
+
*/
|
|
33
|
+
badgeConfig?: {
|
|
34
|
+
text: string;
|
|
35
|
+
color: BadgeColors;
|
|
36
|
+
};
|
|
28
37
|
/**
|
|
29
38
|
* @description Lista de botões de ação exibidos no cabeçalho do painel,
|
|
30
39
|
* à direita do título. Cada item define ícone, tooltip e callback de clique.
|
|
@@ -86,5 +95,5 @@ export declare class AccordionPanelComponent implements OnChanges, AfterViewInit
|
|
|
86
95
|
onContentAnimationDone(): void;
|
|
87
96
|
private _emitPanelEvent;
|
|
88
97
|
static ɵfac: i0.ɵɵFactoryDeclaration<AccordionPanelComponent, never>;
|
|
89
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AccordionPanelComponent, "s-accordion-panel", never, { "header": { "alias": "header"; "required": true; }; "buttons": { "alias": "buttons"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "switchControl": { "alias": "switchControl"; "required": false; }; "validationMessage": { "alias": "validationMessage"; "required": false; }; "cache": { "alias": "cache"; "required": false; }; "validationMessageIcon": { "alias": "validationMessageIcon"; "required": false; }; "validationMessageIconColor": { "alias": "validationMessageIconColor"; "required": false; }; }, { "panelOpened": "panelOpened"; "panelClosed": "panelClosed"; }, never, ["*"], false, never>;
|
|
98
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AccordionPanelComponent, "s-accordion-panel", never, { "header": { "alias": "header"; "required": true; }; "badgeConfig": { "alias": "badgeConfig"; "required": false; }; "buttons": { "alias": "buttons"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "switchControl": { "alias": "switchControl"; "required": false; }; "validationMessage": { "alias": "validationMessage"; "required": false; }; "cache": { "alias": "cache"; "required": false; }; "validationMessageIcon": { "alias": "validationMessageIcon"; "required": false; }; "validationMessageIconColor": { "alias": "validationMessageIconColor"; "required": false; }; }, { "panelOpened": "panelOpened"; "panelClosed": "panelClosed"; }, never, ["*"], false, never>;
|
|
90
99
|
}
|
|
@@ -5,32 +5,19 @@ import { AccordionComponent } from './accordion.component';
|
|
|
5
5
|
import { AccordionPanelComponent } from './components/accordion-panel/accordion-panel.component';
|
|
6
6
|
import { TooltipModule } from '@seniorsistemas/angular-components/tooltip';
|
|
7
7
|
import { SwitchModule } from '@seniorsistemas/angular-components/switch';
|
|
8
|
+
import { BadgeModule } from '@seniorsistemas/angular-components/badge';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
export class AccordionModule {
|
|
10
11
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AccordionModule, declarations: [AccordionComponent, AccordionPanelComponent], imports: [CommonModule,
|
|
12
|
-
|
|
13
|
-
ReactiveFormsModule,
|
|
14
|
-
TooltipModule,
|
|
15
|
-
SwitchModule], exports: [AccordionComponent, AccordionPanelComponent] });
|
|
16
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionModule, imports: [CommonModule,
|
|
17
|
-
FormsModule,
|
|
18
|
-
ReactiveFormsModule,
|
|
19
|
-
TooltipModule,
|
|
20
|
-
SwitchModule] });
|
|
12
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AccordionModule, declarations: [AccordionComponent, AccordionPanelComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule, TooltipModule, SwitchModule, BadgeModule], exports: [AccordionComponent, AccordionPanelComponent] });
|
|
13
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, TooltipModule, SwitchModule, BadgeModule] });
|
|
21
14
|
}
|
|
22
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionModule, decorators: [{
|
|
23
16
|
type: NgModule,
|
|
24
17
|
args: [{
|
|
25
|
-
imports: [
|
|
26
|
-
CommonModule,
|
|
27
|
-
FormsModule,
|
|
28
|
-
ReactiveFormsModule,
|
|
29
|
-
TooltipModule,
|
|
30
|
-
SwitchModule,
|
|
31
|
-
],
|
|
18
|
+
imports: [CommonModule, FormsModule, ReactiveFormsModule, TooltipModule, SwitchModule, BadgeModule],
|
|
32
19
|
declarations: [AccordionComponent, AccordionPanelComponent],
|
|
33
20
|
exports: [AccordionComponent, AccordionPanelComponent],
|
|
34
21
|
}]
|
|
35
22
|
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBT3ZFLE1BQU0sT0FBTyxlQUFlO3dHQUFmLGVBQWU7eUdBQWYsZUFBZSxpQkFIVCxrQkFBa0IsRUFBRSx1QkFBdUIsYUFEaEQsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFdBQVcsYUFFeEYsa0JBQWtCLEVBQUUsdUJBQXVCO3lHQUU1QyxlQUFlLFlBSmQsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFdBQVc7OzRGQUl6RixlQUFlO2tCQUwzQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxXQUFXLENBQUM7b0JBQ25HLFlBQVksRUFBRSxDQUFDLGtCQUFrQixFQUFFLHVCQUF1QixDQUFDO29CQUMzRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSx1QkFBdUIsQ0FBQztpQkFDekQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBY2NvcmRpb25Db21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWNjb3JkaW9uUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWNjb3JkaW9uLXBhbmVsL2FjY29yZGlvbi1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBTd2l0Y2hNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3N3aXRjaCc7XG5pbXBvcnQgeyBCYWRnZU1vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvYmFkZ2UnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBTd2l0Y2hNb2R1bGUsIEJhZGdlTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtBY2NvcmRpb25Db21wb25lbnQsIEFjY29yZGlvblBhbmVsQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbQWNjb3JkaW9uQ29tcG9uZW50LCBBY2NvcmRpb25QYW5lbENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbk1vZHVsZSB7fVxuXG4iXX0=
|
package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs
CHANGED
|
@@ -5,6 +5,7 @@ import * as i1 from "@angular/common";
|
|
|
5
5
|
import * as i2 from "@angular/forms";
|
|
6
6
|
import * as i3 from "@seniorsistemas/angular-components/tooltip";
|
|
7
7
|
import * as i4 from "@seniorsistemas/angular-components/switch";
|
|
8
|
+
import * as i5 from "@seniorsistemas/angular-components/badge";
|
|
8
9
|
/**
|
|
9
10
|
* @description Painel individual do {@link AccordionComponent}. Gerencia o estado de
|
|
10
11
|
* abertura/fechamento com animação, podendo conter um switch de controle via `switchControl`,
|
|
@@ -28,6 +29,11 @@ export class AccordionPanelComponent {
|
|
|
28
29
|
* @description Título exibido no cabeçalho do painel. Campo obrigatório.
|
|
29
30
|
*/
|
|
30
31
|
header;
|
|
32
|
+
/**
|
|
33
|
+
* @description Cria um componente Badge ao lado dos botões de ação no cabeçalho do painel.
|
|
34
|
+
* O objeto de configuração deve conter o texto e a cor do badge.
|
|
35
|
+
*/
|
|
36
|
+
badgeConfig;
|
|
31
37
|
/**
|
|
32
38
|
* @description Lista de botões de ação exibidos no cabeçalho do painel,
|
|
33
39
|
* à direita do título. Cada item define ícone, tooltip e callback de clique.
|
|
@@ -134,7 +140,7 @@ export class AccordionPanelComponent {
|
|
|
134
140
|
}
|
|
135
141
|
}
|
|
136
142
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
137
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AccordionPanelComponent, selector: "s-accordion-panel", inputs: { header: "header", buttons: "buttons", disabled: "disabled", switchControl: "switchControl", validationMessage: "validationMessage", cache: "cache", validationMessageIcon: "validationMessageIcon", validationMessageIconColor: "validationMessageIconColor" }, outputs: { panelOpened: "panelOpened", panelClosed: "panelClosed" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"accordion-panel\"\n [class.accordion-panel--open]=\"isOpen\"\n [class.accordion-panel--disabled]=\"disabled\"\n>\n <div\n class=\"header\"\n (click)=\"onTabClick()\"\n >\n <div class=\"header__title\">\n <span\n class=\"icon fas\"\n [class.fa-minus]=\"isOpen\"\n [class.fa-plus]=\"!isOpen\"\n >\n </span>\n @if (validationMessage) {\n <span\n class=\"exclamation-icon\"\n [class]=\"validationMessageIcon\"\n [sTooltip]=\"validationMessage\"\n [class.exclamation-icon-red]=\"validationMessageIconColor === 'Red'\"\n [class.exclamation-icon-orange]=\"validationMessageIconColor === 'Orange'\"\n [class.exclamation-icon-yellow]=\"validationMessageIconColor === 'Yellow'\"\n [class.exclamation-icon-green]=\"validationMessageIconColor === 'Green'\"\n [class.exclamation-icon-blue]=\"validationMessageIconColor === 'Blue'\"\n >\n </span>\n }\n <span class=\"title\">{{ header }}</span>\n </div>\n <div class=\"header__controls\">\n @for (button of buttons; track button.icon) {\n <button\n class=\"icon-button\"\n [ngClass]=\"button.icon\"\n (click)=\"onIconButtonsClick($event, button.onClick)\"\n ></button>\n }\n\n @if (switchControl) {\n <s-switch\n class=\"switch\"\n [formControl]=\"switchControl\"\n (click)=\"$event.stopPropagation()\"\n >\n </s-switch>\n }\n </div>\n </div>\n\n @if (cache) {\n <div\n class=\"content\"\n [@cacheAnimation]=\"isOpen\"\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cacheAnimation.start)=\"onContentAnimationStart()\"\n (@cacheAnimation.done)=\"onContentAnimationDone()\"\n >\n <div class=\"content-container\">\n <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n </div>\n </div>\n } @else {\n @if (isOpen) {\n <div\n class=\"content\"\n @cachelessAnimation\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cachelessAnimation.start)=\"onContentAnimationStart()\"\n (@cachelessAnimation.done)=\"onContentAnimationDone()\"\n >\n <div class=\"content-container\">\n <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n </div>\n </div>\n }\n }\n</div>\n\n<ng-template #panelContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".accordion-panel{border-bottom:1px solid #c1c1cc}.accordion-panel .header{align-items:center;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;padding:16px;-webkit-user-select:none;user-select:none}.accordion-panel .header .header__title{align-items:center;display:flex;flex-wrap:nowrap}.accordion-panel .header .header__title .icon{color:#212533;font-size:1rem;margin-right:12px}.accordion-panel .header .header__title .exclamation-icon{font-size:1rem;margin-right:12px}.accordion-panel .header .header__title .exclamation-icon-red{color:#c13018}.accordion-panel .header .header__title .exclamation-icon-orange{color:#f8931f}.accordion-panel .header .header__title .exclamation-icon-yellow{color:#fcbf10}.accordion-panel .header .header__title .exclamation-icon-green{color:#0c9348}.accordion-panel .header .header__title .exclamation-icon-blue{color:#428bca}.accordion-panel .header .header__title .title{font-family:\"Open Sans\" sans-serif;font-size:.875rem;font-weight:700;line-height:150%;text-transform:uppercase}.accordion-panel .header .header__controls{align-items:center;display:flex;margin-left:16px}.accordion-panel .header .header__controls .icon-button{color:#212533;cursor:pointer;font-size:1rem;margin-left:12px;padding:4px;border:none;background:none}.accordion-panel .header .header__controls .switch{padding-left:16px}.accordion-panel .content{background-color:#fff;overflow:hidden}.accordion-panel .content .content-container{margin:20px}.accordion-panel--open .header{background-color:#eeebf2;border-bottom:1px solid #c1c1cc}.accordion-panel--disabled .header{cursor:auto}.accordion-panel--disabled .header .header__title .icon,.accordion-panel--disabled .header .header__title .title{color:#c1c1cc}.accordion-panel--disabled .header .header__controls .icon-button{color:#c1c1cc;cursor:auto}.accordion-panel--disabled .exclamation-icon{opacity:.5}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "component", type: i4.SwitchComponent, selector: "s-switch", inputs: ["readonly", "trueLabel", "falseLabel", "inputId", "label", "inputName", "disabled", "value", "showStatusLabel"], outputs: ["valueChanged"] }], animations: [
|
|
143
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AccordionPanelComponent, selector: "s-accordion-panel", inputs: { header: "header", badgeConfig: "badgeConfig", buttons: "buttons", disabled: "disabled", switchControl: "switchControl", validationMessage: "validationMessage", cache: "cache", validationMessageIcon: "validationMessageIcon", validationMessageIconColor: "validationMessageIconColor" }, outputs: { panelOpened: "panelOpened", panelClosed: "panelClosed" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"accordion-panel\"\n [class.accordion-panel--open]=\"isOpen\"\n [class.accordion-panel--disabled]=\"disabled\"\n>\n <div\n class=\"header\"\n (click)=\"onTabClick()\"\n >\n <div class=\"header__title\">\n <span\n class=\"icon fas\"\n [class.fa-minus]=\"isOpen\"\n [class.fa-plus]=\"!isOpen\"\n >\n </span>\n @if (validationMessage) {\n <span\n class=\"exclamation-icon\"\n [class]=\"validationMessageIcon\"\n [sTooltip]=\"validationMessage\"\n [class.exclamation-icon-red]=\"validationMessageIconColor === 'Red'\"\n [class.exclamation-icon-orange]=\"validationMessageIconColor === 'Orange'\"\n [class.exclamation-icon-yellow]=\"validationMessageIconColor === 'Yellow'\"\n [class.exclamation-icon-green]=\"validationMessageIconColor === 'Green'\"\n [class.exclamation-icon-blue]=\"validationMessageIconColor === 'Blue'\"\n >\n </span>\n }\n <span class=\"title\">{{ header }}</span>\n </div>\n <div class=\"header__controls\">\n @if (badgeConfig) {\n <s-badge\n [color]=\"badgeConfig.color\"\n [text]=\"badgeConfig.text\"\n ></s-badge>\n }\n\n @for (button of buttons; track button.icon) {\n <button\n class=\"icon-button\"\n [ngClass]=\"button.icon\"\n (click)=\"onIconButtonsClick($event, button.onClick)\"\n ></button>\n }\n\n @if (switchControl) {\n <s-switch\n class=\"switch\"\n [formControl]=\"switchControl\"\n (click)=\"$event.stopPropagation()\"\n >\n </s-switch>\n }\n </div>\n </div>\n\n @if (cache) {\n <div\n class=\"content\"\n [@cacheAnimation]=\"isOpen\"\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cacheAnimation.start)=\"onContentAnimationStart()\"\n (@cacheAnimation.done)=\"onContentAnimationDone()\"\n >\n <div class=\"content-container\">\n <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n </div>\n </div>\n } @else {\n @if (isOpen) {\n <div\n class=\"content\"\n @cachelessAnimation\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cachelessAnimation.start)=\"onContentAnimationStart()\"\n (@cachelessAnimation.done)=\"onContentAnimationDone()\"\n >\n <div class=\"content-container\">\n <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n </div>\n </div>\n }\n }\n</div>\n\n<ng-template #panelContent>\n <ng-content></ng-content>\n</ng-template>\n\n", styles: [".accordion-panel{border-bottom:1px solid #c1c1cc}.accordion-panel .header{align-items:center;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;padding:16px;-webkit-user-select:none;user-select:none}.accordion-panel .header .header__title{align-items:center;display:flex;flex-wrap:nowrap}.accordion-panel .header .header__title .icon{color:#212533;font-size:1rem;margin-right:12px}.accordion-panel .header .header__title .exclamation-icon{font-size:1rem;margin-right:12px}.accordion-panel .header .header__title .exclamation-icon-red{color:#c13018}.accordion-panel .header .header__title .exclamation-icon-orange{color:#f8931f}.accordion-panel .header .header__title .exclamation-icon-yellow{color:#fcbf10}.accordion-panel .header .header__title .exclamation-icon-green{color:#0c9348}.accordion-panel .header .header__title .exclamation-icon-blue{color:#428bca}.accordion-panel .header .header__title .title{font-family:\"Open Sans\" sans-serif;font-size:.875rem;font-weight:700;line-height:150%;text-transform:uppercase}.accordion-panel .header .header__controls{align-items:center;display:flex;margin-left:16px}.accordion-panel .header .header__controls .icon-button{color:#212533;cursor:pointer;font-size:1rem;margin-left:12px;padding:4px;border:none;background:none}.accordion-panel .header .header__controls .switch{padding-left:16px}.accordion-panel .content{background-color:#fff;overflow:hidden}.accordion-panel .content .content-container{margin:20px}.accordion-panel--open .header{background-color:#eeebf2;border-bottom:1px solid #c1c1cc}.accordion-panel--disabled .header{cursor:auto}.accordion-panel--disabled .header .header__title .icon,.accordion-panel--disabled .header .header__title .title{color:#c1c1cc}.accordion-panel--disabled .header .header__controls .icon-button{color:#c1c1cc;cursor:auto}.accordion-panel--disabled .exclamation-icon{opacity:.5}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "component", type: i4.SwitchComponent, selector: "s-switch", inputs: ["readonly", "trueLabel", "falseLabel", "inputId", "label", "inputName", "disabled", "value", "showStatusLabel"], outputs: ["valueChanged"] }, { kind: "component", type: i5.BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign", "enableTruncateText"], outputs: ["selected"] }], animations: [
|
|
138
144
|
trigger('cachelessAnimation', [
|
|
139
145
|
transition(':enter', [style({ height: '0' }), animate('200ms linear', style({ height: '*' }))]),
|
|
140
146
|
transition(':leave', [style({ height: '*' }), animate('200ms linear', style({ height: '0' }))]),
|
|
@@ -158,10 +164,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
158
164
|
state('false', style({ height: '0px' })),
|
|
159
165
|
transition('* => *', animate('200ms')),
|
|
160
166
|
]),
|
|
161
|
-
], template: "<div\n class=\"accordion-panel\"\n [class.accordion-panel--open]=\"isOpen\"\n [class.accordion-panel--disabled]=\"disabled\"\n>\n <div\n class=\"header\"\n (click)=\"onTabClick()\"\n >\n <div class=\"header__title\">\n <span\n class=\"icon fas\"\n [class.fa-minus]=\"isOpen\"\n [class.fa-plus]=\"!isOpen\"\n >\n </span>\n @if (validationMessage) {\n <span\n class=\"exclamation-icon\"\n [class]=\"validationMessageIcon\"\n [sTooltip]=\"validationMessage\"\n [class.exclamation-icon-red]=\"validationMessageIconColor === 'Red'\"\n [class.exclamation-icon-orange]=\"validationMessageIconColor === 'Orange'\"\n [class.exclamation-icon-yellow]=\"validationMessageIconColor === 'Yellow'\"\n [class.exclamation-icon-green]=\"validationMessageIconColor === 'Green'\"\n [class.exclamation-icon-blue]=\"validationMessageIconColor === 'Blue'\"\n >\n </span>\n }\n <span class=\"title\">{{ header }}</span>\n </div>\n <div class=\"header__controls\">\n @for (button of buttons; track button.icon) {\n <button\n class=\"icon-button\"\n [ngClass]=\"button.icon\"\n (click)=\"onIconButtonsClick($event, button.onClick)\"\n ></button>\n }\n\n @if (switchControl) {\n <s-switch\n class=\"switch\"\n [formControl]=\"switchControl\"\n (click)=\"$event.stopPropagation()\"\n >\n </s-switch>\n }\n </div>\n </div>\n\n @if (cache) {\n <div\n class=\"content\"\n [@cacheAnimation]=\"isOpen\"\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cacheAnimation.start)=\"onContentAnimationStart()\"\n (@cacheAnimation.done)=\"onContentAnimationDone()\"\n >\n <div class=\"content-container\">\n <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n </div>\n </div>\n } @else {\n @if (isOpen) {\n <div\n class=\"content\"\n @cachelessAnimation\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cachelessAnimation.start)=\"onContentAnimationStart()\"\n (@cachelessAnimation.done)=\"onContentAnimationDone()\"\n >\n <div class=\"content-container\">\n <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n </div>\n </div>\n }\n }\n</div>\n\n<ng-template #panelContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".accordion-panel{border-bottom:1px solid #c1c1cc}.accordion-panel .header{align-items:center;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;padding:16px;-webkit-user-select:none;user-select:none}.accordion-panel .header .header__title{align-items:center;display:flex;flex-wrap:nowrap}.accordion-panel .header .header__title .icon{color:#212533;font-size:1rem;margin-right:12px}.accordion-panel .header .header__title .exclamation-icon{font-size:1rem;margin-right:12px}.accordion-panel .header .header__title .exclamation-icon-red{color:#c13018}.accordion-panel .header .header__title .exclamation-icon-orange{color:#f8931f}.accordion-panel .header .header__title .exclamation-icon-yellow{color:#fcbf10}.accordion-panel .header .header__title .exclamation-icon-green{color:#0c9348}.accordion-panel .header .header__title .exclamation-icon-blue{color:#428bca}.accordion-panel .header .header__title .title{font-family:\"Open Sans\" sans-serif;font-size:.875rem;font-weight:700;line-height:150%;text-transform:uppercase}.accordion-panel .header .header__controls{align-items:center;display:flex;margin-left:16px}.accordion-panel .header .header__controls .icon-button{color:#212533;cursor:pointer;font-size:1rem;margin-left:12px;padding:4px;border:none;background:none}.accordion-panel .header .header__controls .switch{padding-left:16px}.accordion-panel .content{background-color:#fff;overflow:hidden}.accordion-panel .content .content-container{margin:20px}.accordion-panel--open .header{background-color:#eeebf2;border-bottom:1px solid #c1c1cc}.accordion-panel--disabled .header{cursor:auto}.accordion-panel--disabled .header .header__title .icon,.accordion-panel--disabled .header .header__title .title{color:#c1c1cc}.accordion-panel--disabled .header .header__controls .icon-button{color:#c1c1cc;cursor:auto}.accordion-panel--disabled .exclamation-icon{opacity:.5}\n"] }]
|
|
167
|
+
], template: "<div\n class=\"accordion-panel\"\n [class.accordion-panel--open]=\"isOpen\"\n [class.accordion-panel--disabled]=\"disabled\"\n>\n <div\n class=\"header\"\n (click)=\"onTabClick()\"\n >\n <div class=\"header__title\">\n <span\n class=\"icon fas\"\n [class.fa-minus]=\"isOpen\"\n [class.fa-plus]=\"!isOpen\"\n >\n </span>\n @if (validationMessage) {\n <span\n class=\"exclamation-icon\"\n [class]=\"validationMessageIcon\"\n [sTooltip]=\"validationMessage\"\n [class.exclamation-icon-red]=\"validationMessageIconColor === 'Red'\"\n [class.exclamation-icon-orange]=\"validationMessageIconColor === 'Orange'\"\n [class.exclamation-icon-yellow]=\"validationMessageIconColor === 'Yellow'\"\n [class.exclamation-icon-green]=\"validationMessageIconColor === 'Green'\"\n [class.exclamation-icon-blue]=\"validationMessageIconColor === 'Blue'\"\n >\n </span>\n }\n <span class=\"title\">{{ header }}</span>\n </div>\n <div class=\"header__controls\">\n @if (badgeConfig) {\n <s-badge\n [color]=\"badgeConfig.color\"\n [text]=\"badgeConfig.text\"\n ></s-badge>\n }\n\n @for (button of buttons; track button.icon) {\n <button\n class=\"icon-button\"\n [ngClass]=\"button.icon\"\n (click)=\"onIconButtonsClick($event, button.onClick)\"\n ></button>\n }\n\n @if (switchControl) {\n <s-switch\n class=\"switch\"\n [formControl]=\"switchControl\"\n (click)=\"$event.stopPropagation()\"\n >\n </s-switch>\n }\n </div>\n </div>\n\n @if (cache) {\n <div\n class=\"content\"\n [@cacheAnimation]=\"isOpen\"\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cacheAnimation.start)=\"onContentAnimationStart()\"\n (@cacheAnimation.done)=\"onContentAnimationDone()\"\n >\n <div class=\"content-container\">\n <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n </div>\n </div>\n } @else {\n @if (isOpen) {\n <div\n class=\"content\"\n @cachelessAnimation\n [@.disabled]=\"isContentAnimationDisabled\"\n (@cachelessAnimation.start)=\"onContentAnimationStart()\"\n (@cachelessAnimation.done)=\"onContentAnimationDone()\"\n >\n <div class=\"content-container\">\n <ng-container [ngTemplateOutlet]=\"panelContent\"></ng-container>\n </div>\n </div>\n }\n }\n</div>\n\n<ng-template #panelContent>\n <ng-content></ng-content>\n</ng-template>\n\n", styles: [".accordion-panel{border-bottom:1px solid #c1c1cc}.accordion-panel .header{align-items:center;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;padding:16px;-webkit-user-select:none;user-select:none}.accordion-panel .header .header__title{align-items:center;display:flex;flex-wrap:nowrap}.accordion-panel .header .header__title .icon{color:#212533;font-size:1rem;margin-right:12px}.accordion-panel .header .header__title .exclamation-icon{font-size:1rem;margin-right:12px}.accordion-panel .header .header__title .exclamation-icon-red{color:#c13018}.accordion-panel .header .header__title .exclamation-icon-orange{color:#f8931f}.accordion-panel .header .header__title .exclamation-icon-yellow{color:#fcbf10}.accordion-panel .header .header__title .exclamation-icon-green{color:#0c9348}.accordion-panel .header .header__title .exclamation-icon-blue{color:#428bca}.accordion-panel .header .header__title .title{font-family:\"Open Sans\" sans-serif;font-size:.875rem;font-weight:700;line-height:150%;text-transform:uppercase}.accordion-panel .header .header__controls{align-items:center;display:flex;margin-left:16px}.accordion-panel .header .header__controls .icon-button{color:#212533;cursor:pointer;font-size:1rem;margin-left:12px;padding:4px;border:none;background:none}.accordion-panel .header .header__controls .switch{padding-left:16px}.accordion-panel .content{background-color:#fff;overflow:hidden}.accordion-panel .content .content-container{margin:20px}.accordion-panel--open .header{background-color:#eeebf2;border-bottom:1px solid #c1c1cc}.accordion-panel--disabled .header{cursor:auto}.accordion-panel--disabled .header .header__title .icon,.accordion-panel--disabled .header .header__title .title{color:#c1c1cc}.accordion-panel--disabled .header .header__controls .icon-button{color:#c1c1cc;cursor:auto}.accordion-panel--disabled .exclamation-icon{opacity:.5}\n"] }]
|
|
162
168
|
}], propDecorators: { header: [{
|
|
163
169
|
type: Input,
|
|
164
170
|
args: [{ required: true }]
|
|
171
|
+
}], badgeConfig: [{
|
|
172
|
+
type: Input
|
|
165
173
|
}], buttons: [{
|
|
166
174
|
type: Input
|
|
167
175
|
}], disabled: [{
|
|
@@ -181,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
181
189
|
}], panelClosed: [{
|
|
182
190
|
type: Output
|
|
183
191
|
}] } });
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9hY2NvcmRpb24vY29tcG9uZW50cy9hY2NvcmRpb24tcGFuZWwvYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9hY2NvcmRpb24vY29tcG9uZW50cy9hY2NvcmRpb24tcGFuZWwvYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7QUFLakY7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBaUJILE1BQU0sT0FBTyx1QkFBdUI7SUFDaEM7O09BRUc7SUFFSSxNQUFNLENBQVU7SUFFdkI7OztPQUdHO0lBRUksT0FBTyxDQUE2QjtJQUUzQzs7OztPQUlHO0lBRUksUUFBUSxHQUFHLEtBQUssQ0FBQztJQUV4Qjs7O09BR0c7SUFFSSxhQUFhLENBQXNCO0lBRTFDOzs7T0FHRztJQUVJLGlCQUFpQixDQUFVO0lBRWxDOzs7OztPQUtHO0lBRUksS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVyQjs7OztPQUlHO0lBQ00scUJBQXFCLEdBQUcsMkJBQTJCLENBQUM7SUFFN0Q7Ozs7T0FJRztJQUNNLDBCQUEwQixHQUErQixLQUFLLENBQUM7SUFFeEU7O09BRUc7SUFFSSxXQUFXLEdBQUcsSUFBSSxZQUFZ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TyxDQUFDLENBQUM7eUJBQ3pDLENBQUM7cUJBQ0w7OEJBT00sTUFBTTtzQkFEWixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFRbEIsT0FBTztzQkFEYixLQUFLO2dCQVNDLFFBQVE7c0JBRGQsS0FBSztnQkFRQyxhQUFhO3NCQURuQixLQUFLO2dCQVFDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFVQyxLQUFLO3NCQURYLEtBQUs7Z0JBUUcscUJBQXFCO3NCQUE3QixLQUFLO2dCQU9HLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFNQyxXQUFXO3NCQURqQixNQUFNO2dCQU9BLFdBQVc7c0JBRGpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0cmlnZ2VyLCBzdHlsZSwgYW5pbWF0ZSwgdHJhbnNpdGlvbiwgc3RhdGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWNjb3JkaW9uQnV0dG9uU2V0dGluZ3MsIFZhbGlkYXRpb25NZXNzYWdlSWNvbkNvbG9yIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjY29yZGlvbi1idXR0b24tc2V0dGluZ3MnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBQYWluZWwgaW5kaXZpZHVhbCBkbyB7QGxpbmsgQWNjb3JkaW9uQ29tcG9uZW50fS4gR2VyZW5jaWEgbyBlc3RhZG8gZGVcbiAqIGFiZXJ0dXJhL2ZlY2hhbWVudG8gY29tIGFuaW1hw6fDo28sIHBvZGVuZG8gY29udGVyIHVtIHN3aXRjaCBkZSBjb250cm9sZSB2aWEgYHN3aXRjaENvbnRyb2xgLFxuICogYm90w7VlcyBkZSBhw6fDo28gY29uZmlndXLDoXZlaXMgZSB1bWEgbWVuc2FnZW0gZGUgdmFsaWRhw6fDo28gY29tIMOtY29uZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtYWNjb3JkaW9uLXBhbmVsXG4gKiAgIGhlYWRlcj1cIkNvbmZpZ3VyYcOnw7Vlc1wiXG4gKiAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gKiAgIChwYW5lbE9wZW5lZCk9XCJvbk9wZW4oKVwiXG4gKiAgIChwYW5lbENsb3NlZCk9XCJvbkNsb3NlKClcIj5cbiAqICAgPHA+Q29udGXDumRvIGRvIHBhaW5lbDwvcD5cbiAqIDwvcy1hY2NvcmRpb24tcGFuZWw+XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgSW5wdXRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1hY2NvcmRpb24tcGFuZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24tcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FjY29yZGlvbi1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignY2FjaGVsZXNzQW5pbWF0aW9uJywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgaGVpZ2h0OiAnMCcgfSksIGFuaW1hdGUoJzIwMG1zIGxpbmVhcicsIHN0eWxlKHsgaGVpZ2h0OiAnKicgfSkpXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSwgYW5pbWF0ZSgnMjAwbXMgbGluZWFyJywgc3R5bGUoeyBoZWlnaHQ6ICcwJyB9KSldKSxcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoJ2NhY2hlQW5pbWF0aW9uJywgW1xuICAgICAgICAgICAgc3RhdGUoJ3RydWUnLCBzdHlsZSh7IGhlaWdodDogJyonIH0pKSxcbiAgICAgICAgICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgaGVpZ2h0OiAnMHB4JyB9KSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCcqID0+IConLCBhbmltYXRlKCcyMDBtcycpKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUw610dWxvIGV4aWJpZG8gbm8gY2FiZcOnYWxobyBkbyBwYWluZWwuIENhbXBvIG9icmlnYXTDs3Jpby5cbiAgICAgKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIHB1YmxpYyBoZWFkZXIhOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdGEgZGUgYm90w7VlcyBkZSBhw6fDo28gZXhpYmlkb3Mgbm8gY2FiZcOnYWxobyBkbyBwYWluZWwsXG4gICAgICogw6AgZGlyZWl0YSBkbyB0w610dWxvLiBDYWRhIGl0ZW0gZGVmaW5lIMOtY29uZSwgdG9vbHRpcCBlIGNhbGxiYWNrIGRlIGNsaXF1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBidXR0b25zPzogQWNjb3JkaW9uQnV0dG9uU2V0dGluZ3NbXTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZXNhYmlsaXRhIGEgaW50ZXJhw6fDo28gZG8gdXN1w6FyaW8gY29tIG8gcGFpbmVsLCBpbXBlZGluZG8gYWJlcnR1cmEgZSBmZWNoYW1lbnRvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGBGb3JtQ29udHJvbGAgdmluY3VsYWRvIGEgdW0gc3dpdGNoIGV4aWJpZG8gbm8gY2FiZcOnYWxobyBkbyBwYWluZWwuXG4gICAgICogUGVybWl0ZSBoYWJpbGl0YXIvZGVzYWJpbGl0YXIgbyBjb250ZcO6ZG8gZG8gcGFpbmVsIHZpYSB0b2dnbGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3dpdGNoQ29udHJvbD86IFVudHlwZWRGb3JtQ29udHJvbDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBNZW5zYWdlbSBkZSB2YWxpZGHDp8OjbyBleGliaWRhIGFiYWl4byBkbyBjYWJlw6dhbGhvLCBhY29tcGFuaGFkYSBkZSB1bSDDrWNvbmUuXG4gICAgICogw5p0aWwgcGFyYSBpbmRpY2FyIGVycm9zIG91IGFsZXJ0YXMgcmVsYWNpb25hZG9zIGFvIGNvbnRlw7pkbyBkbyBwYWluZWwuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsaWRhdGlvbk1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTWFudMOpbSBvIGNvbnRlw7pkbyBkbyBwYWluZWwgbm8gRE9NIG1lc21vIHF1YW5kbyBmZWNoYWRvIChtb2RvIGNhY2hlKS5cbiAgICAgKiDDmnRpbCBwYXJhIHByZXNlcnZhciBvIGVzdGFkbyBkZSBjb21wb25lbnRlcyBpbnRlcm5vcyBhbyByZWFicmlyIG8gcGFpbmVsLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYWNoZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENsYXNzZSBkbyDDrWNvbmUgZXhpYmlkbyBhbyBsYWRvIGRhIG1lbnNhZ2VtIGRlIHZhbGlkYcOnw6NvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ2ZhcyBmYS1leGNsYW1hdGlvbi1jaXJjbGUnXG4gICAgICovXG4gICAgQElucHV0KCkgdmFsaWRhdGlvbk1lc3NhZ2VJY29uID0gJ2ZhcyBmYS1leGNsYW1hdGlvbi1jaXJjbGUnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvciBkbyDDrWNvbmUgZGEgbWVuc2FnZW0gZGUgdmFsaWRhw6fDo28uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnUmVkJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHZhbGlkYXRpb25NZXNzYWdlSWNvbkNvbG9yOiBWYWxpZGF0aW9uTWVzc2FnZUljb25Db2xvciA9ICdSZWQnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gcGFpbmVsIMOpIGFiZXJ0byBwZWxvIHVzdcOhcmlvLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwYW5lbE9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIHBhaW5lbCDDqSBmZWNoYWRvIHBlbG8gdXN1w6FyaW8uXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgcHVibGljIGlzQW5pbWF0aW5nID0gZmFsc2U7XG4gICAgcHVibGljIGlzQ29udGVudEFuaW1hdGlvbkRpc2FibGVkID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgX2lzT3BlbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGdldCBpc09wZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc09wZW47XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBpc09wZW4oaXNPcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzT3BlbiA9IGlzT3BlbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoJ2Rpc2FibGVkJyBpbiBjaGFuZ2VzICYmIHRoaXMuc3dpdGNoQ29udHJvbCkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXNbJ2Rpc2FibGVkJ10uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zd2l0Y2hDb250cm9sLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN3aXRjaENvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgnc3dpdGNoJyBpbiBjaGFuZ2VzICYmICdzd2l0Y2hDb250cm9sJyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJZb3UgY2FuJ3Qgc2V0IHN3aXRjaCBhbmQgc3dpdGNoQ29udHJvbCB0b2dldGhlci5cIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyB0byBleGVjdXRlZCBhdCBhIHNhZmUgdGltZSBwcmlvciB0byBjb250cm9sIHJldHVybmluZyB0byB0aGUgYnJvd3NlcidzIGV2ZW50IGxvb3BcbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0NvbnRlbnRBbmltYXRpb25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25JY29uQnV0dG9uc0NsaWNrKGV2ZW50OiBFdmVudCwgY2FsbGJhY2s6IFZvaWRGdW5jdGlvbikge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVGFiQ2xpY2soKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuaXNBbmltYXRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlbjtcbiAgICAgICAgdGhpcy5fZW1pdFBhbmVsRXZlbnQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Db250ZW50QW5pbWF0aW9uU3RhcnQoKSB7XG4gICAgICAgIHRoaXMuaXNBbmltYXRpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNvbnRlbnRBbmltYXRpb25Eb25lKCkge1xuICAgICAgICB0aGlzLmlzQW5pbWF0aW5nID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5fZW1pdFBhbmVsRXZlbnQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbWl0UGFuZWxFdmVudCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLnBhbmVsT3BlbmVkLmVtaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxDbG9zZWQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJhY2NvcmRpb24tcGFuZWxcIlxuICAgIFtjbGFzcy5hY2NvcmRpb24tcGFuZWwtLW9wZW5dPVwiaXNPcGVuXCJcbiAgICBbY2xhc3MuYWNjb3JkaW9uLXBhbmVsLS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImhlYWRlclwiXG4gICAgICAgIChjbGljayk9XCJvblRhYkNsaWNrKClcIlxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fdGl0bGVcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uIGZhc1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmZhLW1pbnVzXT1cImlzT3BlblwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmZhLXBsdXNdPVwiIWlzT3BlblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICBAaWYgKHZhbGlkYXRpb25NZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJleGNsYW1hdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cInZhbGlkYXRpb25NZXNzYWdlSWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtzVG9vbHRpcF09XCJ2YWxpZGF0aW9uTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5leGNsYW1hdGlvbi1pY29uLXJlZF09XCJ2YWxpZGF0aW9uTWVzc2FnZUljb25Db2xvciA9PT0gJ1JlZCdcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXhjbGFtYXRpb24taWNvbi1vcmFuZ2VdPVwidmFsaWRhdGlvbk1lc3NhZ2VJY29uQ29sb3IgPT09ICdPcmFuZ2UnXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV4Y2xhbWF0aW9uLWljb24teWVsbG93XT1cInZhbGlkYXRpb25NZXNzYWdlSWNvbkNvbG9yID09PSAnWWVsbG93J1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5leGNsYW1hdGlvbi1pY29uLWdyZWVuXT1cInZhbGlkYXRpb25NZXNzYWdlSWNvbkNvbG9yID09PSAnR3JlZW4nXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV4Y2xhbWF0aW9uLWljb24tYmx1ZV09XCJ2YWxpZGF0aW9uTWVzc2FnZUljb25Db2xvciA9PT0gJ0JsdWUnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7IGhlYWRlciB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2NvbnRyb2xzXCI+XG4gICAgICAgICAgICBAZm9yIChidXR0b24gb2YgYnV0dG9uczsgdHJhY2sgYnV0dG9uLmljb24pIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJidXR0b24uaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkljb25CdXR0b25zQ2xpY2soJGV2ZW50LCBidXR0b24ub25DbGljaylcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChzd2l0Y2hDb250cm9sKSB7XG4gICAgICAgICAgICAgICAgPHMtc3dpdGNoXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3dpdGNoXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInN3aXRjaENvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9zLXN3aXRjaD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGNhY2hlKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY29udGVudFwiXG4gICAgICAgICAgICBbQGNhY2hlQW5pbWF0aW9uXT1cImlzT3BlblwiXG4gICAgICAgICAgICBbQC5kaXNhYmxlZF09XCJpc0NvbnRlbnRBbmltYXRpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAoQGNhY2hlQW5pbWF0aW9uLnN0YXJ0KT1cIm9uQ29udGVudEFuaW1hdGlvblN0YXJ0KClcIlxuICAgICAgICAgICAgKEBjYWNoZUFuaW1hdGlvbi5kb25lKT1cIm9uQ29udGVudEFuaW1hdGlvbkRvbmUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicGFuZWxDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50XCJcbiAgICAgICAgICAgICAgICBAY2FjaGVsZXNzQW5pbWF0aW9uXG4gICAgICAgICAgICAgICAgW0AuZGlzYWJsZWRdPVwiaXNDb250ZW50QW5pbWF0aW9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIChAY2FjaGVsZXNzQW5pbWF0aW9uLnN0YXJ0KT1cIm9uQ29udGVudEFuaW1hdGlvblN0YXJ0KClcIlxuICAgICAgICAgICAgICAgIChAY2FjaGVsZXNzQW5pbWF0aW9uLmRvbmUpPVwib25Db250ZW50QW5pbWF0aW9uRG9uZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJwYW5lbENvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgfVxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjcGFuZWxDb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9hY2NvcmRpb24vY29tcG9uZW50cy9hY2NvcmRpb24tcGFuZWwvYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9hY2NvcmRpb24vY29tcG9uZW50cy9hY2NvcmRpb24tcGFuZWwvYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBTWpGOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQWlCSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDOztPQUVHO0lBRUksTUFBTSxDQUFVO0lBRXZCOzs7T0FHRztJQUVJLFdBQVcsQ0FBd0M7SUFFMUQ7OztPQUdHO0lBRUksT0FBTyxDQUE2QjtJQUUzQzs7OztPQUlHO0lBRUksUUFBUSxHQUFHLEtBQUssQ0FBQztJQUV4Qjs7O09BR0c7SUFFSSxhQUFhLENBQXNCO0lBRTFDOzs7T0FHRztJQUVJLGlCQUFpQixDQUFVO0lBRWxDOzs7OztPQUtHO0lBRUksS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVyQjs7OztPQUlHO0lBQ00scUJBQXFCLEdBQUcsMkJBQTJCLENBQUM7SUFFN0Q7Ozs7T0FJRztJQUNNLDBCQUEwQixHQUErQixLQUFLLENBQUM7SUFFeEU7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VSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7eUJBQ3pDLENBQUM7cUJBQ0w7OEJBT00sTUFBTTtzQkFEWixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFRbEIsV0FBVztzQkFEakIsS0FBSztnQkFRQyxPQUFPO3NCQURiLEtBQUs7Z0JBU0MsUUFBUTtzQkFEZCxLQUFLO2dCQVFDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBUUMsaUJBQWlCO3NCQUR2QixLQUFLO2dCQVVDLEtBQUs7c0JBRFgsS0FBSztnQkFRRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBT0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQU1DLFdBQVc7c0JBRGpCLE1BQU07Z0JBT0EsV0FBVztzQkFEakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRyaWdnZXIsIHN0eWxlLCBhbmltYXRlLCB0cmFuc2l0aW9uLCBzdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY2NvcmRpb25CdXR0b25TZXR0aW5ncywgVmFsaWRhdGlvbk1lc3NhZ2VJY29uQ29sb3IgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWNjb3JkaW9uLWJ1dHRvbi1zZXR0aW5ncyc7XG5pbXBvcnQgeyBCYWRnZUNvbG9ycyB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvYmFkZ2UnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBQYWluZWwgaW5kaXZpZHVhbCBkbyB7QGxpbmsgQWNjb3JkaW9uQ29tcG9uZW50fS4gR2VyZW5jaWEgbyBlc3RhZG8gZGVcbiAqIGFiZXJ0dXJhL2ZlY2hhbWVudG8gY29tIGFuaW1hw6fDo28sIHBvZGVuZG8gY29udGVyIHVtIHN3aXRjaCBkZSBjb250cm9sZSB2aWEgYHN3aXRjaENvbnRyb2xgLFxuICogYm90w7VlcyBkZSBhw6fDo28gY29uZmlndXLDoXZlaXMgZSB1bWEgbWVuc2FnZW0gZGUgdmFsaWRhw6fDo28gY29tIMOtY29uZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtYWNjb3JkaW9uLXBhbmVsXG4gKiAgIGhlYWRlcj1cIkNvbmZpZ3VyYcOnw7Vlc1wiXG4gKiAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gKiAgIChwYW5lbE9wZW5lZCk9XCJvbk9wZW4oKVwiXG4gKiAgIChwYW5lbENsb3NlZCk9XCJvbkNsb3NlKClcIj5cbiAqICAgPHA+Q29udGXDumRvIGRvIHBhaW5lbDwvcD5cbiAqIDwvcy1hY2NvcmRpb24tcGFuZWw+XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgSW5wdXRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1hY2NvcmRpb24tcGFuZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24tcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FjY29yZGlvbi1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignY2FjaGVsZXNzQW5pbWF0aW9uJywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgaGVpZ2h0OiAnMCcgfSksIGFuaW1hdGUoJzIwMG1zIGxpbmVhcicsIHN0eWxlKHsgaGVpZ2h0OiAnKicgfSkpXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSwgYW5pbWF0ZSgnMjAwbXMgbGluZWFyJywgc3R5bGUoeyBoZWlnaHQ6ICcwJyB9KSldKSxcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoJ2NhY2hlQW5pbWF0aW9uJywgW1xuICAgICAgICAgICAgc3RhdGUoJ3RydWUnLCBzdHlsZSh7IGhlaWdodDogJyonIH0pKSxcbiAgICAgICAgICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgaGVpZ2h0OiAnMHB4JyB9KSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCcqID0+IConLCBhbmltYXRlKCcyMDBtcycpKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUw610dWxvIGV4aWJpZG8gbm8gY2FiZcOnYWxobyBkbyBwYWluZWwuIENhbXBvIG9icmlnYXTDs3Jpby5cbiAgICAgKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIHB1YmxpYyBoZWFkZXIhOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JpYSB1bSBjb21wb25lbnRlIEJhZGdlIGFvIGxhZG8gZG9zIGJvdMO1ZXMgZGUgYcOnw6NvIG5vIGNhYmXDp2FsaG8gZG8gcGFpbmVsLlxuICAgICAqIE8gb2JqZXRvIGRlIGNvbmZpZ3VyYcOnw6NvIGRldmUgY29udGVyIG8gdGV4dG8gZSBhIGNvciBkbyBiYWRnZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBiYWRnZUNvbmZpZz86IHsgdGV4dDogc3RyaW5nOyBjb2xvcjogQmFkZ2VDb2xvcnMgfTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0YSBkZSBib3TDtWVzIGRlIGHDp8OjbyBleGliaWRvcyBubyBjYWJlw6dhbGhvIGRvIHBhaW5lbCxcbiAgICAgKiDDoCBkaXJlaXRhIGRvIHTDrXR1bG8uIENhZGEgaXRlbSBkZWZpbmUgw61jb25lLCB0b29sdGlwIGUgY2FsbGJhY2sgZGUgY2xpcXVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJ1dHRvbnM/OiBBY2NvcmRpb25CdXR0b25TZXR0aW5nc1tdO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERlc2FiaWxpdGEgYSBpbnRlcmHDp8OjbyBkbyB1c3XDoXJpbyBjb20gbyBwYWluZWwsIGltcGVkaW5kbyBhYmVydHVyYSBlIGZlY2hhbWVudG8uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gYEZvcm1Db250cm9sYCB2aW5jdWxhZG8gYSB1bSBzd2l0Y2ggZXhpYmlkbyBubyBjYWJlw6dhbGhvIGRvIHBhaW5lbC5cbiAgICAgKiBQZXJtaXRlIGhhYmlsaXRhci9kZXNhYmlsaXRhciBvIGNvbnRlw7pkbyBkbyBwYWluZWwgdmlhIHRvZ2dsZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzd2l0Y2hDb250cm9sPzogVW50eXBlZEZvcm1Db250cm9sO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIE1lbnNhZ2VtIGRlIHZhbGlkYcOnw6NvIGV4aWJpZGEgYWJhaXhvIGRvIGNhYmXDp2FsaG8sIGFjb21wYW5oYWRhIGRlIHVtIMOtY29uZS5cbiAgICAgKiDDmnRpbCBwYXJhIGluZGljYXIgZXJyb3Mgb3UgYWxlcnRhcyByZWxhY2lvbmFkb3MgYW8gY29udGXDumRvIGRvIHBhaW5lbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWxpZGF0aW9uTWVzc2FnZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBNYW50w6ltIG8gY29udGXDumRvIGRvIHBhaW5lbCBubyBET00gbWVzbW8gcXVhbmRvIGZlY2hhZG8gKG1vZG8gY2FjaGUpLlxuICAgICAqIMOadGlsIHBhcmEgcHJlc2VydmFyIG8gZXN0YWRvIGRlIGNvbXBvbmVudGVzIGludGVybm9zIGFvIHJlYWJyaXIgbyBwYWluZWwuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNhY2hlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2xhc3NlIGRvIMOtY29uZSBleGliaWRvIGFvIGxhZG8gZGEgbWVuc2FnZW0gZGUgdmFsaWRhw6fDo28uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnZmFzIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZSdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB2YWxpZGF0aW9uTWVzc2FnZUljb24gPSAnZmFzIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZSc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29yIGRvIMOtY29uZSBkYSBtZW5zYWdlbSBkZSB2YWxpZGHDp8Ojby5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICdSZWQnXG4gICAgICovXG4gICAgQElucHV0KCkgdmFsaWRhdGlvbk1lc3NhZ2VJY29uQ29sb3I6IFZhbGlkYXRpb25NZXNzYWdlSWNvbkNvbG9yID0gJ1JlZCc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyBwYWluZWwgw6kgYWJlcnRvIHBlbG8gdXN1w6FyaW8uXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsT3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gcGFpbmVsIMOpIGZlY2hhZG8gcGVsbyB1c3XDoXJpby5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcGFuZWxDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBwdWJsaWMgaXNBbmltYXRpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNDb250ZW50QW5pbWF0aW9uRGlzYWJsZWQgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBfaXNPcGVuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgZ2V0IGlzT3BlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzT3BlbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlzT3Blbihpc09wZW46IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNPcGVuID0gaXNPcGVuO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICgnZGlzYWJsZWQnIGluIGNoYW5nZXMgJiYgdGhpcy5zd2l0Y2hDb250cm9sKSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlc1snZGlzYWJsZWQnXS5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN3aXRjaENvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3dpdGNoQ29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCdzd2l0Y2gnIGluIGNoYW5nZXMgJiYgJ3N3aXRjaENvbnRyb2wnIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIllvdSBjYW4ndCBzZXQgc3dpdGNoIGFuZCBzd2l0Y2hDb250cm9sIHRvZ2V0aGVyLlwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIHRvIGV4ZWN1dGVkIGF0IGEgc2FmZSB0aW1lIHByaW9yIHRvIGNvbnRyb2wgcmV0dXJuaW5nIHRvIHRoZSBicm93c2VyJ3MgZXZlbnQgbG9vcFxuICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzQ29udGVudEFuaW1hdGlvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkljb25CdXR0b25zQ2xpY2soZXZlbnQ6IEV2ZW50LCBjYWxsYmFjazogVm9pZEZ1bmN0aW9uKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgY2FsbGJhY2soKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UYWJDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5pc0FuaW1hdGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xuICAgICAgICB0aGlzLl9lbWl0UGFuZWxFdmVudCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNvbnRlbnRBbmltYXRpb25TdGFydCgpIHtcbiAgICAgICAgdGhpcy5pc0FuaW1hdGluZyA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ29udGVudEFuaW1hdGlvbkRvbmUoKSB7XG4gICAgICAgIHRoaXMuaXNBbmltYXRpbmcgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLl9lbWl0UGFuZWxFdmVudCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2VtaXRQYW5lbEV2ZW50KCkge1xuICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxPcGVuZWQuZW1pdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYW5lbENsb3NlZC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIjxkaXZcbiAgICBjbGFzcz1cImFjY29yZGlvbi1wYW5lbFwiXG4gICAgW2NsYXNzLmFjY29yZGlvbi1wYW5lbC0tb3Blbl09XCJpc09wZW5cIlxuICAgIFtjbGFzcy5hY2NvcmRpb24tcGFuZWwtLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaGVhZGVyXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uVGFiQ2xpY2soKVwiXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyX190aXRsZVwiPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb24gZmFzXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZmEtbWludXNdPVwiaXNPcGVuXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZmEtcGx1c109XCIhaXNPcGVuXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIEBpZiAodmFsaWRhdGlvbk1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV4Y2xhbWF0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwidmFsaWRhdGlvbk1lc3NhZ2VJY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW3NUb29sdGlwXT1cInZhbGlkYXRpb25NZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV4Y2xhbWF0aW9uLWljb24tcmVkXT1cInZhbGlkYXRpb25NZXNzYWdlSWNvbkNvbG9yID09PSAnUmVkJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5leGNsYW1hdGlvbi1pY29uLW9yYW5nZV09XCJ2YWxpZGF0aW9uTWVzc2FnZUljb25Db2xvciA9PT0gJ09yYW5nZSdcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXhjbGFtYXRpb24taWNvbi15ZWxsb3ddPVwidmFsaWRhdGlvbk1lc3NhZ2VJY29uQ29sb3IgPT09ICdZZWxsb3cnXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV4Y2xhbWF0aW9uLWljb24tZ3JlZW5dPVwidmFsaWRhdGlvbk1lc3NhZ2VJY29uQ29sb3IgPT09ICdHcmVlbidcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXhjbGFtYXRpb24taWNvbi1ibHVlXT1cInZhbGlkYXRpb25NZXNzYWdlSWNvbkNvbG9yID09PSAnQmx1ZSdcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+e3sgaGVhZGVyIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlcl9fY29udHJvbHNcIj5cbiAgICAgICAgICAgIEBpZiAoYmFkZ2VDb25maWcpIHtcbiAgICAgICAgICAgICAgICA8cy1iYWRnZVxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiYmFkZ2VDb25maWcuY29sb3JcIlxuICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJiYWRnZUNvbmZpZy50ZXh0XCJcbiAgICAgICAgICAgICAgICA+PC9zLWJhZGdlPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAZm9yIChidXR0b24gb2YgYnV0dG9uczsgdHJhY2sgYnV0dG9uLmljb24pIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJidXR0b24uaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkljb25CdXR0b25zQ2xpY2soJGV2ZW50LCBidXR0b24ub25DbGljaylcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChzd2l0Y2hDb250cm9sKSB7XG4gICAgICAgICAgICAgICAgPHMtc3dpdGNoXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3dpdGNoXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInN3aXRjaENvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9zLXN3aXRjaD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGNhY2hlKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY29udGVudFwiXG4gICAgICAgICAgICBbQGNhY2hlQW5pbWF0aW9uXT1cImlzT3BlblwiXG4gICAgICAgICAgICBbQC5kaXNhYmxlZF09XCJpc0NvbnRlbnRBbmltYXRpb25EaXNhYmxlZFwiXG4gICAgICAgICAgICAoQGNhY2hlQW5pbWF0aW9uLnN0YXJ0KT1cIm9uQ29udGVudEFuaW1hdGlvblN0YXJ0KClcIlxuICAgICAgICAgICAgKEBjYWNoZUFuaW1hdGlvbi5kb25lKT1cIm9uQ29udGVudEFuaW1hdGlvbkRvbmUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicGFuZWxDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50XCJcbiAgICAgICAgICAgICAgICBAY2FjaGVsZXNzQW5pbWF0aW9uXG4gICAgICAgICAgICAgICAgW0AuZGlzYWJsZWRdPVwiaXNDb250ZW50QW5pbWF0aW9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIChAY2FjaGVsZXNzQW5pbWF0aW9uLnN0YXJ0KT1cIm9uQ29udGVudEFuaW1hdGlvblN0YXJ0KClcIlxuICAgICAgICAgICAgICAgIChAY2FjaGVsZXNzQW5pbWF0aW9uLmRvbmUpPVwib25Db250ZW50QW5pbWF0aW9uRG9uZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJwYW5lbENvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgfVxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjcGFuZWxDb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbiJdfQ==
|
|
@@ -149,7 +149,7 @@ export class ContentGeneratorComponent {
|
|
|
149
149
|
removalVersion: '20.0.0',
|
|
150
150
|
},
|
|
151
151
|
},
|
|
152
|
-
], 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 >\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 >\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 >\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 >\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;cursor:pointer;height:32px;width:32px}.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: "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: "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: i3.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"], outputs: ["clicked"] }, { kind: "component", type: i4.LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.TextAreaComponent, selector: "s-textarea", inputs: ["inputId", "rows", "speechRecognition", "keyFilter", "keepContext", "speechRecognitionPlaceholder", "maxLength", "placeholder", "inputStyle", "readOnly"] }, { kind: "component", type: i7.DialogComponent, selector: "s-dialog", inputs: ["header", "visible", "size", "contentClassName", "escapeOnEsc", "destroyClickOutside", "closeAriaLabel"], outputs: ["visibleChange"] }, { kind: "directive", type: i8.TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "directive", type: i9.SVGFactoryDirective, selector: "[sSVGFactory]", inputs: ["sSVGFactory"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
152
|
+
], 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 >\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 >\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 >\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 >\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;cursor:pointer;height:32px;width:32px}.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: "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: "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: i3.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"], outputs: ["clicked"] }, { kind: "component", type: i4.LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading", "progressBarMode", "progressBarValue", "progressBarLabel"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.TextAreaComponent, selector: "s-textarea", inputs: ["inputId", "rows", "speechRecognition", "keyFilter", "keepContext", "speechRecognitionPlaceholder", "maxLength", "placeholder", "inputStyle", "readOnly"] }, { kind: "component", type: i7.DialogComponent, selector: "s-dialog", inputs: ["header", "visible", "size", "contentClassName", "escapeOnEsc", "destroyClickOutside", "closeAriaLabel"], outputs: ["visibleChange"] }, { kind: "directive", type: i8.TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "directive", type: i9.SVGFactoryDirective, selector: "[sSVGFactory]", inputs: ["sSVGFactory"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
153
153
|
}
|
|
154
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorComponent, decorators: [{
|
|
155
155
|
type: Component,
|
|
@@ -2,5 +2,6 @@ export var LoadingStateIndicators;
|
|
|
2
2
|
(function (LoadingStateIndicators) {
|
|
3
3
|
LoadingStateIndicators["Dots"] = "dots";
|
|
4
4
|
LoadingStateIndicators["Logo"] = "logo";
|
|
5
|
+
LoadingStateIndicators["ProgressBar"] = "progress-bar";
|
|
5
6
|
})(LoadingStateIndicators || (LoadingStateIndicators = {}));
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1zdGF0ZS1pbmRpY2F0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2xvYWRpbmctc3RhdGUvc3JjL2xpYi9sb2FkaW5nLXN0YXRlL2NvbXBvbmVudHMvbG9hZGluZy1zdGF0ZS1pbmRpY2F0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHNCQUlYO0FBSkQsV0FBWSxzQkFBc0I7SUFDOUIsdUNBQWEsQ0FBQTtJQUNiLHVDQUFhLENBQUE7SUFDYixzREFBNEIsQ0FBQTtBQUNoQyxDQUFDLEVBSlcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUlqQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIExvYWRpbmdTdGF0ZUluZGljYXRvcnMge1xuICAgIERvdHMgPSAnZG90cycsXG4gICAgTG9nbyA9ICdsb2dvJyxcbiAgICBQcm9ncmVzc0JhciA9ICdwcm9ncmVzcy1iYXInLFxufVxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class ProgressBarIndicatorComponent {
|
|
5
|
+
/**
|
|
6
|
+
* @description Modo de exibição da barra.
|
|
7
|
+
* - `'percentage'`: exibe o preenchimento proporcional ao `value` (0–100).
|
|
8
|
+
* - `'intermittent'`: anima a barra indo e voltando indefinidamente.
|
|
9
|
+
* @default 'intermittent'
|
|
10
|
+
*/
|
|
11
|
+
mode = 'intermittent';
|
|
12
|
+
/**
|
|
13
|
+
* @description Valor de progresso (0–100). Usado apenas no modo `'percentage'`.
|
|
14
|
+
* @default 0
|
|
15
|
+
*/
|
|
16
|
+
value = 0;
|
|
17
|
+
/**
|
|
18
|
+
* @description Texto exibido abaixo da barra.
|
|
19
|
+
* Quando omitido, usa `'{value}%'` no modo `'percentage'` ou `'Carregando...'` no modo `'intermittent'`.
|
|
20
|
+
*/
|
|
21
|
+
label;
|
|
22
|
+
get displayLabel() {
|
|
23
|
+
if (this.label) {
|
|
24
|
+
return this.label;
|
|
25
|
+
}
|
|
26
|
+
return this.mode === 'percentage' ? `${this.value}%` : 'Carregando...';
|
|
27
|
+
}
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressBarIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ProgressBarIndicatorComponent, selector: "s-progress-bar-indicator", inputs: { mode: "mode", value: "value", label: "label" }, ngImport: i0, template: "<div class=\"progress-bar-indicator\">\n <div class=\"progress-bar-track\">\n <div\n class=\"progress-bar-fill\"\n [class.progress-bar-fill--percentage]=\"mode === 'percentage'\"\n [class.progress-bar-fill--intermittent]=\"mode === 'intermittent'\"\n [ngStyle]=\"mode === 'percentage' ? { width: value + '%' } : {}\"\n ></div>\n </div>\n <span class=\"progress-bar-label\">{{ displayLabel }}</span>\n</div>\n", styles: [".progress-bar-indicator{display:flex;flex-direction:column;gap:4px;width:100%}.progress-bar-indicator .progress-bar-track{background-color:#dedce5;border-radius:3px;height:6px;overflow:hidden;position:relative;width:100%}.progress-bar-indicator .progress-bar-fill{background-color:#428bca;height:100%;position:absolute;top:0}.progress-bar-indicator .progress-bar-fill--percentage{border-radius:3px 0 0 3px;left:0;transition:width .3s ease}.progress-bar-indicator .progress-bar-fill--intermittent{border-radius:3px;width:28%;animation:loading-state-progress-slide 1.5s ease-in-out infinite alternate}.progress-bar-indicator .progress-bar-label{color:#212533;font-family:Open Sans,sans-serif;font-size:12px;line-height:1.5;text-align:center}@keyframes loading-state-progress-slide{0%{left:-28%}to{left:100%}}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProgressBarIndicatorComponent, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: 's-progress-bar-indicator', template: "<div class=\"progress-bar-indicator\">\n <div class=\"progress-bar-track\">\n <div\n class=\"progress-bar-fill\"\n [class.progress-bar-fill--percentage]=\"mode === 'percentage'\"\n [class.progress-bar-fill--intermittent]=\"mode === 'intermittent'\"\n [ngStyle]=\"mode === 'percentage' ? { width: value + '%' } : {}\"\n ></div>\n </div>\n <span class=\"progress-bar-label\">{{ displayLabel }}</span>\n</div>\n", styles: [".progress-bar-indicator{display:flex;flex-direction:column;gap:4px;width:100%}.progress-bar-indicator .progress-bar-track{background-color:#dedce5;border-radius:3px;height:6px;overflow:hidden;position:relative;width:100%}.progress-bar-indicator .progress-bar-fill{background-color:#428bca;height:100%;position:absolute;top:0}.progress-bar-indicator .progress-bar-fill--percentage{border-radius:3px 0 0 3px;left:0;transition:width .3s ease}.progress-bar-indicator .progress-bar-fill--intermittent{border-radius:3px;width:28%;animation:loading-state-progress-slide 1.5s ease-in-out infinite alternate}.progress-bar-indicator .progress-bar-label{color:#212533;font-family:Open Sans,sans-serif;font-size:12px;line-height:1.5;text-align:center}@keyframes loading-state-progress-slide{0%{left:-28%}to{left:100%}}\n"] }]
|
|
34
|
+
}], propDecorators: { mode: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], value: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], label: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}] } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLWluZGljYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvbG9hZGluZy1zdGF0ZS9zcmMvbGliL2xvYWRpbmctc3RhdGUvY29tcG9uZW50cy9wcm9ncmVzcy1iYXItaW5kaWNhdG9yL3Byb2dyZXNzLWJhci1pbmRpY2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2xvYWRpbmctc3RhdGUvc3JjL2xpYi9sb2FkaW5nLXN0YXRlL2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyLWluZGljYXRvci9wcm9ncmVzcy1iYXItaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTakQsTUFBTSxPQUFPLDZCQUE2QjtJQUN0Qzs7Ozs7T0FLRztJQUVJLElBQUksR0FBNkIsY0FBYyxDQUFDO0lBRXZEOzs7T0FHRztJQUVJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFakI7OztPQUdHO0lBRUksS0FBSyxDQUFVO0lBRXRCLElBQVcsWUFBWTtRQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN0QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUMzRSxDQUFDO3dHQTdCUSw2QkFBNkI7NEZBQTdCLDZCQUE2QiwwSENUMUMsNmRBV0E7OzRGREZhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDSSwwQkFBMEI7OEJBWTdCLElBQUk7c0JBRFYsS0FBSztnQkFRQyxLQUFLO3NCQURYLEtBQUs7Z0JBUUMsS0FBSztzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBQcm9ncmVzc0JhckluZGljYXRvck1vZGUgPSAncGVyY2VudGFnZScgfCAnaW50ZXJtaXR0ZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLXByb2dyZXNzLWJhci1pbmRpY2F0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy1iYXItaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9ncmVzcy1iYXItaW5kaWNhdG9yLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFySW5kaWNhdG9yQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTW9kbyBkZSBleGliacOnw6NvIGRhIGJhcnJhLlxuICAgICAqIC0gYCdwZXJjZW50YWdlJ2A6IGV4aWJlIG8gcHJlZW5jaGltZW50byBwcm9wb3JjaW9uYWwgYW8gYHZhbHVlYCAoMOKAkzEwMCkuXG4gICAgICogLSBgJ2ludGVybWl0dGVudCdgOiBhbmltYSBhIGJhcnJhIGluZG8gZSB2b2x0YW5kbyBpbmRlZmluaWRhbWVudGUuXG4gICAgICogQGRlZmF1bHQgJ2ludGVybWl0dGVudCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtb2RlOiBQcm9ncmVzc0JhckluZGljYXRvck1vZGUgPSAnaW50ZXJtaXR0ZW50JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBWYWxvciBkZSBwcm9ncmVzc28gKDDigJMxMDApLiBVc2FkbyBhcGVuYXMgbm8gbW9kbyBgJ3BlcmNlbnRhZ2UnYC5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsdWUgPSAwO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRleHRvIGV4aWJpZG8gYWJhaXhvIGRhIGJhcnJhLlxuICAgICAqIFF1YW5kbyBvbWl0aWRvLCB1c2EgYCd7dmFsdWV9JSdgIG5vIG1vZG8gYCdwZXJjZW50YWdlJ2Agb3UgYCdDYXJyZWdhbmRvLi4uJ2Agbm8gbW9kbyBgJ2ludGVybWl0dGVudCdgLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsPzogc3RyaW5nO1xuXG4gICAgcHVibGljIGdldCBkaXNwbGF5TGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMubGFiZWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxhYmVsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdwZXJjZW50YWdlJyA/IGAke3RoaXMudmFsdWV9JWAgOiAnQ2FycmVnYW5kby4uLic7XG4gICAgfVxufVxuXG4iLCI8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyLWluZGljYXRvclwiPlxuICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXItdHJhY2tcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1iYXItZmlsbFwiXG4gICAgICAgICAgICBbY2xhc3MucHJvZ3Jlc3MtYmFyLWZpbGwtLXBlcmNlbnRhZ2VdPVwibW9kZSA9PT0gJ3BlcmNlbnRhZ2UnXCJcbiAgICAgICAgICAgIFtjbGFzcy5wcm9ncmVzcy1iYXItZmlsbC0taW50ZXJtaXR0ZW50XT1cIm1vZGUgPT09ICdpbnRlcm1pdHRlbnQnXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIm1vZGUgPT09ICdwZXJjZW50YWdlJyA/IHsgd2lkdGg6IHZhbHVlICsgJyUnIH0gOiB7fVwiXG4gICAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cInByb2dyZXNzLWJhci1sYWJlbFwiPnt7IGRpc3BsYXlMYWJlbCB9fTwvc3Bhbj5cbjwvZGl2PlxuIl19
|
|
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
import * as i2 from "./components/dots-indicator/dots-indicator.components";
|
|
6
6
|
import * as i3 from "./components/logo-indicator/logo-indicator.component";
|
|
7
|
+
import * as i4 from "./components/progress-bar-indicator/progress-bar-indicator.component";
|
|
7
8
|
/**
|
|
8
9
|
* @description Componente de estado de carregamento que exibe um indicador animado enquanto
|
|
9
10
|
* um processo assíncrono está em andamento. Suporta bloqueio da janela inteira
|
|
@@ -52,6 +53,26 @@ export class LoadingStateComponent {
|
|
|
52
53
|
get loading() {
|
|
53
54
|
return this._loading;
|
|
54
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* @description Modo da barra de progresso. Usado quando `indicator` é `LoadingStateIndicators.ProgressBar`.
|
|
58
|
+
* - `'percentage'`: exibe o preenchimento proporcional ao `progressBarValue`.
|
|
59
|
+
* - `'intermittent'`: anima a barra indo e voltando.
|
|
60
|
+
*
|
|
61
|
+
* @default 'intermittent'
|
|
62
|
+
*/
|
|
63
|
+
progressBarMode = 'intermittent';
|
|
64
|
+
/**
|
|
65
|
+
* @description Valor de progresso (0–100). Usado quando `indicator` é `LoadingStateIndicators.ProgressBar`
|
|
66
|
+
* e `progressBarMode` é `'percentage'`.
|
|
67
|
+
*
|
|
68
|
+
* @default 0
|
|
69
|
+
*/
|
|
70
|
+
progressBarValue = 0;
|
|
71
|
+
/**
|
|
72
|
+
* @description Texto exibido abaixo da barra de progresso.
|
|
73
|
+
* Quando omitido, usa `'{value}%'` no modo `'percentage'` ou `'Carregando...'` no modo `'intermittent'`.
|
|
74
|
+
*/
|
|
75
|
+
progressBarLabel;
|
|
55
76
|
contents = null;
|
|
56
77
|
blocking = false;
|
|
57
78
|
_loading = false;
|
|
@@ -92,11 +113,11 @@ export class LoadingStateComponent {
|
|
|
92
113
|
}
|
|
93
114
|
}
|
|
94
115
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
95
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LoadingStateComponent, selector: "s-loading-state", inputs: { indicator: "indicator", id: "id", blockWindow: "blockWindow", loading: "loading" }, ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"s-loading-state\"\n [ngClass]=\"{\n 's-loading-state--loading': loading,\n 's-loading-state--blocking': blocking,\n 's-loading-state--fullscreen': blockWindow\n }\"\n>\n <div\n [id]=\"id + '-loader'\"\n class=\"loader\"\n >\n <div\n [id]=\"id + '-spinner'\"\n
|
|
116
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LoadingStateComponent, selector: "s-loading-state", inputs: { indicator: "indicator", id: "id", blockWindow: "blockWindow", loading: "loading", progressBarMode: "progressBarMode", progressBarValue: "progressBarValue", progressBarLabel: "progressBarLabel" }, ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"s-loading-state\"\n [ngClass]=\"{\n 's-loading-state--loading': loading,\n 's-loading-state--blocking': blocking,\n 's-loading-state--fullscreen': blockWindow\n }\"\n>\n <div\n [id]=\"id + '-loader'\"\n class=\"loader\"\n >\n @if (indicator === 'progress-bar') {\n <div class=\"progress-bar-wrapper\">\n <s-progress-bar-indicator\n [mode]=\"progressBarMode\"\n [value]=\"progressBarValue\"\n [label]=\"progressBarLabel\"\n ></s-progress-bar-indicator>\n </div>\n } @else {\n <div\n [id]=\"id + '-spinner'\"\n class=\"spinner\"\n >\n @switch (indicator) {\n @case ('logo') {\n <s-logo-indicator></s-logo-indicator>\n }\n @case ('dots') {\n <s-dots-indicator></s-dots-indicator>\n }\n }\n </div>\n }\n <div\n [id]=\"id + '-overlay'\"\n class=\"overlay\"\n ></div>\n </div>\n <div\n [id]=\"id + '-contents'\"\n class=\"state-contents\"\n >\n <ng-container *ngTemplateOutlet=\"contents || originalContent\"></ng-container>\n <ng-template #originalContent>\n <ng-content></ng-content>\n </ng-template>\n </div>\n</div>\n", styles: ["s-loading-state .s-loading-state{position:relative}s-loading-state .s-loading-state .loader{opacity:0;position:absolute;transition:opacity .2s ease-out,display .2s ease-out;visibility:hidden;inset:1px;display:flex;justify-content:center;align-items:center}s-loading-state .s-loading-state .loader .overlay{height:100%;opacity:.8;transition:opacity .2s ease-out,display .2s ease-out;width:100%}s-loading-state .s-loading-state .loader .spinner{display:flex;position:absolute;z-index:2}s-loading-state .s-loading-state .loader .progress-bar-wrapper{padding:0 16px;position:absolute;width:100%;z-index:2}s-loading-state .s-loading-state.s-loading-state--loading>.loader,s-loading-state .s-loading-state.s-loading-state--blocking>.loader{cursor:wait;visibility:visible;z-index:2}s-loading-state .s-loading-state.s-loading-state--loading>.loader>.overlay,s-loading-state .s-loading-state.s-loading-state--blocking>.loader>.overlay{cursor:wait;z-index:1}s-loading-state .s-loading-state.s-loading-state--loading>.state-contents,s-loading-state .s-loading-state.s-loading-state--blocking>.state-contents{position:relative;z-index:0!important;opacity:.5}s-loading-state .s-loading-state.s-loading-state--fullscreen>.loader{left:0;position:fixed;top:0;z-index:1005}s-loading-state .s-loading-state.s-loading-state--blocking.s-loading-state--loading>.loader{opacity:1}s-loading-state .s-loading-state-container.s-loading-state--loading.s-loading-state--blocking s-loading-state .s-loading-state-container>.loader{opacity:0;visibility:hidden}s-loading-state .s-loading-state-container.s-loading-state--loading.s-loading-state--blocking s-loading-state .s-loading-state-container>.state-contents{z-index:0!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DotsIndicatorComponent, selector: "s-dots-indicator" }, { kind: "component", type: i3.LoadingIndicatorComponent, selector: "s-logo-indicator" }, { kind: "component", type: i4.ProgressBarIndicatorComponent, selector: "s-progress-bar-indicator", inputs: ["mode", "value", "label"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
96
117
|
}
|
|
97
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingStateComponent, decorators: [{
|
|
98
119
|
type: Component,
|
|
99
|
-
args: [{ selector: 's-loading-state', encapsulation: ViewEncapsulation.None, template: "<div\n [id]=\"id\"\n class=\"s-loading-state\"\n [ngClass]=\"{\n 's-loading-state--loading': loading,\n 's-loading-state--blocking': blocking,\n 's-loading-state--fullscreen': blockWindow\n }\"\n>\n <div\n [id]=\"id + '-loader'\"\n class=\"loader\"\n >\n <div\n [id]=\"id + '-spinner'\"\n
|
|
120
|
+
args: [{ selector: 's-loading-state', encapsulation: ViewEncapsulation.None, template: "<div\n [id]=\"id\"\n class=\"s-loading-state\"\n [ngClass]=\"{\n 's-loading-state--loading': loading,\n 's-loading-state--blocking': blocking,\n 's-loading-state--fullscreen': blockWindow\n }\"\n>\n <div\n [id]=\"id + '-loader'\"\n class=\"loader\"\n >\n @if (indicator === 'progress-bar') {\n <div class=\"progress-bar-wrapper\">\n <s-progress-bar-indicator\n [mode]=\"progressBarMode\"\n [value]=\"progressBarValue\"\n [label]=\"progressBarLabel\"\n ></s-progress-bar-indicator>\n </div>\n } @else {\n <div\n [id]=\"id + '-spinner'\"\n class=\"spinner\"\n >\n @switch (indicator) {\n @case ('logo') {\n <s-logo-indicator></s-logo-indicator>\n }\n @case ('dots') {\n <s-dots-indicator></s-dots-indicator>\n }\n }\n </div>\n }\n <div\n [id]=\"id + '-overlay'\"\n class=\"overlay\"\n ></div>\n </div>\n <div\n [id]=\"id + '-contents'\"\n class=\"state-contents\"\n >\n <ng-container *ngTemplateOutlet=\"contents || originalContent\"></ng-container>\n <ng-template #originalContent>\n <ng-content></ng-content>\n </ng-template>\n </div>\n</div>\n", styles: ["s-loading-state .s-loading-state{position:relative}s-loading-state .s-loading-state .loader{opacity:0;position:absolute;transition:opacity .2s ease-out,display .2s ease-out;visibility:hidden;inset:1px;display:flex;justify-content:center;align-items:center}s-loading-state .s-loading-state .loader .overlay{height:100%;opacity:.8;transition:opacity .2s ease-out,display .2s ease-out;width:100%}s-loading-state .s-loading-state .loader .spinner{display:flex;position:absolute;z-index:2}s-loading-state .s-loading-state .loader .progress-bar-wrapper{padding:0 16px;position:absolute;width:100%;z-index:2}s-loading-state .s-loading-state.s-loading-state--loading>.loader,s-loading-state .s-loading-state.s-loading-state--blocking>.loader{cursor:wait;visibility:visible;z-index:2}s-loading-state .s-loading-state.s-loading-state--loading>.loader>.overlay,s-loading-state .s-loading-state.s-loading-state--blocking>.loader>.overlay{cursor:wait;z-index:1}s-loading-state .s-loading-state.s-loading-state--loading>.state-contents,s-loading-state .s-loading-state.s-loading-state--blocking>.state-contents{position:relative;z-index:0!important;opacity:.5}s-loading-state .s-loading-state.s-loading-state--fullscreen>.loader{left:0;position:fixed;top:0;z-index:1005}s-loading-state .s-loading-state.s-loading-state--blocking.s-loading-state--loading>.loader{opacity:1}s-loading-state .s-loading-state-container.s-loading-state--loading.s-loading-state--blocking s-loading-state .s-loading-state-container>.loader{opacity:0;visibility:hidden}s-loading-state .s-loading-state-container.s-loading-state--loading.s-loading-state--blocking s-loading-state .s-loading-state-container>.state-contents{z-index:0!important}\n"] }]
|
|
100
121
|
}], propDecorators: { indicator: [{
|
|
101
122
|
type: Input
|
|
102
123
|
}], id: [{
|
|
@@ -106,5 +127,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
106
127
|
}], loading: [{
|
|
107
128
|
type: Input,
|
|
108
129
|
args: [{ required: true }]
|
|
130
|
+
}], progressBarMode: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], progressBarValue: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], progressBarLabel: [{
|
|
135
|
+
type: Input
|
|
109
136
|
}] } });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1zdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvbG9hZGluZy1zdGF0ZS9zcmMvbGliL2xvYWRpbmctc3RhdGUvbG9hZGluZy1zdGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvbG9hZGluZy1zdGF0ZS9zcmMvbGliL2xvYWRpbmctc3RhdGUvbG9hZGluZy1zdGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBMEIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7O0FBRS9FOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBT0gsTUFBTSxPQUFPLHFCQUFxQjtJQUN2QixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUV6Qjs7Ozs7O09BTUc7SUFFSSxTQUFTLEdBQTJCLHNCQUFzQixDQUFDLElBQUksQ0FBQztJQUV2RTs7T0FFRztJQUVJLEVBQUUsR0FBRyxtQkFBbUIscUJBQXFCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUVoRTs7Ozs7T0FLRztJQUVJLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFFM0I7Ozs7T0FJRztJQUNILElBQ1csT0FBTyxDQUFDLE9BQWdCO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRU0sUUFBUSxHQUE0QixJQUFJLENBQUM7SUFDekMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVoQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztJQUMxQixxQkFBcUIsR0FBRyxHQUFHLENBQUM7SUFDNUIsY0FBYyxDQUFNO0lBQ3BCLGdCQUFnQixDQUFNO0lBRXZCLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUs7UUFDUixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO1lBQ3BDLENBQUMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDVixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1lBQ3RDLENBQUMsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0wsQ0FBQzt3R0F4RlEscUJBQXFCOzRGQUFyQixxQkFBcUIscUpDekJsQywra0NBeUNBOzs0RkRoQmEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNJLGlCQUFpQixpQkFHWixpQkFBaUIsQ0FBQyxJQUFJOzhCQWE5QixTQUFTO3NCQURmLEtBQUs7Z0JBT0MsRUFBRTtzQkFEUixLQUFLO2dCQVVDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBU0ssT0FBTztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMb2FkaW5nU3RhdGVJbmRpY2F0b3JzIH0gZnJvbSAnLi9jb21wb25lbnRzL2xvYWRpbmctc3RhdGUtaW5kaWNhdG9ycyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgZXN0YWRvIGRlIGNhcnJlZ2FtZW50byBxdWUgZXhpYmUgdW0gaW5kaWNhZG9yIGFuaW1hZG8gZW5xdWFudG9cbiAqIHVtIHByb2Nlc3NvIGFzc8OtbmNyb25vIGVzdMOhIGVtIGFuZGFtZW50by4gU3Vwb3J0YSBibG9xdWVpbyBkYSBqYW5lbGEgaW50ZWlyYVxuICogZSBkaWZlcmVudGVzIHRpcG9zIGRlIGluZGljYWRvcmVzIHZpc3VhaXMuXG4gKiBUYW1iw6ltIHBvZGUgc2VyIHVzYWRvIGNvbW8gZGlyZXRpdmEgZXN0cnV0dXJhbCBgW3NMb2FkaW5nU3RhdGVdYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtbG9hZGluZy1zdGF0ZSBbbG9hZGluZ109XCJpc0xvYWRpbmdcIiBbYmxvY2tXaW5kb3ddPVwidHJ1ZVwiPlxuICogICA8cD5Db250ZcO6ZG8gY2FycmVnYWRvITwvcD5cbiAqIDwvcy1sb2FkaW5nLXN0YXRlPlxuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IEZlZWRiYWNrXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1sb2FkaW5nLXN0YXRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbG9hZGluZy1zdGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbG9hZGluZy1zdGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIExvYWRpbmdTdGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHVibGljIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRpcG8gZGUgaW5kaWNhZG9yIHZpc3VhbCBleGliaWRvIGR1cmFudGUgbyBjYXJyZWdhbWVudG8uXG4gICAgICogLSBgTG9hZGluZ1N0YXRlSW5kaWNhdG9ycy5Eb3RzYDogaW5kaWNhZG9yIGRlIHBvbnRvcyBhbmltYWRvcyAocGFkcsOjbykuXG4gICAgICogLSBgTG9hZGluZ1N0YXRlSW5kaWNhdG9ycy5Mb2dvYDogaW5kaWNhZG9yIGNvbSBsb2dvdGlwbyBhbmltYWRvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgTG9hZGluZ1N0YXRlSW5kaWNhdG9ycy5Eb3RzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW5kaWNhdG9yOiBMb2FkaW5nU3RhdGVJbmRpY2F0b3JzID0gTG9hZGluZ1N0YXRlSW5kaWNhdG9ycy5Eb3RzO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIElkZW50aWZpY2Fkb3Igw7puaWNvIGRvIGNvbXBvbmVudGUuIEdlcmFkbyBhdXRvbWF0aWNhbWVudGUgc2UgbsOjbyBpbmZvcm1hZG8uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgcy1sb2FkaW5nLXN0YXRlLSR7TG9hZGluZ1N0YXRlQ29tcG9uZW50Lm5leHRJZCsrfWA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUXVhbmRvIGB0cnVlYCwgYmxvcXVlaWEgYSBqYW5lbGEgaW50ZWlyYSBkdXJhbnRlIG8gY2FycmVnYW1lbnRvLFxuICAgICAqIHNvYnJlcG9uZG8gdG9kbyBvIGNvbnRlw7pkbyBkYSBww6FnaW5hIGNvbSBvIGluZGljYWRvci5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYmxvY2tXaW5kb3cgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDb250cm9sYSBvIGVzdGFkbyBkZSBjYXJyZWdhbWVudG8gZG8gY29tcG9uZW50ZS4gQ2FtcG8gb2JyaWdhdMOzcmlvLlxuICAgICAqIFF1YW5kbyBgdHJ1ZWAsIGV4aWJlIG8gaW5kaWNhZG9yIGRlIGNhcnJlZ2FtZW50byBhcMOzcyB1bSBicmV2ZSBkZWxheS5cbiAgICAgKiBRdWFuZG8gYGZhbHNlYCwgcmVtb3ZlIG8gaW5kaWNhZG9yIGFww7NzIHVtIGJyZXZlIGRlbGF5IChldml0YSBmbGFzaCkuXG4gICAgICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBwdWJsaWMgc2V0IGxvYWRpbmcobG9hZGluZzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9sb2FkaW5nID0gbG9hZGluZztcbiAgICAgICAgbG9hZGluZyA/IHRoaXMuYmxvY2soKSA6IHRoaXMudW5ibG9jaygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbG9hZGluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnRlbnRzOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGJsb2NraW5nID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF9sb2FkaW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBCTE9DS19USU1FT1VUX1ZBTFVFID0gMzAwO1xuICAgIHByaXZhdGUgVU5CTE9DS19USU1FT1VUX1ZBTFVFID0gMjAwO1xuICAgIHByaXZhdGUgYmxvY2tUaW1lb3V0SWQ6IGFueTtcbiAgICBwcml2YXRlIHVuYmxvY2tUaW1lb3V0SWQ6IGFueTtcblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYmxvY2tUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmJsb2NrVGltZW91dElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnVuYmxvY2tUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnVuYmxvY2tUaW1lb3V0SWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGJsb2NrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy51bmJsb2NrVGltZW91dElkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy51bmJsb2NrVGltZW91dElkKTtcbiAgICAgICAgICAgIHRoaXMudW5ibG9ja1RpbWVvdXRJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5ibG9ja1RpbWVvdXRJZCkge1xuICAgICAgICAgICAgdGhpcy5ibG9ja1RpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tUaW1lb3V0SWQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9LCB0aGlzLkJMT0NLX1RJTUVPVVRfVkFMVUUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHVuYmxvY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrVGltZW91dElkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5ibG9ja1RpbWVvdXRJZCk7XG4gICAgICAgICAgICB0aGlzLmJsb2NrVGltZW91dElkID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnVuYmxvY2tUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgIHRoaXMudW5ibG9ja1RpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnVuYmxvY2tUaW1lb3V0SWQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9LCB0aGlzLlVOQkxPQ0tfVElNRU9VVF9WQUxVRSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIjxkaXZcbiAgICBbaWRdPVwiaWRcIlxuICAgIGNsYXNzPVwicy1sb2FkaW5nLXN0YXRlXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdzLWxvYWRpbmctc3RhdGUtLWxvYWRpbmcnOiBsb2FkaW5nLFxuICAgICAgICAncy1sb2FkaW5nLXN0YXRlLS1ibG9ja2luZyc6IGJsb2NraW5nLFxuICAgICAgICAncy1sb2FkaW5nLXN0YXRlLS1mdWxsc2NyZWVuJzogYmxvY2tXaW5kb3dcbiAgICB9XCJcbj5cbiAgICA8ZGl2XG4gICAgICAgIFtpZF09XCJpZCArICctbG9hZGVyJ1wiXG4gICAgICAgIGNsYXNzPVwibG9hZGVyXCJcbiAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtpZF09XCJpZCArICctc3Bpbm5lcidcIlxuICAgICAgICAgICAgY2xhc3M9XCJzcGlubmVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQHN3aXRjaCAoaW5kaWNhdG9yKSB7XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdsb2dvJykge1xuICAgICAgICAgICAgICAgICAgICA8cy1sb2dvLWluZGljYXRvcj48L3MtbG9nby1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBjYXNlICgnZG90cycpIHtcbiAgICAgICAgICAgICAgICAgICAgPHMtZG90cy1pbmRpY2F0b3I+PC9zLWRvdHMtaW5kaWNhdG9yPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtpZF09XCJpZCArICctb3ZlcmxheSdcIlxuICAgICAgICAgICAgY2xhc3M9XCJvdmVybGF5XCJcbiAgICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgW2lkXT1cImlkICsgJy1jb250ZW50cydcIlxuICAgICAgICBjbGFzcz1cInN0YXRlLWNvbnRlbnRzXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50cyB8fCBvcmlnaW5hbENvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNvcmlnaW5hbENvbnRlbnQ+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1zdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvbG9hZGluZy1zdGF0ZS9zcmMvbGliL2xvYWRpbmctc3RhdGUvbG9hZGluZy1zdGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvbG9hZGluZy1zdGF0ZS9zcmMvbGliL2xvYWRpbmctc3RhdGUvbG9hZGluZy1zdGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBMEIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7OztBQUcvRTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQU9ILE1BQU0sT0FBTyxxQkFBcUI7SUFDdkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFekI7Ozs7OztPQU1HO0lBRUksU0FBUyxHQUEyQixzQkFBc0IsQ0FBQyxJQUFJLENBQUM7SUFFdkU7O09BRUc7SUFFSSxFQUFFLEdBQUcsbUJBQW1CLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7SUFFaEU7Ozs7O09BS0c7SUFFSSxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBRTNCOzs7O09BSUc7SUFDSCxJQUNXLE9BQU8sQ0FBQyxPQUFnQjtRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUVJLGVBQWUsR0FBNkIsY0FBYyxDQUFDO0lBRWxFOzs7OztPQUtHO0lBRUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0lBRTVCOzs7T0FHRztJQUVJLGdCQUFnQixDQUFVO0lBRTFCLFFBQVEsR0FBNEIsSUFBSSxDQUFDO0lBQ3pDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFaEIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixtQkFBbUIsR0FBRyxHQUFHLENBQUM7SUFDMUIscUJBQXFCLEdBQUcsR0FBRyxDQUFDO0lBQzVCLGNBQWMsQ0FBTTtJQUNwQixnQkFBZ0IsQ0FBTTtJQUV2QixXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztZQUNwQyxDQUFDLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1YsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztZQUN0QyxDQUFDLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7d0dBbEhRLHFCQUFxQjs0RkFBckIscUJBQXFCLHFRQzFCbEMsa2dEQW1EQTs7NEZEekJhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDSSxpQkFBaUIsaUJBR1osaUJBQWlCLENBQUMsSUFBSTs4QkFhOUIsU0FBUztzQkFEZixLQUFLO2dCQU9DLEVBQUU7c0JBRFIsS0FBSztnQkFVQyxXQUFXO3NCQURqQixLQUFLO2dCQVNLLE9BQU87c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQWtCbEIsZUFBZTtzQkFEckIsS0FBSztnQkFVQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBUUMsZ0JBQWdCO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTG9hZGluZ1N0YXRlSW5kaWNhdG9ycyB9IGZyb20gJy4vY29tcG9uZW50cy9sb2FkaW5nLXN0YXRlLWluZGljYXRvcnMnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJJbmRpY2F0b3JNb2RlIH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2dyZXNzLWJhci1pbmRpY2F0b3IvcHJvZ3Jlc3MtYmFyLWluZGljYXRvci5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIGVzdGFkbyBkZSBjYXJyZWdhbWVudG8gcXVlIGV4aWJlIHVtIGluZGljYWRvciBhbmltYWRvIGVucXVhbnRvXG4gKiB1bSBwcm9jZXNzbyBhc3PDrW5jcm9ubyBlc3TDoSBlbSBhbmRhbWVudG8uIFN1cG9ydGEgYmxvcXVlaW8gZGEgamFuZWxhIGludGVpcmFcbiAqIGUgZGlmZXJlbnRlcyB0aXBvcyBkZSBpbmRpY2Fkb3JlcyB2aXN1YWlzLlxuICogVGFtYsOpbSBwb2RlIHNlciB1c2FkbyBjb21vIGRpcmV0aXZhIGVzdHJ1dHVyYWwgYFtzTG9hZGluZ1N0YXRlXWAuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxzLWxvYWRpbmctc3RhdGUgW2xvYWRpbmddPVwiaXNMb2FkaW5nXCIgW2Jsb2NrV2luZG93XT1cInRydWVcIj5cbiAqICAgPHA+Q29udGXDumRvIGNhcnJlZ2FkbyE8L3A+XG4gKiA8L3MtbG9hZGluZy1zdGF0ZT5cbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBGZWVkYmFja1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3MtbG9hZGluZy1zdGF0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xvYWRpbmctc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xvYWRpbmctc3RhdGUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBMb2FkaW5nU3RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaXBvIGRlIGluZGljYWRvciB2aXN1YWwgZXhpYmlkbyBkdXJhbnRlIG8gY2FycmVnYW1lbnRvLlxuICAgICAqIC0gYExvYWRpbmdTdGF0ZUluZGljYXRvcnMuRG90c2A6IGluZGljYWRvciBkZSBwb250b3MgYW5pbWFkb3MgKHBhZHLDo28pLlxuICAgICAqIC0gYExvYWRpbmdTdGF0ZUluZGljYXRvcnMuTG9nb2A6IGluZGljYWRvciBjb20gbG9nb3RpcG8gYW5pbWFkby5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IExvYWRpbmdTdGF0ZUluZGljYXRvcnMuRG90c1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGluZGljYXRvcjogTG9hZGluZ1N0YXRlSW5kaWNhdG9ycyA9IExvYWRpbmdTdGF0ZUluZGljYXRvcnMuRG90cztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJZGVudGlmaWNhZG9yIMO6bmljbyBkbyBjb21wb25lbnRlLiBHZXJhZG8gYXV0b21hdGljYW1lbnRlIHNlIG7Do28gaW5mb3JtYWRvLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYHMtbG9hZGluZy1zdGF0ZS0ke0xvYWRpbmdTdGF0ZUNvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIGJsb3F1ZWlhIGEgamFuZWxhIGludGVpcmEgZHVyYW50ZSBvIGNhcnJlZ2FtZW50byxcbiAgICAgKiBzb2JyZXBvbmRvIHRvZG8gbyBjb250ZcO6ZG8gZGEgcMOhZ2luYSBjb20gbyBpbmRpY2Fkb3IuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJsb2NrV2luZG93ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29udHJvbGEgbyBlc3RhZG8gZGUgY2FycmVnYW1lbnRvIGRvIGNvbXBvbmVudGUuIENhbXBvIG9icmlnYXTDs3Jpby5cbiAgICAgKiBRdWFuZG8gYHRydWVgLCBleGliZSBvIGluZGljYWRvciBkZSBjYXJyZWdhbWVudG8gYXDDs3MgdW0gYnJldmUgZGVsYXkuXG4gICAgICogUXVhbmRvIGBmYWxzZWAsIHJlbW92ZSBvIGluZGljYWRvciBhcMOzcyB1bSBicmV2ZSBkZWxheSAoZXZpdGEgZmxhc2gpLlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgcHVibGljIHNldCBsb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fbG9hZGluZyA9IGxvYWRpbmc7XG4gICAgICAgIGxvYWRpbmcgPyB0aGlzLmJsb2NrKCkgOiB0aGlzLnVuYmxvY2soKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvYWRpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2FkaW5nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBNb2RvIGRhIGJhcnJhIGRlIHByb2dyZXNzby4gVXNhZG8gcXVhbmRvIGBpbmRpY2F0b3JgIMOpIGBMb2FkaW5nU3RhdGVJbmRpY2F0b3JzLlByb2dyZXNzQmFyYC5cbiAgICAgKiAtIGAncGVyY2VudGFnZSdgOiBleGliZSBvIHByZWVuY2hpbWVudG8gcHJvcG9yY2lvbmFsIGFvIGBwcm9ncmVzc0JhclZhbHVlYC5cbiAgICAgKiAtIGAnaW50ZXJtaXR0ZW50J2A6IGFuaW1hIGEgYmFycmEgaW5kbyBlIHZvbHRhbmRvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ2ludGVybWl0dGVudCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwcm9ncmVzc0Jhck1vZGU6IFByb2dyZXNzQmFySW5kaWNhdG9yTW9kZSA9ICdpbnRlcm1pdHRlbnQnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFZhbG9yIGRlIHByb2dyZXNzbyAoMOKAkzEwMCkuIFVzYWRvIHF1YW5kbyBgaW5kaWNhdG9yYCDDqSBgTG9hZGluZ1N0YXRlSW5kaWNhdG9ycy5Qcm9ncmVzc0JhcmBcbiAgICAgKiBlIGBwcm9ncmVzc0Jhck1vZGVgIMOpIGAncGVyY2VudGFnZSdgLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHByb2dyZXNzQmFyVmFsdWUgPSAwO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRleHRvIGV4aWJpZG8gYWJhaXhvIGRhIGJhcnJhIGRlIHByb2dyZXNzby5cbiAgICAgKiBRdWFuZG8gb21pdGlkbywgdXNhIGAne3ZhbHVlfSUnYCBubyBtb2RvIGAncGVyY2VudGFnZSdgIG91IGAnQ2FycmVnYW5kby4uLidgIG5vIG1vZG8gYCdpbnRlcm1pdHRlbnQnYC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwcm9ncmVzc0JhckxhYmVsPzogc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnRlbnRzOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGJsb2NraW5nID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF9sb2FkaW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBCTE9DS19USU1FT1VUX1ZBTFVFID0gMzAwO1xuICAgIHByaXZhdGUgVU5CTE9DS19USU1FT1VUX1ZBTFVFID0gMjAwO1xuICAgIHByaXZhdGUgYmxvY2tUaW1lb3V0SWQ6IGFueTtcbiAgICBwcml2YXRlIHVuYmxvY2tUaW1lb3V0SWQ6IGFueTtcblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYmxvY2tUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmJsb2NrVGltZW91dElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnVuYmxvY2tUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnVuYmxvY2tUaW1lb3V0SWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGJsb2NrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy51bmJsb2NrVGltZW91dElkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy51bmJsb2NrVGltZW91dElkKTtcbiAgICAgICAgICAgIHRoaXMudW5ibG9ja1RpbWVvdXRJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5ibG9ja1RpbWVvdXRJZCkge1xuICAgICAgICAgICAgdGhpcy5ibG9ja1RpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tUaW1lb3V0SWQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9LCB0aGlzLkJMT0NLX1RJTUVPVVRfVkFMVUUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHVuYmxvY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrVGltZW91dElkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5ibG9ja1RpbWVvdXRJZCk7XG4gICAgICAgICAgICB0aGlzLmJsb2NrVGltZW91dElkID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnVuYmxvY2tUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgIHRoaXMudW5ibG9ja1RpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnVuYmxvY2tUaW1lb3V0SWQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9LCB0aGlzLlVOQkxPQ0tfVElNRU9VVF9WQUxVRSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIjxkaXZcbiAgICBbaWRdPVwiaWRcIlxuICAgIGNsYXNzPVwicy1sb2FkaW5nLXN0YXRlXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdzLWxvYWRpbmctc3RhdGUtLWxvYWRpbmcnOiBsb2FkaW5nLFxuICAgICAgICAncy1sb2FkaW5nLXN0YXRlLS1ibG9ja2luZyc6IGJsb2NraW5nLFxuICAgICAgICAncy1sb2FkaW5nLXN0YXRlLS1mdWxsc2NyZWVuJzogYmxvY2tXaW5kb3dcbiAgICB9XCJcbj5cbiAgICA8ZGl2XG4gICAgICAgIFtpZF09XCJpZCArICctbG9hZGVyJ1wiXG4gICAgICAgIGNsYXNzPVwibG9hZGVyXCJcbiAgICA+XG4gICAgICAgIEBpZiAoaW5kaWNhdG9yID09PSAncHJvZ3Jlc3MtYmFyJykge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhci13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPHMtcHJvZ3Jlc3MtYmFyLWluZGljYXRvclxuICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCJwcm9ncmVzc0Jhck1vZGVcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwicHJvZ3Jlc3NCYXJWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJwcm9ncmVzc0JhckxhYmVsXCJcbiAgICAgICAgICAgICAgICA+PC9zLXByb2dyZXNzLWJhci1pbmRpY2F0b3I+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgW2lkXT1cImlkICsgJy1zcGlubmVyJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzcGlubmVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAc3dpdGNoIChpbmRpY2F0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdsb2dvJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHMtbG9nby1pbmRpY2F0b3I+PC9zLWxvZ28taW5kaWNhdG9yPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnZG90cycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzLWRvdHMtaW5kaWNhdG9yPjwvcy1kb3RzLWluZGljYXRvcj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtpZF09XCJpZCArICctb3ZlcmxheSdcIlxuICAgICAgICAgICAgY2xhc3M9XCJvdmVybGF5XCJcbiAgICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgW2lkXT1cImlkICsgJy1jb250ZW50cydcIlxuICAgICAgICBjbGFzcz1cInN0YXRlLWNvbnRlbnRzXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50cyB8fCBvcmlnaW5hbENvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNvcmlnaW5hbENvbnRlbnQ+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|