@one-paragon/angular-utilities 0.0.15 → 0.0.19

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 (65) hide show
  1. package/esm2020/http-request-state/HttpRequestStateFactory.mjs +3 -3
  2. package/esm2020/http-request-state/HttpRequestStateStore.mjs +3 -3
  3. package/esm2020/http-request-state/directives/HttpStateDirectiveBase.mjs +3 -3
  4. package/esm2020/http-request-state/directives/http-error-state-directive.mjs +3 -3
  5. package/esm2020/http-request-state/directives/http-inProgress-state-directive.mjs +3 -3
  6. package/esm2020/http-request-state/directives/http-notStarted-state-directive.mjs +3 -3
  7. package/esm2020/http-request-state/directives/http-success-state-directive.mjs +3 -3
  8. package/esm2020/http-request-state/directives/request-state-directive.mjs +3 -3
  9. package/esm2020/http-request-state/http-state-module.mjs +4 -4
  10. package/esm2020/table-builder/classes/TableBuilderConfig.mjs +1 -1
  11. package/esm2020/table-builder/classes/table-store.mjs +3 -3
  12. package/esm2020/table-builder/components/array-column.component.mjs +3 -3
  13. package/esm2020/table-builder/components/column-builder/column-builder.component.mjs +3 -3
  14. package/esm2020/table-builder/components/date-filter/date-filter.component.mjs +3 -3
  15. package/esm2020/table-builder/components/filter/filter.component.mjs +3 -3
  16. package/esm2020/table-builder/components/filter/in-list/in-list-filter.component.mjs +3 -3
  17. package/esm2020/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +5 -5
  18. package/esm2020/table-builder/components/generic-table/generic-table.component.mjs +4 -4
  19. package/esm2020/table-builder/components/generic-table/paginator.component.mjs +5 -5
  20. package/esm2020/table-builder/components/header-menu/header-menu.component.mjs +3 -3
  21. package/esm2020/table-builder/components/in-filter/in-filter.component.mjs +3 -3
  22. package/esm2020/table-builder/components/initialization-component/initialization-component.mjs +15 -5
  23. package/esm2020/table-builder/components/number-filter/number-filter.component.mjs +3 -3
  24. package/esm2020/table-builder/components/sort-menu/sort-menu.component-store.mjs +3 -3
  25. package/esm2020/table-builder/components/sort-menu/sort-menu.component.mjs +5 -5
  26. package/esm2020/table-builder/components/table-container/table-container.mjs +3 -3
  27. package/esm2020/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +5 -5
  28. package/esm2020/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +3 -3
  29. package/esm2020/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +3 -3
  30. package/esm2020/table-builder/directives/custom-cell-directive.mjs +3 -3
  31. package/esm2020/table-builder/directives/multi-sort.directive.mjs +3 -3
  32. package/esm2020/table-builder/directives/resize-column.directive.mjs +3 -3
  33. package/esm2020/table-builder/interfaces/report-def.mjs +1 -1
  34. package/esm2020/table-builder/material.module.mjs +4 -4
  35. package/esm2020/table-builder/ngrx/effects.mjs +3 -3
  36. package/esm2020/table-builder/pipes/column-total.pipe.mjs +3 -3
  37. package/esm2020/table-builder/pipes/format-filter-type.pipe.mjs +3 -3
  38. package/esm2020/table-builder/pipes/format-filter-value.pipe.mjs +3 -3
  39. package/esm2020/table-builder/pipes/key-display.mjs +3 -3
  40. package/esm2020/table-builder/services/export-to-csv.service.mjs +5 -5
  41. package/esm2020/table-builder/services/table-template-service.mjs +3 -3
  42. package/esm2020/table-builder/services/transform-creator.mjs +3 -3
  43. package/esm2020/table-builder/table-builder.module.mjs +4 -4
  44. package/esm2020/utilities/directives/auto-focus.directive.mjs +3 -3
  45. package/esm2020/utilities/directives/clickEmitterDirective.mjs +3 -3
  46. package/esm2020/utilities/directives/clickSubject.mjs +3 -3
  47. package/esm2020/utilities/directives/dialog-service.mjs +3 -3
  48. package/esm2020/utilities/directives/dialog.mjs +10 -7
  49. package/esm2020/utilities/directives/mat-toggle-group-directive.mjs +3 -3
  50. package/esm2020/utilities/directives/prevent-enter.directive.mjs +3 -3
  51. package/esm2020/utilities/directives/stop-propagation.directive.mjs +3 -3
  52. package/esm2020/utilities/directives/styler.mjs +3 -3
  53. package/esm2020/utilities/module.mjs +4 -4
  54. package/esm2020/utilities/pipes/function.pipe.mjs +3 -3
  55. package/esm2020/utilities/pipes/phone.pipe.mjs +3 -3
  56. package/esm2020/utilities/pipes/space-case.pipes.mjs +3 -3
  57. package/fesm2015/one-paragon-angular-utilities.mjs +197 -178
  58. package/fesm2015/one-paragon-angular-utilities.mjs.map +1 -1
  59. package/fesm2020/one-paragon-angular-utilities.mjs +191 -178
  60. package/fesm2020/one-paragon-angular-utilities.mjs.map +1 -1
  61. package/package.json +1 -1
  62. package/table-builder/classes/TableBuilderConfig.d.ts +1 -0
  63. package/table-builder/components/initialization-component/initialization-component.d.ts +7 -0
  64. package/table-builder/interfaces/report-def.d.ts +20 -1
  65. package/utilities/directives/dialog.d.ts +3 -2
@@ -19,9 +19,9 @@ export class HttpRequestStateFactory {
19
19
  return requestor;
20
20
  }
21
21
  }
22
- HttpRequestStateFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpRequestStateFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
23
- HttpRequestStateFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpRequestStateFactory });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpRequestStateFactory, decorators: [{
22
+ HttpRequestStateFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpRequestStateFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
23
+ HttpRequestStateFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpRequestStateFactory });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpRequestStateFactory, decorators: [{
25
25
  type: Injectable
26
26
  }], ctorParameters: function () { return []; } });
27
27
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlcXVlc3RTdGF0ZUZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvaHR0cC1yZXF1ZXN0LXN0YXRlL0h0dHBSZXF1ZXN0U3RhdGVGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBSWhFLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEM7UUFJUSxlQUFVLEdBQWdCLEVBQUUsQ0FBQztJQUp0QixDQUFDO0lBQ2hCLFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxNQUFNLENBQTJCLEdBQWlDLEVBQUUsT0FBNkI7UUFDL0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELGdCQUFnQixDQUFLLENBQXVDLEVBQUcsT0FBNkI7UUFDMUYsTUFBTSxTQUFTLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7b0hBakJVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwUmVxdWVzdEZhY3RvcnksIFJlcXVlc3RTdGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5pbXBvcnQgeyBIdHRwUmVxdWVzdFN0YXRlU3RvcmUgfSBmcm9tICcuL0h0dHBSZXF1ZXN0U3RhdGVTdG9yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSHR0cFJlcXVlc3RTdGF0ZUZhY3RvcnkgIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0b3JzLmZvckVhY2goIHJlcXVlc3QgPT4gcmVxdWVzdC5uZ09uRGVzdHJveSgpKTtcclxuICB9XHJcbiAgcHJpdmF0ZSByZXF1ZXN0b3JzOiBPbkRlc3Ryb3lbXSA9IFtdO1xyXG4gIGNyZWF0ZTxUUGFyYW0gZXh0ZW5kcyBhbnlbXSwgVD4oIHJlcTogSHR0cFJlcXVlc3RGYWN0b3J5PFRQYXJhbSxUPiwgb3B0aW9ucz86IFJlcXVlc3RTdGF0ZU9wdGlvbnMgKSA6IEh0dHBSZXF1ZXN0U3RhdGVTdG9yZTxUUGFyYW0sVD4ge1xyXG4gICAgY29uc3QgcmVxdWVzdG9yID0gbmV3IEh0dHBSZXF1ZXN0U3RhdGVTdG9yZShyZXEsIG9wdGlvbnMpO1xyXG4gICAgdGhpcy5yZXF1ZXN0b3JzLnB1c2gocmVxdWVzdG9yKTtcclxuICAgIHJldHVybiByZXF1ZXN0b3I7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVIdHRwQ2xpZW50PFQ+KCByOiAobzogT2JzZXJ2YWJsZTxUPiApID0+IE9ic2VydmFibGU8VD4gLCBvcHRpb25zPzogUmVxdWVzdFN0YXRlT3B0aW9ucyApICB7XHJcbiAgICBjb25zdCByZXF1ZXN0b3IgPSBuZXcgSHR0cFJlcXVlc3RTdGF0ZVN0b3JlKHIsIG9wdGlvbnMpO1xyXG4gICAgdGhpcy5yZXF1ZXN0b3JzLnB1c2gocmVxdWVzdG9yKTtcclxuICAgIHJldHVybiByZXF1ZXN0b3I7XHJcbiAgfVxyXG5cclxufSJdfQ==
@@ -69,9 +69,9 @@ export class HttpRequestStateStore extends ComponentStore {
69
69
  super.ngOnDestroy();
70
70
  }
71
71
  }
72
- HttpRequestStateStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpRequestStateStore, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
73
- HttpRequestStateStore.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: HttpRequestStateStore, usesInheritance: true, ngImport: i0 });
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpRequestStateStore, decorators: [{
72
+ HttpRequestStateStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpRequestStateStore, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
73
+ HttpRequestStateStore.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.2", type: HttpRequestStateStore, usesInheritance: true, ngImport: i0 });
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpRequestStateStore, decorators: [{
75
75
  type: Directive
76
76
  }], ctorParameters: function () { return [{ type: undefined }, { type: undefined }]; } });
