imm-element-ui 0.5.5 → 0.5.7

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.
@@ -6,7 +6,6 @@ export class ActionService {
6
6
  this.pageAction = pageAction;
7
7
  this.popAction = popAction;
8
8
  this.popMode = false;
9
- this.page = signal(undefined);
10
9
  this.fieldLabelAction = signal(undefined);
11
10
  this.fieldAction = signal(undefined);
12
11
  this.action = signal(undefined);
@@ -108,10 +107,15 @@ export class ActionService {
108
107
  return this.pageAction.getSortItem();
109
108
  }
110
109
  setPage(page) {
111
- this.page.set(page);
110
+ if (!this.popMode) {
111
+ this.pageAction.setPage(page);
112
+ }
112
113
  }
113
114
  getPage() {
114
- return this.page();
115
+ if (!this.popMode) {
116
+ return this.pageAction.getPage();
117
+ }
118
+ return undefined;
115
119
  }
116
120
  setFieldLabelAction(key, type) {
117
121
  this.fieldLabelAction.set({ key, type });
@@ -148,6 +152,7 @@ export class PageActionService {
148
152
  this.searchItem = signal(undefined);
149
153
  this.searchClear = signal(undefined);
150
154
  this.sortItem = signal(undefined);
155
+ this.page = signal(undefined);
151
156
  }
152
157
  setModelName(modelNameForSearch) {
153
158
  if (modelNameForSearch == undefined) {
@@ -218,6 +223,12 @@ export class PageActionService {
218
223
  getSortItem() {
219
224
  return this.sortItem();
220
225
  }
226
+ setPage(page) {
227
+ this.page.set(page);
228
+ }
229
+ getPage() {
230
+ return this.page();
231
+ }
221
232
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageActionService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
222
233
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageActionService, providedIn: 'root' }); }
223
234
  }
@@ -307,4 +318,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
307
318
  providedIn: 'root',
308
319
  }]
309
320
  }], ctorParameters: () => [] });
