mapa-library-ui 0.25.0 → 0.25.2
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/esm2020/src/lib/components/capability/lib/components/capability/src/capability-comparative-chart/capability-comparative-chart.component.mjs +2 -1
- package/esm2020/src/lib/components/capability/lib/components/capability/src/capability-expand/capability-expand.component.mjs +2 -2
- package/esm2020/src/lib/components/capability/lib/components/capability/src/capability-indicator-chart/capability-indicator-chart.component.mjs +2 -1
- package/esm2020/src/lib/components/table/lib/components/table/src/group-report-interface.mjs +1 -1
- package/esm2020/src/lib/components/table/lib/components/table/src/table.component.mjs +3 -1
- package/fesm2015/mapa-library-ui-src-lib-components-capability.mjs +4 -2
- package/fesm2015/mapa-library-ui-src-lib-components-capability.mjs.map +1 -1
- package/fesm2015/mapa-library-ui-src-lib-components-table.mjs +2 -0
- package/fesm2015/mapa-library-ui-src-lib-components-table.mjs.map +1 -1
- package/fesm2020/mapa-library-ui-src-lib-components-capability.mjs +4 -2
- package/fesm2020/mapa-library-ui-src-lib-components-capability.mjs.map +1 -1
- package/fesm2020/mapa-library-ui-src-lib-components-table.mjs +2 -0
- package/fesm2020/mapa-library-ui-src-lib-components-table.mjs.map +1 -1
- package/mapa-library-ui-0.25.2.tgz +0 -0
- package/package.json +1 -1
- package/src/lib/components/table/lib/components/table/src/group-report-interface.d.ts +2 -0
- package/mapa-library-ui-0.25.0.tgz +0 -0
|
@@ -8,6 +8,7 @@ export class MapaCapabilityComparativeChartComponent {
|
|
|
8
8
|
average: item.average,
|
|
9
9
|
interval: item.interval,
|
|
10
10
|
classificationId: item.classificationId,
|
|
11
|
+
classificationColor: item.classificationColor,
|
|
11
12
|
isIndividually: item.isIndividually,
|
|
12
13
|
};
|
|
13
14
|
}
|
|
@@ -20,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
20
21
|
}], propDecorators: { data: [{
|
|
21
22
|
type: Input
|
|
22
23
|
}] } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0eS1jb21wYXJhdGl2ZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBhLWxpYnJhcnktdWkvc3JjL2xpYi9jb21wb25lbnRzL2NhcGFiaWxpdHkvc3JjL2NhcGFiaWxpdHktY29tcGFyYXRpdmUtY2hhcnQvY2FwYWJpbGl0eS1jb21wYXJhdGl2ZS1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBhLWxpYnJhcnktdWkvc3JjL2xpYi9jb21wb25lbnRzL2NhcGFiaWxpdHkvc3JjL2NhcGFiaWxpdHktY29tcGFyYXRpdmUtY2hhcnQvY2FwYWJpbGl0eS1jb21wYXJhdGl2ZS1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVNqRCxNQUFNLE9BQU8sdUNBQXVDO0lBRzNDLFlBQVksQ0FBQyxJQUFvQjtRQUN0QyxPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7WUFDN0MsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1NBQ3BDLENBQUM7SUFDSixDQUFDOztxSUFYVSx1Q0FBdUM7eUhBQXZDLHVDQUF1QyxtR0NUcEQsMGZBZUE7NEZETmEsdUNBQXVDO2tCQUxuRCxTQUFTOytCQUNFLG1DQUFtQzs4QkFLcEMsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FwYWJpbGl0eUl0ZW0gfSBmcm9tICcuLi9lc3NlbnRpYWxzL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ2FwYWJpbGl0eUNvbXBhcmF0aXZlIH0gZnJvbSAnLi4vZXNzZW50aWFscy9pbnRlcmZhY2VzL2NhcGFiaWxpdHktY29tcGFyYXRpdmUuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFwYS1jYXBhYmlsaXR5LWNvbXBhcmF0aXZlLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcGFiaWxpdHktY29tcGFyYXRpdmUtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXBhYmlsaXR5LWNvbXBhcmF0aXZlLWNoYXJ0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWFwYUNhcGFiaWxpdHlDb21wYXJhdGl2ZUNoYXJ0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgZGF0YSE6IENhcGFiaWxpdHlDb21wYXJhdGl2ZTtcblxuICBwdWJsaWMgc2V0Q2xlYW5JdGVtKGl0ZW06IENhcGFiaWxpdHlJdGVtKTogQ2FwYWJpbGl0eUl0ZW0ge1xuICAgIHJldHVybiB7XG4gICAgICBhdmVyYWdlOiBpdGVtLmF2ZXJhZ2UsXG4gICAgICBpbnRlcnZhbDogaXRlbS5pbnRlcnZhbCxcbiAgICAgIGNsYXNzaWZpY2F0aW9uSWQ6IGl0ZW0uY2xhc3NpZmljYXRpb25JZCxcbiAgICAgIGNsYXNzaWZpY2F0aW9uQ29sb3I6IGl0ZW0uY2xhc3NpZmljYXRpb25Db2xvcixcbiAgICAgIGlzSW5kaXZpZHVhbGx5OiBpdGVtLmlzSW5kaXZpZHVhbGx5LFxuICAgIH07XG4gIH1cbn1cbiIsIjx0YWJsZSBjbGFzcz1cImNhcGFiaWxpdHktY29tcGFyYXRpdmVfX2NoYXJ0XCI+XG4gIDx0ciAqbmdGb3I9XCJsZXQgaW5kaWNhdG9yIG9mIGRhdGEuaW5kaWNhdG9yc1wiPlxuICAgIDx0aD5cbiAgICAgIDxwPnt7IGluZGljYXRvci5uYW1lIH19PC9wPlxuICAgIDwvdGg+XG4gICAgPHRkIGNsYXNzPVwiY2FwYWJpbGl0eS1jb21wYXJhdGl2ZV9fY2hhcnQtLWluZGljYXRvcnNcIj5cbiAgICAgIDxtYXBhLWNhcGFiaWxpdHktY29tcGFyYXRpdmUtaW5kaWNhdG9yXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGluZGljYXRvci5pdGVtc1wiXG4gICAgICAgIFtpdGVtXT1cInNldENsZWFuSXRlbShpdGVtKVwiXG4gICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgIFtzdHlsZS53aWR0aC4lXT1cIml0ZW0uaW50ZXJ2YWxcIlxuICAgICAgPjwvbWFwYS1jYXBhYmlsaXR5LWNvbXBhcmF0aXZlLWluZGljYXRvcj5cbiAgICA8L3RkPlxuICA8L3RyPlxuPC90YWJsZT5cbiJdfQ==
|
|
@@ -17,10 +17,10 @@ export class MapaCapabilityExpandComponent {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
MapaCapabilityExpandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaCapabilityExpandComponent, deps: [{ token: i1.CapabilityClassificationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
-
MapaCapabilityExpandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaCapabilityExpandComponent, selector: "mapa-capability-expand", inputs: { data: "data" }, ngImport: i0, template: "<div\n class=\"capability__concept\"\n *ngIf=\"data.capabilityConcept?.concept || data.capabilityConcept?.result\"\n>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.concept\"\n >\n <div class=\"capability__concept--title\">Conceito</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.concept! }}\n </div>\n </div>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.result\"\n >\n <div class=\"capability__concept--title\">Resultado</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.result! }}\n </div>\n </div>\n</div>\n<div class=\"capability__expanded\">\n <div *ngFor=\"let item of data.items\" class=\"capability__expanded--item\">\n <div class=\"name\">\n <div class=\"capability__expanded--name\">\n <span *ngIf=\"item.classificationColor\">\n <strong *ngIf=\"!classification.getByItem(item).positive\">\u2198\uFE0E </strong>\n <strong *ngIf=\"classification.getByItem(item).positive\">\u2197 </strong>\n </span>\n {{ item.name }}\n </div>\n <mapa-tag\n [tag]=\"createTag(item)\"\n class=\"capability__expanded--tag\"\n *ngIf=\"item.classificationId\"\n >\n <mapa-capability-dot\n [item]=\"item\"\n *ngIf=\"item.classificationColor\"\n ></mapa-capability-dot>\n {{ item.classificationName }}\n </mapa-tag>\n </div>\n\n <p class=\"capability__expanded--description\" *ngIf=\"item.description\">\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && !classification.getByItem(item).positive\"\n >\u2198\uFE0E Dire\u00E7\u00E3o Negativa |\n </strong>\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && classification.getByItem(item).positive\"\n >\u2197 Dire\u00E7\u00E3o Positiva |\n </strong>\n <span [innerHTML]=\"item.description\"></span>\n </p>\n </div>\n</div>\n", styles: [".capability__concept{display:flex;flex:1 1 48%;gap:42px;margin:24px 0 60px}.capability__concept--content{width:48%}.capability__concept--title{color:#000;font-family:SF Pro Display;font-size:16px;font-style:normal;font-weight:600;line-height:24px;margin-bottom:8px}.capability__concept--text{color:#676767;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.capability__expanded{border-top:1px solid #cdcdcd;padding:36px 0 16px 16px;gap:30px}@media (min-width: 800px) and (max-width: 1250px){.capability__expanded{display:grid;grid-template-columns:
|
|
20
|
+
MapaCapabilityExpandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaCapabilityExpandComponent, selector: "mapa-capability-expand", inputs: { data: "data" }, ngImport: i0, template: "<div\n class=\"capability__concept\"\n *ngIf=\"data.capabilityConcept?.concept || data.capabilityConcept?.result\"\n>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.concept\"\n >\n <div class=\"capability__concept--title\">Conceito</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.concept! }}\n </div>\n </div>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.result\"\n >\n <div class=\"capability__concept--title\">Resultado</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.result! }}\n </div>\n </div>\n</div>\n<div class=\"capability__expanded\">\n <div *ngFor=\"let item of data.items\" class=\"capability__expanded--item\">\n <div class=\"name\">\n <div class=\"capability__expanded--name\">\n <span *ngIf=\"item.classificationColor\">\n <strong *ngIf=\"!classification.getByItem(item).positive\">\u2198\uFE0E </strong>\n <strong *ngIf=\"classification.getByItem(item).positive\">\u2197 </strong>\n </span>\n {{ item.name }}\n </div>\n <mapa-tag\n [tag]=\"createTag(item)\"\n class=\"capability__expanded--tag\"\n *ngIf=\"item.classificationId\"\n >\n <mapa-capability-dot\n [item]=\"item\"\n *ngIf=\"item.classificationColor\"\n ></mapa-capability-dot>\n {{ item.classificationName }}\n </mapa-tag>\n </div>\n\n <p class=\"capability__expanded--description\" *ngIf=\"item.description\">\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && !classification.getByItem(item).positive\"\n >\u2198\uFE0E Dire\u00E7\u00E3o Negativa |\n </strong>\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && classification.getByItem(item).positive\"\n >\u2197 Dire\u00E7\u00E3o Positiva |\n </strong>\n <span [innerHTML]=\"item.description\"></span>\n </p>\n </div>\n</div>\n", styles: [".capability__concept{display:flex;flex:1 1 48%;gap:42px;margin:24px 0 60px}.capability__concept--content{width:48%}.capability__concept--title{color:#000;font-family:SF Pro Display;font-size:16px;font-style:normal;font-weight:600;line-height:24px;margin-bottom:8px}.capability__concept--text{color:#676767;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.capability__expanded{border-top:1px solid #cdcdcd;padding:36px 0 16px 16px;gap:30px}@media (min-width: 800px) and (max-width: 1250px){.capability__expanded{display:grid;grid-template-columns:1fr 1fr}}@media (min-width: 1251px){.capability__expanded{display:grid;grid-template-columns:1fr 1fr 1fr}}.capability__expanded--description{color:#8c8f94;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.capability__expanded--item .name{display:flex;justify-content:space-between;margin-bottom:16px}.capability__expanded--item mapa-tag .mapa-tag--small{display:flex;align-items:center;gap:8px;padding:2px 8px 2px 3px;font-size:14px!important;font-style:normal;font-weight:400;height:18px}.capability__expanded--name{color:#181818;font-size:20px;font-style:normal;font-weight:400}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TagComponent, selector: "mapa-tag", inputs: ["tag"] }, { kind: "component", type: i4.MapaCapabilityDotComponent, selector: "mapa-capability-dot", inputs: ["type", "item", "tooltip", "capability"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
21
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaCapabilityExpandComponent, decorators: [{
|
|
22
22
|
type: Component,
|
|
23
|
-
args: [{ selector: "mapa-capability-expand", encapsulation: ViewEncapsulation.None, template: "<div\n class=\"capability__concept\"\n *ngIf=\"data.capabilityConcept?.concept || data.capabilityConcept?.result\"\n>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.concept\"\n >\n <div class=\"capability__concept--title\">Conceito</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.concept! }}\n </div>\n </div>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.result\"\n >\n <div class=\"capability__concept--title\">Resultado</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.result! }}\n </div>\n </div>\n</div>\n<div class=\"capability__expanded\">\n <div *ngFor=\"let item of data.items\" class=\"capability__expanded--item\">\n <div class=\"name\">\n <div class=\"capability__expanded--name\">\n <span *ngIf=\"item.classificationColor\">\n <strong *ngIf=\"!classification.getByItem(item).positive\">\u2198\uFE0E </strong>\n <strong *ngIf=\"classification.getByItem(item).positive\">\u2197 </strong>\n </span>\n {{ item.name }}\n </div>\n <mapa-tag\n [tag]=\"createTag(item)\"\n class=\"capability__expanded--tag\"\n *ngIf=\"item.classificationId\"\n >\n <mapa-capability-dot\n [item]=\"item\"\n *ngIf=\"item.classificationColor\"\n ></mapa-capability-dot>\n {{ item.classificationName }}\n </mapa-tag>\n </div>\n\n <p class=\"capability__expanded--description\" *ngIf=\"item.description\">\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && !classification.getByItem(item).positive\"\n >\u2198\uFE0E Dire\u00E7\u00E3o Negativa |\n </strong>\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && classification.getByItem(item).positive\"\n >\u2197 Dire\u00E7\u00E3o Positiva |\n </strong>\n <span [innerHTML]=\"item.description\"></span>\n </p>\n </div>\n</div>\n", styles: [".capability__concept{display:flex;flex:1 1 48%;gap:42px;margin:24px 0 60px}.capability__concept--content{width:48%}.capability__concept--title{color:#000;font-family:SF Pro Display;font-size:16px;font-style:normal;font-weight:600;line-height:24px;margin-bottom:8px}.capability__concept--text{color:#676767;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.capability__expanded{border-top:1px solid #cdcdcd;padding:36px 0 16px 16px;gap:30px}@media (min-width: 800px) and (max-width: 1250px){.capability__expanded{display:grid;grid-template-columns:
|
|
23
|
+
args: [{ selector: "mapa-capability-expand", encapsulation: ViewEncapsulation.None, template: "<div\n class=\"capability__concept\"\n *ngIf=\"data.capabilityConcept?.concept || data.capabilityConcept?.result\"\n>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.concept\"\n >\n <div class=\"capability__concept--title\">Conceito</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.concept! }}\n </div>\n </div>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.result\"\n >\n <div class=\"capability__concept--title\">Resultado</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.result! }}\n </div>\n </div>\n</div>\n<div class=\"capability__expanded\">\n <div *ngFor=\"let item of data.items\" class=\"capability__expanded--item\">\n <div class=\"name\">\n <div class=\"capability__expanded--name\">\n <span *ngIf=\"item.classificationColor\">\n <strong *ngIf=\"!classification.getByItem(item).positive\">\u2198\uFE0E </strong>\n <strong *ngIf=\"classification.getByItem(item).positive\">\u2197 </strong>\n </span>\n {{ item.name }}\n </div>\n <mapa-tag\n [tag]=\"createTag(item)\"\n class=\"capability__expanded--tag\"\n *ngIf=\"item.classificationId\"\n >\n <mapa-capability-dot\n [item]=\"item\"\n *ngIf=\"item.classificationColor\"\n ></mapa-capability-dot>\n {{ item.classificationName }}\n </mapa-tag>\n </div>\n\n <p class=\"capability__expanded--description\" *ngIf=\"item.description\">\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && !classification.getByItem(item).positive\"\n >\u2198\uFE0E Dire\u00E7\u00E3o Negativa |\n </strong>\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && classification.getByItem(item).positive\"\n >\u2197 Dire\u00E7\u00E3o Positiva |\n </strong>\n <span [innerHTML]=\"item.description\"></span>\n </p>\n </div>\n</div>\n", styles: [".capability__concept{display:flex;flex:1 1 48%;gap:42px;margin:24px 0 60px}.capability__concept--content{width:48%}.capability__concept--title{color:#000;font-family:SF Pro Display;font-size:16px;font-style:normal;font-weight:600;line-height:24px;margin-bottom:8px}.capability__concept--text{color:#676767;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.capability__expanded{border-top:1px solid #cdcdcd;padding:36px 0 16px 16px;gap:30px}@media (min-width: 800px) and (max-width: 1250px){.capability__expanded{display:grid;grid-template-columns:1fr 1fr}}@media (min-width: 1251px){.capability__expanded{display:grid;grid-template-columns:1fr 1fr 1fr}}.capability__expanded--description{color:#8c8f94;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.capability__expanded--item .name{display:flex;justify-content:space-between;margin-bottom:16px}.capability__expanded--item mapa-tag .mapa-tag--small{display:flex;align-items:center;gap:8px;padding:2px 8px 2px 3px;font-size:14px!important;font-style:normal;font-weight:400;height:18px}.capability__expanded--name{color:#181818;font-size:20px;font-style:normal;font-weight:400}\n"] }]
|
|
24
24
|
}], ctorParameters: function () { return [{ type: i1.CapabilityClassificationService }]; }, propDecorators: { data: [{
|
|
25
25
|
type: Input
|
|
26
26
|
}] } });
|
|
@@ -10,6 +10,7 @@ export class MapaCapabilityIndicatorChartComponent {
|
|
|
10
10
|
setUnlabeledItem(item) {
|
|
11
11
|
return {
|
|
12
12
|
classificationId: item.classificationId,
|
|
13
|
+
classificationColor: item.classificationColor,
|
|
13
14
|
interval: item.interval,
|
|
14
15
|
};
|
|
15
16
|
}
|
|
@@ -29,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
29
30
|
}], ctorParameters: function () { return [{ type: i1.CapabilityClassificationService }]; }, propDecorators: { data: [{
|
|
30
31
|
type: Input
|
|
31
32
|
}] } });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0eS1pbmRpY2F0b3ItY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9jYXBhYmlsaXR5L3NyYy9jYXBhYmlsaXR5LWluZGljYXRvci1jaGFydC9jYXBhYmlsaXR5LWluZGljYXRvci1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBhLWxpYnJhcnktdWkvc3JjL2xpYi9jb21wb25lbnRzL2NhcGFiaWxpdHkvc3JjL2NhcGFiaWxpdHktaW5kaWNhdG9yLWNoYXJ0L2NhcGFiaWxpdHktaW5kaWNhdG9yLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQWFwRSxNQUFNLE9BQU8scUNBQXFDO0lBR2hELFlBQW1CLGNBQStDO1FBQS9DLG1CQUFjLEdBQWQsY0FBYyxDQUFpQztJQUFHLENBQUM7SUFFL0QsZ0JBQWdCLENBQUMsSUFBb0I7UUFDMUMsT0FBTztZQUNMLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtZQUM3QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQTtJQUNILENBQUM7SUFFTSxRQUFRLENBQUMsSUFBb0I7UUFDbEMsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFJLFFBQVEsR0FBRyxFQUFFO1lBQUUsT0FBTyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQzFDLE9BQU8sUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUN4QixDQUFDOzttSUFsQlUscUNBQXFDO3VIQUFyQyxxQ0FBcUMsaUdDYmxELG04QkEyQkE7NEZEZGEscUNBQXFDO2tCQVRqRCxTQUFTOytCQUNFLGlDQUFpQyxpQkFNNUIsaUJBQWlCLENBQUMsSUFBSTtzSEFHNUIsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ2FwYWJpbGl0eUl0ZW0gfSBmcm9tIFwiLi4vZXNzZW50aWFscy9pbnRlcmZhY2VzL2NhcGFiaWxpdHktaXRlbS5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IENhcGFiaWxpdHlDbGFzc2lmaWNhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vZXNzZW50aWFscy9zZXJ2aWNlcy9jYXBhYmlsaXR5LWNsYXNzaWZpY2F0aW9uLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1hcGEtY2FwYWJpbGl0eS1pbmRpY2F0b3ItY2hhcnRcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9jYXBhYmlsaXR5LWluZGljYXRvci1jaGFydC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcbiAgICBcIi4vY2FwYWJpbGl0eS1pbmRpY2F0b3ItY2hhcnQuY29tcG9uZW50LnNjc3NcIixcbiAgICBcIi4vLi4vLi4vc3R5bGVzL2NhcGFiaWxpdHkuc2Nzc1wiLFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIE1hcGFDYXBhYmlsaXR5SW5kaWNhdG9yQ2hhcnRDb21wb25lbnQge1xuICBASW5wdXQoKSBkYXRhITogQ2FwYWJpbGl0eUl0ZW1bXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY2xhc3NpZmljYXRpb246IENhcGFiaWxpdHlDbGFzc2lmaWNhdGlvblNlcnZpY2UpIHt9XG5cbiAgcHVibGljIHNldFVubGFiZWxlZEl0ZW0oaXRlbTogQ2FwYWJpbGl0eUl0ZW0pOiBDYXBhYmlsaXR5SXRlbSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNsYXNzaWZpY2F0aW9uSWQ6IGl0ZW0uY2xhc3NpZmljYXRpb25JZCxcbiAgICAgIGNsYXNzaWZpY2F0aW9uQ29sb3I6IGl0ZW0uY2xhc3NpZmljYXRpb25Db2xvcixcbiAgICAgIGludGVydmFsOiBpdGVtLmludGVydmFsLFxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRXaWR0aChpdGVtOiBDYXBhYmlsaXR5SXRlbSk6IHN0cmluZyB7XG4gICAgY29uc3QgbWluV2lkdGggPSA0MjtcbiAgICBjb25zdCBpbnRlcnZhbCA9IChpdGVtLmludGVydmFsIHx8IDApO1xuICAgIGlmIChpbnRlcnZhbCA8IDEwKSByZXR1cm4gbWluV2lkdGggKyAncHgnO1xuICAgIHJldHVybiBpbnRlcnZhbCArICclJztcbiAgfVxufVxuIiwiPHRhYmxlIGNsYXNzPVwiaW5kaWNhdG9yLWNoYXJ0XCI+XG4gIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhXCI+XG4gICAgPHRkIGNsYXNzPVwiaW5kaWNhdG9yLWNoYXJ0X19jb2x1bW4tLWRlc2NyaXB0aW9uXCI+e3sgaXRlbS5uYW1lIH19PC90ZD5cbiAgICA8dGQgY2xhc3M9XCJpbmRpY2F0b3ItY2hhcnRfX2NvbHVtbiBpbmRpY2F0b3ItY2hhcnRfX2NvbHVtbi0tbGVmdFwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImluZGljYXRvci1jaGFydF9fY29sdW1uLS1uZWdhdGl2ZVwiXG4gICAgICAgICpuZ0lmPVwiIWNsYXNzaWZpY2F0aW9uLmdldEJ5SXRlbShpdGVtKS5wb3NpdGl2ZVwiXG4gICAgICA+XG4gICAgICAgIDxtYXBhLWNhcGFiaWxpdHktaW5kaWNhdG9yXG4gICAgICAgICAgW2l0ZW1dPVwic2V0VW5sYWJlbGVkSXRlbShpdGVtKVwiXG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cImdldFdpZHRoKGl0ZW0pXCJcbiAgICAgICAgPjwvbWFwYS1jYXBhYmlsaXR5LWluZGljYXRvcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvdGQ+XG4gICAgPHRkIGNsYXNzPVwiaW5kaWNhdG9yLWNoYXJ0X19jb2x1bW4gaW5kaWNhdG9yLWNoYXJ0X19jb2x1bW4tLXJpZ2h0XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaW5kaWNhdG9yLWNoYXJ0X19jb2x1bW4tLXBvc2l0aXZlXCJcbiAgICAgICAgKm5nSWY9XCJjbGFzc2lmaWNhdGlvbi5nZXRCeUl0ZW0oaXRlbSkucG9zaXRpdmVcIlxuICAgICAgPlxuICAgICAgICA8bWFwYS1jYXBhYmlsaXR5LWluZGljYXRvclxuICAgICAgICAgIFtpdGVtXT1cInNldFVubGFiZWxlZEl0ZW0oaXRlbSlcIlxuICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJnZXRXaWR0aChpdGVtKVwiXG4gICAgICAgID48L21hcGEtY2FwYWJpbGl0eS1pbmRpY2F0b3I+XG4gICAgICA8L2Rpdj5cbiAgICA8L3RkPlxuICA8L3RyPlxuPC90YWJsZT5cbiJdfQ==
|
package/esm2020/src/lib/components/table/lib/components/table/src/group-report-interface.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtcmVwb3J0LWludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcGEtbGlicmFyeS11aS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvc3JjL2dyb3VwLXJlcG9ydC1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2FuZGlkYXRlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBjcGY/OiBzdHJpbmc7XG4gIGdlbmVyYWw/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGltZW5zaW9uIHtcbiAgZGltZW5zaW9uTmFtZTogc3RyaW5nO1xuICBkaXJlY3Rpb246IHN0cmluZztcbiAgZXNjb3JlVDogbnVtYmVyO1xuICBhdmVyYWdlPzogbnVtYmVyO1xuICBwZXJjZW50aWw/OiBhbnk7XG4gIHNvcnQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtcmVwb3J0LWludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcGEtbGlicmFyeS11aS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvc3JjL2dyb3VwLXJlcG9ydC1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2FuZGlkYXRlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBjcGY/OiBzdHJpbmc7XG4gIGdlbmVyYWw/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGltZW5zaW9uIHtcbiAgZGltZW5zaW9uTmFtZTogc3RyaW5nO1xuICBkaXJlY3Rpb246IHN0cmluZztcbiAgZXNjb3JlVDogbnVtYmVyO1xuICBhdmVyYWdlPzogbnVtYmVyO1xuICBwZXJjZW50aWw/OiBhbnk7XG4gIHNvcnQ/OiBib29sZWFuO1xuICBjbGFzc2lmaWNhdGlvbklkPzogbnVtYmVyO1xuICBjbGFzc2lmaWNhdGlvbkNvbG9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGljYXRvciB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGlyZWN0aW9uOiBzdHJpbmc7XG4gIGludGVydmFsOiBudW1iZXI7XG4gIGF2ZXJhZ2U/OiBudW1iZXI7XG4gIHNvcnQ/OiBib29sZWFuO1xuICBjbGFzc2lmaWNhdGlvbklkPzogbnVtYmVyO1xuICBjbGFzc2lmaWNhdGlvbkNvbG9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwUmVwb3J0SXRlbSB7XG4gIGNhbmRpZGF0ZTogQ2FuZGlkYXRlO1xuICBkaW1lbnNpb25zPzogRGltZW5zaW9uW107XG4gIGluZGljYXRvcnM/OiBJbmRpY2F0b3JbXTtcbn1cbiJdfQ==
|
|
@@ -202,6 +202,7 @@ export class MapaTableComponent {
|
|
|
202
202
|
value: dimension.escoreT,
|
|
203
203
|
direction: dimension.direction,
|
|
204
204
|
classificationId: dimension.classificationId,
|
|
205
|
+
classificationColor: dimension.classificationColor,
|
|
205
206
|
};
|
|
206
207
|
});
|
|
207
208
|
item.indicators?.forEach((indicator) => {
|
|
@@ -209,6 +210,7 @@ export class MapaTableComponent {
|
|
|
209
210
|
value: indicator.interval,
|
|
210
211
|
direction: indicator.direction,
|
|
211
212
|
classificationId: indicator.classificationId,
|
|
213
|
+
classificationColor: indicator.classificationColor,
|
|
212
214
|
};
|
|
213
215
|
});
|
|
214
216
|
result.push(dataItem);
|
|
@@ -363,4 +365,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
363
365
|
type: ViewChild,
|
|
364
366
|
args: [MatSort]
|
|
365
367
|
}] } });
|
|
366
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsWUFBWSxFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBUSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFZeEQsTUFBTSxPQUFPLGtCQUFrQjtJQWlDN0IsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFoQ2pDLFlBQU8sR0FBa0IsRUFBRSxDQUFDO1FBQzVCLFNBQUksR0FBYSxFQUFFLENBQUM7UUFDcEIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUt2QixnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFFcEMsY0FBUyxHQUFlLEVBQUUsQ0FBQztR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U0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2dCQUNuQixJQUFJO3NCQUF2QixTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5cbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgUGFnZUV2ZW50IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvclwiO1xuaW1wb3J0IHsgTWF0U29ydCwgU29ydCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zb3J0XCI7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcblxuaW1wb3J0IHsgUm93Q2xpY2tFdmVudCB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2ludGVyZmFjZXMvdGFibGUtcm93LWNsaWNrLWV2ZW50LmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9pbnRlcmZhY2VzL3RhYmxlLWNvbHVtbi5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEdyb3VwUmVwb3J0SXRlbSB9IGZyb20gXCIuL2dyb3VwLXJlcG9ydC1pbnRlcmZhY2VcIjtcbmltcG9ydCB7IE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSBcIi4uLy4uL21lbnUvcHVibGljLWFwaVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWFwYS10YWJsZVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RhYmxlLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1xuICAgIFwiLi90YWJsZS5jb21wb25lbnQuc2Nzc1wiLFxuICAgIFwiLi8uLi8uLi9jYXBhYmlsaXR5L3N0eWxlcy9jYXBhYmlsaXR5LnNjc3NcIixcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTWFwYVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgY29sdW1uczogVGFibGVDb2x1bW5bXSA9IFtdO1xuICBASW5wdXQoKSBkYXRhOiBPYmplY3RbXSA9IFtdO1xuICBASW5wdXQoKSBwYWdlSW5kZXg6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgPSA1O1xuICBASW5wdXQoKSB0b3RhbENvdW50OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSB0b3RhbFBhZ2VzOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBjaGVja2JveDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxhbnk+IHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBhY3Rpb25zPzogTWVudUl0ZW1bXSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZmlsdGVyQ29udHJvbDogRm9ybUNvbnRyb2wgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGdyb3VwUmVwb3J0OiBHcm91cFJlcG9ydEl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBpc0dyb3VwUmVwb3J0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBtZW51SXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcbiAgQElucHV0KCkgbWVudTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc2hvd1BhZ2luYXRvcjogYm9vbGVhbiA9IHRydWU7XG4gIFxuICBAVmlld0NoaWxkKE1hdE1lbnVUcmlnZ2VyKSB0cmlnZ2VyITogTWF0TWVudVRyaWdnZXI7XG5cbiAgQE91dHB1dCgpIHJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8Um93Q2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIFJvd0NsaWNrRXZlbnRcbiAgPigpO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dzOiBFdmVudEVtaXR0ZXI8YW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQE91dHB1dCgpIG9uQ2hhbmdlUGFnZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwgeyByZWFkOiB0cnVlIH0pIHBhZ2luYXRvciE6IE1hdFBhZ2luYXRvcjtcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0ITogTWF0U29ydDtcblxuICBjaGVja2JveEdyb3VwITogRm9ybUdyb3VwO1xuICBkYXRhU291cmNlITogTWF0VGFibGVEYXRhU291cmNlPE9iamVjdD47XG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW107XG4gIGN1cnJlbnRTb3J0OiBTb3J0IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0dyb3VwUmVwb3J0KSB7XG4gICAgICB0aGlzLmdlbmVyYXRlQ29sdW1ucygpO1xuICAgICAgdGhpcy5nZW5lcmF0ZUdyb3VwRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMuZGF0YSk7XG4gICAgdGhpcy5kYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5jb2x1bW5zLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4ua2V5KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1tcImRhdGFcIl0pIHtcbiAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2UpIHtcbiAgICAgICAgdGhpcy5kYXRhID0gY2hhbmdlc1tcImRhdGFcIl0uY3VycmVudFZhbHVlO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMuZGF0YSk7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xuICAgICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmNvbHVtbnMubWFwKChjb2x1bW4pID0+IGNvbHVtbi5rZXkpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbXCJmaWx0ZXJDb250cm9sXCJdICYmIHRoaXMuZmlsdGVyQ29udHJvbCkge1xuICAgICAgdGhpcy5zZXR1cEZpbHRlcigpO1xuICAgIH1cbiAgfVxuXG4gIHNldHVwRmlsdGVyKCkge1xuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UpIHtcbiAgICAgIHRoaXMuZmlsdGVyQ29udHJvbCEudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyID0gdmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5kYXRhU291cmNlLmZpbHRlclByZWRpY2F0ZSA9IChkYXRhOiBhbnksIGZpbHRlcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFTdHIgPSBPYmplY3Qua2V5cyhkYXRhKVxuICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnRUZXJtLCBrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIGN1cnJlbnRUZXJtICtcbiAgICAgICAgICAgICAgKChkYXRhW2tleV0gJiYgZGF0YVtrZXldLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSkgfHwgXCJcIikgK1xuICAgICAgICAgICAgICBcIiBcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LCBcIlwiKVxuICAgICAgICAgIC50cmltKClcbiAgICAgICAgICAudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICByZXR1cm4gZGF0YVN0ci5pbmRleE9mKGZpbHRlcikgIT09IC0xO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBpc0FsbFNlbGVjdGVkKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XG4gICAgICBjb25zdCBudW1Sb3dzID0gdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoO1xuICAgICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0b2dnbGVBbGxSb3dzKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgaWYgKHRoaXMuaXNBbGxTZWxlY3RlZCgpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRhdGFBc1BlcmlvZGljRWxlbWVudHMgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YSBhcyBhbnlbXTtcbiAgICAgICAgZGF0YUFzUGVyaW9kaWNFbGVtZW50cy5mb3JFYWNoKChyb3cpID0+IHRoaXMuc2VsZWN0aW9uPy5zZWxlY3Qocm93KSk7XG4gICAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjaGVja2JveExhYmVsKHJvdz86IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBpZiAoIXJvdykge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5pc0FsbFNlbGVjdGVkKCkgPyBcImRlc2VsZWN0XCIgOiBcInNlbGVjdFwifSBhbGxgO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGAke3RoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KSA/IFwiZGVzZWxlY3RcIiA6IFwic2VsZWN0XCJ9IHJvdyAke1xuICAgICAgICByb3cucG9zaXRpb24gKyAxXG4gICAgICB9YDtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBzb3J0RGF0YShjb2x1bW46IFRhYmxlQ29sdW1uKTogdm9pZCB7XG4gICAgaWYgKGNvbHVtbi5zb3J0KSB7XG4gICAgICBjb25zdCBzb3J0OiBTb3J0ID0geyBhY3RpdmU6IGNvbHVtbi5rZXksIGRpcmVjdGlvbjogXCJhc2NcIiB9O1xuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuY3VycmVudFNvcnQgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50U29ydC5hY3RpdmUgPT09IGNvbHVtbi5rZXkgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50U29ydC5kaXJlY3Rpb24gPT09IFwiYXNjXCJcbiAgICAgICkge1xuICAgICAgICBzb3J0LmRpcmVjdGlvbiA9IFwiZGVzY1wiO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmN1cnJlbnRTb3J0ID0gc29ydDtcbiAgICAgIHRoaXMuc29ydERhdGFGdW5jdGlvbihzb3J0KTtcbiAgICB9XG4gIH1cblxuICBzb3J0RGF0YUZ1bmN0aW9uKHNvcnQ6IFNvcnQpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhU291cmNlLmRhdGEuc2xpY2UoKTtcblxuICAgIGlmICghc29ydC5hY3RpdmUgfHwgc29ydC5kaXJlY3Rpb24gPT09IFwiXCIpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGEuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGlzQXNjID0gc29ydC5kaXJlY3Rpb24gPT09IFwiYXNjXCI7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGFbc29ydC5hY3RpdmVdLCBiW3NvcnQuYWN0aXZlXSwgaXNBc2MpO1xuICAgIH0pO1xuICB9XG5cbiAgY29tcGFyZShhOiBhbnksIGI6IGFueSwgaXNBc2M6IGJvb2xlYW4pIHtcbiAgICBpZiAodHlwZW9mIGEgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGIgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiAoYS50b0xvd2VyQ2FzZSgpIDwgYi50b0xvd2VyQ2FzZSgpID8gLTEgOiAxKSAqIChpc0FzYyA/IDEgOiAtMSk7XG4gICAgfVxuICAgIHJldHVybiAoYSA8IGIgPyAtMSA6IDEpICogKGlzQXNjID8gMSA6IC0xKTtcbiAgfVxuXG4gIGVtaXRSb3dDbGljayhyb3c6IHN0cmluZywgYWN0aW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCByb3dEYXRhOiBSb3dDbGlja0V2ZW50ID0geyByb3csIGFjdGlvbiB9O1xuICAgIHRoaXMucm93Q2xpY2suZW1pdChyb3dEYXRhKTtcbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdGlvbihyb3c6IGFueSkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KSkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5kZXNlbGVjdChyb3cpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KHJvdyk7XG4gICAgICB9XG4gICAgICB0aGlzLmdldFNlbGVjdGVkVmFsdWVzKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U2VsZWN0ZWRWYWx1ZXMoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZFJvd3MgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5tYXAoKHJvdykgPT4ge1xuICAgICAgICByZXR1cm4geyByb3cgfTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuZW1pdChzZWxlY3RlZFJvd3MpO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlQ29sdW1ucygpIHtcbiAgICBjb25zdCBjb2x1bW5zOiBUYWJsZUNvbHVtbltdID0gW1xuICAgICAgeyBrZXk6IFwibmFtZVwiLCBsYWJlbDogXCJcIiwgc29ydDogZmFsc2UgfSxcbiAgICBdO1xuICAgIHRoaXMuZ3JvdXBSZXBvcnQuZm9yRWFjaCgocmVwb3J0SXRlbSkgPT4ge1xuICAgICAgcmVwb3J0SXRlbS5kaW1lbnNpb25zPy5mb3JFYWNoKChkaW1lbnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgZGltZW5zaW9uS2V5ID0gZGltZW5zaW9uLmRpbWVuc2lvbk5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgZGltZW5zaW9uTGFiZWwgPSBkaW1lbnNpb24uZGltZW5zaW9uTmFtZTtcbiAgICAgICAgaWYgKCF0aGlzLmNvbHVtbkV4aXN0cyhjb2x1bW5zLCBkaW1lbnNpb25LZXkpKSB7XG4gICAgICAgICAgY29sdW1ucy5wdXNoKHtcbiAgICAgICAgICAgIGtleTogZGltZW5zaW9uS2V5LFxuICAgICAgICAgICAgbGFiZWw6IGRpbWVuc2lvbkxhYmVsLFxuICAgICAgICAgICAgc29ydDogZGltZW5zaW9uLnNvcnQgfHwgZmFsc2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXBvcnRJdGVtLmluZGljYXRvcnM/LmZvckVhY2goKGluZGljYXRvcikgPT4ge1xuICAgICAgICBjb25zdCBpbmRpY2F0b3JLZXkgPSBpbmRpY2F0b3IubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBpbmRpY2F0b3JMYWJlbCA9IGluZGljYXRvci5uYW1lO1xuICAgICAgICBpZiAoIXRoaXMuY29sdW1uRXhpc3RzKGNvbHVtbnMsIGluZGljYXRvcktleSkpIHtcbiAgICAgICAgICBjb2x1bW5zLnB1c2goe1xuICAgICAgICAgICAga2V5OiBpbmRpY2F0b3JLZXksXG4gICAgICAgICAgICBsYWJlbDogaW5kaWNhdG9yTGFiZWwsXG4gICAgICAgICAgICBzb3J0OiBpbmRpY2F0b3Iuc29ydCB8fCBmYWxzZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICB9XG5cbiAgY29sdW1uRXhpc3RzKGNvbHVtbnM6IFRhYmxlQ29sdW1uW10sIGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvbHVtbnMuc29tZSgoY29sdW1uKSA9PiBjb2x1bW4ua2V5ID09PSBrZXkpO1xuICB9XG5cbiAgZ2VuZXJhdGVHcm91cERhdGEoKSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gPSBbXTtcblxuICAgIHRoaXMuZ3JvdXBSZXBvcnQuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgZGF0YUl0ZW06IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XG4gICAgICAgIG5hbWU6IGl0ZW0uY2FuZGlkYXRlLm5hbWUsXG4gICAgICAgIGNwZjogaXRlbS5jYW5kaWRhdGUuY3BmLFxuICAgICAgICBnZW5lcmFsOiBpdGVtLmNhbmRpZGF0ZS5nZW5lcmFsLFxuICAgICAgfTtcblxuICAgICAgaXRlbS5kaW1lbnNpb25zPy5mb3JFYWNoKChkaW1lbnNpb24pID0+IHtcbiAgICAgICAgZGF0YUl0ZW1bZGltZW5zaW9uLmRpbWVuc2lvbk5hbWUudG9Mb3dlckNhc2UoKV0gPSB7XG4gICAgICAgICAgdmFsdWU6IGRpbWVuc2lvbi5lc2NvcmVULFxuICAgICAgICAgIGRpcmVjdGlvbjogZGltZW5zaW9uLmRpcmVjdGlvbixcbiAgICAgICAgICBjbGFzc2lmaWNhdGlvbklkOiBkaW1lbnNpb24uY2xhc3NpZmljYXRpb25JZCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICBpdGVtLmluZGljYXRvcnM/LmZvckVhY2goKGluZGljYXRvcikgPT4ge1xuICAgICAgICBkYXRhSXRlbVtpbmRpY2F0b3IubmFtZS50b0xvd2VyQ2FzZSgpXSA9IHtcbiAgICAgICAgICB2YWx1ZTogaW5kaWNhdG9yLmludGVydmFsLFxuICAgICAgICAgIGRpcmVjdGlvbjogaW5kaWNhdG9yLmRpcmVjdGlvbixcbiAgICAgICAgICBjbGFzc2lmaWNhdGlvbklkOiBpbmRpY2F0b3IuY2xhc3NpZmljYXRpb25JZCxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICByZXN1bHQucHVzaChkYXRhSXRlbSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmRhdGEgPSByZXN1bHQ7XG4gIH1cblxuICBpc0Jvb2xlYW4oY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHJvd1tjb2x1bW4ua2V5XSA9PT0gXCJib29sZWFuXCI7XG4gIH1cblxuICBpc01hc2tlZERhdGEoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3JtYXRzID0gW21vbWVudC5JU09fODYwMSwgXCJNTS9ERC9ZWVlZICA6KSAgSEgqbW0qc3NcIl07XG4gICAgY29uc3QgaXNEYXRlID0gbW9tZW50KHJvd1tjb2x1bW4ua2V5XSwgZm9ybWF0cywgdHJ1ZSkuaXNWYWxpZCgpO1xuICAgIHJldHVybiAoY29sdW1uLm1hc2sgJiYgaXNEYXRlKSB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldFZhbHVlQXNEYXRlKGNvbHVtbjogVGFibGVDb2x1bW4sIHJvdzogYW55KTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHJvd1tjb2x1bW4ua2V5XSk7XG4gIH1cblxuICBnZXRDZWxsQ2xhc3MoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmlzR3JvdXBSZXBvcnQgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwibmFtZVwiIHx8XG4gICAgICBjb2x1bW4ua2V5ID09PSBcImNwZlwiIHx8XG4gICAgICBjb2x1bW4ua2V5ID09PSBcImdlbmVyYWxcIlxuICAgICkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYGNsYXNzaWZpY2F0aW9uYDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgfVxuXG4gIGdldENlbGxCZyhjb2x1bW46IFRhYmxlQ29sdW1uLCByb3c6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuaXNHcm91cFJlcG9ydCB8fFxuICAgICAgY29sdW1uLmtleSA9PT0gXCJuYW1lXCIgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwiY3BmXCIgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwiZ2VuZXJhbFwiXG4gICAgKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJnID0gcm93W2NvbHVtbi5rZXldPy5jbGFzc2lmaWNhdGlvbkNvbG9yO1xuICAgICAgcmV0dXJuIGJnO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICB9XG5cbiAgZ2V0Um93Q2xhc3MoKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBcInJvdy1ob3ZlclwiOiAhdGhpcy5pc0dyb3VwUmVwb3J0LFxuICAgIH07XG4gIH1cblxuICBnZXRWYWx1ZShyb3c6IHsgdmFsdWU6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHJvdy52YWx1ZSArIFwiJVwiO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIFwiLVwiO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVBhZ2UoZXZlbnQ/OiBQYWdlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlUGFnZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHRvZ2dsZU1lbnUoKSB7XG4gICAgdGhpcy50cmlnZ2VyLm9wZW5NZW51KCk7XG4gIH1cblxuICBnZXRCYWNrZ3JvdW5kQ29sb3IoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4uc3RhdHVzPy5jb2xvcj8uW3Jvd1tjb2x1bW4ua2V5XSB8fCAwXSB8fCBcIlwiO1xuICB9XG5cbiAgaGFzQ3VzdG9tQ2xhc3MoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnksIGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKGNvbHVtbj8uY2xhc3MgfHwgcm93Py5yb3dTdHlsZUNsYXNzIHx8IHRoaXMuaGFzQ2VsbFN0eWxlQ2xhc3Mocm93LCBrZXkpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0Q3VzdG9tQ2xhc3MoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnksIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5oYXNDZWxsU3R5bGVDbGFzcyhyb3csIGtleSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENlbGxTdHlsZUNsYXNzKHJvdywgY29sdW1uLmtleSk7XG4gICAgfSBlbHNlIGlmIChjb2x1bW4/LmNsYXNzKSB7XG4gICAgICByZXR1cm4gY29sdW1uLmNsYXNzO1xuICAgIH0gZWxzZSBpZiAocm93Py5yb3dTdHlsZUNsYXNzKSB7XG4gICAgICByZXR1cm4gcm93LnJvd1N0eWxlQ2xhc3M7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGhhc0NlbGxTdHlsZUNsYXNzKHJvdzogYW55LCBrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiByb3cuc3R5bGVDbGFzcz8ua2V5ID09PSBrZXk7XG4gIH07XG5cbiAgZ2V0Q2VsbFN0eWxlQ2xhc3Mocm93OiBhbnksIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcm93LnN0eWxlQ2xhc3M/LmtleSA9PT0ga2V5ID8gcm93LnN0eWxlQ2xhc3M/LmNsYXNzIDogJyc7XG4gIH07XG5cbiAgaGFuZGxlTWVudShzZWxlY3RlZDogYW55KSB7XG4gICAgdGhpcy5lbWl0Um93Q2xpY2soc2VsZWN0ZWQuZGF0YSwgc2VsZWN0ZWQuYWN0aW9uKTtcbiAgfVxuXG4gIGhhc0luZGl2aWR1YWxNZW51KHJvdzogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHJvdyAhPT0gXCJcIiAmJiByb3cgIT09IG51bGwpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBcbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwibWFwYS10YWJsZVwiPlxuICA8dGFibGVcbiAgICBtYXQtdGFibGVcbiAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbiAgICBtYXRTb3J0XG4gICAgKG1hdFNvcnRDaGFuZ2UpPVwic29ydERhdGFGdW5jdGlvbigkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGlzRmlyc3QgPSBmaXJzdFwiXG4gICAgICBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5rZXlcIlxuICAgID5cbiAgICAgIDx0aFxuICAgICAgICBtYXQtaGVhZGVyLWNlbGxcbiAgICAgICAgKm1hdEhlYWRlckNlbGxEZWZcbiAgICAgICAgbWF0LXNvcnQtaGVhZGVyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhKGNvbHVtbi5rZXkgIT09ICdhY3Rpb25zJyA/IGNvbHVtbi5zb3J0IDogbnVsbClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVIZWFkZXJcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNlbGVjdGlvbiwgY29sdW1uLCBpc0ZpcnN0LCBjaGVja2JveCB9XCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBbc3R5bGUud2lkdGhdPVwiY29sdW1uPy53aWR0aFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW5cIlxuICAgICAgICAgIChjbGljayk9XCJlbWl0Um93Q2xpY2socm93LCAnJylcIlxuICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLWNlbnRlci1jZWxsXT1cImNvbHVtbj8uYWxpZ24gPT09ICdjZW50ZXInIHx8IGlzR3JvdXBSZXBvcnQgJiYgY29sdW1uLmtleSAhPT0gJ25hbWUnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmtleSAhPT0gJ2FjdGlvbnMnICYmIGNvbHVtbi5rZXkgIT09ICdtZW51JzsgZWxzZSBjb2x1bW5BY3Rpb25zT3JNZW51XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFwYS10YWJsZV9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhaXNHcm91cFJlcG9ydFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbj8ud2lkdGhcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLWVsbGlwc2lzXT1cImNvbHVtbj8uY29sbGFwc2UgPT09ICdvdmVyZmxvdydcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLW5vLXdyYXBdPVwiY29sdW1uPy5jb2xsYXBzZSA9PT0gJ25vLXdyYXAnXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MubWFwYS10YWJsZV9fY29sdW1uLS13cmFwXT1cImNvbHVtbj8uY29sbGFwc2UgPT09ICd3cmFwJ1wiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2hhc0N1c3RvbUNsYXNzKGNvbHVtbiwgcm93LCBjb2x1bW4ua2V5KSA/IGdldEN1c3RvbUNsYXNzKGNvbHVtbiwgcm93LCBjb2x1bW4ua2V5KSA6ICcnXVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbHVtbj8uc3RhdHVzPy5jb2xvcjsgZWxzZSBjb21tb25Db2x1bW5cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW4tLXN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImdldEJhY2tncm91bmRDb2xvcihjb2x1bW4sIHJvdylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2VsZWN0aW9uLCBjb2x1bW4sIGlzRmlyc3QsIGNoZWNrYm94LCByb3cgfVwiXG4gICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb21tb25Db2x1bW4+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYmxlQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNlbGVjdGlvbiwgY29sdW1uLCBpc0ZpcnN0LCBjaGVja2JveCwgcm93IH1cIlxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNHcm91cFJlcG9ydFwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5iYWNrZ3JvdW5kQ29sb3JdPVwiZ2V0Q2VsbEJnKGNvbHVtbiwgcm93KVwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRDZWxsQ2xhc3MoY29sdW1uLCByb3cpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmtleSA9PT0gJ25hbWUnIHx8IGNvbHVtbi5rZXkgPT09ICdjcGYnIHx8IGNvbHVtbi5rZXkgPT09ICdnZW5lcmFsJzsgZWxzZSB2YWx1ZUNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1uLmtleSA9PT0gJ25hbWUnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57eyByb3cubmFtZSB9fTxiciAvPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcGZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7cm93LmNwZn19XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1uLmtleSA9PT0gJ2dlbmVyYWwnXCIgY2xhc3M9XCJnZW5lcmFsXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgcm93W2NvbHVtbi5rZXldIHwgY3VycmVuY3k6Jyc6JycgfX0lXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3ZhbHVlQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAge3sgZ2V0VmFsdWUocm93W2NvbHVtbi5rZXldKSB9fVxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtbkFjdGlvbnNPck1lbnU+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uLS1hY3Rpb25zXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSAnYWN0aW9ucycgJiYgYWN0aW9uc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlTWVudSh7ZGF0YTogcm93LCBhY3Rpb246IGl0ZW0uYWN0aW9ufSlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uLS1hY3Rpb25zLWl0ZW1cIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLnRleHRcIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXRlbS5pY29uXCI+e3tpdGVtLmljb259fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIml0ZW0uaW1hZ2VcIiBbc3JjXT1cIml0ZW0uaW1hZ2VcIiAvPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tbWVudVwiICpuZ0lmPVwiY29sdW1uLmtleSA9PT0gJ21lbnUnXCI+XG4gICAgICAgICAgICAgIDxtYXBhLW1lbnVcbiAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0luZGl2aWR1YWxNZW51KHJvd1snbWVudSddKTsgZWxzZSBnZW5lcmFsTWVudVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cInJvd1snbWVudSddXCJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJyb3dcIlxuICAgICAgICAgICAgICAgIChlbWl0TWVudSk9XCJoYW5kbGVNZW51KCRldmVudClcIlxuICAgICAgICAgICAgICA+PC9tYXBhLW1lbnU+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZ2VuZXJhbE1lbnU+XG4gICAgICAgICAgICAgICAgPG1hcGEtbWVudVxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtZW51SXRlbXMgJiYgbWVudUl0ZW1zLmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cIm1lbnVJdGVtc1wiXG4gICAgICAgICAgICAgICAgICBbZGF0YV09XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgKGVtaXRNZW51KT1cImhhbmRsZU1lbnUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPjwvbWFwYS1tZW51PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICA8dHJcbiAgICAgIG1hdC1yb3dcbiAgICAgICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiXG4gICAgICBbbmdDbGFzc109XCJnZXRSb3dDbGFzcygpXCJcbiAgICA+PC90cj5cbiAgPC90YWJsZT5cblxuICA8c2VjdGlvbiAqbmdJZj1cIiFpc0dyb3VwUmVwb3J0ICYmIHNob3dQYWdpbmF0b3JcIj5cbiAgICA8bWF0LXBhZ2luYXRvclxuICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19wYWdpbmF0b3ItbGVnYWN5XCJcbiAgICAgIGl0ZW1zUGVyUGFnZUxhYmVsPVwiSXRlbSBwb3IgcMOhZ2luYVwiXG4gICAgICBhcHBTdHlsZVBhZ2luYXRvck12XG4gICAgICBbbGVuZ3RoXT1cInRvdGFsQ291bnRcIlxuICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzUsIDEwLCAyNSwgMTAwXVwiXG4gICAgICAocGFnZSk9XCJjaGFuZ2VQYWdlKCRldmVudClcIlxuICAgID48L21hdC1wYWdpbmF0b3I+XG4gIDwvc2VjdGlvbj5cbjwvc2VjdGlvbj5cblxuPG5nLXRlbXBsYXRlXG4gICN0YWJsZUhlYWRlclxuICBsZXQtc2VsZWN0aW9uPVwic2VsZWN0aW9uXCJcbiAgbGV0LWNvbHVtbj1cImNvbHVtblwiXG4gIGxldC1pc0ZpcnN0PVwiaXNGaXJzdFwiXG4gIGxldC1jaGVja2JveD1cImNoZWNrYm94XCJcbj5cbiAgPGRpdiBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbiBtYXBhLXRhYmxlX19jb2x1bW4tLWhlYWRlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0ZpcnN0ICYmIGNoZWNrYm94XCI+XG4gICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICpuZ0lmPVwic2VsZWN0aW9uXCJcbiAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyB0b2dnbGVBbGxSb3dzKCkgOiBudWxsXCJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgaXNBbGxTZWxlY3RlZCgpXCJcbiAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIWlzQWxsU2VsZWN0ZWQoKVwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgPjwvbWF0LWNoZWNrYm94PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fbGFiZWxcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnbGFiZWxfcmVwb3J0JzogaXNHcm91cFJlcG9ydCB9XCJcbiAgICA+XG4gICAgICB7eyBjb2x1bW4ubGFiZWwgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImNvbHVtbi5rZXkgIT09ICdhY3Rpb25zJyAmJiBjb2x1bW4ua2V5ICE9PSAnbWVudScgJiYgY29sdW1uLnNvcnRcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbj5maWx0ZXJfbGlzdDwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICN0YWJsZUNvbnRlbnRcbiAgbGV0LXNlbGVjdGlvbj1cInNlbGVjdGlvblwiXG4gIGxldC1jb2x1bW49XCJjb2x1bW5cIlxuICBsZXQtaXNGaXJzdD1cImlzRmlyc3RcIlxuICBsZXQtY2hlY2tib3g9XCJjaGVja2JveFwiXG4gIGxldC1yb3c9XCJyb3dcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNGaXJzdCAmJiBjaGVja2JveFwiPlxuICAgIDxtYXQtY2hlY2tib3hcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb24/LnRvZ2dsZShyb3cpIDogbnVsbDsgZ2V0U2VsZWN0ZWRWYWx1ZXMoKVwiXG4gICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24/LmlzU2VsZWN0ZWQocm93KVwiXG4gICAgPlxuICAgIDwvbWF0LWNoZWNrYm94PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPCEtLSBQT1IgRkFWT1IsIE7Dg08gUVVFQlJFIExJTkhBIEVOVFJFIE5HLUNPTlRBSU5FUi9URU1QTEFURSBFIE8gVkFMT1IgQ09OVEXDmkRPICAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTWFza2VkRGF0YShjb2x1bW4sIHJvdyk7IGVsc2Ugc3RhdHVzQ29udGVudFwiXG4gICAgPnt7IGdldFZhbHVlQXNEYXRlKGNvbHVtbiwgcm93KSB8IGRhdGU6IGNvbHVtbi5tYXNrIH19PC9uZy1jb250YWluZXJcbiAgPlxuICA8bmctdGVtcGxhdGUgI3N0YXR1c0NvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5zdGF0dXM7IGVsc2UgY29tbW9uQ29udGVudFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQm9vbGVhbihjb2x1bW4sIHJvdyk7IGVsc2UgY29tbW9uU3RhdHVzXCJcbiAgICAgICAgPnt7IGNvbHVtbi5zdGF0dXMubGFiZWxbcm93W2NvbHVtbi5rZXldID8gMSA6IDBdIH19PC9uZy1jb250YWluZXJcbiAgICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29tbW9uU3RhdHVzXG4gICAgICAgID57eyBjb2x1bW4uc3RhdHVzLmxhYmVsW3Jvd1tjb2x1bW4ua2V5XV0gfHwgJy0nIH19PC9uZy10ZW1wbGF0ZVxuICAgICAgPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjY29tbW9uQ29udGVudD57eyByb3dbY29sdW1uLmtleV0gfX08L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI3N0YXR1c0NvbnRlbnQ+XG4gICAgPG5nLXRlbXBsYXRlICNjb21tb25Db250ZW50Pnt7IHJvd1tjb2x1bW4ua2V5XSB9fTwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
368
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsWUFBWSxFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBUSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFZeEQsTUFBTSxPQUFPLGtCQUFrQjtJQWlDN0IsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFoQ2pDLFlBQU8sR0FBa0IsRUFBRSxDQUFDO1FBQzVCLFNBQUksR0FBYSxFQUFFLENBQUM7UUFDcEIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUt2QixnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFFcEMsY0FBUyxHQUFlLEVBQUUsQ0FBQztR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QixNQUFNO2dCQUdHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFFa0MsU0FBUztzQkFBakQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2dCQUNuQixJQUFJO3NCQUF2QixTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5cbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgUGFnZUV2ZW50IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvclwiO1xuaW1wb3J0IHsgTWF0U29ydCwgU29ydCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zb3J0XCI7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcblxuaW1wb3J0IHsgUm93Q2xpY2tFdmVudCB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2ludGVyZmFjZXMvdGFibGUtcm93LWNsaWNrLWV2ZW50LmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9pbnRlcmZhY2VzL3RhYmxlLWNvbHVtbi5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEdyb3VwUmVwb3J0SXRlbSB9IGZyb20gXCIuL2dyb3VwLXJlcG9ydC1pbnRlcmZhY2VcIjtcbmltcG9ydCB7IE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSBcIi4uLy4uL21lbnUvcHVibGljLWFwaVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWFwYS10YWJsZVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RhYmxlLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1xuICAgIFwiLi90YWJsZS5jb21wb25lbnQuc2Nzc1wiLFxuICAgIFwiLi8uLi8uLi9jYXBhYmlsaXR5L3N0eWxlcy9jYXBhYmlsaXR5LnNjc3NcIixcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTWFwYVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgY29sdW1uczogVGFibGVDb2x1bW5bXSA9IFtdO1xuICBASW5wdXQoKSBkYXRhOiBPYmplY3RbXSA9IFtdO1xuICBASW5wdXQoKSBwYWdlSW5kZXg6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgPSA1O1xuICBASW5wdXQoKSB0b3RhbENvdW50OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSB0b3RhbFBhZ2VzOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBjaGVja2JveDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxhbnk+IHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBhY3Rpb25zPzogTWVudUl0ZW1bXSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZmlsdGVyQ29udHJvbDogRm9ybUNvbnRyb2wgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGdyb3VwUmVwb3J0OiBHcm91cFJlcG9ydEl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBpc0dyb3VwUmVwb3J0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBtZW51SXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcbiAgQElucHV0KCkgbWVudTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc2hvd1BhZ2luYXRvcjogYm9vbGVhbiA9IHRydWU7XG4gIFxuICBAVmlld0NoaWxkKE1hdE1lbnVUcmlnZ2VyKSB0cmlnZ2VyITogTWF0TWVudVRyaWdnZXI7XG5cbiAgQE91dHB1dCgpIHJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8Um93Q2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIFJvd0NsaWNrRXZlbnRcbiAgPigpO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dzOiBFdmVudEVtaXR0ZXI8YW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQE91dHB1dCgpIG9uQ2hhbmdlUGFnZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwgeyByZWFkOiB0cnVlIH0pIHBhZ2luYXRvciE6IE1hdFBhZ2luYXRvcjtcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0ITogTWF0U29ydDtcblxuICBjaGVja2JveEdyb3VwITogRm9ybUdyb3VwO1xuICBkYXRhU291cmNlITogTWF0VGFibGVEYXRhU291cmNlPE9iamVjdD47XG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW107XG4gIGN1cnJlbnRTb3J0OiBTb3J0IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0dyb3VwUmVwb3J0KSB7XG4gICAgICB0aGlzLmdlbmVyYXRlQ29sdW1ucygpO1xuICAgICAgdGhpcy5nZW5lcmF0ZUdyb3VwRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMuZGF0YSk7XG4gICAgdGhpcy5kYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5jb2x1bW5zLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4ua2V5KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1tcImRhdGFcIl0pIHtcbiAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2UpIHtcbiAgICAgICAgdGhpcy5kYXRhID0gY2hhbmdlc1tcImRhdGFcIl0uY3VycmVudFZhbHVlO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMuZGF0YSk7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xuICAgICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmNvbHVtbnMubWFwKChjb2x1bW4pID0+IGNvbHVtbi5rZXkpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbXCJmaWx0ZXJDb250cm9sXCJdICYmIHRoaXMuZmlsdGVyQ29udHJvbCkge1xuICAgICAgdGhpcy5zZXR1cEZpbHRlcigpO1xuICAgIH1cbiAgfVxuXG4gIHNldHVwRmlsdGVyKCkge1xuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UpIHtcbiAgICAgIHRoaXMuZmlsdGVyQ29udHJvbCEudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyID0gdmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5kYXRhU291cmNlLmZpbHRlclByZWRpY2F0ZSA9IChkYXRhOiBhbnksIGZpbHRlcjogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFTdHIgPSBPYmplY3Qua2V5cyhkYXRhKVxuICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnRUZXJtLCBrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIGN1cnJlbnRUZXJtICtcbiAgICAgICAgICAgICAgKChkYXRhW2tleV0gJiYgZGF0YVtrZXldLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSkgfHwgXCJcIikgK1xuICAgICAgICAgICAgICBcIiBcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LCBcIlwiKVxuICAgICAgICAgIC50cmltKClcbiAgICAgICAgICAudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICByZXR1cm4gZGF0YVN0ci5pbmRleE9mKGZpbHRlcikgIT09IC0xO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBpc0FsbFNlbGVjdGVkKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XG4gICAgICBjb25zdCBudW1Sb3dzID0gdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoO1xuICAgICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0b2dnbGVBbGxSb3dzKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgaWYgKHRoaXMuaXNBbGxTZWxlY3RlZCgpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRhdGFBc1BlcmlvZGljRWxlbWVudHMgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YSBhcyBhbnlbXTtcbiAgICAgICAgZGF0YUFzUGVyaW9kaWNFbGVtZW50cy5mb3JFYWNoKChyb3cpID0+IHRoaXMuc2VsZWN0aW9uPy5zZWxlY3Qocm93KSk7XG4gICAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjaGVja2JveExhYmVsKHJvdz86IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBpZiAoIXJvdykge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5pc0FsbFNlbGVjdGVkKCkgPyBcImRlc2VsZWN0XCIgOiBcInNlbGVjdFwifSBhbGxgO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGAke3RoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KSA/IFwiZGVzZWxlY3RcIiA6IFwic2VsZWN0XCJ9IHJvdyAke1xuICAgICAgICByb3cucG9zaXRpb24gKyAxXG4gICAgICB9YDtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBzb3J0RGF0YShjb2x1bW46IFRhYmxlQ29sdW1uKTogdm9pZCB7XG4gICAgaWYgKGNvbHVtbi5zb3J0KSB7XG4gICAgICBjb25zdCBzb3J0OiBTb3J0ID0geyBhY3RpdmU6IGNvbHVtbi5rZXksIGRpcmVjdGlvbjogXCJhc2NcIiB9O1xuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuY3VycmVudFNvcnQgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50U29ydC5hY3RpdmUgPT09IGNvbHVtbi5rZXkgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50U29ydC5kaXJlY3Rpb24gPT09IFwiYXNjXCJcbiAgICAgICkge1xuICAgICAgICBzb3J0LmRpcmVjdGlvbiA9IFwiZGVzY1wiO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmN1cnJlbnRTb3J0ID0gc29ydDtcbiAgICAgIHRoaXMuc29ydERhdGFGdW5jdGlvbihzb3J0KTtcbiAgICB9XG4gIH1cblxuICBzb3J0RGF0YUZ1bmN0aW9uKHNvcnQ6IFNvcnQpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhU291cmNlLmRhdGEuc2xpY2UoKTtcblxuICAgIGlmICghc29ydC5hY3RpdmUgfHwgc29ydC5kaXJlY3Rpb24gPT09IFwiXCIpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGEuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGlzQXNjID0gc29ydC5kaXJlY3Rpb24gPT09IFwiYXNjXCI7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGFbc29ydC5hY3RpdmVdLCBiW3NvcnQuYWN0aXZlXSwgaXNBc2MpO1xuICAgIH0pO1xuICB9XG5cbiAgY29tcGFyZShhOiBhbnksIGI6IGFueSwgaXNBc2M6IGJvb2xlYW4pIHtcbiAgICBpZiAodHlwZW9mIGEgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGIgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiAoYS50b0xvd2VyQ2FzZSgpIDwgYi50b0xvd2VyQ2FzZSgpID8gLTEgOiAxKSAqIChpc0FzYyA/IDEgOiAtMSk7XG4gICAgfVxuICAgIHJldHVybiAoYSA8IGIgPyAtMSA6IDEpICogKGlzQXNjID8gMSA6IC0xKTtcbiAgfVxuXG4gIGVtaXRSb3dDbGljayhyb3c6IHN0cmluZywgYWN0aW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCByb3dEYXRhOiBSb3dDbGlja0V2ZW50ID0geyByb3csIGFjdGlvbiB9O1xuICAgIHRoaXMucm93Q2xpY2suZW1pdChyb3dEYXRhKTtcbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdGlvbihyb3c6IGFueSkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KSkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5kZXNlbGVjdChyb3cpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KHJvdyk7XG4gICAgICB9XG4gICAgICB0aGlzLmdldFNlbGVjdGVkVmFsdWVzKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U2VsZWN0ZWRWYWx1ZXMoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZFJvd3MgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5tYXAoKHJvdykgPT4ge1xuICAgICAgICByZXR1cm4geyByb3cgfTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuZW1pdChzZWxlY3RlZFJvd3MpO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlQ29sdW1ucygpIHtcbiAgICBjb25zdCBjb2x1bW5zOiBUYWJsZUNvbHVtbltdID0gW1xuICAgICAgeyBrZXk6IFwibmFtZVwiLCBsYWJlbDogXCJcIiwgc29ydDogZmFsc2UgfSxcbiAgICBdO1xuICAgIHRoaXMuZ3JvdXBSZXBvcnQuZm9yRWFjaCgocmVwb3J0SXRlbSkgPT4ge1xuICAgICAgcmVwb3J0SXRlbS5kaW1lbnNpb25zPy5mb3JFYWNoKChkaW1lbnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgZGltZW5zaW9uS2V5ID0gZGltZW5zaW9uLmRpbWVuc2lvbk5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgZGltZW5zaW9uTGFiZWwgPSBkaW1lbnNpb24uZGltZW5zaW9uTmFtZTtcbiAgICAgICAgaWYgKCF0aGlzLmNvbHVtbkV4aXN0cyhjb2x1bW5zLCBkaW1lbnNpb25LZXkpKSB7XG4gICAgICAgICAgY29sdW1ucy5wdXNoKHtcbiAgICAgICAgICAgIGtleTogZGltZW5zaW9uS2V5LFxuICAgICAgICAgICAgbGFiZWw6IGRpbWVuc2lvbkxhYmVsLFxuICAgICAgICAgICAgc29ydDogZGltZW5zaW9uLnNvcnQgfHwgZmFsc2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXBvcnRJdGVtLmluZGljYXRvcnM/LmZvckVhY2goKGluZGljYXRvcikgPT4ge1xuICAgICAgICBjb25zdCBpbmRpY2F0b3JLZXkgPSBpbmRpY2F0b3IubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBpbmRpY2F0b3JMYWJlbCA9IGluZGljYXRvci5uYW1lO1xuICAgICAgICBpZiAoIXRoaXMuY29sdW1uRXhpc3RzKGNvbHVtbnMsIGluZGljYXRvcktleSkpIHtcbiAgICAgICAgICBjb2x1bW5zLnB1c2goe1xuICAgICAgICAgICAga2V5OiBpbmRpY2F0b3JLZXksXG4gICAgICAgICAgICBsYWJlbDogaW5kaWNhdG9yTGFiZWwsXG4gICAgICAgICAgICBzb3J0OiBpbmRpY2F0b3Iuc29ydCB8fCBmYWxzZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICB9XG5cbiAgY29sdW1uRXhpc3RzKGNvbHVtbnM6IFRhYmxlQ29sdW1uW10sIGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvbHVtbnMuc29tZSgoY29sdW1uKSA9PiBjb2x1bW4ua2V5ID09PSBrZXkpO1xuICB9XG5cbiAgZ2VuZXJhdGVHcm91cERhdGEoKSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9W10gPSBbXTtcblxuICAgIHRoaXMuZ3JvdXBSZXBvcnQuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgZGF0YUl0ZW06IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XG4gICAgICAgIG5hbWU6IGl0ZW0uY2FuZGlkYXRlLm5hbWUsXG4gICAgICAgIGNwZjogaXRlbS5jYW5kaWRhdGUuY3BmLFxuICAgICAgICBnZW5lcmFsOiBpdGVtLmNhbmRpZGF0ZS5nZW5lcmFsLFxuICAgICAgfTtcblxuICAgICAgaXRlbS5kaW1lbnNpb25zPy5mb3JFYWNoKChkaW1lbnNpb24pID0+IHtcbiAgICAgICAgZGF0YUl0ZW1bZGltZW5zaW9uLmRpbWVuc2lvbk5hbWUudG9Mb3dlckNhc2UoKV0gPSB7XG4gICAgICAgICAgdmFsdWU6IGRpbWVuc2lvbi5lc2NvcmVULFxuICAgICAgICAgIGRpcmVjdGlvbjogZGltZW5zaW9uLmRpcmVjdGlvbixcbiAgICAgICAgICBjbGFzc2lmaWNhdGlvbklkOiBkaW1lbnNpb24uY2xhc3NpZmljYXRpb25JZCxcbiAgICAgICAgICBjbGFzc2lmaWNhdGlvbkNvbG9yOiBkaW1lbnNpb24uY2xhc3NpZmljYXRpb25Db2xvcixcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICBpdGVtLmluZGljYXRvcnM/LmZvckVhY2goKGluZGljYXRvcikgPT4ge1xuICAgICAgICBkYXRhSXRlbVtpbmRpY2F0b3IubmFtZS50b0xvd2VyQ2FzZSgpXSA9IHtcbiAgICAgICAgICB2YWx1ZTogaW5kaWNhdG9yLmludGVydmFsLFxuICAgICAgICAgIGRpcmVjdGlvbjogaW5kaWNhdG9yLmRpcmVjdGlvbixcbiAgICAgICAgICBjbGFzc2lmaWNhdGlvbklkOiBpbmRpY2F0b3IuY2xhc3NpZmljYXRpb25JZCxcbiAgICAgICAgICBjbGFzc2lmaWNhdGlvbkNvbG9yOiBpbmRpY2F0b3IuY2xhc3NpZmljYXRpb25Db2xvcixcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICByZXN1bHQucHVzaChkYXRhSXRlbSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmRhdGEgPSByZXN1bHQ7XG4gIH1cblxuICBpc0Jvb2xlYW4oY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHJvd1tjb2x1bW4ua2V5XSA9PT0gXCJib29sZWFuXCI7XG4gIH1cblxuICBpc01hc2tlZERhdGEoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3JtYXRzID0gW21vbWVudC5JU09fODYwMSwgXCJNTS9ERC9ZWVlZICA6KSAgSEgqbW0qc3NcIl07XG4gICAgY29uc3QgaXNEYXRlID0gbW9tZW50KHJvd1tjb2x1bW4ua2V5XSwgZm9ybWF0cywgdHJ1ZSkuaXNWYWxpZCgpO1xuICAgIHJldHVybiAoY29sdW1uLm1hc2sgJiYgaXNEYXRlKSB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldFZhbHVlQXNEYXRlKGNvbHVtbjogVGFibGVDb2x1bW4sIHJvdzogYW55KTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHJvd1tjb2x1bW4ua2V5XSk7XG4gIH1cblxuICBnZXRDZWxsQ2xhc3MoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmlzR3JvdXBSZXBvcnQgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwibmFtZVwiIHx8XG4gICAgICBjb2x1bW4ua2V5ID09PSBcImNwZlwiIHx8XG4gICAgICBjb2x1bW4ua2V5ID09PSBcImdlbmVyYWxcIlxuICAgICkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYGNsYXNzaWZpY2F0aW9uYDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgfVxuXG4gIGdldENlbGxCZyhjb2x1bW46IFRhYmxlQ29sdW1uLCByb3c6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuaXNHcm91cFJlcG9ydCB8fFxuICAgICAgY29sdW1uLmtleSA9PT0gXCJuYW1lXCIgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwiY3BmXCIgfHxcbiAgICAgIGNvbHVtbi5rZXkgPT09IFwiZ2VuZXJhbFwiXG4gICAgKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJnID0gcm93W2NvbHVtbi5rZXldPy5jbGFzc2lmaWNhdGlvbkNvbG9yO1xuICAgICAgcmV0dXJuIGJnO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICB9XG5cbiAgZ2V0Um93Q2xhc3MoKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBcInJvdy1ob3ZlclwiOiAhdGhpcy5pc0dyb3VwUmVwb3J0LFxuICAgIH07XG4gIH1cblxuICBnZXRWYWx1ZShyb3c6IHsgdmFsdWU6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHJvdy52YWx1ZSArIFwiJVwiO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIFwiLVwiO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVBhZ2UoZXZlbnQ/OiBQYWdlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlUGFnZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHRvZ2dsZU1lbnUoKSB7XG4gICAgdGhpcy50cmlnZ2VyLm9wZW5NZW51KCk7XG4gIH1cblxuICBnZXRCYWNrZ3JvdW5kQ29sb3IoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4uc3RhdHVzPy5jb2xvcj8uW3Jvd1tjb2x1bW4ua2V5XSB8fCAwXSB8fCBcIlwiO1xuICB9XG5cbiAgaGFzQ3VzdG9tQ2xhc3MoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnksIGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKGNvbHVtbj8uY2xhc3MgfHwgcm93Py5yb3dTdHlsZUNsYXNzIHx8IHRoaXMuaGFzQ2VsbFN0eWxlQ2xhc3Mocm93LCBrZXkpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0Q3VzdG9tQ2xhc3MoY29sdW1uOiBUYWJsZUNvbHVtbiwgcm93OiBhbnksIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5oYXNDZWxsU3R5bGVDbGFzcyhyb3csIGtleSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENlbGxTdHlsZUNsYXNzKHJvdywgY29sdW1uLmtleSk7XG4gICAgfSBlbHNlIGlmIChjb2x1bW4/LmNsYXNzKSB7XG4gICAgICByZXR1cm4gY29sdW1uLmNsYXNzO1xuICAgIH0gZWxzZSBpZiAocm93Py5yb3dTdHlsZUNsYXNzKSB7XG4gICAgICByZXR1cm4gcm93LnJvd1N0eWxlQ2xhc3M7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGhhc0NlbGxTdHlsZUNsYXNzKHJvdzogYW55LCBrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiByb3cuc3R5bGVDbGFzcz8ua2V5ID09PSBrZXk7XG4gIH07XG5cbiAgZ2V0Q2VsbFN0eWxlQ2xhc3Mocm93OiBhbnksIGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcm93LnN0eWxlQ2xhc3M/LmtleSA9PT0ga2V5ID8gcm93LnN0eWxlQ2xhc3M/LmNsYXNzIDogJyc7XG4gIH07XG5cbiAgaGFuZGxlTWVudShzZWxlY3RlZDogYW55KSB7XG4gICAgdGhpcy5lbWl0Um93Q2xpY2soc2VsZWN0ZWQuZGF0YSwgc2VsZWN0ZWQuYWN0aW9uKTtcbiAgfVxuXG4gIGhhc0luZGl2aWR1YWxNZW51KHJvdzogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHJvdyAhPT0gXCJcIiAmJiByb3cgIT09IG51bGwpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBcbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwibWFwYS10YWJsZVwiPlxuICA8dGFibGVcbiAgICBtYXQtdGFibGVcbiAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbiAgICBtYXRTb3J0XG4gICAgKG1hdFNvcnRDaGFuZ2UpPVwic29ydERhdGFGdW5jdGlvbigkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGlzRmlyc3QgPSBmaXJzdFwiXG4gICAgICBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5rZXlcIlxuICAgID5cbiAgICAgIDx0aFxuICAgICAgICBtYXQtaGVhZGVyLWNlbGxcbiAgICAgICAgKm1hdEhlYWRlckNlbGxEZWZcbiAgICAgICAgbWF0LXNvcnQtaGVhZGVyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhKGNvbHVtbi5rZXkgIT09ICdhY3Rpb25zJyA/IGNvbHVtbi5zb3J0IDogbnVsbClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVIZWFkZXJcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNlbGVjdGlvbiwgY29sdW1uLCBpc0ZpcnN0LCBjaGVja2JveCB9XCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBbc3R5bGUud2lkdGhdPVwiY29sdW1uPy53aWR0aFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW5cIlxuICAgICAgICAgIChjbGljayk9XCJlbWl0Um93Q2xpY2socm93LCAnJylcIlxuICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLWNlbnRlci1jZWxsXT1cImNvbHVtbj8uYWxpZ24gPT09ICdjZW50ZXInIHx8IGlzR3JvdXBSZXBvcnQgJiYgY29sdW1uLmtleSAhPT0gJ25hbWUnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmtleSAhPT0gJ2FjdGlvbnMnICYmIGNvbHVtbi5rZXkgIT09ICdtZW51JzsgZWxzZSBjb2x1bW5BY3Rpb25zT3JNZW51XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFwYS10YWJsZV9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhaXNHcm91cFJlcG9ydFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbj8ud2lkdGhcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLWVsbGlwc2lzXT1cImNvbHVtbj8uY29sbGFwc2UgPT09ICdvdmVyZmxvdydcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5tYXBhLXRhYmxlX19jb2x1bW4tLW5vLXdyYXBdPVwiY29sdW1uPy5jb2xsYXBzZSA9PT0gJ25vLXdyYXAnXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MubWFwYS10YWJsZV9fY29sdW1uLS13cmFwXT1cImNvbHVtbj8uY29sbGFwc2UgPT09ICd3cmFwJ1wiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2hhc0N1c3RvbUNsYXNzKGNvbHVtbiwgcm93LCBjb2x1bW4ua2V5KSA/IGdldEN1c3RvbUNsYXNzKGNvbHVtbiwgcm93LCBjb2x1bW4ua2V5KSA6ICcnXVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbHVtbj8uc3RhdHVzPy5jb2xvcjsgZWxzZSBjb21tb25Db2x1bW5cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19jb2x1bW4tLXN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImdldEJhY2tncm91bmRDb2xvcihjb2x1bW4sIHJvdylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2VsZWN0aW9uLCBjb2x1bW4sIGlzRmlyc3QsIGNoZWNrYm94LCByb3cgfVwiXG4gICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb21tb25Db2x1bW4+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYmxlQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHNlbGVjdGlvbiwgY29sdW1uLCBpc0ZpcnN0LCBjaGVja2JveCwgcm93IH1cIlxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNHcm91cFJlcG9ydFwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5iYWNrZ3JvdW5kQ29sb3JdPVwiZ2V0Q2VsbEJnKGNvbHVtbiwgcm93KVwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRDZWxsQ2xhc3MoY29sdW1uLCByb3cpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmtleSA9PT0gJ25hbWUnIHx8IGNvbHVtbi5rZXkgPT09ICdjcGYnIHx8IGNvbHVtbi5rZXkgPT09ICdnZW5lcmFsJzsgZWxzZSB2YWx1ZUNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1uLmtleSA9PT0gJ25hbWUnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj57eyByb3cubmFtZSB9fTxiciAvPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcGZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7cm93LmNwZn19XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1uLmtleSA9PT0gJ2dlbmVyYWwnXCIgY2xhc3M9XCJnZW5lcmFsXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgcm93W2NvbHVtbi5rZXldIHwgY3VycmVuY3k6Jyc6JycgfX0lXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3ZhbHVlQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAge3sgZ2V0VmFsdWUocm93W2NvbHVtbi5rZXldKSB9fVxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbHVtbkFjdGlvbnNPck1lbnU+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uLS1hY3Rpb25zXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4ua2V5ID09PSAnYWN0aW9ucycgJiYgYWN0aW9uc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlTWVudSh7ZGF0YTogcm93LCBhY3Rpb246IGl0ZW0uYWN0aW9ufSlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fY29sdW1uLS1hY3Rpb25zLWl0ZW1cIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLnRleHRcIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaXRlbS5pY29uXCI+e3tpdGVtLmljb259fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIml0ZW0uaW1hZ2VcIiBbc3JjXT1cIml0ZW0uaW1hZ2VcIiAvPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbi0tbWVudVwiICpuZ0lmPVwiY29sdW1uLmtleSA9PT0gJ21lbnUnXCI+XG4gICAgICAgICAgICAgIDxtYXBhLW1lbnVcbiAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0luZGl2aWR1YWxNZW51KHJvd1snbWVudSddKTsgZWxzZSBnZW5lcmFsTWVudVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cInJvd1snbWVudSddXCJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJyb3dcIlxuICAgICAgICAgICAgICAgIChlbWl0TWVudSk9XCJoYW5kbGVNZW51KCRldmVudClcIlxuICAgICAgICAgICAgICA+PC9tYXBhLW1lbnU+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZ2VuZXJhbE1lbnU+XG4gICAgICAgICAgICAgICAgPG1hcGEtbWVudVxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtZW51SXRlbXMgJiYgbWVudUl0ZW1zLmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cIm1lbnVJdGVtc1wiXG4gICAgICAgICAgICAgICAgICBbZGF0YV09XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgKGVtaXRNZW51KT1cImhhbmRsZU1lbnUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPjwvbWFwYS1tZW51PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICA8dHJcbiAgICAgIG1hdC1yb3dcbiAgICAgICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiXG4gICAgICBbbmdDbGFzc109XCJnZXRSb3dDbGFzcygpXCJcbiAgICA+PC90cj5cbiAgPC90YWJsZT5cblxuICA8c2VjdGlvbiAqbmdJZj1cIiFpc0dyb3VwUmVwb3J0ICYmIHNob3dQYWdpbmF0b3JcIj5cbiAgICA8bWF0LXBhZ2luYXRvclxuICAgICAgY2xhc3M9XCJtYXBhLXRhYmxlX19wYWdpbmF0b3ItbGVnYWN5XCJcbiAgICAgIGl0ZW1zUGVyUGFnZUxhYmVsPVwiSXRlbSBwb3IgcMOhZ2luYVwiXG4gICAgICBhcHBTdHlsZVBhZ2luYXRvck12XG4gICAgICBbbGVuZ3RoXT1cInRvdGFsQ291bnRcIlxuICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzUsIDEwLCAyNSwgMTAwXVwiXG4gICAgICAocGFnZSk9XCJjaGFuZ2VQYWdlKCRldmVudClcIlxuICAgID48L21hdC1wYWdpbmF0b3I+XG4gIDwvc2VjdGlvbj5cbjwvc2VjdGlvbj5cblxuPG5nLXRlbXBsYXRlXG4gICN0YWJsZUhlYWRlclxuICBsZXQtc2VsZWN0aW9uPVwic2VsZWN0aW9uXCJcbiAgbGV0LWNvbHVtbj1cImNvbHVtblwiXG4gIGxldC1pc0ZpcnN0PVwiaXNGaXJzdFwiXG4gIGxldC1jaGVja2JveD1cImNoZWNrYm94XCJcbj5cbiAgPGRpdiBjbGFzcz1cIm1hcGEtdGFibGVfX2NvbHVtbiBtYXBhLXRhYmxlX19jb2x1bW4tLWhlYWRlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0ZpcnN0ICYmIGNoZWNrYm94XCI+XG4gICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgICpuZ0lmPVwic2VsZWN0aW9uXCJcbiAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyB0b2dnbGVBbGxSb3dzKCkgOiBudWxsXCJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgaXNBbGxTZWxlY3RlZCgpXCJcbiAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIWlzQWxsU2VsZWN0ZWQoKVwiXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgPjwvbWF0LWNoZWNrYm94PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibWFwYS10YWJsZV9fbGFiZWxcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnbGFiZWxfcmVwb3J0JzogaXNHcm91cFJlcG9ydCB9XCJcbiAgICA+XG4gICAgICB7eyBjb2x1bW4ubGFiZWwgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImNvbHVtbi5rZXkgIT09ICdhY3Rpb25zJyAmJiBjb2x1bW4ua2V5ICE9PSAnbWVudScgJiYgY29sdW1uLnNvcnRcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbj5maWx0ZXJfbGlzdDwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICN0YWJsZUNvbnRlbnRcbiAgbGV0LXNlbGVjdGlvbj1cInNlbGVjdGlvblwiXG4gIGxldC1jb2x1bW49XCJjb2x1bW5cIlxuICBsZXQtaXNGaXJzdD1cImlzRmlyc3RcIlxuICBsZXQtY2hlY2tib3g9XCJjaGVja2JveFwiXG4gIGxldC1yb3c9XCJyb3dcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNGaXJzdCAmJiBjaGVja2JveFwiPlxuICAgIDxtYXQtY2hlY2tib3hcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb24/LnRvZ2dsZShyb3cpIDogbnVsbDsgZ2V0U2VsZWN0ZWRWYWx1ZXMoKVwiXG4gICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24/LmlzU2VsZWN0ZWQocm93KVwiXG4gICAgPlxuICAgIDwvbWF0LWNoZWNrYm94PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPCEtLSBQT1IgRkFWT1IsIE7Dg08gUVVFQlJFIExJTkhBIEVOVFJFIE5HLUNPTlRBSU5FUi9URU1QTEFURSBFIE8gVkFMT1IgQ09OVEXDmkRPICAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTWFza2VkRGF0YShjb2x1bW4sIHJvdyk7IGVsc2Ugc3RhdHVzQ29udGVudFwiXG4gICAgPnt7IGdldFZhbHVlQXNEYXRlKGNvbHVtbiwgcm93KSB8IGRhdGU6IGNvbHVtbi5tYXNrIH19PC9uZy1jb250YWluZXJcbiAgPlxuICA8bmctdGVtcGxhdGUgI3N0YXR1c0NvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5zdGF0dXM7IGVsc2UgY29tbW9uQ29udGVudFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQm9vbGVhbihjb2x1bW4sIHJvdyk7IGVsc2UgY29tbW9uU3RhdHVzXCJcbiAgICAgICAgPnt7IGNvbHVtbi5zdGF0dXMubGFiZWxbcm93W2NvbHVtbi5rZXldID8gMSA6IDBdIH19PC9uZy1jb250YWluZXJcbiAgICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29tbW9uU3RhdHVzXG4gICAgICAgID57eyBjb2x1bW4uc3RhdHVzLmxhYmVsW3Jvd1tjb2x1bW4ua2V5XV0gfHwgJy0nIH19PC9uZy10ZW1wbGF0ZVxuICAgICAgPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjY29tbW9uQ29udGVudD57eyByb3dbY29sdW1uLmtleV0gfX08L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI3N0YXR1c0NvbnRlbnQ+XG4gICAgPG5nLXRlbXBsYXRlICNjb21tb25Db250ZW50Pnt7IHJvd1tjb2x1bW4ua2V5XSB9fTwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -674,10 +674,10 @@ class MapaCapabilityExpandComponent {
|
|
|
674
674
|
}
|
|
675
675
|
}
|
|
676
676
|
MapaCapabilityExpandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaCapabilityExpandComponent, deps: [{ token: CapabilityClassificationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
677
|
-
MapaCapabilityExpandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaCapabilityExpandComponent, selector: "mapa-capability-expand", inputs: { data: "data" }, ngImport: i0, template: "<div\n class=\"capability__concept\"\n *ngIf=\"data.capabilityConcept?.concept || data.capabilityConcept?.result\"\n>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.concept\"\n >\n <div class=\"capability__concept--title\">Conceito</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.concept! }}\n </div>\n </div>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.result\"\n >\n <div class=\"capability__concept--title\">Resultado</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.result! }}\n </div>\n </div>\n</div>\n<div class=\"capability__expanded\">\n <div *ngFor=\"let item of data.items\" class=\"capability__expanded--item\">\n <div class=\"name\">\n <div class=\"capability__expanded--name\">\n <span *ngIf=\"item.classificationColor\">\n <strong *ngIf=\"!classification.getByItem(item).positive\">\u2198\uFE0E </strong>\n <strong *ngIf=\"classification.getByItem(item).positive\">\u2197 </strong>\n </span>\n {{ item.name }}\n </div>\n <mapa-tag\n [tag]=\"createTag(item)\"\n class=\"capability__expanded--tag\"\n *ngIf=\"item.classificationId\"\n >\n <mapa-capability-dot\n [item]=\"item\"\n *ngIf=\"item.classificationColor\"\n ></mapa-capability-dot>\n {{ item.classificationName }}\n </mapa-tag>\n </div>\n\n <p class=\"capability__expanded--description\" *ngIf=\"item.description\">\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && !classification.getByItem(item).positive\"\n >\u2198\uFE0E Dire\u00E7\u00E3o Negativa |\n </strong>\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && classification.getByItem(item).positive\"\n >\u2197 Dire\u00E7\u00E3o Positiva |\n </strong>\n <span [innerHTML]=\"item.description\"></span>\n </p>\n </div>\n</div>\n", styles: [".capability__concept{display:flex;flex:1 1 48%;gap:42px;margin:24px 0 60px}.capability__concept--content{width:48%}.capability__concept--title{color:#000;font-family:SF Pro Display;font-size:16px;font-style:normal;font-weight:600;line-height:24px;margin-bottom:8px}.capability__concept--text{color:#676767;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.capability__expanded{border-top:1px solid #cdcdcd;padding:36px 0 16px 16px;gap:30px}@media (min-width: 800px) and (max-width: 1250px){.capability__expanded{display:grid;grid-template-columns:
|
|
677
|
+
MapaCapabilityExpandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaCapabilityExpandComponent, selector: "mapa-capability-expand", inputs: { data: "data" }, ngImport: i0, template: "<div\n class=\"capability__concept\"\n *ngIf=\"data.capabilityConcept?.concept || data.capabilityConcept?.result\"\n>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.concept\"\n >\n <div class=\"capability__concept--title\">Conceito</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.concept! }}\n </div>\n </div>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.result\"\n >\n <div class=\"capability__concept--title\">Resultado</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.result! }}\n </div>\n </div>\n</div>\n<div class=\"capability__expanded\">\n <div *ngFor=\"let item of data.items\" class=\"capability__expanded--item\">\n <div class=\"name\">\n <div class=\"capability__expanded--name\">\n <span *ngIf=\"item.classificationColor\">\n <strong *ngIf=\"!classification.getByItem(item).positive\">\u2198\uFE0E </strong>\n <strong *ngIf=\"classification.getByItem(item).positive\">\u2197 </strong>\n </span>\n {{ item.name }}\n </div>\n <mapa-tag\n [tag]=\"createTag(item)\"\n class=\"capability__expanded--tag\"\n *ngIf=\"item.classificationId\"\n >\n <mapa-capability-dot\n [item]=\"item\"\n *ngIf=\"item.classificationColor\"\n ></mapa-capability-dot>\n {{ item.classificationName }}\n </mapa-tag>\n </div>\n\n <p class=\"capability__expanded--description\" *ngIf=\"item.description\">\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && !classification.getByItem(item).positive\"\n >\u2198\uFE0E Dire\u00E7\u00E3o Negativa |\n </strong>\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && classification.getByItem(item).positive\"\n >\u2197 Dire\u00E7\u00E3o Positiva |\n </strong>\n <span [innerHTML]=\"item.description\"></span>\n </p>\n </div>\n</div>\n", styles: [".capability__concept{display:flex;flex:1 1 48%;gap:42px;margin:24px 0 60px}.capability__concept--content{width:48%}.capability__concept--title{color:#000;font-family:SF Pro Display;font-size:16px;font-style:normal;font-weight:600;line-height:24px;margin-bottom:8px}.capability__concept--text{color:#676767;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.capability__expanded{border-top:1px solid #cdcdcd;padding:36px 0 16px 16px;gap:30px}@media (min-width: 800px) and (max-width: 1250px){.capability__expanded{display:grid;grid-template-columns:1fr 1fr}}@media (min-width: 1251px){.capability__expanded{display:grid;grid-template-columns:1fr 1fr 1fr}}.capability__expanded--description{color:#8c8f94;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.capability__expanded--item .name{display:flex;justify-content:space-between;margin-bottom:16px}.capability__expanded--item mapa-tag .mapa-tag--small{display:flex;align-items:center;gap:8px;padding:2px 8px 2px 3px;font-size:14px!important;font-style:normal;font-weight:400;height:18px}.capability__expanded--name{color:#181818;font-size:20px;font-style:normal;font-weight:400}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TagComponent, selector: "mapa-tag", inputs: ["tag"] }, { kind: "component", type: MapaCapabilityDotComponent, selector: "mapa-capability-dot", inputs: ["type", "item", "tooltip", "capability"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
678
678
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaCapabilityExpandComponent, decorators: [{
|
|
679
679
|
type: Component,
|
|
680
|
-
args: [{ selector: "mapa-capability-expand", encapsulation: ViewEncapsulation.None, template: "<div\n class=\"capability__concept\"\n *ngIf=\"data.capabilityConcept?.concept || data.capabilityConcept?.result\"\n>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.concept\"\n >\n <div class=\"capability__concept--title\">Conceito</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.concept! }}\n </div>\n </div>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.result\"\n >\n <div class=\"capability__concept--title\">Resultado</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.result! }}\n </div>\n </div>\n</div>\n<div class=\"capability__expanded\">\n <div *ngFor=\"let item of data.items\" class=\"capability__expanded--item\">\n <div class=\"name\">\n <div class=\"capability__expanded--name\">\n <span *ngIf=\"item.classificationColor\">\n <strong *ngIf=\"!classification.getByItem(item).positive\">\u2198\uFE0E </strong>\n <strong *ngIf=\"classification.getByItem(item).positive\">\u2197 </strong>\n </span>\n {{ item.name }}\n </div>\n <mapa-tag\n [tag]=\"createTag(item)\"\n class=\"capability__expanded--tag\"\n *ngIf=\"item.classificationId\"\n >\n <mapa-capability-dot\n [item]=\"item\"\n *ngIf=\"item.classificationColor\"\n ></mapa-capability-dot>\n {{ item.classificationName }}\n </mapa-tag>\n </div>\n\n <p class=\"capability__expanded--description\" *ngIf=\"item.description\">\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && !classification.getByItem(item).positive\"\n >\u2198\uFE0E Dire\u00E7\u00E3o Negativa |\n </strong>\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && classification.getByItem(item).positive\"\n >\u2197 Dire\u00E7\u00E3o Positiva |\n </strong>\n <span [innerHTML]=\"item.description\"></span>\n </p>\n </div>\n</div>\n", styles: [".capability__concept{display:flex;flex:1 1 48%;gap:42px;margin:24px 0 60px}.capability__concept--content{width:48%}.capability__concept--title{color:#000;font-family:SF Pro Display;font-size:16px;font-style:normal;font-weight:600;line-height:24px;margin-bottom:8px}.capability__concept--text{color:#676767;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.capability__expanded{border-top:1px solid #cdcdcd;padding:36px 0 16px 16px;gap:30px}@media (min-width: 800px) and (max-width: 1250px){.capability__expanded{display:grid;grid-template-columns:
|
|
680
|
+
args: [{ selector: "mapa-capability-expand", encapsulation: ViewEncapsulation.None, template: "<div\n class=\"capability__concept\"\n *ngIf=\"data.capabilityConcept?.concept || data.capabilityConcept?.result\"\n>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.concept\"\n >\n <div class=\"capability__concept--title\">Conceito</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.concept! }}\n </div>\n </div>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.result\"\n >\n <div class=\"capability__concept--title\">Resultado</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.result! }}\n </div>\n </div>\n</div>\n<div class=\"capability__expanded\">\n <div *ngFor=\"let item of data.items\" class=\"capability__expanded--item\">\n <div class=\"name\">\n <div class=\"capability__expanded--name\">\n <span *ngIf=\"item.classificationColor\">\n <strong *ngIf=\"!classification.getByItem(item).positive\">\u2198\uFE0E </strong>\n <strong *ngIf=\"classification.getByItem(item).positive\">\u2197 </strong>\n </span>\n {{ item.name }}\n </div>\n <mapa-tag\n [tag]=\"createTag(item)\"\n class=\"capability__expanded--tag\"\n *ngIf=\"item.classificationId\"\n >\n <mapa-capability-dot\n [item]=\"item\"\n *ngIf=\"item.classificationColor\"\n ></mapa-capability-dot>\n {{ item.classificationName }}\n </mapa-tag>\n </div>\n\n <p class=\"capability__expanded--description\" *ngIf=\"item.description\">\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && !classification.getByItem(item).positive\"\n >\u2198\uFE0E Dire\u00E7\u00E3o Negativa |\n </strong>\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && classification.getByItem(item).positive\"\n >\u2197 Dire\u00E7\u00E3o Positiva |\n </strong>\n <span [innerHTML]=\"item.description\"></span>\n </p>\n </div>\n</div>\n", styles: [".capability__concept{display:flex;flex:1 1 48%;gap:42px;margin:24px 0 60px}.capability__concept--content{width:48%}.capability__concept--title{color:#000;font-family:SF Pro Display;font-size:16px;font-style:normal;font-weight:600;line-height:24px;margin-bottom:8px}.capability__concept--text{color:#676767;font-family:SF-Pro;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.capability__expanded{border-top:1px solid #cdcdcd;padding:36px 0 16px 16px;gap:30px}@media (min-width: 800px) and (max-width: 1250px){.capability__expanded{display:grid;grid-template-columns:1fr 1fr}}@media (min-width: 1251px){.capability__expanded{display:grid;grid-template-columns:1fr 1fr 1fr}}.capability__expanded--description{color:#8c8f94;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.capability__expanded--item .name{display:flex;justify-content:space-between;margin-bottom:16px}.capability__expanded--item mapa-tag .mapa-tag--small{display:flex;align-items:center;gap:8px;padding:2px 8px 2px 3px;font-size:14px!important;font-style:normal;font-weight:400;height:18px}.capability__expanded--name{color:#181818;font-size:20px;font-style:normal;font-weight:400}\n"] }]
|
|
681
681
|
}], ctorParameters: function () { return [{ type: CapabilityClassificationService }]; }, propDecorators: { data: [{
|
|
682
682
|
type: Input
|
|
683
683
|
}] } });
|
|
@@ -835,6 +835,7 @@ class MapaCapabilityComparativeChartComponent {
|
|
|
835
835
|
average: item.average,
|
|
836
836
|
interval: item.interval,
|
|
837
837
|
classificationId: item.classificationId,
|
|
838
|
+
classificationColor: item.classificationColor,
|
|
838
839
|
isIndividually: item.isIndividually,
|
|
839
840
|
};
|
|
840
841
|
}
|
|
@@ -1235,6 +1236,7 @@ class MapaCapabilityIndicatorChartComponent {
|
|
|
1235
1236
|
setUnlabeledItem(item) {
|
|
1236
1237
|
return {
|
|
1237
1238
|
classificationId: item.classificationId,
|
|
1239
|
+
classificationColor: item.classificationColor,
|
|
1238
1240
|
interval: item.interval,
|
|
1239
1241
|
};
|
|
1240
1242
|
}
|