@seniorsistemas/angular-components 19.4.1 → 19.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/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-stats-card.mjs +11 -5
- package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
- package/package.json +7 -7
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9hY2NvcmRpb24vY29tcG9uZW50cy9hY2NvcmRpb24tcGFuZWwvYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9hY2NvcmRpb24vc3JjL2xpYi9hY2NvcmRpb24vY29tcG9uZW50cy9hY2NvcmRpb24tcGFuZWwvYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7QUFLakY7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBaUJILE1BQU0sT0FBTyx1QkFBdUI7SUFDaEM7O09BRUc7SUFFSSxNQUFNLENBQVU7SUFFdkI7OztPQUdHO0lBRUksT0FBTyxDQUE2QjtJQUUzQzs7OztPQUlHO0lBRUksUUFBUSxHQUFHLEtBQUssQ0FBQztJQUV4Qjs7O09BR0c7SUFFSSxhQUFhLENBQXNCO0lBRTFDOzs7T0FHRztJQUVJLGlCQUFpQixDQUFVO0lBRWxDOzs7OztPQUtHO0lBRUksS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVyQjs7OztPQUlHO0lBQ00scUJBQXFCLEdBQUcsMkJBQTJCLENBQUM7SUFFN0Q7Ozs7T0FJRztJQUNNLDBCQUEwQixHQUErQixLQUFLLENBQUM7SUFFeEU7O09BRUc7SUFFSSxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUU5Qzs7T0FFRztJQUVJLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRXZDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO0lBRWpDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFFeEIsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLE1BQU0sQ0FBQyxNQUFlO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDckMsSUFBSSxVQUFVLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM5QyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNyRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNwRCxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksUUFBUSxJQUFJLE9BQU8sSUFBSSxlQUFlLElBQUksT0FBTyxFQUFFLENBQUM7WUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7SUFDTCxDQUFDO0lBRU0sZUFBZTtRQUNsQixvRkFBb0Y7UUFDcEYsY0FBYyxDQUFDLEdBQUcsRUFBRTtZQUNoQixJQUFJLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQVksRUFBRSxRQUFzQjtRQUMxRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1gsQ0FBQztRQUVELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixRQUFRLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFTSxVQUFVO1FBQ2IsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sdUJBQXVCO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFTSxzQkFBc0I7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFFekIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxlQUFlO1FBQ25CLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7d0dBMUlRLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLDZaQ3hDcEMsbThGQW1GQSxvNEZEdkRnQjtZQUNSLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRTtnQkFDMUIsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvRixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbEcsQ0FBQztZQUNGLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDdEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDckMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDeEMsVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDekMsQ0FBQztTQUNMOzs0RkFFUSx1QkFBdUI7a0JBaEJuQyxTQUFTOytCQUNJLG1CQUFtQixjQUdqQjt3QkFDUixPQUFPLENBQUMsb0JBQW9CLEVBQUU7NEJBQzFCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDL0YsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUNsRyxDQUFDO3dCQUNGLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTs0QkFDdEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzs0QkFDckMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzs0QkFDeEMsVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7eUJBQ3pDLENBQUM7cUJBQ0w7OEJBT00sTUFBTTtzQkFEWixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFRbEIsT0FBTztzQkFEYixLQUFLO2dCQVNDLFFBQVE7c0JBRGQsS0FBSztnQkFRQyxhQUFhO3NCQURuQixLQUFLO2dCQVFDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFVQyxLQUFLO3NCQURYLEtBQUs7Z0JBUUcscUJBQXFCO3NCQUE3QixLQUFLO2dCQU9HLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFNQyxXQUFXO3NCQURqQixNQUFNO2dCQU9BLFdBQVc7c0JBRGpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0cmlnZ2VyLCBzdHlsZSwgYW5pbWF0ZSwgdHJhbnNpdGlvbiwgc3RhdGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWNjb3JkaW9uQnV0dG9uU2V0dGluZ3MsIFZhbGlkYXRpb25NZXNzYWdlSWNvbkNvbG9yIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjY29yZGlvbi1idXR0b24tc2V0dGluZ3MnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBQYWluZWwgaW5kaXZpZHVhbCBkbyB7QGxpbmsgQWNjb3JkaW9uQ29tcG9uZW50fS4gR2VyZW5jaWEgbyBlc3RhZG8gZGVcbiAqIGFiZXJ0dXJhL2ZlY2hhbWVudG8gY29tIGFuaW1hw6fDo28sIHBvZGVuZG8gY29udGVyIHVtIHN3aXRjaCBkZSBjb250cm9sZSB2aWEgYHN3aXRjaENvbnRyb2xgLFxuICogYm90w7VlcyBkZSBhw6fDo28gY29uZmlndXLDoXZlaXMgZSB1bWEgbWVuc2FnZW0gZGUgdmFsaWRhw6fDo28gY29tIMOtY29uZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtYWNjb3JkaW9uLXBhbmVsXG4gKiAgIGhlYWRlcj1cIkNvbmZpZ3VyYcOnw7Vlc1wiXG4gKiAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gKiAgIChwYW5lbE9wZW5lZCk9XCJvbk9wZW4oKVwiXG4gKiAgIChwYW5lbENsb3NlZCk9XCJvbkNsb3NlKClcIj5cbiAqICAgPHA+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==
|
|
@@ -3,6 +3,7 @@ import { BigNumber } from 'bignumber.js';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
import * as i2 from "@seniorsistemas/angular-components/tooltip";
|
|
6
|
+
import * as i3 from "@seniorsistemas/angular-components/info-sign";
|
|
6
7
|
/**
|
|
7
8
|
* @description Card de estatística que exibe um valor numérico com ícone,
|
|
8
9
|
* rótulo e animação de contagem. Suporta diferentes estilos visuais
|
|
@@ -25,6 +26,8 @@ export class StatsCardComponent {
|
|
|
25
26
|
id = `s-stats-card-${StatsCardComponent.nextId++}`;
|
|
26
27
|
/** @description Rótulo descritivo da estatística exibida. Campo obrigatório. */
|
|
27
28
|
label;
|
|
29
|
+
/** @description Texto do tooltip exibido ao passar o mouse sobre o ícone de informação ao lado do label do stats card. */
|
|
30
|
+
infoSignTooltip;
|
|
28
31
|
/** @description Exibe borda mesmo quando o card não está em destaque. @default false */
|
|
29
32
|
alwaysWithBorder = false;
|
|
30
33
|
/** @description Ativa a versão visual leve (sem sombra e com fundo claro). @default false */
|
|
@@ -107,16 +110,18 @@ export class StatsCardComponent {
|
|
|
107
110
|
}, this._STEP_DURATION_MS);
|
|
108
111
|
}
|
|
109
112
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
110
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: StatsCardComponent, selector: "s-stats-card", inputs: { id: "id", label: "label", alwaysWithBorder: "alwaysWithBorder", lightVersion: "lightVersion", lightMode: "lightMode", iconClass: "iconClass", color: "color", animateNumbers: "animateNumbers", clickable: "clickable", tooltip: "tooltip", value: "value" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"s-stats-card\"\n [ngClass]=\"{\n 's-stats-card--always-border': alwaysWithBorder,\n 's-stats-card--light': lightMode,\n 's-stats-card--color': !lightMode,\n 's-stats-card--light-version': lightVersion,\n 's-stats-card--clickable': clickable,\n }\"\n (click)=\"clickable && clicked.next($event)\"\n>\n <div\n [id]=\"id + '-background'\"\n class=\"s-stats-card-background\"\n [ngStyle]=\"{ 'background-color': (!lightMode && color) || '' }\"\n ></div>\n <div\n [id]=\"id + '-overlay'\"\n class=\"s-stats-card-overlay\"\n ></div>\n\n <div\n [id]=\"id + '-info-container'\"\n class=\"s-stats-card-info-container\"\n >\n <div class=\"s-stats-card-info-inner-container\">\n <div\n [id]=\"id + '-icon-container'\"\n class=\"s-stats-card-icon-container\"\n [ngStyle]=\"{ 'background-color': (lightMode && color) || '' }\"\n >\n <span\n [id]=\"id + '-icon'\"\n [class]=\"iconClass\"\n [ngClass]=\"{ 's-stats-card-icon': true }\"\n [ngStyle]=\"{ color: (!lightMode && color) || '' }\"\n aria-hidden=\"true\"\n ></span>\n </div>\n\n <div\n [id]=\"id + '-text-container'\"\n class=\"s-stats-card-text-container\"\n >\n
|
|
113
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: StatsCardComponent, selector: "s-stats-card", inputs: { id: "id", label: "label", infoSignTooltip: "infoSignTooltip", alwaysWithBorder: "alwaysWithBorder", lightVersion: "lightVersion", lightMode: "lightMode", iconClass: "iconClass", color: "color", animateNumbers: "animateNumbers", clickable: "clickable", tooltip: "tooltip", value: "value" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"s-stats-card\"\n [ngClass]=\"{\n 's-stats-card--always-border': alwaysWithBorder,\n 's-stats-card--light': lightMode,\n 's-stats-card--color': !lightMode,\n 's-stats-card--light-version': lightVersion,\n 's-stats-card--clickable': clickable,\n }\"\n (click)=\"clickable && clicked.next($event)\"\n>\n <div\n [id]=\"id + '-background'\"\n class=\"s-stats-card-background\"\n [ngStyle]=\"{ 'background-color': (!lightMode && color) || '' }\"\n ></div>\n <div\n [id]=\"id + '-overlay'\"\n class=\"s-stats-card-overlay\"\n ></div>\n\n <div\n [id]=\"id + '-info-container'\"\n class=\"s-stats-card-info-container\"\n >\n <div class=\"s-stats-card-info-inner-container\">\n <div\n [id]=\"id + '-icon-container'\"\n class=\"s-stats-card-icon-container\"\n [ngStyle]=\"{ 'background-color': (lightMode && color) || '' }\"\n >\n <span\n [id]=\"id + '-icon'\"\n [class]=\"iconClass\"\n [ngClass]=\"{ 's-stats-card-icon': true }\"\n [ngStyle]=\"{ color: (!lightMode && color) || '' }\"\n aria-hidden=\"true\"\n ></span>\n </div>\n\n <div\n [id]=\"id + '-text-container'\"\n class=\"s-stats-card-text-container\"\n >\n @if (infoSignTooltip) {\n <div *sInfoSign=\"infoSignTooltip\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n }\n <span\n [id]=\"id + '-value'\"\n class=\"s-stats-card-value\"\n [sTooltip]=\"displayValue\"\n >\n {{ displayValue }}\n </span>\n </div>\n </div>\n <div class=\"s-stats-card-content-inner-container\">\n <div\n #content\n class=\"s-stats-card-content-container\"\n >\n <ng-content></ng-content>\n </div>\n @if (content.children.length) {\n <div class=\"s-stats-card-content-separator\"></div>\n }\n </div>\n @if (tooltip) {\n <span\n class=\"s-status-card-tooltip\"\n [sTooltip]=\"tooltip\"\n >\n <i class=\"fa fa-info-circle s-status-card-tooltip-icon\"></i>\n </span>\n }\n </div>\n</div>\n\n<ng-template #labelTemplate>\n <h4\n [id]=\"id + '-label'\"\n class=\"s-stats-card-label\"\n [sTooltip]=\"label\"\n >\n {{ label }}\n </h4>\n</ng-template>\n\n", styles: ["s-stats-card{display:block;height:auto;position:relative}s-stats-card .s-stats-card{border:1px solid transparent;min-width:120px;overflow:hidden;position:relative}s-stats-card .s-stats-card .s-stats-card-overlay,s-stats-card .s-stats-card .s-stats-card-background{height:calc(100% - 2px);left:1px;position:absolute;top:1px;width:calc(100% - 2px)}s-stats-card .s-stats-card .s-stats-card-background{background-color:#fff}s-stats-card .s-stats-card .s-stats-card-overlay{background-color:#000;opacity:0;transition:opacity .2s ease-out}s-stats-card .s-stats-card .s-stats-card-info-container{overflow:auto;padding:15px;position:relative}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container{overflow:hidden;position:relative}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-icon-container{float:left;font-size:24px;height:50px;line-height:50px;text-align:center;transition:width .2s ease-out;width:50px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container{align-items:flex-start;color:#fff;display:flex;flex-direction:column;float:left;height:50px;justify-content:center;max-width:calc(100% - 65px);padding-left:15px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-label{font-weight:400;width:100%}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-value{display:inline-block;font-size:20px;font-weight:700;width:100%}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-label,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-content-inner-container{display:flex;flex-direction:column}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-content-inner-container .s-stats-card-content-separator{border-top:1px solid #ccc;margin:15px 0;order:1}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-content-inner-container .s-stats-card-content-container{order:2}s-stats-card .s-stats-card .s-stats-card-info-container .s-status-card-tooltip{font-size:1rem;line-height:0;margin:.3rem;position:absolute;right:0;top:0}s-stats-card .s-stats-card .s-stats-card-info-container .s-status-card-tooltip .s-status-card-tooltip-icon{color:#fff}s-stats-card .s-stats-card.s-stats-card--color .s-stats-card-icon-container{background-color:#fff}s-stats-card .s-stats-card.s-stats-card--light *{color:#333}s-stats-card .s-stats-card.s-stats-card--light *.s-stats-card-icon{color:#fff}s-stats-card .s-stats-card.s-stats-card--light *.s-stats-card-label{color:#999}s-stats-card .s-stats-card.s-stats-card--light * .s-status-card-tooltip .s-status-card-tooltip-icon{color:#999}s-stats-card .s-stats-card.s-stats-card--light-version .s-stats-card-info-inner-container .s-stats-card-icon-container{height:100%;left:0;position:absolute;right:0;width:10px}s-stats-card .s-stats-card.s-stats-card--light-version .s-stats-card-info-inner-container .s-stats-card-icon-container .s-stats-card-icon{display:none}s-stats-card .s-stats-card.s-stats-card--light-version .s-stats-card-info-inner-container .s-stats-card-text-container{height:auto;max-width:calc(100% - 25px);padding-left:25px}s-stats-card .s-stats-card.s-stats-card--clickable{cursor:pointer}s-stats-card .s-stats-card.s-stats-card--clickable:hover .s-stats-card-overlay{opacity:.2}s-stats-card .s-stats-card.s-stats-card--clickable.s-stats-card--light:hover .s-stats-card-overlay{opacity:.08}s-stats-card .s-stats-card.s-stats-card--light{border-color:#ccc}p-panel .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border),s-panel .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border),.ui-dialog-content .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border),.s-sidebar-content .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border){border-color:transparent}@media (max-width: 767px){s-stats-card .s-stats-card{height:auto}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-icon-container{height:100%;left:0;position:absolute;right:0;width:10px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-icon-container .s-stats-card-icon{display:none}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container{height:auto;max-width:calc(100% - 25px);padding-left:25px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-label,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-value{overflow:visible;white-space:normal;word-break:break-all}}\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: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "directive", type: i3.InfoSignDirective, selector: "[sInfoSign]", inputs: ["sInfoSign", "sInfoSignDisplayTime", "sInfoSignFocusedInputRef", "sInfoSignUseFocusedInputRef"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
111
114
|
}
|
|
112
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardComponent, decorators: [{
|
|
113
116
|
type: Component,
|
|
114
|
-
args: [{ selector: 's-stats-card', encapsulation: ViewEncapsulation.None, template: "<div\n [id]=\"id\"\n class=\"s-stats-card\"\n [ngClass]=\"{\n 's-stats-card--always-border': alwaysWithBorder,\n 's-stats-card--light': lightMode,\n 's-stats-card--color': !lightMode,\n 's-stats-card--light-version': lightVersion,\n 's-stats-card--clickable': clickable,\n }\"\n (click)=\"clickable && clicked.next($event)\"\n>\n <div\n [id]=\"id + '-background'\"\n class=\"s-stats-card-background\"\n [ngStyle]=\"{ 'background-color': (!lightMode && color) || '' }\"\n ></div>\n <div\n [id]=\"id + '-overlay'\"\n class=\"s-stats-card-overlay\"\n ></div>\n\n <div\n [id]=\"id + '-info-container'\"\n class=\"s-stats-card-info-container\"\n >\n <div class=\"s-stats-card-info-inner-container\">\n <div\n [id]=\"id + '-icon-container'\"\n class=\"s-stats-card-icon-container\"\n [ngStyle]=\"{ 'background-color': (lightMode && color) || '' }\"\n >\n <span\n [id]=\"id + '-icon'\"\n [class]=\"iconClass\"\n [ngClass]=\"{ 's-stats-card-icon': true }\"\n [ngStyle]=\"{ color: (!lightMode && color) || '' }\"\n aria-hidden=\"true\"\n ></span>\n </div>\n\n <div\n [id]=\"id + '-text-container'\"\n class=\"s-stats-card-text-container\"\n >\n
|
|
117
|
+
args: [{ selector: 's-stats-card', encapsulation: ViewEncapsulation.None, template: "<div\n [id]=\"id\"\n class=\"s-stats-card\"\n [ngClass]=\"{\n 's-stats-card--always-border': alwaysWithBorder,\n 's-stats-card--light': lightMode,\n 's-stats-card--color': !lightMode,\n 's-stats-card--light-version': lightVersion,\n 's-stats-card--clickable': clickable,\n }\"\n (click)=\"clickable && clicked.next($event)\"\n>\n <div\n [id]=\"id + '-background'\"\n class=\"s-stats-card-background\"\n [ngStyle]=\"{ 'background-color': (!lightMode && color) || '' }\"\n ></div>\n <div\n [id]=\"id + '-overlay'\"\n class=\"s-stats-card-overlay\"\n ></div>\n\n <div\n [id]=\"id + '-info-container'\"\n class=\"s-stats-card-info-container\"\n >\n <div class=\"s-stats-card-info-inner-container\">\n <div\n [id]=\"id + '-icon-container'\"\n class=\"s-stats-card-icon-container\"\n [ngStyle]=\"{ 'background-color': (lightMode && color) || '' }\"\n >\n <span\n [id]=\"id + '-icon'\"\n [class]=\"iconClass\"\n [ngClass]=\"{ 's-stats-card-icon': true }\"\n [ngStyle]=\"{ color: (!lightMode && color) || '' }\"\n aria-hidden=\"true\"\n ></span>\n </div>\n\n <div\n [id]=\"id + '-text-container'\"\n class=\"s-stats-card-text-container\"\n >\n @if (infoSignTooltip) {\n <div *sInfoSign=\"infoSignTooltip\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n }\n <span\n [id]=\"id + '-value'\"\n class=\"s-stats-card-value\"\n [sTooltip]=\"displayValue\"\n >\n {{ displayValue }}\n </span>\n </div>\n </div>\n <div class=\"s-stats-card-content-inner-container\">\n <div\n #content\n class=\"s-stats-card-content-container\"\n >\n <ng-content></ng-content>\n </div>\n @if (content.children.length) {\n <div class=\"s-stats-card-content-separator\"></div>\n }\n </div>\n @if (tooltip) {\n <span\n class=\"s-status-card-tooltip\"\n [sTooltip]=\"tooltip\"\n >\n <i class=\"fa fa-info-circle s-status-card-tooltip-icon\"></i>\n </span>\n }\n </div>\n</div>\n\n<ng-template #labelTemplate>\n <h4\n [id]=\"id + '-label'\"\n class=\"s-stats-card-label\"\n [sTooltip]=\"label\"\n >\n {{ label }}\n </h4>\n</ng-template>\n\n", styles: ["s-stats-card{display:block;height:auto;position:relative}s-stats-card .s-stats-card{border:1px solid transparent;min-width:120px;overflow:hidden;position:relative}s-stats-card .s-stats-card .s-stats-card-overlay,s-stats-card .s-stats-card .s-stats-card-background{height:calc(100% - 2px);left:1px;position:absolute;top:1px;width:calc(100% - 2px)}s-stats-card .s-stats-card .s-stats-card-background{background-color:#fff}s-stats-card .s-stats-card .s-stats-card-overlay{background-color:#000;opacity:0;transition:opacity .2s ease-out}s-stats-card .s-stats-card .s-stats-card-info-container{overflow:auto;padding:15px;position:relative}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container{overflow:hidden;position:relative}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-icon-container{float:left;font-size:24px;height:50px;line-height:50px;text-align:center;transition:width .2s ease-out;width:50px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container{align-items:flex-start;color:#fff;display:flex;flex-direction:column;float:left;height:50px;justify-content:center;max-width:calc(100% - 65px);padding-left:15px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-label{font-weight:400;width:100%}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-value{display:inline-block;font-size:20px;font-weight:700;width:100%}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-label,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-content-inner-container{display:flex;flex-direction:column}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-content-inner-container .s-stats-card-content-separator{border-top:1px solid #ccc;margin:15px 0;order:1}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-content-inner-container .s-stats-card-content-container{order:2}s-stats-card .s-stats-card .s-stats-card-info-container .s-status-card-tooltip{font-size:1rem;line-height:0;margin:.3rem;position:absolute;right:0;top:0}s-stats-card .s-stats-card .s-stats-card-info-container .s-status-card-tooltip .s-status-card-tooltip-icon{color:#fff}s-stats-card .s-stats-card.s-stats-card--color .s-stats-card-icon-container{background-color:#fff}s-stats-card .s-stats-card.s-stats-card--light *{color:#333}s-stats-card .s-stats-card.s-stats-card--light *.s-stats-card-icon{color:#fff}s-stats-card .s-stats-card.s-stats-card--light *.s-stats-card-label{color:#999}s-stats-card .s-stats-card.s-stats-card--light * .s-status-card-tooltip .s-status-card-tooltip-icon{color:#999}s-stats-card .s-stats-card.s-stats-card--light-version .s-stats-card-info-inner-container .s-stats-card-icon-container{height:100%;left:0;position:absolute;right:0;width:10px}s-stats-card .s-stats-card.s-stats-card--light-version .s-stats-card-info-inner-container .s-stats-card-icon-container .s-stats-card-icon{display:none}s-stats-card .s-stats-card.s-stats-card--light-version .s-stats-card-info-inner-container .s-stats-card-text-container{height:auto;max-width:calc(100% - 25px);padding-left:25px}s-stats-card .s-stats-card.s-stats-card--clickable{cursor:pointer}s-stats-card .s-stats-card.s-stats-card--clickable:hover .s-stats-card-overlay{opacity:.2}s-stats-card .s-stats-card.s-stats-card--clickable.s-stats-card--light:hover .s-stats-card-overlay{opacity:.08}s-stats-card .s-stats-card.s-stats-card--light{border-color:#ccc}p-panel .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border),s-panel .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border),.ui-dialog-content .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border),.s-sidebar-content .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border){border-color:transparent}@media (max-width: 767px){s-stats-card .s-stats-card{height:auto}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-icon-container{height:100%;left:0;position:absolute;right:0;width:10px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-icon-container .s-stats-card-icon{display:none}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container{height:auto;max-width:calc(100% - 25px);padding-left:25px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-label,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-value{overflow:visible;white-space:normal;word-break:break-all}}\n"] }]
|
|
115
118
|
}], propDecorators: { id: [{
|
|
116
119
|
type: Input
|
|
117
120
|
}], label: [{
|
|
118
121
|
type: Input,
|
|
119
122
|
args: [{ required: true }]
|
|
123
|
+
}], infoSignTooltip: [{
|
|
124
|
+
type: Input
|
|
120
125
|
}], alwaysWithBorder: [{
|
|
121
126
|
type: Input
|
|
122
127
|
}], lightVersion: [{
|
|
@@ -138,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
138
143
|
}], value: [{
|
|
139
144
|
type: Input
|
|
140
145
|
}] } });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3RhdHMtY2FyZC9zcmMvbGliL3N0YXRzLWNhcmQvc3RhdHMtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3RhdHMtY2FyZC9zcmMvbGliL3N0YXRzLWNhcmQvc3RhdHMtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFFekM7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBT0gsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUV6QixnR0FBZ0c7SUFFekYsRUFBRSxHQUFHLGdCQUFnQixrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO0lBRTFELGdGQUFnRjtJQUV6RSxLQUFLLENBQVU7SUFFdEIsd0ZBQXdGO0lBRWpGLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUVoQyw2RkFBNkY7SUFFdEYsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUU1QiwyRUFBMkU7SUFFcEUsU0FBUyxHQUFHLElBQUksQ0FBQztJQUV4QiwrRUFBK0U7SUFFeEUsU0FBUyxHQUFHLGlCQUFpQixDQUFDO0lBRXJDLDhFQUE4RTtJQUV2RSxLQUFLLEdBQUcsU0FBUyxDQUFDO0lBRXpCLHVGQUF1RjtJQUVoRixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBRTdCLHNGQUFzRjtJQUUvRSxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRXpCLHdGQUF3RjtJQUVqRixP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QURYLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUtsQixnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBS0MsWUFBWTtzQkFEbEIsS0FBSztnQkFLQyxTQUFTO3NCQURmLEtBQUs7Z0JBS0MsU0FBUztzQkFEZixLQUFLO2dCQUtDLEtBQUs7c0JBRFgsS0FBSztnQkFLQyxjQUFjO3NCQURwQixLQUFLO2dCQUtDLFNBQVM7c0JBRGYsS0FBSztnQkFLQyxPQUFPO3NCQURiLEtBQUs7Z0JBS0MsT0FBTztzQkFEYixNQUFNO2dCQWlCSSxLQUFLO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmlnTnVtYmVyIH0gZnJvbSAnYmlnbnVtYmVyLmpzJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ2FyZCBkZSBlc3RhdMOtc3RpY2EgcXVlIGV4aWJlIHVtIHZhbG9yIG51bcOpcmljbyBjb20gw61jb25lLFxuICogcsOzdHVsbyBlIGFuaW1hw6fDo28gZGUgY29udGFnZW0uIFN1cG9ydGEgZGlmZXJlbnRlcyBlc3RpbG9zIHZpc3VhaXNcbiAqIChib3JkYSwgdmVyc8OjbyBsZXZlKSBlIHBvZGUgZW1pdGlyIGV2ZW50byBhbyBzZXIgY2xpY2Fkby5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtc3RhdHMtY2FyZFxuICogICBsYWJlbD1cIlZlbmRhc1wiXG4gKiAgIFt2YWx1ZV09XCInMS4yMzQnXCJcbiAqICAgaWNvbkNsYXNzPVwiZmFzIGZhLXNob3BwaW5nLWNhcnRcIlxuICogICBjb2xvcj1cIiMzMzk5ZmZcIiAvPlxuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IFN1bW1hcnlcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLXN0YXRzLWNhcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdGF0cy1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdGF0cy1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgU3RhdHNDYXJkQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIElkZW50aWZpY2Fkb3Igw7puaWNvIGRvIGNhcmQgbm8gRE9NLiBHZXJhZG8gYXV0b21hdGljYW1lbnRlIHNlIG7Do28gaW5mb3JtYWRvLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYHMtc3RhdHMtY2FyZC0ke1N0YXRzQ2FyZENvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBSw7N0dWxvIGRlc2NyaXRpdm8gZGEgZXN0YXTDrXN0aWNhIGV4aWJpZGEuIENhbXBvIG9icmlnYXTDs3Jpby4gKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIHB1YmxpYyBsYWJlbCE6IHN0cmluZztcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gRXhpYmUgYm9yZGEgbWVzbW8gcXVhbmRvIG8gY2FyZCBuw6NvIGVzdMOhIGVtIGRlc3RhcXVlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsd2F5c1dpdGhCb3JkZXIgPSBmYWxzZTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gQXRpdmEgYSB2ZXJzw6NvIHZpc3VhbCBsZXZlIChzZW0gc29tYnJhIGUgY29tIGZ1bmRvIGNsYXJvKS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsaWdodFZlcnNpb24gPSBmYWxzZTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gQXRpdmEgbyBtb2RvIGRlIGNvcmVzIGNsYXJhcyBwYXJhIG8gY2FyZC4gQGRlZmF1bHQgdHJ1ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxpZ2h0TW9kZSA9IHRydWU7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIENsYXNzZSBkbyDDrWNvbmUgZXhpYmlkbyBubyBjYXJkLiBAZGVmYXVsdCAnZmEgZmEtYmFyLWNoYXJ0JyAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25DbGFzcyA9ICdmYSBmYS1iYXItY2hhcnQnO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDb3IgZGUgZGVzdGFxdWUgZG8gY2FyZCBlbSBmb3JtYXRvIENTUy4gQGRlZmF1bHQgJyMzMzk5NjYnICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sb3IgPSAnIzMzOTk2Nic7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEhhYmlsaXRhIGEgYW5pbWHDp8OjbyBkZSBjb250YWdlbSBhbyBhdHVhbGl6YXIgbyB2YWxvci4gQGRlZmF1bHQgdHJ1ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFuaW1hdGVOdW1iZXJzID0gdHJ1ZTtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gSGFiaWxpdGEgbyBjdXJzb3IgZGUgcG9udGVpcm8gZSBvIGV2ZW50byBkZSBjbGlxdWUuIEBkZWZhdWx0IGZhbHNlICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xpY2thYmxlID0gZmFsc2U7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIFRleHRvIGRvIHRvb2x0aXAgZXhpYmlkbyBhbyBwYXNzYXIgbyBtb3VzZSBzb2JyZSBvIGNhcmQuIEBkZWZhdWx0ICcnICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcCA9ICcnO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIHVzdcOhcmlvIGNsaWNhIG5vIGNhcmQgKHJlcXVlciBgY2xpY2thYmxlID0gdHJ1ZWApLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gICAgcHVibGljIGRpc3BsYXlWYWx1ZT86IHN0cmluZztcblxuICAgIHByaXZhdGUgX0FOSU1BVElPTl9EVVJBVElPTl9NUyA9IDIwMDtcbiAgICBwcml2YXRlIF9TVEVQX0RVUkFUSU9OX01TID0gMjA7XG4gICAgcHJpdmF0ZSBfcHJldmlvdXNWYWx1ZSA9ICcwJztcbiAgICBwcml2YXRlIF9pbnRlcnZhbElkOiBhbnk7XG4gICAgcHJpdmF0ZSBfdmFsdWUgPSAnMCc7XG5cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBWYWxvciBudW3DqXJpY28gZXhpYmlkbyBubyBjYXJkLiBRdWFuZG8gYGFuaW1hdGVOdW1iZXJzYCBlc3TDoSBhdGl2bywgYSBjb250YWdlbSDDqSBhbmltYWRhLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3ByZXZpb3VzVmFsdWUgPSB0aGlzLl92YWx1ZTtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5hbmltYXRlTnVtYmVycykgdGhpcy5fdXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgICAgIGVsc2UgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXBsYWNlTnVtZXJpY1Bvc2l0aW9ucyh2YWx1ZTogc3RyaW5nLCBuZXdWYWx1ZT86IEJpZ051bWJlcikge1xuICAgICAgICBjb25zdCByYXdWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1teXFxkXS9nLCAnJyk7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlU3RyaW5nID0gbmV3VmFsdWUgPyBuZXdWYWx1ZS50b1N0cmluZygpIDogJyc7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZE5ld1ZhbHVlID0gbmV3VmFsdWVTdHJpbmcudG9TdHJpbmcoKS5yZXBsYWNlKC9cXEQvZywgJycpLnBhZFN0YXJ0KHJhd1ZhbHVlLmxlbmd0aCwgJzAnKTtcbiAgICAgICAgbGV0IG5ld1ZhbHVlSW5kZXggPSAwO1xuXG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAgICAgLm1hcCgoY2hhcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG51bWJlciA9IE51bWJlcihjaGFyKTtcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyIHx8IGNoYXIgPT09ICcwJykgcmV0dXJuIGZvcm1hdHRlZE5ld1ZhbHVlW25ld1ZhbHVlSW5kZXgrK107XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoYXI7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3VwZGF0ZURpc3BsYXlWYWx1ZSgpIHtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uRHVyYXRpb24gPSBuZXcgQmlnTnVtYmVyKHRoaXMuX0FOSU1BVElPTl9EVVJBVElPTl9NUyk7XG4gICAgICAgIGNvbnN0IHN0ZXBEdXJhdGlvbiA9IG5ldyBCaWdOdW1iZXIodGhpcy5fU1RFUF9EVVJBVElPTl9NUyk7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbkNvdW50ID0gYW5pbWF0aW9uRHVyYXRpb24uZGl2aWRlZEJ5KHN0ZXBEdXJhdGlvbik7XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXNSYXdWYWx1ZSA9IG5ldyBCaWdOdW1iZXIodGhpcy5fcHJldmlvdXNWYWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpKTtcbiAgICAgICAgY29uc3QgcmF3VmFsdWUgPSBuZXcgQmlnTnVtYmVyKHRoaXMudmFsdWUucmVwbGFjZSgvXFxEL2csICcnKSk7XG5cbiAgICAgICAgY29uc3QgaW5jcmVtZW50VmFsdWUgPSByYXdWYWx1ZS5taW51cyhwcmV2aW91c1Jhd1ZhbHVlKS5hYnNvbHV0ZVZhbHVlKCkuZGl2aWRlZEJ5KGFuaW1hdGlvbkNvdW50KTtcbiAgICAgICAgY29uc3QgaW5jcmVtZW50YWwgPSBwcmV2aW91c1Jhd1ZhbHVlLmlzTGVzc1RoYW4ocmF3VmFsdWUpO1xuXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5faW50ZXJ2YWxJZCk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnJlcGxhY2VOdW1lcmljUG9zaXRpb25zKHRoaXMudmFsdWUpO1xuXG4gICAgICAgIGxldCBjb3VudGVyID0gcHJldmlvdXNSYXdWYWx1ZTtcblxuICAgICAgICB0aGlzLl9pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGluY3JlbWVudGFsICYmIGNvdW50ZXIuaXNMZXNzVGhhbihyYXdWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kaXNwbGF5VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnJlcGxhY2VOdW1lcmljUG9zaXRpb25zKHRoaXMuZGlzcGxheVZhbHVlLCBjb3VudGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY291bnRlciA9IGNvdW50ZXIucGx1cyhpbmNyZW1lbnRWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFpbmNyZW1lbnRhbCAmJiBjb3VudGVyLmlzR3JlYXRlclRoYW4ocmF3VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlzcGxheVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5yZXBsYWNlTnVtZXJpY1Bvc2l0aW9ucyh0aGlzLmRpc3BsYXlWYWx1ZSwgY291bnRlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvdW50ZXIgPSBjb3VudGVyLm1pbnVzKGluY3JlbWVudFZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbElkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdGhpcy5fU1RFUF9EVVJBVElPTl9NUyk7XG4gICAgfVxufVxuXG4iLCI8ZGl2XG4gICAgW2lkXT1cImlkXCJcbiAgICBjbGFzcz1cInMtc3RhdHMtY2FyZFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAncy1zdGF0cy1jYXJkLS1hbHdheXMtYm9yZGVyJzogYWx3YXlzV2l0aEJvcmRlcixcbiAgICAgICAgJ3Mtc3RhdHMtY2FyZC0tbGlnaHQnOiBsaWdodE1vZGUsXG4gICAgICAgICdzLXN0YXRzLWNhcmQtLWNvbG9yJzogIWxpZ2h0TW9kZSxcbiAgICAgICAgJ3Mtc3RhdHMtY2FyZC0tbGlnaHQtdmVyc2lvbic6IGxpZ2h0VmVyc2lvbixcbiAgICAgICAgJ3Mtc3RhdHMtY2FyZC0tY2xpY2thYmxlJzogY2xpY2thYmxlLFxuICAgIH1cIlxuICAgIChjbGljayk9XCJjbGlja2FibGUgJiYgY2xpY2tlZC5uZXh0KCRldmVudClcIlxuPlxuICAgIDxkaXZcbiAgICAgICAgW2lkXT1cImlkICsgJy1iYWNrZ3JvdW5kJ1wiXG4gICAgICAgIGNsYXNzPVwicy1zdGF0cy1jYXJkLWJhY2tncm91bmRcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogKCFsaWdodE1vZGUgJiYgY29sb3IpIHx8ICcnIH1cIlxuICAgID48L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgIFtpZF09XCJpZCArICctb3ZlcmxheSdcIlxuICAgICAgICBjbGFzcz1cInMtc3RhdHMtY2FyZC1vdmVybGF5XCJcbiAgICA+PC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAgIFtpZF09XCJpZCArICctaW5mby1jb250YWluZXInXCJcbiAgICAgICAgY2xhc3M9XCJzLXN0YXRzLWNhcmQtaW5mby1jb250YWluZXJcIlxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInMtc3RhdHMtY2FyZC1pbmZvLWlubmVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICctaWNvbi1jb250YWluZXInXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInMtc3RhdHMtY2FyZC1pY29uLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IChsaWdodE1vZGUgJiYgY29sb3IpIHx8ICcnIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICctaWNvbidcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiaWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncy1zdGF0cy1jYXJkLWljb24nOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGNvbG9yOiAoIWxpZ2h0TW9kZSAmJiBjb2xvcikgfHwgJycgfVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgW2lkXT1cImlkICsgJy10ZXh0LWNvbnRhaW5lcidcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicy1zdGF0cy1jYXJkLXRleHQtY29udGFpbmVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aDRcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImlkICsgJy1sYWJlbCdcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInMtc3RhdHMtY2FyZC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFtzVG9vbHRpcF09XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImlkICsgJy12YWx1ZSdcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInMtc3RhdHMtY2FyZC12YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzVG9vbHRpcF09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZGlzcGxheVZhbHVlIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicy1zdGF0cy1jYXJkLWNvbnRlbnQtaW5uZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgI2NvbnRlbnRcbiAgICAgICAgICAgICAgICBjbGFzcz1cInMtc3RhdHMtY2FyZC1jb250ZW50LWNvbnRhaW5lclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKGNvbnRlbnQuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInMtc3RhdHMtY2FyZC1jb250ZW50LXNlcGFyYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmICh0b29sdGlwKSB7XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwicy1zdGF0dXMtY2FyZC10b29sdGlwXCJcbiAgICAgICAgICAgICAgICBbc1Rvb2x0aXBdPVwidG9vbHRpcFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1pbmZvLWNpcmNsZSBzLXN0YXR1cy1jYXJkLXRvb2x0aXAtaWNvblwiPjwvaT5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3RhdHMtY2FyZC9zcmMvbGliL3N0YXRzLWNhcmQvc3RhdHMtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3RhdHMtY2FyZC9zcmMvbGliL3N0YXRzLWNhcmQvc3RhdHMtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7O0FBRXpDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQU9ILE1BQU0sT0FBTyxrQkFBa0I7SUFDcEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFekIsZ0dBQWdHO0lBRXpGLEVBQUUsR0FBRyxnQkFBZ0Isa0JBQWtCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUUxRCxnRkFBZ0Y7SUFFekUsS0FBSyxDQUFVO0lBRXRCLDBIQUEwSDtJQUVuSCxlQUFlLENBQVU7SUFFaEMsd0ZBQXdGO0lBRWpGLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUVoQyw2RkFBNkY7SUFFdEYsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUU1QiwyRUFBMkU7SUFFcEUsU0FBUyxHQUFHLElBQUksQ0FBQztJQUV4QiwrRUFBK0U7SUFFeEUsU0FBUyxHQUFHLGlCQUFpQixDQUFDO0lBRXJDLDhFQUE4RTtJQUV2RSxLQUFLLEdBQUcsU0FBUyxDQUFDO0lBRXpCLHVGQUF1RjtJQUVoRixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBRTdCLHNGQUFzRjtJQUUvRSxTQUFTLEdBQUcs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LEVBQUU7c0JBRFIsS0FBSztnQkFLQyxLQUFLO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUtsQixlQUFlO3NCQURyQixLQUFLO2dCQUtDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFLQyxZQUFZO3NCQURsQixLQUFLO2dCQUtDLFNBQVM7c0JBRGYsS0FBSztnQkFLQyxTQUFTO3NCQURmLEtBQUs7Z0JBS0MsS0FBSztzQkFEWCxLQUFLO2dCQUtDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBS0MsU0FBUztzQkFEZixLQUFLO2dCQUtDLE9BQU87c0JBRGIsS0FBSztnQkFLQyxPQUFPO3NCQURiLE1BQU07Z0JBaUJJLEtBQUs7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCaWdOdW1iZXIgfSBmcm9tICdiaWdudW1iZXIuanMnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDYXJkIGRlIGVzdGF0w61zdGljYSBxdWUgZXhpYmUgdW0gdmFsb3IgbnVtw6lyaWNvIGNvbSDDrWNvbmUsXG4gKiByw7N0dWxvIGUgYW5pbWHDp8OjbyBkZSBjb250YWdlbS4gU3Vwb3J0YSBkaWZlcmVudGVzIGVzdGlsb3MgdmlzdWFpc1xuICogKGJvcmRhLCB2ZXJzw6NvIGxldmUpIGUgcG9kZSBlbWl0aXIgZXZlbnRvIGFvIHNlciBjbGljYWRvLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8cy1zdGF0cy1jYXJkXG4gKiAgIGxhYmVsPVwiVmVuZGFzXCJcbiAqICAgW3ZhbHVlXT1cIicxLjIzNCdcIlxuICogICBpY29uQ2xhc3M9XCJmYXMgZmEtc2hvcHBpbmctY2FydFwiXG4gKiAgIGNvbG9yPVwiIzMzOTlmZlwiIC8+XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgU3VtbWFyeVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Mtc3RhdHMtY2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N0YXRzLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0YXRzLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTdGF0c0NhcmRDb21wb25lbnQge1xuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gSWRlbnRpZmljYWRvciDDum5pY28gZG8gY2FyZCBubyBET00uIEdlcmFkbyBhdXRvbWF0aWNhbWVudGUgc2UgbsOjbyBpbmZvcm1hZG8uICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgcy1zdGF0cy1jYXJkLSR7U3RhdHNDYXJkQ29tcG9uZW50Lm5leHRJZCsrfWA7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIFLDs3R1bG8gZGVzY3JpdGl2byBkYSBlc3RhdMOtc3RpY2EgZXhpYmlkYS4gQ2FtcG8gb2JyaWdhdMOzcmlvLiAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgcHVibGljIGxhYmVsITogc3RyaW5nO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUZXh0byBkbyB0b29sdGlwIGV4aWJpZG8gYW8gcGFzc2FyIG8gbW91c2Ugc29icmUgbyDDrWNvbmUgZGUgaW5mb3JtYcOnw6NvIGFvIGxhZG8gZG8gbGFiZWwgZG8gc3RhdHMgY2FyZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbmZvU2lnblRvb2x0aXA/OiBzdHJpbmc7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEV4aWJlIGJvcmRhIG1lc21vIHF1YW5kbyBvIGNhcmQgbsOjbyBlc3TDoSBlbSBkZXN0YXF1ZS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbHdheXNXaXRoQm9yZGVyID0gZmFsc2U7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEF0aXZhIGEgdmVyc8OjbyB2aXN1YWwgbGV2ZSAoc2VtIHNvbWJyYSBlIGNvbSBmdW5kbyBjbGFybykuIEBkZWZhdWx0IGZhbHNlICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGlnaHRWZXJzaW9uID0gZmFsc2U7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEF0aXZhIG8gbW9kbyBkZSBjb3JlcyBjbGFyYXMgcGFyYSBvIGNhcmQuIEBkZWZhdWx0IHRydWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsaWdodE1vZGUgPSB0cnVlO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBDbGFzc2UgZG8gw61jb25lIGV4aWJpZG8gbm8gY2FyZC4gQGRlZmF1bHQgJ2ZhIGZhLWJhci1jaGFydCcgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpY29uQ2xhc3MgPSAnZmEgZmEtYmFyLWNoYXJ0JztcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gQ29yIGRlIGRlc3RhcXVlIGRvIGNhcmQgZW0gZm9ybWF0byBDU1MuIEBkZWZhdWx0ICcjMzM5OTY2JyAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbG9yID0gJyMzMzk5NjYnO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBIYWJpbGl0YSBhIGFuaW1hw6fDo28gZGUgY29udGFnZW0gYW8gYXR1YWxpemFyIG8gdmFsb3IuIEBkZWZhdWx0IHRydWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbmltYXRlTnVtYmVycyA9IHRydWU7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIEhhYmlsaXRhIG8gY3Vyc29yIGRlIHBvbnRlaXJvIGUgbyBldmVudG8gZGUgY2xpcXVlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsaWNrYWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBUZXh0byBkbyB0b29sdGlwIGV4aWJpZG8gYW8gcGFzc2FyIG8gbW91c2Ugc29icmUgbyBjYXJkLiBAZGVmYXVsdCAnJyAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRvb2x0aXAgPSAnJztcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyB1c3XDoXJpbyBjbGljYSBubyBjYXJkIChyZXF1ZXIgYGNsaWNrYWJsZSA9IHRydWVgKS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAgIHB1YmxpYyBkaXNwbGF5VmFsdWU/OiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIF9BTklNQVRJT05fRFVSQVRJT05fTVMgPSAyMDA7XG4gICAgcHJpdmF0ZSBfU1RFUF9EVVJBVElPTl9NUyA9IDIwO1xuICAgIHByaXZhdGUgX3ByZXZpb3VzVmFsdWUgPSAnMCc7XG4gICAgcHJpdmF0ZSBfaW50ZXJ2YWxJZDogYW55O1xuICAgIHByaXZhdGUgX3ZhbHVlID0gJzAnO1xuXG4gICAgcHVibGljIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAZGVzY3JpcHRpb24gVmFsb3IgbnVtw6lyaWNvIGV4aWJpZG8gbm8gY2FyZC4gUXVhbmRvIGBhbmltYXRlTnVtYmVyc2AgZXN0w6EgYXRpdm8sIGEgY29udGFnZW0gw6kgYW5pbWFkYS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wcmV2aW91c1ZhbHVlID0gdGhpcy5fdmFsdWU7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0ZU51bWJlcnMpIHRoaXMuX3VwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgICAgICBlbHNlIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVwbGFjZU51bWVyaWNQb3NpdGlvbnModmFsdWU6IHN0cmluZywgbmV3VmFsdWU/OiBCaWdOdW1iZXIpIHtcbiAgICAgICAgY29uc3QgcmF3VmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9bXlxcZF0vZywgJycpO1xuICAgICAgICBjb25zdCBuZXdWYWx1ZVN0cmluZyA9IG5ld1ZhbHVlID8gbmV3VmFsdWUudG9TdHJpbmcoKSA6ICcnO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWROZXdWYWx1ZSA9IG5ld1ZhbHVlU3RyaW5nLnRvU3RyaW5nKCkucmVwbGFjZSgvXFxEL2csICcnKS5wYWRTdGFydChyYXdWYWx1ZS5sZW5ndGgsICcwJyk7XG4gICAgICAgIGxldCBuZXdWYWx1ZUluZGV4ID0gMDtcblxuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgICAgIC5tYXAoKGNoYXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBudW1iZXIgPSBOdW1iZXIoY2hhcik7XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciB8fCBjaGFyID09PSAnMCcpIHJldHVybiBmb3JtYXR0ZWROZXdWYWx1ZVtuZXdWYWx1ZUluZGV4KytdO1xuICAgICAgICAgICAgICAgIHJldHVybiBjaGFyO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKCcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVEaXNwbGF5VmFsdWUoKSB7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbkR1cmF0aW9uID0gbmV3IEJpZ051bWJlcih0aGlzLl9BTklNQVRJT05fRFVSQVRJT05fTVMpO1xuICAgICAgICBjb25zdCBzdGVwRHVyYXRpb24gPSBuZXcgQmlnTnVtYmVyKHRoaXMuX1NURVBfRFVSQVRJT05fTVMpO1xuICAgICAgICBjb25zdCBhbmltYXRpb25Db3VudCA9IGFuaW1hdGlvbkR1cmF0aW9uLmRpdmlkZWRCeShzdGVwRHVyYXRpb24pO1xuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzUmF3VmFsdWUgPSBuZXcgQmlnTnVtYmVyKHRoaXMuX3ByZXZpb3VzVmFsdWUucmVwbGFjZSgvXFxEL2csICcnKSk7XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gbmV3IEJpZ051bWJlcih0aGlzLnZhbHVlLnJlcGxhY2UoL1xcRC9nLCAnJykpO1xuXG4gICAgICAgIGNvbnN0IGluY3JlbWVudFZhbHVlID0gcmF3VmFsdWUubWludXMocHJldmlvdXNSYXdWYWx1ZSkuYWJzb2x1dGVWYWx1ZSgpLmRpdmlkZWRCeShhbmltYXRpb25Db3VudCk7XG4gICAgICAgIGNvbnN0IGluY3JlbWVudGFsID0gcHJldmlvdXNSYXdWYWx1ZS5pc0xlc3NUaGFuKHJhd1ZhbHVlKTtcblxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuX2ludGVydmFsSWQpO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5yZXBsYWNlTnVtZXJpY1Bvc2l0aW9ucyh0aGlzLnZhbHVlKTtcblxuICAgICAgICBsZXQgY291bnRlciA9IHByZXZpb3VzUmF3VmFsdWU7XG5cbiAgICAgICAgdGhpcy5faW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmNyZW1lbnRhbCAmJiBjb3VudGVyLmlzTGVzc1RoYW4ocmF3VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlzcGxheVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5yZXBsYWNlTnVtZXJpY1Bvc2l0aW9ucyh0aGlzLmRpc3BsYXlWYWx1ZSwgY291bnRlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvdW50ZXIgPSBjb3VudGVyLnBsdXMoaW5jcmVtZW50VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghaW5jcmVtZW50YWwgJiYgY291bnRlci5pc0dyZWF0ZXJUaGFuKHJhd1ZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpc3BsYXlWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMucmVwbGFjZU51bWVyaWNQb3NpdGlvbnModGhpcy5kaXNwbGF5VmFsdWUsIGNvdW50ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb3VudGVyID0gY291bnRlci5taW51cyhpbmNyZW1lbnRWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5faW50ZXJ2YWxJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHRoaXMuX1NURVBfRFVSQVRJT05fTVMpO1xuICAgIH1cbn1cblxuIiwiPGRpdlxuICAgIFtpZF09XCJpZFwiXG4gICAgY2xhc3M9XCJzLXN0YXRzLWNhcmRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3Mtc3RhdHMtY2FyZC0tYWx3YXlzLWJvcmRlcic6IGFsd2F5c1dpdGhCb3JkZXIsXG4gICAgICAgICdzLXN0YXRzLWNhcmQtLWxpZ2h0JzogbGlnaHRNb2RlLFxuICAgICAgICAncy1zdGF0cy1jYXJkLS1jb2xvcic6ICFsaWdodE1vZGUsXG4gICAgICAgICdzLXN0YXRzLWNhcmQtLWxpZ2h0LXZlcnNpb24nOiBsaWdodFZlcnNpb24sXG4gICAgICAgICdzLXN0YXRzLWNhcmQtLWNsaWNrYWJsZSc6IGNsaWNrYWJsZSxcbiAgICB9XCJcbiAgICAoY2xpY2spPVwiY2xpY2thYmxlICYmIGNsaWNrZWQubmV4dCgkZXZlbnQpXCJcbj5cbiAgICA8ZGl2XG4gICAgICAgIFtpZF09XCJpZCArICctYmFja2dyb3VuZCdcIlxuICAgICAgICBjbGFzcz1cInMtc3RhdHMtY2FyZC1iYWNrZ3JvdW5kXCJcbiAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6ICghbGlnaHRNb2RlICYmIGNvbG9yKSB8fCAnJyB9XCJcbiAgICA+PC9kaXY+XG4gICAgPGRpdlxuICAgICAgICBbaWRdPVwiaWQgKyAnLW92ZXJsYXknXCJcbiAgICAgICAgY2xhc3M9XCJzLXN0YXRzLWNhcmQtb3ZlcmxheVwiXG4gICAgPjwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgICBbaWRdPVwiaWQgKyAnLWluZm8tY29udGFpbmVyJ1wiXG4gICAgICAgIGNsYXNzPVwicy1zdGF0cy1jYXJkLWluZm8tY29udGFpbmVyXCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzLXN0YXRzLWNhcmQtaW5mby1pbm5lci1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBbaWRdPVwiaWQgKyAnLWljb24tY29udGFpbmVyJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzLXN0YXRzLWNhcmQtaWNvbi1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiAobGlnaHRNb2RlICYmIGNvbG9yKSB8fCAnJyB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaWQgKyAnLWljb24nXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImljb25DbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3Mtc3RhdHMtY2FyZC1pY29uJzogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogKCFsaWdodE1vZGUgJiYgY29sb3IpIHx8ICcnIH1cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICctdGV4dC1jb250YWluZXInXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInMtc3RhdHMtY2FyZC10ZXh0LWNvbnRhaW5lclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChpbmZvU2lnblRvb2x0aXApIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqc0luZm9TaWduPVwiaW5mb1NpZ25Ub29sdGlwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxUZW1wbGF0ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxUZW1wbGF0ZVwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICctdmFsdWUnXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzLXN0YXRzLWNhcmQtdmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBbc1Rvb2x0aXBdPVwiZGlzcGxheVZhbHVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGRpc3BsYXlWYWx1ZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInMtc3RhdHMtY2FyZC1jb250ZW50LWlubmVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICNjb250ZW50XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzLXN0YXRzLWNhcmQtY29udGVudC1jb250YWluZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGlmIChjb250ZW50LmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzLXN0YXRzLWNhcmQtY29udGVudC1zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAodG9vbHRpcCkge1xuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInMtc3RhdHVzLWNhcmQtdG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgW3NUb29sdGlwXT1cInRvb2x0aXBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtaW5mby1jaXJjbGUgcy1zdGF0dXMtY2FyZC10b29sdGlwLWljb25cIj48L2k+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGU+XG4gICAgPGg0XG4gICAgICAgIFtpZF09XCJpZCArICctbGFiZWwnXCJcbiAgICAgICAgY2xhc3M9XCJzLXN0YXRzLWNhcmQtbGFiZWxcIlxuICAgICAgICBbc1Rvb2x0aXBdPVwibGFiZWxcIlxuICAgID5cbiAgICAgICAge3sgbGFiZWwgfX1cbiAgICA8L2g0PlxuPC9uZy10ZW1wbGF0ZT5cblxuIl19
|
|
@@ -2,18 +2,19 @@ import { CommonModule } from '@angular/common';
|
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
3
|
import { StatsCardComponent } from './stats-card.component';
|
|
4
4
|
import { TooltipModule } from '@seniorsistemas/angular-components/tooltip';
|
|
5
|
+
import { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export class StatsCardModule {
|
|
7
8
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: StatsCardModule, declarations: [StatsCardComponent], imports: [CommonModule, TooltipModule], exports: [StatsCardComponent] });
|
|
9
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardModule, imports: [CommonModule, TooltipModule] });
|
|
9
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: StatsCardModule, declarations: [StatsCardComponent], imports: [CommonModule, TooltipModule, InfoSignModule], exports: [StatsCardComponent] });
|
|
10
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardModule, imports: [CommonModule, TooltipModule, InfoSignModule] });
|
|
10
11
|
}
|
|
11
12
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardModule, decorators: [{
|
|
12
13
|
type: NgModule,
|
|
13
14
|
args: [{
|
|
14
|
-
imports: [CommonModule, TooltipModule],
|
|
15
|
+
imports: [CommonModule, TooltipModule, InfoSignModule],
|
|
15
16
|
declarations: [StatsCardComponent],
|
|
16
17
|
exports: [StatsCardComponent],
|
|
17
18
|
}]
|
|
18
19
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMtY2FyZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3RhdHMtY2FyZC9zcmMvbGliL3N0YXRzLWNhcmQvc3RhdHMtY2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFPOUUsTUFBTSxPQUFPLGVBQWU7d0dBQWYsZUFBZTt5R0FBZixlQUFlLGlCQUhULGtCQUFrQixhQUR2QixZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsYUFFM0Msa0JBQWtCO3lHQUVuQixlQUFlLFlBSmQsWUFBWSxFQUFFLGFBQWEsRUFBRSxjQUFjOzs0RkFJNUMsZUFBZTtrQkFMM0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQztvQkFDdEQsWUFBWSxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQ2xDLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdGF0c0NhcmRDb21wb25lbnQgfSBmcm9tICcuL3N0YXRzLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgSW5mb1NpZ25Nb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2luZm8tc2lnbic7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVG9vbHRpcE1vZHVsZSwgSW5mb1NpZ25Nb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW1N0YXRzQ2FyZENvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW1N0YXRzQ2FyZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFN0YXRzQ2FyZE1vZHVsZSB7fVxuXG4iXX0=
|
|
@@ -9,6 +9,8 @@ import * as i3 from '@seniorsistemas/angular-components/tooltip';
|
|
|
9
9
|
import { TooltipModule } from '@seniorsistemas/angular-components/tooltip';
|
|
10
10
|
import * as i4 from '@seniorsistemas/angular-components/switch';
|
|
11
11
|
import { SwitchModule } from '@seniorsistemas/angular-components/switch';
|
|
12
|
+
import * as i5 from '@seniorsistemas/angular-components/badge';
|
|
13
|
+
import { BadgeModule } from '@seniorsistemas/angular-components/badge';
|
|
12
14
|
import { Subject } from 'rxjs';
|
|
13
15
|
import { takeUntil } from 'rxjs/operators';
|
|
14
16
|
|
|
@@ -35,6 +37,11 @@ class AccordionPanelComponent {
|
|
|
35
37
|
* @description Título exibido no cabeçalho do painel. Campo obrigatório.
|
|
36
38
|
*/
|
|
37
39
|
header;
|
|
40
|
+
/**
|
|
41
|
+
* @description Cria um componente Badge ao lado dos botões de ação no cabeçalho do painel.
|
|
42
|
+
* O objeto de configuração deve conter o texto e a cor do badge.
|
|
43
|
+
*/
|
|
44
|
+
badgeConfig;
|
|
38
45
|
/**
|
|
39
46
|
* @description Lista de botões de ação exibidos no cabeçalho do painel,
|
|
40
47
|
* à direita do título. Cada item define ícone, tooltip e callback de clique.
|
|
@@ -141,7 +148,7 @@ class AccordionPanelComponent {
|
|
|
141
148
|
}
|
|
142
149
|
}
|
|
143
150
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
144
|
-
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: [
|
|
151
|
+
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: [
|
|
145
152
|
trigger('cachelessAnimation', [
|
|
146
153
|
transition(':enter', [style({ height: '0' }), animate('200ms linear', style({ height: '*' }))]),
|
|
147
154
|
transition(':leave', [style({ height: '*' }), animate('200ms linear', style({ height: '0' }))]),
|
|
@@ -165,10 +172,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
165
172
|
state('false', style({ height: '0px' })),
|
|
166
173
|
transition('* => *', animate('200ms')),
|
|
167
174
|
]),
|
|
168
|
-
], 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"] }]
|
|
175
|
+
], 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"] }]
|
|
169
176
|
}], propDecorators: { header: [{
|
|
170
177
|
type: Input,
|
|
171
178
|
args: [{ required: true }]
|
|
179
|
+
}], badgeConfig: [{
|
|
180
|
+
type: Input
|
|
172
181
|
}], buttons: [{
|
|
173
182
|
type: Input
|
|
174
183
|
}], disabled: [{
|
|
@@ -301,27 +310,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
301
310
|
|
|
302
311
|
class AccordionModule {
|
|
303
312
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
304
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: AccordionModule, declarations: [AccordionComponent, AccordionPanelComponent], imports: [CommonModule,
|
|
305
|
-
|
|
306
|
-
ReactiveFormsModule,
|
|
307
|
-
TooltipModule,
|
|
308
|
-
SwitchModule], exports: [AccordionComponent, AccordionPanelComponent] });
|
|
309
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionModule, imports: [CommonModule,
|
|
310
|
-
FormsModule,
|
|
311
|
-
ReactiveFormsModule,
|
|
312
|
-
TooltipModule,
|
|
313
|
-
SwitchModule] });
|
|
313
|
+
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] });
|
|
314
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, TooltipModule, SwitchModule, BadgeModule] });
|
|
314
315
|
}
|
|
315
316
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionModule, decorators: [{
|
|
316
317
|
type: NgModule,
|
|
317
318
|
args: [{
|
|
318
|
-
imports: [
|
|
319
|
-
CommonModule,
|
|
320
|
-
FormsModule,
|
|
321
|
-
ReactiveFormsModule,
|
|
322
|
-
TooltipModule,
|
|
323
|
-
SwitchModule,
|
|
324
|
-
],
|
|
319
|
+
imports: [CommonModule, FormsModule, ReactiveFormsModule, TooltipModule, SwitchModule, BadgeModule],
|
|
325
320
|
declarations: [AccordionComponent, AccordionPanelComponent],
|
|
326
321
|
exports: [AccordionComponent, AccordionPanelComponent],
|
|
327
322
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-accordion.mjs","sources":["../../projects/angular-components/accordion/src/lib/accordion/components/accordion-panel/accordion-panel.component.ts","../../projects/angular-components/accordion/src/lib/accordion/components/accordion-panel/accordion-panel.component.html","../../projects/angular-components/accordion/src/lib/accordion/accordion.component.ts","../../projects/angular-components/accordion/src/lib/accordion/accordion.component.html","../../projects/angular-components/accordion/src/lib/accordion/accordion.module.ts","../../projects/angular-components/accordion/src/seniorsistemas-angular-components-accordion.ts"],"sourcesContent":["import { AfterViewInit, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { trigger, style, animate, transition, state } from '@angular/animations';\n\nimport { UntypedFormControl } from '@angular/forms';\nimport { AccordionButtonSettings, ValidationMessageIconColor } from '../../models/accordion-button-settings';\n\n/**\n * @description Painel individual do {@link AccordionComponent}. Gerencia o estado de\n * abertura/fechamento com animação, podendo conter um switch de controle via `switchControl`,\n * botões de ação configuráveis e uma mensagem de validação com ícone.\n *\n * @example\n * ```html\n * <s-accordion-panel\n * header=\"Configurações\"\n * [disabled]=\"false\"\n * (panelOpened)=\"onOpen()\"\n * (panelClosed)=\"onClose()\">\n * <p>Conteúdo do painel</p>\n * </s-accordion-panel>\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-accordion-panel',\n templateUrl: './accordion-panel.component.html',\n styleUrls: ['./accordion-panel.component.scss'],\n animations: [\n trigger('cachelessAnimation', [\n transition(':enter', [style({ height: '0' }), animate('200ms linear', style({ height: '*' }))]),\n transition(':leave', [style({ height: '*' }), animate('200ms linear', style({ height: '0' }))]),\n ]),\n trigger('cacheAnimation', [\n state('true', style({ height: '*' })),\n state('false', style({ height: '0px' })),\n transition('* => *', animate('200ms')),\n ]),\n ],\n})\nexport class AccordionPanelComponent implements OnChanges, AfterViewInit {\n /**\n * @description Título exibido no cabeçalho do painel. Campo obrigatório.\n */\n @Input({ required: true })\n public header!: string;\n\n /**\n * @description Lista de botões de ação exibidos no cabeçalho do painel,\n * à direita do título. Cada item define ícone, tooltip e callback de clique.\n */\n @Input()\n public buttons?: AccordionButtonSettings[];\n\n /**\n * @description Desabilita a interação do usuário com o painel, impedindo abertura e fechamento.\n *\n * @default false\n */\n @Input()\n public disabled = false;\n\n /**\n * @description `FormControl` vinculado a um switch exibido no cabeçalho do painel.\n * Permite habilitar/desabilitar o conteúdo do painel via toggle.\n */\n @Input()\n public switchControl?: UntypedFormControl;\n\n /**\n * @description Mensagem de validação exibida abaixo do cabeçalho, acompanhada de um ícone.\n * Útil para indicar erros ou alertas relacionados ao conteúdo do painel.\n */\n @Input()\n public validationMessage?: string;\n\n /**\n * @description Mantém o conteúdo do painel no DOM mesmo quando fechado (modo cache).\n * Útil para preservar o estado de componentes internos ao reabrir o painel.\n *\n * @default false\n */\n @Input()\n public cache = false;\n\n /**\n * @description Classe do ícone exibido ao lado da mensagem de validação.\n *\n * @default 'fas fa-exclamation-circle'\n */\n @Input() validationMessageIcon = 'fas fa-exclamation-circle';\n\n /**\n * @description Cor do ícone da mensagem de validação.\n *\n * @default 'Red'\n */\n @Input() validationMessageIconColor: ValidationMessageIconColor = 'Red';\n\n /**\n * @description Emitido quando o painel é aberto pelo usuário.\n */\n @Output()\n public panelOpened = new EventEmitter<void>();\n\n /**\n * @description Emitido quando o painel é fechado pelo usuário.\n */\n @Output()\n public panelClosed = new EventEmitter<void>();\n\n public isAnimating = false;\n public isContentAnimationDisabled = true;\n\n private _isOpen = false;\n\n public get isOpen() {\n return this._isOpen;\n }\n\n public set isOpen(isOpen: boolean) {\n this._isOpen = isOpen;\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if ('disabled' in changes && this.switchControl) {\n if (changes['disabled'].currentValue) {\n this.switchControl.disable({ emitEvent: false });\n } else {\n this.switchControl.enable({ emitEvent: false });\n }\n }\n\n if ('switch' in changes && 'switchControl' in changes) {\n throw new Error(\"You can't set switch and switchControl together.\");\n }\n }\n\n public ngAfterViewInit(): void {\n // to executed at a safe time prior to control returning to the browser's event loop\n queueMicrotask(() => {\n this.isContentAnimationDisabled = false;\n });\n }\n\n public onIconButtonsClick(event: Event, callback: VoidFunction) {\n if (this.disabled) {\n return;\n }\n\n event.stopPropagation();\n callback();\n }\n\n public onTabClick() {\n if (this.disabled || this.isAnimating) {\n return;\n }\n this.isOpen = !this.isOpen;\n this._emitPanelEvent();\n }\n\n public onContentAnimationStart() {\n this.isAnimating = true;\n }\n\n public onContentAnimationDone() {\n this.isAnimating = false;\n\n this._emitPanelEvent();\n }\n\n private _emitPanelEvent() {\n if (this.isOpen) {\n this.panelOpened.emit();\n } else {\n this.panelClosed.emit();\n }\n }\n}\n\n","<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","import {\n AfterContentInit,\n OnChanges,\n Component,\n ContentChildren,\n Input,\n QueryList,\n SimpleChanges,\n OnDestroy,\n} from '@angular/core';\n\nimport { AccordionPanelComponent } from './components/accordion-panel/accordion-panel.component';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * @description Componente de acordeão que gerencia a abertura e o fechamento de painéis\n * {@link AccordionPanelComponent}. Suporta modo de painel único (apenas um aberto por vez)\n * ou modo múltiplo (vários painéis abertos simultaneamente), configurável via input `multiple`.\n *\n * @example\n * ```html\n * <s-accordion [multiple]=\"false\" [activeIndex]=\"0\">\n * <s-accordion-panel header=\"Seção 1\">Conteúdo 1</s-accordion-panel>\n * <s-accordion-panel header=\"Seção 2\">Conteúdo 2</s-accordion-panel>\n * </s-accordion>\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n})\nexport class AccordionComponent implements AfterContentInit, OnChanges, OnDestroy {\n /**\n * @description Índice (ou lista de índices) do(s) painel(is) que devem iniciar abertos.\n * Aceita um número para painel único ou um array de números para o modo múltiplo.\n */\n @Input()\n public activeIndex?: number | number[];\n\n /**\n * @description Permite que múltiplos painéis estejam abertos ao mesmo tempo.\n * Quando `false`, abrir um painel fecha automaticamente o anterior.\n *\n * @default false\n */\n @Input()\n public multiple = false;\n\n @ContentChildren(AccordionPanelComponent)\n public panelsComponents?: QueryList<AccordionPanelComponent>;\n\n private readonly _unsubscribe$ = new Subject<void>();\n private _panels: AccordionPanelComponent[] = [];\n private _openSubs: Subscription[] = [];\n\n public ngAfterContentInit(): void {\n if (this.panelsComponents) {\n this._panels = this.panelsComponents?.toArray();\n }\n\n this._openSubs = Array.from({ length: this._panels.length });\n\n this._setBehavior(this.multiple);\n this._setupTabs();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['multiple']) {\n this._setBehavior(changes['multiple'].currentValue);\n }\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n private _setupTabs(): void {\n if (this._panels?.length) {\n if (this.activeIndex !== undefined && this.activeIndex !== null) {\n const activeTabs = Array.isArray(this.activeIndex)\n ? this._panels.filter((_, index) => (this.activeIndex as number[]).includes(index))\n : [this._panels[this.activeIndex]];\n\n if (activeTabs.length === 0) {\n throw new Error('activeIndex does not represent any panel.');\n }\n\n for (const activeTab of activeTabs) {\n if (!activeTab.disabled) {\n activeTab.isOpen = true;\n }\n }\n }\n }\n }\n\n private _closeOtherTabs(exception: number) {\n this._panels.forEach((panel, index) => {\n if (index !== exception) {\n panel.isOpen = false;\n }\n });\n }\n\n private _setBehavior(multiple: boolean): void {\n if (multiple) {\n this._enableMultiplePanelBehavior();\n } else {\n this._enableSinglePanelBehavior();\n }\n }\n\n private _enableSinglePanelBehavior() {\n this._panels.forEach((panel, index) => {\n this._openSubs[index] = panel.panelOpened.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._closeOtherTabs(index);\n });\n });\n }\n\n private _enableMultiplePanelBehavior() {\n this._panels.forEach((_, index) => {\n if (this._openSubs[index]) {\n this._openSubs[index].unsubscribe();\n }\n });\n }\n}\n\n","<div class=\"accordion\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { AccordionComponent } from './accordion.component';\nimport { AccordionPanelComponent } from './components/accordion-panel/accordion-panel.component';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { SwitchModule } from '@seniorsistemas/angular-components/switch';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TooltipModule,\n SwitchModule,\n ],\n declarations: [AccordionComponent, AccordionPanelComponent],\n exports: [AccordionComponent, AccordionPanelComponent],\n})\nexport class AccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-accordion.mjs","sources":["../../projects/angular-components/accordion/src/lib/accordion/components/accordion-panel/accordion-panel.component.ts","../../projects/angular-components/accordion/src/lib/accordion/components/accordion-panel/accordion-panel.component.html","../../projects/angular-components/accordion/src/lib/accordion/accordion.component.ts","../../projects/angular-components/accordion/src/lib/accordion/accordion.component.html","../../projects/angular-components/accordion/src/lib/accordion/accordion.module.ts","../../projects/angular-components/accordion/src/seniorsistemas-angular-components-accordion.ts"],"sourcesContent":["import { AfterViewInit, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { trigger, style, animate, transition, state } from '@angular/animations';\n\nimport { UntypedFormControl } from '@angular/forms';\nimport { AccordionButtonSettings, ValidationMessageIconColor } from '../../models/accordion-button-settings';\nimport { BadgeColors } from '@seniorsistemas/angular-components/badge';\n\n/**\n * @description Painel individual do {@link AccordionComponent}. Gerencia o estado de\n * abertura/fechamento com animação, podendo conter um switch de controle via `switchControl`,\n * botões de ação configuráveis e uma mensagem de validação com ícone.\n *\n * @example\n * ```html\n * <s-accordion-panel\n * header=\"Configurações\"\n * [disabled]=\"false\"\n * (panelOpened)=\"onOpen()\"\n * (panelClosed)=\"onClose()\">\n * <p>Conteúdo do painel</p>\n * </s-accordion-panel>\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-accordion-panel',\n templateUrl: './accordion-panel.component.html',\n styleUrls: ['./accordion-panel.component.scss'],\n animations: [\n trigger('cachelessAnimation', [\n transition(':enter', [style({ height: '0' }), animate('200ms linear', style({ height: '*' }))]),\n transition(':leave', [style({ height: '*' }), animate('200ms linear', style({ height: '0' }))]),\n ]),\n trigger('cacheAnimation', [\n state('true', style({ height: '*' })),\n state('false', style({ height: '0px' })),\n transition('* => *', animate('200ms')),\n ]),\n ],\n})\nexport class AccordionPanelComponent implements OnChanges, AfterViewInit {\n /**\n * @description Título exibido no cabeçalho do painel. Campo obrigatório.\n */\n @Input({ required: true })\n public header!: string;\n\n /**\n * @description Cria um componente Badge ao lado dos botões de ação no cabeçalho do painel.\n * O objeto de configuração deve conter o texto e a cor do badge.\n */\n @Input()\n public badgeConfig?: { text: string; color: BadgeColors };\n\n /**\n * @description Lista de botões de ação exibidos no cabeçalho do painel,\n * à direita do título. Cada item define ícone, tooltip e callback de clique.\n */\n @Input()\n public buttons?: AccordionButtonSettings[];\n\n /**\n * @description Desabilita a interação do usuário com o painel, impedindo abertura e fechamento.\n *\n * @default false\n */\n @Input()\n public disabled = false;\n\n /**\n * @description `FormControl` vinculado a um switch exibido no cabeçalho do painel.\n * Permite habilitar/desabilitar o conteúdo do painel via toggle.\n */\n @Input()\n public switchControl?: UntypedFormControl;\n\n /**\n * @description Mensagem de validação exibida abaixo do cabeçalho, acompanhada de um ícone.\n * Útil para indicar erros ou alertas relacionados ao conteúdo do painel.\n */\n @Input()\n public validationMessage?: string;\n\n /**\n * @description Mantém o conteúdo do painel no DOM mesmo quando fechado (modo cache).\n * Útil para preservar o estado de componentes internos ao reabrir o painel.\n *\n * @default false\n */\n @Input()\n public cache = false;\n\n /**\n * @description Classe do ícone exibido ao lado da mensagem de validação.\n *\n * @default 'fas fa-exclamation-circle'\n */\n @Input() validationMessageIcon = 'fas fa-exclamation-circle';\n\n /**\n * @description Cor do ícone da mensagem de validação.\n *\n * @default 'Red'\n */\n @Input() validationMessageIconColor: ValidationMessageIconColor = 'Red';\n\n /**\n * @description Emitido quando o painel é aberto pelo usuário.\n */\n @Output()\n public panelOpened = new EventEmitter<void>();\n\n /**\n * @description Emitido quando o painel é fechado pelo usuário.\n */\n @Output()\n public panelClosed = new EventEmitter<void>();\n\n public isAnimating = false;\n public isContentAnimationDisabled = true;\n\n private _isOpen = false;\n\n public get isOpen() {\n return this._isOpen;\n }\n\n public set isOpen(isOpen: boolean) {\n this._isOpen = isOpen;\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if ('disabled' in changes && this.switchControl) {\n if (changes['disabled'].currentValue) {\n this.switchControl.disable({ emitEvent: false });\n } else {\n this.switchControl.enable({ emitEvent: false });\n }\n }\n\n if ('switch' in changes && 'switchControl' in changes) {\n throw new Error(\"You can't set switch and switchControl together.\");\n }\n }\n\n public ngAfterViewInit(): void {\n // to executed at a safe time prior to control returning to the browser's event loop\n queueMicrotask(() => {\n this.isContentAnimationDisabled = false;\n });\n }\n\n public onIconButtonsClick(event: Event, callback: VoidFunction) {\n if (this.disabled) {\n return;\n }\n\n event.stopPropagation();\n callback();\n }\n\n public onTabClick() {\n if (this.disabled || this.isAnimating) {\n return;\n }\n this.isOpen = !this.isOpen;\n this._emitPanelEvent();\n }\n\n public onContentAnimationStart() {\n this.isAnimating = true;\n }\n\n public onContentAnimationDone() {\n this.isAnimating = false;\n\n this._emitPanelEvent();\n }\n\n private _emitPanelEvent() {\n if (this.isOpen) {\n this.panelOpened.emit();\n } else {\n this.panelClosed.emit();\n }\n }\n}\n\n","<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","import {\n AfterContentInit,\n OnChanges,\n Component,\n ContentChildren,\n Input,\n QueryList,\n SimpleChanges,\n OnDestroy,\n} from '@angular/core';\n\nimport { AccordionPanelComponent } from './components/accordion-panel/accordion-panel.component';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * @description Componente de acordeão que gerencia a abertura e o fechamento de painéis\n * {@link AccordionPanelComponent}. Suporta modo de painel único (apenas um aberto por vez)\n * ou modo múltiplo (vários painéis abertos simultaneamente), configurável via input `multiple`.\n *\n * @example\n * ```html\n * <s-accordion [multiple]=\"false\" [activeIndex]=\"0\">\n * <s-accordion-panel header=\"Seção 1\">Conteúdo 1</s-accordion-panel>\n * <s-accordion-panel header=\"Seção 2\">Conteúdo 2</s-accordion-panel>\n * </s-accordion>\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss'],\n})\nexport class AccordionComponent implements AfterContentInit, OnChanges, OnDestroy {\n /**\n * @description Índice (ou lista de índices) do(s) painel(is) que devem iniciar abertos.\n * Aceita um número para painel único ou um array de números para o modo múltiplo.\n */\n @Input()\n public activeIndex?: number | number[];\n\n /**\n * @description Permite que múltiplos painéis estejam abertos ao mesmo tempo.\n * Quando `false`, abrir um painel fecha automaticamente o anterior.\n *\n * @default false\n */\n @Input()\n public multiple = false;\n\n @ContentChildren(AccordionPanelComponent)\n public panelsComponents?: QueryList<AccordionPanelComponent>;\n\n private readonly _unsubscribe$ = new Subject<void>();\n private _panels: AccordionPanelComponent[] = [];\n private _openSubs: Subscription[] = [];\n\n public ngAfterContentInit(): void {\n if (this.panelsComponents) {\n this._panels = this.panelsComponents?.toArray();\n }\n\n this._openSubs = Array.from({ length: this._panels.length });\n\n this._setBehavior(this.multiple);\n this._setupTabs();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['multiple']) {\n this._setBehavior(changes['multiple'].currentValue);\n }\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n private _setupTabs(): void {\n if (this._panels?.length) {\n if (this.activeIndex !== undefined && this.activeIndex !== null) {\n const activeTabs = Array.isArray(this.activeIndex)\n ? this._panels.filter((_, index) => (this.activeIndex as number[]).includes(index))\n : [this._panels[this.activeIndex]];\n\n if (activeTabs.length === 0) {\n throw new Error('activeIndex does not represent any panel.');\n }\n\n for (const activeTab of activeTabs) {\n if (!activeTab.disabled) {\n activeTab.isOpen = true;\n }\n }\n }\n }\n }\n\n private _closeOtherTabs(exception: number) {\n this._panels.forEach((panel, index) => {\n if (index !== exception) {\n panel.isOpen = false;\n }\n });\n }\n\n private _setBehavior(multiple: boolean): void {\n if (multiple) {\n this._enableMultiplePanelBehavior();\n } else {\n this._enableSinglePanelBehavior();\n }\n }\n\n private _enableSinglePanelBehavior() {\n this._panels.forEach((panel, index) => {\n this._openSubs[index] = panel.panelOpened.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._closeOtherTabs(index);\n });\n });\n }\n\n private _enableMultiplePanelBehavior() {\n this._panels.forEach((_, index) => {\n if (this._openSubs[index]) {\n this._openSubs[index].unsubscribe();\n }\n });\n }\n}\n\n","<div class=\"accordion\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { AccordionComponent } from './accordion.component';\nimport { AccordionPanelComponent } from './components/accordion-panel/accordion-panel.component';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { SwitchModule } from '@seniorsistemas/angular-components/switch';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, TooltipModule, SwitchModule, BadgeModule],\n declarations: [AccordionComponent, AccordionPanelComponent],\n exports: [AccordionComponent, AccordionPanelComponent],\n})\nexport class AccordionModule {}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,8 @@ import { EventEmitter, Component, ViewEncapsulation, Input, Output, NgModule } f
|
|
|
5
5
|
import { BigNumber } from 'bignumber.js';
|
|
6
6
|
import * as i2 from '@seniorsistemas/angular-components/tooltip';
|
|
7
7
|
import { TooltipModule } from '@seniorsistemas/angular-components/tooltip';
|
|
8
|
+
import * as i3 from '@seniorsistemas/angular-components/info-sign';
|
|
9
|
+
import { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
12
|
* @description Card de estatística que exibe um valor numérico com ícone,
|
|
@@ -28,6 +30,8 @@ class StatsCardComponent {
|
|
|
28
30
|
id = `s-stats-card-${StatsCardComponent.nextId++}`;
|
|
29
31
|
/** @description Rótulo descritivo da estatística exibida. Campo obrigatório. */
|
|
30
32
|
label;
|
|
33
|
+
/** @description Texto do tooltip exibido ao passar o mouse sobre o ícone de informação ao lado do label do stats card. */
|
|
34
|
+
infoSignTooltip;
|
|
31
35
|
/** @description Exibe borda mesmo quando o card não está em destaque. @default false */
|
|
32
36
|
alwaysWithBorder = false;
|
|
33
37
|
/** @description Ativa a versão visual leve (sem sombra e com fundo claro). @default false */
|
|
@@ -110,16 +114,18 @@ class StatsCardComponent {
|
|
|
110
114
|
}, this._STEP_DURATION_MS);
|
|
111
115
|
}
|
|
112
116
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
113
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: StatsCardComponent, selector: "s-stats-card", inputs: { id: "id", label: "label", alwaysWithBorder: "alwaysWithBorder", lightVersion: "lightVersion", lightMode: "lightMode", iconClass: "iconClass", color: "color", animateNumbers: "animateNumbers", clickable: "clickable", tooltip: "tooltip", value: "value" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"s-stats-card\"\n [ngClass]=\"{\n 's-stats-card--always-border': alwaysWithBorder,\n 's-stats-card--light': lightMode,\n 's-stats-card--color': !lightMode,\n 's-stats-card--light-version': lightVersion,\n 's-stats-card--clickable': clickable,\n }\"\n (click)=\"clickable && clicked.next($event)\"\n>\n <div\n [id]=\"id + '-background'\"\n class=\"s-stats-card-background\"\n [ngStyle]=\"{ 'background-color': (!lightMode && color) || '' }\"\n ></div>\n <div\n [id]=\"id + '-overlay'\"\n class=\"s-stats-card-overlay\"\n ></div>\n\n <div\n [id]=\"id + '-info-container'\"\n class=\"s-stats-card-info-container\"\n >\n <div class=\"s-stats-card-info-inner-container\">\n <div\n [id]=\"id + '-icon-container'\"\n class=\"s-stats-card-icon-container\"\n [ngStyle]=\"{ 'background-color': (lightMode && color) || '' }\"\n >\n <span\n [id]=\"id + '-icon'\"\n [class]=\"iconClass\"\n [ngClass]=\"{ 's-stats-card-icon': true }\"\n [ngStyle]=\"{ color: (!lightMode && color) || '' }\"\n aria-hidden=\"true\"\n ></span>\n </div>\n\n <div\n [id]=\"id + '-text-container'\"\n class=\"s-stats-card-text-container\"\n >\n
|
|
117
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: StatsCardComponent, selector: "s-stats-card", inputs: { id: "id", label: "label", infoSignTooltip: "infoSignTooltip", alwaysWithBorder: "alwaysWithBorder", lightVersion: "lightVersion", lightMode: "lightMode", iconClass: "iconClass", color: "color", animateNumbers: "animateNumbers", clickable: "clickable", tooltip: "tooltip", value: "value" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"s-stats-card\"\n [ngClass]=\"{\n 's-stats-card--always-border': alwaysWithBorder,\n 's-stats-card--light': lightMode,\n 's-stats-card--color': !lightMode,\n 's-stats-card--light-version': lightVersion,\n 's-stats-card--clickable': clickable,\n }\"\n (click)=\"clickable && clicked.next($event)\"\n>\n <div\n [id]=\"id + '-background'\"\n class=\"s-stats-card-background\"\n [ngStyle]=\"{ 'background-color': (!lightMode && color) || '' }\"\n ></div>\n <div\n [id]=\"id + '-overlay'\"\n class=\"s-stats-card-overlay\"\n ></div>\n\n <div\n [id]=\"id + '-info-container'\"\n class=\"s-stats-card-info-container\"\n >\n <div class=\"s-stats-card-info-inner-container\">\n <div\n [id]=\"id + '-icon-container'\"\n class=\"s-stats-card-icon-container\"\n [ngStyle]=\"{ 'background-color': (lightMode && color) || '' }\"\n >\n <span\n [id]=\"id + '-icon'\"\n [class]=\"iconClass\"\n [ngClass]=\"{ 's-stats-card-icon': true }\"\n [ngStyle]=\"{ color: (!lightMode && color) || '' }\"\n aria-hidden=\"true\"\n ></span>\n </div>\n\n <div\n [id]=\"id + '-text-container'\"\n class=\"s-stats-card-text-container\"\n >\n @if (infoSignTooltip) {\n <div *sInfoSign=\"infoSignTooltip\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n }\n <span\n [id]=\"id + '-value'\"\n class=\"s-stats-card-value\"\n [sTooltip]=\"displayValue\"\n >\n {{ displayValue }}\n </span>\n </div>\n </div>\n <div class=\"s-stats-card-content-inner-container\">\n <div\n #content\n class=\"s-stats-card-content-container\"\n >\n <ng-content></ng-content>\n </div>\n @if (content.children.length) {\n <div class=\"s-stats-card-content-separator\"></div>\n }\n </div>\n @if (tooltip) {\n <span\n class=\"s-status-card-tooltip\"\n [sTooltip]=\"tooltip\"\n >\n <i class=\"fa fa-info-circle s-status-card-tooltip-icon\"></i>\n </span>\n }\n </div>\n</div>\n\n<ng-template #labelTemplate>\n <h4\n [id]=\"id + '-label'\"\n class=\"s-stats-card-label\"\n [sTooltip]=\"label\"\n >\n {{ label }}\n </h4>\n</ng-template>\n\n", styles: ["s-stats-card{display:block;height:auto;position:relative}s-stats-card .s-stats-card{border:1px solid transparent;min-width:120px;overflow:hidden;position:relative}s-stats-card .s-stats-card .s-stats-card-overlay,s-stats-card .s-stats-card .s-stats-card-background{height:calc(100% - 2px);left:1px;position:absolute;top:1px;width:calc(100% - 2px)}s-stats-card .s-stats-card .s-stats-card-background{background-color:#fff}s-stats-card .s-stats-card .s-stats-card-overlay{background-color:#000;opacity:0;transition:opacity .2s ease-out}s-stats-card .s-stats-card .s-stats-card-info-container{overflow:auto;padding:15px;position:relative}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container{overflow:hidden;position:relative}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-icon-container{float:left;font-size:24px;height:50px;line-height:50px;text-align:center;transition:width .2s ease-out;width:50px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container{align-items:flex-start;color:#fff;display:flex;flex-direction:column;float:left;height:50px;justify-content:center;max-width:calc(100% - 65px);padding-left:15px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-label{font-weight:400;width:100%}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-value{display:inline-block;font-size:20px;font-weight:700;width:100%}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-label,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-content-inner-container{display:flex;flex-direction:column}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-content-inner-container .s-stats-card-content-separator{border-top:1px solid #ccc;margin:15px 0;order:1}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-content-inner-container .s-stats-card-content-container{order:2}s-stats-card .s-stats-card .s-stats-card-info-container .s-status-card-tooltip{font-size:1rem;line-height:0;margin:.3rem;position:absolute;right:0;top:0}s-stats-card .s-stats-card .s-stats-card-info-container .s-status-card-tooltip .s-status-card-tooltip-icon{color:#fff}s-stats-card .s-stats-card.s-stats-card--color .s-stats-card-icon-container{background-color:#fff}s-stats-card .s-stats-card.s-stats-card--light *{color:#333}s-stats-card .s-stats-card.s-stats-card--light *.s-stats-card-icon{color:#fff}s-stats-card .s-stats-card.s-stats-card--light *.s-stats-card-label{color:#999}s-stats-card .s-stats-card.s-stats-card--light * .s-status-card-tooltip .s-status-card-tooltip-icon{color:#999}s-stats-card .s-stats-card.s-stats-card--light-version .s-stats-card-info-inner-container .s-stats-card-icon-container{height:100%;left:0;position:absolute;right:0;width:10px}s-stats-card .s-stats-card.s-stats-card--light-version .s-stats-card-info-inner-container .s-stats-card-icon-container .s-stats-card-icon{display:none}s-stats-card .s-stats-card.s-stats-card--light-version .s-stats-card-info-inner-container .s-stats-card-text-container{height:auto;max-width:calc(100% - 25px);padding-left:25px}s-stats-card .s-stats-card.s-stats-card--clickable{cursor:pointer}s-stats-card .s-stats-card.s-stats-card--clickable:hover .s-stats-card-overlay{opacity:.2}s-stats-card .s-stats-card.s-stats-card--clickable.s-stats-card--light:hover .s-stats-card-overlay{opacity:.08}s-stats-card .s-stats-card.s-stats-card--light{border-color:#ccc}p-panel .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border),s-panel .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border),.ui-dialog-content .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border),.s-sidebar-content .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border){border-color:transparent}@media (max-width: 767px){s-stats-card .s-stats-card{height:auto}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-icon-container{height:100%;left:0;position:absolute;right:0;width:10px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-icon-container .s-stats-card-icon{display:none}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container{height:auto;max-width:calc(100% - 25px);padding-left:25px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-label,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-value{overflow:visible;white-space:normal;word-break:break-all}}\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: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "directive", type: i3.InfoSignDirective, selector: "[sInfoSign]", inputs: ["sInfoSign", "sInfoSignDisplayTime", "sInfoSignFocusedInputRef", "sInfoSignUseFocusedInputRef"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
114
118
|
}
|
|
115
119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardComponent, decorators: [{
|
|
116
120
|
type: Component,
|
|
117
|
-
args: [{ selector: 's-stats-card', encapsulation: ViewEncapsulation.None, template: "<div\n [id]=\"id\"\n class=\"s-stats-card\"\n [ngClass]=\"{\n 's-stats-card--always-border': alwaysWithBorder,\n 's-stats-card--light': lightMode,\n 's-stats-card--color': !lightMode,\n 's-stats-card--light-version': lightVersion,\n 's-stats-card--clickable': clickable,\n }\"\n (click)=\"clickable && clicked.next($event)\"\n>\n <div\n [id]=\"id + '-background'\"\n class=\"s-stats-card-background\"\n [ngStyle]=\"{ 'background-color': (!lightMode && color) || '' }\"\n ></div>\n <div\n [id]=\"id + '-overlay'\"\n class=\"s-stats-card-overlay\"\n ></div>\n\n <div\n [id]=\"id + '-info-container'\"\n class=\"s-stats-card-info-container\"\n >\n <div class=\"s-stats-card-info-inner-container\">\n <div\n [id]=\"id + '-icon-container'\"\n class=\"s-stats-card-icon-container\"\n [ngStyle]=\"{ 'background-color': (lightMode && color) || '' }\"\n >\n <span\n [id]=\"id + '-icon'\"\n [class]=\"iconClass\"\n [ngClass]=\"{ 's-stats-card-icon': true }\"\n [ngStyle]=\"{ color: (!lightMode && color) || '' }\"\n aria-hidden=\"true\"\n ></span>\n </div>\n\n <div\n [id]=\"id + '-text-container'\"\n class=\"s-stats-card-text-container\"\n >\n
|
|
121
|
+
args: [{ selector: 's-stats-card', encapsulation: ViewEncapsulation.None, template: "<div\n [id]=\"id\"\n class=\"s-stats-card\"\n [ngClass]=\"{\n 's-stats-card--always-border': alwaysWithBorder,\n 's-stats-card--light': lightMode,\n 's-stats-card--color': !lightMode,\n 's-stats-card--light-version': lightVersion,\n 's-stats-card--clickable': clickable,\n }\"\n (click)=\"clickable && clicked.next($event)\"\n>\n <div\n [id]=\"id + '-background'\"\n class=\"s-stats-card-background\"\n [ngStyle]=\"{ 'background-color': (!lightMode && color) || '' }\"\n ></div>\n <div\n [id]=\"id + '-overlay'\"\n class=\"s-stats-card-overlay\"\n ></div>\n\n <div\n [id]=\"id + '-info-container'\"\n class=\"s-stats-card-info-container\"\n >\n <div class=\"s-stats-card-info-inner-container\">\n <div\n [id]=\"id + '-icon-container'\"\n class=\"s-stats-card-icon-container\"\n [ngStyle]=\"{ 'background-color': (lightMode && color) || '' }\"\n >\n <span\n [id]=\"id + '-icon'\"\n [class]=\"iconClass\"\n [ngClass]=\"{ 's-stats-card-icon': true }\"\n [ngStyle]=\"{ color: (!lightMode && color) || '' }\"\n aria-hidden=\"true\"\n ></span>\n </div>\n\n <div\n [id]=\"id + '-text-container'\"\n class=\"s-stats-card-text-container\"\n >\n @if (infoSignTooltip) {\n <div *sInfoSign=\"infoSignTooltip\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n }\n <span\n [id]=\"id + '-value'\"\n class=\"s-stats-card-value\"\n [sTooltip]=\"displayValue\"\n >\n {{ displayValue }}\n </span>\n </div>\n </div>\n <div class=\"s-stats-card-content-inner-container\">\n <div\n #content\n class=\"s-stats-card-content-container\"\n >\n <ng-content></ng-content>\n </div>\n @if (content.children.length) {\n <div class=\"s-stats-card-content-separator\"></div>\n }\n </div>\n @if (tooltip) {\n <span\n class=\"s-status-card-tooltip\"\n [sTooltip]=\"tooltip\"\n >\n <i class=\"fa fa-info-circle s-status-card-tooltip-icon\"></i>\n </span>\n }\n </div>\n</div>\n\n<ng-template #labelTemplate>\n <h4\n [id]=\"id + '-label'\"\n class=\"s-stats-card-label\"\n [sTooltip]=\"label\"\n >\n {{ label }}\n </h4>\n</ng-template>\n\n", styles: ["s-stats-card{display:block;height:auto;position:relative}s-stats-card .s-stats-card{border:1px solid transparent;min-width:120px;overflow:hidden;position:relative}s-stats-card .s-stats-card .s-stats-card-overlay,s-stats-card .s-stats-card .s-stats-card-background{height:calc(100% - 2px);left:1px;position:absolute;top:1px;width:calc(100% - 2px)}s-stats-card .s-stats-card .s-stats-card-background{background-color:#fff}s-stats-card .s-stats-card .s-stats-card-overlay{background-color:#000;opacity:0;transition:opacity .2s ease-out}s-stats-card .s-stats-card .s-stats-card-info-container{overflow:auto;padding:15px;position:relative}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container{overflow:hidden;position:relative}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-icon-container{float:left;font-size:24px;height:50px;line-height:50px;text-align:center;transition:width .2s ease-out;width:50px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container{align-items:flex-start;color:#fff;display:flex;flex-direction:column;float:left;height:50px;justify-content:center;max-width:calc(100% - 65px);padding-left:15px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-label{font-weight:400;width:100%}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-value{display:inline-block;font-size:20px;font-weight:700;width:100%}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-label,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-content-inner-container{display:flex;flex-direction:column}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-content-inner-container .s-stats-card-content-separator{border-top:1px solid #ccc;margin:15px 0;order:1}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-content-inner-container .s-stats-card-content-container{order:2}s-stats-card .s-stats-card .s-stats-card-info-container .s-status-card-tooltip{font-size:1rem;line-height:0;margin:.3rem;position:absolute;right:0;top:0}s-stats-card .s-stats-card .s-stats-card-info-container .s-status-card-tooltip .s-status-card-tooltip-icon{color:#fff}s-stats-card .s-stats-card.s-stats-card--color .s-stats-card-icon-container{background-color:#fff}s-stats-card .s-stats-card.s-stats-card--light *{color:#333}s-stats-card .s-stats-card.s-stats-card--light *.s-stats-card-icon{color:#fff}s-stats-card .s-stats-card.s-stats-card--light *.s-stats-card-label{color:#999}s-stats-card .s-stats-card.s-stats-card--light * .s-status-card-tooltip .s-status-card-tooltip-icon{color:#999}s-stats-card .s-stats-card.s-stats-card--light-version .s-stats-card-info-inner-container .s-stats-card-icon-container{height:100%;left:0;position:absolute;right:0;width:10px}s-stats-card .s-stats-card.s-stats-card--light-version .s-stats-card-info-inner-container .s-stats-card-icon-container .s-stats-card-icon{display:none}s-stats-card .s-stats-card.s-stats-card--light-version .s-stats-card-info-inner-container .s-stats-card-text-container{height:auto;max-width:calc(100% - 25px);padding-left:25px}s-stats-card .s-stats-card.s-stats-card--clickable{cursor:pointer}s-stats-card .s-stats-card.s-stats-card--clickable:hover .s-stats-card-overlay{opacity:.2}s-stats-card .s-stats-card.s-stats-card--clickable.s-stats-card--light:hover .s-stats-card-overlay{opacity:.08}s-stats-card .s-stats-card.s-stats-card--light{border-color:#ccc}p-panel .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border),s-panel .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border),.ui-dialog-content .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border),.s-sidebar-content .s-stats-card.s-stats-card--light:not(.s-stats-card--always-border){border-color:transparent}@media (max-width: 767px){s-stats-card .s-stats-card{height:auto}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-icon-container{height:100%;left:0;position:absolute;right:0;width:10px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-icon-container .s-stats-card-icon{display:none}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container{height:auto;max-width:calc(100% - 25px);padding-left:25px}s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-label,s-stats-card .s-stats-card .s-stats-card-info-container .s-stats-card-info-inner-container .s-stats-card-text-container .s-stats-card-value{overflow:visible;white-space:normal;word-break:break-all}}\n"] }]
|
|
118
122
|
}], propDecorators: { id: [{
|
|
119
123
|
type: Input
|
|
120
124
|
}], label: [{
|
|
121
125
|
type: Input,
|
|
122
126
|
args: [{ required: true }]
|
|
127
|
+
}], infoSignTooltip: [{
|
|
128
|
+
type: Input
|
|
123
129
|
}], alwaysWithBorder: [{
|
|
124
130
|
type: Input
|
|
125
131
|
}], lightVersion: [{
|
|
@@ -144,13 +150,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
144
150
|
|
|
145
151
|
class StatsCardModule {
|
|
146
152
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
147
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: StatsCardModule, declarations: [StatsCardComponent], imports: [CommonModule, TooltipModule], exports: [StatsCardComponent] });
|
|
148
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardModule, imports: [CommonModule, TooltipModule] });
|
|
153
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: StatsCardModule, declarations: [StatsCardComponent], imports: [CommonModule, TooltipModule, InfoSignModule], exports: [StatsCardComponent] });
|
|
154
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardModule, imports: [CommonModule, TooltipModule, InfoSignModule] });
|
|
149
155
|
}
|
|
150
156
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatsCardModule, decorators: [{
|
|
151
157
|
type: NgModule,
|
|
152
158
|
args: [{
|
|
153
|
-
imports: [CommonModule, TooltipModule],
|
|
159
|
+
imports: [CommonModule, TooltipModule, InfoSignModule],
|
|
154
160
|
declarations: [StatsCardComponent],
|
|
155
161
|
exports: [StatsCardComponent],
|
|
156
162
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-stats-card.mjs","sources":["../../projects/angular-components/stats-card/src/lib/stats-card/stats-card.component.ts","../../projects/angular-components/stats-card/src/lib/stats-card/stats-card.component.html","../../projects/angular-components/stats-card/src/lib/stats-card/stats-card.module.ts","../../projects/angular-components/stats-card/src/seniorsistemas-angular-components-stats-card.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\n\nimport { BigNumber } from 'bignumber.js';\n\n/**\n * @description Card de estatística que exibe um valor numérico com ícone,\n * rótulo e animação de contagem. Suporta diferentes estilos visuais\n * (borda, versão leve) e pode emitir evento ao ser clicado.\n *\n * @example\n * ```html\n * <s-stats-card\n * label=\"Vendas\"\n * [value]=\"'1.234'\"\n * iconClass=\"fas fa-shopping-cart\"\n * color=\"#3399ff\" />\n * ```\n *\n * @category Summary\n */\n@Component({\n selector: 's-stats-card',\n templateUrl: './stats-card.component.html',\n styleUrls: ['./stats-card.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class StatsCardComponent {\n public static nextId = 0;\n\n /** @description Identificador único do card no DOM. Gerado automaticamente se não informado. */\n @Input()\n public id = `s-stats-card-${StatsCardComponent.nextId++}`;\n\n /** @description Rótulo descritivo da estatística exibida. Campo obrigatório. */\n @Input({ required: true })\n public label!: string;\n\n /** @description Exibe borda mesmo quando o card não está em destaque. @default false */\n @Input()\n public alwaysWithBorder = false;\n\n /** @description Ativa a versão visual leve (sem sombra e com fundo claro). @default false */\n @Input()\n public lightVersion = false;\n\n /** @description Ativa o modo de cores claras para o card. @default true */\n @Input()\n public lightMode = true;\n\n /** @description Classe do ícone exibido no card. @default 'fa fa-bar-chart' */\n @Input()\n public iconClass = 'fa fa-bar-chart';\n\n /** @description Cor de destaque do card em formato CSS. @default '#339966' */\n @Input()\n public color = '#339966';\n\n /** @description Habilita a animação de contagem ao atualizar o valor. @default true */\n @Input()\n public animateNumbers = true;\n\n /** @description Habilita o cursor de ponteiro e o evento de clique. @default false */\n @Input()\n public clickable = false;\n\n /** @description Texto do tooltip exibido ao passar o mouse sobre o card. @default '' */\n @Input()\n public tooltip = '';\n\n /** @description Emitido quando o usuário clica no card (requer `clickable = true`). */\n @Output()\n public clicked = new EventEmitter<MouseEvent>();\n\n public displayValue?: string;\n\n private _ANIMATION_DURATION_MS = 200;\n private _STEP_DURATION_MS = 20;\n private _previousValue = '0';\n private _intervalId: any;\n private _value = '0';\n\n public get value() {\n return this._value;\n }\n\n /** @description Valor numérico exibido no card. Quando `animateNumbers` está ativo, a contagem é animada. */\n @Input()\n public set value(value: string) {\n this._previousValue = this._value;\n this._value = String(value);\n if (this.animateNumbers) this._updateDisplayValue();\n else this.displayValue = this.value;\n }\n\n public replaceNumericPositions(value: string, newValue?: BigNumber) {\n const rawValue = value.replace(/[^\\d]/g, '');\n const newValueString = newValue ? newValue.toString() : '';\n const formattedNewValue = newValueString.toString().replace(/\\D/g, '').padStart(rawValue.length, '0');\n let newValueIndex = 0;\n\n return value\n .split('')\n .map((char) => {\n const number = Number(char);\n if (number || char === '0') return formattedNewValue[newValueIndex++];\n return char;\n })\n .join('');\n }\n\n private _updateDisplayValue() {\n const animationDuration = new BigNumber(this._ANIMATION_DURATION_MS);\n const stepDuration = new BigNumber(this._STEP_DURATION_MS);\n const animationCount = animationDuration.dividedBy(stepDuration);\n\n const previousRawValue = new BigNumber(this._previousValue.replace(/\\D/g, ''));\n const rawValue = new BigNumber(this.value.replace(/\\D/g, ''));\n\n const incrementValue = rawValue.minus(previousRawValue).absoluteValue().dividedBy(animationCount);\n const incremental = previousRawValue.isLessThan(rawValue);\n\n clearInterval(this._intervalId);\n\n this.displayValue = this.replaceNumericPositions(this.value);\n\n let counter = previousRawValue;\n\n this._intervalId = setInterval(() => {\n if (incremental && counter.isLessThan(rawValue)) {\n if (this.displayValue) {\n this.displayValue = this.replaceNumericPositions(this.displayValue, counter);\n }\n counter = counter.plus(incrementValue);\n } else if (!incremental && counter.isGreaterThan(rawValue)) {\n if (this.displayValue) {\n this.displayValue = this.replaceNumericPositions(this.displayValue, counter);\n }\n counter = counter.minus(incrementValue);\n } else {\n this.displayValue = this.value;\n\n clearInterval(this._intervalId);\n }\n }, this._STEP_DURATION_MS);\n }\n}\n\n","<div\n [id]=\"id\"\n class=\"s-stats-card\"\n [ngClass]=\"{\n 's-stats-card--always-border': alwaysWithBorder,\n 's-stats-card--light': lightMode,\n 's-stats-card--color': !lightMode,\n 's-stats-card--light-version': lightVersion,\n 's-stats-card--clickable': clickable,\n }\"\n (click)=\"clickable && clicked.next($event)\"\n>\n <div\n [id]=\"id + '-background'\"\n class=\"s-stats-card-background\"\n [ngStyle]=\"{ 'background-color': (!lightMode && color) || '' }\"\n ></div>\n <div\n [id]=\"id + '-overlay'\"\n class=\"s-stats-card-overlay\"\n ></div>\n\n <div\n [id]=\"id + '-info-container'\"\n class=\"s-stats-card-info-container\"\n >\n <div class=\"s-stats-card-info-inner-container\">\n <div\n [id]=\"id + '-icon-container'\"\n class=\"s-stats-card-icon-container\"\n [ngStyle]=\"{ 'background-color': (lightMode && color) || '' }\"\n >\n <span\n [id]=\"id + '-icon'\"\n [class]=\"iconClass\"\n [ngClass]=\"{ 's-stats-card-icon': true }\"\n [ngStyle]=\"{ color: (!lightMode && color) || '' }\"\n aria-hidden=\"true\"\n ></span>\n </div>\n\n <div\n [id]=\"id + '-text-container'\"\n class=\"s-stats-card-text-container\"\n >\n <h4\n [id]=\"id + '-label'\"\n class=\"s-stats-card-label\"\n [sTooltip]=\"label\"\n >\n {{ label }}\n </h4>\n <span\n [id]=\"id + '-value'\"\n class=\"s-stats-card-value\"\n [sTooltip]=\"displayValue\"\n >\n {{ displayValue }}\n </span>\n </div>\n </div>\n <div class=\"s-stats-card-content-inner-container\">\n <div\n #content\n class=\"s-stats-card-content-container\"\n >\n <ng-content></ng-content>\n </div>\n @if (content.children.length) {\n <div class=\"s-stats-card-content-separator\"></div>\n }\n </div>\n @if (tooltip) {\n <span\n class=\"s-status-card-tooltip\"\n [sTooltip]=\"tooltip\"\n >\n <i class=\"fa fa-info-circle s-status-card-tooltip-icon\"></i>\n </span>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { StatsCardComponent } from './stats-card.component';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [StatsCardComponent],\n exports: [StatsCardComponent],\n})\nexport class StatsCardModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-stats-card.mjs","sources":["../../projects/angular-components/stats-card/src/lib/stats-card/stats-card.component.ts","../../projects/angular-components/stats-card/src/lib/stats-card/stats-card.component.html","../../projects/angular-components/stats-card/src/lib/stats-card/stats-card.module.ts","../../projects/angular-components/stats-card/src/seniorsistemas-angular-components-stats-card.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\n\nimport { BigNumber } from 'bignumber.js';\n\n/**\n * @description Card de estatística que exibe um valor numérico com ícone,\n * rótulo e animação de contagem. Suporta diferentes estilos visuais\n * (borda, versão leve) e pode emitir evento ao ser clicado.\n *\n * @example\n * ```html\n * <s-stats-card\n * label=\"Vendas\"\n * [value]=\"'1.234'\"\n * iconClass=\"fas fa-shopping-cart\"\n * color=\"#3399ff\" />\n * ```\n *\n * @category Summary\n */\n@Component({\n selector: 's-stats-card',\n templateUrl: './stats-card.component.html',\n styleUrls: ['./stats-card.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class StatsCardComponent {\n public static nextId = 0;\n\n /** @description Identificador único do card no DOM. Gerado automaticamente se não informado. */\n @Input()\n public id = `s-stats-card-${StatsCardComponent.nextId++}`;\n\n /** @description Rótulo descritivo da estatística exibida. Campo obrigatório. */\n @Input({ required: true })\n public label!: string;\n\n /** @description Texto do tooltip exibido ao passar o mouse sobre o ícone de informação ao lado do label do stats card. */\n @Input()\n public infoSignTooltip?: string;\n\n /** @description Exibe borda mesmo quando o card não está em destaque. @default false */\n @Input()\n public alwaysWithBorder = false;\n\n /** @description Ativa a versão visual leve (sem sombra e com fundo claro). @default false */\n @Input()\n public lightVersion = false;\n\n /** @description Ativa o modo de cores claras para o card. @default true */\n @Input()\n public lightMode = true;\n\n /** @description Classe do ícone exibido no card. @default 'fa fa-bar-chart' */\n @Input()\n public iconClass = 'fa fa-bar-chart';\n\n /** @description Cor de destaque do card em formato CSS. @default '#339966' */\n @Input()\n public color = '#339966';\n\n /** @description Habilita a animação de contagem ao atualizar o valor. @default true */\n @Input()\n public animateNumbers = true;\n\n /** @description Habilita o cursor de ponteiro e o evento de clique. @default false */\n @Input()\n public clickable = false;\n\n /** @description Texto do tooltip exibido ao passar o mouse sobre o card. @default '' */\n @Input()\n public tooltip = '';\n\n /** @description Emitido quando o usuário clica no card (requer `clickable = true`). */\n @Output()\n public clicked = new EventEmitter<MouseEvent>();\n\n public displayValue?: string;\n\n private _ANIMATION_DURATION_MS = 200;\n private _STEP_DURATION_MS = 20;\n private _previousValue = '0';\n private _intervalId: any;\n private _value = '0';\n\n public get value() {\n return this._value;\n }\n\n /** @description Valor numérico exibido no card. Quando `animateNumbers` está ativo, a contagem é animada. */\n @Input()\n public set value(value: string) {\n this._previousValue = this._value;\n this._value = String(value);\n if (this.animateNumbers) this._updateDisplayValue();\n else this.displayValue = this.value;\n }\n\n public replaceNumericPositions(value: string, newValue?: BigNumber) {\n const rawValue = value.replace(/[^\\d]/g, '');\n const newValueString = newValue ? newValue.toString() : '';\n const formattedNewValue = newValueString.toString().replace(/\\D/g, '').padStart(rawValue.length, '0');\n let newValueIndex = 0;\n\n return value\n .split('')\n .map((char) => {\n const number = Number(char);\n if (number || char === '0') return formattedNewValue[newValueIndex++];\n return char;\n })\n .join('');\n }\n\n private _updateDisplayValue() {\n const animationDuration = new BigNumber(this._ANIMATION_DURATION_MS);\n const stepDuration = new BigNumber(this._STEP_DURATION_MS);\n const animationCount = animationDuration.dividedBy(stepDuration);\n\n const previousRawValue = new BigNumber(this._previousValue.replace(/\\D/g, ''));\n const rawValue = new BigNumber(this.value.replace(/\\D/g, ''));\n\n const incrementValue = rawValue.minus(previousRawValue).absoluteValue().dividedBy(animationCount);\n const incremental = previousRawValue.isLessThan(rawValue);\n\n clearInterval(this._intervalId);\n\n this.displayValue = this.replaceNumericPositions(this.value);\n\n let counter = previousRawValue;\n\n this._intervalId = setInterval(() => {\n if (incremental && counter.isLessThan(rawValue)) {\n if (this.displayValue) {\n this.displayValue = this.replaceNumericPositions(this.displayValue, counter);\n }\n counter = counter.plus(incrementValue);\n } else if (!incremental && counter.isGreaterThan(rawValue)) {\n if (this.displayValue) {\n this.displayValue = this.replaceNumericPositions(this.displayValue, counter);\n }\n counter = counter.minus(incrementValue);\n } else {\n this.displayValue = this.value;\n\n clearInterval(this._intervalId);\n }\n }, this._STEP_DURATION_MS);\n }\n}\n\n","<div\n [id]=\"id\"\n class=\"s-stats-card\"\n [ngClass]=\"{\n 's-stats-card--always-border': alwaysWithBorder,\n 's-stats-card--light': lightMode,\n 's-stats-card--color': !lightMode,\n 's-stats-card--light-version': lightVersion,\n 's-stats-card--clickable': clickable,\n }\"\n (click)=\"clickable && clicked.next($event)\"\n>\n <div\n [id]=\"id + '-background'\"\n class=\"s-stats-card-background\"\n [ngStyle]=\"{ 'background-color': (!lightMode && color) || '' }\"\n ></div>\n <div\n [id]=\"id + '-overlay'\"\n class=\"s-stats-card-overlay\"\n ></div>\n\n <div\n [id]=\"id + '-info-container'\"\n class=\"s-stats-card-info-container\"\n >\n <div class=\"s-stats-card-info-inner-container\">\n <div\n [id]=\"id + '-icon-container'\"\n class=\"s-stats-card-icon-container\"\n [ngStyle]=\"{ 'background-color': (lightMode && color) || '' }\"\n >\n <span\n [id]=\"id + '-icon'\"\n [class]=\"iconClass\"\n [ngClass]=\"{ 's-stats-card-icon': true }\"\n [ngStyle]=\"{ color: (!lightMode && color) || '' }\"\n aria-hidden=\"true\"\n ></span>\n </div>\n\n <div\n [id]=\"id + '-text-container'\"\n class=\"s-stats-card-text-container\"\n >\n @if (infoSignTooltip) {\n <div *sInfoSign=\"infoSignTooltip\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n }\n <span\n [id]=\"id + '-value'\"\n class=\"s-stats-card-value\"\n [sTooltip]=\"displayValue\"\n >\n {{ displayValue }}\n </span>\n </div>\n </div>\n <div class=\"s-stats-card-content-inner-container\">\n <div\n #content\n class=\"s-stats-card-content-container\"\n >\n <ng-content></ng-content>\n </div>\n @if (content.children.length) {\n <div class=\"s-stats-card-content-separator\"></div>\n }\n </div>\n @if (tooltip) {\n <span\n class=\"s-status-card-tooltip\"\n [sTooltip]=\"tooltip\"\n >\n <i class=\"fa fa-info-circle s-status-card-tooltip-icon\"></i>\n </span>\n }\n </div>\n</div>\n\n<ng-template #labelTemplate>\n <h4\n [id]=\"id + '-label'\"\n class=\"s-stats-card-label\"\n [sTooltip]=\"label\"\n >\n {{ label }}\n </h4>\n</ng-template>\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { StatsCardComponent } from './stats-card.component';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\n\n@NgModule({\n imports: [CommonModule, TooltipModule, InfoSignModule],\n declarations: [StatsCardComponent],\n exports: [StatsCardComponent],\n})\nexport class StatsCardModule {}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seniorsistemas/angular-components",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.5.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/cdk": "^18.2.14",
|
|
6
6
|
"@angular/common": "^18.2.0",
|
|
@@ -60,18 +60,18 @@
|
|
|
60
60
|
"esm": "./esm2022/badge/seniorsistemas-angular-components-badge.mjs",
|
|
61
61
|
"default": "./fesm2022/seniorsistemas-angular-components-badge.mjs"
|
|
62
62
|
},
|
|
63
|
-
"./bignumber-input": {
|
|
64
|
-
"types": "./bignumber-input/index.d.ts",
|
|
65
|
-
"esm2022": "./esm2022/bignumber-input/seniorsistemas-angular-components-bignumber-input.mjs",
|
|
66
|
-
"esm": "./esm2022/bignumber-input/seniorsistemas-angular-components-bignumber-input.mjs",
|
|
67
|
-
"default": "./fesm2022/seniorsistemas-angular-components-bignumber-input.mjs"
|
|
68
|
-
},
|
|
69
63
|
"./breadcrumb": {
|
|
70
64
|
"types": "./breadcrumb/index.d.ts",
|
|
71
65
|
"esm2022": "./esm2022/breadcrumb/seniorsistemas-angular-components-breadcrumb.mjs",
|
|
72
66
|
"esm": "./esm2022/breadcrumb/seniorsistemas-angular-components-breadcrumb.mjs",
|
|
73
67
|
"default": "./fesm2022/seniorsistemas-angular-components-breadcrumb.mjs"
|
|
74
68
|
},
|
|
69
|
+
"./bignumber-input": {
|
|
70
|
+
"types": "./bignumber-input/index.d.ts",
|
|
71
|
+
"esm2022": "./esm2022/bignumber-input/seniorsistemas-angular-components-bignumber-input.mjs",
|
|
72
|
+
"esm": "./esm2022/bignumber-input/seniorsistemas-angular-components-bignumber-input.mjs",
|
|
73
|
+
"default": "./fesm2022/seniorsistemas-angular-components-bignumber-input.mjs"
|
|
74
|
+
},
|
|
75
75
|
"./button": {
|
|
76
76
|
"types": "./button/index.d.ts",
|
|
77
77
|
"esm2022": "./esm2022/button/seniorsistemas-angular-components-button.mjs",
|
|
@@ -22,6 +22,8 @@ export declare class StatsCardComponent {
|
|
|
22
22
|
id: string;
|
|
23
23
|
/** @description Rótulo descritivo da estatística exibida. Campo obrigatório. */
|
|
24
24
|
label: string;
|
|
25
|
+
/** @description Texto do tooltip exibido ao passar o mouse sobre o ícone de informação ao lado do label do stats card. */
|
|
26
|
+
infoSignTooltip?: string;
|
|
25
27
|
/** @description Exibe borda mesmo quando o card não está em destaque. @default false */
|
|
26
28
|
alwaysWithBorder: boolean;
|
|
27
29
|
/** @description Ativa a versão visual leve (sem sombra e com fundo claro). @default false */
|
|
@@ -52,5 +54,5 @@ export declare class StatsCardComponent {
|
|
|
52
54
|
replaceNumericPositions(value: string, newValue?: BigNumber): string;
|
|
53
55
|
private _updateDisplayValue;
|
|
54
56
|
static ɵfac: i0.ɵɵFactoryDeclaration<StatsCardComponent, never>;
|
|
55
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StatsCardComponent, "s-stats-card", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": true; }; "alwaysWithBorder": { "alias": "alwaysWithBorder"; "required": false; }; "lightVersion": { "alias": "lightVersion"; "required": false; }; "lightMode": { "alias": "lightMode"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; "color": { "alias": "color"; "required": false; }; "animateNumbers": { "alias": "animateNumbers"; "required": false; }; "clickable": { "alias": "clickable"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], false, never>;
|
|
57
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StatsCardComponent, "s-stats-card", never, { "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": true; }; "infoSignTooltip": { "alias": "infoSignTooltip"; "required": false; }; "alwaysWithBorder": { "alias": "alwaysWithBorder"; "required": false; }; "lightVersion": { "alias": "lightVersion"; "required": false; }; "lightMode": { "alias": "lightMode"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; "color": { "alias": "color"; "required": false; }; "animateNumbers": { "alias": "animateNumbers"; "required": false; }; "clickable": { "alias": "clickable"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], false, never>;
|
|
56
58
|
}
|
|
@@ -2,8 +2,9 @@ import * as i0 from "@angular/core";
|
|
|
2
2
|
import * as i1 from "./stats-card.component";
|
|
3
3
|
import * as i2 from "@angular/common";
|
|
4
4
|
import * as i3 from "@seniorsistemas/angular-components/tooltip";
|
|
5
|
+
import * as i4 from "@seniorsistemas/angular-components/info-sign";
|
|
5
6
|
export declare class StatsCardModule {
|
|
6
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<StatsCardModule, never>;
|
|
7
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<StatsCardModule, [typeof i1.StatsCardComponent], [typeof i2.CommonModule, typeof i3.TooltipModule], [typeof i1.StatsCardComponent]>;
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<StatsCardModule, [typeof i1.StatsCardComponent], [typeof i2.CommonModule, typeof i3.TooltipModule, typeof i4.InfoSignModule], [typeof i1.StatsCardComponent]>;
|
|
8
9
|
static ɵinj: i0.ɵɵInjectorDeclaration<StatsCardModule>;
|
|
9
10
|
}
|