310
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUE4QjlELE1BQU0sT0FBTyxhQUFhO0lBUXpCLFlBQ1MsVUFBNkIsRUFDN0IsU0FBMkI7UUFEM0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFUcEMsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixTQUFJLEdBQUcsTUFBTSxDQUFtQixTQUFTLENBQUMsQ0FBQztRQUMzQyxxQkFBZ0IsR0FBRyxNQUFNLENBQStCLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLGdCQUFXLEdBQUcsTUFBTSxDQUF3QixTQUFTLENBQUMsQ0FBQztRQUN2RCxXQUFNLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztRQUMvQyxlQUFVLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBS2pDLENBQUM7SUFDSixVQUFVLENBQUMsSUFBYTtRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBQ0QsS0FBSztRQUNKLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lB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QUMsUUFBOEI7UUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELFdBQVc7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQXJFVyxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQUZoQixNQUFNOzs0RkFFTixnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2VhcmNoSXRlbSB9IGZyb20gJy4uL3NlYXJjaC9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlYXJjaCB9IGZyb20gJy4uL2FtL2FtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZCB9IGZyb20gJy4uL2Zvcm0vZm9ybS1maWVsZC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgUGFnZSB9IGZyb20gJy4uL2dyaWQvcGFnZXIvcGFnZXIuY29tcG9uZW50JztcclxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb24ge1xyXG5cdHR5cGU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hSb3cge1xyXG5cdGtleT86IHN0cmluZztcclxuXHRtb2RlbE5hbWU/OiBzdHJpbmc7XHJcblx0c2VhcmNoPzogU2VhcmNoO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRJdGVtIHtcclxuXHRpc0FzYz86IGJvb2xlYW47XHJcblx0ZmllbGRzPzogc3RyaW5nW107XHJcblx0bGFiZWxzPzogc3RyaW5nW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRMYWJlbEFjdGlvbiB7XHJcblx0a2V5Pzogc3RyaW5nO1xyXG5cdHR5cGU/OiAnbW91c2VlbnRlcicgfCAnbW91c2VsZWF2ZScgfCAnY2xpY2snIHwgJ2RibGNsaWNrJztcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGlvblNlcnZpY2Uge1xyXG5cdHBvcE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRwYWdlID0gc2lnbmFsPFBhZ2UgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcblx0ZmllbGRMYWJlbEFjdGlvbiA9IHNpZ25hbDxGaWVsZExhYmVsQWN0aW9uIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG5cdGZpZWxkQWN0aW9uID0gc2lnbmFsPEZvcm1GaWVsZCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuXHRhY3Rpb24gPSBzaWduYWw8QWN0aW9uIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG5cdHNhdmVTaWduYWwgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgcGFnZUFjdGlvbjogUGFnZUFjdGlvblNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHBvcEFjdGlvbjogUG9wQWN0aW9uU2VydmljZSxcclxuXHQpIHt9XHJcblx0c2V0UG9wTW9kZShtb2RlOiBib29sZWFuKSB7XHJcblx0XHR0aGlzLnBvcE1vZGUgPSBtb2RlO1xyXG5cdH1cclxuXHRjbGVhcigpIHtcclxuXHRcdGlmICh0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0dGhpcy5wb3BBY3Rpb24uc2V0U2VhcmNoSXRlbSh1bmRlZmluZWQpO1xyXG5cdFx0XHR0aGlzLnBvcEFjdGlvbi5zZXRTZWFyY2hDbGVhcih1bmRlZmluZWQpO1xyXG5cdFx0XHR0aGlzLnBvcEFjdGlvbi5zZXRTb3J0SXRlbSh1bmRlZmluZWQpO1xyXG5cdFx0XHR0aGlzLnBvcEFjdGlvbi5zZXRNb2RlbE5hbWUodW5kZWZpbmVkKTtcclxuXHRcdFx0dGhpcy5wb3BBY3Rpb24uY2xlYXJTZWFyY2godW5kZWZpbmVkKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wYWdlQWN0aW9uLnNldFNlYXJjaEl0ZW0odW5kZWZpbmVkKTtcclxuXHRcdHRoaXMucGFnZUFjdGlvbi5zZXRTZWFyY2hDbGVhcih1bmRlZmluZWQpO1xyXG5cdFx0dGhpcy5wYWdlQWN0aW9uLnNldFNvcnRJdGVtKHVuZGVmaW5lZCk7XHJcblx0XHR0aGlzLnBhZ2VBY3Rpb24uc2V0TW9kZWxOYW1lKHVuZGVmaW5lZCk7XHJcblx0fVxyXG5cdHNldE1vZGVsTmFtZShtb2RlbE5hbWVGb3JTZWFyY2g6IFN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG5cdFx0aWYgKHRoaXMucG9wTW9kZSkge1xyXG5cdFx0XHR0aGlzLnBvcEFjdGlvbi5zZXRNb2RlbE5hbWUobW9kZWxOYW1lRm9yU2VhcmNoKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wYWdlQWN0aW9uLnNldE1vZGVsTmFtZShtb2RlbE5hbWVGb3JTZWFyY2gpO1xyXG5cdH1cclxuXHRnZXRNb2RlbE5hbWUoKTogU3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuXHRcdGlmICh0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMucG9wQWN0aW9uLmdldE1vZGVsTmFtZSgpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMucGFnZUFjdGlvbi5nZXRNb2RlbE5hbWUoKTtcclxuXHR9XHJcblx0Y2xlYXJTZWFyY2gobW9kZWxOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmICh0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0dGhpcy5wb3BBY3Rpb24uY2xlYXJTZWFyY2gobW9kZWxOYW1lKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wYWdlQWN0aW9uLmNsZWFyU2VhcmNoKG1vZGVsTmFtZSk7XHJcblx0fVxyXG5cdHNldFNlYXJjaChzZWFyY2g6IFNlYXJjaCwgbW9kZWxOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmICh0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0dGhpcy5wb3BBY3Rpb24uc2V0U2VhcmNoKHNlYXJjaCwgbW9kZWxOYW1lKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wYWdlQWN0aW9uLnNldFNlYXJjaChzZWFyY2gsIG1vZGVsTmFtZSk7XHJcblx0fVxyXG5cdGdldFNlYXJjaChtb2RlbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IFNlYXJjaCB8IHVuZGVmaW5lZCB7XHJcblx0XHRpZiAodGhpcy5wb3BNb2RlKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnBvcEFjdGlvbi5nZXRTZWFyY2gobW9kZWxOYW1lKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLnBhZ2VBY3Rpb24uZ2V0U2VhcmNoKG1vZGVsTmFtZSk7XHJcblx0fVxyXG5cdHNlYXJjaE1vbml0b3IobW9kZWxOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuXHRcdGlmICh0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMucG9wQWN0aW9uLnNlYXJjaE1vbml0b3IobW9kZWxOYW1lKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLnBhZ2VBY3Rpb24uc2VhcmNoTW9uaXRvcihtb2RlbE5hbWUpO1xyXG5cdH1cclxuXHRzZXRTZWFyY2hJdGVtKHNlYXJjaEl0ZW06IFNlYXJjaEl0ZW0gfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmICh0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0dGhpcy5wb3BBY3Rpb24uc2V0U2VhcmNoSXRlbShzZWFyY2hJdGVtKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wYWdlQWN0aW9uLnNldFNlYXJjaEl0ZW0oc2VhcmNoSXRlbSk7XHJcblx0fVxyXG5cdGdldFNlYXJjaEl0ZW0oKTogU2VhcmNoSXRlbSB8IHVuZGVmaW5lZCB7XHJcblx0XHRpZiAodGhpcy5wb3BNb2RlKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnBvcEFjdGlvbi5nZXRTZWFyY2hJdGVtKCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdGhpcy5wYWdlQWN0aW9uLmdldFNlYXJjaEl0ZW0oKTtcclxuXHR9XHJcblx0c2V0U2VhcmNoQ2xlYXIoc2VhcmNoQ2xlYXI6IFN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG5cdFx0aWYgKHRoaXMucG9wTW9kZSkge1xyXG5cdFx0XHR0aGlzLnBvcEFjdGlvbi5zZXRTZWFyY2hDbGVhcihzZWFyY2hDbGVhcik7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMucGFnZUFjdGlvbi5zZXRTZWFyY2hDbGVhcihzZWFyY2hDbGVhcik7XHJcblx0fVxyXG5cdGdldFNlYXJjaENsZWFyKCk6IFN0cmluZyB8IHVuZGVmaW5lZCB7XHJcblx0XHRpZiAodGhpcy5wb3BNb2RlKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnBvcEFjdGlvbi5nZXRTZWFyY2hDbGVhcigpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMucGFnZUFjdGlvbi5nZXRTZWFyY2hDbGVhcigpO1xyXG5cdH1cclxuXHRzZXRTb3J0SXRlbShzb3J0SXRlbTogU29ydEl0ZW0gfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmICh0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0dGhpcy5wb3BBY3Rpb24uc2V0U29ydEl0ZW0oc29ydEl0ZW0pO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLnBhZ2VBY3Rpb24uc2V0U29ydEl0ZW0oc29ydEl0ZW0pO1xyXG5cdH1cclxuXHRnZXRTb3J0SXRlbSgpOiBTb3J0SXRlbSB8IHVuZGVmaW5lZCB7XHJcblx0XHRpZiAodGhpcy5wb3BNb2RlKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnBvcEFjdGlvbi5nZXRTb3J0SXRlbSgpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMucGFnZUFjdGlvbi5nZXRTb3J0SXRlbSgpO1xyXG5cdH1cclxuXHRzZXRQYWdlKHBhZ2U6IFBhZ2UpIHtcclxuXHRcdHRoaXMucGFnZS5zZXQocGFnZSk7XHJcblx0fVxyXG5cdGdldFBhZ2UoKTogUGFnZSB8IHVuZGVmaW5lZCB7XHJcblx0XHRyZXR1cm4gdGhpcy5wYWdlKCk7XHJcblx0fVxyXG5cdHNldEZpZWxkTGFiZWxBY3Rpb24oa2V5OiBzdHJpbmcsIHR5cGU6ICdtb3VzZWVudGVyJyB8ICdtb3VzZWxlYXZlJyB8ICdjbGljaycgfCAnZGJsY2xpY2snKSB7XHJcblx0XHR0aGlzLmZpZWxkTGFiZWxBY3Rpb24uc2V0KHsga2V5LCB0eXBlIH0pO1xyXG5cdH1cclxuXHRnZXRGaWVsZExhYmVsQWN0aW9uKCk6IEZpZWxkTGFiZWxBY3Rpb24gfCB1bmRlZmluZWQge1xyXG5cdFx0cmV0dXJuIHRoaXMuZmllbGRMYWJlbEFjdGlvbigpO1xyXG5cdH1cclxuXHRzZXRGaWVsZEFjdGlvbihmaWVsZDogRm9ybUZpZWxkIHwgdW5kZWZpbmVkKSB7XHJcblx0XHR0aGlzLmZpZWxkQWN0aW9uLnNldChmaWVsZCk7XHJcblx0fVxyXG5cdGdldEZpZWxkQWN0aW9uKCk6IEZvcm1GaWVsZCB8IHVuZGVmaW5lZCB7XHJcblx0XHRyZXR1cm4gdGhpcy5maWVsZEFjdGlvbigpO1xyXG5cdH1cclxuXHRzZXRBY3Rpb24oYWN0aW9uOiBBY3Rpb24gfCB1bmRlZmluZWQpIHtcclxuXHRcdHRoaXMuYWN0aW9uLnNldChhY3Rpb24pO1xyXG5cdH1cclxuXHRnZXRBY3Rpb24oKTogQWN0aW9uIHwgdW5kZWZpbmVkIHtcclxuXHRcdHJldHVybiB0aGlzLmFjdGlvbigpO1xyXG5cdH1cclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2VBY3Rpb25TZXJ2aWNlIHtcclxuXHRtb2RlbE5hbWVGb3JTZWFyY2ggPSBzaWduYWw8U3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG5cdHNlYXJjaExpc3QgPSBzaWduYWw8U2VhcmNoUm93W10+KFtdKTtcclxuXHRzZWFyY2hJdGVtID0gc2lnbmFsPFNlYXJjaEl0ZW0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcblx0c2VhcmNoQ2xlYXIgPSBzaWduYWw8U3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG5cdHNvcnRJdGVtID0gc2lnbmFsPFNvcnRJdGVtIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7fVxyXG5cclxuXHRzZXRNb2RlbE5hbWUobW9kZWxOYW1lRm9yU2VhcmNoOiBTdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmIChtb2RlbE5hbWVGb3JTZWFyY2ggPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHRoaXMubW9kZWxOYW1lRm9yU2VhcmNoLnNldCh1bmRlZmluZWQpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLm1vZGVsTmFtZUZvclNlYXJjaC5zZXQobmV3IFN0cmluZyhtb2RlbE5hbWVGb3JTZWFyY2gpKTtcclxuXHR9XHJcblx0Z2V0TW9kZWxOYW1lKCk6IFN0cmluZyB8IHVuZGVmaW5lZCB7XHJcblx0XHRyZXR1cm4gdGhpcy5tb2RlbE5hbWVGb3JTZWFyY2goKTtcclxuXHR9XHJcblx0Y2xlYXJTZWFyY2gobW9kZWxOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmIChtb2RlbE5hbWUgPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGNvbnN0IGtleSA9IHRoaXMucm91dGVyLnVybDtcclxuXHRcdGxldCBzZWFyY2hMaXN0ID0gdW50cmFja2VkKCgpID0+IHRoaXMuc2VhcmNoTGlzdCgpKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ua2V5ICE9IGtleSB8fCBpdGVtLm1vZGVsTmFtZSAhPSBtb2RlbE5hbWUpO1xyXG5cdFx0dGhpcy5zZWFyY2hMaXN0LnNldChbLi4uc2VhcmNoTGlzdF0pO1xyXG5cdH1cclxuXHRzZXRTZWFyY2goc2VhcmNoOiBTZWFyY2gsIG1vZGVsTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcblx0XHRpZiAobW9kZWxOYW1lID09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRjb25zdCBzZWFyY2hSb3cgPSB7IGtleTogdGhpcy5yb3V0ZXIudXJsLCBtb2RlbE5hbWUsIHNlYXJjaCB9O1xyXG5cdFx0bGV0IHNlYXJjaExpc3QgPSB1bnRyYWNrZWQoKCkgPT4gdGhpcy5zZWFyY2hMaXN0KCkpLmZpbHRlcihcclxuXHRcdFx0KGl0ZW0pID0+IGl0ZW0ua2V5ICE9IHNlYXJjaFJvdy5rZXkgfHwgaXRlbS5tb2RlbE5hbWUgIT0gc2VhcmNoUm93Lm1vZGVsTmFtZSxcclxuXHRcdCk7XHJcblx0XHR0aGlzLnNlYXJjaExpc3Quc2V0KFsuLi5zZWFyY2hMaXN0LCBzZWFyY2hSb3ddKTtcclxuXHRcdHRoaXMuc2V0TW9kZWxOYW1lKG1vZGVsTmFtZSk7XHJcblx0fVxyXG5cdGdldFNlYXJjaChtb2RlbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IFNlYXJjaCB8IHVuZGVmaW5lZCB7XHJcblx0XHRpZiAobW9kZWxOYW1lID09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRjb25zdCBrZXkgPSB0aGlzLnJvdXRlci51cmw7XHJcblx0XHRjb25zdCByZXN1bHQgPSB1bnRyYWNrZWQoKCkgPT4gdGhpcy5zZWFyY2hMaXN0KCkpLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5rZXkgPT0ga2V5ICYmIGl0ZW0ubW9kZWxOYW1lID09IG1vZGVsTmFtZSk7XHJcblx0XHRyZXR1cm4gcmVzdWx0Lmxlbmd0aCA/IHJlc3VsdFswXS5zZWFyY2ggOiB1bmRlZmluZWQ7XHJcblx0fVxyXG5cdHNlYXJjaE1vbml0b3IobW9kZWxOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuXHRcdGNvbnN0IHNlYXJjaE5hbWUgPSB0aGlzLm1vZGVsTmFtZUZvclNlYXJjaCgpO1xyXG5cdFx0aWYgKHNlYXJjaE5hbWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHRydWU7XHJcblx0XHRpZiAoU3RyaW5nKHNlYXJjaE5hbWUpID09PSBtb2RlbE5hbWUpIHJldHVybiB0cnVlO1xyXG5cdFx0cmV0dXJuIGZhbHNlO1xyXG5cdH1cclxuXHRzZXRTZWFyY2hJdGVtKHNlYXJjaEl0ZW06IFNlYXJjaEl0ZW0gfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmIChzZWFyY2hJdGVtID09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHR0aGlzLnNlYXJjaEl0ZW0uc2V0KHVuZGVmaW5lZCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMuc2VhcmNoSXRlbS5zZXQoeyAuLi5zZWFyY2hJdGVtIH0pO1xyXG5cdH1cclxuXHRnZXRTZWFyY2hJdGVtKCk6IFNlYXJjaEl0ZW0gfCB1bmRlZmluZWQge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VhcmNoSXRlbSgpO1xyXG5cdH1cclxuXHRzZXRTZWFyY2hDbGVhcihzZWFyY2hDbGVhcjogU3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcblx0XHRpZiAoc2VhcmNoQ2xlYXIgPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHRoaXMuc2VhcmNoQ2xlYXIuc2V0KHVuZGVmaW5lZCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMuc2VhcmNoQ2xlYXIuc2V0KG5ldyBTdHJpbmcoc2VhcmNoQ2xlYXIpKTtcclxuXHR9XHJcblx0Z2V0U2VhcmNoQ2xlYXIoKTogU3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuXHRcdHJldHVybiB0aGlzLnNlYXJjaENsZWFyKCk7XHJcblx0fVxyXG5cdHNldFNvcnRJdGVtKHNvcnRJdGVtOiBTb3J0SXRlbSB8IHVuZGVmaW5lZCkge1xyXG5cdFx0dGhpcy5zb3J0SXRlbS5zZXQoc29ydEl0ZW0pO1xyXG5cdH1cclxuXHRnZXRTb3J0SXRlbSgpOiBTb3J0SXRlbSB8IHVuZGVmaW5lZCB7XHJcblx0XHRyZXR1cm4gdGhpcy5zb3J0SXRlbSgpO1xyXG5cdH1cclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvcEFjdGlvblNlcnZpY2Uge1xyXG5cdG1vZGVsTmFtZUZvclNlYXJjaCA9IHNpZ25hbDxTdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcblx0c2VhcmNoTGlzdCA9IHNpZ25hbDxTZWFyY2hSb3dbXT4oW10pO1xyXG5cdHNlYXJjaEl0ZW0gPSBzaWduYWw8U2VhcmNoSXRlbSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuXHRzZWFyY2hDbGVhciA9IHNpZ25hbDxTdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcblx0c29ydEl0ZW0gPSBzaWduYWw8U29ydEl0ZW0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkge31cclxuXHJcblx0c2V0TW9kZWxOYW1lKG1vZGVsTmFtZUZvclNlYXJjaDogU3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcblx0XHRpZiAobW9kZWxOYW1lRm9yU2VhcmNoID09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHR0aGlzLm1vZGVsTmFtZUZvclNlYXJjaC5zZXQodW5kZWZpbmVkKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5tb2RlbE5hbWVGb3JTZWFyY2guc2V0KG5ldyBTdHJpbmcobW9kZWxOYW1lRm9yU2VhcmNoKSk7XHJcblx0fVxyXG5cdGdldE1vZGVsTmFtZSgpOiBTdHJpbmcgfCB1bmRlZmluZWQge1xyXG5cdFx0cmV0dXJuIHRoaXMubW9kZWxOYW1lRm9yU2VhcmNoKCk7XHJcblx0fVxyXG5cdGNsZWFyU2VhcmNoKG1vZGVsTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcblx0XHR0aGlzLnNlYXJjaExpc3Quc2V0KFtdKTtcclxuXHR9XHJcblx0c2V0U2VhcmNoKHNlYXJjaDogU2VhcmNoLCBtb2RlbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG5cdFx0aWYgKG1vZGVsTmFtZSA9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3Qgc2VhcmNoUm93ID0geyBtb2RlbE5hbWUsIHNlYXJjaCB9O1xyXG5cdFx0bGV0IHNlYXJjaExpc3QgPSB1bnRyYWNrZWQoKCkgPT4gdGhpcy5zZWFyY2hMaXN0KCkpLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5tb2RlbE5hbWUgIT0gc2VhcmNoUm93Lm1vZGVsTmFtZSk7XHJcblx0XHR0aGlzLnNlYXJjaExpc3Quc2V0KFsuLi5zZWFyY2hMaXN0LCBzZWFyY2hSb3ddKTtcclxuXHRcdHRoaXMuc2V0TW9kZWxOYW1lKG1vZGVsTmFtZSk7XHJcblx0fVxyXG5cdGdldFNlYXJjaChtb2RlbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IFNlYXJjaCB8IHVuZGVmaW5lZCB7XHJcblx0XHRpZiAobW9kZWxOYW1lID09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRjb25zdCByZXN1bHQgPSB1bnRyYWNrZWQoKCkgPT4gdGhpcy5zZWFyY2hMaXN0KCkpLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5tb2RlbE5hbWUgPT0gbW9kZWxOYW1lKTtcclxuXHRcdHJldHVybiByZXN1bHQubGVuZ3RoID8gcmVzdWx0WzBdLnNlYXJjaCA6IHVuZGVmaW5lZDtcclxuXHR9XHJcblx0c2VhcmNoTW9uaXRvcihtb2RlbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xyXG5cdFx0Y29uc3Qgc2VhcmNoTmFtZSA9IHRoaXMubW9kZWxOYW1lRm9yU2VhcmNoKCk7XHJcblx0XHRpZiAoc2VhcmNoTmFtZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdHJ1ZTtcclxuXHRcdGlmIChTdHJpbmcoc2VhcmNoTmFtZSkgPT09IG1vZGVsTmFtZSkgcmV0dXJuIHRydWU7XHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG5cdHNldFNlYXJjaEl0ZW0oc2VhcmNoSXRlbTogU2VhcmNoSXRlbSB8IHVuZGVmaW5lZCkge1xyXG5cdFx0aWYgKHNlYXJjaEl0ZW0gPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHRoaXMuc2VhcmNoSXRlbS5zZXQodW5kZWZpbmVkKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5zZWFyY2hJdGVtLnNldCh7IC4uLnNlYXJjaEl0ZW0gfSk7XHJcblx0fVxyXG5cdGdldFNlYXJjaEl0ZW0oKTogU2VhcmNoSXRlbSB8IHVuZGVmaW5lZCB7XHJcblx0XHRyZXR1cm4gdGhpcy5zZWFyY2hJdGVtKCk7XHJcblx0fVxyXG5cdHNldFNlYXJjaENsZWFyKHNlYXJjaENsZWFyOiBTdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmIChzZWFyY2hDbGVhciA9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0dGhpcy5zZWFyY2hDbGVhci5zZXQodW5kZWZpbmVkKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5zZWFyY2hDbGVhci5zZXQobmV3IFN0cmluZyhzZWFyY2hDbGVhcikpO1xyXG5cdH1cclxuXHRnZXRTZWFyY2hDbGVhcigpOiBTdHJpbmcgfCB1bmRlZmluZWQge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VhcmNoQ2xlYXIoKTtcclxuXHR9XHJcblx0c2V0U29ydEl0ZW0oc29ydEl0ZW06IFNvcnRJdGVtIHwgdW5kZWZpbmVkKSB7XHJcblx0XHR0aGlzLnNvcnRJdGVtLnNldChzb3J0SXRlbSk7XHJcblx0fVxyXG5cdGdldFNvcnRJdGVtKCk6IFNvcnRJdGVtIHwgdW5kZWZpbmVkIHtcclxuXHRcdHJldHVybiB0aGlzLnNvcnRJdGVtKCk7XHJcblx0fVxyXG59XHJcbiJdfQ==
321
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUE4QjlELE1BQU0sT0FBTyxhQUFhO0lBT3pCLFlBQ1MsVUFBNkIsRUFDN0IsU0FBMkI7UUFEM0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFScEMsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixxQkFBZ0IsR0FBRyxNQUFNLENBQStCLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLGdCQUFXLEdBQUcsTUFBTSxDQUF3QixTQUFTLENBQUMsQ0FBQztRQUN2RCxXQUFNLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztRQUMvQyxlQUFVLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBS2pDLENBQUM7SUFDSixVQUFVLENBQUMsSUFBYTtRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBQ0QsS0FBSztRQUNKLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FB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QWMsQ0FBQyxXQUErQjtRQUM3QyxJQUFJLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxPQUFPO1FBQ1IsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELGNBQWM7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsV0FBVyxDQUFDLFFBQThCO1FBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxXQUFXO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0FyRVcsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FGaEIsTUFBTTs7NEZBRU4sZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNlYXJjaEl0ZW0gfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWFyY2ggfSBmcm9tICcuLi9hbS9hbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tICcuLi9mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFBhZ2UgfSBmcm9tICcuLi9ncmlkL3BhZ2VyL3BhZ2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uIHtcclxuXHR0eXBlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUm93IHtcclxuXHRrZXk/OiBzdHJpbmc7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdHNlYXJjaD86IFNlYXJjaDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTb3J0SXRlbSB7XHJcblx0aXNBc2M/OiBib29sZWFuO1xyXG5cdGZpZWxkcz86IHN0cmluZ1tdO1xyXG5cdGxhYmVscz86IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkTGFiZWxBY3Rpb24ge1xyXG5cdGtleT86IHN0cmluZztcclxuXHR0eXBlPzogJ21vdXNlZW50ZXInIHwgJ21vdXNlbGVhdmUnIHwgJ2NsaWNrJyB8ICdkYmxjbGljayc7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25TZXJ2aWNlIHtcclxuXHRwb3BNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcblx0ZmllbGRMYWJlbEFjdGlvbiA9IHNpZ25hbDxGaWVsZExhYmVsQWN0aW9uIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG5cdGZpZWxkQWN0aW9uID0gc2lnbmFsPEZvcm1GaWVsZCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuXHRhY3Rpb24gPSBzaWduYWw8QWN0aW9uIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG5cdHNhdmVTaWduYWwgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgcGFnZUFjdGlvbjogUGFnZUFjdGlvblNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHBvcEFjdGlvbjogUG9wQWN0aW9uU2VydmljZSxcclxuXHQpIHt9XHJcblx0c2V0UG9wTW9kZShtb2RlOiBib29sZWFuKSB7XHJcblx0XHR0aGlzLnBvcE1vZGUgPSBtb2RlO1xyXG5cdH1cclxuXHRjbGVhcigpIHtcclxuXHRcdGlmICh0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0dGhpcy5wb3BBY3Rpb24uc2V0U2VhcmNoSXRlbSh1bmRlZmluZWQpO1xyXG5cdFx0XHR0aGlzLnBvcEFjdGlvbi5zZXRTZWFyY2hDbGVhcih1bmRlZmluZWQpO1xyXG5cdFx0XHR0aGlzLnBvcEFjdGlvbi5zZXRTb3J0SXRlbSh1bmRlZmluZWQpO1xyXG5cdFx0XHR0aGlzLnBvcEFjdGlvbi5zZXRNb2RlbE5hbWUodW5kZWZpbmVkKTtcclxuXHRcdFx0dGhpcy5wb3BBY3Rpb24uY2xlYXJTZWFyY2godW5kZWZpbmVkKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wYWdlQWN0aW9uLnNldFNlYXJjaEl0ZW0odW5kZWZpbmVkKTtcclxuXHRcdHRoaXMucGFnZUFjdGlvbi5zZXRTZWFyY2hDbGVhcih1bmRlZmluZWQpO1xyXG5cdFx0dGhpcy5wYWdlQWN0aW9uLnNldFNvcnRJdGVtKHVuZGVmaW5lZCk7XHJcblx0XHR0aGlzLnBhZ2VBY3Rpb24uc2V0TW9kZWxOYW1lKHVuZGVmaW5lZCk7XHJcblx0fVxyXG5cdHNldE1vZGVsTmFtZShtb2RlbE5hbWVGb3JTZWFyY2g6IFN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG5cdFx0aWYgKHRoaXMucG9wTW9kZSkge1xyXG5cdFx0XHR0aGlzLnBvcEFjdGlvbi5zZXRNb2RlbE5hbWUobW9kZWxOYW1lRm9yU2VhcmNoKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wYWdlQWN0aW9uLnNldE1vZGVsTmFtZShtb2RlbE5hbWVGb3JTZWFyY2gpO1xyXG5cdH1cclxuXHRnZXRNb2RlbE5hbWUoKTogU3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuXHRcdGlmICh0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMucG9wQWN0aW9uLmdldE1vZGVsTmFtZSgpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMucGFnZUFjdGlvbi5nZXRNb2RlbE5hbWUoKTtcclxuXHR9XHJcblx0Y2xlYXJTZWFyY2gobW9kZWxOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmICh0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0dGhpcy5wb3BBY3Rpb24uY2xlYXJTZWFyY2gobW9kZWxOYW1lKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wYWdlQWN0aW9uLmNsZWFyU2VhcmNoKG1vZGVsTmFtZSk7XHJcblx0fVxyXG5cdHNldFNlYXJjaChzZWFyY2g6IFNlYXJjaCwgbW9kZWxOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmICh0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0dGhpcy5wb3BBY3Rpb24uc2V0U2VhcmNoKHNlYXJjaCwgbW9kZWxOYW1lKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wYWdlQWN0aW9uLnNldFNlYXJjaChzZWFyY2gsIG1vZGVsTmFtZSk7XHJcblx0fVxyXG5cdGdldFNlYXJjaChtb2RlbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IFNlYXJjaCB8IHVuZGVmaW5lZCB7XHJcblx0XHRpZiAodGhpcy5wb3BNb2RlKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnBvcEFjdGlvbi5nZXRTZWFyY2gobW9kZWxOYW1lKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLnBhZ2VBY3Rpb24uZ2V0U2VhcmNoKG1vZGVsTmFtZSk7XHJcblx0fVxyXG5cdHNlYXJjaE1vbml0b3IobW9kZWxOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuXHRcdGlmICh0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMucG9wQWN0aW9uLnNlYXJjaE1vbml0b3IobW9kZWxOYW1lKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLnBhZ2VBY3Rpb24uc2VhcmNoTW9uaXRvcihtb2RlbE5hbWUpO1xyXG5cdH1cclxuXHRzZXRTZWFyY2hJdGVtKHNlYXJjaEl0ZW06IFNlYXJjaEl0ZW0gfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmICh0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0dGhpcy5wb3BBY3Rpb24uc2V0U2VhcmNoSXRlbShzZWFyY2hJdGVtKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5wYWdlQWN0aW9uLnNldFNlYXJjaEl0ZW0oc2VhcmNoSXRlbSk7XHJcblx0fVxyXG5cdGdldFNlYXJjaEl0ZW0oKTogU2VhcmNoSXRlbSB8IHVuZGVmaW5lZCB7XHJcblx0XHRpZiAodGhpcy5wb3BNb2RlKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnBvcEFjdGlvbi5nZXRTZWFyY2hJdGVtKCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdGhpcy5wYWdlQWN0aW9uLmdldFNlYXJjaEl0ZW0oKTtcclxuXHR9XHJcblx0c2V0U2VhcmNoQ2xlYXIoc2VhcmNoQ2xlYXI6IFN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG5cdFx0aWYgKHRoaXMucG9wTW9kZSkge1xyXG5cdFx0XHR0aGlzLnBvcEFjdGlvbi5zZXRTZWFyY2hDbGVhcihzZWFyY2hDbGVhcik7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMucGFnZUFjdGlvbi5zZXRTZWFyY2hDbGVhcihzZWFyY2hDbGVhcik7XHJcblx0fVxyXG5cdGdldFNlYXJjaENsZWFyKCk6IFN0cmluZyB8IHVuZGVmaW5lZCB7XHJcblx0XHRpZiAodGhpcy5wb3BNb2RlKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnBvcEFjdGlvbi5nZXRTZWFyY2hDbGVhcigpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMucGFnZUFjdGlvbi5nZXRTZWFyY2hDbGVhcigpO1xyXG5cdH1cclxuXHRzZXRTb3J0SXRlbShzb3J0SXRlbTogU29ydEl0ZW0gfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmICh0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0dGhpcy5wb3BBY3Rpb24uc2V0U29ydEl0ZW0oc29ydEl0ZW0pO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLnBhZ2VBY3Rpb24uc2V0U29ydEl0ZW0oc29ydEl0ZW0pO1xyXG5cdH1cclxuXHRnZXRTb3J0SXRlbSgpOiBTb3J0SXRlbSB8IHVuZGVmaW5lZCB7XHJcblx0XHRpZiAodGhpcy5wb3BNb2RlKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnBvcEFjdGlvbi5nZXRTb3J0SXRlbSgpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMucGFnZUFjdGlvbi5nZXRTb3J0SXRlbSgpO1xyXG5cdH1cclxuXHRzZXRQYWdlKHBhZ2U6IFBhZ2UpIHtcclxuXHRcdGlmICghdGhpcy5wb3BNb2RlKSB7XHJcblx0XHRcdHRoaXMucGFnZUFjdGlvbi5zZXRQYWdlKHBhZ2UpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRnZXRQYWdlKCk6IFBhZ2UgfCB1bmRlZmluZWQge1xyXG5cdFx0aWYgKCF0aGlzLnBvcE1vZGUpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMucGFnZUFjdGlvbi5nZXRQYWdlKCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdH1cclxuXHRzZXRGaWVsZExhYmVsQWN0aW9uKGtleTogc3RyaW5nLCB0eXBlOiAnbW91c2VlbnRlcicgfCAnbW91c2VsZWF2ZScgfCAnY2xpY2snIHwgJ2RibGNsaWNrJykge1xyXG5cdFx0dGhpcy5maWVsZExhYmVsQWN0aW9uLnNldCh7IGtleSwgdHlwZSB9KTtcclxuXHR9XHJcblx0Z2V0RmllbGRMYWJlbEFjdGlvbigpOiBGaWVsZExhYmVsQWN0aW9uIHwgdW5kZWZpbmVkIHtcclxuXHRcdHJldHVybiB0aGlzLmZpZWxkTGFiZWxBY3Rpb24oKTtcclxuXHR9XHJcblx0c2V0RmllbGRBY3Rpb24oZmllbGQ6IEZvcm1GaWVsZCB8IHVuZGVmaW5lZCkge1xyXG5cdFx0dGhpcy5maWVsZEFjdGlvbi5zZXQoZmllbGQpO1xyXG5cdH1cclxuXHRnZXRGaWVsZEFjdGlvbigpOiBGb3JtRmllbGQgfCB1bmRlZmluZWQge1xyXG5cdFx0cmV0dXJuIHRoaXMuZmllbGRBY3Rpb24oKTtcclxuXHR9XHJcblx0c2V0QWN0aW9uKGFjdGlvbjogQWN0aW9uIHwgdW5kZWZpbmVkKSB7XHJcblx0XHR0aGlzLmFjdGlvbi5zZXQoYWN0aW9uKTtcclxuXHR9XHJcblx0Z2V0QWN0aW9uKCk6IEFjdGlvbiB8IHVuZGVmaW5lZCB7XHJcblx0XHRyZXR1cm4gdGhpcy5hY3Rpb24oKTtcclxuXHR9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlQWN0aW9uU2VydmljZSB7XHJcblx0bW9kZWxOYW1lRm9yU2VhcmNoID0gc2lnbmFsPFN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuXHRzZWFyY2hMaXN0ID0gc2lnbmFsPFNlYXJjaFJvd1tdPihbXSk7XHJcblx0c2VhcmNoSXRlbSA9IHNpZ25hbDxTZWFyY2hJdGVtIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG5cdHNlYXJjaENsZWFyID0gc2lnbmFsPFN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuXHRzb3J0SXRlbSA9IHNpZ25hbDxTb3J0SXRlbSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuXHRwYWdlID0gc2lnbmFsPFBhZ2UgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHt9XHJcblxyXG5cdHNldE1vZGVsTmFtZShtb2RlbE5hbWVGb3JTZWFyY2g6IFN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG5cdFx0aWYgKG1vZGVsTmFtZUZvclNlYXJjaCA9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0dGhpcy5tb2RlbE5hbWVGb3JTZWFyY2guc2V0KHVuZGVmaW5lZCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMubW9kZWxOYW1lRm9yU2VhcmNoLnNldChuZXcgU3RyaW5nKG1vZGVsTmFtZUZvclNlYXJjaCkpO1xyXG5cdH1cclxuXHRnZXRNb2RlbE5hbWUoKTogU3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuXHRcdHJldHVybiB0aGlzLm1vZGVsTmFtZUZvclNlYXJjaCgpO1xyXG5cdH1cclxuXHRjbGVhclNlYXJjaChtb2RlbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG5cdFx0aWYgKG1vZGVsTmFtZSA9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3Qga2V5ID0gdGhpcy5yb3V0ZXIudXJsO1xyXG5cdFx0bGV0IHNlYXJjaExpc3QgPSB1bnRyYWNrZWQoKCkgPT4gdGhpcy5zZWFyY2hMaXN0KCkpLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5rZXkgIT0ga2V5IHx8IGl0ZW0ubW9kZWxOYW1lICE9IG1vZGVsTmFtZSk7XHJcblx0XHR0aGlzLnNlYXJjaExpc3Quc2V0KFsuLi5zZWFyY2hMaXN0XSk7XHJcblx0fVxyXG5cdHNldFNlYXJjaChzZWFyY2g6IFNlYXJjaCwgbW9kZWxOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmIChtb2RlbE5hbWUgPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGNvbnN0IHNlYXJjaFJvdyA9IHsga2V5OiB0aGlzLnJvdXRlci51cmwsIG1vZGVsTmFtZSwgc2VhcmNoIH07XHJcblx0XHRsZXQgc2VhcmNoTGlzdCA9IHVudHJhY2tlZCgoKSA9PiB0aGlzLnNlYXJjaExpc3QoKSkuZmlsdGVyKFxyXG5cdFx0XHQoaXRlbSkgPT4gaXRlbS5rZXkgIT0gc2VhcmNoUm93LmtleSB8fCBpdGVtLm1vZGVsTmFtZSAhPSBzZWFyY2hSb3cubW9kZWxOYW1lLFxyXG5cdFx0KTtcclxuXHRcdHRoaXMuc2VhcmNoTGlzdC5zZXQoWy4uLnNlYXJjaExpc3QsIHNlYXJjaFJvd10pO1xyXG5cdFx0dGhpcy5zZXRNb2RlbE5hbWUobW9kZWxOYW1lKTtcclxuXHR9XHJcblx0Z2V0U2VhcmNoKG1vZGVsTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogU2VhcmNoIHwgdW5kZWZpbmVkIHtcclxuXHRcdGlmIChtb2RlbE5hbWUgPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGNvbnN0IGtleSA9IHRoaXMucm91dGVyLnVybDtcclxuXHRcdGNvbnN0IHJlc3VsdCA9IHVudHJhY2tlZCgoKSA9PiB0aGlzLnNlYXJjaExpc3QoKSkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmtleSA9PSBrZXkgJiYgaXRlbS5tb2RlbE5hbWUgPT0gbW9kZWxOYW1lKTtcclxuXHRcdHJldHVybiByZXN1bHQubGVuZ3RoID8gcmVzdWx0WzBdLnNlYXJjaCA6IHVuZGVmaW5lZDtcclxuXHR9XHJcblx0c2VhcmNoTW9uaXRvcihtb2RlbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xyXG5cdFx0Y29uc3Qgc2VhcmNoTmFtZSA9IHRoaXMubW9kZWxOYW1lRm9yU2VhcmNoKCk7XHJcblx0XHRpZiAoc2VhcmNoTmFtZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdHJ1ZTtcclxuXHRcdGlmIChTdHJpbmcoc2VhcmNoTmFtZSkgPT09IG1vZGVsTmFtZSkgcmV0dXJuIHRydWU7XHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG5cdHNldFNlYXJjaEl0ZW0oc2VhcmNoSXRlbTogU2VhcmNoSXRlbSB8IHVuZGVmaW5lZCkge1xyXG5cdFx0aWYgKHNlYXJjaEl0ZW0gPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHRoaXMuc2VhcmNoSXRlbS5zZXQodW5kZWZpbmVkKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5zZWFyY2hJdGVtLnNldCh7IC4uLnNlYXJjaEl0ZW0gfSk7XHJcblx0fVxyXG5cdGdldFNlYXJjaEl0ZW0oKTogU2VhcmNoSXRlbSB8IHVuZGVmaW5lZCB7XHJcblx0XHRyZXR1cm4gdGhpcy5zZWFyY2hJdGVtKCk7XHJcblx0fVxyXG5cdHNldFNlYXJjaENsZWFyKHNlYXJjaENsZWFyOiBTdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmIChzZWFyY2hDbGVhciA9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0dGhpcy5zZWFyY2hDbGVhci5zZXQodW5kZWZpbmVkKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5zZWFyY2hDbGVhci5zZXQobmV3IFN0cmluZyhzZWFyY2hDbGVhcikpO1xyXG5cdH1cclxuXHRnZXRTZWFyY2hDbGVhcigpOiBTdHJpbmcgfCB1bmRlZmluZWQge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VhcmNoQ2xlYXIoKTtcclxuXHR9XHJcblx0c2V0U29ydEl0ZW0oc29ydEl0ZW06IFNvcnRJdGVtIHwgdW5kZWZpbmVkKSB7XHJcblx0XHR0aGlzLnNvcnRJdGVtLnNldChzb3J0SXRlbSk7XHJcblx0fVxyXG5cdGdldFNvcnRJdGVtKCk6IFNvcnRJdGVtIHwgdW5kZWZpbmVkIHtcclxuXHRcdHJldHVybiB0aGlzLnNvcnRJdGVtKCk7XHJcblx0fVxyXG5cdHNldFBhZ2UocGFnZTogUGFnZSkge1xyXG5cdFx0dGhpcy5wYWdlLnNldChwYWdlKTtcclxuXHR9XHJcblx0Z2V0UGFnZSgpOiBQYWdlIHwgdW5kZWZpbmVkIHtcclxuXHRcdHJldHVybiB0aGlzLnBhZ2UoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQb3BBY3Rpb25TZXJ2aWNlIHtcclxuXHRtb2RlbE5hbWVGb3JTZWFyY2ggPSBzaWduYWw8U3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG5cdHNlYXJjaExpc3QgPSBzaWduYWw8U2VhcmNoUm93W10+KFtdKTtcclxuXHRzZWFyY2hJdGVtID0gc2lnbmFsPFNlYXJjaEl0ZW0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcblx0c2VhcmNoQ2xlYXIgPSBzaWduYWw8U3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG5cdHNvcnRJdGVtID0gc2lnbmFsPFNvcnRJdGVtIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG5cdHNldE1vZGVsTmFtZShtb2RlbE5hbWVGb3JTZWFyY2g6IFN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG5cdFx0aWYgKG1vZGVsTmFtZUZvclNlYXJjaCA9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0dGhpcy5tb2RlbE5hbWVGb3JTZWFyY2guc2V0KHVuZGVmaW5lZCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMubW9kZWxOYW1lRm9yU2VhcmNoLnNldChuZXcgU3RyaW5nKG1vZGVsTmFtZUZvclNlYXJjaCkpO1xyXG5cdH1cclxuXHRnZXRNb2RlbE5hbWUoKTogU3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuXHRcdHJldHVybiB0aGlzLm1vZGVsTmFtZUZvclNlYXJjaCgpO1xyXG5cdH1cclxuXHRjbGVhclNlYXJjaChtb2RlbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG5cdFx0dGhpcy5zZWFyY2hMaXN0LnNldChbXSk7XHJcblx0fVxyXG5cdHNldFNlYXJjaChzZWFyY2g6IFNlYXJjaCwgbW9kZWxOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmIChtb2RlbE5hbWUgPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGNvbnN0IHNlYXJjaFJvdyA9IHsgbW9kZWxOYW1lLCBzZWFyY2ggfTtcclxuXHRcdGxldCBzZWFyY2hMaXN0ID0gdW50cmFja2VkKCgpID0+IHRoaXMuc2VhcmNoTGlzdCgpKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ubW9kZWxOYW1lICE9IHNlYXJjaFJvdy5tb2RlbE5hbWUpO1xyXG5cdFx0dGhpcy5zZWFyY2hMaXN0LnNldChbLi4uc2VhcmNoTGlzdCwgc2VhcmNoUm93XSk7XHJcblx0XHR0aGlzLnNldE1vZGVsTmFtZShtb2RlbE5hbWUpO1xyXG5cdH1cclxuXHRnZXRTZWFyY2gobW9kZWxOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBTZWFyY2ggfCB1bmRlZmluZWQge1xyXG5cdFx0aWYgKG1vZGVsTmFtZSA9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgcmVzdWx0ID0gdW50cmFja2VkKCgpID0+IHRoaXMuc2VhcmNoTGlzdCgpKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ubW9kZWxOYW1lID09IG1vZGVsTmFtZSk7XHJcblx0XHRyZXR1cm4gcmVzdWx0Lmxlbmd0aCA/IHJlc3VsdFswXS5zZWFyY2ggOiB1bmRlZmluZWQ7XHJcblx0fVxyXG5cdHNlYXJjaE1vbml0b3IobW9kZWxOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuXHRcdGNvbnN0IHNlYXJjaE5hbWUgPSB0aGlzLm1vZGVsTmFtZUZvclNlYXJjaCgpO1xyXG5cdFx0aWYgKHNlYXJjaE5hbWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHRydWU7XHJcblx0XHRpZiAoU3RyaW5nKHNlYXJjaE5hbWUpID09PSBtb2RlbE5hbWUpIHJldHVybiB0cnVlO1xyXG5cdFx0cmV0dXJuIGZhbHNlO1xyXG5cdH1cclxuXHRzZXRTZWFyY2hJdGVtKHNlYXJjaEl0ZW06IFNlYXJjaEl0ZW0gfCB1bmRlZmluZWQpIHtcclxuXHRcdGlmIChzZWFyY2hJdGVtID09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHR0aGlzLnNlYXJjaEl0ZW0uc2V0KHVuZGVmaW5lZCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMuc2VhcmNoSXRlbS5zZXQoeyAuLi5zZWFyY2hJdGVtIH0pO1xyXG5cdH1cclxuXHRnZXRTZWFyY2hJdGVtKCk6IFNlYXJjaEl0ZW0gfCB1bmRlZmluZWQge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VhcmNoSXRlbSgpO1xyXG5cdH1cclxuXHRzZXRTZWFyY2hDbGVhcihzZWFyY2hDbGVhcjogU3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcblx0XHRpZiAoc2VhcmNoQ2xlYXIgPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHRoaXMuc2VhcmNoQ2xlYXIuc2V0KHVuZGVmaW5lZCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMuc2VhcmNoQ2xlYXIuc2V0KG5ldyBTdHJpbmcoc2VhcmNoQ2xlYXIpKTtcclxuXHR9XHJcblx0Z2V0U2VhcmNoQ2xlYXIoKTogU3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuXHRcdHJldHVybiB0aGlzLnNlYXJjaENsZWFyKCk7XHJcblx0fVxyXG5cdHNldFNvcnRJdGVtKHNvcnRJdGVtOiBTb3J0SXRlbSB8IHVuZGVmaW5lZCkge1xyXG5cdFx0dGhpcy5zb3J0SXRlbS5zZXQoc29ydEl0ZW0pO1xyXG5cdH1cclxuXHRnZXRTb3J0SXRlbSgpOiBTb3J0SXRlbSB8IHVuZGVmaW5lZCB7XHJcblx0XHRyZXR1cm4gdGhpcy5zb3J0SXRlbSgpO1xyXG5cdH1cclxufVxyXG4iXX0=
@@ -593,7 +593,6 @@ class ActionService {
593
593
  this.pageAction = pageAction;
594
594
  this.popAction = popAction;
595
595
  this.popMode = false;
596
- this.page = signal(undefined);
597
596
  this.fieldLabelAction = signal(undefined);
598
597
  this.fieldAction = signal(undefined);
599
598
  this.action = signal(undefined);
@@ -695,10 +694,15 @@ class ActionService {
695
694
  return this.pageAction.getSortItem();
696
695
  }
697
696
  setPage(page) {
698
- this.page.set(page);
697
+ if (!this.popMode) {
698
+ this.pageAction.setPage(page);
699
+ }
699
700
  }
700
701
  getPage() {
701
- return this.page();
702
+ if (!this.popMode) {
703
+ return this.pageAction.getPage();
704
+ }
705
+ return undefined;
702
706
  }
703
707
  setFieldLabelAction(key, type) {
704
708
  this.fieldLabelAction.set({ key, type });
@@ -735,6 +739,7 @@ class PageActionService {
735
739
  this.searchItem = signal(undefined);
736
740
  this.searchClear = signal(undefined);
737
741
  this.sortItem = signal(undefined);
742
+ this.page = signal(undefined);
738
743
  }
739
744
  setModelName(modelNameForSearch) {
740
745
  if (modelNameForSearch == undefined) {
@@ -805,6 +810,12 @@ class PageActionService {
805
810
  getSortItem() {
806
811
  return this.sortItem();
807
812
  }
813
+ setPage(page) {
814
+ this.page.set(page);
815
+ }
816
+ getPage() {
817
+ return this.page();
818
+ }
808
819
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageActionService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
809
820
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageActionService, providedIn: 'root' }); }
810
821
  }
@@ -2939,7 +2950,7 @@ class ImageComponent {
2939
2950
  @for (image of imageList; track image; let index = $index) {
2940
2951
  <div class="flex justify-between items-center file-item">
2941
2952
  <p-image
2942
- [src]="'http://192.168.180.140:8105/' + image"
2953
+ [src]="'https://hrimage.myfoodiepet.com//' + image"
2943
2954
  [preview]="true"
2944
2955
  alt="Image">
2945
2956
  <ng-template #indicator>
@@ -3008,7 +3019,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3008
3019
  @for (image of imageList; track image; let index = $index) {
3009
3020
  <div class="flex justify-between items-center file-item">
3010
3021
  <p-image
3011
- [src]="'http://192.168.180.140:8105/' + image"
3022
+ [src]="'https://hrimage.myfoodiepet.com//' + image"
3012
3023
  [preview]="true"
3013
3024
  alt="Image">
3014
3025
  <ng-template #indicator>
@@ -4269,6 +4280,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
4269
4280
  }]
4270
4281
  }] });
