@hestia-earth/ui-components 0.29.2 → 0.29.4
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/common/maps-utils.d.ts +4 -0
- package/common/navigation-menu/navigation-menu.component.d.ts +1 -0
- package/common/node-utils.d.ts +4 -2
- package/common/semver-utils.d.ts +2 -3
- package/common/utils.d.ts +0 -5
- package/cycles/cycles-nodes/cycles-nodes.component.d.ts +1 -1
- package/engine/engine-models-stage-deep/engine-models-stage-deep.component.d.ts +1 -1
- package/engine/engine-models-version-link/engine-models-version-link.component.d.ts +1 -1
- package/engine/engine.service.d.ts +1 -1
- package/esm2022/bibliographies/bibliographies-search-confirm/bibliographies-search-confirm.component.mjs +3 -3
- package/esm2022/chart/chart.component.mjs +3 -3
- package/esm2022/chart/line-chart/line-chart.component.mjs +3 -3
- package/esm2022/common/blank-node-state/blank-node-state.component.mjs +3 -3
- package/esm2022/common/clipboard/clipboard.component.mjs +3 -3
- package/esm2022/common/collapsible-box/collapsible-box.component.mjs +3 -3
- package/esm2022/common/data-table/data-table.component.mjs +3 -3
- package/esm2022/common/drawer-container/drawer-container.component.mjs +3 -3
- package/esm2022/common/link-key-value/link-key-value.component.mjs +3 -3
- package/esm2022/common/maps-drawing-confirm/maps-drawing-confirm.component.mjs +3 -3
- package/esm2022/common/maps-utils.mjs +3 -1
- package/esm2022/common/mobile-shell/mobile-shell.component.mjs +3 -3
- package/esm2022/common/navigation-menu/navigation-menu.component.mjs +7 -3
- package/esm2022/common/node-utils.mjs +12 -7
- package/esm2022/common/schema-version-link/schema-version-link.component.mjs +3 -3
- package/esm2022/common/search-extend/search-extend.component.mjs +3 -3
- package/esm2022/common/semver-utils.mjs +3 -4
- package/esm2022/common/shelf-dialog/shelf-dialog.component.mjs +3 -3
- package/esm2022/common/shell/shell.component.mjs +3 -3
- package/esm2022/common/sort-select/sort-select.component.mjs +3 -3
- package/esm2022/common/utils.mjs +1 -9
- package/esm2022/cycles/cycles-completeness/cycles-completeness.component.mjs +3 -3
- package/esm2022/cycles/cycles-nodes/cycles-nodes.component.mjs +5 -5
- package/esm2022/cycles/cycles-nodes-timeline/cycles-nodes-timeline.component.mjs +3 -3
- package/esm2022/engine/engine-models-stage-deep/engine-models-stage-deep.component.mjs +9 -8
- package/esm2022/engine/engine-models-version-link/engine-models-version-link.component.mjs +3 -3
- package/esm2022/engine/engine-requirements-form/engine-requirements-form.component.mjs +3 -3
- package/esm2022/engine/engine.service.mjs +3 -2
- package/esm2022/files/files-error-summary/files-error-summary-item/files-error-summary-item.component.mjs +3 -3
- package/esm2022/files/files-form.model.mjs +3 -2
- package/esm2022/files/files-upload-errors/files-upload-errors.component.mjs +3 -3
- package/esm2022/impact-assessments/impact-assessments-graph/impact-assessments-graph.component.mjs +3 -3
- package/esm2022/impact-assessments/impact-assessments-indicator-breakdown-chart/impact-assessments-indicator-breakdown-chart.component.mjs +3 -3
- package/esm2022/impact-assessments/impact-assessments-products/impact-assessments-products.component.mjs +7 -4
- package/esm2022/node/node-csv-export-confirm/node-csv-export-confirm.component.mjs +3 -3
- package/esm2022/node/node-csv-select-headers/node-csv-select-headers.component.mjs +3 -3
- package/esm2022/node/node-diffs/node-diffs.component.mjs +3 -3
- package/esm2022/node/node-link/node-link.component.mjs +3 -3
- package/esm2022/node/node-logs-file/node-logs-file.component.mjs +3 -3
- package/esm2022/node/node-logs-models/node-logs-models.component.mjs +34 -41
- package/esm2022/node/node-logs-models/node-logs-models.model.mjs +10 -6
- package/esm2022/node/node-missing-lookup-factors/node-missing-lookup-factors.component.mjs +3 -3
- package/esm2022/node/node-recommendations/node-recommendations.component.mjs +3 -3
- package/esm2022/node/node-store.service.mjs +1 -1
- package/esm2022/node/node-value-details/node-value-details.component.mjs +5 -3
- package/esm2022/schema/schema-info/schema-info.component.mjs +3 -3
- package/esm2022/select/select-option/select-option.component.mjs +3 -3
- package/esm2022/select/select-option-group/select-option-group.component.mjs +3 -3
- package/esm2022/select/select.component.mjs +3 -3
- package/esm2022/sites/sites-management-chart/sites-management-chart.component.mjs +8 -12
- package/esm2022/sites/sites-nodes/sites-nodes.component.mjs +6 -5
- package/esm2022/terms/terms-property-content/terms-property-content.component.mjs +3 -3
- package/esm2022/terms/terms-sub-class-of-content/terms-sub-class-of-content.component.mjs +3 -3
- package/esm2022/terms/terms-units-description/terms-units-description.component.mjs +3 -3
- package/fesm2022/hestia-earth-ui-components.mjs +172 -170
- package/fesm2022/hestia-earth-ui-components.mjs.map +1 -1
- package/impact-assessments/impact-assessments-products/impact-assessments-products.component.d.ts +2 -0
- package/node/node-logs-models/node-logs-models.component.d.ts +4 -4
- package/node/node-logs-models/node-logs-models.model.d.ts +1 -1
- package/node/node-store.service.d.ts +1 -1
- package/package.json +1 -1
- package/sites/sites-management-chart/sites-management-chart.component.d.ts +1 -0
- package/sites/sites-nodes/sites-nodes.component.d.ts +2 -1
- package/styles.scss +5 -34
|
@@ -31,10 +31,10 @@ export class CyclesNodesTimelineComponent {
|
|
|
31
31
|
return this.elementRef.nativeElement.offsetWidth - 60;
|
|
32
32
|
}
|
|
33
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CyclesNodesTimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: CyclesNodesTimelineComponent, isStandalone: true, selector: "he-cycles-nodes-timeline", inputs: { recalculatedValues: { classPropertyName: "recalculatedValues", publicName: "recalculatedValues", isSignal: true, isRequired: false, transformFunction: null }, dataState: { classPropertyName: "dataState", publicName: "dataState", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ul class=\"content is-pl-4 is-ml-4 is-pb-4\">\n @for (\n blankNode of blankNodes() | sortBy: ['startDate', 'endDate'] : ['asc', 'asc'];\n track trackByBlankNode($index, blankNode)\n ) {\n <li class=\"is-relative is-m-0\">\n <div class=\"is-relative\" [style.width]=\"lineWidth + 'px'\">\n @if (blankNode.startDate) {\n <span>{{ blankNode.startDate | date: 'YYYY-MM-dd' }}</span>\n }\n @if (!blankNode.startDate) {\n <span>\n @if (blankNode.term?.termType === TermTermType.operation) {\n No date\n }\n </span>\n }\n <span class=\"px-1\" [class.is-invisible]=\"!blankNode.startDate || !blankNode.endDate\">-</span>\n <span [class.is-invisible]=\"!blankNode.endDate\">{{ blankNode.endDate || now | date: 'YYYY-MM-dd' }}</span>\n <span class=\"pl-4\" [innerHtml]=\"blankNode.term.name | compound: blankNode.term.termType\"></span>\n <he-blank-node-state\n class=\"ml-1\"\n [dataState]=\"dataState()\"\n [node]=\"blankNode\"\n key=\"value\"></he-blank-node-state>\n </div>\n </li>\n }\n</ul>\n", styles: ["ul{max-height:400px
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: CyclesNodesTimelineComponent, isStandalone: true, selector: "he-cycles-nodes-timeline", inputs: { recalculatedValues: { classPropertyName: "recalculatedValues", publicName: "recalculatedValues", isSignal: true, isRequired: false, transformFunction: null }, dataState: { classPropertyName: "dataState", publicName: "dataState", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ul class=\"content is-pl-4 is-ml-4 is-pb-4 is-overflow-y-auto\">\n @for (\n blankNode of blankNodes() | sortBy: ['startDate', 'endDate'] : ['asc', 'asc'];\n track trackByBlankNode($index, blankNode)\n ) {\n <li class=\"is-relative is-m-0\">\n <div class=\"is-relative\" [style.width]=\"lineWidth + 'px'\">\n @if (blankNode.startDate) {\n <span>{{ blankNode.startDate | date: 'YYYY-MM-dd' }}</span>\n }\n @if (!blankNode.startDate) {\n <span>\n @if (blankNode.term?.termType === TermTermType.operation) {\n No date\n }\n </span>\n }\n <span class=\"px-1\" [class.is-invisible]=\"!blankNode.startDate || !blankNode.endDate\">-</span>\n <span [class.is-invisible]=\"!blankNode.endDate\">{{ blankNode.endDate || now | date: 'YYYY-MM-dd' }}</span>\n <span class=\"pl-4\" [innerHtml]=\"blankNode.term.name | compound: blankNode.term.termType\"></span>\n <he-blank-node-state\n class=\"ml-1\"\n [dataState]=\"dataState()\"\n [node]=\"blankNode\"\n key=\"value\"></he-blank-node-state>\n </div>\n </li>\n }\n</ul>\n", styles: ["ul{max-height:400px}ul li{width:4px;padding-top:20px;background:#193957}ul li:after{content:\"\";position:absolute;left:50%;bottom:2px;transform:translate(-50%);width:20px;height:20px;border-radius:50%;background:inherit}ul li>div{width:600px;margin-left:24px}ul li>div>span{display:inline-block}ul li>div>span:nth-child(1),ul li>div>span:nth-child(3){width:94px}\n"], dependencies: [{ kind: "component", type: BlankNodeStateComponent, selector: "he-blank-node-state", inputs: ["dataState", "nodeType", "dataKey", "key", "node", "state", "linkClass"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: CompoundPipe, name: "compound" }, { kind: "pipe", type: SortByPipe, name: "sortBy" }] }); }
|
|
35
35
|
}
|
|
36
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CyclesNodesTimelineComponent, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
|
-
args: [{ selector: 'he-cycles-nodes-timeline', standalone: true, imports: [BlankNodeStateComponent, DatePipe, CompoundPipe, SortByPipe], template: "<ul class=\"content is-pl-4 is-ml-4 is-pb-4\">\n @for (\n blankNode of blankNodes() | sortBy: ['startDate', 'endDate'] : ['asc', 'asc'];\n track trackByBlankNode($index, blankNode)\n ) {\n <li class=\"is-relative is-m-0\">\n <div class=\"is-relative\" [style.width]=\"lineWidth + 'px'\">\n @if (blankNode.startDate) {\n <span>{{ blankNode.startDate | date: 'YYYY-MM-dd' }}</span>\n }\n @if (!blankNode.startDate) {\n <span>\n @if (blankNode.term?.termType === TermTermType.operation) {\n No date\n }\n </span>\n }\n <span class=\"px-1\" [class.is-invisible]=\"!blankNode.startDate || !blankNode.endDate\">-</span>\n <span [class.is-invisible]=\"!blankNode.endDate\">{{ blankNode.endDate || now | date: 'YYYY-MM-dd' }}</span>\n <span class=\"pl-4\" [innerHtml]=\"blankNode.term.name | compound: blankNode.term.termType\"></span>\n <he-blank-node-state\n class=\"ml-1\"\n [dataState]=\"dataState()\"\n [node]=\"blankNode\"\n key=\"value\"></he-blank-node-state>\n </div>\n </li>\n }\n</ul>\n", styles: ["ul{max-height:400px
|
|
38
|
+
args: [{ selector: 'he-cycles-nodes-timeline', standalone: true, imports: [BlankNodeStateComponent, DatePipe, CompoundPipe, SortByPipe], template: "<ul class=\"content is-pl-4 is-ml-4 is-pb-4 is-overflow-y-auto\">\n @for (\n blankNode of blankNodes() | sortBy: ['startDate', 'endDate'] : ['asc', 'asc'];\n track trackByBlankNode($index, blankNode)\n ) {\n <li class=\"is-relative is-m-0\">\n <div class=\"is-relative\" [style.width]=\"lineWidth + 'px'\">\n @if (blankNode.startDate) {\n <span>{{ blankNode.startDate | date: 'YYYY-MM-dd' }}</span>\n }\n @if (!blankNode.startDate) {\n <span>\n @if (blankNode.term?.termType === TermTermType.operation) {\n No date\n }\n </span>\n }\n <span class=\"px-1\" [class.is-invisible]=\"!blankNode.startDate || !blankNode.endDate\">-</span>\n <span [class.is-invisible]=\"!blankNode.endDate\">{{ blankNode.endDate || now | date: 'YYYY-MM-dd' }}</span>\n <span class=\"pl-4\" [innerHtml]=\"blankNode.term.name | compound: blankNode.term.termType\"></span>\n <he-blank-node-state\n class=\"ml-1\"\n [dataState]=\"dataState()\"\n [node]=\"blankNode\"\n key=\"value\"></he-blank-node-state>\n </div>\n </li>\n }\n</ul>\n", styles: ["ul{max-height:400px}ul li{width:4px;padding-top:20px;background:#193957}ul li:after{content:\"\";position:absolute;left:50%;bottom:2px;transform:translate(-50%);width:20px;height:20px;border-radius:50%;background:inherit}ul li>div{width:600px;margin-left:24px}ul li>div>span{display:inline-block}ul li>div>span:nth-child(1),ul li>div>span:nth-child(3){width:94px}\n"] }]
|
|
39
39
|
}] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLW5vZGVzLXRpbWVsaW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jeWNsZXMvY3ljbGVzLW5vZGVzLXRpbWVsaW5lL2N5Y2xlcy1ub2Rlcy10aW1lbGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1ub2Rlcy10aW1lbGluZS9jeWNsZXMtbm9kZXMtdGltZWxpbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFrQixNQUFNLHNCQUFzQixDQUFDO0FBRXBFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBUzFELE1BQU0sT0FBTyw0QkFBNEI7SUFQekM7UUFRVSxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTlCLHVCQUFrQixHQUFHLEtBQUssQ0FBQyxFQUFzQixDQUFDLENBQUM7UUFDbkQsY0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEMsUUFBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDakIsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFFNUIsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDbkMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2hDLFdBQVcsSUFBSSxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQUM7WUFDSCxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUM7Z0JBQ1osQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTTtvQkFDZixDQUFDLENBQUM7d0JBQ0UsR0FBRyxDQUFDO3dCQUNKLFNBQVMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztxQkFDdEI7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FDUixDQUNGLENBQUM7S0FTSDtJQVBRLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxFQUFFLElBQUksRUFBa0I7UUFDOUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDeEQsQ0FBQzsrR0E5QlUsNEJBQTRCO21HQUE1Qiw0QkFBNEIsbVlDaEJ6QyxxcUNBNkJBLHVhRGZZLHVCQUF1Qiw4SUFBRSxRQUFRLHdDQUFFLFlBQVksNENBQUUsVUFBVTs7NEZBRTFELDRCQUE0QjtrQkFQeEMsU0FBUzsrQkFDRSwwQkFBMEIsY0FHeEIsSUFBSSxXQUNQLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYXRhU3RhdGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQgeyBUZXJtVGVybVR5cGUsIGJsYW5rTm9kZXNUeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuXG5pbXBvcnQgeyBCbGFua05vZGVTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9ibGFuay1ub2RlLXN0YXRlL2JsYW5rLW5vZGUtc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNvcnRCeVBpcGUgfSBmcm9tICcuLi8uLi9jb21tb24vc29ydC1ieS5waXBlJztcbmltcG9ydCB7IENvbXBvdW5kUGlwZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb21wb3VuZC5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtY3ljbGVzLW5vZGVzLXRpbWVsaW5lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N5Y2xlcy1ub2Rlcy10aW1lbGluZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N5Y2xlcy1ub2Rlcy10aW1lbGluZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQmxhbmtOb2RlU3RhdGVDb21wb25lbnQsIERhdGVQaXBlLCBDb21wb3VuZFBpcGUsIFNvcnRCeVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEN5Y2xlc05vZGVzVGltZWxpbmVDb21wb25lbnQge1xuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgcHJvdGVjdGVkIHJlY2FsY3VsYXRlZFZhbHVlcyA9IGlucHV0KFtdIGFzIGJsYW5rTm9kZXNUeXBlW10pO1xuICBwcm90ZWN0ZWQgZGF0YVN0YXRlID0gaW5wdXQoRGF0YVN0YXRlLm9yaWdpbmFsKTtcblxuICBwcm90ZWN0ZWQgbm93ID0gbmV3IERhdGUoKTtcbiAgcHJvdGVjdGVkIFRlcm1UZXJtVHlwZSA9IFRlcm1UZXJtVHlwZTtcblxuICBwcm90ZWN0ZWQgYmxhbmtOb2RlcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5yZWNhbGN1bGF0ZWRWYWx1ZXMoKS5tYXAodiA9PlxuICAgICAgJ3N0YXJ0RGF0ZScgaW4gdlxuICAgICAgICA/IHZcbiAgICAgICAgOiAnZGF0ZXMnIGluIHZcbiAgICAgICAgICA/IHYuZGF0ZXM/Lmxlbmd0aFxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgLi4udixcbiAgICAgICAgICAgICAgICBzdGFydERhdGU6IHYuZGF0ZXNbMF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB2XG4gICAgICAgICAgOiB2XG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyB0cmFja0J5QmxhbmtOb2RlKF9pbmRleDogbnVtYmVyLCB7IHRlcm0gfTogYmxhbmtOb2Rlc1R5cGUpIHtcbiAgICByZXR1cm4gdGVybVsnQGlkJ107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxpbmVXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSA2MDtcbiAgfVxufVxuIiwiPHVsIGNsYXNzPVwiY29udGVudCBpcy1wbC00IGlzLW1sLTQgaXMtcGItNCBpcy1vdmVyZmxvdy15LWF1dG9cIj5cbiAgQGZvciAoXG4gICAgYmxhbmtOb2RlIG9mIGJsYW5rTm9kZXMoKSB8IHNvcnRCeTogWydzdGFydERhdGUnLCAnZW5kRGF0ZSddIDogWydhc2MnLCAnYXNjJ107XG4gICAgdHJhY2sgdHJhY2tCeUJsYW5rTm9kZSgkaW5kZXgsIGJsYW5rTm9kZSlcbiAgKSB7XG4gICAgPGxpIGNsYXNzPVwiaXMtcmVsYXRpdmUgaXMtbS0wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaXMtcmVsYXRpdmVcIiBbc3R5bGUud2lkdGhdPVwibGluZVdpZHRoICsgJ3B4J1wiPlxuICAgICAgICBAaWYgKGJsYW5rTm9kZS5zdGFydERhdGUpIHtcbiAgICAgICAgICA8c3Bhbj57eyBibGFua05vZGUuc3RhcnREYXRlIHwgZGF0ZTogJ1lZWVktTU0tZGQnIH19PC9zcGFuPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoIWJsYW5rTm9kZS5zdGFydERhdGUpIHtcbiAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIEBpZiAoYmxhbmtOb2RlLnRlcm0/LnRlcm1UeXBlID09PSBUZXJtVGVybVR5cGUub3BlcmF0aW9uKSB7XG4gICAgICAgICAgICAgIE5vIGRhdGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJweC0xXCIgW2NsYXNzLmlzLWludmlzaWJsZV09XCIhYmxhbmtOb2RlLnN0YXJ0RGF0ZSB8fCAhYmxhbmtOb2RlLmVuZERhdGVcIj4tPC9zcGFuPlxuICAgICAgICA8c3BhbiBbY2xhc3MuaXMtaW52aXNpYmxlXT1cIiFibGFua05vZGUuZW5kRGF0ZVwiPnt7IGJsYW5rTm9kZS5lbmREYXRlIHx8IG5vdyB8IGRhdGU6ICdZWVlZLU1NLWRkJyB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwbC00XCIgW2lubmVySHRtbF09XCJibGFua05vZGUudGVybS5uYW1lIHwgY29tcG91bmQ6IGJsYW5rTm9kZS50ZXJtLnRlcm1UeXBlXCI+PC9zcGFuPlxuICAgICAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZVxuICAgICAgICAgIGNsYXNzPVwibWwtMVwiXG4gICAgICAgICAgW2RhdGFTdGF0ZV09XCJkYXRhU3RhdGUoKVwiXG4gICAgICAgICAgW25vZGVdPVwiYmxhbmtOb2RlXCJcbiAgICAgICAgICBrZXk9XCJ2YWx1ZVwiPjwvaGUtYmxhbmstbm9kZS1zdGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbGk+XG4gIH1cbjwvdWw+XG4iXX0=
|
|
@@ -3,11 +3,12 @@ import { DatePipe } from '@angular/common';
|
|
|
3
3
|
import { toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { jsonldPath, NodeType } from '@hestia-earth/schema';
|
|
5
5
|
import { DataState } from '@hestia-earth/api';
|
|
6
|
-
import { catchError, filter, map, mergeMap, tap, toArray } from 'rxjs/operators';
|
|
6
|
+
import { catchError, distinct, filter, map, mergeMap, tap, toArray } from 'rxjs/operators';
|
|
7
7
|
import { combineLatest, from, of } from 'rxjs';
|
|
8
8
|
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
|
|
9
9
|
import { faAngleDown, faAngleRight } from '@fortawesome/free-solid-svg-icons';
|
|
10
10
|
import { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap';
|
|
11
|
+
import { unique } from '@hestia-earth/utils';
|
|
11
12
|
import { distinctUntilChangedDeep } from '../../common/rxjs-utils';
|
|
12
13
|
import { TimesPipe } from '../../common/times.pipe';
|
|
13
14
|
import { SkeletonTextComponent } from '../../common/skeleton-text/skeleton-text.component';
|
|
@@ -49,12 +50,12 @@ export class EngineModelsStageDeepComponent {
|
|
|
49
50
|
this.relatedNodes = signal([]);
|
|
50
51
|
this.relatedNodes$ = toObservable(this.relatedNodes);
|
|
51
52
|
this.nodesLength = toSignal(this.relatedNodes$.pipe(map(nodes => nodes?.length ?? 0)));
|
|
52
|
-
this.nodes = toSignal(combineLatest([this.relatedNodes$, this.nodeStoreService.nodes$()]).pipe(filter(([nodes]) => nodes?.length > 0), distinctUntilChangedDeep(), tap(() => this.loading.set(true)), mergeMap(([nodes, allNodes]) => from(nodes).pipe(mergeMap(node => this.findNode(allNodes, node)), filter(v => !!v), toArray())), tap(() => this.loading.set(false))));
|
|
53
|
+
this.nodes = toSignal(combineLatest([this.relatedNodes$, this.nodeStoreService.nodes$()]).pipe(filter(([nodes]) => nodes?.length > 0), distinctUntilChangedDeep(), tap(() => this.loading.set(true)), mergeMap(([nodes, allNodes]) => from(nodes).pipe(mergeMap(node => this.findNode(allNodes, node)), filter(v => !!v), distinct(node => jsonldPath(node['@type'], node['@id'])), toArray())), tap(() => this.loading.set(false))));
|
|
53
54
|
this.expandableNodes = computed(() => this.nodes()?.filter(n => this.expandedNode()?.['@type'] !== n['@type'] || this.expandedNode()?.['@id'] !== n['@id']) ?? []);
|
|
54
55
|
this.defaultMaxStage = computed(() => NODE_MAX_STAGE[this.type()]);
|
|
55
56
|
this.stage = computed(() => +this.node().stage || 0);
|
|
56
|
-
this.
|
|
57
|
-
this.inProgress = computed(() => this.stage() < this.
|
|
57
|
+
this.maxStage = computed(() => +this.node().maxstage || this.defaultMaxStage());
|
|
58
|
+
this.inProgress = computed(() => this.stage() < this.maxStage());
|
|
58
59
|
this.canExpand = computed(() => this.expandableNodes()?.length);
|
|
59
60
|
effect(() => {
|
|
60
61
|
const node = this.node();
|
|
@@ -62,7 +63,7 @@ export class EngineModelsStageDeepComponent {
|
|
|
62
63
|
const relatedNodes = relatedNodesByType[node['@type']] ?? [];
|
|
63
64
|
from(relatedNodes)
|
|
64
65
|
.pipe(mergeMap(nodeType => this.nodeService.getRelated$(node, nodeType).pipe(mergeMap(({ results }) => results))), toArray())
|
|
65
|
-
.subscribe(values => this.relatedNodes.set([...values, ...nestedNodes]));
|
|
66
|
+
.subscribe(values => this.relatedNodes.set(unique([...values, ...nestedNodes])));
|
|
66
67
|
}, { allowSignalWrites: true });
|
|
67
68
|
}
|
|
68
69
|
loadNode$(node, dataState) {
|
|
@@ -83,7 +84,7 @@ export class EngineModelsStageDeepComponent {
|
|
|
83
84
|
return jsonldPath(node['@type'], node['@id']);
|
|
84
85
|
}
|
|
85
86
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: EngineModelsStageDeepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: EngineModelsStageDeepComponent, isStandalone: true, selector: "he-engine-models-stage-deep", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, expandedNode: { classPropertyName: "expandedNode", publicName: "expandedNode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange" }, ngImport: i0, template: "<div\n class=\"is-flex is-flex-direction-column is-gap-8 is-py-2 is-pl-2 | engine-models-stage--container is-type-{{ type }}\"\n [style.border-color]=\"nodeColour()\">\n <div class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-8\">\n @if (canExpand()) {\n <div (click)=\"expanded.set(!expanded())\" pointer>\n <fa-icon [icon]=\"expanded() ? faAngleDown : faAngleRight\"
|
|
87
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: EngineModelsStageDeepComponent, isStandalone: true, selector: "he-engine-models-stage-deep", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, expandedNode: { classPropertyName: "expandedNode", publicName: "expandedNode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange" }, ngImport: i0, template: "<div\n class=\"is-flex is-flex-direction-column is-gap-8 is-py-2 is-pl-2 | engine-models-stage--container is-type-{{ type }}\"\n [style.border-color]=\"nodeColour()\">\n <div class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-8\">\n @if (canExpand()) {\n <div (click)=\"expanded.set(!expanded())\" pointer>\n <fa-icon [icon]=\"expanded() ? faAngleDown : faAngleRight\" />\n </div>\n }\n\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-8 is-flex-wrap-wrap is-flex-grow-1\">\n <he-node-link class=\"is-flex-grow-1\" [node]=\"node()\" [showExternalLink]=\"true\">\n <span>{{ type() }} {{ id() }}</span>\n </he-node-link>\n\n <div class=\"is-flex is-flex-direction-column is-gap-4 | engine-models-stage--calculations\">\n <div class=\"is-flex is-gap-4 is-pr-2\">\n <span class=\"has-text-secondary has-text-weight-bold\">Calculations:</span>\n\n @if (inProgress()) {\n <span [class.has-text-danger]=\"stage() === 0\" [class.has-text-warning]=\"stage() > 0\">\n stage {{ stage() }} / {{ maxStage() }}\n </span>\n } @else {\n <span\n class=\"trigger-popover\"\n [ngbPopover]=\"popoverDetails\"\n autoClose=\"outside\"\n popoverClass=\"is-narrow\"\n placement=\"left\"\n container=\"body\">\n <span class=\"has-text-success\">complete</span>\n </span>\n }\n </div>\n </div>\n </div>\n </div>\n\n @if (expanded()) {\n @if (loading() && nodesLength() > 0) {\n @for (node of nodesLength() | times; track $index) {\n <he-skeleton-text [width]=\"60\" />\n }\n }\n\n @for (relatedNode of expandableNodes(); track trackNode(relatedNode)) {\n <div class=\"related-node\">\n <he-engine-models-stage-deep\n [node]=\"relatedNode\"\n [expanded]=\"false\"\n [expandedNode]=\"expandedNode() || node()\" />\n </div>\n }\n }\n</div>\n\n<ng-template #popoverDetails>\n <div class=\"is-flex is-flex-direction-column is-gap-4 has-text-white w-100\">\n <div class=\"is-flex is-align-items-center is-gap-8 w-100\">\n <span class=\"has-text-weight-bold\">Calculated Date:</span>\n <span>{{ recalculatedAt() | date: 'mediumDate' }}</span>\n </div>\n <div class=\"is-flex is-align-items-center is-gap-8 w-100\">\n <span class=\"has-text-weight-bold\">Calculated Version:</span>\n <he-engine-models-version-link [node]=\"node()\" [showDetails]=\"true\"></he-engine-models-version-link>\n </div>\n </div>\n</ng-template>\n", styles: [".engine-models-stage--container{border:1px solid transparent;border-radius:3px}.engine-models-stage--calculations{width:175px}he-engine-models-stage-deep ::ng-deep .engine-models-stage--container{border-right:0px;border-top-right-radius:0;border-bottom-right-radius:0}\n"], dependencies: [{ kind: "component", type: EngineModelsStageDeepComponent, selector: "he-engine-models-stage-deep", inputs: ["node", "expanded", "expandedNode"], outputs: ["expandedChange"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "ngmodule", type: NgbPopoverModule }, { kind: "directive", type: i1.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "ngbPopover", "popoverTitle", "placement", "popperOptions", "triggers", "positionTarget", "container", "disablePopover", "popoverClass", "popoverContext", "openDelay", "closeDelay"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }, { kind: "component", type: EngineModelsVersionLinkComponent, selector: "he-engine-models-version-link", inputs: ["node", "showDetails"] }, { kind: "component", type: SkeletonTextComponent, selector: "he-skeleton-text", inputs: ["animated", "width", "height"] }, { kind: "pipe", type: TimesPipe, name: "times" }, { kind: "component", type: NodeLinkComponent, selector: "he-node-link", inputs: ["node", "showExternalLink", "linkClass"] }] }); }
|
|
87
88
|
}
|
|
88
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: EngineModelsStageDeepComponent, decorators: [{
|
|
89
90
|
type: Component,
|
|
@@ -95,6 +96,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
95
96
|
SkeletonTextComponent,
|
|
96
97
|
TimesPipe,
|
|
97
98
|
NodeLinkComponent
|
|
98
|
-
], template: "<div\n class=\"is-flex is-flex-direction-column is-gap-8 is-py-2 is-pl-2 | engine-models-stage--container is-type-{{ type }}\"\n [style.border-color]=\"nodeColour()\">\n <div class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-8\">\n @if (canExpand()) {\n <div (click)=\"expanded.set(!expanded())\" pointer>\n <fa-icon [icon]=\"expanded() ? faAngleDown : faAngleRight\"
|
|
99
|
+
], template: "<div\n class=\"is-flex is-flex-direction-column is-gap-8 is-py-2 is-pl-2 | engine-models-stage--container is-type-{{ type }}\"\n [style.border-color]=\"nodeColour()\">\n <div class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-8\">\n @if (canExpand()) {\n <div (click)=\"expanded.set(!expanded())\" pointer>\n <fa-icon [icon]=\"expanded() ? faAngleDown : faAngleRight\" />\n </div>\n }\n\n <div\n class=\"is-flex is-flex-direction-row is-justify-content-space-between is-gap-8 is-flex-wrap-wrap is-flex-grow-1\">\n <he-node-link class=\"is-flex-grow-1\" [node]=\"node()\" [showExternalLink]=\"true\">\n <span>{{ type() }} {{ id() }}</span>\n </he-node-link>\n\n <div class=\"is-flex is-flex-direction-column is-gap-4 | engine-models-stage--calculations\">\n <div class=\"is-flex is-gap-4 is-pr-2\">\n <span class=\"has-text-secondary has-text-weight-bold\">Calculations:</span>\n\n @if (inProgress()) {\n <span [class.has-text-danger]=\"stage() === 0\" [class.has-text-warning]=\"stage() > 0\">\n stage {{ stage() }} / {{ maxStage() }}\n </span>\n } @else {\n <span\n class=\"trigger-popover\"\n [ngbPopover]=\"popoverDetails\"\n autoClose=\"outside\"\n popoverClass=\"is-narrow\"\n placement=\"left\"\n container=\"body\">\n <span class=\"has-text-success\">complete</span>\n </span>\n }\n </div>\n </div>\n </div>\n </div>\n\n @if (expanded()) {\n @if (loading() && nodesLength() > 0) {\n @for (node of nodesLength() | times; track $index) {\n <he-skeleton-text [width]=\"60\" />\n }\n }\n\n @for (relatedNode of expandableNodes(); track trackNode(relatedNode)) {\n <div class=\"related-node\">\n <he-engine-models-stage-deep\n [node]=\"relatedNode\"\n [expanded]=\"false\"\n [expandedNode]=\"expandedNode() || node()\" />\n </div>\n }\n }\n</div>\n\n<ng-template #popoverDetails>\n <div class=\"is-flex is-flex-direction-column is-gap-4 has-text-white w-100\">\n <div class=\"is-flex is-align-items-center is-gap-8 w-100\">\n <span class=\"has-text-weight-bold\">Calculated Date:</span>\n <span>{{ recalculatedAt() | date: 'mediumDate' }}</span>\n </div>\n <div class=\"is-flex is-align-items-center is-gap-8 w-100\">\n <span class=\"has-text-weight-bold\">Calculated Version:</span>\n <he-engine-models-version-link [node]=\"node()\" [showDetails]=\"true\"></he-engine-models-version-link>\n </div>\n </div>\n</ng-template>\n", styles: [".engine-models-stage--container{border:1px solid transparent;border-radius:3px}.engine-models-stage--calculations{width:175px}he-engine-models-stage-deep ::ng-deep .engine-models-stage--container{border-right:0px;border-top-right-radius:0;border-bottom-right-radius:0}\n"] }]
|
|
99
100
|
}], ctorParameters: () => [] });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbmdpbmUvZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC9lbmdpbmUtbW9kZWxzLXN0YWdlLWRlZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQWlELFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sRUFBRSx3QkFBd0Is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QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFUyxTQUFTLENBQUMsSUFBcUI7UUFDdkMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7K0dBOUZVLDhCQUE4QjttR0FBOUIsOEJBQThCLDhnQkN6RDNDLGlyRkFzRUEsd1VEYmEsOEJBQThCLDhJQVh2QyxRQUFRLDZDQUNSLGVBQWUsMk1BQ2YsZ0JBQWdCLHVYQUNoQixnQ0FBZ0MsMkdBQ2hDLHFCQUFxQixpR0FDckIsU0FBUyw4Q0FDVCxpQkFBaUI7OzRGQUtSLDhCQUE4QjtrQkFmMUMsU0FBUzsrQkFDRSw2QkFBNkIsY0FDM0IsSUFBSSxXQUNQO3dCQUNQLFFBQVE7d0JBQ1IsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGdDQUFnQzt3QkFDaEMscUJBQXFCO3dCQUNyQixTQUFTO3dCQUNULGlCQUFpQjtxQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG1vZGVsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBJQ3ljbGVKU09OTEQsIElJbXBhY3RBc3Nlc3NtZW50SlNPTkxELCBKU09OTEQsIGpzb25sZFBhdGgsIE5vZGVUeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgRGF0YVN0YXRlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCB0YXAsIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmFJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgZmFBbmdsZURvd24sIGZhQW5nbGVSaWdodCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBOZ2JQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZERlZXAgfSBmcm9tICcuLi8uLi9jb21tb24vcnhqcy11dGlscyc7XG5pbXBvcnQgeyBUaW1lc1BpcGUgfSBmcm9tICcuLi8uLi9jb21tb24vdGltZXMucGlwZSc7XG5pbXBvcnQgeyBTa2VsZXRvblRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vc2tlbGV0b24tdGV4dC9za2VsZXRvbi10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOT0RFX01BWF9TVEFHRSwgSGVOb2RlU2VydmljZSwgSVJlbGF0ZWROb2RlLCBub2RlQ29sb3VycyB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS5zZXJ2aWNlJztcbmltcG9ydCB7IG5vZGVzLCBIZU5vZGVTdG9yZVNlcnZpY2UsIG1lcmdlRGF0YVdpdGhIZWFkZXJzIH0gZnJvbSAnLi4vLi4vbm9kZS9ub2RlLXN0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW5naW5lTW9kZWxzVmVyc2lvbkxpbmtDb21wb25lbnQgfSBmcm9tICcuLi9lbmdpbmUtbW9kZWxzLXZlcnNpb24tbGluay9lbmdpbmUtbW9kZWxzLXZlcnNpb24tbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm9kZUxpbmtDb21wb25lbnQgfSBmcm9tICcuLi8uLi9ub2RlL25vZGUtbGluay9ub2RlLWxpbmsuY29tcG9uZW50JztcblxuaW50ZXJmYWNlIElKU09OTERFeHRlbmRlZCBleHRlbmRzIEpTT05MRDxOb2RlVHlwZT4ge1xuICBzdGFnZT86IG51bWJlcjtcbiAgbWF4c3RhZ2U/OiBudW1iZXI7XG59XG5cbmNvbnN0IG5lc3RlZE5vZGVzQnlUeXBlOiB7XG4gIFt0eXBlIGluIE5vZGVUeXBlXT86IChub2RlOiBJSlNPTkxERXh0ZW5kZWQpID0+IChKU09OTEQ8Tm9kZVR5cGU+IHwgSlNPTkxEPE5vZGVUeXBlPltdKVtdO1xufSA9IHtcbiAgW05vZGVUeXBlLkN5Y2xlXTogKG5vZGU6IElDeWNsZUpTT05MRCkgPT4gW1xuICAgIG5vZGUuc2l0ZSxcbiAgICBub2RlLm90aGVyU2l0ZXMsXG4gICAgbm9kZS5pbnB1dHM/Lm1hcChpbnB1dCA9PiBpbnB1dC5pbXBhY3RBc3Nlc3NtZW50IGFzIGFueSk/LmZsYXQoKSxcbiAgICBub2RlLmFuaW1hbHM/LmZsYXRNYXAoYW5pbWFsID0+IGFuaW1hbC5pbnB1dHM/Lm1hcChpbnB1dCA9PiBpbnB1dC5pbXBhY3RBc3Nlc3NtZW50IGFzIGFueSk/LmZsYXQoKSlcbiAgXSxcbiAgW05vZGVUeXBlLkltcGFjdEFzc2Vzc21lbnRdOiAobm9kZTogSUltcGFjdEFzc2Vzc21lbnRKU09OTEQpID0+IFtub2RlLmN5Y2xlXVxufTtcblxuY29uc3QgcmVsYXRlZE5vZGVzQnlUeXBlOiB7XG4gIFt0eXBlIGluIE5vZGVUeXBlXT86IE5vZGVUeXBlW107XG59ID0ge1xuICBbTm9kZVR5cGUuU2l0ZV06IFtOb2RlVHlwZS5DeWNsZV1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWVuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBEYXRlUGlwZSxcbiAgICBGYUljb25Db21wb25lbnQsXG4gICAgTmdiUG9wb3Zlck1vZHVsZSxcbiAgICBFbmdpbmVNb2RlbHNWZXJzaW9uTGlua0NvbXBvbmVudCxcbiAgICBTa2VsZXRvblRleHRDb21wb25lbnQsXG4gICAgVGltZXNQaXBlLFxuICAgIE5vZGVMaW5rQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9lbmdpbmUtbW9kZWxzLXN0YWdlLWRlZXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBFbmdpbmVNb2RlbHNTdGFnZURlZXBDb21wb25lbnQ8VCBleHRlbmRzIE5vZGVUeXBlPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm9kZVNlcnZpY2UgPSBpbmplY3QoSGVOb2RlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm9kZVN0b3JlU2VydmljZSA9IGluamVjdChIZU5vZGVTdG9yZVNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBmYUFuZ2xlUmlnaHQgPSBmYUFuZ2xlUmlnaHQ7XG4gIHByb3RlY3RlZCByZWFkb25seSBmYUFuZ2xlRG93biA9IGZhQW5nbGVEb3duO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBub2RlID0gaW5wdXQucmVxdWlyZWQ8SUpTT05MREV4dGVuZGVkPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBleHBhbmRlZCA9IG1vZGVsKGZhbHNlKTtcbiAgLyoqXG4gICAqIFdoZW4gbmVzdGluZyB0aGUgY29tcG9uZW50cywgYXZvaWQgYWxsb3dpbmcgZXhwYW5zaW9uIG9uIHRoZSB0b3AtbGV2ZWwgbm9kZS5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBleHBhbmRlZE5vZGUgPSBpbnB1dDxJSlNPTkxERXh0ZW5kZWQ+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5ub2RlKCk/LlsnQGlkJ10pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHlwZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubm9kZSgpPy5bJ0B0eXBlJ10pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBub2RlQ29sb3VyID0gY29tcHV0ZWQoKCkgPT4gbm9kZUNvbG91cnNbdGhpcy50eXBlKCldKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlY2FsY3VsYXRlZEF0ID0gY29tcHV0ZWQoXG4gICAgKCkgPT4gKHRoaXMubm9kZSgpIGFzIGFueSk/LnVwZGF0ZWRBdCB8fCAodGhpcy5ub2RlKCkgYXMgYW55KT8uY3JlYXRlZEF0XG4gICk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZWxhdGVkTm9kZXMgPSBzaWduYWw8KEpTT05MRDxOb2RlVHlwZT4gfCBJUmVsYXRlZE5vZGUpW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZWxhdGVkTm9kZXMkID0gdG9PYnNlcnZhYmxlKHRoaXMucmVsYXRlZE5vZGVzKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vZGVzTGVuZ3RoID0gdG9TaWduYWwodGhpcy5yZWxhdGVkTm9kZXMkLnBpcGUobWFwKG5vZGVzID0+IG5vZGVzPy5sZW5ndGggPz8gMCkpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVzID0gdG9TaWduYWwoXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5yZWxhdGVkTm9kZXMkLCB0aGlzLm5vZGVTdG9yZVNlcnZpY2Uubm9kZXMkKCldKS5waXBlKFxuICAgICAgZmlsdGVyKChbbm9kZXNdKSA9PiBub2Rlcz8ubGVuZ3RoID4gMCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZERlZXAoKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KHRydWUpKSxcbiAgICAgIG1lcmdlTWFwKChbbm9kZXMsIGFsbE5vZGVzXSkgPT5cbiAgICAgICAgZnJvbShub2RlcykucGlwZShcbiAgICAgICAgICBtZXJnZU1hcChub2RlID0+IHRoaXMuZmluZE5vZGUoYWxsTm9kZXMsIG5vZGUpKSxcbiAgICAgICAgICBmaWx0ZXIodiA9PiAhIXYpLFxuICAgICAgICAgIHRvQXJyYXkoKVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgdGFwKCgpID0+IHRoaXMubG9hZGluZy5zZXQoZmFsc2UpKVxuICAgIClcbiAgKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGV4cGFuZGFibGVOb2RlcyA9IGNvbXB1dGVkKFxuICAgICgpID0+XG4gICAgICB0aGlzLm5vZGVzKCk/LmZpbHRlcihcbiAgICAgICAgbiA9PiB0aGlzLmV4cGFuZGVkTm9kZSgpPy5bJ0B0eXBlJ10gIT09IG5bJ0B0eXBlJ10gfHwgdGhpcy5leHBhbmRlZE5vZGUoKT8uWydAaWQnXSAhPT0gblsnQGlkJ11cbiAgICAgICkgPz8gW11cbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRNYXhTdGFnZSA9IGNvbXB1dGVkKCgpID0+IE5PREVfTUFYX1NUQUdFW3RoaXMudHlwZSgpXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzdGFnZSA9IGNvbXB1dGVkKCgpID0+ICt0aGlzLm5vZGUoKS5zdGFnZSB8fCAwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1heHN0YWdlID0gY29tcHV0ZWQoKCkgPT4gK3RoaXMubm9kZSgpLm1heHN0YWdlIHx8IHRoaXMuZGVmYXVsdE1heFN0YWdlKCkpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5Qcm9ncmVzcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3RhZ2UoKSA8IHRoaXMubWF4c3RhZ2UoKSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbkV4cGFuZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZXhwYW5kYWJsZU5vZGVzKCk/Lmxlbmd0aCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5ub2RlKCk7XG4gICAgICAgIGNvbnN0IG5lc3RlZE5vZGVzID0gbmVzdGVkTm9kZXNCeVR5cGVbbm9kZVsnQHR5cGUnXV0/Lihub2RlKT8uZmxhdCgpPy5maWx0ZXIoQm9vbGVhbikgPz8gW107XG4gICAgICAgIGNvbnN0IHJlbGF0ZWROb2RlcyA9IHJlbGF0ZWROb2Rlc0J5VHlwZVtub2RlWydAdHlwZSddXSA/PyBbXTtcblxuICAgICAgICBmcm9tKHJlbGF0ZWROb2RlcylcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKG5vZGVUeXBlID0+IHRoaXMubm9kZVNlcnZpY2UuZ2V0UmVsYXRlZCQobm9kZSwgbm9kZVR5cGUpLnBpcGUobWVyZ2VNYXAoKHsgcmVzdWx0cyB9KSA9PiByZXN1bHRzKSkpLFxuICAgICAgICAgICAgdG9BcnJheSgpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWVzID0+IHRoaXMucmVsYXRlZE5vZGVzLnNldChbLi4udmFsdWVzLCAuLi5uZXN0ZWROb2Rlc10pKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTm9kZSQobm9kZTogSlNPTkxEPE5vZGVUeXBlPiB8IElSZWxhdGVkTm9kZSwgZGF0YVN0YXRlOiBEYXRhU3RhdGUpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlU2VydmljZVxuICAgICAgLmdldFdpdGhIZWFkZXJzJDxKU09OTEQ8VD4+KHtcbiAgICAgICAgLi4ubm9kZSxcbiAgICAgICAgZGF0YVN0YXRlXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEsIGhlYWRlcnMgfSkgPT4gbWVyZ2VEYXRhV2l0aEhlYWRlcnM8SUpTT05MREV4dGVuZGVkPihkYXRhLCBoZWFkZXJzKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTm9kZShhbGxOb2Rlczogbm9kZXMsIG5vZGU6IEpTT05MRDxOb2RlVHlwZT4gfCBJUmVsYXRlZE5vZGUpIHtcbiAgICBjb25zdCBtYXRjaGVkTm9kZSA9IGFsbE5vZGVzPy5bbm9kZVsnQHR5cGUnXV0/LmZpbmQodiA9PiB2Py5pZCA9PT0gbm9kZVsnQGlkJ10pO1xuICAgIHJldHVybiBtYXRjaGVkTm9kZVxuICAgICAgPyBvZigobWF0Y2hlZE5vZGUucmVjYWxjdWxhdGVkIHx8IG1hdGNoZWROb2RlLm9yaWdpbmFsKSBhcyBJSlNPTkxERXh0ZW5kZWQpXG4gICAgICA6IHRoaXMubG9hZE5vZGUkKG5vZGUsIERhdGFTdGF0ZS5yZWNhbGN1bGF0ZWQpLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiB0aGlzLmxvYWROb2RlJChub2RlLCBEYXRhU3RhdGUub3JpZ2luYWwpKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhY2tOb2RlKG5vZGU6IElKU09OTERFeHRlbmRlZCkge1xuICAgIHJldHVybiBqc29ubGRQYXRoKG5vZGVbJ0B0eXBlJ10sIG5vZGVbJ0BpZCddKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImlzLWZsZXggaXMtZmxleC1kaXJlY3Rpb24tY29sdW1uIGlzLWdhcC04IGlzLXB5LTIgaXMtcGwtMiB8IGVuZ2luZS1tb2RlbHMtc3RhZ2UtLWNvbnRhaW5lciBpcy10eXBlLXt7IHR5cGUgfX1cIlxuICBbc3R5bGUuYm9yZGVyLWNvbG9yXT1cIm5vZGVDb2xvdXIoKVwiPlxuICA8ZGl2IGNsYXNzPVwiaXMtZmxleCBpcy1mbGV4LWRpcmVjdGlvbi1yb3cgaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4gaXMtZ2FwLThcIj5cbiAgICBAaWYgKGNhbkV4cGFuZCgpKSB7XG4gICAgICA8ZGl2IChjbGljayk9XCJleHBhbmRlZC5zZXQoIWV4cGFuZGVkKCkpXCIgcG9pbnRlcj5cbiAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZXhwYW5kZWQoKSA/IGZhQW5nbGVEb3duIDogZmFBbmdsZVJpZ2h0XCI+PC9mYS1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJpcy1mbGV4IGlzLWZsZXgtZGlyZWN0aW9uLXJvdyBpcy1qdXN0aWZ5LWNvbnRlbnQtc3BhY2UtYmV0d2VlbiBpcy1nYXAtOCBpcy1mbGV4LXdyYXAtd3JhcCBpcy1mbGV4LWdyb3ctMVwiPlxuICAgICAgPGhlLW5vZGUtbGluayBjbGFzcz1cImlzLWZsZXgtZ3Jvdy0xXCIgW25vZGVdPVwibm9kZSgpXCIgW3Nob3dFeHRlcm5hbExpbmtdPVwidHJ1ZVwiPlxuICAgICAgICA8c3Bhbj57eyB0eXBlKCkgfX0ge3sgaWQoKSB9fTwvc3Bhbj5cbiAgICAgIDwvaGUtbm9kZS1saW5rPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaXMtZmxleCBpcy1mbGV4LWRpcmVjdGlvbi1jb2x1bW4gaXMtZ2FwLTQgfCBlbmdpbmUtbW9kZWxzLXN0YWdlLS1jYWxjdWxhdGlvbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlzLWZsZXggaXMtZ2FwLTQgaXMtcHItMlwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGFzLXRleHQtc2Vjb25kYXJ5IGhhcy10ZXh0LXdlaWdodC1ib2xkXCI+Q2FsY3VsYXRpb25zOjwvc3Bhbj5cblxuICAgICAgICAgIEBpZiAoaW5Qcm9ncmVzcygpKSB7XG4gICAgICAgICAgICA8c3BhbiBbY2xhc3MuaGFzLXRleHQtZGFuZ2VyXT1cInN0YWdlKCkgPT09IDBcIiBbY2xhc3MuaGFzLXRleHQtd2FybmluZ109XCJzdGFnZSgpID4gMFwiPlxuICAgICAgICAgICAgICBzdGFnZSB7eyBzdGFnZSgpIH19IC8ge3sgbWF4c3RhZ2UoKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJ0cmlnZ2VyLXBvcG92ZXJcIlxuICAgICAgICAgICAgICBbbmdiUG9wb3Zlcl09XCJwb3BvdmVyRGV0YWlsc1wiXG4gICAgICAgICAgICAgIGF1dG9DbG9zZT1cIm91dHNpZGVcIlxuICAgICAgICAgICAgICBwb3BvdmVyQ2xhc3M9XCJpcy1uYXJyb3dcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhhcy10ZXh0LXN1Y2Nlc3NcIj5jb21wbGV0ZTwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIEBpZiAoZXhwYW5kZWQoKSkge1xuICAgIEBpZiAobG9hZGluZygpICYmIG5vZGVzTGVuZ3RoKCkgPiAwKSB7XG4gICAgICBAZm9yIChub2RlIG9mIG5vZGVzTGVuZ3RoKCkgfCB0aW1lczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxoZS1za2VsZXRvbi10ZXh0IFt3aWR0aF09XCI2MFwiIC8+XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGZvciAocmVsYXRlZE5vZGUgb2YgZXhwYW5kYWJsZU5vZGVzKCk7IHRyYWNrIHRyYWNrTm9kZShyZWxhdGVkTm9kZSkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGVkLW5vZGVcIj5cbiAgICAgICAgPGhlLWVuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcFxuICAgICAgICAgIFtub2RlXT1cInJlbGF0ZWROb2RlXCJcbiAgICAgICAgICBbZXhwYW5kZWRdPVwiZmFsc2VcIlxuICAgICAgICAgIFtleHBhbmRlZE5vZGVdPVwiZXhwYW5kZWROb2RlKCkgfHwgbm9kZSgpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgfVxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjcG9wb3ZlckRldGFpbHM+XG4gIDxkaXYgY2xhc3M9XCJpcy1mbGV4IGlzLWZsZXgtZGlyZWN0aW9uLWNvbHVtbiBpcy1nYXAtNCBoYXMtdGV4dC13aGl0ZSB3LTEwMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJpcy1mbGV4IGlzLWFsaWduLWl0ZW1zLWNlbnRlciBpcy1nYXAtOCB3LTEwMFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJoYXMtdGV4dC13ZWlnaHQtYm9sZFwiPkNhbGN1bGF0ZWQgRGF0ZTo8L3NwYW4+XG4gICAgICA8c3Bhbj57eyByZWNhbGN1bGF0ZWRBdCgpIHwgZGF0ZTogJ21lZGl1bURhdGUnIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpcy1mbGV4IGlzLWFsaWduLWl0ZW1zLWNlbnRlciBpcy1nYXAtOCB3LTEwMFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJoYXMtdGV4dC13ZWlnaHQtYm9sZFwiPkNhbGN1bGF0ZWQgVmVyc2lvbjo8L3NwYW4+XG4gICAgICA8aGUtZW5naW5lLW1vZGVscy12ZXJzaW9uLWxpbmsgW25vZGVdPVwibm9kZSgpXCIgW3Nob3dEZXRhaWxzXT1cInRydWVcIj48L2hlLWVuZ2luZS1tb2RlbHMtdmVyc2lvbi1saW5rPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbmdpbmUvZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC9lbmdpbmUtbW9kZWxzLXN0YWdlLWRlZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQWlELFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVB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QUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxZQUFZLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBb0IsQ0FBQztZQUMzRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRVMsU0FBUyxDQUFDLElBQXFCO1FBQ3ZDLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDOytHQS9GVSw4QkFBOEI7bUdBQTlCLDhCQUE4Qiw4Z0JDMUQzQyx5cUZBc0VBLHdVRFphLDhCQUE4Qiw4SUFYdkMsUUFBUSw2Q0FDUixlQUFlLDJNQUNmLGdCQUFnQix1WEFDaEIsZ0NBQWdDLDJHQUNoQyxxQkFBcUIsaUdBQ3JCLFNBQVMsOENBQ1QsaUJBQWlCOzs0RkFLUiw4QkFBOEI7a0JBZjFDLFNBQVM7K0JBQ0UsNkJBQTZCLGNBQzNCLElBQUksV0FDUDt3QkFDUCxRQUFRO3dCQUNSLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixnQ0FBZ0M7d0JBQ2hDLHFCQUFxQjt3QkFDckIsU0FBUzt3QkFDVCxpQkFBaUI7cUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBtb2RlbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSUN5Y2xlSlNPTkxELCBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCwgSlNPTkxELCBqc29ubGRQYXRoLCBOb2RlVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IERhdGFTdGF0ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvYXBpJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRpc3RpbmN0LCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHRhcCwgdG9BcnJheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZyb20sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGYUljb25Db21wb25lbnQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBmYUFuZ2xlRG93biwgZmFBbmdsZVJpZ2h0IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IE5nYlBvcG92ZXJNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyB1bmlxdWUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcblxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWREZWVwIH0gZnJvbSAnLi4vLi4vY29tbW9uL3J4anMtdXRpbHMnO1xuaW1wb3J0IHsgVGltZXNQaXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3RpbWVzLnBpcGUnO1xuaW1wb3J0IHsgU2tlbGV0b25UZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL3NrZWxldG9uLXRleHQvc2tlbGV0b24tdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTk9ERV9NQVhfU1RBR0UsIEhlTm9kZVNlcnZpY2UsIElSZWxhdGVkTm9kZSwgbm9kZUNvbG91cnMgfSBmcm9tICcuLi8uLi9ub2RlL25vZGUuc2VydmljZSc7XG5pbXBvcnQgeyBub2RlcywgSGVOb2RlU3RvcmVTZXJ2aWNlLCBtZXJnZURhdGFXaXRoSGVhZGVycyB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS1zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IEVuZ2luZU1vZGVsc1ZlcnNpb25MaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vZW5naW5lLW1vZGVscy12ZXJzaW9uLWxpbmsvZW5naW5lLW1vZGVscy12ZXJzaW9uLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbm9kZS9ub2RlLWxpbmsvbm9kZS1saW5rLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBJSlNPTkxERXh0ZW5kZWQgZXh0ZW5kcyBKU09OTEQ8Tm9kZVR5cGU+IHtcbiAgc3RhZ2U/OiBudW1iZXI7XG4gIG1heHN0YWdlPzogbnVtYmVyO1xufVxuXG5jb25zdCBuZXN0ZWROb2Rlc0J5VHlwZToge1xuICBbdHlwZSBpbiBOb2RlVHlwZV0/OiAobm9kZTogSUpTT05MREV4dGVuZGVkKSA9PiAoSlNPTkxEPE5vZGVUeXBlPiB8IEpTT05MRDxOb2RlVHlwZT5bXSlbXTtcbn0gPSB7XG4gIFtOb2RlVHlwZS5DeWNsZV06IChub2RlOiBJQ3ljbGVKU09OTEQpID0+IFtcbiAgICBub2RlLnNpdGUsXG4gICAgbm9kZS5vdGhlclNpdGVzLFxuICAgIG5vZGUuaW5wdXRzPy5tYXAoaW5wdXQgPT4gaW5wdXQuaW1wYWN0QXNzZXNzbWVudCBhcyBhbnkpPy5mbGF0KCksXG4gICAgbm9kZS5hbmltYWxzPy5mbGF0TWFwKGFuaW1hbCA9PiBhbmltYWwuaW5wdXRzPy5tYXAoaW5wdXQgPT4gaW5wdXQuaW1wYWN0QXNzZXNzbWVudCBhcyBhbnkpPy5mbGF0KCkpXG4gIF0sXG4gIFtOb2RlVHlwZS5JbXBhY3RBc3Nlc3NtZW50XTogKG5vZGU6IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxEKSA9PiBbbm9kZS5jeWNsZV1cbn07XG5cbmNvbnN0IHJlbGF0ZWROb2Rlc0J5VHlwZToge1xuICBbdHlwZSBpbiBOb2RlVHlwZV0/OiBOb2RlVHlwZVtdO1xufSA9IHtcbiAgW05vZGVUeXBlLlNpdGVdOiBbTm9kZVR5cGUuQ3ljbGVdXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZS1lbmdpbmUtbW9kZWxzLXN0YWdlLWRlZXAnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRGF0ZVBpcGUsXG4gICAgRmFJY29uQ29tcG9uZW50LFxuICAgIE5nYlBvcG92ZXJNb2R1bGUsXG4gICAgRW5naW5lTW9kZWxzVmVyc2lvbkxpbmtDb21wb25lbnQsXG4gICAgU2tlbGV0b25UZXh0Q29tcG9uZW50LFxuICAgIFRpbWVzUGlwZSxcbiAgICBOb2RlTGlua0NvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vZW5naW5lLW1vZGVscy1zdGFnZS1kZWVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VuZ2luZS1tb2RlbHMtc3RhZ2UtZGVlcC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgRW5naW5lTW9kZWxzU3RhZ2VEZWVwQ29tcG9uZW50PFQgZXh0ZW5kcyBOb2RlVHlwZT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVTZXJ2aWNlID0gaW5qZWN0KEhlTm9kZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IG5vZGVTdG9yZVNlcnZpY2UgPSBpbmplY3QoSGVOb2RlU3RvcmVTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFBbmdsZVJpZ2h0ID0gZmFBbmdsZVJpZ2h0O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFBbmdsZURvd24gPSBmYUFuZ2xlRG93bjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm9kZSA9IGlucHV0LnJlcXVpcmVkPElKU09OTERFeHRlbmRlZD4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXhwYW5kZWQgPSBtb2RlbChmYWxzZSk7XG4gIC8qKlxuICAgKiBXaGVuIG5lc3RpbmcgdGhlIGNvbXBvbmVudHMsIGF2b2lkIGFsbG93aW5nIGV4cGFuc2lvbiBvbiB0aGUgdG9wLWxldmVsIG5vZGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXhwYW5kZWROb2RlID0gaW5wdXQ8SUpTT05MREV4dGVuZGVkPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMubm9kZSgpPy5bJ0BpZCddKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHR5cGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm5vZGUoKT8uWydAdHlwZSddKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm9kZUNvbG91ciA9IGNvbXB1dGVkKCgpID0+IG5vZGVDb2xvdXJzW3RoaXMudHlwZSgpXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSByZWNhbGN1bGF0ZWRBdCA9IGNvbXB1dGVkKFxuICAgICgpID0+ICh0aGlzLm5vZGUoKSBhcyBhbnkpPy51cGRhdGVkQXQgfHwgKHRoaXMubm9kZSgpIGFzIGFueSk/LmNyZWF0ZWRBdFxuICApO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVsYXRlZE5vZGVzID0gc2lnbmFsPChKU09OTEQ8Tm9kZVR5cGU+IHwgSVJlbGF0ZWROb2RlKVtdPihbXSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVsYXRlZE5vZGVzJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnJlbGF0ZWROb2Rlcyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBub2Rlc0xlbmd0aCA9IHRvU2lnbmFsKHRoaXMucmVsYXRlZE5vZGVzJC5waXBlKG1hcChub2RlcyA9PiBub2Rlcz8ubGVuZ3RoID8/IDApKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBub2RlcyA9IHRvU2lnbmFsKFxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucmVsYXRlZE5vZGVzJCwgdGhpcy5ub2RlU3RvcmVTZXJ2aWNlLm5vZGVzJCgpXSkucGlwZShcbiAgICAgIGZpbHRlcigoW25vZGVzXSkgPT4gbm9kZXM/Lmxlbmd0aCA+IDApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWREZWVwKCksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nLnNldCh0cnVlKSksXG4gICAgICBtZXJnZU1hcCgoW25vZGVzLCBhbGxOb2Rlc10pID0+XG4gICAgICAgIGZyb20obm9kZXMpLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAobm9kZSA9PiB0aGlzLmZpbmROb2RlKGFsbE5vZGVzLCBub2RlKSksXG4gICAgICAgICAgZmlsdGVyKHYgPT4gISF2KSxcbiAgICAgICAgICBkaXN0aW5jdChub2RlID0+IGpzb25sZFBhdGgobm9kZVsnQHR5cGUnXSwgbm9kZVsnQGlkJ10pKSxcbiAgICAgICAgICB0b0FycmF5KClcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKSlcbiAgICApXG4gICk7XG4gIHByb3RlY3RlZCByZWFkb25seSBleHBhbmRhYmxlTm9kZXMgPSBjb21wdXRlZChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5ub2RlcygpPy5maWx0ZXIoXG4gICAgICAgIG4gPT4gdGhpcy5leHBhbmRlZE5vZGUoKT8uWydAdHlwZSddICE9PSBuWydAdHlwZSddIHx8IHRoaXMuZXhwYW5kZWROb2RlKCk/LlsnQGlkJ10gIT09IG5bJ0BpZCddXG4gICAgICApID8/IFtdXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0TWF4U3RhZ2UgPSBjb21wdXRlZCgoKSA9PiBOT0RFX01BWF9TVEFHRVt0aGlzLnR5cGUoKV0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhZ2UgPSBjb21wdXRlZCgoKSA9PiArdGhpcy5ub2RlKCkuc3RhZ2UgfHwgMCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBtYXhTdGFnZSA9IGNvbXB1dGVkKCgpID0+ICt0aGlzLm5vZGUoKS5tYXhzdGFnZSB8fCB0aGlzLmRlZmF1bHRNYXhTdGFnZSgpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGluUHJvZ3Jlc3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YWdlKCkgPCB0aGlzLm1heFN0YWdlKCkpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5FeHBhbmQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmV4cGFuZGFibGVOb2RlcygpPy5sZW5ndGgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZSgpO1xuICAgICAgICBjb25zdCBuZXN0ZWROb2RlcyA9IG5lc3RlZE5vZGVzQnlUeXBlW25vZGVbJ0B0eXBlJ11dPy4obm9kZSk/LmZsYXQoKT8uZmlsdGVyKEJvb2xlYW4pID8/IFtdO1xuICAgICAgICBjb25zdCByZWxhdGVkTm9kZXMgPSByZWxhdGVkTm9kZXNCeVR5cGVbbm9kZVsnQHR5cGUnXV0gPz8gW107XG5cbiAgICAgICAgZnJvbShyZWxhdGVkTm9kZXMpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcChub2RlVHlwZSA9PiB0aGlzLm5vZGVTZXJ2aWNlLmdldFJlbGF0ZWQkKG5vZGUsIG5vZGVUeXBlKS5waXBlKG1lcmdlTWFwKCh7IHJlc3VsdHMgfSkgPT4gcmVzdWx0cykpKSxcbiAgICAgICAgICAgIHRvQXJyYXkoKVxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlcyA9PiB0aGlzLnJlbGF0ZWROb2Rlcy5zZXQodW5pcXVlKFsuLi52YWx1ZXMsIC4uLm5lc3RlZE5vZGVzXSkpKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTm9kZSQobm9kZTogSlNPTkxEPE5vZGVUeXBlPiB8IElSZWxhdGVkTm9kZSwgZGF0YVN0YXRlOiBEYXRhU3RhdGUpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlU2VydmljZVxuICAgICAgLmdldFdpdGhIZWFkZXJzJDxKU09OTEQ8VD4+KHtcbiAgICAgICAgLi4ubm9kZSxcbiAgICAgICAgZGF0YVN0YXRlXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEsIGhlYWRlcnMgfSkgPT4gbWVyZ2VEYXRhV2l0aEhlYWRlcnM8SUpTT05MREV4dGVuZGVkPihkYXRhLCBoZWFkZXJzKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTm9kZShhbGxOb2Rlczogbm9kZXMsIG5vZGU6IEpTT05MRDxOb2RlVHlwZT4gfCBJUmVsYXRlZE5vZGUpIHtcbiAgICBjb25zdCBtYXRjaGVkTm9kZSA9IGFsbE5vZGVzPy5bbm9kZVsnQHR5cGUnXV0/LmZpbmQodiA9PiB2Py5pZCA9PT0gbm9kZVsnQGlkJ10pO1xuICAgIHJldHVybiBtYXRjaGVkTm9kZVxuICAgICAgPyBvZigobWF0Y2hlZE5vZGUucmVjYWxjdWxhdGVkIHx8IG1hdGNoZWROb2RlLm9yaWdpbmFsKSBhcyBJSlNPTkxERXh0ZW5kZWQpXG4gICAgICA6IHRoaXMubG9hZE5vZGUkKG5vZGUsIERhdGFTdGF0ZS5yZWNhbGN1bGF0ZWQpLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiB0aGlzLmxvYWROb2RlJChub2RlLCBEYXRhU3RhdGUub3JpZ2luYWwpKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhY2tOb2RlKG5vZGU6IElKU09OTERFeHRlbmRlZCkge1xuICAgIHJldHVybiBqc29ubGRQYXRoKG5vZGVbJ0B0eXBlJ10sIG5vZGVbJ0BpZCddKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImlzLWZsZXggaXMtZmxleC1kaXJlY3Rpb24tY29sdW1uIGlzLWdhcC04IGlzLXB5LTIgaXMtcGwtMiB8IGVuZ2luZS1tb2RlbHMtc3RhZ2UtLWNvbnRhaW5lciBpcy10eXBlLXt7IHR5cGUgfX1cIlxuICBbc3R5bGUuYm9yZGVyLWNvbG9yXT1cIm5vZGVDb2xvdXIoKVwiPlxuICA8ZGl2IGNsYXNzPVwiaXMtZmxleCBpcy1mbGV4LWRpcmVjdGlvbi1yb3cgaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4gaXMtZ2FwLThcIj5cbiAgICBAaWYgKGNhbkV4cGFuZCgpKSB7XG4gICAgICA8ZGl2IChjbGljayk9XCJleHBhbmRlZC5zZXQoIWV4cGFuZGVkKCkpXCIgcG9pbnRlcj5cbiAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZXhwYW5kZWQoKSA/IGZhQW5nbGVEb3duIDogZmFBbmdsZVJpZ2h0XCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiaXMtZmxleCBpcy1mbGV4LWRpcmVjdGlvbi1yb3cgaXMtanVzdGlmeS1jb250ZW50LXNwYWNlLWJldHdlZW4gaXMtZ2FwLTggaXMtZmxleC13cmFwLXdyYXAgaXMtZmxleC1ncm93LTFcIj5cbiAgICAgIDxoZS1ub2RlLWxpbmsgY2xhc3M9XCJpcy1mbGV4LWdyb3ctMVwiIFtub2RlXT1cIm5vZGUoKVwiIFtzaG93RXh0ZXJuYWxMaW5rXT1cInRydWVcIj5cbiAgICAgICAgPHNwYW4+e3sgdHlwZSgpIH19IHt7IGlkKCkgfX08L3NwYW4+XG4gICAgICA8L2hlLW5vZGUtbGluaz5cblxuICAgICAgPGRpdiBjbGFzcz1cImlzLWZsZXggaXMtZmxleC1kaXJlY3Rpb24tY29sdW1uIGlzLWdhcC00IHwgZW5naW5lLW1vZGVscy1zdGFnZS0tY2FsY3VsYXRpb25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpcy1mbGV4IGlzLWdhcC00IGlzLXByLTJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImhhcy10ZXh0LXNlY29uZGFyeSBoYXMtdGV4dC13ZWlnaHQtYm9sZFwiPkNhbGN1bGF0aW9uczo8L3NwYW4+XG5cbiAgICAgICAgICBAaWYgKGluUHJvZ3Jlc3MoKSkge1xuICAgICAgICAgICAgPHNwYW4gW2NsYXNzLmhhcy10ZXh0LWRhbmdlcl09XCJzdGFnZSgpID09PSAwXCIgW2NsYXNzLmhhcy10ZXh0LXdhcm5pbmddPVwic3RhZ2UoKSA+IDBcIj5cbiAgICAgICAgICAgICAgc3RhZ2Uge3sgc3RhZ2UoKSB9fSAvIHt7IG1heFN0YWdlKCkgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwidHJpZ2dlci1wb3BvdmVyXCJcbiAgICAgICAgICAgICAgW25nYlBvcG92ZXJdPVwicG9wb3ZlckRldGFpbHNcIlxuICAgICAgICAgICAgICBhdXRvQ2xvc2U9XCJvdXRzaWRlXCJcbiAgICAgICAgICAgICAgcG9wb3ZlckNsYXNzPVwiaXMtbmFycm93XCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoYXMtdGV4dC1zdWNjZXNzXCI+Y29tcGxldGU8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBAaWYgKGV4cGFuZGVkKCkpIHtcbiAgICBAaWYgKGxvYWRpbmcoKSAmJiBub2Rlc0xlbmd0aCgpID4gMCkge1xuICAgICAgQGZvciAobm9kZSBvZiBub2Rlc0xlbmd0aCgpIHwgdGltZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8aGUtc2tlbGV0b24tdGV4dCBbd2lkdGhdPVwiNjBcIiAvPlxuICAgICAgfVxuICAgIH1cblxuICAgIEBmb3IgKHJlbGF0ZWROb2RlIG9mIGV4cGFuZGFibGVOb2RlcygpOyB0cmFjayB0cmFja05vZGUocmVsYXRlZE5vZGUpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRlZC1ub2RlXCI+XG4gICAgICAgIDxoZS1lbmdpbmUtbW9kZWxzLXN0YWdlLWRlZXBcbiAgICAgICAgICBbbm9kZV09XCJyZWxhdGVkTm9kZVwiXG4gICAgICAgICAgW2V4cGFuZGVkXT1cImZhbHNlXCJcbiAgICAgICAgICBbZXhwYW5kZWROb2RlXT1cImV4cGFuZGVkTm9kZSgpIHx8IG5vZGUoKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIH1cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3BvcG92ZXJEZXRhaWxzPlxuICA8ZGl2IGNsYXNzPVwiaXMtZmxleCBpcy1mbGV4LWRpcmVjdGlvbi1jb2x1bW4gaXMtZ2FwLTQgaGFzLXRleHQtd2hpdGUgdy0xMDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaXMtZmxleCBpcy1hbGlnbi1pdGVtcy1jZW50ZXIgaXMtZ2FwLTggdy0xMDBcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaGFzLXRleHQtd2VpZ2h0LWJvbGRcIj5DYWxjdWxhdGVkIERhdGU6PC9zcGFuPlxuICAgICAgPHNwYW4+e3sgcmVjYWxjdWxhdGVkQXQoKSB8IGRhdGU6ICdtZWRpdW1EYXRlJyB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaXMtZmxleCBpcy1hbGlnbi1pdGVtcy1jZW50ZXIgaXMtZ2FwLTggdy0xMDBcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaGFzLXRleHQtd2VpZ2h0LWJvbGRcIj5DYWxjdWxhdGVkIFZlcnNpb246PC9zcGFuPlxuICAgICAgPGhlLWVuZ2luZS1tb2RlbHMtdmVyc2lvbi1saW5rIFtub2RlXT1cIm5vZGUoKVwiIFtzaG93RGV0YWlsc109XCJ0cnVlXCI+PC9oZS1lbmdpbmUtbW9kZWxzLXZlcnNpb24tbGluaz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -16,10 +16,10 @@ export class EngineModelsVersionLinkComponent {
|
|
|
16
16
|
this.url = computed(() => [engineGitBaseUrl(), '-', 'tree', `v${this.version()}`].filter(Boolean).join('/'));
|
|
17
17
|
}
|
|
18
18
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: EngineModelsVersionLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: EngineModelsVersionLinkComponent, isStandalone: true, selector: "he-engine-models-version-link", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, showDetails: { classPropertyName: "showDetails", publicName: "showDetails", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (version()) {\n <div class=\"tags has-addons\">\n <a class=\"tag is-info\" [href]=\"url()\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n {{ version() }}\n <fa-icon class=\"ml-2\" [icon]=\"faExternalLinkAlt\" size=\"sm\"
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: EngineModelsVersionLinkComponent, isStandalone: true, selector: "he-engine-models-version-link", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, showDetails: { classPropertyName: "showDetails", publicName: "showDetails", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (version()) {\n <div class=\"tags has-addons\">\n <a class=\"tag is-info\" [href]=\"url()\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n {{ version() }}\n <fa-icon class=\"ml-2\" [icon]=\"faExternalLinkAlt\" size=\"sm\" />\n </a>\n @if (showDetails()) {\n @if (version() === ENGINE_VERSION) {\n <span class=\"tag is-success\">latest recalculations</span>\n } @else {\n <span class=\"tag is-warning\">outdated recalculations</span>\n }\n }\n </div>\n}\n", styles: [":host{display:inline-block}a{color:inherit}\n"], dependencies: [{ kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
20
|
}
|
|
21
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: EngineModelsVersionLinkComponent, decorators: [{
|
|
22
22
|
type: Component,
|
|
23
|
-
args: [{ selector: 'he-engine-models-version-link', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FaIconComponent, NgTemplateOutlet, AsyncPipe], template: "@if (version()) {\n <div class=\"tags has-addons\">\n <a class=\"tag is-info\" [href]=\"url()\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n {{ version() }}\n <fa-icon class=\"ml-2\" [icon]=\"faExternalLinkAlt\" size=\"sm\"
|
|
23
|
+
args: [{ selector: 'he-engine-models-version-link', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FaIconComponent, NgTemplateOutlet, AsyncPipe], template: "@if (version()) {\n <div class=\"tags has-addons\">\n <a class=\"tag is-info\" [href]=\"url()\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n {{ version() }}\n <fa-icon class=\"ml-2\" [icon]=\"faExternalLinkAlt\" size=\"sm\" />\n </a>\n @if (showDetails()) {\n @if (version() === ENGINE_VERSION) {\n <span class=\"tag is-success\">latest recalculations</span>\n } @else {\n <span class=\"tag is-warning\">outdated recalculations</span>\n }\n }\n </div>\n}\n", styles: [":host{display:inline-block}a{color:inherit}\n"] }]
|
|
24
24
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLW1vZGVscy12ZXJzaW9uLWxpbmsuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VuZ2luZS9lbmdpbmUtbW9kZWxzLXZlcnNpb24tbGluay9lbmdpbmUtbW9kZWxzLXZlcnNpb24tbGluay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS1tb2RlbHMtdmVyc2lvbi1saW5rL2VuZ2luZS1tb2RlbHMtdmVyc2lvbi1saW5rLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBVXJELE1BQU0sT0FBTyxnQ0FBZ0M7SUFSN0M7UUFTcUIsc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFFdEMsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQU8sQ0FBQztRQUM3QixnQkFBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQixtQkFBYyxHQUFHLGNBQWMsQ0FBQztRQUNoQyxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25ELFFBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ3JDLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUNsRixDQUFDO0tBQ0g7K0dBWFksZ0NBQWdDO21HQUFoQyxnQ0FBZ0MsbVdDakI3Qyw0Z0JBZUEsdUdEQVksZUFBZTs7NEZBRWQsZ0NBQWdDO2tCQVI1QyxTQUFTOytCQUNFLCtCQUErQixtQkFHeEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0LCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRmFJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgZmFFeHRlcm5hbExpbmtBbHQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgRU5HSU5FX1ZFUlNJT04gfSBmcm9tICdAaGVzdGlhLWVhcnRoL2VuZ2luZS1tb2RlbHMnO1xuXG5pbXBvcnQgeyBub2RlVmVyc2lvbiB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS1tb2RlbC12ZXJzaW9uJztcbmltcG9ydCB7IGVuZ2luZUdpdEJhc2VVcmwgfSBmcm9tICcuLi9lbmdpbmUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWVuZ2luZS1tb2RlbHMtdmVyc2lvbi1saW5rJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VuZ2luZS1tb2RlbHMtdmVyc2lvbi1saW5rLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW5naW5lLW1vZGVscy12ZXJzaW9uLWxpbmsuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGYUljb25Db21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgRW5naW5lTW9kZWxzVmVyc2lvbkxpbmtDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFFeHRlcm5hbExpbmtBbHQgPSBmYUV4dGVybmFsTGlua0FsdDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm9kZSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dEZXRhaWxzID0gaW5wdXQoZmFsc2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBFTkdJTkVfVkVSU0lPTiA9IEVOR0lORV9WRVJTSU9OO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmVyc2lvbiA9IGNvbXB1dGVkKCgpID0+IG5vZGVWZXJzaW9uKHRoaXMubm9kZSgpKSk7XG4gIHByb3RlY3RlZCByZWFkb25seSB1cmwgPSBjb21wdXRlZCgoKSA9PlxuICAgIFtlbmdpbmVHaXRCYXNlVXJsKCksICctJywgJ3RyZWUnLCBgdiR7dGhpcy52ZXJzaW9uKCl9YF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJy8nKVxuICApO1xufVxuIiwiQGlmICh2ZXJzaW9uKCkpIHtcbiAgPGRpdiBjbGFzcz1cInRhZ3MgaGFzLWFkZG9uc1wiPlxuICAgIDxhIGNsYXNzPVwidGFnIGlzLWluZm9cIiBbaHJlZl09XCJ1cmwoKVwiIHRhcmdldD1cIl9ibGFua1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgIHt7IHZlcnNpb24oKSB9fVxuICAgICAgPGZhLWljb24gY2xhc3M9XCJtbC0yXCIgW2ljb25dPVwiZmFFeHRlcm5hbExpbmtBbHRcIiBzaXplPVwic21cIiAvPlxuICAgIDwvYT5cbiAgICBAaWYgKHNob3dEZXRhaWxzKCkpIHtcbiAgICAgIEBpZiAodmVyc2lvbigpID09PSBFTkdJTkVfVkVSU0lPTikge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInRhZyBpcy1zdWNjZXNzXCI+bGF0ZXN0IHJlY2FsY3VsYXRpb25zPC9zcGFuPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGFnIGlzLXdhcm5pbmdcIj5vdXRkYXRlZCByZWNhbGN1bGF0aW9uczwvc3Bhbj5cbiAgICAgIH1cbiAgICB9XG4gIDwvZGl2PlxufVxuIl19
|
|
@@ -64,10 +64,10 @@ export class EngineRequirementsFormComponent {
|
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: EngineRequirementsFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: EngineRequirementsFormComponent, isStandalone: true, selector: "he-engine-requirements-form", ngImport: i0, template: "<form class=\"needs-validation mt-3\" novalidate [formGroup]=\"form\">\n <div class=\"field is-horizontal\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"productTermId\">\n <span>Product Term ID</span>\n </label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\" [class.has-icons-right]=\"suggestingProductTermId()\">\n <input\n class=\"input\"\n formControlName=\"productTermId\"\n name=\"productTermId\"\n placeholder=\"Search product by ID or name\"\n [editable]=\"false\"\n [ngbTypeahead]=\"suggestProductTermId\"\n [resultTemplate]=\"suggestionProductTermId\"\n [inputFormatter]=\"inputFormatterProductTermId\" />\n <span class=\"icon is-right has-text-grey-dark\" [class.is-hidden]=\"!suggestingProductTermId()\">\n <fa-icon [icon]=\"faSpinner\" animation=\"spin\"
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: EngineRequirementsFormComponent, isStandalone: true, selector: "he-engine-requirements-form", ngImport: i0, template: "<form class=\"needs-validation mt-3\" novalidate [formGroup]=\"form\">\n <div class=\"field is-horizontal\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"productTermId\">\n <span>Product Term ID</span>\n </label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\" [class.has-icons-right]=\"suggestingProductTermId()\">\n <input\n class=\"input\"\n formControlName=\"productTermId\"\n name=\"productTermId\"\n placeholder=\"Search product by ID or name\"\n [editable]=\"false\"\n [ngbTypeahead]=\"suggestProductTermId\"\n [resultTemplate]=\"suggestionProductTermId\"\n [inputFormatter]=\"inputFormatterProductTermId\" />\n <span class=\"icon is-right has-text-grey-dark\" [class.is-hidden]=\"!suggestingProductTermId()\">\n <fa-icon [icon]=\"faSpinner\" animation=\"spin\" />\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"field is-horizontal mt-3\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"productTermType\">\n <span>Product Term Type</span>\n </label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\">\n <div class=\"select is-fullwidth\">\n <select formControlName=\"productTermType\" name=\"productTermType\">\n <option [ngValue]=\"undefined\">Select a Type</option>\n @for (termType of productTermTermType; track termType) {\n <option [value]=\"termType\">\n {{ termType | keyToLabel }}\n </option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"field is-horizontal mt-3\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"tier\">\n <span>Emissions Method Tier</span>\n </label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\">\n <div class=\"select is-fullwidth\">\n <select formControlName=\"tier\" name=\"tier\">\n <option [ngValue]=\"undefined\">Select a Tier</option>\n @for (tier of EmissionMethodTier | keyvalue; track tier) {\n <option [value]=\"tier.value\">{{ tier.value }}</option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"field is-horizontal mt-3\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"siteType\">\n <span>Site Type</span>\n </label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\">\n <div class=\"select is-fullwidth\">\n <select formControlName=\"siteType\" name=\"siteType\">\n <option [ngValue]=\"undefined\">Select a Type</option>\n @for (siteType of SiteSiteType | keyvalue; track siteType) {\n <option [value]=\"siteType.value\">\n {{ siteType.value }}\n </option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n </div>\n</form>\n\n<ng-template #suggestionProductTermId let-r=\"result\" let-t=\"term\">\n <ngb-highlight [result]=\"r.name\" [term]=\"t\"></ngb-highlight>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "directive", type: NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "selectOnExact", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "component", type: NgbHighlight, selector: "ngb-highlight", inputs: ["highlightClass", "result", "term", "accentSensitive"] }, { kind: "pipe", type: KeyToLabelPipe, name: "keyToLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
68
68
|
}
|
|
69
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: EngineRequirementsFormComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
|
-
args: [{ selector: 'he-engine-requirements-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormsModule, ReactiveFormsModule, KeyValuePipe, NgbTypeahead, FaIconComponent, NgbHighlight, KeyToLabelPipe], template: "<form class=\"needs-validation mt-3\" novalidate [formGroup]=\"form\">\n <div class=\"field is-horizontal\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"productTermId\">\n <span>Product Term ID</span>\n </label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\" [class.has-icons-right]=\"suggestingProductTermId()\">\n <input\n class=\"input\"\n formControlName=\"productTermId\"\n name=\"productTermId\"\n placeholder=\"Search product by ID or name\"\n [editable]=\"false\"\n [ngbTypeahead]=\"suggestProductTermId\"\n [resultTemplate]=\"suggestionProductTermId\"\n [inputFormatter]=\"inputFormatterProductTermId\" />\n <span class=\"icon is-right has-text-grey-dark\" [class.is-hidden]=\"!suggestingProductTermId()\">\n <fa-icon [icon]=\"faSpinner\" animation=\"spin\"
|
|
71
|
+
args: [{ selector: 'he-engine-requirements-form', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormsModule, ReactiveFormsModule, KeyValuePipe, NgbTypeahead, FaIconComponent, NgbHighlight, KeyToLabelPipe], template: "<form class=\"needs-validation mt-3\" novalidate [formGroup]=\"form\">\n <div class=\"field is-horizontal\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"productTermId\">\n <span>Product Term ID</span>\n </label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\" [class.has-icons-right]=\"suggestingProductTermId()\">\n <input\n class=\"input\"\n formControlName=\"productTermId\"\n name=\"productTermId\"\n placeholder=\"Search product by ID or name\"\n [editable]=\"false\"\n [ngbTypeahead]=\"suggestProductTermId\"\n [resultTemplate]=\"suggestionProductTermId\"\n [inputFormatter]=\"inputFormatterProductTermId\" />\n <span class=\"icon is-right has-text-grey-dark\" [class.is-hidden]=\"!suggestingProductTermId()\">\n <fa-icon [icon]=\"faSpinner\" animation=\"spin\" />\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"field is-horizontal mt-3\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"productTermType\">\n <span>Product Term Type</span>\n </label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\">\n <div class=\"select is-fullwidth\">\n <select formControlName=\"productTermType\" name=\"productTermType\">\n <option [ngValue]=\"undefined\">Select a Type</option>\n @for (termType of productTermTermType; track termType) {\n <option [value]=\"termType\">\n {{ termType | keyToLabel }}\n </option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"field is-horizontal mt-3\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"tier\">\n <span>Emissions Method Tier</span>\n </label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\">\n <div class=\"select is-fullwidth\">\n <select formControlName=\"tier\" name=\"tier\">\n <option [ngValue]=\"undefined\">Select a Tier</option>\n @for (tier of EmissionMethodTier | keyvalue; track tier) {\n <option [value]=\"tier.value\">{{ tier.value }}</option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"field is-horizontal mt-3\">\n <div class=\"field-label is-normal\">\n <label class=\"label\" for=\"siteType\">\n <span>Site Type</span>\n </label>\n </div>\n <div class=\"field-body\">\n <div class=\"field\">\n <div class=\"control is-expanded\">\n <div class=\"select is-fullwidth\">\n <select formControlName=\"siteType\" name=\"siteType\">\n <option [ngValue]=\"undefined\">Select a Type</option>\n @for (siteType of SiteSiteType | keyvalue; track siteType) {\n <option [value]=\"siteType.value\">\n {{ siteType.value }}\n </option>\n }\n </select>\n </div>\n </div>\n </div>\n </div>\n </div>\n</form>\n\n<ng-template #suggestionProductTermId let-r=\"result\" let-t=\"term\">\n <ngb-highlight [result]=\"r.name\" [term]=\"t\"></ngb-highlight>\n</ng-template>\n" }]
|
|
72
72
|
}] });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLXJlcXVpcmVtZW50cy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbmdpbmUvZW5naW5lLXJlcXVpcmVtZW50cy1mb3JtL2VuZ2luZS1yZXF1aXJlbWVudHMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS1yZXF1aXJlbWVudHMtZm9ybS9lbmdpbmUtcmVxdWlyZW1lbnRzLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFN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LENBQUMsK0JBQStCO1NBQ2xHLENBQUM7SUFDSixDQUFDOytHQS9EVSwrQkFBK0I7bUdBQS9CLCtCQUErQix1RkN2QjVDLGlpSEFxR0EseUREaEZZLFdBQVcsc2pDQUFFLG1CQUFtQiwyVUFBRSxZQUFZLGlEQUFFLFlBQVksc1VBQUUsZUFBZSw0TUFBRSxZQUFZLHNIQUFFLGNBQWM7OzRGQUUxRywrQkFBK0I7a0JBUjNDLFNBQVM7K0JBQ0UsNkJBQTZCLG1CQUd0Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtleVZhbHVlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwcm9kdWN0VGVybVRlcm1UeXBlLCBTaXRlU2l0ZVR5cGUsIEVtaXNzaW9uTWV0aG9kVGllciwgTm9kZVR5cGUsIElUZXJtSlNPTkxEIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgRmFJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgTmdiVHlwZWFoZWFkLCBOZ2JIaWdobGlnaHQgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBmYVNwaW5uZXIgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuXG5pbXBvcnQgeyBJQ2FsY3VsYXRpb25zTW9kZWxzUGFyYW1zIH0gZnJvbSAnLi4vZW5naW5lLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWF0Y2hUeXBlLCBtYXRjaFRlcm1UeXBlIH0gZnJvbSAnLi4vLi4vc2VhcmNoL3NlYXJjaC5tb2RlbCc7XG5pbXBvcnQgeyBIZVNlYXJjaFNlcnZpY2UsIHN1Z2dlc3RNYXRjaFF1ZXJ5IH0gZnJvbSAnLi4vLi4vc2VhcmNoL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVRvTGFiZWxQaXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2tleS10by1sYWJlbC5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtZW5naW5lLXJlcXVpcmVtZW50cy1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VuZ2luZS1yZXF1aXJlbWVudHMtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VuZ2luZS1yZXF1aXJlbWVudHMtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBLZXlWYWx1ZVBpcGUsIE5nYlR5cGVhaGVhZCwgRmFJY29uQ29tcG9uZW50LCBOZ2JIaWdobGlnaHQsIEtleVRvTGFiZWxQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBFbmdpbmVSZXF1aXJlbWVudHNGb3JtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlciA9IGluamVjdChVbnR5cGVkRm9ybUJ1aWxkZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlYXJjaFNlcnZpY2UgPSBpbmplY3QoSGVTZWFyY2hTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFTcGlubmVyID0gZmFTcGlubmVyO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBmb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgcHJvZHVjdFRlcm1JZDogW3VuZGVmaW5lZF0sXG4gICAgcHJvZHVjdFRlcm1UeXBlOiBbdW5kZWZpbmVkXSxcbiAgICB0aWVyOiBbdW5kZWZpbmVkXSxcbiAgICBzaXRlVHlwZTogW3VuZGVmaW5lZF1cbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByb2R1Y3RUZXJtVGVybVR5cGUgPSBwcm9kdWN0VGVybVRlcm1UeXBlLnRlcm07XG4gIHByb3RlY3RlZCByZWFkb25seSBFbWlzc2lvbk1ldGhvZFRpZXIgPSBFbWlzc2lvbk1ldGhvZFRpZXI7XG4gIHByb3RlY3RlZCByZWFkb25seSBTaXRlU2l0ZVR5cGUgPSBTaXRlU2l0ZVR5cGU7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN1Z2dlc3RpbmdQcm9kdWN0VGVybUlkID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN1Z2dlc3RQcm9kdWN0VGVybUlkID0gKHRleHQkOiBPYnNlcnZhYmxlPHN0cmluZz4pID0+XG4gICAgdGV4dCQucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnN1Z2dlc3RpbmdQcm9kdWN0VGVybUlkLnNldCh0cnVlKSksXG4gICAgICBzd2l0Y2hNYXAodGVybSA9PiAodGVybS5sZW5ndGggPCAxID8gW10gOiB0aGlzLnN1Z2dlc3RUZXJtKHRlcm0pKSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zdWdnZXN0aW5nUHJvZHVjdFRlcm1JZC5zZXQoZmFsc2UpKVxuICAgICk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpbnB1dEZvcm1hdHRlclByb2R1Y3RUZXJtSWQgPSAoeyBuYW1lIH06IElUZXJtSlNPTkxEKSA9PiBuYW1lO1xuXG4gIHByaXZhdGUgc3VnZ2VzdFRlcm0odGVybTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoU2VydmljZS5zdWdnZXN0JCh0ZXJtLCBOb2RlVHlwZS5UZXJtLCBudWxsLCB7XG4gICAgICBib29sOiB7XG4gICAgICAgIG11c3Q6IFtcbiAgICAgICAgICBtYXRjaFR5cGUoTm9kZVR5cGUuVGVybSksXG4gICAgICAgICAge1xuICAgICAgICAgICAgYm9vbDoge1xuICAgICAgICAgICAgICBzaG91bGQ6IHN1Z2dlc3RNYXRjaFF1ZXJ5KHRlcm0pLFxuICAgICAgICAgICAgICBtaW5pbXVtX3Nob3VsZF9tYXRjaDogMVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYm9vbDoge1xuICAgICAgICAgICAgICBzaG91bGQ6IHByb2R1Y3RUZXJtVGVybVR5cGUudGVybS5tYXAobWF0Y2hUZXJtVHlwZSksXG4gICAgICAgICAgICAgIG1pbmltdW1fc2hvdWxkX21hdGNoOiAxXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGlmIGZvcm0gaXMgdmFsaWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0gPyAhdGhpcy5mb3JtLmludmFsaWQgOiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGZvcm1WYWx1ZSgpOiBJQ2FsY3VsYXRpb25zTW9kZWxzUGFyYW1zIHtcbiAgICBjb25zdCB7IHByb2R1Y3RUZXJtSWQsIC4uLnZhbHVlIH0gPSB0aGlzLmZvcm0gPyB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSA6IHsgcHJvZHVjdFRlcm1JZDogdW5kZWZpbmVkIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnZhbHVlLFxuICAgICAgLi4uKHByb2R1Y3RUZXJtSWQgPyB7IHByb2R1Y3RUZXJtSWQ6IHByb2R1Y3RUZXJtSWRbJ0BpZCddIH0gOiB7fSkgLy8gc2VsZWN0ZWQgYXMgYSBKU09OLUxEIE9iamVjdFxuICAgIH07XG4gIH1cbn1cbiIsIjxmb3JtIGNsYXNzPVwibmVlZHMtdmFsaWRhdGlvbiBtdC0zXCIgbm92YWxpZGF0ZSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgPGRpdiBjbGFzcz1cImZpZWxkIGlzLWhvcml6b250YWxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQtbGFiZWwgaXMtbm9ybWFsXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIGZvcj1cInByb2R1Y3RUZXJtSWRcIj5cbiAgICAgICAgPHNwYW4+UHJvZHVjdCBUZXJtIElEPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQtYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sIGlzLWV4cGFuZGVkXCIgW2NsYXNzLmhhcy1pY29ucy1yaWdodF09XCJzdWdnZXN0aW5nUHJvZHVjdFRlcm1JZCgpXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzcz1cImlucHV0XCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb2R1Y3RUZXJtSWRcIlxuICAgICAgICAgICAgbmFtZT1cInByb2R1Y3RUZXJtSWRcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggcHJvZHVjdCBieSBJRCBvciBuYW1lXCJcbiAgICAgICAgICAgIFtlZGl0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICBbbmdiVHlwZWFoZWFkXT1cInN1Z2dlc3RQcm9kdWN0VGVybUlkXCJcbiAgICAgICAgICAgIFtyZXN1bHRUZW1wbGF0ZV09XCJzdWdnZXN0aW9uUHJvZHVjdFRlcm1JZFwiXG4gICAgICAgICAgICBbaW5wdXRGb3JtYXR0ZXJdPVwiaW5wdXRGb3JtYXR0ZXJQcm9kdWN0VGVybUlkXCIgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtcmlnaHQgaGFzLXRleHQtZ3JleS1kYXJrXCIgW2NsYXNzLmlzLWhpZGRlbl09XCIhc3VnZ2VzdGluZ1Byb2R1Y3RUZXJtSWQoKVwiPlxuICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFTcGlubmVyXCIgYW5pbWF0aW9uPVwic3BpblwiPjwvZmEtaWNvbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmaWVsZCBpcy1ob3Jpem9udGFsIG10LTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQtbGFiZWwgaXMtbm9ybWFsXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIGZvcj1cInByb2R1Y3RUZXJtVHlwZVwiPlxuICAgICAgICA8c3Bhbj5Qcm9kdWN0IFRlcm0gVHlwZTwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkLWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbCBpcy1leHBhbmRlZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QgaXMtZnVsbHdpZHRoXCI+XG4gICAgICAgICAgICA8c2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInByb2R1Y3RUZXJtVHlwZVwiIG5hbWU9XCJwcm9kdWN0VGVybVR5cGVcIj5cbiAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ1bmRlZmluZWRcIj5TZWxlY3QgYSBUeXBlPC9vcHRpb24+XG4gICAgICAgICAgICAgIEBmb3IgKHRlcm1UeXBlIG9mIHByb2R1Y3RUZXJtVGVybVR5cGU7IHRyYWNrIHRlcm1UeXBlKSB7XG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwidGVybVR5cGVcIj5cbiAgICAgICAgICAgICAgICAgIHt7IHRlcm1UeXBlIHwga2V5VG9MYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZpZWxkIGlzLWhvcml6b250YWwgbXQtM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1sYWJlbCBpcy1ub3JtYWxcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCIgZm9yPVwidGllclwiPlxuICAgICAgICA8c3Bhbj5FbWlzc2lvbnMgTWV0aG9kIFRpZXI8L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1ib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2wgaXMtZXhwYW5kZWRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0IGlzLWZ1bGx3aWR0aFwiPlxuICAgICAgICAgICAgPHNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ0aWVyXCIgbmFtZT1cInRpZXJcIj5cbiAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ1bmRlZmluZWRcIj5TZWxlY3QgYSBUaWVyPC9vcHRpb24+XG4gICAgICAgICAgICAgIEBmb3IgKHRpZXIgb2YgRW1pc3Npb25NZXRob2RUaWVyIHwga2V5dmFsdWU7IHRyYWNrIHRpZXIpIHtcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJ0aWVyLnZhbHVlXCI+e3sgdGllci52YWx1ZSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZpZWxkIGlzLWhvcml6b250YWwgbXQtM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1sYWJlbCBpcy1ub3JtYWxcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCIgZm9yPVwic2l0ZVR5cGVcIj5cbiAgICAgICAgPHNwYW4+U2l0ZSBUeXBlPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQtYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sIGlzLWV4cGFuZGVkXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdCBpcy1mdWxsd2lkdGhcIj5cbiAgICAgICAgICAgIDxzZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic2l0ZVR5cGVcIiBuYW1lPVwic2l0ZVR5cGVcIj5cbiAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ1bmRlZmluZWRcIj5TZWxlY3QgYSBUeXBlPC9vcHRpb24+XG4gICAgICAgICAgICAgIEBmb3IgKHNpdGVUeXBlIG9mIFNpdGVTaXRlVHlwZSB8IGtleXZhbHVlOyB0cmFjayBzaXRlVHlwZSkge1xuICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cInNpdGVUeXBlLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICB7eyBzaXRlVHlwZS52YWx1ZSB9fVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Zvcm0+XG5cbjxuZy10ZW1wbGF0ZSAjc3VnZ2VzdGlvblByb2R1Y3RUZXJtSWQgbGV0LXI9XCJyZXN1bHRcIiBsZXQtdD1cInRlcm1cIj5cbiAgPG5nYi1oaWdobGlnaHQgW3Jlc3VsdF09XCJyLm5hbWVcIiBbdGVybV09XCJ0XCI+PC9uZ2ItaGlnaGxpZ2h0PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLXJlcXVpcmVtZW50cy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbmdpbmUvZW5naW5lLXJlcXVpcmVtZW50cy1mb3JtL2VuZ2luZS1yZXF1aXJlbWVudHMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS1yZXF1aXJlbWVudHMtZm9ybS9lbmdpbmUtcmVxdWlyZW1lbnRzLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFN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LENBQUMsK0JBQStCO1NBQ2xHLENBQUM7SUFDSixDQUFDOytHQS9EVSwrQkFBK0I7bUdBQS9CLCtCQUErQix1RkN2QjVDLHloSEFxR0EseUREaEZZLFdBQVcsc2pDQUFFLG1CQUFtQiwyVUFBRSxZQUFZLGlEQUFFLFlBQVksc1VBQUUsZUFBZSw0TUFBRSxZQUFZLHNIQUFFLGNBQWM7OzRGQUUxRywrQkFBK0I7a0JBUjNDLFNBQVM7K0JBQ0UsNkJBQTZCLG1CQUd0Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtleVZhbHVlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwcm9kdWN0VGVybVRlcm1UeXBlLCBTaXRlU2l0ZVR5cGUsIEVtaXNzaW9uTWV0aG9kVGllciwgTm9kZVR5cGUsIElUZXJtSlNPTkxEIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgRmFJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgTmdiVHlwZWFoZWFkLCBOZ2JIaWdobGlnaHQgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBmYVNwaW5uZXIgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuXG5pbXBvcnQgeyBJQ2FsY3VsYXRpb25zTW9kZWxzUGFyYW1zIH0gZnJvbSAnLi4vZW5naW5lLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWF0Y2hUeXBlLCBtYXRjaFRlcm1UeXBlIH0gZnJvbSAnLi4vLi4vc2VhcmNoL3NlYXJjaC5tb2RlbCc7XG5pbXBvcnQgeyBIZVNlYXJjaFNlcnZpY2UsIHN1Z2dlc3RNYXRjaFF1ZXJ5IH0gZnJvbSAnLi4vLi4vc2VhcmNoL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVRvTGFiZWxQaXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2tleS10by1sYWJlbC5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtZW5naW5lLXJlcXVpcmVtZW50cy1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VuZ2luZS1yZXF1aXJlbWVudHMtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VuZ2luZS1yZXF1aXJlbWVudHMtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBLZXlWYWx1ZVBpcGUsIE5nYlR5cGVhaGVhZCwgRmFJY29uQ29tcG9uZW50LCBOZ2JIaWdobGlnaHQsIEtleVRvTGFiZWxQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBFbmdpbmVSZXF1aXJlbWVudHNGb3JtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlciA9IGluamVjdChVbnR5cGVkRm9ybUJ1aWxkZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlYXJjaFNlcnZpY2UgPSBpbmplY3QoSGVTZWFyY2hTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFTcGlubmVyID0gZmFTcGlubmVyO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBmb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgcHJvZHVjdFRlcm1JZDogW3VuZGVmaW5lZF0sXG4gICAgcHJvZHVjdFRlcm1UeXBlOiBbdW5kZWZpbmVkXSxcbiAgICB0aWVyOiBbdW5kZWZpbmVkXSxcbiAgICBzaXRlVHlwZTogW3VuZGVmaW5lZF1cbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByb2R1Y3RUZXJtVGVybVR5cGUgPSBwcm9kdWN0VGVybVRlcm1UeXBlLnRlcm07XG4gIHByb3RlY3RlZCByZWFkb25seSBFbWlzc2lvbk1ldGhvZFRpZXIgPSBFbWlzc2lvbk1ldGhvZFRpZXI7XG4gIHByb3RlY3RlZCByZWFkb25seSBTaXRlU2l0ZVR5cGUgPSBTaXRlU2l0ZVR5cGU7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN1Z2dlc3RpbmdQcm9kdWN0VGVybUlkID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN1Z2dlc3RQcm9kdWN0VGVybUlkID0gKHRleHQkOiBPYnNlcnZhYmxlPHN0cmluZz4pID0+XG4gICAgdGV4dCQucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnN1Z2dlc3RpbmdQcm9kdWN0VGVybUlkLnNldCh0cnVlKSksXG4gICAgICBzd2l0Y2hNYXAodGVybSA9PiAodGVybS5sZW5ndGggPCAxID8gW10gOiB0aGlzLnN1Z2dlc3RUZXJtKHRlcm0pKSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zdWdnZXN0aW5nUHJvZHVjdFRlcm1JZC5zZXQoZmFsc2UpKVxuICAgICk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpbnB1dEZvcm1hdHRlclByb2R1Y3RUZXJtSWQgPSAoeyBuYW1lIH06IElUZXJtSlNPTkxEKSA9PiBuYW1lO1xuXG4gIHByaXZhdGUgc3VnZ2VzdFRlcm0odGVybTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoU2VydmljZS5zdWdnZXN0JCh0ZXJtLCBOb2RlVHlwZS5UZXJtLCBudWxsLCB7XG4gICAgICBib29sOiB7XG4gICAgICAgIG11c3Q6IFtcbiAgICAgICAgICBtYXRjaFR5cGUoTm9kZVR5cGUuVGVybSksXG4gICAgICAgICAge1xuICAgICAgICAgICAgYm9vbDoge1xuICAgICAgICAgICAgICBzaG91bGQ6IHN1Z2dlc3RNYXRjaFF1ZXJ5KHRlcm0pLFxuICAgICAgICAgICAgICBtaW5pbXVtX3Nob3VsZF9tYXRjaDogMVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYm9vbDoge1xuICAgICAgICAgICAgICBzaG91bGQ6IHByb2R1Y3RUZXJtVGVybVR5cGUudGVybS5tYXAobWF0Y2hUZXJtVHlwZSksXG4gICAgICAgICAgICAgIG1pbmltdW1fc2hvdWxkX21hdGNoOiAxXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGlmIGZvcm0gaXMgdmFsaWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0gPyAhdGhpcy5mb3JtLmludmFsaWQgOiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGZvcm1WYWx1ZSgpOiBJQ2FsY3VsYXRpb25zTW9kZWxzUGFyYW1zIHtcbiAgICBjb25zdCB7IHByb2R1Y3RUZXJtSWQsIC4uLnZhbHVlIH0gPSB0aGlzLmZvcm0gPyB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSA6IHsgcHJvZHVjdFRlcm1JZDogdW5kZWZpbmVkIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnZhbHVlLFxuICAgICAgLi4uKHByb2R1Y3RUZXJtSWQgPyB7IHByb2R1Y3RUZXJtSWQ6IHByb2R1Y3RUZXJtSWRbJ0BpZCddIH0gOiB7fSkgLy8gc2VsZWN0ZWQgYXMgYSBKU09OLUxEIE9iamVjdFxuICAgIH07XG4gIH1cbn1cbiIsIjxmb3JtIGNsYXNzPVwibmVlZHMtdmFsaWRhdGlvbiBtdC0zXCIgbm92YWxpZGF0ZSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgPGRpdiBjbGFzcz1cImZpZWxkIGlzLWhvcml6b250YWxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQtbGFiZWwgaXMtbm9ybWFsXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIGZvcj1cInByb2R1Y3RUZXJtSWRcIj5cbiAgICAgICAgPHNwYW4+UHJvZHVjdCBUZXJtIElEPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQtYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sIGlzLWV4cGFuZGVkXCIgW2NsYXNzLmhhcy1pY29ucy1yaWdodF09XCJzdWdnZXN0aW5nUHJvZHVjdFRlcm1JZCgpXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzcz1cImlucHV0XCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb2R1Y3RUZXJtSWRcIlxuICAgICAgICAgICAgbmFtZT1cInByb2R1Y3RUZXJtSWRcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggcHJvZHVjdCBieSBJRCBvciBuYW1lXCJcbiAgICAgICAgICAgIFtlZGl0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICBbbmdiVHlwZWFoZWFkXT1cInN1Z2dlc3RQcm9kdWN0VGVybUlkXCJcbiAgICAgICAgICAgIFtyZXN1bHRUZW1wbGF0ZV09XCJzdWdnZXN0aW9uUHJvZHVjdFRlcm1JZFwiXG4gICAgICAgICAgICBbaW5wdXRGb3JtYXR0ZXJdPVwiaW5wdXRGb3JtYXR0ZXJQcm9kdWN0VGVybUlkXCIgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtcmlnaHQgaGFzLXRleHQtZ3JleS1kYXJrXCIgW2NsYXNzLmlzLWhpZGRlbl09XCIhc3VnZ2VzdGluZ1Byb2R1Y3RUZXJtSWQoKVwiPlxuICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFTcGlubmVyXCIgYW5pbWF0aW9uPVwic3BpblwiIC8+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZmllbGQgaXMtaG9yaXpvbnRhbCBtdC0zXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkLWxhYmVsIGlzLW5vcm1hbFwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBmb3I9XCJwcm9kdWN0VGVybVR5cGVcIj5cbiAgICAgICAgPHNwYW4+UHJvZHVjdCBUZXJtIFR5cGU8L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1ib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2wgaXMtZXhwYW5kZWRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0IGlzLWZ1bGx3aWR0aFwiPlxuICAgICAgICAgICAgPHNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJwcm9kdWN0VGVybVR5cGVcIiBuYW1lPVwicHJvZHVjdFRlcm1UeXBlXCI+XG4gICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidW5kZWZpbmVkXCI+U2VsZWN0IGEgVHlwZTwvb3B0aW9uPlxuICAgICAgICAgICAgICBAZm9yICh0ZXJtVHlwZSBvZiBwcm9kdWN0VGVybVRlcm1UeXBlOyB0cmFjayB0ZXJtVHlwZSkge1xuICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cInRlcm1UeXBlXCI+XG4gICAgICAgICAgICAgICAgICB7eyB0ZXJtVHlwZSB8IGtleVRvTGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmaWVsZCBpcy1ob3Jpem9udGFsIG10LTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQtbGFiZWwgaXMtbm9ybWFsXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIGZvcj1cInRpZXJcIj5cbiAgICAgICAgPHNwYW4+RW1pc3Npb25zIE1ldGhvZCBUaWVyPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQtYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sIGlzLWV4cGFuZGVkXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdCBpcy1mdWxsd2lkdGhcIj5cbiAgICAgICAgICAgIDxzZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwidGllclwiIG5hbWU9XCJ0aWVyXCI+XG4gICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidW5kZWZpbmVkXCI+U2VsZWN0IGEgVGllcjwvb3B0aW9uPlxuICAgICAgICAgICAgICBAZm9yICh0aWVyIG9mIEVtaXNzaW9uTWV0aG9kVGllciB8IGtleXZhbHVlOyB0cmFjayB0aWVyKSB7XG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwidGllci52YWx1ZVwiPnt7IHRpZXIudmFsdWUgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmaWVsZCBpcy1ob3Jpem9udGFsIG10LTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQtbGFiZWwgaXMtbm9ybWFsXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIGZvcj1cInNpdGVUeXBlXCI+XG4gICAgICAgIDxzcGFuPlNpdGUgVHlwZTwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkLWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbCBpcy1leHBhbmRlZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QgaXMtZnVsbHdpZHRoXCI+XG4gICAgICAgICAgICA8c2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInNpdGVUeXBlXCIgbmFtZT1cInNpdGVUeXBlXCI+XG4gICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidW5kZWZpbmVkXCI+U2VsZWN0IGEgVHlwZTwvb3B0aW9uPlxuICAgICAgICAgICAgICBAZm9yIChzaXRlVHlwZSBvZiBTaXRlU2l0ZVR5cGUgfCBrZXl2YWx1ZTsgdHJhY2sgc2l0ZVR5cGUpIHtcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJzaXRlVHlwZS52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAge3sgc2l0ZVR5cGUudmFsdWUgfX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9mb3JtPlxuXG48bmctdGVtcGxhdGUgI3N1Z2dlc3Rpb25Qcm9kdWN0VGVybUlkIGxldC1yPVwicmVzdWx0XCIgbGV0LXQ9XCJ0ZXJtXCI+XG4gIDxuZ2ItaGlnaGxpZ2h0IFtyZXN1bHRdPVwici5uYW1lXCIgW3Rlcm1dPVwidFwiPjwvbmdiLWhpZ2hsaWdodD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -40,8 +40,9 @@ export const findModels = (termId) => models.filter(({ term }) => term === termI
|
|
|
40
40
|
export const findMatchingModel = (model) => Object.keys(model).length > 0
|
|
41
41
|
? models.flat().find(m => Object.entries(model).every(([key, value]) => value === m[key]))
|
|
42
42
|
: null;
|
|
43
|
-
export const modelParams = (node, includeTerm = true) => filterParams({
|
|
43
|
+
export const modelParams = (node, includeTerm = true, key) => filterParams({
|
|
44
44
|
model: 'methodModel' in node ? node?.methodModel?.['@id'] : undefined,
|
|
45
|
+
modelKey: key,
|
|
45
46
|
...(includeTerm ? { term: 'term' in node ? node?.term?.['@id'] : undefined } : {})
|
|
46
47
|
});
|
|
47
48
|
export const modelKeyParams = (node, key) => filterParams({
|
|
@@ -125,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
125
126
|
providedIn: 'root'
|
|
126
127
|
}]
|
|
127
128
|
}] });
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBVXpELE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQThELFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUV4RixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBUywwQkFBMEIsQ0FBQyxDQUFDO0FBRS9GLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0UsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsV0FBVyxTQUFTLEVBQUUsRUFBRSxDQUFDO0FBRWhGLE1BQU0scUJBQXFCLEdBQUc7SUFDNUIsaUJBQWlCLEVBQUUsWUFBWTtDQUNoQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FB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QUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7K0dBakRVLGVBQWU7bUhBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIEVtaXNzaW9uTWV0aG9kVGllcixcbiAgSlNPTkxELFxuICBOb2RlVHlwZSxcbiAgU2NoZW1hVHlwZSxcbiAgU2l0ZVNpdGVUeXBlLFxuICBUZXJtVGVybVR5cGUsXG4gIGJsYW5rTm9kZXNUeXBlXG59IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IElNb2RlbCwgbG9hZE1vZGVscyB9IGZyb20gJ0BoZXN0aWEtZWFydGgvZW5naW5lLW1vZGVscyc7XG5pbXBvcnQgeyBhbGxvd2VkVHlwZSwgSU9yY2hlc3RyYXRvckNvbmZpZywgSU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnLCBsb2FkQ29uZmlnIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9lbmdpbmUtY29uZmlnJztcbmltcG9ydCB7IHRvRGFzaENhc2UgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcblxuaW1wb3J0IHsgYmFzZVVybCwgZ2l0SG9tZSwgZ2l0QnJhbmNoLCBmaWx0ZXJQYXJhbXMsIFJlcG9zaXRvcnkgfSBmcm9tICcuLi9jb21tb24vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgSEVfQ0FMQ1VMQVRJT05TX0JBU0VfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0hFX0NBTENVTEFUSU9OU19CQVNFX1VSTCcpO1xuXG5leHBvcnQgY29uc3QgZW5naW5lR2l0QmFzZVVybCA9ICgpID0+IFtnaXRIb21lLCBSZXBvc2l0b3J5Lm1vZGVsc10uam9pbignLycpO1xuZXhwb3J0IGNvbnN0IGVuZ2luZUdpdFVybCA9ICgpID0+IGAke2VuZ2luZUdpdEJhc2VVcmwoKX0vLS9ibG9iLyR7Z2l0QnJhbmNoKCl9YDtcblxuY29uc3QgY3VzdG9tVGVybUFwaURvY3NQYXRoID0ge1xuICAnZXhjcmV0YS1rZy1tYXNzJzogJ2V4Y3JldGEta2cnXG59O1xuXG5leHBvcnQgY29uc3QgcGF0aFRvQXBpRG9jc1BhdGggPSAobW9kZWw6IHN0cmluZywgdGVybT86IHN0cmluZykgPT5cbiAgW1xuICAgIGJhc2VVcmwoZmFsc2UpLFxuICAgICdkb2NzJyxcbiAgICBbJyNoZXN0aWEtY2FsY3VsYXRpb24tbW9kZWxzJywgdG9EYXNoQ2FzZShtb2RlbCksIGN1c3RvbVRlcm1BcGlEb2NzUGF0aFt0b0Rhc2hDYXNlKHRlcm0pXSB8fCB0b0Rhc2hDYXNlKHRlcm0pXVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgLmpvaW4oJy0nKVxuICBdLmpvaW4oJy8nKTtcblxuZXhwb3J0IGludGVyZmFjZSBJTW9kZWxFeHRlbmRlZCBleHRlbmRzIElNb2RlbCB7XG4gIC8qKlxuICAgKiBJcyBtb2RlbCBmcm9tIEVjb2ludmVudFYzLlxuICAgKi9cbiAgZWNvaW52ZW50OiBib29sZWFuO1xuICAvKipcbiAgICogUGF0aCB0byB0aGUgQVBJIERvY3VtZW50YXRpb24uXG4gICAqL1xuICBhcGlEb2NzUGF0aD86IHN0cmluZztcbn1cblxuY29uc3QgbWFwTW9kZWxMaW5rID1cbiAgKGVjb2ludmVudCA9IGZhbHNlKSA9PlxuICAoeyBwYXRoLCBkb2NQYXRoLCAuLi5saW5rIH06IElNb2RlbEV4dGVuZGVkKSA9PiAoe1xuICAgIC4uLmxpbmssXG4gICAgZWNvaW52ZW50LFxuICAgIHBhdGg6IGAke2VuZ2luZUdpdFVybCgpfS8ke3BhdGh9YCxcbiAgICBkb2NQYXRoOiBgJHtlbmdpbmVHaXRVcmwoKX0vJHtkb2NQYXRofWAsXG4gICAgYXBpRG9jc1BhdGg6IHBhdGhUb0FwaURvY3NQYXRoKGxpbmsubW9kZWwsIGxpbmsudGVybSB8fCBsaW5rLm1vZGVsS2V5KVxuICB9KTtcblxuY29uc3QgYWxsTW9kZWxzID0gKCkgPT4ge1xuICBjb25zdCB7IGxpbmtzLCBlY29pbnZlbnRMaW5rcywgZWNvaW52ZW50VjNBbmRFbWJlckNsaW1hdGVMaW5rcyB9ID0gbG9hZE1vZGVscygpO1xuICByZXR1cm4gW1xuICAgIC4uLmxpbmtzLm1hcChtYXBNb2RlbExpbmsoZmFsc2UpKSxcbiAgICAuLi4oZWNvaW52ZW50TGlua3MgfHwgW10pLm1hcChtYXBNb2RlbExpbmsodHJ1ZSkpLFxuICAgIC4uLihlY29pbnZlbnRWM0FuZEVtYmVyQ2xpbWF0ZUxpbmtzIHx8IFtdKS5tYXAobWFwTW9kZWxMaW5rKHRydWUpKVxuICBdO1xufTtcblxuZXhwb3J0IGNvbnN0IG1vZGVscyA9IGFsbE1vZGVscygpO1xuXG5leHBvcnQgY29uc3QgZmluZE1vZGVscyA9ICh0ZXJtSWQ6IHN0cmluZykgPT4gbW9kZWxzLmZpbHRlcigoeyB0ZXJtIH0pID0+IHRlcm0gPT09IHRlcm1JZCk7XG5cbmV4cG9ydCBjb25zdCBmaW5kTWF0Y2hpbmdNb2RlbCA9IChtb2RlbDogUGFydGlhbDxJTW9kZWw+KTogSU1vZGVsRXh0ZW5kZWQgPT5cbiAgT2JqZWN0LmtleXMobW9kZWwpLmxlbmd0aCA+IDBcbiAgICA/IG1vZGVscy5mbGF0KCkuZmluZChtID0+IE9iamVjdC5lbnRyaWVzKG1vZGVsKS5ldmVyeSgoW2tleSwgdmFsdWVdKSA9PiB2YWx1ZSA9PT0gbVtrZXldKSlcbiAgICA6IG51bGw7XG5cbmV4cG9ydCBjb25zdCBtb2RlbFBhcmFtcyA9IChub2RlOiBQYXJ0aWFsPGJsYW5rTm9kZXNUeXBlPiwgaW5jbHVkZVRlcm0gPSB0cnVlKSA9PlxuICBmaWx0ZXJQYXJhbXMoe1xuICAgIG1vZGVsOiAnbWV0aG9kTW9kZWwnIGluIG5vZGUgPyBub2RlPy5tZXRob2RNb2RlbD8uWydAaWQnXSA6IHVuZGVmaW5lZCxcbiAgICAuLi4oaW5jbHVkZVRlcm0gPyB7IHRlcm06ICd0ZXJtJyBpbiBub2RlID8gbm9kZT8udGVybT8uWydAaWQnXSA6IHVuZGVmaW5lZCB9IDoge30pXG4gIH0pO1xuXG5leHBvcnQgY29uc3QgbW9kZWxLZXlQYXJhbXMgPSAobm9kZTogUGFydGlhbDxibGFua05vZGVzVHlwZT4sIGtleTogc3RyaW5nKSA9PlxuICBmaWx0ZXJQYXJhbXMoe1xuICAgIG1vZGVsOiAobm9kZT8uWydAdHlwZSddIHx8IG5vZGU/LnR5cGUgfHwgJycpLnRvTG93ZXJDYXNlKCksXG4gICAgbW9kZWxLZXk6IGtleVxuICB9KTtcblxuZXhwb3J0IGNvbnN0IGZpbmROb2RlTW9kZWwgPSAobm9kZTogUGFydGlhbDxibGFua05vZGVzVHlwZT4sIGtleT86IHN0cmluZykgPT4ge1xuICBjb25zdCB2YWx1ZSA9IGZpbmRNYXRjaGluZ01vZGVsKG1vZGVsUGFyYW1zKG5vZGUpKTtcbiAgcmV0dXJuICFrZXkgfHwgdmFsdWUgPyB2YWx1ZSA6IGZpbmRNYXRjaGluZ01vZGVsKG1vZGVsS2V5UGFyYW1zKG5vZGUsIGtleSkpO1xufTtcblxuLyoqXG4gKiBGaW5kIG1vZGVscyBmcm9tIHRoZSBvcmNoZXN0cmF0b3IgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIFRoZSBvcmNoZXN0cmF0b3IgY29uZmlndXJhdGlvbiBjb250ZW50LlxuICogQHBhcmFtIHRlcm1JZCBUaGUgYEBpZGAgb2YgdGhlIFRlcm0uXG4gKiBAcGFyYW0gbW9kZWxLZXkgVGhlIGtleSBvZiB0aGUgY29uZmlndXJhdGlvbiAoZS5nLiBcInByb2R1Y3RzXCIsIFwiaW5wdXRzXCIpXG4gKiBAcGFyYW0gbW9kZWxzIE9wdGlvbmFsIC0gbGlzdCBvZiBtb2RlbHMgZnJvbSBgbW9kZWwtbGlua3MuanNvbmAgdG8gZGVmYXVsdCB3aGVuIG9yY2hlc3RyYXRvciBkb2VzIG5vdCBjb250YWluIGNvbmZpZy5cbiAqIEByZXR1cm5zIExpc3Qgb2YgbW9kZWxzIGZyb20gb3JjaGVzdHJhdG9yIG9yIG1vZGVscyBpZiBzZXQuXG4gKi9cbmV4cG9ydCBjb25zdCBmaW5kQ29uZmlnTW9kZWxzID0gKGNvbmZpZzogSU9yY2hlc3RyYXRvckNvbmZpZywgdGVybUlkOiBzdHJpbmcsIG1vZGVsS2V5OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgY29uZmlnTW9kZWxzID0gY29uZmlnLm1vZGVsc1xuICAgIC5mbGF0KClcbiAgICAuZmlsdGVyKCh7IHZhbHVlLCBrZXkgfSkgPT4gdGVybUlkID09PSB2YWx1ZSAmJiAoIW1vZGVsS2V5IHx8IGtleSA9PT0gbW9kZWxLZXkpKTtcbiAgcmV0dXJuIGNvbmZpZ01vZGVscy5sZW5ndGggPyBjb25maWdNb2RlbHMgOiBmaW5kTW9kZWxzKHRlcm1JZCk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElDYWxjdWxhdGlvbnNNb2RlbHNQYXJhbXMge1xuICB0ZXJtVHlwZT86IFNjaGVtYVR5cGU7XG4gIHByb2R1Y3RUZXJtSWQ/OiBzdHJpbmc7XG4gIHByb2R1Y3RUZXJtVHlwZT86IFRlcm1UZXJtVHlwZTtcbiAgdGllcj86IEVtaXNzaW9uTWV0aG9kVGllcjtcbiAgc2l0ZVR5cGU/OiBTaXRlU2l0ZVR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhbGN1bGF0aW9uc1JlcXVpcmVtZW50c1BhcmFtcyBleHRlbmRzIElDYWxjdWxhdGlvbnNNb2RlbHNQYXJhbXMge1xuICBmb3JtYXQ/OiAnY3N2Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2FsY3VsYXRpb25zTW9kZWwge1xuICBtb2RlbDogc3RyaW5nO1xuICBrZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGZpbmRPcmNoZXN0cmF0b3JNb2RlbCA9ICh7IG1vZGVscyB9OiBJT3JjaGVzdHJhdG9yQ29uZmlnLCBtb2RlbDogUGFydGlhbDxJT3JjaGVzdHJhdG9yTW9kZWxDb25maWc+KSA9PlxuICBPYmplY3Qua2V5cyhtb2RlbCkubGVuZ3RoID4gMFxuICAgID8gbW9kZWxzLmZsYXQoKS5maW5kKG0gPT4gT2JqZWN0LmVudHJpZXMobW9kZWwpLmV2ZXJ5KChba2V5LCB2YWx1ZV0pID0+IHZhbHVlID09PSBtW2tleV0pKVxuICAgIDogbnVsbDtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGVFbmdpbmVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FsY3VsYXRpb25zQmFzZVVybCA9IGluamVjdChIRV9DQUxDVUxBVElPTlNfQkFTRV9VUkwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICBwcml2YXRlIF9yZWNvbW1lbmRhdGlvbnM6IHsgW2tleTogc3RyaW5nXTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4gfSA9IHt9O1xuICBwcml2YXRlIF9yZXF1aXJlbWVudHM6IHsgW2tleTogc3RyaW5nXTogT2JzZXJ2YWJsZTxKU09OTEQ8Tm9kZVR5cGU+PiB9ID0ge307XG5cbiAgcHVibGljIGxpc3RNb2RlbHMocGFyYW1zOiBJQ2FsY3VsYXRpb25zTW9kZWxzUGFyYW1zKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDx7IG1vZGVsczogSUNhbGN1bGF0aW9uc01vZGVsW10gfT4oYCR7dGhpcy5fY2FsY3VsYXRpb25zQmFzZVVybH0vbW9kZWxzYCwge1xuICAgICAgICBwYXJhbXM6IGZpbHRlclBhcmFtcyhwYXJhbXMpXG4gICAgICB9KVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIGdldFJlcXVpcmVtZW50cyQocGFyYW1zOiBJQ2FsY3VsYXRpb25zUmVxdWlyZW1lbnRzUGFyYW1zKSB7XG4gICAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoZmlsdGVyUGFyYW1zKHBhcmFtcykpO1xuICAgIHRoaXMuX3JlcXVpcmVtZW50c1trZXldID1cbiAgICAgIHRoaXMuX3JlcXVpcmVtZW50c1trZXldIHx8XG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLmdldDxKU09OTEQ8Tm9kZVR5cGU+PihgJHt0aGlzLl9jYWxjdWxhdGlvbnNCYXNlVXJsfS9tb2RlbHMvcmVxdWlyZW1lbnRzYCwge1xuICAgICAgICAgIHBhcmFtczogZmlsdGVyUGFyYW1zKHBhcmFtcylcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlbWVudHNba2V5XTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZXF1aXJlbWVudHMocGFyYW1zOiBJQ2FsY3VsYXRpb25zUmVxdWlyZW1lbnRzUGFyYW1zKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVxdWlyZW1lbnRzJChwYXJhbXMpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIGdldFRlcm1JZHMkKHBhcmFtczogSUNhbGN1bGF0aW9uc1JlcXVpcmVtZW50c1BhcmFtcykge1xuICAgIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KGZpbHRlclBhcmFtcyhwYXJhbXMpKTtcbiAgICB0aGlzLl9yZWNvbW1lbmRhdGlvbnNba2V5XSA9XG4gICAgICB0aGlzLl9yZWNvbW1lbmRhdGlvbnNba2V5XSB8fFxuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8c3RyaW5nW10+KGAke3RoaXMuX2NhbGN1bGF0aW9uc0Jhc2VVcmx9L21vZGVscy90ZXJtLWlkc2AsIHtcbiAgICAgICAgICBwYXJhbXM6IGZpbHRlclBhcmFtcyhwYXJhbXMpXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKHNoYXJlUmVwbGF5KDEpKTtcbiAgICByZXR1cm4gdGhpcy5fcmVjb21tZW5kYXRpb25zW2tleV07XG4gIH1cblxuICBwdWJsaWMgb2NoZXN0cmF0b3JDb25maWckKHR5cGU6IGFsbG93ZWRUeXBlLCBpZD86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8SU9yY2hlc3RyYXRvckNvbmZpZz4oYCR7dGhpcy5fY2FsY3VsYXRpb25zQmFzZVVybH0vcmVjYWxjdWxhdGUvY29uZmlnYCwge1xuICAgICAgICBwYXJhbXM6IGZpbHRlclBhcmFtcyh7IHR5cGUsICdAdHlwZSc6IHR5cGUsIGlkLCAnQGlkJzogaWQgfSlcbiAgICAgIH0pXG4gICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IG9mKGxvYWRDb25maWcodHlwZSkpKSk7XG4gIH1cbn1cbiJdfQ==
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBVXpELE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQThELFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUV4RixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBUywwQkFBMEIsQ0FBQyxDQUFDO0FBRS9GLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0UsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsV0FBVyxTQUFTLEVBQUUsRUFBRSxDQUFDO0FBRWhGLE1BQU0scUJBQXFCLEdBQUc7SUFDNUIsaUJBQWlCLEVBQUUsWUFBWTtDQUNoQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FB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QUUsQ0FBQztTQUM3RCxDQUFDO2FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7K0dBakRVLGVBQWU7bUhBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIEVtaXNzaW9uTWV0aG9kVGllcixcbiAgSlNPTkxELFxuICBOb2RlVHlwZSxcbiAgU2NoZW1hVHlwZSxcbiAgU2l0ZVNpdGVUeXBlLFxuICBUZXJtVGVybVR5cGUsXG4gIGJsYW5rTm9kZXNUeXBlXG59IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IElNb2RlbCwgbG9hZE1vZGVscyB9IGZyb20gJ0BoZXN0aWEtZWFydGgvZW5naW5lLW1vZGVscyc7XG5pbXBvcnQgeyBhbGxvd2VkVHlwZSwgSU9yY2hlc3RyYXRvckNvbmZpZywgSU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnLCBsb2FkQ29uZmlnIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9lbmdpbmUtY29uZmlnJztcbmltcG9ydCB7IHRvRGFzaENhc2UgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcblxuaW1wb3J0IHsgYmFzZVVybCwgZ2l0SG9tZSwgZ2l0QnJhbmNoLCBmaWx0ZXJQYXJhbXMsIFJlcG9zaXRvcnkgfSBmcm9tICcuLi9jb21tb24vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgSEVfQ0FMQ1VMQVRJT05TX0JBU0VfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0hFX0NBTENVTEFUSU9OU19CQVNFX1VSTCcpO1xuXG5leHBvcnQgY29uc3QgZW5naW5lR2l0QmFzZVVybCA9ICgpID0+IFtnaXRIb21lLCBSZXBvc2l0b3J5Lm1vZGVsc10uam9pbignLycpO1xuZXhwb3J0IGNvbnN0IGVuZ2luZUdpdFVybCA9ICgpID0+IGAke2VuZ2luZUdpdEJhc2VVcmwoKX0vLS9ibG9iLyR7Z2l0QnJhbmNoKCl9YDtcblxuY29uc3QgY3VzdG9tVGVybUFwaURvY3NQYXRoID0ge1xuICAnZXhjcmV0YS1rZy1tYXNzJzogJ2V4Y3JldGEta2cnXG59O1xuXG5leHBvcnQgY29uc3QgcGF0aFRvQXBpRG9jc1BhdGggPSAobW9kZWw6IHN0cmluZywgdGVybT86IHN0cmluZykgPT5cbiAgW1xuICAgIGJhc2VVcmwoZmFsc2UpLFxuICAgICdkb2NzJyxcbiAgICBbJyNoZXN0aWEtY2FsY3VsYXRpb24tbW9kZWxzJywgdG9EYXNoQ2FzZShtb2RlbCksIGN1c3RvbVRlcm1BcGlEb2NzUGF0aFt0b0Rhc2hDYXNlKHRlcm0pXSB8fCB0b0Rhc2hDYXNlKHRlcm0pXVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgLmpvaW4oJy0nKVxuICBdLmpvaW4oJy8nKTtcblxuZXhwb3J0IGludGVyZmFjZSBJTW9kZWxFeHRlbmRlZCBleHRlbmRzIElNb2RlbCB7XG4gIC8qKlxuICAgKiBJcyBtb2RlbCBmcm9tIEVjb2ludmVudFYzLlxuICAgKi9cbiAgZWNvaW52ZW50OiBib29sZWFuO1xuICAvKipcbiAgICogUGF0aCB0byB0aGUgQVBJIERvY3VtZW50YXRpb24uXG4gICAqL1xuICBhcGlEb2NzUGF0aD86IHN0cmluZztcbn1cblxuY29uc3QgbWFwTW9kZWxMaW5rID1cbiAgKGVjb2ludmVudCA9IGZhbHNlKSA9PlxuICAoeyBwYXRoLCBkb2NQYXRoLCAuLi5saW5rIH06IElNb2RlbEV4dGVuZGVkKSA9PiAoe1xuICAgIC4uLmxpbmssXG4gICAgZWNvaW52ZW50LFxuICAgIHBhdGg6IGAke2VuZ2luZUdpdFVybCgpfS8ke3BhdGh9YCxcbiAgICBkb2NQYXRoOiBgJHtlbmdpbmVHaXRVcmwoKX0vJHtkb2NQYXRofWAsXG4gICAgYXBpRG9jc1BhdGg6IHBhdGhUb0FwaURvY3NQYXRoKGxpbmsubW9kZWwsIGxpbmsudGVybSB8fCBsaW5rLm1vZGVsS2V5KVxuICB9KTtcblxuY29uc3QgYWxsTW9kZWxzID0gKCkgPT4ge1xuICBjb25zdCB7IGxpbmtzLCBlY29pbnZlbnRMaW5rcywgZWNvaW52ZW50VjNBbmRFbWJlckNsaW1hdGVMaW5rcyB9ID0gbG9hZE1vZGVscygpO1xuICByZXR1cm4gW1xuICAgIC4uLmxpbmtzLm1hcChtYXBNb2RlbExpbmsoZmFsc2UpKSxcbiAgICAuLi4oZWNvaW52ZW50TGlua3MgfHwgW10pLm1hcChtYXBNb2RlbExpbmsodHJ1ZSkpLFxuICAgIC4uLihlY29pbnZlbnRWM0FuZEVtYmVyQ2xpbWF0ZUxpbmtzIHx8IFtdKS5tYXAobWFwTW9kZWxMaW5rKHRydWUpKVxuICBdO1xufTtcblxuZXhwb3J0IGNvbnN0IG1vZGVscyA9IGFsbE1vZGVscygpO1xuXG5leHBvcnQgY29uc3QgZmluZE1vZGVscyA9ICh0ZXJtSWQ6IHN0cmluZykgPT4gbW9kZWxzLmZpbHRlcigoeyB0ZXJtIH0pID0+IHRlcm0gPT09IHRlcm1JZCk7XG5cbmV4cG9ydCBjb25zdCBmaW5kTWF0Y2hpbmdNb2RlbCA9IChtb2RlbDogUGFydGlhbDxJTW9kZWw+KTogSU1vZGVsRXh0ZW5kZWQgPT5cbiAgT2JqZWN0LmtleXMobW9kZWwpLmxlbmd0aCA+IDBcbiAgICA/IG1vZGVscy5mbGF0KCkuZmluZChtID0+IE9iamVjdC5lbnRyaWVzKG1vZGVsKS5ldmVyeSgoW2tleSwgdmFsdWVdKSA9PiB2YWx1ZSA9PT0gbVtrZXldKSlcbiAgICA6IG51bGw7XG5cbmV4cG9ydCBjb25zdCBtb2RlbFBhcmFtcyA9IChub2RlOiBQYXJ0aWFsPGJsYW5rTm9kZXNUeXBlPiwgaW5jbHVkZVRlcm0gPSB0cnVlLCBrZXk/OiBzdHJpbmcpID0+XG4gIGZpbHRlclBhcmFtcyh7XG4gICAgbW9kZWw6ICdtZXRob2RNb2RlbCcgaW4gbm9kZSA/IG5vZGU/Lm1ldGhvZE1vZGVsPy5bJ0BpZCddIDogdW5kZWZpbmVkLFxuICAgIG1vZGVsS2V5OiBrZXksXG4gICAgLi4uKGluY2x1ZGVUZXJtID8geyB0ZXJtOiAndGVybScgaW4gbm9kZSA/IG5vZGU/LnRlcm0/LlsnQGlkJ10gOiB1bmRlZmluZWQgfSA6IHt9KVxuICB9KTtcblxuZXhwb3J0IGNvbnN0IG1vZGVsS2V5UGFyYW1zID0gKG5vZGU6IFBhcnRpYWw8YmxhbmtOb2Rlc1R5cGU+LCBrZXk6IHN0cmluZykgPT5cbiAgZmlsdGVyUGFyYW1zKHtcbiAgICBtb2RlbDogKG5vZGU/LlsnQHR5cGUnXSB8fCBub2RlPy50eXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpLFxuICAgIG1vZGVsS2V5OiBrZXlcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBmaW5kTm9kZU1vZGVsID0gKG5vZGU6IFBhcnRpYWw8YmxhbmtOb2Rlc1R5cGU+LCBrZXk/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgdmFsdWUgPSBmaW5kTWF0Y2hpbmdNb2RlbChtb2RlbFBhcmFtcyhub2RlKSk7XG4gIHJldHVybiAha2V5IHx8IHZhbHVlID8gdmFsdWUgOiBmaW5kTWF0Y2hpbmdNb2RlbChtb2RlbEtleVBhcmFtcyhub2RlLCBrZXkpKTtcbn07XG5cbi8qKlxuICogRmluZCBtb2RlbHMgZnJvbSB0aGUgb3JjaGVzdHJhdG9yIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogQHBhcmFtIGNvbmZpZyBUaGUgb3JjaGVzdHJhdG9yIGNvbmZpZ3VyYXRpb24gY29udGVudC5cbiAqIEBwYXJhbSB0ZXJtSWQgVGhlIGBAaWRgIG9mIHRoZSBUZXJtLlxuICogQHBhcmFtIG1vZGVsS2V5IFRoZSBrZXkgb2YgdGhlIGNvbmZpZ3VyYXRpb24gKGUuZy4gXCJwcm9kdWN0c1wiLCBcImlucHV0c1wiKVxuICogQHBhcmFtIG1vZGVscyBPcHRpb25hbCAtIGxpc3Qgb2YgbW9kZWxzIGZyb20gYG1vZGVsLWxpbmtzLmpzb25gIHRvIGRlZmF1bHQgd2hlbiBvcmNoZXN0cmF0b3IgZG9lcyBub3QgY29udGFpbiBjb25maWcuXG4gKiBAcmV0dXJucyBMaXN0IG9mIG1vZGVscyBmcm9tIG9yY2hlc3RyYXRvciBvciBtb2RlbHMgaWYgc2V0LlxuICovXG5leHBvcnQgY29uc3QgZmluZENvbmZpZ01vZGVscyA9IChjb25maWc6IElPcmNoZXN0cmF0b3JDb25maWcsIHRlcm1JZDogc3RyaW5nLCBtb2RlbEtleTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGNvbmZpZ01vZGVscyA9IGNvbmZpZy5tb2RlbHNcbiAgICAuZmxhdCgpXG4gICAgLmZpbHRlcigoeyB2YWx1ZSwga2V5IH0pID0+IHRlcm1JZCA9PT0gdmFsdWUgJiYgKCFtb2RlbEtleSB8fCBrZXkgPT09IG1vZGVsS2V5KSk7XG4gIHJldHVybiBjb25maWdNb2RlbHMubGVuZ3RoID8gY29uZmlnTW9kZWxzIDogZmluZE1vZGVscyh0ZXJtSWQpO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJQ2FsY3VsYXRpb25zTW9kZWxzUGFyYW1zIHtcbiAgdGVybVR5cGU/OiBTY2hlbWFUeXBlO1xuICBwcm9kdWN0VGVybUlkPzogc3RyaW5nO1xuICBwcm9kdWN0VGVybVR5cGU/OiBUZXJtVGVybVR5cGU7XG4gIHRpZXI/OiBFbWlzc2lvbk1ldGhvZFRpZXI7XG4gIHNpdGVUeXBlPzogU2l0ZVNpdGVUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYWxjdWxhdGlvbnNSZXF1aXJlbWVudHNQYXJhbXMgZXh0ZW5kcyBJQ2FsY3VsYXRpb25zTW9kZWxzUGFyYW1zIHtcbiAgZm9ybWF0PzogJ2Nzdic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhbGN1bGF0aW9uc01vZGVsIHtcbiAgbW9kZWw6IHN0cmluZztcbiAga2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBmaW5kT3JjaGVzdHJhdG9yTW9kZWwgPSAoeyBtb2RlbHMgfTogSU9yY2hlc3RyYXRvckNvbmZpZywgbW9kZWw6IFBhcnRpYWw8SU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnPikgPT5cbiAgT2JqZWN0LmtleXMobW9kZWwpLmxlbmd0aCA+IDBcbiAgICA/IG1vZGVscy5mbGF0KCkuZmluZChtID0+IE9iamVjdC5lbnRyaWVzKG1vZGVsKS5ldmVyeSgoW2tleSwgdmFsdWVdKSA9PiB2YWx1ZSA9PT0gbVtrZXldKSlcbiAgICA6IG51bGw7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhlRW5naW5lU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NhbGN1bGF0aW9uc0Jhc2VVcmwgPSBpbmplY3QoSEVfQ0FMQ1VMQVRJT05TX0JBU0VfVVJMKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgcHJpdmF0ZSBfcmVjb21tZW5kYXRpb25zOiB7IFtrZXk6IHN0cmluZ106IE9ic2VydmFibGU8c3RyaW5nW10+IH0gPSB7fTtcbiAgcHJpdmF0ZSBfcmVxdWlyZW1lbnRzOiB7IFtrZXk6IHN0cmluZ106IE9ic2VydmFibGU8SlNPTkxEPE5vZGVUeXBlPj4gfSA9IHt9O1xuXG4gIHB1YmxpYyBsaXN0TW9kZWxzKHBhcmFtczogSUNhbGN1bGF0aW9uc01vZGVsc1BhcmFtcykge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8eyBtb2RlbHM6IElDYWxjdWxhdGlvbnNNb2RlbFtdIH0+KGAke3RoaXMuX2NhbGN1bGF0aW9uc0Jhc2VVcmx9L21vZGVsc2AsIHtcbiAgICAgICAgcGFyYW1zOiBmaWx0ZXJQYXJhbXMocGFyYW1zKVxuICAgICAgfSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZXF1aXJlbWVudHMkKHBhcmFtczogSUNhbGN1bGF0aW9uc1JlcXVpcmVtZW50c1BhcmFtcykge1xuICAgIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KGZpbHRlclBhcmFtcyhwYXJhbXMpKTtcbiAgICB0aGlzLl9yZXF1aXJlbWVudHNba2V5XSA9XG4gICAgICB0aGlzLl9yZXF1aXJlbWVudHNba2V5XSB8fFxuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8SlNPTkxEPE5vZGVUeXBlPj4oYCR7dGhpcy5fY2FsY3VsYXRpb25zQmFzZVVybH0vbW9kZWxzL3JlcXVpcmVtZW50c2AsIHtcbiAgICAgICAgICBwYXJhbXM6IGZpbHRlclBhcmFtcyhwYXJhbXMpXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKHNoYXJlUmVwbGF5KDEpKTtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZW1lbnRzW2tleV07XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVxdWlyZW1lbnRzKHBhcmFtczogSUNhbGN1bGF0aW9uc1JlcXVpcmVtZW50c1BhcmFtcykge1xuICAgIHJldHVybiB0aGlzLmdldFJlcXVpcmVtZW50cyQocGFyYW1zKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUZXJtSWRzJChwYXJhbXM6IElDYWxjdWxhdGlvbnNSZXF1aXJlbWVudHNQYXJhbXMpIHtcbiAgICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeShmaWx0ZXJQYXJhbXMocGFyYW1zKSk7XG4gICAgdGhpcy5fcmVjb21tZW5kYXRpb25zW2tleV0gPVxuICAgICAgdGhpcy5fcmVjb21tZW5kYXRpb25zW2tleV0gfHxcbiAgICAgIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PHN0cmluZ1tdPihgJHt0aGlzLl9jYWxjdWxhdGlvbnNCYXNlVXJsfS9tb2RlbHMvdGVybS1pZHNgLCB7XG4gICAgICAgICAgcGFyYW1zOiBmaWx0ZXJQYXJhbXMocGFyYW1zKVxuICAgICAgICB9KVxuICAgICAgICAucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gICAgcmV0dXJuIHRoaXMuX3JlY29tbWVuZGF0aW9uc1trZXldO1xuICB9XG5cbiAgcHVibGljIG9jaGVzdHJhdG9yQ29uZmlnJCh0eXBlOiBhbGxvd2VkVHlwZSwgaWQ/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PElPcmNoZXN0cmF0b3JDb25maWc+KGAke3RoaXMuX2NhbGN1bGF0aW9uc0Jhc2VVcmx9L3JlY2FsY3VsYXRlL2NvbmZpZ2AsIHtcbiAgICAgICAgcGFyYW1zOiBmaWx0ZXJQYXJhbXMoeyB0eXBlLCAnQHR5cGUnOiB0eXBlLCBpZCwgJ0BpZCc6IGlkIH0pXG4gICAgICB9KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZihsb2FkQ29uZmlnKHR5cGUpKSkpO1xuICB9XG59XG4iXX0=
|