@ng-atomic/common 17.1.0 → 17.3.0

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/esm2022/models/index.mjs +1 -1
  2. package/esm2022/pipes/auto-columns/auto-columns.pipe.mjs +20 -0
  3. package/esm2022/pipes/auto-columns/index.mjs +2 -0
  4. package/esm2022/pipes/auto-columns/ng-atomic-common-pipes-auto-columns.mjs +5 -0
  5. package/esm2022/pipes/columns/columns.pipe.mjs +17 -0
  6. package/esm2022/pipes/columns/index.mjs +2 -0
  7. package/esm2022/pipes/columns/ng-atomic-common-pipes-columns.mjs +5 -0
  8. package/esm2022/pipes/error/error.pipe.mjs +7 -4
  9. package/esm2022/pipes/map/index.mjs +2 -0
  10. package/esm2022/pipes/map/map.pipe.mjs +17 -0
  11. package/esm2022/pipes/map/ng-atomic-common-pipes-map.mjs +5 -0
  12. package/esm2022/pipes/resolve-columns/index.mjs +2 -0
  13. package/esm2022/pipes/resolve-columns/ng-atomic-common-pipes-resolve-columns.mjs +5 -0
  14. package/esm2022/pipes/resolve-columns/resolve-columns.pipe.mjs +24 -0
  15. package/esm2022/pipes/sort/index.mjs +2 -0
  16. package/esm2022/pipes/sort/ng-atomic-common-pipes-sort.mjs +5 -0
  17. package/esm2022/pipes/sort/sort.pipe.mjs +14 -0
  18. package/esm2022/services/breakpoint/breakpoint.service.mjs +57 -0
  19. package/esm2022/services/breakpoint/index.mjs +2 -0
  20. package/esm2022/services/breakpoint/ng-atomic-common-services-breakpoint.mjs +5 -0
  21. package/esm2022/services/ui/ui.helpers.mjs +24 -11
  22. package/esm2022/services/ui/ui.service.mjs +4 -55
  23. package/esm2022/stores/entities/di.mjs +22 -14
  24. package/esm2022/stores/entities/entity-store-adapter.mjs +31 -0
  25. package/esm2022/stores/entities/entity-store-manager.mjs +8 -25
  26. package/esm2022/stores/entities/entity-store.mjs +17 -35
  27. package/esm2022/stores/entities/index.mjs +2 -1
  28. package/fesm2022/ng-atomic-common-pipes-auto-columns.mjs +27 -0
  29. package/fesm2022/ng-atomic-common-pipes-auto-columns.mjs.map +1 -0
  30. package/fesm2022/ng-atomic-common-pipes-columns.mjs +24 -0
  31. package/fesm2022/ng-atomic-common-pipes-columns.mjs.map +1 -0
  32. package/fesm2022/ng-atomic-common-pipes-error.mjs +6 -3
  33. package/fesm2022/ng-atomic-common-pipes-error.mjs.map +1 -1
  34. package/fesm2022/ng-atomic-common-pipes-map.mjs +24 -0
  35. package/fesm2022/ng-atomic-common-pipes-map.mjs.map +1 -0
  36. package/fesm2022/ng-atomic-common-pipes-resolve-columns.mjs +31 -0
  37. package/fesm2022/ng-atomic-common-pipes-resolve-columns.mjs.map +1 -0
  38. package/fesm2022/ng-atomic-common-pipes-sort.mjs +21 -0
  39. package/fesm2022/ng-atomic-common-pipes-sort.mjs.map +1 -0
  40. package/fesm2022/ng-atomic-common-services-breakpoint.mjs +64 -0
  41. package/fesm2022/ng-atomic-common-services-breakpoint.mjs.map +1 -0
  42. package/fesm2022/ng-atomic-common-services-ui.mjs +27 -65
  43. package/fesm2022/ng-atomic-common-services-ui.mjs.map +1 -1
  44. package/fesm2022/ng-atomic-common-stores-entities.mjs +43 -41
  45. package/fesm2022/ng-atomic-common-stores-entities.mjs.map +1 -1
  46. package/models/index.d.ts +5 -2
  47. package/package.json +38 -2
  48. package/pipes/auto-columns/auto-columns.pipe.d.ts +7 -0
  49. package/pipes/auto-columns/index.d.ts +1 -0
  50. package/pipes/columns/columns.pipe.d.ts +8 -0
  51. package/pipes/columns/index.d.ts +1 -0
  52. package/pipes/map/index.d.ts +1 -0
  53. package/pipes/map/map.pipe.d.ts +7 -0
  54. package/pipes/resolve-columns/index.d.ts +1 -0
  55. package/pipes/resolve-columns/resolve-columns.pipe.d.ts +11 -0
  56. package/pipes/sort/index.d.ts +1 -0
  57. package/pipes/sort/sort.pipe.d.ts +8 -0
  58. package/services/breakpoint/breakpoint.service.d.ts +29 -0
  59. package/services/breakpoint/index.d.ts +1 -0
  60. package/services/ui/ui.helpers.d.ts +2 -3
  61. package/services/ui/ui.service.d.ts +2 -29
  62. package/stores/entities/entity-store-adapter.d.ts +31 -0
  63. package/stores/entities/entity-store-manager.d.ts +5 -5
  64. package/stores/entities/entity-store.d.ts +10 -29
  65. package/stores/entities/index.d.ts +1 -0
@@ -1,2 +1,2 @@
1
1
  export * from './menu-item';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbnMgfSBmcm9tICdAbmctYXRvbWljL2NvcmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL21lbnUtaXRlbSc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlIHtcbiAgcGFnZUluZGV4OiBudW1iZXI7XG4gIHBhZ2VTaXplOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29ydCB7XG4gIGtleTogc3RyaW5nO1xuICBvcmRlcjogJ2FzYycgfCAnZGVzYyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5kZXgge1xuICBxdWVyeTogc3RyaW5nO1xuICBwYWdlOiBQYWdlO1xuICBzb3J0OiBTb3J0O1xufVxuXG5leHBvcnQgdHlwZSBDb2x1bW5UeXBlID0gJ3RleHQnIHwgJ2FjdGlvbnMnIHwgJ2NoZWNrYm94JztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VDb2x1bW4ge1xuICB0eXBlOiBDb2x1bW5UeXBlO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZpc2libGU6IGJvb2xlYW47XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlYWRlclRleHQ/OiBzdHJpbmc7XG4gIHNvcnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbnNDb2x1bW4gZXh0ZW5kcyBCYXNlQ29sdW1uIHtcbiAgdHlwZTogJ2FjdGlvbnMnO1xuICBhY3Rpb25zPzogQWN0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0Q29sdW1uIGV4dGVuZHMgQmFzZUNvbHVtbiB7XG4gIHR5cGU6ICd0ZXh0Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVja2JveENvbHVtbiBleHRlbmRzIEJhc2VDb2x1bW4ge1xuICB0eXBlOiAnY2hlY2tib3gnO1xufVxuXG5leHBvcnQgdHlwZSBDb2x1bW4gPSBBY3Rpb25zQ29sdW1uIHwgVGV4dENvbHVtbiB8IENoZWNrYm94Q29sdW1uO1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbnMgfSBmcm9tICdAbmctYXRvbWljL2NvcmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL21lbnUtaXRlbSc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlIHtcbiAgcGFnZUluZGV4OiBudW1iZXI7XG4gIHBhZ2VTaXplOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29ydCB7XG4gIGtleTogc3RyaW5nO1xuICBvcmRlcjogJ2FzYycgfCAnZGVzYyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5kZXgge1xuICBxdWVyeTogc3RyaW5nO1xuICBwYWdlOiBQYWdlO1xuICBzb3J0OiBTb3J0O1xufVxuXG5leHBvcnQgdHlwZSBDb2x1bW5UeXBlID0gJ3RleHQnIHwgJ2FjdGlvbnMnIHwgJ2NoZWNrYm94JyB8ICd0cmVlJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VDb2x1bW4ge1xuICB0eXBlOiBDb2x1bW5UeXBlO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZpc2libGU6IGJvb2xlYW47XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlYWRlclRleHQ/OiBzdHJpbmc7XG4gIHNvcnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbnNDb2x1bW4gZXh0ZW5kcyBCYXNlQ29sdW1uIHtcbiAgdHlwZTogJ2FjdGlvbnMnO1xuICBhY3Rpb25zPzogQWN0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0Q29sdW1uIGV4dGVuZHMgQmFzZUNvbHVtbiB7XG4gIHR5cGU6ICd0ZXh0Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVja2JveENvbHVtbiBleHRlbmRzIEJhc2VDb2x1bW4ge1xuICB0eXBlOiAnY2hlY2tib3gnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVDb2x1bW5Nb2xlY3VsZSBleHRlbmRzIEJhc2VDb2x1bW4ge1xuICB0eXBlOiAndHJlZSc7XG59XG5cbmV4cG9ydCB0eXBlIENvbHVtbiA9IEFjdGlvbnNDb2x1bW4gfCBUZXh0Q29sdW1uIHwgQ2hlY2tib3hDb2x1bW4gfCBUcmVlQ29sdW1uTW9sZWN1bGU7XG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { flattenExcludeDayjs } from '@nx-ddd/core/util/walk-obj';