4271
4282
 
4283
+ const ColorMap = {
4284
+ emerald: '#10B981',
4285
+ green: '#22C55E',
4286
+ lime: '#84CC16',
4287
+ orange: '#F97316',
4288
+ amber: '#F59E0B',
4289
+ sky: '#0EA5E9',
4290
+ blue: '#3B82F6',
4291
+ violet: '#6B26C1',
4292
+ pink: '#EC4899',
4293
+ purple: '#9A72C8',
4294
+ red: '#EF4444',
4295
+ yellow: '#F59E0B',
4296
+ gray: '#4B5563',
4297
+ teal: '#16A34A',
4298
+ cyan: '#25D366',
4299
+ indigo: '#6574CD',
4300
+ fushsia: '#E10098',
4301
+ };
4302
+ class ChipRenderer {
4303
+ constructor() {
4304
+ this.label = '';
4305
+ this.color = '';
4306
+ }
4307
+ agInit(params) {
4308
+ const options = params.options;
4309
+ const item = options?.find((item) => item.value === params.value);
4310
+ this.label = item.label || '';
4311
+ this.color = item.chip ? ColorMap[item.chip] : '';
4312
+ }
4313
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChipRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4314
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ChipRenderer, isStandalone: true, selector: "ng-component", providers: [AsyncPipe], ngImport: i0, template: `
4315
+ @if (color) {
4316
+ <span
4317
+ class="cell-chip"
4318
+ [style]="{ background: color }"
4319
+ >{{ label }}</span
4320
+ >
4321
+ } @else {
4322
+ <span>{{ label }}</span>
4323
+ }
4324
+ `, isInline: true, styles: [".cell-chip{padding:2px 5px;color:#fff;border-radius:2px;font-size:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
4325
+ }
4326
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChipRenderer, decorators: [{
4327
+ type: Component,
4328
+ args: [{ standalone: true, imports: [CommonModule], providers: [AsyncPipe], template: `
4329
+ @if (color) {
4330
+ <span
4331
+ class="cell-chip"
4332
+ [style]="{ background: color }"
4333
+ >{{ label }}</span
4334
+ >
4335
+ } @else {
4336
+ <span>{{ label }}</span>
4337
+ }
4338
+ `, styles: [".cell-chip{padding:2px 5px;color:#fff;border-radius:2px;font-size:12px}\n"] }]
4339
+ }] });
4340
+
4272
4341
  // rowModelType 使用clientSide的最大值
