@wemake4u/form-player-se 1.0.40 → 1.0.41

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 (35) hide show
  1. package/esm2022/lib/components/setFilter/setFilter.component.mjs +18 -3
  2. package/esm2022/lib/controls/accordion.mjs +50 -3
  3. package/esm2022/lib/controls/control.mjs +70 -25
  4. package/esm2022/lib/controls/factory.mjs +42 -42
  5. package/esm2022/lib/controls/tab.mjs +47 -25
  6. package/esm2022/lib/controls/table.mjs +89 -15
  7. package/esm2022/lib/controls/textfield.mjs +4 -3
  8. package/esm2022/lib/directives/register.directive.mjs +28 -9
  9. package/esm2022/lib/directives/tabcontrol.directive.mjs +1 -1
  10. package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +11 -4
  11. package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +8 -5
  12. package/esm2022/lib/services/formatter.service.mjs +3 -1
  13. package/esm2022/lib/services/navigation.service.mjs +35 -0
  14. package/esm2022/lib/services/register.service.mjs +40 -2
  15. package/esm2022/lib/services/state.service.mjs +40 -0
  16. package/esm2022/lib/utils/navigation.mjs +20 -0
  17. package/esm2022/lib/utils/patch.mjs +17 -0
  18. package/esm2022/public-api.mjs +3 -1
  19. package/fesm2022/wemake4u-form-player-se.mjs +510 -157
  20. package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
  21. package/lib/controls/accordion.d.ts +5 -1
  22. package/lib/controls/control.d.ts +31 -12
  23. package/lib/controls/factory.d.ts +2 -4
  24. package/lib/controls/tab.d.ts +9 -6
  25. package/lib/controls/table.d.ts +16 -5
  26. package/lib/controls/textfield.d.ts +1 -1
  27. package/lib/directives/register.directive.d.ts +3 -2
  28. package/lib/dynamic-fields/dynamic-fields.component.d.ts +3 -1
  29. package/lib/services/navigation.service.d.ts +11 -0
  30. package/lib/services/register.service.d.ts +9 -0
  31. package/lib/services/state.service.d.ts +14 -0
  32. package/lib/utils/navigation.d.ts +6 -0
  33. package/lib/utils/patch.d.ts +1 -0
  34. package/package.json +1 -1
  35. package/public-api.d.ts +2 -0
@@ -67,8 +67,23 @@ export class SetFilterComponent {
67
67
  };
68
68
  }
69
69
  setModel(model) {
70
- const selected = model?.values ?? this.options.map(o => o.value);
71
- this.options.forEach(o => o.selected = selected.includes(o.value));
70
+ // no filter = all selected
71
+ if (model == null)
72
+ return;
73
+ this.selectAll = false;
74
+ // all unselected
75
+ if (model?.type === 'excludeAll') {
76
+ this.options.forEach(o => o.selected = false);
77
+ }
78
+ // one selected
79
+ else if (model?.type === 'equals') {
80
+ this.options.forEach(o => o.selected = (o.value == model.filter));
81
+ }
82
+ // many selected
83
+ else if (model?.operator === 'OR' && Array.isArray(model.conditions)) {
84
+ const selected = model.conditions.map((x) => x.filter);
85
+ this.options.forEach(o => o.selected = selected.includes(o.value));
86
+ }
72
87
  this.updateFilteredOptions();
73
88
  }
74
89
  onSelectionChange() {
@@ -123,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
123
138
  SirioCheckboxComponent, SirioCheckboxGroupComponent,
124
139
  SirioButtonComponent], template: "<div style=\"padding: 5px;background-color: white;\">\r\n\r\n <div style=\"padding: 5px\">\r\n <ngx-sirio-input type=\"text\"\r\n [placeholder]=\"Texts.TypeToSearch\"\r\n [(ngModel)]=\"searchText\"\r\n (ngModelChange)=\"onSearchChange()\">\r\n </ngx-sirio-input>\r\n </div>\r\n\r\n <div style=\"padding: 5px; max-height: 200px; overflow-y: auto;\">\r\n <ngx-sirio-checkbox [(ngModel)]=\"selectAll\" (ngModelChange)=\"onSelectAllChange()\">{{Texts.SelectAll}}</ngx-sirio-checkbox>\r\n\r\n <ngx-sirio-checkbox-group>\r\n <ngx-sirio-checkbox *ngFor=\"let option of filteredOptions\"\r\n [(ngModel)]=\"option.selected\"\r\n [value]=\"option.value\"\r\n (change)=\"onSelectionChange()\">\r\n {{ option.label }}\r\n </ngx-sirio-checkbox>\r\n </ngx-sirio-checkbox-group>\r\n </div>\r\n\r\n</div>\r\n" }]
