zek 17.3.46 → 17.3.48

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.
@@ -17,6 +17,7 @@ export class ListBaseComponent extends BaseComponent {
17
17
  this.isFiltered = false;
18
18
  this.selectedIds = [];
19
19
  this.pager = new Pager();
20
+ this.tableId = 'table';
20
21
  this.approveModel = {};
21
22
  this.approvedMesage = 'Alert.Approved';
22
23
  this.disapprovedMesage = 'Alert.Disapproved';
@@ -49,6 +50,10 @@ export class ListBaseComponent extends BaseComponent {
49
50
  apiGetAll(filter) {
50
51
  return this.service.getAll(filter);
51
52
  }
53
+ scrollTop() {
54
+ const el = document.getElementById(this.tableId);
55
+ el?.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' });
56
+ }
52
57
  initDefaultFilter() {
53
58
  }
54
59
  initStoredFilter() {
@@ -67,11 +72,12 @@ export class ListBaseComponent extends BaseComponent {
67
72
  localStorage.removeItem('filter');
68
73
  }
69
74
  }
70
- changePage(page) {
75
+ async changePage(page) {
71
76
  this.internalFilter.page = page;
72
77
  this.filter.page = page;
73
- this.refresh();
78
+ await this.bindModel();
74
79
  this.autoSaveFilter();
80
+ this.scrollTop();
75
81
  }
76
82
  changePageSize(pageSize) {
77
83
  this.internalFilter.pageSize = pageSize;
@@ -82,10 +88,13 @@ export class ListBaseComponent extends BaseComponent {
82
88
  this.filterModal?.show();
83
89
  }
84
90
  search() {
85
- //this.filterModal?.hide();
86
91
  this.assignFilter();
87
- this.changePage(1);
88
- //this.internalAutoSaveFilter();
92
+ // this.changePage(1);
93
+ //can't use this because don't want to execute scrollTop
94
+ this.internalFilter.page = 1;
95
+ this.filter.page = 1;
96
+ this.bindModel();
97
+ this.autoSaveFilter();
89
98
  }
90
99
  assignFilter() {
91
100
  this.internalFilter = Object.assign({}, this.filter);
@@ -275,4 +284,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
275
284
  type: ViewChild,
276
285
  args: ['disapproveModal', { static: false }]
277
286
  }] } });
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL2NvbXBvbmVudHMvbGlzdC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBZ0IsVUFBVSxFQUFhLEtBQUssRUFBYSxNQUFNLFdBQVcsQ0FBQztBQUVsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDN0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFDdEMsOEJBQThCO0FBRzlCLE1BQU0sT0FBTyxpQkFBOEUsU0FBUSxhQUF3QztJQW9CdkksWUFBK0IsT0FBaUI7UUFDNUMsS0FBSyxFQUFFLENBQUM7UUFEbUIsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQW5CaEQsV0FBTSxHQUFRLElBQUksVUFBVSxFQUFFLENBQUM7UUFDL0IsZUFBVSxHQUFHLElBQUksQ0FBQztRQUVSLG1CQUFjLEdBQVEsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNqRCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLFVBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBTXBCLGlCQUFZLEdBQWlCLEVBQUUsQ0FBQztRQUV0QixtQkFBYyxHQUFHLGdCQUFnQixDQUFDO1FBR2xDLHNC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QUFDLEtBQUs7WUFBRSxPQUFPO1FBRTdDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNsQyxLQUFLLE1BQU0sRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ25CLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDOzhHQXhTUSxpQkFBaUI7a0dBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsU0FBUzsyRUFZMEQsV0FBVztzQkFBMUUsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUdzQixZQUFZO3NCQUE1RSxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR3dCLGVBQWU7c0JBQWxGLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld0NoaWxkLCBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBJU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHByb3ZlTW9kZWwsIEZpbHRlckJhc2UsIFBhZ2VkTGlzdCwgUGFnZXIsIFByaW50VHlwZSB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFpla01vZGFsIH0gZnJvbSAnLi4vbW9kdWxlcy9tb2RhbC9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hbGVydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsdGVySGVscGVyLCBQYWdlckhlbHBlciwgU3RvcmFnZUhlbHBlciwgU3RyaW5nSGVscGVyLCBVcmxIZWxwZXIgfSBmcm9tICcuLi91dGlscyc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbi8vIGRlY2xhcmUgbGV0IGJvb3RzdHJhcDogYW55O1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBjbGFzcyBMaXN0QmFzZUNvbXBvbmVudDxUU2VydmljZSBleHRlbmRzIElTZXJ2aWNlID0gSVNlcnZpY2UsIFRQYWdlZExpc3REYXRhID0gYW55PiBleHRlbmRzIEJhc2VDb21wb25lbnQ8UGFnZWRMaXN0PFRQYWdlZExpc3REYXRhPj4ge1xyXG4gICAgZmlsdGVyOiBhbnkgPSBuZXcgRmlsdGVyQmFzZSgpO1xyXG4gICAgc2F2ZUZpbHRlciA9IHRydWU7XHJcbiAgICBzb3J0RmllbGRzOiBhbnk7XHJcbiAgICBwcm90ZWN0ZWQgaW50ZXJuYWxGaWx0ZXI6IGFueSA9IG5ldyBGaWx0ZXJCYXNlKCk7XHJcbiAgICBpc0ZpbHRlcmVkID0gZmFsc2U7XHJcbiAgICBzZWxlY3RlZElkczogYW55W10gPSBbXTtcclxuICAgIHBhZ2VyID0gbmV3IFBhZ2VyKCk7XHJcbiAgICBzdW1Nb2RlbDogYW55O1xyXG5cclxuXHJcbiAgICBAVmlld0NoaWxkKCdmaWx0ZXJNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwcm90ZWN0ZWQgcmVhZG9ubHkgZmlsdGVyTW9kYWw/OiBaZWtNb2RhbCB8IG51bGw7XHJcblxyXG4gICAgYXBwcm92ZU1vZGVsOiBBcHByb3ZlTW9kZWwgPSB7fTtcclxuICAgIEBWaWV3Q2hpbGQoJ2FwcHJvdmVNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBwcm92ZU1vZGFsPzogWmVrTW9kYWwgfCBudWxsO1xyXG4gICAgcHJvdGVjdGVkIGFwcHJvdmVkTWVzYWdlID0gJ0FsZXJ0LkFwcHJvdmVkJztcclxuXHJcbiAgICBAVmlld0NoaWxkKCdkaXNhcHByb3ZlTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FwcHJvdmVNb2RhbD86IFpla01vZGFsIHwgbnVsbDtcclxuICAgIHByb3RlY3RlZCBkaXNhcHByb3ZlZE1lc2FnZSA9ICdBbGVydC5EaXNhcHByb3ZlZCc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IHNlcnZpY2U6IFRTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gICAgcmVhZG9ubHkgYWxlcnQgPSBpbmplY3QoQWxlcnRTZXJ2aWNlKTtcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgIG92ZXJyaWRlIGluaXQoKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdCgpO1xyXG5cclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgICAgdGhpcy5pbml0RGVmYXVsdEZpbHRlcigpO1xyXG4gICAgICAgIHRoaXMuaW5pdFN0b3JlZEZpbHRlcigpO1xyXG4gICAgICAgIHRoaXMuYXNzaWduRmlsdGVyKCk7XHJcblxyXG4gICAgICAgIC8vdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xyXG4gICAgICAgIC8vdGhpcy5wYWdlZExpc3QgPSBuZXcgUGFnZWRMaXN0KCk7XHJcbiAgICB9XHJcbiAgICBvdmVycmlkZSBhc3luYyBiaW5kTW9kZWwoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xyXG4gICAgICAgIHRoaXMubW9kZWwgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmFwaUdldEFsbCh0aGlzLmludGVybmFsRmlsdGVyKSk7XHJcbiAgICAgICAgaWYgKHRoaXMubW9kZWwpIHtcclxuICAgICAgICAgICAgbGV0IHRvdGFsQ291bnQgPSB0aGlzLm1vZGVsLnRvdGFsSXRlbUNvdW50O1xyXG4gICAgICAgICAgICBpZiAoIXRvdGFsQ291bnQgJiYgdGhpcy5tb2RlbC5wYWdlcikge1xyXG4gICAgICAgICAgICAgICAgdG90YWxDb3VudCA9IHRoaXMubW9kZWwucGFnZXIgPyAodGhpcy5tb2RlbC5wYWdlci50b3RhbEl0ZW1Db3VudCB8fCAwKSA6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5wYWdlciA9IFBhZ2VySGVscGVyLmdldCh0b3RhbENvdW50LCB0aGlzLmludGVybmFsRmlsdGVyLnBhZ2UsIHRoaXMuaW50ZXJuYWxGaWx0ZXIucGFnZVNpemUpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLnBhZ2VyID0gbmV3IFBhZ2VyKCk7XHJcbiAgICAgICAgLy90aGlzLnBhZ2VkTGlzdC5wYWdlciA9IHRoaXMucGFnZXI7XHJcbiAgICB9XHJcbiAgICBhcGlHZXRBbGwoZmlsdGVyOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldEFsbChmaWx0ZXIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgaW5pdERlZmF1bHRGaWx0ZXIoKSB7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGluaXRTdG9yZWRGaWx0ZXIoKSB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyUGFyYW0gPSB0aGlzLmdldFF1ZXJ5UGFyYW0oJ2ZpbHRlcicpIHx8IHRoaXMuZ2V0UGFyYW0oJ2ZpbHRlcicpO1xyXG5cclxuICAgICAgICBpZiAoZmlsdGVyUGFyYW0pIHtcclxuICAgICAgICAgICAgY29uc3QgdG1wID0gU3RvcmFnZUhlbHBlci5nZXQoJ2ZpbHRlcicpO1xyXG4gICAgICAgICAgICBpZiAodG1wICYmIHRtcC51cmwgJiYgdG1wLnVybCA9PT0gdGhpcy51cmwgJiYgdG1wLmZpbHRlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0bXAuZmlsdGVyKTtcclxuICAgICAgICAgICAgICAgIC8vd2UgZG9udCBuZWVkIHRoaXMuYXNzaWduRmlsdGVyKCk7IGJlY2F1c2UgYWZ0ZXIgaW5pdFN0b3JlZEZpbHRlcigpOyB3aWxsIGJlIGFzc2lnbmVkLlxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2ZpbHRlcicpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2ZpbHRlcicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNoYW5nZVBhZ2UocGFnZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbEZpbHRlci5wYWdlID0gcGFnZTtcclxuICAgICAgICB0aGlzLmZpbHRlci5wYWdlID0gcGFnZTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgICB0aGlzLmF1dG9TYXZlRmlsdGVyKCk7XHJcbiAgICB9XHJcbiAgICBjaGFuZ2VQYWdlU2l6ZShwYWdlU2l6ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbEZpbHRlci5wYWdlU2l6ZSA9IHBhZ2VTaXplO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyLnBhZ2VTaXplID0gcGFnZVNpemU7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQYWdlKDEpO1xyXG4gICAgfVxyXG4gICAgc2hvd0ZpbHRlcigpIHtcclxuICAgICAgICB0aGlzLmZpbHRlck1vZGFsPy5zaG93KCk7XHJcbiAgICB9XHJcbiAgICBzZWFyY2goKSB7XHJcbiAgICAgICAgLy90aGlzLmZpbHRlck1vZGFsPy5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy5hc3NpZ25GaWx0ZXIoKTtcclxuICAgICAgICB0aGlzLmNoYW5nZVBhZ2UoMSk7XHJcbiAgICAgICAgLy90aGlzLmludGVybmFsQXV0b1NhdmVGaWx0ZXIoKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBhc3NpZ25GaWx0ZXIoKSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbEZpbHRlciA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZmlsdGVyKTtcclxuICAgICAgICB0aGlzLmlzRmlsdGVyZWQgPSAhRmlsdGVySGVscGVyLmlzRW1wdHkodGhpcy5pbnRlcm5hbEZpbHRlcik7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGF1dG9TYXZlRmlsdGVyKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNhdmVGaWx0ZXIpXHJcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxTYXZlRmlsdGVyKClcclxuICAgIH1cclxuICAgIHByaXZhdGUgaW50ZXJuYWxTYXZlRmlsdGVyKCkge1xyXG4gICAgICAgIFN0b3JhZ2VIZWxwZXIuc2V0KCdmaWx0ZXInLCB7XHJcbiAgICAgICAgICAgIHVybDogdGhpcy51cmwsXHJcbiAgICAgICAgICAgIGZpbHRlcjogdGhpcy5pbnRlcm5hbEZpbHRlclxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmVzZXQoKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXIgPSB7IHBhZ2U6IDEsIHBhZ2VTaXplOiAyNSB9O1xyXG4gICAgICAgIHRoaXMuYXNzaWduRmlsdGVyKCk7XHJcbiAgICB9XHJcbiAgICByZWZyZXNoKCkge1xyXG4gICAgICAgIHRoaXMuYmluZE1vZGVsKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNyZWF0ZSgpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBVcmxIZWxwZXIuZ2V0Tm9QYXJhbSh0aGlzLnJvdXRlci51cmwpO1xyXG4gICAgICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmwsICdjcmVhdGUnLCB7IHJldHVyblVybDogdXJsICsgJztmaWx0ZXI9MScgfV0pO1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmwsICdjcmVhdGUnXSxcclxuICAgICAgICAgICAgeyBxdWVyeVBhcmFtczogeyByZXR1cm5Vcmw6IHVybCArICc/ZmlsdGVyPTEnIH0gfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICBhc3luYyBkZWxldGUoaWQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMuYWxlcnQuY2xlYXIoKTtcclxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hcGlEZWxldGUoaWQpKTtcclxuICAgICAgICBpZiAoZGF0YT8uc3VjY2Vzcykge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy50cmFuc2xhdGUuZ2V0KCdBbGVydC5EZWxldGVkJykpO1xyXG4gICAgICAgICAgICB0aGlzLmFsZXJ0LmVycm9yKG1lc3NhZ2UsIG51bGwsICdmYS1zb2xpZCBmYS10cmFzaCcpXHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGFwaURlbGV0ZShpZDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5kZWxldGUoaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRlbGV0ZTIoaWQ6IGFueSwgaWQyOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0LmNsZWFyKCk7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYXBpRGVsZXRlMihpZCwgaWQyKSlcclxuICAgICAgICBpZiAoZGF0YT8uc3VjY2Vzcykge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy50cmFuc2xhdGUuZ2V0KCdBbGVydC5EZWxldGVkJykpO1xyXG4gICAgICAgICAgICB0aGlzLmFsZXJ0LmVycm9yKG1lc3NhZ2UsIG51bGwsICdmYS1zb2xpZCBmYS10cmFzaCcpXHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGFwaURlbGV0ZTIoaWQ6IGFueSwgaWQyOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmRlbGV0ZTIoaWQsIGlkMik7XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdChpZDogbnVtYmVyKSB7XHJcbiAgICAgICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMudXJsLCBpZF0sXHJcbiAgICAgICAgLy8gICAgIHsgcXVlcnlQYXJhbXM6IHsgcmV0dXJuVXJsOiB0aGlzLnVybCArICc7ZmlsdGVyPTEnIH0gfVxyXG4gICAgICAgIC8vICk7XHJcblxyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnVybCwgaWRdLFxyXG4gICAgICAgICAgICB7IHF1ZXJ5UGFyYW1zOiB7IHJldHVyblVybDogdGhpcy51cmwgKyAnP2ZpbHRlcj0xJyB9IH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgZWRpdDIoaWQ6IG51bWJlciwgaWQyOiBudW1iZXIpIHtcclxuICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy51cmwsIGlkLCBpZDIsIHsgcmV0dXJuVXJsOiB0aGlzLnVybCArICc7ZmlsdGVyPTEnIH1dKTtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy51cmwsIGlkLCBpZDJdLFxyXG4gICAgICAgICAgICB7IHF1ZXJ5UGFyYW1zOiB7IHJldHVyblVybDogdGhpcy51cmwgKyAnP2ZpbHRlcj0xJyB9IH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgc2VsZWN0KGl0ZW06IGFueSkge1xyXG4gICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSAhaXRlbS5zZWxlY3RlZDtcclxuICAgICAgICBjb25zdCBpZCA9IGl0ZW0uaWQ7XHJcbiAgICAgICAgaWYgKGlkKSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goaWQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IHRoaXMuc2VsZWN0ZWRJZHMuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gaWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgc2hvd0FwcHJvdmVNb2RhbChpZDogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKCFpZCB8fCAhdGhpcy5hcHByb3ZlTW9kYWwpIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgdG1wID0geyBpZHM6IFtpZF0gfTtcclxuICAgICAgICB0aGlzLmFwcHJvdmVNb2RlbCA9IHt9O1xyXG4gICAgICAgIHRoaXMuYXBwcm92ZU1vZGFsLnNob3codG1wKTtcclxuICAgIH1cclxuICAgIHNob3dBcHByb3ZlU2VsZWN0ZWRNb2RhbCgpIHtcclxuICAgICAgICBjb25zdCB0bXAgPSB7IGlkczogdGhpcy5nZXRTZWxlY3RlZElkcygpIH07XHJcbiAgICAgICAgaWYgKCF0bXAuaWRzIHx8IHRtcC5pZHMubGVuZ3RoID09PSAwIHx8ICF0aGlzLmFwcHJvdmVNb2RhbCkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmFwcHJvdmVNb2RlbCA9IHt9O1xyXG4gICAgICAgIHRoaXMuYXBwcm92ZU1vZGFsLnNob3codG1wKTtcclxuICAgIH1cclxuICAgIGFzeW5jIGFwcHJvdmUobW9kZWw6IGFueSkge1xyXG4gICAgICAgIGlmICghbW9kZWwpIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5hbGVydC5jbGVhcigpO1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmFwaUFwcHJvdmUobW9kZWwpKTtcclxuICAgICAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMudHJhbnNsYXRlLmdldCh0aGlzLmFwcHJvdmVkTWVzYWdlKSk7XHJcbiAgICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKG1lc3NhZ2UsIG51bGwsICdmYS1zb2xpZCBmYS10aHVtYnMtdXAnKVxyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgfVxyXG4gICAgYXBpQXBwcm92ZShtb2RlbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5hcHByb3ZlKG1vZGVsKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc2hvd0Rpc2FwcHJvdmVNb2RhbChpZDogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKCFpZCB8fCAhdGhpcy5kaXNhcHByb3ZlTW9kYWwpIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgdG1wID0geyBpZHM6IFtpZF0gfTtcclxuICAgICAgICB0aGlzLmFwcHJvdmVNb2RlbCA9IHt9O1xyXG4gICAgICAgIHRoaXMuZGlzYXBwcm92ZU1vZGFsLnNob3codG1wKTtcclxuICAgIH1cclxuICAgIHNob3dEaXNhcHByb3ZlU2VsZWN0ZWRNb2RhbCgpIHtcclxuICAgICAgICBjb25zdCB0bXAgPSB7IGlkczogdGhpcy5nZXRTZWxlY3RlZElkcygpIH07XHJcbiAgICAgICAgaWYgKCF0bXAuaWRzIHx8IHRtcC5pZHMubGVuZ3RoID09PSAwIHx8ICF0aGlzLmRpc2FwcHJvdmVNb2RhbCkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmFwcHJvdmVNb2RlbCA9IHt9O1xyXG4gICAgICAgIHRoaXMuZGlzYXBwcm92ZU1vZGFsLnNob3codG1wKTtcclxuICAgIH1cclxuICAgIGFzeW5jIGRpc2FwcHJvdmUobW9kZWw6IGFueSkge1xyXG4gICAgICAgIGlmICghbW9kZWwgfHwgIXRoaXMuYXBwcm92ZU1vZGVsKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgbW9kZWwgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIG1vZGVsLnN0YXR1cyA9IHRoaXMuYXBwcm92ZU1vZGVsLnN0YXR1cztcclxuICAgICAgICAgICAgbW9kZWwuY29tbWVudCA9IFN0cmluZ0hlbHBlci50cnlUcmltKHRoaXMuYXBwcm92ZU1vZGVsLmNvbW1lbnQpO1xyXG4gICAgICAgICAgICBpZiAoIW1vZGVsLmNvbW1lbnQpIGRlbGV0ZSBtb2RlbC5jb21tZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hbGVydC5jbGVhcigpO1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmFwaURpc2FwcHJvdmUobW9kZWwpKTtcclxuICAgICAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMudHJhbnNsYXRlLmdldCh0aGlzLmRpc2FwcHJvdmVkTWVzYWdlKSk7XHJcbiAgICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKG1lc3NhZ2UsIG51bGwsICdmYS1zb2xpZCBmYS10aHVtYnMtZG93bicpXHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICB9XHJcbiAgICBhcGlEaXNhcHByb3ZlKG1vZGVsOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmRpc2FwcHJvdmUobW9kZWwpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNlbGVjdGVkSWRzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSWRzO1xyXG4gICAgICAgIC8vIGlmICghdGhpcy5wYWdlZExpc3QgfHwgIXRoaXMucGFnZWRMaXN0Lml0ZW1zKSByZXR1cm4gW107XHJcblxyXG4gICAgICAgIC8vIGxldCBpZHMgPSBbXTtcclxuICAgICAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5wYWdlZExpc3QuaXRlbXMpIHtcclxuICAgICAgICAvLyAgICAgaWYgKCFpdGVtLnNlbGVjdGVkIHx8ICFpdGVtLmlkKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgLy8gICAgIGlkcy5wdXNoKGl0ZW0uaWQpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyByZXR1cm4gaWRzO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dTdW0oKSB7IH1cclxuICAgIGFzeW5jIHN1bSgpIHtcclxuICAgICAgICB0aGlzLnN1bU1vZGVsID0gbnVsbDtcclxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hcGlTdW0odGhpcy5pbnRlcm5hbEZpbHRlcikpO1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VtTW9kZWwgPSBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dTdW0oKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy50cmFuc2xhdGUuZ2V0KCdBbGVydC5TdW1FcnJvcicpKTtcclxuICAgICAgICAgICAgdGhpcy5hbGVydC5lcnJvcihtZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBhcGlTdW0oZmlsdGVyOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLnN1bShmaWx0ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydChmaWxlVHlwZUlkOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnNlcnZpY2UuZXhwb3J0KHRoaXMuaW50ZXJuYWxGaWx0ZXIsIGZpbGVUeXBlSWQpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUoZGF0YSwgJ2V4cG9ydC54bHN4JywgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Jyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIG92ZXJyaWRlIHByaW50KHByaW50VHlwZT86IFByaW50VHlwZSkge1xyXG4gICAgICAgIGlmICghdGhpcy5tb2RlbCB8fCAhdGhpcy5tb2RlbC5pdGVtcykgcmV0dXJuO1xyXG5cclxuICAgICAgICBjb25zdCBpZHMgPSB0aGlzLmdldFNlbGVjdGVkSWRzKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBpZCBvZiBpZHMpIHtcclxuICAgICAgICAgICAgc3VwZXIucHJpbnQoaWQsIHByaW50VHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL2NvbXBvbmVudHMvbGlzdC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBZ0IsVUFBVSxFQUFhLEtBQUssRUFBYSxNQUFNLFdBQVcsQ0FBQztBQUVsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDN0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFDdEMsOEJBQThCO0FBRzlCLE1BQU0sT0FBTyxpQkFBOEUsU0FBUSxhQUF3QztJQW9CdkksWUFBK0IsT0FBaUI7UUFDNUMsS0FBSyxFQUFFLENBQUM7UUFEbUIsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQW5CaEQsV0FBTSxHQUFRLElBQUksVUFBVSxFQUFFLENBQUM7UUFDL0IsZUFBVSxHQUFHLElBQUksQ0FBQztRQUVSLG1CQUFjLEdBQVEsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNqRCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLFVBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBRXBCLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFJbEIsaUJBQVksR0FBaUIsRUFBRSxDQUFDO1FBRXRCLG1CQUFj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Q0QsTUFBTSxDQUFDLE1BQVc7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBa0I7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLG1FQUFtRSxDQUFDLENBQUM7UUFDaEgsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBR1EsS0FBSyxDQUFDLFNBQXFCO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUU3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbEMsS0FBSyxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNuQixLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0wsQ0FBQzs4R0FoVFEsaUJBQWlCO2tHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFNBQVM7MkVBWTBELFdBQVc7c0JBQTFFLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHc0IsWUFBWTtzQkFBNUUsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUd3QixlQUFlO3NCQUFsRixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdDaGlsZCwgRGlyZWN0aXZlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgSVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXBwcm92ZU1vZGVsLCBGaWx0ZXJCYXNlLCBQYWdlZExpc3QsIFBhZ2VyLCBQcmludFR5cGUgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBaZWtNb2RhbCB9IGZyb20gJy4uL21vZHVsZXMvbW9kYWwvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlckhlbHBlciwgUGFnZXJIZWxwZXIsIFN0b3JhZ2VIZWxwZXIsIFN0cmluZ0hlbHBlciwgVXJsSGVscGVyIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG4vLyBkZWNsYXJlIGxldCBib290c3RyYXA6IGFueTtcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgTGlzdEJhc2VDb21wb25lbnQ8VFNlcnZpY2UgZXh0ZW5kcyBJU2VydmljZSA9IElTZXJ2aWNlLCBUUGFnZWRMaXN0RGF0YSA9IGFueT4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFBhZ2VkTGlzdDxUUGFnZWRMaXN0RGF0YT4+IHtcclxuICAgIGZpbHRlcjogYW55ID0gbmV3IEZpbHRlckJhc2UoKTtcclxuICAgIHNhdmVGaWx0ZXIgPSB0cnVlO1xyXG4gICAgc29ydEZpZWxkczogYW55O1xyXG4gICAgcHJvdGVjdGVkIGludGVybmFsRmlsdGVyOiBhbnkgPSBuZXcgRmlsdGVyQmFzZSgpO1xyXG4gICAgaXNGaWx0ZXJlZCA9IGZhbHNlO1xyXG4gICAgc2VsZWN0ZWRJZHM6IGFueVtdID0gW107XHJcbiAgICBwYWdlciA9IG5ldyBQYWdlcigpO1xyXG4gICAgc3VtTW9kZWw6IGFueTtcclxuICAgIHRhYmxlSWQgPSAndGFibGUnO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2ZpbHRlck1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIHByb3RlY3RlZCByZWFkb25seSBmaWx0ZXJNb2RhbD86IFpla01vZGFsIHwgbnVsbDtcclxuXHJcbiAgICBhcHByb3ZlTW9kZWw6IEFwcHJvdmVNb2RlbCA9IHt9O1xyXG4gICAgQFZpZXdDaGlsZCgnYXBwcm92ZU1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIHByb3RlY3RlZCByZWFkb25seSBhcHByb3ZlTW9kYWw/OiBaZWtNb2RhbCB8IG51bGw7XHJcbiAgICBwcm90ZWN0ZWQgYXBwcm92ZWRNZXNhZ2UgPSAnQWxlcnQuQXBwcm92ZWQnO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2Rpc2FwcHJvdmVNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlzYXBwcm92ZU1vZGFsPzogWmVrTW9kYWwgfCBudWxsO1xyXG4gICAgcHJvdGVjdGVkIGRpc2FwcHJvdmVkTWVzYWdlID0gJ0FsZXJ0LkRpc2FwcHJvdmVkJztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZTogVFNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcbiAgICByZWFkb25seSBhbGVydCA9IGluamVjdChBbGVydFNlcnZpY2UpO1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgb3ZlcnJpZGUgaW5pdCgpIHtcclxuICAgICAgICBzdXBlci5pbml0KCk7XHJcblxyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgICB0aGlzLmluaXREZWZhdWx0RmlsdGVyKCk7XHJcbiAgICAgICAgdGhpcy5pbml0U3RvcmVkRmlsdGVyKCk7XHJcbiAgICAgICAgdGhpcy5hc3NpZ25GaWx0ZXIoKTtcclxuXHJcbiAgICAgICAgLy90aGlzLnNlbGVjdGVkSWRzID0gW107XHJcbiAgICAgICAgLy90aGlzLnBhZ2VkTGlzdCA9IG5ldyBQYWdlZExpc3QoKTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFzeW5jIGJpbmRNb2RlbCgpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzID0gW107XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYXBpR2V0QWxsKHRoaXMuaW50ZXJuYWxGaWx0ZXIpKTtcclxuICAgICAgICBpZiAodGhpcy5tb2RlbCkge1xyXG4gICAgICAgICAgICBsZXQgdG90YWxDb3VudCA9IHRoaXMubW9kZWwudG90YWxJdGVtQ291bnQ7XHJcbiAgICAgICAgICAgIGlmICghdG90YWxDb3VudCAmJiB0aGlzLm1vZGVsLnBhZ2VyKSB7XHJcbiAgICAgICAgICAgICAgICB0b3RhbENvdW50ID0gdGhpcy5tb2RlbC5wYWdlciA/ICh0aGlzLm1vZGVsLnBhZ2VyLnRvdGFsSXRlbUNvdW50IHx8IDApIDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnBhZ2VyID0gUGFnZXJIZWxwZXIuZ2V0KHRvdGFsQ291bnQsIHRoaXMuaW50ZXJuYWxGaWx0ZXIucGFnZSwgdGhpcy5pbnRlcm5hbEZpbHRlci5wYWdlU2l6ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5wYWdlciA9IG5ldyBQYWdlcigpO1xyXG4gICAgICAgIC8vdGhpcy5wYWdlZExpc3QucGFnZXIgPSB0aGlzLnBhZ2VyO1xyXG4gICAgfVxyXG4gICAgYXBpR2V0QWxsKGZpbHRlcjogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5nZXRBbGwoZmlsdGVyKTtcclxuICAgIH1cclxuICAgIHNjcm9sbFRvcCgpIHtcclxuICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMudGFibGVJZCk7XHJcbiAgICAgICAgZWw/LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ3N0YXJ0JywgaW5saW5lOiAnbmVhcmVzdCcgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByb3RlY3RlZCBpbml0RGVmYXVsdEZpbHRlcigpIHtcclxuICAgIH1cclxuICAgIHByaXZhdGUgaW5pdFN0b3JlZEZpbHRlcigpIHtcclxuICAgICAgICBjb25zdCBmaWx0ZXJQYXJhbSA9IHRoaXMuZ2V0UXVlcnlQYXJhbSgnZmlsdGVyJykgfHwgdGhpcy5nZXRQYXJhbSgnZmlsdGVyJyk7XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXJQYXJhbSkge1xyXG4gICAgICAgICAgICBjb25zdCB0bXAgPSBTdG9yYWdlSGVscGVyLmdldCgnZmlsdGVyJyk7XHJcbiAgICAgICAgICAgIGlmICh0bXAgJiYgdG1wLnVybCAmJiB0bXAudXJsID09PSB0aGlzLnVybCAmJiB0bXAuZmlsdGVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlciA9IE9iamVjdC5hc3NpZ24oe30sIHRtcC5maWx0ZXIpO1xyXG4gICAgICAgICAgICAgICAgLy93ZSBkb250IG5lZWQgdGhpcy5hc3NpZ25GaWx0ZXIoKTsgYmVjYXVzZSBhZnRlciBpbml0U3RvcmVkRmlsdGVyKCk7IHdpbGwgYmUgYXNzaWduZWQuXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnZmlsdGVyJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnZmlsdGVyJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgYXN5bmMgY2hhbmdlUGFnZShwYWdlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLmludGVybmFsRmlsdGVyLnBhZ2UgPSBwYWdlO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyLnBhZ2UgPSBwYWdlO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuYmluZE1vZGVsKCk7XHJcbiAgICAgICAgdGhpcy5hdXRvU2F2ZUZpbHRlcigpO1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9wKCk7XHJcbiAgICB9XHJcbiAgICBjaGFuZ2VQYWdlU2l6ZShwYWdlU2l6ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbEZpbHRlci5wYWdlU2l6ZSA9IHBhZ2VTaXplO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyLnBhZ2VTaXplID0gcGFnZVNpemU7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQYWdlKDEpO1xyXG4gICAgfVxyXG4gICAgc2hvd0ZpbHRlcigpIHtcclxuICAgICAgICB0aGlzLmZpbHRlck1vZGFsPy5zaG93KCk7XHJcbiAgICB9XHJcbiAgICBzZWFyY2goKSB7XHJcbiAgICAgICAgdGhpcy5hc3NpZ25GaWx0ZXIoKTtcclxuXHJcbiAgICAgICAgLy8gdGhpcy5jaGFuZ2VQYWdlKDEpO1xyXG4gICAgICAgIC8vY2FuJ3QgdXNlIHRoaXMgYmVjYXVzZSBkb24ndCB3YW50IHRvIGV4ZWN1dGUgc2Nyb2xsVG9wXHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbEZpbHRlci5wYWdlID0gMTtcclxuICAgICAgICB0aGlzLmZpbHRlci5wYWdlID0gMTtcclxuICAgICAgICB0aGlzLmJpbmRNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMuYXV0b1NhdmVGaWx0ZXIoKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBhc3NpZ25GaWx0ZXIoKSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbEZpbHRlciA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZmlsdGVyKTtcclxuICAgICAgICB0aGlzLmlzRmlsdGVyZWQgPSAhRmlsdGVySGVscGVyLmlzRW1wdHkodGhpcy5pbnRlcm5hbEZpbHRlcik7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGF1dG9TYXZlRmlsdGVyKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNhdmVGaWx0ZXIpXHJcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxTYXZlRmlsdGVyKClcclxuICAgIH1cclxuICAgIHByaXZhdGUgaW50ZXJuYWxTYXZlRmlsdGVyKCkge1xyXG4gICAgICAgIFN0b3JhZ2VIZWxwZXIuc2V0KCdmaWx0ZXInLCB7XHJcbiAgICAgICAgICAgIHVybDogdGhpcy51cmwsXHJcbiAgICAgICAgICAgIGZpbHRlcjogdGhpcy5pbnRlcm5hbEZpbHRlclxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmVzZXQoKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXIgPSB7IHBhZ2U6IDEsIHBhZ2VTaXplOiAyNSB9O1xyXG4gICAgICAgIHRoaXMuYXNzaWduRmlsdGVyKCk7XHJcbiAgICB9XHJcbiAgICByZWZyZXNoKCkge1xyXG4gICAgICAgIHRoaXMuYmluZE1vZGVsKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNyZWF0ZSgpIHtcclxuICAgICAgICBjb25zdCB1cmwgPSBVcmxIZWxwZXIuZ2V0Tm9QYXJhbSh0aGlzLnJvdXRlci51cmwpO1xyXG4gICAgICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmwsICdjcmVhdGUnLCB7IHJldHVyblVybDogdXJsICsgJztmaWx0ZXI9MScgfV0pO1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmwsICdjcmVhdGUnXSxcclxuICAgICAgICAgICAgeyBxdWVyeVBhcmFtczogeyByZXR1cm5Vcmw6IHVybCArICc/ZmlsdGVyPTEnIH0gfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICBhc3luYyBkZWxldGUoaWQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMuYWxlcnQuY2xlYXIoKTtcclxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hcGlEZWxldGUoaWQpKTtcclxuICAgICAgICBpZiAoZGF0YT8uc3VjY2Vzcykge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy50cmFuc2xhdGUuZ2V0KCdBbGVydC5EZWxldGVkJykpO1xyXG4gICAgICAgICAgICB0aGlzLmFsZXJ0LmVycm9yKG1lc3NhZ2UsIG51bGwsICdmYS1zb2xpZCBmYS10cmFzaCcpXHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGFwaURlbGV0ZShpZDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5kZWxldGUoaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRlbGV0ZTIoaWQ6IGFueSwgaWQyOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0LmNsZWFyKCk7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYXBpRGVsZXRlMihpZCwgaWQyKSlcclxuICAgICAgICBpZiAoZGF0YT8uc3VjY2Vzcykge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy50cmFuc2xhdGUuZ2V0KCdBbGVydC5EZWxldGVkJykpO1xyXG4gICAgICAgICAgICB0aGlzLmFsZXJ0LmVycm9yKG1lc3NhZ2UsIG51bGwsICdmYS1zb2xpZCBmYS10cmFzaCcpXHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGFwaURlbGV0ZTIoaWQ6IGFueSwgaWQyOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmRlbGV0ZTIoaWQsIGlkMik7XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdChpZDogbnVtYmVyKSB7XHJcbiAgICAgICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMudXJsLCBpZF0sXHJcbiAgICAgICAgLy8gICAgIHsgcXVlcnlQYXJhbXM6IHsgcmV0dXJuVXJsOiB0aGlzLnVybCArICc7ZmlsdGVyPTEnIH0gfVxyXG4gICAgICAgIC8vICk7XHJcblxyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnVybCwgaWRdLFxyXG4gICAgICAgICAgICB7IHF1ZXJ5UGFyYW1zOiB7IHJldHVyblVybDogdGhpcy51cmwgKyAnP2ZpbHRlcj0xJyB9IH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgZWRpdDIoaWQ6IG51bWJlciwgaWQyOiBudW1iZXIpIHtcclxuICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy51cmwsIGlkLCBpZDIsIHsgcmV0dXJuVXJsOiB0aGlzLnVybCArICc7ZmlsdGVyPTEnIH1dKTtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy51cmwsIGlkLCBpZDJdLFxyXG4gICAgICAgICAgICB7IHF1ZXJ5UGFyYW1zOiB7IHJldHVyblVybDogdGhpcy51cmwgKyAnP2ZpbHRlcj0xJyB9IH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgc2VsZWN0KGl0ZW06IGFueSkge1xyXG4gICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSAhaXRlbS5zZWxlY3RlZDtcclxuICAgICAgICBjb25zdCBpZCA9IGl0ZW0uaWQ7XHJcbiAgICAgICAgaWYgKGlkKSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goaWQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IHRoaXMuc2VsZWN0ZWRJZHMuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gaWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgc2hvd0FwcHJvdmVNb2RhbChpZDogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKCFpZCB8fCAhdGhpcy5hcHByb3ZlTW9kYWwpIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgdG1wID0geyBpZHM6IFtpZF0gfTtcclxuICAgICAgICB0aGlzLmFwcHJvdmVNb2RlbCA9IHt9O1xyXG4gICAgICAgIHRoaXMuYXBwcm92ZU1vZGFsLnNob3codG1wKTtcclxuICAgIH1cclxuICAgIHNob3dBcHByb3ZlU2VsZWN0ZWRNb2RhbCgpIHtcclxuICAgICAgICBjb25zdCB0bXAgPSB7IGlkczogdGhpcy5nZXRTZWxlY3RlZElkcygpIH07XHJcbiAgICAgICAgaWYgKCF0bXAuaWRzIHx8IHRtcC5pZHMubGVuZ3RoID09PSAwIHx8ICF0aGlzLmFwcHJvdmVNb2RhbCkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmFwcHJvdmVNb2RlbCA9IHt9O1xyXG4gICAgICAgIHRoaXMuYXBwcm92ZU1vZGFsLnNob3codG1wKTtcclxuICAgIH1cclxuICAgIGFzeW5jIGFwcHJvdmUobW9kZWw6IGFueSkge1xyXG4gICAgICAgIGlmICghbW9kZWwpIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5hbGVydC5jbGVhcigpO1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmFwaUFwcHJvdmUobW9kZWwpKTtcclxuICAgICAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMudHJhbnNsYXRlLmdldCh0aGlzLmFwcHJvdmVkTWVzYWdlKSk7XHJcbiAgICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKG1lc3NhZ2UsIG51bGwsICdmYS1zb2xpZCBmYS10aHVtYnMtdXAnKVxyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgfVxyXG4gICAgYXBpQXBwcm92ZShtb2RlbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5hcHByb3ZlKG1vZGVsKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc2hvd0Rpc2FwcHJvdmVNb2RhbChpZDogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKCFpZCB8fCAhdGhpcy5kaXNhcHByb3ZlTW9kYWwpIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgdG1wID0geyBpZHM6IFtpZF0gfTtcclxuICAgICAgICB0aGlzLmFwcHJvdmVNb2RlbCA9IHt9O1xyXG4gICAgICAgIHRoaXMuZGlzYXBwcm92ZU1vZGFsLnNob3codG1wKTtcclxuICAgIH1cclxuICAgIHNob3dEaXNhcHByb3ZlU2VsZWN0ZWRNb2RhbCgpIHtcclxuICAgICAgICBjb25zdCB0bXAgPSB7IGlkczogdGhpcy5nZXRTZWxlY3RlZElkcygpIH07XHJcbiAgICAgICAgaWYgKCF0bXAuaWRzIHx8IHRtcC5pZHMubGVuZ3RoID09PSAwIHx8ICF0aGlzLmRpc2FwcHJvdmVNb2RhbCkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmFwcHJvdmVNb2RlbCA9IHt9O1xyXG4gICAgICAgIHRoaXMuZGlzYXBwcm92ZU1vZGFsLnNob3codG1wKTtcclxuICAgIH1cclxuICAgIGFzeW5jIGRpc2FwcHJvdmUobW9kZWw6IGFueSkge1xyXG4gICAgICAgIGlmICghbW9kZWwgfHwgIXRoaXMuYXBwcm92ZU1vZGVsKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgbW9kZWwgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIG1vZGVsLnN0YXR1cyA9IHRoaXMuYXBwcm92ZU1vZGVsLnN0YXR1cztcclxuICAgICAgICAgICAgbW9kZWwuY29tbWVudCA9IFN0cmluZ0hlbHBlci50cnlUcmltKHRoaXMuYXBwcm92ZU1vZGVsLmNvbW1lbnQpO1xyXG4gICAgICAgICAgICBpZiAoIW1vZGVsLmNvbW1lbnQpIGRlbGV0ZSBtb2RlbC5jb21tZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hbGVydC5jbGVhcigpO1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmFwaURpc2FwcHJvdmUobW9kZWwpKTtcclxuICAgICAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMudHJhbnNsYXRlLmdldCh0aGlzLmRpc2FwcHJvdmVkTWVzYWdlKSk7XHJcbiAgICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKG1lc3NhZ2UsIG51bGwsICdmYS1zb2xpZCBmYS10aHVtYnMtZG93bicpXHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICB9XHJcbiAgICBhcGlEaXNhcHByb3ZlKG1vZGVsOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmRpc2FwcHJvdmUobW9kZWwpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNlbGVjdGVkSWRzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSWRzO1xyXG4gICAgICAgIC8vIGlmICghdGhpcy5wYWdlZExpc3QgfHwgIXRoaXMucGFnZWRMaXN0Lml0ZW1zKSByZXR1cm4gW107XHJcblxyXG4gICAgICAgIC8vIGxldCBpZHMgPSBbXTtcclxuICAgICAgICAvLyBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5wYWdlZExpc3QuaXRlbXMpIHtcclxuICAgICAgICAvLyAgICAgaWYgKCFpdGVtLnNlbGVjdGVkIHx8ICFpdGVtLmlkKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgLy8gICAgIGlkcy5wdXNoKGl0ZW0uaWQpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyByZXR1cm4gaWRzO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dTdW0oKSB7IH1cclxuICAgIGFzeW5jIHN1bSgpIHtcclxuICAgICAgICB0aGlzLnN1bU1vZGVsID0gbnVsbDtcclxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hcGlTdW0odGhpcy5pbnRlcm5hbEZpbHRlcikpO1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VtTW9kZWwgPSBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dTdW0oKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy50cmFuc2xhdGUuZ2V0KCdBbGVydC5TdW1FcnJvcicpKTtcclxuICAgICAgICAgICAgdGhpcy5hbGVydC5lcnJvcihtZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBhcGlTdW0oZmlsdGVyOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLnN1bShmaWx0ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydChmaWxlVHlwZUlkOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnNlcnZpY2UuZXhwb3J0KHRoaXMuaW50ZXJuYWxGaWx0ZXIsIGZpbGVUeXBlSWQpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUoZGF0YSwgJ2V4cG9ydC54bHN4JywgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Jyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIG92ZXJyaWRlIHByaW50KHByaW50VHlwZT86IFByaW50VHlwZSkge1xyXG4gICAgICAgIGlmICghdGhpcy5tb2RlbCB8fCAhdGhpcy5tb2RlbC5pdGVtcykgcmV0dXJuO1xyXG5cclxuICAgICAgICBjb25zdCBpZHMgPSB0aGlzLmdldFNlbGVjdGVkSWRzKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBpZCBvZiBpZHMpIHtcclxuICAgICAgICAgICAgc3VwZXIucHJpbnQoaWQsIHByaW50VHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
@@ -0,0 +1,103 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { interval } from 'rxjs';
3
+ import { CoreComponent } from '../../components';
4
+ import { DateHelper } from '../../utils';
5
+ import * as i0 from "@angular/core";
6
+ export class ZekCountdown extends CoreComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.left = {
10
+ days: 0,
11
+ hours: 0,
12
+ hh: '00',
13
+ minutes: 0,
14
+ mm: '00',
15
+ seconds: 0,
16
+ ss: '00'
17
+ };
18
+ this.date = new Date();
19
+ this._targetDate = null;
20
+ this._targetTime = null;
21
+ }
22
+ destroy() {
23
+ stop();
24
+ return super.destroy();
25
+ }
26
+ // private _onTickSubject?: Subject<void>;
27
+ // private _onTickObservable?: Observable<void>;
28
+ // get onRefreshToken(): Observable<void> {
29
+ // if (!this._onTickSubject) {
30
+ // this._onTickSubject = new Subject<void>();
31
+ // this._onTickObservable = this._onTickSubject.asObservable();
32
+ // }
33
+ // if (!this._onTickObservable)
34
+ // throw new Error("_onTickObservable is undefined");
35
+ // return this._onTickObservable;
36
+ // }
37
+ init() {
38
+ this.start();
39
+ this.tick();
40
+ }
41
+ get targetDate() {
42
+ return this._targetDate;
43
+ }
44
+ set targetDate(v) {
45
+ this._targetDate = DateHelper.parseDate(v);
46
+ this._targetTime = this._targetDate ? this._targetDate.getTime() : null;
47
+ }
48
+ start() {
49
+ this._interval$ = interval(1000);
50
+ this._subscription = this._interval$.subscribe(() => {
51
+ this.emitTick();
52
+ });
53
+ }
54
+ stop() {
55
+ this._subscription?.unsubscribe();
56
+ this._interval$ = null;
57
+ // this._onTickSubject?.complete();
58
+ // this._onTickSubject?.unsubscribe();
59
+ }
60
+ emitTick() {
61
+ this.tick();
62
+ // this._onTickSubject?.next();
63
+ }
64
+ reset() {
65
+ this.left = {
66
+ days: 0,
67
+ hours: 0,
68
+ hh: '00',
69
+ minutes: 0,
70
+ mm: '00',
71
+ seconds: 0,
72
+ ss: '00'
73
+ };
74
+ }
75
+ tick() {
76
+ this.reset();
77
+ if (!this.targetDate || !this._targetTime)
78
+ return;
79
+ this.date = new Date();
80
+ const now = this.date.getTime();
81
+ const difference = this._targetTime - now;
82
+ if (difference < 0) {
83
+ this.stop();
84
+ return;
85
+ }
86
+ this.left.days = Math.floor(difference / (1000 * 60 * 60 * 24));
87
+ this.left.hours = 23 - this.date.getHours();
88
+ this.left.hh = (this.left.hours < 10 ? '0' : '') + this.left.hours;
89
+ this.left.minutes = 60 - this.date.getMinutes();
90
+ this.left.mm = (this.left.minutes < 10 ? '0' : '') + this.left.minutes;
91
+ this.left.seconds = 60 - this.date.getSeconds();
92
+ this.left.ss = (this.left.seconds < 10 ? '0' : '') + this.left.seconds;
93
+ }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekCountdown, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ZekCountdown, isStandalone: true, selector: "zek-countdown", inputs: { targetDate: "targetDate" }, usesInheritance: true, ngImport: i0, template: "{{left.days}}d - {{left.hh}}h - {{left.mm}}m - {{left.ss}}s" }); }
96
+ }
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekCountdown, decorators: [{
98
+ type: Component,
99
+ args: [{ standalone: true, imports: [], selector: 'zek-countdown', template: "{{left.days}}d - {{left.hh}}h - {{left.mm}}m - {{left.ss}}s" }]
100
+ }], propDecorators: { targetDate: [{
101
+ type: Input
102
+ }] } });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRkb3duLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9jb3VudGRvd24vY291bnRkb3duLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9jb3VudGRvd24vY291bnRkb3duLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBNEMsTUFBTSxNQUFNLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBUXpDLE1BQU0sT0FBTyxZQUFhLFNBQVEsYUFBYTtJQU4vQzs7UUFhSSxTQUFJLEdBQUc7WUFDSCxJQUFJLEVBQUUsQ0FBQztZQUNQLEtBQUssRUFBRSxDQUFDO1lBQ1IsRUFBRSxFQUFFLElBQUk7WUFDUixPQUFPLEVBQUUsQ0FBQztZQUNWLEVBQUUsRUFBRSxJQUFJO1lBQ1IsT0FBTyxFQUFFLENBQUM7WUFDVixFQUFFLEVBQUUsSUFBSTtTQUNYLENBQUE7UUFDRCxTQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQTBCVixnQkFBVyxHQUFnQixJQUFJLENBQUM7UUFDaEMsZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO0tBc0U3QztJQWhIWSxPQUFPO1FBQ1osSUFBSSxFQUFFLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBbUJELDBDQUEwQztJQUMxQyxnREFBZ0Q7SUFDaEQsMkNBQTJDO0lBQzNDLGtDQUFrQztJQUNsQyxxREFBcUQ7SUFDckQsdUVBQXVFO0lBQ3ZFLFFBQVE7SUFFUixtQ0FBbUM7SUFDbkMsNkRBQTZE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QUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBR3ZFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzNFLENBQUM7OEdBaEhRLFlBQVk7a0dBQVosWUFBWSxzSUNYekIsNkRBQTJEOzsyRkRXOUMsWUFBWTtrQkFOeEIsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsRUFBRSxZQUNELGVBQWU7OEJBbURyQixVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGludGVydmFsLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvcmVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgRGF0ZUhlbHBlciB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtdLFxyXG4gICAgc2VsZWN0b3I6ICd6ZWstY291bnRkb3duJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnY291bnRkb3duLmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBaZWtDb3VudGRvd24gZXh0ZW5kcyBDb3JlQ29tcG9uZW50IHtcclxuICAgIG92ZXJyaWRlIGRlc3Ryb3koKSB7XHJcbiAgICAgICAgc3RvcCgpO1xyXG4gICAgICAgIHJldHVybiBzdXBlci5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGxlZnQgPSB7XHJcbiAgICAgICAgZGF5czogMCxcclxuICAgICAgICBob3VyczogMCxcclxuICAgICAgICBoaDogJzAwJyxcclxuICAgICAgICBtaW51dGVzOiAwLFxyXG4gICAgICAgIG1tOiAnMDAnLFxyXG4gICAgICAgIHNlY29uZHM6IDAsXHJcbiAgICAgICAgc3M6ICcwMCdcclxuICAgIH1cclxuICAgIGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuXHJcbiAgICBwcml2YXRlIF9pbnRlcnZhbCQ/OiBPYnNlcnZhYmxlPG51bWJlcj4gfCBudWxsO1xyXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xyXG5cclxuXHJcbiAgICAvLyBwcml2YXRlIF9vblRpY2tTdWJqZWN0PzogU3ViamVjdDx2b2lkPjtcclxuICAgIC8vIHByaXZhdGUgX29uVGlja09ic2VydmFibGU/OiBPYnNlcnZhYmxlPHZvaWQ+O1xyXG4gICAgLy8gZ2V0IG9uUmVmcmVzaFRva2VuKCk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgLy8gICAgIGlmICghdGhpcy5fb25UaWNrU3ViamVjdCkge1xyXG4gICAgLy8gICAgICAgICB0aGlzLl9vblRpY2tTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIC8vICAgICAgICAgdGhpcy5fb25UaWNrT2JzZXJ2YWJsZSA9IHRoaXMuX29uVGlja1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICBpZiAoIXRoaXMuX29uVGlja09ic2VydmFibGUpXHJcbiAgICAvLyAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIl9vblRpY2tPYnNlcnZhYmxlIGlzIHVuZGVmaW5lZFwiKTtcclxuXHJcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuX29uVGlja09ic2VydmFibGU7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgb3ZlcnJpZGUgaW5pdCgpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0KCk7XHJcbiAgICAgICAgdGhpcy50aWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfdGFyZ2V0RGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBfdGFyZ2V0VGltZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgICBnZXQgdGFyZ2V0RGF0ZSgpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhcmdldERhdGU7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IHRhcmdldERhdGUodjogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLl90YXJnZXREYXRlID0gRGF0ZUhlbHBlci5wYXJzZURhdGUodilcclxuICAgICAgICB0aGlzLl90YXJnZXRUaW1lID0gdGhpcy5fdGFyZ2V0RGF0ZSA/IHRoaXMuX3RhcmdldERhdGUuZ2V0VGltZSgpIDogbnVsbDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhcnQoKSB7XHJcbiAgICAgICAgdGhpcy5faW50ZXJ2YWwkID0gaW50ZXJ2YWwoMTAwMCk7XHJcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5faW50ZXJ2YWwkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZW1pdFRpY2soKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHN0b3AoKSB7XHJcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX2ludGVydmFsJCA9IG51bGw7XHJcblxyXG4gICAgICAgIC8vIHRoaXMuX29uVGlja1N1YmplY3Q/LmNvbXBsZXRlKCk7XHJcbiAgICAgICAgLy8gdGhpcy5fb25UaWNrU3ViamVjdD8udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBlbWl0VGljaygpIHtcclxuICAgICAgICB0aGlzLnRpY2soKTtcclxuICAgICAgICAvLyB0aGlzLl9vblRpY2tTdWJqZWN0Py5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICByZXNldCgpIHtcclxuICAgICAgICB0aGlzLmxlZnQgPSB7XHJcbiAgICAgICAgICAgIGRheXM6IDAsXHJcbiAgICAgICAgICAgIGhvdXJzOiAwLFxyXG4gICAgICAgICAgICBoaDogJzAwJyxcclxuICAgICAgICAgICAgbWludXRlczogMCxcclxuICAgICAgICAgICAgbW06ICcwMCcsXHJcbiAgICAgICAgICAgIHNlY29uZHM6IDAsXHJcbiAgICAgICAgICAgIHNzOiAnMDAnXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRpY2soKSB7XHJcbiAgICAgICAgdGhpcy5yZXNldCgpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMudGFyZ2V0RGF0ZSB8fCAhdGhpcy5fdGFyZ2V0VGltZSkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIGNvbnN0IG5vdyA9IHRoaXMuZGF0ZS5nZXRUaW1lKCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGRpZmZlcmVuY2UgPSB0aGlzLl90YXJnZXRUaW1lIC0gbm93O1xyXG4gICAgICAgIGlmIChkaWZmZXJlbmNlIDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3AoKTtcclxuICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmxlZnQuZGF5cyA9IE1hdGguZmxvb3IoZGlmZmVyZW5jZSAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7XHJcblxyXG4gICAgICAgIHRoaXMubGVmdC5ob3VycyA9IDIzIC0gdGhpcy5kYXRlLmdldEhvdXJzKCk7XHJcbiAgICAgICAgdGhpcy5sZWZ0LmhoID0gKHRoaXMubGVmdC5ob3VycyA8IDEwID8gJzAnIDogJycpICsgdGhpcy5sZWZ0LmhvdXJzO1xyXG5cclxuICAgICAgICB0aGlzLmxlZnQubWludXRlcyA9IDYwIC0gdGhpcy5kYXRlLmdldE1pbnV0ZXMoKTtcclxuICAgICAgICB0aGlzLmxlZnQubW0gPSAodGhpcy5sZWZ0Lm1pbnV0ZXMgPCAxMCA/ICcwJyA6ICcnKSArIHRoaXMubGVmdC5taW51dGVzO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0LnNlY29uZHMgPSA2MCAtIHRoaXMuZGF0ZS5nZXRTZWNvbmRzKCk7XHJcbiAgICAgICAgdGhpcy5sZWZ0LnNzID0gKHRoaXMubGVmdC5zZWNvbmRzIDwgMTAgPyAnMCcgOiAnJykgKyB0aGlzLmxlZnQuc2Vjb25kcztcclxuICAgIH1cclxufSIsInt7bGVmdC5kYXlzfX1kIC0ge3tsZWZ0LmhofX1oIC0ge3tsZWZ0Lm1tfX1tIC0ge3tsZWZ0LnNzfX1zIl19
@@ -0,0 +1,2 @@
1
+ export * from './countdown';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL2NvdW50ZG93bi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY291bnRkb3duJzsiXX0=
@@ -3,6 +3,7 @@ export * from './alert';
3
3
  export * from './autocomplete';
