myrta-ui 17.1.2 → 17.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -68,14 +68,17 @@ export class GalleryItemComponent {
68
68
  }
69
69
  changeDescription(obj) {
70
70
  clearTimeout(this._timer);
71
- this._autoSaveStore.autosaveAddId(obj.id);
72
- this._autoSaveStore.autosaveStartFor(obj.id);
71
+ this._autoSaveStore.addId(obj.id);
72
+ this._autoSaveStore.startFor(obj.id);
73
73
  this._timer = setTimeout(() => {
74
- this._galleryService.update(this.updateEndPoint, this.preview.uuid, obj.value).subscribe(res => {
75
- this.updatePhoto.emit(res);
76
- this._autoSaveStore.autosaveSuccessFor(obj.id);
77
- }, () => {
78
- this._autoSaveStore.autosaveErrorFor(obj.id);
74
+ this._galleryService.update(this.updateEndPoint, this.preview.uuid, obj.value).subscribe({
75
+ next: (res) => {
76
+ this.updatePhoto.emit(res);
77
+ this._autoSaveStore.successFor(obj.id);
78
+ },
79
+ error: () => {
80
+ this._autoSaveStore.errorFor(obj.id);
81
+ }
79
82
  });
80
83
  }, 1500);
81
84
  }
@@ -109,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
109
112
  }], updatePhoto: [{
110
113
  type: Output
111
114
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9nYWxsZXJ5L2NvbXBvbmVudHMvZ2FsbGVyeS1pdGVtL2dhbGxlcnktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZ2FsbGVyeS9jb21wb25lbnRzL2dhbGxlcnktaXRlbS9nYWxsZXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHeEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFFeEcsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7QUFTbkUsTUFBTSxPQUFPLG9CQUFvQjtJQTJCckI7SUFDQTtJQTNCRixjQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBRXRDLFNBQVMsR0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLE1BQU0sQ0FBaUM7SUFFeEMsT0FBTyxDQUF1QjtJQUU1QixPQUFPLENBQW9CO0lBQzNCLEtBQUssQ0FBVTtJQUNmLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLGNBQWMsQ0FBVTtJQUN4QixjQUFjLENBQVU7SUFDeEIsWUFBWSxHQUEwQixFQUFFLENBQUM7SUFFbEQsSUFBd0IsWUFBWSxDQUFDLEtBQWM7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QUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUNoRCxDQUFDLEVBQUUsR0FBRyxFQUFFO2dCQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQzlDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQzt3R0FwRlUsb0JBQW9COzRGQUFwQixvQkFBb0Isd2FDZGpDLHF5SUEwREE7OzRGRDVDYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07OEdBV3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRWtCLFlBQVk7c0JBQW5DLEtBQUs7dUJBQUMsV0FBVztnQkFLUixnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgR2FsbGVyeUl0ZW1Nb2RlbCwgR2FsbGVyeVJvdGF0ZVNsaWRlcyB9IGZyb20gJy4uLy4uL21vZGVscy9nYWxsZXJ5LWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBHYWxsZXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dhbGxlcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IEdhbGxlcnlDb25maXJtTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9nYWxsZXJ5LWNvbmZpcm0tbW9kYWwvZ2FsbGVyeS1jb25maXJtLW1vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXV0b1NhdmVTdG9yZSwgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3NhdmUtc3RvcmUvbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LWdhbGxlcnktaXRlbScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dhbGxlcnktaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ2FsbGVyeS1pdGVtLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEdhbGxlcnlJdGVtQ29tcG9uZW50IHtcclxuICBwcml2YXRlIF9hdXRvU2F2ZVN0b3JlID0gaW5qZWN0KEF1dG9TYXZlU3RvcmUpXHJcblxyXG4gIHByaXZhdGUgdGltZVN0YW1wOiBudW1iZXIgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpO1xyXG4gIHByaXZhdGUgaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfdGltZXIhOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcclxuXHJcbiAgcHVibGljIGZpZWxkcyQhOiBPYnNlcnZhYmxlPEZpZWxkW10+O1xyXG5cclxuICBASW5wdXQoKSBwcmV2aWV3ITogR2FsbGVyeUl0ZW1Nb2RlbDtcclxuICBASW5wdXQoKSBpbmRleCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBpc0VkaXRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbk1heExlbmd0aCA9IDA7XHJcbiAgQElucHV0KCkgZGVsZXRlRW5kUG9pbnQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdXBkYXRlRW5kUG9pbnQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcm90YXRlU2xpZGVzOiBHYWxsZXJ5Um90YXRlU2xpZGVzW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCdpc0xvYWRpbmcnKSBzZXQgc2V0SXNMb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHZhbHVlO1xyXG4gICAgdGhpcy50aW1lU3RhbXAgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIG9wZW5HYWxsZXJ5TW9kYWw6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgQE91dHB1dCgpIGRlbGV0ZVBob3RvOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSB1cGRhdGVQaG90bzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9nYWxsZXJ5U2VydmljZTogR2FsbGVyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgZ2V0SW1hZ2VVcmwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnByZXZpZXcucHJldmlld1VybCArICc/JyArIHRoaXMudGltZVN0YW1wO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHlhbmRleENoZWNrVXJsKCkge1xyXG4gICAgcmV0dXJuIGBodHRwczovL3lhbmRleC5ydS9pbWFnZXMvc2VhcmNoP3NvdXJjZT1jb2xsZWN0aW9ucyZycHQ9aW1hZ2V2aWV3JnVybD0ke3RoaXMucHJldmlldy51cmx9YDtcclxuICB9XHJcblxyXG4gIGdldCBnb29nbGVDaGVja1VybCgpIHtcclxuICAgIHJldHVybiBgaHR0cHM6Ly9sZW5zLmdvb2dsZS5jb20vdXBsb2FkYnl1cmw/dXJsPSR7dGhpcy5wcmV2aWV3LnVybH1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzTG9hZGluZ0ltYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNMb2FkaW5nICYmICEhdGhpcy5yb3RhdGVTbGlkZXMuZmluZCgocykgPT4gcy5wcmV2aWV3SW1hZ2VJZCA9PT0gdGhpcy5wcmV2aWV3LnByZXZpZXdJbWFnZUlkKTtcclxuICB9XHJcblxyXG4gIGdldCBmaWVsZHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXV0b1NhdmVTdG9yZS5maWVsZHMoKVxyXG4gIH1cclxuXHJcbiAgb25PcGVuR2FsbGVyeU1vZGFsKCkge1xyXG4gICAgdGhpcy5vcGVuR2FsbGVyeU1vZGFsLmVtaXQodGhpcy5pbmRleCk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVJbWFnZSgpIHtcclxuICAgIHRoaXMuX21vZGFsU2VydmljZS5vcGVuKEdhbGxlcnlDb25maXJtTW9kYWxDb21wb25lbnQsIHtcclxuICAgICAgdGl0bGU6ICfQo9CU0JDQm9CV0J3QmNCVINCU0JDQndCd0KvQpScsXHJcbiAgICAgIG1lc3NhZ2U6ICfQktGLINGD0LLQtdGA0LXQvdGLLCDRh9GC0L4g0YXQvtGC0LjRgtC1INGD0LTQsNC70LjRgtGMINGE0LDQudC7PydcclxuICAgIH0pXHJcbiAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMucmVzdWx0KSB7XHJcbiAgICAgICAgICB0aGlzLl9nYWxsZXJ5U2VydmljZS5kZWxldGUodGhpcy5kZWxldGVFbmRQb2ludCwgdGhpcy5wcmV2aWV3LnV1aWQpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRlbGV0ZVBob3RvLmVtaXQocmVzKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VEZXNjcmlwdGlvbihvYmo6IGFueSkge1xyXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKTtcclxuXHJcbiAgICB0aGlzLl9hdXRvU2F2ZVN0b3JlLmF1dG9zYXZlQWRkSWQob2JqLmlkKVxyXG4gICAgdGhpcy5fYXV0b1NhdmVTdG9yZS5hdXRvc2F2ZVN0YXJ0Rm9yKG9iai5pZClcclxuXHJcbiAgICB0aGlzLl90aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9nYWxsZXJ5U2VydmljZS51cGRhdGUodGhpcy51cGRhdGVFbmRQb2ludCwgdGhpcy5wcmV2aWV3LnV1aWQsIG9iai52YWx1ZSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVQaG90by5lbWl0KHJlcyk7XHJcbiAgICAgICAgdGhpcy5fYXV0b1NhdmVTdG9yZS5hdXRvc2F2ZVN1Y2Nlc3NGb3Iob2JqLmlkKVxyXG4gICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fYXV0b1NhdmVTdG9yZS5hdXRvc2F2ZUVycm9yRm9yKG9iai5pZClcclxuICAgICAgfSk7XHJcbiAgICB9LCAxNTAwKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1cIj5cclxuICA8ZGl2IGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbV9fcHJldmlld1wiIChjbGljayk9XCJvbk9wZW5HYWxsZXJ5TW9kYWwoKVwiPlxyXG5cclxuICAgIDxpbWcgW3NyY109XCJnZXRJbWFnZVVybCgpXCIgW2FsdF09XCJwcmV2aWV3LmltYWdlTmFtZSB8fCAnaW1hZ2UnXCIgKm5nSWY9XCIhaXNMb2FkaW5nSW1hZ2U7IGVsc2Ugc2tlbGV0b25UZW1wbGF0ZVwiPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b25UZW1wbGF0ZT5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMCBoLTEwMFwiPlxyXG4gICAgICAgIDxtcngtbG9hZGVyIHNpemU9XCJtZWRpdW1cIiBjb2xvcj1cImJyYW5kXCI+PC9tcngtbG9hZGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1fX3ByZXZpZXctb3ZlcmxheVwiICpuZ0lmPVwiIWlzTG9hZGluZ0ltYWdlXCI+PC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1fX3ByZXZpZXctY29udHJvbHNcIiAqbmdJZj1cIiFpc0xvYWRpbmdJbWFnZVwiPlxyXG4gICAgICA8YSBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1fX3ByZXZpZXctY29udHJvbHMtLWljb25cIiBbaHJlZl09XCJ5YW5kZXhDaGVja1VybFwiIHRhcmdldD1cIl9ibGFua1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTIzNDZfMTIwNzYpXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC4wMDAzMSAxNS45ODM4QzEyLjQwOTYgMTUuOTgzOCAxNS45ODQgMTIuNDA5MyAxNS45ODQgOC4wMDAwNkMxNS45ODQgMy41OTA3OCAxMi40MDk2IDAuMDE2MzU3NCA4LjAwMDMxIDAuMDE2MzU3NEMzLjU5MTAzIDAuMDE2MzU3NCAwLjAxNjYwMTYgMy41OTA3OCAwLjAxNjYwMTYgOC4wMDAwNkMwLjAxNjYwMTYgMTIuNDA5MyAzLjU5MTAzIDE1Ljk4MzggOC4wMDAzMSAxNS45ODM4WlwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0xMC44ODkzIDEzLjAxMThIOS4xMzY3VjQuMzQzNjFIOC4zNTU5NkM2LjkyNDg0IDQuMzQzNjEgNi4xNzUyMSA1LjA1OTE2IDYuMTc1MjEgNi4xMjczMUM2LjE3NTIxIDcuMzM5MTYgNi42OTIyNSA3LjkwMDY1IDcuNzYxODggOC42MTYyTDguNjQzMzYgOS4yMTAyOEw2LjExMDAzIDEzLjAxMDNINC4yMjU1OUw2LjUwNTU5IDkuNjE3NjhDNS4xOTQ0NyA4LjY4MTM5IDQuNDU2NyA3Ljc2NzMxIDQuNDU2NyA2LjIyNTA5QzQuNDU2NyA0LjI5NzY4IDUuODAwNCAyLjk4NjU3IDguMzQ0MSAyLjk4NjU3SDEwLjg3NzRWMTMuMDA4OEgxMC44ODkzVjEzLjAxMThaXCIgZmlsbD1cIiNGQzNGMURcIi8+XHJcbiAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTIzNDZfMTIwNzZcIj5cclxuICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvYT5cclxuXHJcbiAgICAgIDxhIGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbV9fcHJldmlldy1jb250cm9scy0taWNvblwiIFtocmVmXT1cImdvb2dsZUNoZWNrVXJsXCIgdGFyZ2V0PVwiX2JsYW5rXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgPHBhdGggZD1cIk0xMS41NTYxIDQuODkwMUgxMS4wOTk3VjQuODY2NTlINS45OTk2N1Y3LjEzMzI1SDkuMjAyMTlDOC43MzQ5NyA4LjQ1MjczIDcuNDc5NTIgOS4zOTk5MiA1Ljk5OTY3IDkuMzk5OTJDNC4xMjIwMiA5LjM5OTkyIDIuNTk5NjcgNy44Nzc1NyAyLjU5OTY3IDUuOTk5OTJDMi41OTk2NyA0LjEyMjI3IDQuMTIyMDIgMi41OTk5MiA1Ljk5OTY3IDIuNTk5OTJDNi44NjYzOSAyLjU5OTkyIDcuNjU0OTEgMi45MjY4OSA4LjI1NTI5IDMuNDYwOTdMOS44NTgxMSAxLjg1ODE1QzguODQ2MDQgMC45MTQ5MzUgNy40OTIyNyAwLjMzMzI1MiA1Ljk5OTY3IDAuMzMzMjUyQzIuODcwMjYgMC4zMzMyNTIgMC4zMzMwMDggMi44NzA1IDAuMzMzMDA4IDUuOTk5OTJDMC4zMzMwMDggOS4xMjkzNCAyLjg3MDI2IDExLjY2NjYgNS45OTk2NyAxMS42NjY2QzkuMTI5MDkgMTEuNjY2NiAxMS42NjYzIDkuMTI5MzQgMTEuNjY2MyA1Ljk5OTkyQzExLjY2NjMgNS42MTk5NyAxMS42MjcyIDUuMjQ5MDkgMTEuNTU2MSA0Ljg5MDFaXCIgZmlsbD1cIiNGQkMwMkRcIi8+XHJcbiAgICAgICAgICA8cGF0aCBkPVwiTTAuOTg3MzA1IDMuMzYyMzdMMi44NDkwOSA0LjcyNzc1QzMuMzUyODUgMy40ODA1MiA0LjU3Mjg5IDIuNTk5OTIgNi4wMDA2IDIuNTk5OTJDNi44NjczMiAyLjU5OTkyIDcuNjU1ODQgMi45MjY4OSA4LjI1NjIyIDMuNDYwOTdMOS44NTkwNCAxLjg1ODE1QzguODQ2OTcgMC45MTQ5MzUgNy40OTMyIDAuMzMzMjUyIDYuMDAwNiAwLjMzMzI1MkMzLjgyNDA0IDAuMzMzMjUyIDEuOTM2NDcgMS41NjIwNyAwLjk4NzMwNSAzLjM2MjM3WlwiIGZpbGw9XCIjRTUzOTM1XCIvPlxyXG4gICAgICAgICAgPHBhdGggZD1cIk02LjAwMDggMTEuNjY2NUM3LjQ2NDUgMTEuNjY2NSA4Ljc5NDQ3IDExLjEwNjMgOS44MDAwMiAxMC4xOTU0TDguMDQ2MTkgOC43MTEzQzcuNDc3MjUgOS4xNDIyNSA2Ljc3MDA1IDkuMzk5OCA2LjAwMDggOS4zOTk4QzQuNTI2OSA5LjM5OTggMy4yNzU0MiA4LjQ1OTk5IDIuODAzOTUgNy4xNDg0NEwwLjk1NjA1NSA4LjU3MjE5QzEuODkzODkgMTAuNDA3MyAzLjc5ODQ1IDExLjY2NjUgNi4wMDA4IDExLjY2NjVaXCIgZmlsbD1cIiM0Q0FGNTBcIi8+XHJcbiAgICAgICAgICA8cGF0aCBkPVwiTTExLjU1NjQgNC44ODk5N0wxMS41NTE5IDQuODY2NDZIMTEuMUg2VjcuMTMzMTJIOS4yMDI1MkM4Ljk3ODEyIDcuNzY2OTQgOC41NzA0IDguMzEzNDkgOC4wNDQ1MyA4LjcxMTU3QzguMDQ0ODIgOC43MTEyOSA4LjA0NTEgOC43MTEyOSA4LjA0NTM4IDguNzExMDFMOS43OTkyMiAxMC4xOTUxQzkuNjc1MTIgMTAuMzA3OSAxMS42NjY3IDguODMzMTIgMTEuNjY2NyA1Ljk5OTc5QzExLjY2NjcgNS42MTk4NCAxMS42Mjc2IDUuMjQ4OTYgMTEuNTU2NCA0Ljg4OTk3WlwiIGZpbGw9XCIjMTU2NUMwXCIvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L2E+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbV9fcHJldmlldy1jb250cm9sc19fYnV0dG9uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiICpuZ0lmPVwiaXNFZGl0aW5nXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1kZWxldGUgaWNvbi1mb250LTE2IHRleHQtYm9sZFwiIChjbGljayk9XCJkZWxldGVJbWFnZSgpXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtZ2FsbGVyeS1pdGVtX19kZXNjcmlwdGlvblwiPlxyXG4gICAgPG1yeC1pbnB1dC10ZXh0YXJlYVxyXG4gICAgICAqbmdJZj1cImlzRWRpdGluZzsgZWxzZSB0ZXh0VGVtcGxhdGVcIlxyXG4gICAgICBbZmllbGRzXT1cImZpZWxkc1wiXHJcbiAgICAgIFtuZ01vZGVsXT1cInByZXZpZXcuZGVzY3JpcHRpb25cIlxyXG4gICAgICBbYXV0b3NpemVdPVwiZmFsc2VcIlxyXG4gICAgICBbcm93c109XCIyXCJcclxuICAgICAgW21heGxlbmd0aF09XCJkZXNjcmlwdGlvbk1heExlbmd0aFwiXHJcbiAgICAgIChtb2RlbENoYW5nZSk9XCJjaGFuZ2VEZXNjcmlwdGlvbigkZXZlbnQpXCJcclxuICAgID48L21yeC1pbnB1dC10ZXh0YXJlYT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI3RleHRUZW1wbGF0ZT5cclxuICAgICAge3sgcHJldmlldy5kZXNjcmlwdGlvbiB9fVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9nYWxsZXJ5L2NvbXBvbmVudHMvZ2FsbGVyeS1pdGVtL2dhbGxlcnktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZ2FsbGVyeS9jb21wb25lbnRzL2dhbGxlcnktaXRlbS9nYWxsZXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHeEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFFeEcsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7QUFTbkUsTUFBTSxPQUFPLG9CQUFvQjtJQTJCckI7SUFDQTtJQTNCRixjQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBRXRDLFNBQVMsR0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLE1BQU0sQ0FBaUM7SUFFeEMsT0FBTyxDQUF1QjtJQUU1QixPQUFPLENBQW9CO0lBQzNCLEtBQUssQ0FBVTtJQUNmLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLGNBQWMsQ0FBVTtJQUN4QixjQUFjLENBQVU7SUFDeEIsWUFBWSxHQUEwQixFQUFFLENBQUM7SUFFbEQsSUFBd0IsWUFBWSxDQUFDLEtBQWM7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Q0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUN4QyxDQUFDO2dCQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7b0JBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUN0QyxDQUFDO2FBQ0YsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQzt3R0F2RlUsb0JBQW9COzRGQUFwQixvQkFBb0Isd2FDZGpDLHF5SUEwREE7OzRGRDVDYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07OEdBV3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRWtCLFlBQVk7c0JBQW5DLEtBQUs7dUJBQUMsV0FBVztnQkFLUixnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgR2FsbGVyeUl0ZW1Nb2RlbCwgR2FsbGVyeVJvdGF0ZVNsaWRlcyB9IGZyb20gJy4uLy4uL21vZGVscy9nYWxsZXJ5LWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBHYWxsZXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dhbGxlcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IEdhbGxlcnlDb25maXJtTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9nYWxsZXJ5LWNvbmZpcm0tbW9kYWwvZ2FsbGVyeS1jb25maXJtLW1vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXV0b1NhdmVTdG9yZSwgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3NhdmUtc3RvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtZ2FsbGVyeS1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2FsbGVyeS1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9nYWxsZXJ5LWl0ZW0uY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2FsbGVyeUl0ZW1Db21wb25lbnQge1xyXG4gIHByaXZhdGUgX2F1dG9TYXZlU3RvcmUgPSBpbmplY3QoQXV0b1NhdmVTdG9yZSlcclxuXHJcbiAgcHJpdmF0ZSB0aW1lU3RhbXA6IG51bWJlciA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XHJcbiAgcHJpdmF0ZSBpc0xvYWRpbmcgPSBmYWxzZTtcclxuICBwcml2YXRlIF90aW1lciE6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xyXG5cclxuICBwdWJsaWMgZmllbGRzJCE6IE9ic2VydmFibGU8RmllbGRbXT47XHJcblxyXG4gIEBJbnB1dCgpIHByZXZpZXchOiBHYWxsZXJ5SXRlbU1vZGVsO1xyXG4gIEBJbnB1dCgpIGluZGV4ITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGlzRWRpdGluZyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uTWF4TGVuZ3RoID0gMDtcclxuICBASW5wdXQoKSBkZWxldGVFbmRQb2ludCE6IHN0cmluZztcclxuICBASW5wdXQoKSB1cGRhdGVFbmRQb2ludCE6IHN0cmluZztcclxuICBASW5wdXQoKSByb3RhdGVTbGlkZXM6IEdhbGxlcnlSb3RhdGVTbGlkZXNbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoJ2lzTG9hZGluZycpIHNldCBzZXRJc0xvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdmFsdWU7XHJcbiAgICB0aGlzLnRpbWVTdGFtcCA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgb3BlbkdhbGxlcnlNb2RhbDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBAT3V0cHV0KCkgZGVsZXRlUGhvdG86IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHVwZGF0ZVBob3RvOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2dhbGxlcnlTZXJ2aWNlOiBHYWxsZXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgX21vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBnZXRJbWFnZVVybCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucHJldmlldy5wcmV2aWV3VXJsICsgJz8nICsgdGhpcy50aW1lU3RhbXA7XHJcbiAgfVxyXG5cclxuICBnZXQgeWFuZGV4Q2hlY2tVcmwoKSB7XHJcbiAgICByZXR1cm4gYGh0dHBzOi8veWFuZGV4LnJ1L2ltYWdlcy9zZWFyY2g/c291cmNlPWNvbGxlY3Rpb25zJnJwdD1pbWFnZXZpZXcmdXJsPSR7dGhpcy5wcmV2aWV3LnVybH1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdvb2dsZUNoZWNrVXJsKCkge1xyXG4gICAgcmV0dXJuIGBodHRwczovL2xlbnMuZ29vZ2xlLmNvbS91cGxvYWRieXVybD91cmw9JHt0aGlzLnByZXZpZXcudXJsfWA7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNMb2FkaW5nSW1hZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0xvYWRpbmcgJiYgISF0aGlzLnJvdGF0ZVNsaWRlcy5maW5kKChzKSA9PiBzLnByZXZpZXdJbWFnZUlkID09PSB0aGlzLnByZXZpZXcucHJldmlld0ltYWdlSWQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpZWxkcygpIHtcclxuICAgIHJldHVybiB0aGlzLl9hdXRvU2F2ZVN0b3JlLmZpZWxkcygpXHJcbiAgfVxyXG5cclxuICBvbk9wZW5HYWxsZXJ5TW9kYWwoKSB7XHJcbiAgICB0aGlzLm9wZW5HYWxsZXJ5TW9kYWwuZW1pdCh0aGlzLmluZGV4KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUltYWdlKCkge1xyXG4gICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm9wZW4oR2FsbGVyeUNvbmZpcm1Nb2RhbENvbXBvbmVudCwge1xyXG4gICAgICB0aXRsZTogJ9Cj0JTQkNCb0JXQndCY0JUg0JTQkNCd0J3Qq9ClJyxcclxuICAgICAgbWVzc2FnZTogJ9CS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Ywg0YTQsNC50Ls/J1xyXG4gICAgfSlcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5yZXN1bHQpIHtcclxuICAgICAgICAgIHRoaXMuX2dhbGxlcnlTZXJ2aWNlLmRlbGV0ZSh0aGlzLmRlbGV0ZUVuZFBvaW50LCB0aGlzLnByZXZpZXcudXVpZCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlUGhvdG8uZW1pdChyZXMpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNoYW5nZURlc2NyaXB0aW9uKG9iajogYW55KSB7XHJcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpO1xyXG5cclxuICAgIHRoaXMuX2F1dG9TYXZlU3RvcmUuYWRkSWQob2JqLmlkKVxyXG4gICAgdGhpcy5fYXV0b1NhdmVTdG9yZS5zdGFydEZvcihvYmouaWQpXHJcblxyXG4gICAgdGhpcy5fdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fZ2FsbGVyeVNlcnZpY2UudXBkYXRlKHRoaXMudXBkYXRlRW5kUG9pbnQsIHRoaXMucHJldmlldy51dWlkLCBvYmoudmFsdWUpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVQaG90by5lbWl0KHJlcyk7XHJcbiAgICAgICAgICB0aGlzLl9hdXRvU2F2ZVN0b3JlLnN1Y2Nlc3NGb3Iob2JqLmlkKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX2F1dG9TYXZlU3RvcmUuZXJyb3JGb3Iob2JqLmlkKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0sIDE1MDApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtZ2FsbGVyeS1pdGVtX19wcmV2aWV3XCIgKGNsaWNrKT1cIm9uT3BlbkdhbGxlcnlNb2RhbCgpXCI+XHJcblxyXG4gICAgPGltZyBbc3JjXT1cImdldEltYWdlVXJsKClcIiBbYWx0XT1cInByZXZpZXcuaW1hZ2VOYW1lIHx8ICdpbWFnZSdcIiAqbmdJZj1cIiFpc0xvYWRpbmdJbWFnZTsgZWxzZSBza2VsZXRvblRlbXBsYXRlXCI+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNza2VsZXRvblRlbXBsYXRlPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHctMTAwIGgtMTAwXCI+XHJcbiAgICAgICAgPG1yeC1sb2FkZXIgc2l6ZT1cIm1lZGl1bVwiIGNvbG9yPVwiYnJhbmRcIj48L21yeC1sb2FkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbV9fcHJldmlldy1vdmVybGF5XCIgKm5nSWY9XCIhaXNMb2FkaW5nSW1hZ2VcIj48L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbV9fcHJldmlldy1jb250cm9sc1wiICpuZ0lmPVwiIWlzTG9hZGluZ0ltYWdlXCI+XHJcbiAgICAgIDxhIGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbV9fcHJldmlldy1jb250cm9scy0taWNvblwiIFtocmVmXT1cInlhbmRleENoZWNrVXJsXCIgdGFyZ2V0PVwiX2JsYW5rXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMjM0Nl8xMjA3NilcIj5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk04LjAwMDMxIDE1Ljk4MzhDMTIuNDA5NiAxNS45ODM4IDE1Ljk4NCAxMi40MDkzIDE1Ljk4NCA4LjAwMDA2QzE1Ljk4NCAzLjU5MDc4IDEyLjQwOTYgMC4wMTYzNTc0IDguMDAwMzEgMC4wMTYzNTc0QzMuNTkxMDMgMC4wMTYzNTc0IDAuMDE2NjAxNiAzLjU5MDc4IDAuMDE2NjAxNiA4LjAwMDA2QzAuMDE2NjAxNiAxMi40MDkzIDMuNTkxMDMgMTUuOTgzOCA4LjAwMDMxIDE1Ljk4MzhaXCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjg4OTMgMTMuMDExOEg5LjEzNjdWNC4zNDM2MUg4LjM1NTk2QzYuOTI0ODQgNC4zNDM2MSA2LjE3NTIxIDUuMDU5MTYgNi4xNzUyMSA2LjEyNzMxQzYuMTc1MjEgNy4zMzkxNiA2LjY5MjI1IDcuOTAwNjUgNy43NjE4OCA4LjYxNjJMOC42NDMzNiA5LjIxMDI4TDYuMTEwMDMgMTMuMDEwM0g0LjIyNTU5TDYuNTA1NTkgOS42MTc2OEM1LjE5NDQ3IDguNjgxMzkgNC40NTY3IDcuNzY3MzEgNC40NTY3IDYuMjI1MDlDNC40NTY3IDQuMjk3NjggNS44MDA0IDIuOTg2NTcgOC4zNDQxIDIuOTg2NTdIMTAuODc3NFYxMy4wMDg4SDEwLjg4OTNWMTMuMDExOFpcIiBmaWxsPVwiI0ZDM0YxRFwiLz5cclxuICAgICAgICAgIDwvZz5cclxuICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMjM0Nl8xMjA3NlwiPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgPC9hPlxyXG5cclxuICAgICAgPGEgY2xhc3M9XCJtcngtZ2FsbGVyeS1pdGVtX19wcmV2aWV3LWNvbnRyb2xzLS1pY29uXCIgW2hyZWZdPVwiZ29vZ2xlQ2hlY2tVcmxcIiB0YXJnZXQ9XCJfYmxhbmtcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICA8cGF0aCBkPVwiTTExLjU1NjEgNC44OTAxSDExLjA5OTdWNC44NjY1OUg1Ljk5OTY3VjcuMTMzMjVIOS4yMDIxOUM4LjczNDk3IDguNDUyNzMgNy40Nzk1MiA5LjM5OTkyIDUuOTk5NjcgOS4zOTk5MkM0LjEyMjAyIDkuMzk5OTIgMi41OTk2NyA3Ljg3NzU3IDIuNTk5NjcgNS45OTk5MkMyLjU5OTY3IDQuMTIyMjcgNC4xMjIwMiAyLjU5OTkyIDUuOTk5NjcgMi41OTk5MkM2Ljg2NjM5IDIuNTk5OTIgNy42NTQ5MSAyLjkyNjg5IDguMjU1MjkgMy40NjA5N0w5Ljg1ODExIDEuODU4MTVDOC44NDYwNCAwLjkxNDkzNSA3LjQ5MjI3IDAuMzMzMjUyIDUuOTk5NjcgMC4zMzMyNTJDMi44NzAyNiAwLjMzMzI1MiAwLjMzMzAwOCAyLjg3MDUgMC4zMzMwMDggNS45OTk5MkMwLjMzMzAwOCA5LjEyOTM0IDIuODcwMjYgMTEuNjY2NiA1Ljk5OTY3IDExLjY2NjZDOS4xMjkwOSAxMS42NjY2IDExLjY2NjMgOS4xMjkzNCAxMS42NjYzIDUuOTk5OTJDMTEuNjY2MyA1LjYxOTk3IDExLjYyNzIgNS4yNDkwOSAxMS41NTYxIDQuODkwMVpcIiBmaWxsPVwiI0ZCQzAyRFwiLz5cclxuICAgICAgICAgIDxwYXRoIGQ9XCJNMC45ODczMDUgMy4zNjIzN0wyLjg0OTA5IDQuNzI3NzVDMy4zNTI4NSAzLjQ4MDUyIDQuNTcyODkgMi41OTk5MiA2LjAwMDYgMi41OTk5MkM2Ljg2NzMyIDIuNTk5OTIgNy42NTU4NCAyLjkyNjg5IDguMjU2MjIgMy40NjA5N0w5Ljg1OTA0IDEuODU4MTVDOC44NDY5NyAwLjkxNDkzNSA3LjQ5MzIgMC4zMzMyNTIgNi4wMDA2IDAuMzMzMjUyQzMuODI0MDQgMC4zMzMyNTIgMS45MzY0NyAxLjU2MjA3IDAuOTg3MzA1IDMuMzYyMzdaXCIgZmlsbD1cIiNFNTM5MzVcIi8+XHJcbiAgICAgICAgICA8cGF0aCBkPVwiTTYuMDAwOCAxMS42NjY1QzcuNDY0NSAxMS42NjY1IDguNzk0NDcgMTEuMTA2MyA5LjgwMDAyIDEwLjE5NTRMOC4wNDYxOSA4LjcxMTNDNy40NzcyNSA5LjE0MjI1IDYuNzcwMDUgOS4zOTk4IDYuMDAwOCA5LjM5OThDNC41MjY5IDkuMzk5OCAzLjI3NTQyIDguNDU5OTkgMi44MDM5NSA3LjE0ODQ0TDAuOTU2MDU1IDguNTcyMTlDMS44OTM4OSAxMC40MDczIDMuNzk4NDUgMTEuNjY2NSA2LjAwMDggMTEuNjY2NVpcIiBmaWxsPVwiIzRDQUY1MFwiLz5cclxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTEuNTU2NCA0Ljg4OTk3TDExLjU1MTkgNC44NjY0NkgxMS4xSDZWNy4xMzMxMkg5LjIwMjUyQzguOTc4MTIgNy43NjY5NCA4LjU3MDQgOC4zMTM0OSA4LjA0NDUzIDguNzExNTdDOC4wNDQ4MiA4LjcxMTI5IDguMDQ1MSA4LjcxMTI5IDguMDQ1MzggOC43MTEwMUw5Ljc5OTIyIDEwLjE5NTFDOS42NzUxMiAxMC4zMDc5IDExLjY2NjcgOC44MzMxMiAxMS42NjY3IDUuOTk5NzlDMTEuNjY2NyA1LjYxOTg0IDExLjYyNzYgNS4yNDg5NiAxMS41NTY0IDQuODg5OTdaXCIgZmlsbD1cIiMxNTY1QzBcIi8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvYT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtcngtZ2FsbGVyeS1pdGVtX19wcmV2aWV3LWNvbnRyb2xzX19idXR0b24gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgKm5nSWY9XCJpc0VkaXRpbmdcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWRlbGV0ZSBpY29uLWZvbnQtMTYgdGV4dC1ib2xkXCIgKGNsaWNrKT1cImRlbGV0ZUltYWdlKClcIj48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1fX2Rlc2NyaXB0aW9uXCI+XHJcbiAgICA8bXJ4LWlucHV0LXRleHRhcmVhXHJcbiAgICAgICpuZ0lmPVwiaXNFZGl0aW5nOyBlbHNlIHRleHRUZW1wbGF0ZVwiXHJcbiAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICAgICAgW25nTW9kZWxdPVwicHJldmlldy5kZXNjcmlwdGlvblwiXHJcbiAgICAgIFthdXRvc2l6ZV09XCJmYWxzZVwiXHJcbiAgICAgIFtyb3dzXT1cIjJcIlxyXG4gICAgICBbbWF4bGVuZ3RoXT1cImRlc2NyaXB0aW9uTWF4TGVuZ3RoXCJcclxuICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZURlc2NyaXB0aW9uKCRldmVudClcIlxyXG4gICAgPjwvbXJ4LWlucHV0LXRleHRhcmVhPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjdGV4dFRlbXBsYXRlPlxyXG4gICAgICB7eyBwcmV2aWV3LmRlc2NyaXB0aW9uIH19XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -2,60 +2,16 @@ import { Injectable, signal, computed } from '@angular/core';
2
2
  import { timer } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
4
  export class AutoSaveStore {
5
- // Основной сигнал для состояния
6
5
  state = signal({ fields: [] });
7
- // Хранилище подписок для каждого поля
8
6
  subscriptions = {};
9
- // Публичные computed сигналы для доступа к данным
10
7
  fields = computed(() => this.state().fields);
11
- // Получить поле по id
12
8
  getField(id) {
13
9
  return computed(() => this.state().fields.find(field => field.id === id));
14
10
  }
15
- // Добавить или обновить поле
16
- upsertField(field) {
17
- this.state.update(current => {
18
- const exists = current.fields.some(f => f.id === field.id);
19
- if (exists) {
20
- return {
21
- fields: current.fields.map(f => f.id === field.id ? { ...f, ...field } : f)
22
- };
23
- }
24
- return {
25
- fields: [...current.fields, field]
26
- };
27
- });
28
- }
29
- // Удалить поле
30
- removeField(id) {
31
- this.state.update(current => ({
32
- fields: current.fields.filter(field => field.id !== id)
33
- }));
34
- }
35
- // Очистить все поля
36
- clear() {
37
- this.state.set({ fields: [] });
38
- }
39
- // Очистить подписку для поля
40
- clearSubscription(id) {
41
- if (this.subscriptions[id]) {
42
- this.subscriptions[id].unsubscribe();
43
- delete this.subscriptions[id];
44
- }
45
- }
46
- // Очистить все подписки
47
- clearAllSubscriptions() {
48
- Object.keys(this.subscriptions).forEach(key => {
49
- this.subscriptions[key].unsubscribe();
50
- delete this.subscriptions[key];
51
- });
52
- }
53
- // Добавить id в массив fields
54
- autosaveAddId(id, groupId) {
11
+ addId(id, groupId) {
55
12
  this.upsertField({ id, state: 'stopped', groupId });
56
13
  }
57
- // Запустить сохранение для всех полей
58
- autosaveStart() {
14
+ start() {
59
15
  this.clearAllSubscriptions();
60
16
  this.state.update(current => ({
61
17
  fields: current.fields.map(field => ({
@@ -64,8 +20,7 @@ export class AutoSaveStore {
64
20
  }))
65
21
  }));
66
22
  }
67
- // Запустить сохранение для определенного id
68
- autosaveStartFor(id) {
23
+ startFor(id) {
69
24
  this.clearSubscription(id);
70
25
  this.state.update(current => ({
71
26
  fields: current.fields.map(field => field.id === id
@@ -73,57 +28,87 @@ export class AutoSaveStore {
73
28
  : field)
74
29
  }));
75
30
  }
76
- // Остановить сохранение для всех полей и очистить массив
77
- autosaveStop() {
31
+ stop() {
78
32
  this.clearAllSubscriptions();
79
33
  this.clear();
80
34
  }
81
- // Остановить сохранение для определенного id и удалить его
82
- autosaveStopFor(id) {
35
+ stopFor(id) {
83
36
  this.clearSubscription(id);
84
37
  this.removeField(id);
85
38
  }
86
- // Успешное сохранение для всех полей
87
- autosaveSuccess() {
39
+ success() {
88
40
  this.clearAllSubscriptions();
89
41
  this.state.update(current => ({
90
42
  fields: current.fields.map(field => ({
91
43
  ...field, state: 'saved'
92
44
  }))
93
45
  }));
94
- // Создаем подписку для каждого поля
95
46
  this.state().fields.forEach(field => {
96
- this.subscriptions[field.id] = timer(3000).subscribe(() => this.autosaveStop());
47
+ this.subscriptions[field.id] = timer(3000).subscribe(() => this.stop());
97
48
  });
98
49
  }
99
- // Успешное сохранение для определенного id
100
- autosaveSuccessFor(id) {
50
+ successFor(id) {
101
51
  this.clearSubscription(id);
102
52
  this.state.update(current => ({
103
53
  fields: current.fields.map(field => field.id === id ? { ...field, state: 'saved' } : field)
104
54
  }));
105
- this.subscriptions[id] = timer(3000).subscribe(() => this.autosaveStopFor(id));
55
+ this.subscriptions[id] = timer(3000).subscribe(() => this.stopFor(id));
106
56
  }
107
- // Ошибка сохранения для всех полей
108
- autosaveError() {
57
+ error() {
109
58
  this.clearAllSubscriptions();
110
59
  this.state.update(current => ({
111
60
  fields: current.fields.map(field => ({
112
61
  ...field, state: 'error'
113
62
  }))
114
63
  }));
115
- // Создаем подписку для каждого поля
116
64
  this.state().fields.forEach(field => {
117
- this.subscriptions[field.id] = timer(3000).subscribe(() => this.autosaveStop());
65
+ this.subscriptions[field.id] = timer(3000).subscribe(() => this.stop());
118
66
  });
119
67
  }
120
- // Ошибка сохранения для определенного id
121
- autosaveErrorFor(id) {
68
+ errorFor(id) {
122
69
  this.clearSubscription(id);
123
70
  this.state.update(current => ({
124
71
  fields: current.fields.map(field => field.id === id ? { ...field, state: 'error' } : field)
125
72
  }));
126
- this.subscriptions[id] = timer(3000).subscribe(() => this.autosaveStopFor(id));
73
+ this.subscriptions[id] = timer(3000).subscribe(() => this.stopFor(id));
74
+ }
75
+ // Добавить или обновить поле
76
+ upsertField(field) {
77
+ this.state.update(current => {
78
+ const exists = current.fields.some(f => f.id === field.id);
79
+ if (exists) {
80
+ return {
81
+ fields: current.fields.map(f => f.id === field.id ? { ...f, ...field } : f)
82
+ };
83
+ }
84
+ return {
85
+ fields: [...current.fields, field]
86
+ };
87
+ });
88
+ }
89
+ // Удалить поле
90
+ removeField(id) {
91
+ this.state.update(current => ({
92
+ fields: current.fields.filter(field => field.id !== id)
93
+ }));
94
+ }
95
+ // Очистить все поля
96
+ clear() {
97
+ this.state.set({ fields: [] });
98
+ }
99
+ // Очистить подписку для поля
100
+ clearSubscription(id) {
101
+ if (this.subscriptions[id]) {
102
+ this.subscriptions[id].unsubscribe();
103
+ delete this.subscriptions[id];
104
+ }
105
+ }
106
+ // Очистить все подписки
107
+ clearAllSubscriptions() {
108
+ Object.keys(this.subscriptions).forEach(key => {
109
+ this.subscriptions[key].unsubscribe();
110
+ delete this.subscriptions[key];
111
+ });
127
112
  }
128
113
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AutoSaveStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
129
114
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AutoSaveStore, providedIn: 'root' });
@@ -132,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
132
117
  type: Injectable,
133
118
  args: [{ providedIn: 'root' }]
134
119
  }] });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1zYXZlLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9zZXJ2aWNlcy9zYXZlLXN0b3JlL2F1dG8tc2F2ZS5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLEtBQUssRUFBZ0IsTUFBTSxNQUFNLENBQUM7O0FBUTNDLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLGdDQUFnQztJQUNmLEtBQUssR0FBRyxNQUFNLENBQW1CLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbEUsc0NBQXNDO0lBQ3JCLGFBQWEsR0FBb0MsRUFBRSxDQUFDO0lBRXJFLGtEQUFrRDtJQUN6QyxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV0RCxzQkFBc0I7SUFDdEIsUUFBUSxDQUFDLEVBQVU7UUFDakIsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELDZCQUE2QjtJQUNyQixXQUFXLENBQUMsS0FBWTtRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRTNE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QUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNsRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsZ0JBQWdCLENBQUMsRUFBVTtRQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUNqQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDdEQ7U0FDRixDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQzt3R0FwSlUsYUFBYTs0R0FBYixhQUFhLGNBREEsTUFBTTs7NEZBQ25CLGFBQWE7a0JBRHpCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0aW1lciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNcnhBdXRvU2F2ZVN0YXRlIHtcclxuICBmaWVsZHM6IEZpZWxkW107XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBBdXRvU2F2ZVN0b3JlIHtcclxuICAvLyDQntGB0L3QvtCy0L3QvtC5INGB0LjQs9C90LDQuyDQtNC70Y8g0YHQvtGB0YLQvtGP0L3QuNGPXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZSA9IHNpZ25hbDxNcnhBdXRvU2F2ZVN0YXRlPih7IGZpZWxkczogW10gfSk7XHJcblxyXG4gIC8vINCl0YDQsNC90LjQu9C40YnQtSDQv9C+0LTQv9C40YHQvtC6INC00LvRjyDQutCw0LbQtNC+0LPQviDQv9C+0LvRj1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9uczogeyBba2V5OiBzdHJpbmddOiBTdWJzY3JpcHRpb24gfSA9IHt9O1xyXG5cclxuICAvLyDQn9GD0LHQu9C40YfQvdGL0LUgY29tcHV0ZWQg0YHQuNCz0L3QsNC70Ysg0LTQu9GPINC00L7RgdGC0YPQv9CwINC6INC00LDQvdC90YvQvFxyXG4gIHJlYWRvbmx5IGZpZWxkcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3RhdGUoKS5maWVsZHMpO1xyXG5cclxuICAvLyDQn9C+0LvRg9GH0LjRgtGMINC/0L7Qu9C1INC/0L4gaWRcclxuICBnZXRGaWVsZChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4gdGhpcy5zdGF0ZSgpLmZpZWxkcy5maW5kKGZpZWxkID0+IGZpZWxkLmlkID09PSBpZCkpO1xyXG4gIH1cclxuXHJcbiAgLy8g0JTQvtCx0LDQstC40YLRjCDQuNC70Lgg0L7QsdC90L7QstC40YLRjCDQv9C+0LvQtVxyXG4gIHByaXZhdGUgdXBzZXJ0RmllbGQoZmllbGQ6IEZpZWxkKSB7XHJcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZShjdXJyZW50ID0+IHtcclxuICAgICAgY29uc3QgZXhpc3RzID0gY3VycmVudC5maWVsZHMuc29tZShmID0+IGYuaWQgPT09IGZpZWxkLmlkKTtcclxuXHJcbiAgICAgIGlmIChleGlzdHMpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgZmllbGRzOiBjdXJyZW50LmZpZWxkcy5tYXAoZiA9PiBmLmlkID09PSBmaWVsZC5pZCA/IHsgLi4uZiwgLi4uZmllbGQgfSA6IGYpXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmaWVsZHM6IFsuLi5jdXJyZW50LmZpZWxkcywgZmllbGRdXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vINCj0LTQsNC70LjRgtGMINC/0L7Qu9C1XHJcbiAgcHJpdmF0ZSByZW1vdmVGaWVsZChpZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZShjdXJyZW50ID0+ICh7XHJcbiAgICAgIGZpZWxkczogY3VycmVudC5maWVsZHMuZmlsdGVyKGZpZWxkID0+IGZpZWxkLmlkICE9PSBpZClcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8vINCe0YfQuNGB0YLQuNGC0Ywg0LLRgdC1INC/0L7Qu9GPXHJcbiAgcHJpdmF0ZSBjbGVhcigpIHtcclxuICAgIHRoaXMuc3RhdGUuc2V0KHsgZmllbGRzOiBbXSB9KTtcclxuICB9XHJcblxyXG4gIC8vINCe0YfQuNGB0YLQuNGC0Ywg0L/QvtC00L/QuNGB0LrRgyDQtNC70Y8g0L/QvtC70Y9cclxuICBwcml2YXRlIGNsZWFyU3Vic2NyaXB0aW9uKGlkOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnNbaWRdKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1tpZF0udW5zdWJzY3JpYmUoKTtcclxuICAgICAgZGVsZXRlIHRoaXMuc3Vic2NyaXB0aW9uc1tpZF07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyDQntGH0LjRgdGC0LjRgtGMINCy0YHQtSDQv9C+0LTQv9C40YHQutC4XHJcbiAgcHJpdmF0ZSBjbGVhckFsbFN1YnNjcmlwdGlvbnMoKSB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLnN1YnNjcmlwdGlvbnMpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2tleV0udW5zdWJzY3JpYmUoKTtcclxuICAgICAgZGVsZXRlIHRoaXMuc3Vic2NyaXB0aW9uc1trZXldO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyDQlNC+0LHQsNCy0LjRgtGMIGlkINCyINC80LDRgdGB0LjQsiBmaWVsZHNcclxuICBhdXRvc2F2ZUFkZElkKGlkOiBzdHJpbmcsIGdyb3VwSWQ/OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICB0aGlzLnVwc2VydEZpZWxkKHsgaWQsIHN0YXRlOiAnc3RvcHBlZCcsIGdyb3VwSWQgfSk7XHJcbiAgfVxyXG5cclxuICAvLyDQl9Cw0L/Rg9GB0YLQuNGC0Ywg0YHQvtGF0YDQsNC90LXQvdC40LUg0LTQu9GPINCy0YHQtdGFINC/0L7Qu9C10LlcclxuICBhdXRvc2F2ZVN0YXJ0KCkge1xyXG4gICAgdGhpcy5jbGVhckFsbFN1YnNjcmlwdGlvbnMoKTtcclxuICAgIHRoaXMuc3RhdGUudXBkYXRlKGN1cnJlbnQgPT4gKHtcclxuICAgICAgZmllbGRzOiBjdXJyZW50LmZpZWxkcy5tYXAoZmllbGQgPT4gKHtcclxuICAgICAgICAuLi5maWVsZCxcclxuICAgICAgICBzdGF0ZTogZmllbGQuc3RhdGUgPT09ICdzYXZlZCcgPyAnc3RvcHBlZCcgOiAnc2F2aW5nJ1xyXG4gICAgICB9KSlcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8vINCX0LDQv9GD0YHRgtC40YLRjCDRgdC+0YXRgNCw0L3QtdC90LjQtSDQtNC70Y8g0L7Qv9GA0LXQtNC10LvQtdC90L3QvtCz0L4gaWRcclxuICBhdXRvc2F2ZVN0YXJ0Rm9yKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb24oaWQpO1xyXG4gICAgdGhpcy5zdGF0ZS51cGRhdGUoY3VycmVudCA9PiAoe1xyXG4gICAgICBmaWVsZHM6IGN1cnJlbnQuZmllbGRzLm1hcChmaWVsZCA9PlxyXG4gICAgICAgIGZpZWxkLmlkID09PSBpZFxyXG4gICAgICAgICAgPyB7IC4uLmZpZWxkLCBzdGF0ZTogZmllbGQuc3RhdGUgPT09ICdzYXZlZCcgPyAnc3RvcHBlZCcgOiAnc2F2aW5nJyB9XHJcbiAgICAgICAgICA6IGZpZWxkXHJcbiAgICAgIClcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8vINCe0YHRgtCw0L3QvtCy0LjRgtGMINGB0L7RhdGA0LDQvdC10L3QuNC1INC00LvRjyDQstGB0LXRhSDQv9C+0LvQtdC5INC4INC+0YfQuNGB0YLQuNGC0Ywg0LzQsNGB0YHQuNCyXHJcbiAgYXV0b3NhdmVTdG9wKCkge1xyXG4gICAgdGhpcy5jbGVhckFsbFN1YnNjcmlwdGlvbnMoKTtcclxuICAgIHRoaXMuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIC8vINCe0YHRgtCw0L3QvtCy0LjRgtGMINGB0L7RhdGA0LDQvdC10L3QuNC1INC00LvRjyDQvtC/0YDQtdC00LXQu9C10L3QvdC+0LPQviBpZCDQuCDRg9C00LDQu9C40YLRjCDQtdCz0L5cclxuICBhdXRvc2F2ZVN0b3BGb3IoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5jbGVhclN1YnNjcmlwdGlvbihpZCk7XHJcbiAgICB0aGlzLnJlbW92ZUZpZWxkKGlkKTtcclxuICB9XHJcblxyXG4gIC8vINCj0YHQv9C10YjQvdC+0LUg0YHQvtGF0YDQsNC90LXQvdC40LUg0LTQu9GPINCy0YHQtdGFINC/0L7Qu9C10LlcclxuICBhdXRvc2F2ZVN1Y2Nlc3MoKSB7XHJcbiAgICB0aGlzLmNsZWFyQWxsU3Vic2NyaXB0aW9ucygpO1xyXG4gICAgdGhpcy5zdGF0ZS51cGRhdGUoY3VycmVudCA9PiAoe1xyXG4gICAgICBmaWVsZHM6IGN1cnJlbnQuZmllbGRzLm1hcChmaWVsZCA9PiAoe1xyXG4gICAgICAgIC4uLmZpZWxkLCBzdGF0ZTogJ3NhdmVkJ1xyXG4gICAgICB9KSlcclxuICAgIH0pKTtcclxuICAgIC8vINCh0L7Qt9C00LDQtdC8INC/0L7QtNC/0LjRgdC60YMg0LTQu9GPINC60LDQttC00L7Qs9C+INC/0L7Qu9GPXHJcbiAgICB0aGlzLnN0YXRlKCkuZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNbZmllbGQuaWRdID0gdGltZXIoMzAwMCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuYXV0b3NhdmVTdG9wKCkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyDQo9GB0L/QtdGI0L3QvtC1INGB0L7RhdGA0LDQvdC10L3QuNC1INC00LvRjyDQvtC/0YDQtdC00LXQu9C10L3QvdC+0LPQviBpZFxyXG4gIGF1dG9zYXZlU3VjY2Vzc0ZvcihpZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNsZWFyU3Vic2NyaXB0aW9uKGlkKTtcclxuICAgIHRoaXMuc3RhdGUudXBkYXRlKGN1cnJlbnQgPT4gKHtcclxuICAgICAgZmllbGRzOiBjdXJyZW50LmZpZWxkcy5tYXAoZmllbGQgPT5cclxuICAgICAgICBmaWVsZC5pZCA9PT0gaWQgPyB7IC4uLmZpZWxkLCBzdGF0ZTogJ3NhdmVkJyB9IDogZmllbGRcclxuICAgICAgKVxyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zW2lkXSA9IHRpbWVyKDMwMDApLnN1YnNjcmliZSgoKSA9PiB0aGlzLmF1dG9zYXZlU3RvcEZvcihpZCkpO1xyXG4gIH1cclxuXHJcbiAgLy8g0J7RiNC40LHQutCwINGB0L7RhdGA0LDQvdC10L3QuNGPINC00LvRjyDQstGB0LXRhSDQv9C+0LvQtdC5XHJcbiAgYXV0b3NhdmVFcnJvcigpIHtcclxuICAgIHRoaXMuY2xlYXJBbGxTdWJzY3JpcHRpb25zKCk7XHJcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZShjdXJyZW50ID0+ICh7XHJcbiAgICAgIGZpZWxkczogY3VycmVudC5maWVsZHMubWFwKGZpZWxkID0+ICh7XHJcbiAgICAgICAgLi4uZmllbGQsIHN0YXRlOiAnZXJyb3InXHJcbiAgICAgIH0pKVxyXG4gICAgfSkpO1xyXG4gICAgLy8g0KHQvtC30LTQsNC10Lwg0L/QvtC00L/QuNGB0LrRgyDQtNC70Y8g0LrQsNC20LTQvtCz0L4g0L/QvtC70Y9cclxuICAgIHRoaXMuc3RhdGUoKS5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1tmaWVsZC5pZF0gPSB0aW1lcigzMDAwKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5hdXRvc2F2ZVN0b3AoKSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vINCe0YjQuNCx0LrQsCDRgdC+0YXRgNCw0L3QtdC90LjRjyDQtNC70Y8g0L7Qv9GA0LXQtNC10LvQtdC90L3QvtCz0L4gaWRcclxuICBhdXRvc2F2ZUVycm9yRm9yKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb24oaWQpO1xyXG4gICAgdGhpcy5zdGF0ZS51cGRhdGUoY3VycmVudCA9PiAoe1xyXG4gICAgICBmaWVsZHM6IGN1cnJlbnQuZmllbGRzLm1hcChmaWVsZCA9PlxyXG4gICAgICAgIGZpZWxkLmlkID09PSBpZCA/IHsgLi4uZmllbGQsIHN0YXRlOiAnZXJyb3InfSA6IGZpZWxkXHJcbiAgICAgIClcclxuICAgIH0pKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uc1tpZF0gPSB0aW1lcigzMDAwKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5hdXRvc2F2ZVN0b3BGb3IoaWQpKTtcclxuICB9XHJcbn1cclxuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1zYXZlLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9zZXJ2aWNlcy9zYXZlLXN0b3JlL2F1dG8tc2F2ZS5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLEtBQUssRUFBZ0IsTUFBTSxNQUFNLENBQUM7O0FBUTNDLE1BQU0sT0FBTyxhQUFhO0lBQ1AsS0FBSyxHQUFHLE1BQU0sQ0FBZ0IsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU5QyxhQUFhLEdBQW9DLEVBQUUsQ0FBQztJQUU1RCxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUvQyxRQUFRLENBQUMsRUFBVTtRQUN4QixPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sS0FBSyxDQUFDLEVBQVUsRUFBRSxPQUF1QjtRQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0s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YUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVELHdCQUF3QjtJQUNoQixxQkFBcUI7UUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0F2SVUsYUFBYTs0R0FBYixhQUFhLGNBREEsTUFBTTs7NEZBQ25CLGFBQWE7a0JBRHpCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0aW1lciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdXRvU2F2ZVN0YXRlIHtcclxuICBmaWVsZHM6IEZpZWxkW107XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBBdXRvU2F2ZVN0b3JlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlID0gc2lnbmFsPEF1dG9TYXZlU3RhdGU+KHsgZmllbGRzOiBbXSB9KTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zOiB7IFtrZXk6IHN0cmluZ106IFN1YnNjcmlwdGlvbiB9ID0ge307XHJcblxyXG4gIHJlYWRvbmx5IGZpZWxkcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3RhdGUoKS5maWVsZHMpO1xyXG5cclxuICBwdWJsaWMgZ2V0RmllbGQoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIGNvbXB1dGVkKCgpID0+IHRoaXMuc3RhdGUoKS5maWVsZHMuZmluZChmaWVsZCA9PiBmaWVsZC5pZCA9PT0gaWQpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRJZChpZDogc3RyaW5nLCBncm91cElkPzogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgdGhpcy51cHNlcnRGaWVsZCh7IGlkLCBzdGF0ZTogJ3N0b3BwZWQnLCBncm91cElkIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXJ0KCkge1xyXG4gICAgdGhpcy5jbGVhckFsbFN1YnNjcmlwdGlvbnMoKTtcclxuICAgIHRoaXMuc3RhdGUudXBkYXRlKGN1cnJlbnQgPT4gKHtcclxuICAgICAgZmllbGRzOiBjdXJyZW50LmZpZWxkcy5tYXAoZmllbGQgPT4gKHtcclxuICAgICAgICAuLi5maWVsZCxcclxuICAgICAgICBzdGF0ZTogZmllbGQuc3RhdGUgPT09ICdzYXZlZCcgPyAnc3RvcHBlZCcgOiAnc2F2aW5nJ1xyXG4gICAgICB9KSlcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGFydEZvcihpZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNsZWFyU3Vic2NyaXB0aW9uKGlkKTtcclxuICAgIHRoaXMuc3RhdGUudXBkYXRlKGN1cnJlbnQgPT4gKHtcclxuICAgICAgZmllbGRzOiBjdXJyZW50LmZpZWxkcy5tYXAoZmllbGQgPT5cclxuICAgICAgICBmaWVsZC5pZCA9PT0gaWRcclxuICAgICAgICAgID8geyAuLi5maWVsZCwgc3RhdGU6IGZpZWxkLnN0YXRlID09PSAnc2F2ZWQnID8gJ3N0b3BwZWQnIDogJ3NhdmluZycgfVxyXG4gICAgICAgICAgOiBmaWVsZFxyXG4gICAgICApXHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RvcCgpIHtcclxuICAgIHRoaXMuY2xlYXJBbGxTdWJzY3JpcHRpb25zKCk7XHJcbiAgICB0aGlzLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RvcEZvcihpZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNsZWFyU3Vic2NyaXB0aW9uKGlkKTtcclxuICAgIHRoaXMucmVtb3ZlRmllbGQoaWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN1Y2Nlc3MoKSB7XHJcbiAgICB0aGlzLmNsZWFyQWxsU3Vic2NyaXB0aW9ucygpO1xyXG4gICAgdGhpcy5zdGF0ZS51cGRhdGUoY3VycmVudCA9PiAoe1xyXG4gICAgICBmaWVsZHM6IGN1cnJlbnQuZmllbGRzLm1hcChmaWVsZCA9PiAoe1xyXG4gICAgICAgIC4uLmZpZWxkLCBzdGF0ZTogJ3NhdmVkJ1xyXG4gICAgICB9KSlcclxuICAgIH0pKTtcclxuXHJcbiAgICB0aGlzLnN0YXRlKCkuZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNbZmllbGQuaWRdID0gdGltZXIoMzAwMCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3RvcCgpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN1Y2Nlc3NGb3IoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5jbGVhclN1YnNjcmlwdGlvbihpZCk7XHJcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZShjdXJyZW50ID0+ICh7XHJcbiAgICAgIGZpZWxkczogY3VycmVudC5maWVsZHMubWFwKGZpZWxkID0+XHJcbiAgICAgICAgZmllbGQuaWQgPT09IGlkID8geyAuLi5maWVsZCwgc3RhdGU6ICdzYXZlZCcgfSA6IGZpZWxkXHJcbiAgICAgIClcclxuICAgIH0pKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uc1tpZF0gPSB0aW1lcigzMDAwKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdG9wRm9yKGlkKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXJyb3IoKSB7XHJcbiAgICB0aGlzLmNsZWFyQWxsU3Vic2NyaXB0aW9ucygpO1xyXG4gICAgdGhpcy5zdGF0ZS51cGRhdGUoY3VycmVudCA9PiAoe1xyXG4gICAgICBmaWVsZHM6IGN1cnJlbnQuZmllbGRzLm1hcChmaWVsZCA9PiAoe1xyXG4gICAgICAgIC4uLmZpZWxkLCBzdGF0ZTogJ2Vycm9yJ1xyXG4gICAgICB9KSlcclxuICAgIH0pKTtcclxuXHJcbiAgICB0aGlzLnN0YXRlKCkuZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNbZmllbGQuaWRdID0gdGltZXIoMzAwMCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3RvcCgpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVycm9yRm9yKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb24oaWQpO1xyXG4gICAgdGhpcy5zdGF0ZS51cGRhdGUoY3VycmVudCA9PiAoe1xyXG4gICAgICBmaWVsZHM6IGN1cnJlbnQuZmllbGRzLm1hcChmaWVsZCA9PlxyXG4gICAgICAgIGZpZWxkLmlkID09PSBpZCA/IHsgLi4uZmllbGQsIHN0YXRlOiAnZXJyb3InfSA6IGZpZWxkXHJcbiAgICAgIClcclxuICAgIH0pKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uc1tpZF0gPSB0aW1lcigzMDAwKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdG9wRm9yKGlkKSk7XHJcbiAgfVxyXG5cclxuICAvLyDQlNC+0LHQsNCy0LjRgtGMINC40LvQuCDQvtCx0L3QvtCy0LjRgtGMINC/0L7Qu9C1XHJcbiAgcHJpdmF0ZSB1cHNlcnRGaWVsZChmaWVsZDogRmllbGQpIHtcclxuICAgIHRoaXMuc3RhdGUudXBkYXRlKGN1cnJlbnQgPT4ge1xyXG4gICAgICBjb25zdCBleGlzdHMgPSBjdXJyZW50LmZpZWxkcy5zb21lKGYgPT4gZi5pZCA9PT0gZmllbGQuaWQpO1xyXG5cclxuICAgICAgaWYgKGV4aXN0cykge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBmaWVsZHM6IGN1cnJlbnQuZmllbGRzLm1hcChmID0+IGYuaWQgPT09IGZpZWxkLmlkID8geyAuLi5mLCAuLi5maWVsZCB9IDogZilcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGZpZWxkczogWy4uLmN1cnJlbnQuZmllbGRzLCBmaWVsZF1cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8g0KPQtNCw0LvQuNGC0Ywg0L/QvtC70LVcclxuICBwcml2YXRlIHJlbW92ZUZpZWxkKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc3RhdGUudXBkYXRlKGN1cnJlbnQgPT4gKHtcclxuICAgICAgZmllbGRzOiBjdXJyZW50LmZpZWxkcy5maWx0ZXIoZmllbGQgPT4gZmllbGQuaWQgIT09IGlkKVxyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgLy8g0J7Rh9C40YHRgtC40YLRjCDQstGB0LUg0L/QvtC70Y9cclxuICBwcml2YXRlIGNsZWFyKCkge1xyXG4gICAgdGhpcy5zdGF0ZS5zZXQoeyBmaWVsZHM6IFtdIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8g0J7Rh9C40YHRgtC40YLRjCDQv9C+0LTQv9C40YHQutGDINC00LvRjyDQv9C+0LvRj1xyXG4gIHByaXZhdGUgY2xlYXJTdWJzY3JpcHRpb24oaWQ6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uc1tpZF0pIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2lkXS51bnN1YnNjcmliZSgpO1xyXG4gICAgICBkZWxldGUgdGhpcy5zdWJzY3JpcHRpb25zW2lkXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vINCe0YfQuNGB0YLQuNGC0Ywg0LLRgdC1INC/0L7QtNC/0LjRgdC60LhcclxuICBwcml2YXRlIGNsZWFyQWxsU3Vic2NyaXB0aW9ucygpIHtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMuc3Vic2NyaXB0aW9ucykuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XS51bnN1YnNjcmliZSgpO1xyXG4gICAgICBkZWxldGUgdGhpcy5zdWJzY3JpcHRpb25zW2tleV07XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -3072,60 +3072,16 @@ class MrxFormValidator {
3072
3072
  }
3073
3073
 
3074
3074
  class AutoSaveStore {
3075
- // Основной сигнал для состояния
3076
3075
  state = signal({ fields: [] });
3077
- // Хранилище подписок для каждого поля
3078
3076
  subscriptions = {};
3079
- // Публичные computed сигналы для доступа к данным
3080
3077
  fields = computed(() => this.state().fields);
3081
- // Получить поле по id
3082
3078
  getField(id) {
3083
3079
  return computed(() => this.state().fields.find(field => field.id === id));
3084
3080
  }
3085
- // Добавить или обновить поле
3086
- upsertField(field) {
3087
- this.state.update(current => {
3088
- const exists = current.fields.some(f => f.id === field.id);
3089
- if (exists) {
3090
- return {
3091
- fields: current.fields.map(f => f.id === field.id ? { ...f, ...field } : f)
3092
- };
3093
- }
3094
- return {
3095
- fields: [...current.fields, field]
3096
- };
3097
- });
3098
- }
3099
- // Удалить поле
3100
- removeField(id) {
3101
- this.state.update(current => ({
3102
- fields: current.fields.filter(field => field.id !== id)
3103
- }));
3104
- }
3105
- // Очистить все поля
3106
- clear() {
3107
- this.state.set({ fields: [] });
3108
- }
3109
- // Очистить подписку для поля
3110
- clearSubscription(id) {
3111
- if (this.subscriptions[id]) {
3112
- this.subscriptions[id].unsubscribe();
3113
- delete this.subscriptions[id];
3114
- }
3115
- }
3116
- // Очистить все подписки
3117
- clearAllSubscriptions() {
3118
- Object.keys(this.subscriptions).forEach(key => {
3119
- this.subscriptions[key].unsubscribe();
3120
- delete this.subscriptions[key];
3121
- });
3122
- }
3123
- // Добавить id в массив fields
3124
- autosaveAddId(id, groupId) {
3081
+ addId(id, groupId) {
3125
3082
  this.upsertField({ id, state: 'stopped', groupId });
3126
3083
  }
3127
- // Запустить сохранение для всех полей
3128
- autosaveStart() {
3084
+ start() {
3129
3085
  this.clearAllSubscriptions();
3130
3086
  this.state.update(current => ({
3131
3087
  fields: current.fields.map(field => ({
@@ -3134,8 +3090,7 @@ class AutoSaveStore {
3134
3090
  }))
3135
3091
  }));
3136
3092
  }
3137
- // Запустить сохранение для определенного id
3138
- autosaveStartFor(id) {
3093
+ startFor(id) {
3139
3094
  this.clearSubscription(id);
3140
3095
  this.state.update(current => ({
3141
3096
  fields: current.fields.map(field => field.id === id
@@ -3143,57 +3098,87 @@ class AutoSaveStore {
3143
3098
  : field)
3144
3099
  }));
3145
3100
  }
3146
- // Остановить сохранение для всех полей и очистить массив
3147
- autosaveStop() {
3101
+ stop() {
3148
3102
  this.clearAllSubscriptions();
3149
3103
  this.clear();
3150
3104
  }
3151
- // Остановить сохранение для определенного id и удалить его
3152
- autosaveStopFor(id) {
3105
+ stopFor(id) {
3153
3106
  this.clearSubscription(id);
3154
3107
  this.removeField(id);
3155
3108
  }
3156
- // Успешное сохранение для всех полей
3157
- autosaveSuccess() {
3109
+ success() {
3158
3110
  this.clearAllSubscriptions();
3159
3111
  this.state.update(current => ({
3160
3112
  fields: current.fields.map(field => ({
3161
3113
  ...field, state: 'saved'
3162
3114
  }))
3163
3115
  }));
3164
- // Создаем подписку для каждого поля
3165
3116
  this.state().fields.forEach(field => {
3166
- this.subscriptions[field.id] = timer(3000).subscribe(() => this.autosaveStop());
3117
+ this.subscriptions[field.id] = timer(3000).subscribe(() => this.stop());
3167
3118
  });
3168
3119
  }
3169
- // Успешное сохранение для определенного id
3170
- autosaveSuccessFor(id) {
3120
+ successFor(id) {
3171
3121
  this.clearSubscription(id);
3172
3122
  this.state.update(current => ({
3173
3123
  fields: current.fields.map(field => field.id === id ? { ...field, state: 'saved' } : field)
3174
3124
  }));
3175
- this.subscriptions[id] = timer(3000).subscribe(() => this.autosaveStopFor(id));
3125
+ this.subscriptions[id] = timer(3000).subscribe(() => this.stopFor(id));
3176
3126
  }
3177
- // Ошибка сохранения для всех полей
3178
- autosaveError() {
3127
+ error() {
3179
3128
  this.clearAllSubscriptions();
3180
3129
  this.state.update(current => ({
3181
3130
  fields: current.fields.map(field => ({
3182
3131
  ...field, state: 'error'
3183
3132
  }))
3184
3133
  }));
3185
- // Создаем подписку для каждого поля
3186
3134
  this.state().fields.forEach(field => {
3187
- this.subscriptions[field.id] = timer(3000).subscribe(() => this.autosaveStop());
3135
+ this.subscriptions[field.id] = timer(3000).subscribe(() => this.stop());
3188
3136
  });
3189
3137
  }
3190
- // Ошибка сохранения для определенного id
3191
- autosaveErrorFor(id) {
3138
+ errorFor(id) {
3192
3139
  this.clearSubscription(id);
3193
3140
  this.state.update(current => ({
3194
3141
  fields: current.fields.map(field => field.id === id ? { ...field, state: 'error' } : field)
3195
3142
  }));
3196
- this.subscriptions[id] = timer(3000).subscribe(() => this.autosaveStopFor(id));
3143
+ this.subscriptions[id] = timer(3000).subscribe(() => this.stopFor(id));
3144
+ }
3145
+ // Добавить или обновить поле
3146
+ upsertField(field) {
3147
+ this.state.update(current => {
3148
+ const exists = current.fields.some(f => f.id === field.id);
3149
+ if (exists) {
3150
+ return {
3151
+ fields: current.fields.map(f => f.id === field.id ? { ...f, ...field } : f)
3152
+ };
3153
+ }
3154
+ return {
3155
+ fields: [...current.fields, field]
3156
+ };
3157
+ });
3158
+ }
3159
+ // Удалить поле
3160
+ removeField(id) {
3161
+ this.state.update(current => ({
3162
+ fields: current.fields.filter(field => field.id !== id)
3163
+ }));
3164
+ }
3165
+ // Очистить все поля
3166
+ clear() {
3167
+ this.state.set({ fields: [] });
3168
+ }
3169
+ // Очистить подписку для поля
3170
+ clearSubscription(id) {
3171
+ if (this.subscriptions[id]) {
3172
+ this.subscriptions[id].unsubscribe();
3173
+ delete this.subscriptions[id];
3174
+ }
3175
+ }
3176
+ // Очистить все подписки
3177
+ clearAllSubscriptions() {
3178
+ Object.keys(this.subscriptions).forEach(key => {
3179
+ this.subscriptions[key].unsubscribe();
3180
+ delete this.subscriptions[key];
3181
+ });
3197
3182
  }
3198
3183
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AutoSaveStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3199
3184
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AutoSaveStore, providedIn: 'root' });
@@ -6036,14 +6021,17 @@ class GalleryItemComponent {
6036
6021
  }
6037
6022
  changeDescription(obj) {
6038
6023
  clearTimeout(this._timer);
6039
- this._autoSaveStore.autosaveAddId(obj.id);
6040
- this._autoSaveStore.autosaveStartFor(obj.id);
6024
+ this._autoSaveStore.addId(obj.id);
6025
+ this._autoSaveStore.startFor(obj.id);
6041
6026
  this._timer = setTimeout(() => {
6042
- this._galleryService.update(this.updateEndPoint, this.preview.uuid, obj.value).subscribe(res => {
6043
- this.updatePhoto.emit(res);
6044
- this._autoSaveStore.autosaveSuccessFor(obj.id);
6045
- }, () => {
6046
- this._autoSaveStore.autosaveErrorFor(obj.id);
6027
+ this._galleryService.update(this.updateEndPoint, this.preview.uuid, obj.value).subscribe({
6028
+ next: (res) => {
6029
+ this.updatePhoto.emit(res);
6030
+ this._autoSaveStore.successFor(obj.id);
6031
+ },
6032
+ error: () => {
6033
+ this._autoSaveStore.errorFor(obj.id);
6034
+ }
6047
6035
  });
6048
6036
  }, 1500);
6049
6037
  }