myrta-ui 17.1.3 → 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.
@@ -77,7 +77,7 @@ export class GalleryItemComponent {
77
77
  this._autoSaveStore.successFor(obj.id);
78
78
  },
79
79
  error: () => {
80
- this._autoSaveStore.autosaveErrorFor(obj.id);
80
+ this._autoSaveStore.errorFor(obj.id);
81
81
  }
82
82
  });
83
83
  }, 1500);
@@ -112,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
112
112
  }], updatePhoto: [{
113
113
  type: Output
114
114
  }] } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9nYWxsZXJ5L2NvbXBvbmVudHMvZ2FsbGVyeS1pdGVtL2dhbGxlcnktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZ2FsbGVyeS9jb21wb25lbnRzL2dhbGxlcnktaXRlbS9nYWxsZXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHeEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFFeEcsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7QUFTbkUsTUFBTSxPQUFPLG9CQUFvQjtJQTJCckI7SUFDQTtJQTNCRixjQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBRXRDLFNBQVMsR0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLE1BQU0sQ0FBaUM7SUFFeEMsT0FBTyxDQUF1QjtJQUU1QixPQUFPLENBQW9CO0lBQzNCLEtBQUssQ0FBVTtJQUNmLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLGNBQWMsQ0FBVTtJQUN4QixjQUFjLENBQVU7SUFDeEIsWUFBWSxHQUEwQixFQUFFLENBQUM7SUFFbEQsSUFBd0IsWUFBWSxDQUFDLEtBQWM7UUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRVMsZ0JBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFDcEUsV0FBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ3pELFdBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVuRSxZQUNVLGVBQStCLEVBQy9CLGFBQTJCO1FBRDNCLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztJQUNsQyxDQUFDO0lBRUosV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLHdFQUF3RSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3BHLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTywyQ0FBMkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ3JDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtZQUNwRCxLQUFLLEVBQUUsaUJBQWlCO1lBQ3hCLE9BQU8sRUFBRSxzQ0FBc0M7U0FDaEQsQ0FBQzthQUNDLFdBQVcsRUFBRTthQUNiLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2xGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxHQUFRO1FBQ3hCLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUVwQyxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUN2RixJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDWixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUN4QyxDQUFDO2dCQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7b0JBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQzlDLENBQUM7YUFDRixDQUFDLENBQUE7UUFDSixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDO3dHQXZGVSxvQkFBb0I7NEZBQXBCLG9CQUFvQix3YUNkakMscXlJQTBEQTs7NEZENUNhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTs4R0FXdEMsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFa0IsWUFBWTtzQkFBbkMsS0FBSzt1QkFBQyxXQUFXO2dCQUtSLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHYWxsZXJ5SXRlbU1vZGVsLCBHYWxsZXJ5Um90YXRlU2xpZGVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dhbGxlcnktaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IEdhbGxlcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2FsbGVyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2FsbGVyeUNvbmZpcm1Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2dhbGxlcnktY29uZmlybS1tb2RhbC9nYWxsZXJ5LWNvbmZpcm0tbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBdXRvU2F2ZVN0b3JlLCBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvc2F2ZS1zdG9yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1nYWxsZXJ5LWl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nYWxsZXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2dhbGxlcnktaXRlbS5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHYWxsZXJ5SXRlbUNvbXBvbmVudCB7XHJcbiAgcHJpdmF0ZSBfYXV0b1NhdmVTdG9yZSA9IGluamVjdChBdXRvU2F2ZVN0b3JlKVxyXG5cclxuICBwcml2YXRlIHRpbWVTdGFtcDogbnVtYmVyID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTtcclxuICBwcml2YXRlIGlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3RpbWVyITogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XHJcblxyXG4gIHB1YmxpYyBmaWVsZHMkITogT2JzZXJ2YWJsZTxGaWVsZFtdPjtcclxuXHJcbiAgQElucHV0KCkgcHJldmlldyE6IEdhbGxlcnlJdGVtTW9kZWw7XHJcbiAgQElucHV0KCkgaW5kZXghOiBudW1iZXI7XHJcbiAgQElucHV0KCkgaXNFZGl0aW5nID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb25NYXhMZW5ndGggPSAwO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZUVuZFBvaW50ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHVwZGF0ZUVuZFBvaW50ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJvdGF0ZVNsaWRlczogR2FsbGVyeVJvdGF0ZVNsaWRlc1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgnaXNMb2FkaW5nJykgc2V0IHNldElzTG9hZGluZyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB2YWx1ZTtcclxuICAgIHRoaXMudGltZVN0YW1wID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBvcGVuR2FsbGVyeU1vZGFsOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIEBPdXRwdXQoKSBkZWxldGVQaG90bzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgdXBkYXRlUGhvdG86IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZ2FsbGVyeVNlcnZpY2U6IEdhbGxlcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGdldEltYWdlVXJsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5wcmV2aWV3LnByZXZpZXdVcmwgKyAnPycgKyB0aGlzLnRpbWVTdGFtcDtcclxuICB9XHJcblxyXG4gIGdldCB5YW5kZXhDaGVja1VybCgpIHtcclxuICAgIHJldHVybiBgaHR0cHM6Ly95YW5kZXgucnUvaW1hZ2VzL3NlYXJjaD9zb3VyY2U9Y29sbGVjdGlvbnMmcnB0PWltYWdldmlldyZ1cmw9JHt0aGlzLnByZXZpZXcudXJsfWA7XHJcbiAgfVxyXG5cclxuICBnZXQgZ29vZ2xlQ2hlY2tVcmwoKSB7XHJcbiAgICByZXR1cm4gYGh0dHBzOi8vbGVucy5nb29nbGUuY29tL3VwbG9hZGJ5dXJsP3VybD0ke3RoaXMucHJldmlldy51cmx9YDtcclxuICB9XHJcblxyXG4gIGdldCBpc0xvYWRpbmdJbWFnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZyAmJiAhIXRoaXMucm90YXRlU2xpZGVzLmZpbmQoKHMpID0+IHMucHJldmlld0ltYWdlSWQgPT09IHRoaXMucHJldmlldy5wcmV2aWV3SW1hZ2VJZCk7XHJcbiAgfVxyXG5cclxuICBnZXQgZmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1dG9TYXZlU3RvcmUuZmllbGRzKClcclxuICB9XHJcblxyXG4gIG9uT3BlbkdhbGxlcnlNb2RhbCgpIHtcclxuICAgIHRoaXMub3BlbkdhbGxlcnlNb2RhbC5lbWl0KHRoaXMuaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlSW1hZ2UoKSB7XHJcbiAgICB0aGlzLl9tb2RhbFNlcnZpY2Uub3BlbihHYWxsZXJ5Q29uZmlybU1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgIHRpdGxlOiAn0KPQlNCQ0JvQldCd0JjQlSDQlNCQ0J3QndCr0KUnLFxyXG4gICAgICBtZXNzYWdlOiAn0JLRiyDRg9Cy0LXRgNC10L3Riywg0YfRgtC+INGF0L7RgtC40YLQtSDRg9C00LDQu9C40YLRjCDRhNCw0LnQuz8nXHJcbiAgICB9KVxyXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICBpZiAocmVzLnJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy5fZ2FsbGVyeVNlcnZpY2UuZGVsZXRlKHRoaXMuZGVsZXRlRW5kUG9pbnQsIHRoaXMucHJldmlldy51dWlkKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kZWxldGVQaG90by5lbWl0KHJlcyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlRGVzY3JpcHRpb24ob2JqOiBhbnkpIHtcclxuICAgIGNsZWFyVGltZW91dCh0aGlzLl90aW1lcik7XHJcblxyXG4gICAgdGhpcy5fYXV0b1NhdmVTdG9yZS5hZGRJZChvYmouaWQpXHJcbiAgICB0aGlzLl9hdXRvU2F2ZVN0b3JlLnN0YXJ0Rm9yKG9iai5pZClcclxuXHJcbiAgICB0aGlzLl90aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9nYWxsZXJ5U2VydmljZS51cGRhdGUodGhpcy51cGRhdGVFbmRQb2ludCwgdGhpcy5wcmV2aWV3LnV1aWQsIG9iai52YWx1ZSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVBob3RvLmVtaXQocmVzKTtcclxuICAgICAgICAgIHRoaXMuX2F1dG9TYXZlU3RvcmUuc3VjY2Vzc0ZvcihvYmouaWQpXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fYXV0b1NhdmVTdG9yZS5hdXRvc2F2ZUVycm9yRm9yKG9iai5pZClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9LCAxNTAwKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1cIj5cclxuICA8ZGl2IGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbV9fcHJldmlld1wiIChjbGljayk9XCJvbk9wZW5HYWxsZXJ5TW9kYWwoKVwiPlxyXG5cclxuICAgIDxpbWcgW3NyY109XCJnZXRJbWFnZVVybCgpXCIgW2FsdF09XCJwcmV2aWV3LmltYWdlTmFtZSB8fCAnaW1hZ2UnXCIgKm5nSWY9XCIhaXNMb2FkaW5nSW1hZ2U7IGVsc2Ugc2tlbGV0b25UZW1wbGF0ZVwiPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b25UZW1wbGF0ZT5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMCBoLTEwMFwiPlxyXG4gICAgICAgIDxtcngtbG9hZGVyIHNpemU9XCJtZWRpdW1cIiBjb2xvcj1cImJyYW5kXCI+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,59 +2,15 @@ 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
