@bizdoc/core 1.9.13 → 1.9.14

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.
Files changed (43) hide show
  1. package/assets/themes/brown.min.css +1 -1
  2. package/assets/themes/dark.min.css +1 -1
  3. package/assets/themes/deep-purple-light-blue.min.css +3 -3
  4. package/assets/themes/default.min.css +1 -1
  5. package/assets/themes/green.min.css +1 -1
  6. package/assets/themes/indigo.min.css +1 -1
  7. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +3 -2
  8. package/esm2020/lib/browse/browse-items.component.mjs +7 -3
  9. package/esm2020/lib/browse/browse.pane.component.mjs +3 -1
  10. package/esm2020/lib/core/translations.mjs +4 -4
  11. package/esm2020/lib/cube/accum/accum.component.mjs +7 -3
  12. package/esm2020/lib/cube/chart/chart.component.mjs +12 -4
  13. package/esm2020/lib/cube/cube-view.component.mjs +10 -15
  14. package/esm2020/lib/cube/declarations.mjs +1 -1
  15. package/esm2020/lib/cube/grid/grid.component.mjs +4 -5
  16. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +12 -12
  17. package/esm2020/lib/cube/parallel/item.mjs +2 -1
  18. package/esm2020/lib/cube/pivot/pivot.component.mjs +5 -2
  19. package/esm2020/lib/cube/sum/sum.component.mjs +2 -2
  20. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +2 -1
  21. package/esm2020/lib/home/search.service.mjs +8 -5
  22. package/esm2020/lib/modules/chart.module.mjs +6 -6
  23. package/esm2020/lib/modules/gantt.module.mjs +17 -0
  24. package/esm2020/lib/routes.mobile.mjs +1 -1
  25. package/esm2020/lib/shared.module.mjs +9 -10
  26. package/esm2020/lib/views/cube/chart.component.mjs +1 -1
  27. package/fesm2015/bizdoc-core.mjs +95 -60
  28. package/fesm2015/bizdoc-core.mjs.map +1 -1
  29. package/fesm2020/bizdoc-core.mjs +95 -60
  30. package/fesm2020/bizdoc-core.mjs.map +1 -1
  31. package/lib/browse/browse-items.component.d.ts +1 -1
  32. package/lib/cube/accum/accum.component.d.ts +1 -0
  33. package/lib/cube/chart/chart.component.d.ts +4 -2
  34. package/lib/cube/cube-view.component.d.ts +4 -5
  35. package/lib/cube/declarations.d.ts +1 -0
  36. package/lib/cube/grid/grid.component.d.ts +2 -3
  37. package/lib/cube/grid/spreadsheet.component.d.ts +1 -0
  38. package/lib/cube/parallel/item.d.ts +2 -2
  39. package/lib/cube/sum/sum.component.d.ts +1 -1
  40. package/lib/modules/chart.module.d.ts +1 -1
  41. package/lib/modules/gantt.module.d.ts +7 -0
  42. package/lib/shared.module.d.ts +9 -10
  43. package/package.json +1 -2
@@ -55,6 +55,8 @@ export class CubeChartComponent {
55
55
  };
