ca-components 1.0.18 → 1.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/ca-chart/ca-chart.component.mjs +11 -2
- package/esm2022/lib/components/ca-period-content/ca-period-content.component.mjs +3 -3
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ca-components.mjs +13 -4
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/components/ca-chart/ca-chart.component.d.ts +3 -1
- package/lib/components/ca-filters/ca-filter.component.d.ts +2 -2
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -29,6 +29,11 @@ export class CaChartComponent {
|
|
|
29
29
|
this.originalChartDataset = CaBaseChartDatasetConfig.getBaseChartDatasetConfig();
|
|
30
30
|
this.isChartDataAvailable = true;
|
|
31
31
|
}
|
|
32
|
+
ngOnChanges(changes) {
|
|
33
|
+
if (this.isChartDataAvailable &&
|
|
34
|
+
!changes['chartConfig'].firstChange)
|
|
35
|
+
this.updateChart();
|
|
36
|
+
}
|
|
32
37
|
ngAfterViewInit() {
|
|
33
38
|
if (this.isChartDataAvailable)
|
|
34
39
|
this.createChart();
|
|
@@ -73,6 +78,10 @@ export class CaChartComponent {
|
|
|
73
78
|
plugins: this.plugins,
|
|
74
79
|
});
|
|
75
80
|
}
|
|
81
|
+
updateChart() {
|
|
82
|
+
this.chart?.destroy();
|
|
83
|
+
this.createChart();
|
|
84
|
+
}
|
|
76
85
|
setChartOptionsProperties() {
|
|
77
86
|
this._chartConfig.chartOptions = {
|
|
78
87
|
responsive: true,
|
|
@@ -186,7 +195,7 @@ export class CaChartComponent {
|
|
|
186
195
|
});
|
|
187
196
|
}
|
|
188
197
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CaChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
189
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CaChartComponent, isStandalone: true, selector: "app-ca-chart", inputs: { chartConfig: "chartConfig", isDatasetHovered: "isDatasetHovered" }, viewQueries: [{ propertyName: "chartCanvas", first: true, predicate: ["chartCanvas"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"isChartDataAvailable; else noDataTemplate\">\n <div\n [ngStyle]=\"{\n height: _chartConfig.height + 'px',\n width: _chartConfig.width + '%',\n }\"\n >\n <canvas #chartCanvas> </canvas>\n </div>\n</ng-container>\n<ng-template #noDataTemplate>\n <div\n class=\"d-flex justify-content-center align-items-center\"\n [ngStyle]=\"{\n height: _chartConfig.height + 'px',\n width: _chartConfig.width + '%',\n }\"\n >\n <svg-icon\n [src]=\"_chartConfig.noDataImage\"\n alt=\"No data available\"\n class=\"no-data-svg\"\n ></svg-icon>\n </div>\n</ng-template>\n", styles: [".no-data-svg{width:100%;height:auto;max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "component", type: i2.SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }] }); }
|
|
198
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CaChartComponent, isStandalone: true, selector: "app-ca-chart", inputs: { chartConfig: "chartConfig", isDatasetHovered: "isDatasetHovered" }, viewQueries: [{ propertyName: "chartCanvas", first: true, predicate: ["chartCanvas"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"isChartDataAvailable; else noDataTemplate\">\n <div\n [ngStyle]=\"{\n height: _chartConfig.height + 'px',\n width: _chartConfig.width + '%',\n }\"\n >\n <canvas #chartCanvas> </canvas>\n </div>\n</ng-container>\n<ng-template #noDataTemplate>\n <div\n class=\"d-flex justify-content-center align-items-center\"\n [ngStyle]=\"{\n height: _chartConfig.height + 'px',\n width: _chartConfig.width + '%',\n }\"\n >\n <svg-icon\n [src]=\"_chartConfig.noDataImage\"\n alt=\"No data available\"\n class=\"no-data-svg\"\n ></svg-icon>\n </div>\n</ng-template>\n", styles: [".no-data-svg{width:100%;height:auto;max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "component", type: i2.SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }] }); }
|
|
190
199
|
}
|
|
191
200
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CaChartComponent, decorators: [{
|
|
192
201
|
type: Component,
|
|
@@ -199,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
199
208
|
}], isDatasetHovered: [{
|
|
200
209
|
type: Input
|
|
201
210
|
}] } });
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY2hhcnQvY2EtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY2hhcnQvY2EtY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhELE9BQU87QUFDUCxPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUV4Qiw0QkFBNEIsRUFDNUIseUJBQXlCLEdBQzFCLE1BQU0sU0FBUyxDQUFDO0FBRWpCLFNBQVM7QUFDVCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsUUFBUTtBQUNSLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtoRCxRQUFRO0FBQ1IsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7O0FBU3BELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsSUFBYSxXQUFXLENBQUMsS0FBMkI7UUFDbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFD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LGNBR1osSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDOzBFQUduQixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBRVgsV0FBVztzQkFBdkIsS0FBSztnQkFNTyxnQkFBZ0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENhdGVnb3J5U2NhbGUsXG4gIENoYXJ0LFxuICBDaGFydFR5cGUsXG4gIExpbmVhclNjYWxlLFxuICBQbHVnaW4sXG59IGZyb20gJ2NoYXJ0LmpzL2F1dG8nO1xuaW1wb3J0IHsgQW55T2JqZWN0IH0gZnJvbSAnY2hhcnQuanMvZGlzdC90eXBlcy9iYXNpYyc7XG5pbXBvcnQgeyBBbmd1bGFyU3ZnSWNvbk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuXG4vL0VudW1zXG5pbXBvcnQge1xuICBDaGFydENvbG9yc1N0cmluZ0VudW0sXG4gIENoYXJ0RXZlbnRQcm9wZXJ0aWVzLFxuICBDaGFydFBsdWdpbklkc1N0cmluZ0VudW0sXG4gIENoYXJ0VHlwZXNTdHJpbmdFbnVtLFxuICBDdWJpY0ludGVycG9sYXRpb25TdHJpbmdFbnVtLFxuICBDaGFydEV2ZW50VHlwZXNTdHJpbmdFbnVtLFxufSBmcm9tICcuL2VudW1zJztcblxuLy9IZWxwZXJzXG5pbXBvcnQgeyBDaGFydEhlbHBlciB9IGZyb20gJy4vdXRpbHMvaGVscGVycyc7XG5cbi8vR3VhcmRzXG5pbXBvcnQgeyBDaGFydFR5cGVHdWFyZCB9IGZyb20gJy4vdXRpbHMvZ3VhcmRzJztcblxuLy9Nb2RlbHNcbmltcG9ydCB7IElDaGFydERhdGEsIElMaW5lRGF0YXNldCwgSUNoYXJ0Q29uZmlndWFyYXRpb24gfSBmcm9tICcuL21vZGVscyc7XG5cbi8vQ29uZmlnXG5pbXBvcnQgeyBDYUJhc2VDaGFydERhdGFzZXRDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jYS1jaGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhLWNoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFuZ3VsYXJTdmdJY29uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCdjaGFydENhbnZhcycpIGNoYXJ0Q2FudmFzITogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBzZXQgY2hhcnRDb25maWcodmFsdWU6IElDaGFydENvbmZpZ3VhcmF0aW9uKSB7XG4gICAgdGhpcy5fY2hhcnRDb25maWcgPSB2YWx1ZTtcbiAgICB0aGlzLmlzQ2hhcnREYXRhQXZhaWxhYmxlID0gdGhpcy5fY2hhcnRDb25maWcuY2hhcnREYXRhLmRhdGFzZXRzLmxlbmd0aCA+IDA7XG4gIH1cblxuICAvL2ZvciB0ZXN0aW5nIGhvdmVyIHN0YXRlIG9uIGRhdGFzZXRcbiAgQElucHV0KCkgc2V0IGlzRGF0YXNldEhvdmVyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0RhdGFzZXRIb3ZlcmVkID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcbiAgICAgIHRoaXMudXBkYXRlRGF0YXNldEJhY2tncm91bmRPbkhvdmVyKFxuICAgICAgICAnU2FsZXMnLFxuICAgICAgICAnIzY2OTJGMScsXG4gICAgICAgIHRoaXMuX2lzRGF0YXNldEhvdmVyZWRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGFydCE6IENoYXJ0O1xuICBwcml2YXRlIGNoYXJ0Q29udGV4dCE6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcbiAgcHJpdmF0ZSBwbHVnaW5zPzogUGx1Z2luPENoYXJ0VHlwZSwgQW55T2JqZWN0PltdO1xuICBwcml2YXRlIF9pc0RhdGFzZXRIb3ZlcmVkITogYm9vbGVhbjtcbiAgcHJpdmF0ZSBvcmlnaW5hbENoYXJ0RGF0YXNldCA9XG4gICAgQ2FCYXNlQ2hhcnREYXRhc2V0Q29uZmlnLmdldEJhc2VDaGFydERhdGFzZXRDb25maWcoKTtcblxuICBwdWJsaWMgX2NoYXJ0Q29uZmlnITogSUNoYXJ0Q29uZmlndWFyYXRpb247XG4gIHB1YmxpYyBpc0NoYXJ0RGF0YUF2YWlsYWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0NoYXJ0RGF0YUF2YWlsYWJsZSkgXG4gICAgICB0aGlzLmNyZWF0ZUNoYXJ0KCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRGF0YXNldEJhY2tncm91bmRPbkhvdmVyKFxuICAgIGRhdGFTZXRMYWJlbDogc3RyaW5nLFxuICAgIGNvbG9yOiBzdHJpbmcsXG4gICAgaXNEYXRhc2V0SG92ZXJlZDogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICBpZiAoaXNEYXRhc2V0SG92ZXJlZCkge1xuICAgICAgdGhpcy5vcmlnaW5hbENoYXJ0RGF0YXNldCA9IEpTT04ucGFyc2UoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YS5kYXRhc2V0cylcbiAgICAgICk7XG4gICAgICBjb25zdCBncmFkaWVudCA9IENoYXJ0SGVscGVyLmNyZWF0ZUdyYWRpZW50KFxuICAgICAgICB0aGlzLmNoYXJ0Q29udGV4dCxcbiAgICAgICAgdGhpcy5jaGFydENhbnZhcyxcbiAgICAgICAgY29sb3IsXG4gICAgICAgIGNvbG9yXG4gICAgICApO1xuICAgICAgdGhpcy5fY2hhcnRDb25maWcuY2hhcnREYXRhLmRhdGFzZXRzID1cbiAgICAgICAgdGhpcy5fY2hhcnRDb25maWcuY2hhcnREYXRhLmRhdGFzZXRzLm1hcCgoZGF0YXNldCkgPT4ge1xuICAgICAgICAgIGlmIChkYXRhc2V0LmxhYmVsID09PSBkYXRhU2V0TGFiZWwpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmRhdGFzZXQsXG4gICAgICAgICAgICAgIGZpbGw6IHRydWUsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZ3JhZGllbnQsXG4gICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBjb2xvcixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGJvcmRlckNvbG9yV2l0aE9wYWNpdHkgPSBDaGFydEhlbHBlci5yZ2JUb1JnYmEoXG4gICAgICAgICAgICAgIGRhdGFzZXQuYm9yZGVyQ29sb3IsXG4gICAgICAgICAgICAgIDAuMlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmRhdGFzZXQsXG4gICAgICAgICAgICAgIGZpbGw6IGZhbHNlLFxuICAgICAgICAgICAgICBib3JkZXJDb2xvcjogYm9yZGVyQ29sb3JXaXRoT3BhY2l0eSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2VcbiAgICAgIHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YS5kYXRhc2V0cyA9IEpTT04ucGFyc2UoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMub3JpZ2luYWxDaGFydERhdGFzZXQpXG4gICAgICApO1xuXG4gICAgdGhpcy5jaGFydC51cGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2hhcnQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFydENvbnRleHQgPSB0aGlzLmNoYXJ0Q2FudmFzLm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICB0aGlzLnNldENoYXJ0T3B0aW9uc1Byb3BlcnRpZXMoKTtcbiAgICB0aGlzLnNldENoYXJ0RGF0YVByb3BlcnRpZXMoKTtcbiAgICB0aGlzLnNldENoYXJ0UGx1Z2luc1Byb3BlcnRpZXMoKTtcblxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jaGFydENvbnRleHQsIHtcbiAgICAgIHR5cGU6IHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0VHlwZSxcbiAgICAgIGRhdGE6IHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YSxcbiAgICAgIG9wdGlvbnM6IHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0T3B0aW9ucyxcbiAgICAgIHBsdWdpbnM6IHRoaXMucGx1Z2lucyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2hhcnRPcHRpb25zUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGFydENvbmZpZy5jaGFydE9wdGlvbnMgPSB7XG4gICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICBjbGlwOiBmYWxzZSxcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc2NhbGVzOiB7XG4gICAgICAgIHg6IHtcbiAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICBiZWdpbkF0WmVybzogdHJ1ZSxcbiAgICAgICAgICBvZmZzZXQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHk6IHtcbiAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICBiZWdpbkF0WmVybzogdHJ1ZSxcbiAgICAgICAgICBtaW46IDAsXG4gICAgICAgICAgbWF4OiAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDaGFydERhdGFQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgIGlmICgodGhpcy5fY2hhcnRDb25maWcuY2hhcnRUeXBlID0gQ2hhcnRUeXBlc1N0cmluZ0VudW0uTElORSkpIHtcbiAgICAgIHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YS5kYXRhc2V0cy5mb3JFYWNoKChkYXRhc2V0KSA9PiB7XG4gICAgICAgIGlmIChDaGFydFR5cGVHdWFyZC5pc0xpbmVEYXRhc2V0KGRhdGFzZXQpKSB7XG4gICAgICAgICAgZGF0YXNldC50ZW5zaW9uID0gZGF0YXNldC50ZW5zaW9uID8/IDAuNTtcbiAgICAgICAgICBkYXRhc2V0LmN1YmljSW50ZXJwb2xhdGlvbk1vZGUgPVxuICAgICAgICAgICAgZGF0YXNldC5jdWJpY0ludGVycG9sYXRpb25Nb2RlID8/XG4gICAgICAgICAgICBDdWJpY0ludGVycG9sYXRpb25TdHJpbmdFbnVtLk1PTk9UT05FO1xuXG4gICAgICAgICAgZGF0YXNldC5wb2ludEJvcmRlckNvbG9yID1cbiAgICAgICAgICAgIGRhdGFzZXQucG9pbnRCb3JkZXJDb2xvciA/PyBDaGFydENvbG9yc1N0cmluZ0VudW0uVFJBTlNQQVJFTlQ7XG4gICAgICAgICAgZGF0YXNldC5wb2ludEJhY2tncm91bmRDb2xvciA9XG4gICAgICAgICAgICBkYXRhc2V0LnBvaW50QmFja2dyb3VuZENvbG9yID8/IENoYXJ0Q29sb3JzU3RyaW5nRW51bS5UUkFOU1BBUkVOVDtcbiAgICAgICAgICBkYXRhc2V0LnBvaW50Qm9yZGVyV2lkdGggPSBkYXRhc2V0LnBvaW50Qm9yZGVyV2lkdGggPz8gMjtcbiAgICAgICAgICBkYXRhc2V0LnNwYW5HYXBzID0gZGF0YXNldC5zcGFuR2FwcyA/PyBmYWxzZTtcbiAgICAgICAgICBkYXRhc2V0LnNob3dMaW5lID0gZGF0YXNldC5zaG93TGluZSA/PyB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2V0TXVsdGlwbGVZQXhpcyh0aGlzLl9jaGFydENvbmZpZy5jaGFydERhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2hhcnRQbHVnaW5zUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICBsZXQgaG92ZXJlZEluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIHRoaXMucGx1Z2lucyA9IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6IENoYXJ0UGx1Z2luSWRzU3RyaW5nRW51bS5ISUdITElHSFRfU0VHTUVOVF9PTl9IT1ZFUixcbiAgICAgICAgYWZ0ZXJFdmVudDogKGNoYXJ0LCBldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5hdGl2ZUV2ZW50ID0gZXZlbnQuZXZlbnQubmF0aXZlIGFzIE1vdXNlRXZlbnQ7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC5ldmVudC50eXBlID09PSBDaGFydEV2ZW50VHlwZXNTdHJpbmdFbnVtLk1PVVNFX09VVCAmJlxuICAgICAgICAgICAgaG92ZXJlZEluZGV4ICE9PSBudWxsXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBob3ZlcmVkSW5kZXggPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5jaGFydC5kcmF3KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbW91c2VIb3Jpem9udGFsQ29vcmRpbmF0ZSA9IG5hdGl2ZUV2ZW50W0NoYXJ0RXZlbnRQcm9wZXJ0aWVzLlhdO1xuICAgICAgICAgIGNvbnN0IHhTY2FsZSA9IHRoaXMuY2hhcnQuc2NhbGVzW0NoYXJ0RXZlbnRQcm9wZXJ0aWVzLlhdIGFzXG4gICAgICAgICAgICB8IENhdGVnb3J5U2NhbGVcbiAgICAgICAgICAgIHwgTGluZWFyU2NhbGU7XG4gICAgICAgICAgY29uc3QgdGlja1Bvc2l0aW9ucyA9IENoYXJ0SGVscGVyLmNhbGN1bGF0ZVRpY2tQb3NpdGlvbnMoeFNjYWxlKTtcbiAgICAgICAgICBjb25zdCBuZXdIb3ZlcmVkSW5kZXggPSB0aWNrUG9zaXRpb25zLmZpbmRJbmRleChcbiAgICAgICAgICAgICh0aWNrUG9zKSA9PlxuICAgICAgICAgICAgICBtb3VzZUhvcml6b250YWxDb29yZGluYXRlID5cbiAgICAgICAgICAgICAgICB0aWNrUG9zIC0gKHRpY2tQb3NpdGlvbnNbMV0gLSB0aWNrUG9zaXRpb25zWzBdKSAvIDIgJiZcbiAgICAgICAgICAgICAgbW91c2VIb3Jpem9udGFsQ29vcmRpbmF0ZSA8PVxuICAgICAgICAgICAgICAgIHRpY2tQb3MgKyAodGlja1Bvc2l0aW9uc1sxXSAtIHRpY2tQb3NpdGlvbnNbMF0pIC8gMlxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAobmV3SG92ZXJlZEluZGV4ICE9PSBob3ZlcmVkSW5kZXgpIHtcbiAgICAgICAgICAgIGhvdmVyZWRJbmRleCA9IG5ld0hvdmVyZWRJbmRleCA9PT0gLTEgPyBudWxsIDogbmV3SG92ZXJlZEluZGV4O1xuICAgICAgICAgICAgdGhpcy5jaGFydC5kcmF3KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBiZWZvcmVEcmF3OiAoKSA9PiB7XG4gICAgICAgICAgaWYgKGhvdmVyZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICBjaGFydEFyZWEsXG4gICAgICAgICAgICAgIHNjYWxlczogeyB4OiB4U2NhbGUgfSxcbiAgICAgICAgICAgIH0gPSB0aGlzLmNoYXJ0O1xuICAgICAgICAgICAgQ2hhcnRIZWxwZXIuaGlnaGxpZ2h0U2VnbWVudChcbiAgICAgICAgICAgICAgdGhpcy5jaGFydENvbnRleHQsXG4gICAgICAgICAgICAgIHhTY2FsZSBhcyBDYXRlZ29yeVNjYWxlIHwgTGluZWFyU2NhbGUsXG4gICAgICAgICAgICAgIGNoYXJ0QXJlYSxcbiAgICAgICAgICAgICAgdGhpcy5fY2hhcnRDb25maWcuaGVpZ2h0LFxuICAgICAgICAgICAgICBob3ZlcmVkSW5kZXhcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6IENoYXJ0UGx1Z2luSWRzU3RyaW5nRW51bS5ISUdITElHSFRfUE9JTlRfT05fSE9WRVIsXG4gICAgICAgIGFmdGVyRHJhdzogKCkgPT4ge1xuICAgICAgICAgIGlmIChob3ZlcmVkSW5kZXggIT09IG51bGwpXG4gICAgICAgICAgICBDaGFydEhlbHBlci5oaWdobGlnaHRQb2ludChcbiAgICAgICAgICAgICAgdGhpcy5jaGFydENvbnRleHQsXG4gICAgICAgICAgICAgIHRoaXMuY2hhcnQsXG4gICAgICAgICAgICAgIGhvdmVyZWRJbmRleCxcbiAgICAgICAgICAgICAgdGhpcy5fY2hhcnRDb25maWcuY2hhcnREYXRhXG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRNdWx0aXBsZVlBeGlzKGNoYXJ0RGF0YTogSUNoYXJ0RGF0YTxJTGluZURhdGFzZXQ+KTogdm9pZCB7XG4gICAgY2hhcnREYXRhLmRhdGFzZXRzLmZvckVhY2goKGRhdGFzZXQsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGRhdGFzZXQudHlwZSA9PSBDaGFydFR5cGVzU3RyaW5nRW51bS5MSU5FIHx8XG4gICAgICAgIGRhdGFzZXQudHlwZSA9PSBDaGFydFR5cGVzU3RyaW5nRW51bS5CQVJcbiAgICAgICkge1xuICAgICAgICBjb25zdCB5QXhpc0lEID0gYHktYXhpcy0ke2luZGV4fWA7XG4gICAgICAgIGNoYXJ0RGF0YS5kYXRhc2V0c1tpbmRleF0gPSB7XG4gICAgICAgICAgLi4uZGF0YXNldCxcbiAgICAgICAgICB5QXhpc0lELFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBtaW5WYWx1ZSA9IENoYXJ0SGVscGVyLmNhbGN1bGF0ZU1pblZhbHVlKGRhdGFzZXQuZGF0YSk7XG4gICAgICAgIGNvbnN0IG1heFZhbHVlID0gQ2hhcnRIZWxwZXIuY2FsY3VsYXRlTWF4VmFsdWUoZGF0YXNldC5kYXRhKTtcbiAgICAgICAgY29uc3QgcGFkZGluZyA9IG1heFZhbHVlICogMC4wMztcbiAgICAgICAgY29uc3QgbWluVmFsdWVBanVzdGVkID0gcGFkZGluZyA9PSAwID8gbWluVmFsdWUgKyAwLjEgOiAwO1xuICAgICAgICBjb25zdCBtYXhWYWx1ZUFqdXN0ZWQgPSBtYXhWYWx1ZSArIHBhZGRpbmc7XG5cbiAgICAgICAgdGhpcy5fY2hhcnRDb25maWcuY2hhcnRPcHRpb25zLnNjYWxlcyA9IHtcbiAgICAgICAgICAuLi50aGlzLl9jaGFydENvbmZpZy5jaGFydE9wdGlvbnMuc2NhbGVzLFxuICAgICAgICAgIFt5QXhpc0lEXToge1xuICAgICAgICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgICAgICAgICBiZWdpbkF0WmVybzogdHJ1ZSxcbiAgICAgICAgICAgIG1pbjogbWluVmFsdWVBanVzdGVkLFxuICAgICAgICAgICAgbWF4OiBtYXhWYWx1ZUFqdXN0ZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQ2hhcnREYXRhQXZhaWxhYmxlOyBlbHNlIG5vRGF0YVRlbXBsYXRlXCI+XG4gIDxkaXZcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICBoZWlnaHQ6IF9jaGFydENvbmZpZy5oZWlnaHQgKyAncHgnLFxuICAgICAgd2lkdGg6IF9jaGFydENvbmZpZy53aWR0aCArICclJyxcbiAgICB9XCJcbiAgPlxuICAgIDxjYW52YXMgI2NoYXJ0Q2FudmFzPiA8L2NhbnZhcz5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjbm9EYXRhVGVtcGxhdGU+XG4gIDxkaXZcbiAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgaGVpZ2h0OiBfY2hhcnRDb25maWcuaGVpZ2h0ICsgJ3B4JyxcbiAgICAgIHdpZHRoOiBfY2hhcnRDb25maWcud2lkdGggKyAnJScsXG4gICAgfVwiXG4gID5cbiAgICA8c3ZnLWljb25cbiAgICAgIFtzcmNdPVwiX2NoYXJ0Q29uZmlnLm5vRGF0YUltYWdlXCJcbiAgICAgIGFsdD1cIk5vIGRhdGEgYXZhaWxhYmxlXCJcbiAgICAgIGNsYXNzPVwibm8tZGF0YS1zdmdcIlxuICAgID48L3N2Zy1pY29uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY2hhcnQvY2EtY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY2hhcnQvY2EtY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhELE9BQU87QUFDUCxPQUFPLEVBRUwsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUV4Qiw0QkFBNEIsRUFDNUIseUJBQXlCLEdBQzFCLE1BQU0sU0FBUyxDQUFDO0FBRWpCLFNBQVM7QUFDVCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsUUFBUTtBQUNSLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtoRCxRQUFRO0FBQ1IsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7O0FBU3BELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsSUFBYSxXQUFXLENBQUMsS0FBMkI7UUFDbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFD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O3dCQUNkLFdBQVcsRUFBRSxJQUFJO3dCQUNqQixHQUFHLEVBQUUsZUFBZTt3QkFDcEIsR0FBRyxFQUFFLGVBQWU7cUJBQ3JCO2lCQUNGLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0EzUFUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsdVJDaEQ3Qixnb0JBeUJBLDhHRHFCWSxZQUFZLHVOQUFFLG9CQUFvQjs7NEZBRWpDLGdCQUFnQjtrQkFQNUIsU0FBUzsrQkFDRSxjQUFjLGNBR1osSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDOzBFQUduQixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBRVgsV0FBVztzQkFBdkIsS0FBSztnQkFNTyxnQkFBZ0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENhdGVnb3J5U2NhbGUsXG4gIENoYXJ0LFxuICBDaGFydFR5cGUsXG4gIExpbmVhclNjYWxlLFxuICBQbHVnaW4sXG59IGZyb20gJ2NoYXJ0LmpzL2F1dG8nO1xuaW1wb3J0IHsgQW55T2JqZWN0IH0gZnJvbSAnY2hhcnQuanMvZGlzdC90eXBlcy9iYXNpYyc7XG5pbXBvcnQgeyBBbmd1bGFyU3ZnSWNvbk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuXG4vL0VudW1zXG5pbXBvcnQge1xuICBDaGFydENvbG9yc1N0cmluZ0VudW0sXG4gIENoYXJ0RXZlbnRQcm9wZXJ0aWVzLFxuICBDaGFydFBsdWdpbklkc1N0cmluZ0VudW0sXG4gIENoYXJ0VHlwZXNTdHJpbmdFbnVtLFxuICBDdWJpY0ludGVycG9sYXRpb25TdHJpbmdFbnVtLFxuICBDaGFydEV2ZW50VHlwZXNTdHJpbmdFbnVtLFxufSBmcm9tICcuL2VudW1zJztcblxuLy9IZWxwZXJzXG5pbXBvcnQgeyBDaGFydEhlbHBlciB9IGZyb20gJy4vdXRpbHMvaGVscGVycyc7XG5cbi8vR3VhcmRzXG5pbXBvcnQgeyBDaGFydFR5cGVHdWFyZCB9IGZyb20gJy4vdXRpbHMvZ3VhcmRzJztcblxuLy9Nb2RlbHNcbmltcG9ydCB7IElDaGFydERhdGEsIElMaW5lRGF0YXNldCwgSUNoYXJ0Q29uZmlndWFyYXRpb24gfSBmcm9tICcuL21vZGVscyc7XG5cbi8vQ29uZmlnXG5pbXBvcnQgeyBDYUJhc2VDaGFydERhdGFzZXRDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jYS1jaGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhLWNoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFuZ3VsYXJTdmdJY29uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCdjaGFydENhbnZhcycpIGNoYXJ0Q2FudmFzITogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBzZXQgY2hhcnRDb25maWcodmFsdWU6IElDaGFydENvbmZpZ3VhcmF0aW9uKSB7XG4gICAgdGhpcy5fY2hhcnRDb25maWcgPSB2YWx1ZTtcbiAgICB0aGlzLmlzQ2hhcnREYXRhQXZhaWxhYmxlID0gdGhpcy5fY2hhcnRDb25maWcuY2hhcnREYXRhLmRhdGFzZXRzLmxlbmd0aCA+IDA7XG4gIH1cblxuICAvL2ZvciB0ZXN0aW5nIGhvdmVyIHN0YXRlIG9uIGRhdGFzZXRcbiAgQElucHV0KCkgc2V0IGlzRGF0YXNldEhvdmVyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0RhdGFzZXRIb3ZlcmVkID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcbiAgICAgIHRoaXMudXBkYXRlRGF0YXNldEJhY2tncm91bmRPbkhvdmVyKFxuICAgICAgICAnU2FsZXMnLFxuICAgICAgICAnIzY2OTJGMScsXG4gICAgICAgIHRoaXMuX2lzRGF0YXNldEhvdmVyZWRcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGFydCE6IENoYXJ0O1xuICBwcml2YXRlIGNoYXJ0Q29udGV4dCE6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcbiAgcHJpdmF0ZSBwbHVnaW5zPzogUGx1Z2luPENoYXJ0VHlwZSwgQW55T2JqZWN0PltdO1xuICBwcml2YXRlIF9pc0RhdGFzZXRIb3ZlcmVkITogYm9vbGVhbjtcbiAgcHJpdmF0ZSBvcmlnaW5hbENoYXJ0RGF0YXNldCA9XG4gICAgQ2FCYXNlQ2hhcnREYXRhc2V0Q29uZmlnLmdldEJhc2VDaGFydERhdGFzZXRDb25maWcoKTtcblxuICBwdWJsaWMgX2NoYXJ0Q29uZmlnITogSUNoYXJ0Q29uZmlndWFyYXRpb247XG4gIHB1YmxpYyBpc0NoYXJ0RGF0YUF2YWlsYWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5pc0NoYXJ0RGF0YUF2YWlsYWJsZSAmJlxuICAgICAgIWNoYW5nZXNbJ2NoYXJ0Q29uZmlnJ10uZmlyc3RDaGFuZ2VcbiAgICApXG4gICAgICB0aGlzLnVwZGF0ZUNoYXJ0KCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNDaGFydERhdGFBdmFpbGFibGUpXG4gICAgICB0aGlzLmNyZWF0ZUNoYXJ0KCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRGF0YXNldEJhY2tncm91bmRPbkhvdmVyKFxuICAgIGRhdGFTZXRMYWJlbDogc3RyaW5nLFxuICAgIGNvbG9yOiBzdHJpbmcsXG4gICAgaXNEYXRhc2V0SG92ZXJlZDogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICBpZiAoaXNEYXRhc2V0SG92ZXJlZCkge1xuICAgICAgdGhpcy5vcmlnaW5hbENoYXJ0RGF0YXNldCA9IEpTT04ucGFyc2UoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YS5kYXRhc2V0cylcbiAgICAgICk7XG4gICAgICBjb25zdCBncmFkaWVudCA9IENoYXJ0SGVscGVyLmNyZWF0ZUdyYWRpZW50KFxuICAgICAgICB0aGlzLmNoYXJ0Q29udGV4dCxcbiAgICAgICAgdGhpcy5jaGFydENhbnZhcyxcbiAgICAgICAgY29sb3IsXG4gICAgICAgIGNvbG9yXG4gICAgICApO1xuICAgICAgdGhpcy5fY2hhcnRDb25maWcuY2hhcnREYXRhLmRhdGFzZXRzID1cbiAgICAgICAgdGhpcy5fY2hhcnRDb25maWcuY2hhcnREYXRhLmRhdGFzZXRzLm1hcCgoZGF0YXNldCkgPT4ge1xuICAgICAgICAgIGlmIChkYXRhc2V0LmxhYmVsID09PSBkYXRhU2V0TGFiZWwpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmRhdGFzZXQsXG4gICAgICAgICAgICAgIGZpbGw6IHRydWUsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZ3JhZGllbnQsXG4gICAgICAgICAgICAgIGJvcmRlckNvbG9yOiBjb2xvcixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGJvcmRlckNvbG9yV2l0aE9wYWNpdHkgPSBDaGFydEhlbHBlci5yZ2JUb1JnYmEoXG4gICAgICAgICAgICAgIGRhdGFzZXQuYm9yZGVyQ29sb3IsXG4gICAgICAgICAgICAgIDAuMlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmRhdGFzZXQsXG4gICAgICAgICAgICAgIGZpbGw6IGZhbHNlLFxuICAgICAgICAgICAgICBib3JkZXJDb2xvcjogYm9yZGVyQ29sb3JXaXRoT3BhY2l0eSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2VcbiAgICAgIHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YS5kYXRhc2V0cyA9IEpTT04ucGFyc2UoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMub3JpZ2luYWxDaGFydERhdGFzZXQpXG4gICAgICApO1xuXG4gICAgdGhpcy5jaGFydC51cGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2hhcnQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFydENvbnRleHQgPSB0aGlzLmNoYXJ0Q2FudmFzLm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICB0aGlzLnNldENoYXJ0T3B0aW9uc1Byb3BlcnRpZXMoKTtcbiAgICB0aGlzLnNldENoYXJ0RGF0YVByb3BlcnRpZXMoKTtcbiAgICB0aGlzLnNldENoYXJ0UGx1Z2luc1Byb3BlcnRpZXMoKTtcblxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jaGFydENvbnRleHQsIHtcbiAgICAgIHR5cGU6IHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0VHlwZSxcbiAgICAgIGRhdGE6IHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YSxcbiAgICAgIG9wdGlvbnM6IHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0T3B0aW9ucyxcbiAgICAgIHBsdWdpbnM6IHRoaXMucGx1Z2lucyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2hhcnQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGFydD8uZGVzdHJveSgpO1xuICAgIHRoaXMuY3JlYXRlQ2hhcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2hhcnRPcHRpb25zUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGFydENvbmZpZy5jaGFydE9wdGlvbnMgPSB7XG4gICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICBjbGlwOiBmYWxzZSxcbiAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgZGlzcGxheTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc2NhbGVzOiB7XG4gICAgICAgIHg6IHtcbiAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICBiZWdpbkF0WmVybzogdHJ1ZSxcbiAgICAgICAgICBvZmZzZXQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHk6IHtcbiAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICBiZWdpbkF0WmVybzogdHJ1ZSxcbiAgICAgICAgICBtaW46IDAsXG4gICAgICAgICAgbWF4OiAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDaGFydERhdGFQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgIGlmICgodGhpcy5fY2hhcnRDb25maWcuY2hhcnRUeXBlID0gQ2hhcnRUeXBlc1N0cmluZ0VudW0uTElORSkpIHtcbiAgICAgIHRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0RGF0YS5kYXRhc2V0cy5mb3JFYWNoKChkYXRhc2V0KSA9PiB7XG4gICAgICAgIGlmIChDaGFydFR5cGVHdWFyZC5pc0xpbmVEYXRhc2V0KGRhdGFzZXQpKSB7XG4gICAgICAgICAgZGF0YXNldC50ZW5zaW9uID0gZGF0YXNldC50ZW5zaW9uID8/IDAuNTtcbiAgICAgICAgICBkYXRhc2V0LmN1YmljSW50ZXJwb2xhdGlvbk1vZGUgPVxuICAgICAgICAgICAgZGF0YXNldC5jdWJpY0ludGVycG9sYXRpb25Nb2RlID8/XG4gICAgICAgICAgICBDdWJpY0ludGVycG9sYXRpb25TdHJpbmdFbnVtLk1PTk9UT05FO1xuXG4gICAgICAgICAgZGF0YXNldC5wb2ludEJvcmRlckNvbG9yID1cbiAgICAgICAgICAgIGRhdGFzZXQucG9pbnRCb3JkZXJDb2xvciA/PyBDaGFydENvbG9yc1N0cmluZ0VudW0uVFJBTlNQQVJFTlQ7XG4gICAgICAgICAgZGF0YXNldC5wb2ludEJhY2tncm91bmRDb2xvciA9XG4gICAgICAgICAgICBkYXRhc2V0LnBvaW50QmFja2dyb3VuZENvbG9yID8/IENoYXJ0Q29sb3JzU3RyaW5nRW51bS5UUkFOU1BBUkVOVDtcbiAgICAgICAgICBkYXRhc2V0LnBvaW50Qm9yZGVyV2lkdGggPSBkYXRhc2V0LnBvaW50Qm9yZGVyV2lkdGggPz8gMjtcbiAgICAgICAgICBkYXRhc2V0LnNwYW5HYXBzID0gZGF0YXNldC5zcGFuR2FwcyA/PyBmYWxzZTtcbiAgICAgICAgICBkYXRhc2V0LnNob3dMaW5lID0gZGF0YXNldC5zaG93TGluZSA/PyB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc2V0TXVsdGlwbGVZQXhpcyh0aGlzLl9jaGFydENvbmZpZy5jaGFydERhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2hhcnRQbHVnaW5zUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICBsZXQgaG92ZXJlZEluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIHRoaXMucGx1Z2lucyA9IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6IENoYXJ0UGx1Z2luSWRzU3RyaW5nRW51bS5ISUdITElHSFRfU0VHTUVOVF9PTl9IT1ZFUixcbiAgICAgICAgYWZ0ZXJFdmVudDogKGNoYXJ0LCBldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5hdGl2ZUV2ZW50ID0gZXZlbnQuZXZlbnQubmF0aXZlIGFzIE1vdXNlRXZlbnQ7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC5ldmVudC50eXBlID09PSBDaGFydEV2ZW50VHlwZXNTdHJpbmdFbnVtLk1PVVNFX09VVCAmJlxuICAgICAgICAgICAgaG92ZXJlZEluZGV4ICE9PSBudWxsXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBob3ZlcmVkSW5kZXggPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5jaGFydC5kcmF3KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbW91c2VIb3Jpem9udGFsQ29vcmRpbmF0ZSA9IG5hdGl2ZUV2ZW50W0NoYXJ0RXZlbnRQcm9wZXJ0aWVzLlhdO1xuICAgICAgICAgIGNvbnN0IHhTY2FsZSA9IHRoaXMuY2hhcnQuc2NhbGVzW0NoYXJ0RXZlbnRQcm9wZXJ0aWVzLlhdIGFzXG4gICAgICAgICAgICB8IENhdGVnb3J5U2NhbGVcbiAgICAgICAgICAgIHwgTGluZWFyU2NhbGU7XG4gICAgICAgICAgY29uc3QgdGlja1Bvc2l0aW9ucyA9IENoYXJ0SGVscGVyLmNhbGN1bGF0ZVRpY2tQb3NpdGlvbnMoeFNjYWxlKTtcbiAgICAgICAgICBjb25zdCBuZXdIb3ZlcmVkSW5kZXggPSB0aWNrUG9zaXRpb25zLmZpbmRJbmRleChcbiAgICAgICAgICAgICh0aWNrUG9zKSA9PlxuICAgICAgICAgICAgICBtb3VzZUhvcml6b250YWxDb29yZGluYXRlID5cbiAgICAgICAgICAgICAgdGlja1BvcyAtICh0aWNrUG9zaXRpb25zWzFdIC0gdGlja1Bvc2l0aW9uc1swXSkgLyAyICYmXG4gICAgICAgICAgICAgIG1vdXNlSG9yaXpvbnRhbENvb3JkaW5hdGUgPD1cbiAgICAgICAgICAgICAgdGlja1BvcyArICh0aWNrUG9zaXRpb25zWzFdIC0gdGlja1Bvc2l0aW9uc1swXSkgLyAyXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChuZXdIb3ZlcmVkSW5kZXggIT09IGhvdmVyZWRJbmRleCkge1xuICAgICAgICAgICAgaG92ZXJlZEluZGV4ID0gbmV3SG92ZXJlZEluZGV4ID09PSAtMSA/IG51bGwgOiBuZXdIb3ZlcmVkSW5kZXg7XG4gICAgICAgICAgICB0aGlzLmNoYXJ0LmRyYXcoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGJlZm9yZURyYXc6ICgpID0+IHtcbiAgICAgICAgICBpZiAoaG92ZXJlZEluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgIGNoYXJ0QXJlYSxcbiAgICAgICAgICAgICAgc2NhbGVzOiB7IHg6IHhTY2FsZSB9LFxuICAgICAgICAgICAgfSA9IHRoaXMuY2hhcnQ7XG4gICAgICAgICAgICBDaGFydEhlbHBlci5oaWdobGlnaHRTZWdtZW50KFxuICAgICAgICAgICAgICB0aGlzLmNoYXJ0Q29udGV4dCxcbiAgICAgICAgICAgICAgeFNjYWxlIGFzIENhdGVnb3J5U2NhbGUgfCBMaW5lYXJTY2FsZSxcbiAgICAgICAgICAgICAgY2hhcnRBcmVhLFxuICAgICAgICAgICAgICB0aGlzLl9jaGFydENvbmZpZy5oZWlnaHQsXG4gICAgICAgICAgICAgIGhvdmVyZWRJbmRleFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogQ2hhcnRQbHVnaW5JZHNTdHJpbmdFbnVtLkhJR0hMSUdIVF9QT0lOVF9PTl9IT1ZFUixcbiAgICAgICAgYWZ0ZXJEcmF3OiAoKSA9PiB7XG4gICAgICAgICAgaWYgKGhvdmVyZWRJbmRleCAhPT0gbnVsbClcbiAgICAgICAgICAgIENoYXJ0SGVscGVyLmhpZ2hsaWdodFBvaW50KFxuICAgICAgICAgICAgICB0aGlzLmNoYXJ0Q29udGV4dCxcbiAgICAgICAgICAgICAgdGhpcy5jaGFydCxcbiAgICAgICAgICAgICAgaG92ZXJlZEluZGV4LFxuICAgICAgICAgICAgICB0aGlzLl9jaGFydENvbmZpZy5jaGFydERhdGFcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIHNldE11bHRpcGxlWUF4aXMoY2hhcnREYXRhOiBJQ2hhcnREYXRhPElMaW5lRGF0YXNldD4pOiB2b2lkIHtcbiAgICBjaGFydERhdGEuZGF0YXNldHMuZm9yRWFjaCgoZGF0YXNldCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgZGF0YXNldC50eXBlID09IENoYXJ0VHlwZXNTdHJpbmdFbnVtLkxJTkUgfHxcbiAgICAgICAgZGF0YXNldC50eXBlID09IENoYXJ0VHlwZXNTdHJpbmdFbnVtLkJBUlxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHlBeGlzSUQgPSBgeS1heGlzLSR7aW5kZXh9YDtcbiAgICAgICAgY2hhcnREYXRhLmRhdGFzZXRzW2luZGV4XSA9IHtcbiAgICAgICAgICAuLi5kYXRhc2V0LFxuICAgICAgICAgIHlBeGlzSUQsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG1pblZhbHVlID0gQ2hhcnRIZWxwZXIuY2FsY3VsYXRlTWluVmFsdWUoZGF0YXNldC5kYXRhKTtcbiAgICAgICAgY29uc3QgbWF4VmFsdWUgPSBDaGFydEhlbHBlci5jYWxjdWxhdGVNYXhWYWx1ZShkYXRhc2V0LmRhdGEpO1xuICAgICAgICBjb25zdCBwYWRkaW5nID0gbWF4VmFsdWUgKiAwLjAzO1xuICAgICAgICBjb25zdCBtaW5WYWx1ZUFqdXN0ZWQgPSBwYWRkaW5nID09IDAgPyBtaW5WYWx1ZSArIDAuMSA6IDA7XG4gICAgICAgIGNvbnN0IG1heFZhbHVlQWp1c3RlZCA9IG1heFZhbHVlICsgcGFkZGluZztcblxuICAgICAgICB0aGlzLl9jaGFydENvbmZpZy5jaGFydE9wdGlvbnMuc2NhbGVzID0ge1xuICAgICAgICAgIC4uLnRoaXMuX2NoYXJ0Q29uZmlnLmNoYXJ0T3B0aW9ucy5zY2FsZXMsXG4gICAgICAgICAgW3lBeGlzSURdOiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIGJlZ2luQXRaZXJvOiB0cnVlLFxuICAgICAgICAgICAgbWluOiBtaW5WYWx1ZUFqdXN0ZWQsXG4gICAgICAgICAgICBtYXg6IG1heFZhbHVlQWp1c3RlZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDaGFydERhdGFBdmFpbGFibGU7IGVsc2Ugbm9EYXRhVGVtcGxhdGVcIj5cbiAgPGRpdlxuICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgIGhlaWdodDogX2NoYXJ0Q29uZmlnLmhlaWdodCArICdweCcsXG4gICAgICB3aWR0aDogX2NoYXJ0Q29uZmlnLndpZHRoICsgJyUnLFxuICAgIH1cIlxuICA+XG4gICAgPGNhbnZhcyAjY2hhcnRDYW52YXM+IDwvY2FudmFzPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNub0RhdGFUZW1wbGF0ZT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICBoZWlnaHQ6IF9jaGFydENvbmZpZy5oZWlnaHQgKyAncHgnLFxuICAgICAgd2lkdGg6IF9jaGFydENvbmZpZy53aWR0aCArICclJyxcbiAgICB9XCJcbiAgPlxuICAgIDxzdmctaWNvblxuICAgICAgW3NyY109XCJfY2hhcnRDb25maWcubm9EYXRhSW1hZ2VcIlxuICAgICAgYWx0PVwiTm8gZGF0YSBhdmFpbGFibGVcIlxuICAgICAgY2xhc3M9XCJuby1kYXRhLXN2Z1wiXG4gICAgPjwvc3ZnLWljb24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|