4
4
  export * from './bb';
5
5
  export * from './card';
6
+ export * from './countdown';
6
7
  export * from './callback';
7
8
  export * from './date-ago';
8
9
  export * from './datepicker';
@@ -34,4 +35,4 @@ export * from './validator';
34
35
  export * from './validators';
35
36
  export * from './wizard';
36
37
  // export * from './'
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxNQUFNLENBQUM7QUFDckIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFVBQVUsQ0FBQztBQUV6QixxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FnZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWxlcnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dG9jb21wbGV0ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmInO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhcmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhbGxiYWNrJztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRlLWFnbyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZXBpY2tlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vZWRpdC10b29sYmFyJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWxlLXZpZXdlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLWxvZ2luLWJ1dHRvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZC10b29sYmFyJztcclxuZXhwb3J0ICogZnJvbSAnLi9saXN0LXRvb2xiYXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvYWRpbmcnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGFsJztcclxuZXhwb3J0ICogZnJvbSAnLi9udW1lcmljJztcclxuZXhwb3J0ICogZnJvbSAnLi9wYWdlLXRpdGxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9wYWdlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFzc3dvcmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Byb2dyZXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9yYWRpbyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVhZG9ubHknO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlY2FwdGNoYS9pbmRleCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2FmZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0JztcclxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QyJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QyLW11bHRpcGxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zb3J0JztcclxuZXhwb3J0ICogZnJvbSAnLi90aW1lJztcclxuZXhwb3J0ICogZnJvbSAnLi90b29sdGlwJztcclxuZXhwb3J0ICogZnJvbSAnLi91dGMtdG8tbG9jYWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9ycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vd2l6YXJkJztcclxuXHJcbi8vIGV4cG9ydCAqIGZyb20gJy4vJyJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxNQUFNLENBQUM7QUFDckIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFVBQVUsQ0FBQztBQUV6QixxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FnZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWxlcnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dG9jb21wbGV0ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmInO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhcmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvdW50ZG93bic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2FsbGJhY2snO1xyXG5leHBvcnQgKiBmcm9tICcuL2RhdGUtYWdvJztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRlcGlja2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9lZGl0LXRvb2xiYXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtdmlld2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9nb29nbGUtbG9naW4tYnV0dG9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9ncmlkLXRvb2xiYXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpc3QtdG9vbGJhcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGluZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL251bWVyaWMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BhZ2UtdGl0bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BhZ2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9wYXNzd29yZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvZ3Jlc3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JhZGlvJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZWFkb25seSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVjYXB0Y2hhL2luZGV4JztcclxuZXhwb3J0ICogZnJvbSAnLi9zYWZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdDInO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdDItbXVsdGlwbGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NvcnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RpbWUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Rvb2x0aXAnO1xyXG5leHBvcnQgKiBmcm9tICcuL3V0Yy10by1sb2NhbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi92YWxpZGF0b3JzJztcclxuZXhwb3J0ICogZnJvbSAnLi93aXphcmQnO1xyXG5cclxuLy8gZXhwb3J0ICogZnJvbSAnLi8nIl19
@@ -4,15 +4,6 @@ import { map, takeWhile } from "rxjs/operators";
4
4
  import { DateHelper } from "../../utils";