11
  addId(id, groupId) {
55
12
  this.upsertField({ id, state: 'stopped', groupId });
56
13
  }
57
- // Запустить сохранение для всех полей
58
14
  start() {
59
15
  this.clearAllSubscriptions();
60
16
  this.state.update(current => ({
@@ -64,7 +20,6 @@ export class AutoSaveStore {
64
20
  }))
65
21
  }));
66
22
  }
67
- // Запустить сохранение для определенного id
68
23
  startFor(id) {
69
24
  this.clearSubscription(id);
70
25
  this.state.update(current => ({
@@ -73,17 +28,14 @@ export class AutoSaveStore {
73
28
  : field)
74
29
  }));
75
30
  }
76
- // Остановить сохранение для всех полей и очистить массив
77
31
  stop() {
78
32
  this.clearAllSubscriptions();
79
33
  this.clear();
80
34
  }
81
- // Остановить сохранение для определенного id и удалить его
82
35
  stopFor(id) {
83
36
  this.clearSubscription(id);
84
37
  this.removeField(id);
85
38
  }
86
- // Успешное сохранение для всех полей
87
39
  success() {
88
40
  this.clearAllSubscriptions();
89
41
  this.state.update(current => ({
@@ -91,12 +43,10 @@ export class AutoSaveStore {
91
43
  ...field, state: 'saved'
92
44
  }))
93
45
  }));
