@stemy/ngx-dynamic-form 13.1.3 → 13.1.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.
Files changed (29) hide show
  1. package/esm2020/ngx-dynamic-form/common-types.mjs +1 -1
  2. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-array.component.mjs +28 -12
  3. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.mjs +37 -18
  4. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-control.component.mjs +5 -4
  5. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form.component.mjs +21 -11
  6. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-select.component.mjs +8 -5
  7. package/esm2020/ngx-dynamic-form/services/dynamic-form.service.mjs +97 -66
  8. package/esm2020/ngx-dynamic-form/utils/dynamic-editor.model.mjs +13 -0
  9. package/esm2020/ngx-dynamic-form/utils/dynamic-form-array.model.mjs +114 -5
  10. package/esm2020/ngx-dynamic-form/utils/form-select-subject.mjs +10 -7
  11. package/esm2020/ngx-dynamic-form/utils/misc.mjs +3 -2
  12. package/esm2020/public_api.mjs +5 -4
  13. package/fesm2015/stemy-ngx-dynamic-form.mjs +412 -211
  14. package/fesm2015/stemy-ngx-dynamic-form.mjs.map +1 -1
  15. package/fesm2020/stemy-ngx-dynamic-form.mjs +404 -204
  16. package/fesm2020/stemy-ngx-dynamic-form.mjs.map +1 -1
  17. package/ngx-dynamic-form/common-types.d.ts +3 -33
  18. package/ngx-dynamic-form/components/base/dynamic-base-form-array.component.d.ts +18 -10
  19. package/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.d.ts +10 -12
  20. package/ngx-dynamic-form/components/base/dynamic-base-form-control.component.d.ts +3 -2
  21. package/ngx-dynamic-form/components/base/dynamic-base-form.component.d.ts +3 -1
  22. package/ngx-dynamic-form/components/base/dynamic-base-select.component.d.ts +1 -0
  23. package/ngx-dynamic-form/ngx-dynamic-form.imports.d.ts +1 -1
  24. package/ngx-dynamic-form/services/dynamic-form.service.d.ts +12 -10
  25. package/ngx-dynamic-form/utils/dynamic-editor.model.d.ts +9 -0
  26. package/ngx-dynamic-form/utils/dynamic-form-array.model.d.ts +47 -4
  27. package/ngx-dynamic-form/utils/misc.d.ts +1 -0
  28. package/package.json +1 -1
  29. package/public_api.d.ts +5 -4
@@ -8,18 +8,21 @@ export class DynamicBaseSelectComponent extends DynamicBaseFormControlComponent
8
8
  this.groups$ = new BehaviorSubject([]);
9
9
  this.subscription = this.model.options$.subscribe(options => {
10
10
  const groupBy = this.model.inline || !this.model.multiple ? this.model.groupBy : null;
11
- const groups = options.reduce((res, option) => {
11
+ const grouped = options.reduce((res, option) => {
12
12
  const key = replaceSpecialChars(groupBy ? option.props[this.model.groupBy] || "default" : "default", "-");
13
13
  res[key] = res[key] || [];
14
14
  res[key].push(option);
15
15
  return res;
16
16
  }, {});
17
- this.groups$.next(Object.keys(groups).map(group => {
17
+ const groups = Object.keys(grouped).map(group => {
18
18
  return {
19
19
  group,
20
- options: groups[group]
20
+ options: grouped[group]
21
21
  };
22
- }));
22
+ });
23
+ this.hasOptions = groups.length > 0;
24
+ this.groups$.next(groups);
25
+ this.cdr.detectChanges();
23
26
  });
24
27
  }
25
28
  ngOnDestroy() {
@@ -60,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
60
63
  changeDetection: ChangeDetectionStrategy.OnPush
61
64
  }]
