@wizishop/img-manager 0.2.74 → 0.2.78

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 (35) hide show
  1. package/assets/i18n/en.json +1 -1
  2. package/bundles/wizishop-img-manager.umd.js +151 -25
  3. package/bundles/wizishop-img-manager.umd.js.map +1 -1
  4. package/bundles/wizishop-img-manager.umd.min.js +1 -1
  5. package/bundles/wizishop-img-manager.umd.min.js.map +1 -1
  6. package/esm2015/lib/components/images-view/images-view.component.js +10 -4
  7. package/esm2015/lib/components/img-editor/img-editor.component.js +6 -2
  8. package/esm2015/lib/components/shared/pagination/page-selector/page-selector.component.js +55 -0
  9. package/esm2015/lib/components/shared/pagination/pagination.component.js +4 -4
  10. package/esm2015/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.js +51 -0
  11. package/esm2015/lib/services/img-manager.service.js +2 -2
  12. package/esm2015/lib/wz-img-manager.module.js +7 -3
  13. package/esm2015/wizishop-img-manager.js +18 -16
  14. package/esm5/lib/components/images-view/images-view.component.js +10 -4
  15. package/esm5/lib/components/img-editor/img-editor.component.js +6 -2
  16. package/esm5/lib/components/shared/pagination/page-selector/page-selector.component.js +64 -0
  17. package/esm5/lib/components/shared/pagination/pagination.component.js +4 -4
  18. package/esm5/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.js +54 -0
  19. package/esm5/lib/services/img-manager.service.js +2 -2
  20. package/esm5/lib/wz-img-manager.module.js +7 -3
  21. package/esm5/wizishop-img-manager.js +18 -16
  22. package/fesm2015/wizishop-img-manager.js +123 -11
  23. package/fesm2015/wizishop-img-manager.js.map +1 -1
  24. package/fesm5/wizishop-img-manager.js +135 -11
  25. package/fesm5/wizishop-img-manager.js.map +1 -1
  26. package/lib/components/images-view/images-view.component.d.ts +1 -0
  27. package/lib/components/shared/pagination/page-selector/page-selector.component.d.ts +20 -0
  28. package/lib/components/shared/pagination/pagination.component.d.ts +1 -1
  29. package/lib/pipes/pagination/large-number-of-page/large-number-of-page.pipe.d.ts +10 -0
  30. package/package.json +1 -1
  31. package/wizishop-img-manager-0.2.78.tgz +0 -0
  32. package/wizishop-img-manager.d.ts +17 -15
  33. package/wizishop-img-manager.metadata.json +1 -1
  34. package/wz-img-manager.scss +2558 -2487
  35. package/wizishop-img-manager-0.2.74.tgz +0 -0
@@ -373,8 +373,8 @@ let ImagesViewComponent = class ImagesViewComponent {
373
373
  _getImgList() {
374
374
  this.isLoading = true;
375
375
  this.displayPexelsResults = false;
376
- this.isTotalRetieved = false;
377
376
  this.setParams();
377
+ this.refreshTotalImgList();
378
378
  this.imgManager.getShopImgList(this.params).pipe(take(1)).subscribe((data) => {
379
379
  this.initVariables(true);
380
380
  const nbImgDisplayed = data.data.length;
@@ -392,19 +392,25 @@ let ImagesViewComponent = class ImagesViewComponent {
392
392
  if (data.totalRecords === 0) {
393
393
  this.displayPexelsLib();
394
394
  }
395
- this.refreshTotalImgList();
396
395
  }, error => {
397
396
  this.alertService.openAlert(this.errorGetAllImg);
398
397
  this.initVariables(false);
399
398
  });
400
399
  }
401
400
  refreshTotalImgList() {
401
+ const searchValue = this.tableFilters.searchValue;
402
+ if (this.isTotalRetieved && searchValue === this.previousSearchValue) {
403
+ // Keep current total result
404
+ return;
405
+ }
406
+ this.isTotalRetieved = false;
402
407
  this.imgManager.getShopTotalImgList(this.params).pipe(take(1)).subscribe((data) => {
408
+ this.previousSearchValue = searchValue;
403
409
  this.isTotalRetieved = true;
404
410
  this.length = data.totalRecords;
405
411
  this.tableFilters.totalItems = data.totalRecords;
406
412
  }, error => {
407
- this.alertService.openAlert(this.errorGetTotalImg);
413
+ //this.alertService.openAlert(this.errorGetTotalImg);
408
414
  this.initVariables(false);
409
415
  });
410
416
  }
@@ -468,4 +474,4 @@ ImagesViewComponent = __decorate([
468
474
  RenamePictureService])
469
475
  ], ImagesViewComponent);
470
476
  export { ImagesViewComponent };