94
- // Создаем подписку для каждого поля
95
46
  this.state().fields.forEach(field => {
96
47
  this.subscriptions[field.id] = timer(3000).subscribe(() => this.stop());
97
48
  });
98
49
  }
99
- // Успешное сохранение для определенного id
100
50
  successFor(id) {
101
51
  this.clearSubscription(id);
102
52
  this.state.update(current => ({
@@ -104,27 +54,62 @@ export class AutoSaveStore {
104
54
  }));
105
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
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
73
  this.subscriptions[id] = timer(3000).subscribe(() => this.stopFor(id));
127
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
+ });
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' });
130
115
  }
@@ -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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QUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHlDQUF5QztJQUN6QyxnQkFBZ0IsQ0FBQyxFQUFVO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ2pDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUN0RDtTQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO3dHQXBKVSxhQUFhOzRHQUFiLGFBQWEsY0FEQSxNQUFNOzs0RkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBzaWduYWwsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRpbWVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuL21vZGVscyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1yeEF1dG9TYXZlU3RhdGUge1xyXG4gIGZpZWxkczogRmllbGRbXTtcclxufVxyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEF1dG9TYXZlU3RvcmUge1xyXG4gIC8vINCe0YHQvdC+0LLQvdC+0Lkg0YHQuNCz0L3QsNC7INC00LvRjyDRgdC+0YHRgtC+0Y/QvdC40Y9cclxuICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlID0gc2lnbmFsPE1yeEF1dG9TYXZlU3RhdGU+KHsgZmllbGRzOiBbXSB9KTtcclxuXHJcbiAgLy8g0KXRgNCw0L3QuNC70LjRidC1INC/0L7QtNC/0LjRgdC+0Log0LTQu9GPINC60LDQttC00L7Qs9C+INC/0L7Qu9GPXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zOiB7IFtrZXk6IHN0cmluZ106IFN1YnNjcmlwdGlvbiB9ID0ge307XHJcblxyXG4gIC8vINCf0YPQsdC70LjRh9C90YvQtSBjb21wdXRlZCDRgdC40LPQvdCw0LvRiyDQtNC70Y8g0LTQvtGB0YLRg9C/0LAg0Log0LTQsNC90L3Ri9C8XHJcbiAgcmVhZG9ubHkgZmllbGRzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zdGF0ZSgpLmZpZWxkcyk7XHJcblxyXG4gIC8vINCf0L7Qu9GD0YfQuNGC0Ywg0L/QvtC70LUg0L/QviBpZFxyXG4gIGdldEZpZWxkKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXRlKCkuZmllbGRzLmZpbmQoZmllbGQgPT4gZmllbGQuaWQgPT09IGlkKSk7XHJcbiAgfVxyXG5cclxuICAvLyDQlNC+0LHQsNCy0LjRgtGMINC40LvQuCDQvtCx0L3QvtCy0LjRgtGMINC/0L7Qu9C1XHJcbiAgcHJpdmF0ZSB1cHNlcnRGaWVsZChmaWVsZDogRmllbGQpIHtcclxuICAgIHRoaXMuc3RhdGUudXBkYXRlKGN1cnJlbnQgPT4ge1xyXG4gICAgICBjb25zdCBleGlzdHMgPSBjdXJyZW50LmZpZWxkcy5zb21lKGYgPT4gZi5pZCA9PT0gZmllbGQuaWQpO1xyXG5cclxuICAgICAgaWYgKGV4aXN0cykge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBmaWVsZHM6IGN1cnJlbnQuZmllbGRzLm1hcChmID0+IGYuaWQgPT09IGZpZWxkLmlkID8geyAuLi5mLCAuLi5maWVsZCB9IDogZilcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGZpZWxkczogWy4uLmN1cnJlbnQuZmllbGRzLCBmaWVsZF1cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8g0KPQtNCw0LvQuNGC0Ywg0L/QvtC70LVcclxuICBwcml2YXRlIHJlbW92ZUZpZWxkKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc3RhdGUudXBkYXRlKGN1cnJlbnQgPT4gKHtcclxuICAgICAgZmllbGRzOiBjdXJyZW50LmZpZWxkcy5maWx0ZXIoZmllbGQgPT4gZmllbGQuaWQgIT09IGlkKVxyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgLy8g0J7Rh9C40YHRgtC40YLRjCDQstGB0LUg0L/QvtC70Y9cclxuICBwcml2YXRlIGNsZWFyKCkge1xyXG4gICAgdGhpcy5zdGF0ZS5zZXQoeyBmaWVsZHM6IFtdIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8g0J7Rh9C40YHRgtC40YLRjCDQv9C+0LTQv9C40YHQutGDINC00LvRjyDQv9C+0LvRj1xyXG4gIHByaXZhdGUgY2xlYXJTdWJzY3JpcHRpb24oaWQ6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uc1tpZF0pIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2lkXS51bnN1YnNjcmliZSgpO1xyXG4gICAgICBkZWxldGUgdGhpcy5zdWJzY3JpcHRpb25zW2lkXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vINCe0YfQuNGB0YLQuNGC0Ywg0LLRgdC1INC/0L7QtNC/0LjRgdC60LhcclxuICBwcml2YXRlIGNsZWFyQWxsU3Vic2NyaXB0aW9ucygpIHtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMuc3Vic2NyaXB0aW9ucykuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XS51bnN1YnNjcmliZSgpO1xyXG4gICAgICBkZWxldGUgdGhpcy5zdWJzY3JpcHRpb25zW2tleV07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vINCU0L7QsdCw0LLQuNGC0YwgaWQg0LIg0LzQsNGB0YHQuNCyIGZpZWxkc1xyXG4gIGFkZElkKGlkOiBzdHJpbmcsIGdyb3VwSWQ/OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICB0aGlzLnVwc2VydEZpZWxkKHsgaWQsIHN0YXRlOiAnc3RvcHBlZCcsIGdyb3VwSWQgfSk7XHJcbiAgfVxyXG5cclxuICAvLyDQl9Cw0L/Rg9GB0YLQuNGC0Ywg0YHQvtGF0YDQsNC90LXQvdC40LUg0LTQu9GPINCy0YHQtdGFINC/0L7Qu9C10LlcclxuICBzdGFydCgpIHtcclxuICAgIHRoaXMuY2xlYXJBbGxTdWJzY3JpcHRpb25zKCk7XHJcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZShjdXJyZW50ID0+ICh7XHJcbiAgICAgIGZpZWxkczogY3VycmVudC5maWVsZHMubWFwKGZpZWxkID0+ICh7XHJcbiAgICAgICAgLi4uZmllbGQsXHJcbiAgICAgICAgc3RhdGU6IGZpZWxkLnN0YXRlID09PSAnc2F2ZWQnID8gJ3N0b3BwZWQnIDogJ3NhdmluZydcclxuICAgICAgfSkpXHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAvLyDQl9Cw0L/Rg9GB0YLQuNGC0Ywg0YHQvtGF0YDQsNC90LXQvdC40LUg0LTQu9GPINC+0L/RgNC10LTQtdC70LXQvdC90L7Qs9C+IGlkXHJcbiAgc3RhcnRGb3IoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5jbGVhclN1YnNjcmlwdGlvbihpZCk7XHJcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZShjdXJyZW50ID0+ICh7XHJcbiAgICAgIGZpZWxkczogY3VycmVudC5maWVsZHMubWFwKGZpZWxkID0+XHJcbiAgICAgICAgZmllbGQuaWQgPT09IGlkXHJcbiAgICAgICAgICA/IHsgLi4uZmllbGQsIHN0YXRlOiBmaWVsZC5zdGF0ZSA9PT0gJ3NhdmVkJyA/ICdzdG9wcGVkJyA6ICdzYXZpbmcnIH1cclxuICAgICAgICAgIDogZmllbGRcclxuICAgICAgKVxyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgLy8g0J7RgdGC0LDQvdC+0LLQuNGC0Ywg0YHQvtGF0YDQsNC90LXQvdC40LUg0LTQu9GPINCy0YHQtdGFINC/0L7Qu9C10Lkg0Lgg0L7Rh9C40YHRgtC40YLRjCDQvNCw0YHRgdC40LJcclxuICBzdG9wKCkge1xyXG4gICAgdGhpcy5jbGVhckFsbFN1YnNjcmlwdGlvbnMoKTtcclxuICAgIHRoaXMuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIC8vINCe0YHRgtCw0L3QvtCy0LjRgtGMINGB0L7RhdGA0LDQvdC10L3QuNC1INC00LvRjyDQvtC/0YDQtdC00LXQu9C10L3QvdC+0LPQviBpZCDQuCDRg9C00LDQu9C40YLRjCDQtdCz0L5cclxuICBzdG9wRm9yKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb24oaWQpO1xyXG4gICAgdGhpcy5yZW1vdmVGaWVsZChpZCk7XHJcbiAgfVxyXG5cclxuICAvLyDQo9GB0L/QtdGI0L3QvtC1INGB0L7RhdGA0LDQvdC10L3QuNC1INC00LvRjyDQstGB0LXRhSDQv9C+0LvQtdC5XHJcbiAgc3VjY2VzcygpIHtcclxuICAgIHRoaXMuY2xlYXJBbGxTdWJzY3JpcHRpb25zKCk7XHJcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZShjdXJyZW50ID0+ICh7XHJcbiAgICAgIGZpZWxkczogY3VycmVudC5maWVsZHMubWFwKGZpZWxkID0+ICh7XHJcbiAgICAgICAgLi4uZmllbGQsIHN0YXRlOiAnc2F2ZWQnXHJcbiAgICAgIH0pKVxyXG4gICAgfSkpO1xyXG4gICAgLy8g0KHQvtC30LTQsNC10Lwg0L/QvtC00L/QuNGB0LrRgyDQtNC70Y8g0LrQsNC20LTQvtCz0L4g0L/QvtC70Y9cclxuICAgIHRoaXMuc3RhdGUoKS5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1tmaWVsZC5pZF0gPSB0aW1lcigzMDAwKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdG9wKCkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyDQo9GB0L/QtdGI0L3QvtC1INGB0L7RhdGA0LDQvdC10L3QuNC1INC00LvRjyDQvtC/0YDQtdC00LXQu9C10L3QvdC+0LPQviBpZFxyXG4gIHN1Y2Nlc3NGb3IoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5jbGVhclN1YnNjcmlwdGlvbihpZCk7XHJcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZShjdXJyZW50ID0+ICh7XHJcbiAgICAgIGZpZWxkczogY3VycmVudC5maWVsZHMubWFwKGZpZWxkID0+XHJcbiAgICAgICAgZmllbGQuaWQgPT09IGlkID8geyAuLi5maWVsZCwgc3RhdGU6ICdzYXZlZCcgfSA6IGZpZWxkXHJcbiAgICAgIClcclxuICAgIH0pKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uc1tpZF0gPSB0aW1lcigzMDAwKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdG9wRm9yKGlkKSk7XHJcbiAgfVxyXG5cclxuICAvLyDQntGI0LjQsdC60LAg0YHQvtGF0YDQsNC90LXQvdC40Y8g0LTQu9GPINCy0YHQtdGFINC/0L7Qu9C10LlcclxuICBhdXRvc2F2ZUVycm9yKCkge1xyXG4gICAgdGhpcy5jbGVhckFsbFN1YnNjcmlwdGlvbnMoKTtcclxuICAgIHRoaXMuc3RhdGUudXBkYXRlKGN1cnJlbnQgPT4gKHtcclxuICAgICAgZmllbGRzOiBjdXJyZW50LmZpZWxkcy5tYXAoZmllbGQgPT4gKHtcclxuICAgICAgICAuLi5maWVsZCwgc3RhdGU6ICdlcnJvcidcclxuICAgICAgfSkpXHJcbiAgICB9KSk7XHJcbiAgICAvLyDQodC+0LfQtNCw0LXQvCDQv9C+0LTQv9C40YHQutGDINC00LvRjyDQutCw0LbQtNC+0LPQviDQv9C+0LvRj1xyXG4gICAgdGhpcy5zdGF0ZSgpLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2ZpZWxkLmlkXSA9IHRpbWVyKDMwMDApLnN1YnNjcmliZSgoKSA9PiB0aGlzLnN0b3AoKSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vINCe0YjQuNCx0LrQsCDRgdC+0YXRgNCw0L3QtdC90LjRjyDQtNC70Y8g0L7Qv9GA0LXQtNC10LvQtdC90L3QvtCz0L4gaWRcclxuICBhdXRvc2F2ZUVycm9yRm9yKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb24oaWQpO1xyXG4gICAgdGhpcy5zdGF0ZS51cGRhdGUoY3VycmVudCA9PiAoe1xyXG4gICAgICBmaWVsZHM6IGN1cnJlbnQuZmllbGRzLm1hcChmaWVsZCA9PlxyXG4gICAgICAgIGZpZWxkLmlkID09PSBpZCA/IHsgLi4uZmllbGQsIHN0YXRlOiAnZXJyb3InfSA6IGZpZWxkXHJcbiAgICAgIClcclxuICAgIH0pKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uc1tpZF0gPSB0aW1lcigzMDAwKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdG9wRm9yKGlkKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
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,59 +3072,15 @@ 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
3081
  addId(id, groupId) {
3125
3082
  this.upsertField({ id, state: 'stopped', groupId });
3126
3083
  }