62
65
  }] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmd4LWR5bmFtaWMtZm9ybS9jb21wb25lbnRzL2Jhc2UvZHluYW1pYy1iYXNlLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFDLGVBQWUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUV0RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7QUFPckQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLCtCQUF3RDtJQU1wRyxRQUFRO1FBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBZ0MsRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN0RixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUMxQyxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDMUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzFCLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sR0FBRyxDQUFDO1lBQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzlDLE9BQU87b0JBQ0gsS0FBSztvQkFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQztpQkFDekIsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsWUFBWTtZQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBOEI7UUFDckMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzlDLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBOEIsRUFBRSxLQUFjO1FBQ3ZELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDckIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNuRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7Z0JBQ1osS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDMUI7WUFDRCxJQUFJLEtBQUssRUFBRTtnQkFDUCxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM1QjtZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7O3VIQXJEUSwwQkFBMEI7MkdBQTFCLDBCQUEwQixrRkFIekIsRUFBRTsyRkFHSCwwQkFBMEI7a0JBTHRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtEeW5hbWljQmFzZUZvcm1Db250cm9sQ29tcG9uZW50fSBmcm9tIFwiLi9keW5hbWljLWJhc2UtZm9ybS1jb250cm9sLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0R5bmFtaWNGb3JtT3B0aW9uLCBEeW5hbWljRm9ybU9wdGlvbkdyb3VwLCBEeW5hbWljU2VsZWN0TW9kZWx9IGZyb20gXCIuLi8uLi91dGlscy9keW5hbWljLXNlbGVjdC5tb2RlbFwiO1xyXG5pbXBvcnQge3JlcGxhY2VTcGVjaWFsQ2hhcnN9IGZyb20gXCIuLi8uLi91dGlscy9taXNjXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImR5bmFtaWMtYmFzZS1zZWxlY3RcIixcclxuICAgIHRlbXBsYXRlOiBcIlwiLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNCYXNlU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgRHluYW1pY0Jhc2VGb3JtQ29udHJvbENvbXBvbmVudDxEeW5hbWljU2VsZWN0TW9kZWw8YW55Pj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICAgZ3JvdXBzJDogQmVoYXZpb3JTdWJqZWN0PER5bmFtaWNGb3JtT3B0aW9uR3JvdXA8YW55PltdPjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ncm91cHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEeW5hbWljRm9ybU9wdGlvbkdyb3VwPGFueT5bXT4oW10pO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5tb2RlbC5vcHRpb25zJC5zdWJzY3JpYmUob3B0aW9ucyA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwQnkgPSB0aGlzLm1vZGVsLmlubGluZSB8fCAhdGhpcy5tb2RlbC5tdWx0aXBsZSA/IHRoaXMubW9kZWwuZ3JvdXBCeSA6IG51bGw7XHJcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IG9wdGlvbnMucmVkdWNlKChyZXMsIG9wdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gcmVwbGFjZVNwZWNpYWxDaGFycyhncm91cEJ5ID8gb3B0aW9uLnByb3BzW3RoaXMubW9kZWwuZ3JvdXBCeV0gfHwgXCJkZWZhdWx0XCIgOiBcImRlZmF1bHRcIiwgXCItXCIpO1xyXG4gICAgICAgICAgICAgICAgcmVzW2tleV0gPSByZXNba2V5XSB8fCBbXTtcclxuICAgICAgICAgICAgICAgIHJlc1trZXldLnB1c2gob3B0aW9uKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgICAgIH0sIHt9KTtcclxuICAgICAgICAgICAgdGhpcy5ncm91cHMkLm5leHQoT2JqZWN0LmtleXMoZ3JvdXBzKS5tYXAoZ3JvdXAgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBncm91cCxcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBncm91cHNbZ3JvdXBdXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKVxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzU2VsZWN0ZWQob3B0aW9uOiBEeW5hbWljRm9ybU9wdGlvbjxhbnk+KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMubW9kZWwubXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC52YWx1ZT8uaW5kZXhPZihvcHRpb24udmFsdWUpID49IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2wudmFsdWUgPT0gb3B0aW9uLnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdFRvZ2dsZShvcHRpb246IER5bmFtaWNGb3JtT3B0aW9uPGFueT4sIHN0YXRlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMubW9kZWwubXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBBcnJheS5mcm9tKHRoaXMuY29udHJvbC52YWx1ZSB8fCBbXSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdmFsdWUuaW5kZXhPZihvcHRpb24udmFsdWUpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoc3RhdGUpIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlLnB1c2gob3B0aW9uLnZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUob3B0aW9uLnZhbHVlKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKG9wdGlvbi52YWx1ZSk7XHJcbiAgICB9XHJcbn1cclxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1iYXNlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmd4LWR5bmFtaWMtZm9ybS9jb21wb25lbnRzL2Jhc2UvZHluYW1pYy1iYXNlLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFDLGVBQWUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUV0RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7QUFPckQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLCtCQUF3RDtJQU9wRyxRQUFRO1FBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBZ0MsRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN0RixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUMzQyxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDMUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzFCLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sR0FBRyxDQUFDO1lBQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ1AsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzVDLE9BQU87b0JBQ0gsS0FBSztvQkFDTCxPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQztpQkFDMUIsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUE4QjtRQUNyQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekQ7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUE4QixFQUFFLEtBQWM7UUFDdkQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNyQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtnQkFDWixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQzthQUMxQjtZQUNELElBQUksS0FBSyxFQUFFO2dCQUNQLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7dUhBekRRLDBCQUEwQjsyR0FBMUIsMEJBQTBCLGtGQUh6QixFQUFFOzJGQUdILDBCQUEwQjtrQkFMdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge0R5bmFtaWNCYXNlRm9ybUNvbnRyb2xDb21wb25lbnR9IGZyb20gXCIuL2R5bmFtaWMtYmFzZS1mb3JtLWNvbnRyb2wuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RHluYW1pY0Zvcm1PcHRpb24sIER5bmFtaWNGb3JtT3B0aW9uR3JvdXAsIER5bmFtaWNTZWxlY3RNb2RlbH0gZnJvbSBcIi4uLy4uL3V0aWxzL2R5bmFtaWMtc2VsZWN0Lm1vZGVsXCI7XHJcbmltcG9ydCB7cmVwbGFjZVNwZWNpYWxDaGFyc30gZnJvbSBcIi4uLy4uL3V0aWxzL21pc2NcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiZHluYW1pYy1iYXNlLXNlbGVjdFwiLFxyXG4gICAgdGVtcGxhdGU6IFwiXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Jhc2VTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljQmFzZUZvcm1Db250cm9sQ29tcG9uZW50PER5bmFtaWNTZWxlY3RNb2RlbDxhbnk+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBncm91cHMkOiBCZWhhdmlvclN1YmplY3Q8RHluYW1pY0Zvcm1PcHRpb25Hcm91cDxhbnk+W10+O1xyXG4gICAgaGFzT3B0aW9uczogYm9vbGVhbjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ncm91cHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEeW5hbWljRm9ybU9wdGlvbkdyb3VwPGFueT5bXT4oW10pO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5tb2RlbC5vcHRpb25zJC5zdWJzY3JpYmUob3B0aW9ucyA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwQnkgPSB0aGlzLm1vZGVsLmlubGluZSB8fCAhdGhpcy5tb2RlbC5tdWx0aXBsZSA/IHRoaXMubW9kZWwuZ3JvdXBCeSA6IG51bGw7XHJcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwZWQgPSBvcHRpb25zLnJlZHVjZSgocmVzLCBvcHRpb24pID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IHJlcGxhY2VTcGVjaWFsQ2hhcnMoZ3JvdXBCeSA/IG9wdGlvbi5wcm9wc1t0aGlzLm1vZGVsLmdyb3VwQnldIHx8IFwiZGVmYXVsdFwiIDogXCJkZWZhdWx0XCIsIFwiLVwiKTtcclxuICAgICAgICAgICAgICAgIHJlc1trZXldID0gcmVzW2tleV0gfHwgW107XHJcbiAgICAgICAgICAgICAgICByZXNba2V5XS5wdXNoKG9wdGlvbik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgICB9LCB7fSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IE9iamVjdC5rZXlzKGdyb3VwZWQpLm1hcChncm91cCA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLFxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGdyb3VwZWRbZ3JvdXBdXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5oYXNPcHRpb25zID0gZ3JvdXBzLmxlbmd0aCA+IDA7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBzJC5uZXh0KGdyb3Vwcyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pXHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNTZWxlY3RlZChvcHRpb246IER5bmFtaWNGb3JtT3B0aW9uPGFueT4pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5tb2RlbC5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sLnZhbHVlPy5pbmRleE9mKG9wdGlvbi52YWx1ZSkgPj0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC52YWx1ZSA9PSBvcHRpb24udmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0VG9nZ2xlKG9wdGlvbjogRHluYW1pY0Zvcm1PcHRpb248YW55Piwgc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5tb2RlbC5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IEFycmF5LmZyb20odGhpcy5jb250cm9sLnZhbHVlIHx8IFtdKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB2YWx1ZS5pbmRleE9mKG9wdGlvbi52YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChzdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUucHVzaChvcHRpb24udmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShvcHRpb24udmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2Uob3B0aW9uLnZhbHVlKTtcclxuICAgIH1cclxufVxyXG4iXX0=