@ecodev/natural 60.1.0 → 61.0.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 (96) hide show
  1. package/esm2022/lib/classes/abstract-detail.mjs +6 -14
  2. package/esm2022/lib/classes/abstract-editable-list.mjs +5 -7
  3. package/esm2022/lib/classes/abstract-list.mjs +9 -8
  4. package/esm2022/lib/classes/abstract-navigable-list.mjs +7 -6
  5. package/esm2022/lib/classes/rxjs.mjs +11 -5
  6. package/esm2022/lib/directives/http-prefix.directive.mjs +3 -3
  7. package/esm2022/lib/modules/alert/alert.service.mjs +3 -3
  8. package/esm2022/lib/modules/alert/confirm.component.mjs +3 -3
  9. package/esm2022/lib/modules/avatar/component/avatar.component.mjs +3 -3
  10. package/esm2022/lib/modules/avatar/service/avatar.service.mjs +3 -3
  11. package/esm2022/lib/modules/columns-picker/columns-picker.component.mjs +8 -12
  12. package/esm2022/lib/modules/common/directives/background-density.directive.mjs +3 -3
  13. package/esm2022/lib/modules/common/directives/linkable-tab.directive.mjs +9 -11
  14. package/esm2022/lib/modules/common/directives/src-density.directive.mjs +3 -3
  15. package/esm2022/lib/modules/common/pipes/capitalize.pipe.mjs +3 -3
  16. package/esm2022/lib/modules/common/pipes/ellipsis.pipe.mjs +3 -3
  17. package/esm2022/lib/modules/common/pipes/enum.pipe.mjs +3 -3
  18. package/esm2022/lib/modules/common/pipes/time-ago.pipe.mjs +3 -3
  19. package/esm2022/lib/modules/common/services/memory-storage.mjs +3 -3
  20. package/esm2022/lib/modules/common/services/seo.service.mjs +5 -5
  21. package/esm2022/lib/modules/detail-header/detail-header.component.mjs +3 -3
  22. package/esm2022/lib/modules/dialog-trigger/dialog-trigger.component.mjs +3 -3
  23. package/esm2022/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +3 -3
  24. package/esm2022/lib/modules/dropdown-components/type-boolean/type-boolean.component.mjs +3 -3
  25. package/esm2022/lib/modules/dropdown-components/type-date/type-date.component.mjs +3 -3
  26. package/esm2022/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +3 -3
  27. package/esm2022/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +3 -3
  28. package/esm2022/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +3 -3
  29. package/esm2022/lib/modules/dropdown-components/type-number/type-number.component.mjs +3 -3
  30. package/esm2022/lib/modules/dropdown-components/type-options/type-options.component.mjs +3 -3
  31. package/esm2022/lib/modules/dropdown-components/type-select/type-select.component.mjs +12 -12
  32. package/esm2022/lib/modules/dropdown-components/type-text/type-text.component.mjs +5 -5
  33. package/esm2022/lib/modules/file/abstract-file.mjs +5 -8
  34. package/esm2022/lib/modules/file/component/file.component.mjs +3 -3
  35. package/esm2022/lib/modules/file/file-drop.directive.mjs +9 -7
  36. package/esm2022/lib/modules/file/file-select.directive.mjs +3 -3
  37. package/esm2022/lib/modules/file/file.service.mjs +3 -3
  38. package/esm2022/lib/modules/fixed-button/fixed-button.component.mjs +3 -3
  39. package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +3 -3
  40. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +10 -10
  41. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +3 -3
  42. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +3 -3
  43. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +3 -3
  44. package/esm2022/lib/modules/icon/icon.directive.mjs +3 -3
  45. package/esm2022/lib/modules/logger/error-handler.mjs +3 -3
  46. package/esm2022/lib/modules/matomo/matomo.service.mjs +3 -3
  47. package/esm2022/lib/modules/panels/abstract-panel.mjs +10 -10
  48. package/esm2022/lib/modules/panels/panels.component.mjs +3 -3
  49. package/esm2022/lib/modules/panels/panels.service.mjs +3 -3
  50. package/esm2022/lib/modules/relations/relations.component.mjs +10 -10
  51. package/esm2022/lib/modules/search/dropdown-container/dropdown-container.component.mjs +3 -3
  52. package/esm2022/lib/modules/search/dropdown-container/dropdown.service.mjs +3 -3
  53. package/esm2022/lib/modules/search/facet-selector/facet-selector.component.mjs +3 -3
  54. package/esm2022/lib/modules/search/group/group.component.mjs +3 -3
  55. package/esm2022/lib/modules/search/input/input.component.mjs +3 -3
  56. package/esm2022/lib/modules/search/search/search.component.mjs +3 -3
  57. package/esm2022/lib/modules/select/abstract-select.component.mjs +5 -7
  58. package/esm2022/lib/modules/select/select/select.component.mjs +10 -8
  59. package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +3 -3
  60. package/esm2022/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +4 -4
  61. package/esm2022/lib/modules/sidenav/sidenav/sidenav.component.mjs +3 -3
  62. package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +3 -3
  63. package/esm2022/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +3 -3
  64. package/esm2022/lib/modules/sidenav/sidenav-stack.service.mjs +3 -3
  65. package/esm2022/lib/modules/sidenav/sidenav.service.mjs +11 -11
  66. package/esm2022/lib/modules/stamp/stamp.component.mjs +3 -3
  67. package/esm2022/lib/modules/table-button/table-button.component.mjs +3 -3
  68. package/esm2022/lib/services/debounce.service.mjs +3 -3
  69. package/esm2022/lib/services/enum.service.mjs +3 -3
  70. package/esm2022/lib/services/link-mutation.service.mjs +3 -3
  71. package/esm2022/lib/services/persistence.service.mjs +3 -3
  72. package/esm2022/lib/services/swiss-parsing-date-adapter.service.mjs +3 -3
  73. package/esm2022/public-api.mjs +1 -2
  74. package/fesm2022/ecodev-natural.mjs +266 -305
  75. package/fesm2022/ecodev-natural.mjs.map +1 -1
  76. package/lib/classes/abstract-detail.d.ts +1 -10
  77. package/lib/classes/abstract-editable-list.d.ts +1 -2
  78. package/lib/classes/abstract-list.d.ts +2 -2
  79. package/lib/classes/abstract-navigable-list.d.ts +2 -2
  80. package/lib/classes/rxjs.d.ts +9 -2
  81. package/lib/modules/columns-picker/columns-picker.component.d.ts +3 -4
  82. package/lib/modules/common/directives/linkable-tab.directive.d.ts +2 -2
  83. package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +3 -3
  84. package/lib/modules/file/abstract-file.d.ts +1 -2
  85. package/lib/modules/file/file-drop.directive.d.ts +1 -0
  86. package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +2 -2
  87. package/lib/modules/panels/abstract-panel.d.ts +3 -2
  88. package/lib/modules/relations/relations.component.d.ts +2 -2
  89. package/lib/modules/select/abstract-select.component.d.ts +2 -3
  90. package/lib/modules/select/select/select.component.d.ts +3 -2
  91. package/lib/modules/select/select-hierarchic/select-hierarchic.component.d.ts +2 -2
  92. package/lib/modules/sidenav/sidenav.service.d.ts +2 -2
  93. package/package.json +1 -1
  94. package/public-api.d.ts +0 -1
  95. package/esm2022/lib/classes/abstract-controller.mjs +0 -31
  96. package/lib/classes/abstract-controller.d.ts +0 -21