471
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdpemlzaG9wL2ltZy1tYW5hZ2VyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW1hZ2VzLXZpZXcvaW1hZ2VzLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUUvRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQWdCLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUczRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRXJGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQVU1RCxJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtJQW9JOUIsWUFDVSxVQUE2QixFQUM3QixlQUFnQyxFQUNoQyxtQkFBd0MsRUFDeEMsWUFBMEIsRUFDMUIsbUJBQXdDLEVBQ3hDLG9CQUEwQztRQUwxQyxlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFx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Q2xCLG9CQUFvQjs7QUF4STNDO0lBQVIsS0FBSyxFQUFFOzsyREFBZ0M7QUFDL0I7SUFBUixLQUFLLEVBQUU7O3lEQUE0QjtBQUMzQjtJQUFSLEtBQUssRUFBRTs7cURBQW1CO0FBQ2xCO0lBQVIsS0FBSyxFQUFFOzs4REFBMkI7QUFDMUI7SUFBUixLQUFLLEVBQUU7OzBEQUF1QjtBQUN0QjtJQUFSLEtBQUssRUFBRTs7NERBQXlCO0FBWUg7SUFBN0IsU0FBUyxDQUFDLGlCQUFpQixDQUFDOzhCQUFtQixVQUFVOzREQUFDO0FBbkJoRCxtQkFBbUI7SUFSL0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGFBQWE7UUFDdkIsbXlOQUEyQztRQUMzQyxVQUFVLEVBQUU7WUFDVixTQUFTO1lBQ1QsWUFBWTtTQUNiO0tBQ0YsQ0FBQztxQ0FzSXNCLGlCQUFpQjtRQUNaLGVBQWU7UUFDWCxtQkFBbUI7UUFDMUIsWUFBWTtRQUNMLG1CQUFtQjtRQUNsQixvQkFBb0I7R0ExSXpDLG1CQUFtQixDQStlL0I7U0EvZVksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEltZ1BpY3R1cmVEVE8sIEltZ1BpY3R1cmVzRFRPLCBQYXJhbXNJbWdNYW5hZ2VyRFRPIH0gZnJvbSAnLi4vLi4vZHRvL2ltZy1tYW5hZ2VyLmR0byc7XG5pbXBvcnQgeyBJbWdNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltZy1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEltZ0V2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltZy1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEltZ1NlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbWctc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3VzZXItc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBUYWJsZUZpbHRlcnMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWJsZS9maWx0ZXJzLXRhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGljdHVyZU5hbWVVcGRhdGUgfSBmcm9tICcuLi8uLi9kdG8vcGljdHVyZS1uYW1lLXVwZGF0ZS5kdG8nO1xuaW1wb3J0IHsgZWFzZUluT3V0IH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9ucy9lYXNlSW5PdXQvZWFzZS1pbi1vdXQuYW5pbWF0aW9uJztcbmltcG9ydCB7IGluc2VydFJlbW92ZSB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvaW5zZXJ0UmVtb3ZlL2luc2VydC1yZW1vdmUuYW5pbWF0aW9uJztcbmltcG9ydCB7IHN0YXRlRGlzcGxheWVkLCB0YWJEaXNwbGF5ZWQgfSBmcm9tICcuLi8uLi9kdG8vZXhwb3J0LWR0b3MuYXBpJztcbmltcG9ydCB7IFJlbmFtZVBpY3R1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVuYW1lLXBpY3R1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbGVydC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1hZ2VzLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2VzLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBhbmltYXRpb25zOiBbXG4gICAgZWFzZUluT3V0LFxuICAgIGluc2VydFJlbW92ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlc1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIEBJbnB1dCgpIHN0YXRlRGlzcGxheWVkOiBzdGF0ZURpc3BsYXllZDtcbiAgQElucHV0KCkgdGFiRGlzcGxheWVkOiB0YWJEaXNwbGF5ZWQ7XG4gIEBJbnB1dCgpIGZ1bGxTaXplOiBib29sZWFuO1xuICBASW5wdXQoKSBtYXhMZW5ndGhDYXJkU2hvdzogbnVtYmVyO1xuICBASW5wdXQoKSBsaXN0RGlzcGxheWVkID0gZmFsc2U7IC8vIERpc3BsYXkgZm9ybWF0IGxpc3Qgb3IgbW9zYWljXG4gIEBJbnB1dCgpIG11bHRpcGxlSW1nTW9kZSA9IGZhbHNlO1xuXG4gIC8vIERhdGEgZmlsdGVyc1xuICB0YWJsZUZpbHRlcnM6IFRhYmxlRmlsdGVycyA9IHtcbiAgICBzb3J0OiB1bmRlZmluZWQsXG4gICAgb3JkZXI6IHVuZGVmaW5lZCxcbiAgICBzZWFyY2hWYWx1ZTogJycsXG4gICAgdG90YWxJdGVtczogMCxcbiAgICBpdGVtc1BlclBhZ2U6IDAsXG4gICAgY3VycmVudFBhZ2U6IDFcbiAgfTtcblxuICBAVmlld0NoaWxkKCdpbWdMaWJDb250YWluZXInKSBpbWdMaWJDb250YWluZXIgOiBFbGVtZW50UmVmO1xuICB3aWR0aExhcmdlQ2FyZDogbnVtYmVyID0gMjE5OyAvLyBEZWZhdWx0IHZhbHVlIG9mIGEgY2FyZCB3aWR0aCAxOTkgKyBtYXJnaW4gMjBcbiAgd2lkdGhTbWFsbENhcmQ6IG51bWJlciA9IDE2MDsgLy8gRGVmYXVsdCB2YWx1ZSBvZiBhIGNhcmQgd2lkdGggMTQwICsgbWFyZ2luIDIwXG4gIG5iTWluSW1nUGVyTGluZTogbnVtYmVyO1xuICBuYk1heEltZ1BlckxpbmU6IG51bWJlcjtcbiAgbmJGYWtlSW1nOiBudW1iZXIgPSAwO1xuXG4gIGltZ0Z1bGxXaWR0aENvbmZpZzphbnkgPSBbXG4gICAge1xuICAgICAgbWF4OiA0MTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjVcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogNDk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDEsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC41XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDcxOSwgLy8gdGFibGV0XG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC41LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMzMzM1xuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMDIzLCAvLyBkZXNrb3BcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjMzMzMsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4yXG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDEzOTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjEyNVxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxNTk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMixcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjExMTFcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjE2NjYsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xXG4gICAgfVxuICBdO1xuXG4gIGltZ1dpZHRoQ29uZmlnOmFueSA9IFtcbiAgICB7XG4gICAgICBtYXg6IDEwMjQsXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjEyNVxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMTk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMzMzMyxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjJcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTI5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjMzMzMsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xNjY2XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDEzOTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjE2NjZcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTU5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTRcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTI1XG4gICAgfVxuICBdO1xuXG4gIGltZ1N1YnNjcmliZTogU3Vic2NyaXB0aW9uO1xuICBpbWdSZW1vdmVkRXZlbnQ6IFN1YnNjcmlwdGlvbjtcbiAgaW1nQWRkZWRFdmVudDogU3Vic2NyaXB0aW9uO1xuICBpbWdTZWxlY3Rpb25DaGFuZ2U6IFN1YnNjcmlwdGlvbjtcbiAgc2VhcmNoUXVlcnlDaGFuZ2VkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIGZpbHRlcnNDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwaWN0dXJlc0xpc3Q6IEltZ1BpY3R1cmVEVE9bXSA9IFtdO1xuICBzYXZlUGljdHVyZUxpc3Q6IEltZ1BpY3R1cmVEVE9bXSA9IFtdO1xuICBpbWdTZWxlY3RlZExpc3Q6IEltZ1BpY3R1cmVEVE9bXTtcbiAgc2VhcmNoZWRWYWx1ZTogc3RyaW5nOyAvLyBWYWx1ZSBmcm9tIHRoZSBzZWFyY2ggYmFyIG9yIGltZyBhZGRlZCBieSBjYW52YVxuICBuYkltZ1RvRGVsU2VsZWN0ZWQ6IG51bWJlciA9IDA7XG4gIGRpc2FibGU6IGJvb2xlYW4gPSBmYWxzZTsgLy8gVXNlIHRvIGRpc2FibGUgYWN0aW9uIGR1cmluZyBzZXJ2ZXIgcmVxdWVzdFxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBpc1RvdGFsUmV0aWV2ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGVsTGlzdEltZ0xvYWRlciA9IGZhbHNlO1xuICBpbml0Q29tcG9uZW50OiBib29sZWFuID0gdHJ1ZTtcbiAgZmFpbExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBkaXNwbGF5UGV4ZWxzUmVzdWx0czogYm9vbGVhbiA9IGZhbHNlOyAvLyBVc2Ugd2hlbiBubyBpbWcgZmluZCBieSBuYW1lLCBkaXNwbGF5IGltZyBmcm9tIFBleGVsc1xuICBzZWFyY2hUZXh0OiBzdHJpbmc7XG4gIGNvbmZpcm1JbWdTdXA6Ym9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIFBhZ2luYXRvciBQYXJhbXNcbiAgcGFnZUluZGV4OiBudW1iZXIgPTA7XG4gIGxlbmd0aDogbnVtYmVyID0gMDtcbiAgcGFnZVNpemU6IG51bWJlciA9IDMwOyAvLyBEZWZhdWx0IHZhbHVlXG4gIHBhZ2VTaXplT3B0aW9uczogbnVtYmVyW10gPSBbMjUsIDUwLCAxMDAsIDI1MF07XG5cbiAgLy8gQXBpIEltZyBtYW5hZ2VyIFBhcmFtc1xuICBwYXJhbXM6UGFyYW1zSW1nTWFuYWdlckRUTztcblxuICBwcml2YXRlIGVycm9yR2V0QWxsSW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0QWxsSW1nJztcbiAgcHJpdmF0ZSBlcnJvckdldFRvdGFsSW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0VG90YWxJbWcnO1xuICBwcml2YXRlIGVycm9yR2V0SW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0Q2FudmFJbWcnO1xuICBwcml2YXRlIG1zZ05vSW1nRm91bmQgPSAnSW1nTWFuYWdlci5JbWdMaWIubm9JbWdGb3VuZCc7XG4gIHByaXZhdGUgZXJyb3JSZW1vdmVJbWcgPSAnSW1nTWFuYWdlci5JbWdMaXN0LmVycm9yUmVtb3ZlSW1nJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGltZ01hbmFnZXI6IEltZ01hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1nRXZlbnRTZXJ2aWNlOiBJbWdFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWdTZWxlY3Rpb25TZXJ2aWNlOiBJbWdTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2V0dGluZ3NTZXJ2aWNlOiBVc2VyU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuYW1lUGljdHVyZVNlcnZpY2U6IFJlbmFtZVBpY3R1cmVTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXhMZW5ndGhDYXJkU2hvdykge1xuICAgICAgdGhpcy5yZWR1Y2VQaWN0dXJlTGlzdE1heExlbmd0aCgpO1xuICAgIH1cbiAgICB0aGlzLnNldEV2ZW50cygpO1xuICAgIHRoaXMuaW1nU2VsZWN0ZWRMaXN0ID0gdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmdldEltZ1NlbGVjdGlvbigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0TmJJbWdUb0Rpc3BsYXkoKTtcbiAgICB0aGlzLl9nZXRJbWdMaXN0KCk7XG4gICAgaWYgKCF0aGlzLnNhdmVQaWN0dXJlTGlzdCkge1xuICAgICAgdGhpcy5zYXZlUGljdHVyZUxpc3QgPSB0aGlzLnBpY3R1cmVzTGlzdDtcbiAgICB9XG4gIH1cblxuICByZWR1Y2VQaWN0dXJlTGlzdE1heExlbmd0aCgpIHtcbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5zcGxpY2UoMCwgdGhpcy5tYXhMZW5ndGhDYXJkU2hvdyk7XG4gIH1cblxuICBnZXRJbWdMaXN0KCkge1xuICAgIHRoaXMuZmlsdGVyc0NoYW5nZWQubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRydWUgOiBnbyB0byBsaXN0IGRpc3BsYXlcbiAgICogZmFsc2UgOiBnbyB0byBtb3NhaWMgZGlzcGxheVxuICAgKiBAcGFyYW0gYWN0aXZhdGVcbiAgICovXG4gIG9uU3dpdGNoRm9ybWF0RGlzcGxheWVkKGFjdGl2YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5saXN0RGlzcGxheWVkID0gYWN0aXZhdGU7XG4gICAgdGhpcy51c2VyU2V0dGluZ3NTZXJ2aWNlLnNldFVzZXJEaXNwbGF5UHJlZmVyZW5jZShhY3RpdmF0ZSk7XG4gICAgdGhpcy5pbWdFdmVudFNlcnZpY2UuZW1pdGxpc3REaXNwbGF5ZWRDaGFuZ2UoYWN0aXZhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bCB0aGUgbnVtYmVyIG9mIGltZyBzZWxlY3RlZCBmb3IgbWFzc2UgZGVsZXRpb25cbiAgICovXG4gIG9uSW1nU2VsZWN0ZWQoKSB7XG4gICAgdGhpcy5zZXROYkltZ1RvRGVsU2VsZWN0ZWQoKTtcbiAgfVxuXG4gIG9uU2hvd0ltZ1VwbG9hZGVkKCkge1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9IG51bGw7XG4gICAgdGhpcy5zZWFyY2hlZFZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgfVxuXG4gIG9uUmVuYW1lUGljdHVyZShwaWN0dXJlUmVuYW1lZDogUGljdHVyZU5hbWVVcGRhdGUpIHtcbiAgICB0aGlzLnJlbmFtZVBpY3R1cmVTZXJ2aWNlLm9uUmVuYW1lUGljdHVyZShwaWN0dXJlUmVuYW1lZCk7XG4gIH1cblxuICByZW1vdmVMaXN0SW1nKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaXNhYmxlID0gdHJ1ZTtcbiAgICB0aGlzLmRlbExpc3RJbWdMb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMuY29uZmlybUltZ1N1cCA9IGZhbHNlO1xuXG4gICAgLy8gR2V0IHRoZSBpZCBvZiB0aGUgaW1nIHRvIHJlbW92ZVxuICAgIC8vIEFuZCBhZGQgZGVsZXRlZCBwcm9wZXJ0eVxuICAgIGNvbnN0IGlkSW1nVG9SZW1vdmU6IHN0cmluZ1tdID0gW107XG4gICAgdGhpcy5waWN0dXJlc0xpc3QuZm9yRWFjaCggaW1nID0+IHtcbiAgICAgIGlmIChpbWcuZGVsU2VsZWN0ZWQpIHtcbiAgICAgICAgaW1nLmRlbGV0ZWQgPSB0cnVlO1xuICAgICAgICBpZEltZ1RvUmVtb3ZlLnB1c2goaW1nLmlkX2ZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5pbWdNYW5hZ2VyLnJlbW92ZU11bHRpcGxlSW1nKGlkSW1nVG9SZW1vdmUpLnN1YnNjcmliZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gICAgICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5yZW1vdmVJbWdTZWxlY3Rpb25CeUlkcyhpZEltZ1RvUmVtb3ZlKTtcbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvclJlbW92ZUltZyk7XG4gICAgICB9XG4gICAgKTtcblxuXG4gIH1cblxuICBzZWxlY3RJbWdDaG9zZW4oKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwaWN0dXJlc0xpc3RTZWxlY3RlZDogSW1nUGljdHVyZURUT1tdID0gW107XG4gICAgdGhpcy5waWN0dXJlc0xpc3QubWFwKGltZyA9PiB7XG4gICAgICBpZihpbWcuZGVsU2VsZWN0ZWQpIHtcbiAgICAgICAgaW1nLmRlbFNlbGVjdGVkID1mYWxzZTtcbiAgICAgICAgaW1nLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpbWcuc2VsZWN0ZWQpIHtcbiAgICAgICAgcGljdHVyZXNMaXN0U2VsZWN0ZWQucHVzaChpbWcpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2V0TmJJbWdUb0RlbFNlbGVjdGVkKCk7XG4gICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnNldEltZ1NlbGVjdGlvbihwaWN0dXJlc0xpc3RTZWxlY3RlZCk7XG4gIH1cblxuICBkaXNwbGF5Q29uZmlybUltZ1N1cCgpe1xuICAgIGlmICh0aGlzLmRpc2FibGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb25maXJtSW1nU3VwID0gdHJ1ZTtcbiAgfVxuXG4gIGNhbmNlbFN1cCgpIHtcbiAgICB0aGlzLmNvbmZpcm1JbWdTdXAgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0IHdoZW4gYSBpbWcgc2VsZWN0ZWQgaW4gb3JkZXIgdG8gZGVsZXRlXG4gICAqL1xuICBvblBpY3R1cmVzTGlzdENoYW5nZSgpIHtcbiAgICB0aGlzLnNldE5iSW1nVG9EZWxTZWxlY3RlZCgpO1xuICB9XG5cbiAgb25GaWx0ZXJzQ2hhbmdlKCkge1xuICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBkZWZhdWx0IG51bWJlciBvZiBpbWcgcGVyIHBhZ2UgdG8gZGlzcGxheSBhdCB0aGUgaW5pdGlhbGlzYXRpb25cbiAgICogVGhpcyBudW1iZXIgaXMgYmV0d2VlbiAzMCBhbmQgNTBcbiAgICovXG4gIHByaXZhdGUgc2V0TmJJbWdUb0Rpc3BsYXkoKSB7XG4gICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmltZ0xpYkNvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgMzA7IC8vICsgMzBweCAtPiBsZWZ0ICsgcmlnaHQgbWFyZ2luXG4gICAgY29uc3Qgc2Nyb2xsV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7XG5cbiAgICBjb25zdCBbbWF4SW1nV2lkdGhGYWN0b3IsIG1pbkltZ1dpZHRoRmFjdG9yXSA9IHRoaXMuZ2V0SW1nV2lkdGhGYWN0b3JzKCk7XG5cbiAgICBjb25zdCBtaW5JbWdXaWR0aCA9IE1hdGguZmxvb3IoY29udGFpbmVyV2lkdGggKiBtaW5JbWdXaWR0aEZhY3Rvcik7XG4gICAgY29uc3QgbWF4SW1nV2lkdGggPSBNYXRoLmNlaWwoKGNvbnRhaW5lcldpZHRoICsgc2Nyb2xsV2lkdGggKSAqIG1heEltZ1dpZHRoRmFjdG9yKTtcblxuICAgIHRoaXMubmJNYXhJbWdQZXJMaW5lID0gTWF0aC5mbG9vcihjb250YWluZXJXaWR0aCAvIG1pbkltZ1dpZHRoKTtcbiAgICB0aGlzLm5iTWluSW1nUGVyTGluZSA9IE1hdGguZmxvb3IoIChjb250YWluZXJXaWR0aCArIHNjcm9sbFdpZHRoICkgLyBtYXhJbWdXaWR0aCk7XG5cbiAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5nZXRUb3RhbEltZ1BlclBhZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW1nV2lkdGhGYWN0b3JzKCk6IG51bWJlcltdIHtcbiAgICBjb25zdCBzY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIGxldCBtaW5XaWR0aDpudW1iZXIgPSAwO1xuICAgIGxldCBpbWdTaXplc0NvbmZpZzogbnVtYmVyW10gPSBbXTtcblxuICAgIGNvbnN0IGN1cnJlbnRJbWdXaWR0aENvbmZpZyA9IHRoaXMuZnVsbFNpemUgPyB0aGlzLmltZ0Z1bGxXaWR0aENvbmZpZyA6IHRoaXMuaW1nV2lkdGhDb25maWc7XG5cbiAgICBmb3IgKGNvbnN0IHdpZHRoQ29uZmlnIG9mIGN1cnJlbnRJbWdXaWR0aENvbmZpZykge1xuICAgICAgICBpZiAoIXdpZHRoQ29uZmlnLm1heCkge1xuICAgICAgICAgIGltZ1NpemVzQ29uZmlnID0gW3dpZHRoQ29uZmlnLmxhcmdlSW1nV2lkdGhGYWN0b3IsIHdpZHRoQ29uZmlnLnNtYWxsSW1nV2lkdGhGYWN0b3JdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtaW5XaWR0aCA8IHNjcmVlbldpZHRoICYmIHNjcmVlbldpZHRoIDw9IHdpZHRoQ29uZmlnLm1heCkge1xuICAgICAgICAgIGltZ1NpemVzQ29uZmlnID0gW3dpZHRoQ29uZmlnLmxhcmdlSW1nV2lkdGhGYWN0b3IsIHdpZHRoQ29uZmlnLnNtYWxsSW1nV2lkdGhGYWN0b3JdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIG1pbldpZHRoID0gd2lkdGhDb25maWcubWF4O1xuICAgIH1cbiAgICByZXR1cm4gaW1nU2l6ZXNDb25maWc7XG4gIH1cblxuICBwcml2YXRlIGdldFRvdGFsSW1nUGVyUGFnZSgpOiBudW1iZXIge1xuICAgIGxldCB0b3RhbCA9IHRoaXMubmJNaW5JbWdQZXJMaW5lO1xuXG4gICAgd2hpbGUgKHRvdGFsIDwgMzAgfHwgdG90YWwgJSB0aGlzLm5iTWF4SW1nUGVyTGluZSAhPT0gMCB8fCAgdG90YWwgJSB0aGlzLm5iTWluSW1nUGVyTGluZSAhPT0gMCkge1xuICAgICAgdG90YWwgKz0gdGhpcy5uYk1pbkltZ1BlckxpbmU7XG4gICAgfVxuICAgIHJldHVybiB0b3RhbDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UGFyYW1zKCkge1xuICAgIHRoaXMucGFyYW1zID0ge1xuICAgICAgbGltaXQ6IHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSA/IHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZS50b1N0cmluZygpIDogdGhpcy5wYWdlU2l6ZS50b1N0cmluZygpLFxuICAgICAgcGFnZTogdGhpcy50YWJsZUZpbHRlcnMuY3VycmVudFBhZ2UudG9TdHJpbmcoKVxuICAgIH07XG4gICAgaWYgKHRoaXMudGFibGVGaWx0ZXJzLnNlYXJjaFZhbHVlKSB7XG4gICAgICB0aGlzLnBhcmFtc1tcImRpc3BsYXlfbmFtZTpjb250YWluc1wiXSA9IHRoaXMudGFibGVGaWx0ZXJzLnNlYXJjaFZhbHVlLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0VmFyaWFibGVzKGxvYWRpbmdTdWNjZXNzOiBib29sZWFuKSB7XG4gICAgdGhpcy5uYkltZ1RvRGVsU2VsZWN0ZWQgPSAwO1xuICAgIHRoaXMuZGlzYWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5kZWxMaXN0SW1nTG9hZGVyID0gZmFsc2U7XG4gICAgdGhpcy5pbml0Q29tcG9uZW50ID0gZmFsc2U7XG4gICAgdGhpcy5kaXNwbGF5UGV4ZWxzUmVzdWx0cyA9IGZhbHNlO1xuICAgIHRoaXMuZmFpbExvYWRlZCA9ICFsb2FkaW5nU3VjY2VzcztcbiAgICB0aGlzLm5iRmFrZUltZyA9IDA7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdEltZ1NlbGVjdGVkICgpIHtcbiAgICBpZiAoIXRoaXMuaW1nU2VsZWN0ZWRMaXN0IHx8ICF0aGlzLmltZ1NlbGVjdGVkTGlzdC5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpZEltZ1NsZWN0ZWRMaXN0OiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgdGhpcy5pbWdTZWxlY3RlZExpc3QuZm9yRWFjaChpbWcgPT5cbiAgICAgIGlkSW1nU2xlY3RlZExpc3QucHVzaChpbWcuaWRfZmlsZSlcbiAgICApO1xuXG4gICAgdGhpcy5waWN0dXJlc0xpc3QuZm9yRWFjaChwaWN0dXJlID0+IHtcbiAgICAgIGlmIChpZEltZ1NsZWN0ZWRMaXN0LmluZGV4T2YocGljdHVyZS5pZF9maWxlKSAhPT0gLTEpIHtcbiAgICAgICAgcGljdHVyZS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXlQZXhlbHNMaWIgKCkge1xuICAgIHRoaXMuZGlzcGxheVBleGVsc1Jlc3VsdHMgPSB0cnVlO1xuICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLm1zZ05vSW1nRm91bmQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhIGltZyBsaXN0IGluIG9yZGVyIHRvIGZpbGwgcHJvcGVybHkgYWxsIHRoZSBsaW5lIG9mIGltYWdlcyBkaXNwbGF5ZWQgaW4gbW9zYWljLlxuICAgKiBPdGhlcndpc2UsIHRoZSBzcGFjZS1iZXR3ZWVuIGNzcyB3aWxsIGRvIGEgYmFkIGRpc3BsYXlcbiAgICovXG4gIHByaXZhdGUgY2FsY3VsTmJJbWdGYWtlKG5iSW1nRGlzcGxheWVkOiBudW1iZXIpIHtcbiAgICBjb25zdCBuYkltZ1BlckxpbmUgPSB0aGlzLnN0YXRlRGlzcGxheWVkID09PSAnc21hbGwnIHx8IHRoaXMudGFiRGlzcGxheWVkID09PSAnaW1nLXVwbG9hZCcgPyB0aGlzLm5iTWF4SW1nUGVyTGluZSA6IHRoaXMubmJNaW5JbWdQZXJMaW5lO1xuXG4gICAgaWYgKG5iSW1nRGlzcGxheWVkICUgbmJJbWdQZXJMaW5lICE9PSAwKSB7XG4gICAgICB0aGlzLm5iRmFrZUltZyA9IG5iSW1nUGVyTGluZSAtIG5iSW1nRGlzcGxheWVkICUgbmJJbWdQZXJMaW5lO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW1nIChpZF9maWxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmltZ01hbmFnZXIuZ2V0U2hvcEltZyhpZF9maWxlKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShcbiAgICAgIChwaWN0dXJlOiBJbWdQaWN0dXJlRFRPKSA9PiB7XG5cbiAgICAgICAgaWYgKCF0aGlzLmltZ0FscmVhZHlFeGlzdChwaWN0dXJlLmlkX2ZpbGUpKSB7XG4gICAgICAgICAgLy8gY2hlY2sgdGhlIGltZyBpcyBub3QgYWxyZWFkeSBwcmVzZW50XG4gICAgICAgICAgdGhpcy5waWN0dXJlc0xpc3QudW5zaGlmdChwaWN0dXJlKTtcbiAgICAgICAgICB0aGlzLmxlbmd0aCArPSAxO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvckdldEltZyk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaW1nQWxyZWFkeUV4aXN0IChpZF9maWxlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IGltZyBvZiB0aGlzLnBpY3R1cmVzTGlzdCkge1xuICAgICAgaWYgKGltZy5pZF9maWxlID09PSBpZF9maWxlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHNldE5iSW1nVG9EZWxTZWxlY3RlZCAoKSB7XG4gICAgdGhpcy5uYkltZ1RvRGVsU2VsZWN0ZWQgPSB0aGlzLnBpY3R1cmVzTGlzdC5maWx0ZXIoaW1nID0+XG4gICAgICBpbWcuZGVsU2VsZWN0ZWQpLmxlbmd0aDtcblxuICAgIGlmICghdGhpcy5uYkltZ1RvRGVsU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuY29uZmlybUltZ1N1cCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RXZlbnRzKCkge1xuICAgIC8vIEFkZCBhIHRpbWVyIHRvIHJldHJpZXZlIGltZyB3aGVuIHRoZSBzZWFyY2ggYmFyIG9yIHRoZSBwYWdpbmF0b3IgYXJlIHVzZWRcbiAgICB0aGlzLnNlYXJjaFF1ZXJ5Q2hhbmdlZFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDQwMCkpIC8vIHdhaXQgMC41IHNlYyBhZnRlciB0aGUgbGFzdCBldmVudCBiZWZvcmUgZW1pdHRpbmcgbGFzdCBldmVudFxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZmlsdGVyc0NoYW5nZWRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg4MDApKSAvLyB3YWl0IDAuOCBzZWMgYWZ0ZXIgdGhlIGxhc3QgZXZlbnQgYmVmb3JlIGVtaXR0aW5nIGxhc3QgZXZlbnRcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgdGhpcy5fZ2V0SW1nTGlzdCgpO1xuICAgIH0pO1xuXG4gICAgLy8gUmVsb2FkIGltZyB3aGVuIGltZyBpcy9hcmUgcmVtb3ZlZFxuICAgIHRoaXMuaW1nUmVtb3ZlZEV2ZW50ID0gdGhpcy5pbWdFdmVudFNlcnZpY2UuZ2V0SW1nUmVtb3ZlZEV2ZW50TGlzdG5lcigpLnN1YnNjcmliZShpZF9maWxlID0+e1xuICAgICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgaW1nIGZyb20gQ2FudmFcbiAgICB0aGlzLmltZ0FkZGVkRXZlbnQgPSB0aGlzLmltZ0V2ZW50U2VydmljZS5nZXRJbWdBZGRlZEV2ZW50TGlzdG5lcigpLnN1YnNjcmliZShpZF9maWxlID0+e1xuICAgICAgaWYgKGlkX2ZpbGUgJiYgIXRoaXMuaW1nQWxyZWFkeUV4aXN0KGlkX2ZpbGUpKSB7XG4gICAgICAgIHRoaXMuZ2V0SW1nKGlkX2ZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5pbWdTZWxlY3Rpb25DaGFuZ2UgPSB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuZ2V0SW1nU2VsZWN0aW9uQ2hhbmdlKCkuc3Vic2NyaWJlKGltZ1NlbGVjdGlvbiA9PntcbiAgICAgIGlmICh0aGlzLmxpc3REaXNwbGF5ZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgaWRGaWxlTGlzdCA9IFtdO1xuICAgICAgaW1nU2VsZWN0aW9uLm1hcChpbWcgPT4gaWRGaWxlTGlzdC5wdXNoKGltZy5pZF9maWxlKSk7XG4gICAgICBmb3IgKGNvbnN0IHBpY3R1cmUgb2YgdGhpcy5waWN0dXJlc0xpc3QpIHtcbiAgICAgICAgaWYgKGlkRmlsZUxpc3QuaW5kZXhPZihwaWN0dXJlLmlkX2ZpbGUpID09PSAtMSkge1xuICAgICAgICAgIHBpY3R1cmUuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0SW1nTGlzdCgpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5kaXNwbGF5UGV4ZWxzUmVzdWx0cyA9IGZhbHNlO1xuICAgIHRoaXMuaXNUb3RhbFJldGlldmVkID0gZmFsc2U7XG4gICAgdGhpcy5zZXRQYXJhbXMoKTtcbiAgICB0aGlzLmltZ01hbmFnZXIuZ2V0U2hvcEltZ0xpc3QodGhpcy5wYXJhbXMpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChkYXRhOiBJbWdQaWN0dXJlc0RUTykgPT4ge1xuICAgICAgdGhpcy5pbml0VmFyaWFibGVzKHRydWUpO1xuICAgICAgY29uc3QgbmJJbWdEaXNwbGF5ZWQgPSBkYXRhLmRhdGEubGVuZ3RoO1xuICAgICAgdGhpcy5jYWxjdWxOYkltZ0Zha2UobmJJbWdEaXNwbGF5ZWQpO1xuICAgICAgdGhpcy5waWN0dXJlc0xpc3QgPSBkYXRhLmRhdGE7XG4gICAgICB0aGlzLnJlbmFtZVBpY3R1cmVTZXJ2aWNlLnNldFBpY3R1cmVzTGlzdCh0aGlzLnBpY3R1cmVzTGlzdCk7XG4gICAgICB0aGlzLnNlbGVjdEltZ1NlbGVjdGVkKCk7XG4gICAgICB0aGlzLmxlbmd0aCA9IHRoaXMuaXNUb3RhbFJldGlldmVkID8gdGhpcy5sZW5ndGggOiBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJzLnRvdGFsSXRlbXMgPSB0aGlzLmlzVG90YWxSZXRpZXZlZCA/IHRoaXMudGFibGVGaWx0ZXJzLnRvdGFsSXRlbXMgOiBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSA9ICB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UgPyAgdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlIDogdGhpcy5wYWdlU2l6ZTtcbiAgICAgIGlmICh0aGlzLm1heExlbmd0aENhcmRTaG93KSB7XG4gICAgICAgIHRoaXMucGljdHVyZXNMaXN0ID0gdGhpcy5waWN0dXJlc0xpc3Quc3BsaWNlKDAsIDgpO1xuICAgICAgfVxuXG4gICAgICAvLyBEaXNwbGF5IFBleGVscyBpZiBubyByZXN1bHRcbiAgICAgIGlmIChkYXRhLnRvdGFsUmVjb3JkcyA9PT0gMCkge1xuICAgICAgICB0aGlzLmRpc3BsYXlQZXhlbHNMaWIoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5yZWZyZXNoVG90YWxJbWdMaXN0KCk7XG4gICAgfSxcbiAgICBlcnJvciA9PiB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvckdldEFsbEltZyk7XG4gICAgICB0aGlzLmluaXRWYXJpYWJsZXMoZmFsc2UpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoVG90YWxJbWdMaXN0KCkge1xuICAgIHRoaXMuaW1nTWFuYWdlci5nZXRTaG9wVG90YWxJbWdMaXN0KHRoaXMucGFyYW1zKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoZGF0YTogSW1nUGljdHVyZXNEVE8pID0+IHtcblxuICAgICAgdGhpcy5pc1RvdGFsUmV0aWV2ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5sZW5ndGggPSBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJzLnRvdGFsSXRlbXMgPSBkYXRhLnRvdGFsUmVjb3JkcztcblxuICAgIH0sXG4gICAgZXJyb3IgPT4ge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMuZXJyb3JHZXRUb3RhbEltZyk7XG4gICAgICB0aGlzLmluaXRWYXJpYWJsZXMoZmFsc2UpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hRdWVyeUNoYW5nZWQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmltZ1JlbW92ZWRFdmVudC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaW1nQWRkZWRFdmVudC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaW1nU2VsZWN0aW9uQ2hhbmdlLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
477
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHdpemlzaG9wL2ltZy1tYW5hZ2VyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW1hZ2VzLXZpZXcvaW1hZ2VzLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUUvRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQWdCLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUczRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRXJGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQVU1RCxJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtJQXFJOUIsWUFDVSxVQUE2QixFQUM3QixlQUFnQyxFQUNoQyxtQkFBd0MsRUFDeEMsWUFBMEIsRUFDMUIsbUJBQXdDLEVBQ3hDLG9CQUEwQztRQUwxQyxlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFx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Q0FBQztRQUNqQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQztDQUNGLENBQUE7O1lBeFh1QixpQkFBaUI7WUFDWixlQUFlO1lBQ1gsbUJBQW1CO1lBQzFCLFlBQVk7WUFDTCxtQkFBbUI7WUFDbEIsb0JBQW9COztBQXpJM0M7SUFBUixLQUFLLEVBQUU7OzJEQUFnQztBQUMvQjtJQUFSLEtBQUssRUFBRTs7eURBQTRCO0FBQzNCO0lBQVIsS0FBSyxFQUFFOztxREFBbUI7QUFDbEI7SUFBUixLQUFLLEVBQUU7OzhEQUEyQjtBQUMxQjtJQUFSLEtBQUssRUFBRTs7MERBQXVCO0FBQ3RCO0lBQVIsS0FBSyxFQUFFOzs0REFBeUI7QUFZSDtJQUE3QixTQUFTLENBQUMsaUJBQWlCLENBQUM7OEJBQW1CLFVBQVU7NERBQUM7QUFuQmhELG1CQUFtQjtJQVIvQixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsYUFBYTtRQUN2QixteU5BQTJDO1FBQzNDLFVBQVUsRUFBRTtZQUNWLFNBQVM7WUFDVCxZQUFZO1NBQ2I7S0FDRixDQUFDO3FDQXVJc0IsaUJBQWlCO1FBQ1osZUFBZTtRQUNYLG1CQUFtQjtRQUMxQixZQUFZO1FBQ0wsbUJBQW1CO1FBQ2xCLG9CQUFvQjtHQTNJekMsbUJBQW1CLENBOGYvQjtTQTlmWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1nUGljdHVyZURUTywgSW1nUGljdHVyZXNEVE8sIFBhcmFtc0ltZ01hbmFnZXJEVE8gfSBmcm9tICcuLi8uLi9kdG8vaW1nLW1hbmFnZXIuZHRvJztcbmltcG9ydCB7IEltZ01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSW1nRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgSW1nU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltZy1zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXNlci1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYmxlRmlsdGVycyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RhYmxlL2ZpbHRlcnMtdGFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBQaWN0dXJlTmFtZVVwZGF0ZSB9IGZyb20gJy4uLy4uL2R0by9waWN0dXJlLW5hbWUtdXBkYXRlLmR0byc7XG5pbXBvcnQgeyBlYXNlSW5PdXQgfSBmcm9tICcuLi8uLi9hbmltYXRpb25zL2Vhc2VJbk91dC9lYXNlLWluLW91dC5hbmltYXRpb24nO1xuaW1wb3J0IHsgaW5zZXJ0UmVtb3ZlIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9ucy9pbnNlcnRSZW1vdmUvaW5zZXJ0LXJlbW92ZS5hbmltYXRpb24nO1xuaW1wb3J0IHsgc3RhdGVEaXNwbGF5ZWQsIHRhYkRpc3BsYXllZCB9IGZyb20gJy4uLy4uL2R0by9leHBvcnQtZHRvcy5hcGknO1xuaW1wb3J0IHsgUmVuYW1lUGljdHVyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZW5hbWUtcGljdHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsZXJ0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbWFnZXMtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZXMtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICBlYXNlSW5PdXQsXG4gICAgaW5zZXJ0UmVtb3ZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VzVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQElucHV0KCkgc3RhdGVEaXNwbGF5ZWQ6IHN0YXRlRGlzcGxheWVkO1xuICBASW5wdXQoKSB0YWJEaXNwbGF5ZWQ6IHRhYkRpc3BsYXllZDtcbiAgQElucHV0KCkgZnVsbFNpemU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG1heExlbmd0aENhcmRTaG93OiBudW1iZXI7XG4gIEBJbnB1dCgpIGxpc3REaXNwbGF5ZWQgPSBmYWxzZTsgLy8gRGlzcGxheSBmb3JtYXQgbGlzdCBvciBtb3NhaWNcbiAgQElucHV0KCkgbXVsdGlwbGVJbWdNb2RlID0gZmFsc2U7XG5cbiAgLy8gRGF0YSBmaWx0ZXJzXG4gIHRhYmxlRmlsdGVyczogVGFibGVGaWx0ZXJzID0ge1xuICAgIHNvcnQ6IHVuZGVmaW5lZCxcbiAgICBvcmRlcjogdW5kZWZpbmVkLFxuICAgIHNlYXJjaFZhbHVlOiAnJyxcbiAgICB0b3RhbEl0ZW1zOiAwLFxuICAgIGl0ZW1zUGVyUGFnZTogMCxcbiAgICBjdXJyZW50UGFnZTogMVxuICB9O1xuXG4gIEBWaWV3Q2hpbGQoJ2ltZ0xpYkNvbnRhaW5lcicpIGltZ0xpYkNvbnRhaW5lciA6IEVsZW1lbnRSZWY7XG4gIHdpZHRoTGFyZ2VDYXJkOiBudW1iZXIgPSAyMTk7IC8vIERlZmF1bHQgdmFsdWUgb2YgYSBjYXJkIHdpZHRoIDE5OSArIG1hcmdpbiAyMFxuICB3aWR0aFNtYWxsQ2FyZDogbnVtYmVyID0gMTYwOyAvLyBEZWZhdWx0IHZhbHVlIG9mIGEgY2FyZCB3aWR0aCAxNDAgKyBtYXJnaW4gMjBcbiAgbmJNaW5JbWdQZXJMaW5lOiBudW1iZXI7XG4gIG5iTWF4SW1nUGVyTGluZTogbnVtYmVyO1xuICBuYkZha2VJbWc6IG51bWJlciA9IDA7XG5cbiAgaW1nRnVsbFdpZHRoQ29uZmlnOmFueSA9IFtcbiAgICB7XG4gICAgICBtYXg6IDQxOSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAxLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuNVxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiA0OTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjVcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogNzE5LCAvLyB0YWJsZXRcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4zMzMzXG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDEwMjMsIC8vIGRlc2tvcFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMzMzMyxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjJcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTM5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTI1XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDE1OTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTExMVxuICAgIH0sXG4gICAge1xuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMTY2NixcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjFcbiAgICB9XG4gIF07XG5cbiAgaW1nV2lkdGhDb25maWc6YW55ID0gW1xuICAgIHtcbiAgICAgIG1heDogMTAyNCxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTI1XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDExOTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4zMzMzLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMlxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMjk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMzMzMyxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjE2NjZcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTM5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTY2NlxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxNTk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xNFxuICAgIH0sXG4gICAge1xuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMjVcbiAgICB9XG4gIF07XG5cbiAgaW1nU3Vic2NyaWJlOiBTdWJzY3JpcHRpb247XG4gIGltZ1JlbW92ZWRFdmVudDogU3Vic2NyaXB0aW9uO1xuICBpbWdBZGRlZEV2ZW50OiBTdWJzY3JpcHRpb247XG4gIGltZ1NlbGVjdGlvbkNoYW5nZTogU3Vic2NyaXB0aW9uO1xuICBzZWFyY2hRdWVyeUNoYW5nZWQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgZmlsdGVyc0NoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHBpY3R1cmVzTGlzdDogSW1nUGljdHVyZURUT1tdID0gW107XG4gIHNhdmVQaWN0dXJlTGlzdDogSW1nUGljdHVyZURUT1tdID0gW107XG4gIGltZ1NlbGVjdGVkTGlzdDogSW1nUGljdHVyZURUT1tdO1xuICBzZWFyY2hlZFZhbHVlOiBzdHJpbmc7IC8vIFZhbHVlIGZyb20gdGhlIHNlYXJjaCBiYXIgb3IgaW1nIGFkZGVkIGJ5IGNhbnZhXG4gIG5iSW1nVG9EZWxTZWxlY3RlZDogbnVtYmVyID0gMDtcbiAgZGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlOyAvLyBVc2UgdG8gZGlzYWJsZSBhY3Rpb24gZHVyaW5nIHNlcnZlciByZXF1ZXN0XG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IHRydWU7XG4gIGlzVG90YWxSZXRpZXZlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBkZWxMaXN0SW1nTG9hZGVyID0gZmFsc2U7XG4gIGluaXRDb21wb25lbnQ6IGJvb2xlYW4gPSB0cnVlO1xuICBmYWlsTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGRpc3BsYXlQZXhlbHNSZXN1bHRzOiBib29sZWFuID0gZmFsc2U7IC8vIFVzZSB3aGVuIG5vIGltZyBmaW5kIGJ5IG5hbWUsIGRpc3BsYXkgaW1nIGZyb20gUGV4ZWxzXG4gIHNlYXJjaFRleHQ6IHN0cmluZztcbiAgY29uZmlybUltZ1N1cDpib29sZWFuID0gZmFsc2U7XG4gIHByZXZpb3VzU2VhcmNoVmFsdWU6IHN0cmluZztcblxuICAvLyBQYWdpbmF0b3IgUGFyYW1zXG4gIHBhZ2VJbmRleDogbnVtYmVyID0wO1xuICBsZW5ndGg6IG51bWJlciA9IDA7XG4gIHBhZ2VTaXplOiBudW1iZXIgPSAzMDsgLy8gRGVmYXVsdCB2YWx1ZVxuICBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzI1LCA1MCwgMTAwLCAyNTBdO1xuXG4gIC8vIEFwaSBJbWcgbWFuYWdlciBQYXJhbXNcbiAgcGFyYW1zOlBhcmFtc0ltZ01hbmFnZXJEVE87XG5cbiAgcHJpdmF0ZSBlcnJvckdldEFsbEltZyA9ICdJbWdNYW5hZ2VyLkltZ0xpYi5lcnJvckdldEFsbEltZyc7XG4gIHByaXZhdGUgZXJyb3JHZXRUb3RhbEltZyA9ICdJbWdNYW5hZ2VyLkltZ0xpYi5lcnJvckdldFRvdGFsSW1nJztcbiAgcHJpdmF0ZSBlcnJvckdldEltZyA9ICdJbWdNYW5hZ2VyLkltZ0xpYi5lcnJvckdldENhbnZhSW1nJztcbiAgcHJpdmF0ZSBtc2dOb0ltZ0ZvdW5kID0gJ0ltZ01hbmFnZXIuSW1nTGliLm5vSW1nRm91bmQnO1xuICBwcml2YXRlIGVycm9yUmVtb3ZlSW1nID0gJ0ltZ01hbmFnZXIuSW1nTGlzdC5lcnJvclJlbW92ZUltZyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbWdNYW5hZ2VyOiBJbWdNYW5hZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIGltZ0V2ZW50U2VydmljZTogSW1nRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1nU2VsZWN0aW9uU2VydmljZTogSW1nU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNldHRpbmdzU2VydmljZTogVXNlclNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlbmFtZVBpY3R1cmVTZXJ2aWNlOiBSZW5hbWVQaWN0dXJlU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWF4TGVuZ3RoQ2FyZFNob3cpIHtcbiAgICAgIHRoaXMucmVkdWNlUGljdHVyZUxpc3RNYXhMZW5ndGgoKTtcbiAgICB9XG4gICAgdGhpcy5zZXRFdmVudHMoKTtcbiAgICB0aGlzLmltZ1NlbGVjdGVkTGlzdCA9IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5nZXRJbWdTZWxlY3Rpb24oKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnNldE5iSW1nVG9EaXNwbGF5KCk7XG4gICAgdGhpcy5fZ2V0SW1nTGlzdCgpO1xuICAgIGlmICghdGhpcy5zYXZlUGljdHVyZUxpc3QpIHtcbiAgICAgIHRoaXMuc2F2ZVBpY3R1cmVMaXN0ID0gdGhpcy5waWN0dXJlc0xpc3Q7XG4gICAgfVxuICB9XG5cbiAgcmVkdWNlUGljdHVyZUxpc3RNYXhMZW5ndGgoKSB7XG4gICAgdGhpcy5waWN0dXJlc0xpc3Quc3BsaWNlKDAsIHRoaXMubWF4TGVuZ3RoQ2FyZFNob3cpO1xuICB9XG5cbiAgZ2V0SW1nTGlzdCgpIHtcbiAgICB0aGlzLmZpbHRlcnNDaGFuZ2VkLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB0cnVlIDogZ28gdG8gbGlzdCBkaXNwbGF5XG4gICAqIGZhbHNlIDogZ28gdG8gbW9zYWljIGRpc3BsYXlcbiAgICogQHBhcmFtIGFjdGl2YXRlXG4gICAqL1xuICBvblN3aXRjaEZvcm1hdERpc3BsYXllZChhY3RpdmF0ZTogYm9vbGVhbikge1xuICAgIHRoaXMubGlzdERpc3BsYXllZCA9IGFjdGl2YXRlO1xuICAgIHRoaXMudXNlclNldHRpbmdzU2VydmljZS5zZXRVc2VyRGlzcGxheVByZWZlcmVuY2UoYWN0aXZhdGUpO1xuICAgIHRoaXMuaW1nRXZlbnRTZXJ2aWNlLmVtaXRsaXN0RGlzcGxheWVkQ2hhbmdlKGFjdGl2YXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWwgdGhlIG51bWJlciBvZiBpbWcgc2VsZWN0ZWQgZm9yIG1hc3NlIGRlbGV0aW9uXG4gICAqL1xuICBvbkltZ1NlbGVjdGVkKCkge1xuICAgIHRoaXMuc2V0TmJJbWdUb0RlbFNlbGVjdGVkKCk7XG4gIH1cblxuICBvblNob3dJbWdVcGxvYWRlZCgpIHtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBudWxsO1xuICAgIHRoaXMuc2VhcmNoZWRWYWx1ZSA9IG51bGw7XG4gICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gIH1cblxuICBvblJlbmFtZVBpY3R1cmUocGljdHVyZVJlbmFtZWQ6IFBpY3R1cmVOYW1lVXBkYXRlKSB7XG4gICAgdGhpcy5yZW5hbWVQaWN0dXJlU2VydmljZS5vblJlbmFtZVBpY3R1cmUocGljdHVyZVJlbmFtZWQpO1xuICB9XG5cbiAgcmVtb3ZlTGlzdEltZygpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlzYWJsZSA9IHRydWU7XG4gICAgdGhpcy5kZWxMaXN0SW1nTG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLmNvbmZpcm1JbWdTdXAgPSBmYWxzZTtcblxuICAgIC8vIEdldCB0aGUgaWQgb2YgdGhlIGltZyB0byByZW1vdmVcbiAgICAvLyBBbmQgYWRkIGRlbGV0ZWQgcHJvcGVydHlcbiAgICBjb25zdCBpZEltZ1RvUmVtb3ZlOiBzdHJpbmdbXSA9IFtdO1xuICAgIHRoaXMucGljdHVyZXNMaXN0LmZvckVhY2goIGltZyA9PiB7XG4gICAgICBpZiAoaW1nLmRlbFNlbGVjdGVkKSB7XG4gICAgICAgIGltZy5kZWxldGVkID0gdHJ1ZTtcbiAgICAgICAgaWRJbWdUb1JlbW92ZS5wdXNoKGltZy5pZF9maWxlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuaW1nTWFuYWdlci5yZW1vdmVNdWx0aXBsZUltZyhpZEltZ1RvUmVtb3ZlKS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICAgICAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UucmVtb3ZlSW1nU2VsZWN0aW9uQnlJZHMoaWRJbWdUb1JlbW92ZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMuZXJyb3JSZW1vdmVJbWcpO1xuICAgICAgfVxuICAgICk7XG5cblxuICB9XG5cbiAgc2VsZWN0SW1nQ2hvc2VuKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGljdHVyZXNMaXN0U2VsZWN0ZWQ6IEltZ1BpY3R1cmVEVE9bXSA9IFtdO1xuICAgIHRoaXMucGljdHVyZXNMaXN0Lm1hcChpbWcgPT4ge1xuICAgICAgaWYoaW1nLmRlbFNlbGVjdGVkKSB7XG4gICAgICAgIGltZy5kZWxTZWxlY3RlZCA9ZmFsc2U7XG4gICAgICAgIGltZy5zZWxlY3RlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoaW1nLnNlbGVjdGVkKSB7XG4gICAgICAgIHBpY3R1cmVzTGlzdFNlbGVjdGVkLnB1c2goaW1nKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNldE5iSW1nVG9EZWxTZWxlY3RlZCgpO1xuICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5zZXRJbWdTZWxlY3Rpb24ocGljdHVyZXNMaXN0U2VsZWN0ZWQpO1xuICB9XG5cbiAgZGlzcGxheUNvbmZpcm1JbWdTdXAoKXtcbiAgICBpZiAodGhpcy5kaXNhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY29uZmlybUltZ1N1cCA9IHRydWU7XG4gIH1cblxuICBjYW5jZWxTdXAoKSB7XG4gICAgdGhpcy5jb25maXJtSW1nU3VwID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgZW1pdCB3aGVuIGEgaW1nIHNlbGVjdGVkIGluIG9yZGVyIHRvIGRlbGV0ZVxuICAgKi9cbiAgb25QaWN0dXJlc0xpc3RDaGFuZ2UoKSB7XG4gICAgdGhpcy5zZXROYkltZ1RvRGVsU2VsZWN0ZWQoKTtcbiAgfVxuXG4gIG9uRmlsdGVyc0NoYW5nZSgpIHtcbiAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgZGVmYXVsdCBudW1iZXIgb2YgaW1nIHBlciBwYWdlIHRvIGRpc3BsYXkgYXQgdGhlIGluaXRpYWxpc2F0aW9uXG4gICAqIFRoaXMgbnVtYmVyIGlzIGJldHdlZW4gMzAgYW5kIDUwXG4gICAqL1xuICBwcml2YXRlIHNldE5iSW1nVG9EaXNwbGF5KCkge1xuICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5pbWdMaWJDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArIDMwOyAvLyArIDMwcHggLT4gbGVmdCArIHJpZ2h0IG1hcmdpblxuICAgIGNvbnN0IHNjcm9sbFdpZHRoID0gd2luZG93LmlubmVyV2lkdGggLSBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoO1xuXG4gICAgY29uc3QgW21heEltZ1dpZHRoRmFjdG9yLCBtaW5JbWdXaWR0aEZhY3Rvcl0gPSB0aGlzLmdldEltZ1dpZHRoRmFjdG9ycygpO1xuXG4gICAgY29uc3QgbWluSW1nV2lkdGggPSBNYXRoLmZsb29yKGNvbnRhaW5lcldpZHRoICogbWluSW1nV2lkdGhGYWN0b3IpO1xuICAgIGNvbnN0IG1heEltZ1dpZHRoID0gTWF0aC5jZWlsKChjb250YWluZXJXaWR0aCArIHNjcm9sbFdpZHRoICkgKiBtYXhJbWdXaWR0aEZhY3Rvcik7XG5cbiAgICB0aGlzLm5iTWF4SW1nUGVyTGluZSA9IE1hdGguZmxvb3IoY29udGFpbmVyV2lkdGggLyBtaW5JbWdXaWR0aCk7XG4gICAgdGhpcy5uYk1pbkltZ1BlckxpbmUgPSBNYXRoLmZsb29yKCAoY29udGFpbmVyV2lkdGggKyBzY3JvbGxXaWR0aCApIC8gbWF4SW1nV2lkdGgpO1xuXG4gICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuZ2V0VG90YWxJbWdQZXJQYWdlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldEltZ1dpZHRoRmFjdG9ycygpOiBudW1iZXJbXSB7XG4gICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBsZXQgbWluV2lkdGg6bnVtYmVyID0gMDtcbiAgICBsZXQgaW1nU2l6ZXNDb25maWc6IG51bWJlcltdID0gW107XG5cbiAgICBjb25zdCBjdXJyZW50SW1nV2lkdGhDb25maWcgPSB0aGlzLmZ1bGxTaXplID8gdGhpcy5pbWdGdWxsV2lkdGhDb25maWcgOiB0aGlzLmltZ1dpZHRoQ29uZmlnO1xuXG4gICAgZm9yIChjb25zdCB3aWR0aENvbmZpZyBvZiBjdXJyZW50SW1nV2lkdGhDb25maWcpIHtcbiAgICAgICAgaWYgKCF3aWR0aENvbmZpZy5tYXgpIHtcbiAgICAgICAgICBpbWdTaXplc0NvbmZpZyA9IFt3aWR0aENvbmZpZy5sYXJnZUltZ1dpZHRoRmFjdG9yLCB3aWR0aENvbmZpZy5zbWFsbEltZ1dpZHRoRmFjdG9yXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAobWluV2lkdGggPCBzY3JlZW5XaWR0aCAmJiBzY3JlZW5XaWR0aCA8PSB3aWR0aENvbmZpZy5tYXgpIHtcbiAgICAgICAgICBpbWdTaXplc0NvbmZpZyA9IFt3aWR0aENvbmZpZy5sYXJnZUltZ1dpZHRoRmFjdG9yLCB3aWR0aENvbmZpZy5zbWFsbEltZ1dpZHRoRmFjdG9yXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBtaW5XaWR0aCA9IHdpZHRoQ29uZmlnLm1heDtcbiAgICB9XG4gICAgcmV0dXJuIGltZ1NpemVzQ29uZmlnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb3RhbEltZ1BlclBhZ2UoKTogbnVtYmVyIHtcbiAgICBsZXQgdG90YWwgPSB0aGlzLm5iTWluSW1nUGVyTGluZTtcblxuICAgIHdoaWxlICh0b3RhbCA8IDMwIHx8IHRvdGFsICUgdGhpcy5uYk1heEltZ1BlckxpbmUgIT09IDAgfHwgIHRvdGFsICUgdGhpcy5uYk1pbkltZ1BlckxpbmUgIT09IDApIHtcbiAgICAgIHRvdGFsICs9IHRoaXMubmJNaW5JbWdQZXJMaW5lO1xuICAgIH1cbiAgICByZXR1cm4gdG90YWw7XG4gIH1cblxuICBwcml2YXRlIHNldFBhcmFtcygpIHtcbiAgICB0aGlzLnBhcmFtcyA9IHtcbiAgICAgIGxpbWl0OiB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UgPyB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UudG9TdHJpbmcoKSA6IHRoaXMucGFnZVNpemUudG9TdHJpbmcoKSxcbiAgICAgIHBhZ2U6IHRoaXMudGFibGVGaWx0ZXJzLmN1cnJlbnRQYWdlLnRvU3RyaW5nKClcbiAgICB9O1xuICAgIGlmICh0aGlzLnRhYmxlRmlsdGVycy5zZWFyY2hWYWx1ZSkge1xuICAgICAgdGhpcy5wYXJhbXNbXCJkaXNwbGF5X25hbWU6Y29udGFpbnNcIl0gPSB0aGlzLnRhYmxlRmlsdGVycy5zZWFyY2hWYWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdFZhcmlhYmxlcyhsb2FkaW5nU3VjY2VzczogYm9vbGVhbikge1xuICAgIHRoaXMubmJJbWdUb0RlbFNlbGVjdGVkID0gMDtcbiAgICB0aGlzLmRpc2FibGUgPSBmYWxzZTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuZGVsTGlzdEltZ0xvYWRlciA9IGZhbHNlO1xuICAgIHRoaXMuaW5pdENvbXBvbmVudCA9IGZhbHNlO1xuICAgIHRoaXMuZGlzcGxheVBleGVsc1Jlc3VsdHMgPSBmYWxzZTtcbiAgICB0aGlzLmZhaWxMb2FkZWQgPSAhbG9hZGluZ1N1Y2Nlc3M7XG4gICAgdGhpcy5uYkZha2VJbWcgPSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RJbWdTZWxlY3RlZCAoKSB7XG4gICAgaWYgKCF0aGlzLmltZ1NlbGVjdGVkTGlzdCB8fCAhdGhpcy5pbWdTZWxlY3RlZExpc3QubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaWRJbWdTbGVjdGVkTGlzdDogc3RyaW5nW10gPSBbXTtcblxuICAgIHRoaXMuaW1nU2VsZWN0ZWRMaXN0LmZvckVhY2goaW1nID0+XG4gICAgICBpZEltZ1NsZWN0ZWRMaXN0LnB1c2goaW1nLmlkX2ZpbGUpXG4gICAgKTtcblxuICAgIHRoaXMucGljdHVyZXNMaXN0LmZvckVhY2gocGljdHVyZSA9PiB7XG4gICAgICBpZiAoaWRJbWdTbGVjdGVkTGlzdC5pbmRleE9mKHBpY3R1cmUuaWRfZmlsZSkgIT09IC0xKSB7XG4gICAgICAgIHBpY3R1cmUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5UGV4ZWxzTGliICgpIHtcbiAgICB0aGlzLmRpc3BsYXlQZXhlbHNSZXN1bHRzID0gdHJ1ZTtcbiAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5tc2dOb0ltZ0ZvdW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYSBpbWcgbGlzdCBpbiBvcmRlciB0byBmaWxsIHByb3Blcmx5IGFsbCB0aGUgbGluZSBvZiBpbWFnZXMgZGlzcGxheWVkIGluIG1vc2FpYy5cbiAgICogT3RoZXJ3aXNlLCB0aGUgc3BhY2UtYmV0d2VlbiBjc3Mgd2lsbCBkbyBhIGJhZCBkaXNwbGF5XG4gICAqL1xuICBwcml2YXRlIGNhbGN1bE5iSW1nRmFrZShuYkltZ0Rpc3BsYXllZDogbnVtYmVyKSB7XG4gICAgY29uc3QgbmJJbWdQZXJMaW5lID0gdGhpcy5zdGF0ZURpc3BsYXllZCA9PT0gJ3NtYWxsJyB8fCB0aGlzLnRhYkRpc3BsYXllZCA9PT0gJ2ltZy11cGxvYWQnID8gdGhpcy5uYk1heEltZ1BlckxpbmUgOiB0aGlzLm5iTWluSW1nUGVyTGluZTtcblxuICAgIGlmIChuYkltZ0Rpc3BsYXllZCAlIG5iSW1nUGVyTGluZSAhPT0gMCkge1xuICAgICAgdGhpcy5uYkZha2VJbWcgPSBuYkltZ1BlckxpbmUgLSBuYkltZ0Rpc3BsYXllZCAlIG5iSW1nUGVyTGluZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEltZyAoaWRfZmlsZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pbWdNYW5hZ2VyLmdldFNob3BJbWcoaWRfZmlsZSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoXG4gICAgICAocGljdHVyZTogSW1nUGljdHVyZURUTykgPT4ge1xuXG4gICAgICAgIGlmICghdGhpcy5pbWdBbHJlYWR5RXhpc3QocGljdHVyZS5pZF9maWxlKSkge1xuICAgICAgICAgIC8vIGNoZWNrIHRoZSBpbWcgaXMgbm90IGFscmVhZHkgcHJlc2VudFxuICAgICAgICAgIHRoaXMucGljdHVyZXNMaXN0LnVuc2hpZnQocGljdHVyZSk7XG4gICAgICAgICAgdGhpcy5sZW5ndGggKz0gMTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMuZXJyb3JHZXRJbWcpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGltZ0FscmVhZHlFeGlzdCAoaWRfZmlsZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBpbWcgb2YgdGhpcy5waWN0dXJlc0xpc3QpIHtcbiAgICAgIGlmIChpbWcuaWRfZmlsZSA9PT0gaWRfZmlsZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXROYkltZ1RvRGVsU2VsZWN0ZWQgKCkge1xuICAgIHRoaXMubmJJbWdUb0RlbFNlbGVjdGVkID0gdGhpcy5waWN0dXJlc0xpc3QuZmlsdGVyKGltZyA9PlxuICAgICAgaW1nLmRlbFNlbGVjdGVkKS5sZW5ndGg7XG5cbiAgICBpZiAoIXRoaXMubmJJbWdUb0RlbFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmNvbmZpcm1JbWdTdXAgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEV2ZW50cygpIHtcbiAgICAvLyBBZGQgYSB0aW1lciB0byByZXRyaWV2ZSBpbWcgd2hlbiB0aGUgc2VhcmNoIGJhciBvciB0aGUgcGFnaW5hdG9yIGFyZSB1c2VkXG4gICAgdGhpcy5zZWFyY2hRdWVyeUNoYW5nZWRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg0MDApKSAvLyB3YWl0IDAuNSBzZWMgYWZ0ZXIgdGhlIGxhc3QgZXZlbnQgYmVmb3JlIGVtaXR0aW5nIGxhc3QgZXZlbnRcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZpbHRlcnNDaGFuZ2VkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoODAwKSkgLy8gd2FpdCAwLjggc2VjIGFmdGVyIHRoZSBsYXN0IGV2ZW50IGJlZm9yZSBlbWl0dGluZyBsYXN0IGV2ZW50XG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuX2dldEltZ0xpc3QoKTtcbiAgICB9KTtcblxuICAgIC8vIFJlbG9hZCBpbWcgd2hlbiBpbWcgaXMvYXJlIHJlbW92ZWRcbiAgICB0aGlzLmltZ1JlbW92ZWRFdmVudCA9IHRoaXMuaW1nRXZlbnRTZXJ2aWNlLmdldEltZ1JlbW92ZWRFdmVudExpc3RuZXIoKS5zdWJzY3JpYmUoaWRfZmlsZSA9PntcbiAgICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIGltZyBmcm9tIENhbnZhXG4gICAgdGhpcy5pbWdBZGRlZEV2ZW50ID0gdGhpcy5pbWdFdmVudFNlcnZpY2UuZ2V0SW1nQWRkZWRFdmVudExpc3RuZXIoKS5zdWJzY3JpYmUoaWRfZmlsZSA9PntcbiAgICAgIGlmIChpZF9maWxlICYmICF0aGlzLmltZ0FscmVhZHlFeGlzdChpZF9maWxlKSkge1xuICAgICAgICB0aGlzLmdldEltZyhpZF9maWxlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuaW1nU2VsZWN0aW9uQ2hhbmdlID0gdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmdldEltZ1NlbGVjdGlvbkNoYW5nZSgpLnN1YnNjcmliZShpbWdTZWxlY3Rpb24gPT57XG4gICAgICBpZiAodGhpcy5saXN0RGlzcGxheWVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlkRmlsZUxpc3QgPSBbXTtcbiAgICAgIGltZ1NlbGVjdGlvbi5tYXAoaW1nID0+IGlkRmlsZUxpc3QucHVzaChpbWcuaWRfZmlsZSkpO1xuICAgICAgZm9yIChjb25zdCBwaWN0dXJlIG9mIHRoaXMucGljdHVyZXNMaXN0KSB7XG4gICAgICAgIGlmIChpZEZpbGVMaXN0LmluZGV4T2YocGljdHVyZS5pZF9maWxlKSA9PT0gLTEpIHtcbiAgICAgICAgICBwaWN0dXJlLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEltZ0xpc3QoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZGlzcGxheVBleGVsc1Jlc3VsdHMgPSBmYWxzZTtcbiAgICB0aGlzLnNldFBhcmFtcygpO1xuXG4gICAgdGhpcy5yZWZyZXNoVG90YWxJbWdMaXN0KCk7XG5cbiAgICB0aGlzLmltZ01hbmFnZXIuZ2V0U2hvcEltZ0xpc3QodGhpcy5wYXJhbXMpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChkYXRhOiBJbWdQaWN0dXJlc0RUTykgPT4ge1xuICAgICAgdGhpcy5pbml0VmFyaWFibGVzKHRydWUpO1xuICAgICAgY29uc3QgbmJJbWdEaXNwbGF5ZWQgPSBkYXRhLmRhdGEubGVuZ3RoO1xuICAgICAgdGhpcy5jYWxjdWxOYkltZ0Zha2UobmJJbWdEaXNwbGF5ZWQpO1xuICAgICAgdGhpcy5waWN0dXJlc0xpc3QgPSBkYXRhLmRhdGE7XG4gICAgICB0aGlzLnJlbmFtZVBpY3R1cmVTZXJ2aWNlLnNldFBpY3R1cmVzTGlzdCh0aGlzLnBpY3R1cmVzTGlzdCk7XG4gICAgICB0aGlzLnNlbGVjdEltZ1NlbGVjdGVkKCk7XG5cbiAgICAgIHRoaXMubGVuZ3RoID0gdGhpcy5pc1RvdGFsUmV0aWV2ZWQgPyB0aGlzLmxlbmd0aCA6IGRhdGEudG90YWxSZWNvcmRzO1xuICAgICAgdGhpcy50YWJsZUZpbHRlcnMudG90YWxJdGVtcyA9IHRoaXMuaXNUb3RhbFJldGlldmVkID8gdGhpcy50YWJsZUZpbHRlcnMudG90YWxJdGVtcyA6IGRhdGEudG90YWxSZWNvcmRzO1xuICAgICAgdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlID0gIHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSA/ICB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UgOiB0aGlzLnBhZ2VTaXplO1xuXG4gICAgICBpZiAodGhpcy5tYXhMZW5ndGhDYXJkU2hvdykge1xuICAgICAgICB0aGlzLnBpY3R1cmVzTGlzdCA9IHRoaXMucGljdHVyZXNMaXN0LnNwbGljZSgwLCA4KTtcbiAgICAgIH1cblxuICAgICAgLy8gRGlzcGxheSBQZXhlbHMgaWYgbm8gcmVzdWx0XG4gICAgICBpZiAoZGF0YS50b3RhbFJlY29yZHMgPT09IDApIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5UGV4ZWxzTGliKCk7XG4gICAgICB9XG5cbiAgICB9LFxuICAgIGVycm9yID0+IHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLm9wZW5BbGVydCh0aGlzLmVycm9yR2V0QWxsSW1nKTtcbiAgICAgIHRoaXMuaW5pdFZhcmlhYmxlcyhmYWxzZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hUb3RhbEltZ0xpc3QoKSB7XG4gICAgY29uc3Qgc2VhcmNoVmFsdWUgPSB0aGlzLnRhYmxlRmlsdGVycy5zZWFyY2hWYWx1ZTtcblxuICAgIGlmICh0aGlzLmlzVG90YWxSZXRpZXZlZCAmJiBzZWFyY2hWYWx1ZSA9PT0gdGhpcy5wcmV2aW91c1NlYXJjaFZhbHVlKSB7XG4gICAgICAvLyBLZWVwIGN1cnJlbnQgdG90YWwgcmVzdWx0XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc1RvdGFsUmV0aWV2ZWQgPSBmYWxzZTtcblxuICAgIHRoaXMuaW1nTWFuYWdlci5nZXRTaG9wVG90YWxJbWdMaXN0KHRoaXMucGFyYW1zKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShcblxuICAgICAgKGRhdGE6IEltZ1BpY3R1cmVzRFRPKSA9PiB7XG4gICAgICAgIHRoaXMucHJldmlvdXNTZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlO1xuICAgICAgICB0aGlzLmlzVG90YWxSZXRpZXZlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gZGF0YS50b3RhbFJlY29yZHM7XG4gICAgICAgIHRoaXMudGFibGVGaWx0ZXJzLnRvdGFsSXRlbXMgPSBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgIH0sXG5cbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgLy90aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvckdldFRvdGFsSW1nKTtcbiAgICAgICAgdGhpcy5pbml0VmFyaWFibGVzKGZhbHNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoUXVlcnlDaGFuZ2VkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5pbWdSZW1vdmVkRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmltZ0FkZGVkRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmltZ1NlbGVjdGlvbkNoYW5nZS51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
@@ -22,6 +22,10 @@ let ImgEditorComponent = class ImgEditorComponent {
22
22
  return;
23
23
  }