5
5
  import * as i0 from "@angular/core";
6
6
  export class TimerService {
7
- get count() {
8
- return this._count;
9
- }
10
- get left() {
11
- return this._left;
12
- }
13
- // tickerInterval: any;
14
- // expired: Observable<number> = new Observable<number>();
15
- // initialCountValue: number = 0;
16
7
  constructor() {
17
8
  this.seconds = 0;
18
9
  // running = false;
@@ -24,6 +15,15 @@ export class TimerService {
24
15
  this.tick = new Subject();
25
16
  this.completed = new Subject();
26
17
  }
18
+ get count() {
19
+ return this._count;
20
+ }
21
+ get left() {
22
+ return this._left;
23
+ }
24
+ // tickerInterval: any;
25
+ // expired: Observable<number> = new Observable<number>();
26
+ // initialCountValue: number = 0;
27
27
  startHour(hours, minutes, seconds) {
28
28
  this.start((hours ? hours * 60 * 60 : 0) + (minutes ? minutes * 60 : 0) + seconds);
29
29
  }
@@ -83,7 +83,7 @@ export class TimerService {
83
83
  }
84
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: TimerService, decorators: [{
85
85
  type: Injectable
86
- }], ctorParameters: () => [], propDecorators: { seconds: [{
86
+ }], propDecorators: { seconds: [{
87
87
  type: Input
88
88
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXItc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL21vZHVsZXMvdGltZS90aW1lci1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3pDLE1BQU0sT0FBTyxZQUFZO0lBTXJCLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBR0QsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFRRCx1QkFBdUI7SUFDdkIsMERBQTBEO0lBQzFELGlDQUFpQztJQUVqQztRQXhCUyxZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBRTdCLG1CQUFtQjtRQUVYLFdBQU0sR0FBWSxDQUFDLENBQUM7UUFLcEIsVUFBSyxHQUFZLENBQUMsQ0FBQztRQUszQixlQUFVLEdBQWdCLElBQUksQ0FBQztRQUN2QixpQkFBWSxHQUF3QixJQUFJLENBQUM7UUFDakQsaUVBQWlFO1FBRWpFLFNBQUksR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQzdCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBS2YsQ0FBQztJQUdqQixTQUFTLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBRSxPQUFlO1FBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFlLEVBQUUsT0FBZTtRQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE9BQWU7UUFDakIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFN0QsMEVBQTBFO1FBQzFFLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSTtRQUM5QiwyQkFBMkI7UUFDM0Isd0JBQXdCO1FBQ3hCLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUN2QixTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUMvQixrQ0FBa0M7U0FDckMsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELEtBQUs7UUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFHRCxZQUFZO1FBQ1IsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O1VBa0JFO0lBQ04sQ0FBQzs4R0F4RlEsWUFBWTtrSEFBWixZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixVQUFVO3dEQUVFLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVdoaWxlLCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgRGF0ZUhlbHBlciB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVGltZXJTZXJ2aWNlIHtcclxuICAgIEBJbnB1dCgpIHNlY29uZHM6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLy8gcnVubmluZyA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBwcml2YXRlIF9jb3VudCA6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgZ2V0IGNvdW50KCkgOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb3VudDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcHJpdmF0ZSBfbGVmdCA6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgZ2V0IGxlZnQoKSA6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwaXJlRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gICAgLy9AT3V0cHV0KCkgY2hlY2tUaW1lOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICB0aWNrID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xyXG4gICAgY29tcGxldGVkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gICAgLy8gdGlja2VySW50ZXJ2YWw6IGFueTtcclxuICAgIC8vIGV4cGlyZWQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IG5ldyBPYnNlcnZhYmxlPG51bWJlcj4oKTtcclxuICAgIC8vIGluaXRpYWxDb3VudFZhbHVlOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG5cclxuICAgIHN0YXJ0SG91cihob3VyczogbnVtYmVyLCBtaW51dGVzOiBudW1iZXIsIHNlY29uZHM6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuc3RhcnQoKGhvdXJzID8gaG91cnMgKiA2MCAqIDYwIDogMCkgKyAobWludXRlcyA/IG1pbnV0ZXMgKiA2MCA6IDApICsgc2Vjb25kcyk7XHJcbiAgICB9XHJcbiAgICBzdGFydE1pbnV0ZShtaW51dGVzOiBudW1iZXIsIHNlY29uZHM6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuc3RhcnQoKG1pbnV0ZXMgPyBtaW51dGVzICogNjAgOiAwKSArIHNlY29uZHMpO1xyXG4gICAgfVxyXG4gICAgc3RhcnQoc2Vjb25kczogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhcigpO1xyXG5cclxuICAgICAgICB0aGlzLl9sZWZ0ID0gc2Vjb25kcztcclxuICAgICAgICB0aGlzLl9jb3VudCA9IHNlY29uZHM7XHJcbiAgICAgICAgdGhpcy5leHBpcmVEYXRlID0gRGF0ZUhlbHBlci5hZGRTZWNvbmRzKG5ldyBEYXRlKCksIHNlY29uZHMpO1xyXG5cclxuICAgICAgICAvL3RoaXMuaW50ZXJuYWxUaWNrKCk7Ly9iZWNhdXNlIHJ1biBmaXJzdCB0aWNrIHZhbHVlIGV4YW1wbGUgNjAgLT4gIG5vdCA1OVxyXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IHRpbWVyKDAsIDEwMDApLnBpcGUoXHJcbiAgICAgICAgICAgIC8vbWFwKGkgPT4gdGhpcy5jb3VudCAtIGkpLFxyXG4gICAgICAgICAgICAvL3Rha2VXaGlsZShpID0+IGkgPiAwKSxcclxuICAgICAgICAgICAgbWFwKF9pID0+IHRoaXMuX2xlZnQtLSksXHJcbiAgICAgICAgICAgIHRha2VXaGlsZShfaSA9PiB0aGlzLmxlZnQgPj0gMClcclxuICAgICAgICAgICAgLy90YXAocyA9PiB0aGlzLmNoZWNrVGltZS5lbWl0KHMpKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gc291cmNlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxUaWNrKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjbGVhcigpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5leHBpcmVEYXRlID0gbnVsbDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaW50ZXJuYWxUaWNrKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnRpY2spIHtcclxuICAgICAgICAgICAgdGhpcy50aWNrLm5leHQodGhpcy5fbGVmdCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5sZWZ0IDw9IDAgJiYgdGhpcy5jb21wbGV0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wbGV0ZWQubmV4dChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLypcclxuICAgICAgICAvLyBnZXQgdG90YWwgc2Vjb25kcyBiZXR3ZWVuIHRoZSB0aW1lc1xyXG4gICAgICAgIGxldCBkZWx0YSA9IE1hdGguYWJzKGRhdGVfZnV0dXJlIC0gZGF0ZV9ub3cpIC8gMTAwMDtcclxuXHJcbiAgICAgICAgLy8gY2FsY3VsYXRlIChhbmQgc3VidHJhY3QpIHdob2xlIGRheXNcclxuICAgICAgICBsZXQgZGF5cyA9IE1hdGguZmxvb3IoZGVsdGEgLyA4NjQwMCk7XHJcbiAgICAgICAgZGVsdGEgLT0gZGF5cyAqIDg2NDAwO1xyXG5cclxuICAgICAgICAvLyBjYWxjdWxhdGUgKGFuZCBzdWJ0cmFjdCkgd2hvbGUgaG91cnNcclxuICAgICAgICBsZXQgaG91cnMgPSBNYXRoLmZsb29yKGRlbHRhIC8gMzYwMCkgJSAyNDtcclxuICAgICAgICBkZWx0YSAtPSBob3VycyAqIDM2MDA7XHJcblxyXG4gICAgICAgIC8vIGNhbGN1bGF0ZSAoYW5kIHN1YnRyYWN0KSB3aG9sZSBtaW51dGVzXHJcbiAgICAgICAgbGV0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKGRlbHRhIC8gNjApICUgNjA7XHJcbiAgICAgICAgZGVsdGEgLT0gbWludXRlcyAqIDYwO1xyXG5cclxuICAgICAgICAvLyB3aGF0J3MgbGVmdCBpcyBzZWNvbmRzXHJcbiAgICAgICAgbGV0IHNlY29uZHMgPSBkZWx0YSAlIDYwOyAgLy8gaW4gdGhlb3J5IHRoZSBtb2R1bHVzIGlzIG5vdCByZXF1aXJlZFxyXG4gICAgICAgICovXHJcbiAgICB9XHJcbn0iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXItc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL21vZHVsZXMvdGltZS90aW1lci1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3pDLE1BQU0sT0FBTyxZQUFZO0lBRHpCO1FBRWEsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUVyQixtQkFBbUI7UUFFWCxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBS1gsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUtsQixlQUFVLEdBQWdCLElBQUksQ0FBQztRQUN2QixpQkFBWSxHQUF3QixJQUFJLENBQUM7UUFDakQsaUVBQWlFO1FBRWpFLFNBQUksR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQzdCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0tBbUVsQztJQWpGRyxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUdELElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBUUQsdUJBQXVCO0lBQ3ZCLDBEQUEwRDtJQUMxRCxpQ0FBaUM7SUFHakMsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsT0FBZTtRQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBZSxFQUFFLE9BQWU7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUNELEtBQUssQ0FBQyxPQUFlO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTdELDBFQUEwRTtRQUMxRSxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUk7UUFDOUIsMkJBQTJCO1FBQzNCLHdCQUF3QjtRQUN4QixHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFDdkIsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDL0Isa0NBQWtDO1NBQ3JDLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBR0QsWUFBWTtRQUNSLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDO1FBQ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7OztVQWtCRTtJQUNOLENBQUM7OEdBdEZRLFlBQVk7a0hBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFEeEIsVUFBVTs4QkFFRSxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGltZXIgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VXaGlsZSwgdGFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRpbWVyU2VydmljZSB7XHJcbiAgICBASW5wdXQoKSBzZWNvbmRzID0gMDtcclxuXHJcbiAgICAvLyBydW5uaW5nID0gZmFsc2U7XHJcbiAgICBcclxuICAgIHByaXZhdGUgX2NvdW50ID0gMDtcclxuICAgIHB1YmxpYyBnZXQgY291bnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvdW50O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwcml2YXRlIF9sZWZ0ID0gMDtcclxuICAgIHB1YmxpYyBnZXQgbGVmdCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbGVmdDtcclxuICAgIH1cclxuXHJcbiAgICBleHBpcmVEYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgICAvL0BPdXRwdXQoKSBjaGVja1RpbWU6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIHRpY2sgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XHJcbiAgICBjb21wbGV0ZWQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgICAvLyB0aWNrZXJJbnRlcnZhbDogYW55O1xyXG4gICAgLy8gZXhwaXJlZDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gbmV3IE9ic2VydmFibGU8bnVtYmVyPigpO1xyXG4gICAgLy8gaW5pdGlhbENvdW50VmFsdWU6IG51bWJlciA9IDA7XHJcblxyXG5cclxuICAgIHN0YXJ0SG91cihob3VyczogbnVtYmVyLCBtaW51dGVzOiBudW1iZXIsIHNlY29uZHM6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuc3RhcnQoKGhvdXJzID8gaG91cnMgKiA2MCAqIDYwIDogMCkgKyAobWludXRlcyA/IG1pbnV0ZXMgKiA2MCA6IDApICsgc2Vjb25kcyk7XHJcbiAgICB9XHJcbiAgICBzdGFydE1pbnV0ZShtaW51dGVzOiBudW1iZXIsIHNlY29uZHM6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuc3RhcnQoKG1pbnV0ZXMgPyBtaW51dGVzICogNjAgOiAwKSArIHNlY29uZHMpO1xyXG4gICAgfVxyXG4gICAgc3RhcnQoc2Vjb25kczogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhcigpO1xyXG5cclxuICAgICAgICB0aGlzLl9sZWZ0ID0gc2Vjb25kcztcclxuICAgICAgICB0aGlzLl9jb3VudCA9IHNlY29uZHM7XHJcbiAgICAgICAgdGhpcy5leHBpcmVEYXRlID0gRGF0ZUhlbHBlci5hZGRTZWNvbmRzKG5ldyBEYXRlKCksIHNlY29uZHMpO1xyXG5cclxuICAgICAgICAvL3RoaXMuaW50ZXJuYWxUaWNrKCk7Ly9iZWNhdXNlIHJ1biBmaXJzdCB0aWNrIHZhbHVlIGV4YW1wbGUgNjAgLT4gIG5vdCA1OVxyXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IHRpbWVyKDAsIDEwMDApLnBpcGUoXHJcbiAgICAgICAgICAgIC8vbWFwKGkgPT4gdGhpcy5jb3VudCAtIGkpLFxyXG4gICAgICAgICAgICAvL3Rha2VXaGlsZShpID0+IGkgPiAwKSxcclxuICAgICAgICAgICAgbWFwKF9pID0+IHRoaXMuX2xlZnQtLSksXHJcbiAgICAgICAgICAgIHRha2VXaGlsZShfaSA9PiB0aGlzLmxlZnQgPj0gMClcclxuICAgICAgICAgICAgLy90YXAocyA9PiB0aGlzLmNoZWNrVGltZS5lbWl0KHMpKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gc291cmNlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxUaWNrKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjbGVhcigpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5leHBpcmVEYXRlID0gbnVsbDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaW50ZXJuYWxUaWNrKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnRpY2spIHtcclxuICAgICAgICAgICAgdGhpcy50aWNrLm5leHQodGhpcy5fbGVmdCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5sZWZ0IDw9IDAgJiYgdGhpcy5jb21wbGV0ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wbGV0ZWQubmV4dChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLypcclxuICAgICAgICAvLyBnZXQgdG90YWwgc2Vjb25kcyBiZXR3ZWVuIHRoZSB0aW1lc1xyXG4gICAgICAgIGxldCBkZWx0YSA9IE1hdGguYWJzKGRhdGVfZnV0dXJlIC0gZGF0ZV9ub3cpIC8gMTAwMDtcclxuXHJcbiAgICAgICAgLy8gY2FsY3VsYXRlIChhbmQgc3VidHJhY3QpIHdob2xlIGRheXNcclxuICAgICAgICBsZXQgZGF5cyA9IE1hdGguZmxvb3IoZGVsdGEgLyA4NjQwMCk7XHJcbiAgICAgICAgZGVsdGEgLT0gZGF5cyAqIDg2NDAwO1xyXG5cclxuICAgICAgICAvLyBjYWxjdWxhdGUgKGFuZCBzdWJ0cmFjdCkgd2hvbGUgaG91cnNcclxuICAgICAgICBsZXQgaG91cnMgPSBNYXRoLmZsb29yKGRlbHRhIC8gMzYwMCkgJSAyNDtcclxuICAgICAgICBkZWx0YSAtPSBob3VycyAqIDM2MDA7XHJcblxyXG4gICAgICAgIC8vIGNhbGN1bGF0ZSAoYW5kIHN1YnRyYWN0KSB3aG9sZSBtaW51dGVzXHJcbiAgICAgICAgbGV0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKGRlbHRhIC8gNjApICUgNjA7XHJcbiAgICAgICAgZGVsdGEgLT0gbWludXRlcyAqIDYwO1xyXG5cclxuICAgICAgICAvLyB3aGF0J3MgbGVmdCBpcyBzZWNvbmRzXHJcbiAgICAgICAgbGV0IHNlY29uZHMgPSBkZWx0YSAlIDYwOyAgLy8gaW4gdGhlb3J5IHRoZSBtb2R1bHVzIGlzIG5vdCByZXF1aXJlZFxyXG4gICAgICAgICovXHJcbiAgICB9XHJcbn0iXX0=
package/fesm2022/zek.mjs CHANGED
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { Injectable, inject, InjectionToken, Inject, Directive, EventEmitter, Input, Output, ViewChild, Pipe, Component, forwardRef, NgModule, HostListener, ViewEncapsulation, ChangeDetectionStrategy, Optional } from '@angular/core';
3
3
  import * as i1 from '@angular/router';
4
4
  import { Router, NavigationStart, ActivatedRoute, RouterModule } from '@angular/router';
5
- import { BehaviorSubject, Subject, catchError, of, firstValueFrom, timer } from 'rxjs';
5
+ import { BehaviorSubject, Subject, catchError, of, firstValueFrom, interval, timer } from 'rxjs';
6
6
  import * as i2 from '@ngx-translate/core';
7
7
  import { TranslateService, TranslateModule } from '@ngx-translate/core';
8
8
  import * as i1$1 from '@angular/common/http';
@@ -2567,6 +2567,7 @@ class ListBaseComponent extends BaseComponent {
2567
2567
  this.isFiltered = false;
2568
2568
  this.selectedIds = [];
2569
2569
  this.pager = new Pager();
2570
+ this.tableId = 'table';
2570
2571
  this.approveModel = {};
2571
2572
  this.approvedMesage = 'Alert.Approved';
2572
2573
  this.disapprovedMesage = 'Alert.Disapproved';
@@ -2599,6 +2600,10 @@ class ListBaseComponent extends BaseComponent {
2599
2600
  apiGetAll(filter) {
2600
2601
  return this.service.getAll(filter);
2601
2602
  }
2603
+ scrollTop() {
2604
+ const el = document.getElementById(this.tableId);
2605
+ el?.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' });
2606
+ }
2602
2607
  initDefaultFilter() {
2603
2608
  }
2604
2609
  initStoredFilter() {
@@ -2617,11 +2622,12 @@ class ListBaseComponent extends BaseComponent {
2617
2622
  localStorage.removeItem('filter');
2618
2623
  }
2619
2624
  }
2620
- changePage(page) {
2625
+ async changePage(page) {
2621
2626
  this.internalFilter.page = page;
2622
2627
  this.filter.page = page;
2623
- this.refresh();
2628
+ await this.bindModel();
2624
2629
  this.autoSaveFilter();
2630
+ this.scrollTop();
2625
2631
  }
2626
2632
  changePageSize(pageSize) {
2627
2633
  this.internalFilter.pageSize = pageSize;
@@ -2632,10 +2638,13 @@ class ListBaseComponent extends BaseComponent {
2632
2638
  this.filterModal?.show();
2633
2639
  }
2634
2640
  search() {
2635
- //this.filterModal?.hide();
2636
2641
  this.assignFilter();
2637
- this.changePage(1);
2638
- //this.internalAutoSaveFilter();
2642
+ // this.changePage(1);
2643
+ //can't use this because don't want to execute scrollTop
2644
+ this.internalFilter.page = 1;
2645
+ this.filter.page = 1;
2646
+ this.bindModel();
2647
+ this.autoSaveFilter();
2639
2648
  }
2640
2649
  assignFilter() {
2641
2650
  this.internalFilter = Object.assign({}, this.filter);
@@ -3458,6 +3467,104 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
3458
3467
  type: Input
3459
3468
  }] } });
3460
3469
 
3470
+ class ZekCountdown extends CoreComponent {
3471
+ constructor() {
3472
+ super(...arguments);
3473
+ this.left = {
3474
+ days: 0,
3475
+ hours: 0,
3476
+ hh: '00',
3477
+ minutes: 0,
3478
+ mm: '00',
3479
+ seconds: 0,
3480
+ ss: '00'
3481
+ };
3482
+ this.date = new Date();
3483
+ this._targetDate = null;
3484
+ this._targetTime = null;
3485
+ }
3486
+ destroy() {
3487
+ stop();
3488
+ return super.destroy();
3489
+ }
3490
+ // private _onTickSubject?: Subject<void>;
3491
+ // private _onTickObservable?: Observable<void>;
3492
+ // get onRefreshToken(): Observable<void> {
3493
+ // if (!this._onTickSubject) {
3494
+ // this._onTickSubject = new Subject<void>();
3495
+ // this._onTickObservable = this._onTickSubject.asObservable();
3496
+ // }
3497
+ // if (!this._onTickObservable)
3498
+ // throw new Error("_onTickObservable is undefined");
3499
+ // return this._onTickObservable;
3500
+ // }
3501
+ init() {
3502
+ this.start();
3503
+ this.tick();
3504
+ }
3505
+ get targetDate() {
3506
+ return this._targetDate;
3507
+ }
3508
+ set targetDate(v) {
3509
+ this._targetDate = DateHelper.parseDate(v);
3510
+ this._targetTime = this._targetDate ? this._targetDate.getTime() : null;
3511
+ }
3512
+ start() {
3513
+ this._interval$ = interval(1000);
3514
+ this._subscription = this._interval$.subscribe(() => {
3515
+ this.emitTick();
3516
+ });
3517
+ }
3518
+ stop() {
3519
+ this._subscription?.unsubscribe();
3520
+ this._interval$ = null;
3521
+ // this._onTickSubject?.complete();
3522
+ // this._onTickSubject?.unsubscribe();
3523
+ }
3524
+ emitTick() {
3525
+ this.tick();
3526
+ // this._onTickSubject?.next();
3527
+ }
3528
+ reset() {
3529
+ this.left = {
3530
+ days: 0,
3531
+ hours: 0,
3532
+ hh: '00',
3533
+ minutes: 0,
3534
+ mm: '00',
3535
+ seconds: 0,
3536
+ ss: '00'
3537
+ };
3538
+ }
3539
+ tick() {
3540
+ this.reset();
3541
+ if (!this.targetDate || !this._targetTime)
3542
+ return;
3543
+ this.date = new Date();
3544
+ const now = this.date.getTime();
3545
+ const difference = this._targetTime - now;
3546
+ if (difference < 0) {
3547
+ this.stop();
3548
+ return;
3549
+ }
3550
+ this.left.days = Math.floor(difference / (1000 * 60 * 60 * 24));
3551
+ this.left.hours = 23 - this.date.getHours();
3552
+ this.left.hh = (this.left.hours < 10 ? '0' : '') + this.left.hours;
3553
+ this.left.minutes = 60 - this.date.getMinutes();
3554
+ this.left.mm = (this.left.minutes < 10 ? '0' : '') + this.left.minutes;
3555
+ this.left.seconds = 60 - this.date.getSeconds();
3556
+ this.left.ss = (this.left.seconds < 10 ? '0' : '') + this.left.seconds;
3557
+ }
3558
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekCountdown, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3559
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ZekCountdown, isStandalone: true, selector: "zek-countdown", inputs: { targetDate: "targetDate" }, usesInheritance: true, ngImport: i0, template: "{{left.days}}d - {{left.hh}}h - {{left.mm}}m - {{left.ss}}s" }); }
3560
+ }
3561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekCountdown, decorators: [{
3562
+ type: Component,
3563
+ args: [{ standalone: true, imports: [], selector: 'zek-countdown', template: "{{left.days}}d - {{left.hh}}h - {{left.mm}}m - {{left.ss}}s" }]
3564
+ }], propDecorators: { targetDate: [{
3565
+ type: Input
3566
+ }] } });
3567
+
3461
3568
  class ZekCallbackPipe {
3462
3569
  transform(items, callback, filter) {
3463
3570
  if (!items || !callback) {
@@ -6270,15 +6377,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
6270
6377
  }] });