3127
- // Запустить сохранение для всех полей
3128
3084
  start() {
3129
3085
  this.clearAllSubscriptions();
3130
3086
  this.state.update(current => ({
@@ -3134,7 +3090,6 @@ class AutoSaveStore {
3134
3090
  }))
3135
3091
  }));
3136
3092
  }
3137
- // Запустить сохранение для определенного id
3138
3093
  startFor(id) {
3139
3094
  this.clearSubscription(id);
3140
3095
  this.state.update(current => ({
@@ -3143,17 +3098,14 @@ class AutoSaveStore {
3143
3098
  : field)
3144
3099
  }));
3145
3100
  }
3146
- // Остановить сохранение для всех полей и очистить массив
3147
3101
  stop() {
3148
3102
  this.clearAllSubscriptions();
3149
3103
  this.clear();
3150
3104
  }
3151
- // Остановить сохранение для определенного id и удалить его
3152
3105
  stopFor(id) {
3153
3106
  this.clearSubscription(id);
3154
3107
  this.removeField(id);
3155
3108
  }
3156
- // Успешное сохранение для всех полей
3157
3109
  success() {
3158
3110
  this.clearAllSubscriptions();
3159
3111
  this.state.update(current => ({
@@ -3161,12 +3113,10 @@ class AutoSaveStore {
3161
3113
  ...field, state: 'saved'
3162
3114
  }))
3163
3115
  }));
3164
- // Создаем подписку для каждого поля
3165
3116
  this.state().fields.forEach(field => {
3166
3117
  this.subscriptions[field.id] = timer(3000).subscribe(() => this.stop());
3167
3118
  });
3168
3119
  }
3169
- // Успешное сохранение для определенного id
3170
3120
  successFor(id) {
3171
3121
  this.clearSubscription(id);
3172
3122
  this.state.update(current => ({
@@ -3174,27 +3124,62 @@ class AutoSaveStore {
3174
3124
  }));
3175
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
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
3143
  this.subscriptions[id] = timer(3000).subscribe(() => this.stopFor(id));
3197
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
+ });
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' });
3200
3185
  }
@@ -6045,7 +6030,7 @@ class GalleryItemComponent {
6045
6030
  this._autoSaveStore.successFor(obj.id);
6046
6031
  },
6047
6032
  error: () => {
6048
- this._autoSaveStore.autosaveErrorFor(obj.id);
6033
+ this._autoSaveStore.errorFor(obj.id);
6049
6034
  }
6050
6035
  });
6051
6036
  }, 1500);