@ecodev/natural 57.0.7 → 57.0.8

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 (79) hide show
  1. package/esm2022/lib/classes/abstract-controller.mjs +3 -3
  2. package/esm2022/lib/classes/abstract-detail.mjs +3 -3
  3. package/esm2022/lib/classes/abstract-editable-list.mjs +3 -3
  4. package/esm2022/lib/classes/abstract-list.mjs +3 -3
  5. package/esm2022/lib/classes/abstract-navigable-list.mjs +3 -3
  6. package/esm2022/lib/classes/query-variable-manager.mjs +3 -3
  7. package/esm2022/lib/classes/utility.mjs +4 -4
  8. package/esm2022/lib/directives/http-prefix.directive.mjs +3 -3
  9. package/esm2022/lib/modules/alert/alert.service.mjs +3 -3
  10. package/esm2022/lib/modules/alert/confirm.component.mjs +3 -3
  11. package/esm2022/lib/modules/avatar/component/avatar.component.mjs +3 -3
  12. package/esm2022/lib/modules/avatar/service/avatar.service.mjs +3 -3
  13. package/esm2022/lib/modules/columns-picker/columns-picker.component.mjs +3 -3
  14. package/esm2022/lib/modules/common/directives/linkable-tab.directive.mjs +3 -3
  15. package/esm2022/lib/modules/common/directives/src-density.directive.mjs +3 -3
  16. package/esm2022/lib/modules/common/pipes/capitalize.pipe.mjs +3 -3
  17. package/esm2022/lib/modules/common/pipes/ellipsis.pipe.mjs +3 -3
  18. package/esm2022/lib/modules/common/pipes/enum.pipe.mjs +3 -3
  19. package/esm2022/lib/modules/common/pipes/swiss-date.pipe.mjs +3 -3
  20. package/esm2022/lib/modules/common/pipes/time-ago.pipe.mjs +3 -3
  21. package/esm2022/lib/modules/common/services/memory-storage.mjs +3 -3
  22. package/esm2022/lib/modules/common/services/seo.service.mjs +3 -3
  23. package/esm2022/lib/modules/detail-header/detail-header.component.mjs +3 -3
  24. package/esm2022/lib/modules/dialog-trigger/dialog-trigger.component.mjs +3 -3
  25. package/esm2022/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +3 -3
  26. package/esm2022/lib/modules/dropdown-components/type-boolean/type-boolean.component.mjs +3 -3
  27. package/esm2022/lib/modules/dropdown-components/type-date/type-date.component.mjs +3 -3
  28. package/esm2022/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +3 -3
  29. package/esm2022/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +3 -3
  30. package/esm2022/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +3 -3
  31. package/esm2022/lib/modules/dropdown-components/type-number/type-number.component.mjs +3 -3
  32. package/esm2022/lib/modules/dropdown-components/type-options/type-options.component.mjs +3 -3
  33. package/esm2022/lib/modules/dropdown-components/type-select/type-select.component.mjs +3 -3
  34. package/esm2022/lib/modules/dropdown-components/type-text/type-text.component.mjs +3 -3
  35. package/esm2022/lib/modules/file/abstract-file.mjs +3 -3
  36. package/esm2022/lib/modules/file/component/file.component.mjs +3 -3
  37. package/esm2022/lib/modules/file/file-drop.directive.mjs +3 -3
  38. package/esm2022/lib/modules/file/file-select.directive.mjs +3 -3
  39. package/esm2022/lib/modules/file/file.service.mjs +3 -3
  40. package/esm2022/lib/modules/fixed-button/fixed-button.component.mjs +3 -3
  41. package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +3 -3
  42. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +3 -3
  43. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +3 -3
  44. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +3 -3
  45. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +3 -3
  46. package/esm2022/lib/modules/icon/icon.directive.mjs +3 -3
  47. package/esm2022/lib/modules/logger/error-handler.mjs +3 -3
  48. package/esm2022/lib/modules/matomo/matomo.service.mjs +3 -3
  49. package/esm2022/lib/modules/panels/abstract-panel.mjs +3 -3
  50. package/esm2022/lib/modules/panels/panels.component.mjs +3 -3
  51. package/esm2022/lib/modules/panels/panels.service.mjs +26 -26
  52. package/esm2022/lib/modules/relations/relations.component.mjs +4 -4
  53. package/esm2022/lib/modules/search/dropdown-container/dropdown-container.component.mjs +3 -3
  54. package/esm2022/lib/modules/search/dropdown-container/dropdown.service.mjs +3 -3
  55. package/esm2022/lib/modules/search/facet-selector/facet-selector.component.mjs +3 -3
  56. package/esm2022/lib/modules/search/group/group.component.mjs +3 -3
  57. package/esm2022/lib/modules/search/input/input.component.mjs +3 -3
  58. package/esm2022/lib/modules/search/search/search.component.mjs +3 -3
  59. package/esm2022/lib/modules/select/abstract-select.component.mjs +3 -3
  60. package/esm2022/lib/modules/select/select/select.component.mjs +3 -3
  61. package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +3 -3
  62. package/esm2022/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +3 -3
  63. package/esm2022/lib/modules/sidenav/sidenav/sidenav.component.mjs +3 -3
  64. package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +3 -3
  65. package/esm2022/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +3 -3
  66. package/esm2022/lib/modules/sidenav/sidenav-stack.service.mjs +3 -3
  67. package/esm2022/lib/modules/sidenav/sidenav.service.mjs +21 -17
  68. package/esm2022/lib/modules/stamp/stamp.component.mjs +3 -3
  69. package/esm2022/lib/modules/table-button/table-button.component.mjs +3 -3
  70. package/esm2022/lib/services/debounce.service.mjs +3 -3
  71. package/esm2022/lib/services/enum.service.mjs +3 -3
  72. package/esm2022/lib/services/link-mutation.service.mjs +3 -3
  73. package/esm2022/lib/services/persistence.service.mjs +3 -3
  74. package/esm2022/lib/services/swiss-parsing-date-adapter.service.mjs +3 -3
  75. package/fesm2022/ecodev-natural.mjs +254 -254
  76. package/fesm2022/ecodev-natural.mjs.map +1 -1
  77. package/lib/modules/panels/panels.service.d.ts +4 -4
  78. package/lib/modules/sidenav/sidenav.service.d.ts +4 -3
  79. package/package.json +11 -11
@@ -42,10 +42,10 @@ export class NaturalSidenavStackService {
42
42
  next() {
43
43
  this.currentSidenav.next(this.sidenavs[this.sidenavs.length - 1]);
44
44
  }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavStackService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
46
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavStackService, providedIn: 'root' }); }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalSidenavStackService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
46
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalSidenavStackService, providedIn: 'root' }); }
47
47
  }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavStackService, decorators: [{
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalSidenavStackService, decorators: [{
49
49
  type: Injectable,
50
50
  args: [{ providedIn: 'root' }]
51
51
  }] });