24
24
  this.isLoading = true;
25
+ if (!this.isImgModified && !this.isNameModified) {
26
+ this.isLoading = false;
27
+ this.onEditClosed();
28
+ }
25
29
  const obsReplaceImg = this.imgManagerService.replaceImg(this.currentCroppedImage, this.imgToEdit.id_file);
26
30
  const obsChangeImgName = this.imgManagerService.changeImgName(this.imgToEdit.display_name, this.imgToEdit.id_file);
27
31
  if (this.isImgModified && this.isNameModified) {
@@ -97,7 +101,7 @@ __decorate([
97
101
  ImgEditorComponent = __decorate([
98
102
  Component({
99
103
  selector: 'img-editor',
100
- template: "<div class=\"img-editor\" [@easeInOut]=\"'in'\">\n\n <ng-scrollbar\n #scrollable\n [visibility]=\"'native'\"\n class=\"img-editor__scroll\"\n [ngClass]=\"{\n 'img-editor__scroll--full': stateDisplayed === 'full',\n 'img-editor__scroll--smallDisplay': stateDisplayed === 'small',\n 'img-editor__scroll--window': stateDisplayed === 'window'\n }\"\n >\n <div class=\"columns\">\n <!-- Left section -->\n <div class=\"column is-one-third img-editor__infoSection\">\n\n <info-section\n [imgToEdit]=\"imgToEdit\"\n [(isNameModified)]=\"isNameModified\"\n >\n </info-section>\n\n <!-- Button Action Section -->\n\n <div class=\"img-editor__infoSection__actions\">\n <div>\n <button\n class=\"button img-editor__infoSection__actions__cancel\"\n (click)=\"onCancel()\"\n [disabled]=\"isLoading\"\n >\n {{ 'ImgManager.ImgLib.cancel' | translate }}\n </button>\n <div\n class=\"button danger button img-editor__infoSection__actions__save\"\n [ngClass]=\"{'img-editor__infoSection__actions__save--disable': isLoading}\"\n (click)=\"onSave()\"\n >\n {{ 'ImgManager.ImgEditor.saveBtn' | translate }}\n <span btnLoadingAnim *ngIf=\"isLoading\" class=\"btnLoadingAnnimation\"></span>\n </div>\n\n </div>\n </div>\n </div>\n\n\n <!-- Right section -->\n <div class=\"column img-editor__container\">\n <cropper\n [imgToEdit]=\"imgToEdit\"\n [(isImgModified)]=\"isImgModified\"\n (currentCroppedImageChange)=\"onImgCropped($event)\"\n (editClosed)=\"onEditClosed($event)\">\n </cropper>\n </div>\n </div>\n </ng-scrollbar>\n</div>\n",
104
+ template: "<div class=\"img-editor\" [@easeInOut]=\"'in'\">\n\n <ng-scrollbar\n #scrollable\n [visibility]=\"'native'\"\n class=\"img-editor__scroll\"\n [ngClass]=\"{\n 'img-editor__scroll--full': stateDisplayed === 'full',\n 'img-editor__scroll--smallDisplay': stateDisplayed === 'small',\n 'img-editor__scroll--window': stateDisplayed === 'window'\n }\"\n >\n <div class=\"columns\">\n <!-- Left section -->\n <div class=\"column is-one-third img-editor__infoSection\">\n\n <info-section\n [imgToEdit]=\"imgToEdit\"\n [(isNameModified)]=\"isNameModified\"\n >\n </info-section>\n\n <!-- Button Action Section -->\n\n <div class=\"img-editor__infoSection__actions\">\n <div>\n <button\n class=\"button img-editor__infoSection__actions__cancel\"\n (click)=\"onCancel()\"\n [disabled]=\"isLoading || (!isImgModified && !isNameModified)\"\n >\n {{ 'ImgManager.ImgLib.cancel' | translate }}\n </button>\n <div\n class=\"button danger button img-editor__infoSection__actions__save\"\n [ngClass]=\"{'img-editor__infoSection__actions__save--disable': isLoading}\"\n (click)=\"onSave()\"\n >\n {{ 'ImgManager.ImgEditor.saveBtn' | translate }}\n <span btnLoadingAnim *ngIf=\"isLoading\" class=\"btnLoadingAnnimation\"></span>\n </div>\n\n </div>\n </div>\n </div>\n\n\n <!-- Right section -->\n <div class=\"column img-editor__container\">\n <cropper\n [imgToEdit]=\"imgToEdit\"\n [(isImgModified)]=\"isImgModified\"\n (currentCroppedImageChange)=\"onImgCropped($event)\"\n (editClosed)=\"onEditClosed($event)\">\n </cropper>\n </div>\n </div>\n </ng-scrollbar>\n</div>\n",
101
105
  animations: [
102
106
  easeInOut
103
107
  ]
@@ -105,4 +109,4 @@ ImgEditorComponent = __decorate([
105
109
  __metadata("design:paramtypes", [ImgManagerService])
106
110
  ], ImgEditorComponent);
107
111
  export { ImgEditorComponent };
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ad2l6aXNob3AvaW1nLW1hbmFnZXIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9pbWctZWRpdG9yL2ltZy1lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUc5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFTN0UsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBa0I7SUFtQjdCLFlBQ1UsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFicEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyx3QkFBbUIsR0FBVyxFQUFFLENBQUMsQ0FBQywrQ0FBK0M7UUFHakYsZ0JBQVcsR0FBVyxrQ0FBa0MsQ0FBQztRQUN6RCxnQkFBVyxHQUFXLGtDQUFrQyxDQUFDO1FBQ3pELG1CQUFjLEdBQVcseURBQXlELENBQUE7SUFJNUUsQ0FBQztJQUVQLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO0lBQ2xELENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLE1BQU0sYUFBYSxHQUFvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLElB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TixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFBOztZQXJGOEIsaUJBQWlCOztBQWpCOUM7SUFEQyxLQUFLLEVBQUU7OzBEQUNPO0FBRWY7SUFEQyxLQUFLLEVBQUU7O3FEQUNpQjtBQUVmO0lBQVQsTUFBTSxFQUFFOztzREFBaUM7QUFQL0Isa0JBQWtCO0lBUDlCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxZQUFZO1FBQ3RCLG1uRUFBMEM7UUFDMUMsVUFBVSxFQUFFO1lBQ1YsU0FBUztTQUNWO0tBQ0YsQ0FBQztxQ0FxQjZCLGlCQUFpQjtHQXBCbkMsa0JBQWtCLENBeUc5QjtTQXpHWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbWdQaWN0dXJlRFRPIH0gZnJvbSAnLi4vLi4vZHRvL2ltZy1tYW5hZ2VyLmR0byc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW1nTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbWctbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IGVhc2VJbk91dCB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvZWFzZUluT3V0L2Vhc2UtaW4tb3V0LmFuaW1hdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltZy1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1nLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICBlYXNlSW5PdXRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbWdFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpXG4gIHN0YXRlRGlzcGxheWVkO1xuICBASW5wdXQoKVxuICBpbWdUb0VkaXQ6IEltZ1BpY3R1cmVEVE87XG5cbiAgQE91dHB1dCgpIGVkaXRDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGlzSW1nTW9kaWZpZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNOYW1lTW9kaWZpZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY3VycmVudENyb3BwZWRJbWFnZTogc3RyaW5nID0gJyc7IC8vIEltZyBtb2RpZmllZCByZXR1cm4gaW4gYmFzZTY0IGJ5IHRoZSBjcm9wcGVyXG4gIHByaXZhdGUgcHJldmlvdXNOYW1lOiBzdHJpbmc7XG5cbiAgbXNnRmFpbFNhdmU6IHN0cmluZyA9ICdJbWdNYW5hZ2VyLkltZ0VkaXRvci5tc2dGYWlsU2F2ZSc7XG4gIG1zZ0ZhaWxMb2FkOiBzdHJpbmcgPSAnSW1nTWFuYWdlci5JbWdFZGl0b3IubXNnRmFpbExvYWQnO1xuICBtc2dTdWNjZXNzRWRpdDogc3RyaW5nID0gXCJMZXMgbW9kaWZpY2F0aW9ucyBkZSBsJ2ltYWdlIG9udCBiaWVuIMOpdMOpIGVucmVnaXN0csOpZXMuXCJcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGltZ01hbmFnZXJTZXJ2aWNlOiBJbWdNYW5hZ2VyU2VydmljZSxcbiAgICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucHJldmlvdXNOYW1lID0gdGhpcy5pbWdUb0VkaXQuZGlzcGxheV9uYW1lO1xuICB9XG5cbiAgb25TYXZlKCkge1xuICAgIGlmICh0aGlzLmlzTG9hZGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICBjb25zdCBvYnNSZXBsYWNlSW1nOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmltZ01hbmFnZXJTZXJ2aWNlLnJlcGxhY2VJbWcodGhpcy5jdXJyZW50Q3JvcHBlZEltYWdlLCB0aGlzLmltZ1RvRWRpdC5pZF9maWxlKTtcbiAgICBjb25zdCBvYnNDaGFuZ2VJbWdOYW1lOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmltZ01hbmFnZXJTZXJ2aWNlLmNoYW5nZUltZ05hbWUodGhpcy5pbWdUb0VkaXQuZGlzcGxheV9uYW1lLCB0aGlzLmltZ1RvRWRpdC5pZF9maWxlKTtcblxuICAgIGlmKHRoaXMuaXNJbWdNb2RpZmllZCAmJiB0aGlzLmlzTmFtZU1vZGlmaWVkKSB7XG4gICAgICB0aGlzLnJhbmFtZUFuZFJlcGxhY2VJbWcob2JzQ2hhbmdlSW1nTmFtZSwgb2JzUmVwbGFjZUltZyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYodGhpcy5pc0ltZ01vZGlmaWVkKXtcbiAgICAgIG9ic1JlcGxhY2VJbWcuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ1N1Y2Nlc3NFZGl0KTtcbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3VycmVudENyb3BwZWRJbWFnZSA9ICcnO1xuICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ0ZhaWxTYXZlKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzTmFtZU1vZGlmaWVkKSB7XG4gICAgICBvYnNDaGFuZ2VJbWdOYW1lLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wcmV2aW91c05hbWUgPSB0aGlzLmltZ1RvRWRpdC5kaXNwbGF5X25hbWU7XG4gICAgICAgIHRoaXMub25FZGl0Q2xvc2VkKHRoaXMubXNnU3VjY2Vzc0VkaXQpO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pbWdUb0VkaXQuZGlzcGxheV9uYW1lID0gdGhpcy5wcmV2aW91c05hbWU7XG4gICAgICAgIHRoaXMub25FZGl0Q2xvc2VkKHRoaXMubXNnRmFpbFNhdmUpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuaXNOYW1lTW9kaWZpZWQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uRWRpdENsb3NlZChtc2dLZXk/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmVkaXRDbG9zZWQuZW1pdChtc2dLZXkpO1xuICB9XG5cbiAgb25SZXN0YXJ0RWRpdCgpIHtcbiAgICB0aGlzLmlzSW1nTW9kaWZpZWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzTmFtZU1vZGlmaWVkID0gZmFsc2U7XG4gICAgdGhpcy5pbWdUb0VkaXQuZGlzcGxheV9uYW1lID0gdGhpcy5wcmV2aW91c05hbWU7XG4gIH1cblxuICBvbkNhbmNlbCgpIHtcbiAgICB0aGlzLm9uRWRpdENsb3NlZCgnJyk7XG4gIH1cblxuICBvbkltZ0Nyb3BwZWQoaW1nQmFzZTY0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRDcm9wcGVkSW1hZ2UgPSBpbWdCYXNlNjQ7XG4gIH1cblxuICBwcml2YXRlIHJhbmFtZUFuZFJlcGxhY2VJbWcob2JzQ2hhbmdlSW1nTmFtZTogT2JzZXJ2YWJsZTxhbnk+LCBvYnNSZXBsYWNlSW1nOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICAvLyBBdm9pZCB0byB1c2UgZm9ya2pvaW4sIGJlY2F1c2UgaXQgY2FuIGNyZWF0ZSBjb25mbGljdCBhbmQgbG9vcyB0aGUgaW1nXG4gICAgb2JzQ2hhbmdlSW1nTmFtZS5zdWJzY3JpYmUoXG4gICAgICByZXMxID0+IHtcbiAgICAgICAgb2JzUmVwbGFjZUltZy5zdWJzY3JpYmUoXG4gICAgICAgICAgcmVzMiA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ1N1Y2Nlc3NFZGl0KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICAgIHRoaXMub25FZGl0Q2xvc2VkKHRoaXMubXNnRmFpbFNhdmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMub25FZGl0Q2xvc2VkKHRoaXMubXNnRmFpbFNhdmUpO1xuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ad2l6aXNob3AvaW1nLW1hbmFnZXIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9pbWctZWRpdG9yL2ltZy1lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUc5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFTN0UsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBa0I7SUFtQjdCLFlBQ1UsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFicEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyx3QkFBbUIsR0FBVyxFQUFFLENBQUMsQ0FBQywrQ0FBK0M7UUFHakYsZ0JBQVcsR0FBVyxrQ0FBa0MsQ0FBQztRQUN6RCxnQkFBVyxHQUFXLGtDQUFrQyxDQUFDO1FBQ3pELG1CQUFjLEdBQVcseURBQXlELENBQUE7SUFJNUUsQ0FBQztJQUVQLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO0lBQ2xELENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMs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ekMsQ0FBQyxFQUNELEtBQUssQ0FBQyxFQUFFO2dCQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3RDLENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxFQUNELEtBQUssQ0FBQyxFQUFFO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQTs7WUExRjhCLGlCQUFpQjs7QUFqQjlDO0lBREMsS0FBSyxFQUFFOzswREFDTztBQUVmO0lBREMsS0FBSyxFQUFFOztxREFDaUI7QUFFZjtJQUFULE1BQU0sRUFBRTs7c0RBQWlDO0FBUC9CLGtCQUFrQjtJQVA5QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsWUFBWTtRQUN0QiwycEVBQTBDO1FBQzFDLFVBQVUsRUFBRTtZQUNWLFNBQVM7U0FDVjtLQUNGLENBQUM7cUNBcUI2QixpQkFBaUI7R0FwQm5DLGtCQUFrQixDQThHOUI7U0E5R1ksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1nUGljdHVyZURUTyB9IGZyb20gJy4uLy4uL2R0by9pbWctbWFuYWdlci5kdG8nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEltZ01hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBlYXNlSW5PdXQgfSBmcm9tICcuLi8uLi9hbmltYXRpb25zL2Vhc2VJbk91dC9lYXNlLWluLW91dC5hbmltYXRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbWctZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltZy1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBhbmltYXRpb25zOiBbXG4gICAgZWFzZUluT3V0XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW1nRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBzdGF0ZURpc3BsYXllZDtcbiAgQElucHV0KClcbiAgaW1nVG9FZGl0OiBJbWdQaWN0dXJlRFRPO1xuXG4gIEBPdXRwdXQoKSBlZGl0Q2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0ltZ01vZGlmaWVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzTmFtZU1vZGlmaWVkOiBib29sZWFuID0gZmFsc2U7XG4gIGN1cnJlbnRDcm9wcGVkSW1hZ2U6IHN0cmluZyA9ICcnOyAvLyBJbWcgbW9kaWZpZWQgcmV0dXJuIGluIGJhc2U2NCBieSB0aGUgY3JvcHBlclxuICBwcml2YXRlIHByZXZpb3VzTmFtZTogc3RyaW5nO1xuXG4gIG1zZ0ZhaWxTYXZlOiBzdHJpbmcgPSAnSW1nTWFuYWdlci5JbWdFZGl0b3IubXNnRmFpbFNhdmUnO1xuICBtc2dGYWlsTG9hZDogc3RyaW5nID0gJ0ltZ01hbmFnZXIuSW1nRWRpdG9yLm1zZ0ZhaWxMb2FkJztcbiAgbXNnU3VjY2Vzc0VkaXQ6IHN0cmluZyA9IFwiTGVzIG1vZGlmaWNhdGlvbnMgZGUgbCdpbWFnZSBvbnQgYmllbiDDqXTDqSBlbnJlZ2lzdHLDqWVzLlwiXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbWdNYW5hZ2VyU2VydmljZTogSW1nTWFuYWdlclNlcnZpY2UsXG4gICAgKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZpb3VzTmFtZSA9IHRoaXMuaW1nVG9FZGl0LmRpc3BsYXlfbmFtZTtcbiAgfVxuXG4gIG9uU2F2ZSgpIHtcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgaWYgKCF0aGlzLmlzSW1nTW9kaWZpZWQgICYmICF0aGlzLmlzTmFtZU1vZGlmaWVkKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5vbkVkaXRDbG9zZWQoKTtcbiAgICB9XG5cbiAgICBjb25zdCBvYnNSZXBsYWNlSW1nOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmltZ01hbmFnZXJTZXJ2aWNlLnJlcGxhY2VJbWcodGhpcy5jdXJyZW50Q3JvcHBlZEltYWdlLCB0aGlzLmltZ1RvRWRpdC5pZF9maWxlKTtcbiAgICBjb25zdCBvYnNDaGFuZ2VJbWdOYW1lOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmltZ01hbmFnZXJTZXJ2aWNlLmNoYW5nZUltZ05hbWUodGhpcy5pbWdUb0VkaXQuZGlzcGxheV9uYW1lLCB0aGlzLmltZ1RvRWRpdC5pZF9maWxlKTtcblxuICAgIGlmKHRoaXMuaXNJbWdNb2RpZmllZCAmJiB0aGlzLmlzTmFtZU1vZGlmaWVkKSB7XG4gICAgICB0aGlzLnJhbmFtZUFuZFJlcGxhY2VJbWcob2JzQ2hhbmdlSW1nTmFtZSwgb2JzUmVwbGFjZUltZyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYodGhpcy5pc0ltZ01vZGlmaWVkKXtcbiAgICAgIG9ic1JlcGxhY2VJbWcuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ1N1Y2Nlc3NFZGl0KTtcbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3VycmVudENyb3BwZWRJbWFnZSA9ICcnO1xuICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ0ZhaWxTYXZlKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzTmFtZU1vZGlmaWVkKSB7XG4gICAgICBvYnNDaGFuZ2VJbWdOYW1lLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wcmV2aW91c05hbWUgPSB0aGlzLmltZ1RvRWRpdC5kaXNwbGF5X25hbWU7XG4gICAgICAgIHRoaXMub25FZGl0Q2xvc2VkKHRoaXMubXNnU3VjY2Vzc0VkaXQpO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pbWdUb0VkaXQuZGlzcGxheV9uYW1lID0gdGhpcy5wcmV2aW91c05hbWU7XG4gICAgICAgIHRoaXMub25FZGl0Q2xvc2VkKHRoaXMubXNnRmFpbFNhdmUpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuaXNOYW1lTW9kaWZpZWQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uRWRpdENsb3NlZChtc2dLZXk/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmVkaXRDbG9zZWQuZW1pdChtc2dLZXkpO1xuICB9XG5cbiAgb25SZXN0YXJ0RWRpdCgpIHtcbiAgICB0aGlzLmlzSW1nTW9kaWZpZWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzTmFtZU1vZGlmaWVkID0gZmFsc2U7XG4gICAgdGhpcy5pbWdUb0VkaXQuZGlzcGxheV9uYW1lID0gdGhpcy5wcmV2aW91c05hbWU7XG4gIH1cblxuICBvbkNhbmNlbCgpIHtcbiAgICB0aGlzLm9uRWRpdENsb3NlZCgnJyk7XG4gIH1cblxuICBvbkltZ0Nyb3BwZWQoaW1nQmFzZTY0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmN1cnJlbnRDcm9wcGVkSW1hZ2UgPSBpbWdCYXNlNjQ7XG4gIH1cblxuICBwcml2YXRlIHJhbmFtZUFuZFJlcGxhY2VJbWcob2JzQ2hhbmdlSW1nTmFtZTogT2JzZXJ2YWJsZTxhbnk+LCBvYnNSZXBsYWNlSW1nOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICAvLyBBdm9pZCB0byB1c2UgZm9ya2pvaW4sIGJlY2F1c2UgaXQgY2FuIGNyZWF0ZSBjb25mbGljdCBhbmQgbG9vcyB0aGUgaW1nXG4gICAgb2JzQ2hhbmdlSW1nTmFtZS5zdWJzY3JpYmUoXG4gICAgICByZXMxID0+IHtcbiAgICAgICAgb2JzUmVwbGFjZUltZy5zdWJzY3JpYmUoXG4gICAgICAgICAgcmVzMiA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uRWRpdENsb3NlZCh0aGlzLm1zZ1N1Y2Nlc3NFZGl0KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICAgIHRoaXMub25FZGl0Q2xvc2VkKHRoaXMubXNnRmFpbFNhdmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMub25FZGl0Q2xvc2VkKHRoaXMubXNnRmFpbFNhdmUpO1xuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,55 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ let PageSelectorComponent = class PageSelectorComponent {
4
+ constructor() {
5
+ this.openAbsoluteSelect = false;
6
+ this.largeNumberOfPage = false;
7
+ this.numberOfPage = 0;
8
+ this.pageChange = new EventEmitter();
9
+ }
10
+ set pagination(pagination) {
11
+ this._pagination = pagination;
12
+ }
13
+ get pagination() {
14
+ return this._pagination;
15
+ }
16
+ set totalItems(totalItems) {
17
+ this.numberOfPage = Math.ceil(totalItems / this.pagination.itemsPerPage);
18
+ this.largeNumberOfPage = this.numberOfPage > 30;
19
+ }
20
+ get totalItems() {
21
+ return this._totalItems;
22
+ }
23
+ onGotoPageChange(event, directValue) {
24
+ if (directValue) {
25
+ this.pageChange.emit(event);
26
+ this.openAbsoluteSelect = false;
27
+ }
28
+ else {
29
+ this.pageChange.emit(parseInt(event.target.value));
30
+ }
31
+ }
32
+ };
33
+ __decorate([
34
+ Input(),
35
+ __metadata("design:type", Object),
36
+ __metadata("design:paramtypes", [Object])
37
+ ], PageSelectorComponent.prototype, "pagination", null);
38
+ __decorate([
39
+ Input(),
40
+ __metadata("design:type", Number),
41
+ __metadata("design:paramtypes", [Number])
42
+ ], PageSelectorComponent.prototype, "totalItems", null);
43
+ __decorate([
44
+ Output(),
45
+ __metadata("design:type", EventEmitter)
46
+ ], PageSelectorComponent.prototype, "pageChange", void 0);
47
+ PageSelectorComponent = __decorate([
48
+ Component({
49
+ selector: 'wz-page-selector',
50
+ template: "<div class=\"wz-selector\">\n\n <div class=\"wz-selector__default\" [ngStyle]=\"{'width': 40 + (10*pagination.currentPage.toString().length) + 'px'}\">\n <div class=\"wz-selector__default__base\" *ngIf=\"largeNumberOfPage;\" (click)=\"openAbsoluteSelect = !openAbsoluteSelect\">\n <input name=\"page-input\" [value]=\"pagination.currentPage\" (change)=\"onGotoPageChange($event, false);openAbsoluteSelect = false;\" [ngStyle]=\"{'width': 40 + (10*pagination.currentPage.toString().length) + 'px'}\" />\n <i class=\"fas fa-sort-down\"></i>\n </div>\n <div class=\"wz-selector__default__absolute\" *ngIf=\"openAbsoluteSelect\">\n <div class=\"wz-selector__default__absolute__wrapper\" *ngFor=\"let pageIndex of (pagination.totalItems | LargeNumberOfPage: pagination.itemsPerPage : pagination.currentPage).slice().reverse() as result\">\n <div class=\"wz-selector__default__absolute__wrapper__item\" [ngClass]=\"{'selected': pageIndex.value === pagination.currentPage}\" (click)=\"onGotoPageChange(pageIndex.value, true)\">\n <span>{{ pageIndex.display }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"!largeNumberOfPage\">\n <select name=\"page\" (change)=\"onGotoPageChange($event, false)\" [ngStyle]=\"{'width': 40 + (10*pagination.currentPage.toString().length) + 'px'}\">\n <ng-container *ngFor=\"let pageIndex of pagination.totalItems | ArrayTotalPages: pagination.itemsPerPage\">\n <option [selected]=\"pageIndex === pagination.currentPage\" [value]=\"pageIndex\">\n {{ pageIndex }}\n </option>\n </ng-container>\n </select>\n </ng-container>\n</div>\n"
51
+ }),
52
+ __metadata("design:paramtypes", [])
53
+ ], PageSelectorComponent);
54
+ export { PageSelectorComponent };
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ad2l6aXNob3AvaW1nLW1hbmFnZXIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zaGFyZWQvcGFnaW5hdGlvbi9wYWdlLXNlbGVjdG9yL3BhZ2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBWXZFLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBeUJoQztRQVBBLHVCQUFrQixHQUFXLEtBQUssQ0FBQztRQUVuQyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFFZixlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFakQsQ0FBQztJQXZCUCxJQUFJLFVBQVUsQ0FBQyxVQUE2QjtRQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFHUSxJQUFJLFVBQVUsQ0FBQyxVQUFrQjtRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQVdELGdCQUFnQixDQUFDLEtBQUssRUFBRSxXQUFXO1FBQ2pDLElBQUksV0FBVyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7Q0FDRixDQUFBO0FBakNVO0lBQVIsS0FBSyxFQUFFOzs7dURBRVA7QUFNUTtJQUFSLEtBQUssRUFBRTs7O3VEQUdQO0FBVVM7SUFBVCxNQUFNLEVBQUU7OEJBQWEsWUFBWTt5REFBOEI7QUF2QnJELHFCQUFxQjtJQUpqQyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsa0JBQWtCO1FBQzVCLHlwREFBNkM7S0FDOUMsQ0FBQzs7R0FDVyxxQkFBcUIsQ0FtQ2pDO1NBbkNZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbkZpbHRlcnMge1xuICB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xuICBjdXJyZW50UGFnZTogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3ei1wYWdlLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VTZWxlY3RvckNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgc2V0IHBhZ2luYXRpb24ocGFnaW5hdGlvbjogUGFnaW5hdGlvbkZpbHRlcnMpIHtcbiAgICB0aGlzLl9wYWdpbmF0aW9uID0gcGFnaW5hdGlvbjtcbiAgfVxuICBnZXQgcGFnaW5hdGlvbigpOiBQYWdpbmF0aW9uRmlsdGVycyB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2luYXRpb247XG4gIH1cbiAgcHJpdmF0ZSBfcGFnaW5hdGlvbjogUGFnaW5hdGlvbkZpbHRlcnM7XG5cbiAgQElucHV0KCkgc2V0IHRvdGFsSXRlbXModG90YWxJdGVtczogbnVtYmVyKSB7XG4gICAgdGhpcy5udW1iZXJPZlBhZ2UgPSBNYXRoLmNlaWwodG90YWxJdGVtcyAvIHRoaXMucGFnaW5hdGlvbi5pdGVtc1BlclBhZ2UpO1xuICAgIHRoaXMubGFyZ2VOdW1iZXJPZlBhZ2UgPSB0aGlzLm51bWJlck9mUGFnZSA+IDMwO1xuICB9XG4gIGdldCB0b3RhbEl0ZW1zKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3RvdGFsSXRlbXM7XG4gIH1cbiAgcHJpdmF0ZSBfdG90YWxJdGVtczogbnVtYmVyO1xuICBvcGVuQWJzb2x1dGVTZWxlY3Q6Ym9vbGVhbiA9IGZhbHNlO1xuXG4gIGxhcmdlTnVtYmVyT2ZQYWdlOiBib29sZWFuID0gZmFsc2U7XG4gIG51bWJlck9mUGFnZTogbnVtYmVyID0gMDtcblxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG9uR290b1BhZ2VDaGFuZ2UoZXZlbnQsIGRpcmVjdFZhbHVlKSB7XG4gICAgaWYgKGRpcmVjdFZhbHVlKSB7XG4gICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChldmVudCk7XG4gICAgICB0aGlzLm9wZW5BYnNvbHV0ZVNlbGVjdCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -26,8 +26,8 @@ let PaginationComponent = class PaginationComponent {
26
26
  this.pagination.currentPage++;
27
27
  this.pageChange.emit(this.pagination);
28
28
  }
29
- onGotoPageChange(event) {
30
- this.pagination.currentPage = parseInt(event.target.value);
29
+ onGotoPageChange(pageNumber) {
30
+ this.pagination.currentPage = parseInt(pageNumber);
31
31
  this.pageChange.emit(this.pagination);
32
32
  }
33
33
  };
@@ -43,9 +43,9 @@ __decorate([
43
43
  PaginationComponent = __decorate([
44
44
  Component({
45
45
  selector: 'wz-pagination',
46
- template: "<div class=\"wz-pagination\" *ngIf=\"pagination && pagination.itemsPerPage\">\n <div class=\"wz-pagination__wrapper\">\n <div class=\"wz-pagination__wrapper__page\">\n <p>{{ 'PaginationComponent.page' | translate }}</p>\n\n <select name=\"page\" (change)=\"onGotoPageChange($event)\" [ngStyle]=\"{'width': 40 + (10*pagination.currentPage.toString().length) + 'px'}\">\n <ng-container *ngFor=\"let pageIndex of pagination.totalItems | ArrayTotalPages: pagination.itemsPerPage\">\n <option [selected]=\"pageIndex === pagination.currentPage\" [value]=\"pageIndex\">\n {{ pageIndex }}\n </option>\n </ng-container>\n </select>\n </div>\n\n <div class=\"wz-pagination__wrapper__elements\">\n <p>{{ pagination.currentPage | customPagniationText: pagination.totalItems:pagination.itemsPerPage }}</p>\n </div>\n\n <div class=\"wz-pagination__wrapper__arrows\">\n <div\n (click)=\"decrementPage()\"\n class=\"wz-pagination__wrapper__arrows__arrow wz-pagination__wrapper__arrows__arrow--left\"\n [ngClass]=\"{ 'wz-pagination__wrapper__arrows__arrow--disabled': pagination.currentPage === 1 }\"\n >\n <span class=\"wz-pagination__wrapper__arrows__arrow__icon\"></span>\n </div>\n <div\n (click)=\"incrementPage()\"\n class=\"wz-pagination__wrapper__arrows__arrow wz-pagination__wrapper__arrows__arrow--right\"\n [ngClass]=\"{\n 'wz-pagination__wrapper__arrows__arrow--disabled':\n pagination.currentPage | IsLastPage: pagination.totalItems:pagination.itemsPerPage\n }\"\n >\n <span class=\"wz-pagination__wrapper__arrows__arrow__icon\"></span>\n </div>\n </div>\n </div>\n</div>\n"
46
+ template: "<div class=\"wz-pagination\" *ngIf=\"pagination && pagination.itemsPerPage\">\n <div class=\"wz-pagination__wrapper\">\n <div class=\"wz-pagination__wrapper__page\">\n <p>{{ 'PaginationComponent.page' | translate }}</p>\n\n <wz-page-selector [pagination]=\"pagination\" [totalItems]=\"pagination.totalItems\" (pageChange)=\"onGotoPageChange($event)\"></wz-page-selector>\n </div>\n\n <div class=\"wz-pagination__wrapper__elements\">\n <p>{{ pagination.currentPage | customPagniationText: pagination.totalItems:pagination.itemsPerPage }}</p>\n </div>\n\n <div class=\"wz-pagination__wrapper__arrows\">\n <div\n (click)=\"decrementPage()\"\n class=\"wz-pagination__wrapper__arrows__arrow wz-pagination__wrapper__arrows__arrow--left\"\n [ngClass]=\"{ 'wz-pagination__wrapper__arrows__arrow--disabled': pagination.currentPage === 1 }\"\n >\n <span class=\"wz-pagination__wrapper__arrows__arrow__icon\"></span>\n </div>\n <div\n (click)=\"incrementPage()\"\n class=\"wz-pagination__wrapper__arrows__arrow wz-pagination__wrapper__arrows__arrow--right\"\n [ngClass]=\"{\n 'wz-pagination__wrapper__arrows__arrow--disabled':\n pagination.currentPage | IsLastPage: pagination.totalItems:pagination.itemsPerPage\n }\"\n >\n <span class=\"wz-pagination__wrapper__arrows__arrow__icon\"></span>\n </div>\n </div>\n </div>\n</div>\n"
47
47
  }),
48
48
  __metadata("design:paramtypes", [])
49
49
  ], PaginationComponent);
50
50
  export { PaginationComponent };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ad2l6aXNob3AvaW1nLW1hbmFnZXIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zaGFyZWQvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQVkvRixJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtJQVc5QjtRQUZVLGVBQVUsR0FBb0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUU1RCxDQUFDO0lBVlAsSUFBSSxVQUFVLENBQUMsVUFBNkI7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBT0QsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLElBQUksQ0FBQyxFQUFFO1lBQ3BDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxVQUFVLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDLFNBQVMsQ0FDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FDN0IsQ0FBQztRQUNGLElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQUs7UUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDRixDQUFBO0FBckNVO0lBQVIsS0FBSyxFQUFFOzs7cURBRVA7QUFNUztJQUFULE1BQU0sRUFBRTs4QkFBYSxZQUFZO3VEQUF5QztBQVRoRSxtQkFBbUI7SUFKL0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGVBQWU7UUFDekIsaXZEQUEwQztLQUMzQyxDQUFDOztHQUNXLG1CQUFtQixDQXNDL0I7U0F0Q1ksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhZ25pYXRpb25Jc0xhc3RQYWdlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvcGFnaW5hdGlvbi90b3RhbC1wYWdlcy9pcy1sYXN0LXBhZ2UucGlwZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbkZpbHRlcnMge1xuICB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xuICBjdXJyZW50UGFnZTogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3ei1wYWdpbmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBzZXQgcGFnaW5hdGlvbihwYWdpbmF0aW9uOiBQYWdpbmF0aW9uRmlsdGVycykge1xuICAgIHRoaXMuX3BhZ2luYXRpb24gPSBwYWdpbmF0aW9uO1xuICB9XG4gIGdldCBwYWdpbmF0aW9uKCk6IFBhZ2luYXRpb25GaWx0ZXJzIHtcbiAgICByZXR1cm4gdGhpcy5fcGFnaW5hdGlvbjtcbiAgfVxuICBwcml2YXRlIF9wYWdpbmF0aW9uOiBQYWdpbmF0aW9uRmlsdGVycztcblxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPFBhZ2luYXRpb25GaWx0ZXJzPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgZGVjcmVtZW50UGFnZSgpIHtcbiAgICBpZiAodGhpcy5wYWdpbmF0aW9uLmN1cnJlbnRQYWdlIDw9IDEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wYWdpbmF0aW9uLmN1cnJlbnRQYWdlLS07XG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQodGhpcy5wYWdpbmF0aW9uKTtcbiAgfVxuXG4gIGluY3JlbWVudFBhZ2UoKSB7XG4gICAgY29uc3QgaXNMYXN0UGFnZSA9IG5ldyBQYWduaWF0aW9uSXNMYXN0UGFnZSgpLnRyYW5zZm9ybShcbiAgICAgIHRoaXMucGFnaW5hdGlvbi5jdXJyZW50UGFnZSxcbiAgICAgIHRoaXMucGFnaW5hdGlvbi50b3RhbEl0ZW1zLFxuICAgICAgdGhpcy5wYWdpbmF0aW9uLml0ZW1zUGVyUGFnZVxuICAgICk7XG4gICAgaWYgKGlzTGFzdFBhZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wYWdpbmF0aW9uLmN1cnJlbnRQYWdlKys7XG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQodGhpcy5wYWdpbmF0aW9uKTtcbiAgfVxuXG4gIG9uR290b1BhZ2VDaGFuZ2UoZXZlbnQpIHtcbiAgICB0aGlzLnBhZ2luYXRpb24uY3VycmVudFBhZ2UgPSBwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpO1xuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnaW5hdGlvbik7XG4gIH1cbn1cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ad2l6aXNob3AvaW1nLW1hbmFnZXIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zaGFyZWQvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQVkvRixJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtJQVc5QjtRQUZVLGVBQVUsR0FBb0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUU1RCxDQUFDO0lBVlAsSUFBSSxVQUFVLENBQUMsVUFBNkI7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBT0QsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLElBQUksQ0FBQyxFQUFFO1lBQ3BDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxVQUFVLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDLFNBQVMsQ0FDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FDN0IsQ0FBQztRQUNGLElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQVU7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0YsQ0FBQTtBQXJDVTtJQUFSLEtBQUssRUFBRTs7O3FEQUVQO0FBTVM7SUFBVCxNQUFNLEVBQUU7OEJBQWEsWUFBWTt1REFBeUM7QUFUaEUsbUJBQW1CO0lBSi9CLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxlQUFlO1FBQ3pCLHE4Q0FBMEM7S0FDM0MsQ0FBQzs7R0FDVyxtQkFBbUIsQ0FzQy9CO1NBdENZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYWduaWF0aW9uSXNMYXN0UGFnZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3BhZ2luYXRpb24vdG90YWwtcGFnZXMvaXMtbGFzdC1wYWdlLnBpcGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25GaWx0ZXJzIHtcbiAgdG90YWxJdGVtczogbnVtYmVyO1xuICBpdGVtc1BlclBhZ2U6IG51bWJlcjtcbiAgY3VycmVudFBhZ2U6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd3otcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc2V0IHBhZ2luYXRpb24ocGFnaW5hdGlvbjogUGFnaW5hdGlvbkZpbHRlcnMpIHtcbiAgICB0aGlzLl9wYWdpbmF0aW9uID0gcGFnaW5hdGlvbjtcbiAgfVxuICBnZXQgcGFnaW5hdGlvbigpOiBQYWdpbmF0aW9uRmlsdGVycyB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2luYXRpb247XG4gIH1cbiAgcHJpdmF0ZSBfcGFnaW5hdGlvbjogUGFnaW5hdGlvbkZpbHRlcnM7XG5cbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxQYWdpbmF0aW9uRmlsdGVycz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGRlY3JlbWVudFBhZ2UoKSB7XG4gICAgaWYgKHRoaXMucGFnaW5hdGlvbi5jdXJyZW50UGFnZSA8PSAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucGFnaW5hdGlvbi5jdXJyZW50UGFnZS0tO1xuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnaW5hdGlvbik7XG4gIH1cblxuICBpbmNyZW1lbnRQYWdlKCkge1xuICAgIGNvbnN0IGlzTGFzdFBhZ2UgPSBuZXcgUGFnbmlhdGlvbklzTGFzdFBhZ2UoKS50cmFuc2Zvcm0oXG4gICAgICB0aGlzLnBhZ2luYXRpb24uY3VycmVudFBhZ2UsXG4gICAgICB0aGlzLnBhZ2luYXRpb24udG90YWxJdGVtcyxcbiAgICAgIHRoaXMucGFnaW5hdGlvbi5pdGVtc1BlclBhZ2VcbiAgICApO1xuICAgIGlmIChpc0xhc3RQYWdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucGFnaW5hdGlvbi5jdXJyZW50UGFnZSsrO1xuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnaW5hdGlvbik7XG4gIH1cblxuICBvbkdvdG9QYWdlQ2hhbmdlKHBhZ2VOdW1iZXIpIHtcbiAgICB0aGlzLnBhZ2luYXRpb24uY3VycmVudFBhZ2UgPSBwYXJzZUludChwYWdlTnVtYmVyKTtcbiAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh0aGlzLnBhZ2luYXRpb24pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { __decorate } from "tslib";
2
+ import { Pipe } from '@angular/core';
3
+ let LargeNumberOfPagePipe = class LargeNumberOfPagePipe {
4
+ /**
5
+ * Return an incremental array
6
+ * Display 30 pages, from -15 to +15 of the current page
7
+ * @param totalItems
8
+ * @param itemsPerPage
9
+ */
10
+ transform(totalItems, itemsPerPage, currentPage) {
11
+ if (!(totalItems >= 0 && itemsPerPage >= 0)) {
12
+ throw new Error('totalItems or itemsPerPage missing in ArrayTotalPages pipe.');
13
+ }
14
+ let arrayLength = 32;
15
+ const startAtPage = currentPage <= 15 ? 0 : currentPage - 15;
16
+ const totalPage = Math.ceil(totalItems / itemsPerPage);
17
+ const arrayWithPageNumber = Array.apply(null, { length: arrayLength })
18
+ .map(Number.call, Number)
19
+ .map((x) => {
20
+ const pageIndex = {
21
+ display: startAtPage + x + 1,
22
+ value: startAtPage + x + 1
23
+ };
24
+ if (x === arrayLength - 2) {
25
+ pageIndex.display = '...';
26
+ }
27
+ if (x === arrayLength - 1) {
28
+ pageIndex.display = totalPage;
29
+ pageIndex.value = totalPage;
30
+ }
31
+ return pageIndex;
32
+ });
33
+ if (startAtPage) {
34
+ arrayWithPageNumber.unshift({
35
+ display: 1,
36
+ value: 1
37
+ }, {
38
+ display: "...",
39
+ value: 2
40
+ });
41
+ }
42
+ return arrayWithPageNumber;
43
+ }
44
+ };
45
+ LargeNumberOfPagePipe = __decorate([
46
+ Pipe({
47
+ name: 'LargeNumberOfPage'
48
+ })
49
+ ], LargeNumberOfPagePipe);
50
+ export { LargeNumberOfPagePipe };
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFyZ2UtbnVtYmVyLW9mLXBhZ2UucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B3aXppc2hvcC9pbWctbWFuYWdlci8iLCJzb3VyY2VzIjpbImxpYi9waXBlcy9wYWdpbmF0aW9uL2xhcmdlLW51bWJlci1vZi1wYWdlL2xhcmdlLW51bWJlci1vZi1wYWdlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBS3BELElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBQ2hDOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFDLFVBQWtCLEVBQUUsWUFBb0IsRUFBRSxXQUFtQjtRQUNyRSxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLFlBQVksSUFBSSxDQUFDLENBQUMsRUFBRTtZQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7U0FDaEY7UUFFRCxJQUFJLFdBQVcsR0FBVyxFQUFFLENBQUM7UUFFN0IsTUFBTSxXQUFXLEdBQUcsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBRSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQzdELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxDQUFDO1FBSXZELE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7YUFDckUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ3hCLEdBQUcsQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFO1lBRWpCLE1BQU0sU0FBUyxHQUFPO2dCQUNwQixPQUFPLEVBQUUsV0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDO2dCQUM1QixLQUFLLEVBQUUsV0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDO2FBQzNCLENBQUM7WUFFRixJQUFJLENBQUMsS0FBSyxXQUFXLEdBQUcsQ0FBQyxFQUFFO2dCQUN4QixTQUFTLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzthQUM1QjtZQUNELElBQUksQ0FBQyxLQUFLLFdBQVcsR0FBRyxDQUFDLEVBQUU7Z0JBQ3pCLFNBQVMsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO2dCQUM5QixTQUFTLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQzthQUM3QjtZQUVELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBR0gsSUFBSSxXQUFXLEVBQUU7WUFDZixtQkFBbUIsQ0FBQyxPQUFPLENBQ3pCO2dCQUNFLE9BQU8sRUFBRSxDQUFDO2dCQUNWLEtBQUssRUFBRSxDQUFDO2FBQ1QsRUFDRDtnQkFDRSxPQUFPLEVBQUUsS0FBSztnQkFDZCxLQUFLLEVBQUUsQ0FBQzthQUNULENBQ0YsQ0FBQztTQUNIO1FBRUQsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0NBQ0YsQ0FBQTtBQXZEWSxxQkFBcUI7SUFIakMsSUFBSSxDQUFDO1FBQ0osSUFBSSxFQUFFLG1CQUFtQjtLQUMxQixDQUFDO0dBQ1cscUJBQXFCLENBdURqQztTQXZEWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ0xhcmdlTnVtYmVyT2ZQYWdlJ1xufSlcbmV4cG9ydCBjbGFzcyBMYXJnZU51bWJlck9mUGFnZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgLyoqXG4gICAqIFJldHVybiBhbiBpbmNyZW1lbnRhbCBhcnJheVxuICAgKiBEaXNwbGF5IDMwIHBhZ2VzLCBmcm9tIC0xNSB0byArMTUgb2YgdGhlIGN1cnJlbnQgcGFnZVxuICAgKiBAcGFyYW0gdG90YWxJdGVtc1xuICAgKiBAcGFyYW0gaXRlbXNQZXJQYWdlXG4gICAqL1xuICB0cmFuc2Zvcm0odG90YWxJdGVtczogbnVtYmVyLCBpdGVtc1BlclBhZ2U6IG51bWJlciwgY3VycmVudFBhZ2U6IG51bWJlcik6IG51bWJlcltdIHtcbiAgICBpZiAoISh0b3RhbEl0ZW1zID49IDAgJiYgaXRlbXNQZXJQYWdlID49IDApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RvdGFsSXRlbXMgb3IgaXRlbXNQZXJQYWdlIG1pc3NpbmcgaW4gQXJyYXlUb3RhbFBhZ2VzIHBpcGUuJyk7XG4gICAgfVxuXG4gICAgbGV0IGFycmF5TGVuZ3RoOiBudW1iZXIgPSAzMjtcblxuICAgIGNvbnN0IHN0YXJ0QXRQYWdlID0gY3VycmVudFBhZ2UgPD0gMTUgPyAwOiAgY3VycmVudFBhZ2UgLSAxNTtcbiAgICBjb25zdCB0b3RhbFBhZ2UgPSBNYXRoLmNlaWwodG90YWxJdGVtcyAvIGl0ZW1zUGVyUGFnZSk7XG5cblxuXG4gICAgY29uc3QgYXJyYXlXaXRoUGFnZU51bWJlciA9IEFycmF5LmFwcGx5KG51bGwsIHsgbGVuZ3RoOiBhcnJheUxlbmd0aCB9KVxuICAgIC5tYXAoTnVtYmVyLmNhbGwsIE51bWJlcilcbiAgICAubWFwKCh4OiBudW1iZXIpID0+IHtcblxuICAgICAgY29uc3QgcGFnZUluZGV4OmFueSA9IHtcbiAgICAgICAgZGlzcGxheTogc3RhcnRBdFBhZ2UgKyB4ICsgMSxcbiAgICAgICAgdmFsdWU6IHN0YXJ0QXRQYWdlICsgeCArIDFcbiAgICAgIH07XG5cbiAgICAgIGlmICh4ID09PSBhcnJheUxlbmd0aCAtIDIpIHtcbiAgICAgICAgIHBhZ2VJbmRleC5kaXNwbGF5ID0gJy4uLic7XG4gICAgICB9XG4gICAgICBpZiAoeCA9PT0gYXJyYXlMZW5ndGggLSAxKSB7XG4gICAgICAgIHBhZ2VJbmRleC5kaXNwbGF5ID0gdG90YWxQYWdlO1xuICAgICAgICBwYWdlSW5kZXgudmFsdWUgPSB0b3RhbFBhZ2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwYWdlSW5kZXg7XG4gICAgfSk7XG5cblxuICAgIGlmIChzdGFydEF0UGFnZSkge1xuICAgICAgYXJyYXlXaXRoUGFnZU51bWJlci51bnNoaWZ0KFxuICAgICAgICB7XG4gICAgICAgICAgZGlzcGxheTogMSxcbiAgICAgICAgICB2YWx1ZTogMVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZGlzcGxheTogXCIuLi5cIixcbiAgICAgICAgICB2YWx1ZTogMlxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBhcnJheVdpdGhQYWdlTnVtYmVyO1xuICB9XG59XG4iXX0=
@@ -57,7 +57,7 @@ let ImgManagerService = class ImgManagerService {
57
57
  return this.http.get(`${this.imgManagerRoute}/images`, this.getOptionsHeaders(params));
58
58
  }
59
59
  getShopTotalImgList(params) {
60
- return this.http.get(`${this.imgManagerRoute}/total/images`, this.getOptionsHeaders(params));
60
+ return this.http.get(`${this.imgManagerRoute}/total/image`, this.getOptionsHeaders(params));
61
61
  }
62
62
  getShopImg(idFile) {
63
63
  return this.http.get(`${this.imgManagerRoute}/images/${idFile}`, this.getOptionsHeaders());
@@ -129,4 +129,4 @@ ImgManagerService = __decorate([
129
129
  __metadata("design:paramtypes", [HttpClient])
130
130
  ], ImgManagerService);
131
131
  export { ImgManagerService };
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B3aXppc2hvcC9pbWctbWFuYWdlci8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9pbWctbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFRM0UsSUFBYSxpQkFBaUIsR0FBOUIsTUFBYSxpQkFBaUI7SUF5QzVCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFwQ3BDLFdBQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBQyxHQUFHLENBQUMsQ0FBQztRQUU1RCw0QkFBNEI7UUFDcEIsMkJBQXNCLEdBQTRCO1lBQ3hELGNBQWMsRUFBRSxRQUFRO1lBQ3hCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsYUFBYSxFQUFFLElBQUk7WUFDbkIsVUFBVSxFQUFFLElBQUk7WUFDaEIsZ0JBQWdCLEVBQUUsSUFBSTtTQUN2QixDQUFBO1FBRU8sb0JBQWUsR0FBNEI7WUFDakQsY0FBYyxFQUFFLFFBQVE7WUFDeEIsZUFBZSxFQUFFLEtBQUs7WUFDdEIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixhQUFhLEVBQUUsS0FBSztZQUNwQixVQUFVLEVBQUUsS0FBSztTQUNsQixDQUFBO1FBRU8saUNBQTRCLEdBQTRCO1lBQzlELGNBQWMsRUFBRSxRQUFRO1lBQ3hCLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQTtR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QUNwQixJQUFJLENBQUMsc0JBQXNCO1lBQzNCLElBQUksQ0FBQyw0QkFBNEI7U0FDbEMsQ0FBQTtJQUNILENBQUM7Q0FDRixDQUFBOztZQWxHMkIsVUFBVTs7O0FBekN6QixpQkFBaUI7SUFIN0IsVUFBVSxDQUFDO1FBQ1YsVUFBVSxFQUFFLE1BQU07S0FDbkIsQ0FBQztxQ0EwQzBCLFVBQVU7R0F6Q3pCLGlCQUFpQixDQTJJN0I7U0EzSVksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFBhcmFtc0ltZ01hbmFnZXJEVE8gfSBmcm9tICcuLi9kdG8vaW1nLW1hbmFnZXIuZHRvJztcbmltcG9ydCB7IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnIH0gZnJvbSAnLi4vZHRvL2V4cG9ydC1kdG9zLmFwaSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEltZ01hbmFnZXJTZXJ2aWNlIHtcblxuICBpbWdNYW5hZ2VyUm91dGU6IHN0cmluZztcbiAgc2hvcFRva2VuOiBzdHJpbmc7XG5cbiAgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJsaW1pdFwiLFwiMjBcIikuc2V0KFwicGFnZVwiLFwiMVwiKTtcblxuICAvLyBEaXNwbGF5IHRoZSBpbWcgc2VsZWN0aW9uXG4gIHByaXZhdGUgcGFnZUZpY2hlUHJvZHVjdENvbmZpZzogSW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB7XG4gICAgc3RhdGVEaXNwbGF5ZWQ6ICdjbG9zZWQnLFxuICAgIG11bHRpcGxlSW1nTW9kZTogdHJ1ZSxcbiAgICBzaG93SW1nTWFuYWdlck1vZHVsZTogdHJ1ZSxcbiAgICBzaG93U2VsZWN0aW9uOiB0cnVlLFxuICAgIGRpc3BsYXlCdG46IHRydWUsXG4gICAgcGFnZWZpY2hlUHJvZHVjdDogdHJ1ZVxuICB9XG5cbiAgcHJpdmF0ZSB3aXppYmxvY2tDb25maWc6IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnID0ge1xuICAgIHN0YXRlRGlzcGxheWVkOiAnY2xvc2VkJyxcbiAgICBtdWx0aXBsZUltZ01vZGU6IGZhbHNlLFxuICAgIHNob3dJbWdNYW5hZ2VyTW9kdWxlOiB0cnVlLFxuICAgIHNob3dTZWxlY3Rpb246IGZhbHNlLFxuICAgIGRpc3BsYXlCdG46IGZhbHNlXG4gIH1cblxuICBwcml2YXRlIHNpbXBsZVdpdGhCdXR0b25PcGVuZXJDb25maWc6IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnID0ge1xuICAgIHN0YXRlRGlzcGxheWVkOiAnY2xvc2VkJyxcbiAgICBtdWx0aXBsZUltZ01vZGU6IGZhbHNlLFxuICAgIHNob3dJbWdNYW5hZ2VyTW9kdWxlOiB0cnVlLFxuICAgIHNob3dTZWxlY3Rpb246IGZhbHNlLFxuICAgIGRpc3BsYXlCdG46IHRydWVcbiAgfVxuXG4gIHByaXZhdGUgZnVsbFdpbmRvd0NvbmZpZzogSW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB7XG4gICAgc3RhdGVEaXNwbGF5ZWQ6ICd3aW5kb3cnLFxuICAgIG11bHRpcGxlSW1nTW9kZTogZmFsc2UsXG4gICAgc2hvd0ltZ01hbmFnZXJNb2R1bGU6IHRydWUsXG4gICAgc2hvd1NlbGVjdGlvbjogZmFsc2UsXG4gICAgZGlzcGxheUJ0bjogZmFsc2VcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkgeyB9XG5cbiAgc2V0QXBpQ29uZmlnKGltZ19tYW5hZ2VyX3JvdXRlOiBzdHJpbmcsIHNob3BfdG9rZW46IHN0cmluZykge1xuICAgIHRoaXMuaW1nTWFuYWdlclJvdXRlID0gaW1nX21hbmFnZXJfcm91dGU7XG4gICAgdGhpcy5zaG9wVG9rZW4gPSBzaG9wX3Rva2VuO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcHRpb25zSGVhZGVycyhwYXJhbXM/OiBQYXJhbXNJbWdNYW5hZ2VyRFRPKSB7XG4gICAgY29uc3QgaGVhZGVyID0geyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAnICsgdGhpcy5zaG9wVG9rZW5cbiAgICAgIH0pXG4gICAgfTtcbiAgICBpZiAocGFyYW1zKSB7XG4gICAgICB0aGlzLmdldFBhcmFtcyhwYXJhbXMpO1xuICAgICAgaGVhZGVyWydwYXJhbXMnXSA9IHRoaXMucGFyYW1zXG4gICAgfVxuICAgIHJldHVybiBoZWFkZXI7XG4gIH1cblxuICBnZXRTaG9wSW1nTGlzdChwYXJhbXM/OiBQYXJhbXNJbWdNYW5hZ2VyRFRPKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmltZ01hbmFnZXJSb3V0ZX0vaW1hZ2VzYCwgdGhpcy5nZXRPcHRpb25zSGVhZGVycyhwYXJhbXMpKTtcbiAgfVxuXG4gIGdldFNob3BUb3RhbEltZ0xpc3QocGFyYW1zPzogUGFyYW1zSW1nTWFuYWdlckRUTyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5pbWdNYW5hZ2VyUm91dGV9L3RvdGFsL2ltYWdlc2AsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMocGFyYW1zKSk7XG4gIH1cblxuICBnZXRTaG9wSW1nKGlkRmlsZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmltZ01hbmFnZXJSb3V0ZX0vaW1hZ2VzLyR7aWRGaWxlfWAsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG4gIH1cblxuICBnZXRQYXJhbXMocGFyYW1zOiBQYXJhbXNJbWdNYW5hZ2VyRFRPKXtcbiAgICB0aGlzLnBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgdGhpcy5wYXJhbXMgPSB0aGlzLnBhcmFtcy5zZXQoJ2lkX2ZpbGU6c29ydCcsICdkZXNjJyk7XG4gICAgZm9yIChjb25zdCBwYXJhbSBpbiBwYXJhbXMpIHtcbiAgICAgIHRoaXMucGFyYW1zID0gdGhpcy5wYXJhbXMuc2V0KHBhcmFtLCBwYXJhbXNbcGFyYW1dKTtcbiAgICB9XG4gIH1cblxuICB1cGxvYWRGaWxlKGZvcm1EYXRhOiBGb3JtRGF0YSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmltZ01hbmFnZXJSb3V0ZX0vaW1hZ2VzL3RlbXBsYXRlYCwgZm9ybURhdGEsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG4gIH1cblxuICB1cGxvYWRGaWxlQnlVcmwodXJsOiBzdHJpbmcsIGZpbGVOYW1lPzogc3RyaW5nKSB7XG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIHVybCxcbiAgICAgIGZpbGVOYW1lXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5pbWdNYW5hZ2VyUm91dGV9L2ltYWdlcy90ZW1wbGF0ZWAsIHsgdXJsLCBmaWxlTmFtZSB9LCB0aGlzLmdldE9wdGlvbnNIZWFkZXJzKCkpO1xuICB9XG5cbiAgcmVwbGFjZUltZyhpbWFnZUJhc2U2NDogc3RyaW5nLCBpZF9maWxlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgaW1hZ2VCYXNlNjQsXG4gICAgICB0eXBlIDogXCJSQVdcIlxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmltZ01hbmFnZXJSb3V0ZX0vaW1hZ2VzLyR7aWRfZmlsZX0vcmVwbGFjZWAsIGJvZHksIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG4gIH1cblxuICBjaGFuZ2VJbWdOYW1lKGZpbGVOYW1lOiBzdHJpbmcsIGlkX2ZpbGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuaW1nTWFuYWdlclJvdXRlfS9pbWFnZXMvJHtpZF9maWxlfT9maWxlX25hbWU9JHtmaWxlTmFtZX1gLCBudWxsLCB0aGlzLmdldE9wdGlvbnNIZWFkZXJzKCkpO1xuICB9XG5cbiAgcmVtb3ZlSW1nKGlkX2ZpbGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuaW1nTWFuYWdlclJvdXRlfS9pbWFnZXMvJHtpZF9maWxlfWAsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG4gIH1cblxuICByZW1vdmVNdWx0aXBsZUltZyhpZF9hcnJheTogc3RyaW5nW10pe1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmltZ01hbmFnZXJSb3V0ZX0vaW1hZ2VzLW11bHRpcGxlLWRlbGV0ZWAsIHsgaWRfYXJyYXkgfSwgdGhpcy5nZXRPcHRpb25zSGVhZGVycygpKTtcbiAgfVxuXG4gIGdldEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnKGRpc3BsYXlOYW1lOiBcIndpbmRvd1wiIHwgXCJ3aXppLWJsb2NrXCIgfCBcImZpY2hlLXByb2R1Y3RcIiB8IFwic2ltcGxlLXdpdGgtYnV0dG9uXCIpIHtcbiAgICBzd2l0Y2ggKGRpc3BsYXlOYW1lKSB7XG4gICAgICBjYXNlIFwid2luZG93XCI6XG4gICAgICAgIHJldHVybiB0aGlzLmZ1bGxXaW5kb3dDb25maWc7XG5cbiAgICAgIGNhc2UgXCJ3aXppLWJsb2NrXCI6XG4gICAgICAgIHJldHVybiB0aGlzLndpemlibG9ja0NvbmZpZztcblxuICAgICAgY2FzZSBcImZpY2hlLXByb2R1Y3RcIjpcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnZUZpY2hlUHJvZHVjdENvbmZpZztcblxuICAgICAgY2FzZSBcInNpbXBsZS13aXRoLWJ1dHRvblwiOlxuICAgICAgICByZXR1cm4gdGhpcy5zaW1wbGVXaXRoQnV0dG9uT3BlbmVyQ29uZmlnO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgZ2V0QWxsSW1nTWFuYWdlckRpc3BsYXlDb25maWcoKTogSW1nTWFuYWdlckRpc3BsYXlDb25maWdbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuZnVsbFdpbmRvd0NvbmZpZyxcbiAgICAgIHRoaXMud2l6aWJsb2NrQ29uZmlnLFxuICAgICAgdGhpcy5wYWdlRmljaGVQcm9kdWN0Q29uZmlnLFxuICAgICAgdGhpcy5zaW1wbGVXaXRoQnV0dG9uT3BlbmVyQ29uZmlnLFxuICAgIF1cbiAgfVxufSJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B3aXppc2hvcC9pbWctbWFuYWdlci8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9pbWctbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFRM0UsSUFBYSxpQkFBaUIsR0FBOUIsTUFBYSxpQkFBaUI7SUF5QzVCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFwQ3BDLFdBQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBQyxHQUFHLENBQUMsQ0FBQztRQUU1RCw0QkFBNEI7UUFDcEIsMkJBQXNCLEdBQTRCO1lBQ3hELGNBQWMsRUFBRSxRQUFRO1lBQ3hCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsYUFBYSxFQUFFLElBQUk7WUFDbkIsVUFBVSxFQUFFLElBQUk7WUFDaEIsZ0JBQWdCLEVBQUUsSUFBSTtTQUN2QixDQUFBO1FBRU8sb0JBQWUsR0FBNEI7WUFDakQsY0FBYyxFQUFFLFFBQVE7WUFDeEIsZUFBZSxFQUFFLEtBQUs7WUFDdEIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixhQUFhLEVBQUUsS0FBSztZQUNwQixVQUFVLEVBQUUsS0FBSztTQUNsQixDQUFBO1FBRU8saUNBQTRCLEdBQTRCO1lBQzlELGNBQWMsRUFBRSxRQUFRO1lBQ3hCLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQTtR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QUNwQixJQUFJLENBQUMsc0JBQXNCO1lBQzNCLElBQUksQ0FBQyw0QkFBNEI7U0FDbEMsQ0FBQTtJQUNILENBQUM7Q0FDRixDQUFBOztZQWxHMkIsVUFBVTs7O0FBekN6QixpQkFBaUI7SUFIN0IsVUFBVSxDQUFDO1FBQ1YsVUFBVSxFQUFFLE1BQU07S0FDbkIsQ0FBQztxQ0EwQzBCLFVBQVU7R0F6Q3pCLGlCQUFpQixDQTJJN0I7U0EzSVksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFBhcmFtc0ltZ01hbmFnZXJEVE8gfSBmcm9tICcuLi9kdG8vaW1nLW1hbmFnZXIuZHRvJztcbmltcG9ydCB7IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnIH0gZnJvbSAnLi4vZHRvL2V4cG9ydC1kdG9zLmFwaSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEltZ01hbmFnZXJTZXJ2aWNlIHtcblxuICBpbWdNYW5hZ2VyUm91dGU6IHN0cmluZztcbiAgc2hvcFRva2VuOiBzdHJpbmc7XG5cbiAgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJsaW1pdFwiLFwiMjBcIikuc2V0KFwicGFnZVwiLFwiMVwiKTtcblxuICAvLyBEaXNwbGF5IHRoZSBpbWcgc2VsZWN0aW9uXG4gIHByaXZhdGUgcGFnZUZpY2hlUHJvZHVjdENvbmZpZzogSW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB7XG4gICAgc3RhdGVEaXNwbGF5ZWQ6ICdjbG9zZWQnLFxuICAgIG11bHRpcGxlSW1nTW9kZTogdHJ1ZSxcbiAgICBzaG93SW1nTWFuYWdlck1vZHVsZTogdHJ1ZSxcbiAgICBzaG93U2VsZWN0aW9uOiB0cnVlLFxuICAgIGRpc3BsYXlCdG46IHRydWUsXG4gICAgcGFnZWZpY2hlUHJvZHVjdDogdHJ1ZVxuICB9XG5cbiAgcHJpdmF0ZSB3aXppYmxvY2tDb25maWc6IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnID0ge1xuICAgIHN0YXRlRGlzcGxheWVkOiAnY2xvc2VkJyxcbiAgICBtdWx0aXBsZUltZ01vZGU6IGZhbHNlLFxuICAgIHNob3dJbWdNYW5hZ2VyTW9kdWxlOiB0cnVlLFxuICAgIHNob3dTZWxlY3Rpb246IGZhbHNlLFxuICAgIGRpc3BsYXlCdG46IGZhbHNlXG4gIH1cblxuICBwcml2YXRlIHNpbXBsZVdpdGhCdXR0b25PcGVuZXJDb25maWc6IEltZ01hbmFnZXJEaXNwbGF5Q29uZmlnID0ge1xuICAgIHN0YXRlRGlzcGxheWVkOiAnY2xvc2VkJyxcbiAgICBtdWx0aXBsZUltZ01vZGU6IGZhbHNlLFxuICAgIHNob3dJbWdNYW5hZ2VyTW9kdWxlOiB0cnVlLFxuICAgIHNob3dTZWxlY3Rpb246IGZhbHNlLFxuICAgIGRpc3BsYXlCdG46IHRydWVcbiAgfVxuXG4gIHByaXZhdGUgZnVsbFdpbmRvd0NvbmZpZzogSW1nTWFuYWdlckRpc3BsYXlDb25maWcgPSB7XG4gICAgc3RhdGVEaXNwbGF5ZWQ6ICd3aW5kb3cnLFxuICAgIG11bHRpcGxlSW1nTW9kZTogZmFsc2UsXG4gICAgc2hvd0ltZ01hbmFnZXJNb2R1bGU6IHRydWUsXG4gICAgc2hvd1NlbGVjdGlvbjogZmFsc2UsXG4gICAgZGlzcGxheUJ0bjogZmFsc2VcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkgeyB9XG5cbiAgc2V0QXBpQ29uZmlnKGltZ19tYW5hZ2VyX3JvdXRlOiBzdHJpbmcsIHNob3BfdG9rZW46IHN0cmluZykge1xuICAgIHRoaXMuaW1nTWFuYWdlclJvdXRlID0gaW1nX21hbmFnZXJfcm91dGU7XG4gICAgdGhpcy5zaG9wVG9rZW4gPSBzaG9wX3Rva2VuO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcHRpb25zSGVhZGVycyhwYXJhbXM/OiBQYXJhbXNJbWdNYW5hZ2VyRFRPKSB7XG4gICAgY29uc3QgaGVhZGVyID0geyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAnICsgdGhpcy5zaG9wVG9rZW5cbiAgICAgIH0pXG4gICAgfTtcbiAgICBpZiAocGFyYW1zKSB7XG4gICAgICB0aGlzLmdldFBhcmFtcyhwYXJhbXMpO1xuICAgICAgaGVhZGVyWydwYXJhbXMnXSA9IHRoaXMucGFyYW1zXG4gICAgfVxuICAgIHJldHVybiBoZWFkZXI7XG4gIH1cblxuICBnZXRTaG9wSW1nTGlzdChwYXJhbXM/OiBQYXJhbXNJbWdNYW5hZ2VyRFRPKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmltZ01hbmFnZXJSb3V0ZX0vaW1hZ2VzYCwgdGhpcy5nZXRPcHRpb25zSGVhZGVycyhwYXJhbXMpKTtcbiAgfVxuXG4gIGdldFNob3BUb3RhbEltZ0xpc3QocGFyYW1zPzogUGFyYW1zSW1nTWFuYWdlckRUTyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5pbWdNYW5hZ2VyUm91dGV9L3RvdGFsL2ltYWdlYCwgdGhpcy5nZXRPcHRpb25zSGVhZGVycyhwYXJhbXMpKTtcbiAgfVxuXG4gIGdldFNob3BJbWcoaWRGaWxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuaW1nTWFuYWdlclJvdXRlfS9pbWFnZXMvJHtpZEZpbGV9YCwgdGhpcy5nZXRPcHRpb25zSGVhZGVycygpKTtcbiAgfVxuXG4gIGdldFBhcmFtcyhwYXJhbXM6IFBhcmFtc0ltZ01hbmFnZXJEVE8pe1xuICAgIHRoaXMucGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICB0aGlzLnBhcmFtcyA9IHRoaXMucGFyYW1zLnNldCgnaWRfZmlsZTpzb3J0JywgJ2Rlc2MnKTtcbiAgICBmb3IgKGNvbnN0IHBhcmFtIGluIHBhcmFtcykge1xuICAgICAgdGhpcy5wYXJhbXMgPSB0aGlzLnBhcmFtcy5zZXQocGFyYW0sIHBhcmFtc1twYXJhbV0pO1xuICAgIH1cbiAgfVxuXG4gIHVwbG9hZEZpbGUoZm9ybURhdGE6IEZvcm1EYXRhKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuaW1nTWFuYWdlclJvdXRlfS9pbWFnZXMvdGVtcGxhdGVgLCBmb3JtRGF0YSwgdGhpcy5nZXRPcHRpb25zSGVhZGVycygpKTtcbiAgfVxuXG4gIHVwbG9hZEZpbGVCeVVybCh1cmw6IHN0cmluZywgZmlsZU5hbWU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgdXJsLFxuICAgICAgZmlsZU5hbWVcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmltZ01hbmFnZXJSb3V0ZX0vaW1hZ2VzL3RlbXBsYXRlYCwgeyB1cmwsIGZpbGVOYW1lIH0sIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG4gIH1cblxuICByZXBsYWNlSW1nKGltYWdlQmFzZTY0OiBzdHJpbmcsIGlkX2ZpbGU6IHN0cmluZykge1xuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICBpbWFnZUJhc2U2NCxcbiAgICAgIHR5cGUgOiBcIlJBV1wiXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuaW1nTWFuYWdlclJvdXRlfS9pbWFnZXMvJHtpZF9maWxlfS9yZXBsYWNlYCwgYm9keSwgdGhpcy5nZXRPcHRpb25zSGVhZGVycygpKTtcbiAgfVxuXG4gIGNoYW5nZUltZ05hbWUoZmlsZU5hbWU6IHN0cmluZywgaWRfZmlsZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5pbWdNYW5hZ2VyUm91dGV9L2ltYWdlcy8ke2lkX2ZpbGV9P2ZpbGVfbmFtZT0ke2ZpbGVOYW1lfWAsIG51bGwsIHRoaXMuZ2V0T3B0aW9uc0hlYWRlcnMoKSk7XG4gIH1cblxuICByZW1vdmVJbWcoaWRfZmlsZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5pbWdNYW5hZ2VyUm91dGV9L2ltYWdlcy8ke2lkX2ZpbGV9YCwgdGhpcy5nZXRPcHRpb25zSGVhZGVycygpKTtcbiAgfVxuXG4gIHJlbW92ZU11bHRpcGxlSW1nKGlkX2FycmF5OiBzdHJpbmdbXSl7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuaW1nTWFuYWdlclJvdXRlfS9pbWFnZXMtbXVsdGlwbGUtZGVsZXRlYCwgeyBpZF9hcnJheSB9LCB0aGlzLmdldE9wdGlvbnNIZWFkZXJzKCkpO1xuICB9XG5cbiAgZ2V0SW1nTWFuYWdlckRpc3BsYXlDb25maWcoZGlzcGxheU5hbWU6IFwid2luZG93XCIgfCBcIndpemktYmxvY2tcIiB8IFwiZmljaGUtcHJvZHVjdFwiIHwgXCJzaW1wbGUtd2l0aC1idXR0b25cIikge1xuICAgIHN3aXRjaCAoZGlzcGxheU5hbWUpIHtcbiAgICAgIGNhc2UgXCJ3aW5kb3dcIjpcbiAgICAgICAgcmV0dXJuIHRoaXMuZnVsbFdpbmRvd0NvbmZpZztcblxuICAgICAgY2FzZSBcIndpemktYmxvY2tcIjpcbiAgICAgICAgcmV0dXJuIHRoaXMud2l6aWJsb2NrQ29uZmlnO1xuXG4gICAgICBjYXNlIFwiZmljaGUtcHJvZHVjdFwiOlxuICAgICAgICByZXR1cm4gdGhpcy5wYWdlRmljaGVQcm9kdWN0Q29uZmlnO1xuXG4gICAgICBjYXNlIFwic2ltcGxlLXdpdGgtYnV0dG9uXCI6XG4gICAgICAgIHJldHVybiB0aGlzLnNpbXBsZVdpdGhCdXR0b25PcGVuZXJDb25maWc7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBnZXRBbGxJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZygpOiBJbWdNYW5hZ2VyRGlzcGxheUNvbmZpZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgdGhpcy5mdWxsV2luZG93Q29uZmlnLFxuICAgICAgdGhpcy53aXppYmxvY2tDb25maWcsXG4gICAgICB0aGlzLnBhZ2VGaWNoZVByb2R1Y3RDb25maWcsXG4gICAgICB0aGlzLnNpbXBsZVdpdGhCdXR0b25PcGVuZXJDb25maWcsXG4gICAgXVxuICB9XG59Il19