56
56
  this.tooltip = {
57
57
  enable: true,
58
+ enableAnimation: false,
59
+ border: { width: 0 },
58
60
  textStyle: {
59
61
  fontFamily: FONT_FAMILY
60
62
  }
@@ -101,15 +103,19 @@ export class CubeChartComponent {
101
103
  if (this.chartType === 'Line' || this.chartType === 'Spline')
102
104
  this.crosshair.enable = true;
103
105
  this.primaryYAxis.labelFormat = this.currencyCode ? 'c0' : 'n0';
106
+ this.execute();
104
107
  }
105
108
  /**
106
109
  *
107
110
  */
108
111
  ngOnChanges(changes) {
109
- if (changes['filters'])
112
+ if (changes['filters'] && !changes['filters'].firstChange)
110
113
  this.execute();
111
114
  else if (changes['height'])
112
- this.chart && this.chart.chartResize();
115
+ this.resize();
116
+ }
117
+ resize() {
118
+ this.chart && this.chart.chartResize();
113
119
  }
114
120
  execute() {
115
121
  this.loadingChange.emit(true);
@@ -221,7 +227,7 @@ export class CubeChartComponent {
221
227
  }
222
228
  CubeChartComponent.nextId = 0;
223
229
  CubeChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: CubeChartComponent, deps: [{ token: i1.CubeService }, { token: i2.PromptService }, { token: i3.TranslateService }, { token: i4.SessionService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
224
- CubeChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: CubeChartComponent, selector: "bizdoc-cube-chart", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", series: "series", indices: "indices", filters: "filters", chartType: "chartType", indexChartType: "indexChartType", scope: "scope", currencyCode: "currencyCode", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { attributes: { "dir": "ltr" }, properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
230
+ CubeChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: CubeChartComponent, selector: "bizdoc-cube-chart", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", series: "series", indices: "indices", filters: "filters", yAxis: "yAxis", chartType: "chartType", indexChartType: "indexChartType", scope: "scope", currencyCode: "currencyCode", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { attributes: { "dir": "ltr" }, properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
225
231
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: CubeChartComponent, decorators: [{
226
232
  type: Component,
227
233
  args: [{
@@ -246,6 +252,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
246
252
  type: Input
247
253
  }], filters: [{
248
254
  type: Input
255
+ }], yAxis: [{
256
+ type: Input
249
257
  }], chartType: [{
250
258
  type: Input
251
259
  }], indexChartType: [{
@@ -263,4 +271,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
263
271
  }], id: [{
264
272
  type: HostBinding
265
273
  }] } });
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFFLEtBQUssRUFBZSxNQUFNLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQTBCLE1BQU0sd0JBQXdCLENBQUM7QUFHbFosT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBa0MsTUFBTSxpQkFBaUIsQ0FBQztBQU1wRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUUvQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUs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QU87c0JBRGpCLEtBQUs7Z0JBTU4sT0FBTztzQkFETixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVOLFlBQVk7c0JBRFgsS0FBSztnQkFFYSxPQUFPO3NCQUF6QixNQUFNO2dCQUNFLE9BQU87c0JBQWYsS0FBSztnQkFDYSxhQUFhO3NCQUEvQixNQUFNO2dCQUdFLEVBQUU7c0JBRFYsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFydCwgU2VyaWVzTW9kZWwsIEV4cG9ydCwgQmFyU2VyaWVzLCBTdGFja2luZ1N0ZXBBcmVhU2VyaWVzLCBBcmVhU2VyaWVzLCBCdWJibGVTZXJpZXMsIENvbHVtblNlcmllcywgTGluZVNlcmllcywgTGVnZW5kLCBQb2xhclNlcmllcywgUmFkYXJTZXJpZXMsIFNwbGluZVNlcmllcywgU3BsaW5lQXJlYVNlcmllcywgU2NhdHRlclNlcmllcywgU3RhY2tpbmdMaW5lU2VyaWVzLCBTdGFja2luZ0FyZWFTZXJpZXMsIFN0YWNraW5nQ29sdW1uU2VyaWVzLCBTdGFja2luZ0JhclNlcmllcywgU3RlcEFyZWFTZXJpZXMsIFN0ZXBMaW5lU2VyaWVzLCBUb29sdGlwLCBEYXRlVGltZSwgQ2F0ZWdvcnksIENyb3NzaGFpclNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItY2hhcnRzJztcclxuaW1wb3J0IHsgQXhpc01vZGVsLCBDaGFydEFyZWFNb2RlbCwgVG9vbHRpcFNldHRpbmdzTW9kZWwsIExlZ2VuZFNldHRpbmdzTW9kZWwsIElQb2ludEV2ZW50QXJncywgSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1jaGFydHMnO1xyXG5pbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEludGVybmF0aW9uYWxpemF0aW9uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWJhc2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcclxuaW1wb3J0IHsgRk9OVF9GQU1JTFkgfSBmcm9tICcuLi8uLi9jb3JlL2NvbG9ycyc7XHJcbmltcG9ydCB7IEFYRVNfQ09ERV9ESVZJREVSLCBDdWJlU2VydmljZSwgU2NvcGVUeXBlLCBTZXJpZXMgfSBmcm9tICcuLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBeGlzQ2xpY2tFdmVudCwgQ3ViZVZpZXdlckNvbXBvbmVudCB9IGZyb20gXCIuLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgQXhlc01hcCwgQ2hhcnRUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICcuLi8uLi9jb3JlL2Z1bmN0aW9ucyc7XHJcblxyXG5DaGFydC5JbmplY3QoQ2F0ZWdvcnksIERhdGVUaW1lLCBUb29sdGlwLCBFeHBvcnQsIEJhclNlcmllcywgQXJlYVNlcmllcywgU3RhY2tpbmdTdGVwQXJlYVNlcmllcywgQnViYmxlU2VyaWVzLCBDb2x1bW5TZXJpZXMsIExpbmVTZXJpZXMsIExlZ2VuZCwgUG9sYXJTZXJpZXMsIFJhZGFyU2VyaWVzLCBTcGxpbmVTZXJpZXMsIFNwbGluZUFyZWFTZXJpZXMsIFNjYXR0ZXJTZXJpZXMsIFN0YWNraW5nTGluZVNlcmllcywgU3RhY2tpbmdBcmVhU2VyaWVzLCBTdGFja2luZ0NvbHVtblNlcmllcywgU3RhY2tpbmdCYXJTZXJpZXMsIFN0ZXBBcmVhU2VyaWVzLCBTdGVwTGluZVNlcmllcyk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLWNoYXJ0JyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgaG9zdDoge1xyXG4gICAgZGlyOiAnbHRyJyxcclxuICAgIGNsYXNzOiAnY3ViZS12aWV3J1xyXG4gIH1cclxufSlcclxuLyoqIGNoYXJ0IGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBDdWJlQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDdWJlVmlld2VyQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIHdpZHRoOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ6IHN0cmluZyB8IG51bWJlcjtcclxuICBASW5wdXQoKVxyXG4gIGN1YmUhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfeEF4aXM6IHN0cmluZ1tdO1xyXG4gIHB1YmxpYyBnZXQgeEF4aXMoKTogc3RyaW5nW10gfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3hBeGlzO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgeEF4aXModmFsdWU6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICB0aGlzLl94QXhpcyA9IGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xyXG4gIH1cclxuICBwcml2YXRlIF9zZXJpZXM/OiBzdHJpbmdbXTtcclxuICBwdWJsaWMgZ2V0IHNlcmllcygpOiBzdHJpbmdbXSB8IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VyaWVzO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgc2VyaWVzKHZhbHVlOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlKSB0aGlzLl9zZXJpZXMgPSBpc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcclxuICAgIGVsc2UgdGhpcy5fc2VyaWVzID0gbnVsbDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaW5kaWNlcz86IHN0cmluZ1tdO1xyXG4gIHB1YmxpYyBnZXQgaW5kaWNlcygpOiBzdHJpbmdbXSB8IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5faW5kaWNlcztcclxuICB9XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGluZGljZXModmFsdWU6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICBpZih2YWx1ZSkgdGhpcy5faW5kaWNlcyA9IGlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xyXG4gICAgZWxzZSB0aGlzLl9pbmRpY2VzID0gbnVsbDtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICBASW5wdXQoKVxyXG4gIGNoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxuICBASW5wdXQoKVxyXG4gIGluZGV4Q2hhcnRUeXBlPzogQ2hhcnRUeXBlO1xyXG4gIEBJbnB1dCgpIHNjb3BlOiBTY29wZVR5cGU7XHJcbiAgQElucHV0KClcclxuICBjdXJyZW5jeUNvZGU6IHN0cmluZztcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgZXhwbG9yZTogRXZlbnRFbWl0dGVyPEF4aXNDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBsb2FkaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIEBIb3N0QmluZGluZygpXHJcbiAgcmVhZG9ubHkgaWQgPSBgY3ViZS1jaGFydC0ke0N1YmVDaGFydENvbXBvbmVudC5uZXh0SWQrK31gO1xyXG4gIGNoYXJ0OiBDaGFydDtcclxuICBwYWxldHRlcyA9IHRoaXMuX3Nlc3Npb24uYWNjZW50UGFsZXR0ZTtcclxuICByZWFkb25seSBlbmFibGVSdGwgPSB0aGlzLl9zZXNzaW9uLmludmVyc2U7XHJcbiAgcmVhZG9ubHkgbGVnZW5kU2V0dGluZ3M6IExlZ2VuZFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBpc0ludmVyc2VkOiB0aGlzLmVuYWJsZVJ0bCxcclxuICAgIG1hcmdpbjoge1xyXG4gICAgICB0b3A6IDVcclxuICAgIH0sXHJcbiAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH1cclxuICB9O1xyXG4gIHJlYWRvbmx5IHByaW1hcnlYQXhpczogQXhpc01vZGVsID0ge1xyXG4gICAgdmFsdWVUeXBlOiAnQ2F0ZWdvcnknLFxyXG4gICAgbGFiZWxTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgcHJpbWFyeVlBeGlzOiBBeGlzTW9kZWwgPSB7XHJcbiAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfTtcclxuICByZWFkb25seSBjaGFydEFyZWE6IENoYXJ0QXJlYU1vZGVsID0ge1xyXG4gICAgYm9yZGVyOiB7XHJcbiAgICAgIHdpZHRoOiAwXHJcbiAgICB9LFxyXG4gICAgb3BhY2l0eTogMFxyXG4gIH07XHJcbiAgcmVhZG9ubHkgdG9vbHRpcDogVG9vbHRpcFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBlbmFibGU6IHRydWUsXHJcbiAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH1cclxuICB9O1xyXG4gIHJlYWRvbmx5IGNyb3NzaGFpcjogQ3Jvc3NoYWlyU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGVuYWJsZTogZmFsc2UsXHJcbiAgICBsaW5lVHlwZTogJ1ZlcnRpY2FsJ1xyXG4gIH07XHJcbiAgdGhlbWU6ICdNYXRlcmlhbCcgfCAnTWF0ZXJpYWxEYXJrJyA9IHRoaXMuX3Nlc3Npb24udGhlbWUuZGFyayA/ICdNYXRlcmlhbERhcmsnIDogJ01hdGVyaWFsJztcclxuICBwcml2YXRlIF9kYXRhOiBTZXJpZXNbXTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnRsOiBJbnRlcm5hdGlvbmFsaXphdGlvbiA9IG5ldyBJbnRlcm5hdGlvbmFsaXphdGlvbigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIC8qKiBjaGFydCBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSwgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSwgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgX3Nlc3Npb24udGhlbWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgdGhpcy50aGVtZSA9IHQuZGFyayA/ICdNYXRlcmlhbERhcmsnIDogJ01hdGVyaWFsJztcclxuICAgICAgICB0aGlzLnBhbGV0dGVzID0gX3Nlc3Npb24uYWNjZW50UGFsZXR0ZTtcclxuICAgICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmNoYXJ0VHlwZSA9PT0gJ0xpbmUnIHx8IHRoaXMuY2hhcnRUeXBlID09PSAnU3BsaW5lJylcclxuICAgICAgdGhpcy5jcm9zc2hhaXIuZW5hYmxlID0gdHJ1ZTtcclxuICAgIHRoaXMucHJpbWFyeVlBeGlzLmxhYmVsRm9ybWF0ID0gdGhpcy5jdXJyZW5jeUNvZGUgPyAnYzAnIDogJ24wJztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICovXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2ZpbHRlcnMnXSlcclxuICAgICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGlmIChjaGFuZ2VzWydoZWlnaHQnXSlcclxuICAgICAgICB0aGlzLmNoYXJ0ICYmIHRoaXMuY2hhcnQuY2hhcnRSZXNpemUoKTtcclxuICB9XHJcbiAgZXhlY3V0ZSgpIHtcclxuICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgdGhpcy5fc2VydmljZS5zZXJpZXModGhpcy5jdWJlLCB0aGlzLnhBeGlzLCB7XHJcbiAgICAgIGluZGljZXM6IHRoaXMuaW5kaWNlcywgc2VyaWVzOiB0aGlzLnNlcmllcyxcclxuICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJzLFxyXG4gICAgICBzY29wZTogdGhpcy5zY29wZVxyXG4gICAgfSkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICB0aGlzLl9kYXRhID0gcjtcclxuICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICB9LCAoZTogSHR0cFJlc3BvbnNlPGFueT4pID0+IHtcclxuICAgICAgdGhpcy5fc2IuZXJyb3IoZS5zdGF0dXMgPT09IDQwMSA/ICdVbmF1dGhvcml6ZWQnIDogbnVsbCk7XHJcbiAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKiogKi9cclxuICBwcml2YXRlIF9kcmF3KCkge1xyXG4gICAgY29uc3Qgc2VyaWVzID0gdGhpcy5fZGF0YS5tYXAocyA9PiB7XHJcbiAgICAgIGlmIChzLmluZGV4KSBcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHhOYW1lOiAnbmFtZScsXHJcbiAgICAgICAgICAgIHlOYW1lOiAneScsXHJcbiAgICAgICAgICAgIG5hbWU6IHMudGl0bGUsXHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IHMucG9pbnRzLFxyXG4gICAgICAgICAgICB0eXBlOiB0aGlzLmluZGV4Q2hhcnRUeXBlIHx8ICdTcGxpbmUnLFxyXG4gICAgICAgICAgICB3aWR0aDogMixcclxuICAgICAgICAgICAgZmlsbDogdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCksXHJcbiAgICAgICAgICAgIHN0YWNraW5nR3JvdXA6ICdpbmRleCcsXHJcbiAgICAgICAgICAgIG1hcmtlcjoge1xyXG4gICAgICAgICAgICAgIHZpc2libGU6ICF0aGlzLmluZGV4Q2hhcnRUeXBlIHx8IHRoaXMuaW5kZXhDaGFydFR5cGUgPT09ICdMaW5lJyB8fCB0aGlzLmluZGV4Q2hhcnRUeXBlID09PSAnU3BsaW5lJyxcclxuICAgICAgICAgICAgICBzaGFwZTogJ0RpYW1vbmQnLFxyXG4gICAgICAgICAgICAgIGhlaWdodDogMTAsXHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEwXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gYXMgU2VyaWVzTW9kZWw7XHJcbiAgICAgICAgZWxzZSAgcmV0dXJuIHtcclxuICAgICAgICAgICAgeE5hbWU6ICduYW1lJyxcclxuICAgICAgICAgICAgeU5hbWU6ICd5JyxcclxuICAgICAgICAgICAgbmFtZTogcy50aXRsZSxcclxuICAgICAgICAgICAgZGF0YVNvdXJjZTogcy5wb2ludHMsXHJcbiAgICAgICAgICAgIHR5cGU6IHRoaXMuY2hhcnRUeXBlIHx8ICdDb2x1bW4nLFxyXG4gICAgICAgICAgICBtYXJrZXI6IHtcclxuICAgICAgICAgICAgICB2aXNpYmxlOiAhdGhpcy5jaGFydFR5cGUgfHwgdGhpcy5jaGFydFR5cGUgPT09ICdMaW5lJyB8fCB0aGlzLmNoYXJ0VHlwZSA9PT0gJ1NwbGluZScsXHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxMCxcclxuICAgICAgICAgICAgICB3aWR0aDogMTBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBhcyBTZXJpZXNNb2RlbDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5sZWdlbmRTZXR0aW5ncy52aXNpYmxlID0gc2VyaWVzLmxlbmd0aCA+IDE7XHJcbiAgICB0aGlzLmNoYXJ0ICYmIHRoaXMuY2hhcnQuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh7XHJcbiAgICAgIGxlZ2VuZFNldHRpbmdzOiB0aGlzLmxlZ2VuZFNldHRpbmdzLFxyXG4gICAgICBwcmltYXJ5WEF4aXM6IHRoaXMucHJpbWFyeVhBeGlzLFxyXG4gICAgICBwcmltYXJ5WUF4aXM6IHRoaXMucHJpbWFyeVlBeGlzLFxyXG4gICAgICBlbmFibGVFeHBvcnQ6IHRydWUsXHJcbiAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgIHRoZW1lOiB0aGlzLnRoZW1lLFxyXG4gICAgICB1c2VHcm91cGluZ1NlcGFyYXRvcjogdHJ1ZSxcclxuICAgICAgcGFsZXR0ZXM6IHRoaXMucGFsZXR0ZXMsXHJcbiAgICAgIGN1cnJlbmN5Q29kZTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICAgIHRvb2x0aXBSZW5kZXI6IHRoaXMudG9vbHRpcFJlbmRlci5iaW5kKHRoaXMpLFxyXG4gICAgICBzZWxlY3Rpb25Nb2RlOiAnUG9pbnQnLFxyXG4gICAgICBwb2ludENsaWNrOiB0aGlzLnBvaW50Q2xpY2suYmluZCh0aGlzKSxcclxuICAgICAgdG9vbHRpcDogdGhpcy50b29sdGlwLFxyXG4gICAgICBjaGFydEFyZWE6IHRoaXMuY2hhcnRBcmVhLFxyXG4gICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0IGFzIHN0cmluZyxcclxuICAgICAgY3Jvc3NoYWlyOiB0aGlzLmNyb3NzaGFpcixcclxuICAgICAgZW5hYmxlUnRsOiB0aGlzLmVuYWJsZVJ0bCxcclxuICAgICAgc2VyaWVzLFxyXG4gICAgfSwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcbiAgdG9vbHRpcFJlbmRlcihlOiBJVG9vbHRpcFJlbmRlckV2ZW50QXJncyk6IHZvaWQge1xyXG4gICAgZS50ZXh0ID0gdGhpcy5faW50bC5mb3JtYXROdW1iZXIoZS5wb2ludC55IGFzIG51bWJlciwge1xyXG4gICAgICBjdXJyZW5jeTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICAgIGZvcm1hdDogdGhpcy5jdXJyZW5jeUNvZGUgPyAnYycgOiAnbicsXHJcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fc2VydmljZS5mcmFjdGlvbkRpZ2l0c1xyXG4gICAgfSk7XHJcbiAgfTtcclxuICBwb2ludENsaWNrKGV2dDogSVBvaW50RXZlbnRBcmdzKSB7XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBhbnkgfSA9IHt9LFxyXG4gICAgICBzZXJpZSA9IHRoaXMuX2RhdGFbZXZ0LnNlcmllc0luZGV4XSxcclxuICAgICAgeyBpbmRleCwgbmFtZSwgcG9pbnRzIH0gPSBzZXJpZTtcclxuICAgIGlmICh0aGlzLnNlcmllcyAmJiB0aGlzLnNlcmllcy5sZW5ndGggJiYgIWluZGV4KVxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc2VyaWVzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGF4ZXNbdGhpcy5zZXJpZXNbaV1dID0gbmFtZS5zcGxpdChBWEVTX0NPREVfRElWSURFUilbaV07XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMueEF4aXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgeCA9IHBvaW50c1tldnQucG9pbnRJbmRleF0ueDtcclxuICAgICAgYXhlc1t0aGlzLnhBeGlzW2ldXSA9IHguc3BsaXQoQVhFU19DT0RFX0RJVklERVIpW2ldO1xyXG4gICAgfVxyXG4gICAgdGhpcy5leHBsb3JlLmVtaXQoeyBheGVzLCBpbmRleCB9KTtcclxuICB9XHJcbiAgZXhwb3J0VG9FeGNlbCh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB3YiA9IFhMU1gudXRpbHMuYm9va19uZXcoKTtcclxuICAgIHRoaXMuX2RhdGEuZm9yRWFjaCgocywgaSkgPT4ge1xyXG4gICAgICBjb25zdCB3cyA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChzLnBvaW50cyk7XHJcbiAgICAgIGNvbnN0IG5hbWUgPSBzLnRpdGxlIHx8IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1NoZWV0TicsIGkgKyAxKTtcclxuICAgICAgd2IuU2hlZXRzW25hbWVdID0gd3M7XHJcbiAgICAgIHdiLlNoZWV0TmFtZXMucHVzaChuYW1lKTtcclxuICAgIH0pO1xyXG4gICAgWExTWC53cml0ZUZpbGUod2IsIGAke3RpdGxlfS54bHN4YCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFFLEtBQUssRUFBZSxNQUFNLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQTBCLE1BQU0sd0JBQXdCLENBQUM7QUFHbFosT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBa0MsTUFBTSxpQkFBaUIsQ0FBQztBQU1wRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUUvQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUs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LElBQUksRUFBRTt3QkFDSixHQUFHLEVBQUUsS0FBSzt3QkFDVixLQUFLLEVBQUUsV0FBVztxQkFDbkI7aUJBQ0Y7bU5BSUMsS0FBSztzQkFESixLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixJQUFJO3NCQURILEtBQUs7Z0JBT0ssS0FBSztzQkFEZixLQUFLO2dCQVNLLE1BQU07c0JBRGhCLEtBQUs7Z0JBVUssT0FBTztzQkFEakIsS0FBSztnQkFNTixPQUFPO3NCQUROLEtBQUs7Z0JBR04sS0FBSztzQkFESixLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVOLFlBQVk7c0JBRFgsS0FBSztnQkFFYSxPQUFPO3NCQUF6QixNQUFNO2dCQUNFLE9BQU87c0JBQWYsS0FBSztnQkFDYSxhQUFhO3NCQUEvQixNQUFNO2dCQUdFLEVBQUU7c0JBRFYsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFydCwgU2VyaWVzTW9kZWwsIEV4cG9ydCwgQmFyU2VyaWVzLCBTdGFja2luZ1N0ZXBBcmVhU2VyaWVzLCBBcmVhU2VyaWVzLCBCdWJibGVTZXJpZXMsIENvbHVtblNlcmllcywgTGluZVNlcmllcywgTGVnZW5kLCBQb2xhclNlcmllcywgUmFkYXJTZXJpZXMsIFNwbGluZVNlcmllcywgU3BsaW5lQXJlYVNlcmllcywgU2NhdHRlclNlcmllcywgU3RhY2tpbmdMaW5lU2VyaWVzLCBTdGFja2luZ0FyZWFTZXJpZXMsIFN0YWNraW5nQ29sdW1uU2VyaWVzLCBTdGFja2luZ0JhclNlcmllcywgU3RlcEFyZWFTZXJpZXMsIFN0ZXBMaW5lU2VyaWVzLCBUb29sdGlwLCBEYXRlVGltZSwgQ2F0ZWdvcnksIENyb3NzaGFpclNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItY2hhcnRzJztcclxuaW1wb3J0IHsgQXhpc01vZGVsLCBDaGFydEFyZWFNb2RlbCwgVG9vbHRpcFNldHRpbmdzTW9kZWwsIExlZ2VuZFNldHRpbmdzTW9kZWwsIElQb2ludEV2ZW50QXJncywgSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1jaGFydHMnO1xyXG5pbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEludGVybmF0aW9uYWxpemF0aW9uIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWJhc2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcclxuaW1wb3J0IHsgRk9OVF9GQU1JTFkgfSBmcm9tICcuLi8uLi9jb3JlL2NvbG9ycyc7XHJcbmltcG9ydCB7IEFYRVNfQ09ERV9ESVZJREVSLCBDdWJlU2VydmljZSwgU2NvcGVUeXBlLCBTZXJpZXMgfSBmcm9tICcuLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBeGlzQ2xpY2tFdmVudCwgQ3ViZVZpZXdlckNvbXBvbmVudCB9IGZyb20gXCIuLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgQXhlc01hcCwgQ2hhcnRUeXBlLCBZQXhpcyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5cclxuQ2hhcnQuSW5qZWN0KENhdGVnb3J5LCBEYXRlVGltZSwgVG9vbHRpcCwgRXhwb3J0LCBCYXJTZXJpZXMsIEFyZWFTZXJpZXMsIFN0YWNraW5nU3RlcEFyZWFTZXJpZXMsIEJ1YmJsZVNlcmllcywgQ29sdW1uU2VyaWVzLCBMaW5lU2VyaWVzLCBMZWdlbmQsIFBvbGFyU2VyaWVzLCBSYWRhclNlcmllcywgU3BsaW5lU2VyaWVzLCBTcGxpbmVBcmVhU2VyaWVzLCBTY2F0dGVyU2VyaWVzLCBTdGFja2luZ0xpbmVTZXJpZXMsIFN0YWNraW5nQXJlYVNlcmllcywgU3RhY2tpbmdDb2x1bW5TZXJpZXMsIFN0YWNraW5nQmFyU2VyaWVzLCBTdGVwQXJlYVNlcmllcywgU3RlcExpbmVTZXJpZXMpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS1jaGFydCcsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIGhvc3Q6IHtcclxuICAgIGRpcjogJ2x0cicsXHJcbiAgICBjbGFzczogJ2N1YmUtdmlldydcclxuICB9XHJcbn0pXHJcbi8qKiBjaGFydCBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgQ3ViZUNoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ3ViZVZpZXdlckNvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICB3aWR0aDogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIEBJbnB1dCgpXHJcbiAgaGVpZ2h0OiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgQElucHV0KClcclxuICBjdWJlITogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3hBeGlzOiBzdHJpbmdbXTtcclxuICBwdWJsaWMgZ2V0IHhBeGlzKCk6IHN0cmluZ1tdIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl94QXhpcztcclxuICB9XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHhBeGlzKHZhbHVlOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgdGhpcy5feEF4aXMgPSBpc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc2VyaWVzPzogc3RyaW5nW107XHJcbiAgcHVibGljIGdldCBzZXJpZXMoKTogc3RyaW5nW10gfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlcmllcztcclxuICB9XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNlcmllcyh2YWx1ZTogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIGlmICh2YWx1ZSkgdGhpcy5fc2VyaWVzID0gaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XHJcbiAgICBlbHNlIHRoaXMuX3NlcmllcyA9IG51bGw7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2luZGljZXM/OiBzdHJpbmdbXTtcclxuICBwdWJsaWMgZ2V0IGluZGljZXMoKTogc3RyaW5nW10gfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2luZGljZXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBpbmRpY2VzKHZhbHVlOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlKSB0aGlzLl9pbmRpY2VzID0gaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XHJcbiAgICBlbHNlIHRoaXMuX2luZGljZXMgPSBudWxsO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIEBJbnB1dCgpXHJcbiAgeUF4aXM/OiBZQXhpcztcclxuICBASW5wdXQoKVxyXG4gIGNoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxuICBASW5wdXQoKVxyXG4gIGluZGV4Q2hhcnRUeXBlPzogQ2hhcnRUeXBlO1xyXG4gIEBJbnB1dCgpIHNjb3BlOiBTY29wZVR5cGU7XHJcbiAgQElucHV0KClcclxuICBjdXJyZW5jeUNvZGU6IHN0cmluZztcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgZXhwbG9yZTogRXZlbnRFbWl0dGVyPEF4aXNDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBsb2FkaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIEBIb3N0QmluZGluZygpXHJcbiAgcmVhZG9ubHkgaWQgPSBgY3ViZS1jaGFydC0ke0N1YmVDaGFydENvbXBvbmVudC5uZXh0SWQrK31gO1xyXG4gIGNoYXJ0OiBDaGFydDtcclxuICBwYWxldHRlcyA9IHRoaXMuX3Nlc3Npb24uYWNjZW50UGFsZXR0ZTtcclxuICByZWFkb25seSBlbmFibGVSdGwgPSB0aGlzLl9zZXNzaW9uLmludmVyc2U7XHJcbiAgcmVhZG9ubHkgbGVnZW5kU2V0dGluZ3M6IExlZ2VuZFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBpc0ludmVyc2VkOiB0aGlzLmVuYWJsZVJ0bCxcclxuICAgIG1hcmdpbjoge1xyXG4gICAgICB0b3A6IDVcclxuICAgIH0sXHJcbiAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH1cclxuICB9O1xyXG4gIHJlYWRvbmx5IHByaW1hcnlYQXhpczogQXhpc01vZGVsID0ge1xyXG4gICAgdmFsdWVUeXBlOiAnQ2F0ZWdvcnknLFxyXG4gICAgbGFiZWxTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgcHJpbWFyeVlBeGlzOiBBeGlzTW9kZWwgPSB7XHJcbiAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfTtcclxuICByZWFkb25seSBjaGFydEFyZWE6IENoYXJ0QXJlYU1vZGVsID0ge1xyXG4gICAgYm9yZGVyOiB7XHJcbiAgICAgIHdpZHRoOiAwXHJcbiAgICB9LFxyXG4gICAgb3BhY2l0eTogMFxyXG4gIH07XHJcbiAgcmVhZG9ubHkgdG9vbHRpcDogVG9vbHRpcFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBlbmFibGU6IHRydWUsXHJcbiAgICBlbmFibGVBbmltYXRpb246IGZhbHNlLFxyXG4gICAgYm9yZGVyOiB7IHdpZHRoOiAwIH0sXHJcbiAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH1cclxuICB9O1xyXG4gIHJlYWRvbmx5IGNyb3NzaGFpcjogQ3Jvc3NoYWlyU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGVuYWJsZTogZmFsc2UsXHJcbiAgICBsaW5lVHlwZTogJ1ZlcnRpY2FsJ1xyXG4gIH07XHJcbiAgdGhlbWU6ICdNYXRlcmlhbCcgfCAnTWF0ZXJpYWxEYXJrJyA9IHRoaXMuX3Nlc3Npb24udGhlbWUuZGFyayA/ICdNYXRlcmlhbERhcmsnIDogJ01hdGVyaWFsJztcclxuICBwcml2YXRlIF9kYXRhOiBTZXJpZXNbXTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnRsOiBJbnRlcm5hdGlvbmFsaXphdGlvbiA9IG5ldyBJbnRlcm5hdGlvbmFsaXphdGlvbigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIC8qKiBjaGFydCBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSwgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSwgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgX3Nlc3Npb24udGhlbWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgdGhpcy50aGVtZSA9IHQuZGFyayA/ICdNYXRlcmlhbERhcmsnIDogJ01hdGVyaWFsJztcclxuICAgICAgICB0aGlzLnBhbGV0dGVzID0gX3Nlc3Npb24uYWNjZW50UGFsZXR0ZTtcclxuICAgICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmNoYXJ0VHlwZSA9PT0gJ0xpbmUnIHx8IHRoaXMuY2hhcnRUeXBlID09PSAnU3BsaW5lJylcclxuICAgICAgdGhpcy5jcm9zc2hhaXIuZW5hYmxlID0gdHJ1ZTtcclxuICAgIHRoaXMucHJpbWFyeVlBeGlzLmxhYmVsRm9ybWF0ID0gdGhpcy5jdXJyZW5jeUNvZGUgPyAnYzAnIDogJ24wJztcclxuICAgIHRoaXMuZXhlY3V0ZSgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKi9cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snZmlsdGVycyddICYmICFjaGFuZ2VzWydmaWx0ZXJzJ10uZmlyc3RDaGFuZ2UpXHJcbiAgICAgIHRoaXMuZXhlY3V0ZSgpO1xyXG4gICAgZWxzZVxyXG4gICAgICBpZiAoY2hhbmdlc1snaGVpZ2h0J10pXHJcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcclxuICB9XHJcbiAgcmVzaXplKCkge1xyXG4gICAgdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmNoYXJ0UmVzaXplKCk7XHJcbiAgfVxyXG5cclxuICBleGVjdXRlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnNlcmllcyh0aGlzLmN1YmUsIHRoaXMueEF4aXMsIHtcclxuICAgICAgaW5kaWNlczogdGhpcy5pbmRpY2VzLCBzZXJpZXM6IHRoaXMuc2VyaWVzLFxyXG4gICAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMsXHJcbiAgICAgIHNjb3BlOiB0aGlzLnNjb3BlXHJcbiAgICB9KS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgIHRoaXMuX2RhdGEgPSByO1xyXG4gICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgIH0sIChlOiBIdHRwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICB0aGlzLl9zYi5lcnJvcihlLnN0YXR1cyA9PT0gNDAxID8gJ1VuYXV0aG9yaXplZCcgOiBudWxsKTtcclxuICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKiAqL1xyXG4gIHByaXZhdGUgX2RyYXcoKSB7XHJcbiAgICBjb25zdCBzZXJpZXMgPSB0aGlzLl9kYXRhLm1hcChzID0+IHtcclxuICAgICAgaWYgKHMuaW5kZXgpXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHhOYW1lOiAnbmFtZScsXHJcbiAgICAgICAgICB5TmFtZTogJ3knLFxyXG4gICAgICAgICAgbmFtZTogcy50aXRsZSxcclxuICAgICAgICAgIGRhdGFTb3VyY2U6IHMucG9pbnRzLFxyXG4gICAgICAgICAgdHlwZTogdGhpcy5pbmRleENoYXJ0VHlwZSB8fCAnU3BsaW5lJyxcclxuICAgICAgICAgIHdpZHRoOiAyLFxyXG4gICAgICAgICAgZmlsbDogdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCksXHJcbiAgICAgICAgICBzdGFja2luZ0dyb3VwOiAnaW5kZXgnLFxyXG4gICAgICAgICAgbWFya2VyOiB7XHJcbiAgICAgICAgICAgIHZpc2libGU6ICF0aGlzLmluZGV4Q2hhcnRUeXBlIHx8IHRoaXMuaW5kZXhDaGFydFR5cGUgPT09ICdMaW5lJyB8fCB0aGlzLmluZGV4Q2hhcnRUeXBlID09PSAnU3BsaW5lJyxcclxuICAgICAgICAgICAgc2hhcGU6ICdEaWFtb25kJyxcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMCxcclxuICAgICAgICAgICAgd2lkdGg6IDEwXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBhcyBTZXJpZXNNb2RlbDtcclxuICAgICAgZWxzZSByZXR1cm4ge1xyXG4gICAgICAgIHhOYW1lOiAnbmFtZScsXHJcbiAgICAgICAgeU5hbWU6ICd5JyxcclxuICAgICAgICBuYW1lOiBzLnRpdGxlLFxyXG4gICAgICAgIGRhdGFTb3VyY2U6IHMucG9pbnRzLFxyXG4gICAgICAgIHR5cGU6IHRoaXMuY2hhcnRUeXBlIHx8ICdDb2x1bW4nLFxyXG4gICAgICAgIG1hcmtlcjoge1xyXG4gICAgICAgICAgdmlzaWJsZTogIXRoaXMuY2hhcnRUeXBlIHx8IHRoaXMuY2hhcnRUeXBlID09PSAnTGluZScgfHwgdGhpcy5jaGFydFR5cGUgPT09ICdTcGxpbmUnLFxyXG4gICAgICAgICAgaGVpZ2h0OiAxMCxcclxuICAgICAgICAgIHdpZHRoOiAxMFxyXG4gICAgICAgIH1cclxuICAgICAgfSBhcyBTZXJpZXNNb2RlbDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5sZWdlbmRTZXR0aW5ncy52aXNpYmxlID0gc2VyaWVzLmxlbmd0aCA+IDE7XHJcbiAgICB0aGlzLmNoYXJ0ICYmIHRoaXMuY2hhcnQuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh7XHJcbiAgICAgIGxlZ2VuZFNldHRpbmdzOiB0aGlzLmxlZ2VuZFNldHRpbmdzLFxyXG4gICAgICBwcmltYXJ5WEF4aXM6IHRoaXMucHJpbWFyeVhBeGlzLFxyXG4gICAgICBwcmltYXJ5WUF4aXM6IHRoaXMucHJpbWFyeVlBeGlzLFxyXG4gICAgICBlbmFibGVFeHBvcnQ6IHRydWUsXHJcbiAgICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgIHRoZW1lOiB0aGlzLnRoZW1lLFxyXG4gICAgICB1c2VHcm91cGluZ1NlcGFyYXRvcjogdHJ1ZSxcclxuICAgICAgcGFsZXR0ZXM6IHRoaXMucGFsZXR0ZXMsXHJcbiAgICAgIGN1cnJlbmN5Q29kZTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICAgIHRvb2x0aXBSZW5kZXI6IHRoaXMudG9vbHRpcFJlbmRlci5iaW5kKHRoaXMpLFxyXG4gICAgICBzZWxlY3Rpb25Nb2RlOiAnUG9pbnQnLFxyXG4gICAgICBwb2ludENsaWNrOiB0aGlzLnBvaW50Q2xpY2suYmluZCh0aGlzKSxcclxuICAgICAgdG9vbHRpcDogdGhpcy50b29sdGlwLFxyXG4gICAgICBjaGFydEFyZWE6IHRoaXMuY2hhcnRBcmVhLFxyXG4gICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0IGFzIHN0cmluZyxcclxuICAgICAgY3Jvc3NoYWlyOiB0aGlzLmNyb3NzaGFpcixcclxuICAgICAgZW5hYmxlUnRsOiB0aGlzLmVuYWJsZVJ0bCxcclxuICAgICAgc2VyaWVzLFxyXG4gICAgfSwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcbiAgdG9vbHRpcFJlbmRlcihlOiBJVG9vbHRpcFJlbmRlckV2ZW50QXJncyk6IHZvaWQge1xyXG4gICAgZS50ZXh0ID0gdGhpcy5faW50bC5mb3JtYXROdW1iZXIoZS5wb2ludC55IGFzIG51bWJlciwge1xyXG4gICAgICBjdXJyZW5jeTogdGhpcy5jdXJyZW5jeUNvZGUsXHJcbiAgICAgIGZvcm1hdDogdGhpcy5jdXJyZW5jeUNvZGUgPyAnYycgOiAnbicsXHJcbiAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogdGhpcy5fc2VydmljZS5mcmFjdGlvbkRpZ2l0c1xyXG4gICAgfSk7XHJcbiAgfTtcclxuICBwb2ludENsaWNrKGV2dDogSVBvaW50RXZlbnRBcmdzKSB7XHJcbiAgICBjb25zdCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBhbnkgfSA9IHt9LFxyXG4gICAgICBzZXJpZSA9IHRoaXMuX2RhdGFbZXZ0LnNlcmllc0luZGV4XSxcclxuICAgICAgeyBpbmRleCwgbmFtZSwgcG9pbnRzIH0gPSBzZXJpZTtcclxuICAgIGlmICh0aGlzLnNlcmllcyAmJiB0aGlzLnNlcmllcy5sZW5ndGggJiYgIWluZGV4KVxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc2VyaWVzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGF4ZXNbdGhpcy5zZXJpZXNbaV1dID0gbmFtZS5zcGxpdChBWEVTX0NPREVfRElWSURFUilbaV07XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMueEF4aXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgeCA9IHBvaW50c1tldnQucG9pbnRJbmRleF0ueDtcclxuICAgICAgYXhlc1t0aGlzLnhBeGlzW2ldXSA9IHguc3BsaXQoQVhFU19DT0RFX0RJVklERVIpW2ldO1xyXG4gICAgfVxyXG4gICAgdGhpcy5leHBsb3JlLmVtaXQoeyBheGVzLCBpbmRleCB9KTtcclxuICB9XHJcbiAgZXhwb3J0VG9FeGNlbCh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB3YiA9IFhMU1gudXRpbHMuYm9va19uZXcoKTtcclxuICAgIHRoaXMuX2RhdGEuZm9yRWFjaCgocywgaSkgPT4ge1xyXG4gICAgICBjb25zdCB3cyA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChzLnBvaW50cyk7XHJcbiAgICAgIGNvbnN0IG5hbWUgPSBzLnRpdGxlIHx8IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1NoZWV0TicsIGkgKyAxKTtcclxuICAgICAgd2IuU2hlZXRzW25hbWVdID0gd3M7XHJcbiAgICAgIHdiLlNoZWV0TmFtZXMucHVzaChuYW1lKTtcclxuICAgIH0pO1xyXG4gICAgWExTWC53cml0ZUZpbGUod2IsIGAke3RpdGxlfS54bHN4YCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -9,10 +9,9 @@ import { CubeSpreadsheetComponent } from './grid/spreadsheet.component';
9
9
  import * as i0 from "@angular/core";
10
10
  /** */
11
11
  export class CubeViewComponent {
12
- constructor(_viewContainer, _factoryResolver, _cd) {
12
+ constructor(_viewContainer, _factoryResolver) {
13
13
  this._viewContainer = _viewContainer;
14
14
  this._factoryResolver = _factoryResolver;
15
- this._cd = _cd;
16
15
  this.axes = {};
17
16
  this.explore = new EventEmitter();
18
17
  this.loadingChange = new EventEmitter();
@@ -34,13 +33,11 @@ export class CubeViewComponent {
34
33
  this._instance.ngOnChanges({ 'height': {}, 'width': {} });
35
34
  });
36
35
  }
36
+ ngAfterViewInit() {
37
+ setTimeout(this._createView.bind(this));
38
+ }
37
39
  ngOnChanges(changes) {
38
- if (changes['view']) {
39
- // dom
40
- setTimeout(this._createView.bind(this));
41
- }
42
- else if (changes['axes'])
43
- this.refresh();
40
+ changes['axes'] && !changes['axes'].firstChange && this.refresh();
44
41
  }
45
42
  _createView() {
46
43
  this._viewDestroy.next();
@@ -64,7 +61,6 @@ export class CubeViewComponent {
64
61
  comp.width = `${dim.width - 4}px`;
65
62
  comp.series = this.view.series;
66
63
  comp.indices = this.view.indices;
67
- comp.yAxis = this.cube.yAxis;
68
64
  break;
69
65
  }
70
66
  case 'Spreadsheet':
@@ -92,16 +88,15 @@ export class CubeViewComponent {
92
88
  default:
93
89
  {
94
90
  let comp = this._attach(CubeChartComponent);
95
- comp.height = `${dim.height}px`;
91
+ //comp.height = `${dim.height}px`;
96
92
  comp.chartType = this.view.chartType;
97
93
  comp.series = this.view.series;
98
94
  comp.indices = this.view.indices;
95
+ comp.yAxis = this.cube.yAxis;
99
96
  comp.indexChartType = this.view.indexChartType;
100
97
  }
101
98
  }
102
99
  }
103
- //this._cd.detectChanges();
104
- setTimeout(() => this._instance.execute());
105
100
  }
106
101
  _attach(comp) {
107
102
  const factory = this._factoryResolver.resolveComponentFactory(comp);
@@ -146,7 +141,7 @@ export class CubeViewComponent {
146
141
  this._viewDestroy.complete();
147
142
  }
148
143
  }
149
- CubeViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: CubeViewComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
144
+ CubeViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: CubeViewComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
150
145
  CubeViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: CubeViewComponent, selector: "bizdoc-cube-view", inputs: { axes: "axes", cube: "cube", view: "view", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { listeners: { "window:resize": "resize()" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
151
146
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: CubeViewComponent, decorators: [{
152
147
  type: Component,
@@ -161,7 +156,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
161
156
  CubeSpreadsheetComponent
162
157
  ]
163
158
  }]
164
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { axes: [{
159
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }]; }, propDecorators: { axes: [{
165
160
  type: Input
166
161
  }], explore: [{
167
162
  type: Output
@@ -177,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
177
172
  type: HostListener,
178
173
  args: ['window:resize']
179
174
  }] } });
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9jdWJlLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTRCLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQW1DLE1BQU0sZUFBZSxDQUFDO0FBRW5LLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFJeEUsTUFBTTtBQVlOLE1BQU0sT0FBTyxpQkFBaUI7SUFhNUIsWUFDVSxjQUFnQyxFQUNoQyxnQkFBMEMsRUFDMUMsR0FBc0I7UUFGdEIsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBQ2hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBMEI7UUFDMUMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFmdkIsU0FBSSxHQUFZLEVBQUUsQ0FBQztRQUNULFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUk3QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFJOUMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFD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Q0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDOzs4R0F2SlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsOFFBVGxCLEVBQUU7MkZBU0QsaUJBQWlCO2tCQVg3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRTt3QkFDZixrQkFBa0I7d0JBQ2xCLDhCQUE4Qjt3QkFDOUIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLHdCQUF3QjtxQkFDekI7aUJBQ0Y7OEtBRVUsSUFBSTtzQkFBWixLQUFLO2dCQUNhLE9BQU87c0JBQXpCLE1BQU07Z0JBQ0UsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ2EsYUFBYTtzQkFBL0IsTUFBTTtnQkEwSFAsTUFBTTtzQkFETCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQXhlc01hcCwgQ3ViZSwgQ3ViZVZpZXcsIERpbWVudGlvbnMgfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEF4aXNDbGlja0V2ZW50LCBDdWJlVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kZWNsYXJhdGlvbnMnO1xyXG5pbXBvcnQgeyBDdWJlQWNjdW11bGF0aW9uQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2FjY3VtL2FjY3VtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1YmVDaGFydENvbXBvbmVudCB9IGZyb20gJy4vY2hhcnQvY2hhcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3ViZUdyaWRDb21wb25lbnQgfSBmcm9tICcuL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDdWJlUGl2b3RDb21wb25lbnQgfSBmcm9tICcuL3Bpdm90L3Bpdm90LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1YmVTcHJlYWRzaGVldENvbXBvbmVudCB9IGZyb20gJy4vZ3JpZC9zcHJlYWRzaGVldC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaW1wbGVDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLXZpZXcnLFxyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBlbnRyeUNvbXBvbmVudHM6IFtcclxuICAgIEN1YmVQaXZvdENvbXBvbmVudCxcclxuICAgIEN1YmVBY2N1bXVsYXRpb25DaGFydENvbXBvbmVudCxcclxuICAgIEN1YmVDaGFydENvbXBvbmVudCxcclxuICAgIEN1YmVHcmlkQ29tcG9uZW50LFxyXG4gICAgQ3ViZVNwcmVhZHNoZWV0Q29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3ViZVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgYXhlczogQXhlc01hcCA9IHt9O1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBleHBsb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxBeGlzQ2xpY2tFdmVudD4oKTtcclxuICBASW5wdXQoKSBjdWJlOiBDdWJlO1xyXG4gIEBJbnB1dCgpIHZpZXc6IEN1YmVWaWV3O1xyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGxvYWRpbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIHByaXZhdGUgX2luc3RhbmNlOiBDdWJlVmlld2VyQ29tcG9uZW50O1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNpemluZyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld0Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIF9mYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXNpemluZy5waXBlKGRlYm91bmNlVGltZSgyMDApKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMuX2RpbSgpO1xyXG4gICAgICBzd2l0Y2ggKHRoaXMudmlldy50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnUGl2b3QnOlxyXG4gICAgICAgIGNhc2UgJ0dyaWQnOlxyXG4gICAgICAgICAgdGhpcy5faW5zdGFuY2Uud2lkdGggPSBgJHt3aWR0aCAtIDR9cHhgO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHRoaXMuX2luc3RhbmNlLndpZHRoID0gYCR7d2lkdGh9cHhgO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX2luc3RhbmNlLmhlaWdodCA9IGAke2hlaWdodH1weGA7XHJcbiAgICAgIHRoaXMuX2luc3RhbmNlLm5nT25DaGFuZ2VzKHsgJ2hlaWdodCc6IHt9IGFzIFNpbXBsZUNoYW5nZSwgJ3dpZHRoJzoge30gYXMgU2ltcGxlQ2hhbmdlIH0pXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWyd2aWV3J10pIHtcclxuICAgICAgLy8gZG9tXHJcbiAgICAgIHNldFRpbWVvdXQodGhpcy5fY3JlYXRlVmlldy5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNoYW5nZXNbJ2F4ZXMnXSkgdGhpcy5yZWZyZXNoKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVWaWV3KCkge1xyXG4gICAgdGhpcy5fdmlld0Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fdmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgY29uc3QgZGltID0gdGhpcy5fZGltKCk7XHJcbiAgICBzd2l0Y2ggKHRoaXMudmlldy50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ1Bpdm90JzpcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsZXQgY29tcCA9IHRoaXMuX2F0dGFjaChDdWJlUGl2b3RDb21wb25lbnQpO1xyXG4gICAgICAgICAgY29tcC53aWR0aCA9IGAke2RpbS53aWR0aCAtIDR9cHhgO1xyXG4gICAgICAgICAgY29tcC5zZXJpZXMgPSB0aGlzLnZpZXcuc2VyaWVzO1xyXG4gICAgICAgICAgY29tcC5pbmRpY2VzID0gdGhpcy52aWV3LmluZGljZXM7XHJcbiAgICAgICAgICBjb21wLmNoYXJ0VHlwZSA9IHRoaXMudmlldy5jaGFydFR5cGU7XHJcbiAgICAgICAgICBjb21wLmluZGV4Q2hhcnRUeXBlID0gdGhpcy52aWV3LmluZGV4Q2hhcnRUeXBlO1xyXG4gICAgICAgICAgY29tcC55QXhpcyA9IHRoaXMuY3ViZS55QXhpcztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgY2FzZSAnR3JpZCc6XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGV0IGNvbXAgPSB0aGlzLl9hdHRhY2goQ3ViZUdyaWRDb21wb25lbnQpO1xyXG4gICAgICAgICAgY29tcC53aWR0aCA9IGAke2RpbS53aWR0aCAtIDR9cHhgO1xyXG4gICAgICAgICAgY29tcC5zZXJpZXMgPSB0aGlzLnZpZXcuc2VyaWVzO1xyXG4gICAgICAgICAgY29tcC5pbmRpY2VzID0gdGhpcy52aWV3LmluZGljZXM7XHJcbiAgICAgICAgICBjb21wLnlBeGlzID0gdGhpcy5jdWJlLnlBeGlzO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICBjYXNlICdTcHJlYWRzaGVldCc6XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGV0IGNvbXAgPSB0aGlzLl9hdHRhY2goQ3ViZVNwcmVhZHNoZWV0Q29tcG9uZW50KTtcclxuICAgICAgICAgIGNvbXAud2lkdGggPSBgJHtkaW0ud2lkdGh9cHhgO1xyXG4gICAgICAgICAgY29tcC5oZWlnaHQgPSBgJHtkaW0uaGVpZ2h0fXB4YDtcclxuICAgICAgICAgIGNvbXAuc2VyaWVzID0gdGhpcy52aWV3LnNlcmllcztcclxuICAgICAgICAgIGNvbXAuaW5kaWNlcyA9IHRoaXMudmlldy5pbmRpY2VzO1xyXG4gICAgICAgICAgY29tcC55QXhpcyA9IHRoaXMuY3ViZS55QXhpcztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBzd2l0Y2ggKHRoaXMudmlldy5jaGFydFR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgJ1BpZSc6XHJcbiAgICAgICAgICBjYXNlICdEb3VnaG51dCc6XHJcbiAgICAgICAgICBjYXNlICdIYWxmRG91Z2hudXQnOlxyXG4gICAgICAgICAgY2FzZSAnRnVubmVsJzpcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGxldCBjb21wID0gdGhpcy5fYXR0YWNoKEN1YmVBY2N1bXVsYXRpb25DaGFydENvbXBvbmVudCk7XHJcbiAgICAgICAgICAgICAgY29tcC5oZWlnaHQgPSBgJHtkaW0uaGVpZ2h0fXB4YDtcclxuICAgICAgICAgICAgICBjb21wLmNoYXJ0VHlwZSA9IHRoaXMudmlldy5jaGFydFR5cGU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBsZXQgY29tcCA9IHRoaXMuX2F0dGFjaChDdWJlQ2hhcnRDb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgIGNvbXAuaGVpZ2h0ID0gYCR7ZGltLmhlaWdodH1weGA7XHJcbiAgICAgICAgICAgICAgY29tcC5jaGFydFR5cGUgPSB0aGlzLnZpZXcuY2hhcnRUeXBlO1xyXG4gICAgICAgICAgICAgIGNvbXAuc2VyaWVzID0gdGhpcy52aWV3LnNlcmllcztcclxuICAgICAgICAgICAgICBjb21wLmluZGljZXMgPSB0aGlzLnZpZXcuaW5kaWNlcztcclxuICAgICAgICAgICAgICBjb21wLmluZGV4Q2hhcnRUeXBlID0gdGhpcy52aWV3LmluZGV4Q2hhcnRUeXBlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy90aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2luc3RhbmNlLmV4ZWN1dGUoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hdHRhY2g8VCBleHRlbmRzIEN1YmVWaWV3ZXJDb21wb25lbnQ+KGNvbXA6IENvbXBvbmVudFR5cGU8VD4pIHtcclxuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9mYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcCk7XHJcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuICAgIGNvbnN0IGluc3RhbmNlID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgdGhpcy5faW5zdGFuY2UgPSBpbnN0YW5jZTtcclxuICAgIGluc3RhbmNlLmV4cGxvcmUucGlwZSh0YWtlVW50aWwodGhpcy5fdmlld0Rlc3Ryb3kpKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIGNvbnN0IGF4ZXMgPSB7XHJcbiAgICAgICAgLi4udGhpcy52aWV3LmZpbHRlcnMsXHJcbiAgICAgICAgLi4udGhpcy5heGVzLFxyXG4gICAgICAgIC4uLmUuYXhlc1xyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmV4cGxvcmUuZW1pdCh7IGF4ZXMsIGluZGV4OiBlLmluZGV4IH0pO1xyXG4gICAgfSk7XHJcbiAgICBpbnN0YW5jZS5jdWJlID0gdGhpcy5jdWJlLm5hbWU7XHJcbiAgICBpbnN0YW5jZS54QXhpcyA9IHRoaXMudmlldy54QXhpcztcclxuICAgIGluc3RhbmNlLmN1cnJlbmN5Q29kZSA9IHRoaXMuY3ViZS5jdXJyZW5jeUNvZGU7XHJcbiAgICBpbnN0YW5jZS5maWx0ZXJzID0geyAuLi50aGlzLnZpZXcuZmlsdGVycywgLi4udGhpcy5heGVzIH07XHJcbiAgICBpbnN0YW5jZS5sb2FkaW5nQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3ZpZXdEZXN0cm95KSwgZGVib3VuY2VUaW1lKDE1MCkpLnN1YnNjcmliZShlID0+XHJcbiAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KHRoaXMubG9hZGluZyA9IGUpKTtcclxuXHJcbiAgICByZXR1cm4gaW5zdGFuY2U7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcclxuICByZXNpemUoKSB7XHJcbiAgICB0aGlzLl9yZXNpemluZy5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kaW0oKTogRGltZW50aW9ucyB7XHJcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9ICh0aGlzLl92aWV3Q29udGFpbmVyLmVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MRGl2RWxlbWVudCkucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgd2lkdGg6IE1hdGguZmxvb3Iod2lkdGgpLFxyXG4gICAgICBoZWlnaHQ6IE1hdGguZmxvb3IoaGVpZ2h0IC8qLSAodGhpcy5fdmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQpLm9mZnNldFRvcCovKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2goKSB7XHJcbiAgICB0aGlzLl9pbnN0YW5jZS5maWx0ZXJzID0geyAuLi50aGlzLnZpZXcuZmlsdGVycywgLi4udGhpcy5heGVzIH07XHJcbiAgICB0aGlzLl9pbnN0YW5jZS5leGVjdXRlKCk7XHJcbiAgfVxyXG4gIGV4cG9ydFRvRXhjZWwoKSB7XHJcbiAgICB0aGlzLl9pbnN0YW5jZS5leHBvcnRUb0V4Y2VsKHRoaXMudmlldy50aXRsZSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVzaXppbmcuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX3ZpZXdEZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX3ZpZXdEZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9jdWJlLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUE0QixZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFtQyxNQUFNLGVBQWUsQ0FBQztBQUVsTCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBSXhFLE1BQU07QUFZTixNQUFNLE9BQU8saUJBQWlCO0lBYTVCLFlBQ1UsY0FBZ0MsRUFDaEMsZ0JBQTBDO1FBRDFDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTBCO1FBZDNDLFNBQUksR0FBWSxFQUFFLENBQUM7UUFDVCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFJN0Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBSTlDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2hDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUtoRCxDQUFDO0lBQ0wsUUFBUTtRQUNOLElBQUksQ0FBQyxT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O1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQzs7OEdBcEpVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDhRQVRsQixFQUFFOzJGQVNELGlCQUFpQjtrQkFYN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUU7d0JBQ2Ysa0JBQWtCO3dCQUNsQiw4QkFBOEI7d0JBQzlCLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQix3QkFBd0I7cUJBQ3pCO2lCQUNGOzhJQUVVLElBQUk7c0JBQVosS0FBSztnQkFDYSxPQUFPO3NCQUF6QixNQUFNO2dCQUNFLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNhLGFBQWE7c0JBQS9CLE1BQU07Z0JBdUhQLE1BQU07c0JBREwsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIEN1YmUsIEN1YmVWaWV3LCBEaW1lbnRpb25zIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBeGlzQ2xpY2tFdmVudCwgQ3ViZVZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4vZGVjbGFyYXRpb25zJztcclxuaW1wb3J0IHsgQ3ViZUFjY3VtdWxhdGlvbkNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9hY2N1bS9hY2N1bS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDdWJlQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1YmVHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9ncmlkL2dyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3ViZVBpdm90Q29tcG9uZW50IH0gZnJvbSAnLi9waXZvdC9waXZvdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDdWJlU3ByZWFkc2hlZXRDb21wb25lbnQgfSBmcm9tICcuL2dyaWQvc3ByZWFkc2hlZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2ltcGxlQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKiogKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS12aWV3JyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgZW50cnlDb21wb25lbnRzOiBbXHJcbiAgICBDdWJlUGl2b3RDb21wb25lbnQsXHJcbiAgICBDdWJlQWNjdW11bGF0aW9uQ2hhcnRDb21wb25lbnQsXHJcbiAgICBDdWJlQ2hhcnRDb21wb25lbnQsXHJcbiAgICBDdWJlR3JpZENvbXBvbmVudCxcclxuICAgIEN1YmVTcHJlYWRzaGVldENvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEN1YmVWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIGF4ZXM6IEF4ZXNNYXAgPSB7fTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgZXhwbG9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXhpc0NsaWNrRXZlbnQ+KCk7XHJcbiAgQElucHV0KCkgY3ViZTogQ3ViZTtcclxuICBASW5wdXQoKSB2aWV3OiBDdWJlVmlldztcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBsb2FkaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBwcml2YXRlIF9pbnN0YW5jZTogQ3ViZVZpZXdlckNvbXBvbmVudDtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzaXppbmcgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdEZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBfZmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgXHJcbiAgKSB7IH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Jlc2l6aW5nLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gdGhpcy5fZGltKCk7XHJcbiAgICAgIHN3aXRjaCAodGhpcy52aWV3LnR5cGUpIHtcclxuICAgICAgICBjYXNlICdQaXZvdCc6XHJcbiAgICAgICAgY2FzZSAnR3JpZCc6XHJcbiAgICAgICAgICB0aGlzLl9pbnN0YW5jZS53aWR0aCA9IGAke3dpZHRoIC0gNH1weGA7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgdGhpcy5faW5zdGFuY2Uud2lkdGggPSBgJHt3aWR0aH1weGA7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5faW5zdGFuY2UuaGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDtcclxuICAgICAgdGhpcy5faW5zdGFuY2UubmdPbkNoYW5nZXMoeyAnaGVpZ2h0Jzoge30gYXMgU2ltcGxlQ2hhbmdlLCAnd2lkdGgnOiB7fSBhcyBTaW1wbGVDaGFuZ2UgfSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCh0aGlzLl9jcmVhdGVWaWV3LmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY2hhbmdlc1snYXhlcyddICYmICFjaGFuZ2VzWydheGVzJ10uZmlyc3RDaGFuZ2UgJiYgdGhpcy5yZWZyZXNoKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVWaWV3KCkge1xyXG4gICAgdGhpcy5fdmlld0Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fdmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgY29uc3QgZGltID0gdGhpcy5fZGltKCk7XHJcbiAgICBzd2l0Y2ggKHRoaXMudmlldy50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ1Bpdm90JzpcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsZXQgY29tcCA9IHRoaXMuX2F0dGFjaChDdWJlUGl2b3RDb21wb25lbnQpO1xyXG4gICAgICAgICAgY29tcC53aWR0aCA9IGAke2RpbS53aWR0aCAtIDR9cHhgO1xyXG4gICAgICAgICAgY29tcC5zZXJpZXMgPSB0aGlzLnZpZXcuc2VyaWVzO1xyXG4gICAgICAgICAgY29tcC5pbmRpY2VzID0gdGhpcy52aWV3LmluZGljZXM7XHJcbiAgICAgICAgICBjb21wLmNoYXJ0VHlwZSA9IHRoaXMudmlldy5jaGFydFR5cGU7XHJcbiAgICAgICAgICBjb21wLmluZGV4Q2hhcnRUeXBlID0gdGhpcy52aWV3LmluZGV4Q2hhcnRUeXBlO1xyXG4gICAgICAgICAgY29tcC55QXhpcyA9IHRoaXMuY3ViZS55QXhpcztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgY2FzZSAnR3JpZCc6XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGV0IGNvbXAgPSB0aGlzLl9hdHRhY2goQ3ViZUdyaWRDb21wb25lbnQpO1xyXG4gICAgICAgICAgY29tcC53aWR0aCA9IGAke2RpbS53aWR0aCAtIDR9cHhgO1xyXG4gICAgICAgICAgY29tcC5zZXJpZXMgPSB0aGlzLnZpZXcuc2VyaWVzO1xyXG4gICAgICAgICAgY29tcC5pbmRpY2VzID0gdGhpcy52aWV3LmluZGljZXM7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIGNhc2UgJ1NwcmVhZHNoZWV0JzpcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsZXQgY29tcCA9IHRoaXMuX2F0dGFjaChDdWJlU3ByZWFkc2hlZXRDb21wb25lbnQpO1xyXG4gICAgICAgICAgY29tcC53aWR0aCA9IGAke2RpbS53aWR0aH1weGA7XHJcbiAgICAgICAgICBjb21wLmhlaWdodCA9IGAke2RpbS5oZWlnaHR9cHhgO1xyXG4gICAgICAgICAgY29tcC5zZXJpZXMgPSB0aGlzLnZpZXcuc2VyaWVzO1xyXG4gICAgICAgICAgY29tcC5pbmRpY2VzID0gdGhpcy52aWV3LmluZGljZXM7XHJcbiAgICAgICAgICBjb21wLnlBeGlzID0gdGhpcy5jdWJlLnlBeGlzO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHN3aXRjaCAodGhpcy52aWV3LmNoYXJ0VHlwZSkge1xyXG4gICAgICAgICAgY2FzZSAnUGllJzpcclxuICAgICAgICAgIGNhc2UgJ0RvdWdobnV0JzpcclxuICAgICAgICAgIGNhc2UgJ0hhbGZEb3VnaG51dCc6XHJcbiAgICAgICAgICBjYXNlICdGdW5uZWwnOlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgbGV0IGNvbXAgPSB0aGlzLl9hdHRhY2goQ3ViZUFjY3VtdWxhdGlvbkNoYXJ0Q29tcG9uZW50KTtcclxuICAgICAgICAgICAgICBjb21wLmhlaWdodCA9IGAke2RpbS5oZWlnaHR9cHhgO1xyXG4gICAgICAgICAgICAgIGNvbXAuY2hhcnRUeXBlID0gdGhpcy52aWV3LmNoYXJ0VHlwZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGxldCBjb21wID0gdGhpcy5fYXR0YWNoKEN1YmVDaGFydENvbXBvbmVudCk7XHJcbiAgICAgICAgICAgICAgLy9jb21wLmhlaWdodCA9IGAke2RpbS5oZWlnaHR9cHhgO1xyXG4gICAgICAgICAgICAgIGNvbXAuY2hhcnRUeXBlID0gdGhpcy52aWV3LmNoYXJ0VHlwZTtcclxuICAgICAgICAgICAgICBjb21wLnNlcmllcyA9IHRoaXMudmlldy5zZXJpZXM7XHJcbiAgICAgICAgICAgICAgY29tcC5pbmRpY2VzID0gdGhpcy52aWV3LmluZGljZXM7XHJcbiAgICAgICAgICAgICAgY29tcC55QXhpcyA9IHRoaXMuY3ViZS55QXhpcztcclxuICAgICAgICAgICAgICBjb21wLmluZGV4Q2hhcnRUeXBlID0gdGhpcy52aWV3LmluZGV4Q2hhcnRUeXBlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYXR0YWNoPFQgZXh0ZW5kcyBDdWJlVmlld2VyQ29tcG9uZW50Pihjb21wOiBDb21wb25lbnRUeXBlPFQ+KSB7XHJcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5fZmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXApO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcbiAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcclxuICAgIHRoaXMuX2luc3RhbmNlID0gaW5zdGFuY2U7XHJcbiAgICBpbnN0YW5jZS5leHBsb3JlLnBpcGUodGFrZVVudGlsKHRoaXMuX3ZpZXdEZXN0cm95KSkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICBjb25zdCBheGVzID0ge1xyXG4gICAgICAgIC4uLnRoaXMudmlldy5maWx0ZXJzLFxyXG4gICAgICAgIC4uLnRoaXMuYXhlcyxcclxuICAgICAgICAuLi5lLmF4ZXNcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5leHBsb3JlLmVtaXQoeyBheGVzLCBpbmRleDogZS5pbmRleCB9KTtcclxuICAgIH0pO1xyXG4gICAgaW5zdGFuY2UuY3ViZSA9IHRoaXMuY3ViZS5uYW1lO1xyXG4gICAgaW5zdGFuY2UueEF4aXMgPSB0aGlzLnZpZXcueEF4aXM7XHJcbiAgICBpbnN0YW5jZS5jdXJyZW5jeUNvZGUgPSB0aGlzLmN1YmUuY3VycmVuY3lDb2RlO1xyXG4gICAgaW5zdGFuY2UuZmlsdGVycyA9IHsgLi4udGhpcy52aWV3LmZpbHRlcnMsIC4uLnRoaXMuYXhlcyB9O1xyXG4gICAgaW5zdGFuY2UubG9hZGluZ0NoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl92aWV3RGVzdHJveSksIGRlYm91bmNlVGltZSgxNTApKS5zdWJzY3JpYmUoZSA9PlxyXG4gICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdCh0aGlzLmxvYWRpbmcgPSBlKSk7XHJcblxyXG4gICAgcmV0dXJuIGluc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXHJcbiAgcmVzaXplKCkge1xyXG4gICAgdGhpcy5fcmVzaXppbmcubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGltKCk6IERpbWVudGlvbnMge1xyXG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSAodGhpcy5fdmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQpLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHdpZHRoOiBNYXRoLmZsb29yKHdpZHRoKSxcclxuICAgICAgaGVpZ2h0OiBNYXRoLmZsb29yKGhlaWdodCAvKi0gKHRoaXMuX3ZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50KS5vZmZzZXRUb3AqLylcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCkge1xyXG4gICAgdGhpcy5faW5zdGFuY2UuZmlsdGVycyA9IHsgLi4udGhpcy52aWV3LmZpbHRlcnMsIC4uLnRoaXMuYXhlcyB9O1xyXG4gICAgdGhpcy5faW5zdGFuY2UuZXhlY3V0ZSgpO1xyXG4gIH1cclxuICBleHBvcnRUb0V4Y2VsKCkge1xyXG4gICAgdGhpcy5faW5zdGFuY2UuZXhwb3J0VG9FeGNlbCh0aGlzLnZpZXcudGl0bGUpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Jlc2l6aW5nLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl92aWV3RGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl92aWV3RGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjbGFyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2RlY2xhcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXhlc01hcCwgRGltZW50aW9ucyB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXhpc0NsaWNrRXZlbnQge1xyXG4gIGF4ZXM6IEF4ZXNNYXA7XHJcbiAgLyoqIGluZGV4IG5hbWUgKi9cclxuICBpbmRleD86IHN0cmluZztcclxufVxyXG4vKiogKi9cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlVmlld2VyQ29tcG9uZW50IGV4dGVuZHMgT25DaGFuZ2VzIHtcclxuICBleHBvcnRUb0V4Y2VsKHRpdGxlOiBzdHJpbmcpO1xyXG4gIGV4ZWN1dGUoKTtcclxuICBleHBsb3JlPzogRXZlbnRFbWl0dGVyPEF4aXNDbGlja0V2ZW50PjtcclxuICBsb2FkaW5nOiBib29sZWFuO1xyXG4gIGxvYWRpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuICBoZWlnaHQ6IHN0cmluZyB8IG51bWJlcjtcclxuICB3aWR0aD86IHN0cmluZyB8IG51bWJlcjtcclxuICBjdWJlOiBzdHJpbmc7XHJcbiAgeEF4aXM6IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIHNlcmllcz86IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIGluZGljZXM/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICBjdXJyZW5jeUNvZGU6IHN0cmluZztcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjbGFyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2RlY2xhcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXhlc01hcCwgRGltZW50aW9ucyB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXhpc0NsaWNrRXZlbnQge1xyXG4gIGF4ZXM6IEF4ZXNNYXA7XHJcbiAgLyoqIGluZGV4IG5hbWUgKi9cclxuICBpbmRleD86IHN0cmluZztcclxufVxyXG4vKiogKi9cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlVmlld2VyQ29tcG9uZW50IGV4dGVuZHMgT25DaGFuZ2VzIHtcclxuICBleHBvcnRUb0V4Y2VsKHRpdGxlOiBzdHJpbmcpO1xyXG4gIGV4ZWN1dGUoKTtcclxuICByZXNpemUoKTtcclxuICBleHBsb3JlPzogRXZlbnRFbWl0dGVyPEF4aXNDbGlja0V2ZW50PjtcclxuICBsb2FkaW5nOiBib29sZWFuO1xyXG4gIGxvYWRpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuICBoZWlnaHQ6IHN0cmluZyB8IG51bWJlcjtcclxuICB3aWR0aD86IHN0cmluZyB8IG51bWJlcjtcclxuICBjdWJlOiBzdHJpbmc7XHJcbiAgeEF4aXM6IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIHNlcmllcz86IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIGluZGljZXM/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICBjdXJyZW5jeUNvZGU6IHN0cmluZztcclxufVxyXG4iXX0=
@@ -78,10 +78,11 @@ export class CubeGridComponent {
78
78
  // prepare
79
79
  this._prepare =
80
80
  forkJoin(promises).toPromise();
81
+ this.execute();
81
82
  }
82
83
  /** */
83
84
  ngOnChanges(changes) {
84
- if (changes['filters'])
85
+ if (changes['filters'] && !changes['filters'].firstChange)
85
86
  this.execute();
86
87
  else if (changes['height'])
87
88
  this.resize();
@@ -183,7 +184,7 @@ export class CubeGridComponent {
183
184
  }
184
185
  CubeGridComponent.nextId = 0;
185
186
  CubeGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: CubeGridComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.DatasourceService }, { token: i4.CubeService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
186
- CubeGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: CubeGridComponent, selector: "bizdoc-cube-grid", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", yAxis: "yAxis", series: "series", indices: "indices", filters: "filters", currencyCode: "currencyCode", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [".nowrap{white-space:nowrap;word-wrap:normal}::ng-deep .e-rowcell:not(.e-headertext){cursor:pointer}::ng-deep .e-grid td.e-cellselectionbackground{background-color:none}\n"] });
187
+ CubeGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: CubeGridComponent, selector: "bizdoc-cube-grid", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", series: "series", indices: "indices", filters: "filters", currencyCode: "currencyCode", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [".nowrap{white-space:nowrap;word-wrap:normal}::ng-deep .e-rowcell:not(.e-headertext){cursor:pointer}::ng-deep .e-grid td.e-cellselectionbackground{background-color:none}\n"] });
187
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: CubeGridComponent, decorators: [{
188
189
  type: Component,
189
190
  args: [{ selector: 'bizdoc-cube-grid', template: '', host: {
@@ -197,8 +198,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
197
198
  type: Input
198
199
  }], xAxis: [{
199
200
  type: Input
200
- }], yAxis: [{
201
- type: Input
202
201
  }], series: [{
203
202
  type: Input
204
203
  }], indices: [{
@@ -216,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
216
215
  }], id: [{
217
216
  type: HostBinding
218
217
  }] } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvZ3JpZC9ncmlkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsV0FBVyxFQUF5QixLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBRTdJLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBc0IsSUFBSSxFQUF3QixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBa0QsU0FBUyxFQUF1QyxNQUFNLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU92TyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUUvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQVUvRCxNQUFNLE9BQU8saUJBQWlCO0lBNEM1QixZQUNVLFFBQXdCLEVBQ3hCLEdBQWtCLEVBQ2xCLEdBQXNCLEVBQ3RCLFFBQXFCLEVBQ3JCLFdBQXVCO1FBSnZCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDbEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXhCZCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFN0Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWhELE9BQUUsR0FBRyxhQUFhLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxFQUFFLENB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIENvbXBvbmVudCwgT3V0cHV0LCBPbkluaXQsIEhvc3RCaW5kaW5nLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIElucHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwUmVzcG9uc2UgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgR3JvdXBTZXR0aW5nc01vZGVsLCBHcmlkLCBBZ2dyZWdhdGVDb2x1bW5Nb2RlbCwgRXhjZWxFeHBvcnQsIEFnZ3JlZ2F0ZSwgRnJlZXplLCBTZWxlY3Rpb25TZXR0aW5nc01vZGVsLCBDZWxsU2VsZWN0aW5nRXZlbnRBcmdzLCBTZWxlY3Rpb24sIFF1ZXJ5Q2VsbEluZm9FdmVudEFyZ3MsIENvbHVtbk1vZGVsLCBSZXNpemUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1ncmlkcyc7XHJcbmltcG9ydCB7IEF4aXNDbGlja0V2ZW50LCBDdWJlVmlld2VyQ29tcG9uZW50IH0gZnJvbSBcIi4uL2RlY2xhcmF0aW9uc1wiO1xyXG5pbXBvcnQgeyBBeGVzTWFwLCBDdWJlLCBZQXhpcyB9IGZyb20gXCIuLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gXCIuLi9jdWJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuXHJcbkdyaWQuSW5qZWN0KFNlbGVjdGlvbiwgQWdncmVnYXRlLCBGcmVlemUsIEV4Y2VsRXhwb3J0LCBSZXNpemUpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS1ncmlkJyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgc3R5bGVVcmxzOiBbJ2dyaWQuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ2N1YmUtdmlldydcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWJlR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDdWJlVmlld2VyQ29tcG9uZW50LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpXHJcbiAgd2lkdGg6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGhlaWdodDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgY3ViZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHhBeGlzKHZhbDogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3hBeGlzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgeUF4aXM/OiBZQXhpcztcclxuICBASW5wdXQoKVxyXG4gIHNldCBzZXJpZXModmFsOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkgdGhpcy5fc2VyaWVzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGluZGljZXModmFsOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkgdGhpcy5faW5kaWNlcyA9IGlzQXJyYXkodmFsKSA/IHZhbCA6IFt2YWxdO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIEBJbnB1dCgpXHJcbiAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGV4cGxvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPEF4aXNDbGlja0V2ZW50PigpO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGxvYWRpbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgbmV4dElkID0gMDtcclxuICBASG9zdEJpbmRpbmcoKSBpZCA9IGBjdWJlLWdyaWQtJHtDdWJlR3JpZENvbXBvbmVudC5uZXh0SWQrK31gO1xyXG4gIGdyaWQ6IEdyaWQ7XHJcbiAgZGF0YVNvdXJjZTogYW55W10gPSBbXTtcclxuICByZWFkb25seSBncm91cFNldHRpbmdzOiBHcm91cFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgfTtcclxuICByZWFkb25seSBzZWxlY3Rpb25TZXR0aW5nczogU2VsZWN0aW9uU2V0dGluZ3NNb2RlbCA9IHsgY2VsbFNlbGVjdGlvbk1vZGU6ICdCb3gnLCB0eXBlOiAnU2luZ2xlJywgbW9kZTogJ0NlbGwnIH07XHJcbiAgYWdncmVnYXRlczogeyBjb2x1bW5zOiBBZ2dyZWdhdGVDb2x1bW5Nb2RlbFtdIH1bXTtcclxuICBjb2x1bW5zOiBDb2x1bW5Nb2RlbFtdO1xyXG4gIHByaXZhdGUgX3hBeGlzOiBzdHJpbmdbXTtcclxuICBwcml2YXRlIF9zZXJpZXM/OiBzdHJpbmdbXTtcclxuICBwcml2YXRlIF9pbmRpY2VzPzogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfcm93czogeyBrZXk6IGFueTsgdmFsdWU6IGFueSB9W10gPSBbXTtcclxuICBwcml2YXRlIF9jb2x1bW5zOiB7IGtleTogYW55OyB2YWx1ZTogYW55IH1bXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfY3ViZTogQ3ViZTtcclxuICBwcml2YXRlIF9wcmVwYXJlOiBQcm9taXNlPGFueT47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZHM6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7IH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2N1YmUgPSB0aGlzLmN1YmUgPyB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXMuZmluZChjID0+IGMubmFtZSA9PT0gdGhpcy5jdWJlKSA6IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIGNvbnN0IHggPSB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0gdGhpcy5feEF4aXNbMF0pLFxyXG4gICAgICB5ID0gdGhpcy5fY3ViZS5heGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09IHRoaXMuX3Nlcmllc1swXSk7XHJcbiAgICBjb25zdCBwcm9taXNlczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuICAgIC8vIGFxdWlyZSBjb2x1bW5zIHNvdXJjZVxyXG4gICAgbGV0IG9ic2VydmUgPSB0aGlzLl9kcy5hbGwoeC5kYXRhVHlwZSkuXHJcbiAgICAgIHBpcGUodGFwKGMgPT4ge1xyXG4gICAgICAgIHRoaXMuX2NvbHVtbnMgPSBjO1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdCA9IGAke3RoaXMuY3VycmVuY3lDb2RlID8gJ2MnIDogJ24nfSR7dGhpcy5fc2VydmljZS5mcmFjdGlvbkRpZ2l0c31gO1xyXG4gICAgICAgIHRoaXMuY29sdW1ucyA9IFt7XHJcbiAgICAgICAgICBoZWFkZXJUZXh0OiAnJywgZmllbGQ6ICd0aXRsZScsXHJcbiAgICAgICAgfSBhcyBDb2x1bW5Nb2RlbF07XHJcbiAgICAgICAgdGhpcy5fY29sdW1ucy5mb3JFYWNoKGMgPT4gdGhpcy5jb2x1bW5zLnB1c2goe1xyXG4gICAgICAgICAgZmllbGQ6IGBfJHtjLmtleX1gLFxyXG4gICAgICAgICAgaGVhZGVyVGV4dDogYy52YWx1ZSxcclxuICAgICAgICAgIHdpZHRoOiAxMjAsXHJcbiAgICAgICAgICBmb3JtYXQsXHJcbiAgICAgICAgICB0ZXh0QWxpZ246ICdSaWdodCdcclxuICAgICAgICB9IGFzIENvbHVtbk1vZGVsXHJcbiAgICAgICAgKSk7XHJcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGVzID0gW3tcclxuICAgICAgICAgIGNvbHVtbnM6IHRoaXMuX2NvbHVtbnMubWFwKGMgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGNvbHVtbk5hbWU6IGBfJHtjLmtleX1gLFxyXG4gICAgICAgICAgICAgIGZpZWxkOiBgXyR7Yy5rZXl9YCxcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdDdXN0b20nLFxyXG4gICAgICAgICAgICAgIC8vICBmb290ZXJUZW1wbGF0ZTogYFxcJHtpZihDdXN0b20uaW5kZXhPZignLScpPi0xKX1cclxuICAgICAgICAgICAgICAvLzxzcGFuIGNsYXNzPVwibWF0LXdhcm5cIj5cXCR7Q3VzdG9tfTwvc3Bhbj4gXFwke2Vsc2V9XHJcbiAgICAgICAgICAgICAgLy9cXCR7Q3VzdG9tfSBcXCR7L2lmfWAsXHJcbiAgICAgICAgICAgICAgZm9ybWF0LFxyXG4gICAgICAgICAgICAgIGN1c3RvbUFnZ3JlZ2F0ZTogdGhpcy5jdXN0b21BZ2dyZWdhdGUuYmluZCh0aGlzKVxyXG4gICAgICAgICAgICB9IGFzIEFnZ3JlZ2F0ZUNvbHVtbk1vZGVsO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XTtcclxuICAgICAgfSkpO1xyXG4gICAgcHJvbWlzZXMucHVzaChvYnNlcnZlKTtcclxuICAgIC8vIGFxdWlyZSByb3dzIHNvdXJjZVxyXG4gICAgb2JzZXJ2ZSA9IHRoaXMuX2RzLmFsbCh5LmRhdGFUeXBlKS5cclxuICAgICAgcGlwZSh0YXAociA9PiB0aGlzLl9yb3dzID0gcikpO1xyXG4gICAgcHJvbWlzZXMucHVzaChvYnNlcnZlKTtcclxuICAgIC8vIHByZXBhcmVcclxuICAgIHRoaXMuX3ByZXBhcmUgPVxyXG4gICAgICBmb3JrSm9pbihwcm9taXNlcykudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydmaWx0ZXJzJ10pXHJcbiAgICAgIHRoaXMuZXhlY3V0ZSgpO1xyXG4gICAgZWxzZVxyXG4gICAgICBpZiAoY2hhbmdlc1snaGVpZ2h0J10pXHJcbiAgICAgICAgdGhpcy5yZXNpemUoKTtcclxuICB9XHJcbiAgZXhlY3V0ZSgpIHtcclxuICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgdGhpcy5fc2VydmljZS5zZXJpZXModGhpcy5fY3ViZS5uYW1lLCB0aGlzLl94QXhpcywgeyBzZXJpZXM6IHRoaXMuX3NlcmllcywgZmlsdGVyczogdGhpcy5maWx0ZXJzLCBpbmRpY2VzOiB0aGlzLl9pbmRpY2VzIH0pLlxyXG4gICAgICBzdWJzY3JpYmUoc2VyaWVzID0+IHtcclxuICAgICAgICB0aGlzLl9wcmVwYXJlLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3Qgcm93cyA9IFtdO1xyXG4gICAgICAgICAgc2VyaWVzLmZpbHRlcihzID0+IHMuaW5kZXgpLmZvckVhY2gocyA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IHsgdGl0bGU6IHMudGl0bGUsIHR5cGU6ICdJbmRleCcsIGtleTogcy5pbmRleCB9IGFzIE1vZGVsO1xyXG4gICAgICAgICAgICB0aGlzLl9ub3JtYWxpemUocm93LCBzLnBvaW50cyk7XHJcbiAgICAgICAgICAgIHJvd3MucHVzaChyb3cpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLl9yb3dzLmZvckVhY2gociA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IHsgdGl0bGU6IHIudmFsdWUsIGtleTogci5rZXkgfSBhcyBNb2RlbCwgc2VyaWUgPSBzZXJpZXMuZmluZChzID0+IHMubmFtZSA9PT0gci5rZXkpO1xyXG4gICAgICAgICAgICBzZXJpZSAmJlxyXG4gICAgICAgICAgICAgIHRoaXMuX25vcm1hbGl6ZShyb3csIHNlcmllLnBvaW50cyk7XHJcbiAgICAgICAgICAgIHJvd3MucHVzaChyb3cpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSByb3dzO1xyXG4gICAgICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LCAoZTogSHR0cFJlc3BvbnNlPGFueT4pID0+IHtcclxuICAgICAgICB0aGlzLl9zYi5lcnJvcihlLnN0YXR1cyA9PT0gNDAxID8gJ1VuYXV0aG9yaXplZCcgOiBudWxsKTtcclxuICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9ub3JtYWxpemUocm93OiBNb2RlbCwgcG9pbnRzOiBhbnlbXSkge1xyXG4gICAgcG9pbnRzLmZvckVhY2gocCA9PiByb3dbYF8ke3AueH1gXSA9IHAueSk7XHJcbiAgICB0aGlzLl9jb2x1bW5zLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGlmIChyb3dbYF8ke2Mua2V5fWBdID09PSB1bmRlZmluZWQpIHJvd1tgXyR7Yy5rZXl9YF0gPSAwO1xyXG4gICAgfSk7XHJcbiAgfTtcclxuICBwcml2YXRlIF9kcmF3KCkge1xyXG4gICAgdGhpcy5ncmlkICYmIHRoaXMuZ3JpZC5kZXN0cm95KCk7XHJcbiAgICB0aGlzLmdyaWQgPSBuZXcgR3JpZCh7XHJcbiAgICAgIGRhdGFTb3VyY2U6IHRoaXMuZGF0YVNvdXJjZSxcclxuICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zLFxyXG4gICAgICBlbmFibGVIb3ZlcjogZmFsc2UsXHJcbiAgICAgIGFsbG93RXhjZWxFeHBvcnQ6IHRydWUsXHJcbiAgICAgIHNlbGVjdGlvblNldHRpbmdzOiB0aGlzLnNlbGVjdGlvblNldHRpbmdzLFxyXG4gICAgICBhbGxvd1NvcnRpbmc6IGZhbHNlLFxyXG4gICAgICBmcm96ZW5Db2x1bW5zOiAxLFxyXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgLy9oZWlnaHQ6IHRoaXMuaGVpZ2h0LFxyXG4gICAgICBjZWxsU2VsZWN0aW5nOiB0aGlzLmNlbGxTZWxlY3RpbmcuYmluZCh0aGlzKSxcclxuICAgICAgYWxsb3dQYWdpbmc6IGZhbHNlLFxyXG4gICAgICBxdWVyeUNlbGxJbmZvOiB0aGlzLnF1ZXJ5Q2VsbEluZm8sXHJcbiAgICAgIGZyb3plblJvd3M6IHRoaXMuaW5kaWNlcyA/IHRoaXMuaW5kaWNlcy5sZW5ndGggOiAwLFxyXG4gICAgICBhZ2dyZWdhdGVzOiB0aGlzLmFnZ3JlZ2F0ZXMsXHJcbiAgICAgIGN1cnJlbmN5Q29kZTogdGhpcy5jdXJyZW5jeUNvZGVcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIHF1ZXJ5Q2VsbEluZm8oZXZ0OiBRdWVyeUNlbGxJbmZvRXZlbnRBcmdzKSB7XHJcbiAgICBpZiAoZXZ0LmNvbHVtbi5maWVsZCA9PT0gJ3RpdGxlJylcclxuICAgICAgZXZ0LmNlbGwuY2xhc3NMaXN0LmFkZCgnZS1oZWFkZXJ0ZXh0Jyk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgdmFsID0gZXZ0LmRhdGFbZXZ0LmNvbHVtbi5maWVsZF07XHJcbiAgICAgIGlmICh2YWwgPCAwKVxyXG4gICAgICAgIGV2dC5jZWxsLmNsYXNzTGlzdC5hZGQoJ25lZ2F0aXZlLWZpZ3VyZScpO1xyXG4gICAgICBldnQuY2VsbC5jbGFzc0xpc3QuYWRkKCdub3dyYXAnKTtcclxuICAgIH1cclxuICB9XHJcbiAgY2VsbFNlbGVjdGluZyhldnQ6IENlbGxTZWxlY3RpbmdFdmVudEFyZ3MpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgY2VsbEluZGV4OiB7IGNlbGxJbmRleCB9IH0gPSBldnQsIHsga2V5OiByb3csIHR5cGUgfSA9IGRhdGEgYXMgTW9kZWw7XHJcbiAgICBldnQuY2FuY2VsID0gdHJ1ZTtcclxuICAgIGlmIChjZWxsSW5kZXggPT09IDApXHJcbiAgICAgIHJldHVybjtcclxuICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuX2NvbHVtbnNbY2VsbEluZGV4IC0gMV0ua2V5O1xyXG4gICAgaWYgKGRhdGFbYF8ke2NvbHVtbn1gXSA9PT0gMCkgcmV0dXJuO1xyXG4gICAgY29uc3QgYXhlczoge30gPSB7fTtcclxuICAgIGF4ZXNbdGhpcy5feEF4aXNbMF1dID0gY29sdW1uO1xyXG4gICAgaWYgKHR5cGUgIT09ICdJbmRleCcpIGF4ZXNbdGhpcy5fc2VyaWVzWzBdXSA9IHJvdztcclxuICAgIHRoaXMuZXhwbG9yZS5lbWl0KHsgYXhlcywgaW5kZXg6IHR5cGUgPT09ICdJbmRleCcgPyByb3cgOiBudWxsIH0pO1xyXG4gIH1cclxuICBwdWJsaWMgY3VzdG9tQWdncmVnYXRlKF8sIGNvbHVtbjogQWdncmVnYXRlQ29sdW1uTW9kZWwpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2Uuc3VtKHIgPT5cclxuICAgICAgKHJbY29sdW1uLmZpZWxkXSB8fCAwKSAqIChyLnR5cGUgPT09ICdJbmRleCcgPyAxIDogLTEpKTtcclxuICB9XHJcbiAgcmVzaXplKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZ3JpZCkge1xyXG4gICAgICB0aGlzLmdyaWQud2lkdGggPSB0aGlzLndpZHRoO1xyXG4gICAgfVxyXG4gIH1cclxuICBleHBvcnRUb0V4Y2VsKHRpdGxlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZ3JpZC5leGNlbEV4cG9ydCh7XHJcbiAgICAgIGZpbGVOYW1lOiBgJHt0aXRsZX0ueGxzeGBcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JpZCAmJiB0aGlzLmdyaWQuZGVzdHJveSgpO1xyXG4gIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIE1vZGVsIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHR5cGU6ICdJbmRleCcgfCBudWxsO1xyXG4gIGtleTogYW55O1xyXG59XHJcbiJdfQ==
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvZ3JpZC9ncmlkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsV0FBVyxFQUF5QixLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBRTdJLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBc0IsSUFBSSxFQUF3QixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBa0QsU0FBUyxFQUF1QyxNQUFNLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU92TyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUUvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQVUvRCxNQUFNLE9BQU8saUJBQWlCO0lBMEM1QixZQUNVLFFBQXdCLEVBQ3hCLEdBQWtCLEVBQ2xCLEdBQXNCLEVBQ3RCLFFBQXFCLEVBQ3JCLFdBQXVCO1FBSnZCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDbEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQXhCZCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFN0Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWhELE9BQUUsR0FBRyxhQUFhLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxFQUFFLENB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Z0JBQ2EsYUFBYTtzQkFBL0IsTUFBTTtnQkFFUSxFQUFFO3NCQUFoQixXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBDb21wb25lbnQsIE91dHB1dCwgT25Jbml0LCBIb3N0QmluZGluZywgRWxlbWVudFJlZiwgT25EZXN0cm95LCBJbnB1dCwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IEdyb3VwU2V0dGluZ3NNb2RlbCwgR3JpZCwgQWdncmVnYXRlQ29sdW1uTW9kZWwsIEV4Y2VsRXhwb3J0LCBBZ2dyZWdhdGUsIEZyZWV6ZSwgU2VsZWN0aW9uU2V0dGluZ3NNb2RlbCwgQ2VsbFNlbGVjdGluZ0V2ZW50QXJncywgU2VsZWN0aW9uLCBRdWVyeUNlbGxJbmZvRXZlbnRBcmdzLCBDb2x1bW5Nb2RlbCwgUmVzaXplIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZ3JpZHMnO1xyXG5pbXBvcnQgeyBBeGlzQ2xpY2tFdmVudCwgQ3ViZVZpZXdlckNvbXBvbmVudCB9IGZyb20gXCIuLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgQXhlc01hcCwgQ3ViZSB9IGZyb20gXCIuLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gXCIuLi9jdWJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuXHJcbkdyaWQuSW5qZWN0KFNlbGVjdGlvbiwgQWdncmVnYXRlLCBGcmVlemUsIEV4Y2VsRXhwb3J0LCBSZXNpemUpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS1ncmlkJyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgc3R5bGVVcmxzOiBbJ2dyaWQuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ2N1YmUtdmlldydcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWJlR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDdWJlVmlld2VyQ29tcG9uZW50LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpXHJcbiAgd2lkdGg6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGhlaWdodDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgY3ViZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHhBeGlzKHZhbDogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3hBeGlzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNlcmllcyh2YWw6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB0aGlzLl9zZXJpZXMgPSBpc0FycmF5KHZhbCkgPyB2YWwgOiBbdmFsXTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBzZXQgaW5kaWNlcyh2YWw6IHN0cmluZ1tdIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB0aGlzLl9pbmRpY2VzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZmlsdGVycz86IEF4ZXNNYXA7XHJcbiAgQElucHV0KClcclxuICBjdXJyZW5jeUNvZGU6IHN0cmluZztcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgZXhwbG9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXhpc0NsaWNrRXZlbnQ+KCk7XHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgbG9hZGluZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIEBIb3N0QmluZGluZygpIGlkID0gYGN1YmUtZ3JpZC0ke0N1YmVHcmlkQ29tcG9uZW50Lm5leHRJZCsrfWA7XHJcbiAgZ3JpZDogR3JpZDtcclxuICBkYXRhU291cmNlOiBhbnlbXSA9IFtdO1xyXG4gIHJlYWRvbmx5IGdyb3VwU2V0dGluZ3M6IEdyb3VwU2V0dGluZ3NNb2RlbCA9IHtcclxuICB9O1xyXG4gIHJlYWRvbmx5IHNlbGVjdGlvblNldHRpbmdzOiBTZWxlY3Rpb25TZXR0aW5nc01vZGVsID0geyBjZWxsU2VsZWN0aW9uTW9kZTogJ0JveCcsIHR5cGU6ICdTaW5nbGUnLCBtb2RlOiAnQ2VsbCcgfTtcclxuICBhZ2dyZWdhdGVzOiB7IGNvbHVtbnM6IEFnZ3JlZ2F0ZUNvbHVtbk1vZGVsW10gfVtdO1xyXG4gIGNvbHVtbnM6IENvbHVtbk1vZGVsW107XHJcbiAgcHJpdmF0ZSBfeEF4aXM6IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX3Nlcmllcz86IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX2luZGljZXM/OiBzdHJpbmdbXTtcclxuICBwcml2YXRlIF9yb3dzOiB7IGtleTogYW55OyB2YWx1ZTogYW55IH1bXSA9IFtdO1xyXG4gIHByaXZhdGUgX2NvbHVtbnM6IHsga2V5OiBhbnk7IHZhbHVlOiBhbnkgfVtdID0gW107XHJcbiAgICBwcml2YXRlIF9jdWJlOiBDdWJlO1xyXG4gIHByaXZhdGUgX3ByZXBhcmU6IFByb21pc2U8YW55PjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kczogRGF0YXNvdXJjZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHsgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY3ViZSA9IHRoaXMuY3ViZSA/IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLmN1YmUpIDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdO1xyXG4gICAgY29uc3QgeCA9IHRoaXMuX2N1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSB0aGlzLl94QXhpc1swXSksXHJcbiAgICAgIHkgPSB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0gdGhpcy5fc2VyaWVzWzBdKTtcclxuICAgIGNvbnN0IHByb21pc2VzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG4gICAgLy8gYXF1aXJlIGNvbHVtbnMgc291cmNlXHJcbiAgICBsZXQgb2JzZXJ2ZSA9IHRoaXMuX2RzLmFsbCh4LmRhdGFUeXBlKS5cclxuICAgICAgcGlwZSh0YXAoYyA9PiB7XHJcbiAgICAgICAgdGhpcy5fY29sdW1ucyA9IGM7XHJcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gYCR7dGhpcy5jdXJyZW5jeUNvZGUgPyAnYycgOiAnbid9JHt0aGlzLl9zZXJ2aWNlLmZyYWN0aW9uRGlnaXRzfWA7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zID0gW3tcclxuICAgICAgICAgIGhlYWRlclRleHQ6ICcnLCBmaWVsZDogJ3RpdGxlJyxcclxuICAgICAgICB9IGFzIENvbHVtbk1vZGVsXTtcclxuICAgICAgICB0aGlzLl9jb2x1bW5zLmZvckVhY2goYyA9PiB0aGlzLmNvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgICBmaWVsZDogYF8ke2Mua2V5fWAsXHJcbiAgICAgICAgICBoZWFkZXJUZXh0OiBjLnZhbHVlLFxyXG4gICAgICAgICAgd2lkdGg6IDEyMCxcclxuICAgICAgICAgIGZvcm1hdCxcclxuICAgICAgICAgIHRleHRBbGlnbjogJ1JpZ2h0J1xyXG4gICAgICAgIH0gYXMgQ29sdW1uTW9kZWxcclxuICAgICAgICApKTtcclxuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZXMgPSBbe1xyXG4gICAgICAgICAgY29sdW1uczogdGhpcy5fY29sdW1ucy5tYXAoYyA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgY29sdW1uTmFtZTogYF8ke2Mua2V5fWAsXHJcbiAgICAgICAgICAgICAgZmllbGQ6IGBfJHtjLmtleX1gLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ0N1c3RvbScsXHJcbiAgICAgICAgICAgICAgLy8gIGZvb3RlclRlbXBsYXRlOiBgXFwke2lmKEN1c3RvbS5pbmRleE9mKCctJyk+LTEpfVxyXG4gICAgICAgICAgICAgIC8vPHNwYW4gY2xhc3M9XCJtYXQtd2FyblwiPlxcJHtDdXN0b219PC9zcGFuPiBcXCR7ZWxzZX1cclxuICAgICAgICAgICAgICAvL1xcJHtDdXN0b219IFxcJHsvaWZ9YCxcclxuICAgICAgICAgICAgICBmb3JtYXQsXHJcbiAgICAgICAgICAgICAgY3VzdG9tQWdncmVnYXRlOiB0aGlzLmN1c3RvbUFnZ3JlZ2F0ZS5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgIH0gYXMgQWdncmVnYXRlQ29sdW1uTW9kZWw7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1dO1xyXG4gICAgICB9KSk7XHJcbiAgICBwcm9taXNlcy5wdXNoKG9ic2VydmUpO1xyXG4gICAgLy8gYXF1aXJlIHJvd3Mgc291cmNlXHJcbiAgICBvYnNlcnZlID0gdGhpcy5fZHMuYWxsKHkuZGF0YVR5cGUpLlxyXG4gICAgICBwaXBlKHRhcChyID0+IHRoaXMuX3Jvd3MgPSByKSk7XHJcbiAgICBwcm9taXNlcy5wdXNoKG9ic2VydmUpO1xyXG4gICAgLy8gcHJlcGFyZVxyXG4gICAgdGhpcy5fcHJlcGFyZSA9XHJcbiAgICAgIGZvcmtKb2luKHByb21pc2VzKS50b1Byb21pc2UoKTtcclxuICAgICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydmaWx0ZXJzJ10gJiYgIWNoYW5nZXNbJ2ZpbHRlcnMnXS5maXJzdENoYW5nZSlcclxuICAgICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGlmIChjaGFuZ2VzWydoZWlnaHQnXSlcclxuICAgICAgICB0aGlzLnJlc2l6ZSgpO1xyXG4gIH1cclxuICBleGVjdXRlKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnNlcmllcyh0aGlzLl9jdWJlLm5hbWUsIHRoaXMuX3hBeGlzLCB7IHNlcmllczogdGhpcy5fc2VyaWVzLCBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMsIGluZGljZXM6IHRoaXMuX2luZGljZXMgfSkuXHJcbiAgICAgIHN1YnNjcmliZShzZXJpZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmUudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCByb3dzID0gW107XHJcbiAgICAgICAgICBzZXJpZXMuZmlsdGVyKHMgPT4gcy5pbmRleCkuZm9yRWFjaChzID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgcm93ID0geyB0aXRsZTogcy50aXRsZSwgdHlwZTogJ0luZGV4Jywga2V5OiBzLmluZGV4IH0gYXMgTW9kZWw7XHJcbiAgICAgICAgICAgIHRoaXMuX25vcm1hbGl6ZShyb3csIHMucG9pbnRzKTtcclxuICAgICAgICAgICAgcm93cy5wdXNoKHJvdyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuX3Jvd3MuZm9yRWFjaChyID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgcm93ID0geyB0aXRsZTogci52YWx1ZSwga2V5OiByLmtleSB9IGFzIE1vZGVsLCBzZXJpZSA9IHNlcmllcy5maW5kKHMgPT4gcy5uYW1lID09PSByLmtleSk7XHJcbiAgICAgICAgICAgIHNlcmllICYmXHJcbiAgICAgICAgICAgICAgdGhpcy5fbm9ybWFsaXplKHJvdywgc2VyaWUucG9pbnRzKTtcclxuICAgICAgICAgICAgcm93cy5wdXNoKHJvdyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IHJvd3M7XHJcbiAgICAgICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sIChlOiBIdHRwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yKGUuc3RhdHVzID09PSA0MDEgPyAnVW5hdXRob3JpemVkJyA6IG51bGwpO1xyXG4gICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX25vcm1hbGl6ZShyb3c6IE1vZGVsLCBwb2ludHM6IGFueVtdKSB7XHJcbiAgICBwb2ludHMuZm9yRWFjaChwID0+IHJvd1tgXyR7cC54fWBdID0gcC55KTtcclxuICAgIHRoaXMuX2NvbHVtbnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgaWYgKHJvd1tgXyR7Yy5rZXl9YF0gPT09IHVuZGVmaW5lZCkgcm93W2BfJHtjLmtleX1gXSA9IDA7XHJcbiAgICB9KTtcclxuICB9O1xyXG4gIHByaXZhdGUgX2RyYXcoKSB7XHJcbiAgICB0aGlzLmdyaWQgJiYgdGhpcy5ncmlkLmRlc3Ryb3koKTtcclxuICAgIHRoaXMuZ3JpZCA9IG5ldyBHcmlkKHtcclxuICAgICAgZGF0YVNvdXJjZTogdGhpcy5kYXRhU291cmNlLFxyXG4gICAgICBjb2x1bW5zOiB0aGlzLmNvbHVtbnMsXHJcbiAgICAgIGVuYWJsZUhvdmVyOiBmYWxzZSxcclxuICAgICAgYWxsb3dFeGNlbEV4cG9ydDogdHJ1ZSxcclxuICAgICAgc2VsZWN0aW9uU2V0dGluZ3M6IHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MsXHJcbiAgICAgIGFsbG93U29ydGluZzogZmFsc2UsXHJcbiAgICAgIGZyb3plbkNvbHVtbnM6IDEsXHJcbiAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxyXG4gICAgICAvL2hlaWdodDogdGhpcy5oZWlnaHQsXHJcbiAgICAgIGNlbGxTZWxlY3Rpbmc6IHRoaXMuY2VsbFNlbGVjdGluZy5iaW5kKHRoaXMpLFxyXG4gICAgICBhbGxvd1BhZ2luZzogZmFsc2UsXHJcbiAgICAgIHF1ZXJ5Q2VsbEluZm86IHRoaXMucXVlcnlDZWxsSW5mbyxcclxuICAgICAgZnJvemVuUm93czogdGhpcy5pbmRpY2VzID8gdGhpcy5pbmRpY2VzLmxlbmd0aCA6IDAsXHJcbiAgICAgIGFnZ3JlZ2F0ZXM6IHRoaXMuYWdncmVnYXRlcyxcclxuICAgICAgY3VycmVuY3lDb2RlOiB0aGlzLmN1cnJlbmN5Q29kZVxyXG4gICAgfSwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcbiAgcXVlcnlDZWxsSW5mbyhldnQ6IFF1ZXJ5Q2VsbEluZm9FdmVudEFyZ3MpIHtcclxuICAgIGlmIChldnQuY29sdW1uLmZpZWxkID09PSAndGl0bGUnKVxyXG4gICAgICBldnQuY2VsbC5jbGFzc0xpc3QuYWRkKCdlLWhlYWRlcnRleHQnKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCB2YWwgPSBldnQuZGF0YVtldnQuY29sdW1uLmZpZWxkXTtcclxuICAgICAgaWYgKHZhbCA8IDApXHJcbiAgICAgICAgZXZ0LmNlbGwuY2xhc3NMaXN0LmFkZCgnbmVnYXRpdmUtZmlndXJlJyk7XHJcbiAgICAgIGV2dC5jZWxsLmNsYXNzTGlzdC5hZGQoJ25vd3JhcCcpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjZWxsU2VsZWN0aW5nKGV2dDogQ2VsbFNlbGVjdGluZ0V2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBkYXRhLCBjZWxsSW5kZXg6IHsgY2VsbEluZGV4IH0gfSA9IGV2dCwgeyBrZXk6IHJvdywgdHlwZSB9ID0gZGF0YSBhcyBNb2RlbDtcclxuICAgIGV2dC5jYW5jZWwgPSB0cnVlO1xyXG4gICAgaWYgKGNlbGxJbmRleCA9PT0gMClcclxuICAgICAgcmV0dXJuO1xyXG4gICAgY29uc3QgY29sdW1uID0gdGhpcy5fY29sdW1uc1tjZWxsSW5kZXggLSAxXS5rZXk7XHJcbiAgICBpZiAoZGF0YVtgXyR7Y29sdW1ufWBdID09PSAwKSByZXR1cm47XHJcbiAgICBjb25zdCBheGVzOiB7fSA9IHt9O1xyXG4gICAgYXhlc1t0aGlzLl94QXhpc1swXV0gPSBjb2x1bW47XHJcbiAgICBpZiAodHlwZSAhPT0gJ0luZGV4JykgYXhlc1t0aGlzLl9zZXJpZXNbMF1dID0gcm93O1xyXG4gICAgdGhpcy5leHBsb3JlLmVtaXQoeyBheGVzLCBpbmRleDogdHlwZSA9PT0gJ0luZGV4JyA/IHJvdyA6IG51bGwgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBjdXN0b21BZ2dyZWdhdGUoXywgY29sdW1uOiBBZ2dyZWdhdGVDb2x1bW5Nb2RlbCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5zdW0ociA9PlxyXG4gICAgICAocltjb2x1bW4uZmllbGRdIHx8IDApICogKHIudHlwZSA9PT0gJ0luZGV4JyA/IDEgOiAtMSkpO1xyXG4gIH1cclxuICByZXNpemUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ncmlkKSB7XHJcbiAgICAgIHRoaXMuZ3JpZC53aWR0aCA9IHRoaXMud2lkdGg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGV4cG9ydFRvRXhjZWwodGl0bGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5ncmlkLmV4Y2VsRXhwb3J0KHtcclxuICAgICAgZmlsZU5hbWU6IGAke3RpdGxlfS54bHN4YFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncmlkICYmIHRoaXMuZ3JpZC5kZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcblxyXG5pbnRlcmZhY2UgTW9kZWwge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdHlwZTogJ0luZGV4JyB8IG51bGw7XHJcbiAga2V5OiBhbnk7XHJcbn1cclxuIl19