77
77
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlcXVlc3RTdGF0ZVN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL2h0dHAtcmVxdWVzdC1zdGF0ZS9IdHRwUmVxdWVzdFN0YXRlU3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBc0IsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQXlDLE1BQU0sU0FBUyxDQUFDO0FBQzVILE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMvRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUTFDLE1BQU0sT0FBTyxxQkFBK0MsU0FBUSxjQUF5QztJQUV6RyxZQUFvQixHQUFpQyxFQUFVLE9BQTZCO1FBQzFGLEtBQUssQ0FBQyxFQUFDLGFBQWEsRUFBRSxJQUFXLEVBQUUsUUFBUSxFQUFDLFVBQVUsRUFBQyxDQUFDLENBQUM7UUFEdkMsUUFBRyxHQUFILEdBQUcsQ0FBOEI7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQVVwRix1QkFBa0IsR0FBRyxHQUFHLEVBQUU7WUFDaEMsSUFBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsS0FBSyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUU7Z0JBQzVELE9BQU8sU0FBUyxDQUFFLENBQUMsTUFBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFHLENBQUM7YUFDN0U7WUFDRCxPQUFPLFFBQVEsQ0FBRSxDQUFDLE1BQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQTtRQUVPLGtCQUFhLEdBQTBDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUE0QixFQUFFLEVBQUU7WUFDMUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDZixJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFDekIsR0FBRyxDQUE2QixLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDL0QsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUsscUJBQWdCLEdBQUcsQ0FBQyxHQUFHLEtBQWtCLEVBQUUsRUFBRTtZQUNuRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFpQixDQUFDO1FBQ25ELENBQUMsQ0FBQTtRQUNPLHFCQUFnQixHQUFHLENBQUMsR0FBRyxLQUFrQixFQUFFLEVBQUU7WUFDbkQsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUU7Z0JBQy9ELE1BQU0sSUFBSSxLQUFLLENBQUMsOEhBQThILENBQUMsQ0FBQzthQUNqSjtZQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQWlCLENBQUM7UUFDbkQsQ0FBQyxDQUFBO1FBRUQscUJBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFdkQsa0JBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTVELGlCQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFDcEIsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUNwQixHQUFHLENBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQzNCLENBQUM7UUFFRixvQkFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNoQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQ3BCLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFDdEIsR0FBRyxDQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUMxQixDQUFDO1FBRUYsaUJBQVksR0FBRyxLQUFLLENBQUM7UUF3Q3JCLE9BQUUsR0FBRyxDQUFJLGFBQTRCLEVBQUUsSUFBc0IsRUFBZ0IsRUFBRTtZQUM3RSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFrQixFQUFFLEVBQUU7Z0JBQ3hDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQWlCLENBQUM7UUFDcEMsQ0FBQyxDQUFBO1FBNUZDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsS0FBSyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDN0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsYUFBYSxFQUFDLElBQVcsRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBNENELE9BQU8sQ0FBRSxFQUFzQztRQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFNBQVMsQ0FBRSxFQUFxQjtRQUM5QixJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFHWDtRQUNSLElBQUksQ0FBQyxRQUFRLENBQUUsQ0FBQyxFQUFDLGFBQWEsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFFO1lBQzFDLElBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFDO2dCQUMxQixJQUFJLENBQUMsRUFBQyxhQUFhLEVBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDO2FBQzNDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUFDLEdBQUcsTUFBbUI7UUFDMUMsT0FBUSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUM5QixHQUFHLENBQUMsYUFBYSxDQUFDLEVBQ2xCLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFDdkIsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUNyQixHQUFHLENBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsYUFBYSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxFQUN0RCxrQkFBa0IsRUFBRSxDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUdELFFBQVEsQ0FBQyxJQUdDO1FBQ1IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFVRCxXQUFXO1FBQ1QsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7O2tIQXRHUSxxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudFN0b3JlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50LXN0b3JlJztcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3RGYWN0b3J5LCBIdHRwUmVxdWVzdFN0cmF0ZWd5LCBIdHRwUmVxdWVzdFN0YXR1cywgSHR0cFJlcXVlc3RTdGF0ZSwgUmVxdWVzdFN0YXRlT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnO1xyXG5pbXBvcnQgeyBjcmVhdGVGYWlsdXJlLCBjcmVhdGVTdWNjZXNzLCBpblByb2dyZXNzLCBpc0Vycm9yU3RhdGUsIGlzU3VjY2Vzc1N0YXRlLCBub3RTdGFydGVkIH0gZnJvbSAnLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCBwbHVjaywgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IG1hcEVycm9yIH0gZnJvbSAnLi4vcnhqcy9tYXBFcnJvcic7XHJcbmltcG9ydCB7IGRlZmF1bHRTaGFyZVJlcGxheSB9IGZyb20gJy4uL3J4anMvZGVmYXVsdFNoYXJlUmVwbGF5JztcclxuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RSZXNwb25zZTxUUGFyYW0gZXh0ZW5kcyBhbnlbXSxUPiB7XHJcbiAgcmVxdWVzdFBhcmFtczogWy4uLlRQYXJhbV07XHJcbiAgcmVzcG9uc2U6IEh0dHBSZXF1ZXN0U3RhdGU8VD47XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgSHR0cFJlcXVlc3RTdGF0ZVN0b3JlPFRQYXJhbSBleHRlbmRzIGFueVtdLCBUPiBleHRlbmRzIENvbXBvbmVudFN0b3JlPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sVD4+IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcTogSHR0cFJlcXVlc3RGYWN0b3J5PFRQYXJhbSxUPiAscHJpdmF0ZSBvcHRpb25zPzogUmVxdWVzdFN0YXRlT3B0aW9ucykge1xyXG4gICAgICBzdXBlcih7cmVxdWVzdFBhcmFtczogbnVsbCBhcyBhbnkgLHJlc3BvbnNlOm5vdFN0YXJ0ZWR9KTtcclxuICAgICAgdGhpcy5yZXF1ZXN0ID0gKHRoaXMub3B0aW9ucz8uc3RyYXRlZ3kgPT09IEh0dHBSZXF1ZXN0U3RyYXRlZ3kuc2luZ2xlVXNlKSA/IHRoaXMuc2luZ2xlVXNlUmVxdWVzdCA6ICB0aGlzLmZsYXR0ZW5lZFJlcXVlc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcmVzZXQoKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe3JlcXVlc3RQYXJhbXM6bnVsbCBhcyBhbnkscmVzcG9uc2U6bm90U3RhcnRlZH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIGZsYXR0ZW5pbmdTdHJhdGVneSA9ICgpID0+IHtcclxuICAgICAgaWYodGhpcy5vcHRpb25zPy5zdHJhdGVneSAhPT0gSHR0cFJlcXVlc3RTdHJhdGVneS5jb25jdXJyZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIHN3aXRjaE1hcCggKHBhcmFtczogWy4uLlRQYXJhbV0pID0+IHRoaXMuY3JlYXRlUmVxdWVzdCguLi5wYXJhbXMpICApO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBtZXJnZU1hcCggKHBhcmFtczogWy4uLlRQYXJhbV0pID0+IHRoaXMuY3JlYXRlUmVxdWVzdCguLi5wYXJhbXMpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlcXVlc3RFZmZlY3Q6ICh2YWx1ZTogWy4uLlRQYXJhbV0gKSA9PiBTdWJzY3JpcHRpb24gPSB0aGlzLmVmZmVjdCgob2JzOiBPYnNlcnZhYmxlPFsuLi5UUGFyYW1dPikgPT4ge1xyXG4gICAgICByZXR1cm4gKG9icykucGlwZShcclxuICAgICAgICB0aGlzLmZsYXR0ZW5pbmdTdHJhdGVneSgpLFxyXG4gICAgICAgIHRhcDxSZXF1ZXN0UmVzcG9uc2U8VFBhcmFtLCBUPj4oc3RhdGUgPT4gdGhpcy5zZXRTdGF0ZShzdGF0ZSkpLFxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcHJpdmF0ZSBmbGF0dGVuZWRSZXF1ZXN0ID0gKC4uLnZhbHVlOiBbLi4uVFBhcmFtXSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0RWZmZWN0KHZhbHVlKSBhcyBTdWJzY3JpcHRpb247XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIHNpbmdsZVVzZVJlcXVlc3QgPSAoLi4udmFsdWU6IFsuLi5UUGFyYW1dKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmdldCgpLnJlc3BvbnNlLnN0YXR1cyAhPT0gSHR0cFJlcXVlc3RTdGF0dXMubm90U3RhcnRlZCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInN0YXRlIGNhbiBub3QgYmUgcmV1c2VkLiBlaXRoZXIgcmVzZXQgdGhlIHN0YXRlIGJ5IGNhbGxpbmcgcmVzZXQoKSBvciB1c2UgYSBzdGF0ZSByZXF1ZXN0ZXIgdGhhdCBhbGxvd3MgY29uY3VycmVudCByZXF1ZXN0cy5cIik7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdEVmZmVjdCh2YWx1ZSkgYXMgU3Vic2NyaXB0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdEh0dHBTdGF0ZSQgPSB0aGlzLnN0YXRlJC5waXBlKHBsdWNrKCdyZXNwb25zZScpKTtcclxuXHJcbiAgICBzZWxlY3RTdGF0dXMkID0gdGhpcy5zZWxlY3RIdHRwU3RhdGUkLnBpcGUocGx1Y2soJ3N0YXR1cycpKTtcclxuXHJcbiAgICBzZWxlY3RFcnJvciQgPSB0aGlzLnN0YXRlJC5waXBlKFxyXG4gICAgICBtYXAociA9PiByLnJlc3BvbnNlKSxcclxuICAgICAgZmlsdGVyKGlzRXJyb3JTdGF0ZSksXHJcbiAgICAgIG1hcCggc3RhdGUgPT4gc3RhdGUuZXJyb3IpXHJcbiAgICApO1xyXG5cclxuICAgIHNlbGVjdFJlc3BvbnNlJCA9IHRoaXMuc3RhdGUkLnBpcGUoXHJcbiAgICAgIG1hcChyID0+IHIucmVzcG9uc2UpLFxyXG4gICAgICBmaWx0ZXIoaXNTdWNjZXNzU3RhdGUpLFxyXG4gICAgICBtYXAoIHN0YXRlID0+IHN0YXRlLmJvZHkpXHJcbiAgICApO1xyXG5cclxuICAgIGVycm9ySGFuZGxlZCA9IGZhbHNlO1xyXG4gICAgb25FcnJvciggY2I6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5lcnJvckhhbmRsZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9uKHRoaXMuc2VsZWN0RXJyb3IkLCBjYik7XHJcbiAgICB9XHJcblxyXG4gICAgb25TdWNjZXNzKCBjYjogKGJvZHk6IFQpID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdFJlc3BvbnNlJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3NXaXRoUmVxdWVzdChmdW5jOiAoc3RhdGU6IHtcclxuICAgICAgcmVxdWVzdFBhcmFtczogWy4uLlRQYXJhbV07XHJcbiAgICAgIGJvZHk6IFQ7XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub25VcGRhdGUoICh7cmVxdWVzdFBhcmFtcyxyZXNwb25zZX0pID0+IHtcclxuICAgICAgICBpZihpc1N1Y2Nlc3NTdGF0ZShyZXNwb25zZSkpe1xyXG4gICAgICAgICAgZnVuYyh7cmVxdWVzdFBhcmFtcyxib2R5OiByZXNwb25zZS5ib2R5fSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZVJlcXVlc3QoLi4ucGFyYW1zOiBbLi4uVFBhcmFtXSkgOiBPYnNlcnZhYmxlPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sVD4+IHtcclxuICAgICAgcmV0dXJuICB0aGlzLnJlcSguLi5wYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgbWFwKGNyZWF0ZVN1Y2Nlc3MpLFxyXG4gICAgICAgIG1hcEVycm9yKGNyZWF0ZUZhaWx1cmUpLFxyXG4gICAgICAgIHN0YXJ0V2l0aChpblByb2dyZXNzKSxcclxuICAgICAgICBtYXAoIHN0YXRlID0+ICh7cmVxdWVzdFBhcmFtczpwYXJhbXMscmVzcG9uc2U6c3RhdGV9KSksXHJcbiAgICAgICAgZGVmYXVsdFNoYXJlUmVwbGF5KClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgb25VcGRhdGUoZnVuYzogKHN0YXRlOiB7XHJcbiAgICAgIHJlcXVlc3RQYXJhbXM6IFsuLi5UUGFyYW1dO1xyXG4gICAgICByZXNwb25zZTogSHR0cFJlcXVlc3RTdGF0ZTxUPjtcclxuICAgIH0pID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5vbih0aGlzLnN0YXRlJCxmdW5jKTtcclxuICAgIH1cclxuXHJcbiAgICBvbiA9IDxWPihzcmNPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFY+LCBmdW5jOiAob2JqOiBWKSA9PiB2b2lkKTogU3Vic2NyaXB0aW9uID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuZWZmZWN0KChzcmM6IE9ic2VydmFibGU8Vj4pID0+IHtcclxuICAgICAgICByZXR1cm4gc3JjLnBpcGUodGFwKGZ1bmMpKTtcclxuICAgICAgfSkoc3JjT2JzZXJ2YWJsZSkgYXMgU3Vic2NyaXB0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHJlcXVlc3Q6ICguLi52YWx1ZTogWy4uLlRQYXJhbV0gKSA9PiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuIl19
@@ -26,9 +26,9 @@ export class HttpStateDirectiveBase {
26
26
  ngOnDestroy() {
27
27
  }
28
28
  }