3
+ import * as i0 from "@angular/core";
4
+ export class AutoColumnsPipe {
5
+ transform(items) {
6
+ const keys = new Set();
7
+ items.slice(0, 1).forEach(item => {
8
+ const obj = flattenExcludeDayjs(item);
9
+ Object.keys(obj).forEach(key => keys.add(key));
10
+ });
11
+ return [...keys, '__actions'];
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AutoColumnsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
14
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: AutoColumnsPipe, isStandalone: true, name: "autoColumns" }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AutoColumnsPipe, decorators: [{
17
+ type: Pipe,
18
+ args: [{ name: 'autoColumns', standalone: true, pure: true }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb2x1bW5zLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3BpcGVzL2F1dG8tY29sdW1ucy9hdXRvLWNvbHVtbnMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHakUsTUFBTSxPQUFPLGVBQWU7SUFDMUIsU0FBUyxDQUFDLEtBQVU7UUFDbEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUMvQixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDL0IsTUFBTSxHQUFHLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUE7UUFDRixPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs4R0FSVSxlQUFlOzRHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZsYXR0ZW5FeGNsdWRlRGF5anMgfSBmcm9tICdAbngtZGRkL2NvcmUvdXRpbC93YWxrLW9iaic7XG5cbkBQaXBlKHtuYW1lOiAnYXV0b0NvbHVtbnMnLCBzdGFuZGFsb25lOiB0cnVlLCBwdXJlOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBBdXRvQ29sdW1uc1BpcGU8VD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGl0ZW1zOiBUW10pOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qga2V5cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGl0ZW1zLnNsaWNlKDAsIDEpLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBjb25zdCBvYmogPSBmbGF0dGVuRXhjbHVkZURheWpzKGl0ZW0pO1xuICAgICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKGtleSA9PiBrZXlzLmFkZChrZXkpKTtcbiAgICB9KVxuICAgIHJldHVybiBbLi4ua2V5cywgJ19fYWN0aW9ucyddO1xuICB9XG59Il19
@@ -0,0 +1,2 @@
1
+ export * from './auto-columns.pipe';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3BpcGVzL2F1dG8tY29sdW1ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdXRvLWNvbHVtbnMucGlwZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1waXBlcy1hdXRvLWNvbHVtbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3BpcGVzL2F1dG8tY29sdW1ucy9uZy1hdG9taWMtY29tbW9uLXBpcGVzLWF1dG8tY29sdW1ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ColumnsPipe {
4
+ transform(columns) {
5
+ return columns.filter(item => item.visible).map((column, i) => ({
6
+ ...column,
7
+ name: ['checkbox', 'actions'].includes(column.type) ? `${column.name}_${i}` : column.name,
8
+ }));
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ColumnsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
11
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: ColumnsPipe, isStandalone: true, name: "columns" }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ColumnsPipe, decorators: [{
14
+ type: Pipe,
15
+ args: [{ name: 'columns', standalone: true, pure: true }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9waXBlcy9jb2x1bW5zL2NvbHVtbnMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFJcEQsTUFBTSxPQUFPLFdBQVc7SUFDdEIsU0FBUyxDQUFJLE9BQWlCO1FBQzVCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzlELEdBQUcsTUFBTTtZQUNULElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJO1NBQzFGLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs4R0FOVSxXQUFXOzRHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBRHZCLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbHVtbiB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL21vZGVscyc7XG5cbkBQaXBlKHtuYW1lOiAnY29sdW1ucycsIHN0YW5kYWxvbmU6IHRydWUsIHB1cmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIENvbHVtbnNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUPihjb2x1bW5zOiBDb2x1bW5bXSk6IENvbHVtbltdIHtcbiAgICByZXR1cm4gY29sdW1ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLnZpc2libGUpLm1hcCgoY29sdW1uLCBpKSA9PiAoe1xuICAgICAgLi4uY29sdW1uLFxuICAgICAgbmFtZTogWydjaGVja2JveCcsICdhY3Rpb25zJ10uaW5jbHVkZXMoY29sdW1uLnR5cGUpID8gYCR7Y29sdW1uLm5hbWV9XyR7aX1gIDogY29sdW1uLm5hbWUsXG4gICAgfSkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './columns.pipe';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3BpcGVzL2NvbHVtbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29sdW1ucy5waXBlJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1waXBlcy1jb2x1bW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9waXBlcy9jb2x1bW5zL25nLWF0b21pYy1jb21tb24tcGlwZXMtY29sdW1ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -2,15 +2,16 @@ import { InjectionToken, Pipe, inject } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export const ERROR_MESSAGE_RESOLVER = new InjectionToken('[@ng-atomic/common] Error message resolver');
4
4
  export const defaultErrorMessageResolver = (errors) => {
5
+ console.debug('errors:', errors);
5
6
  if (!errors)
6
7
  return '';
7
8
  const value = Object.entries(errors)[0][0];
8
9
  switch (value) {
9
10
  case 'required':
10
11
  return '必須項目です';
11
- case 'minlength':
12
+ case 'minLength':
12
13
  return `最低${errors[value].requiredLength}文字以上で入力してください`;
13
- case 'maxlength':
14
+ case 'maxLength':
14
15
  return `最大${errors[value].requiredLength}文字以下で入力してください`;
15
16
  case 'email':
16
17
  return 'メールアドレスの形式で入力してください';
@@ -28,7 +29,9 @@ export class ErrorPipe {
28
29
  this.resolver = inject(ERROR_MESSAGE_RESOLVER, { optional: true }) ?? defaultErrorMessageResolver;
29
30
  }
30
31
  transform(errors) {
31
- return this.resolver(errors);
32
+ const error = this.resolver(errors);
33
+ console.debug('error:', error?.length);
34
+ return error;
32
35
  }
33
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ErrorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
34
37
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: ErrorPipe, isStandalone: true, name: "error" }); }
@@ -41,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
41
44
  pure: true,
42
45
  }]
43
46
  }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvcGlwZXMvZXJyb3IvZXJyb3IucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUk1RSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBdUIsNENBQTRDLENBQUMsQ0FBQztBQUU3SCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBeUIsQ0FBQyxNQUF3QixFQUFVLEVBQUU7SUFDcEcsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN2QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLFFBQVEsS0FBSyxFQUFFO1FBQ2IsS0FBSyxVQUFVO1lBQ2IsT0FBTyxRQUFRLENBQUM7UUFDbEIsS0FBSyxXQUFXO1lBQ2QsT0FBTyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLGVBQWUsQ0FBQztRQUMxRCxLQUFLLFdBQVc7WUFDZCxPQUFPLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsZUFBZSxDQUFDO1FBQzFELEtBQUssT0FBTztZQUNWLE9BQU8scUJBQXFCLENBQUM7UUFDL0IsS0FBSyxTQUFTO1lBQ1osT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQjtZQUNFLE9BQU8sWUFBWSxDQUFDO0tBQ3ZCO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLDJCQUEyQixDQUFDLFFBQThCO0lBQ3hFLE9BQU8sRUFBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxDQUFDO0FBQy9ELENBQUM7QUFPRCxNQUFNLE9BQU8sU0FBUztJQUx0QjtRQU1ZLGFBQVEsR0FBRyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSwyQkFBMkIsQ0FBQztLQUt0RztJQUhDLFNBQVMsQ0FBQyxNQUF3QjtRQUNoQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs4R0FMVSxTQUFTOzRHQUFULFNBQVM7OzJGQUFULFNBQVM7a0JBTHJCLElBQUk7bUJBQUM7b0JBQ0osVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxPQUFPO29CQUNiLElBQUksRUFBRSxJQUFJO2lCQUNYIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFBpcGUsIGluamVjdCwgUGlwZVRyYW5zZm9ybSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbmV4cG9ydCB0eXBlIEVycm9yTWVzc2FnZVJlc29sdmVyID0gKGVycm9yczogVmFsaWRhdGlvbkVycm9ycykgPT4gc3RyaW5nO1xuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VfUkVTT0xWRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48RXJyb3JNZXNzYWdlUmVzb2x2ZXI+KCdbQG5nLWF0b21pYy9jb21tb25dIEVycm9yIG1lc3NhZ2UgcmVzb2x2ZXInKTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRFcnJvck1lc3NhZ2VSZXNvbHZlcjogRXJyb3JNZXNzYWdlUmVzb2x2ZXIgPSAoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzKTogc3RyaW5nID0+IHtcbiAgaWYgKCFlcnJvcnMpIHJldHVybiAnJztcbiAgY29uc3QgdmFsdWUgPSBPYmplY3QuZW50cmllcyhlcnJvcnMpWzBdWzBdO1xuICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgY2FzZSAncmVxdWlyZWQnOlxuICAgICAgcmV0dXJuICflv4XpoIjpoIXnm67jgafjgZknO1xuICAgIGNhc2UgJ21pbmxlbmd0aCc6XG4gICAgICByZXR1cm4gYOacgOS9jiR7ZXJyb3JzW3ZhbHVlXS5yZXF1aXJlZExlbmd0aH3mloflrZfku6XkuIrjgaflhaXlipvjgZfjgabjgY/jgaDjgZXjgYRgO1xuICAgIGNhc2UgJ21heGxlbmd0aCc6XG4gICAgICByZXR1cm4gYOacgOWkpyR7ZXJyb3JzW3ZhbHVlXS5yZXF1aXJlZExlbmd0aH3mloflrZfku6XkuIvjgaflhaXlipvjgZfjgabjgY/jgaDjgZXjgYRgO1xuICAgIGNhc2UgJ2VtYWlsJzpcbiAgICAgIHJldHVybiAn44Oh44O844Or44Ki44OJ44Os44K544Gu5b2i5byP44Gn5YWl5Yqb44GX44Gm44GP44Gg44GV44GEJztcbiAgICBjYXNlICdwYXR0ZXJuJzpcbiAgICAgIHJldHVybiAn5Y2K6KeS6Iux5pWw5a2X44Gn5YWl5Yqb44GX44Gm44GP44Gg44GV44GEJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICflgKTjgpLnorroqo3jgZfjgabjgY/jgaDjgZXjgYQnO1xuICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUVycm9yTWVzc2FnZVJlc29sdmVyKHJlc29sdmVyOiBFcnJvck1lc3NhZ2VSZXNvbHZlcikge1xuICByZXR1cm4ge3Byb3ZpZGU6IEVSUk9SX01FU1NBR0VfUkVTT0xWRVIsIHVzZVZhbHVlOiByZXNvbHZlcn07XG59XG5cbkBQaXBlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgbmFtZTogJ2Vycm9yJyxcbiAgcHVyZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRXJyb3JQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByb3RlY3RlZCByZXNvbHZlciA9IGluamVjdChFUlJPUl9NRVNTQUdFX1JFU09MVkVSLCB7b3B0aW9uYWw6IHRydWV9KSA/PyBkZWZhdWx0RXJyb3JNZXNzYWdlUmVzb2x2ZXI7XG5cbiAgdHJhbnNmb3JtKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZXIoZXJyb3JzKTtcbiAgfVxufVxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvcGlwZXMvZXJyb3IvZXJyb3IucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUk1RSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBdUIsNENBQTRDLENBQUMsQ0FBQztBQUU3SCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBeUIsQ0FBQyxNQUF3QixFQUFVLEVBQUU7SUFDcEcsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFakMsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN2QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLFFBQVEsS0FBSyxFQUFFO1FBQ2IsS0FBSyxVQUFVO1lBQ2IsT0FBTyxRQUFRLENBQUM7UUFDbEIsS0FBSyxXQUFXO1lBQ2QsT0FBTyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLGVBQWUsQ0FBQztRQUMxRCxLQUFLLFdBQVc7WUFDZCxPQUFPLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsZUFBZSxDQUFDO1FBQzFELEtBQUssT0FBTztZQUNWLE9BQU8scUJBQXFCLENBQUM7UUFDL0IsS0FBSyxTQUFTO1lBQ1osT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQjtZQUNFLE9BQU8sWUFBWSxDQUFDO0tBQ3ZCO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLDJCQUEyQixDQUFDLFFBQThCO0lBQ3hFLE9BQU8sRUFBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxDQUFDO0FBQy9ELENBQUM7QUFPRCxNQUFNLE9BQU8sU0FBUztJQUx0QjtRQU1ZLGFBQVEsR0FBRyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSwyQkFBMkIsQ0FBQztLQU90RztJQUxDLFNBQVMsQ0FBQyxNQUF3QjtRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBUFUsU0FBUzs0R0FBVCxTQUFTOzsyRkFBVCxTQUFTO2tCQUxyQixJQUFJO21CQUFDO29CQUNKLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsT0FBTztvQkFDYixJQUFJLEVBQUUsSUFBSTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQaXBlLCBpbmplY3QsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5leHBvcnQgdHlwZSBFcnJvck1lc3NhZ2VSZXNvbHZlciA9IChlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMpID0+IHN0cmluZztcbmV4cG9ydCBjb25zdCBFUlJPUl9NRVNTQUdFX1JFU09MVkVSID0gbmV3IEluamVjdGlvblRva2VuPEVycm9yTWVzc2FnZVJlc29sdmVyPignW0BuZy1hdG9taWMvY29tbW9uXSBFcnJvciBtZXNzYWdlIHJlc29sdmVyJyk7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0RXJyb3JNZXNzYWdlUmVzb2x2ZXI6IEVycm9yTWVzc2FnZVJlc29sdmVyID0gKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyk6IHN0cmluZyA9PiB7XG4gIGNvbnNvbGUuZGVidWcoJ2Vycm9yczonLCBlcnJvcnMpO1xuXG4gIGlmICghZXJyb3JzKSByZXR1cm4gJyc7XG4gIGNvbnN0IHZhbHVlID0gT2JqZWN0LmVudHJpZXMoZXJyb3JzKVswXVswXTtcbiAgc3dpdGNoICh2YWx1ZSkge1xuICAgIGNhc2UgJ3JlcXVpcmVkJzpcbiAgICAgIHJldHVybiAn5b+F6aCI6aCF55uu44Gn44GZJztcbiAgICBjYXNlICdtaW5MZW5ndGgnOlxuICAgICAgcmV0dXJuIGDmnIDkvY4ke2Vycm9yc1t2YWx1ZV0ucmVxdWlyZWRMZW5ndGh95paH5a2X5Lul5LiK44Gn5YWl5Yqb44GX44Gm44GP44Gg44GV44GEYDtcbiAgICBjYXNlICdtYXhMZW5ndGgnOlxuICAgICAgcmV0dXJuIGDmnIDlpKcke2Vycm9yc1t2YWx1ZV0ucmVxdWlyZWRMZW5ndGh95paH5a2X5Lul5LiL44Gn5YWl5Yqb44GX44Gm44GP44Gg44GV44GEYDtcbiAgICBjYXNlICdlbWFpbCc6XG4gICAgICByZXR1cm4gJ+ODoeODvOODq+OCouODieODrOOCueOBruW9ouW8j+OBp+WFpeWKm+OBl+OBpuOBj+OBoOOBleOBhCc7XG4gICAgY2FzZSAncGF0dGVybic6XG4gICAgICByZXR1cm4gJ+WNiuinkuiLseaVsOWtl+OBp+WFpeWKm+OBl+OBpuOBj+OBoOOBleOBhCc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAn5YCk44KS56K66KqN44GX44Gm44GP44Gg44GV44GEJztcbiAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVFcnJvck1lc3NhZ2VSZXNvbHZlcihyZXNvbHZlcjogRXJyb3JNZXNzYWdlUmVzb2x2ZXIpIHtcbiAgcmV0dXJuIHtwcm92aWRlOiBFUlJPUl9NRVNTQUdFX1JFU09MVkVSLCB1c2VWYWx1ZTogcmVzb2x2ZXJ9O1xufVxuXG5AUGlwZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIG5hbWU6ICdlcnJvcicsXG4gIHB1cmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVycm9yUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcm90ZWN0ZWQgcmVzb2x2ZXIgPSBpbmplY3QoRVJST1JfTUVTU0FHRV9SRVNPTFZFUiwge29wdGlvbmFsOiB0cnVlfSkgPz8gZGVmYXVsdEVycm9yTWVzc2FnZVJlc29sdmVyO1xuXG4gIHRyYW5zZm9ybShlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IGVycm9yID0gdGhpcy5yZXNvbHZlcihlcnJvcnMpO1xuICAgIGNvbnNvbGUuZGVidWcoJ2Vycm9yOicsIGVycm9yPy5sZW5ndGgpO1xuICAgIHJldHVybiBlcnJvcjtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './map.pipe';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3BpcGVzL21hcC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWFwLnBpcGUnO1xuIl19
@@ -0,0 +1,17 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { get } from 'lodash-es';
3
+ import * as i0 from "@angular/core";
4
+ export class MapPipe {
5
+ transform(itemOrItems, path) {
6
+ if (Array.isArray(itemOrItems))
7
+ return itemOrItems.map(item => get(item, path));
8
+ return get(itemOrItems, path);
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: MapPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
11
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: MapPipe, isStandalone: true, name: "map" }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: MapPipe, decorators: [{
14
+ type: Pipe,
15
+ args: [{ name: 'map', standalone: true, pure: true }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3BpcGVzL21hcC9tYXAucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUdoQyxNQUFNLE9BQU8sT0FBTztJQUNsQixTQUFTLENBQUMsV0FBb0IsRUFBRSxJQUFZO1FBQzFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7WUFBRSxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEYsT0FBTyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBSlUsT0FBTzs0R0FBUCxPQUFPOzsyRkFBUCxPQUFPO2tCQURuQixJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5AUGlwZSh7bmFtZTogJ21hcCcsIHN0YW5kYWxvbmU6IHRydWUsIHB1cmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIE1hcFBpcGU8VD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGl0ZW1Pckl0ZW1zOiBUIHwgVFtdLCBwYXRoOiBzdHJpbmcpOiBhbnkgfCBhbnlbXSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbU9ySXRlbXMpKSByZXR1cm4gaXRlbU9ySXRlbXMubWFwKGl0ZW0gPT4gZ2V0KGl0ZW0sIHBhdGgpKTtcbiAgICByZXR1cm4gZ2V0KGl0ZW1Pckl0ZW1zLCBwYXRoKTtcbiAgfVxufSJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1waXBlcy1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3BpcGVzL21hcC9uZy1hdG9taWMtY29tbW9uLXBpcGVzLW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './resolve-columns.pipe';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3BpcGVzL3Jlc29sdmUtY29sdW1ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNvbHZlLWNvbHVtbnMucGlwZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1waXBlcy1yZXNvbHZlLWNvbHVtbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3BpcGVzL3Jlc29sdmUtY29sdW1ucy9uZy1hdG9taWMtY29tbW9uLXBpcGVzLXJlc29sdmUtY29sdW1ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ResolveColumnsPipe {
4
+ transform(columns) {
5
+ const data = columns.map((column, i) => {
6
+ if (typeof column === 'string') {
7
+ if (column === '__checkbox')
8
+ return { type: 'checkbox', name: `__checkbox_${i}` };
9
+ if (column === '__actions')
10
+ return { type: 'actions', name: `__actions_${i}` };
11
+ return { type: 'key', name: column };
12
+ }
13
+ return { type: 'actions', name: `__actions_${i}`, payload: column };
14
+ });
15
+ return data;
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ResolveColumnsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
18
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: ResolveColumnsPipe, isStandalone: true, name: "resolveColumns" }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ResolveColumnsPipe, decorators: [{
21
+ type: Pipe,
22
+ args: [{ name: 'resolveColumns', standalone: true, pure: true }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1jb2x1bW5zLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3BpcGVzL3Jlc29sdmUtY29sdW1ucy9yZXNvbHZlLWNvbHVtbnMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixTQUFTLENBQUMsT0FBaUI7UUFDekIsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtnQkFDOUIsSUFBSSxNQUFNLEtBQUssWUFBWTtvQkFBRSxPQUFPLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLEVBQUUsRUFBQyxDQUFDO2dCQUNoRixJQUFJLE1BQU0sS0FBSyxXQUFXO29CQUFFLE9BQU8sRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFDLENBQUM7Z0JBQzdFLE9BQU8sRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUMsQ0FBQzthQUNwQztZQUNELE9BQU8sRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBVyxDQUFDO0lBQ3JCLENBQUM7OEdBWFUsa0JBQWtCOzRHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7bmFtZTogJ3Jlc29sdmVDb2x1bW5zJywgc3RhbmRhbG9uZTogdHJ1ZSwgcHVyZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgUmVzb2x2ZUNvbHVtbnNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShjb2x1bW5zOiBzdHJpbmdbXSk6IHt0eXBlOiAna2V5JyB8ICdhY3Rpb25zJyB8ICdjaGVja2JveCcsIG5hbWU6IHN0cmluZywgcGF5bG9hZD86IGFueX1bXSB7XG4gICAgY29uc3QgZGF0YSA9IGNvbHVtbnMubWFwKChjb2x1bW4sIGkpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgY29sdW1uID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAoY29sdW1uID09PSAnX19jaGVja2JveCcpIHJldHVybiB7dHlwZTogJ2NoZWNrYm94JywgbmFtZTogYF9fY2hlY2tib3hfJHtpfWB9O1xuICAgICAgICBpZiAoY29sdW1uID09PSAnX19hY3Rpb25zJykgcmV0dXJuIHt0eXBlOiAnYWN0aW9ucycsIG5hbWU6IGBfX2FjdGlvbnNfJHtpfWB9O1xuICAgICAgICByZXR1cm4ge3R5cGU6ICdrZXknLCBuYW1lOiBjb2x1bW59O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHt0eXBlOiAnYWN0aW9ucycsIG5hbWU6IGBfX2FjdGlvbnNfJHtpfWAsIHBheWxvYWQ6IGNvbHVtbn07XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGEgYXMgYW55O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './sort.pipe';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3BpcGVzL3NvcnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NvcnQucGlwZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1waXBlcy1zb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9waXBlcy9zb3J0L25nLWF0b21pYy1jb21tb24tcGlwZXMtc29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SortPipe {
4
+ transform(column, sort) {
5
+ return sort.key === column.name ? sort.order : 'none';
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SortPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: SortPipe, isStandalone: true, name: "sort" }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SortPipe, decorators: [{
11
+ type: Pipe,
12
+ args: [{ name: 'sort', standalone: true, pure: true }]
13
+ }] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9waXBlcy9zb3J0L3NvcnQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFJcEQsTUFBTSxPQUFPLFFBQVE7SUFDbkIsU0FBUyxDQUFJLE1BQWMsRUFBRSxJQUFVO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDeEQsQ0FBQzs4R0FIVSxRQUFROzRHQUFSLFFBQVE7OzJGQUFSLFFBQVE7a0JBRHBCLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbHVtbiwgU29ydCB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL21vZGVscyc7XG5cbkBQaXBlKHtuYW1lOiAnc29ydCcsIHN0YW5kYWxvbmU6IHRydWUsIHB1cmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIFNvcnRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUPihjb2x1bW46IENvbHVtbiwgc29ydDogU29ydCk6ICdhc2MnIHwgJ2Rlc2MnIHwgJ25vbmUnIHtcbiAgICByZXR1cm4gc29ydC5rZXkgPT09IGNvbHVtbi5uYW1lID8gc29ydC5vcmRlciA6ICdub25lJztcbiAgfVxufVxuIl19
@@ -0,0 +1,57 @@
1
+ import { computed, inject, Injectable } from '@angular/core';
2
+ import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
3
+ import { toSignal } from '@angular/core/rxjs-interop';
4
+ import { combineLatest } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ export class BreakpointService {
7
+ constructor() {
8
+ this.breakpointObserver = inject(BreakpointObserver);
9
+ this.breakpointMap$ = combineLatest({
10
+ xSmall: this.breakpointObserver.observe(Breakpoints.XSmall),
11
+ small: this.breakpointObserver.observe(Breakpoints.Small),
12
+ medium: this.breakpointObserver.observe(Breakpoints.Medium),
13
+ large: this.breakpointObserver.observe(Breakpoints.Large),
14
+ xLarge: this.breakpointObserver.observe(Breakpoints.XLarge),
15
+ handset: this.breakpointObserver.observe(Breakpoints.Handset),
16
+ tablet: this.breakpointObserver.observe(Breakpoints.Tablet),
17
+ web: this.breakpointObserver.observe(Breakpoints.Web),
18
+ });
19
+ this.breakpointMap = toSignal(this.breakpointMap$);
20
+ this.breakpoint = computed(() => {
21
+ const map = this.breakpointMap();
22
+ const test = {
23
+ xSmall: map.xSmall.matches ?? this.breakpointObserver.isMatched(Breakpoints.XSmall),
24
+ small: map.small.matches ?? this.breakpointObserver.isMatched(Breakpoints.Small),
25
+ medium: map.medium.matches ?? this.breakpointObserver.isMatched(Breakpoints.Medium),
26
+ large: map.large.matches ?? this.breakpointObserver.isMatched(Breakpoints.Large),
27
+ xLarge: map.xLarge.matches ?? this.breakpointObserver.isMatched(Breakpoints.XLarge),
28
+ handset: map.handset.matches ?? this.breakpointObserver.isMatched(Breakpoints.Handset),
29
+ tablet: map.tablet.matches ?? this.breakpointObserver.isMatched(Breakpoints.Tablet),
30
+ web: map.web.matches ?? this.breakpointObserver.isMatched(Breakpoints.Web),
31
+ };
32
+ if (test.xSmall)
33
+ return 'xSmall';
34
+ if (test.small)
35
+ return 'small';
36
+ if (test.medium)
37
+ return 'medium';
38
+ if (test.large)
39
+ return 'large';
40
+ if (test.xLarge)
41
+ return 'xLarge';
42
+ if (test.handset)
43
+ return 'handset';
44
+ if (test.tablet)
45
+ return 'tablet';
46
+ if (test.web)
47
+ return 'web';
48
+ });
49
+ }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BreakpointService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
51
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BreakpointService, providedIn: 'root' }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BreakpointService, decorators: [{
54
+ type: Injectable,
55
+ args: [{ providedIn: 'root' }]
56
+ }] });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9icmVha3BvaW50L2JyZWFrcG9pbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUtyQyxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRXFCLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzFELG1CQUFjLEdBQUcsYUFBYSxDQUFDO1lBQ3RDLE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDM0QsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN6RCxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQzNELEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDekQsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUMzRCxPQUFPLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO1lBQzdELE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDM0QsR0FBRyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztTQUN0RCxDQUFDLENBQUM7UUFDTSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUMsZUFBVSxHQUFHLFFBQVEsQ0FBYSxHQUFHLEVBQUU7WUFDOUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxHQUFHO2dCQUNYLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBQ25GLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7Z0JBQ2hGLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBQ25GLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7Z0JBQ2hGLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBQ25GLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7Z0JBQ3RGLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBQ25GLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7YUFDM0UsQ0FBQztZQUVGLElBQUksSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxRQUFRLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPLE9BQU8sQ0FBQztZQUMvQixJQUFJLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sUUFBUSxDQUFDO1lBQ2pDLElBQUksSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxPQUFPLENBQUM7WUFDL0IsSUFBSSxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPLFFBQVEsQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBQyxPQUFPO2dCQUFFLE9BQU8sU0FBUyxDQUFDO1lBQ25DLElBQUksSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxRQUFRLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsR0FBRztnQkFBRSxPQUFPLEtBQUssQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztLQUNKOzhHQW5DWSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQURKLE1BQU07OzJGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEJyZWFrcG9pbnQgPSAneFNtYWxsJyB8ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAneExhcmdlJyB8ICdoYW5kc2V0JyB8ICd0YWJsZXQnIHwgJ3dlYic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQnJlYWtwb2ludFNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYnJlYWtwb2ludE9ic2VydmVyID0gaW5qZWN0KEJyZWFrcG9pbnRPYnNlcnZlcik7XG4gIHJlYWRvbmx5IGJyZWFrcG9pbnRNYXAkID0gY29tYmluZUxhdGVzdCh7XG4gICAgeFNtYWxsOiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKEJyZWFrcG9pbnRzLlhTbWFsbCksXG4gICAgc21hbGw6IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoQnJlYWtwb2ludHMuU21hbGwpLFxuICAgIG1lZGl1bTogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShCcmVha3BvaW50cy5NZWRpdW0pLFxuICAgIGxhcmdlOiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKEJyZWFrcG9pbnRzLkxhcmdlKSxcbiAgICB4TGFyZ2U6IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoQnJlYWtwb2ludHMuWExhcmdlKSxcbiAgICBoYW5kc2V0OiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKEJyZWFrcG9pbnRzLkhhbmRzZXQpLFxuICAgIHRhYmxldDogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShCcmVha3BvaW50cy5UYWJsZXQpLFxuICAgIHdlYjogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShCcmVha3BvaW50cy5XZWIpLFxuICB9KTtcbiAgcmVhZG9ubHkgYnJlYWtwb2ludE1hcCA9IHRvU2lnbmFsKHRoaXMuYnJlYWtwb2ludE1hcCQpO1xuICByZWFkb25seSBicmVha3BvaW50ID0gY29tcHV0ZWQ8QnJlYWtwb2ludD4oKCkgPT4ge1xuICAgIGNvbnN0IG1hcCA9IHRoaXMuYnJlYWtwb2ludE1hcCgpO1xuICAgIGNvbnN0IHRlc3QgPSB7XG4gICAgICB4U21hbGw6IG1hcC54U21hbGwubWF0Y2hlcyA/PyB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuWFNtYWxsKSxcbiAgICAgIHNtYWxsOiBtYXAuc21hbGwubWF0Y2hlcyA/PyB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuU21hbGwpLFxuICAgICAgbWVkaXVtOiBtYXAubWVkaXVtLm1hdGNoZXMgPz8gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLk1lZGl1bSksXG4gICAgICBsYXJnZTogbWFwLmxhcmdlLm1hdGNoZXMgPz8gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLkxhcmdlKSxcbiAgICAgIHhMYXJnZTogbWFwLnhMYXJnZS5tYXRjaGVzID8/IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChCcmVha3BvaW50cy5YTGFyZ2UpLFxuICAgICAgaGFuZHNldDogbWFwLmhhbmRzZXQubWF0Y2hlcyA/PyB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuSGFuZHNldCksXG4gICAgICB0YWJsZXQ6IG1hcC50YWJsZXQubWF0Y2hlcyA/PyB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuVGFibGV0KSxcbiAgICAgIHdlYjogbWFwLndlYi5tYXRjaGVzID8/IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChCcmVha3BvaW50cy5XZWIpLFxuICAgIH07XG5cbiAgICBpZiAodGVzdC54U21hbGwpIHJldHVybiAneFNtYWxsJztcbiAgICBpZiAodGVzdC5zbWFsbCkgcmV0dXJuICdzbWFsbCc7XG4gICAgaWYgKHRlc3QubWVkaXVtKSByZXR1cm4gJ21lZGl1bSc7XG4gICAgaWYgKHRlc3QubGFyZ2UpIHJldHVybiAnbGFyZ2UnO1xuICAgIGlmICh0ZXN0LnhMYXJnZSkgcmV0dXJuICd4TGFyZ2UnO1xuICAgIGlmICh0ZXN0LmhhbmRzZXQpIHJldHVybiAnaGFuZHNldCc7XG4gICAgaWYgKHRlc3QudGFibGV0KSByZXR1cm4gJ3RhYmxldCc7XG4gICAgaWYgKHRlc3Qud2ViKSByZXR1cm4gJ3dlYic7XG4gIH0pO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './breakpoint.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2JyZWFrcG9pbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYnJlYWtwb2ludC5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1icmVha3BvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9icmVha3BvaW50L25nLWF0b21pYy1jb21tb24tc2VydmljZXMtYnJlYWtwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -11,9 +11,7 @@ export function scoped(source, path) {
11
11
  effect(() => {
12
12
  scopedSignal.set(get(source(), path, source()));
13
13
  }, { allowSignalWrites: true });
14
- return computed(() => scopedSignal(), {
15
- // equal: (a, b) => JSON.stringify(a) === JSON.stringify(b),
16
- });
14
+ return computed(() => scopedSignal());
17
15
  }
18
16
  export function injectBreakpoint() {
19
17
  return inject(UiService).breakpoint.breakpoint;
@@ -98,6 +96,13 @@ export const UI_CONFIG_REDUCER = new InjectionToken('UI_CONFIG_REDUCER');
98
96
  export function call(signalOrValue) {
99
97
  return isSignal(signalOrValue) ? signalOrValue() : signalOrValue;
100
98
  }
99
+ function setReducerPath(reducer, path) {
100
+ Object.defineProperty(reducer, 'path', { value: path, configurable: true });
101
+ return reducer;
102
+ }
103
+ function getReducerPath(reducer) {
104
+ return reducer['path'];
105
+ }
101
106
  export function provideUiConfig(reducerFactory, path = [], name = 'name') {
102
107
  return {
103
108
  provide: UI_CONFIG_REDUCER,
@@ -112,30 +117,33 @@ export function provideUiConfig(reducerFactory, path = [], name = 'name') {
112
117
  }
113
118
  ;
114
119
  Object.defineProperty(_reducerFactory, 'name', { value: name, configurable: true });
120
+ setReducerPath(_reducerFactory, path);
115
121
  return _reducerFactory;
116
122
  },
117
123
  deps: [Injector],
118
124
  multi: true,
119
125
  };
120
126
  }
121
- export function injectRootConfig() {
127
+ export function injectRootConfig(paths = []) {
122
128
  const uiContext = injectUiContext();
123
- const reducerFactories = injectReducers();
129
+ const factories = injectReducerFactoiries(paths);
124
130
  const hostInjector = inject(Injector);
125
- const reducers = reducerFactories.map(reducerFactory => {
126
- return runInInjectionContext(hostInjector, () => reducerFactory(hostInjector));
131
+ const reducers = factories.map(factory => {
132
+ return runInInjectionContext(hostInjector, () => factory(hostInjector));
127
133
  });
128
134
  if (!reducers)
129
135
  return undefined;
130
- return computed(() => {
136
+ const rootConfig = computed(() => {
131
137
  const context = uiContext();
132
138
  return reducers.reduce((acc, reducer) => {
133
139
  return runInInjectionContext(hostInjector, () => reducer(acc, context));
134
140
  }, {});
135
141
  });
142
+ return rootConfig;
136
143
  }
144
+ // TODO(@nontangent): itemsなどの取得が全てのコンポーネントで行われるので計算を最適化する。
137
145
  export function injectUiConfig(paths = []) {
138
- const rootConfig = injectRootConfig();
146
+ const rootConfig = injectRootConfig(paths);
139
147
  return scoped(rootConfig, paths);
140
148
  }
141
149
  export function makeConfig(defaultUseFactory, path) {
@@ -149,9 +157,14 @@ export function makeConfig(defaultUseFactory, path) {
149
157
  },
150
158
  };
151
159
  }
152
- export function injectReducers() {
160
+ function injectReducers() {
153
161
  return injectDeepMulti(UI_CONFIG_REDUCER);
154
162
  }
163
+ function injectReducerFactoiries(path = []) {
164
+ return injectReducers().filter(factory => {
165
+ return getReducerPath(factory).every((p, i) => path[i] === p);
166
+ });
167
+ }
155
168
  export function injectDeepMulti(token, injector = inject(Injector)) {
156
169
  const valueOrArray = injector.get(token, [], { optional: true });
157
170
  const items = Array.isArray(valueOrArray) ? valueOrArray : [valueOrArray];
@@ -183,4 +196,4 @@ export function debugInjector(injector = inject(Injector)) {
183
196
  break;
184
197
  }
185
198
  }
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvdWkvdWkuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQW1DLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekssT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFekYsTUFBTSxVQUFVLE1BQU0sQ0FBeUMsTUFBaUIsRUFBRSxJQUFtQjtJQUNuRyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQVUsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUQsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNWLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxFQUFFLEVBQUMsaUJBQWlCLEVBQUUsSUFB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SUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDN0Q7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUE7SUFFRCxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQWtCLEVBQVUsRUFBRTtRQUNyRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ25GLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxJQUFJLEdBQUcsQ0FBQztRQUM3QixPQUFPLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDakMsQ0FBQyxDQUFBO0lBRUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUFrQixFQUFXLEVBQUU7UUFDckQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDakQsQ0FBQyxDQUFBO0lBRUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzNCLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksUUFBUSxLQUFLLFFBQVEsQ0FBQyxJQUFJO1lBQUUsTUFBTTtLQUN2QztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIFByb3ZpZGVyLCBQcm92aWRlclRva2VuLCBTaWduYWwsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaXNTaWduYWwsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFVJQ29udGV4dCwgVWlTZXJ2aWNlIH0gZnJvbSBcIi4vdWkuc2VydmljZVwiO1xuaW1wb3J0IHsgZ2V0LCBzZXQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiQG5nLWF0b21pYy9jb3JlXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHsgY29tcHV0ZWRBc3luYyB9IGZyb20gXCJuZ3h0ZW5zaW9uL2NvbXB1dGVkLWFzeW5jXCI7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uSGlzdG9yeVNlcnZpY2UgfSBmcm9tIFwiQG5nLWF0b21pYy9jb21tb24vc2VydmljZXMvbmF2aWdhdGlvbi1oaXN0b3J5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzY29wZWQ8VCBleHRlbmRzIG9iamVjdCwgVEtleSBleHRlbmRzIGtleW9mIFQ+KHNvdXJjZTogU2lnbmFsPFQ+LCBwYXRoOiBUS2V5IHwgW1RLZXldKTogU2lnbmFsPFRbVEtleV0+IHtcbiAgY29uc3Qgc2NvcGVkU2lnbmFsID0gc2lnbmFsPFRbVEtleV0+KGdldChzb3VyY2UoKSwgcGF0aCkpO1xuICBlZmZlY3QoKCkgPT4ge1xuICAgIHNjb3BlZFNpZ25hbC5zZXQoZ2V0KHNvdXJjZSgpLCBwYXRoLCBzb3VyY2UoKSkgYXMgVFtUS2V5XSk7XG4gIH0sIHthbGxvd1NpZ25hbFdyaXRlczogdHJ1ZX0pO1xuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4gc2NvcGVkU2lnbmFsKCksIHtcbiAgICAvLyBlcXVhbDogKGEsIGIpID0+IEpTT04uc3RyaW5naWZ5KGEpID09PSBKU09OLnN0cmluZ2lmeShiKSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RCcmVha3BvaW50KCkge1xuICByZXR1cm4gaW5qZWN0KFVpU2VydmljZSkuYnJlYWtwb2ludC5icmVha3BvaW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SXNNb2JpbGUoKSB7XG4gIGNvbnN0IGJyZWFrcG9pbnQgPSBpbmplY3RCcmVha3BvaW50KCk7XG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiAgWyd4U21hbGwnLCAnc21hbGwnXS5pbmNsdWRlcyhicmVha3BvaW50KCkpKTtcbn1cblxuZXhwb3J0IGVudW0gTmF2QWN0aW9uSWQge1xuICBUT0dHTEVfU0lERV9OQVYgPSAnW0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3VpXSBUT0dHTEVfU0lERV9OQVYnLFxuICBCQUNLID0gJ1tAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy91aV0gQkFDSycsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJc1Jvb3RQYWdlJCgpIHtcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIGNvbnN0IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcmV0dXJuIHJvdXRlci5ldmVudHMucGlwZShcbiAgICBzdGFydFdpdGgobnVsbCksXG4gICAgbWFwKCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudHMgPSBbXTtcbiAgICAgIGxldCByb3V0ZV8gPSByb3V0ZTsgXG4gICAgICB3aGlsZShyb3V0ZV8pIHtcbiAgICAgICAgaWYgKCFyb3V0ZV8ucGFyZW50KSBicmVhaztcbiAgICAgICAgcm91dGVfID0gcm91dGVfLnBhcmVudDtcbiAgICAgICAgaWYgKHJvdXRlXy5jb21wb25lbnQpIHtcbiAgICAgICAgICBjb21wb25lbnRzLnB1c2gocm91dGVfLmNvbXBvbmVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAhIShjb21wb25lbnRzPy5sZW5ndGggPT09IDEpO1xuICAgIH0pLFxuICAgIG1hcCgocm91dGUpID0+ICEhcm91dGUpLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SXNSb290UGFnZSgpIHtcbiAgY29uc3QgaXNSb290UGFnZSQgPSBpbmplY3RJc1Jvb3RQYWdlJCgpO1xuICBjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHJldHVybiBjb21wdXRlZEFzeW5jKCgpID0+IGlzUm9vdFBhZ2UkLCB7aW5qZWN0b3J9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5hdlN0YXJ0QWN0aW9ucyhcbiAgaXNSb290UGFnZTogU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKSxcbik6IFNpZ25hbDxBY3Rpb25bXT4ge1xuICBjb25zdCBjb250ZXh0ID0gaW5qZWN0VWlDb250ZXh0KCk7XG4gIGNvbnN0IG5hdmlnYXRpb25IaXN0b3J5ID0gaW5qZWN0KE5hdmlnYXRpb25IaXN0b3J5U2VydmljZSk7XG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiB7XG4gICAgc3dpdGNoKGNvbnRleHQoKS5icmVha3BvaW50KSB7XG4gICAgICBjYXNlICd4TGFyZ2UnOlxuICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgY2FzZSAnbWVkaXVtJzpcbiAgICAgIGNhc2UgJ3NtYWxsJzoge1xuICAgICAgICBpZiAoaXNSb290UGFnZSgpKSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChuYXZpZ2F0aW9uSGlzdG9yeS5pc0luaXRpYWwoKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW3sgaWQ6IE5hdkFjdGlvbklkLkJBQ0ssIG5hbWU6ICdCQUNLJywgaWNvbjogJ2Fycm93X2JhY2snIH1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY2FzZSAneFNtYWxsJzoge1xuICAgICAgICBpZiAoaXNSb290UGFnZSgpKSB7XG4gICAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5UT0dHTEVfU0lERV9OQVYsIG5hbWU6ICfjg6Hjg4vjg6Xjg7wnLCBpY29uOiAnbWVudScgfV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKG5hdmlnYXRpb25IaXN0b3J5LmlzSW5pdGlhbCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW3sgaWQ6IE5hdkFjdGlvbklkLlRPR0dMRV9TSURFX05BViwgbmFtZTogJ+ODoeODi+ODpeODvCcsIGljb246ICdtZW51JyB9XVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW3sgaWQ6IE5hdkFjdGlvbklkLkJBQ0ssIG5hbWU6ICdCQUNLJywgaWNvbjogJ2Fycm93X2JhY2snIH1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBpZiAoaXNSb290UGFnZSgpKSByZXR1cm4gW107XG4gICAgICAgIHJldHVybiBbeyBpZDogTmF2QWN0aW9uSWQuQkFDSywgbmFtZTogJ0JBQ0snLCBpY29uOiAnYXJyb3dfYmFjaycgfV07XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFVpQ29udGV4dCgpOiBTaWduYWw8VUlDb250ZXh0PiB7XG4gIHJldHVybiBpbmplY3QoVWlTZXJ2aWNlKS51aUNvbnRleHQ7XG59XG5cbmV4cG9ydCB0eXBlIFVpQ29uZmlnUmVkdWNlcjxUIGV4dGVuZHMgb2JqZWN0IHwgc3RyaW5nLCBDIGV4dGVuZHMgVUlDb250ZXh0ID0gYW55PiA9IChjb25maWc6IFQsIGNvbnRleHQ6IEMpID0+IFQ7XG5leHBvcnQgY29uc3QgVUlfQ09ORklHX1JFRFVDRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48VWlDb25maWdSZWR1Y2VyPGFueT4+KCdVSV9DT05GSUdfUkVEVUNFUicpO1xuZXhwb3J0IHR5cGUgUmVkdWNlckZhY3Rvcnk8VCBleHRlbmRzIG9iamVjdCB8IHN0cmluZywgSyBleHRlbmRzIFQgPSBhbnk+IFxuICA9IChpbmplY3RvcjogSW5qZWN0b3IsIGhvc3RJbmplY3RvcjogSW5qZWN0b3IpID0+IChjb25maWc6IEssIGNvbnRleHQ6IFVJQ29udGV4dCkgPT4gVDtcblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGw8VD4oc2lnbmFsT3JWYWx1ZTogU2lnbmFsPFQ+IHwgVCk6IFQge1xuICByZXR1cm4gaXNTaWduYWwoc2lnbmFsT3JWYWx1ZSkgPyBzaWduYWxPclZhbHVlKCkgOiBzaWduYWxPclZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVVpQ29uZmlnPFQgZXh0ZW5kcyBvYmplY3QgfCBzdHJpbmc+KFxuICByZWR1Y2VyRmFjdG9yeTogUmVkdWNlckZhY3Rvcnk8VD4sXG4gIHBhdGg6IHN0cmluZ1tdID0gW10sXG4gIG5hbWUgPSAnbmFtZScsXG4pOiBQcm92aWRlciB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogVUlfQ09ORklHX1JFRFVDRVIsXG4gICAgdXNlRmFjdG9yeTogKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgZnVuY3Rpb24gX3JlZHVjZXJGYWN0b3J5KGhvc3RJbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgY29uc3QgcmVkdWNlciA9IHJlZHVjZXJGYWN0b3J5KGluamVjdG9yLCBob3N0SW5qZWN0b3IpOyBcbiAgICAgICAgcmV0dXJuIChjb25maWc6IFQsIGNvbnRleHQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuICByZWR1Y2VyKGNvbmZpZywgY29udGV4dCk7XG4gICAgICAgICAgcmV0dXJuIHNldChjb25maWcgYXMgb2JqZWN0LCBwYXRoLCByZWR1Y2VyKGdldDxhbnksIGFueT4oY29uZmlnLCBwYXRoKSwgY29udGV4dCkpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9yZWR1Y2VyRmFjdG9yeSwgJ25hbWUnLCB7IHZhbHVlOiBuYW1lLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG4gICAgICByZXR1cm4gX3JlZHVjZXJGYWN0b3J5O1xuICAgIH0sXG4gICAgZGVwczogW0luamVjdG9yXSxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFJvb3RDb25maWc8VCBleHRlbmRzIG9iamVjdD4oKTogU2lnbmFsPFQ+IHtcbiAgY29uc3QgdWlDb250ZXh0ID0gaW5qZWN0VWlDb250ZXh0KCk7XG4gIGNvbnN0IHJlZHVjZXJGYWN0b3JpZXMgPSBpbmplY3RSZWR1Y2VycygpO1xuICBjb25zdCBob3N0SW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBjb25zdCByZWR1Y2VycyA9IHJlZHVjZXJGYWN0b3JpZXMubWFwKHJlZHVjZXJGYWN0b3J5ID0+IHtcbiAgICByZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGhvc3RJbmplY3RvciwgKCkgPT4gcmVkdWNlckZhY3RvcnkoaG9zdEluamVjdG9yKSk7XG4gIH0pO1xuICBpZiAoIXJlZHVjZXJzKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1aUNvbnRleHQoKTtcbiAgICByZXR1cm4gcmVkdWNlcnMucmVkdWNlKChhY2MsIHJlZHVjZXIpID0+IHtcbiAgICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQoaG9zdEluamVjdG9yLCAoKSA9PiByZWR1Y2VyKGFjYywgY29udGV4dCkpO1xuICAgIH0sIHt9IGFzIFQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFVpQ29uZmlnPFQgZXh0ZW5kcyBvYmplY3Q+KHBhdGhzOiBzdHJpbmdbXSA9IFtdKTogU2lnbmFsPFQ+IHtcbiAgY29uc3Qgcm9vdENvbmZpZyA9IGluamVjdFJvb3RDb25maWcoKTtcbiAgcmV0dXJuIHNjb3BlZChyb290Q29uZmlnLCBwYXRocyBhcyBhbnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFrZUNvbmZpZzxUIGV4dGVuZHMgb2JqZWN0PihkZWZhdWx0VXNlRmFjdG9yeTogUmVkdWNlckZhY3Rvcnk8VD4sIHBhdGg6IHN0cmluZ1tdKSB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogZnVuY3Rpb24gcHJvdmlkZUNvbmZpZyh1c2VGYWN0b3J5PzogUmVkdWNlckZhY3Rvcnk8VD4sIGxhYmVsID0gdXNlRmFjdG9yeSA/ICdjdXN0b20nIDogJ2RlZmF1bHQnKSB7XG4gICAgICB1c2VGYWN0b3J5ID8/PSBkZWZhdWx0VXNlRmFjdG9yeTtcbiAgICAgIHJldHVybiBwcm92aWRlVWlDb25maWc8VD4odXNlRmFjdG9yeSwgcGF0aCwgYFske3BhdGguam9pbignLicpfV0gJHtsYWJlbH1gKTtcbiAgICB9LFxuICAgIGluamVjdDogZnVuY3Rpb24gaW5qZWN0Q29uZmlnKCkge1xuICAgICAgcmV0dXJuIGluamVjdFVpQ29uZmlnPFQ+KHBhdGgpO1xuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFJlZHVjZXJzKCk6ICgoaG9zdEluamVjdG9yOiBJbmplY3RvcikgPT4gVWlDb25maWdSZWR1Y2VyPGFueT4pW10ge1xuICByZXR1cm4gaW5qZWN0RGVlcE11bHRpPChob3N0SW5qZWN0b3I6IEluamVjdG9yKSA9PiBVaUNvbmZpZ1JlZHVjZXI8YW55Pj4oVUlfQ09ORklHX1JFRFVDRVIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RGVlcE11bHRpPFQ+KHRva2VuOiBQcm92aWRlclRva2VuPFQ+LCBpbmplY3RvcjogSW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpKTogVFtdIHtcbiAgY29uc3QgdmFsdWVPckFycmF5ID0gaW5qZWN0b3IuZ2V0KHRva2VuIGFzIFByb3ZpZGVyVG9rZW48VFtdPiwgW10sIHtvcHRpb25hbDogdHJ1ZX0pO1xuICBjb25zdCBpdGVtcyA9IEFycmF5LmlzQXJyYXkodmFsdWVPckFycmF5KSA/IHZhbHVlT3JBcnJheSA6IFt2YWx1ZU9yQXJyYXldO1xuICBjb25zdCBwYXJlbnRJbmplY3RvciA9IGluamVjdG9yLmdldChJbmplY3RvciwgbnVsbCwge3NraXBTZWxmOiB0cnVlfSk7XG4gIGlmICghcGFyZW50SW5qZWN0b3IpIHJldHVybiBpdGVtcztcbiAgcmV0dXJuIFsuLi5uZXcgU2V0KFsuLi5pbmplY3REZWVwTXVsdGkodG9rZW4sIHBhcmVudEluamVjdG9yKSwgLi4uaXRlbXNdKV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWJ1Z0luamVjdG9yKGluamVjdG9yOiBJbmplY3RvciB8IG51bGwgPSBpbmplY3QoSW5qZWN0b3IpKSB7XG4gICAgICBjb25zdCBnZXRQYXJlbnQgPSAoaW5qZWN0b3I6IEluamVjdG9yLCBuID0gMCk6IEluamVjdG9yIHwgbnVsbCA9PiB7XG4gICAgICB3aGlsZSAoaW5qZWN0b3IgJiYgbi0tID4gMCkge1xuICAgICAgICBpbmplY3RvciA9IGluamVjdG9yLmdldChJbmplY3RvciwgbnVsbCwgeyBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpbmplY3RvcjtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRJbmplY3Rvck5hbWUgPSAoaW5qZWN0b3I6IEluamVjdG9yKTogc3RyaW5nID0+IHtcbiAgICAgIGNvbnN0IG5hbWUgPSBpbmplY3Rvci5nZXQoRWxlbWVudFJlZiwgbnVsbCk/Lm5hdGl2ZUVsZW1lbnQ/LnRhZ05hbWU/LnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAobmFtZSkgcmV0dXJuIGA8JHtuYW1lfT5gO1xuICAgICAgcmV0dXJuIGAke2luamVjdG9yWydzb3VyY2UnXX1gO1xuICAgIH1cblxuICAgIGNvbnN0IGlzTm9kZUluamVjdG9yID0gKGluamVjdG9yOiBJbmplY3Rvcik6IGJvb2xlYW4gPT4ge1xuICAgICAgcmV0dXJuIGluamVjdG9yLmdldChFbGVtZW50UmVmLCBudWxsKSAhPT0gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBtYXBUb05hbWVzID0gKHJlZHVjZXJzOiBhbnkpID0+IChyZWR1Y2VycyA/PyBbXSkubWFwKHJlZHVjZXIgPT4gcmVkdWNlci5uYW1lKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMjA7IGkrKykge1xuICAgICAgaW5qZWN0b3IgPSBnZXRQYXJlbnQoaW5qZWN0b3IsIGkpO1xuICAgICAgaWYgKGluamVjdG9yID09PSBJbmplY3Rvci5OVUxMKSBicmVhaztcbiAgICB9XG59XG4iXX0=
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvdWkvdWkuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQW1DLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekssT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFekYsTUFBTSxVQUFVLE1BQU0sQ0FBeUMsTUFBaUIsRUFBRSxJQUFtQjtJQUNuRyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQVUsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUQsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNWLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxFQUFFLEVBQUMsaUJBQWlCLEVBQUUsSUFB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QyxDQUFBO0lBRUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUFrQixFQUFXLEVBQUU7UUFDckQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDakQsQ0FBQyxDQUFBO0lBRUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzNCLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksUUFBUSxLQUFLLFFBQVEsQ0FBQyxJQUFJO1lBQUUsTUFBTTtLQUN2QztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIFByb3ZpZGVyLCBQcm92aWRlclRva2VuLCBTaWduYWwsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaXNTaWduYWwsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFVJQ29udGV4dCwgVWlTZXJ2aWNlIH0gZnJvbSBcIi4vdWkuc2VydmljZVwiO1xuaW1wb3J0IHsgZ2V0LCBzZXQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiQG5nLWF0b21pYy9jb3JlXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHsgY29tcHV0ZWRBc3luYyB9IGZyb20gXCJuZ3h0ZW5zaW9uL2NvbXB1dGVkLWFzeW5jXCI7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uSGlzdG9yeVNlcnZpY2UgfSBmcm9tIFwiQG5nLWF0b21pYy9jb21tb24vc2VydmljZXMvbmF2aWdhdGlvbi1oaXN0b3J5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzY29wZWQ8VCBleHRlbmRzIG9iamVjdCwgVEtleSBleHRlbmRzIGtleW9mIFQ+KHNvdXJjZTogU2lnbmFsPFQ+LCBwYXRoOiBUS2V5IHwgW1RLZXldKTogU2lnbmFsPFRbVEtleV0+IHtcbiAgY29uc3Qgc2NvcGVkU2lnbmFsID0gc2lnbmFsPFRbVEtleV0+KGdldChzb3VyY2UoKSwgcGF0aCkpO1xuICBlZmZlY3QoKCkgPT4ge1xuICAgIHNjb3BlZFNpZ25hbC5zZXQoZ2V0KHNvdXJjZSgpLCBwYXRoLCBzb3VyY2UoKSkgYXMgVFtUS2V5XSk7XG4gIH0sIHthbGxvd1NpZ25hbFdyaXRlczogdHJ1ZX0pO1xuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4gc2NvcGVkU2lnbmFsKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QnJlYWtwb2ludCgpIHtcbiAgcmV0dXJuIGluamVjdChVaVNlcnZpY2UpLmJyZWFrcG9pbnQuYnJlYWtwb2ludDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdElzTW9iaWxlKCkge1xuICBjb25zdCBicmVha3BvaW50ID0gaW5qZWN0QnJlYWtwb2ludCgpO1xuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4gIFsneFNtYWxsJywgJ3NtYWxsJ10uaW5jbHVkZXMoYnJlYWtwb2ludCgpKSk7XG59XG5cbmV4cG9ydCBlbnVtIE5hdkFjdGlvbklkIHtcbiAgVE9HR0xFX1NJREVfTkFWID0gJ1tAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy91aV0gVE9HR0xFX1NJREVfTkFWJyxcbiAgQkFDSyA9ICdbQG5nLWF0b21pYy9jb21tb24vc2VydmljZXMvdWldIEJBQ0snLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SXNSb290UGFnZSQoKSB7XG4gIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBjb25zdCByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHJldHVybiByb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgc3RhcnRXaXRoKG51bGwpLFxuICAgIG1hcCgoKSA9PiB7XG4gICAgICBjb25zdCBjb21wb25lbnRzID0gW107XG4gICAgICBsZXQgcm91dGVfID0gcm91dGU7IFxuICAgICAgd2hpbGUocm91dGVfKSB7XG4gICAgICAgIGlmICghcm91dGVfLnBhcmVudCkgYnJlYWs7XG4gICAgICAgIHJvdXRlXyA9IHJvdXRlXy5wYXJlbnQ7XG4gICAgICAgIGlmIChyb3V0ZV8uY29tcG9uZW50KSB7XG4gICAgICAgICAgY29tcG9uZW50cy5wdXNoKHJvdXRlXy5jb21wb25lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gISEoY29tcG9uZW50cz8ubGVuZ3RoID09PSAxKTtcbiAgICB9KSxcbiAgICBtYXAoKHJvdXRlKSA9PiAhIXJvdXRlKSxcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdElzUm9vdFBhZ2UoKSB7XG4gIGNvbnN0IGlzUm9vdFBhZ2UkID0gaW5qZWN0SXNSb290UGFnZSQoKTtcbiAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICByZXR1cm4gY29tcHV0ZWRBc3luYygoKSA9PiBpc1Jvb3RQYWdlJCwge2luamVjdG9yfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROYXZTdGFydEFjdGlvbnMoXG4gIGlzUm9vdFBhZ2U6IFNpZ25hbDxib29sZWFuPiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSksXG4pOiBTaWduYWw8QWN0aW9uW10+IHtcbiAgY29uc3QgY29udGV4dCA9IGluamVjdFVpQ29udGV4dCgpO1xuICBjb25zdCBuYXZpZ2F0aW9uSGlzdG9yeSA9IGluamVjdChOYXZpZ2F0aW9uSGlzdG9yeVNlcnZpY2UpO1xuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHN3aXRjaChjb250ZXh0KCkuYnJlYWtwb2ludCkge1xuICAgICAgY2FzZSAneExhcmdlJzpcbiAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICBjYXNlICdzbWFsbCc6IHtcbiAgICAgICAgaWYgKGlzUm9vdFBhZ2UoKSkge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAobmF2aWdhdGlvbkhpc3RvcnkuaXNJbml0aWFsKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5CQUNLLCBuYW1lOiAnQkFDSycsIGljb246ICdhcnJvd19iYWNrJyB9XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNhc2UgJ3hTbWFsbCc6IHtcbiAgICAgICAgaWYgKGlzUm9vdFBhZ2UoKSkge1xuICAgICAgICAgIHJldHVybiBbeyBpZDogTmF2QWN0aW9uSWQuVE9HR0xFX1NJREVfTkFWLCBuYW1lOiAn44Oh44OL44Ol44O8JywgaWNvbjogJ21lbnUnIH1dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChuYXZpZ2F0aW9uSGlzdG9yeS5pc0luaXRpYWwoKSkge1xuICAgICAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5UT0dHTEVfU0lERV9OQVYsIG5hbWU6ICfjg6Hjg4vjg6Xjg7wnLCBpY29uOiAnbWVudScgfV1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5CQUNLLCBuYW1lOiAnQkFDSycsIGljb246ICdhcnJvd19iYWNrJyB9XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgaWYgKGlzUm9vdFBhZ2UoKSkgcmV0dXJuIFtdO1xuICAgICAgICByZXR1cm4gW3sgaWQ6IE5hdkFjdGlvbklkLkJBQ0ssIG5hbWU6ICdCQUNLJywgaWNvbjogJ2Fycm93X2JhY2snIH1dO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RVaUNvbnRleHQoKTogU2lnbmFsPFVJQ29udGV4dD4ge1xuICByZXR1cm4gaW5qZWN0KFVpU2VydmljZSkudWlDb250ZXh0O1xufVxuXG5leHBvcnQgdHlwZSBVaUNvbmZpZ1JlZHVjZXI8VCBleHRlbmRzIG9iamVjdCB8IHN0cmluZywgQyBleHRlbmRzIFVJQ29udGV4dCA9IGFueT4gPSAoY29uZmlnOiBULCBjb250ZXh0OiBDKSA9PiBUO1xuZXhwb3J0IGNvbnN0IFVJX0NPTkZJR19SRURVQ0VSID0gbmV3IEluamVjdGlvblRva2VuPFVpQ29uZmlnUmVkdWNlcjxhbnk+PignVUlfQ09ORklHX1JFRFVDRVInKTtcbmV4cG9ydCB0eXBlIFJlZHVjZXJGYWN0b3J5PFQgZXh0ZW5kcyBvYmplY3QgfCBzdHJpbmcsIEsgZXh0ZW5kcyBUID0gYW55PiBcbiAgPSAoaW5qZWN0b3I6IEluamVjdG9yLCBob3N0SW5qZWN0b3I6IEluamVjdG9yKSA9PiAoY29uZmlnOiBLLCBjb250ZXh0OiBVSUNvbnRleHQpID0+IFQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxsPFQ+KHNpZ25hbE9yVmFsdWU6IFNpZ25hbDxUPiB8IFQpOiBUIHtcbiAgcmV0dXJuIGlzU2lnbmFsKHNpZ25hbE9yVmFsdWUpID8gc2lnbmFsT3JWYWx1ZSgpIDogc2lnbmFsT3JWYWx1ZTtcbn1cblxuZnVuY3Rpb24gc2V0UmVkdWNlclBhdGgocmVkdWNlcjogRnVuY3Rpb24sIHBhdGg6IHN0cmluZ1tdKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZWR1Y2VyLCAncGF0aCcsIHsgdmFsdWU6IHBhdGgsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgcmV0dXJuIHJlZHVjZXI7XG59XG5cbmZ1bmN0aW9uIGdldFJlZHVjZXJQYXRoKHJlZHVjZXI6IEZ1bmN0aW9uKSB7XG4gIHJldHVybiByZWR1Y2VyWydwYXRoJ107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVWlDb25maWc8VCBleHRlbmRzIG9iamVjdCB8IHN0cmluZz4oXG4gIHJlZHVjZXJGYWN0b3J5OiBSZWR1Y2VyRmFjdG9yeTxUPixcbiAgcGF0aDogc3RyaW5nW10gPSBbXSxcbiAgbmFtZSA9ICduYW1lJyxcbik6IFByb3ZpZGVyIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBVSV9DT05GSUdfUkVEVUNFUixcbiAgICB1c2VGYWN0b3J5OiAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICBmdW5jdGlvbiBfcmVkdWNlckZhY3RvcnkoaG9zdEluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBjb25zdCByZWR1Y2VyID0gcmVkdWNlckZhY3RvcnkoaW5qZWN0b3IsIGhvc3RJbmplY3Rvcik7IFxuICAgICAgICByZXR1cm4gKGNvbmZpZzogVCwgY29udGV4dDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSByZXR1cm4gIHJlZHVjZXIoY29uZmlnLCBjb250ZXh0KTtcbiAgICAgICAgICByZXR1cm4gc2V0KGNvbmZpZyBhcyBvYmplY3QsIHBhdGgsIHJlZHVjZXIoZ2V0PGFueSwgYW55Pihjb25maWcsIHBhdGgpLCBjb250ZXh0KSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX3JlZHVjZXJGYWN0b3J5LCAnbmFtZScsIHsgdmFsdWU6IG5hbWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICAgIHNldFJlZHVjZXJQYXRoKF9yZWR1Y2VyRmFjdG9yeSwgcGF0aCk7XG4gICAgICByZXR1cm4gX3JlZHVjZXJGYWN0b3J5O1xuICAgIH0sXG4gICAgZGVwczogW0luamVjdG9yXSxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFJvb3RDb25maWc8VCBleHRlbmRzIG9iamVjdD4ocGF0aHM6IHN0cmluZ1tdID0gW10pOiBTaWduYWw8VD4ge1xuICBjb25zdCB1aUNvbnRleHQgPSBpbmplY3RVaUNvbnRleHQoKTtcbiAgY29uc3QgZmFjdG9yaWVzID0gaW5qZWN0UmVkdWNlckZhY3RvaXJpZXMocGF0aHMpO1xuICBjb25zdCBob3N0SW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBjb25zdCByZWR1Y2VycyA9IGZhY3Rvcmllcy5tYXAoZmFjdG9yeSA9PiB7XG4gICAgcmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dChob3N0SW5qZWN0b3IsICgpID0+IGZhY3RvcnkoaG9zdEluamVjdG9yKSk7XG4gIH0pO1xuICBpZiAoIXJlZHVjZXJzKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCByb290Q29uZmlnID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1aUNvbnRleHQoKTtcbiAgICByZXR1cm4gcmVkdWNlcnMucmVkdWNlKChhY2MsIHJlZHVjZXIpID0+IHtcbiAgICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQoaG9zdEluamVjdG9yLCAoKSA9PiByZWR1Y2VyKGFjYywgY29udGV4dCkpO1xuICAgIH0sIHt9IGFzIFQpO1xuICB9KTtcbiAgcmV0dXJuIHJvb3RDb25maWc7XG59XG5cbi8vIFRPRE8oQG5vbnRhbmdlbnQpOiBpdGVtc+OBquOBqeOBruWPluW+l+OBjOWFqOOBpuOBruOCs+ODs+ODneODvOODjeODs+ODiOOBp+ihjOOCj+OCjOOCi+OBruOBp+ioiOeul+OCkuacgOmBqeWMluOBmeOCi+OAglxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFVpQ29uZmlnPFQgZXh0ZW5kcyBvYmplY3Q+KHBhdGhzOiBzdHJpbmdbXSA9IFtdKTogU2lnbmFsPFQ+IHtcbiAgY29uc3Qgcm9vdENvbmZpZyA9IGluamVjdFJvb3RDb25maWc8VD4ocGF0aHMpO1xuICByZXR1cm4gc2NvcGVkKHJvb3RDb25maWcsIHBhdGhzIGFzIGFueSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlQ29uZmlnPFQgZXh0ZW5kcyBvYmplY3Q+KGRlZmF1bHRVc2VGYWN0b3J5OiBSZWR1Y2VyRmFjdG9yeTxUPiwgcGF0aDogc3RyaW5nW10pIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBmdW5jdGlvbiBwcm92aWRlQ29uZmlnKHVzZUZhY3Rvcnk/OiBSZWR1Y2VyRmFjdG9yeTxUPiwgbGFiZWwgPSB1c2VGYWN0b3J5ID8gJ2N1c3RvbScgOiAnZGVmYXVsdCcpIHtcbiAgICAgIHVzZUZhY3RvcnkgPz89IGRlZmF1bHRVc2VGYWN0b3J5O1xuICAgICAgcmV0dXJuIHByb3ZpZGVVaUNvbmZpZzxUPih1c2VGYWN0b3J5LCBwYXRoLCBgWyR7cGF0aC5qb2luKCcuJyl9XSAke2xhYmVsfWApO1xuICAgIH0sXG4gICAgaW5qZWN0OiBmdW5jdGlvbiBpbmplY3RDb25maWcoKSB7XG4gICAgICByZXR1cm4gaW5qZWN0VWlDb25maWc8VD4ocGF0aCk7XG4gICAgfSxcbiAgfVxufVxuXG5mdW5jdGlvbiBpbmplY3RSZWR1Y2VycygpOiAoKGhvc3RJbmplY3RvcjogSW5qZWN0b3IpID0+IFVpQ29uZmlnUmVkdWNlcjxhbnk+KVtdIHtcbiAgcmV0dXJuIGluamVjdERlZXBNdWx0aTwoaG9zdEluamVjdG9yOiBJbmplY3RvcikgPT4gVWlDb25maWdSZWR1Y2VyPGFueT4+KFVJX0NPTkZJR19SRURVQ0VSKTtcbn1cblxuZnVuY3Rpb24gaW5qZWN0UmVkdWNlckZhY3RvaXJpZXMocGF0aDogc3RyaW5nW10gPSBbXSk6ICgoaG9zdEluamVjdG9yOiBJbmplY3RvcikgPT4gVWlDb25maWdSZWR1Y2VyPGFueT4pW10ge1xuICByZXR1cm4gaW5qZWN0UmVkdWNlcnMoKS5maWx0ZXIoZmFjdG9yeSA9PiB7XG4gICAgcmV0dXJuIGdldFJlZHVjZXJQYXRoKGZhY3RvcnkpLmV2ZXJ5KChwLCBpKSA9PiBwYXRoW2ldID09PSBwKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3REZWVwTXVsdGk8VD4odG9rZW46IFByb3ZpZGVyVG9rZW48VD4sIGluamVjdG9yOiBJbmplY3RvciA9IGluamVjdChJbmplY3RvcikpOiBUW10ge1xuICBjb25zdCB2YWx1ZU9yQXJyYXkgPSBpbmplY3Rvci5nZXQodG9rZW4gYXMgUHJvdmlkZXJUb2tlbjxUW10+LCBbXSwge29wdGlvbmFsOiB0cnVlfSk7XG4gIGNvbnN0IGl0ZW1zID0gQXJyYXkuaXNBcnJheSh2YWx1ZU9yQXJyYXkpID8gdmFsdWVPckFycmF5IDogW3ZhbHVlT3JBcnJheV07XG4gIGNvbnN0IHBhcmVudEluamVjdG9yID0gaW5qZWN0b3IuZ2V0KEluamVjdG9yLCBudWxsLCB7c2tpcFNlbGY6IHRydWV9KTtcbiAgaWYgKCFwYXJlbnRJbmplY3RvcikgcmV0dXJuIGl0ZW1zO1xuICByZXR1cm4gWy4uLm5ldyBTZXQoWy4uLmluamVjdERlZXBNdWx0aSh0b2tlbiwgcGFyZW50SW5qZWN0b3IpLCAuLi5pdGVtc10pXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlYnVnSW5qZWN0b3IoaW5qZWN0b3I6IEluamVjdG9yIHwgbnVsbCA9IGluamVjdChJbmplY3RvcikpIHtcbiAgICAgIGNvbnN0IGdldFBhcmVudCA9IChpbmplY3RvcjogSW5qZWN0b3IsIG4gPSAwKTogSW5qZWN0b3IgfCBudWxsID0+IHtcbiAgICAgIHdoaWxlIChpbmplY3RvciAmJiBuLS0gPiAwKSB7XG4gICAgICAgIGluamVjdG9yID0gaW5qZWN0b3IuZ2V0KEluamVjdG9yLCBudWxsLCB7IHNraXBTZWxmOiB0cnVlIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGluamVjdG9yO1xuICAgIH1cblxuICAgIGNvbnN0IGdldEluamVjdG9yTmFtZSA9IChpbmplY3RvcjogSW5qZWN0b3IpOiBzdHJpbmcgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IGluamVjdG9yLmdldChFbGVtZW50UmVmLCBudWxsKT8ubmF0aXZlRWxlbWVudD8udGFnTmFtZT8udG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChuYW1lKSByZXR1cm4gYDwke25hbWV9PmA7XG4gICAgICByZXR1cm4gYCR7aW5qZWN0b3JbJ3NvdXJjZSddfWA7XG4gICAgfVxuXG4gICAgY29uc3QgaXNOb2RlSW5qZWN0b3IgPSAoaW5qZWN0b3I6IEluamVjdG9yKTogYm9vbGVhbiA9PiB7XG4gICAgICByZXR1cm4gaW5qZWN0b3IuZ2V0KEVsZW1lbnRSZWYsIG51bGwpICE9PSBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG1hcFRvTmFtZXMgPSAocmVkdWNlcnM6IGFueSkgPT4gKHJlZHVjZXJzID8/IFtdKS5tYXAocmVkdWNlciA9PiByZWR1Y2VyLm5hbWUpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7XG4gICAgICBpbmplY3RvciA9IGdldFBhcmVudChpbmplY3RvciwgaSk7XG4gICAgICBpZiAoaW5qZWN0b3IgPT09IEluamVjdG9yLk5VTEwpIGJyZWFrO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,65 +1,14 @@
1
- import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
2
1
  import { Injectable, PLATFORM_ID, computed, inject } from '@angular/core';
3
2
  import { toSignal } from '@angular/core/rxjs-interop';
4
3
  import { NavigationStart } from '@angular/router';
5
- import { combineLatest, filter, map, startWith } from 'rxjs';
4
+ import { filter, map, startWith } from 'rxjs';
6
5
  import { isPlatformBrowser } from '@angular/common';
7
6
  import { RouterService } from '@ng-atomic/common/services/router';
7
+ import { BreakpointService } from '@ng-atomic/common/services/breakpoint';
8
8
  import * as i0 from "@angular/core";
9
- export class BreakPointService {
10
- constructor() {
11
- this.breakpointObserver = inject(BreakpointObserver);
12
- this.breakpointMap$ = combineLatest({
13
- xSmall: this.breakpointObserver.observe(Breakpoints.XSmall),
14
- small: this.breakpointObserver.observe(Breakpoints.Small),
15
- medium: this.breakpointObserver.observe(Breakpoints.Medium),
16
- large: this.breakpointObserver.observe(Breakpoints.Large),
17
- xLarge: this.breakpointObserver.observe(Breakpoints.XLarge),
18
- handset: this.breakpointObserver.observe(Breakpoints.Handset),
19
- tablet: this.breakpointObserver.observe(Breakpoints.Tablet),
20
- web: this.breakpointObserver.observe(Breakpoints.Web),
21
- });
22
- this.breakpointMap = toSignal(this.breakpointMap$);
23
- this.breakpoint = computed(() => {
24
- const map = this.breakpointMap();
25
- const test = {
26
- xSmall: map.xSmall.matches ?? this.breakpointObserver.isMatched(Breakpoints.XSmall),
27
- small: map.small.matches ?? this.breakpointObserver.isMatched(Breakpoints.Small),
28
- medium: map.medium.matches ?? this.breakpointObserver.isMatched(Breakpoints.Medium),
29
- large: map.large.matches ?? this.breakpointObserver.isMatched(Breakpoints.Large),
30
- xLarge: map.xLarge.matches ?? this.breakpointObserver.isMatched(Breakpoints.XLarge),
31
- handset: map.handset.matches ?? this.breakpointObserver.isMatched(Breakpoints.Handset),
32
- tablet: map.tablet.matches ?? this.breakpointObserver.isMatched(Breakpoints.Tablet),
33
- web: map.web.matches ?? this.breakpointObserver.isMatched(Breakpoints.Web),
34
- };
35
- if (test.xSmall)
36
- return 'xSmall';
37
- if (test.small)
38
- return 'small';
39
- if (test.medium)
40
- return 'medium';
41
- if (test.large)
42
- return 'large';
43
- if (test.xLarge)
44
- return 'xLarge';
45
- if (test.handset)
46
- return 'handset';
47
- if (test.tablet)
48
- return 'tablet';
49
- if (test.web)
50
- return 'web';
51
- });
52
- }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BreakPointService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
54
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BreakPointService, providedIn: 'root' }); }
55
- }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BreakPointService, decorators: [{
57
- type: Injectable,
58
- args: [{ providedIn: 'root' }]
59
- }] });
60
9
  export class UiService {
61
10
  constructor() {
62
- this.breakpoint = inject(BreakPointService);
11
+ this.breakpoint = inject(BreakpointService);
63
12
  this.router = inject(RouterService);
64
13
  this.platformId = inject(PLATFORM_ID);
65
14
  this.paths$ = this.router.events.pipe(filter(event => event instanceof NavigationStart), map((event) => event.url), startWith(isPlatformBrowser(this.platformId) ? window?.location?.pathname : ''), map(url => this.router.parseUrl(url)), map(urlTree => urlTree.root.children?.primary?.segments ?? []));
@@ -78,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
78
27
  type: Injectable,
79
28
  args: [{ providedIn: 'root' }]
80
29
  }] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvdWkvdWkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQU8sTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQVVsRSxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRXFCLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzFELG1CQUFjLEdBQUcsYUFBYSxDQUFDO1lBQ3RDLE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDM0QsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN6RCxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQzNELEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcs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QUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFO1lBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFO1NBQ3BCLENBQUMsQ0FBQyxDQUFDO0tBQ0w7OEdBeEJZLFNBQVM7a0hBQVQsU0FBUyxjQURJLE1BQU07OzJGQUNuQixTQUFTO2tCQURyQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IEluamVjdGFibGUsIFBMQVRGT1JNX0lELCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyU2VydmljZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3JvdXRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVUlDb250ZXh0IHtcbiAgYnJlYWtwb2ludDogQnJlYWtwb2ludDtcbiAgcGF0aHM6IGFueVtdO1xufVxuXG5leHBvcnQgdHlwZSBCcmVha3BvaW50ID0gJ3hTbWFsbCcgfCAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ3hMYXJnZScgfCAnaGFuZHNldCcgfCAndGFibGV0JyB8ICd3ZWInO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEJyZWFrUG9pbnRTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGJyZWFrcG9pbnRPYnNlcnZlciA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpO1xuICByZWFkb25seSBicmVha3BvaW50TWFwJCA9IGNvbWJpbmVMYXRlc3Qoe1xuICAgIHhTbWFsbDogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShCcmVha3BvaW50cy5YU21hbGwpLFxuICAgIHNtYWxsOiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKEJyZWFrcG9pbnRzLlNtYWxsKSxcbiAgICBtZWRpdW06IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoQnJlYWtwb2ludHMuTWVkaXVtKSxcbiAgICBsYXJnZTogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShCcmVha3BvaW50cy5MYXJnZSksXG4gICAgeExhcmdlOiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKEJyZWFrcG9pbnRzLlhMYXJnZSksXG4gICAgaGFuZHNldDogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShCcmVha3BvaW50cy5IYW5kc2V0KSxcbiAgICB0YWJsZXQ6IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoQnJlYWtwb2ludHMuVGFibGV0KSxcbiAgICB3ZWI6IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoQnJlYWtwb2ludHMuV2ViKSxcbiAgfSk7XG4gIHJlYWRvbmx5IGJyZWFrcG9pbnRNYXAgPSB0b1NpZ25hbCh0aGlzLmJyZWFrcG9pbnRNYXAkKTtcbiAgcmVhZG9ubHkgYnJlYWtwb2ludCA9IGNvbXB1dGVkPEJyZWFrcG9pbnQ+KCgpID0+IHtcbiAgICBjb25zdCBtYXAgPSB0aGlzLmJyZWFrcG9pbnRNYXAoKTtcbiAgICBjb25zdCB0ZXN0ID0ge1xuICAgICAgeFNtYWxsOiBtYXAueFNtYWxsLm1hdGNoZXMgPz8gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLlhTbWFsbCksXG4gICAgICBzbWFsbDogbWFwLnNtYWxsLm1hdGNoZXMgPz8gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLlNtYWxsKSxcbiAgICAgIG1lZGl1bTogbWFwLm1lZGl1bS5tYXRjaGVzID8/IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChCcmVha3BvaW50cy5NZWRpdW0pLFxuICAgICAgbGFyZ2U6IG1hcC5sYXJnZS5tYXRjaGVzID8/IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChCcmVha3BvaW50cy5MYXJnZSksXG4gICAgICB4TGFyZ2U6IG1hcC54TGFyZ2UubWF0Y2hlcyA/PyB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuWExhcmdlKSxcbiAgICAgIGhhbmRzZXQ6IG1hcC5oYW5kc2V0Lm1hdGNoZXMgPz8gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLkhhbmRzZXQpLFxuICAgICAgdGFibGV0OiBtYXAudGFibGV0Lm1hdGNoZXMgPz8gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLlRhYmxldCksXG4gICAgICB3ZWI6IG1hcC53ZWIubWF0Y2hlcyA/PyB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuV2ViKSxcbiAgICB9O1xuXG4gICAgaWYgKHRlc3QueFNtYWxsKSByZXR1cm4gJ3hTbWFsbCc7XG4gICAgaWYgKHRlc3Quc21hbGwpIHJldHVybiAnc21hbGwnO1xuICAgIGlmICh0ZXN0Lm1lZGl1bSkgcmV0dXJuICdtZWRpdW0nO1xuICAgIGlmICh0ZXN0LmxhcmdlKSByZXR1cm4gJ2xhcmdlJztcbiAgICBpZiAodGVzdC54TGFyZ2UpIHJldHVybiAneExhcmdlJztcbiAgICBpZiAodGVzdC5oYW5kc2V0KSByZXR1cm4gJ2hhbmRzZXQnO1xuICAgIGlmICh0ZXN0LnRhYmxldCkgcmV0dXJuICd0YWJsZXQnO1xuICAgIGlmICh0ZXN0LndlYikgcmV0dXJuICd3ZWInO1xuICB9KTtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBVaVNlcnZpY2Uge1xuICByZWFkb25seSBicmVha3BvaW50ID0gaW5qZWN0KEJyZWFrUG9pbnRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlclNlcnZpY2UpO1xuICByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICByZWFkb25seSBwYXRocyQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpLFxuICAgIG1hcCgoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCkgPT4gZXZlbnQudXJsKSxcbiAgICBzdGFydFdpdGgoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSA/IHdpbmRvdz8ubG9jYXRpb24/LnBhdGhuYW1lIDogJycpLFxuICAgIG1hcCh1cmwgPT4gdGhpcy5yb3V0ZXIucGFyc2VVcmwodXJsKSksXG4gICAgbWFwKHVybFRyZWUgPT4gdXJsVHJlZS5yb290LmNoaWxkcmVuPy5wcmltYXJ5Py5zZWdtZW50cyA/PyBbXSksXG4gICk7XG4gIHJlYWRvbmx5IHBhdGhzID0gdG9TaWduYWwodGhpcy5wYXRocyQpO1xuXG4gIHJlYWRvbmx5IHNuYXBzaG90JCA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgIGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCksXG4gICAgbWFwKCgpID0+IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnJvb3QpLFxuICApO1xuICByZWFkb25seSBzbmFwc2hvdCA9IHRvU2lnbmFsKHRoaXMuc25hcHNob3QkKTtcblxuICByZWFkb25seSB1aUNvbnRleHQgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgIGJyZWFrcG9pbnQ6IHRoaXMuYnJlYWtwb2ludC5icmVha3BvaW50KCksXG4gICAgcGF0aHM6IHRoaXMucGF0aHMoKSxcbiAgfSkpO1xufVxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvdWkvdWkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFRdEYsTUFBTSxPQUFPLFNBQVM7SUFEdEI7UUFFVyxlQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpDLFdBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3ZDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxlQUFlLENBQUMsRUFDakQsR0FBRyxDQUFDLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUMxQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQy9FLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDLENBQy9ELENBQUM7UUFDTyxVQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5QixjQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUMxQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksZUFBZSxDQUFDLEVBQ2pELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQ2pELENBQUM7UUFDTyxhQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVwQyxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFO1lBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFO1NBQ3BCLENBQUMsQ0FBQyxDQUFDO0tBQ0w7OEdBeEJZLFNBQVM7a0hBQVQsU0FBUyxjQURJLE1BQU07OzJGQUNuQixTQUFTO2tCQURyQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlclNlcnZpY2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9yb3V0ZXInO1xuaW1wb3J0IHsgQnJlYWtwb2ludCwgQnJlYWtwb2ludFNlcnZpY2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9icmVha3BvaW50JztcblxuZXhwb3J0IGludGVyZmFjZSBVSUNvbnRleHQge1xuICBicmVha3BvaW50OiBCcmVha3BvaW50O1xuICBwYXRoczogYW55W107XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVWlTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgYnJlYWtwb2ludCA9IGluamVjdChCcmVha3BvaW50U2VydmljZSk7XG4gIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgcmVhZG9ubHkgcGF0aHMkID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSxcbiAgICBtYXAoKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpID0+IGV2ZW50LnVybCksXG4gICAgc3RhcnRXaXRoKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgPyB3aW5kb3c/LmxvY2F0aW9uPy5wYXRobmFtZSA6ICcnKSxcbiAgICBtYXAodXJsID0+IHRoaXMucm91dGVyLnBhcnNlVXJsKHVybCkpLFxuICAgIG1hcCh1cmxUcmVlID0+IHVybFRyZWUucm9vdC5jaGlsZHJlbj8ucHJpbWFyeT8uc2VnbWVudHMgPz8gW10pLFxuICApO1xuICByZWFkb25seSBwYXRocyA9IHRvU2lnbmFsKHRoaXMucGF0aHMkKTtcblxuICByZWFkb25seSBzbmFwc2hvdCQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpLFxuICAgIG1hcCgoKSA9PiB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC5yb290KSxcbiAgKTtcbiAgcmVhZG9ubHkgc25hcHNob3QgPSB0b1NpZ25hbCh0aGlzLnNuYXBzaG90JCk7XG5cbiAgcmVhZG9ubHkgdWlDb250ZXh0ID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICBicmVha3BvaW50OiB0aGlzLmJyZWFrcG9pbnQuYnJlYWtwb2ludCgpLFxuICAgIHBhdGhzOiB0aGlzLnBhdGhzKCksXG4gIH0pKTtcbn1cbiJdfQ==