@@ -3,8 +3,9 @@ import { NavigationEnd } from '@angular/router';
3
3
  import { filter, takeUntil } from 'rxjs/operators';
4
4
  import { NaturalAbstractController } from '../../classes/abstract-controller';
5
5
  import { SESSION_STORAGE } from '../common/services/memory-storage';
6
+ import { Breakpoints } from '@angular/cdk/layout';
6
7
  import * as i0 from "@angular/core";
7
- import * as i1 from "@ngbracket/ngx-layout";
8
+ import * as i1 from "@angular/cdk/layout";
8
9
  import * as i2 from "@angular/router";
9
10
  import * as i3 from "./sidenav-stack.service";
10
11
  /**
@@ -22,9 +23,10 @@ function assert(value) {
22
23
  * Maybe the better is to wait next release
23
24
  */
24
25
  export class NaturalSidenavService extends NaturalAbstractController {
25
- constructor(mediaObserver, router, sessionStorage, naturalSidenavStackService) {
26
+ #isMobileView;
27
+ constructor(breakpointObserver, router, sessionStorage, naturalSidenavStackService) {
26
28
  super();
27
- this.mediaObserver = mediaObserver;
29
+ this.breakpointObserver = breakpointObserver;
28
30
  this.router = router;
29
31
  this.sessionStorage = sessionStorage;
30
32
  this.naturalSidenavStackService = naturalSidenavStackService;
@@ -61,6 +63,7 @@ export class NaturalSidenavService extends NaturalAbstractController {
61
63
  this.openedStorageKey = 'menu-opened';
62
64
  this.minimizedStorageKeyWithName = null;
63
65
  this.openedStorageKeyWithName = null;
66
+ this.#isMobileView = false;
64
67
  }
65
68
  get activeMode() {
66
69
  return this.mode;
@@ -86,11 +89,12 @@ export class NaturalSidenavService extends NaturalAbstractController {
86
89
  this.opened = this.getMenuOpenedStatus();
87
90
  this.tmpOpened = this.opened;
88
91
  let oldIsBig = null;
89
- this.mediaObserver
90
- .asObservable()
92
+ this.breakpointObserver
93
+ .observe([Breakpoints.XSmall, Breakpoints.Small])
91
94
  .pipe(takeUntil(this.ngUnsubscribe))
92
- .subscribe(() => {
93
- const isBig = !this.isMobileView();
95
+ .subscribe(r => {
96
+ this.#isMobileView = r.matches;
97
+ const isBig = !this.#isMobileView;
94
98
  this.mode = isBig ? this.modes[0] : this.modes[1];
95
99
  if (oldIsBig === null || isBig !== oldIsBig) {
96
100
  oldIsBig = isBig;
@@ -115,13 +119,13 @@ export class NaturalSidenavService extends NaturalAbstractController {
115
119
  }
116
120
  }
117
121
  isMobileView() {
118
- return !this.mediaObserver.isActive('gt-sm');
122
+ return this.#isMobileView;
119
123
  }
120
124
  /**
121
125
  * Close nav on mobile view after a click
122
126
  */
123
127
  navItemClicked() {
124
- if (this.isMobileView()) {
128
+ if (this.#isMobileView) {
125
129
  this.close();
126
130
  }
127
131
  }
@@ -158,7 +162,7 @@ export class NaturalSidenavService extends NaturalAbstractController {
158
162
  assert(this.openedStorageKeyWithName);
159
163
  const value = this.sessionStorage.getItem(this.openedStorageKeyWithName);
160
164
  if (value === null) {
161
- return !this.isMobileView();
165
+ return !this.#isMobileView;
162
166
  }
163
167
  else {
164
168
  return value === 'true';
@@ -179,22 +183,22 @@ export class NaturalSidenavService extends NaturalAbstractController {
179
183
  }
180
184
  setOpened(value) {
181
185
  this.opened = value;
182
- if (this.opened && this.isMobileView()) {
186
+ if (this.opened && this.#isMobileView) {
183
187
  this.minimized = false;
184
188
  }
185
- else if (!this.isMobileView()) {
189
+ else if (!this.#isMobileView) {
186
190
  assert(this.openedStorageKeyWithName);
187
191
  this.sessionStorage.setItem(this.openedStorageKeyWithName, this.opened ? 'true' : 'false');
188
192
  }
189
193
  }
190
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavService, deps: [{ token: i1.MediaObserver }, { token: i2.Router }, { token: SESSION_STORAGE }, { token: i3.NaturalSidenavStackService }], target: i0.ɵɵFactoryTarget.Injectable }); }
191
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavService, providedIn: 'root' }); }
194
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalSidenavService, deps: [{ token: i1.BreakpointObserver }, { token: i2.Router }, { token: SESSION_STORAGE }, { token: i3.NaturalSidenavStackService }], target: i0.ɵɵFactoryTarget.Injectable }); }
195
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalSidenavService, providedIn: 'root' }); }
192
196
  }
193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSidenavService, decorators: [{
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalSidenavService, decorators: [{
194
198
  type: Injectable,
195
199
  args: [{ providedIn: 'root' }]
196
- }], ctorParameters: () => [{ type: i1.MediaObserver }, { type: i2.Router }, { type: undefined, decorators: [{
200
+ }], ctorParameters: () => [{ type: i1.BreakpointObserver }, { type: i2.Router }, { type: undefined, decorators: [{
197
201
  type: Inject,
198
202
  args: [SESSION_STORAGE]
199
203
  }] }, { type: i3.NaturalSidenavStackService }] });
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFDLGFBQWEsRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFNUUsT0FBTyxFQUFpQixlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFHbEY7O0dBRUc7QUFDSCxTQUFTLE1BQU0sQ0FBSSxLQUFRO0lBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQztJQUN2RixDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7OztHQUtHO0FBRUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHlCQUF5QjtJQTBDaEUsWUFDb0IsYUFBNEIsRUFDM0IsTUFBYyxFQUNXLGNBQThCLEVBQ3ZELDBCQUFzRDtRQUV2RSxLQUFLLEVBQUUsQ0FBQztRQUxRLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDVyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDdkQsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtRQTdDM0U7Ozs7V0FJRztRQUNLLFVBQUssR0FBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFbEQ7OztXQUdHO1FBQ0ssU0FBSSxHQUFrQixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFD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QUFFLEVBQUUsQ0FBQztZQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0YsQ0FBQztJQUNMLENBQUM7OEdBM01RLHFCQUFxQixxRUE2Q2xCLGVBQWU7a0hBN0NsQixxQkFBcUIsY0FEVCxNQUFNOzsyRkFDbEIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7MEJBOEN2QixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01lZGlhT2JzZXJ2ZXJ9IGZyb20gJ0BuZ2JyYWNrZXQvbmd4LWxheW91dCc7XG5pbXBvcnQge01hdERyYXdlck1vZGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRW5kLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2ZpbHRlciwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge05hdHVyYWxBYnN0cmFjdENvbnRyb2xsZXJ9IGZyb20gJy4uLy4uL2NsYXNzZXMvYWJzdHJhY3QtY29udHJvbGxlcic7XG5pbXBvcnQge05hdHVyYWxTaWRlbmF2Q29udGFpbmVyQ29tcG9uZW50fSBmcm9tICcuL3NpZGVuYXYtY29udGFpbmVyL3NpZGVuYXYtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge05hdHVyYWxTdG9yYWdlLCBTRVNTSU9OX1NUT1JBR0V9IGZyb20gJy4uL2NvbW1vbi9zZXJ2aWNlcy9tZW1vcnktc3RvcmFnZSc7XG5pbXBvcnQge05hdHVyYWxTaWRlbmF2U3RhY2tTZXJ2aWNlfSBmcm9tICcuL3NpZGVuYXYtc3RhY2suc2VydmljZSc7XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgZ2l2ZW4gdmFsdWUgaXMgbm90IG51bGxcbiAqL1xuZnVuY3Rpb24gYXNzZXJ0PFQ+KHZhbHVlOiBUKTogYXNzZXJ0cyB2YWx1ZSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ011c3QgY2FsbCBOYXR1cmFsU2lkZW5hdlNlcnZpY2UuaW5pdCgpIGJlZm9yZSB1c2luZyB0aGUgc2VydmljZScpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUT0RPOiBGaXggbmF2IG1pbmltaXplIGFuZCBtYXhpbWl6ZSByZXNpemVcbiAqIFNpbmNlIE1hdGVyaWFsIDIgYmV0YSAxMCwgd2hlbiBuYXYgaXMgcmVzaXplZCB0aGUgYm9keSBpcyBub3QgcmVzaXplZFxuICogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvbWF0ZXJpYWwyL2lzc3Vlcy82NzQzXG4gKiBNYXliZSB0aGUgYmV0dGVyIGlzIHRvIHdhaXQgbmV4dCByZWxlYXNlXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxTaWRlbmF2U2VydmljZSBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdENvbnRyb2xsZXIge1xuICAgIC8qKlxuICAgICAqIE5hdmlnYXRpb24gbW9kZXNcbiAgICAgKiBGaXJzdCBpcyBmb3IgZGVza3RvcCB2aWV3XG4gICAgICogU2Vjb25kIGlzIGZvciBtb2JpbGUgdmlld1xuICAgICAqL1xuICAgIHByaXZhdGUgbW9kZXM6IE1hdERyYXdlck1vZGVbXSA9IFsnc2lkZScsICdwdXNoJ107XG5cbiAgICAvKipcbiAgICAgKiBBY3RpdmF0ZWQgbW9kZVxuICAgICAqIERlZmF1bHQgdG8gZGVza3RvcCB2aWV3XG4gICAgICovXG4gICAgcHJpdmF0ZSBtb2RlOiBNYXREcmF3ZXJNb2RlID0gdGhpcy5tb2Rlc1swXTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgbmF2IGlzIG9wZW5lZCBvciBub3RcbiAgICAgKi9cbiAgICBwcml2YXRlIG9wZW5lZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZXMgdGhlIG9wZW5lZCBzdGF0dXMgZHVyaW5nIG1vYmlsZSB2aWV3LCB0byByZXN0b3JlIGlmIHdlIGNvbWUgYmFjayB0byBkZXNrdG9wIHZpZXdcbiAgICAgKi9cbiAgICBwcml2YXRlIHRtcE9wZW5lZDogYm9vbGVhbiA9IHRoaXMub3BlbmVkO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBuYXYgaXMgbWluaW1pemVkIG9yIG5vdFxuICAgICAqL1xuICAgIHByaXZhdGUgbWluaW1pemVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBMb2NhbFN0b3JhZ2Uga2V5IHRoYXQgc3RvcmVzIHRoZSBtaW5pbWl6ZWQgc3RhdHVzXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBtaW5pbWl6ZWRTdG9yYWdlS2V5ID0gJ21lbnUtbWluaW1pemVkJztcblxuICAgIC8qKlxuICAgICAqIExvY2FsU3RvcmFnZSBrZXkgdGhhdCBzdG9yZXMgdGhlIG9wZW5lZCBzdGF0dXNcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wZW5lZFN0b3JhZ2VLZXkgPSAnbWVudS1vcGVuZWQnO1xuXG4gICAgcHJpdmF0ZSBtaW5pbWl6ZWRTdG9yYWdlS2V5V2l0aE5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgb3BlbmVkU3RvcmFnZUtleVdpdGhOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IG1lZGlhT2JzZXJ2ZXI6IE1lZGlhT2JzZXJ2ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIEBJbmplY3QoU0VTU0lPTl9TVE9SQUdFKSBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlOiBOYXR1cmFsU3RvcmFnZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBuYXR1cmFsU2lkZW5hdlN0YWNrU2VydmljZTogTmF0dXJhbFNpZGVuYXZTdGFja1NlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhY3RpdmVNb2RlKCk6IE1hdERyYXdlck1vZGUge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNPcGVuZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTWluaW1pemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5taW5pbWl6ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koY29tcG9uZW50OiBOYXR1cmFsU2lkZW5hdkNvbnRhaW5lckNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdHVyYWxTaWRlbmF2U3RhY2tTZXJ2aWNlLnVucmVnaXN0ZXIoY29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdChuYW1lOiBzdHJpbmcsIGNvbXBvbmVudDogTmF0dXJhbFNpZGVuYXZDb250YWluZXJDb21wb25lbnQsIGF1dG9DbG9zZSA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICghbmFtZSB8fCBuYW1lID09PSAnJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBzaWRlbmF2IG5hbWUgcHJvdmlkZWQsIHVzZSA8bmF0dXJhbC1zaWRlbmF2LWNvbnRhaW5lciBuYW1lPVwibWVudVwiPicpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uYXR1cmFsU2lkZW5hdlN0YWNrU2VydmljZS5yZWdpc3Rlcihjb21wb25lbnQpO1xuXG4gICAgICAgIHRoaXMubWluaW1pemVkU3RvcmFnZUtleVdpdGhOYW1lID0gbmFtZSArICctJyArIHRoaXMubWluaW1pemVkU3RvcmFnZUtleTtcbiAgICAgICAgdGhpcy5vcGVuZWRTdG9yYWdlS2V5V2l0aE5hbWUgPSBuYW1lICsgJy0nICsgdGhpcy5vcGVuZWRTdG9yYWdlS2V5O1xuXG4gICAgICAgIC8vIEluaXQgZnJvbSBMb2NhbFN0b3JhZ2VcbiAgICAgICAgdGhpcy5taW5pbWl6ZWQgPSB0aGlzLmdldE1pbmltaXplZFN0YXR1cygpO1xuICAgICAgICB0aGlzLm9wZW5lZCA9IHRoaXMuZ2V0TWVudU9wZW5lZFN0YXR1cygpO1xuICAgICAgICB0aGlzLnRtcE9wZW5lZCA9IHRoaXMub3BlbmVkO1xuXG4gICAgICAgIGxldCBvbGRJc0JpZzogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuICAgICAgICB0aGlzLm1lZGlhT2JzZXJ2ZXJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0JpZyA9ICF0aGlzLmlzTW9iaWxlVmlldygpO1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZSA9IGlzQmlnID8gdGhpcy5tb2Rlc1swXSA6IHRoaXMubW9kZXNbMV07XG5cbiAgICAgICAgICAgICAgICBpZiAob2xkSXNCaWcgPT09IG51bGwgfHwgaXNCaWcgIT09IG9sZElzQmlnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9sZElzQmlnID0gaXNCaWc7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgZGVjcmVhc2Ugd2luZG93IHNpemUsIHNhdmUgc3RhdHVzIG9mIG1lbnUgYmVmb3JlIGNsb3NpbmcgaXRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0JpZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50bXBPcGVuZWQgPSB0aGlzLm9wZW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBJZiBpbmNyZWFzZSB3aW5kb3cgc2l6ZSwgYW5kIHNpZGViYXIgd2FzIG9wZW4gYmVmb3JlLCByZS1vcGVuIGl0LlxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNCaWcgJiYgdGhpcy50bXBPcGVuZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWluaW1pemVkID0gdGhpcy5nZXRNaW5pbWl6ZWRTdGF0dXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChhdXRvQ2xvc2UpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZJdGVtQ2xpY2tlZCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzTW9iaWxlVmlldygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLm1lZGlhT2JzZXJ2ZXIuaXNBY3RpdmUoJ2d0LXNtJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvc2UgbmF2IG9uIG1vYmlsZSB2aWV3IGFmdGVyIGEgY2xpY2tcbiAgICAgKi9cbiAgICBwdWJsaWMgbmF2SXRlbUNsaWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlVmlldygpKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgbWluaW1pemVkIHN0YXR1cyBhbmQgc3RvcmVzIHRoZSBuZXcgdmFsdWVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0TWluaW1pemVkKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWluaW1pemVkID0gdmFsdWU7XG4gICAgICAgIGFzc2VydCh0aGlzLm1pbmltaXplZFN0b3JhZ2VLZXlXaXRoTmFtZSk7XG4gICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm1pbmltaXplZFN0b3JhZ2VLZXlXaXRoTmFtZSwgdmFsdWUgPyAndHJ1ZScgOiAnZmFsc2UnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWluaW1pemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0TWluaW1pemVkKHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBhbmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0TWluaW1pemVkKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlTWluaW1pemVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE1pbmltaXplZCghdGhpcy5taW5pbWl6ZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgc3RvcmVkIG1pbmltaXplZCBzdGF0dXNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TWluaW1pemVkU3RhdHVzKCk6IGJvb2xlYW4ge1xuICAgICAgICBhc3NlcnQodGhpcy5taW5pbWl6ZWRTdG9yYWdlS2V5V2l0aE5hbWUpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1pbmltaXplZFN0b3JhZ2VLZXlXaXRoTmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSBudWxsID8gZmFsc2UgOiB2YWx1ZSA9PT0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgc3RvcmVkIG9wZW5lZCBzdGF0dXNcbiAgICAgKiBEZWZhdWx0IG9uIGFuIG9wZW5lZCBzdGF0dXMgaWYgbm90aGluZyBpcyBzdG9yZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TWVudU9wZW5lZFN0YXR1cygpOiBib29sZWFuIHtcbiAgICAgICAgYXNzZXJ0KHRoaXMub3BlbmVkU3RvcmFnZUtleVdpdGhOYW1lKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5vcGVuZWRTdG9yYWdlS2V5V2l0aE5hbWUpO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmlzTW9iaWxlVmlldygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSAndHJ1ZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGUgbWVudSBidXQgZXhwYW5kIGl0IGlmIG1vYmlsZSBtb2RlIGlzIGFjdGl2YXRlZFxuICAgICAqIFN0b3JlcyB0aGUgc3RhdHVzIGluIGxvY2FsIHN0b3JhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE9wZW5lZCghdGhpcy5vcGVuZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuZWQoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE9wZW5lZCh0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0T3BlbmVkKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbmVkID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMub3BlbmVkICYmIHRoaXMuaXNNb2JpbGVWaWV3KCkpIHtcbiAgICAgICAgICAgIHRoaXMubWluaW1pemVkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNNb2JpbGVWaWV3KCkpIHtcbiAgICAgICAgICAgIGFzc2VydCh0aGlzLm9wZW5lZFN0b3JhZ2VLZXlXaXRoTmFtZSk7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5vcGVuZWRTdG9yYWdlS2V5V2l0aE5hbWUsIHRoaXMub3BlbmVkID8gJ3RydWUnIDogJ2ZhbHNlJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFDLGFBQWEsRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFNUUsT0FBTyxFQUFpQixlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUVsRixPQUFPLEVBQXFCLFdBQVcsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUVwRTs7R0FFRztBQUNILFNBQVMsTUFBTSxDQUFJLEtBQVE7SUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEseUJBQXlCO0lBeUNoRSxhQUFhLENBQVM7SUFFdEIsWUFDb0Isa0JBQXNDLEVBQ3JDLE1BQWMsRUFDVyxjQUE4QixFQUN2RCwwQkFBc0Q7UUFFdkUsS0FBSyxFQUFFLENBQUM7UUFMUSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3JDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDVyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDdkQsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtRQTlDM0U7Ozs7V0FJRztRQUNLLFVBQUssR0FBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENB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QUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQzNCLENBQUM7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvRixDQUFDO0lBQ0wsQ0FBQzs4R0E5TVEscUJBQXFCLDBFQThDbEIsZUFBZTtrSEE5Q2xCLHFCQUFxQixjQURULE1BQU07OzJGQUNsQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzswQkErQ3ZCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0RHJhd2VyTW9kZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQge05hdmlnYXRpb25FbmQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7ZmlsdGVyLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0Q29udHJvbGxlcn0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9hYnN0cmFjdC1jb250cm9sbGVyJztcbmltcG9ydCB7TmF0dXJhbFNpZGVuYXZDb250YWluZXJDb21wb25lbnR9IGZyb20gJy4vc2lkZW5hdi1jb250YWluZXIvc2lkZW5hdi1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7TmF0dXJhbFN0b3JhZ2UsIFNFU1NJT05fU1RPUkFHRX0gZnJvbSAnLi4vY29tbW9uL3NlcnZpY2VzL21lbW9yeS1zdG9yYWdlJztcbmltcG9ydCB7TmF0dXJhbFNpZGVuYXZTdGFja1NlcnZpY2V9IGZyb20gJy4vc2lkZW5hdi1zdGFjay5zZXJ2aWNlJztcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50c30gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5cbi8qKlxuICogQXNzZXJ0IHRoYXQgZ2l2ZW4gdmFsdWUgaXMgbm90IG51bGxcbiAqL1xuZnVuY3Rpb24gYXNzZXJ0PFQ+KHZhbHVlOiBUKTogYXNzZXJ0cyB2YWx1ZSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ011c3QgY2FsbCBOYXR1cmFsU2lkZW5hdlNlcnZpY2UuaW5pdCgpIGJlZm9yZSB1c2luZyB0aGUgc2VydmljZScpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUT0RPOiBGaXggbmF2IG1pbmltaXplIGFuZCBtYXhpbWl6ZSByZXNpemVcbiAqIFNpbmNlIE1hdGVyaWFsIDIgYmV0YSAxMCwgd2hlbiBuYXYgaXMgcmVzaXplZCB0aGUgYm9keSBpcyBub3QgcmVzaXplZFxuICogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvbWF0ZXJpYWwyL2lzc3Vlcy82NzQzXG4gKiBNYXliZSB0aGUgYmV0dGVyIGlzIHRvIHdhaXQgbmV4dCByZWxlYXNlXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxTaWRlbmF2U2VydmljZSBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdENvbnRyb2xsZXIge1xuICAgIC8qKlxuICAgICAqIE5hdmlnYXRpb24gbW9kZXNcbiAgICAgKiBGaXJzdCBpcyBmb3IgZGVza3RvcCB2aWV3XG4gICAgICogU2Vjb25kIGlzIGZvciBtb2JpbGUgdmlld1xuICAgICAqL1xuICAgIHByaXZhdGUgbW9kZXM6IE1hdERyYXdlck1vZGVbXSA9IFsnc2lkZScsICdwdXNoJ107XG5cbiAgICAvKipcbiAgICAgKiBBY3RpdmF0ZWQgbW9kZVxuICAgICAqIERlZmF1bHQgdG8gZGVza3RvcCB2aWV3XG4gICAgICovXG4gICAgcHJpdmF0ZSBtb2RlOiBNYXREcmF3ZXJNb2RlID0gdGhpcy5tb2Rlc1swXTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgbmF2IGlzIG9wZW5lZCBvciBub3RcbiAgICAgKi9cbiAgICBwcml2YXRlIG9wZW5lZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZXMgdGhlIG9wZW5lZCBzdGF0dXMgZHVyaW5nIG1vYmlsZSB2aWV3LCB0byByZXN0b3JlIGlmIHdlIGNvbWUgYmFjayB0byBkZXNrdG9wIHZpZXdcbiAgICAgKi9cbiAgICBwcml2YXRlIHRtcE9wZW5lZDogYm9vbGVhbiA9IHRoaXMub3BlbmVkO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBuYXYgaXMgbWluaW1pemVkIG9yIG5vdFxuICAgICAqL1xuICAgIHByaXZhdGUgbWluaW1pemVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBMb2NhbFN0b3JhZ2Uga2V5IHRoYXQgc3RvcmVzIHRoZSBtaW5pbWl6ZWQgc3RhdHVzXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBtaW5pbWl6ZWRTdG9yYWdlS2V5ID0gJ21lbnUtbWluaW1pemVkJztcblxuICAgIC8qKlxuICAgICAqIExvY2FsU3RvcmFnZSBrZXkgdGhhdCBzdG9yZXMgdGhlIG9wZW5lZCBzdGF0dXNcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wZW5lZFN0b3JhZ2VLZXkgPSAnbWVudS1vcGVuZWQnO1xuXG4gICAgcHJpdmF0ZSBtaW5pbWl6ZWRTdG9yYWdlS2V5V2l0aE5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgb3BlbmVkU3RvcmFnZUtleVdpdGhOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICAjaXNNb2JpbGVWaWV3ID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQEluamVjdChTRVNTSU9OX1NUT1JBR0UpIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2U6IE5hdHVyYWxTdG9yYWdlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG5hdHVyYWxTaWRlbmF2U3RhY2tTZXJ2aWNlOiBOYXR1cmFsU2lkZW5hdlN0YWNrU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFjdGl2ZU1vZGUoKTogTWF0RHJhd2VyTW9kZSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc09wZW5lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3BlbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNNaW5pbWl6ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbmltaXplZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzdHJveShjb21wb25lbnQ6IE5hdHVyYWxTaWRlbmF2Q29udGFpbmVyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF0dXJhbFNpZGVuYXZTdGFja1NlcnZpY2UudW5yZWdpc3Rlcihjb21wb25lbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0KG5hbWU6IHN0cmluZywgY29tcG9uZW50OiBOYXR1cmFsU2lkZW5hdkNvbnRhaW5lckNvbXBvbmVudCwgYXV0b0Nsb3NlID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFuYW1lIHx8IG5hbWUgPT09ICcnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHNpZGVuYXYgbmFtZSBwcm92aWRlZCwgdXNlIDxuYXR1cmFsLXNpZGVuYXYtY29udGFpbmVyIG5hbWU9XCJtZW51XCI+Jyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5hdHVyYWxTaWRlbmF2U3RhY2tTZXJ2aWNlLnJlZ2lzdGVyKGNvbXBvbmVudCk7XG5cbiAgICAgICAgdGhpcy5taW5pbWl6ZWRTdG9yYWdlS2V5V2l0aE5hbWUgPSBuYW1lICsgJy0nICsgdGhpcy5taW5pbWl6ZWRTdG9yYWdlS2V5O1xuICAgICAgICB0aGlzLm9wZW5lZFN0b3JhZ2VLZXlXaXRoTmFtZSA9IG5hbWUgKyAnLScgKyB0aGlzLm9wZW5lZFN0b3JhZ2VLZXk7XG5cbiAgICAgICAgLy8gSW5pdCBmcm9tIExvY2FsU3RvcmFnZVxuICAgICAgICB0aGlzLm1pbmltaXplZCA9IHRoaXMuZ2V0TWluaW1pemVkU3RhdHVzKCk7XG4gICAgICAgIHRoaXMub3BlbmVkID0gdGhpcy5nZXRNZW51T3BlbmVkU3RhdHVzKCk7XG4gICAgICAgIHRoaXMudG1wT3BlbmVkID0gdGhpcy5vcGVuZWQ7XG5cbiAgICAgICAgbGV0IG9sZElzQmlnOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJcbiAgICAgICAgICAgIC5vYnNlcnZlKFtCcmVha3BvaW50cy5YU21hbGwsIEJyZWFrcG9pbnRzLlNtYWxsXSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLiNpc01vYmlsZVZpZXcgPSByLm1hdGNoZXM7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNCaWcgPSAhdGhpcy4jaXNNb2JpbGVWaWV3O1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZSA9IGlzQmlnID8gdGhpcy5tb2Rlc1swXSA6IHRoaXMubW9kZXNbMV07XG5cbiAgICAgICAgICAgICAgICBpZiAob2xkSXNCaWcgPT09IG51bGwgfHwgaXNCaWcgIT09IG9sZElzQmlnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9sZElzQmlnID0gaXNCaWc7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgZGVjcmVhc2Ugd2luZG93IHNpemUsIHNhdmUgc3RhdHVzIG9mIG1lbnUgYmVmb3JlIGNsb3NpbmcgaXRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0JpZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50bXBPcGVuZWQgPSB0aGlzLm9wZW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBJZiBpbmNyZWFzZSB3aW5kb3cgc2l6ZSwgYW5kIHNpZGViYXIgd2FzIG9wZW4gYmVmb3JlLCByZS1vcGVuIGl0LlxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNCaWcgJiYgdGhpcy50bXBPcGVuZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWluaW1pemVkID0gdGhpcy5nZXRNaW5pbWl6ZWRTdGF0dXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChhdXRvQ2xvc2UpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZJdGVtQ2xpY2tlZCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzTW9iaWxlVmlldygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI2lzTW9iaWxlVmlldztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSBuYXYgb24gbW9iaWxlIHZpZXcgYWZ0ZXIgYSBjbGlja1xuICAgICAqL1xuICAgIHB1YmxpYyBuYXZJdGVtQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuI2lzTW9iaWxlVmlldykge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIG1pbmltaXplZCBzdGF0dXMgYW5kIHN0b3JlcyB0aGUgbmV3IHZhbHVlXG4gICAgICovXG4gICAgcHVibGljIHNldE1pbmltaXplZCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLm1pbmltaXplZCA9IHZhbHVlO1xuICAgICAgICBhc3NlcnQodGhpcy5taW5pbWl6ZWRTdG9yYWdlS2V5V2l0aE5hbWUpO1xuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5taW5pbWl6ZWRTdG9yYWdlS2V5V2l0aE5hbWUsIHZhbHVlID8gJ3RydWUnIDogJ2ZhbHNlJyk7XG4gICAgfVxuXG4gICAgcHVibGljIG1pbmltaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE1pbmltaXplZCh0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhwYW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE1pbmltaXplZChmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZU1pbmltaXplZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNaW5pbWl6ZWQoIXRoaXMubWluaW1pemVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIHN0b3JlZCBtaW5pbWl6ZWQgc3RhdHVzXG4gICAgICovXG4gICAgcHVibGljIGdldE1pbmltaXplZFN0YXR1cygpOiBib29sZWFuIHtcbiAgICAgICAgYXNzZXJ0KHRoaXMubWluaW1pemVkU3RvcmFnZUtleVdpdGhOYW1lKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5taW5pbWl6ZWRTdG9yYWdlS2V5V2l0aE5hbWUpO1xuXG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbCA/IGZhbHNlIDogdmFsdWUgPT09ICd0cnVlJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIHN0b3JlZCBvcGVuZWQgc3RhdHVzXG4gICAgICogRGVmYXVsdCBvbiBhbiBvcGVuZWQgc3RhdHVzIGlmIG5vdGhpbmcgaXMgc3RvcmVkXG4gICAgICovXG4gICAgcHVibGljIGdldE1lbnVPcGVuZWRTdGF0dXMoKTogYm9vbGVhbiB7XG4gICAgICAgIGFzc2VydCh0aGlzLm9wZW5lZFN0b3JhZ2VLZXlXaXRoTmFtZSk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMub3BlbmVkU3RvcmFnZUtleVdpdGhOYW1lKTtcblxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy4jaXNNb2JpbGVWaWV3O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSAndHJ1ZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGUgbWVudSBidXQgZXhwYW5kIGl0IGlmIG1vYmlsZSBtb2RlIGlzIGFjdGl2YXRlZFxuICAgICAqIFN0b3JlcyB0aGUgc3RhdHVzIGluIGxvY2FsIHN0b3JhZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE9wZW5lZCghdGhpcy5vcGVuZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuZWQoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE9wZW5lZCh0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0T3BlbmVkKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbmVkID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMub3BlbmVkICYmIHRoaXMuI2lzTW9iaWxlVmlldykge1xuICAgICAgICAgICAgdGhpcy5taW5pbWl6ZWQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy4jaXNNb2JpbGVWaWV3KSB7XG4gICAgICAgICAgICBhc3NlcnQodGhpcy5vcGVuZWRTdG9yYWdlS2V5V2l0aE5hbWUpO1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMub3BlbmVkU3RvcmFnZUtleVdpdGhOYW1lLCB0aGlzLm9wZW5lZCA/ICd0cnVlJyA6ICdmYWxzZScpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -9,10 +9,10 @@ export class NaturalStampComponent {
9
9
  this.item.updateDate === this.item.creationDate;
10
10
  return !same && (!!this.item.updateDate || !!this.item.updater);
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalStampComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalStampComponent, isStandalone: true, selector: "natural-stamp", inputs: { item: "item" }, ngImport: i0, template: "@if (item) {\n @if (item.creationDate || item.creator) {\n <div>\n <span class=\"mat-subtitle-2\" i18n>Cr\u00E9ation</span>\n :\n @if (item.creator) {\n <span>{{ item.creator.fullName || item.creator.name }}</span>\n }\n @if (item.creator && item.creationDate) {\n <span>,&nbsp;</span>\n }\n @if (item.creationDate) {\n <span>{{ item.creationDate | swissDate }} ({{ item.creationDate | timeAgo }})</span>\n }\n </div>\n }\n @if (showUpdate()) {\n <div>\n <span class=\"mat-subtitle-2\" i18n>Modification</span>\n :\n @if (item.updater) {\n <span>{{ item.updater.fullName || item.updater.name }}</span>\n }\n @if (item.updater && item.updateDate) {\n <span>,&nbsp;</span>\n }\n @if (item.updateDate) {\n <span>{{ item.updateDate | swissDate }} ({{ item.updateDate | timeAgo }})</span>\n }\n </div>\n }\n}\n", dependencies: [{ kind: "pipe", type: NaturalSwissDatePipe, name: "swissDate" }, { kind: "pipe", type: NaturalTimeAgoPipe, name: "timeAgo" }] }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalStampComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: NaturalStampComponent, isStandalone: true, selector: "natural-stamp", inputs: { item: "item" }, ngImport: i0, template: "@if (item) {\n @if (item.creationDate || item.creator) {\n <div>\n <span class=\"mat-subtitle-2\" i18n>Cr\u00E9ation</span>\n :\n @if (item.creator) {\n <span>{{ item.creator.fullName || item.creator.name }}</span>\n }\n @if (item.creator && item.creationDate) {\n <span>,&nbsp;</span>\n }\n @if (item.creationDate) {\n <span>{{ item.creationDate | swissDate }} ({{ item.creationDate | timeAgo }})</span>\n }\n </div>\n }\n @if (showUpdate()) {\n <div>\n <span class=\"mat-subtitle-2\" i18n>Modification</span>\n :\n @if (item.updater) {\n <span>{{ item.updater.fullName || item.updater.name }}</span>\n }\n @if (item.updater && item.updateDate) {\n <span>,&nbsp;</span>\n }\n @if (item.updateDate) {\n <span>{{ item.updateDate | swissDate }} ({{ item.updateDate | timeAgo }})</span>\n }\n </div>\n }\n}\n", dependencies: [{ kind: "pipe", type: NaturalSwissDatePipe, name: "swissDate" }, { kind: "pipe", type: NaturalTimeAgoPipe, name: "timeAgo" }] }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalStampComponent, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalStampComponent, decorators: [{
16
16
  type: Component,
17
17
  args: [{ selector: 'natural-stamp', standalone: true, imports: [NaturalSwissDatePipe, NaturalTimeAgoPipe], template: "@if (item) {\n @if (item.creationDate || item.creator) {\n <div>\n <span class=\"mat-subtitle-2\" i18n>Cr\u00E9ation</span>\n :\n @if (item.creator) {\n <span>{{ item.creator.fullName || item.creator.name }}</span>\n }\n @if (item.creator && item.creationDate) {\n <span>,&nbsp;</span>\n }\n @if (item.creationDate) {\n <span>{{ item.creationDate | swissDate }} ({{ item.creationDate | timeAgo }})</span>\n }\n </div>\n }\n @if (showUpdate()) {\n <div>\n <span class=\"mat-subtitle-2\" i18n>Modification</span>\n :\n @if (item.updater) {\n <span>{{ item.updater.fullName || item.updater.name }}</span>\n }\n @if (item.updater && item.updateDate) {\n <span>,&nbsp;</span>\n }\n @if (item.updateDate) {\n <span>{{ item.updateDate | swissDate }} ({{ item.updateDate | timeAgo }})</span>\n }\n </div>\n }\n}\n" }]
18
18
  }], propDecorators: { item: [{
@@ -41,10 +41,10 @@ export class NaturalTableButtonComponent {
41
41
  this.type = 'none';
42
42
  }
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalTableButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalTableButtonComponent, isStandalone: true, selector: "natural-table-button", inputs: { queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", label: "label", icon: "icon", href: "href", navigate: "navigate", fragment: "fragment", preserveFragment: "preserveFragment", disabled: "disabled", raised: "raised", color: "color" }, outputs: { buttonClick: "buttonClick" }, usesOnChanges: true, ngImport: i0, template: "<!-- Because directives can't be applied conditionally (routerLink, mat-button and mat-icon-button), we have to use different elements -->\n\n<!-- Edge case of a button without any kind of link at all -->\n@if (type === 'none') {\n <span>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n @if (label) {\n <span>{{ label }}</span>\n }\n </span>\n}\n\n@if (!raised) {\n <!-- App routed link with label... -->\n @if (type === 'routerLink' && label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'routerLink' && !label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-icon-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- Click with label... -->\n @if (type === 'click' && label) {\n <a [color]=\"color\" (click)=\"buttonClick.emit($event)\" [disabled]=\"disabled\" mat-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'click' && !label) {\n <a (click)=\"buttonClick.emit($event)\" [disabled]=\"disabled\" mat-icon-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- External link with label... -->\n @if (type === 'href' && label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'href' && !label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-icon-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n}\n\n@if (raised) {\n <!-- App routed link with label... -->\n @if (type === 'routerLink' && label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-raised-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'routerLink' && !label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- Click with label... -->\n @if (type === 'click' && label) {\n <a [color]=\"color\" [disabled]=\"disabled\" (click)=\"buttonClick.emit($event)\" mat-raised-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'click' && !label) {\n <a\n [color]=\"color\"\n [disabled]=\"disabled\"\n (click)=\"buttonClick.emit($event)\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- External link with label... -->\n @if (type === 'href' && label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-raised-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'href' && !label) {\n <a\n [attr.href]=\"href\"\n [color]=\"color\"\n [disabled]=\"disabled\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n target=\"_blank\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n}\n", styles: ["natural-table-button{flex:1;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}natural-table-button mat-icon:not(:last-child){margin-right:5px}natural-table-button a.mat-mdc-button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:flex-start}natural-table-button a.mat-mdc-button .mdc-button__label{display:flex;flex-direction:row;align-items:center}natural-table-button>span{padding:0 8px;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalTableButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: NaturalTableButtonComponent, isStandalone: true, selector: "natural-table-button", inputs: { queryParams: "queryParams", queryParamsHandling: "queryParamsHandling", label: "label", icon: "icon", href: "href", navigate: "navigate", fragment: "fragment", preserveFragment: "preserveFragment", disabled: "disabled", raised: "raised", color: "color" }, outputs: { buttonClick: "buttonClick" }, usesOnChanges: true, ngImport: i0, template: "<!-- Because directives can't be applied conditionally (routerLink, mat-button and mat-icon-button), we have to use different elements -->\n\n<!-- Edge case of a button without any kind of link at all -->\n@if (type === 'none') {\n <span>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n @if (label) {\n <span>{{ label }}</span>\n }\n </span>\n}\n\n@if (!raised) {\n <!-- App routed link with label... -->\n @if (type === 'routerLink' && label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'routerLink' && !label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-icon-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- Click with label... -->\n @if (type === 'click' && label) {\n <a [color]=\"color\" (click)=\"buttonClick.emit($event)\" [disabled]=\"disabled\" mat-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'click' && !label) {\n <a (click)=\"buttonClick.emit($event)\" [disabled]=\"disabled\" mat-icon-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- External link with label... -->\n @if (type === 'href' && label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'href' && !label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-icon-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n}\n\n@if (raised) {\n <!-- App routed link with label... -->\n @if (type === 'routerLink' && label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-raised-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'routerLink' && !label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- Click with label... -->\n @if (type === 'click' && label) {\n <a [color]=\"color\" [disabled]=\"disabled\" (click)=\"buttonClick.emit($event)\" mat-raised-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'click' && !label) {\n <a\n [color]=\"color\"\n [disabled]=\"disabled\"\n (click)=\"buttonClick.emit($event)\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- External link with label... -->\n @if (type === 'href' && label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-raised-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'href' && !label) {\n <a\n [attr.href]=\"href\"\n [color]=\"color\"\n [disabled]=\"disabled\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n target=\"_blank\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n}\n", styles: ["natural-table-button{flex:1;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}natural-table-button mat-icon:not(:last-child){margin-right:5px}natural-table-button a.mat-mdc-button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:flex-start}natural-table-button a.mat-mdc-button .mdc-button__label{display:flex;flex-direction:row;align-items:center}natural-table-button>span{padding:0 8px;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalTableButtonComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalTableButtonComponent, decorators: [{
48
48
  type: Component,
49
49
  args: [{ selector: 'natural-table-button', encapsulation: ViewEncapsulation.None, standalone: true, imports: [MatIconModule, NaturalIconDirective, MatButtonModule, RouterLink], template: "<!-- Because directives can't be applied conditionally (routerLink, mat-button and mat-icon-button), we have to use different elements -->\n\n<!-- Edge case of a button without any kind of link at all -->\n@if (type === 'none') {\n <span>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n @if (label) {\n <span>{{ label }}</span>\n }\n </span>\n}\n\n@if (!raised) {\n <!-- App routed link with label... -->\n @if (type === 'routerLink' && label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'routerLink' && !label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-icon-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- Click with label... -->\n @if (type === 'click' && label) {\n <a [color]=\"color\" (click)=\"buttonClick.emit($event)\" [disabled]=\"disabled\" mat-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'click' && !label) {\n <a (click)=\"buttonClick.emit($event)\" [disabled]=\"disabled\" mat-icon-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- External link with label... -->\n @if (type === 'href' && label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'href' && !label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-icon-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n}\n\n@if (raised) {\n <!-- App routed link with label... -->\n @if (type === 'routerLink' && label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-raised-button\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'routerLink' && !label) {\n <a\n [color]=\"color\"\n [queryParams]=\"queryParams\"\n [queryParamsHandling]=\"queryParamsHandling\"\n [routerLink]=\"navigate\"\n [fragment]=\"fragment\"\n [preserveFragment]=\"preserveFragment\"\n [disabled]=\"disabled\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- Click with label... -->\n @if (type === 'click' && label) {\n <a [color]=\"color\" [disabled]=\"disabled\" (click)=\"buttonClick.emit($event)\" mat-raised-button>\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'click' && !label) {\n <a\n [color]=\"color\"\n [disabled]=\"disabled\"\n (click)=\"buttonClick.emit($event)\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n <!-- External link with label... -->\n @if (type === 'href' && label) {\n <a [attr.href]=\"href\" [color]=\"color\" [disabled]=\"disabled\" mat-raised-button target=\"_blank\">\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n <span>{{ label }}</span>\n </a>\n }\n <!-- ... and without label -->\n @if (type === 'href' && !label) {\n <a\n [attr.href]=\"href\"\n [color]=\"color\"\n [disabled]=\"disabled\"\n mat-icon-button\n class=\"mat-elevation-z4\"\n target=\"_blank\"\n >\n @if (icon) {\n <mat-icon [naturalIcon]=\"icon\" />\n }\n </a>\n }\n}\n", styles: ["natural-table-button{flex:1;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}natural-table-button mat-icon:not(:last-child){margin-right:5px}natural-table-button a.mat-mdc-button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:flex-start}natural-table-button a.mat-mdc-button .mdc-button__label{display:flex;flex-direction:row;align-items:center}natural-table-button>span{padding:0 8px;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}\n"] }]
50
50
  }], propDecorators: { queryParams: [{
@@ -139,10 +139,10 @@ export class NaturalDebounceService {
139
139
  this.allDebouncedUpdateCache.delete(modelService);
140
140
  }
141
141
  }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDebounceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
143
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDebounceService, providedIn: 'root' }); }
142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalDebounceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
143
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalDebounceService, providedIn: 'root' }); }
144
144
  }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalDebounceService, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalDebounceService, decorators: [{
146
146
  type: Injectable,
147
147
  args: [{
148
148
  providedIn: 'root',
@@ -55,10 +55,10 @@ export class NaturalEnumService {
55
55
  return '';
56
56
  }));
57
57
  }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalEnumService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
59
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalEnumService, providedIn: 'root' }); }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalEnumService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
59
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalEnumService, providedIn: 'root' }); }
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalEnumService, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalEnumService, decorators: [{
62
62
  type: Injectable,
63
63
  args: [{
64
64
  providedIn: 'root',
@@ -141,10 +141,10 @@ export class NaturalLinkMutationService {
141
141
  }
142
142
  }`;
143
143
  }
144
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalLinkMutationService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
145
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalLinkMutationService, providedIn: 'root' }); }
144
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalLinkMutationService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
145
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalLinkMutationService, providedIn: 'root' }); }
146
146
  }
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalLinkMutationService, decorators: [{
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalLinkMutationService, decorators: [{
148
148
  type: Injectable,
149
149
  args: [{
150
150
  providedIn: 'root',
@@ -107,10 +107,10 @@ export class NaturalPersistenceService {
107
107
  }
108
108
  return this.isValid(key, storageKey, result) ? result : null;
109
109
  }
110
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalPersistenceService, deps: [{ token: i1.Router }, { token: SESSION_STORAGE }, { token: NATURAL_PERSISTENCE_VALIDATOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
111
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalPersistenceService, providedIn: 'root' }); }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalPersistenceService, deps: [{ token: i1.Router }, { token: SESSION_STORAGE }, { token: NATURAL_PERSISTENCE_VALIDATOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
111
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalPersistenceService, providedIn: 'root' }); }
112
112
  }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalPersistenceService, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalPersistenceService, decorators: [{
114
114
  type: Injectable,
115
115
  args: [{
116
116
  providedIn: 'root',
@@ -51,10 +51,10 @@ export class NaturalSwissParsingDateAdapter extends NativeDateAdapter {
51
51
  // Also see https://github.com/tc39/ecma402/issues/6
52
52
  return 1;
53
53
  }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSwissParsingDateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
55
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSwissParsingDateAdapter, providedIn: 'root' }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalSwissParsingDateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
55
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalSwissParsingDateAdapter, providedIn: 'root' }); }
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSwissParsingDateAdapter, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalSwissParsingDateAdapter, decorators: [{
58
58
  type: Injectable,
59
59
  args: [{
60
60
  providedIn: 'root',