ngx-sumax-erp-components 1.5.0 → 1.6.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/esm2022/lib/sumax-dashboard/cards/smx-dash-card-metric-list/smx-dash-card-metric-list.component.mjs +7 -3
- package/esm2022/lib/sumax-dashboard/smx-dash-grid/smx-dash-grid.component.mjs +2 -1
- package/fesm2022/ngx-sumax-erp-components.mjs +7 -2
- package/fesm2022/ngx-sumax-erp-components.mjs.map +1 -1
- package/lib/sumax-dashboard/cards/smx-dash-card-metric-list/smx-dash-card-metric-list.component.d.ts +3 -1
- package/package.json +1 -1
|
@@ -12,6 +12,8 @@ export class SmxDashCardMetricListComponent {
|
|
|
12
12
|
this.titleStyle = {};
|
|
13
13
|
/** Lista de métricas a mostrar. Cada item tiene `label`, `value` y opcionalmente `route`. @default [] */
|
|
14
14
|
this.items = [];
|
|
15
|
+
/** Activa el scroll vertical cuando la lista excede el alto disponible. @default false */
|
|
16
|
+
this.enableScroll = false;
|
|
15
17
|
/** Habilita la navegación al hacer clic en un item (requiere que el item tenga `route`). @default false */
|
|
16
18
|
this.enableNavigation = false;
|
|
17
19
|
/** Destino de la navegación: `'emit'` dispara el `@Output() navigate`; `'window'` abre en nueva pestaña. @default "emit" */
|
|
@@ -43,11 +45,11 @@ export class SmxDashCardMetricListComponent {
|
|
|
43
45
|
this.navigate.emit({ label: String(it?.label ?? ""), route });
|
|
44
46
|
}
|
|
45
47
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmxDashCardMetricListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmxDashCardMetricListComponent, isStandalone: true, selector: "smx-dash-card-metric-list", inputs: { title: "title", showTitle: "showTitle", titleStyle: "titleStyle", items: "items", enableNavigation: "enableNavigation", navigationTarget: "navigationTarget", labelAlign: "labelAlign", valueAlign: "valueAlign", titleHAlign: "titleHAlign", contentVAlign: "contentVAlign", contentHAlign: "contentHAlign", formatters: "formatters", i18n: "i18n" }, outputs: { navigate: "navigate" }, ngImport: i0, template: "<div class=\"smx-card-list\">\n <div *ngIf=\"showTitle && title\" class=\"smx-card-inner-title\" [ngStyle]=\"titleStyle\" [style.text-align]=\"titleHAlign\">{{ title }}</div>\n <div\n class=\"smx-list-content\"\n [style.justify-content]=\"contentVAlign === 'top' ? 'flex-start' : contentVAlign === 'bottom' ? 'flex-end' : 'center'\"\n [style.align-items]=\"contentHAlign === 'left' ? 'flex-start' : contentHAlign === 'right' ? 'flex-end' : 'center'\">\n <ul class=\"metric-list\">\n <li class=\"metric-item\" *ngFor=\"let it of items\">\n <ng-container *ngIf=\"enableNavigation && it.route; else mlLabelSpan\">\n <a\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [href]=\"it.route\"\n target=\"_blank\"\n rel=\"noopener\"\n [attr.data-skip-click]=\"'true'\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"$event.stopPropagation()\">\n {{ it.label }}\n </a>\n </ng-container>\n <ng-template #mlLabelSpan>\n <span\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup)=\"onKeyLabel()\"\n (click)=\"onItemClick(it, $event)\"\n (keyup.enter)=\"onItemClick(it, $event)\">\n {{ it.label }}\n </span>\n </ng-template>\n <span\n class=\"value\"\n [style.text-align]=\"valueAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup.enter)=\"onItemClick(it, $event)\"\n (click)=\"onItemClick(it, $event)\">\n {{ it.value }}\n </span>\n </li>\n </ul>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-height:0}.smx-card-inner-title{flex-shrink:0;font-size:13px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.04em;color:#333;margin-bottom:8px;padding:0 4px}.smx-card-list{display:flex;flex-direction:column;flex:1;min-height:0;width:min(100%,680px);margin:0 auto;box-sizing:border-box}.smx-list-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:0;overflow:hidden;width:100%}.metric-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px;width:100%;margin:0 auto;box-sizing:border-box}.metric-item{display:grid;grid-template-columns:1fr auto;column-gap:78px;align-items:baseline;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid #eee}.metric-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.label{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.value{font-weight:600;text-align:right}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
48
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmxDashCardMetricListComponent, isStandalone: true, selector: "smx-dash-card-metric-list", inputs: { title: "title", showTitle: "showTitle", titleStyle: "titleStyle", items: "items", enableScroll: "enableScroll", enableNavigation: "enableNavigation", navigationTarget: "navigationTarget", labelAlign: "labelAlign", valueAlign: "valueAlign", titleHAlign: "titleHAlign", contentVAlign: "contentVAlign", contentHAlign: "contentHAlign", formatters: "formatters", i18n: "i18n" }, outputs: { navigate: "navigate" }, ngImport: i0, template: "<div class=\"smx-card-list\">\n <div *ngIf=\"showTitle && title\" class=\"smx-card-inner-title\" [ngStyle]=\"titleStyle\" [style.text-align]=\"titleHAlign\">{{ title }}</div>\n <div\n class=\"smx-list-content\"\n [class.smx-scroll]=\"enableScroll\"\n [style.justify-content]=\"\n enableScroll ? 'flex-start' : contentVAlign === 'top' ? 'flex-start' : contentVAlign === 'bottom' ? 'flex-end' : 'center'\n \"\n [style.align-items]=\"contentHAlign === 'left' ? 'flex-start' : contentHAlign === 'right' ? 'flex-end' : 'center'\"\n [style.overflow-y]=\"enableScroll ? 'auto' : 'hidden'\"\n [style.overflow-x]=\"'hidden'\">\n <ul class=\"metric-list\">\n <li class=\"metric-item\" *ngFor=\"let it of items\">\n <ng-container *ngIf=\"enableNavigation && it.route; else mlLabelSpan\">\n <a\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [href]=\"it.route\"\n target=\"_blank\"\n rel=\"noopener\"\n [attr.data-skip-click]=\"'true'\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"$event.stopPropagation()\">\n {{ it.label }}\n </a>\n </ng-container>\n <ng-template #mlLabelSpan>\n <span\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup)=\"onKeyLabel()\"\n (click)=\"onItemClick(it, $event)\"\n (keyup.enter)=\"onItemClick(it, $event)\">\n {{ it.label }}\n </span>\n </ng-template>\n <span\n class=\"value\"\n [style.text-align]=\"valueAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup.enter)=\"onItemClick(it, $event)\"\n (click)=\"onItemClick(it, $event)\">\n {{ it.value }}\n </span>\n </li>\n </ul>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-height:0}.smx-card-inner-title{flex-shrink:0;font-size:13px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.04em;color:#333;margin-bottom:8px;padding:0 4px}.smx-card-list{display:flex;flex-direction:column;flex:1;min-height:0;width:min(100%,680px);margin:0 auto;box-sizing:border-box}.smx-list-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:0;overflow:hidden;width:100%}.smx-list-content.smx-scroll{padding-right:12px;scrollbar-gutter:stable}.metric-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px;width:100%;margin:0 auto;box-sizing:border-box}.metric-item{display:grid;grid-template-columns:1fr auto;column-gap:78px;align-items:baseline;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid #eee}.metric-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.label{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.value{font-weight:600;text-align:right}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
47
49
|
}
|
|
48
50
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmxDashCardMetricListComponent, decorators: [{
|
|
49
51
|
type: Component,
|
|
50
|
-
args: [{ selector: "smx-dash-card-metric-list", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"smx-card-list\">\n <div *ngIf=\"showTitle && title\" class=\"smx-card-inner-title\" [ngStyle]=\"titleStyle\" [style.text-align]=\"titleHAlign\">{{ title }}</div>\n <div\n class=\"smx-list-content\"\n [style.justify-content]=\"contentVAlign === 'top' ? 'flex-start' : contentVAlign === 'bottom' ? 'flex-end' : 'center'\"\n [style.align-items]=\"contentHAlign === 'left' ? 'flex-start' : contentHAlign === 'right' ? 'flex-end' : 'center'\">\n <ul class=\"metric-list\">\n <li class=\"metric-item\" *ngFor=\"let it of items\">\n <ng-container *ngIf=\"enableNavigation && it.route; else mlLabelSpan\">\n <a\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [href]=\"it.route\"\n target=\"_blank\"\n rel=\"noopener\"\n [attr.data-skip-click]=\"'true'\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"$event.stopPropagation()\">\n {{ it.label }}\n </a>\n </ng-container>\n <ng-template #mlLabelSpan>\n <span\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup)=\"onKeyLabel()\"\n (click)=\"onItemClick(it, $event)\"\n (keyup.enter)=\"onItemClick(it, $event)\">\n {{ it.label }}\n </span>\n </ng-template>\n <span\n class=\"value\"\n [style.text-align]=\"valueAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup.enter)=\"onItemClick(it, $event)\"\n (click)=\"onItemClick(it, $event)\">\n {{ it.value }}\n </span>\n </li>\n </ul>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-height:0}.smx-card-inner-title{flex-shrink:0;font-size:13px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.04em;color:#333;margin-bottom:8px;padding:0 4px}.smx-card-list{display:flex;flex-direction:column;flex:1;min-height:0;width:min(100%,680px);margin:0 auto;box-sizing:border-box}.smx-list-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:0;overflow:hidden;width:100%}.metric-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px;width:100%;margin:0 auto;box-sizing:border-box}.metric-item{display:grid;grid-template-columns:1fr auto;column-gap:78px;align-items:baseline;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid #eee}.metric-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.label{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.value{font-weight:600;text-align:right}\n"] }]
|
|
52
|
+
args: [{ selector: "smx-dash-card-metric-list", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"smx-card-list\">\n <div *ngIf=\"showTitle && title\" class=\"smx-card-inner-title\" [ngStyle]=\"titleStyle\" [style.text-align]=\"titleHAlign\">{{ title }}</div>\n <div\n class=\"smx-list-content\"\n [class.smx-scroll]=\"enableScroll\"\n [style.justify-content]=\"\n enableScroll ? 'flex-start' : contentVAlign === 'top' ? 'flex-start' : contentVAlign === 'bottom' ? 'flex-end' : 'center'\n \"\n [style.align-items]=\"contentHAlign === 'left' ? 'flex-start' : contentHAlign === 'right' ? 'flex-end' : 'center'\"\n [style.overflow-y]=\"enableScroll ? 'auto' : 'hidden'\"\n [style.overflow-x]=\"'hidden'\">\n <ul class=\"metric-list\">\n <li class=\"metric-item\" *ngFor=\"let it of items\">\n <ng-container *ngIf=\"enableNavigation && it.route; else mlLabelSpan\">\n <a\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [href]=\"it.route\"\n target=\"_blank\"\n rel=\"noopener\"\n [attr.data-skip-click]=\"'true'\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"$event.stopPropagation()\">\n {{ it.label }}\n </a>\n </ng-container>\n <ng-template #mlLabelSpan>\n <span\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup)=\"onKeyLabel()\"\n (click)=\"onItemClick(it, $event)\"\n (keyup.enter)=\"onItemClick(it, $event)\">\n {{ it.label }}\n </span>\n </ng-template>\n <span\n class=\"value\"\n [style.text-align]=\"valueAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup.enter)=\"onItemClick(it, $event)\"\n (click)=\"onItemClick(it, $event)\">\n {{ it.value }}\n </span>\n </li>\n </ul>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-height:0}.smx-card-inner-title{flex-shrink:0;font-size:13px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.04em;color:#333;margin-bottom:8px;padding:0 4px}.smx-card-list{display:flex;flex-direction:column;flex:1;min-height:0;width:min(100%,680px);margin:0 auto;box-sizing:border-box}.smx-list-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:0;overflow:hidden;width:100%}.smx-list-content.smx-scroll{padding-right:12px;scrollbar-gutter:stable}.metric-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px;width:100%;margin:0 auto;box-sizing:border-box}.metric-item{display:grid;grid-template-columns:1fr auto;column-gap:78px;align-items:baseline;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid #eee}.metric-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.label{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.value{font-weight:600;text-align:right}\n"] }]
|
|
51
53
|
}], propDecorators: { title: [{
|
|
52
54
|
type: Input
|
|
53
55
|
}], showTitle: [{
|
|
@@ -56,6 +58,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
56
58
|
type: Input
|
|
57
59
|
}], items: [{
|
|
58
60
|
type: Input
|
|
61
|
+
}], enableScroll: [{
|
|
62
|
+
type: Input
|
|
59
63
|
}], enableNavigation: [{
|
|
60
64
|
type: Input
|
|
61
65
|
}], navigationTarget: [{
|
|
@@ -77,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
77
81
|
}], navigate: [{
|
|
78
82
|
type: Output
|
|
79
83
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic214LWRhc2gtY2FyZC1tZXRyaWMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL3N1bWF4LWRhc2hib2FyZC9jYXJkcy9zbXgtZGFzaC1jYXJkLW1ldHJpYy1saXN0L3NteC1kYXNoLWNhcmQtbWV0cmljLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9zdW1heC1kYXNoYm9hcmQvY2FyZHMvc214LWRhc2gtY2FyZC1tZXRyaWMtbGlzdC9zbXgtZGFzaC1jYXJkLW1ldHJpYy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFZaEcsTUFBTSxPQUFPLDhCQUE4QjtJQVIzQztRQVNFLHFDQUFxQztRQUM1QixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLHlEQUF5RDtRQUNoRCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQzNCLDhFQUE4RTtRQUNyRSxlQUFVLEdBQTJCLEVBQUUsQ0FBQztRQUNqRCx5R0FBeUc7UUFDaEcsVUFBSyxHQUE4QixFQUFFLENBQUM7UUFDL0MsMkdBQTJHO1FBQ2xHLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUNsQyw0SEFBNEg7UUFDbkgscUJBQWdCLEdBQXNCLE1BQU0sQ0FBQztRQUN0RCwyRUFBMkU7UUFDbEUsZUFBVSxHQUFnQyxNQUFNLENBQUM7UUFDMUQsdUVBQXVFO1FBQzlELGVBQVUsR0FBZ0MsT0FBTyxDQUFDO1FBQzNELHdIQUF3SDtRQUMvRyxnQkFBVyxHQUFnQyxRQUFRLENBQUM7UUFDN0Qsa0hBQWtIO1FBQ3pHLGtCQUFhLEdBQWdDLFFBQVEsQ0FBQztRQUMvRCxvSEFBb0g7UUFDM0csa0JBQWEsR0FBZ0MsUUFBUSxDQUFDO1FBSy9ELDJIQUEySDtRQUNqSCxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQW9DLENBQUM7S0FhM0U7SUFaQyxVQUFVLEtBQVUsQ0FBQztJQUNyQiwrRkFBK0Y7SUFDL0YsV0FBVyxDQUFDLEVBQWMsRUFBRSxHQUFXO1FBQ3JDLEdBQUcsRUFBRSxlQUFlLEVBQUUsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO1lBQUUsT0FBTztRQUM3QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM3QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQzsrR0F4Q1UsOEJBQThCO21HQUE5Qiw4QkFBOEIsMGRDYjNDLHM3REFnREEsMGhDRHhDWSxZQUFZOzs0RkFLWCw4QkFBOEI7a0JBUjFDLFNBQVM7K0JBQ0UsMkJBQTJCLGNBQ3pCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNOzhCQUl0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxudHlwZSBNZXRyaWNJdGVtID0geyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyOyByb3V0ZT86IHN0cmluZyB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic214LWRhc2gtY2FyZC1tZXRyaWMtbGlzdFwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zbXgtZGFzaC1jYXJkLW1ldHJpYy1saXN0LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9zbXgtZGFzaC1jYXJkLW1ldHJpYy1saXN0LmNvbXBvbmVudC5zY3NzXCJdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU214RGFzaENhcmRNZXRyaWNMaXN0Q29tcG9uZW50IHtcbiAgLyoqIFTDrXR1bG8gZGVsIHdpZGdldC4gQGRlZmF1bHQgXCJcIiAqL1xuICBASW5wdXQoKSB0aXRsZSA9IFwiXCI7XG4gIC8qKiBDb250cm9sYSBsYSB2aXNpYmlsaWRhZCBkZWwgdMOtdHVsby4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgQElucHV0KCkgc2hvd1RpdGxlID0gZmFsc2U7XG4gIC8qKiBFc3RpbG9zIENTUyBpbmxpbmUgYWRpY2lvbmFsZXMgcGFyYSBlbCBlbGVtZW50byBkZWwgdMOtdHVsby4gQGRlZmF1bHQge30gKi9cbiAgQElucHV0KCkgdGl0bGVTdHlsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAvKiogTGlzdGEgZGUgbcOpdHJpY2FzIGEgbW9zdHJhci4gQ2FkYSBpdGVtIHRpZW5lIGBsYWJlbGAsIGB2YWx1ZWAgeSBvcGNpb25hbG1lbnRlIGByb3V0ZWAuIEBkZWZhdWx0IFtdICovXG4gIEBJbnB1dCgpIGl0ZW1zOiBSZWFkb25seUFycmF5PE1ldHJpY0l0ZW0+ID0gW107XG4gIC8qKiBIYWJpbGl0YSBsYSBuYXZlZ2FjacOzbiBhbCBoYWNlciBjbGljIGVuIHVuIGl0ZW0gKHJlcXVpZXJlIHF1ZSBlbCBpdGVtIHRlbmdhIGByb3V0ZWApLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBASW5wdXQoKSBlbmFibGVOYXZpZ2F0aW9uID0gZmFsc2U7XG4gIC8qKiBEZXN0aW5vIGRlIGxhIG5hdmVnYWNpw7NuOiBgJ2VtaXQnYCBkaXNwYXJhIGVsIGBAT3V0cHV0KCkgbmF2aWdhdGVgOyBgJ3dpbmRvdydgIGFicmUgZW4gbnVldmEgcGVzdGHDsWEuIEBkZWZhdWx0IFwiZW1pdFwiICovXG4gIEBJbnB1dCgpIG5hdmlnYXRpb25UYXJnZXQ6IFwiZW1pdFwiIHwgXCJ3aW5kb3dcIiA9IFwiZW1pdFwiO1xuICAvKiogQWxpbmVhY2nDs24gZGVsIHRleHRvIGRlIGxhIGV0aXF1ZXRhIGRlIGNhZGEgbcOpdHJpY2EuIEBkZWZhdWx0IFwibGVmdFwiICovXG4gIEBJbnB1dCgpIGxhYmVsQWxpZ246IFwibGVmdFwiIHwgXCJyaWdodFwiIHwgXCJjZW50ZXJcIiA9IFwibGVmdFwiO1xuICAvKiogQWxpbmVhY2nDs24gZGVsIHRleHRvIGRlbCB2YWxvciBkZSBjYWRhIG3DqXRyaWNhLiBAZGVmYXVsdCBcInJpZ2h0XCIgKi9cbiAgQElucHV0KCkgdmFsdWVBbGlnbjogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiID0gXCJyaWdodFwiO1xuICAvKiogQWxpbmVhY2nDs24gaG9yaXpvbnRhbCBkZWwgdMOtdHVsbyBkZWwgY2FyZC4gUHJvcGFnYWRvIGF1dG9tw6F0aWNhbWVudGUgZGVzZGUgYGV4dHJhLnRpdGxlSEFsaWduYC4gQGRlZmF1bHQgXCJjZW50ZXJcIiAqL1xuICBASW5wdXQoKSB0aXRsZUhBbGlnbjogXCJsZWZ0XCIgfCBcImNlbnRlclwiIHwgXCJyaWdodFwiID0gXCJjZW50ZXJcIjtcbiAgLyoqIEFsaW5lYWNpw7NuIHZlcnRpY2FsIGRlbCBjb250ZW5pZG8gZGVudHJvIGRlbCBjYXJkLiBQcm9wYWdhZG8gZGVzZGUgYGV4dHJhLmNvbnRlbnRWQWxpZ25gLiBAZGVmYXVsdCBcImNlbnRlclwiICovXG4gIEBJbnB1dCgpIGNvbnRlbnRWQWxpZ246IFwidG9wXCIgfCBcImNlbnRlclwiIHwgXCJib3R0b21cIiA9IFwiY2VudGVyXCI7XG4gIC8qKiBBbGluZWFjacOzbiBob3Jpem9udGFsIGRlbCBjb250ZW5pZG8gZGVudHJvIGRlbCBjYXJkLiBQcm9wYWdhZG8gZGVzZGUgYGV4dHJhLmNvbnRlbnRIQWxpZ25gLiBAZGVmYXVsdCBcImNlbnRlclwiICovXG4gIEBJbnB1dCgpIGNvbnRlbnRIQWxpZ246IFwibGVmdFwiIHwgXCJjZW50ZXJcIiB8IFwicmlnaHRcIiA9IFwiY2VudGVyXCI7XG4gIC8qKiBNYXBhIGRlIGZ1bmNpb25lcyBkZSBmb3JtYXRlbyBwcm9wYWdhZG8gZGVzZGUgZWwgZ3JpZC4gKi9cbiAgQElucHV0KCkgZm9ybWF0dGVycz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIC8qKiBJbnRlcm5hY2lvbmFsaXphY2nDs24gcHJvcGFnYWRhIGRlc2RlIGVsIGdyaWQuICovXG4gIEBJbnB1dCgpIGkxOG4/OiB7IG1vbnRocz86IHN0cmluZ1tdIH07XG4gIC8qKiBFbWl0ZSBlbCBpdGVtIHNlbGVjY2lvbmFkbyBjdWFuZG8gZWwgdXN1YXJpbyBuYXZlZ2EgYSB1biBpdGVtIGNvbiBgcm91dGVgIChzb2xvIGVuIG1vZG8gYG5hdmlnYXRpb25UYXJnZXQ6ICdlbWl0J2ApLiAqL1xuICBAT3V0cHV0KCkgbmF2aWdhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbGFiZWw6IHN0cmluZzsgcm91dGU6IHN0cmluZyB9PigpO1xuICBvbktleUxhYmVsKCk6IHZvaWQge31cbiAgLyoqIE1hbmVqYSBlbCBjbGljIHNvYnJlIHVuIGl0ZW0gZGUgbGEgbGlzdGEuIEFwbGljYSBsYSBsw7NnaWNhIGRlIG5hdmVnYWNpw7NuIHNpIGNvcnJlc3BvbmRlLiAqL1xuICBvbkl0ZW1DbGljayhpdDogTWV0cmljSXRlbSwgZXZ0PzogRXZlbnQpOiB2b2lkIHtcbiAgICBldnQ/LnN0b3BQcm9wYWdhdGlvbj8uKCk7XG4gICAgY29uc3Qgcm91dGUgPSBTdHJpbmcoaXQ/LnJvdXRlID8/IFwiXCIpO1xuICAgIGlmICghcm91dGUgfHwgIXRoaXMuZW5hYmxlTmF2aWdhdGlvbikgcmV0dXJuO1xuICAgIGlmICh0aGlzLm5hdmlnYXRpb25UYXJnZXQgPT09IFwid2luZG93XCIpIHtcbiAgICAgIHdpbmRvdy5vcGVuKHJvdXRlLCBcIl9ibGFua1wiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5uYXZpZ2F0ZS5lbWl0KHsgbGFiZWw6IFN0cmluZyhpdD8ubGFiZWwgPz8gXCJcIiksIHJvdXRlIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic214LWNhcmQtbGlzdFwiPlxuICA8ZGl2ICpuZ0lmPVwic2hvd1RpdGxlICYmIHRpdGxlXCIgY2xhc3M9XCJzbXgtY2FyZC1pbm5lci10aXRsZVwiIFtuZ1N0eWxlXT1cInRpdGxlU3R5bGVcIiBbc3R5bGUudGV4dC1hbGlnbl09XCJ0aXRsZUhBbGlnblwiPnt7IHRpdGxlIH19PC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNteC1saXN0LWNvbnRlbnRcIlxuICAgIFtzdHlsZS5qdXN0aWZ5LWNvbnRlbnRdPVwiY29udGVudFZBbGlnbiA9PT0gJ3RvcCcgPyAnZmxleC1zdGFydCcgOiBjb250ZW50VkFsaWduID09PSAnYm90dG9tJyA/ICdmbGV4LWVuZCcgOiAnY2VudGVyJ1wiXG4gICAgW3N0eWxlLmFsaWduLWl0ZW1zXT1cImNvbnRlbnRIQWxpZ24gPT09ICdsZWZ0JyA/ICdmbGV4LXN0YXJ0JyA6IGNvbnRlbnRIQWxpZ24gPT09ICdyaWdodCcgPyAnZmxleC1lbmQnIDogJ2NlbnRlcidcIj5cbiAgICA8dWwgY2xhc3M9XCJtZXRyaWMtbGlzdFwiPlxuICAgICAgPGxpIGNsYXNzPVwibWV0cmljLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXQgb2YgaXRlbXNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVuYWJsZU5hdmlnYXRpb24gJiYgaXQucm91dGU7IGVsc2UgbWxMYWJlbFNwYW5cIj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgICAgICBbc3R5bGUudGV4dC1hbGlnbl09XCJsYWJlbEFsaWduXCJcbiAgICAgICAgICAgIFtocmVmXT1cIml0LnJvdXRlXCJcbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICByZWw9XCJub29wZW5lclwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXNraXAtY2xpY2tdPVwiJ3RydWUnXCJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAge3sgaXQubGFiZWwgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI21sTGFiZWxTcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cImxhYmVsXCJcbiAgICAgICAgICAgIFtzdHlsZS50ZXh0LWFsaWduXT1cImxhYmVsQWxpZ25cIlxuICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiZW5hYmxlTmF2aWdhdGlvbiAmJiBpdC5yb3V0ZSA/IDAgOiBudWxsXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtc2tpcC1jbGlja109XCIndHJ1ZSdcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlMYWJlbCgpXCJcbiAgICAgICAgICAgIChrZXl1cCk9XCJvbktleUxhYmVsKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKGl0LCAkZXZlbnQpXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJvbkl0ZW1DbGljayhpdCwgJGV2ZW50KVwiPlxuICAgICAgICAgICAge3sgaXQubGFiZWwgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJ2YWx1ZVwiXG4gICAgICAgICAgW3N0eWxlLnRleHQtYWxpZ25dPVwidmFsdWVBbGlnblwiXG4gICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiZW5hYmxlTmF2aWdhdGlvbiAmJiBpdC5yb3V0ZSA/IDAgOiBudWxsXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXNraXAtY2xpY2tdPVwiJ3RydWUnXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCJvbktleUxhYmVsKClcIlxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJvbkl0ZW1DbGljayhpdCwgJGV2ZW50KVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKGl0LCAkZXZlbnQpXCI+XG4gICAgICAgICAge3sgaXQudmFsdWUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic214LWRhc2gtY2FyZC1tZXRyaWMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL3N1bWF4LWRhc2hib2FyZC9jYXJkcy9zbXgtZGFzaC1jYXJkLW1ldHJpYy1saXN0L3NteC1kYXNoLWNhcmQtbWV0cmljLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9zdW1heC1kYXNoYm9hcmQvY2FyZHMvc214LWRhc2gtY2FyZC1tZXRyaWMtbGlzdC9zbXgtZGFzaC1jYXJkLW1ldHJpYy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFZaEcsTUFBTSxPQUFPLDhCQUE4QjtJQVIzQztRQVNFLHFDQUFxQztRQUM1QixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLHlEQUF5RDtRQUNoRCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQzNCLDhFQUE4RTtRQUNyRSxlQUFVLEdBQTJCLEVBQUUsQ0FBQztRQUNqRCx5R0FBeUc7UUFDaEcsVUFBSyxHQUE4QixFQUFFLENBQUM7UUFDL0MsMEZBQTBGO1FBQ2pGLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzlCLDJHQUEyRztRQUNsRyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDbEMsNEhBQTRIO1FBQ25ILHFCQUFnQixHQUFzQixNQUFNLENBQUM7UUFDdEQsMkVBQTJFO1FBQ2xFLGVBQVUsR0FBZ0MsTUFBTSxDQUFDO1FBQzFELHVFQUF1RTtRQUM5RCxlQUFVLEdBQWdDLE9BQU8sQ0FBQztRQUMzRCx3SEFBd0g7UUFDL0csZ0JBQVcsR0FBZ0MsUUFBUSxDQUFDO1FBQzdELGtIQUFrSDtRQUN6RyxrQkFBYSxHQUFnQyxRQUFRLENBQUM7UUFDL0Qsb0hBQW9IO1FBQzNHLGtCQUFhLEdBQWdDLFFBQVEsQ0FBQztRQUsvRCwySEFBMkg7UUFDakgsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFvQyxDQUFDO0tBYTNFO0lBWkMsVUFBVSxLQUFVLENBQUM7SUFDckIsK0ZBQStGO0lBQy9GLFdBQVcsQ0FBQyxFQUFjLEVBQUUsR0FBVztRQUNyQyxHQUFHLEVBQUUsZUFBZSxFQUFFLEVBQUUsQ0FBQztRQUN6QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE9BQU87UUFDN0MsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDN0IsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7K0dBMUNVLDhCQUE4QjttR0FBOUIsOEJBQThCLHdmQ2IzQyw2bUVBcURBLGttQ0Q3Q1ksWUFBWTs7NEZBS1gsOEJBQThCO2tCQVIxQyxTQUFTOytCQUNFLDJCQUEyQixjQUN6QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBR04sdUJBQXVCLENBQUMsTUFBTTs4QkFJdEMsS0FBSztzQkFBYixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxudHlwZSBNZXRyaWNJdGVtID0geyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyOyByb3V0ZT86IHN0cmluZyB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwic214LWRhc2gtY2FyZC1tZXRyaWMtbGlzdFwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zbXgtZGFzaC1jYXJkLW1ldHJpYy1saXN0LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9zbXgtZGFzaC1jYXJkLW1ldHJpYy1saXN0LmNvbXBvbmVudC5zY3NzXCJdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU214RGFzaENhcmRNZXRyaWNMaXN0Q29tcG9uZW50IHtcbiAgLyoqIFTDrXR1bG8gZGVsIHdpZGdldC4gQGRlZmF1bHQgXCJcIiAqL1xuICBASW5wdXQoKSB0aXRsZSA9IFwiXCI7XG4gIC8qKiBDb250cm9sYSBsYSB2aXNpYmlsaWRhZCBkZWwgdMOtdHVsby4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgQElucHV0KCkgc2hvd1RpdGxlID0gZmFsc2U7XG4gIC8qKiBFc3RpbG9zIENTUyBpbmxpbmUgYWRpY2lvbmFsZXMgcGFyYSBlbCBlbGVtZW50byBkZWwgdMOtdHVsby4gQGRlZmF1bHQge30gKi9cbiAgQElucHV0KCkgdGl0bGVTdHlsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAvKiogTGlzdGEgZGUgbcOpdHJpY2FzIGEgbW9zdHJhci4gQ2FkYSBpdGVtIHRpZW5lIGBsYWJlbGAsIGB2YWx1ZWAgeSBvcGNpb25hbG1lbnRlIGByb3V0ZWAuIEBkZWZhdWx0IFtdICovXG4gIEBJbnB1dCgpIGl0ZW1zOiBSZWFkb25seUFycmF5PE1ldHJpY0l0ZW0+ID0gW107XG4gIC8qKiBBY3RpdmEgZWwgc2Nyb2xsIHZlcnRpY2FsIGN1YW5kbyBsYSBsaXN0YSBleGNlZGUgZWwgYWx0byBkaXNwb25pYmxlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBASW5wdXQoKSBlbmFibGVTY3JvbGwgPSBmYWxzZTtcbiAgLyoqIEhhYmlsaXRhIGxhIG5hdmVnYWNpw7NuIGFsIGhhY2VyIGNsaWMgZW4gdW4gaXRlbSAocmVxdWllcmUgcXVlIGVsIGl0ZW0gdGVuZ2EgYHJvdXRlYCkuIEBkZWZhdWx0IGZhbHNlICovXG4gIEBJbnB1dCgpIGVuYWJsZU5hdmlnYXRpb24gPSBmYWxzZTtcbiAgLyoqIERlc3Rpbm8gZGUgbGEgbmF2ZWdhY2nDs246IGAnZW1pdCdgIGRpc3BhcmEgZWwgYEBPdXRwdXQoKSBuYXZpZ2F0ZWA7IGAnd2luZG93J2AgYWJyZSBlbiBudWV2YSBwZXN0YcOxYS4gQGRlZmF1bHQgXCJlbWl0XCIgKi9cbiAgQElucHV0KCkgbmF2aWdhdGlvblRhcmdldDogXCJlbWl0XCIgfCBcIndpbmRvd1wiID0gXCJlbWl0XCI7XG4gIC8qKiBBbGluZWFjacOzbiBkZWwgdGV4dG8gZGUgbGEgZXRpcXVldGEgZGUgY2FkYSBtw6l0cmljYS4gQGRlZmF1bHQgXCJsZWZ0XCIgKi9cbiAgQElucHV0KCkgbGFiZWxBbGlnbjogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiID0gXCJsZWZ0XCI7XG4gIC8qKiBBbGluZWFjacOzbiBkZWwgdGV4dG8gZGVsIHZhbG9yIGRlIGNhZGEgbcOpdHJpY2EuIEBkZWZhdWx0IFwicmlnaHRcIiAqL1xuICBASW5wdXQoKSB2YWx1ZUFsaWduOiBcImxlZnRcIiB8IFwicmlnaHRcIiB8IFwiY2VudGVyXCIgPSBcInJpZ2h0XCI7XG4gIC8qKiBBbGluZWFjacOzbiBob3Jpem9udGFsIGRlbCB0w610dWxvIGRlbCBjYXJkLiBQcm9wYWdhZG8gYXV0b23DoXRpY2FtZW50ZSBkZXNkZSBgZXh0cmEudGl0bGVIQWxpZ25gLiBAZGVmYXVsdCBcImNlbnRlclwiICovXG4gIEBJbnB1dCgpIHRpdGxlSEFsaWduOiBcImxlZnRcIiB8IFwiY2VudGVyXCIgfCBcInJpZ2h0XCIgPSBcImNlbnRlclwiO1xuICAvKiogQWxpbmVhY2nDs24gdmVydGljYWwgZGVsIGNvbnRlbmlkbyBkZW50cm8gZGVsIGNhcmQuIFByb3BhZ2FkbyBkZXNkZSBgZXh0cmEuY29udGVudFZBbGlnbmAuIEBkZWZhdWx0IFwiY2VudGVyXCIgKi9cbiAgQElucHV0KCkgY29udGVudFZBbGlnbjogXCJ0b3BcIiB8IFwiY2VudGVyXCIgfCBcImJvdHRvbVwiID0gXCJjZW50ZXJcIjtcbiAgLyoqIEFsaW5lYWNpw7NuIGhvcml6b250YWwgZGVsIGNvbnRlbmlkbyBkZW50cm8gZGVsIGNhcmQuIFByb3BhZ2FkbyBkZXNkZSBgZXh0cmEuY29udGVudEhBbGlnbmAuIEBkZWZhdWx0IFwiY2VudGVyXCIgKi9cbiAgQElucHV0KCkgY29udGVudEhBbGlnbjogXCJsZWZ0XCIgfCBcImNlbnRlclwiIHwgXCJyaWdodFwiID0gXCJjZW50ZXJcIjtcbiAgLyoqIE1hcGEgZGUgZnVuY2lvbmVzIGRlIGZvcm1hdGVvIHByb3BhZ2FkbyBkZXNkZSBlbCBncmlkLiAqL1xuICBASW5wdXQoKSBmb3JtYXR0ZXJzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqIEludGVybmFjaW9uYWxpemFjacOzbiBwcm9wYWdhZGEgZGVzZGUgZWwgZ3JpZC4gKi9cbiAgQElucHV0KCkgaTE4bj86IHsgbW9udGhzPzogc3RyaW5nW10gfTtcbiAgLyoqIEVtaXRlIGVsIGl0ZW0gc2VsZWNjaW9uYWRvIGN1YW5kbyBlbCB1c3VhcmlvIG5hdmVnYSBhIHVuIGl0ZW0gY29uIGByb3V0ZWAgKHNvbG8gZW4gbW9kbyBgbmF2aWdhdGlvblRhcmdldDogJ2VtaXQnYCkuICovXG4gIEBPdXRwdXQoKSBuYXZpZ2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBsYWJlbDogc3RyaW5nOyByb3V0ZTogc3RyaW5nIH0+KCk7XG4gIG9uS2V5TGFiZWwoKTogdm9pZCB7fVxuICAvKiogTWFuZWphIGVsIGNsaWMgc29icmUgdW4gaXRlbSBkZSBsYSBsaXN0YS4gQXBsaWNhIGxhIGzDs2dpY2EgZGUgbmF2ZWdhY2nDs24gc2kgY29ycmVzcG9uZGUuICovXG4gIG9uSXRlbUNsaWNrKGl0OiBNZXRyaWNJdGVtLCBldnQ/OiBFdmVudCk6IHZvaWQge1xuICAgIGV2dD8uc3RvcFByb3BhZ2F0aW9uPy4oKTtcbiAgICBjb25zdCByb3V0ZSA9IFN0cmluZyhpdD8ucm91dGUgPz8gXCJcIik7XG4gICAgaWYgKCFyb3V0ZSB8fCAhdGhpcy5lbmFibGVOYXZpZ2F0aW9uKSByZXR1cm47XG4gICAgaWYgKHRoaXMubmF2aWdhdGlvblRhcmdldCA9PT0gXCJ3aW5kb3dcIikge1xuICAgICAgd2luZG93Lm9wZW4ocm91dGUsIFwiX2JsYW5rXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm5hdmlnYXRlLmVtaXQoeyBsYWJlbDogU3RyaW5nKGl0Py5sYWJlbCA/PyBcIlwiKSwgcm91dGUgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzbXgtY2FyZC1saXN0XCI+XG4gIDxkaXYgKm5nSWY9XCJzaG93VGl0bGUgJiYgdGl0bGVcIiBjbGFzcz1cInNteC1jYXJkLWlubmVyLXRpdGxlXCIgW25nU3R5bGVdPVwidGl0bGVTdHlsZVwiIFtzdHlsZS50ZXh0LWFsaWduXT1cInRpdGxlSEFsaWduXCI+e3sgdGl0bGUgfX08L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic214LWxpc3QtY29udGVudFwiXG4gICAgW2NsYXNzLnNteC1zY3JvbGxdPVwiZW5hYmxlU2Nyb2xsXCJcbiAgICBbc3R5bGUuanVzdGlmeS1jb250ZW50XT1cIlxuICAgICAgZW5hYmxlU2Nyb2xsID8gJ2ZsZXgtc3RhcnQnIDogY29udGVudFZBbGlnbiA9PT0gJ3RvcCcgPyAnZmxleC1zdGFydCcgOiBjb250ZW50VkFsaWduID09PSAnYm90dG9tJyA/ICdmbGV4LWVuZCcgOiAnY2VudGVyJ1xuICAgIFwiXG4gICAgW3N0eWxlLmFsaWduLWl0ZW1zXT1cImNvbnRlbnRIQWxpZ24gPT09ICdsZWZ0JyA/ICdmbGV4LXN0YXJ0JyA6IGNvbnRlbnRIQWxpZ24gPT09ICdyaWdodCcgPyAnZmxleC1lbmQnIDogJ2NlbnRlcidcIlxuICAgIFtzdHlsZS5vdmVyZmxvdy15XT1cImVuYWJsZVNjcm9sbCA/ICdhdXRvJyA6ICdoaWRkZW4nXCJcbiAgICBbc3R5bGUub3ZlcmZsb3cteF09XCInaGlkZGVuJ1wiPlxuICAgIDx1bCBjbGFzcz1cIm1ldHJpYy1saXN0XCI+XG4gICAgICA8bGkgY2xhc3M9XCJtZXRyaWMtaXRlbVwiICpuZ0Zvcj1cImxldCBpdCBvZiBpdGVtc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW5hYmxlTmF2aWdhdGlvbiAmJiBpdC5yb3V0ZTsgZWxzZSBtbExhYmVsU3BhblwiPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICBjbGFzcz1cImxhYmVsXCJcbiAgICAgICAgICAgIFtzdHlsZS50ZXh0LWFsaWduXT1cImxhYmVsQWxpZ25cIlxuICAgICAgICAgICAgW2hyZWZdPVwiaXQucm91dGVcIlxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtc2tpcC1jbGlja109XCIndHJ1ZSdcIlxuICAgICAgICAgICAgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICB7eyBpdC5sYWJlbCB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbWxMYWJlbFNwYW4+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwibGFiZWxcIlxuICAgICAgICAgICAgW3N0eWxlLnRleHQtYWxpZ25dPVwibGFiZWxBbGlnblwiXG4gICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJlbmFibGVOYXZpZ2F0aW9uICYmIGl0LnJvdXRlID8gMCA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1za2lwLWNsaWNrXT1cIid0cnVlJ1wiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleUxhYmVsKClcIlxuICAgICAgICAgICAgKGtleXVwKT1cIm9uS2V5TGFiZWwoKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soaXQsICRldmVudClcIlxuICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uSXRlbUNsaWNrKGl0LCAkZXZlbnQpXCI+XG4gICAgICAgICAgICB7eyBpdC5sYWJlbCB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInZhbHVlXCJcbiAgICAgICAgICBbc3R5bGUudGV4dC1hbGlnbl09XCJ2YWx1ZUFsaWduXCJcbiAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJlbmFibGVOYXZpZ2F0aW9uICYmIGl0LnJvdXRlID8gMCA6IG51bGxcIlxuICAgICAgICAgIFthdHRyLmRhdGEtc2tpcC1jbGlja109XCIndHJ1ZSdcIlxuICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5TGFiZWwoKVwiXG4gICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uSXRlbUNsaWNrKGl0LCAkZXZlbnQpXCJcbiAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soaXQsICRldmVudClcIj5cbiAgICAgICAgICB7eyBpdC52YWx1ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -99,6 +99,7 @@ export class SmxDashGridComponent {
|
|
|
99
99
|
return {
|
|
100
100
|
...base,
|
|
101
101
|
items: c.extra?.["items"] ?? [],
|
|
102
|
+
enableScroll: c.extra?.["enableScroll"] ?? false,
|
|
102
103
|
enableNavigation: c.extra?.["enableNavigation"] ?? false,
|
|
103
104
|
navigationTarget: c.extra?.["navigationTarget"] ?? "emit",
|
|
104
105
|
labelAlign: c.extra?.["labelAlign"] ?? "left",
|
|
@@ -268,4 +269,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
268
269
|
}], widgetEvent: [{
|
|
269
270
|
type: Output
|
|
270
271
|
}] } });
|
|
271
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic214LWRhc2gtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL3N1bWF4LWRhc2hib2FyZC9zbXgtZGFzaC1ncmlkL3NteC1kYXNoLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9zdW1heC1kYXNoYm9hcmQvc214LWRhc2gtZ3JpZC9zbXgtZGFzaC1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBd0UsVUFBVSxFQUFrQixNQUFNLGdCQUFnQixDQUFDOzs7QUFVbEksTUFBTSxPQUFPLG9CQUFvQjtJQVJqQztRQVNFLHFIQUFxSDtRQUM1RyxhQUFRLEdBQXVCLEVBQUUsQ0FBQztRQVMzQyxxR0FBcUc7UUFDM0YsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBd0UsQ0FBQztRQUV6RyxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUE2RCxDQUFDO0tBeVA3RjtJQXZQQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQscUVBQXFFO0lBQ3JFLFNBQVMsQ0FBQyxJQUFZLEVBQUUsQ0FBbUI7UUFDekMsT0FBTyxDQUFDLENBQUMsc0JB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QzdFLGNBQWMsQ0FBQyxDQUFtQjtRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNwQixzQkFBc0IsRUFBRSxDQUFDLENBQUMsc0JBQXNCO1lBQ2hELE1BQU0sRUFBRSxXQUFXO1lBQ25CLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFNBQVMsQ0FBQyxDQUFtQjtRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNwQixzQkFBc0IsRUFBRSxDQUFDLENBQUMsc0JBQXNCO1lBQ2hELE1BQU0sRUFBRSxPQUFPO1lBQ2YsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDOytHQXRRVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwrUUNaakMsMDBDQThCQSwwaUNEdkJZLFlBQVk7OzRGQUtYLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLENBQUMsbUJBRzNDLHVCQUF1QixDQUFDLE1BQU07OEJBSXRDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nQ29tcG9uZW50T3V0bGV0LCBOZ0Zvck9mLCBOZ1N0eWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQXhpc1hZLCBDaGFydFR5cGVDb2RlLCBEYXNoYm9hcmRDb250ZW50LCBHcmlkT3B0aW9ucywgVmFsdWVGb3JtYXR0ZXIsIFdpZGdldENvZGUsIFdpZGdldFJlZ2lzdHJ5IH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzbXgtZGFzaC1ncmlkXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5nRm9yT2YsIE5nU3R5bGUsIE5nQ29tcG9uZW50T3V0bGV0XSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zbXgtZGFzaC1ncmlkLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9zbXgtZGFzaC1ncmlkLmNvbXBvbmVudC5zY3NzXCJdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU214RGFzaEdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvKiogQ29uZmlndXJhY2lvbmVzIGRlIGxvcyB3aWRnZXRzIGEgcmVuZGVyaXphci4gQ2FkYSBpdGVtIGRlZmluZSBwb3NpY2nDs24sIHRhbWHDsW8geSBkYXRvcyBkZWwgd2lkZ2V0LiBAZGVmYXVsdCBbXSAqL1xuICBASW5wdXQoKSBjb250ZW50czogRGFzaGJvYXJkQ29udGVudFtdID0gW107XG4gIC8qKiBDb25maWd1cmFjacOzbiBkZWwgQ1NTIEdyaWQ6IGBjb2x1bW5zYCAoZGVmYXVsdCAxMiksIGBnYXBgLCBgYXV0b1Jvd0hlaWdodGAsIGBhdXRvUGxhY2VgLiAqL1xuICBASW5wdXQoKSBncmlkT3B0aW9ucz86IEdyaWRPcHRpb25zO1xuICAvKiogTWFwYSBgY8OzZGlnb1dpZGdldCDihpIgY29tcG9uZW50ZSBBbmd1bGFyYCBwYXJhIHJlc29sdmVyIHdpZGdldHMgY3VzdG9tIG1lZGlhbnRlIGBOZ0NvbXBvbmVudE91dGxldGAuICovXG4gIEBJbnB1dCgpIHdpZGdldFJlZ2lzdHJ5PzogV2lkZ2V0UmVnaXN0cnk7XG4gIC8qKiBGdW5jaW9uZXMgZGUgZm9ybWF0ZW8gZGUgdmFsb3JlcyBwb3Igbm9tYnJlLCBwcm9wYWdhZGFzIGEgdG9kb3MgbG9zIHdpZGdldHMgaGlqb3MuICovXG4gIEBJbnB1dCgpIGZvcm1hdHRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBWYWx1ZUZvcm1hdHRlcj47XG4gIC8qKiBJbnRlcm5hY2lvbmFsaXphY2nDs24gcHJvcGFnYWRhIGEgdG9kb3MgbG9zIHdpZGdldHMgaGlqb3MuICovXG4gIEBJbnB1dCgpIGkxOG4/OiB7IG1vbnRocz86IHN0cmluZ1tdIH07XG4gIC8qKiBSZS1lbWl0ZSBsb3MgZXZlbnRvcyBkZSBsb3Mgd2lkZ2V0cyBoaWpvczogYGNsaWNrYCwgYGhvdmVyLWluYCwgYGhvdmVyLW91dGAgeSBhY2Npb25lcyBjdXN0b20uICovXG4gIEBPdXRwdXQoKSB3aWRnZXRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBjb2RpZ29Db250ZW5pZG9UYWJsZXJvOiBzdHJpbmc7IGFjdGlvbjogc3RyaW5nOyBwYXlsb2FkOiB1bmtub3duIH0+KCk7XG5cbiAgcHJpdmF0ZSBfaW5wdXRzQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgeyBoYXNoOiBzdHJpbmc7IGlucHV0czogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfT4oKTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbXCJjb250ZW50c1wiXSkge1xuICAgICAgdGhpcy5faW5wdXRzQ2FjaGUuY2xlYXIoKTtcbiAgICB9XG4gIH1cblxuICAvKiogRnVuY2nDs24gZGUgdHJhY2tCeSBwYXJhIGAqbmdGb3JgIHNvYnJlIGVsIGFycmF5IGRlIGNvbnRlbmlkb3MuICovXG4gIHRyYWNrQ29kZShfaWR4OiBudW1iZXIsIGM6IERhc2hib2FyZENvbnRlbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiBjLmNvZGlnb0NvbnRlbmlkb1RhYmxlcm87XG4gIH1cbiAgLyoqIERldnVlbHZlIGVsIHZhbG9yIENTUyBgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zYCBiYXNhZG8gZW4gYGdyaWRPcHRpb25zLmNvbHVtbnNgLiAqL1xuICBnZXRHcmlkVGVtcGxhdGVDb2x1bW5zKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29scyA9IHRoaXMuZ3JpZE9wdGlvbnM/LmNvbHVtbnMgPz8gMTI7XG4gICAgcmV0dXJuIGByZXBlYXQoJHtjb2xzfSwgMWZyKWA7XG4gIH1cblxuICAvKiogUmVzdWVsdmUgZWwgY29tcG9uZW50ZSBBbmd1bGFyIGNvcnJlc3BvbmRpZW50ZSBhIHVuIGBXaWRnZXRDb2RlYCBkZXNkZSBgd2lkZ2V0UmVnaXN0cnlgLiBSZXRvcm5hIGBudWxsYCBzaSBubyBzZSBlbmN1ZW50cmEuICovXG4gIHJlc29sdmVDb21wb25lbnQoY29kZTogc3RyaW5nKTogVHlwZTx1bmtub3duPiB8IG51bGwge1xuICAgIGlmICghdGhpcy53aWRnZXRSZWdpc3RyeSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGNvbXAgPSB0aGlzLndpZGdldFJlZ2lzdHJ5W2NvZGVdO1xuICAgIHJldHVybiBjb21wID8/IG51bGw7XG4gIH1cblxuICAvKiogQ2FsY3VsYSBsb3MgZXN0aWxvcyBDU1MgR3JpZCAoYGdyaWQtY29sdW1uLXN0YXJ0L2VuZGAsIGBncmlkLXJvdy1zdGFydC9lbmRgKSBwYXJhIHVuIGl0ZW0gZGVsIGdyaWQuICovXG4gIGdldEl0ZW1TdHlsZShjOiBEYXNoYm9hcmRDb250ZW50KTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgaWYgKHRoaXMuZ3JpZE9wdGlvbnM/LmF1dG9QbGFjZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgXCJncmlkLWNvbHVtbi1lbmRcIjogXCJzcGFuIFwiICsgYy5jYW50aWRhZENvbHVtbmFzLFxuICAgICAgICBcImdyaWQtcm93LWVuZFwiOiBcInNwYW4gXCIgKyBjLmNhbnRpZGFkRmlsYXMsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgXCJncmlkLWNvbHVtbi1zdGFydFwiOiBTdHJpbmcoYy5wb3NpY2lvblggKyAxKSxcbiAgICAgIFwiZ3JpZC1jb2x1bW4tZW5kXCI6IFwic3BhbiBcIiArIGMuY2FudGlkYWRDb2x1bW5hcyxcbiAgICAgIFwiZ3JpZC1yb3ctc3RhcnRcIjogU3RyaW5nKGMucG9zaWNpb25ZICsgMSksXG4gICAgICBcImdyaWQtcm93LWVuZFwiOiBcInNwYW4gXCIgKyBjLmNhbnRpZGFkRmlsYXMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBDb21iaW5hIGxvcyBlc3RpbG9zIGRlIHBvc2ljaW9uYW1pZW50byBHcmlkIGNvbiBsb3MgZXN0aWxvcyBjdXN0b20gZGUgYGV4dHJhLmNhcmRTdHlsZWAuICovXG4gIGdldENhcmRTdHlsZShjOiBEYXNoYm9hcmRDb250ZW50KTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgY29uc3QgcG9zID0gdGhpcy5nZXRJdGVtU3R5bGUoYyk7XG4gICAgY29uc3QgY3VzdG9tID0gKGMuZXh0cmE/LltcImNhcmRTdHlsZVwiXSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSA/PyB7fTtcbiAgICByZXR1cm4geyAuLi5wb3MsIC4uLmN1c3RvbSB9O1xuICB9XG5cbiAgLyoqIFJldG9ybmEgbG9zIGVzdGlsb3MgY3VzdG9tIGRlbCBjdWVycG8gZGVsIGNhcmQgZGVzZGUgYGV4dHJhLmJvZHlTdHlsZWAuICovXG4gIGdldEJvZHlTdHlsZShjOiBEYXNoYm9hcmRDb250ZW50KTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIChjLmV4dHJhPy5bXCJib2R5U3R5bGVcIl0gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPz8ge307XG4gIH1cblxuICAvKiogUmV0b3JuYSBsb3MgYGlucHV0c2AgZGVsIHdpZGdldCBjb24gY2FjaMOpIHBvciBoYXNoIEpTT04uXG4gICAqIEV2aXRhIHJlY29uc3RydWlyIGVsIG9iamV0byBlbiBjYWRhIGNpY2xvIGRlIGRldGVjY2nDs24gZGUgY2FtYmlvcy5cbiAgICovXG4gIGdldElucHV0cyhjOiBEYXNoYm9hcmRDb250ZW50KTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIGNvbnN0IGtleSA9IGMuY29kaWdvQ29udGVuaWRvVGFibGVybztcbiAgICBjb25zdCBmcmVzaCA9IHRoaXMuX2NvbXB1dGVJbnB1dHMoYyk7XG4gICAgbGV0IGhhc2g6IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgaGFzaCA9IEpTT04uc3RyaW5naWZ5KGZyZXNoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGhhc2ggPSBrZXkgKyBcIl9cIiArIERhdGUubm93KCk7XG4gICAgfVxuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuX2lucHV0c0NhY2hlLmdldChrZXkpO1xuICAgIGlmIChjYWNoZWQgJiYgY2FjaGVkLmhhc2ggPT09IGhhc2gpIHtcbiAgICAgIHJldHVybiBjYWNoZWQuaW5wdXRzO1xuICAgIH1cbiAgICB0aGlzLl9pbnB1dHNDYWNoZS5zZXQoa2V5LCB7IGhhc2gsIGlucHV0czogZnJlc2ggfSk7XG4gICAgcmV0dXJuIGZyZXNoO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcHV0ZUlucHV0cyhjOiBEYXNoYm9hcmRDb250ZW50KTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIGNvbnN0IGJhc2U6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgdGl0bGU6IGMubm9tYnJlLFxuICAgICAgLi4uKGMuZXh0cmE/LltcInNob3dUaXRsZVwiXSAhPT0gdW5kZWZpbmVkID8geyBzaG93VGl0bGU6IGMuZXh0cmFbXCJzaG93VGl0bGVcIl0gfSA6IHt9KSxcbiAgICAgIHRpdGxlU3R5bGU6IChjLmV4dHJhPy5bXCJ0aXRsZVN0eWxlXCJdIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID8/IHt9LFxuICAgICAgdGl0bGVIQWxpZ246IChjLmV4dHJhPy5bXCJ0aXRsZUhBbGlnblwiXSBhcyBzdHJpbmcpID8/IFwiY2VudGVyXCIsXG4gICAgICBjb250ZW50VkFsaWduOiAoYy5leHRyYT8uW1wiY29udGVudFZBbGlnblwiXSBhcyBzdHJpbmcpID8/IFwiY2VudGVyXCIsXG4gICAgICBjb250ZW50SEFsaWduOiAoYy5leHRyYT8uW1wiY29udGVudEhBbGlnblwiXSBhcyBzdHJpbmcpID8/IFwiY2VudGVyXCIsXG4gICAgICBmb3JtYXR0ZXJzOiB0aGlzLmZvcm1hdHRlcnMgPz8ge30sXG4gICAgICBpMThuOiB0aGlzLmkxOG4gPz8ge30sXG4gICAgfTtcbiAgICBzd2l0Y2ggKGMuY29kaWdvVGlwb0dyYWZpY28pIHtcbiAgICAgIGNhc2UgV2lkZ2V0Q29kZS5CYXNpYzpcbiAgICAgICAgcmV0dXJuIHsgLi4uYmFzZSwgdmFsdWU6IGMuZXh0cmE/LltcInZhbHVlXCJdIH07XG4gICAgICBjYXNlIFdpZGdldENvZGUuTGVnZW5kQ2hhcnQ6XG4gICAgICAgIHJldHVybiB0aGlzLl9sZWdlbmRDaGFydElucHV0cyhiYXNlLCBjKTtcbiAgICAgIGNhc2UgV2lkZ2V0Q29kZS5JdGVyYWJsZTpcbiAgICAgIGNhc2UgV2lkZ2V0Q29kZS5NZXRyaWNMaXN0OlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmJhc2UsXG4gICAgICAgICAgaXRlbXM6IChjLmV4dHJhPy5bXCJpdGVtc1wiXSBhcyB1bmtub3duW10pID8/IFtdLFxuICAgICAgICAgIGVuYWJsZU5hdmlnYXRpb246IChjLmV4dHJhPy5bXCJlbmFibGVOYXZpZ2F0aW9uXCJdIGFzIGJvb2xlYW4pID8/IGZhbHNlLFxuICAgICAgICAgIG5hdmlnYXRpb25UYXJnZXQ6IChjLmV4dHJhPy5bXCJuYXZpZ2F0aW9uVGFyZ2V0XCJdIGFzIFwiZW1pdFwiIHwgXCJ3aW5kb3dcIikgPz8gXCJlbWl0XCIsXG4gICAgICAgICAgbGFiZWxBbGlnbjogKGMuZXh0cmE/LltcImxhYmVsQWxpZ25cIl0gYXMgc3RyaW5nKSA/PyBcImxlZnRcIixcbiAgICAgICAgICB2YWx1ZUFsaWduOiAoYy5leHRyYT8uW1widmFsdWVBbGlnblwiXSBhcyBzdHJpbmcpID8/IFwicmlnaHRcIixcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgV2lkZ2V0Q29kZS5LcGlMZWdlbmQ6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICB2YWx1ZTogYy5leHRyYT8uW1widmFsdWVcIl0sXG4gICAgICAgICAgZGVsdGE6IGMuZXh0cmE/LltcImRlbHRhXCJdLFxuICAgICAgICAgIHBlcmlvZExhYmVsOiBjLmV4dHJhPy5bXCJwZXJpb2RMYWJlbFwiXSxcbiAgICAgICAgICBpdGVtczogKGMuZXh0cmE/LltcIml0ZW1zXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICAgICAgc3BhcmtsaW5lOiAoYy5leHRyYT8uW1wic3BhcmtsaW5lXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICAgIH07XG4gICAgICBjYXNlIFdpZGdldENvZGUuQ2hhcnRTdGF0aWM6XG4gICAgICAgIHJldHVybiB0aGlzLl9sZWdlbmRDaGFydElucHV0cyhiYXNlLCBjKTtcbiAgICAgIGNhc2UgV2lkZ2V0Q29kZS5Eb3VnaG51dEV4dExhYmVsczpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGl0ZW1zOiAoYy5leHRyYT8uW1wiaXRlbXNcIl0gYXMgdW5rbm93bltdKSA/PyBbXSxcbiAgICAgICAgICBsZWdlbmRWaXNpYmxlOiAoYy5leHRyYT8uW1wibGVnZW5kVmlzaWJsZVwiXSBhcyBib29sZWFuKSA/PyBmYWxzZSxcbiAgICAgICAgICBjaGFydFdpZHRoOiAoYy5leHRyYT8uW1wiY2hhcnRXaWR0aFwiXSBhcyBudW1iZXIgfCBcImF1dG9cIikgPz8gMCxcbiAgICAgICAgICBjaGFydEhlaWdodDogKGMuZXh0cmE/LltcImNoYXJ0SGVpZ2h0XCJdIGFzIG51bWJlciB8IFwiYXV0b1wiKSA/PyAwLFxuICAgICAgICAgIG51bWJlckZvcm1hdDogKGMuZXh0cmE/LltcIm51bWJlckZvcm1hdFwiXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPz8ge30sXG4gICAgICAgICAgYm90dG9tTGVnZW5kSXRlbXM6IChjLmV4dHJhPy5bXCJib3R0b21MZWdlbmRJdGVtc1wiXSBhcyB1bmtub3duW10pID8/IFtdLFxuICAgICAgICAgIHN1bW1hcnlJdGVtczogKGMuZXh0cmE/LltcInN1bW1hcnlJdGVtc1wiXSBhcyB1bmtub3duW10pID8/IFtdLFxuICAgICAgICAgIGJvdHRvbUxlZ2VuZFN0eWxlOiAoYy5leHRyYT8uW1wiYm90dG9tTGVnZW5kU3R5bGVcIl0gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPz8ge30sXG4gICAgICAgICAgc3VtbWFyeVN0eWxlOiAoYy5leHRyYT8uW1wic3VtbWFyeVN0eWxlXCJdIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID8/IHt9LFxuICAgICAgICB9O1xuICAgICAgY2FzZSBXaWRnZXRDb2RlLlRhYmxlOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmJhc2UsXG4gICAgICAgICAgcm93czogKGMuZXh0cmE/LltcInJvd3NcIl0gYXMgdW5rbm93bltdKSA/PyBbXSxcbiAgICAgICAgICBjb2x1bW5zOiAoYy5leHRyYT8uW1wiY29sdW1uc1wiXSBhcyB1bmtub3duW10pID8/IFtdLFxuICAgICAgICAgIGhlYWRlckFsaWduOiAoYy5leHRyYT8uW1wiaGVhZGVyQWxpZ25cIl0gYXMgc3RyaW5nKSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgY2VsbEFsaWduOiAoYy5leHRyYT8uW1wiY2VsbEFsaWduXCJdIGFzIHN0cmluZykgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgIG51bWVyaWNDZWxsQWxpZ246IChjLmV4dHJhPy5bXCJudW1lcmljQ2VsbEFsaWduXCJdIGFzIHN0cmluZykgPz8gXCJyaWdodFwiLFxuICAgICAgICAgIHRleHRDZWxsQWxpZ246IChjLmV4dHJhPy5bXCJ0ZXh0Q2VsbEFsaWduXCJdIGFzIHN0cmluZykgPz8gXCJsZWZ0XCIsXG4gICAgICAgICAgc2hvd0JvcmRlcnM6IChjLmV4dHJhPy5bXCJzaG93Qm9yZGVyc1wiXSBhcyBib29sZWFuKSA/PyB0cnVlLFxuICAgICAgICAgIGNlbGxGb250V2VpZ2h0OiAoYy5leHRyYT8uW1wiY2VsbEZvbnRXZWlnaHRcIl0gYXMgc3RyaW5nKSA/PyBcIm5vcm1hbFwiLFxuICAgICAgICAgIGhlYWRlckZvbnRXZWlnaHQ6IChjLmV4dHJhPy5bXCJoZWFkZXJGb250V2VpZ2h0XCJdIGFzIHN0cmluZykgPz8gXCI2MDBcIixcbiAgICAgICAgICBjZWxsRm9udFNpemU6IChjLmV4dHJhPy5bXCJjZWxsRm9udFNpemVcIl0gYXMgc3RyaW5nKSA/PyBcIlwiLFxuICAgICAgICAgIGhlYWRlckZvbnRTaXplOiAoYy5leHRyYT8uW1wiaGVhZGVyRm9udFNpemVcIl0gYXMgc3RyaW5nKSA/PyBcIlwiLFxuICAgICAgICAgIHRhYmxlU3R5bGU6IChjLmV4dHJhPy5bXCJ0YWJsZVN0eWxlXCJdIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID8/IHt9LFxuICAgICAgICAgIHRhYmxlQ29udGFpbmVyQWxpZ246IChjLmV4dHJhPy5bXCJ0YWJsZUNvbnRhaW5lckFsaWduXCJdIGFzIFwibGVmdFwiIHwgXCJjZW50ZXJcIiB8IFwicmlnaHRcIikgPz8gXCJjZW50ZXJcIixcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgV2lkZ2V0Q29kZS5DaGFydEludGVyYWN0aXZlVGFiczpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGNoYXJ0VHlwZTogKGMuZXh0cmE/LltcImNoYXJ0VHlwZVwiXSBhcyBDaGFydFR5cGVDb2RlKSA/PyBcImxpbmVcIixcbiAgICAgICAgICBsZWdlbmRWaXNpYmxlOiAoYy5leHRyYT8uW1wibGVnZW5kVmlzaWJsZVwiXSBhcyBib29sZWFuKSA/PyB0cnVlLFxuICAgICAgICAgIGxhYmVsczogKGMuZXh0cmE/LltcImxhYmVsc1wiXSBhcyB1bmtub3duW10pID8/IFtdLFxuICAgICAgICAgIGRhdGFzZXRzOiAoYy5leHRyYT8uW1wiZGF0YXNldHNcIl0gYXMgdW5rbm93bltdKSA/PyBbXSxcbiAgICAgICAgICBpbmRleEF4aXM6IChjLmV4dHJhPy5bXCJpbmRleEF4aXNcIl0gYXMgQXhpc1hZKSA/PyBcInhcIixcbiAgICAgICAgICB0ZW5zaW9uOiAoYy5leHRyYT8uW1widGVuc2lvblwiXSBhcyBudW1iZXIpID8/IDAuMyxcbiAgICAgICAgICBjaGFydE9wdGlvbnM6IChjLmV4dHJhPy5bXCJjaGFydE9wdGlvbnNcIl0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICBjb250cm9sc1RhYnM6IChjLmV4dHJhPy5bXCJjb250cm9sc1RhYnNcIl0gYXMgdW5rbm93bltdKSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgY2hhcnRXaWR0aDogKGMuZXh0cmE/LltcImNoYXJ0V2lkdGhcIl0gYXMgbnVtYmVyIHwgXCJhdXRvXCIpID8/IDM2MCxcbiAgICAgICAgICBjaGFydEhlaWdodDogKGMuZXh0cmE/LltcImNoYXJ0SGVpZ2h0XCJdIGFzIG51bWJlciB8IFwiYXV0b1wiKSA/PyAyMjAsXG4gICAgICAgICAgbnVtYmVyRm9ybWF0OiAoYy5leHRyYT8uW1wibnVtYmVyRm9ybWF0XCJdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA/PyB7fSxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgV2lkZ2V0Q29kZS5DaGFydEludGVyYWN0aXZlU2VsZWN0OlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmJhc2UsXG4gICAgICAgICAgY2hhcnRUeXBlOiAoYy5leHRyYT8uW1wiY2hhcnRUeXBlXCJdIGFzIENoYXJ0VHlwZUNvZGUpID8/IFwiYmFyXCIsXG4gICAgICAgICAgbGVnZW5kVmlzaWJsZTogKGMuZXh0cmE/LltcImxlZ2VuZFZpc2libGVcIl0gYXMgYm9vbGVhbikgPz8gdHJ1ZSxcbiAgICAgICAgICBsYWJlbHM6IChjLmV4dHJhPy5bXCJsYWJlbHNcIl0gYXMgdW5rbm93bltdKSA/PyBbXSxcbiAgICAgICAgICBkYXRhc2V0czogKGMuZXh0cmE/LltcImRhdGFzZXRzXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICAgICAgaW5kZXhBeGlzOiAoYy5leHRyYT8uW1wiaW5kZXhBeGlzXCJdIGFzIEF4aXNYWSkgPz8gXCJ4XCIsXG4gICAgICAgICAgdGVuc2lvbjogKGMuZXh0cmE/LltcInRlbnNpb25cIl0gYXMgbnVtYmVyKSA/PyAwLjMsXG4gICAgICAgICAgY2hhcnRPcHRpb25zOiAoYy5leHRyYT8uW1wiY2hhcnRPcHRpb25zXCJdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgY29udHJvbHNTZWxlY3Q6IChjLmV4dHJhPy5bXCJjb250cm9sc1NlbGVjdFwiXSBhcyB1bmtub3duW10pID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICBjaGFydFdpZHRoOiAoYy5leHRyYT8uW1wiY2hhcnRXaWR0aFwiXSBhcyBudW1iZXIgfCBcImF1dG9cIikgPz8gMzYwLFxuICAgICAgICAgIGNoYXJ0SGVpZ2h0OiAoYy5leHRyYT8uW1wiY2hhcnRIZWlnaHRcIl0gYXMgbnVtYmVyIHwgXCJhdXRvXCIpID8/IDIyMCxcbiAgICAgICAgICBudW1iZXJGb3JtYXQ6IChjLmV4dHJhPy5bXCJudW1iZXJGb3JtYXRcIl0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID8/IHt9LFxuICAgICAgICB9O1xuICAgICAgY2FzZSBXaWRnZXRDb2RlLlJhbmtpbmc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBpdGVtczogKGMuZXh0cmE/LltcIml0ZW1zXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICAgICAgc2hvd0JhcnM6IChjLmV4dHJhPy5bXCJzaG93QmFyc1wiXSBhcyBib29sZWFuKSA/PyB0cnVlLFxuICAgICAgICAgIGVuYWJsZU5hdmlnYXRpb246IChjLmV4dHJhPy5bXCJlbmFibGVOYXZpZ2F0aW9uXCJdIGFzIGJvb2xlYW4pID8/IGZhbHNlLFxuICAgICAgICAgIG5hdmlnYXRpb25UYXJnZXQ6IChjLmV4dHJhPy5bXCJuYXZpZ2F0aW9uVGFyZ2V0XCJdIGFzIFwiZW1pdFwiIHwgXCJ3aW5kb3dcIikgPz8gXCJlbWl0XCIsXG4gICAgICAgICAgbGFiZWxBbGlnbjogKGMuZXh0cmE/LltcImxhYmVsQWxpZ25cIl0gYXMgc3RyaW5nKSA/PyBcImxlZnRcIixcbiAgICAgICAgICB2YWx1ZUFsaWduOiAoYy5leHRyYT8uW1widmFsdWVBbGlnblwiXSBhcyBzdHJpbmcpID8/IFwicmlnaHRcIixcbiAgICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7IC4uLmJhc2UsIC4uLihjLmV4dHJhID8/IHt9KSB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xlZ2VuZENoYXJ0SW5wdXRzKGJhc2U6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBjOiBEYXNoYm9hcmRDb250ZW50KTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5iYXNlLFxuICAgICAgY2hhcnRUeXBlOiAoYy5leHRyYT8uW1wiY2hhcnRUeXBlXCJdIGFzIENoYXJ0VHlwZUNvZGUpID8/IFwicGllXCIsXG4gICAgICBsZWdlbmRJdGVtczogKGMuZXh0cmE/LltcImxlZ2VuZEl0ZW1zXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICBzdWJJdGVtczogKGMuZXh0cmE/LltcInN1Ykl0ZW1zXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICBsZWdlbmRWaXNpYmxlOiAoYy5leHRyYT8uW1wibGVnZW5kVmlzaWJsZVwiXSBhcyBib29sZWFuKSA/PyB0cnVlLFxuICAgICAgbGFiZWxzOiAoYy5leHRyYT8uW1wibGFiZWxzXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICBkYXRhc2V0czogKGMuZXh0cmE/LltcImRhdGFzZXRzXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICBpbmRleEF4aXM6IChjLmV4dHJhPy5bXCJpbmRleEF4aXNcIl0gYXMgQXhpc1hZKSA/PyBcInhcIixcbiAgICAgIHRlbnNpb246IChjLmV4dHJhPy5bXCJ0ZW5zaW9uXCJdIGFzIG51bWJlcikgPz8gMC4zLFxuICAgICAgY2hhcnRPcHRpb25zOiAoYy5leHRyYT8uW1wiY2hhcnRPcHRpb25zXCJdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA/PyB1bmRlZmluZWQsXG4gICAgICBlbmFibGVOYXZpZ2F0aW9uOiAoYy5leHRyYT8uW1wiZW5hYmxlTmF2aWdhdGlvblwiXSBhcyBib29sZWFuKSA/PyBmYWxzZSxcbiAgICAgIG5hdmlnYXRpb25UYXJnZXQ6IChjLmV4dHJhPy5bXCJuYXZpZ2F0aW9uVGFyZ2V0XCJdIGFzIFwiZW1pdFwiIHwgXCJ3aW5kb3dcIikgPz8gXCJlbWl0XCIsXG4gICAgICBjaGFydFdpZHRoOiAoYy5leHRyYT8uW1wiY2hhcnRXaWR0aFwiXSBhcyBudW1iZXIgfCBcImF1dG9cIikgPz8gMzYwLFxuICAgICAgY2hhcnRIZWlnaHQ6IChjLmV4dHJhPy5bXCJjaGFydEhlaWdodFwiXSBhcyBudW1iZXIgfCBcImF1dG9cIikgPz8gMjIwLFxuICAgICAgbnVtYmVyRm9ybWF0OiAoYy5leHRyYT8uW1wibnVtYmVyRm9ybWF0XCJdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA/PyB7fSxcbiAgICAgIGJvdHRvbUxlZ2VuZEl0ZW1zOiAoYy5leHRyYT8uW1wiYm90dG9tTGVnZW5kSXRlbXNcIl0gYXMgdW5rbm93bltdKSA/PyBbXSxcbiAgICAgIHN1bW1hcnlJdGVtczogKGMuZXh0cmE/LltcInN1bW1hcnlJdGVtc1wiXSBhcyB1bmtub3duW10pID8/IFtdLFxuICAgICAgYm90dG9tTGVnZW5kU3R5bGU6IChjLmV4dHJhPy5bXCJib3R0b21MZWdlbmRTdHlsZVwiXSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSA/PyB7fSxcbiAgICAgIHN1bW1hcnlTdHlsZTogKGMuZXh0cmE/LltcInN1bW1hcnlTdHlsZVwiXSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSA/PyB7fSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIE1hbmVqYSBlbCBjbGljayBzb2JyZSB1biBpdGVtIGRlbCBncmlkLiBJZ25vcmEgY2xpY2tzIGVuIGVsZW1lbnRvcyBpbnRlcmFjdGl2b3MgKGxpbmtzLCBsYWJlbHMsIGRhdGEtc2tpcC1jbGljaykuICovXG4gIG9uSXRlbUNsaWNrKGM6IERhc2hib2FyZENvbnRlbnQsIGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJhd1RhcmdldCA9IGV2dC50YXJnZXQgYXMgYW55O1xuICAgIGNvbnN0IGVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSByYXdUYXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCA/IHJhd1RhcmdldCA6IChyYXdUYXJnZXQ/LnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsKSA/PyBudWxsO1xuICAgIGNvbnN0IGlzSW50ZXJhY3RpdmUgPVxuICAgICAgISFlbCAmJiAoZWwuY2xvc2VzdChcImFcIikgIT09IG51bGwgfHwgZWwuY2xvc2VzdChcIltkYXRhLXNraXAtY2xpY2s9J3RydWUnXVwiKSAhPT0gbnVsbCB8fCBlbC5jbG9zZXN0KFwiLmxhYmVsXCIpICE9PSBudWxsKTtcbiAgICBpZiAoaXNJbnRlcmFjdGl2ZSB8fCAoYyBhcyBhbnkpPy5leHRyYT8uW1wiZW5hYmxlTmF2aWdhdGlvblwiXSA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLndpZGdldEV2ZW50LmVtaXQoe1xuICAgICAgY29kaWdvQ29udGVuaWRvVGFibGVybzogYy5jb2RpZ29Db250ZW5pZG9UYWJsZXJvLFxuICAgICAgYWN0aW9uOiBcImNsaWNrXCIsXG4gICAgICBwYXlsb2FkOiB7IHg6IGV2dC5jbGllbnRYLCB5OiBldnQuY2xpZW50WSB9LFxuICAgIH0pO1xuICB9XG4gIC8qKiBFbWl0ZSBlbCBldmVudG8gYGhvdmVyLWluYCBjdWFuZG8gZWwgY3Vyc29yIGVudHJhIGVuIHVuIGl0ZW0gZGVsIGdyaWQuICovXG4gIG9uSXRlbUhvdmVySW4oYzogRGFzaGJvYXJkQ29udGVudCk6IHZvaWQge1xuICAgIHRoaXMud2lkZ2V0RXZlbnQuZW1pdCh7XG4gICAgICBjb2RpZ29Db250ZW5pZG9UYWJsZXJvOiBjLmNvZGlnb0NvbnRlbmlkb1RhYmxlcm8sXG4gICAgICBhY3Rpb246IFwiaG92ZXItaW5cIixcbiAgICAgIHBheWxvYWQ6IHt9LFxuICAgIH0pO1xuICB9XG4gIC8qKiBFbWl0ZSBlbCBldmVudG8gYGhvdmVyLW91dGAgY3VhbmRvIGVsIGN1cnNvciBzYWxlIGRlIHVuIGl0ZW0gZGVsIGdyaWQuICovXG4gIG9uSXRlbUhvdmVyT3V0KGM6IERhc2hib2FyZENvbnRlbnQpOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldEV2ZW50LmVtaXQoe1xuICAgICAgY29kaWdvQ29udGVuaWRvVGFibGVybzogYy5jb2RpZ29Db250ZW5pZG9UYWJsZXJvLFxuICAgICAgYWN0aW9uOiBcImhvdmVyLW91dFwiLFxuICAgICAgcGF5bG9hZDoge30sXG4gICAgfSk7XG4gIH1cbiAgb25JdGVtS2V5KGM6IERhc2hib2FyZENvbnRlbnQpOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldEV2ZW50LmVtaXQoe1xuICAgICAgY29kaWdvQ29udGVuaWRvVGFibGVybzogYy5jb2RpZ29Db250ZW5pZG9UYWJsZXJvLFxuICAgICAgYWN0aW9uOiBcImNsaWNrXCIsXG4gICAgICBwYXlsb2FkOiB7IGtleTogXCJFbnRlclwiIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzbXgtZGFzaC1ncmlkXCJcbiAgW25nU3R5bGVdPVwie1xuICAgICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkVGVtcGxhdGVDb2x1bW5zKCksXG4gICAgZ2FwOiBncmlkT3B0aW9ucz8uZ2FwIHx8ICcxMnB4JyxcbiAgICAnZ3JpZC1hdXRvLXJvd3MnOiBncmlkT3B0aW9ucz8uYXV0b1Jvd0hlaWdodCB8fCAndmFyKC0tc214LWRhc2gtcm93LWhlaWdodCwgbWlubWF4KDEyMHB4LCBhdXRvKSknLFxuICB9XCI+XG4gIDxkaXYgY2xhc3M9XCJzbXgtZGFzaC1ncmlkLWl0ZW1cIiAqbmdGb3I9XCJsZXQgYyBvZiBjb250ZW50czsgdHJhY2tCeTogdHJhY2tDb2RlXCIgW25nU3R5bGVdPVwiZ2V0Q2FyZFN0eWxlKGMpXCI+XG4gICAgPGRpdiBjbGFzcz1cInNteC1kYXNoLWdyaWQtaXRlbS1oZWFkZXJcIiAqbmdJZj1cImMuZXh0cmE/Llsnc2hvd0dyaWRIZWFkZXInXSAhPT0gZmFsc2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzbXgtZGFzaC1ncmlkLWl0ZW0tdGl0bGVcIj57eyBjLm5vbWJyZSB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNteC1kYXNoLWdyaWQtaXRlbS1jb2RlXCI+e3sgYy5jb2RpZ29Db250ZW5pZG9UYWJsZXJvIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzbXgtZGFzaC1ncmlkLWl0ZW0tYm9keVwiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBbY2xhc3Muc214LWJvZHktdmNlbnRlcl09XCJjLmV4dHJhPy5bJ2NvbnRlbnRBbGlnbiddID09PSAnY2VudGVyJ1wiXG4gICAgICBbbmdTdHlsZV09XCJnZXRCb2R5U3R5bGUoYylcIlxuICAgICAgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soYywgJGV2ZW50KVwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwib25JdGVtS2V5KGMpXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzb2x2ZUNvbXBvbmVudChjLmNvZGlnb1RpcG9HcmFmaWNvKSBhcyBjbXA7IGVsc2UgcGxhY2Vob2xkZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJjbXA7IGlucHV0czogZ2V0SW5wdXRzKGMpXCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI3BsYWNlaG9sZGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic214LWRhc2gtZ3JpZC1pdGVtLXBsYWNlaG9sZGVyXCI+Q2FyZCB7eyBjLmNvZGlnb1RpcG9HcmFmaWNvIH19PC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic214LWRhc2gtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3VtYXgtZXJwLWNvbXBvbmVudC9zcmMvbGliL3N1bWF4LWRhc2hib2FyZC9zbXgtZGFzaC1ncmlkL3NteC1kYXNoLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN1bWF4LWVycC1jb21wb25lbnQvc3JjL2xpYi9zdW1heC1kYXNoYm9hcmQvc214LWRhc2gtZ3JpZC9zbXgtZGFzaC1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBd0UsVUFBVSxFQUFrQixNQUFNLGdCQUFnQixDQUFDOzs7QUFVbEksTUFBTSxPQUFPLG9CQUFvQjtJQVJqQztRQVNFLHFIQUFxSDtRQUM1RyxhQUFRLEdBQXVCLEVBQUUsQ0FBQztRQVMzQyxxR0FBcUc7UUFDM0YsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBd0UsQ0FBQztRQUV6RyxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUE2RCxDQUFDO0tBMFA3RjtJQXhQQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQscUVBQXFFO0lBQ3JFLFNBQVMsQ0FBQyxJQUFZLEVBQUUsQ0FBbUI7UUFDekMsT0FBTyxDQUFDLENBQUMsc0JB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VTtZQUNsQixPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCw2RUFBNkU7SUFDN0UsY0FBYyxDQUFDLENBQW1CO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3BCLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxzQkFBc0I7WUFDaEQsTUFBTSxFQUFFLFdBQVc7WUFDbkIsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsU0FBUyxDQUFDLENBQW1CO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3BCLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxzQkFBc0I7WUFDaEQsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFO1NBQzFCLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBdlFVLG9CQUFvQjttR0FBcEIsb0JBQW9CLCtRQ1pqQywwMENBOEJBLDBpQ0R2QlksWUFBWTs7NEZBS1gsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxtQkFHM0MsdUJBQXVCLENBQUMsTUFBTTs4QkFJdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdDb21wb25lbnRPdXRsZXQsIE5nRm9yT2YsIE5nU3R5bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBeGlzWFksIENoYXJ0VHlwZUNvZGUsIERhc2hib2FyZENvbnRlbnQsIEdyaWRPcHRpb25zLCBWYWx1ZUZvcm1hdHRlciwgV2lkZ2V0Q29kZSwgV2lkZ2V0UmVnaXN0cnkgfSBmcm9tIFwiLi4vdHlwZXMvdHlwZXNcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInNteC1kYXNoLWdyaWRcIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdGb3JPZiwgTmdTdHlsZSwgTmdDb21wb25lbnRPdXRsZXRdLFxuICB0ZW1wbGF0ZVVybDogXCIuL3NteC1kYXNoLWdyaWQuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3NteC1kYXNoLWdyaWQuY29tcG9uZW50LnNjc3NcIl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTbXhEYXNoR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8qKiBDb25maWd1cmFjaW9uZXMgZGUgbG9zIHdpZGdldHMgYSByZW5kZXJpemFyLiBDYWRhIGl0ZW0gZGVmaW5lIHBvc2ljacOzbiwgdGFtYcOxbyB5IGRhdG9zIGRlbCB3aWRnZXQuIEBkZWZhdWx0IFtdICovXG4gIEBJbnB1dCgpIGNvbnRlbnRzOiBEYXNoYm9hcmRDb250ZW50W10gPSBbXTtcbiAgLyoqIENvbmZpZ3VyYWNpw7NuIGRlbCBDU1MgR3JpZDogYGNvbHVtbnNgIChkZWZhdWx0IDEyKSwgYGdhcGAsIGBhdXRvUm93SGVpZ2h0YCwgYGF1dG9QbGFjZWAuICovXG4gIEBJbnB1dCgpIGdyaWRPcHRpb25zPzogR3JpZE9wdGlvbnM7XG4gIC8qKiBNYXBhIGBjw7NkaWdvV2lkZ2V0IOKGkiBjb21wb25lbnRlIEFuZ3VsYXJgIHBhcmEgcmVzb2x2ZXIgd2lkZ2V0cyBjdXN0b20gbWVkaWFudGUgYE5nQ29tcG9uZW50T3V0bGV0YC4gKi9cbiAgQElucHV0KCkgd2lkZ2V0UmVnaXN0cnk/OiBXaWRnZXRSZWdpc3RyeTtcbiAgLyoqIEZ1bmNpb25lcyBkZSBmb3JtYXRlbyBkZSB2YWxvcmVzIHBvciBub21icmUsIHByb3BhZ2FkYXMgYSB0b2RvcyBsb3Mgd2lkZ2V0cyBoaWpvcy4gKi9cbiAgQElucHV0KCkgZm9ybWF0dGVycz86IFJlY29yZDxzdHJpbmcsIFZhbHVlRm9ybWF0dGVyPjtcbiAgLyoqIEludGVybmFjaW9uYWxpemFjacOzbiBwcm9wYWdhZGEgYSB0b2RvcyBsb3Mgd2lkZ2V0cyBoaWpvcy4gKi9cbiAgQElucHV0KCkgaTE4bj86IHsgbW9udGhzPzogc3RyaW5nW10gfTtcbiAgLyoqIFJlLWVtaXRlIGxvcyBldmVudG9zIGRlIGxvcyB3aWRnZXRzIGhpam9zOiBgY2xpY2tgLCBgaG92ZXItaW5gLCBgaG92ZXItb3V0YCB5IGFjY2lvbmVzIGN1c3RvbS4gKi9cbiAgQE91dHB1dCgpIHdpZGdldEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGNvZGlnb0NvbnRlbmlkb1RhYmxlcm86IHN0cmluZzsgYWN0aW9uOiBzdHJpbmc7IHBheWxvYWQ6IHVua25vd24gfT4oKTtcblxuICBwcml2YXRlIF9pbnB1dHNDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCB7IGhhc2g6IHN0cmluZzsgaW5wdXRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9PigpO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcImNvbnRlbnRzXCJdKSB7XG4gICAgICB0aGlzLl9pbnB1dHNDYWNoZS5jbGVhcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBGdW5jacOzbiBkZSB0cmFja0J5IHBhcmEgYCpuZ0ZvcmAgc29icmUgZWwgYXJyYXkgZGUgY29udGVuaWRvcy4gKi9cbiAgdHJhY2tDb2RlKF9pZHg6IG51bWJlciwgYzogRGFzaGJvYXJkQ29udGVudCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGMuY29kaWdvQ29udGVuaWRvVGFibGVybztcbiAgfVxuICAvKiogRGV2dWVsdmUgZWwgdmFsb3IgQ1NTIGBncmlkLXRlbXBsYXRlLWNvbHVtbnNgIGJhc2FkbyBlbiBgZ3JpZE9wdGlvbnMuY29sdW1uc2AuICovXG4gIGdldEdyaWRUZW1wbGF0ZUNvbHVtbnMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb2xzID0gdGhpcy5ncmlkT3B0aW9ucz8uY29sdW1ucyA/PyAxMjtcbiAgICByZXR1cm4gYHJlcGVhdCgke2NvbHN9LCAxZnIpYDtcbiAgfVxuXG4gIC8qKiBSZXN1ZWx2ZSBlbCBjb21wb25lbnRlIEFuZ3VsYXIgY29ycmVzcG9uZGllbnRlIGEgdW4gYFdpZGdldENvZGVgIGRlc2RlIGB3aWRnZXRSZWdpc3RyeWAuIFJldG9ybmEgYG51bGxgIHNpIG5vIHNlIGVuY3VlbnRyYS4gKi9cbiAgcmVzb2x2ZUNvbXBvbmVudChjb2RlOiBzdHJpbmcpOiBUeXBlPHVua25vd24+IHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLndpZGdldFJlZ2lzdHJ5KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgY29tcCA9IHRoaXMud2lkZ2V0UmVnaXN0cnlbY29kZV07XG4gICAgcmV0dXJuIGNvbXAgPz8gbnVsbDtcbiAgfVxuXG4gIC8qKiBDYWxjdWxhIGxvcyBlc3RpbG9zIENTUyBHcmlkIChgZ3JpZC1jb2x1bW4tc3RhcnQvZW5kYCwgYGdyaWQtcm93LXN0YXJ0L2VuZGApIHBhcmEgdW4gaXRlbSBkZWwgZ3JpZC4gKi9cbiAgZ2V0SXRlbVN0eWxlKGM6IERhc2hib2FyZENvbnRlbnQpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBpZiAodGhpcy5ncmlkT3B0aW9ucz8uYXV0b1BsYWNlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBcImdyaWQtY29sdW1uLWVuZFwiOiBcInNwYW4gXCIgKyBjLmNhbnRpZGFkQ29sdW1uYXMsXG4gICAgICAgIFwiZ3JpZC1yb3ctZW5kXCI6IFwic3BhbiBcIiArIGMuY2FudGlkYWRGaWxhcyxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBcImdyaWQtY29sdW1uLXN0YXJ0XCI6IFN0cmluZyhjLnBvc2ljaW9uWCArIDEpLFxuICAgICAgXCJncmlkLWNvbHVtbi1lbmRcIjogXCJzcGFuIFwiICsgYy5jYW50aWRhZENvbHVtbmFzLFxuICAgICAgXCJncmlkLXJvdy1zdGFydFwiOiBTdHJpbmcoYy5wb3NpY2lvblkgKyAxKSxcbiAgICAgIFwiZ3JpZC1yb3ctZW5kXCI6IFwic3BhbiBcIiArIGMuY2FudGlkYWRGaWxhcyxcbiAgICB9O1xuICB9XG5cbiAgLyoqIENvbWJpbmEgbG9zIGVzdGlsb3MgZGUgcG9zaWNpb25hbWllbnRvIEdyaWQgY29uIGxvcyBlc3RpbG9zIGN1c3RvbSBkZSBgZXh0cmEuY2FyZFN0eWxlYC4gKi9cbiAgZ2V0Q2FyZFN0eWxlKGM6IERhc2hib2FyZENvbnRlbnQpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBjb25zdCBwb3MgPSB0aGlzLmdldEl0ZW1TdHlsZShjKTtcbiAgICBjb25zdCBjdXN0b20gPSAoYy5leHRyYT8uW1wiY2FyZFN0eWxlXCJdIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID8/IHt9O1xuICAgIHJldHVybiB7IC4uLnBvcywgLi4uY3VzdG9tIH07XG4gIH1cblxuICAvKiogUmV0b3JuYSBsb3MgZXN0aWxvcyBjdXN0b20gZGVsIGN1ZXJwbyBkZWwgY2FyZCBkZXNkZSBgZXh0cmEuYm9keVN0eWxlYC4gKi9cbiAgZ2V0Qm9keVN0eWxlKGM6IERhc2hib2FyZENvbnRlbnQpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gKGMuZXh0cmE/LltcImJvZHlTdHlsZVwiXSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSA/PyB7fTtcbiAgfVxuXG4gIC8qKiBSZXRvcm5hIGxvcyBgaW5wdXRzYCBkZWwgd2lkZ2V0IGNvbiBjYWNow6kgcG9yIGhhc2ggSlNPTi5cbiAgICogRXZpdGEgcmVjb25zdHJ1aXIgZWwgb2JqZXRvIGVuIGNhZGEgY2ljbG8gZGUgZGV0ZWNjacOzbiBkZSBjYW1iaW9zLlxuICAgKi9cbiAgZ2V0SW5wdXRzKGM6IERhc2hib2FyZENvbnRlbnQpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgY29uc3Qga2V5ID0gYy5jb2RpZ29Db250ZW5pZG9UYWJsZXJvO1xuICAgIGNvbnN0IGZyZXNoID0gdGhpcy5fY29tcHV0ZUlucHV0cyhjKTtcbiAgICBsZXQgaGFzaDogc3RyaW5nO1xuICAgIHRyeSB7XG4gICAgICBoYXNoID0gSlNPTi5zdHJpbmdpZnkoZnJlc2gpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgaGFzaCA9IGtleSArIFwiX1wiICsgRGF0ZS5ub3coKTtcbiAgICB9XG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy5faW5wdXRzQ2FjaGUuZ2V0KGtleSk7XG4gICAgaWYgKGNhY2hlZCAmJiBjYWNoZWQuaGFzaCA9PT0gaGFzaCkge1xuICAgICAgcmV0dXJuIGNhY2hlZC5pbnB1dHM7XG4gICAgfVxuICAgIHRoaXMuX2lucHV0c0NhY2hlLnNldChrZXksIHsgaGFzaCwgaW5wdXRzOiBmcmVzaCB9KTtcbiAgICByZXR1cm4gZnJlc2g7XG4gIH1cblxuICBwcml2YXRlIF9jb21wdXRlSW5wdXRzKGM6IERhc2hib2FyZENvbnRlbnQpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgY29uc3QgYmFzZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICB0aXRsZTogYy5ub21icmUsXG4gICAgICAuLi4oYy5leHRyYT8uW1wic2hvd1RpdGxlXCJdICE9PSB1bmRlZmluZWQgPyB7IHNob3dUaXRsZTogYy5leHRyYVtcInNob3dUaXRsZVwiXSB9IDoge30pLFxuICAgICAgdGl0bGVTdHlsZTogKGMuZXh0cmE/LltcInRpdGxlU3R5bGVcIl0gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPz8ge30sXG4gICAgICB0aXRsZUhBbGlnbjogKGMuZXh0cmE/LltcInRpdGxlSEFsaWduXCJdIGFzIHN0cmluZykgPz8gXCJjZW50ZXJcIixcbiAgICAgIGNvbnRlbnRWQWxpZ246IChjLmV4dHJhPy5bXCJjb250ZW50VkFsaWduXCJdIGFzIHN0cmluZykgPz8gXCJjZW50ZXJcIixcbiAgICAgIGNvbnRlbnRIQWxpZ246IChjLmV4dHJhPy5bXCJjb250ZW50SEFsaWduXCJdIGFzIHN0cmluZykgPz8gXCJjZW50ZXJcIixcbiAgICAgIGZvcm1hdHRlcnM6IHRoaXMuZm9ybWF0dGVycyA/PyB7fSxcbiAgICAgIGkxOG46IHRoaXMuaTE4biA/PyB7fSxcbiAgICB9O1xuICAgIHN3aXRjaCAoYy5jb2RpZ29UaXBvR3JhZmljbykge1xuICAgICAgY2FzZSBXaWRnZXRDb2RlLkJhc2ljOlxuICAgICAgICByZXR1cm4geyAuLi5iYXNlLCB2YWx1ZTogYy5leHRyYT8uW1widmFsdWVcIl0gfTtcbiAgICAgIGNhc2UgV2lkZ2V0Q29kZS5MZWdlbmRDaGFydDpcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xlZ2VuZENoYXJ0SW5wdXRzKGJhc2UsIGMpO1xuICAgICAgY2FzZSBXaWRnZXRDb2RlLkl0ZXJhYmxlOlxuICAgICAgY2FzZSBXaWRnZXRDb2RlLk1ldHJpY0xpc3Q6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBpdGVtczogKGMuZXh0cmE/LltcIml0ZW1zXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICAgICAgZW5hYmxlU2Nyb2xsOiAoYy5leHRyYT8uW1wiZW5hYmxlU2Nyb2xsXCJdIGFzIGJvb2xlYW4pID8/IGZhbHNlLFxuICAgICAgICAgIGVuYWJsZU5hdmlnYXRpb246IChjLmV4dHJhPy5bXCJlbmFibGVOYXZpZ2F0aW9uXCJdIGFzIGJvb2xlYW4pID8/IGZhbHNlLFxuICAgICAgICAgIG5hdmlnYXRpb25UYXJnZXQ6IChjLmV4dHJhPy5bXCJuYXZpZ2F0aW9uVGFyZ2V0XCJdIGFzIFwiZW1pdFwiIHwgXCJ3aW5kb3dcIikgPz8gXCJlbWl0XCIsXG4gICAgICAgICAgbGFiZWxBbGlnbjogKGMuZXh0cmE/LltcImxhYmVsQWxpZ25cIl0gYXMgc3RyaW5nKSA/PyBcImxlZnRcIixcbiAgICAgICAgICB2YWx1ZUFsaWduOiAoYy5leHRyYT8uW1widmFsdWVBbGlnblwiXSBhcyBzdHJpbmcpID8/IFwicmlnaHRcIixcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgV2lkZ2V0Q29kZS5LcGlMZWdlbmQ6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICB2YWx1ZTogYy5leHRyYT8uW1widmFsdWVcIl0sXG4gICAgICAgICAgZGVsdGE6IGMuZXh0cmE/LltcImRlbHRhXCJdLFxuICAgICAgICAgIHBlcmlvZExhYmVsOiBjLmV4dHJhPy5bXCJwZXJpb2RMYWJlbFwiXSxcbiAgICAgICAgICBpdGVtczogKGMuZXh0cmE/LltcIml0ZW1zXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICAgICAgc3BhcmtsaW5lOiAoYy5leHRyYT8uW1wic3BhcmtsaW5lXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICAgIH07XG4gICAgICBjYXNlIFdpZGdldENvZGUuQ2hhcnRTdGF0aWM6XG4gICAgICAgIHJldHVybiB0aGlzLl9sZWdlbmRDaGFydElucHV0cyhiYXNlLCBjKTtcbiAgICAgIGNhc2UgV2lkZ2V0Q29kZS5Eb3VnaG51dEV4dExhYmVsczpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGl0ZW1zOiAoYy5leHRyYT8uW1wiaXRlbXNcIl0gYXMgdW5rbm93bltdKSA/PyBbXSxcbiAgICAgICAgICBsZWdlbmRWaXNpYmxlOiAoYy5leHRyYT8uW1wibGVnZW5kVmlzaWJsZVwiXSBhcyBib29sZWFuKSA/PyBmYWxzZSxcbiAgICAgICAgICBjaGFydFdpZHRoOiAoYy5leHRyYT8uW1wiY2hhcnRXaWR0aFwiXSBhcyBudW1iZXIgfCBcImF1dG9cIikgPz8gMCxcbiAgICAgICAgICBjaGFydEhlaWdodDogKGMuZXh0cmE/LltcImNoYXJ0SGVpZ2h0XCJdIGFzIG51bWJlciB8IFwiYXV0b1wiKSA/PyAwLFxuICAgICAgICAgIG51bWJlckZvcm1hdDogKGMuZXh0cmE/LltcIm51bWJlckZvcm1hdFwiXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPz8ge30sXG4gICAgICAgICAgYm90dG9tTGVnZW5kSXRlbXM6IChjLmV4dHJhPy5bXCJib3R0b21MZWdlbmRJdGVtc1wiXSBhcyB1bmtub3duW10pID8/IFtdLFxuICAgICAgICAgIHN1bW1hcnlJdGVtczogKGMuZXh0cmE/LltcInN1bW1hcnlJdGVtc1wiXSBhcyB1bmtub3duW10pID8/IFtdLFxuICAgICAgICAgIGJvdHRvbUxlZ2VuZFN0eWxlOiAoYy5leHRyYT8uW1wiYm90dG9tTGVnZW5kU3R5bGVcIl0gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPz8ge30sXG4gICAgICAgICAgc3VtbWFyeVN0eWxlOiAoYy5leHRyYT8uW1wic3VtbWFyeVN0eWxlXCJdIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID8/IHt9LFxuICAgICAgICB9O1xuICAgICAgY2FzZSBXaWRnZXRDb2RlLlRhYmxlOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmJhc2UsXG4gICAgICAgICAgcm93czogKGMuZXh0cmE/LltcInJvd3NcIl0gYXMgdW5rbm93bltdKSA/PyBbXSxcbiAgICAgICAgICBjb2x1bW5zOiAoYy5leHRyYT8uW1wiY29sdW1uc1wiXSBhcyB1bmtub3duW10pID8/IFtdLFxuICAgICAgICAgIGhlYWRlckFsaWduOiAoYy5leHRyYT8uW1wiaGVhZGVyQWxpZ25cIl0gYXMgc3RyaW5nKSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgY2VsbEFsaWduOiAoYy5leHRyYT8uW1wiY2VsbEFsaWduXCJdIGFzIHN0cmluZykgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgIG51bWVyaWNDZWxsQWxpZ246IChjLmV4dHJhPy5bXCJudW1lcmljQ2VsbEFsaWduXCJdIGFzIHN0cmluZykgPz8gXCJyaWdodFwiLFxuICAgICAgICAgIHRleHRDZWxsQWxpZ246IChjLmV4dHJhPy5bXCJ0ZXh0Q2VsbEFsaWduXCJdIGFzIHN0cmluZykgPz8gXCJsZWZ0XCIsXG4gICAgICAgICAgc2hvd0JvcmRlcnM6IChjLmV4dHJhPy5bXCJzaG93Qm9yZGVyc1wiXSBhcyBib29sZWFuKSA/PyB0cnVlLFxuICAgICAgICAgIGNlbGxGb250V2VpZ2h0OiAoYy5leHRyYT8uW1wiY2VsbEZvbnRXZWlnaHRcIl0gYXMgc3RyaW5nKSA/PyBcIm5vcm1hbFwiLFxuICAgICAgICAgIGhlYWRlckZvbnRXZWlnaHQ6IChjLmV4dHJhPy5bXCJoZWFkZXJGb250V2VpZ2h0XCJdIGFzIHN0cmluZykgPz8gXCI2MDBcIixcbiAgICAgICAgICBjZWxsRm9udFNpemU6IChjLmV4dHJhPy5bXCJjZWxsRm9udFNpemVcIl0gYXMgc3RyaW5nKSA/PyBcIlwiLFxuICAgICAgICAgIGhlYWRlckZvbnRTaXplOiAoYy5leHRyYT8uW1wiaGVhZGVyRm9udFNpemVcIl0gYXMgc3RyaW5nKSA/PyBcIlwiLFxuICAgICAgICAgIHRhYmxlU3R5bGU6IChjLmV4dHJhPy5bXCJ0YWJsZVN0eWxlXCJdIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID8/IHt9LFxuICAgICAgICAgIHRhYmxlQ29udGFpbmVyQWxpZ246IChjLmV4dHJhPy5bXCJ0YWJsZUNvbnRhaW5lckFsaWduXCJdIGFzIFwibGVmdFwiIHwgXCJjZW50ZXJcIiB8IFwicmlnaHRcIikgPz8gXCJjZW50ZXJcIixcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgV2lkZ2V0Q29kZS5DaGFydEludGVyYWN0aXZlVGFiczpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGNoYXJ0VHlwZTogKGMuZXh0cmE/LltcImNoYXJ0VHlwZVwiXSBhcyBDaGFydFR5cGVDb2RlKSA/PyBcImxpbmVcIixcbiAgICAgICAgICBsZWdlbmRWaXNpYmxlOiAoYy5leHRyYT8uW1wibGVnZW5kVmlzaWJsZVwiXSBhcyBib29sZWFuKSA/PyB0cnVlLFxuICAgICAgICAgIGxhYmVsczogKGMuZXh0cmE/LltcImxhYmVsc1wiXSBhcyB1bmtub3duW10pID8/IFtdLFxuICAgICAgICAgIGRhdGFzZXRzOiAoYy5leHRyYT8uW1wiZGF0YXNldHNcIl0gYXMgdW5rbm93bltdKSA/PyBbXSxcbiAgICAgICAgICBpbmRleEF4aXM6IChjLmV4dHJhPy5bXCJpbmRleEF4aXNcIl0gYXMgQXhpc1hZKSA/PyBcInhcIixcbiAgICAgICAgICB0ZW5zaW9uOiAoYy5leHRyYT8uW1widGVuc2lvblwiXSBhcyBudW1iZXIpID8/IDAuMyxcbiAgICAgICAgICBjaGFydE9wdGlvbnM6IChjLmV4dHJhPy5bXCJjaGFydE9wdGlvbnNcIl0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICBjb250cm9sc1RhYnM6IChjLmV4dHJhPy5bXCJjb250cm9sc1RhYnNcIl0gYXMgdW5rbm93bltdKSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgY2hhcnRXaWR0aDogKGMuZXh0cmE/LltcImNoYXJ0V2lkdGhcIl0gYXMgbnVtYmVyIHwgXCJhdXRvXCIpID8/IDM2MCxcbiAgICAgICAgICBjaGFydEhlaWdodDogKGMuZXh0cmE/LltcImNoYXJ0SGVpZ2h0XCJdIGFzIG51bWJlciB8IFwiYXV0b1wiKSA/PyAyMjAsXG4gICAgICAgICAgbnVtYmVyRm9ybWF0OiAoYy5leHRyYT8uW1wibnVtYmVyRm9ybWF0XCJdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA/PyB7fSxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgV2lkZ2V0Q29kZS5DaGFydEludGVyYWN0aXZlU2VsZWN0OlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmJhc2UsXG4gICAgICAgICAgY2hhcnRUeXBlOiAoYy5leHRyYT8uW1wiY2hhcnRUeXBlXCJdIGFzIENoYXJ0VHlwZUNvZGUpID8/IFwiYmFyXCIsXG4gICAgICAgICAgbGVnZW5kVmlzaWJsZTogKGMuZXh0cmE/LltcImxlZ2VuZFZpc2libGVcIl0gYXMgYm9vbGVhbikgPz8gdHJ1ZSxcbiAgICAgICAgICBsYWJlbHM6IChjLmV4dHJhPy5bXCJsYWJlbHNcIl0gYXMgdW5rbm93bltdKSA/PyBbXSxcbiAgICAgICAgICBkYXRhc2V0czogKGMuZXh0cmE/LltcImRhdGFzZXRzXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICAgICAgaW5kZXhBeGlzOiAoYy5leHRyYT8uW1wiaW5kZXhBeGlzXCJdIGFzIEF4aXNYWSkgPz8gXCJ4XCIsXG4gICAgICAgICAgdGVuc2lvbjogKGMuZXh0cmE/LltcInRlbnNpb25cIl0gYXMgbnVtYmVyKSA/PyAwLjMsXG4gICAgICAgICAgY2hhcnRPcHRpb25zOiAoYy5leHRyYT8uW1wiY2hhcnRPcHRpb25zXCJdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgY29udHJvbHNTZWxlY3Q6IChjLmV4dHJhPy5bXCJjb250cm9sc1NlbGVjdFwiXSBhcyB1bmtub3duW10pID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICBjaGFydFdpZHRoOiAoYy5leHRyYT8uW1wiY2hhcnRXaWR0aFwiXSBhcyBudW1iZXIgfCBcImF1dG9cIikgPz8gMzYwLFxuICAgICAgICAgIGNoYXJ0SGVpZ2h0OiAoYy5leHRyYT8uW1wiY2hhcnRIZWlnaHRcIl0gYXMgbnVtYmVyIHwgXCJhdXRvXCIpID8/IDIyMCxcbiAgICAgICAgICBudW1iZXJGb3JtYXQ6IChjLmV4dHJhPy5bXCJudW1iZXJGb3JtYXRcIl0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID8/IHt9LFxuICAgICAgICB9O1xuICAgICAgY2FzZSBXaWRnZXRDb2RlLlJhbmtpbmc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBpdGVtczogKGMuZXh0cmE/LltcIml0ZW1zXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICAgICAgc2hvd0JhcnM6IChjLmV4dHJhPy5bXCJzaG93QmFyc1wiXSBhcyBib29sZWFuKSA/PyB0cnVlLFxuICAgICAgICAgIGVuYWJsZU5hdmlnYXRpb246IChjLmV4dHJhPy5bXCJlbmFibGVOYXZpZ2F0aW9uXCJdIGFzIGJvb2xlYW4pID8/IGZhbHNlLFxuICAgICAgICAgIG5hdmlnYXRpb25UYXJnZXQ6IChjLmV4dHJhPy5bXCJuYXZpZ2F0aW9uVGFyZ2V0XCJdIGFzIFwiZW1pdFwiIHwgXCJ3aW5kb3dcIikgPz8gXCJlbWl0XCIsXG4gICAgICAgICAgbGFiZWxBbGlnbjogKGMuZXh0cmE/LltcImxhYmVsQWxpZ25cIl0gYXMgc3RyaW5nKSA/PyBcImxlZnRcIixcbiAgICAgICAgICB2YWx1ZUFsaWduOiAoYy5leHRyYT8uW1widmFsdWVBbGlnblwiXSBhcyBzdHJpbmcpID8/IFwicmlnaHRcIixcbiAgICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7IC4uLmJhc2UsIC4uLihjLmV4dHJhID8/IHt9KSB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xlZ2VuZENoYXJ0SW5wdXRzKGJhc2U6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBjOiBEYXNoYm9hcmRDb250ZW50KTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5iYXNlLFxuICAgICAgY2hhcnRUeXBlOiAoYy5leHRyYT8uW1wiY2hhcnRUeXBlXCJdIGFzIENoYXJ0VHlwZUNvZGUpID8/IFwicGllXCIsXG4gICAgICBsZWdlbmRJdGVtczogKGMuZXh0cmE/LltcImxlZ2VuZEl0ZW1zXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICBzdWJJdGVtczogKGMuZXh0cmE/LltcInN1Ykl0ZW1zXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICBsZWdlbmRWaXNpYmxlOiAoYy5leHRyYT8uW1wibGVnZW5kVmlzaWJsZVwiXSBhcyBib29sZWFuKSA/PyB0cnVlLFxuICAgICAgbGFiZWxzOiAoYy5leHRyYT8uW1wibGFiZWxzXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICBkYXRhc2V0czogKGMuZXh0cmE/LltcImRhdGFzZXRzXCJdIGFzIHVua25vd25bXSkgPz8gW10sXG4gICAgICBpbmRleEF4aXM6IChjLmV4dHJhPy5bXCJpbmRleEF4aXNcIl0gYXMgQXhpc1hZKSA/PyBcInhcIixcbiAgICAgIHRlbnNpb246IChjLmV4dHJhPy5bXCJ0ZW5zaW9uXCJdIGFzIG51bWJlcikgPz8gMC4zLFxuICAgICAgY2hhcnRPcHRpb25zOiAoYy5leHRyYT8uW1wiY2hhcnRPcHRpb25zXCJdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA/PyB1bmRlZmluZWQsXG4gICAgICBlbmFibGVOYXZpZ2F0aW9uOiAoYy5leHRyYT8uW1wiZW5hYmxlTmF2aWdhdGlvblwiXSBhcyBib29sZWFuKSA/PyBmYWxzZSxcbiAgICAgIG5hdmlnYXRpb25UYXJnZXQ6IChjLmV4dHJhPy5bXCJuYXZpZ2F0aW9uVGFyZ2V0XCJdIGFzIFwiZW1pdFwiIHwgXCJ3aW5kb3dcIikgPz8gXCJlbWl0XCIsXG4gICAgICBjaGFydFdpZHRoOiAoYy5leHRyYT8uW1wiY2hhcnRXaWR0aFwiXSBhcyBudW1iZXIgfCBcImF1dG9cIikgPz8gMzYwLFxuICAgICAgY2hhcnRIZWlnaHQ6IChjLmV4dHJhPy5bXCJjaGFydEhlaWdodFwiXSBhcyBudW1iZXIgfCBcImF1dG9cIikgPz8gMjIwLFxuICAgICAgbnVtYmVyRm9ybWF0OiAoYy5leHRyYT8uW1wibnVtYmVyRm9ybWF0XCJdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA/PyB7fSxcbiAgICAgIGJvdHRvbUxlZ2VuZEl0ZW1zOiAoYy5leHRyYT8uW1wiYm90dG9tTGVnZW5kSXRlbXNcIl0gYXMgdW5rbm93bltdKSA/PyBbXSxcbiAgICAgIHN1bW1hcnlJdGVtczogKGMuZXh0cmE/LltcInN1bW1hcnlJdGVtc1wiXSBhcyB1bmtub3duW10pID8/IFtdLFxuICAgICAgYm90dG9tTGVnZW5kU3R5bGU6IChjLmV4dHJhPy5bXCJib3R0b21MZWdlbmRTdHlsZVwiXSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSA/PyB7fSxcbiAgICAgIHN1bW1hcnlTdHlsZTogKGMuZXh0cmE/LltcInN1bW1hcnlTdHlsZVwiXSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSA/PyB7fSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIE1hbmVqYSBlbCBjbGljayBzb2JyZSB1biBpdGVtIGRlbCBncmlkLiBJZ25vcmEgY2xpY2tzIGVuIGVsZW1lbnRvcyBpbnRlcmFjdGl2b3MgKGxpbmtzLCBsYWJlbHMsIGRhdGEtc2tpcC1jbGljaykuICovXG4gIG9uSXRlbUNsaWNrKGM6IERhc2hib2FyZENvbnRlbnQsIGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJhd1RhcmdldCA9IGV2dC50YXJnZXQgYXMgYW55O1xuICAgIGNvbnN0IGVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSByYXdUYXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCA/IHJhd1RhcmdldCA6IChyYXdUYXJnZXQ/LnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsKSA/PyBudWxsO1xuICAgIGNvbnN0IGlzSW50ZXJhY3RpdmUgPVxuICAgICAgISFlbCAmJiAoZWwuY2xvc2VzdChcImFcIikgIT09IG51bGwgfHwgZWwuY2xvc2VzdChcIltkYXRhLXNraXAtY2xpY2s9J3RydWUnXVwiKSAhPT0gbnVsbCB8fCBlbC5jbG9zZXN0KFwiLmxhYmVsXCIpICE9PSBudWxsKTtcbiAgICBpZiAoaXNJbnRlcmFjdGl2ZSB8fCAoYyBhcyBhbnkpPy5leHRyYT8uW1wiZW5hYmxlTmF2aWdhdGlvblwiXSA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLndpZGdldEV2ZW50LmVtaXQoe1xuICAgICAgY29kaWdvQ29udGVuaWRvVGFibGVybzogYy5jb2RpZ29Db250ZW5pZG9UYWJsZXJvLFxuICAgICAgYWN0aW9uOiBcImNsaWNrXCIsXG4gICAgICBwYXlsb2FkOiB7IHg6IGV2dC5jbGllbnRYLCB5OiBldnQuY2xpZW50WSB9LFxuICAgIH0pO1xuICB9XG4gIC8qKiBFbWl0ZSBlbCBldmVudG8gYGhvdmVyLWluYCBjdWFuZG8gZWwgY3Vyc29yIGVudHJhIGVuIHVuIGl0ZW0gZGVsIGdyaWQuICovXG4gIG9uSXRlbUhvdmVySW4oYzogRGFzaGJvYXJkQ29udGVudCk6IHZvaWQge1xuICAgIHRoaXMud2lkZ2V0RXZlbnQuZW1pdCh7XG4gICAgICBjb2RpZ29Db250ZW5pZG9UYWJsZXJvOiBjLmNvZGlnb0NvbnRlbmlkb1RhYmxlcm8sXG4gICAgICBhY3Rpb246IFwiaG92ZXItaW5cIixcbiAgICAgIHBheWxvYWQ6IHt9LFxuICAgIH0pO1xuICB9XG4gIC8qKiBFbWl0ZSBlbCBldmVudG8gYGhvdmVyLW91dGAgY3VhbmRvIGVsIGN1cnNvciBzYWxlIGRlIHVuIGl0ZW0gZGVsIGdyaWQuICovXG4gIG9uSXRlbUhvdmVyT3V0KGM6IERhc2hib2FyZENvbnRlbnQpOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldEV2ZW50LmVtaXQoe1xuICAgICAgY29kaWdvQ29udGVuaWRvVGFibGVybzogYy5jb2RpZ29Db250ZW5pZG9UYWJsZXJvLFxuICAgICAgYWN0aW9uOiBcImhvdmVyLW91dFwiLFxuICAgICAgcGF5bG9hZDoge30sXG4gICAgfSk7XG4gIH1cbiAgb25JdGVtS2V5KGM6IERhc2hib2FyZENvbnRlbnQpOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldEV2ZW50LmVtaXQoe1xuICAgICAgY29kaWdvQ29udGVuaWRvVGFibGVybzogYy5jb2RpZ29Db250ZW5pZG9UYWJsZXJvLFxuICAgICAgYWN0aW9uOiBcImNsaWNrXCIsXG4gICAgICBwYXlsb2FkOiB7IGtleTogXCJFbnRlclwiIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzbXgtZGFzaC1ncmlkXCJcbiAgW25nU3R5bGVdPVwie1xuICAgICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnOiBnZXRHcmlkVGVtcGxhdGVDb2x1bW5zKCksXG4gICAgZ2FwOiBncmlkT3B0aW9ucz8uZ2FwIHx8ICcxMnB4JyxcbiAgICAnZ3JpZC1hdXRvLXJvd3MnOiBncmlkT3B0aW9ucz8uYXV0b1Jvd0hlaWdodCB8fCAndmFyKC0tc214LWRhc2gtcm93LWhlaWdodCwgbWlubWF4KDEyMHB4LCBhdXRvKSknLFxuICB9XCI+XG4gIDxkaXYgY2xhc3M9XCJzbXgtZGFzaC1ncmlkLWl0ZW1cIiAqbmdGb3I9XCJsZXQgYyBvZiBjb250ZW50czsgdHJhY2tCeTogdHJhY2tDb2RlXCIgW25nU3R5bGVdPVwiZ2V0Q2FyZFN0eWxlKGMpXCI+XG4gICAgPGRpdiBjbGFzcz1cInNteC1kYXNoLWdyaWQtaXRlbS1oZWFkZXJcIiAqbmdJZj1cImMuZXh0cmE/Llsnc2hvd0dyaWRIZWFkZXInXSAhPT0gZmFsc2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzbXgtZGFzaC1ncmlkLWl0ZW0tdGl0bGVcIj57eyBjLm5vbWJyZSB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNteC1kYXNoLWdyaWQtaXRlbS1jb2RlXCI+e3sgYy5jb2RpZ29Db250ZW5pZG9UYWJsZXJvIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzbXgtZGFzaC1ncmlkLWl0ZW0tYm9keVwiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBbY2xhc3Muc214LWJvZHktdmNlbnRlcl09XCJjLmV4dHJhPy5bJ2NvbnRlbnRBbGlnbiddID09PSAnY2VudGVyJ1wiXG4gICAgICBbbmdTdHlsZV09XCJnZXRCb2R5U3R5bGUoYylcIlxuICAgICAgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soYywgJGV2ZW50KVwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwib25JdGVtS2V5KGMpXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzb2x2ZUNvbXBvbmVudChjLmNvZGlnb1RpcG9HcmFmaWNvKSBhcyBjbXA7IGVsc2UgcGxhY2Vob2xkZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJjbXA7IGlucHV0czogZ2V0SW5wdXRzKGMpXCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI3BsYWNlaG9sZGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic214LWRhc2gtZ3JpZC1pdGVtLXBsYWNlaG9sZGVyXCI+Q2FyZCB7eyBjLmNvZGlnb1RpcG9HcmFmaWNvIH19PC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -8836,6 +8836,8 @@ class SmxDashCardMetricListComponent {
|
|
|
8836
8836
|
this.titleStyle = {};
|
|
8837
8837
|
/** Lista de métricas a mostrar. Cada item tiene `label`, `value` y opcionalmente `route`. @default [] */
|
|
8838
8838
|
this.items = [];
|
|
8839
|
+
/** Activa el scroll vertical cuando la lista excede el alto disponible. @default false */
|
|
8840
|
+
this.enableScroll = false;
|
|
8839
8841
|
/** Habilita la navegación al hacer clic en un item (requiere que el item tenga `route`). @default false */
|
|
8840
8842
|
this.enableNavigation = false;
|
|
8841
8843
|
/** Destino de la navegación: `'emit'` dispara el `@Output() navigate`; `'window'` abre en nueva pestaña. @default "emit" */
|
|
@@ -8867,11 +8869,11 @@ class SmxDashCardMetricListComponent {
|
|
|
8867
8869
|
this.navigate.emit({ label: String(it?.label ?? ""), route });
|
|
8868
8870
|
}
|
|
8869
8871
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmxDashCardMetricListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8870
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmxDashCardMetricListComponent, isStandalone: true, selector: "smx-dash-card-metric-list", inputs: { title: "title", showTitle: "showTitle", titleStyle: "titleStyle", items: "items", enableNavigation: "enableNavigation", navigationTarget: "navigationTarget", labelAlign: "labelAlign", valueAlign: "valueAlign", titleHAlign: "titleHAlign", contentVAlign: "contentVAlign", contentHAlign: "contentHAlign", formatters: "formatters", i18n: "i18n" }, outputs: { navigate: "navigate" }, ngImport: i0, template: "<div class=\"smx-card-list\">\n <div *ngIf=\"showTitle && title\" class=\"smx-card-inner-title\" [ngStyle]=\"titleStyle\" [style.text-align]=\"titleHAlign\">{{ title }}</div>\n <div\n class=\"smx-list-content\"\n [style.justify-content]=\"contentVAlign === 'top' ? 'flex-start' : contentVAlign === 'bottom' ? 'flex-end' : 'center'\"\n [style.align-items]=\"contentHAlign === 'left' ? 'flex-start' : contentHAlign === 'right' ? 'flex-end' : 'center'\">\n <ul class=\"metric-list\">\n <li class=\"metric-item\" *ngFor=\"let it of items\">\n <ng-container *ngIf=\"enableNavigation && it.route; else mlLabelSpan\">\n <a\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [href]=\"it.route\"\n target=\"_blank\"\n rel=\"noopener\"\n [attr.data-skip-click]=\"'true'\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"$event.stopPropagation()\">\n {{ it.label }}\n </a>\n </ng-container>\n <ng-template #mlLabelSpan>\n <span\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup)=\"onKeyLabel()\"\n (click)=\"onItemClick(it, $event)\"\n (keyup.enter)=\"onItemClick(it, $event)\">\n {{ it.label }}\n </span>\n </ng-template>\n <span\n class=\"value\"\n [style.text-align]=\"valueAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup.enter)=\"onItemClick(it, $event)\"\n (click)=\"onItemClick(it, $event)\">\n {{ it.value }}\n </span>\n </li>\n </ul>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-height:0}.smx-card-inner-title{flex-shrink:0;font-size:13px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.04em;color:#333;margin-bottom:8px;padding:0 4px}.smx-card-list{display:flex;flex-direction:column;flex:1;min-height:0;width:min(100%,680px);margin:0 auto;box-sizing:border-box}.smx-list-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:0;overflow:hidden;width:100%}.metric-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px;width:100%;margin:0 auto;box-sizing:border-box}.metric-item{display:grid;grid-template-columns:1fr auto;column-gap:78px;align-items:baseline;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid #eee}.metric-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.label{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.value{font-weight:600;text-align:right}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8872
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmxDashCardMetricListComponent, isStandalone: true, selector: "smx-dash-card-metric-list", inputs: { title: "title", showTitle: "showTitle", titleStyle: "titleStyle", items: "items", enableScroll: "enableScroll", enableNavigation: "enableNavigation", navigationTarget: "navigationTarget", labelAlign: "labelAlign", valueAlign: "valueAlign", titleHAlign: "titleHAlign", contentVAlign: "contentVAlign", contentHAlign: "contentHAlign", formatters: "formatters", i18n: "i18n" }, outputs: { navigate: "navigate" }, ngImport: i0, template: "<div class=\"smx-card-list\">\n <div *ngIf=\"showTitle && title\" class=\"smx-card-inner-title\" [ngStyle]=\"titleStyle\" [style.text-align]=\"titleHAlign\">{{ title }}</div>\n <div\n class=\"smx-list-content\"\n [class.smx-scroll]=\"enableScroll\"\n [style.justify-content]=\"\n enableScroll ? 'flex-start' : contentVAlign === 'top' ? 'flex-start' : contentVAlign === 'bottom' ? 'flex-end' : 'center'\n \"\n [style.align-items]=\"contentHAlign === 'left' ? 'flex-start' : contentHAlign === 'right' ? 'flex-end' : 'center'\"\n [style.overflow-y]=\"enableScroll ? 'auto' : 'hidden'\"\n [style.overflow-x]=\"'hidden'\">\n <ul class=\"metric-list\">\n <li class=\"metric-item\" *ngFor=\"let it of items\">\n <ng-container *ngIf=\"enableNavigation && it.route; else mlLabelSpan\">\n <a\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [href]=\"it.route\"\n target=\"_blank\"\n rel=\"noopener\"\n [attr.data-skip-click]=\"'true'\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"$event.stopPropagation()\">\n {{ it.label }}\n </a>\n </ng-container>\n <ng-template #mlLabelSpan>\n <span\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup)=\"onKeyLabel()\"\n (click)=\"onItemClick(it, $event)\"\n (keyup.enter)=\"onItemClick(it, $event)\">\n {{ it.label }}\n </span>\n </ng-template>\n <span\n class=\"value\"\n [style.text-align]=\"valueAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup.enter)=\"onItemClick(it, $event)\"\n (click)=\"onItemClick(it, $event)\">\n {{ it.value }}\n </span>\n </li>\n </ul>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-height:0}.smx-card-inner-title{flex-shrink:0;font-size:13px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.04em;color:#333;margin-bottom:8px;padding:0 4px}.smx-card-list{display:flex;flex-direction:column;flex:1;min-height:0;width:min(100%,680px);margin:0 auto;box-sizing:border-box}.smx-list-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:0;overflow:hidden;width:100%}.smx-list-content.smx-scroll{padding-right:12px;scrollbar-gutter:stable}.metric-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px;width:100%;margin:0 auto;box-sizing:border-box}.metric-item{display:grid;grid-template-columns:1fr auto;column-gap:78px;align-items:baseline;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid #eee}.metric-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.label{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.value{font-weight:600;text-align:right}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8871
8873
|
}
|
|
8872
8874
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmxDashCardMetricListComponent, decorators: [{
|
|
8873
8875
|
type: Component,
|
|
8874
|
-
args: [{ selector: "smx-dash-card-metric-list", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"smx-card-list\">\n <div *ngIf=\"showTitle && title\" class=\"smx-card-inner-title\" [ngStyle]=\"titleStyle\" [style.text-align]=\"titleHAlign\">{{ title }}</div>\n <div\n class=\"smx-list-content\"\n [style.justify-content]=\"contentVAlign === 'top' ? 'flex-start' : contentVAlign === 'bottom' ? 'flex-end' : 'center'\"\n [style.align-items]=\"contentHAlign === 'left' ? 'flex-start' : contentHAlign === 'right' ? 'flex-end' : 'center'\">\n <ul class=\"metric-list\">\n <li class=\"metric-item\" *ngFor=\"let it of items\">\n <ng-container *ngIf=\"enableNavigation && it.route; else mlLabelSpan\">\n <a\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [href]=\"it.route\"\n target=\"_blank\"\n rel=\"noopener\"\n [attr.data-skip-click]=\"'true'\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"$event.stopPropagation()\">\n {{ it.label }}\n </a>\n </ng-container>\n <ng-template #mlLabelSpan>\n <span\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup)=\"onKeyLabel()\"\n (click)=\"onItemClick(it, $event)\"\n (keyup.enter)=\"onItemClick(it, $event)\">\n {{ it.label }}\n </span>\n </ng-template>\n <span\n class=\"value\"\n [style.text-align]=\"valueAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup.enter)=\"onItemClick(it, $event)\"\n (click)=\"onItemClick(it, $event)\">\n {{ it.value }}\n </span>\n </li>\n </ul>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-height:0}.smx-card-inner-title{flex-shrink:0;font-size:13px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.04em;color:#333;margin-bottom:8px;padding:0 4px}.smx-card-list{display:flex;flex-direction:column;flex:1;min-height:0;width:min(100%,680px);margin:0 auto;box-sizing:border-box}.smx-list-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:0;overflow:hidden;width:100%}.metric-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px;width:100%;margin:0 auto;box-sizing:border-box}.metric-item{display:grid;grid-template-columns:1fr auto;column-gap:78px;align-items:baseline;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid #eee}.metric-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.label{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.value{font-weight:600;text-align:right}\n"] }]
|
|
8876
|
+
args: [{ selector: "smx-dash-card-metric-list", standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"smx-card-list\">\n <div *ngIf=\"showTitle && title\" class=\"smx-card-inner-title\" [ngStyle]=\"titleStyle\" [style.text-align]=\"titleHAlign\">{{ title }}</div>\n <div\n class=\"smx-list-content\"\n [class.smx-scroll]=\"enableScroll\"\n [style.justify-content]=\"\n enableScroll ? 'flex-start' : contentVAlign === 'top' ? 'flex-start' : contentVAlign === 'bottom' ? 'flex-end' : 'center'\n \"\n [style.align-items]=\"contentHAlign === 'left' ? 'flex-start' : contentHAlign === 'right' ? 'flex-end' : 'center'\"\n [style.overflow-y]=\"enableScroll ? 'auto' : 'hidden'\"\n [style.overflow-x]=\"'hidden'\">\n <ul class=\"metric-list\">\n <li class=\"metric-item\" *ngFor=\"let it of items\">\n <ng-container *ngIf=\"enableNavigation && it.route; else mlLabelSpan\">\n <a\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [href]=\"it.route\"\n target=\"_blank\"\n rel=\"noopener\"\n [attr.data-skip-click]=\"'true'\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"$event.stopPropagation()\">\n {{ it.label }}\n </a>\n </ng-container>\n <ng-template #mlLabelSpan>\n <span\n class=\"label\"\n [style.text-align]=\"labelAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup)=\"onKeyLabel()\"\n (click)=\"onItemClick(it, $event)\"\n (keyup.enter)=\"onItemClick(it, $event)\">\n {{ it.label }}\n </span>\n </ng-template>\n <span\n class=\"value\"\n [style.text-align]=\"valueAlign\"\n [attr.tabindex]=\"enableNavigation && it.route ? 0 : null\"\n [attr.data-skip-click]=\"'true'\"\n (keydown)=\"onKeyLabel()\"\n (keyup.enter)=\"onItemClick(it, $event)\"\n (click)=\"onItemClick(it, $event)\">\n {{ it.value }}\n </span>\n </li>\n </ul>\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-height:0}.smx-card-inner-title{flex-shrink:0;font-size:13px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.04em;color:#333;margin-bottom:8px;padding:0 4px}.smx-card-list{display:flex;flex-direction:column;flex:1;min-height:0;width:min(100%,680px);margin:0 auto;box-sizing:border-box}.smx-list-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:0;overflow:hidden;width:100%}.smx-list-content.smx-scroll{padding-right:12px;scrollbar-gutter:stable}.metric-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px;width:100%;margin:0 auto;box-sizing:border-box}.metric-item{display:grid;grid-template-columns:1fr auto;column-gap:78px;align-items:baseline;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid #eee}.metric-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.label{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.value{font-weight:600;text-align:right}\n"] }]
|
|
8875
8877
|
}], propDecorators: { title: [{
|
|
8876
8878
|
type: Input
|
|
8877
8879
|
}], showTitle: [{
|
|
@@ -8880,6 +8882,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
8880
8882
|
type: Input
|
|
8881
8883
|
}], items: [{
|
|
8882
8884
|
type: Input
|
|
8885
|
+
}], enableScroll: [{
|
|
8886
|
+
type: Input
|
|
8883
8887
|
}], enableNavigation: [{
|
|
8884
8888
|
type: Input
|
|
8885
8889
|
}], navigationTarget: [{
|
|
@@ -9395,6 +9399,7 @@ class SmxDashGridComponent {
|
|
|
9395
9399
|
return {
|
|
9396
9400
|
...base,
|
|
9397
9401
|
items: c.extra?.["items"] ?? [],
|
|
9402
|
+
enableScroll: c.extra?.["enableScroll"] ?? false,
|
|
9398
9403
|
enableNavigation: c.extra?.["enableNavigation"] ?? false,
|
|
9399
9404
|
navigationTarget: c.extra?.["navigationTarget"] ?? "emit",
|
|
9400
9405
|
labelAlign: c.extra?.["labelAlign"] ?? "left",
|