@@ -1,9 +1,9 @@
1
- import { Inject, Injectable } from '@angular/core';
1
+ import { DestroyRef, Inject, inject, Injectable } from '@angular/core';
2
2
  import { NavigationEnd } from '@angular/router';
3
- import { filter, takeUntil } from 'rxjs/operators';
4
- import { NaturalAbstractController } from '../../classes/abstract-controller';
3
+ import { filter } from 'rxjs/operators';
5
4
  import { SESSION_STORAGE } from '../common/services/memory-storage';
6
5
  import { Breakpoints } from '@angular/cdk/layout';
6
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/cdk/layout";
9
9
  import * as i2 from "@angular/router";
@@ -22,13 +22,13 @@ function assert(value) {
22
22
  * https://github.com/angular/material2/issues/6743
23
23
  * Maybe the better is to wait next release
24
24
  */
25
- export class NaturalSidenavService extends NaturalAbstractController {
25
+ export class NaturalSidenavService {
26
26
  constructor(breakpointObserver, router, sessionStorage, naturalSidenavStackService) {
27
- super();
28
27
  this.breakpointObserver = breakpointObserver;
29
28
  this.router = router;
30
29
  this.sessionStorage = sessionStorage;
31
30
  this.naturalSidenavStackService = naturalSidenavStackService;
31
+ this.destroyRef = inject(DestroyRef);
32
32
  /**
33
33
  * Navigation modes
34
34
  * First is for desktop view
@@ -90,7 +90,7 @@ export class NaturalSidenavService extends NaturalAbstractController {
90
90
  let oldIsBig = null;
91
91
  this.breakpointObserver
92
92
  .observe([Breakpoints.XSmall, Breakpoints.Small])
93
- .pipe(takeUntil(this.ngUnsubscribe))
93
+ .pipe(takeUntilDestroyed(this.destroyRef))
94
94
  .subscribe(r => {
95
95
  this._isMobileView = r.matches;
96
96
  const isBig = !this._isMobileView;
@@ -111,7 +111,7 @@ export class NaturalSidenavService extends NaturalAbstractController {
111
111
  });
112
112
  if (autoClose) {
113
113
  this.router.events
114
- .pipe(takeUntil(this.ngUnsubscribe), filter(e => e instanceof NavigationEnd))
114
+ .pipe(takeUntilDestroyed(this.destroyRef), filter(e => e instanceof NavigationEnd))
115
115
  .subscribe(() => {
116
116
  this.navItemClicked();
117
117
  });
@@ -190,14 +190,14 @@ export class NaturalSidenavService extends NaturalAbstractController {
190
190
  this.sessionStorage.setItem(this.openedStorageKeyWithName, this.opened ? 'true' : 'false');
191
191
  }
192
192
  }
193
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NaturalSidenavService, deps: [{ token: i1.BreakpointObserver }, { token: i2.Router }, { token: SESSION_STORAGE }, { token: i3.NaturalSidenavStackService }], target: i0.ɵɵFactoryTarget.Injectable }); }
194
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NaturalSidenavService, providedIn: 'root' }); }
193
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSidenavService, deps: [{ token: i1.BreakpointObserver }, { token: i2.Router }, { token: SESSION_STORAGE }, { token: i3.NaturalSidenavStackService }], target: i0.ɵɵFactoryTarget.Injectable }); }
194
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSidenavService, providedIn: 'root' }); }
195
195
  }
196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NaturalSidenavService, decorators: [{
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSidenavService, decorators: [{
197
197
  type: Injectable,
198
198
  args: [{ providedIn: 'root' }]
199
199
  }], ctorParameters: () => [{ type: i1.BreakpointObserver }, { type: i2.Router }, { type: undefined, decorators: [{
200
200
  type: Inject,
201
201
  args: [SESSION_STORAGE]
202
202
  }] }, { type: i3.NaturalSidenavStackService }] });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFDLGFBQWEsRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFNUUsT0FBTyxFQUFpQixlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUVsRixPQUFPLEVBQXFCLFdBQVcsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUVwRTs7R0FFRztBQUNILFNBQVMsTUFBTSxDQUFJLEtBQVE7SUFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEseUJBQXlCO0lBMkNoRSxZQUNvQixrQkFBc0MsRUFDckMsTUFBYyxFQUNXLGNBQThCLEVBQ3ZELDBCQUFzRDtRQUV2RSxLQUFLLEVBQUUsQ0FBQztRQUxRLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDckMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNXLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUN2RCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBOUMzRTs7OztXQUlHO1FBQ0ssVUFBSyxHQUFvQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVsRDs7O1dBR0c7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RXBCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQzthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9GLENBQUM7SUFDTCxDQUFDOzhHQTlNUSxxQkFBcUIsMEVBOENsQixlQUFlO2tIQTlDbEIscUJBQXFCLGNBRFQsTUFBTTs7MkZBQ2xCLHFCQUFxQjtrQkFEakMsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7OzBCQStDdkIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXREcmF3ZXJNb2RlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7TmF2aWdhdGlvbkVuZCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtmaWx0ZXIsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtOYXR1cmFsQWJzdHJhY3RDb250cm9sbGVyfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Fic3RyYWN0LWNvbnRyb2xsZXInO1xuaW1wb3J0IHtOYXR1cmFsU2lkZW5hdkNvbnRhaW5lckNvbXBvbmVudH0gZnJvbSAnLi9zaWRlbmF2LWNvbnRhaW5lci9zaWRlbmF2LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHtOYXR1cmFsU3RvcmFnZSwgU0VTU0lPTl9TVE9SQUdFfSBmcm9tICcuLi9jb21tb24vc2VydmljZXMvbWVtb3J5LXN0b3JhZ2UnO1xuaW1wb3J0IHtOYXR1cmFsU2lkZW5hdlN0YWNrU2VydmljZX0gZnJvbSAnLi9zaWRlbmF2LXN0YWNrLnNlcnZpY2UnO1xuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcblxuLyoqXG4gKiBBc3NlcnQgdGhhdCBnaXZlbiB2YWx1ZSBpcyBub3QgbnVsbFxuICovXG5mdW5jdGlvbiBhc3NlcnQ8VD4odmFsdWU6IFQpOiBhc3NlcnRzIHZhbHVlIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBjYWxsIE5hdHVyYWxTaWRlbmF2U2VydmljZS5pbml0KCkgYmVmb3JlIHVzaW5nIHRoZSBzZXJ2aWNlJyk7XG4gICAgfVxufVxuXG4vKipcbiAqIFRPRE86IEZpeCBuYXYgbWluaW1pemUgYW5kIG1heGltaXplIHJlc2l6ZVxuICogU2luY2UgTWF0ZXJpYWwgMiBiZXRhIDEwLCB3aGVuIG5hdiBpcyByZXNpemVkIHRoZSBib2R5IGlzIG5vdCByZXNpemVkXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIvaXNzdWVzLzY3NDNcbiAqIE1heWJlIHRoZSBiZXR0ZXIgaXMgdG8gd2FpdCBuZXh0IHJlbGVhc2VcbiAqL1xuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFNpZGVuYXZTZXJ2aWNlIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0Q29udHJvbGxlciB7XG4gICAgLyoqXG4gICAgICogTmF2aWdhdGlvbiBtb2Rlc1xuICAgICAqIEZpcnN0IGlzIGZvciBkZXNrdG9wIHZpZXdcbiAgICAgKiBTZWNvbmQgaXMgZm9yIG1vYmlsZSB2aWV3XG4gICAgICovXG4gICAgcHJpdmF0ZSBtb2RlczogTWF0RHJhd2VyTW9kZVtdID0gWydzaWRlJywgJ3B1c2gnXTtcblxuICAgIC8qKlxuICAgICAqIEFjdGl2YXRlZCBtb2RlXG4gICAgICogRGVmYXVsdCB0byBkZXNrdG9wIHZpZXdcbiAgICAgKi9cbiAgICBwcml2YXRlIG1vZGU6IE1hdERyYXdlck1vZGUgPSB0aGlzLm1vZGVzWzBdO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBuYXYgaXMgb3BlbmVkIG9yIG5vdFxuICAgICAqL1xuICAgIHByaXZhdGUgb3BlbmVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlcyB0aGUgb3BlbmVkIHN0YXR1cyBkdXJpbmcgbW9iaWxlIHZpZXcsIHRvIHJlc3RvcmUgaWYgd2UgY29tZSBiYWNrIHRvIGRlc2t0b3Agdmlld1xuICAgICAqL1xuICAgIHByaXZhdGUgdG1wT3BlbmVkOiBib29sZWFuID0gdGhpcy5vcGVuZWQ7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG5hdiBpcyBtaW5pbWl6ZWQgb3Igbm90XG4gICAgICovXG4gICAgcHJpdmF0ZSBtaW5pbWl6ZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIExvY2FsU3RvcmFnZSBrZXkgdGhhdCBzdG9yZXMgdGhlIG1pbmltaXplZCBzdGF0dXNcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG1pbmltaXplZFN0b3JhZ2VLZXkgPSAnbWVudS1taW5pbWl6ZWQnO1xuXG4gICAgLyoqXG4gICAgICogTG9jYWxTdG9yYWdlIGtleSB0aGF0IHN0b3JlcyB0aGUgb3BlbmVkIHN0YXR1c1xuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3BlbmVkU3RvcmFnZUtleSA9ICdtZW51LW9wZW5lZCc7XG5cbiAgICBwcml2YXRlIG1pbmltaXplZFN0b3JhZ2VLZXlXaXRoTmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBvcGVuZWRTdG9yYWdlS2V5V2l0aE5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2lzTW9iaWxlVmlldyA9IGZhbHNlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIEBJbmplY3QoU0VTU0lPTl9TVE9SQUdFKSBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlOiBOYXR1cmFsU3RvcmFnZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBuYXR1cmFsU2lkZW5hdlN0YWNrU2VydmljZTogTmF0dXJhbFNpZGVuYXZTdGFja1NlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhY3RpdmVNb2RlKCk6IE1hdERyYXdlck1vZGUge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNPcGVuZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTWluaW1pemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5taW5pbWl6ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koY29tcG9uZW50OiBOYXR1cmFsU2lkZW5hdkNvbnRhaW5lckNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdHVyYWxTaWRlbmF2U3RhY2tTZXJ2aWNlLnVucmVnaXN0ZXIoY29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdChuYW1lOiBzdHJpbmcsIGNvbXBvbmVudDogTmF0dXJhbFNpZGVuYXZDb250YWluZXJDb21wb25lbnQsIGF1dG9DbG9zZSA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICghbmFtZSB8fCBuYW1lID09PSAnJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBzaWRlbmF2IG5hbWUgcHJvdmlkZWQsIHVzZSA8bmF0dXJhbC1zaWRlbmF2LWNvbnRhaW5lciBuYW1lPVwibWVudVwiPicpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uYXR1cmFsU2lkZW5hdlN0YWNrU2VydmljZS5yZWdpc3Rlcihjb21wb25lbnQpO1xuXG4gICAgICAgIHRoaXMubWluaW1pemVkU3RvcmFnZUtleVdpdGhOYW1lID0gbmFtZSArICctJyArIHRoaXMubWluaW1pemVkU3RvcmFnZUtleTtcbiAgICAgICAgdGhpcy5vcGVuZWRTdG9yYWdlS2V5V2l0aE5hbWUgPSBuYW1lICsgJy0nICsgdGhpcy5vcGVuZWRTdG9yYWdlS2V5O1xuXG4gICAgICAgIC8vIEluaXQgZnJvbSBMb2NhbFN0b3JhZ2VcbiAgICAgICAgdGhpcy5taW5pbWl6ZWQgPSB0aGlzLmdldE1pbmltaXplZFN0YXR1cygpO1xuICAgICAgICB0aGlzLm9wZW5lZCA9IHRoaXMuZ2V0TWVudU9wZW5lZFN0YXR1cygpO1xuICAgICAgICB0aGlzLnRtcE9wZW5lZCA9IHRoaXMub3BlbmVkO1xuXG4gICAgICAgIGxldCBvbGRJc0JpZzogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZShbQnJlYWtwb2ludHMuWFNtYWxsLCBCcmVha3BvaW50cy5TbWFsbF0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUociA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNNb2JpbGVWaWV3ID0gci5tYXRjaGVzO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzQmlnID0gIXRoaXMuX2lzTW9iaWxlVmlldztcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGUgPSBpc0JpZyA/IHRoaXMubW9kZXNbMF0gOiB0aGlzLm1vZGVzWzFdO1xuXG4gICAgICAgICAgICAgICAgaWYgKG9sZElzQmlnID09PSBudWxsIHx8IGlzQmlnICE9PSBvbGRJc0JpZykge1xuICAgICAgICAgICAgICAgICAgICBvbGRJc0JpZyA9IGlzQmlnO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIGRlY3JlYXNlIHdpbmRvdyBzaXplLCBzYXZlIHN0YXR1cyBvZiBtZW51IGJlZm9yZSBjbG9zaW5nIGl0XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNCaWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG1wT3BlbmVkID0gdGhpcy5vcGVuZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgaW5jcmVhc2Ugd2luZG93IHNpemUsIGFuZCBzaWRlYmFyIHdhcyBvcGVuIGJlZm9yZSwgcmUtb3BlbiBpdC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQmlnICYmIHRoaXMudG1wT3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5lZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1pbmltaXplZCA9IHRoaXMuZ2V0TWluaW1pemVkU3RhdHVzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAoYXV0b0Nsb3NlKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF2SXRlbUNsaWNrZWQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc01vYmlsZVZpZXcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc01vYmlsZVZpZXc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvc2UgbmF2IG9uIG1vYmlsZSB2aWV3IGFmdGVyIGEgY2xpY2tcbiAgICAgKi9cbiAgICBwdWJsaWMgbmF2SXRlbUNsaWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pc01vYmlsZVZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZSBtaW5pbWl6ZWQgc3RhdHVzIGFuZCBzdG9yZXMgdGhlIG5ldyB2YWx1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRNaW5pbWl6ZWQodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5taW5pbWl6ZWQgPSB2YWx1ZTtcbiAgICAgICAgYXNzZXJ0KHRoaXMubWluaW1pemVkU3RvcmFnZUtleVdpdGhOYW1lKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMubWluaW1pemVkU3RvcmFnZUtleVdpdGhOYW1lLCB2YWx1ZSA/ICd0cnVlJyA6ICdmYWxzZScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBtaW5pbWl6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNaW5pbWl6ZWQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4cGFuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNaW5pbWl6ZWQoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGVNaW5pbWl6ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0TWluaW1pemVkKCF0aGlzLm1pbmltaXplZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBzdG9yZWQgbWluaW1pemVkIHN0YXR1c1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRNaW5pbWl6ZWRTdGF0dXMoKTogYm9vbGVhbiB7XG4gICAgICAgIGFzc2VydCh0aGlzLm1pbmltaXplZFN0b3JhZ2VLZXlXaXRoTmFtZSk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMubWluaW1pemVkU3RvcmFnZUtleVdpdGhOYW1lKTtcblxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgPyBmYWxzZSA6IHZhbHVlID09PSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBzdG9yZWQgb3BlbmVkIHN0YXR1c1xuICAgICAqIERlZmF1bHQgb24gYW4gb3BlbmVkIHN0YXR1cyBpZiBub3RoaW5nIGlzIHN0b3JlZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRNZW51T3BlbmVkU3RhdHVzKCk6IGJvb2xlYW4ge1xuICAgICAgICBhc3NlcnQodGhpcy5vcGVuZWRTdG9yYWdlS2V5V2l0aE5hbWUpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm9wZW5lZFN0b3JhZ2VLZXlXaXRoTmFtZSk7XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gIXRoaXMuX2lzTW9iaWxlVmlldztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlIG1lbnUgYnV0IGV4cGFuZCBpdCBpZiBtb2JpbGUgbW9kZSBpcyBhY3RpdmF0ZWRcbiAgICAgKiBTdG9yZXMgdGhlIHN0YXR1cyBpbiBsb2NhbCBzdG9yYWdlXG4gICAgICovXG4gICAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuZWQoIXRoaXMub3BlbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T3BlbmVkKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuZWQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE9wZW5lZCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5lZCA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLm9wZW5lZCAmJiB0aGlzLl9pc01vYmlsZVZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMubWluaW1pemVkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2lzTW9iaWxlVmlldykge1xuICAgICAgICAgICAgYXNzZXJ0KHRoaXMub3BlbmVkU3RvcmFnZUtleVdpdGhOYW1lKTtcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm9wZW5lZFN0b3JhZ2VLZXlXaXRoTmFtZSwgdGhpcy5vcGVuZWQgPyAndHJ1ZScgOiAnZmFsc2UnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2lkZW5hdi9zaWRlbmF2LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUMsYUFBYSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBaUIsZUFBZSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFbEYsT0FBTyxFQUFxQixXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUFFOUQ7O0dBRUc7QUFDSCxTQUFTLE1BQU0sQ0FBSSxLQUFRO0lBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQztJQUN2RixDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7OztHQUtHO0FBRUgsTUFBTSxPQUFPLHFCQUFxQjtJQTRDOUIsWUFDb0Isa0JBQXNDLEVBQ3JDLE1BQWMsRUFDVyxjQUE4QixFQUN2RCwwQkFBc0Q7UUFIdkQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNyQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ1csbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ3ZELCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUEvQzFELGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQ7Ozs7V0FJRztRQUNLLFVBQUssR0FBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFD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LE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFcEIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDO2FBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0YsQ0FBQztJQUNMLENBQUM7OEdBN01RLHFCQUFxQiwwRUErQ2xCLGVBQWU7a0hBL0NsQixxQkFBcUIsY0FEVCxNQUFNOzsyRkFDbEIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7MEJBZ0R2QixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Rlc3Ryb3lSZWYsIEluamVjdCwgaW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0RHJhd2VyTW9kZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQge05hdmlnYXRpb25FbmQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7ZmlsdGVyfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge05hdHVyYWxTaWRlbmF2Q29udGFpbmVyQ29tcG9uZW50fSBmcm9tICcuL3NpZGVuYXYtY29udGFpbmVyL3NpZGVuYXYtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge05hdHVyYWxTdG9yYWdlLCBTRVNTSU9OX1NUT1JBR0V9IGZyb20gJy4uL2NvbW1vbi9zZXJ2aWNlcy9tZW1vcnktc3RvcmFnZSc7XG5pbXBvcnQge05hdHVyYWxTaWRlbmF2U3RhY2tTZXJ2aWNlfSBmcm9tICcuL3NpZGVuYXYtc3RhY2suc2VydmljZSc7XG5pbXBvcnQge0JyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHN9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuLyoqXG4gKiBBc3NlcnQgdGhhdCBnaXZlbiB2YWx1ZSBpcyBub3QgbnVsbFxuICovXG5mdW5jdGlvbiBhc3NlcnQ8VD4odmFsdWU6IFQpOiBhc3NlcnRzIHZhbHVlIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBjYWxsIE5hdHVyYWxTaWRlbmF2U2VydmljZS5pbml0KCkgYmVmb3JlIHVzaW5nIHRoZSBzZXJ2aWNlJyk7XG4gICAgfVxufVxuXG4vKipcbiAqIFRPRE86IEZpeCBuYXYgbWluaW1pemUgYW5kIG1heGltaXplIHJlc2l6ZVxuICogU2luY2UgTWF0ZXJpYWwgMiBiZXRhIDEwLCB3aGVuIG5hdiBpcyByZXNpemVkIHRoZSBib2R5IGlzIG5vdCByZXNpemVkXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIvaXNzdWVzLzY3NDNcbiAqIE1heWJlIHRoZSBiZXR0ZXIgaXMgdG8gd2FpdCBuZXh0IHJlbGVhc2VcbiAqL1xuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFNpZGVuYXZTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgLyoqXG4gICAgICogTmF2aWdhdGlvbiBtb2Rlc1xuICAgICAqIEZpcnN0IGlzIGZvciBkZXNrdG9wIHZpZXdcbiAgICAgKiBTZWNvbmQgaXMgZm9yIG1vYmlsZSB2aWV3XG4gICAgICovXG4gICAgcHJpdmF0ZSBtb2RlczogTWF0RHJhd2VyTW9kZVtdID0gWydzaWRlJywgJ3B1c2gnXTtcblxuICAgIC8qKlxuICAgICAqIEFjdGl2YXRlZCBtb2RlXG4gICAgICogRGVmYXVsdCB0byBkZXNrdG9wIHZpZXdcbiAgICAgKi9cbiAgICBwcml2YXRlIG1vZGU6IE1hdERyYXdlck1vZGUgPSB0aGlzLm1vZGVzWzBdO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBuYXYgaXMgb3BlbmVkIG9yIG5vdFxuICAgICAqL1xuICAgIHByaXZhdGUgb3BlbmVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlcyB0aGUgb3BlbmVkIHN0YXR1cyBkdXJpbmcgbW9iaWxlIHZpZXcsIHRvIHJlc3RvcmUgaWYgd2UgY29tZSBiYWNrIHRvIGRlc2t0b3Agdmlld1xuICAgICAqL1xuICAgIHByaXZhdGUgdG1wT3BlbmVkOiBib29sZWFuID0gdGhpcy5vcGVuZWQ7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG5hdiBpcyBtaW5pbWl6ZWQgb3Igbm90XG4gICAgICovXG4gICAgcHJpdmF0ZSBtaW5pbWl6ZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIExvY2FsU3RvcmFnZSBrZXkgdGhhdCBzdG9yZXMgdGhlIG1pbmltaXplZCBzdGF0dXNcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG1pbmltaXplZFN0b3JhZ2VLZXkgPSAnbWVudS1taW5pbWl6ZWQnO1xuXG4gICAgLyoqXG4gICAgICogTG9jYWxTdG9yYWdlIGtleSB0aGF0IHN0b3JlcyB0aGUgb3BlbmVkIHN0YXR1c1xuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3BlbmVkU3RvcmFnZUtleSA9ICdtZW51LW9wZW5lZCc7XG5cbiAgICBwcml2YXRlIG1pbmltaXplZFN0b3JhZ2VLZXlXaXRoTmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBvcGVuZWRTdG9yYWdlS2V5V2l0aE5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2lzTW9iaWxlVmlldyA9IGZhbHNlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIEBJbmplY3QoU0VTU0lPTl9TVE9SQUdFKSBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlOiBOYXR1cmFsU3RvcmFnZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBuYXR1cmFsU2lkZW5hdlN0YWNrU2VydmljZTogTmF0dXJhbFNpZGVuYXZTdGFja1NlcnZpY2UsXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGdldCBhY3RpdmVNb2RlKCk6IE1hdERyYXdlck1vZGUge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNPcGVuZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTWluaW1pemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5taW5pbWl6ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koY29tcG9uZW50OiBOYXR1cmFsU2lkZW5hdkNvbnRhaW5lckNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdHVyYWxTaWRlbmF2U3RhY2tTZXJ2aWNlLnVucmVnaXN0ZXIoY29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdChuYW1lOiBzdHJpbmcsIGNvbXBvbmVudDogTmF0dXJhbFNpZGVuYXZDb250YWluZXJDb21wb25lbnQsIGF1dG9DbG9zZSA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICghbmFtZSB8fCBuYW1lID09PSAnJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBzaWRlbmF2IG5hbWUgcHJvdmlkZWQsIHVzZSA8bmF0dXJhbC1zaWRlbmF2LWNvbnRhaW5lciBuYW1lPVwibWVudVwiPicpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uYXR1cmFsU2lkZW5hdlN0YWNrU2VydmljZS5yZWdpc3Rlcihjb21wb25lbnQpO1xuXG4gICAgICAgIHRoaXMubWluaW1pemVkU3RvcmFnZUtleVdpdGhOYW1lID0gbmFtZSArICctJyArIHRoaXMubWluaW1pemVkU3RvcmFnZUtleTtcbiAgICAgICAgdGhpcy5vcGVuZWRTdG9yYWdlS2V5V2l0aE5hbWUgPSBuYW1lICsgJy0nICsgdGhpcy5vcGVuZWRTdG9yYWdlS2V5O1xuXG4gICAgICAgIC8vIEluaXQgZnJvbSBMb2NhbFN0b3JhZ2VcbiAgICAgICAgdGhpcy5taW5pbWl6ZWQgPSB0aGlzLmdldE1pbmltaXplZFN0YXR1cygpO1xuICAgICAgICB0aGlzLm9wZW5lZCA9IHRoaXMuZ2V0TWVudU9wZW5lZFN0YXR1cygpO1xuICAgICAgICB0aGlzLnRtcE9wZW5lZCA9IHRoaXMub3BlbmVkO1xuXG4gICAgICAgIGxldCBvbGRJc0JpZzogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG4gICAgICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZShbQnJlYWtwb2ludHMuWFNtYWxsLCBCcmVha3BvaW50cy5TbWFsbF0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUociA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNNb2JpbGVWaWV3ID0gci5tYXRjaGVzO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzQmlnID0gIXRoaXMuX2lzTW9iaWxlVmlldztcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGUgPSBpc0JpZyA/IHRoaXMubW9kZXNbMF0gOiB0aGlzLm1vZGVzWzFdO1xuXG4gICAgICAgICAgICAgICAgaWYgKG9sZElzQmlnID09PSBudWxsIHx8IGlzQmlnICE9PSBvbGRJc0JpZykge1xuICAgICAgICAgICAgICAgICAgICBvbGRJc0JpZyA9IGlzQmlnO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIElmIGRlY3JlYXNlIHdpbmRvdyBzaXplLCBzYXZlIHN0YXR1cyBvZiBtZW51IGJlZm9yZSBjbG9zaW5nIGl0XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNCaWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG1wT3BlbmVkID0gdGhpcy5vcGVuZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgaW5jcmVhc2Ugd2luZG93IHNpemUsIGFuZCBzaWRlYmFyIHdhcyBvcGVuIGJlZm9yZSwgcmUtb3BlbiBpdC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQmlnICYmIHRoaXMudG1wT3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5lZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1pbmltaXplZCA9IHRoaXMuZ2V0TWluaW1pemVkU3RhdHVzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAoYXV0b0Nsb3NlKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF2SXRlbUNsaWNrZWQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc01vYmlsZVZpZXcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc01vYmlsZVZpZXc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvc2UgbmF2IG9uIG1vYmlsZSB2aWV3IGFmdGVyIGEgY2xpY2tcbiAgICAgKi9cbiAgICBwdWJsaWMgbmF2SXRlbUNsaWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pc01vYmlsZVZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZSBtaW5pbWl6ZWQgc3RhdHVzIGFuZCBzdG9yZXMgdGhlIG5ldyB2YWx1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRNaW5pbWl6ZWQodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5taW5pbWl6ZWQgPSB2YWx1ZTtcbiAgICAgICAgYXNzZXJ0KHRoaXMubWluaW1pemVkU3RvcmFnZUtleVdpdGhOYW1lKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMubWluaW1pemVkU3RvcmFnZUtleVdpdGhOYW1lLCB2YWx1ZSA/ICd0cnVlJyA6ICdmYWxzZScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBtaW5pbWl6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNaW5pbWl6ZWQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4cGFuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRNaW5pbWl6ZWQoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGVNaW5pbWl6ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0TWluaW1pemVkKCF0aGlzLm1pbmltaXplZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBzdG9yZWQgbWluaW1pemVkIHN0YXR1c1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRNaW5pbWl6ZWRTdGF0dXMoKTogYm9vbGVhbiB7XG4gICAgICAgIGFzc2VydCh0aGlzLm1pbmltaXplZFN0b3JhZ2VLZXlXaXRoTmFtZSk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMubWluaW1pemVkU3RvcmFnZUtleVdpdGhOYW1lKTtcblxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgPyBmYWxzZSA6IHZhbHVlID09PSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBzdG9yZWQgb3BlbmVkIHN0YXR1c1xuICAgICAqIERlZmF1bHQgb24gYW4gb3BlbmVkIHN0YXR1cyBpZiBub3RoaW5nIGlzIHN0b3JlZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRNZW51T3BlbmVkU3RhdHVzKCk6IGJvb2xlYW4ge1xuICAgICAgICBhc3NlcnQodGhpcy5vcGVuZWRTdG9yYWdlS2V5V2l0aE5hbWUpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm9wZW5lZFN0b3JhZ2VLZXlXaXRoTmFtZSk7XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gIXRoaXMuX2lzTW9iaWxlVmlldztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlIG1lbnUgYnV0IGV4cGFuZCBpdCBpZiBtb2JpbGUgbW9kZSBpcyBhY3RpdmF0ZWRcbiAgICAgKiBTdG9yZXMgdGhlIHN0YXR1cyBpbiBsb2NhbCBzdG9yYWdlXG4gICAgICovXG4gICAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuZWQoIXRoaXMub3BlbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T3BlbmVkKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuZWQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE9wZW5lZCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5lZCA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLm9wZW5lZCAmJiB0aGlzLl9pc01vYmlsZVZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMubWluaW1pemVkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2lzTW9iaWxlVmlldykge1xuICAgICAgICAgICAgYXNzZXJ0KHRoaXMub3BlbmVkU3RvcmFnZUtleVdpdGhOYW1lKTtcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm9wZW5lZFN0b3JhZ2VLZXlXaXRoTmFtZSwgdGhpcy5vcGVuZWQgPyAndHJ1ZScgOiAnZmFsc2UnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -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: "18.1.0", ngImport: i0, type: NaturalStampComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", 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 | date }} ({{ 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 | date }} ({{ item.updateDate | timeAgo }})</span>\n }\n </div>\n }\n}\n", dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: NaturalTimeAgoPipe, name: "timeAgo" }] }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalStampComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", 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 | date }} ({{ 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 | date }} ({{ item.updateDate | timeAgo }})</span>\n }\n </div>\n }\n}\n", dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: NaturalTimeAgoPipe, name: "timeAgo" }] }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NaturalStampComponent, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalStampComponent, decorators: [{
16
16
  type: Component,
17
17
  args: [{ selector: 'natural-stamp', standalone: true, imports: [DatePipe, 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 | date }} ({{ 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 | date }} ({{ 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: "18.1.0", ngImport: i0, type: NaturalTableButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", 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{display:flex;flex:1;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{display:flex;flex:1;flex-direction:row;justify-content:flex-start;align-items:center}natural-table-button a.mat-mdc-button .mdc-button__label{display:flex;flex-direction:row;align-items:center}natural-table-button>span{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:0 8px}\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: "18.2.3", ngImport: i0, type: NaturalTableButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", 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{display:flex;flex:1;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{display:flex;flex:1;flex-direction:row;justify-content:flex-start;align-items:center}natural-table-button a.mat-mdc-button .mdc-button__label{display:flex;flex-direction:row;align-items:center}natural-table-button>span{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:0 8px}\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: "18.1.0", ngImport: i0, type: NaturalTableButtonComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", 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{display:flex;flex:1;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{display:flex;flex:1;flex-direction:row;justify-content:flex-start;align-items:center}natural-table-button a.mat-mdc-button .mdc-button__label{display:flex;flex-direction:row;align-items:center}natural-table-button>span{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:0 8px}\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: "18.1.0", ngImport: i0, type: NaturalDebounceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
143
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NaturalDebounceService, providedIn: 'root' }); }
142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalDebounceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
143
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalDebounceService, providedIn: 'root' }); }
144
144
  }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NaturalDebounceService, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", 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: "18.1.0", ngImport: i0, type: NaturalEnumService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
59
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NaturalEnumService, providedIn: 'root' }); }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalEnumService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
59
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalEnumService, providedIn: 'root' }); }
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NaturalEnumService, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", 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: "18.1.0", ngImport: i0, type: NaturalLinkMutationService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
145
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NaturalLinkMutationService, providedIn: 'root' }); }
144
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalLinkMutationService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
145
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalLinkMutationService, providedIn: 'root' }); }
146
146
  }
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NaturalLinkMutationService, decorators: [{
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", 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: "18.1.0", 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: "18.1.0", ngImport: i0, type: NaturalPersistenceService, providedIn: 'root' }); }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", 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: "18.2.3", ngImport: i0, type: NaturalPersistenceService, providedIn: 'root' }); }
112
112
  }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NaturalPersistenceService, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", 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: "18.1.0", ngImport: i0, type: NaturalSwissParsingDateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
55
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NaturalSwissParsingDateAdapter, providedIn: 'root' }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSwissParsingDateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
55
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSwissParsingDateAdapter, providedIn: 'root' }); }
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NaturalSwissParsingDateAdapter, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSwissParsingDateAdapter, decorators: [{
58
58
  type: Injectable,
59
59
  args: [{
60
60
  providedIn: 'root',
@@ -2,7 +2,6 @@
2
2
  /*
3
3
  * Public API Surface of natural
4
4
  */
5
- export * from './lib/classes/abstract-controller';
6
5
  export * from './lib/classes/abstract-detail';
7
6
  export * from './lib/classes/abstract-editable-list';
8
7
  export * from './lib/classes/abstract-list';
@@ -44,4 +43,4 @@ export * from './lib/modules/logger/public-api';
44
43
  export * from './lib/directives/http-prefix.directive';
45
44
  export { naturalProviders } from './lib/classes/providers';
46
45
  export { graphqlQuerySigner } from './lib/classes/signing';
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBRTNDOztHQUVHO0FBRUgsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsT0FBTyxFQUFDLGtCQUFrQixFQUFFLEtBQUssRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzdELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFNUMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsT0FBTyxFQUNILHlCQUF5QixFQUN6Qiw2QkFBNkIsR0FFaEMsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxjQUFjLG1EQUFtRCxDQUFDO0FBb0JsRSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJAYW5ndWxhci9sb2NhbGl6ZVwiIC8+XG5cbi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbmF0dXJhbFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvYWJzdHJhY3QtY29udHJvbGxlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL2Fic3RyYWN0LWRldGFpbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL2Fic3RyYWN0LWVkaXRhYmxlLWxpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy9hYnN0cmFjdC1saXN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvYWJzdHJhY3QtbmF2aWdhYmxlLWxpc3QnO1xuZXhwb3J0IHtjcmVhdGVIdHRwTGlua30gZnJvbSAnLi9saWIvY2xhc3Nlcy9hcG9sbG8tdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy9kYXRhLXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3F1ZXJ5LXZhcmlhYmxlLW1hbmFnZXInO1xuZXhwb3J0IHtjYW5jZWxsYWJsZVRpbWVvdXQsIGRlYnVnfSBmcm9tICcuL2xpYi9jbGFzc2VzL3J4anMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy91dGlsaXR5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdmFsaWRhdG9ycyc7XG5leHBvcnQge3ZhbGlkVGxkc30gZnJvbSAnLi9saWIvY2xhc3Nlcy90bGQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hYnN0cmFjdC1tb2RlbC5zZXJ2aWNlJztcbmV4cG9ydCB7TmF0dXJhbERlYm91bmNlU2VydmljZX0gZnJvbSAnLi9saWIvc2VydmljZXMvZGVib3VuY2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9lbnVtLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbGluay1tdXRhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7XG4gICAgTmF0dXJhbFBlcnNpc3RlbmNlU2VydmljZSxcbiAgICBOQVRVUkFMX1BFUlNJU1RFTkNFX1ZBTElEQVRPUixcbiAgICBQZXJzaXN0ZW5jZVZhbGlkYXRvcixcbn0gZnJvbSAnLi9saWIvc2VydmljZXMvcGVyc2lzdGVuY2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9zd2lzcy1wYXJzaW5nLWRhdGUtYWRhcHRlci5zZXJ2aWNlJztcblxuZXhwb3J0IHtcbiAgICBFeHRyYWN0UmVzb2x2ZSxcbiAgICBFeHRyYWN0VGFsbCxcbiAgICBFeHRyYWN0VGFsbE9uZSxcbiAgICBFeHRyYWN0VGNyZWF0ZSxcbiAgICBFeHRyYWN0VGRlbGV0ZSxcbiAgICBFeHRyYWN0VG9uZSxcbiAgICBFeHRyYWN0VHVwZGF0ZSxcbiAgICBFeHRyYWN0VmFsbCxcbiAgICBFeHRyYWN0VmNyZWF0ZSxcbiAgICBFeHRyYWN0VmRlbGV0ZSxcbiAgICBFeHRyYWN0Vm9uZSxcbiAgICBFeHRyYWN0VnVwZGF0ZSxcbiAgICBMaXRlcmFsLFxuICAgIE5hbWVPckZ1bGxOYW1lLFxuICAgIFJlc29sdmVkRGF0YSxcbn0gZnJvbSAnLi9saWIvdHlwZXMvdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2FsZXJ0L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9jb2x1bW5zLXBpY2tlci9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvY29tbW9uL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9kZXRhaWwtaGVhZGVyL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9maXhlZC1idXR0b24vcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpeGVkLWJ1dHRvbi1kZXRhaWwvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2hpZXJhcmNoaWMtc2VsZWN0b3IvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2ljb24vcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3BhbmVscy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvcmVsYXRpb25zL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9zZWFyY2gvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3NlbGVjdC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvc2lkZW5hdi9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvc3RhbXAvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RhYmxlLWJ1dHRvbi9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZGlhbG9nLXRyaWdnZXIvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2F2YXRhci9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvbWF0b21vL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9sb2dnZXIvcHVibGljLWFwaSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvaHR0cC1wcmVmaXguZGlyZWN0aXZlJztcbmV4cG9ydCB7bmF0dXJhbFByb3ZpZGVyc30gZnJvbSAnLi9saWIvY2xhc3Nlcy9wcm92aWRlcnMnO1xuZXhwb3J0IHtncmFwaHFsUXVlcnlTaWduZXJ9IGZyb20gJy4vbGliL2NsYXNzZXMvc2lnbmluZyc7XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBRTNDOztHQUVHO0FBRUgsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRTVDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELE9BQU8sRUFDSCx5QkFBeUIsRUFDekIsNkJBQTZCLEdBRWhDLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsY0FBYyxtREFBbUQsQ0FBQztBQW9CbEUsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwiQGFuZ3VsYXIvbG9jYWxpemVcIiAvPlxuXG4vKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5hdHVyYWxcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL2Fic3RyYWN0LWRldGFpbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL2Fic3RyYWN0LWVkaXRhYmxlLWxpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy9hYnN0cmFjdC1saXN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvYWJzdHJhY3QtbmF2aWdhYmxlLWxpc3QnO1xuZXhwb3J0IHtjcmVhdGVIdHRwTGlua30gZnJvbSAnLi9saWIvY2xhc3Nlcy9hcG9sbG8tdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy9kYXRhLXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3F1ZXJ5LXZhcmlhYmxlLW1hbmFnZXInO1xuZXhwb3J0IHtjYW5jZWxsYWJsZVRpbWVvdXQsIGRlYnVnfSBmcm9tICcuL2xpYi9jbGFzc2VzL3J4anMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy91dGlsaXR5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdmFsaWRhdG9ycyc7XG5leHBvcnQge3ZhbGlkVGxkc30gZnJvbSAnLi9saWIvY2xhc3Nlcy90bGQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hYnN0cmFjdC1tb2RlbC5zZXJ2aWNlJztcbmV4cG9ydCB7TmF0dXJhbERlYm91bmNlU2VydmljZX0gZnJvbSAnLi9saWIvc2VydmljZXMvZGVib3VuY2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9lbnVtLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbGluay1tdXRhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7XG4gICAgTmF0dXJhbFBlcnNpc3RlbmNlU2VydmljZSxcbiAgICBOQVRVUkFMX1BFUlNJU1RFTkNFX1ZBTElEQVRPUixcbiAgICBQZXJzaXN0ZW5jZVZhbGlkYXRvcixcbn0gZnJvbSAnLi9saWIvc2VydmljZXMvcGVyc2lzdGVuY2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9zd2lzcy1wYXJzaW5nLWRhdGUtYWRhcHRlci5zZXJ2aWNlJztcblxuZXhwb3J0IHtcbiAgICBFeHRyYWN0UmVzb2x2ZSxcbiAgICBFeHRyYWN0VGFsbCxcbiAgICBFeHRyYWN0VGFsbE9uZSxcbiAgICBFeHRyYWN0VGNyZWF0ZSxcbiAgICBFeHRyYWN0VGRlbGV0ZSxcbiAgICBFeHRyYWN0VG9uZSxcbiAgICBFeHRyYWN0VHVwZGF0ZSxcbiAgICBFeHRyYWN0VmFsbCxcbiAgICBFeHRyYWN0VmNyZWF0ZSxcbiAgICBFeHRyYWN0VmRlbGV0ZSxcbiAgICBFeHRyYWN0Vm9uZSxcbiAgICBFeHRyYWN0VnVwZGF0ZSxcbiAgICBMaXRlcmFsLFxuICAgIE5hbWVPckZ1bGxOYW1lLFxuICAgIFJlc29sdmVkRGF0YSxcbn0gZnJvbSAnLi9saWIvdHlwZXMvdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2FsZXJ0L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9jb2x1bW5zLXBpY2tlci9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvY29tbW9uL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9kZXRhaWwtaGVhZGVyL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9maWxlL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9maXhlZC1idXR0b24vcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpeGVkLWJ1dHRvbi1kZXRhaWwvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2hpZXJhcmNoaWMtc2VsZWN0b3IvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2ljb24vcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3BhbmVscy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvcmVsYXRpb25zL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9zZWFyY2gvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3NlbGVjdC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvc2lkZW5hdi9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvc3RhbXAvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RhYmxlLWJ1dHRvbi9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZGlhbG9nLXRyaWdnZXIvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2F2YXRhci9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvbWF0b21vL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9sb2dnZXIvcHVibGljLWFwaSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvaHR0cC1wcmVmaXguZGlyZWN0aXZlJztcbmV4cG9ydCB7bmF0dXJhbFByb3ZpZGVyc30gZnJvbSAnLi9saWIvY2xhc3Nlcy9wcm92aWRlcnMnO1xuZXhwb3J0IHtncmFwaHFsUXVlcnlTaWduZXJ9IGZyb20gJy4vbGliL2NsYXNzZXMvc2lnbmluZyc7XG4iXX0=