29
- HttpStateDirectiveBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpStateDirectiveBase, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
30
- HttpStateDirectiveBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: HttpStateDirectiveBase, ngImport: i0 });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpStateDirectiveBase, decorators: [{
29
+ HttpStateDirectiveBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpStateDirectiveBase, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
30
+ HttpStateDirectiveBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.2", type: HttpStateDirectiveBase, ngImport: i0 });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpStateDirectiveBase, decorators: [{
32
32
  type: Directive
33
33
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
34
34
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFN0YXRlRGlyZWN0aXZlQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9odHRwLXJlcXVlc3Qtc3RhdGUvZGlyZWN0aXZlcy9IdHRwU3RhdGVEaXJlY3RpdmVCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTJDLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUd0RSxNQUFNLE9BQWdCLHNCQUFzQjtJQUV4QyxZQUNZLFFBQWtCLEVBQ2hCLFdBQTZCLEVBQzdCLGFBQStCO1FBRmpDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUo3QyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBc0JSLGVBQVUsR0FBRyxDQUFDLEtBQXNCLEVBQVUsRUFBRTtZQUNwRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7YUFDeEI7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFBO0lBckJELENBQUM7SUFFRCxRQUFRO1FBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM1RCxJQUFHLE1BQU0sSUFBSSxJQUFJLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLHdGQUF3RixDQUFDLENBQUM7U0FDN0c7UUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxXQUFXO0lBRVgsQ0FBQzs7bUhBckJpQixzQkFBc0I7dUdBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUQzQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3RTdGF0ZSB9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3RTdGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vcmVxdWVzdC1zdGF0ZS1kaXJlY3RpdmUnO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBIdHRwU3RhdGVEaXJlY3RpdmVCYXNlIHtcclxuICAgIGhhc1ZpZXcgPSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgICAgICBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcclxuICAgICkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmluamVjdG9yLmdldChIdHRwUmVxdWVzdFN0YXRlRGlyZWN0aXZlKTtcclxuICAgICAgICBpZihwYXJlbnQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW4gb25seSB1c2UgYW4gaHR0cCBzdGF0ZSBkaXJlY3RpdmUgYXMgYSBjaGlsZCBvZiB0aGUgaHR0cFJlcXVlc3RTdGF0ZSBkaXJlY3RpdmUuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBhcmVudC5ob29rcy5wdXNoKHRoaXMuYmFzZVJlbmRlcik7XHJcbiAgICAgICAgdGhpcy5iYXNlUmVuZGVyKHBhcmVudC5WaWV3Q29udGV4dC5zdGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBiYXNlUmVuZGVyID0gKHN0YXRlOkh0dHBSZXF1ZXN0U3RhdGUgKSA6IHZvaWQgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc1ZpZXcpIHtcclxuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzVmlldyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmhhc1ZpZXcgPSB0aGlzLnJlbmRlcihzdGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYWJzdHJhY3QgcmVuZGVyOiAoc3RhdGU6IEh0dHBSZXF1ZXN0U3RhdGUpID0+IGJvb2xlYW47XHJcbn1cclxuIl19
@@ -20,9 +20,9 @@ export class HttpErrorStateDirective extends HttpStateDirectiveBase {
20
20
  super.ngOnDestroy();
21
21
  }
22
22
  }
23
- HttpErrorStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpErrorStateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
24
- HttpErrorStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: HttpErrorStateDirective, selector: "[httpErrorState]", usesInheritance: true, ngImport: i0 });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpErrorStateDirective, decorators: [{
23
+ HttpErrorStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpErrorStateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
24
+ HttpErrorStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.2", type: HttpErrorStateDirective, selector: "[httpErrorState]", usesInheritance: true, ngImport: i0 });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpErrorStateDirective, decorators: [{
26
26
  type: Directive,
27
27
  args: [{ selector: '[httpErrorState]' }]
28
28
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
@@ -20,9 +20,9 @@ export class HttpInProgressStateDirective extends HttpStateDirectiveBase {
20
20
  super.ngOnDestroy();
21
21
  }
22
22
  }
23
- HttpInProgressStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpInProgressStateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
24
- HttpInProgressStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: HttpInProgressStateDirective, selector: "[httpInProgressState]", usesInheritance: true, ngImport: i0 });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpInProgressStateDirective, decorators: [{
23
+ HttpInProgressStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpInProgressStateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
24
+ HttpInProgressStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.2", type: HttpInProgressStateDirective, selector: "[httpInProgressState]", usesInheritance: true, ngImport: i0 });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpInProgressStateDirective, decorators: [{
26
26
  type: Directive,
27
27
  args: [{ selector: '[httpInProgressState]' }]
28
28
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
@@ -20,9 +20,9 @@ export class HttpNotStartedStateDirective extends HttpStateDirectiveBase {
20
20
  super.ngOnDestroy();
21
21
  }
22
22
  }
23
- HttpNotStartedStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpNotStartedStateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
24
- HttpNotStartedStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: HttpNotStartedStateDirective, selector: "[httpNotStartedState]", usesInheritance: true, ngImport: i0 });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpNotStartedStateDirective, decorators: [{
23
+ HttpNotStartedStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpNotStartedStateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
24
+ HttpNotStartedStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.2", type: HttpNotStartedStateDirective, selector: "[httpNotStartedState]", usesInheritance: true, ngImport: i0 });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpNotStartedStateDirective, decorators: [{
26
26
  type: Directive,
27
27
  args: [{ selector: '[httpNotStartedState]' }]
28
28
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
@@ -20,9 +20,9 @@ export class HttpSuccessStateDirective extends HttpStateDirectiveBase {
20
20
  super.ngOnDestroy();
21
21
  }
22
22
  }
23
- HttpSuccessStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpSuccessStateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
24
- HttpSuccessStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: HttpSuccessStateDirective, selector: "[httpSuccessState]", usesInheritance: true, ngImport: i0 });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpSuccessStateDirective, decorators: [{
23
+ HttpSuccessStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpSuccessStateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
24
+ HttpSuccessStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.2", type: HttpSuccessStateDirective, selector: "[httpSuccessState]", usesInheritance: true, ngImport: i0 });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpSuccessStateDirective, decorators: [{
26
26
  type: Directive,
27
27
  args: [{ selector: '[httpSuccessState]' }]
28
28
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
@@ -45,9 +45,9 @@ export class HttpRequestStateDirective {
45
45
  this.subscription.unsubscribe();
46
46
  }
47
47
  }
48
- HttpRequestStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpRequestStateDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
49
- HttpRequestStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: HttpRequestStateDirective, selector: "[httpRequestState]", inputs: { stateStore: ["httpRequestState", "stateStore"] }, ngImport: i0 });
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpRequestStateDirective, decorators: [{
48
+ HttpRequestStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpRequestStateDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
49
+ HttpRequestStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.2", type: HttpRequestStateDirective, selector: "[httpRequestState]", inputs: { stateStore: ["httpRequestState", "stateStore"] }, ngImport: i0 });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpRequestStateDirective, decorators: [{
51
51
  type: Directive,
52
52
  args: [{ selector: '[httpRequestState]' }]
53
53
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { stateStore: [{
@@ -7,8 +7,8 @@ import { HttpNotStartedStateDirective } from './directives/http-notStarted-state
7
7
  import * as i0 from "@angular/core";
8
8
  export class HttpRequestModule {
9
9
  }
10
- HttpRequestModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpRequestModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- HttpRequestModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpRequestModule, declarations: [HttpSuccessStateDirective,
10
+ HttpRequestModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpRequestModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ HttpRequestModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpRequestModule, declarations: [HttpSuccessStateDirective,
12
12
  HttpRequestStateDirective,
13
13
  HttpErrorStateDirective,
14
14
  HttpInProgressStateDirective,
@@ -17,8 +17,8 @@ HttpRequestModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
17
17
  HttpErrorStateDirective,
18
18
  HttpInProgressStateDirective,
19
19
  HttpNotStartedStateDirective] });
20
- HttpRequestModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpRequestModule, providers: [] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: HttpRequestModule, decorators: [{
20
+ HttpRequestModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpRequestModule, providers: [] });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: HttpRequestModule, decorators: [{
22
22
  type: NgModule,
23
23
  args: [{
24
24
  providers: [],
@@ -1,3 +1,3 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  export const TableBuilderConfigToken = new InjectionToken('TableBuilderConfig');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVCdWlsZGVyQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY2xhc3Nlcy9UYWJsZUJ1aWxkZXJDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWlCL0MsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQXFCLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVTdGF0ZSB9IGZyb20gJy4vVGFibGVTdGF0ZSc7XG5pbXBvcnQgeyBEZWZhdWx0U2V0dGluZ3MgfSBmcm9tICcuL0RlZmF1bHRTZXR0aW5ncyc7XG5pbXBvcnQgeyBBcnJheUFkZGl0aW9uYWwsIEZpZWxkVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQnVpbGRlckNvbmZpZyB7XG4gIGRlZmF1bHRUYWJsZVN0YXRlOiBQYXJ0aWFsPFRhYmxlU3RhdGU+O1xuICBleHBvcnQ/OiBUYWJsZUJ1aWxkZXJFeHBvcnQ7XG4gIGRlZmF1bHRTZXR0aW5ncz86IERlZmF1bHRTZXR0aW5ncztcbiAgYXJyYXlJbmZvPzogQXJyYXlBZGRpdGlvbmFsO1xuICB0cmFuc2Zvcm1lcnM/OiBQYXJ0aWFsPHsgW2tleSBpbiBrZXlvZiB0eXBlb2YgRmllbGRUeXBlXTogKHZhbDogYW55KSA9PiBhbnkgfT5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUJ1aWxkZXJFeHBvcnQge1xuICBkYXRlRm9ybWF0Pzogc3RyaW5nO1xuICBvblNhdmU/OiAoZXZlbnQ/OiBhbnkpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBUYWJsZUJ1aWxkZXJDb25maWdUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUYWJsZUJ1aWxkZXJDb25maWc+KCdUYWJsZUJ1aWxkZXJDb25maWcnKTtcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVCdWlsZGVyQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY2xhc3Nlcy9UYWJsZUJ1aWxkZXJDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWtCL0MsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQXFCLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVTdGF0ZSB9IGZyb20gJy4vVGFibGVTdGF0ZSc7XG5pbXBvcnQgeyBEZWZhdWx0U2V0dGluZ3MgfSBmcm9tICcuL0RlZmF1bHRTZXR0aW5ncyc7XG5pbXBvcnQgeyBBcnJheUFkZGl0aW9uYWwsIEZpZWxkVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQnVpbGRlckNvbmZpZyB7XG4gIGRlZmF1bHRUYWJsZVN0YXRlOiBQYXJ0aWFsPFRhYmxlU3RhdGU+O1xuICBleHBvcnQ/OiBUYWJsZUJ1aWxkZXJFeHBvcnQ7XG4gIGRlZmF1bHRTZXR0aW5ncz86IERlZmF1bHRTZXR0aW5ncztcbiAgYXJyYXlJbmZvPzogQXJyYXlBZGRpdGlvbmFsO1xuICB0cmFuc2Zvcm1lcnM/OiBQYXJ0aWFsPHsgW2tleSBpbiBrZXlvZiB0eXBlb2YgRmllbGRUeXBlXTogKHZhbDogYW55KSA9PiBhbnkgfT5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUJ1aWxkZXJFeHBvcnQge1xuICBkYXRlRm9ybWF0Pzogc3RyaW5nO1xuICBvblNhdmU/OiAoZXZlbnQ/OiBhbnkpID0+IHZvaWQ7XG4gIHByZXBlbmQgOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBUYWJsZUJ1aWxkZXJDb25maWdUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUYWJsZUJ1aWxkZXJDb25maWc+KCdUYWJsZUJ1aWxkZXJDb25maWcnKTtcbiJdfQ==
@@ -208,9 +208,9 @@ export class TableStore extends ComponentStore {
208
208
  this.on(this.state$.pipe(last()), callback);
209
209
  }
210
210
  }
211
- TableStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: TableStore, deps: [{ token: TableBuilderConfigToken }], target: i0.ɵɵFactoryTarget.Injectable });
212
- TableStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: TableStore, providedIn: 'root' });
213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: TableStore, decorators: [{
211
+ TableStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: TableStore, deps: [{ token: TableBuilderConfigToken }], target: i0.ɵɵFactoryTarget.Injectable });
212
+ TableStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: TableStore, providedIn: 'root' });
213
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: TableStore, decorators: [{
214
214
  type: Injectable,
215
215
  args: [{
216
216
  providedIn: 'root',
@@ -13,8 +13,8 @@ export class ArrayColumnComponent {
13
13
  this.array = (this.array ?? []).slice(0, this.additional.limit);
14
14
  }
15
15
  }
16
- ArrayColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ArrayColumnComponent, deps: [{ token: TableBuilderConfigToken }], target: i0.ɵɵFactoryTarget.Component });
17
- ArrayColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: ArrayColumnComponent, selector: "tb-array-column", inputs: { array: "array", metaData: "metaData" }, ngImport: i0, template: `
16
+ ArrayColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ArrayColumnComponent, deps: [{ token: TableBuilderConfigToken }], target: i0.ɵɵFactoryTarget.Component });
17
+ ArrayColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: ArrayColumnComponent, selector: "tb-array-column", inputs: { array: "array", metaData: "metaData" }, ngImport: i0, template: `
18
18
  <ng-container *ngIf="array.length === 0; else hasVals">-</ng-container>
19
19
  <ng-template #hasVals>
20
20
  <ng-container [ngSwitch]="additional.arrayStyle">
@@ -27,7 +27,7 @@ ArrayColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
27
27
  </ng-container>
28
28
  </ng-template>
29
29
  `, isInline: true, directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ArrayColumnComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ArrayColumnComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{
33
33
  selector: 'tb-array-column',
@@ -71,9 +71,9 @@ export class ColumnBuilderComponent {
71
71
  }
72
72
  }
73
73
  }
74
- ColumnBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ColumnBuilderComponent, deps: [{ token: i1.TransformCreator }, { token: i2.MatTable }, { token: i3.TableStore }, { token: i4.TableTemplateService }], target: i0.ɵɵFactoryTarget.Component });
75
- ColumnBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: ColumnBuilderComponent, selector: "tb-column-builder", inputs: { metaData: "metaData", customCell: "customCell", data$: "data$" }, viewQueries: [{ propertyName: "columnDef", first: true, predicate: MatColumnDef, descendants: true }, { propertyName: "bodyTemplate", first: true, predicate: ["body"], descendants: true }], ngImport: i0, template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles$ as styles\">\n\n <ng-template #body let-element='element' >\n <mat-cell [styler]='styles.body' (click)='cellClicked(element, metaData.key)'>\n <ng-container *ngTemplateOutlet=\"innerTemplate;context: {metaData: metaData, element: element, transform: transform }\">\n </ng-container>\n <span class=\"no-val\" *ngIf=\"metaData.fieldType !== FieldType.Expression && ( element[metaData.key] == null ) &&\n !((customCell && customCell.TemplateRef) || metaData.template)\">-</span>\n </mat-cell>\n </ng-template>\n\n <ng-template matHeaderCellDef #myHeader>\n\n <ng-container *ngIf=\"customCell?.columnDef?.headerCell;else header;\">\n <ng-container *ngTemplateOutlet=\"customCell.columnDef.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\n </ng-container>\n </ng-container>\n\n <ng-template #header>\n\n <mat-header-cell [styler]='styles.header' [resizeColumn]=\"true\" [key]=\"metaData.key\" class=\"column-head\" #headref >\n <div class=\"header-container\">\n <div *ngIf=\"!metaData._internalNotUserDefined || !customCell?.columnDef?.cell ; else headerWithoutMenu\" mat-sort-header style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n <ng-template #headerWithoutMenu >\n <div *ngIf=\"metaData._internalNotUserDefined;\" style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n </ng-template>\n <tb-header-menu *ngIf=\"(!metaData._internalNotUserDefined || !customCell?.columnDef?.cell) && (!metaData.noFilter)\" #menu [metaData]='metaData' [filter]='filter' ></tb-header-menu>\n </div>\n </mat-header-cell>\n </ng-template>\n </ng-template>\n\n\n <ng-container *matCellDef=\"let element;\">\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: {metaData: metaData, element: element , styles: styles.body }\">\n </ng-container>\n </ng-container>\n\n <ng-template matFooterCellDef>\n <ng-container *ngIf=\"customCell?.columnDef?.footerCell;else footer\">\n <ng-container\n *ngTemplateOutlet=\"customCell.columnDef.footerCell.template;context: {metaData: metaData, data: data$, styles : styles.footer }\">\n </ng-container>\n </ng-container>\n\n <ng-template #footer>\n <mat-footer-cell [styler]='styles.footer' *ngrxLet=\"data$ as data\">\n <span *ngIf=\"data?.length && metaData.additional?.footer\" [ngSwitch]=\"metaData.fieldType\" class=\"bold\">\n <span *ngSwitchCase=\"FieldType.Currency\">\n {{ data | columnTotal: metaData | currency }}\n </span>\n <span *ngSwitchCase=\"FieldType.Number\">\n {{ data | columnTotal: metaData | number }}\n </span>\n </span>\n </mat-footer-cell>\n </ng-template>\n </ng-template>\n</ng-container>\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold{font-weight:900}\n"], components: [{ type: i5.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: i6.HeaderMenuComponent, selector: "tb-header-menu", inputs: ["filter", "metaData"] }], directives: [{ type: i7.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet"] }, { type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i8.StylerDirective, selector: "[styler]", inputs: ["styler"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i10.ResizeColumnDirective, selector: "[resizeColumn]", inputs: ["resizeColumn", "key"] }, { type: i2.MatCellDef, selector: "[matCellDef]" }, { type: i2.MatFooterCellDef, selector: "[matFooterCellDef]" }, { type: i2.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "spaceCase": i11.SpaceCasePipe, "currency": i9.CurrencyPipe, "columnTotal": i12.ColumnTotalPipe, "number": i9.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ColumnBuilderComponent, decorators: [{
74
+ ColumnBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ColumnBuilderComponent, deps: [{ token: i1.TransformCreator }, { token: i2.MatTable }, { token: i3.TableStore }, { token: i4.TableTemplateService }], target: i0.ɵɵFactoryTarget.Component });
75
+ ColumnBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: ColumnBuilderComponent, selector: "tb-column-builder", inputs: { metaData: "metaData", customCell: "customCell", data$: "data$" }, viewQueries: [{ propertyName: "columnDef", first: true, predicate: MatColumnDef, descendants: true }, { propertyName: "bodyTemplate", first: true, predicate: ["body"], descendants: true }], ngImport: i0, template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles$ as styles\">\n\n <ng-template #body let-element='element' >\n <mat-cell [styler]='styles.body' (click)='cellClicked(element, metaData.key)'>\n <ng-container *ngTemplateOutlet=\"innerTemplate;context: {metaData: metaData, element: element, transform: transform }\">\n </ng-container>\n <span class=\"no-val\" *ngIf=\"metaData.fieldType !== FieldType.Expression && ( element[metaData.key] == null ) &&\n !((customCell && customCell.TemplateRef) || metaData.template)\">-</span>\n </mat-cell>\n </ng-template>\n\n <ng-template matHeaderCellDef #myHeader>\n\n <ng-container *ngIf=\"customCell?.columnDef?.headerCell;else header;\">\n <ng-container *ngTemplateOutlet=\"customCell.columnDef.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\n </ng-container>\n </ng-container>\n\n <ng-template #header>\n\n <mat-header-cell [styler]='styles.header' [resizeColumn]=\"true\" [key]=\"metaData.key\" class=\"column-head\" #headref >\n <div class=\"header-container\">\n <div *ngIf=\"!metaData._internalNotUserDefined || !customCell?.columnDef?.cell ; else headerWithoutMenu\" mat-sort-header style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n <ng-template #headerWithoutMenu >\n <div *ngIf=\"metaData._internalNotUserDefined;\" style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n </ng-template>\n <tb-header-menu *ngIf=\"(!metaData._internalNotUserDefined || !customCell?.columnDef?.cell) && (!metaData.noFilter)\" #menu [metaData]='metaData' [filter]='filter' ></tb-header-menu>\n </div>\n </mat-header-cell>\n </ng-template>\n </ng-template>\n\n\n <ng-container *matCellDef=\"let element;\">\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: {metaData: metaData, element: element , styles: styles.body }\">\n </ng-container>\n </ng-container>\n\n <ng-template matFooterCellDef>\n <ng-container *ngIf=\"customCell?.columnDef?.footerCell;else footer\">\n <ng-container\n *ngTemplateOutlet=\"customCell.columnDef.footerCell.template;context: {metaData: metaData, data: data$, styles : styles.footer }\">\n </ng-container>\n </ng-container>\n\n <ng-template #footer>\n <mat-footer-cell [styler]='styles.footer' *ngrxLet=\"data$ as data\">\n <span *ngIf=\"data?.length && metaData.additional?.footer\" [ngSwitch]=\"metaData.fieldType\" class=\"bold\">\n <span *ngSwitchCase=\"FieldType.Currency\">\n {{ data | columnTotal: metaData | currency }}\n </span>\n <span *ngSwitchCase=\"FieldType.Number\">\n {{ data | columnTotal: metaData | number }}\n </span>\n </span>\n </mat-footer-cell>\n </ng-template>\n </ng-template>\n</ng-container>\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold{font-weight:900}\n"], components: [{ type: i5.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: i6.HeaderMenuComponent, selector: "tb-header-menu", inputs: ["filter", "metaData"] }], directives: [{ type: i7.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet"] }, { type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i8.StylerDirective, selector: "[styler]", inputs: ["styler"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i10.ResizeColumnDirective, selector: "[resizeColumn]", inputs: ["resizeColumn", "key"] }, { type: i2.MatCellDef, selector: "[matCellDef]" }, { type: i2.MatFooterCellDef, selector: "[matFooterCellDef]" }, { type: i2.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "spaceCase": i11.SpaceCasePipe, "currency": i9.CurrencyPipe, "columnTotal": i12.ColumnTotalPipe, "number": i9.DecimalPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: ColumnBuilderComponent, decorators: [{
77
77
  type: Component,
78
78
  args: [{ selector: 'tb-column-builder', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles$ as styles\">\n\n <ng-template #body let-element='element' >\n <mat-cell [styler]='styles.body' (click)='cellClicked(element, metaData.key)'>\n <ng-container *ngTemplateOutlet=\"innerTemplate;context: {metaData: metaData, element: element, transform: transform }\">\n </ng-container>\n <span class=\"no-val\" *ngIf=\"metaData.fieldType !== FieldType.Expression && ( element[metaData.key] == null ) &&\n !((customCell && customCell.TemplateRef) || metaData.template)\">-</span>\n </mat-cell>\n </ng-template>\n\n <ng-template matHeaderCellDef #myHeader>\n\n <ng-container *ngIf=\"customCell?.columnDef?.headerCell;else header;\">\n <ng-container *ngTemplateOutlet=\"customCell.columnDef.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\n </ng-container>\n </ng-container>\n\n <ng-template #header>\n\n <mat-header-cell [styler]='styles.header' [resizeColumn]=\"true\" [key]=\"metaData.key\" class=\"column-head\" #headref >\n <div class=\"header-container\">\n <div *ngIf=\"!metaData._internalNotUserDefined || !customCell?.columnDef?.cell ; else headerWithoutMenu\" mat-sort-header style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n <ng-template #headerWithoutMenu >\n <div *ngIf=\"metaData._internalNotUserDefined;\" style=\"width: 100%\">\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\n </div>\n </ng-template>\n <tb-header-menu *ngIf=\"(!metaData._internalNotUserDefined || !customCell?.columnDef?.cell) && (!metaData.noFilter)\" #menu [metaData]='metaData' [filter]='filter' ></tb-header-menu>\n </div>\n </mat-header-cell>\n </ng-template>\n </ng-template>\n\n\n <ng-container *matCellDef=\"let element;\">\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: {metaData: metaData, element: element , styles: styles.body }\">\n </ng-container>\n </ng-container>\n\n <ng-template matFooterCellDef>\n <ng-container *ngIf=\"customCell?.columnDef?.footerCell;else footer\">\n <ng-container\n *ngTemplateOutlet=\"customCell.columnDef.footerCell.template;context: {metaData: metaData, data: data$, styles : styles.footer }\">\n </ng-container>\n </ng-container>\n\n <ng-template #footer>\n <mat-footer-cell [styler]='styles.footer' *ngrxLet=\"data$ as data\">\n <span *ngIf=\"data?.length && metaData.additional?.footer\" [ngSwitch]=\"metaData.fieldType\" class=\"bold\">\n <span *ngSwitchCase=\"FieldType.Currency\">\n {{ data | columnTotal: metaData | currency }}\n </span>\n <span *ngSwitchCase=\"FieldType.Number\">\n {{ data | columnTotal: metaData | number }}\n </span>\n </span>\n </mat-footer-cell>\n </ng-template>\n </ng-template>\n</ng-container>\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold{font-weight:900}\n"] }]
79
79
  }], ctorParameters: function () { return [{ type: i1.TransformCreator }, { type: i2.MatTable }, { type: i3.TableStore }, { type: i4.TableTemplateService }]; }, propDecorators: { metaData: [{
@@ -12,9 +12,9 @@ export class DateFilterComponent {
12
12
  this.FilterType = FilterType;
13
13
  }
14
14
  }
15
- DateFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: DateFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- DateFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: DateFilterComponent, selector: "tb-date-filter", inputs: { info: "info", CurrentFilterType: "CurrentFilterType" }, ngImport: i0, template: "<ng-container *ngIf=\"CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull\">\n <mat-form-field class=\"my-filter\">\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\n <mat-datepicker-toggle matSuffix [for]=\"cal\" preventEnter></mat-datepicker-toggle>\n <mat-datepicker #cal></mat-datepicker>\n </mat-form-field>\n</ng-container>\n\n<ng-container *ngIf=\"CurrentFilterType === FilterType.DateBetween\">\n <ng-container ngModelGroup=\"filterValue\">\n <mat-form-field class=\"my-filter\" >\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"From\" [matDatepicker]=\"fromVal\"\n (click)=\"fromVal.open()\"/>\n <mat-datepicker-toggle matSuffix [for]=\"fromVal\" preventEnter></mat-datepicker-toggle>\n <mat-datepicker #fromVal></mat-datepicker>\n </mat-form-field>\n <mat-form-field class=\"my-filter\">\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\n <mat-datepicker-toggle matSuffix [for]=\"toVal\" preventEnter></mat-datepicker-toggle>\n <mat-datepicker #toVal></mat-datepicker>\n </mat-form-field>\n </ng-container>\n</ng-container>\n\n", components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.MatSuffix, selector: "[matSuffix]" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: DateFilterComponent, decorators: [{
15
+ DateFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: DateFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ DateFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: DateFilterComponent, selector: "tb-date-filter", inputs: { info: "info", CurrentFilterType: "CurrentFilterType" }, ngImport: i0, template: "<ng-container *ngIf=\"CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull\">\n <mat-form-field class=\"my-filter\">\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\n <mat-datepicker-toggle matSuffix [for]=\"cal\" preventEnter></mat-datepicker-toggle>\n <mat-datepicker #cal></mat-datepicker>\n </mat-form-field>\n</ng-container>\n\n<ng-container *ngIf=\"CurrentFilterType === FilterType.DateBetween\">\n <ng-container ngModelGroup=\"filterValue\">\n <mat-form-field class=\"my-filter\" >\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"From\" [matDatepicker]=\"fromVal\"\n (click)=\"fromVal.open()\"/>\n <mat-datepicker-toggle matSuffix [for]=\"fromVal\" preventEnter></mat-datepicker-toggle>\n <mat-datepicker #fromVal></mat-datepicker>\n </mat-form-field>\n <mat-form-field class=\"my-filter\">\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\n <mat-datepicker-toggle matSuffix [for]=\"toVal\" preventEnter></mat-datepicker-toggle>\n <mat-datepicker #toVal></mat-datepicker>\n </mat-form-field>\n </ng-container>\n</ng-container>\n\n", components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.MatSuffix, selector: "[matSuffix]" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: DateFilterComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'tb-date-filter', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<ng-container *ngIf=\"CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull\">\n <mat-form-field class=\"my-filter\">\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\n <mat-datepicker-toggle matSuffix [for]=\"cal\" preventEnter></mat-datepicker-toggle>\n <mat-datepicker #cal></mat-datepicker>\n </mat-form-field>\n</ng-container>\n\n<ng-container *ngIf=\"CurrentFilterType === FilterType.DateBetween\">\n <ng-container ngModelGroup=\"filterValue\">\n <mat-form-field class=\"my-filter\" >\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"From\" [matDatepicker]=\"fromVal\"\n (click)=\"fromVal.open()\"/>\n <mat-datepicker-toggle matSuffix [for]=\"fromVal\" preventEnter></mat-datepicker-toggle>\n <mat-datepicker #fromVal></mat-datepicker>\n </mat-form-field>\n <mat-form-field class=\"my-filter\">\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\n <mat-datepicker-toggle matSuffix [for]=\"toVal\" preventEnter></mat-datepicker-toggle>\n <mat-datepicker #toVal></mat-datepicker>\n </mat-form-field>\n </ng-container>\n</ng-container>\n\n" }]
20
20
  }], propDecorators: { info: [{
@@ -40,9 +40,9 @@ export class FilterComponent {
40
40
  }
41
41
  }
42
42
  }
43
- FilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: FilterComponent, deps: [{ token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Component });
44
- FilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: FilterComponent, selector: "tb-filter", inputs: { filter: "filter" }, outputs: { close: "close" }, ngImport: i0, template: "<mat-card class=\"mat-elevation-z5\" *ngIf=\"filter\">\n <form #form=\"ngForm\" (keydown.enter)=\"onEnter(form.value,$event)\" (keydown.escape)=\"close.emit()\">\n <input type=\"hidden\" name=\"filterId\" [ngModel]=\"filter.filterId\" />\n <input type=\"hidden\" name=\"key\" [ngModel]=\"filter.key\" />\n <input type=\"hidden\" name=\"fieldType\" [ngModel]=\"filter.fieldType\" />\n <div class=\"row\" >\n <h4 class=\"filter-name\">{{(filter.key | spaceCase)}} Filter</h4>\n <button class=\"cancel-button\" color=\"primary\" mat-icon-button (click)=\"close.emit();\" type=\"button\"\n matTooltip=\"Close\">\n <mat-icon class=\"cancel-button\" color=\"primary\">close</mat-icon>\n </button>\n </div>\n <div class=\"row\">\n <mat-form-field class=\"my-filter\" >\n <mat-select placeholder=\"Select Filter Type\" name=\"filterType\" [(ngModel)]=\"currentFilterType\" >\n <mat-option *ngFor=\"let kvp of filterTypes[filter.fieldType] | keyvalue \" [value]=\"$any(kvp.value)[0]\">\n {{ kvp.key }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"filter.fieldType === FieldType.String || filter.fieldType === FieldType.Array || filter.fieldType === FieldType.Link ||\n filter.fieldType === FieldType.Unknown || filter.fieldType === FieldType.PhoneNumber\" >\n <ng-container *ngTemplateOutlet=\"String\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"filter.fieldType === FieldType.Number || filter.fieldType === FieldType.Currency\">\n <tb-number-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" ></tb-number-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"filter.fieldType === FieldType.Boolean\">\n <ng-container *ngTemplateOutlet=\"Boolean\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"filter.fieldType === FieldType.Date\">\n <tb-date-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\"></tb-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase='filter.fieldType === FieldType.Enum' >\n <ng-container *ngTemplateOutlet=\"Enum\"></ng-container>\n </ng-container>\n </ng-container>\n\n <mat-radio-group name=\"filterValue\" [ngModel]=\"filter.filterValue\" *ngIf=\"currentFilterType === FilterType.IsNull\">\n <mat-radio-button [value]=\"true\">True</mat-radio-button>\n <mat-radio-button [value]=\"false\">False</mat-radio-button>\n </mat-radio-group>\n\n </div>\n <button mat-button (click)=\"state.addFilter(form.value)\" disableRipple [disabled]=\"form.value.filterValue==undefined || !form.value.filterType\">\n Apply\n </button>\n\n\n<ng-template #String>\n <mat-form-field class=\"my-filter\" *ngIf=\"currentFilterType !== FilterType.IsNull && currentFilterType !== FilterType.In\">\n <input matInput name=\"filterValue\" [ngModel]=\"filter.filterValue\" />\n </mat-form-field>\n <ng-container *ngIf=\"currentFilterType === FilterType.In\">\n <lib-in-filter [type]=\"FieldType.String\" name='filterValue' [(ngModel)]=\"filter.filterValue\" ></lib-in-filter>\n </ng-container>\n</ng-template>\n\n<ng-template #Boolean >\n <div class=\"switch\" [ngSwitch]=\"currentFilterType\">\n <div class=\"switch\" *ngSwitchCase=\"FilterType.BooleanEquals\">\n <mat-radio-group name=\"filterValue\" [ngModel]=\"filter.filterValue\" >\n <mat-radio-button [value]=\"true\" preventEnter>True</mat-radio-button>\n <mat-radio-button [value]=\"false\" preventEnter>False</mat-radio-button>\n </mat-radio-group>\n </div>\n </div>\n</ng-template>\n\n <ng-template #Enum>\n <ng-container *ngIf='currentFilterType === FilterType.In' >\n <tb-in-list-filter [key]='filter.key' name='filterValue' [(ngModel)]='filter.filterValue' ></tb-in-list-filter>\n </ng-container>\n </ng-template>\n\n </form>\n</mat-card>\n", styles: [".filter-name{color:#6495ed;margin-right:30px;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.row{margin:0}.cancel-button{font-size:18px;font-weight:700}mat-radio-button{margin:5px}\n"], components: [{ type: i2.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i8.NumberFilterComponent, selector: "tb-number-filter", inputs: ["CurrentFilterType", "info"] }, { type: i9.DateFilterComponent, selector: "tb-date-filter", inputs: ["info", "CurrentFilterType"] }, { type: i10.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { type: i11.InFilterComponent, selector: "lib-in-filter", inputs: ["type"] }, { type: i12.InListFilterComponent, selector: "tb-in-list-filter", inputs: ["key"] }], directives: [{ type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i14.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i14.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i14.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i14.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i15.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i13.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i10.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { type: i16.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }], pipes: { "spaceCase": i17.SpaceCasePipe, "keyvalue": i13.KeyValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: FilterComponent, decorators: [{
43
+ FilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: FilterComponent, deps: [{ token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Component });
44
+ FilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: FilterComponent, selector: "tb-filter", inputs: { filter: "filter" }, outputs: { close: "close" }, ngImport: i0, template: "<mat-card class=\"mat-elevation-z5\" *ngIf=\"filter\">\n <form #form=\"ngForm\" (keydown.enter)=\"onEnter(form.value,$event)\" (keydown.escape)=\"close.emit()\">\n <input type=\"hidden\" name=\"filterId\" [ngModel]=\"filter.filterId\" />\n <input type=\"hidden\" name=\"key\" [ngModel]=\"filter.key\" />\n <input type=\"hidden\" name=\"fieldType\" [ngModel]=\"filter.fieldType\" />\n <div class=\"row\" >\n <h4 class=\"filter-name\">{{(filter.key | spaceCase)}} Filter</h4>\n <button class=\"cancel-button\" color=\"primary\" mat-icon-button (click)=\"close.emit();\" type=\"button\"\n matTooltip=\"Close\">\n <mat-icon class=\"cancel-button\" color=\"primary\">close</mat-icon>\n </button>\n </div>\n <div class=\"row\">\n <mat-form-field class=\"my-filter\" >\n <mat-select placeholder=\"Select Filter Type\" name=\"filterType\" [(ngModel)]=\"currentFilterType\" >\n <mat-option *ngFor=\"let kvp of filterTypes[filter.fieldType] | keyvalue \" [value]=\"$any(kvp.value)[0]\">\n {{ kvp.key }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"filter.fieldType === FieldType.String || filter.fieldType === FieldType.Array || filter.fieldType === FieldType.Link ||\n filter.fieldType === FieldType.Unknown || filter.fieldType === FieldType.PhoneNumber\" >\n <ng-container *ngTemplateOutlet=\"String\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"filter.fieldType === FieldType.Number || filter.fieldType === FieldType.Currency\">\n <tb-number-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" ></tb-number-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"filter.fieldType === FieldType.Boolean\">\n <ng-container *ngTemplateOutlet=\"Boolean\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"filter.fieldType === FieldType.Date\">\n <tb-date-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\"></tb-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase='filter.fieldType === FieldType.Enum' >\n <ng-container *ngTemplateOutlet=\"Enum\"></ng-container>\n </ng-container>\n </ng-container>\n\n <mat-radio-group name=\"filterValue\" [ngModel]=\"filter.filterValue\" *ngIf=\"currentFilterType === FilterType.IsNull\">\n <mat-radio-button [value]=\"true\">True</mat-radio-button>\n <mat-radio-button [value]=\"false\">False</mat-radio-button>\n </mat-radio-group>\n\n </div>\n <button mat-button (click)=\"state.addFilter(form.value)\" disableRipple [disabled]=\"form.value.filterValue==undefined || !form.value.filterType\">\n Apply\n </button>\n\n\n<ng-template #String>\n <mat-form-field class=\"my-filter\" *ngIf=\"currentFilterType !== FilterType.IsNull && currentFilterType !== FilterType.In\">\n <input matInput name=\"filterValue\" [ngModel]=\"filter.filterValue\" />\n </mat-form-field>\n <ng-container *ngIf=\"currentFilterType === FilterType.In\">\n <lib-in-filter [type]=\"FieldType.String\" name='filterValue' [(ngModel)]=\"filter.filterValue\" ></lib-in-filter>\n </ng-container>\n</ng-template>\n\n<ng-template #Boolean >\n <div class=\"switch\" [ngSwitch]=\"currentFilterType\">\n <div class=\"switch\" *ngSwitchCase=\"FilterType.BooleanEquals\">\n <mat-radio-group name=\"filterValue\" [ngModel]=\"filter.filterValue\" >\n <mat-radio-button [value]=\"true\" preventEnter>True</mat-radio-button>\n <mat-radio-button [value]=\"false\" preventEnter>False</mat-radio-button>\n </mat-radio-group>\n </div>\n </div>\n</ng-template>\n\n <ng-template #Enum>\n <ng-container *ngIf='currentFilterType === FilterType.In' >\n <tb-in-list-filter [key]='filter.key' name='filterValue' [(ngModel)]='filter.filterValue' ></tb-in-list-filter>\n </ng-container>\n </ng-template>\n\n </form>\n</mat-card>\n", styles: [".filter-name{color:#6495ed;margin-right:30px;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.row{margin:0}.cancel-button{font-size:18px;font-weight:700}mat-radio-button{margin:5px}\n"], components: [{ type: i2.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i8.NumberFilterComponent, selector: "tb-number-filter", inputs: ["CurrentFilterType", "info"] }, { type: i9.DateFilterComponent, selector: "tb-date-filter", inputs: ["info", "CurrentFilterType"] }, { type: i10.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { type: i11.InFilterComponent, selector: "lib-in-filter", inputs: ["type"] }, { type: i12.InListFilterComponent, selector: "tb-in-list-filter", inputs: ["key"] }], directives: [{ type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i14.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i14.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i14.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i14.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i15.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i13.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i10.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { type: i16.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }], pipes: { "spaceCase": i17.SpaceCasePipe, "keyvalue": i13.KeyValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: FilterComponent, decorators: [{
46
46
  type: Component,
47
47
  args: [{ selector: 'tb-filter', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card class=\"mat-elevation-z5\" *ngIf=\"filter\">\n <form #form=\"ngForm\" (keydown.enter)=\"onEnter(form.value,$event)\" (keydown.escape)=\"close.emit()\">\n <input type=\"hidden\" name=\"filterId\" [ngModel]=\"filter.filterId\" />\n <input type=\"hidden\" name=\"key\" [ngModel]=\"filter.key\" />\n <input type=\"hidden\" name=\"fieldType\" [ngModel]=\"filter.fieldType\" />\n <div class=\"row\" >\n <h4 class=\"filter-name\">{{(filter.key | spaceCase)}} Filter</h4>\n <button class=\"cancel-button\" color=\"primary\" mat-icon-button (click)=\"close.emit();\" type=\"button\"\n matTooltip=\"Close\">\n <mat-icon class=\"cancel-button\" color=\"primary\">close</mat-icon>\n </button>\n </div>\n <div class=\"row\">\n <mat-form-field class=\"my-filter\" >\n <mat-select placeholder=\"Select Filter Type\" name=\"filterType\" [(ngModel)]=\"currentFilterType\" >\n <mat-option *ngFor=\"let kvp of filterTypes[filter.fieldType] | keyvalue \" [value]=\"$any(kvp.value)[0]\">\n {{ kvp.key }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"filter.fieldType === FieldType.String || filter.fieldType === FieldType.Array || filter.fieldType === FieldType.Link ||\n filter.fieldType === FieldType.Unknown || filter.fieldType === FieldType.PhoneNumber\" >\n <ng-container *ngTemplateOutlet=\"String\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"filter.fieldType === FieldType.Number || filter.fieldType === FieldType.Currency\">\n <tb-number-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" ></tb-number-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"filter.fieldType === FieldType.Boolean\">\n <ng-container *ngTemplateOutlet=\"Boolean\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"filter.fieldType === FieldType.Date\">\n <tb-date-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\"></tb-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase='filter.fieldType === FieldType.Enum' >\n <ng-container *ngTemplateOutlet=\"Enum\"></ng-container>\n </ng-container>\n </ng-container>\n\n <mat-radio-group name=\"filterValue\" [ngModel]=\"filter.filterValue\" *ngIf=\"currentFilterType === FilterType.IsNull\">\n <mat-radio-button [value]=\"true\">True</mat-radio-button>\n <mat-radio-button [value]=\"false\">False</mat-radio-button>\n </mat-radio-group>\n\n </div>\n <button mat-button (click)=\"state.addFilter(form.value)\" disableRipple [disabled]=\"form.value.filterValue==undefined || !form.value.filterType\">\n Apply\n </button>\n\n\n<ng-template #String>\n <mat-form-field class=\"my-filter\" *ngIf=\"currentFilterType !== FilterType.IsNull && currentFilterType !== FilterType.In\">\n <input matInput name=\"filterValue\" [ngModel]=\"filter.filterValue\" />\n </mat-form-field>\n <ng-container *ngIf=\"currentFilterType === FilterType.In\">\n <lib-in-filter [type]=\"FieldType.String\" name='filterValue' [(ngModel)]=\"filter.filterValue\" ></lib-in-filter>\n </ng-container>\n</ng-template>\n\n<ng-template #Boolean >\n <div class=\"switch\" [ngSwitch]=\"currentFilterType\">\n <div class=\"switch\" *ngSwitchCase=\"FilterType.BooleanEquals\">\n <mat-radio-group name=\"filterValue\" [ngModel]=\"filter.filterValue\" >\n <mat-radio-button [value]=\"true\" preventEnter>True</mat-radio-button>\n <mat-radio-button [value]=\"false\" preventEnter>False</mat-radio-button>\n </mat-radio-group>\n </div>\n </div>\n</ng-template>\n\n <ng-template #Enum>\n <ng-container *ngIf='currentFilterType === FilterType.In' >\n <tb-in-list-filter [key]='filter.key' name='filterValue' [(ngModel)]='filter.filterValue' ></tb-in-list-filter>\n </ng-container>\n </ng-template>\n\n </form>\n</mat-card>\n", styles: [".filter-name{color:#6495ed;margin-right:30px;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.row{margin:0}.cancel-button{font-size:18px;font-weight:700}mat-radio-button{margin:5px}\n"] }]
48
48
  }], ctorParameters: function () { return [{ type: i1.TableStore }]; }, propDecorators: { filter: [{
@@ -55,8 +55,8 @@ export class InListFilterComponent {
55
55
  this.onChange(this.value);
56
56
  }
57
57
  }
58
- InListFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: InListFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Component });
59
- InListFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: InListFilterComponent, selector: "tb-in-list-filter", inputs: { key: "key" }, providers: [{
58
+ InListFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InListFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Component });
59
+ InListFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InListFilterComponent, selector: "tb-in-list-filter", inputs: { key: "key" }, providers: [{
60
60
  provide: NG_VALUE_ACCESSOR,
61
61
  useExisting: InListFilterComponent,
62
62
  multi: true
@@ -67,7 +67,7 @@ InListFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
67
67
  </mat-checkbox>
68
68
  </div>
69
69
  `, isInline: true, components: [{ type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.StopPropagationDirective, selector: "[stop-propagation]" }], pipes: { "keyvalue": i3.KeyValuePipe, "async": i3.AsyncPipe, "spaceCase": i5.SpaceCasePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: InListFilterComponent, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InListFilterComponent, decorators: [{
71
71
  type: Component,
72
72
  args: [{
73
73
  selector: 'tb-in-list-filter',
@@ -36,10 +36,10 @@ export class GenColDisplayerComponent {
36
36
  this.tableState.setHiddenColumns(displayCols.map(c => ({ key: c.key, visible: c.isVisible })));
37
37
  }
38
38
  }
39
- GenColDisplayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: GenColDisplayerComponent, deps: [{ token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Component });
40
- GenColDisplayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: GenColDisplayerComponent, selector: "tb-col-displayer", ngImport: i0, template: "<ng-container *ngIf=\"columns$ | async as displayCols\">\n <span matTooltip=\"Show/hide columns\" class=\"pull-right\">\n <button mat-icon-button [matMenuTriggerFor]=\"menu\">\n <mat-icon color=\"primary\">visibility_off</mat-icon>\n </button>\n </span>\n <mat-menu #menu=\"matMenu\" class=\"my-mat-menu\">\n\n <button mat-menu-item>\n <div style=\"display: flex; flex-direction: row-reverse;\">\n <span matTooltip=\"Close\">\n <button class=\"filter-button\" mat-icon-button>\n <mat-icon>close</mat-icon>\n </button>\n </span>\n </div>\n </button>\n <button mat-menu-item stop-propagation>\n <div style=\"display: flex; justify-content: space-between;\">\n <span matTooltip=\"Show all columns\">\n <button mat-icon-button (click)=\"reset(displayCols)\">\n <mat-icon color=\"primary\">done_all</mat-icon>\n </button>\n </span>\n\n <span matTooltip=\"Hide all columns\">\n <button mat-icon-button (click)=\"unset(displayCols)\">\n <mat-icon color=\"primary\">cancel</mat-icon>\n </button>\n </span>\n </div>\n </button>\n\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\" stop-propagation [cdkDropListLockAxis]=\"'y'\">\n <button [class.isHidden]=\"!col.isVisible\" stop-propagation mat-menu-item cdkDrag [cdkDragData]=\"col\"\n *ngFor=\"let col of displayCols\">\n <div (click)=\"col.isVisible = !col.isVisible; emit(displayCols)\" style=\"display: flex; justify-content: space-between; align-items: center;\">\n <p class=\"label\" style=\"display: flex;\">\n {{col.displayName || (col.key | spaceCase) }}\n </p>\n <span matTooltip=\"Hide Column\" class=\"show-hide\" *ngIf=\"col.isVisible; else hidden\">\n <button mat-icon-button>\n <mat-icon color=\"primary\">check_box</mat-icon>\n </button>\n </span>\n\n <ng-template #hidden >\n <span matTooltip=\"Show Column\" class=\"show-hide\">\n <button mat-icon-button>\n <mat-icon>indeterminate_check_box</mat-icon>\n </button>\n </span>\n </ng-template>\n\n </div>\n </button>\n </div>\n </mat-menu>\n</ng-container>\n", styles: [".show-hide{margin-left:15px}.label{color:#6495ed;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;text-align:left;margin:0;font-size:17px;font-weight:700;display:inline-block;width:66%}.row{margin:0;padding:0}.isHidden{background-color:#d3d3d3;color:#a9a9a9;font-weight:700;font-size:17px;white-space:nowrap}.filter-button{margin-top:10px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i7.StopPropagationDirective, selector: "[stop-propagation]" }, { type: i8.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], pipes: { "async": i5.AsyncPipe, "spaceCase": i9.SpaceCasePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: GenColDisplayerComponent, decorators: [{
39
+ GenColDisplayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: GenColDisplayerComponent, deps: [{ token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Component });
40
+ GenColDisplayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: GenColDisplayerComponent, selector: "tb-col-displayer", ngImport: i0, template: "<ng-container *ngIf=\"columns$ | async as displayCols\">\n <span matTooltip=\"Show/hide columns\">\n <button mat-icon-button [matMenuTriggerFor]=\"menu\">\n <mat-icon color=\"primary\">visibility_off</mat-icon>\n </button>\n </span>\n <mat-menu #menu=\"matMenu\" class=\"my-mat-menu\">\n\n <button mat-menu-item>\n <div style=\"display: flex; flex-direction: row-reverse;\">\n <span matTooltip=\"Close\">\n <button class=\"filter-button\" mat-icon-button>\n <mat-icon>close</mat-icon>\n </button>\n </span>\n </div>\n </button>\n <button mat-menu-item stop-propagation>\n <div style=\"display: flex; justify-content: space-between;\">\n <span matTooltip=\"Show all columns\">\n <button mat-icon-button (click)=\"reset(displayCols)\">\n <mat-icon color=\"primary\">done_all</mat-icon>\n </button>\n </span>\n\n <span matTooltip=\"Hide all columns\">\n <button mat-icon-button (click)=\"unset(displayCols)\">\n <mat-icon color=\"primary\">cancel</mat-icon>\n </button>\n </span>\n </div>\n </button>\n\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\" stop-propagation [cdkDropListLockAxis]=\"'y'\">\n <button [class.isHidden]=\"!col.isVisible\" stop-propagation mat-menu-item cdkDrag [cdkDragData]=\"col\"\n *ngFor=\"let col of displayCols\">\n <div (click)=\"col.isVisible = !col.isVisible; emit(displayCols)\" style=\"display: flex; justify-content: space-between; align-items: center;\">\n <p class=\"label\" style=\"display: flex;\">\n {{col.displayName || (col.key | spaceCase) }}\n </p>\n <span matTooltip=\"Hide Column\" class=\"show-hide\" *ngIf=\"col.isVisible; else hidden\">\n <button mat-icon-button>\n <mat-icon color=\"primary\">check_box</mat-icon>\n </button>\n </span>\n\n <ng-template #hidden >\n <span matTooltip=\"Show Column\" class=\"show-hide\">\n <button mat-icon-button>\n <mat-icon>indeterminate_check_box</mat-icon>\n </button>\n </span>\n </ng-template>\n\n </div>\n </button>\n </div>\n </mat-menu>\n</ng-container>\n", styles: [".show-hide{margin-left:15px}.label{color:#6495ed;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;text-align:left;margin:0;font-size:17px;font-weight:700;display:inline-block;width:66%}.row{margin:0;padding:0}.isHidden{background-color:#d3d3d3;color:#a9a9a9;font-weight:700;font-size:17px;white-space:nowrap}.filter-button{margin-top:10px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i7.StopPropagationDirective, selector: "[stop-propagation]" }, { type: i8.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], pipes: { "async": i5.AsyncPipe, "spaceCase": i9.SpaceCasePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: GenColDisplayerComponent, decorators: [{
42
42
  type: Component,
43
- args: [{ selector: 'tb-col-displayer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"columns$ | async as displayCols\">\n <span matTooltip=\"Show/hide columns\" class=\"pull-right\">\n <button mat-icon-button [matMenuTriggerFor]=\"menu\">\n <mat-icon color=\"primary\">visibility_off</mat-icon>\n </button>\n </span>\n <mat-menu #menu=\"matMenu\" class=\"my-mat-menu\">\n\n <button mat-menu-item>\n <div style=\"display: flex; flex-direction: row-reverse;\">\n <span matTooltip=\"Close\">\n <button class=\"filter-button\" mat-icon-button>\n <mat-icon>close</mat-icon>\n </button>\n </span>\n </div>\n </button>\n <button mat-menu-item stop-propagation>\n <div style=\"display: flex; justify-content: space-between;\">\n <span matTooltip=\"Show all columns\">\n <button mat-icon-button (click)=\"reset(displayCols)\">\n <mat-icon color=\"primary\">done_all</mat-icon>\n </button>\n </span>\n\n <span matTooltip=\"Hide all columns\">\n <button mat-icon-button (click)=\"unset(displayCols)\">\n <mat-icon color=\"primary\">cancel</mat-icon>\n </button>\n </span>\n </div>\n </button>\n\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\" stop-propagation [cdkDropListLockAxis]=\"'y'\">\n <button [class.isHidden]=\"!col.isVisible\" stop-propagation mat-menu-item cdkDrag [cdkDragData]=\"col\"\n *ngFor=\"let col of displayCols\">\n <div (click)=\"col.isVisible = !col.isVisible; emit(displayCols)\" style=\"display: flex; justify-content: space-between; align-items: center;\">\n <p class=\"label\" style=\"display: flex;\">\n {{col.displayName || (col.key | spaceCase) }}\n </p>\n <span matTooltip=\"Hide Column\" class=\"show-hide\" *ngIf=\"col.isVisible; else hidden\">\n <button mat-icon-button>\n <mat-icon color=\"primary\">check_box</mat-icon>\n </button>\n </span>\n\n <ng-template #hidden >\n <span matTooltip=\"Show Column\" class=\"show-hide\">\n <button mat-icon-button>\n <mat-icon>indeterminate_check_box</mat-icon>\n </button>\n </span>\n </ng-template>\n\n </div>\n </button>\n </div>\n </mat-menu>\n</ng-container>\n", styles: [".show-hide{margin-left:15px}.label{color:#6495ed;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;text-align:left;margin:0;font-size:17px;font-weight:700;display:inline-block;width:66%}.row{margin:0;padding:0}.isHidden{background-color:#d3d3d3;color:#a9a9a9;font-weight:700;font-size:17px;white-space:nowrap}.filter-button{margin-top:10px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
43
+ args: [{ selector: 'tb-col-displayer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"columns$ | async as displayCols\">\n <span matTooltip=\"Show/hide columns\">\n <button mat-icon-button [matMenuTriggerFor]=\"menu\">\n <mat-icon color=\"primary\">visibility_off</mat-icon>\n </button>\n </span>\n <mat-menu #menu=\"matMenu\" class=\"my-mat-menu\">\n\n <button mat-menu-item>\n <div style=\"display: flex; flex-direction: row-reverse;\">\n <span matTooltip=\"Close\">\n <button class=\"filter-button\" mat-icon-button>\n <mat-icon>close</mat-icon>\n </button>\n </span>\n </div>\n </button>\n <button mat-menu-item stop-propagation>\n <div style=\"display: flex; justify-content: space-between;\">\n <span matTooltip=\"Show all columns\">\n <button mat-icon-button (click)=\"reset(displayCols)\">\n <mat-icon color=\"primary\">done_all</mat-icon>\n </button>\n </span>\n\n <span matTooltip=\"Hide all columns\">\n <button mat-icon-button (click)=\"unset(displayCols)\">\n <mat-icon color=\"primary\">cancel</mat-icon>\n </button>\n </span>\n </div>\n </button>\n\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\" stop-propagation [cdkDropListLockAxis]=\"'y'\">\n <button [class.isHidden]=\"!col.isVisible\" stop-propagation mat-menu-item cdkDrag [cdkDragData]=\"col\"\n *ngFor=\"let col of displayCols\">\n <div (click)=\"col.isVisible = !col.isVisible; emit(displayCols)\" style=\"display: flex; justify-content: space-between; align-items: center;\">\n <p class=\"label\" style=\"display: flex;\">\n {{col.displayName || (col.key | spaceCase) }}\n </p>\n <span matTooltip=\"Hide Column\" class=\"show-hide\" *ngIf=\"col.isVisible; else hidden\">\n <button mat-icon-button>\n <mat-icon color=\"primary\">check_box</mat-icon>\n </button>\n </span>\n\n <ng-template #hidden >\n <span matTooltip=\"Show Column\" class=\"show-hide\">\n <button mat-icon-button>\n <mat-icon>indeterminate_check_box</mat-icon>\n </button>\n </span>\n </ng-template>\n\n </div>\n </button>\n </div>\n </mat-menu>\n</ng-container>\n", styles: [".show-hide{margin-left:15px}.label{color:#6495ed;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;text-align:left;margin:0;font-size:17px;font-weight:700;display:inline-block;width:66%}.row{margin:0;padding:0}.isHidden{background-color:#d3d3d3;color:#a9a9a9;font-weight:700;font-size:17px;white-space:nowrap}.filter-button{margin-top:10px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
44
44
  }], ctorParameters: function () { return [{ type: i1.TableStore }]; } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuLWNvbC1kaXNwbGF5ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9nZW4tY29sLWRpc3BsYXllci9nZW4tY29sLWRpc3BsYXllci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dlbi1jb2wtZGlzcGxheWVyL2dlbi1jb2wtZGlzcGxheWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHbEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxxQkFBcUIsRUFBYyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7OztBQVM5RSxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DLFlBQXFCLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3pDLEdBQUcsQ0FBRSxLQUFLLENBQUMsRUFBRSxDQUNYLHFCQUFxQixDQUFDLEtBQUssQ0FBQzthQUN6QixHQUFHLENBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ1gsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHO1lBQ1gsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXO1lBQzNCLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDOUMsQ0FBQyxDQUFDLENBQ04sQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxXQUF5QjtRQUM3QixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBNEI7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFDLFFBQVEsRUFBQyxLQUFLLENBQUMsWUFBWSxFQUFDLFFBQVEsRUFBQyxLQUFLLENBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQTtJQUNqRyxDQUFDO0lBQ0QsS0FBSyxDQUFDLFdBQXlCO1FBQzdCLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksQ0FBQyxXQUF5QjtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDOztxSEE3QlUsd0JBQXdCO3lHQUF4Qix3QkFBd0Isd0RDYnJDLDYwRUEyREE7MkZEOUNhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlzcGxheUNvbCB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZGlzcGxheS1jb2wnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgb3JkZXJWaWV3YWJsZU1ldGFEYXRhLCBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XG5pbXBvcnQge0Nka0RyYWdEcm9wfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGItY29sLWRpc3BsYXllcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW4tY29sLWRpc3BsYXllci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dlbi1jb2wtZGlzcGxheWVyLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgR2VuQ29sRGlzcGxheWVyQ29tcG9uZW50IHtcbiAgY29sdW1ucyQ6IE9ic2VydmFibGU8IERpc3BsYXlDb2xbXT47XG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIHRhYmxlU3RhdGU6IFRhYmxlU3RvcmUgKSB7XG4gICAgdGhpcy5jb2x1bW5zJCA9IHRoaXMudGFibGVTdGF0ZS5zdGF0ZSQucGlwZShcbiAgICAgIG1hcCggc3RhdGUgPT5cbiAgICAgICAgb3JkZXJWaWV3YWJsZU1ldGFEYXRhKHN0YXRlKVxuICAgICAgICAgIC5tYXAoIG1kID0+ICh7XG4gICAgICAgICAgICBrZXk6IG1kLmtleSxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBtZC5kaXNwbGF5TmFtZSxcbiAgICAgICAgICAgIGlzVmlzaWJsZTogIXN0YXRlLmhpZGRlbktleXMuaW5jbHVkZXMobWQua2V5KVxuICAgICAgICAgIH0pKVxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgcmVzZXQoZGlzcGxheUNvbHM6IERpc3BsYXlDb2xbXSkge1xuICAgIGRpc3BsYXlDb2xzLmZvckVhY2goYyA9PiBjLmlzVmlzaWJsZSA9IHRydWUpO1xuICAgIHRoaXMuZW1pdChkaXNwbGF5Q29scyk7XG4gIH1cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XG4gICAgdGhpcy50YWJsZVN0YXRlLnNldFVzZXJEZWZpbmVkT3JkZXIoe25ld09yZGVyOmV2ZW50LmN1cnJlbnRJbmRleCxvbGRPcmRlcjpldmVudC5wcmV2aW91c0luZGV4fSlcbiAgfVxuICB1bnNldChkaXNwbGF5Q29sczogRGlzcGxheUNvbFtdKSB7XG4gICAgZGlzcGxheUNvbHMuZm9yRWFjaChjID0+IGMuaXNWaXNpYmxlID0gZmFsc2UpO1xuICAgIHRoaXMuZW1pdChkaXNwbGF5Q29scyk7XG4gIH1cblxuICBlbWl0KGRpc3BsYXlDb2xzOiBEaXNwbGF5Q29sW10pIHtcbiAgICB0aGlzLnRhYmxlU3RhdGUuc2V0SGlkZGVuQ29sdW1ucyhkaXNwbGF5Q29scy5tYXAoIGMgPT4gKHtrZXk6IGMua2V5LCB2aXNpYmxlOiBjLmlzVmlzaWJsZX0pKSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5zJCB8IGFzeW5jIGFzIGRpc3BsYXlDb2xzXCI+XG4gIDxzcGFuIG1hdFRvb2x0aXA9XCJTaG93L2hpZGUgY29sdW1uc1wiIGNsYXNzPVwicHVsbC1yaWdodFwiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XG4gICAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCI+dmlzaWJpbGl0eV9vZmY8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L3NwYW4+XG4gIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cIm15LW1hdC1tZW51XCI+XG5cbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+XG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1wiPlxuICAgICAgICA8c3BhbiBtYXRUb29sdGlwPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJmaWx0ZXItYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIHN0b3AtcHJvcGFnYXRpb24+XG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1wiPlxuICAgICAgICA8c3BhbiBtYXRUb29sdGlwPVwiU2hvdyBhbGwgY29sdW1uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlc2V0KGRpc3BsYXlDb2xzKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIj5kb25lX2FsbDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDxzcGFuIG1hdFRvb2x0aXA9XCJIaWRlIGFsbCBjb2x1bW5zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidW5zZXQoZGlzcGxheUNvbHMpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPmNhbmNlbDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG5cbiAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCIgc3RvcC1wcm9wYWdhdGlvbiBbY2RrRHJvcExpc3RMb2NrQXhpc109XCIneSdcIj5cbiAgICAgIDxidXR0b24gW2NsYXNzLmlzSGlkZGVuXT1cIiFjb2wuaXNWaXNpYmxlXCIgc3RvcC1wcm9wYWdhdGlvbiBtYXQtbWVudS1pdGVtIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cImNvbFwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbCBvZiBkaXNwbGF5Q29sc1wiPlxuICAgICAgICA8ZGl2IChjbGljayk9XCJjb2wuaXNWaXNpYmxlID0gIWNvbC5pc1Zpc2libGU7IGVtaXQoZGlzcGxheUNvbHMpXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJsYWJlbFwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgICAgICAgICAge3tjb2wuZGlzcGxheU5hbWUgfHwgKGNvbC5rZXkgfCBzcGFjZUNhc2UpIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxzcGFuIG1hdFRvb2x0aXA9XCJIaWRlIENvbHVtblwiIGNsYXNzPVwic2hvdy1oaWRlXCIgKm5nSWY9XCJjb2wuaXNWaXNpYmxlOyBlbHNlIGhpZGRlblwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPmNoZWNrX2JveDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2hpZGRlbiA+XG4gICAgICAgICAgICA8c3BhbiBtYXRUb29sdGlwPVwiU2hvdyBDb2x1bW5cIiBjbGFzcz1cInNob3ctaGlkZVwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+aW5kZXRlcm1pbmF0ZV9jaGVja19ib3g8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbWF0LW1lbnU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuLWNvbC1kaXNwbGF5ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9nZW4tY29sLWRpc3BsYXllci9nZW4tY29sLWRpc3BsYXllci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dlbi1jb2wtZGlzcGxheWVyL2dlbi1jb2wtZGlzcGxheWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHbEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxxQkFBcUIsRUFBYyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7OztBQVM5RSxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DLFlBQXFCLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3pDLEdBQUcsQ0FBRSxLQUFLLENBQUMsRUFBRSxDQUNYLHFCQUFxQixDQUFDLEtBQUssQ0FBQzthQUN6QixHQUFHLENBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ1gsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHO1lBQ1gsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXO1lBQzNCLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDOUMsQ0FBQyxDQUFDLENBQ04sQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxXQUF5QjtRQUM3QixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBNEI7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFDLFFBQVEsRUFBQyxLQUFLLENBQUMsWUFBWSxFQUFDLFFBQVEsRUFBQyxLQUFLLENBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQTtJQUNqRyxDQUFDO0lBQ0QsS0FBSyxDQUFDLFdBQXlCO1FBQzdCLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksQ0FBQyxXQUF5QjtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDOztxSEE3QlUsd0JBQXdCO3lHQUF4Qix3QkFBd0Isd0RDYnJDLHd6RUEyREE7MkZEOUNhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlzcGxheUNvbCB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZGlzcGxheS1jb2wnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgb3JkZXJWaWV3YWJsZU1ldGFEYXRhLCBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XG5pbXBvcnQge0Nka0RyYWdEcm9wfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGItY29sLWRpc3BsYXllcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW4tY29sLWRpc3BsYXllci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dlbi1jb2wtZGlzcGxheWVyLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgR2VuQ29sRGlzcGxheWVyQ29tcG9uZW50IHtcbiAgY29sdW1ucyQ6IE9ic2VydmFibGU8IERpc3BsYXlDb2xbXT47XG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIHRhYmxlU3RhdGU6IFRhYmxlU3RvcmUgKSB7XG4gICAgdGhpcy5jb2x1bW5zJCA9IHRoaXMudGFibGVTdGF0ZS5zdGF0ZSQucGlwZShcbiAgICAgIG1hcCggc3RhdGUgPT5cbiAgICAgICAgb3JkZXJWaWV3YWJsZU1ldGFEYXRhKHN0YXRlKVxuICAgICAgICAgIC5tYXAoIG1kID0+ICh7XG4gICAgICAgICAgICBrZXk6IG1kLmtleSxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBtZC5kaXNwbGF5TmFtZSxcbiAgICAgICAgICAgIGlzVmlzaWJsZTogIXN0YXRlLmhpZGRlbktleXMuaW5jbHVkZXMobWQua2V5KVxuICAgICAgICAgIH0pKVxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgcmVzZXQoZGlzcGxheUNvbHM6IERpc3BsYXlDb2xbXSkge1xuICAgIGRpc3BsYXlDb2xzLmZvckVhY2goYyA9PiBjLmlzVmlzaWJsZSA9IHRydWUpO1xuICAgIHRoaXMuZW1pdChkaXNwbGF5Q29scyk7XG4gIH1cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XG4gICAgdGhpcy50YWJsZVN0YXRlLnNldFVzZXJEZWZpbmVkT3JkZXIoe25ld09yZGVyOmV2ZW50LmN1cnJlbnRJbmRleCxvbGRPcmRlcjpldmVudC5wcmV2aW91c0luZGV4fSlcbiAgfVxuICB1bnNldChkaXNwbGF5Q29sczogRGlzcGxheUNvbFtdKSB7XG4gICAgZGlzcGxheUNvbHMuZm9yRWFjaChjID0+IGMuaXNWaXNpYmxlID0gZmFsc2UpO1xuICAgIHRoaXMuZW1pdChkaXNwbGF5Q29scyk7XG4gIH1cblxuICBlbWl0KGRpc3BsYXlDb2xzOiBEaXNwbGF5Q29sW10pIHtcbiAgICB0aGlzLnRhYmxlU3RhdGUuc2V0SGlkZGVuQ29sdW1ucyhkaXNwbGF5Q29scy5tYXAoIGMgPT4gKHtrZXk6IGMua2V5LCB2aXNpYmxlOiBjLmlzVmlzaWJsZX0pKSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5zJCB8IGFzeW5jIGFzIGRpc3BsYXlDb2xzXCI+XG4gIDxzcGFuIG1hdFRvb2x0aXA9XCJTaG93L2hpZGUgY29sdW1uc1wiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XG4gICAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCI+dmlzaWJpbGl0eV9vZmY8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L3NwYW4+XG4gIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cIm15LW1hdC1tZW51XCI+XG5cbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0+XG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1wiPlxuICAgICAgICA8c3BhbiBtYXRUb29sdGlwPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJmaWx0ZXItYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIHN0b3AtcHJvcGFnYXRpb24+XG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1wiPlxuICAgICAgICA8c3BhbiBtYXRUb29sdGlwPVwiU2hvdyBhbGwgY29sdW1uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlc2V0KGRpc3BsYXlDb2xzKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIj5kb25lX2FsbDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDxzcGFuIG1hdFRvb2x0aXA9XCJIaWRlIGFsbCBjb2x1bW5zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidW5zZXQoZGlzcGxheUNvbHMpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPmNhbmNlbDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG5cbiAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCIgc3RvcC1wcm9wYWdhdGlvbiBbY2RrRHJvcExpc3RMb2NrQXhpc109XCIneSdcIj5cbiAgICAgIDxidXR0b24gW2NsYXNzLmlzSGlkZGVuXT1cIiFjb2wuaXNWaXNpYmxlXCIgc3RvcC1wcm9wYWdhdGlvbiBtYXQtbWVudS1pdGVtIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cImNvbFwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbCBvZiBkaXNwbGF5Q29sc1wiPlxuICAgICAgICA8ZGl2IChjbGljayk9XCJjb2wuaXNWaXNpYmxlID0gIWNvbC5pc1Zpc2libGU7IGVtaXQoZGlzcGxheUNvbHMpXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJsYWJlbFwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgICAgICAgICAge3tjb2wuZGlzcGxheU5hbWUgfHwgKGNvbC5rZXkgfCBzcGFjZUNhc2UpIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxzcGFuIG1hdFRvb2x0aXA9XCJIaWRlIENvbHVtblwiIGNsYXNzPVwic2hvdy1oaWRlXCIgKm5nSWY9XCJjb2wuaXNWaXNpYmxlOyBlbHNlIGhpZGRlblwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPmNoZWNrX2JveDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2hpZGRlbiA+XG4gICAgICAgICAgICA8c3BhbiBtYXRUb29sdGlwPVwiU2hvdyBDb2x1bW5cIiBjbGFzcz1cInNob3ctaGlkZVwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+aW5kZXRlcm1pbmF0ZV9jaGVja19ib3g8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbWF0LW1lbnU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==