125
140
  }] });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0RmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2NvbXBvbmVudHMvc2V0RmlsdGVyL3NldEZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9jb21wb25lbnRzL3NldEZpbHRlci9zZXRmaWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBUy9DLE1BQU0sT0FBTyxrQkFBa0I7SUFDckIsTUFBTSxDQUFpQjtJQUN2QixTQUFTLENBQVU7SUFFM0IsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVkLFNBQVMsR0FBWSxJQUFJLENBQUM7SUFDMUIsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUV4QixPQUFPLEdBQXVELEVBQUUsQ0FBQztJQUNqRSxlQUFlLEdBQXdCLEVBQUUsQ0FBQztJQUUxQyxNQUFNLENBQUMsTUFBcUI7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQU0sQ0FBQztRQUV0QyxNQUFNLEdBQUcsR0FBRyxNQUFN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ZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzdDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUN2QyxDQUFDO0lBQ0osQ0FBQztJQUVPLFdBQVcsQ0FBQyxHQUFRLEVBQUUsSUFBWTtRQUN4QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDO1FBRXZELFFBQVEsWUFBWSxFQUFFLENBQUM7WUFDckIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxVQUFVO2dCQUNiLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssTUFBTTtnQkFDVCxPQUFPLE1BQU0sQ0FBQztZQUNoQjtnQkFDRSxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO0lBRUgsQ0FBQzt3R0ExSVUsa0JBQWtCOzRGQUFsQixrQkFBa0Isd0VDaEIvQixxOEJBd0JBLDJDRFpZLFlBQVksMkpBQUUsV0FBVywrVkFBRSxtQkFBbUIsMlhBQ3BELHNCQUFzQixxUEFBRSwyQkFBMkI7OzRGQUc1QyxrQkFBa0I7a0JBUDlCLFNBQVM7aUNBRUksSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUI7d0JBQ3BELHNCQUFzQixFQUFFLDJCQUEyQjt3QkFDbkQsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IElGaWx0ZXJQYXJhbXMsIElEb2VzRmlsdGVyUGFzc1BhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcclxuaW1wb3J0IHsgSUZpbHRlckFuZ3VsYXJDb21wIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBTaXJpb0lucHV0Q29tcG9uZW50LCBTaXJpb0NoZWNrYm94R3JvdXBDb21wb25lbnQsIFNpcmlvQ2hlY2tib3hDb21wb25lbnQsIFNpcmlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnbmd4LXNpcmlvLWxpYic7XHJcbmltcG9ydCB7IGlzUmVjb3JkIH0gZnJvbSAnLi4vLi4vY29tbW9uL3JlY29yZCc7XHJcbmltcG9ydCB7IFRleHRzIH0gZnJvbSAnLi4vLi4vbG9jYWxlL2xvY2FsZS1pdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vc2V0ZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBTaXJpb0lucHV0Q29tcG9uZW50XHJcbiAgICAsIFNpcmlvQ2hlY2tib3hDb21wb25lbnQsIFNpcmlvQ2hlY2tib3hHcm91cENvbXBvbmVudFxyXG4gICAgLCBTaXJpb0J1dHRvbkNvbXBvbmVudF0sICBcclxufSlcclxuZXhwb3J0IGNsYXNzIFNldEZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIElGaWx0ZXJBbmd1bGFyQ29tcCB7XHJcbiAgcHJpdmF0ZSBwYXJhbXMhOiBJRmlsdGVyUGFyYW1zO1xyXG4gIHByaXZhdGUgZmllbGROYW1lITogc3RyaW5nO1xyXG5cclxuICBUZXh0cyA9IFRleHRzO1xyXG5cclxuICBzZWxlY3RBbGw6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNlYXJjaFRleHQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBvcHRpb25zOiB7IHZhbHVlOiBhbnk7IGxhYmVsOiBzdHJpbmc7IHNlbGVjdGVkOiBib29sZWFuIH1bXSA9IFtdO1xyXG4gIGZpbHRlcmVkT3B0aW9uczogdHlwZW9mIHRoaXMub3B0aW9ucyA9IFtdO1xyXG5cclxuICBhZ0luaXQocGFyYW1zOiBJRmlsdGVyUGFyYW1zKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcclxuICAgIHRoaXMuZmllbGROYW1lID0gcGFyYW1zLmNvbERlZi5maWVsZCE7XHJcblxyXG4gICAgY29uc3QgbWFwID0gcGFyYW1zLmNvbERlZi5maWx0ZXJQYXJhbXM/Lm1hcDtcclxuXHJcbiAgICBjb25zdCByZXN1bHQgPSBpc1JlY29yZChcclxuICAgICAgbWFwLFxyXG4gICAgICBrZXkgPT4gdHlwZW9mIGtleSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGtleSA9PT0gJ251bWJlcicsXHJcbiAgICAgIHZhbCA9PiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJ1xyXG4gICAgKTtcclxuXHJcbiAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5lbnRyaWVzKG1hcCkubWFwKChba2V5LCBsYWJlbF0pID0+ICh7XHJcbiAgICAgICAgdmFsdWU6IHRoaXMucGFyc2VLZXkoa2V5KSxcclxuICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgc2VsZWN0ZWQ6IHRydWVcclxuICAgICAgfSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IFsuLi50aGlzLm9wdGlvbnNdO1xyXG4gIH1cclxuXHJcbiAgaXNGaWx0ZXJBY3RpdmUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnNvbWUobyA9PiAhby5zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBkb2VzRmlsdGVyUGFzcyhwYXJhbXM6IElEb2VzRmlsdGVyUGFzc1BhcmFtcyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnJlc29sdmVQYXRoKHBhcmFtcy5kYXRhLCB0aGlzLmZpZWxkTmFtZSk7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnNvbWUobyA9PiBvLnNlbGVjdGVkICYmIG8udmFsdWUgPT09IHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldE1vZGVsKCkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXMgPSB0aGlzLm9wdGlvbnNcclxuICAgICAgLmZpbHRlcihvID0+IG8uc2VsZWN0ZWQpXHJcbiAgICAgIC5tYXAobyA9PiBvLnZhbHVlKTtcclxuXHJcbiAgICBpZiAoc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSB0aGlzLm9wdGlvbnMubGVuZ3RoKSB7IFxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZmlsdGVyVHlwZTogJ3RleHQnLFxyXG4gICAgICAgIHR5cGU6ICdleGNsdWRlQWxsJ1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmlsdGVyVHlwZSA9IHRoaXMuZ2V0RmlsdGVyVHlwZSgpO1xyXG5cclxuICAgIGNvbnN0IGZpbHRlcnMgPSBzZWxlY3RlZFZhbHVlcy5tYXAodmFsdWUgPT4gKHtcclxuICAgICAgZmlsdGVyVHlwZTogZmlsdGVyVHlwZSxcclxuICAgICAgdHlwZTogJ2VxdWFscycsXHJcbiAgICAgIGZpbHRlcjogdmFsdWVcclxuICAgIH0pKTtcclxuXHJcbiAgICBpZiAoZmlsdGVycy5sZW5ndGggPT09IDEpXHJcbiAgICAgIHJldHVybiBmaWx0ZXJzWzBdO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGZpbHRlclR5cGU6IGZpbHRlclR5cGUsXHJcbiAgICAgIG9wZXJhdG9yOiAnT1InLFxyXG4gICAgICBjb25kaXRpb25zOiBmaWx0ZXJzXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRNb2RlbChtb2RlbDogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWxlY3RlZCA9IG1vZGVsPy52YWx1ZXMgPz8gdGhpcy5vcHRpb25zLm1hcChvID0+IG8udmFsdWUpO1xyXG4gICAgdGhpcy5vcHRpb25zLmZvckVhY2gobyA9PiBvLnNlbGVjdGVkID0gc2VsZWN0ZWQuaW5jbHVkZXMoby52YWx1ZSkpO1xyXG4gICAgdGhpcy51cGRhdGVGaWx0ZXJlZE9wdGlvbnMoKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5wYXJhbXMuZmlsdGVyQ2hhbmdlZENhbGxiYWNrKCk7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaENoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlRmlsdGVyZWRPcHRpb25zKCk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdEFsbENoYW5nZSgpOiB2b2lkIHsgICAgXHJcbiAgICB0aGlzLnNldEFsbCh0aGlzLnNlbGVjdEFsbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZyB7XHJcbiAgICBpZiAoa2V5ID09PSAndHJ1ZScpIHJldHVybiB0cnVlO1xyXG4gICAgaWYgKGtleSA9PT0gJ2ZhbHNlJykgcmV0dXJuIGZhbHNlO1xyXG4gICAgY29uc3QgbnVtID0gTnVtYmVyKGtleSk7XHJcbiAgICByZXR1cm4gaXNOYU4obnVtKSA/IGtleSA6IG51bTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0QWxsKHNlbGVjdDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5vcHRpb25zLmZvckVhY2gobyA9PiBvLnNlbGVjdGVkID0gc2VsZWN0KTtcclxuICAgIHRoaXMudXBkYXRlRmlsdGVyZWRPcHRpb25zKCk7XHJcbiAgICB0aGlzLnBhcmFtcy5maWx0ZXJDaGFuZ2VkQ2FsbGJhY2soKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRmlsdGVyZWRPcHRpb25zKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VhcmNoID0gdGhpcy5zZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCk7XHJcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5maWx0ZXIobyA9PlxyXG4gICAgICBvLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzb2x2ZVBhdGgob2JqOiBhbnksIHBhdGg6IHN0cmluZyk6IGFueSB7XHJcbiAgICByZXR1cm4gcGF0aC5zcGxpdCgnLicpLnJlZHVjZSgoYWNjLCBwYXJ0KSA9PiBhY2M/LltwYXJ0XSwgb2JqKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RmlsdGVyVHlwZSgpIHtcclxuICAgIGNvbnN0IGNlbGxEYXRhVHlwZSA9IHRoaXMucGFyYW1zPy5jb2xEZWY/LmNlbGxEYXRhVHlwZTtcclxuXHJcbiAgICBzd2l0Y2ggKGNlbGxEYXRhVHlwZSkge1xyXG4gICAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICAgIHJldHVybiAnbnVtYmVyJztcclxuICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgIGNhc2UgJ2RhdGVUaW1lJzpcclxuICAgICAgICByZXR1cm4gJ2RhdGUnO1xyXG4gICAgICBjYXNlICd0ZXh0JzpcclxuICAgICAgICByZXR1cm4gJ3RleHQnO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnbnVtYmVyJztcclxuICAgIH1cclxuICAgIFxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IHN0eWxlPVwicGFkZGluZzogNXB4O2JhY2tncm91bmQtY29sb3I6IHdoaXRlO1wiPlxyXG5cclxuICA8ZGl2IHN0eWxlPVwicGFkZGluZzogNXB4XCI+XHJcbiAgICA8bmd4LXNpcmlvLWlucHV0IHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlRleHRzLlR5cGVUb1NlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoQ2hhbmdlKClcIj5cclxuICAgIDwvbmd4LXNpcmlvLWlucHV0PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IHN0eWxlPVwicGFkZGluZzogNXB4OyBtYXgtaGVpZ2h0OiAyMDBweDsgb3ZlcmZsb3cteTogYXV0bztcIj5cclxuICAgIDxuZ3gtc2lyaW8tY2hlY2tib3ggWyhuZ01vZGVsKV09XCJzZWxlY3RBbGxcIiAobmdNb2RlbENoYW5nZSk9XCJvblNlbGVjdEFsbENoYW5nZSgpXCI+e3tUZXh0cy5TZWxlY3RBbGx9fTwvbmd4LXNpcmlvLWNoZWNrYm94PlxyXG5cclxuICAgIDxuZ3gtc2lyaW8tY2hlY2tib3gtZ3JvdXA+XHJcbiAgICAgIDxuZ3gtc2lyaW8tY2hlY2tib3ggKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwib3B0aW9uLnNlbGVjdGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKClcIj5cclxuICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cclxuICAgICAgPC9uZ3gtc2lyaW8tY2hlY2tib3g+XHJcbiAgICA8L25neC1zaXJpby1jaGVja2JveC1ncm91cD5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0RmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2NvbXBvbmVudHMvc2V0RmlsdGVyL3NldEZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9jb21wb25lbnRzL3NldEZpbHRlci9zZXRmaWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBUy9DLE1BQU0sT0FBTyxrQkFBa0I7SUFDckIsTUFBTSxDQUFpQjtJQUN2QixTQUFTLENBQVU7SUFFM0IsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVkLFNBQVMsR0FBWSxJQUFJLENBQUM7SUFDMUIsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUV4QixPQUFPLEdBQXVELEVBQUUsQ0FBQztJQUNqRSxlQUFlLEdBQXdCLEVBQUUsQ0FBQztJQUUxQyxNQUFNLENBQUMsTUFBcUI7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQU0sQ0FBQztRQUV0QyxNQUFNLEdBQUcsR0FBRyxNQUFN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LE1BQU0sRUFBRSxZQUFZLENBQUM7UUFFdkQsUUFBUSxZQUFZLEVBQUUsQ0FBQztZQUNyQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxRQUFRLENBQUM7WUFDbEIsS0FBSyxNQUFNLENBQUM7WUFDWixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxNQUFNLENBQUM7WUFDaEIsS0FBSyxNQUFNO2dCQUNULE9BQU8sTUFBTSxDQUFDO1lBQ2hCO2dCQUNFLE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUM7SUFFSCxDQUFDO3dHQTdKVSxrQkFBa0I7NEZBQWxCLGtCQUFrQix3RUNoQi9CLHE4QkF3QkEsMkNEWlksWUFBWSwySkFBRSxXQUFXLCtWQUFFLG1CQUFtQiwyWEFDcEQsc0JBQXNCLHFQQUFFLDJCQUEyQjs7NEZBRzVDLGtCQUFrQjtrQkFQOUIsU0FBUztpQ0FFSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQjt3QkFDcEQsc0JBQXNCLEVBQUUsMkJBQTJCO3dCQUNuRCxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSUZpbHRlclBhcmFtcywgSURvZXNGaWx0ZXJQYXNzUGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xyXG5pbXBvcnQgeyBJRmlsdGVyQW5ndWxhckNvbXAgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvYW5ndWxhcic7XHJcbmltcG9ydCB7IFNpcmlvSW5wdXRDb21wb25lbnQsIFNpcmlvQ2hlY2tib3hHcm91cENvbXBvbmVudCwgU2lyaW9DaGVja2JveENvbXBvbmVudCwgU2lyaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICduZ3gtc2lyaW8tbGliJztcclxuaW1wb3J0IHsgaXNSZWNvcmQgfSBmcm9tICcuLi8uLi9jb21tb24vcmVjb3JkJztcclxuaW1wb3J0IHsgVGV4dHMgfSBmcm9tICcuLi8uLi9sb2NhbGUvbG9jYWxlLWl0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXRmaWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFNpcmlvSW5wdXRDb21wb25lbnRcclxuICAgICwgU2lyaW9DaGVja2JveENvbXBvbmVudCwgU2lyaW9DaGVja2JveEdyb3VwQ29tcG9uZW50XHJcbiAgICAsIFNpcmlvQnV0dG9uQ29tcG9uZW50XSwgIFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2V0RmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgSUZpbHRlckFuZ3VsYXJDb21wIHtcclxuICBwcml2YXRlIHBhcmFtcyE6IElGaWx0ZXJQYXJhbXM7XHJcbiAgcHJpdmF0ZSBmaWVsZE5hbWUhOiBzdHJpbmc7XHJcblxyXG4gIFRleHRzID0gVGV4dHM7XHJcblxyXG4gIHNlbGVjdEFsbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2VhcmNoVGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIG9wdGlvbnM6IHsgdmFsdWU6IGFueTsgbGFiZWw6IHN0cmluZzsgc2VsZWN0ZWQ6IGJvb2xlYW4gfVtdID0gW107XHJcbiAgZmlsdGVyZWRPcHRpb25zOiB0eXBlb2YgdGhpcy5vcHRpb25zID0gW107XHJcblxyXG4gIGFnSW5pdChwYXJhbXM6IElGaWx0ZXJQYXJhbXMpOiB2b2lkIHtcclxuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xyXG4gICAgdGhpcy5maWVsZE5hbWUgPSBwYXJhbXMuY29sRGVmLmZpZWxkITtcclxuXHJcbiAgICBjb25zdCBtYXAgPSBwYXJhbXMuY29sRGVmLmZpbHRlclBhcmFtcz8ubWFwO1xyXG5cclxuICAgIGNvbnN0IHJlc3VsdCA9IGlzUmVjb3JkKFxyXG4gICAgICBtYXAsXHJcbiAgICAgIGtleSA9PiB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyB8fCB0eXBlb2Yga2V5ID09PSAnbnVtYmVyJyxcclxuICAgICAgdmFsID0+IHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmVudHJpZXMobWFwKS5tYXAoKFtrZXksIGxhYmVsXSkgPT4gKHtcclxuICAgICAgICB2YWx1ZTogdGhpcy5wYXJzZUtleShrZXkpLFxyXG4gICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICBzZWxlY3RlZDogdHJ1ZVxyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5vcHRpb25zID0gW107XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gWy4uLnRoaXMub3B0aW9uc107XHJcbiAgfVxyXG5cclxuICBpc0ZpbHRlckFjdGl2ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc29tZShvID0+ICFvLnNlbGVjdGVkKTtcclxuICB9XHJcblxyXG4gIGRvZXNGaWx0ZXJQYXNzKHBhcmFtczogSURvZXNGaWx0ZXJQYXNzUGFyYW1zKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmVzb2x2ZVBhdGgocGFyYW1zLmRhdGEsIHRoaXMuZmllbGROYW1lKTtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc29tZShvID0+IG8uc2VsZWN0ZWQgJiYgby52YWx1ZSA9PT0gdmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TW9kZWwoKSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMub3B0aW9uc1xyXG4gICAgICAuZmlsdGVyKG8gPT4gby5zZWxlY3RlZClcclxuICAgICAgLm1hcChvID0+IG8udmFsdWUpO1xyXG5cclxuICAgIGlmIChzZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IHRoaXMub3B0aW9ucy5sZW5ndGgpIHsgXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmaWx0ZXJUeXBlOiAndGV4dCcsXHJcbiAgICAgICAgdHlwZTogJ2V4Y2x1ZGVBbGwnXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaWx0ZXJUeXBlID0gdGhpcy5nZXRGaWx0ZXJUeXBlKCk7XHJcblxyXG4gICAgY29uc3QgZmlsdGVycyA9IHNlbGVjdGVkVmFsdWVzLm1hcCh2YWx1ZSA9PiAoe1xyXG4gICAgICBmaWx0ZXJUeXBlOiBmaWx0ZXJUeXBlLFxyXG4gICAgICB0eXBlOiAnZXF1YWxzJyxcclxuICAgICAgZmlsdGVyOiB2YWx1ZVxyXG4gICAgfSkpO1xyXG5cclxuICAgIGlmIChmaWx0ZXJzLmxlbmd0aCA9PT0gMSlcclxuICAgICAgcmV0dXJuIGZpbHRlcnNbMF07XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZmlsdGVyVHlwZTogZmlsdGVyVHlwZSxcclxuICAgICAgb3BlcmF0b3I6ICdPUicsXHJcbiAgICAgIGNvbmRpdGlvbnM6IGZpbHRlcnNcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldE1vZGVsKG1vZGVsOiBhbnkpOiB2b2lkIHtcclxuXHJcbiAgICAvLyBubyBmaWx0ZXIgPSBhbGwgc2VsZWN0ZWRcclxuICAgIGlmIChtb2RlbCA9PSBudWxsKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5zZWxlY3RBbGwgPSBmYWxzZTtcclxuXHJcbiAgICAvLyBhbGwgdW5zZWxlY3RlZFxyXG4gICAgaWYgKG1vZGVsPy50eXBlID09PSAnZXhjbHVkZUFsbCcpIHtcclxuICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2gobyA9PiBvLnNlbGVjdGVkID0gZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgLy8gb25lIHNlbGVjdGVkXHJcbiAgICBlbHNlIGlmIChtb2RlbD8udHlwZSA9PT0gJ2VxdWFscycpIHtcclxuICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2gobyA9PiBvLnNlbGVjdGVkID0gKG8udmFsdWUgPT0gbW9kZWwuZmlsdGVyKSk7XHJcbiAgICB9XHJcbiAgICAvLyBtYW55IHNlbGVjdGVkXHJcbiAgICBlbHNlIGlmIChtb2RlbD8ub3BlcmF0b3IgPT09ICdPUicgJiYgQXJyYXkuaXNBcnJheShtb2RlbC5jb25kaXRpb25zKSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZCA9IG1vZGVsLmNvbmRpdGlvbnMubWFwKCh4OiBhbnkpID0+IHguZmlsdGVyKTtcclxuICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2gobyA9PiBvLnNlbGVjdGVkID0gc2VsZWN0ZWQuaW5jbHVkZXMoby52YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXBkYXRlRmlsdGVyZWRPcHRpb25zKCk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGlvbkNoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMucGFyYW1zLmZpbHRlckNoYW5nZWRDYWxsYmFjaygpO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkT3B0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RBbGxDaGFuZ2UoKTogdm9pZCB7ICAgIFxyXG4gICAgdGhpcy5zZXRBbGwodGhpcy5zZWxlY3RBbGwpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcge1xyXG4gICAgaWYgKGtleSA9PT0gJ3RydWUnKSByZXR1cm4gdHJ1ZTtcclxuICAgIGlmIChrZXkgPT09ICdmYWxzZScpIHJldHVybiBmYWxzZTtcclxuICAgIGNvbnN0IG51bSA9IE51bWJlcihrZXkpO1xyXG4gICAgcmV0dXJuIGlzTmFOKG51bSkgPyBrZXkgOiBudW07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEFsbChzZWxlY3Q6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMub3B0aW9ucy5mb3JFYWNoKG8gPT4gby5zZWxlY3RlZCA9IHNlbGVjdCk7XHJcbiAgICB0aGlzLnVwZGF0ZUZpbHRlcmVkT3B0aW9ucygpO1xyXG4gICAgdGhpcy5wYXJhbXMuZmlsdGVyQ2hhbmdlZENhbGxiYWNrKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUZpbHRlcmVkT3B0aW9ucygpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpO1xyXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKG8gPT5cclxuICAgICAgby5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc29sdmVQYXRoKG9iajogYW55LCBwYXRoOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgcmV0dXJuIHBhdGguc3BsaXQoJy4nKS5yZWR1Y2UoKGFjYywgcGFydCkgPT4gYWNjPy5bcGFydF0sIG9iaik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZpbHRlclR5cGUoKSB7XHJcbiAgICBjb25zdCBjZWxsRGF0YVR5cGUgPSB0aGlzLnBhcmFtcz8uY29sRGVmPy5jZWxsRGF0YVR5cGU7XHJcblxyXG4gICAgc3dpdGNoIChjZWxsRGF0YVR5cGUpIHtcclxuICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICByZXR1cm4gJ251bWJlcic7XHJcbiAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICBjYXNlICdkYXRlVGltZSc6XHJcbiAgICAgICAgcmV0dXJuICdkYXRlJztcclxuICAgICAgY2FzZSAndGV4dCc6XHJcbiAgICAgICAgcmV0dXJuICd0ZXh0JztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJ251bWJlcic7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcbn1cclxuIiwiPGRpdiBzdHlsZT1cInBhZGRpbmc6IDVweDtiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcIj5cclxuXHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmc6IDVweFwiPlxyXG4gICAgPG5neC1zaXJpby1pbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJUZXh0cy5UeXBlVG9TZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlYXJjaENoYW5nZSgpXCI+XHJcbiAgICA8L25neC1zaXJpby1pbnB1dD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmc6IDVweDsgbWF4LWhlaWdodDogMjAwcHg7IG92ZXJmbG93LXk6IGF1dG87XCI+XHJcbiAgICA8bmd4LXNpcmlvLWNoZWNrYm94IFsobmdNb2RlbCldPVwic2VsZWN0QWxsXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3RBbGxDaGFuZ2UoKVwiPnt7VGV4dHMuU2VsZWN0QWxsfX08L25neC1zaXJpby1jaGVja2JveD5cclxuXHJcbiAgICA8bmd4LXNpcmlvLWNoZWNrYm94LWdyb3VwPlxyXG4gICAgICA8bmd4LXNpcmlvLWNoZWNrYm94ICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm9wdGlvbi5zZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgpXCI+XHJcbiAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XHJcbiAgICAgIDwvbmd4LXNpcmlvLWNoZWNrYm94PlxyXG4gICAgPC9uZ3gtc2lyaW8tY2hlY2tib3gtZ3JvdXA+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuIl19