4273
4342
  const CLIENTLIMIT = 9999;
4274
4343
  const components = {
@@ -4277,6 +4346,7 @@ const components = {
4277
4346
  cellEditSelectComponent: CellEditSelectComponent,
4278
4347
  linkRenderer: LinkRenderer,
4279
4348
  asyncRenderer: AsyncRenderer,
4349
+ chipRenderer: ChipRenderer,
4280
4350
  cellEditAutoCompleteComponent: CellEditAutoCompleteComponent,
4281
4351
  };
4282
4352
 
@@ -6005,6 +6075,9 @@ class FormFieldComponent {
6005
6075
  @if (props(field()!).required) {
6006
6076
  <span class="field-required">*</span>
6007
6077
  }
6078
+ @if (!field()?.fieldControl?.disabled) {
6079
+ <span class="iconfont icon-edit-flag field-editable"></span>
6080
+ }
6008
6081
  </label>
6009
6082
  </div>
6010
6083
  <div class="flex-1 min-h-8 pt-1 w-0 flex flex-row-reverse">
@@ -6017,7 +6090,7 @@ class FormFieldComponent {
6017
6090
  </div>
6018
6091
  </div>
6019
6092
  }
6020
- `, isInline: true, styles: [".p-field>label{margin:2px;text-overflow:ellipsis;display:block;color:#1e293b}.p-field>label:not(.ng-valid).ng-dirty{color:var(--p-red-500)!important}.p-field>label:not(.ng-valid).ng-dirty>.field-required{color:var(--p-red-500)!important}.field-required{padding-left:2.5px;color:var(--p-primary-color)}.field-label{display:inline-block;overflow-wrap:break-word;word-break:break-word;white-space:normal}\n"], dependencies: [{ kind: "component", type: FormFieldComponent, selector: "form-field", inputs: ["field"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: FormTypeComponent, selector: "form-type", inputs: ["field"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: LabelDirective, selector: "[fieldLabel]", inputs: ["fieldLabel"] }] }); }
6093
+ `, isInline: true, styles: [".p-field>label{margin:2px;text-overflow:ellipsis;display:block;color:#1e293b}.p-field>label:not(.ng-valid).ng-dirty{color:var(--p-red-500)!important}.p-field>label:not(.ng-valid).ng-dirty>.field-required{color:var(--p-red-500)!important}.field-required{padding-left:2.5px;color:var(--p-primary-color)}.p-field>label:not(.ng-valid).ng-dirty>.field-editable{color:var(--p-red-500)!important}.field-editable{padding-left:1px;font-size:6px;color:var(--p-primary-color)}.field-label{display:inline-block;overflow-wrap:break-word;word-break:break-word;white-space:normal}\n"], dependencies: [{ kind: "component", type: FormFieldComponent, selector: "form-field", inputs: ["field"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: FormTypeComponent, selector: "form-type", inputs: ["field"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: LabelDirective, selector: "[fieldLabel]", inputs: ["fieldLabel"] }] }); }
6021
6094
  }