6271
6378
 
6272
6379
  class TimerService {
6273
- get count() {
6274
- return this._count;
6275
- }
6276
- get left() {
6277
- return this._left;
6278
- }
6279
- // tickerInterval: any;
6280
- // expired: Observable<number> = new Observable<number>();
6281
- // initialCountValue: number = 0;
6282
6380
  constructor() {
6283
6381
  this.seconds = 0;
6284
6382
  // running = false;
@@ -6290,6 +6388,15 @@ class TimerService {
6290
6388
  this.tick = new Subject();
6291
6389
  this.completed = new Subject();
6292
6390
  }
6391
+ get count() {
6392
+ return this._count;
6393
+ }
6394
+ get left() {
6395
+ return this._left;
6396
+ }
6397
+ // tickerInterval: any;
6398
+ // expired: Observable<number> = new Observable<number>();
6399
+ // initialCountValue: number = 0;
6293
6400
  startHour(hours, minutes, seconds) {
6294
6401
  this.start((hours ? hours * 60 * 60 : 0) + (minutes ? minutes * 60 : 0) + seconds);
6295
6402
  }
@@ -6349,7 +6456,7 @@ class TimerService {
6349
6456
  }
6350
6457
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: TimerService, decorators: [{
6351
6458
  type: Injectable
6352
- }], ctorParameters: () => [], propDecorators: { seconds: [{
6459
+ }], propDecorators: { seconds: [{
6353
6460
  type: Input
6354
6461
  }] } });
6355
6462
 
@@ -6795,5 +6902,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
6795
6902
  * Generated bundle index. Do not edit.
6796
6903
  */
6797
6904
 
6798
- export { API_BASE_URL, AgePipe, Alert, AlertService, ArrayHelper, AuthService, Base64Helper, BaseAlert, BaseComponent, BaseService, BitwiseHelper, BootstrapHelper, Color, ComponentType, Convert, CoreComponent, CoreUiComponent, CrudService, CssHelper, CustomHttpParamEncoder, DATE_FORMAT, DateHelper, DateValueAccessor, DatepickerModule, EditBase, EditBaseComponent, EditComponent, EditFormComponent, ErrorHelper, ExcelHelper, FileBase, FileBytes, FileHelper, FileString, FilterBase, FilterHelper, GOOGLE_CLIENT_ID, Gender, HtmlHelper, HttpErrorHandler, JwtHelper, KeyPair, KeyPairChecked, KeyPairEx, KeyPairRequired, LANGUAGE, ListBase, ListBaseComponent, MATCH_VALIDATOR, MatchValidator, MathHelper, Month, ObjectHelper, OverlapHelper, PagedList, Pager, PagerHelper, PeriodRelation, PrintType, RANGE_VALIDATOR, RECAPTCHA_SITE_KEY, RandomHelper, RangeValidator, ReCaptchaService, RecaptchaModule, StorageHelper, StringHelper, TimeHelper, TimeModule, TimePipe, TimerService, TmpHelper, Toast, Tree, UrlHelper, ValidEventArgs, ValidationHelper, Validators, ValidatorsModule, WebApiClient, WebApiModule, ZekAlert, ZekApproveModal, ZekAutoComplete, ZekButtonBrowse, ZekButtonBrowseModalBase, ZekButtonBrowseModalToolbar, ZekButtonBrowseModule, ZekCallbackPipe, ZekCard, ZekDateAgoPipe, ZekDeleteModal, ZekDisapproveModal, ZekEditToolbar, ZekFieldValidator, ZekFileSizePipe, ZekFileViewer, ZekFilterModal, ZekGoogleLoginButton, ZekGoogleLoginModule, ZekGridToolbar, ZekGridToolbarBar, ZekListToolbar, ZekLoading, ZekLoadingModule, ZekLocalToUtcModule, ZekLocalToUtcPipe, ZekModal, ZekModalModule, ZekNumericDirective, ZekPageTitle, ZekPager, ZekPassword, ZekProgress, ZekRadio, ZekReadOnlyDirective, ZekRestoreModal, ZekSafePipe, ZekSelect2, ZekSelect2Multiple, ZekSelectMultiple, ZekSort, ZekSortButtonGroup, ZekSubmitModal, ZekSumModal, ZekToast, ZekTooltip, ZekUtcToLocalModule, ZekUtcToLocalPipe, ZekValidation, ZekWizard, ZekWizard2, firstBy, handler, matchValidator, nullValidator, rangeValidator, zekAuthGuard };
6905
+ export { API_BASE_URL, AgePipe, Alert, AlertService, ArrayHelper, AuthService, Base64Helper, BaseAlert, BaseComponent, BaseService, BitwiseHelper, BootstrapHelper, Color, ComponentType, Convert, CoreComponent, CoreUiComponent, CrudService, CssHelper, CustomHttpParamEncoder, DATE_FORMAT, DateHelper, DateValueAccessor, DatepickerModule, EditBase, EditBaseComponent, EditComponent, EditFormComponent, ErrorHelper, ExcelHelper, FileBase, FileBytes, FileHelper, FileString, FilterBase, FilterHelper, GOOGLE_CLIENT_ID, Gender, HtmlHelper, HttpErrorHandler, JwtHelper, KeyPair, KeyPairChecked, KeyPairEx, KeyPairRequired, LANGUAGE, ListBase, ListBaseComponent, MATCH_VALIDATOR, MatchValidator, MathHelper, Month, ObjectHelper, OverlapHelper, PagedList, Pager, PagerHelper, PeriodRelation, PrintType, RANGE_VALIDATOR, RECAPTCHA_SITE_KEY, RandomHelper, RangeValidator, ReCaptchaService, RecaptchaModule, StorageHelper, StringHelper, TimeHelper, TimeModule, TimePipe, TimerService, TmpHelper, Toast, Tree, UrlHelper, ValidEventArgs, ValidationHelper, Validators, ValidatorsModule, WebApiClient, WebApiModule, ZekAlert, ZekApproveModal, ZekAutoComplete, ZekButtonBrowse, ZekButtonBrowseModalBase, ZekButtonBrowseModalToolbar, ZekButtonBrowseModule, ZekCallbackPipe, ZekCard, ZekCountdown, ZekDateAgoPipe, ZekDeleteModal, ZekDisapproveModal, ZekEditToolbar, ZekFieldValidator, ZekFileSizePipe, ZekFileViewer, ZekFilterModal, ZekGoogleLoginButton, ZekGoogleLoginModule, ZekGridToolbar, ZekGridToolbarBar, ZekListToolbar, ZekLoading, ZekLoadingModule, ZekLocalToUtcModule, ZekLocalToUtcPipe, ZekModal, ZekModalModule, ZekNumericDirective, ZekPageTitle, ZekPager, ZekPassword, ZekProgress, ZekRadio, ZekReadOnlyDirective, ZekRestoreModal, ZekSafePipe, ZekSelect2, ZekSelect2Multiple, ZekSelectMultiple, ZekSort, ZekSortButtonGroup, ZekSubmitModal, ZekSumModal, ZekToast, ZekTooltip, ZekUtcToLocalModule, ZekUtcToLocalPipe, ZekValidation, ZekWizard, ZekWizard2, firstBy, handler, matchValidator, nullValidator, rangeValidator, zekAuthGuard };
6799
6906
  //# sourceMappingURL=zek.mjs.map