@@ -1,7 +1,54 @@
1
1
  import { ContainerControl } from "./control";
2
+ import { SirioAccordionComponent } from "ngx-sirio-lib";
2
3
  export class AccordionControl extends ContainerControl {
3
- getAccordion() {
4
- return this.getComponentRef();
4
+ openPanel(index) {
5
+ const panels = this.accordion.panels?.toArray?.();
6
+ if (!panels
7
+ || panels.length === 0
8
+ || (index < 0 || index >= panels.length)
9
+ || panels[index].panelIsOpen) {
10
+ return;
11
+ }
12
+ const event = new Event('');
13
+ panels[index].onPanelHeaderClicked(event);
14
+ }
15
+ ;
16
+ //#region State
17
+ onLoadState() {
18
+ const state = this.getState();
19
+ if (!state || !Array.isArray(state.openIndexes)) {
20
+ return;
21
+ }
22
+ for (const index of state.openIndexes) {
23
+ this.openPanel(index);
24
+ }
25
+ }
26
+ onSaveState() {
27
+ const state = this.createState();
28
+ if (state) {
29
+ this.setState(state);
30
+ }
31
+ }
32
+ createState() {
33
+ const panels = this.accordion?.panels?.toArray?.();
34
+ if (!panels || panels.length === 0) {
35
+ return null;
36
+ }
37
+ const openIndexes = panels
38
+ .map((panel, index) => (panel?.panelIsOpen ? index : null))
39
+ .filter((index) => index !== null);
40
+ return openIndexes.length > 0
41
+ ? { openIndexes }
42
+ : null;
43
+ }
44
+ //#endregion
45
+ //#region Private Members
46
+ get accordion() {
47
+ const ref = this.getComponentRef();
48
+ if (!(ref instanceof SirioAccordionComponent)) {
49
+ throw new Error('ComponentRef is not a SirioAccordionComponent');
50
+ }
51
+ return ref;
5
52
  }
6
53
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvY29udHJvbHMvYWNjb3JkaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUc3QyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZ0JBQWdCO0lBRTVDLFlBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUE2QixDQUFDO0lBQzNELENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRhaW5lckNvbnRyb2wgfSBmcm9tIFwiLi9jb250cm9sXCI7XHJcbmltcG9ydCB7IFNpcmlvQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSBcIm5neC1zaXJpby1saWJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25Db250cm9sIGV4dGVuZHMgQ29udGFpbmVyQ29udHJvbCB7XHJcblxyXG4gIHByaXZhdGUgZ2V0QWNjb3JkaW9uKCk6IFNpcmlvQWNjb3JkaW9uQ29tcG9uZW50IHtcclxuICAgIHJldHVybiB0aGlzLmdldENvbXBvbmVudFJlZigpIGFzIFNpcmlvQWNjb3JkaW9uQ29tcG9uZW50O1xyXG4gIH1cclxuXHJcbn1cclxuIl19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvY29udHJvbHMvYWNjb3JkaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGdCQUFnQjtJQUVwRCxTQUFTLENBQUMsS0FBYTtRQUNyQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxNQUFNO2VBQ04sTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDO2VBQ25CLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQztlQUNyQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0IsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUFBLENBQUM7SUFFRixlQUFlO0lBRU4sV0FBVztRQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUF5QixDQUFDO1FBRXJELElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2hELE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxNQUFNLEtBQUssSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVRLFdBQVc7UUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBRW5ELElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNO2FBQ3ZCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMxRCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQW1CLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUM7UUFFdEQsT0FBTyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDM0IsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFO1lBQ2pCLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDO0lBRUQsWUFBWTtJQUVaLHlCQUF5QjtJQUV6QixJQUFZLFNBQVM7UUFDbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSx1QkFBdUIsQ0FBQyxFQUFFLENBQUM7WUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FDYiwrQ0FBK0MsQ0FDaEQsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FJRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRhaW5lckNvbnRyb2wgfSBmcm9tIFwiLi9jb250cm9sXCI7XHJcbmltcG9ydCB7IFNpcmlvQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSBcIm5neC1zaXJpby1saWJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25Db250cm9sIGV4dGVuZHMgQ29udGFpbmVyQ29udHJvbCB7XHJcblxyXG4gIG9wZW5QYW5lbChpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBjb25zdCBwYW5lbHMgPSB0aGlzLmFjY29yZGlvbi5wYW5lbHM/LnRvQXJyYXk/LigpO1xyXG4gICAgaWYgKCFwYW5lbHNcclxuICAgICAgfHwgcGFuZWxzLmxlbmd0aCA9PT0gMFxyXG4gICAgICB8fCAoaW5kZXggPCAwIHx8IGluZGV4ID49IHBhbmVscy5sZW5ndGgpXHJcbiAgICAgIHx8IHBhbmVsc1tpbmRleF0ucGFuZWxJc09wZW4pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZXZlbnQgPSBuZXcgRXZlbnQoJycpO1xyXG4gICAgcGFuZWxzW2luZGV4XS5vblBhbmVsSGVhZGVyQ2xpY2tlZChldmVudCk7XHJcbiAgfTtcclxuXHJcbiAgLy8jcmVnaW9uIFN0YXRlXHJcblxyXG4gIG92ZXJyaWRlIG9uTG9hZFN0YXRlKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlPEFjY29yZGlvbkNvbnRyb2xTdGF0ZT4oKTtcclxuXHJcbiAgICBpZiAoIXN0YXRlIHx8ICFBcnJheS5pc0FycmF5KHN0YXRlLm9wZW5JbmRleGVzKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChjb25zdCBpbmRleCBvZiBzdGF0ZS5vcGVuSW5kZXhlcykge1xyXG4gICAgICB0aGlzLm9wZW5QYW5lbChpbmRleCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBvblNhdmVTdGF0ZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5jcmVhdGVTdGF0ZSgpO1xyXG4gICAgaWYgKHN0YXRlKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoc3RhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVTdGF0ZSgpOiBBY2NvcmRpb25Db250cm9sU3RhdGUgfCBudWxsIHtcclxuICAgIGNvbnN0IHBhbmVscyA9IHRoaXMuYWNjb3JkaW9uPy5wYW5lbHM/LnRvQXJyYXk/LigpO1xyXG5cclxuICAgIGlmICghcGFuZWxzIHx8IHBhbmVscy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb3BlbkluZGV4ZXMgPSBwYW5lbHNcclxuICAgICAgLm1hcCgocGFuZWwsIGluZGV4KSA9PiAocGFuZWw/LnBhbmVsSXNPcGVuID8gaW5kZXggOiBudWxsKSlcclxuICAgICAgLmZpbHRlcigoaW5kZXgpOiBpbmRleCBpcyBudW1iZXIgPT4gaW5kZXggIT09IG51bGwpO1xyXG5cclxuICAgIHJldHVybiBvcGVuSW5kZXhlcy5sZW5ndGggPiAwXHJcbiAgICAgID8geyBvcGVuSW5kZXhlcyB9XHJcbiAgICAgIDogbnVsbDtcclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gUHJpdmF0ZSBNZW1iZXJzXHJcblxyXG4gIHByaXZhdGUgZ2V0IGFjY29yZGlvbigpOiBTaXJpb0FjY29yZGlvbkNvbXBvbmVudCB7XHJcbiAgICBjb25zdCByZWYgPSB0aGlzLmdldENvbXBvbmVudFJlZigpO1xyXG4gICAgaWYgKCEocmVmIGluc3RhbmNlb2YgU2lyaW9BY2NvcmRpb25Db21wb25lbnQpKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAnQ29tcG9uZW50UmVmIGlzIG5vdCBhIFNpcmlvQWNjb3JkaW9uQ29tcG9uZW50J1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlZjtcclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxufVxyXG5cclxuaW50ZXJmYWNlIEFjY29yZGlvbkNvbnRyb2xTdGF0ZSB7XHJcbiAgb3BlbkluZGV4ZXM6IG51bWJlcltdIHwgbnVsbDtcclxufVxyXG4iXX0=
@@ -1,44 +1,89 @@
1
+ import { StateService } from "../services/state.service";
1
2
  export class Control {
2
- name;
3
- metadata;
4
- componentRef;
5
- elementRef;
6
- constructor(name, metadata, componentRef, elementRef) {
7
- this.name = name;
8
- this.metadata = metadata;
9
- this.componentRef = componentRef;
10
- this.elementRef = elementRef;
3
+ context;
4
+ constructor(context) {
5
+ if (!context) {
6
+ throw new Error('ControlContext must not be null or undefined');
7
+ }
8
+ this.context = context;
9
+ context.destroyRef?.onDestroy(() => {
10
+ this.onSaveState();
11
+ this.onDestroy();
12
+ });
13
+ this.onInit();
14
+ setTimeout(() => this.onLoadState());
15
+ }
16
+ get name() {
17
+ return this.context.name;
11
18
  }
12
19
  getMetadata() {
13
- return this.metadata;
20
+ return this.context.metadata;
14
21
  }
15
22
  getComponentRef() {
16
- return this.componentRef;
23
+ return this.context.componentRef;
17
24
  }
18
25
  getElementRef() {
19
- return this.elementRef;
26
+ return this.context.elementRef;
27
+ }
28
+ getInjector() {
29
+ return this.context.injector;
30
+ }
31
+ getDestroyRef() {
32
+ return this.context.destroyRef;
33
+ }
34
+ getRegister() {
35
+ return this.context.register;
36
+ }
37
+ onInit() {
38
+ }
39
+ onLoadState() {
40
+ }
41
+ onSaveState() {
42
+ }
43
+ onDestroy() {
44
+ }
45
+ getState() {
46
+ const id = this.getId();
47
+ if (!id)
48
+ return null;
49
+ return this.State()?.getState(id);
50
+ }
51
+ setState(state) {
52
+ const id = this.getId();
53
+ if (!id)
54
+ return;
55
+ this.State()?.setState(id, state);
56
+ }
57
+ clearState() {
58
+ const id = this.getId();
59
+ if (!id)
60
+ return;
61
+ this.State()?.clearState(id);
62
+ }
63
+ //#region Private Members
64
+ getId() {
65
+ return `${this.context.path}.${this.context.name}`;
66
+ }
67
+ State() {
68
+ return this.getInjector().get(StateService);
20
69
  }
21
70
  }
22
71
  export class ContainerControl extends Control {
23
- register;
24
- constructor(name, metadata, componentRef, elementRef, register) {
25
- super(name, metadata, componentRef, elementRef);
26
- this.register = register;
72
+ constructor(context) {
73
+ super(context);
27
74
  }
28
75
  findControl(predicate, firstOnly) {
29
- if (this.register) {
30
- return this.register.findControl(predicate, firstOnly, false);
31
- }
32
- else {
33
- return [];
34
- }
76
+ const register = this.getRegister();
77
+ return register
78
+ ? register.findControl(predicate, firstOnly, false)
79
+ : [];
35
80
  }
36
81
  }
37
82
  export class ItemControl extends ContainerControl {
38
83
  index;
39
- constructor(name, index, metadata, componentRef, elementRef, register) {
40
- super(name, metadata, componentRef, elementRef, register);
84
+ constructor(context, index) {
85
+ super(context);
41
86
  this.index = index;
42
87
  }
43
88
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2NvbnRyb2xzL2NvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLE9BQU87SUFFQTtJQUNDO0lBQ0E7SUFDQTtJQUpuQixZQUNrQixJQUFZLEVBQ1gsUUFBYSxFQUNiLFlBQWlCLEVBQ2pCLFVBQXNCO1FBSHZCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWCxhQUFRLEdBQVIsUUFBUSxDQUFLO1FBQ2IsaUJBQVksR0FBWixZQUFZLENBQUs7UUFDakIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUN6QyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsT0FBTztJQU1uQztJQUxSLFlBQ0EsSUFBWSxFQUNaLFFBQWEsRUFDYixZQUFpQixFQUNqQixVQUFzQixFQUNkLFFBQXFDO1FBQzNDLEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUQxQyxhQUFRLEdBQVIsUUFBUSxDQUE2QjtJQUU3QyxDQUFDO0lBRUQsV0FBVyxDQUFDLFNBQXdDLEVBQUUsU0FBa0I7UUFDdEUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLENBQUM7YUFDSSxDQUFDO1lBQ0osT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFdBQVksU0FBUSxnQkFBZ0I7SUFJN0I7SUFGbEIsWUFDRSxJQUFZLEVBQ0ksS0FBYSxFQUM3QixRQUFhLEVBQ2IsWUFBaUIsRUFDakIsVUFBc0IsRUFDdEIsUUFBcUM7UUFDckMsS0FBSyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUwxQyxVQUFLLEdBQUwsS0FBSyxDQUFRO0lBTS9CLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBSZWdpc3RlclNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvcmVnaXN0ZXIuc2VydmljZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbnRyb2wge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWV0YWRhdGE6IGFueSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50UmVmOiBhbnksXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcclxuICB9XHJcblxyXG4gIGdldE1ldGFkYXRhKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5tZXRhZGF0YTtcclxuICB9XHJcblxyXG4gIGdldENvbXBvbmVudFJlZigpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWxlbWVudFJlZigpOiBFbGVtZW50UmVmIHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWY7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29udGFpbmVyQ29udHJvbCBleHRlbmRzIENvbnRyb2wge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gIG5hbWU6IHN0cmluZyxcclxuICBtZXRhZGF0YTogYW55LFxyXG4gIGNvbXBvbmVudFJlZjogYW55LFxyXG4gIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgcHJpdmF0ZSByZWdpc3RlcjogUmVnaXN0ZXJTZXJ2aWNlIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBzdXBlcihuYW1lLCBtZXRhZGF0YSwgY29tcG9uZW50UmVmLCBlbGVtZW50UmVmKTtcclxuICB9XHJcblxyXG4gIGZpbmRDb250cm9sKHByZWRpY2F0ZTogKGNvbnRyb2w6IENvbnRyb2wpID0+IGJvb2xlYW4sIGZpcnN0T25seTogYm9vbGVhbik6IENvbnRyb2xbXSB7XHJcbiAgICBpZiAodGhpcy5yZWdpc3Rlcikge1xyXG4gICAgICByZXR1cm4gdGhpcy5yZWdpc3Rlci5maW5kQ29udHJvbChwcmVkaWNhdGUsIGZpcnN0T25seSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9ICBcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEl0ZW1Db250cm9sIGV4dGVuZHMgQ29udGFpbmVyQ29udHJvbCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgbmFtZTogc3RyaW5nLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGluZGV4OiBudW1iZXIsXHJcbiAgICBtZXRhZGF0YTogYW55LFxyXG4gICAgY29tcG9uZW50UmVmOiBhbnksXHJcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcmVnaXN0ZXI6IFJlZ2lzdGVyU2VydmljZSB8IHVuZGVmaW5lZCkge1xyXG4gICAgc3VwZXIobmFtZSwgbWV0YWRhdGEsIGNvbXBvbmVudFJlZiwgZWxlbWVudFJlZiwgcmVnaXN0ZXIpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2NvbnRyb2xzL2NvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE1BQU0sT0FBTyxPQUFPO0lBRUQsT0FBTyxDQUFpQjtJQUV6QyxZQUFZLE9BQXVCO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFFdkIsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFZCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVTLFdBQVc7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRVMsZUFBZTtRQUN2QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFFUyxhQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDakMsQ0FBQztJQUVTLFdBQVc7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRVMsYUFBYTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFFUyxXQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDL0IsQ0FBQztJQUVTLE1BQU07SUFDaEIsQ0FBQztJQUVTLFdBQVc7SUFDckIsQ0FBQztJQUVTLFdBQVc7SUFDckIsQ0FBQztJQUVTLFNBQVM7SUFDbkIsQ0FBQztJQUVTLFFBQVE7UUFDaEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDckIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFUyxRQUFRLENBQUMsS0FBVTtRQUMzQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFUyxVQUFVO1FBQ2xCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsRUFBRTtZQUFFLE9BQU87UUFDaEIsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQseUJBQXlCO0lBRWpCLEtBQUs7UUFDWCxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRU8sS0FBSztRQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBSUY7QUFFRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsT0FBTztJQUUzQyxZQUFZLE9BQXVCO1FBQ2pDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVyxDQUNULFNBQXdDLEVBQ3hDLFNBQWtCO1FBRWxCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxPQUFPLFFBQVE7WUFDYixDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQztZQUNuRCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1QsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFdBQVksU0FBUSxnQkFBZ0I7SUFHN0I7SUFEbEIsWUFBWSxPQUF1QixFQUNqQixLQUFhO1FBQzdCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURDLFVBQUssR0FBTCxLQUFLLENBQVE7SUFFL0IsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0b3IsIERlc3Ryb3lSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBSZWdpc3RlclNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvcmVnaXN0ZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTdGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvc3RhdGUuc2VydmljZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbnRyb2wge1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHQ6IENvbnRyb2xDb250ZXh0O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihjb250ZXh0OiBDb250cm9sQ29udGV4dCkge1xyXG4gICAgaWYgKCFjb250ZXh0KSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29udHJvbENvbnRleHQgbXVzdCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xyXG5cclxuICAgIGNvbnRleHQuZGVzdHJveVJlZj8ub25EZXN0cm95KCgpID0+IHtcclxuICAgICAgdGhpcy5vblNhdmVTdGF0ZSgpO1xyXG4gICAgICB0aGlzLm9uRGVzdHJveSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5vbkluaXQoKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMub25Mb2FkU3RhdGUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRleHQubmFtZTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRNZXRhZGF0YSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5tZXRhZGF0YTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRDb21wb25lbnRSZWYoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRleHQuY29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEVsZW1lbnRSZWYoKTogRWxlbWVudFJlZiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LmVsZW1lbnRSZWY7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0SW5qZWN0b3IoKTogSW5qZWN0b3Ige1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5pbmplY3RvcjtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXREZXN0cm95UmVmKCk6IERlc3Ryb3lSZWYge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5kZXN0cm95UmVmO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldFJlZ2lzdGVyKCk6IFJlZ2lzdGVyU2VydmljZSB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnJlZ2lzdGVyO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG9uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvbkxvYWRTdGF0ZSgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvblNhdmVTdGF0ZSgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0U3RhdGU8VCA9IGFueT4oKTogVCB8IG51bGwge1xyXG4gICAgY29uc3QgaWQgPSB0aGlzLmdldElkKCk7XHJcbiAgICBpZiAoIWlkKSByZXR1cm4gbnVsbDtcclxuICAgIHJldHVybiB0aGlzLlN0YXRlKCk/LmdldFN0YXRlKGlkKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzZXRTdGF0ZShzdGF0ZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0SWQoKTtcclxuICAgIGlmICghaWQpIHJldHVybjtcclxuICAgIHRoaXMuU3RhdGUoKT8uc2V0U3RhdGUoaWQsIHN0YXRlKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjbGVhclN0YXRlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaWQgPSB0aGlzLmdldElkKCk7XHJcbiAgICBpZiAoIWlkKSByZXR1cm47XHJcbiAgICB0aGlzLlN0YXRlKCk/LmNsZWFyU3RhdGUoaWQpO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFByaXZhdGUgTWVtYmVyc1xyXG5cclxuICBwcml2YXRlIGdldElkKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuY29udGV4dC5wYXRofS4ke3RoaXMuY29udGV4dC5uYW1lfWA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIFN0YXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SW5qZWN0b3IoKS5nZXQoU3RhdGVTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbnRhaW5lckNvbnRyb2wgZXh0ZW5kcyBDb250cm9sIHtcclxuXHJcbiAgY29uc3RydWN0b3IoY29udGV4dDogQ29udHJvbENvbnRleHQpIHtcclxuICAgIHN1cGVyKGNvbnRleHQpO1xyXG4gIH1cclxuXHJcbiAgZmluZENvbnRyb2woXHJcbiAgICBwcmVkaWNhdGU6IChjb250cm9sOiBDb250cm9sKSA9PiBib29sZWFuLFxyXG4gICAgZmlyc3RPbmx5OiBib29sZWFuXHJcbiAgKTogQ29udHJvbFtdIHtcclxuICAgIGNvbnN0IHJlZ2lzdGVyID0gdGhpcy5nZXRSZWdpc3RlcigpO1xyXG4gICAgcmV0dXJuIHJlZ2lzdGVyXHJcbiAgICAgID8gcmVnaXN0ZXIuZmluZENvbnRyb2wocHJlZGljYXRlLCBmaXJzdE9ubHksIGZhbHNlKVxyXG4gICAgICA6IFtdO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEl0ZW1Db250cm9sIGV4dGVuZHMgQ29udGFpbmVyQ29udHJvbCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbnRleHQ6IENvbnRyb2xDb250ZXh0LFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGluZGV4OiBudW1iZXIpIHtcclxuICAgIHN1cGVyKGNvbnRleHQpO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbENvbnRleHQge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBwYXRoOiBzdHJpbmc7XHJcbiAgbWV0YWRhdGE6IGFueTtcclxuICBjb21wb25lbnRSZWY6IGFueTtcclxuICBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG4gIGluamVjdG9yOiBJbmplY3RvcjtcclxuICBkZXN0cm95UmVmOiBEZXN0cm95UmVmO1xyXG4gIHJlZ2lzdGVyPzogUmVnaXN0ZXJTZXJ2aWNlOyAgXHJcbn1cclxuIl19
@@ -29,91 +29,91 @@ import { SpacerControl } from '../controls/spacer';
29
29
  import { IFrameControl } from '../controls/iframe';
30
30
  import { TooltipControl } from '../controls/tooltip';
31
31
  import { DisplayFieldControl } from '../controls/displayfield';
32
- export function createControl(name, metadata, componentRef, elementRef, register) {
33
- switch (metadata.type) {
32
+ export function createControl(context) {
33
+ switch (context.metadata.type) {
34
34
  case "default":
35
- return new FormControl(name, metadata, componentRef, elementRef, register);
35
+ return new FormControl(context);
36
36
  case "textfield":
37
- return new TextFieldControl(name, metadata, componentRef, elementRef);
37
+ return new TextFieldControl(context);
38
38
  case "select":
39
- return new SelectControl(name, metadata, componentRef, elementRef);
39
+ return new SelectControl(context);
40
40
  case "taglist":
41
- return new TagListControl(name, metadata, componentRef, elementRef);
41
+ return new TagListControl(context);
42
42
  case "number":
43
- return new NumberControl(name, metadata, componentRef, elementRef);
43
+ return new NumberControl(context);
44
44
  case "datetime":
45
- switch (metadata.subtype) {
45
+ switch (context.metadata.subtype) {
46
46
  case "date":
47
- return new DateControl(name, metadata, componentRef, elementRef);
47
+ return new DateControl(context);
48
48
  case "time":
49
- return new TimeControl(name, metadata, componentRef, elementRef);
49
+ return new TimeControl(context);
50
50
  default:
51
- return new Control(name, metadata, componentRef, elementRef);
51
+ return new Control(context);
52
52
  }
53
53
  case "checkbox":
54
- switch (metadata.subtype) {
54
+ switch (context.metadata.subtype) {
55
55
  case "toggle":
56
- return new ToggleControl(name, metadata, componentRef, elementRef);
56
+ return new ToggleControl(context);
57
57
  default:
58
- return new CheckBoxControl(name, metadata, componentRef, elementRef);
58
+ return new CheckBoxControl(context);
59
59
  }
60
60
  case "radio":
61
- switch (metadata.subtype) {
61
+ switch (context.metadata.subtype) {
62
62
  case "chip":
63
- return new ChipRadioControl(name, metadata, componentRef, elementRef);
63
+ return new ChipRadioControl(context);
64
64
  default:
65
- return new RadioControl(name, metadata, componentRef, elementRef);
65
+ return new RadioControl(context);
66
66
  }
67
67
  case "checklist":
68
- switch (metadata.subtype) {
68
+ switch (context.metadata.subtype) {
69
69
  case "chip":
70
- return new ChipCheckListControl(name, metadata, componentRef, elementRef);
70
+ return new ChipCheckListControl(context);
71
71
  default:
72
- return new CheckListControl(name, metadata, componentRef, elementRef);
72
+ return new CheckListControl(context);
73
73
  }
74
74
  case "textarea":
75
- return new TextAreaControl(name, metadata, componentRef, elementRef);
75
+ return new TextAreaControl(context);
76
76
  case "filepicker":
77
- return new FilePickerControl(name, metadata, componentRef, elementRef);
77
+ return new FilePickerControl(context);
78
78
  case "displayfield":
79
- return new DisplayFieldControl(name, metadata, componentRef, elementRef);
79
+ return new DisplayFieldControl(context);
80
80
  case "text":
81
- return new TextControl(name, metadata, componentRef, elementRef);
81
+ return new TextControl(context);
82
82
  case "html":
83
- return new HtmlControl(name, metadata, componentRef, elementRef);
83
+ return new HtmlControl(context);
84
84
  case "image":
85
- return new ImageControl(name, metadata, componentRef, elementRef);
85
+ return new ImageControl(context);
86
86
  case "dynamiclist":
87
- switch (metadata.subtype) {
87
+ switch (context.metadata.subtype) {
88
88
  case "tab":
89
- return new TabControl(name, metadata, componentRef, elementRef, register);
89
+ return new TabControl(context);
90
90
  case "accordion":
91
- return new AccordionControl(name, metadata, componentRef, elementRef, register);
91
+ return new AccordionControl(context);
92
92
  default:
93
- return new DynamicListControl(name, metadata, componentRef, elementRef, register);
93
+ return new DynamicListControl(context);
94
94
  }
95
95
  case "group":
96
- return new GroupControl(name, metadata, componentRef, elementRef, register);
96
+ return new GroupControl(context);
97
97
  case "table":
98
- return new TableControl(name, metadata, componentRef, elementRef);
98
+ return new TableControl(context);
99
99
  case "chart":
100
- return new ChartControl(name, metadata, componentRef, elementRef);
100
+ return new ChartControl(context);
101
101
  case "button":
102
- return new ButtonControl(name, metadata, componentRef, elementRef);
102
+ return new ButtonControl(context);
103
103
  case "separator":
104
- return new SeparatorControl(name, metadata, componentRef, elementRef);
104
+ return new SeparatorControl(context);
105
105
  case "spacer":
106
- return new SpacerControl(name, metadata, componentRef, elementRef);
106
+ return new SpacerControl(context);
107
107
  case "iframe":
108
- return new IFrameControl(name, metadata, componentRef, elementRef);
108
+ return new IFrameControl(context);
109
109
  case "tooltip":
110
- return new TooltipControl(name, metadata, componentRef, elementRef);
110
+ return new TooltipControl(context);
111
111
  case "tab":
112
- return new TabControl(name, metadata, componentRef, elementRef, register);
112
+ return new TabControl(context);
113
113
  case "accordion":
114
- return new AccordionControl(name, metadata, componentRef, elementRef, register);
114
+ return new AccordionControl(context);
115
115
  default:
116
- return new Control(name, metadata, componentRef, elementRef);
116
+ return new Control(context);
117
117
  }
118
118
  }
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2NvbnRyb2xzL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxF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RUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXJFLEtBQUssU0FBUztZQUNaLE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFdEUsS0FBSyxLQUFLO1lBQ1IsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFNUUsS0FBSyxXQUFXO1lBQ2QsT0FBTyxJQUFJLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVsRjtZQUNFLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDakUsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9jb250cm9sJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9mb3JtJztcclxuaW1wb3J0IHsgVGV4dEZpZWxkQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL3RleHRmaWVsZCc7XHJcbmltcG9ydCB7IFNlbGVjdENvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9zZWxlY3QnO1xyXG5pbXBvcnQgeyBUYWdMaXN0Q29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL3RhZ2xpc3QnO1xyXG5pbXBvcnQgeyBOdW1iZXJDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvbnVtYmVyJztcclxuaW1wb3J0IHsgRGF0ZUNvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9kYXRlJztcclxuaW1wb3J0IHsgVGltZUNvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy90aW1lJztcclxuaW1wb3J0IHsgVG9nZ2xlQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL3RvZ2dsZSc7XHJcbmltcG9ydCB7IENoZWNrQm94Q29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL2NoZWNrYm94JztcclxuaW1wb3J0IHsgQ2hpcFJhZGlvQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL2NoaXByYWRpbyc7XHJcbmltcG9ydCB7IFJhZGlvQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL3JhZGlvJztcclxuaW1wb3J0IHsgQ2hpcENoZWNrTGlzdENvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9jaGlwY2hlY2tsaXN0JztcclxuaW1wb3J0IHsgQ2hlY2tMaXN0Q29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL2NoZWNrbGlzdCc7XHJcbmltcG9ydCB7IFRleHRBcmVhQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL3RleHRhcmVhJztcclxuaW1wb3J0IHsgRmlsZVBpY2tlckNvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9maWxlcGlja2VyJztcclxuaW1wb3J0IHsgVGV4dENvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy90ZXh0JztcclxuaW1wb3J0IHsgSHRtbENvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9odG1sJztcclxuaW1wb3J0IHsgSW1hZ2VDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvaW1hZ2UnO1xyXG5pbXBvcnQgeyBUYWJDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvdGFiJztcclxuaW1wb3J0IHsgQ2hhcnRDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvY2hhcnQnO1xyXG5pbXBvcnQgeyBBY2NvcmRpb25Db250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvYWNjb3JkaW9uJztcclxuaW1wb3J0IHsgRHluYW1pY0xpc3RDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvZHluYW1pY2xpc3QnO1xyXG5pbXBvcnQgeyBHcm91cENvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9ncm91cCc7XHJcbmltcG9ydCB7IFRhYmxlQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL3RhYmxlJztcclxuaW1wb3J0IHsgQnV0dG9uQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL2J1dHRvbic7XHJcbmltcG9ydCB7IFNlcGFyYXRvckNvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9zZXBhcmF0b3InO1xyXG5pbXBvcnQgeyBTcGFjZXJDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvc3BhY2VyJztcclxuaW1wb3J0IHsgSUZyYW1lQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL2lmcmFtZSc7XHJcbmltcG9ydCB7IFRvb2x0aXBDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvdG9vbHRpcCc7XHJcbmltcG9ydCB7IERpc3BsYXlGaWVsZENvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9kaXNwbGF5ZmllbGQnO1xyXG5pbXBvcnQgeyBSZWdpc3RlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZWdpc3Rlci5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb250cm9sKG5hbWU6IHN0cmluZ1xyXG4gICwgbWV0YWRhdGE6IGFueVxyXG4gICwgY29tcG9uZW50UmVmOiBhbnlcclxuICAsIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICAsIHJlZ2lzdGVyOiBSZWdpc3RlclNlcnZpY2UgfCB1bmRlZmluZWQpIDogQ29udHJvbCB7XHJcblxyXG4gIHN3aXRjaCAobWV0YWRhdGEudHlwZSkge1xyXG5cclxuICAgIGNhc2UgXCJkZWZhdWx0XCI6XHJcbiAgICAgIHJldHVybiBuZXcgRm9ybUNvbnRyb2wobmFtZSwgbWV0YWRhdGEsIGNvbXBvbmVudFJlZiwgZWxlbWVudFJlZiwgcmVnaXN0ZXIpO1xyXG5cclxuICAgIGNhc2UgXCJ0ZXh0ZmllbGRcIjpcclxuICAgICAgcmV0dXJuIG5ldyBUZXh0RmllbGRDb250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYpO1xyXG5cclxuICAgIGNhc2UgXCJzZWxlY3RcIjpcclxuICAgICAgcmV0dXJuIG5ldyBTZWxlY3RDb250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYpO1xyXG5cclxuICAgIGNhc2UgXCJ0YWdsaXN0XCI6XHJcbiAgICAgIHJldHVybiBuZXcgVGFnTGlzdENvbnRyb2wobmFtZSwgbWV0YWRhdGEsIGNvbXBvbmVudFJlZiwgZWxlbWVudFJlZik7XHJcblxyXG4gICAgY2FzZSBcIm51bWJlclwiOlxyXG4gICAgICByZXR1cm4gbmV3IE51bWJlckNvbnRyb2wobmFtZSwgbWV0YWRhdGEsIGNvbXBvbmVudFJlZiwgZWxlbWVudFJlZik7XHJcblxyXG4gICAgY2FzZSBcImRhdGV0aW1lXCI6XHJcbiAgICAgIHN3aXRjaCAobWV0YWRhdGEuc3VidHlwZSkge1xyXG4gICAgICAgIGNhc2UgXCJkYXRlXCI6XHJcbiAgICAgICAgICByZXR1cm4gbmV3IERhdGVDb250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYpO1xyXG4gICAgICAgIGNhc2UgXCJ0aW1lXCI6XHJcbiAgICAgICAgICByZXR1cm4gbmV3IFRpbWVDb250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYpO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICByZXR1cm4gbmV3IENvbnRyb2wobmFtZSwgbWV0YWRhdGEsIGNvbXBvbmVudFJlZiwgZWxlbWVudFJlZik7XHJcbiAgICAgIH1cclxuXHJcbiAgICBjYXNlIFwiY2hlY2tib3hcIjpcclxuICAgICAgc3dpdGNoIChtZXRhZGF0YS5zdWJ0eXBlKSB7XHJcbiAgICAgICAgY2FzZSBcInRvZ2dsZVwiOlxyXG4gICAgICAgICAgcmV0dXJuIG5ldyBUb2dnbGVDb250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYpO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICByZXR1cm4gbmV3IENoZWNrQm94Q29udHJvbChuYW1lLCBtZXRhZGF0YSwgY29tcG9uZW50UmVmLCBlbGVtZW50UmVmKTtcclxuICAgICAgfVxyXG5cclxuICAgIGNhc2UgXCJyYWRpb1wiOlxyXG4gICAgICBzd2l0Y2ggKG1ldGFkYXRhLnN1YnR5cGUpIHtcclxuICAgICAgICBjYXNlIFwiY2hpcFwiOlxyXG4gICAgICAgICAgcmV0dXJuIG5ldyBDaGlwUmFkaW9Db250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYpO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICByZXR1cm4gbmV3IFJhZGlvQ29udHJvbChuYW1lLCBtZXRhZGF0YSwgY29tcG9uZW50UmVmLCBlbGVtZW50UmVmKTtcclxuICAgICAgfVxyXG5cclxuICAgIGNhc2UgXCJjaGVja2xpc3RcIjpcclxuICAgICAgc3dpdGNoIChtZXRhZGF0YS5zdWJ0eXBlKSB7XHJcbiAgICAgICAgY2FzZSBcImNoaXBcIjpcclxuICAgICAgICAgIHJldHVybiBuZXcgQ2hpcENoZWNrTGlzdENvbnRyb2wobmFtZSwgbWV0YWRhdGEsIGNvbXBvbmVudFJlZiwgZWxlbWVudFJlZik7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiBuZXcgQ2hlY2tMaXN0Q29udHJvbChuYW1lLCBtZXRhZGF0YSwgY29tcG9uZW50UmVmLCBlbGVtZW50UmVmKTtcclxuICAgICAgfVxyXG5cclxuICAgIGNhc2UgXCJ0ZXh0YXJlYVwiOlxyXG4gICAgICByZXR1cm4gbmV3IFRleHRBcmVhQ29udHJvbChuYW1lLCBtZXRhZGF0YSwgY29tcG9uZW50UmVmLCBlbGVtZW50UmVmKTtcclxuXHJcbiAgICBjYXNlIFwiZmlsZXBpY2tlclwiOlxyXG4gICAgICByZXR1cm4gbmV3IEZpbGVQaWNrZXJDb250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYpO1xyXG5cclxuICAgIGNhc2UgXCJkaXNwbGF5ZmllbGRcIjpcclxuICAgICAgcmV0dXJuIG5ldyBEaXNwbGF5RmllbGRDb250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYpO1xyXG5cclxuICAgIGNhc2UgXCJ0ZXh0XCI6XHJcbiAgICAgIHJldHVybiBuZXcgVGV4dENvbnRyb2wobmFtZSwgbWV0YWRhdGEsIGNvbXBvbmVudFJlZiwgZWxlbWVudFJlZik7XHJcblxyXG4gICAgY2FzZSBcImh0bWxcIjpcclxuICAgICAgcmV0dXJuIG5ldyBIdG1sQ29udHJvbChuYW1lLCBtZXRhZGF0YSwgY29tcG9uZW50UmVmLCBlbGVtZW50UmVmKTtcclxuXHJcbiAgICBjYXNlIFwiaW1hZ2VcIjpcclxuICAgICAgcmV0dXJuIG5ldyBJbWFnZUNvbnRyb2wobmFtZSwgbWV0YWRhdGEsIGNvbXBvbmVudFJlZiwgZWxlbWVudFJlZik7XHJcblxyXG4gICAgY2FzZSBcImR5bmFtaWNsaXN0XCI6XHJcbiAgICAgIHN3aXRjaCAobWV0YWRhdGEuc3VidHlwZSkge1xyXG4gICAgICAgIGNhc2UgXCJ0YWJcIjpcclxuICAgICAgICAgIHJldHVybiBuZXcgVGFiQ29udHJvbChuYW1lLCBtZXRhZGF0YSwgY29tcG9uZW50UmVmLCBlbGVtZW50UmVmLCByZWdpc3Rlcik7XHJcbiAgICAgICAgY2FzZSBcImFjY29yZGlvblwiOlxyXG4gICAgICAgICAgcmV0dXJuIG5ldyBBY2NvcmRpb25Db250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYsIHJlZ2lzdGVyKTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgcmV0dXJuIG5ldyBEeW5hbWljTGlzdENvbnRyb2wobmFtZSwgbWV0YWRhdGEsIGNvbXBvbmVudFJlZiwgZWxlbWVudFJlZiwgcmVnaXN0ZXIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgY2FzZSBcImdyb3VwXCI6XHJcbiAgICAgIHJldHVybiBuZXcgR3JvdXBDb250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYsIHJlZ2lzdGVyKTtcclxuXHJcbiAgICBjYXNlIFwidGFibGVcIjpcclxuICAgICAgcmV0dXJuIG5ldyBUYWJsZUNvbnRyb2wobmFtZSwgbWV0YWRhdGEsIGNvbXBvbmVudFJlZiwgZWxlbWVudFJlZik7XHJcblxyXG4gICAgY2FzZSBcImNoYXJ0XCI6XHJcbiAgICAgIHJldHVybiBuZXcgQ2hhcnRDb250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYpO1xyXG5cclxuICAgIGNhc2UgXCJidXR0b25cIjpcclxuICAgICAgcmV0dXJuIG5ldyBCdXR0b25Db250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYpO1xyXG5cclxuICAgIGNhc2UgXCJzZXBhcmF0b3JcIjpcclxuICAgICAgcmV0dXJuIG5ldyBTZXBhcmF0b3JDb250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYpO1xyXG5cclxuICAgIGNhc2UgXCJzcGFjZXJcIjpcclxuICAgICAgcmV0dXJuIG5ldyBTcGFjZXJDb250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYpO1xyXG5cclxuICAgIGNhc2UgXCJpZnJhbWVcIjpcclxuICAgICAgcmV0dXJuIG5ldyBJRnJhbWVDb250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYpO1xyXG5cclxuICAgIGNhc2UgXCJ0b29sdGlwXCI6XHJcbiAgICAgIHJldHVybiBuZXcgVG9vbHRpcENvbnRyb2wobmFtZSwgbWV0YWRhdGEsIGNvbXBvbmVudFJlZiwgZWxlbWVudFJlZik7XHJcblxyXG4gICAgY2FzZSBcInRhYlwiOlxyXG4gICAgICByZXR1cm4gbmV3IFRhYkNvbnRyb2wobmFtZSwgbWV0YWRhdGEsIGNvbXBvbmVudFJlZiwgZWxlbWVudFJlZiwgcmVnaXN0ZXIpO1xyXG5cclxuICAgIGNhc2UgXCJhY2NvcmRpb25cIjpcclxuICAgICAgcmV0dXJuIG5ldyBBY2NvcmRpb25Db250cm9sKG5hbWUsIG1ldGFkYXRhLCBjb21wb25lbnRSZWYsIGVsZW1lbnRSZWYsIHJlZ2lzdGVyKTtcclxuXHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICByZXR1cm4gbmV3IENvbnRyb2wobmFtZSwgbWV0YWRhdGEsIGNvbXBvbmVudFJlZiwgZWxlbWVudFJlZik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2NvbnRyb2xzL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBa0IsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8s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LENBQUM7UUFFcEMsS0FBSyxTQUFTO1lBQ1osT0FBTyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVyQyxLQUFLLEtBQUs7WUFDUixPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLEtBQUssV0FBVztZQUNkLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV2QztZQUNFLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250cm9sLCBDb250cm9sQ29udGV4dCB9IGZyb20gJy4uL2NvbnRyb2xzL2NvbnRyb2wnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL2Zvcm0nO1xyXG5pbXBvcnQgeyBUZXh0RmllbGRDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvdGV4dGZpZWxkJztcclxuaW1wb3J0IHsgU2VsZWN0Q29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL3NlbGVjdCc7XHJcbmltcG9ydCB7IFRhZ0xpc3RDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvdGFnbGlzdCc7XHJcbmltcG9ydCB7IE51bWJlckNvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9udW1iZXInO1xyXG5pbXBvcnQgeyBEYXRlQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL2RhdGUnO1xyXG5pbXBvcnQgeyBUaW1lQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL3RpbWUnO1xyXG5pbXBvcnQgeyBUb2dnbGVDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvdG9nZ2xlJztcclxuaW1wb3J0IHsgQ2hlY2tCb3hDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBDaGlwUmFkaW9Db250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvY2hpcHJhZGlvJztcclxuaW1wb3J0IHsgUmFkaW9Db250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvcmFkaW8nO1xyXG5pbXBvcnQgeyBDaGlwQ2hlY2tMaXN0Q29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL2NoaXBjaGVja2xpc3QnO1xyXG5pbXBvcnQgeyBDaGVja0xpc3RDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvY2hlY2tsaXN0JztcclxuaW1wb3J0IHsgVGV4dEFyZWFDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvdGV4dGFyZWEnO1xyXG5pbXBvcnQgeyBGaWxlUGlja2VyQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL2ZpbGVwaWNrZXInO1xyXG5pbXBvcnQgeyBUZXh0Q29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL3RleHQnO1xyXG5pbXBvcnQgeyBIdG1sQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL2h0bWwnO1xyXG5pbXBvcnQgeyBJbWFnZUNvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9pbWFnZSc7XHJcbmltcG9ydCB7IFRhYkNvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy90YWInO1xyXG5pbXBvcnQgeyBDaGFydENvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9jaGFydCc7XHJcbmltcG9ydCB7IEFjY29yZGlvbkNvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9hY2NvcmRpb24nO1xyXG5pbXBvcnQgeyBEeW5hbWljTGlzdENvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9keW5hbWljbGlzdCc7XHJcbmltcG9ydCB7IEdyb3VwQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL2dyb3VwJztcclxuaW1wb3J0IHsgVGFibGVDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvdGFibGUnO1xyXG5pbXBvcnQgeyBCdXR0b25Db250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvYnV0dG9uJztcclxuaW1wb3J0IHsgU2VwYXJhdG9yQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL3NlcGFyYXRvcic7XHJcbmltcG9ydCB7IFNwYWNlckNvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy9zcGFjZXInO1xyXG5pbXBvcnQgeyBJRnJhbWVDb250cm9sIH0gZnJvbSAnLi4vY29udHJvbHMvaWZyYW1lJztcclxuaW1wb3J0IHsgVG9vbHRpcENvbnRyb2wgfSBmcm9tICcuLi9jb250cm9scy90b29sdGlwJztcclxuaW1wb3J0IHsgRGlzcGxheUZpZWxkQ29udHJvbCB9IGZyb20gJy4uL2NvbnRyb2xzL2Rpc3BsYXlmaWVsZCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29udHJvbChjb250ZXh0OiBDb250cm9sQ29udGV4dCk6IENvbnRyb2wge1xyXG5cclxuICBzd2l0Y2ggKGNvbnRleHQubWV0YWRhdGEudHlwZSkge1xyXG5cclxuICAgIGNhc2UgXCJkZWZhdWx0XCI6XHJcbiAgICAgIHJldHVybiBuZXcgRm9ybUNvbnRyb2woY29udGV4dCk7XHJcblxyXG4gICAgY2FzZSBcInRleHRmaWVsZFwiOlxyXG4gICAgICByZXR1cm4gbmV3IFRleHRGaWVsZENvbnRyb2woY29udGV4dCk7XHJcblxyXG4gICAgY2FzZSBcInNlbGVjdFwiOlxyXG4gICAgICByZXR1cm4gbmV3IFNlbGVjdENvbnRyb2woY29udGV4dCk7XHJcblxyXG4gICAgY2FzZSBcInRhZ2xpc3RcIjpcclxuICAgICAgcmV0dXJuIG5ldyBUYWdMaXN0Q29udHJvbChjb250ZXh0KTtcclxuXHJcbiAgICBjYXNlIFwibnVtYmVyXCI6XHJcbiAgICAgIHJldHVybiBuZXcgTnVtYmVyQ29udHJvbChjb250ZXh0KTtcclxuXHJcbiAgICBjYXNlIFwiZGF0ZXRpbWVcIjpcclxuICAgICAgc3dpdGNoIChjb250ZXh0Lm1ldGFkYXRhLnN1YnR5cGUpIHtcclxuICAgICAgICBjYXNlIFwiZGF0ZVwiOlxyXG4gICAgICAgICAgcmV0dXJuIG5ldyBEYXRlQ29udHJvbChjb250ZXh0KTtcclxuICAgICAgICBjYXNlIFwidGltZVwiOlxyXG4gICAgICAgICAgcmV0dXJuIG5ldyBUaW1lQ29udHJvbChjb250ZXh0KTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgcmV0dXJuIG5ldyBDb250cm9sKGNvbnRleHQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgY2FzZSBcImNoZWNrYm94XCI6XHJcbiAgICAgIHN3aXRjaCAoY29udGV4dC5tZXRhZGF0YS5zdWJ0eXBlKSB7XHJcbiAgICAgICAgY2FzZSBcInRvZ2dsZVwiOlxyXG4gICAgICAgICAgcmV0dXJuIG5ldyBUb2dnbGVDb250cm9sKGNvbnRleHQpO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICByZXR1cm4gbmV3IENoZWNrQm94Q29udHJvbChjb250ZXh0KTtcclxuICAgICAgfVxyXG5cclxuICAgIGNhc2UgXCJyYWRpb1wiOlxyXG4gICAgICBzd2l0Y2ggKGNvbnRleHQubWV0YWRhdGEuc3VidHlwZSkge1xyXG4gICAgICAgIGNhc2UgXCJjaGlwXCI6XHJcbiAgICAgICAgICByZXR1cm4gbmV3IENoaXBSYWRpb0NvbnRyb2woY29udGV4dCk7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiBuZXcgUmFkaW9Db250cm9sKGNvbnRleHQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgY2FzZSBcImNoZWNrbGlzdFwiOlxyXG4gICAgICBzd2l0Y2ggKGNvbnRleHQubWV0YWRhdGEuc3VidHlwZSkge1xyXG4gICAgICAgIGNhc2UgXCJjaGlwXCI6XHJcbiAgICAgICAgICByZXR1cm4gbmV3IENoaXBDaGVja0xpc3RDb250cm9sKGNvbnRleHQpO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICByZXR1cm4gbmV3IENoZWNrTGlzdENvbnRyb2woY29udGV4dCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICBjYXNlIFwidGV4dGFyZWFcIjpcclxuICAgICAgcmV0dXJuIG5ldyBUZXh0QXJlYUNvbnRyb2woY29udGV4dCk7XHJcblxyXG4gICAgY2FzZSBcImZpbGVwaWNrZXJcIjpcclxuICAgICAgcmV0dXJuIG5ldyBGaWxlUGlja2VyQ29udHJvbChjb250ZXh0KTtcclxuXHJcbiAgICBjYXNlIFwiZGlzcGxheWZpZWxkXCI6XHJcbiAgICAgIHJldHVybiBuZXcgRGlzcGxheUZpZWxkQ29udHJvbChjb250ZXh0KTtcclxuXHJcbiAgICBjYXNlIFwidGV4dFwiOlxyXG4gICAgICByZXR1cm4gbmV3IFRleHRDb250cm9sKGNvbnRleHQpO1xyXG5cclxuICAgIGNhc2UgXCJodG1sXCI6XHJcbiAgICAgIHJldHVybiBuZXcgSHRtbENvbnRyb2woY29udGV4dCk7XHJcblxyXG4gICAgY2FzZSBcImltYWdlXCI6XHJcbiAgICAgIHJldHVybiBuZXcgSW1hZ2VDb250cm9sKGNvbnRleHQpO1xyXG5cclxuICAgIGNhc2UgXCJkeW5hbWljbGlzdFwiOlxyXG4gICAgICBzd2l0Y2ggKGNvbnRleHQubWV0YWRhdGEuc3VidHlwZSkge1xyXG4gICAgICAgIGNhc2UgXCJ0YWJcIjpcclxuICAgICAgICAgIHJldHVybiBuZXcgVGFiQ29udHJvbChjb250ZXh0KTtcclxuICAgICAgICBjYXNlIFwiYWNjb3JkaW9uXCI6XHJcbiAgICAgICAgICByZXR1cm4gbmV3IEFjY29yZGlvbkNvbnRyb2woY29udGV4dCk7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiBuZXcgRHluYW1pY0xpc3RDb250cm9sKGNvbnRleHQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgY2FzZSBcImdyb3VwXCI6XHJcbiAgICAgIHJldHVybiBuZXcgR3JvdXBDb250cm9sKGNvbnRleHQpO1xyXG5cclxuICAgIGNhc2UgXCJ0YWJsZVwiOlxyXG4gICAgICByZXR1cm4gbmV3IFRhYmxlQ29udHJvbChjb250ZXh0KTtcclxuXHJcbiAgICBjYXNlIFwiY2hhcnRcIjpcclxuICAgICAgcmV0dXJuIG5ldyBDaGFydENvbnRyb2woY29udGV4dCk7XHJcblxyXG4gICAgY2FzZSBcImJ1dHRvblwiOlxyXG4gICAgICByZXR1cm4gbmV3IEJ1dHRvbkNvbnRyb2woY29udGV4dCk7XHJcblxyXG4gICAgY2FzZSBcInNlcGFyYXRvclwiOlxyXG4gICAgICByZXR1cm4gbmV3IFNlcGFyYXRvckNvbnRyb2woY29udGV4dCk7XHJcblxyXG4gICAgY2FzZSBcInNwYWNlclwiOlxyXG4gICAgICByZXR1cm4gbmV3IFNwYWNlckNvbnRyb2woY29udGV4dCk7XHJcblxyXG4gICAgY2FzZSBcImlmcmFtZVwiOlxyXG4gICAgICByZXR1cm4gbmV3IElGcmFtZUNvbnRyb2woY29udGV4dCk7XHJcblxyXG4gICAgY2FzZSBcInRvb2x0aXBcIjpcclxuICAgICAgcmV0dXJuIG5ldyBUb29sdGlwQ29udHJvbChjb250ZXh0KTtcclxuXHJcbiAgICBjYXNlIFwidGFiXCI6XHJcbiAgICAgIHJldHVybiBuZXcgVGFiQ29udHJvbChjb250ZXh0KTtcclxuXHJcbiAgICBjYXNlIFwiYWNjb3JkaW9uXCI6XHJcbiAgICAgIHJldHVybiBuZXcgQWNjb3JkaW9uQ29udHJvbChjb250ZXh0KTtcclxuXHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICByZXR1cm4gbmV3IENvbnRyb2woY29udGV4dCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,38 +1,61 @@
1
1
  import { ContainerControl } from "./control";
2
+ import { SirioTabComponent } from "ngx-sirio-lib";
2
3
  export class TabControl extends ContainerControl {
3
- canNext = () => {
4
+ canNext() {
4
5
  return this.getNextIndex() !== null;
5
- };
6
- goNext = () => {
6
+ }
7
+ goNext() {
7
8
  const next = this.getNextIndex();
8
9
  if (next !== null)
9
10
  this.setActiveIndex(next);
10
- };
11
- canPrevious = () => {
11
+ }
12
+ canPrevious() {
12
13
  return this.getPreviousIndex() !== null;
13
- };
14
- goPrevious = () => {
14
+ }
15
+ goPrevious() {
15
16
  const previous = this.getPreviousIndex();
16
17
  if (previous !== null)
17
18
  this.setActiveIndex(previous);
18
- };
19
- setActiveIndex = (index) => {
20
- const tabControl = this.getTab();
21
- const items = tabControl.tabItems;
22
- if (index < 0 || index >= items.length)
19
+ }
20
+ setActiveIndex(index) {
21
+ const items = this.tab.tabItems;
22
+ if (!items
23
+ || items.length === 0
24
+ || (index < 0 || index >= items.length)
25
+ || items[index].disabled) {
23
26
  return;
24
- const item = items[index];
25
- if (item.disabled)
27
+ }
28
+ this.tab.setActiveIndex(index);
29
+ }
30
+ ;
31
+ //#region State
32
+ onLoadState() {
33
+ const state = this.getState();
34
+ if (!state || typeof state.activeIndex !== 'number') {
26
35
  return;
27
- tabControl.setActiveIndex(index);
28
- };
29
- getTab() {
30
- return this.getComponentRef();
36
+ }
37
+ this.setActiveIndex(state.activeIndex);
38
+ }
39
+ onSaveState() {
40
+ this.setState(this.createState());
41
+ }
42
+ createState() {
43
+ return {
44
+ activeIndex: this.tab.activeIndex
45
+ };
46
+ }
47
+ //#endregion
48
+ //#region Private Members
49
+ get tab() {
50
+ const ref = this.getComponentRef();
51
+ if (!(ref instanceof SirioTabComponent)) {
52
+ throw new Error('ComponentRef is not a SirioTabComponent');
53
+ }
54
+ return ref;
31
55
  }
32
56
  getPreviousIndex() {
33
- const tabControl = this.getTab();
34
- const items = tabControl.tabItems;
35
- const currentIndex = tabControl.activeIndex;
57
+ const items = this.tab.tabItems;
58
+ const currentIndex = this.tab.activeIndex;
36
59
  for (let i = currentIndex - 1; i >= 0; i--) {
37
60
  if (!items[i].disabled)
38
61
  return i;
@@ -40,9 +63,8 @@ export class TabControl extends ContainerControl {
40
63
  return null;
41
64
  }
42
65
  getNextIndex() {
43
- const tabControl = this.getTab();
44
- const items = tabControl.tabItems;
45
- const currentIndex = tabControl.activeIndex;
66
+ const items = this.tab.tabItems;
67
+ const currentIndex = this.tab.activeIndex;
46
68
  for (let i = currentIndex + 1; i < items.length; i++) {
47
69
  if (!items[i].disabled)
48
70
  return i;
@@ -50,4 +72,4 @@ export class TabControl extends ContainerControl {
50
72
  return null;
51
73
  }
52
74
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvY29udHJvbHMvdGFiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUc3QyxNQUFNLE9BQU8sVUFBVyxTQUFRLGdCQUFnQjtJQUVyQyxPQUFPLEdBQUcsR0FBRyxFQUFFO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksQ0FBQztJQUN0QyxDQUFDLENBQUE7SUFFUSxNQUFNLEdBQUcsR0FBRyxFQUFFO1FBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNqQyxJQUFJLElBQUksS0FBSyxJQUFJO1lBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUE7SUFFUSxXQUFXLEdBQUcsR0FBRyxFQUFFO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssSUFBSSxDQUFDO0lBQzFDLENBQUMsQ0FBQTtJQUVRLFVBQVUsR0FBRyxHQUFHLEVBQUU7UUFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekMsSUFBSSxRQUFRLEtBQUssSUFBSTtZQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkQsQ0FBQyxDQUFBO0lBRVEsY0FBYyxHQUFHLENBQUMsS0FBYSxFQUFRLEVBQUU7UUFDaEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDbEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDL0MsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzFCLFVBQVUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDO0lBRU0sTUFBTTtRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBdUIsQ0FBQztJQUNyRCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ2xDLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDNUMsS0FBSyxJQUFJLENBQUMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7Z0JBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDbEMsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUM1QyxLQUFLLElBQUksQ0FBQyxHQUFHLFlBQVksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7Z0JBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGFpbmVyQ29udHJvbCB9IGZyb20gXCIuL2NvbnRyb2xcIjtcclxuaW1wb3J0IHsgU2lyaW9UYWJDb21wb25lbnQgfSBmcm9tIFwibmd4LXNpcmlvLWxpYlwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRhYkNvbnRyb2wgZXh0ZW5kcyBDb250YWluZXJDb250cm9sIHtcclxuXHJcbiAgcmVhZG9ubHkgY2FuTmV4dCA9ICgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmdldE5leHRJbmRleCgpICE9PSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgZ29OZXh0ID0gKCkgPT4ge1xyXG4gICAgY29uc3QgbmV4dCA9IHRoaXMuZ2V0TmV4dEluZGV4KCk7XHJcbiAgICBpZiAobmV4dCAhPT0gbnVsbCkgdGhpcy5zZXRBY3RpdmVJbmRleChuZXh0KTtcclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IGNhblByZXZpb3VzID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJldmlvdXNJbmRleCgpICE9PSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgZ29QcmV2aW91cyA9ICgpID0+IHtcclxuICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5nZXRQcmV2aW91c0luZGV4KCk7XHJcbiAgICBpZiAocHJldmlvdXMgIT09IG51bGwpIHRoaXMuc2V0QWN0aXZlSW5kZXgocHJldmlvdXMpO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgc2V0QWN0aXZlSW5kZXggPSAoaW5kZXg6IG51bWJlcik6IHZvaWQgPT4ge1xyXG4gICAgY29uc3QgdGFiQ29udHJvbCA9IHRoaXMuZ2V0VGFiKCk7XHJcbiAgICBjb25zdCBpdGVtcyA9IHRhYkNvbnRyb2wudGFiSXRlbXM7XHJcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IGl0ZW1zLmxlbmd0aCkgcmV0dXJuO1xyXG4gICAgY29uc3QgaXRlbSA9IGl0ZW1zW2luZGV4XTtcclxuICAgIGlmIChpdGVtLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0YWJDb250cm9sLnNldEFjdGl2ZUluZGV4KGluZGV4KTtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGdldFRhYigpOiBTaXJpb1RhYkNvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDb21wb25lbnRSZWYoKSBhcyBTaXJpb1RhYkNvbXBvbmVudDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UHJldmlvdXNJbmRleCgpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIGNvbnN0IHRhYkNvbnRyb2wgPSB0aGlzLmdldFRhYigpO1xyXG4gICAgY29uc3QgaXRlbXMgPSB0YWJDb250cm9sLnRhYkl0ZW1zO1xyXG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdGFiQ29udHJvbC5hY3RpdmVJbmRleDtcclxuICAgIGZvciAobGV0IGkgPSBjdXJyZW50SW5kZXggLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICBpZiAoIWl0ZW1zW2ldLmRpc2FibGVkKSByZXR1cm4gaTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXROZXh0SW5kZXgoKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBjb25zdCB0YWJDb250cm9sID0gdGhpcy5nZXRUYWIoKTtcclxuICAgIGNvbnN0IGl0ZW1zID0gdGFiQ29udHJvbC50YWJJdGVtcztcclxuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRhYkNvbnRyb2wuYWN0aXZlSW5kZXg7XHJcbiAgICBmb3IgKGxldCBpID0gY3VycmVudEluZGV4ICsgMTsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICghaXRlbXNbaV0uZGlzYWJsZWQpIHJldHVybiBpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBcclxufVxyXG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvY29udHJvbHMvdGFiLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsTUFBTSxPQUFPLFVBQVcsU0FBUSxnQkFBZ0I7SUFFOUMsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNqQyxJQUFJLElBQUksS0FBSyxJQUFJO1lBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssSUFBSSxDQUFDO0lBQzFDLENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekMsSUFBSSxRQUFRLEtBQUssSUFBSTtZQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFhO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLO2VBQ0wsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO2VBQ2xCLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztlQUNwQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0IsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQUEsQ0FBQztJQUVGLGVBQWU7SUFFTixXQUFXO1FBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQW1CLENBQUM7UUFFL0MsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRVEsV0FBVztRQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE9BQU87WUFDTCxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWTtJQUVaLHlCQUF5QjtJQUV6QixJQUFZLEdBQUc7UUFDYixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLENBQUMsR0FBRyxZQUFZLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksS0FBSyxDQUNiLHlDQUF5QyxDQUMxQyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNoQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUMxQyxLQUFLLElBQUksQ0FBQyxHQUFHLFlBQVksR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtnQkFBRSxPQUFPLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sWUFBWTtRQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNoQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUMxQyxLQUFLLElBQUksQ0FBQyxHQUFHLFlBQVksR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7Z0JBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGFpbmVyQ29udHJvbCB9IGZyb20gXCIuL2NvbnRyb2xcIjtcclxuaW1wb3J0IHsgU2lyaW9UYWJDb21wb25lbnQgfSBmcm9tIFwibmd4LXNpcmlvLWxpYlwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRhYkNvbnRyb2wgZXh0ZW5kcyBDb250YWluZXJDb250cm9sIHtcclxuXHJcbiAgY2FuTmV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLmdldE5leHRJbmRleCgpICE9PSBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ29OZXh0KCkge1xyXG4gICAgY29uc3QgbmV4dCA9IHRoaXMuZ2V0TmV4dEluZGV4KCk7XHJcbiAgICBpZiAobmV4dCAhPT0gbnVsbCkgdGhpcy5zZXRBY3RpdmVJbmRleChuZXh0KTtcclxuICB9XHJcblxyXG4gIGNhblByZXZpb3VzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJldmlvdXNJbmRleCgpICE9PSBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ29QcmV2aW91cygpIHtcclxuICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5nZXRQcmV2aW91c0luZGV4KCk7XHJcbiAgICBpZiAocHJldmlvdXMgIT09IG51bGwpIHRoaXMuc2V0QWN0aXZlSW5kZXgocHJldmlvdXMpO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZlSW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnRhYi50YWJJdGVtcztcclxuICAgIGlmICghaXRlbXNcclxuICAgICAgfHwgaXRlbXMubGVuZ3RoID09PSAwXHJcbiAgICAgIHx8IChpbmRleCA8IDAgfHwgaW5kZXggPj0gaXRlbXMubGVuZ3RoKVxyXG4gICAgICB8fCBpdGVtc1tpbmRleF0uZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGFiLnNldEFjdGl2ZUluZGV4KGluZGV4KTtcclxuICB9O1xyXG5cclxuICAvLyNyZWdpb24gU3RhdGVcclxuXHJcbiAgb3ZlcnJpZGUgb25Mb2FkU3RhdGUoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2V0U3RhdGU8VGFiQ29udHJvbFN0YXRlPigpO1xyXG5cclxuICAgIGlmICghc3RhdGUgfHwgdHlwZW9mIHN0YXRlLmFjdGl2ZUluZGV4ICE9PSAnbnVtYmVyJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXRBY3RpdmVJbmRleChzdGF0ZS5hY3RpdmVJbmRleCk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBvblNhdmVTdGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0U3RhdGUodGhpcy5jcmVhdGVTdGF0ZSgpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlU3RhdGUoKTogVGFiQ29udHJvbFN0YXRlIHwgbnVsbCB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhY3RpdmVJbmRleDogdGhpcy50YWIuYWN0aXZlSW5kZXhcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIFByaXZhdGUgTWVtYmVyc1xyXG5cclxuICBwcml2YXRlIGdldCB0YWIoKTogU2lyaW9UYWJDb21wb25lbnQge1xyXG4gICAgY29uc3QgcmVmID0gdGhpcy5nZXRDb21wb25lbnRSZWYoKTtcclxuICAgIGlmICghKHJlZiBpbnN0YW5jZW9mIFNpcmlvVGFiQ29tcG9uZW50KSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ0NvbXBvbmVudFJlZiBpcyBub3QgYSBTaXJpb1RhYkNvbXBvbmVudCdcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZWY7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFByZXZpb3VzSW5kZXgoKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMudGFiLnRhYkl0ZW1zO1xyXG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy50YWIuYWN0aXZlSW5kZXg7XHJcbiAgICBmb3IgKGxldCBpID0gY3VycmVudEluZGV4IC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgaWYgKCFpdGVtc1tpXS5kaXNhYmxlZCkgcmV0dXJuIGk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TmV4dEluZGV4KCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnRhYi50YWJJdGVtcztcclxuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMudGFiLmFjdGl2ZUluZGV4O1xyXG4gICAgZm9yIChsZXQgaSA9IGN1cnJlbnRJbmRleCArIDE7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoIWl0ZW1zW2ldLmRpc2FibGVkKSByZXR1cm4gaTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8jZW5kcmVnaW9uICBcclxufVxyXG5cclxuaW50ZXJmYWNlIFRhYkNvbnRyb2xTdGF0ZVxyXG57XHJcbiAgYWN0aXZlSW5kZXg6IG51bWJlcjtcclxufVxyXG4iXX0=