6022
6095
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldComponent, decorators: [{
6023
6096
  type: Component,
@@ -6052,6 +6125,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
6052
6125
  @if (props(field()!).required) {
6053
6126
  <span class="field-required">*</span>
6054
6127
  }
6128
+ @if (!field()?.fieldControl?.disabled) {
6129
+ <span class="iconfont icon-edit-flag field-editable"></span>
6130
+ }
6055
6131
  </label>
6056
6132
  </div>
6057
6133
  <div class="flex-1 min-h-8 pt-1 w-0 flex flex-row-reverse">
@@ -6064,7 +6140,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
6064
6140
  </div>
6065
6141
  </div>
6066
6142
  }
6067
- `, styles: [".p-field>label{margin:2px;text-overflow:ellipsis;display:block;color:#1e293b}.p-field>label:not(.ng-valid).ng-dirty{color:var(--p-red-500)!important}.p-field>label:not(.ng-valid).ng-dirty>.field-required{color:var(--p-red-500)!important}.field-required{padding-left:2.5px;color:var(--p-primary-color)}.field-label{display:inline-block;overflow-wrap:break-word;word-break:break-word;white-space:normal}\n"] }]
6143
+ `, styles: [".p-field>label{margin:2px;text-overflow:ellipsis;display:block;color:#1e293b}.p-field>label:not(.ng-valid).ng-dirty{color:var(--p-red-500)!important}.p-field>label:not(.ng-valid).ng-dirty>.field-required{color:var(--p-red-500)!important}.field-required{padding-left:2.5px;color:var(--p-primary-color)}.p-field>label:not(.ng-valid).ng-dirty>.field-editable{color:var(--p-red-500)!important}.field-editable{padding-left:1px;font-size:6px;color:var(--p-primary-color)}.field-label{display:inline-block;overflow-wrap:break-word;word-break:break-word;white-space:normal}\n"] }]
6068
6144
  }], ctorParameters: () => [], propDecorators: { fieldComponents: [{
6069
6145
  type: ViewChildren,
6070
6146
  args: [FormFieldComponent]
@@ -6273,7 +6349,7 @@ class FormComponent {
6273
6349
  const fieldLabels = [];
6274
6350
  this.getFieldLabels(this.fieldComponents, fieldLabels);
6275
6351
  const offsetWidths = fieldLabels.map((fieldLabel) => fieldLabel.nativeElement.offsetWidth);
6276
- this.labelMinWidth.set(Math.max(...offsetWidths) + 18 + 'px');
6352
+ this.labelMinWidth.set(Math.max(...offsetWidths) + 24 + 'px');
6277
6353
  }
6278
6354
  getFieldLabels(fieldComponents, fieldLabels) {
6279
6355
  if (!fieldComponents) {
@@ -6649,7 +6725,7 @@ class ImportComponent {
6649
6725
  const link = document.createElement('a');
6650
6726
  link.href = isDevMode()
6651
6727
  ? '/importFiles/' + this.fileName() + '.xlsx'
6652
- : `${baseHref.replace(/\/(.*?)\//, "$1")}/importFiles/${this.fileName()}.xlsx`;
6728
+ : `/${baseHref.replace(/\/(.*?)\//, "$1")}/importFiles/${this.fileName()}.xlsx`;
6653
6729
  link.download = this.fileName() + '.xlsx';
6654
6730
  document.body.appendChild(link);
6655
6731
  link.click();