@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
@@ -21,10 +21,10 @@ export class NaturalAbstractController {
21
21
  this.ngUnsubscribe.next(); // unsubscribe everybody
22
22
  this.ngUnsubscribe.complete(); // complete the stream, because we will never emit again
23
23
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractController, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
25
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalAbstractController, ngImport: i0 }); }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAbstractController, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
25
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: NaturalAbstractController, ngImport: i0 }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractController, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAbstractController, decorators: [{
28
28
  type: Directive
29
29
  }] });
30
30
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9jbGFzc2VzL2Fic3RyYWN0LWNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUc3QixNQUFNLE9BQU8seUJBQXlCO0lBRHRDO1FBRUk7Ozs7Ozs7Ozs7O1dBV0c7UUFDZ0Isa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0tBTTFEO0lBSlUsV0FBVztRQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7UUFDbkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLHdEQUF3RDtJQUMzRixDQUFDOzhHQWxCUSx5QkFBeUI7a0dBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEckMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTmF0dXJhbEFic3RyYWN0Q29udHJvbGxlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogVXNhZ2U6XG4gICAgICpcbiAgICAgKiBgYGB0c1xuICAgICAqIGltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbiAgICAgKiAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkgLy8gYXMgZmlyc3QgcGlwZSBvbiBvYnNlcnZhYmxlcyB0aGF0IHNob3VsZCBiZSBkZXN0cm95ZWQgb24gY29tcG9uZW50IGRlc3Ryb3lcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkIEluc3RlYWQgb2YgdGhpcywgeW91IHNob3VsZCBjcmVhdGUgdGhlIG9ic2VydmFibGUgaW4gdGhlIGNvbnN0cnVjdG9yIG9yIGZpZWxkIGluaXRpYWxpemVycyBhbmQgdXNlXG4gICAgICogQW5ndWxhciBuYXRpdmUgYC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKWAuIEFuZCBtb3N0IGxpa2VseSBzdWJzY3JpYmUgYXQgYSBsYXRlciBwb2ludC4gV2Uga2VlcCB0aGlzIG1ldGhvZCB1bnRpbFxuICAgICAqIGFsbCBleGlzdGluZyB1c2FnZXMgKHR5cGljYWxseSBpbiBgbmdPbkluaXQoKWApIGFyZSBtaWdyYXRlZCBhd2F5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTsgLy8gdW5zdWJzY3JpYmUgZXZlcnlib2R5XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpOyAvLyBjb21wbGV0ZSB0aGUgc3RyZWFtLCBiZWNhdXNlIHdlIHdpbGwgbmV2ZXIgZW1pdCBhZ2FpblxuICAgIH1cbn1cbiJdfQ==
@@ -231,10 +231,10 @@ export class NaturalAbstractDetail extends NaturalAbstractPanel {
231
231
  this.form = this.service.getFormGroup(this.data.model);
232
232
  this.#changes.initialize(this.form.getRawValue());
233
233
  }
234
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractDetail, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
235
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalAbstractDetail, usesInheritance: true, ngImport: i0 }); }
234
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAbstractDetail, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
235
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: NaturalAbstractDetail, usesInheritance: true, ngImport: i0 }); }
236
236
  }
237
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractDetail, decorators: [{
237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAbstractDetail, decorators: [{
238
238
  type: Directive
239
239
  }], ctorParameters: () => [{ type: undefined }, { type: undefined }] });
240
240
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL2NsYXNzZXMvYWJzdHJhY3QtZGV0YWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUd0RSxPQUFPLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFHOUQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDOztBQVN6RCxTQUFTLGtDQUFrQyxDQUN2QyxVQUFtQjtJQUVuQixPQUFPLENBQ0gsQ0FBQyxDQUFDLFVBQVU7UUFDWixPQUFPLFVBQVUsS0FBSyxRQUFRO1FBQzlCLGdCQUFnQixJQUFJLFVBQVU7UUFDOUIsVUFBVSxDQUFDLGNBQWMsWUFBWSxjQUFjLENBQ3RELENBQUM7QUFDTixDQUFDO0FBRUQsV0FBVztBQUVYLE1BQU0sT0FBTyxxQkFlVCxTQUFRLG9CQUFvQjtJQTJDNUIsV0FBVyxD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SUFDdEQsQ0FBQzs4R0FyUlEscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBRGpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgaW5qZWN0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2tlYmFiQ2FzZX0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7TmF0dXJhbEFsZXJ0U2VydmljZX0gZnJvbSAnLi4vbW9kdWxlcy9hbGVydC9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0UGFuZWx9IGZyb20gJy4uL21vZHVsZXMvcGFuZWxzL2Fic3RyYWN0LXBhbmVsJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0TW9kZWxTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9hYnN0cmFjdC1tb2RlbC5zZXJ2aWNlJztcbmltcG9ydCB7RXh0cmFjdFJlc29sdmUsIEV4dHJhY3RUY3JlYXRlLCBFeHRyYWN0VG9uZSwgRXh0cmFjdFR1cGRhdGUsIExpdGVyYWx9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcbmltcG9ydCB7RU1QVFksIGVuZFdpdGgsIGZpbmFsaXplLCBsYXN0LCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2lmVmFsaWQsIHZhbGlkYXRlQWxsRm9ybUNvbnRyb2xzfSBmcm9tICcuL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHtQYWdpbmF0ZWREYXRhfSBmcm9tICcuL2RhdGEtc291cmNlJztcbmltcG9ydCB7UXVlcnlWYXJpYWJsZXN9IGZyb20gJy4vcXVlcnktdmFyaWFibGUtbWFuYWdlcic7XG5pbXBvcnQge0N1bXVsYXRpdmVDaGFuZ2VzfSBmcm9tICcuL2N1bXVsYXRpdmUtY2hhbmdlcyc7XG5pbXBvcnQge01BVF9ESUFMT0dfREFUQX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7TmF0dXJhbERpYWxvZ1RyaWdnZXJQcm92aWRlZERhdGF9IGZyb20gJy4uL21vZHVsZXMvZGlhbG9nLXRyaWdnZXIvZGlhbG9nLXRyaWdnZXIuY29tcG9uZW50JztcblxuLyoqXG4gKiBgRGF0YWAgY29udGFpbnMgaW4gYG1vZGVsYCBlaXRoZXIgdGhlIG1vZGVsIGZldGNoZWQgZnJvbSBEQiBvciBkZWZhdWx0IHZhbHVlcyAod2l0aG91dCBJRCkuIEFuZCBiZXNpZGVzIGBtb2RlbGAsXG4gKiBhbnkgb3RoZXIgZXh0cmEga2V5cyBkZWZpbmVkIGJ5IEV4dHJhLlxuICovXG50eXBlIERhdGE8VFNlcnZpY2UsIEV4dHJhPiA9IHttb2RlbDoge2lkPzogc3RyaW5nfSAmIEV4dHJhY3RSZXNvbHZlPFRTZXJ2aWNlPn0gJiBFeHRyYTtcblxuZnVuY3Rpb24gaXNOYXR1cmFsRGlhbG9nVHJpZ2dlclByb3ZpZGVkRGF0YShcbiAgICBkaWFsb2dEYXRhOiB1bmtub3duLFxuKTogZGlhbG9nRGF0YSBpcyBOYXR1cmFsRGlhbG9nVHJpZ2dlclByb3ZpZGVkRGF0YTxuZXZlcj4ge1xuICAgIHJldHVybiAoXG4gICAgICAgICEhZGlhbG9nRGF0YSAmJlxuICAgICAgICB0eXBlb2YgZGlhbG9nRGF0YSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgJ2FjdGl2YXRlZFJvdXRlJyBpbiBkaWFsb2dEYXRhICYmXG4gICAgICAgIGRpYWxvZ0RhdGEuYWN0aXZhdGVkUm91dGUgaW5zdGFuY2VvZiBBY3RpdmF0ZWRSb3V0ZVxuICAgICk7XG59XG5cbi8vIEBkeW5hbWljXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBOYXR1cmFsQWJzdHJhY3REZXRhaWw8XG4gICAgICAgIFRTZXJ2aWNlIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0TW9kZWxTZXJ2aWNlPFxuICAgICAgICAgICAge2lkOiBzdHJpbmd9LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgUGFnaW5hdGVkRGF0YTxMaXRlcmFsPixcbiAgICAgICAgICAgIFF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgYW55LFxuICAgICAgICAgICAgdW5rbm93bixcbiAgICAgICAgICAgIGFueVxuICAgICAgICA+LFxuICAgICAgICBFeHRyYVJlc29sdmUgZXh0ZW5kcyBMaXRlcmFsID0gUmVjb3JkPG5ldmVyLCBuZXZlcj4sXG4gICAgPlxuICAgIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0UGFuZWxcbiAgICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICAgIC8qKlxuICAgICAqIERhdGEgcmV0cmlldmVkIGJ5IHRoZSBzZXJ2ZXIgdmlhIHJvdXRlIHJlc29sdmVycy5cbiAgICAgKlxuICAgICAqIFRoZSBrZXkgYG1vZGVsYCBpcyBzcGVjaWFsLiBJdCBpcyByZWFkb25seSBhbmQgcmVwcmVzZW50cyB0aGUgbW9kZWwgYmVpbmcgdXBkYXRlZFxuICAgICAqIGFzIGl0IGV4aXN0cyBvbiBzZXJ2ZXIuIFRoZSB2YWx1ZSBpcyBrZXB0IHVwIHRvIGRhdGUgd2hlbiBBcG9sbG8gbXV0YXRlcyBpdCBvbiBzZXJ2ZXIuXG4gICAgICpcbiAgICAgKiBUaGUgb25seSB0aW1lIHdoZW4gYG1vZGVsYCBpcyBub3QgcmVhZG9ubHkgaXMgZHVyaW5nIGNyZWF0aW9uLiBPbmx5IHRoZW4gY2FuIHdlIG1vZGlmeSB0aGUgbW9kZWwgdmFsdWVzIGRpcmVjdGx5LlxuICAgICAqXG4gICAgICogT3RoZXIga2V5cywgaWYgcHJlc2VudCwgYXJlIHdoYXRldmVyIGlzIHJldHVybmVkIGZyb20gcm91dGUgcmVzb2x2ZXJzIGFzLWlzLlxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBkYXRhOiBEYXRhPFRTZXJ2aWNlLCBFeHRyYVJlc29sdmU+ID0ge1xuICAgICAgICBtb2RlbDogdGhpcy5zZXJ2aWNlLmdldERlZmF1bHRGb3JTZXJ2ZXIoKSxcbiAgICB9IGFzIERhdGE8VFNlcnZpY2UsIEV4dHJhUmVzb2x2ZT47XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHRoYXQgbWFuYWdlcyB0aGUgZGF0YSBmcm9tIHRoZSBjb250cm9sbGVyXG4gICAgICovXG4gICAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG5cbiAgICAvKipcbiAgICAgKiBTaG93IC8gaGlkZXMgdGhlIGJvdHRvbSBmYWIgYnV0dG9uIChtb3N0bHkgdG8gaGlkZSBpdCB3aGVuIHdlIGFyZSBvbiBvdGhlciB0YWJzIHdoZXJlIHNlbWFudGljIG9mIGJ1dHRvbiBjYW4gY29uZmxpY3Qgd2l0aCAuLi5cbiAgICAgKiBzZW1hbnRpYyBvZiBkYXRhIG9uIG90aGVyIHRhYiwgbGlrZSByZWxhdGlvbnMgdGhhdCBsaXN0IG90aGVyIG9iamVjdHMpXG4gICAgICovXG4gICAgcHVibGljIHNob3dGYWJCdXR0b24gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSW5qZWN0ZWQgc2VydmljZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBhbGVydFNlcnZpY2UgPSBpbmplY3QoTmF0dXJhbEFsZXJ0U2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiBJbmplY3RlZCBzZXJ2aWNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gICAgLyoqXG4gICAgICogSW5qZWN0ZWQgc2VydmljZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG5cbiAgICAjZGlhbG9nRGF0YTogdW5rbm93biA9IGluamVjdChNQVRfRElBTE9HX0RBVEEsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gICAgLyoqXG4gICAgICogT25jZSBzZXQsIHRoaXMgbXVzdCBub3QgY2hhbmdlIGFueW1vcmUsIGVzcGVjaWFsbHkgbm90IHJpZ2h0IGFmdGVyIHRoZSBjcmVhdGlvbiBtdXRhdGlvbixcbiAgICAgKiBzbyB0aGUgZm9ybSBkb2VzIG5vdCBzd2l0Y2ggZnJvbSBjcmVhdGlvbiBtb2RlIHRvIHVwZGF0ZSBtb2RlIHdpdGhvdXQgYW4gYWN0dWFsIHJlbG9hZCBvZlxuICAgICAqIG1vZGVsIGZyb20gREIgKGJ5IG5hdmlnYXRpbmcgdG8gdXBkYXRlIHBhZ2UpLlxuICAgICAqL1xuICAgICNpc1VwZGF0ZVBhZ2UgPSBmYWxzZTtcbiAgICByZWFkb25seSAjY2hhbmdlcyA9IG5ldyBDdW11bGF0aXZlQ2hhbmdlczx0eXBlb2YgdGhpcy5mb3JtLmdldFJhd1ZhbHVlPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkga2V5OiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlOiBUU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBZb3UgcHJvYmFibHkgc2hvdWxkIG5vdCBvdmVycmlkZSB0aGlzIG1ldGhvZC4gSW5zdGVhZCwgY29uc2lkZXIgb3ZlcnJpZGluZyBgaW5pdEZvcm0oKWAuXG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByb3V0ZSA9IGlzTmF0dXJhbERpYWxvZ1RyaWdnZXJQcm92aWRlZERhdGEodGhpcy4jZGlhbG9nRGF0YSlcbiAgICAgICAgICAgICAgICA/IHRoaXMuI2RpYWxvZ0RhdGEuYWN0aXZhdGVkUm91dGVcbiAgICAgICAgICAgICAgICA6IHRoaXMucm91dGU7XG4gICAgICAgICAgICB0aGlzLiNzdWJzY3JpYmVUb01vZGVsRnJvbVJlc29sdmVkRGF0YShyb3V0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlVGFiKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93RmFiQnV0dG9uID0gaW5kZXggPT09IDA7XG4gICAgfVxuXG4gICAgI3N1YnNjcmliZVRvTW9kZWxGcm9tUmVzb2x2ZWREYXRhKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IHZvaWQge1xuICAgICAgICBsZXQgcHJldmlvdXNJZCA9IC0xO1xuICAgICAgICByb3V0ZS5kYXRhXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghKGRhdGEubW9kZWwgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZXNvbHZlZCBkYXRhIG11c3QgaW5jbHVkZSB0aGUga2V5IGBtb2RlbGAsIGFuZCBpdCBtdXN0IGJlIGFuIG9ic2VydmFibGUgKHVzdWFsbHkgb25lIGZyb20gQXBvbGxvKS4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIFN1YnNjcmliZSB0byBtb2RlbCB0byBrbm93IHdoZW4gQXBvbGxvIGNhY2hlIGlzIGNoYW5nZWQsIHNvIHdlIGNhbiByZWZsZWN0IGl0IGludG8gYGRhdGEubW9kZWxgXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm1vZGVsLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXAoKG1vZGVsOiBFeHRyYWN0UmVzb2x2ZTxUU2VydmljZT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsOiBtb2RlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGFzIERhdGE8VFNlcnZpY2UsIEV4dHJhUmVzb2x2ZT47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNJZCAhPT0gbW9kZWwuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNJZCA9IG1vZGVsLmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGBkYXRhLm1vZGVsYCB3YXMgZmV0Y2hlZCBmcm9tIERCLCBzbyB3ZSBhcmUgb24gYW4gdXBkYXRlIHBhZ2UsIG9yIGlmIGl0IGlzIGEgbmV3IG9iamVjdFxuICAgICAqIHdpdGggKG9ubHkpIGRlZmF1bHQgdmFsdWVzLCBzbyB3ZSBhcmUgb24gYSBjcmVhdGlvbiBwYWdlLlxuICAgICAqXG4gICAgICogVGhpcyBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIGNoZWNraW5nIGBkYXRhLm1vZGVsLmlkYCBkaXJlY3RseSwgaW4gb3JkZXIgdG8gdHlwZSBndWFyZCBhbmQgZ2V0IHByb3BlciB0eXBpbmdcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaXNVcGRhdGVQYWdlKCk6IHRoaXMgaXMge2RhdGE6IHttb2RlbDogRXh0cmFjdFRvbmU8VFNlcnZpY2U+fX0ge1xuICAgICAgICByZXR1cm4gdGhpcy4jaXNVcGRhdGVQYWdlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgb2JqZWN0IG9uIHRoZSBzZXJ2ZXIgd2l0aCB0aGUgdmFsdWVzIGZyb20gdGhlIGZvcm0gZmllbGRzIHRoYXQgd2VyZSBtb2RpZmllZCBzaW5jZVxuICAgICAqIHRoZSBpbml0aWFsaXphdGlvbiwgb3Igc2luY2UgdGhlIHByZXZpb3VzIHN1Y2Nlc3NmdWwgdXBkYXRlLlxuICAgICAqXG4gICAgICogRm9ybSBmaWVsZHMgdGhhdCBhcmUgbmV2ZXIgbW9kaWZpZWQgYXJlICoqbm90Kiogc2VudCB0byB0aGUgc2VydmVyLCB1bmxlc3MgaWYgeW91IHNwZWNpZnkgYHN1Ym1pdEFsbEZpZWxkc2AuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZShub3cgPSBmYWxzZSwgc3VibWl0QWxsRmllbGRzID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVXBkYXRlUGFnZSgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YWxpZGF0ZUFsbEZvcm1Db250cm9scyh0aGlzLmZvcm0pO1xuXG4gICAgICAgIGlmVmFsaWQodGhpcy5mb3JtKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWVzID0gdGhpcy5mb3JtLmdldFJhd1ZhbHVlKCk7XG4gICAgICAgICAgICBpZiAoc3VibWl0QWxsRmllbGRzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4jY2hhbmdlcy5pbml0aWFsaXplKHt9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdG9TdWJtaXQgPSB7XG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuZGF0YS5tb2RlbC5pZCxcbiAgICAgICAgICAgICAgICAuLi50aGlzLiNjaGFuZ2VzLmRpZmZlcmVuY2VzKG5ld1ZhbHVlcyksXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCB1cGRhdGUgPSBub3cgPyB0aGlzLnNlcnZpY2UudXBkYXRlTm93KHRvU3VibWl0KSA6IHRoaXMuc2VydmljZS51cGRhdGUodG9TdWJtaXQpO1xuICAgICAgICAgICAgdXBkYXRlLnN1YnNjcmliZShtb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy4jY2hhbmdlcy5jb21taXQobmV3VmFsdWVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5pbmZvKCRsb2NhbGl6ZWBNaXMgw6Agam91cmApO1xuICAgICAgICAgICAgICAgIHRoaXMucG9zdFVwZGF0ZShtb2RlbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZShyZWRpcmVjdCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdmFsaWRhdGVBbGxGb3JtQ29udHJvbHModGhpcy5mb3JtKTtcblxuICAgICAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3VmFsdWVzID0gdGhpcy5mb3JtLmdldFJhd1ZhbHVlKCk7XG4gICAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAuY3JlYXRlKG5ld1ZhbHVlcylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChtb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8oJGxvY2FsaXplYENyw6nDqWApO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc3RDcmVhdGUobW9kZWwpLnBpcGUoZW5kV2l0aChtb2RlbCksIGxhc3QoKSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKG1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlZGlyZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2xkVXJsID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRVcmwgPSB0aGlzLnBhbmVsRGF0YT8uY29uZmlnLnBhcmFtcy5uZXh0Um91dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3VXJsID0gb2xkVXJsLnJlcGxhY2UoJy9uZXcnLCAnLycgKyBtb2RlbC5pZCkgKyAobmV4dFVybCA/ICcvJyArIG5leHRVcmwgOiAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwobmV3VXJsKTsgLy8gcmVwbGFjZSAvbmV3IGJ5IC8xMjNcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi4nLCBtb2RlbC5pZF0sIHtyZWxhdGl2ZVRvOiB0aGlzLnJvdXRlfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5mb3JtLmVuYWJsZSgpKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBgY29uZmlybWVyYCBjYW4gYmUgdXNlZCB0byBvcGVuIGEgY3VzdG9tIGRpYWxvZywgb3IgYW55dGhpbmcgZWxzZSwgdG8gY29uZmlybSB0aGUgZGVsZXRpb24sIGluc3RlYWQgb2YgdGhlIHN0YW5kYXJkIGRpYWxvZ1xuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGUocmVkaXJlY3Rpb25Sb3V0ZT86IHVua25vd25bXSwgY29uZmlybWVyPzogT2JzZXJ2YWJsZTxib29sZWFuIHwgdW5kZWZpbmVkPik6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuXG4gICAgICAgIChcbiAgICAgICAgICAgIGNvbmZpcm1lciA/P1xuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuY29uZmlybShcbiAgICAgICAgICAgICAgICAkbG9jYWxpemVgU3VwcHJlc3Npb25gLFxuICAgICAgICAgICAgICAgICRsb2NhbGl6ZWBWb3VsZXotdm91cyBzdXBwcmltZXIgZMOpZmluaXRpdmVtZW50IGNldCDDqWzDqW1lbnQgP2AsXG4gICAgICAgICAgICAgICAgJGxvY2FsaXplYFN1cHByaW1lciBkw6lmaW5pdGl2ZW1lbnRgLFxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoY29uZmlybWVkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25maXJtZWQgfHwgIXRoaXMuaXNVcGRhdGVQYWdlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJlRGVsZXRlKHRoaXMuZGF0YS5tb2RlbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5kZWxldGUoW3RoaXMuZGF0YS5tb2RlbF0pLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmluZm8oJGxvY2FsaXplYFN1cHByaW3DqWApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNQYW5lbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhbmVsU2VydmljZT8uZ29Ub1BlbnVsdGltYXRlUGFuZWwoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVmYXVsdFJvdXRlID0gWycuLi8uLi8nICsga2ViYWJDYXNlKHRoaXMua2V5KV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShyZWRpcmVjdGlvblJvdXRlID8gcmVkaXJlY3Rpb25Sb3V0ZSA6IGRlZmF1bHRSb3V0ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5mb3JtLmVuYWJsZSgpKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHJvdGVjdGVkIHBvc3RVcGRhdGUobW9kZWw6IEV4dHJhY3RUdXBkYXRlPFRTZXJ2aWNlPik6IHZvaWQge1xuICAgICAgICAvLyBub29wXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgd2lsbCBiZSBzdWJzY3JpYmVkIHRvIGltbWVkaWF0ZWx5IGFuZCB0aGVcbiAgICAgKiByZWRpcmVjdCBuYXZpZ2F0aW9uIHdpbGwgb25seSBoYXBwZW4gYWZ0ZXIgdGhlIG9ic2VydmFibGUgY29tcGxldGVzLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBwcm90ZWN0ZWQgcG9zdENyZWF0ZShtb2RlbDogRXh0cmFjdFRjcmVhdGU8VFNlcnZpY2U+KTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgICAgIHJldHVybiBFTVBUWTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHJvdGVjdGVkIHByZURlbGV0ZShtb2RlbDogRXh0cmFjdFRvbmU8VFNlcnZpY2U+KTogdm9pZCB7XG4gICAgICAgIC8vIG5vb3BcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplIHRoZSBmb3JtIHdoZW5ldmVyIGl0IGlzIG5lZWRlZC5cbiAgICAgKlxuICAgICAqIFlvdSBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QsIGFuZCBub3QgYG5nT25Jbml0KClgIGlmIHlvdSBuZWVkIHRvIGN1c3RvbWl6ZSB0aGUgZm9ybS4gQmVjYXVzZSB0aGlzIHdpbGxcbiAgICAgKiBjb3JyZWN0bHkgYmUgY2FsbGVkIG1vcmUgdGhhbiBvbmUgdGltZSBwZXIgY29tcG9uZW50IGluc3RhbmNlIGlmIG5lZWRlZCwgd2hlbiB0aGUgcm91dGUgY2hhbmdlcy4gQnV0IGBuZ09uSW5pdCgpYFxuICAgICAqIHdpbGwgaW5jb3JyZWN0bHkgYmUgY2FsbGVkIGV4YWN0bHkgMSB0aW1lIHBlciBjb21wb25lbnQgaW5zdGFuY2UsIGV2ZW4gaWYgdGhlIG9iamVjdCBjaGFuZ2VzIHZpYSByb3V0ZSBuYXZpZ2F0aW9uLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBpbml0Rm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy4jaXNVcGRhdGVQYWdlID0gISF0aGlzLmRhdGEubW9kZWwuaWQ7XG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuc2VydmljZS5nZXRGb3JtR3JvdXAodGhpcy5kYXRhLm1vZGVsKTtcbiAgICAgICAgdGhpcy4jY2hhbmdlcy5pbml0aWFsaXplKHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKTtcbiAgICB9XG59XG4iXX0=
@@ -89,10 +89,10 @@ export class NaturalAbstractEditableList extends NaturalAbstractController {
89
89
  validateForm() {
90
90
  validateAllFormControls(this.form);
91
91
  }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractEditableList, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
93
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalAbstractEditableList, usesInheritance: true, ngImport: i0 }); }
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAbstractEditableList, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
93
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: NaturalAbstractEditableList, usesInheritance: true, ngImport: i0 }); }
94
94
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractEditableList, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAbstractEditableList, decorators: [{
96
96
  type: Directive
97
97
  }], ctorParameters: () => [{ type: undefined }] });
98
98
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZWRpdGFibGUtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9jbGFzc2VzL2Fic3RyYWN0LWVkaXRhYmxlLWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFaEMsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFDLDRCQUE0QixFQUFpQixNQUFNLDBCQUEwQixDQUFDO0FBRXRGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUNyRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUd4Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUVILE1BQU0sT0FBTywyQkFnQlgsU0FBUSx5QkFBeUI7SUFNL0IsWUFBc0MsT0FBaUI7UUFDbkQsS0FBSyxFQUFFLENBQUM7UUFEMEIsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUp2QyxjQUFTLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQyxxQkFBZ0IsR0FBRyxJQUFJLDRCQUE0QixFQUF5QixDQUFDO1FBQzdFLGVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFtQixDQUFDO1FBS25FLDhHQUE4RztRQUM5RyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZ0JBQWdCLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBQyxVQUFVLEVBQUUsRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUMsRUFBMEIsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVEsQ0FBQyxLQUFtQjtRQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsYUFBYTtRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRLENBQUMsS0FBbUI7UUFDL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNqQixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDbkQsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBTyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxZQUFZO1FBQ2YsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OEdBdkZRLDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUR2QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIFVudHlwZWRGb3JtQXJyYXksIFVudHlwZWRGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0VGFibGVEYXRhU291cmNlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQge21lcmdlfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtOYXR1cmFsQWJzdHJhY3RNb2RlbFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2Fic3RyYWN0LW1vZGVsLnNlcnZpY2UnO1xuaW1wb3J0IHtOYXR1cmFsQWJzdHJhY3RDb250cm9sbGVyfSBmcm9tICcuL2Fic3RyYWN0LWNvbnRyb2xsZXInO1xuaW1wb3J0IHtOYXR1cmFsUXVlcnlWYXJpYWJsZXNNYW5hZ2VyLCBRdWVyeVZhcmlhYmxlc30gZnJvbSAnLi9xdWVyeS12YXJpYWJsZS1tYW5hZ2VyJztcbmltcG9ydCB7RXh0cmFjdFRhbGxPbmUsIEV4dHJhY3RWYWxsLCBMaXRlcmFsfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XG5pbXBvcnQge3ZhbGlkYXRlQWxsRm9ybUNvbnRyb2xzfSBmcm9tICcuL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHtEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQYWdpbmF0ZWREYXRhfSBmcm9tICcuL2RhdGEtc291cmNlJztcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGhlbHBzIG1hbmFnaW5nIG5vbi1wYWdpbmF0ZWQgcm93cyBvZiBpdGVtcyB0aGF0IGNhbiBiZSBlZGl0ZWQgaW4tcGxhY2UsIHR5cGljYWxseSBpbiBhIDxtYXQtdGFibGU+LlxuICogQnV0IGl0IGRvZXMgKipub3QqKiBtdXRhdGUgYW55dGhpbmcgdG8gcGVyc2lzdCB0aGUgZWRpdHMgb24gdGhlIHNlcnZlci4gSXQgaXMgdXAgdG8gdGhlIGNvbnN1bWluZyBjb21wb25lbnQgdG8gaW1wbGVtZW50XG4gKiBjdXN0b20gbXV0YXRpb24gbWVjaGFuaXNtLlxuICpcbiAqIFRvIGFjY2VzcyBkYXRhIG9mIHRoaXMgY29tcG9uZW50IGZyb20gYSBwYXJlbnQgY29tcG9uZW50LCB1c2U6XG4gKlxuICogYGBgXG4gKiBAVmlld0NoaWxkcmVuKENvbXBvbmVudFR5cGUpIGNtcDogQ29tcG9uZW50VHlwZTtcbiAqIHRoaXMuY21wLmdldEl0ZW1zKCk7XG4gKiBgYGBcbiAqXG4gKiBUbyBhZGQgZW1wdHkgbGluZSwgY2FsbDpcbiAqXG4gKiBgYGBcbiAqIHRoaXMuY21wLmFkZEVtcHR5KCk7XG4gKiBgYGBcbiAqXG4gKiBAZHluYW1pY1xuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBOYXR1cmFsQWJzdHJhY3RFZGl0YWJsZUxpc3Q8XG4gICAgVFNlcnZpY2UgZXh0ZW5kcyBOYXR1cmFsQWJzdHJhY3RNb2RlbFNlcnZpY2U8XG4gICAgICAgIGFueSxcbiAgICAgICAgYW55LFxuICAgICAgICBQYWdpbmF0ZWREYXRhPExpdGVyYWw+LFxuICAgICAgICBRdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgYW55LFxuICAgICAgICBhbnksXG4gICAgICAgIGFueSxcbiAgICAgICAgYW55LFxuICAgICAgICBhbnksXG4gICAgICAgIGFueVxuICAgID4sXG4gICAgLy8gVGhlIExpdGVyYWwgaGVyZSBpcyBhIGJpdCB0b28gbG9vc2UuIElkZWFsbHkgd2Ugd291bGQgbGlrZSB0byBleHByZXNzXG4gICAgLy8gXCJpdCBtdXN0IGJlIGEgdW5pb24gYW5kIG9uZSBvZiB0aGUgdHlwZSBpbiB0aGUgdW5pb24gbXVzdCBiZSBFeHRyYWN0VGFsbE9uZTxUU2VydmljZT5cIlxuICAgIFQgZXh0ZW5kcyBMaXRlcmFsID0gRXh0cmFjdFRhbGxPbmU8VFNlcnZpY2U+LFxuPiBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdENvbnRyb2xsZXIge1xuICAgIHB1YmxpYyByZWFkb25seSBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgIHB1YmxpYyByZWFkb25seSBmb3JtQXJyYXkgPSBuZXcgVW50eXBlZEZvcm1BcnJheShbXSk7XG4gICAgcHVibGljIHJlYWRvbmx5IHZhcmlhYmxlc01hbmFnZXIgPSBuZXcgTmF0dXJhbFF1ZXJ5VmFyaWFibGVzTWFuYWdlcjxFeHRyYWN0VmFsbDxUU2VydmljZT4+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPEFic3RyYWN0Q29udHJvbD4oKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZTogVFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICAvLyBDcmVhdGUgYSBmb3JtIGdyb3VwIHdpdGggYSBsaW5lIGF0dHJpYnV0ZXMgdGhhdCBjb250YWluIGFuIGFycmF5IG9mIGZvcm1Hcm91cHMgKG9uZSBieSBsaW5lID0gb25lIGJ5IG1vZGVsKVxuICAgICAgICB0aGlzLmZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7cm93czogdGhpcy5mb3JtQXJyYXl9KTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLmZvcm1BcnJheS5jb250cm9scztcbiAgICAgICAgdGhpcy52YXJpYWJsZXNNYW5hZ2VyLnNldCgncGFnaW5hdGlvbicsIHtwYWdpbmF0aW9uOiB7cGFnZVNpemU6IDk5OSwgcGFnZUluZGV4OiAwfX0gYXMgRXh0cmFjdFZhbGw8VFNlcnZpY2U+KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGxpc3Qgb2YgaXRlbXMgKG92ZXJ3cml0aW5nIHdoYXQgbWF5IGhhdmUgZXhpc3RlZClcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0SXRlbXMoaXRlbXM6IHJlYWRvbmx5IFRbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1BcnJheS5jbGVhcigpOyAvLyByZXNldCBsaXN0XG4gICAgICAgIHRoaXMuYWRkSXRlbXMoaXRlbXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBnaXZlbiBpdGVtcyB0byB0aGUgbGlzdFxuICAgICAqIFJlcHJvZHVjZXMgdGhlIG1vZGVsIGRhdGEgbG9hZGluZyB0aGUgc2FtZSB3YXkgYXMgaXQgd291bGQgYmUgb24gYSBkZXRhaWwgcGFnZSAodmlhIEFic3RyYWN0RGV0YWlsIGNvbnRyb2xsZXIpIGJ1dCB3aXRob3V0IHJlc29sdmluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBhZGRJdGVtcyhpdGVtczogcmVhZG9ubHkgVFtdKTogdm9pZCB7XG4gICAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb21wbGV0ZWRJdGVtID0gbWVyZ2UodGhpcy5zZXJ2aWNlLmdldERlZmF1bHRGb3JTZXJ2ZXIoKSwgaXRlbSk7XG4gICAgICAgICAgICBjb25zdCBsaW5lRm9ybUdyb3VwID0gdGhpcy5zZXJ2aWNlLmdldEZvcm1Hcm91cChjb21wbGV0ZWRJdGVtKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUFycmF5LnB1c2gobGluZUZvcm1Hcm91cCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5mb3JtQXJyYXkuY29udHJvbHM7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZUF0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMuZm9ybUFycmF5LmNvbnRyb2xzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBlbXB0eSBpdGVtIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3RcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRW1wdHkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWRkSXRlbXMoW3t9IGFzIFRdKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYSBsaXN0IG9mIG1vZGVscyB3aXRob3V0IGFueSB0cmVhdG1lbnQuXG4gICAgICpcbiAgICAgKiBUbyBtdXRhdGUgbW9kZWxzLCBpdCB3b3VsZCBiZSByZXF1aXJlZCB0byBtYXAgdGhlbSB1c2luZyA6XG4gICAgICogIC0gQWJzdHJhY3RNb2RlbFNlcnZpY2UuZ2V0SW5wdXQoKVxuICAgICAqICAtIEFic3RyYWN0TW9kZWxTZXJ2aWNlLmdldFBhcnRpYWxWYXJpYWJsZXNGb3JDcmVhdGlvbigpXG4gICAgICogIC0gQWJzdHJhY3RNb2RlbFNlcnZpY2UuZ2V0UGFydGlhbFZhcmlhYmxlc0ZvclVwZGF0ZSgpXG4gICAgICogIC0gc29tZSBvdGhlciByZXF1aXJlZCB0cmVhdG1lbnQuXG4gICAgICpcbiAgICAgKiBUT0RPIHJldHVybiB0eXBlIGlzIGluY29ycmVjdCBhbmQgc2hvdWxkIGJlIGNsb3NlciB0byBgUGFydGlhbDxUPltdYCBvciBhbiBldmVuIGxvb3NlciB0eXBlLCBiZWNhdXNlIHdlIGRvbid0IHJlYWxseSBrbm93IHdoYXQgZmllbGRzIGV4aXN0cyBpbiB0aGUgZm9ybS4gV2hlbiB3ZSBmaXggdGhpcywgd2Ugc2hvdWxkIGFsc28gcmVtb3ZlIHR5cGUgY29lcmNpbmcgaW4gdW5pdCB0ZXN0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SXRlbXMoKTogVFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUFycmF5LmdldFJhd1ZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9yY2UgdGhlIGZvcm0gdmFsaWRhdGlvbi5cbiAgICAgKlxuICAgICAqIFRoZSB2YWxpZCBzdGF0ZSBjYW4gdGhlbiBiZSByZWFkIHZpYSBgdGhpcy5mb3JtLnZhbGlkYFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZUZvcm0oKTogdm9pZCB7XG4gICAgICAgIHZhbGlkYXRlQWxsRm9ybUNvbnRyb2xzKHRoaXMuZm9ybSk7XG4gICAgfVxufVxuIl19
@@ -418,10 +418,10 @@ export class NaturalAbstractList extends NaturalAbstractPanel {
418
418
  this.persistenceService.persist('col', value, this.route, this.getStorageKey());
419
419
  }
420
420
  }
421
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractList, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
422
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalAbstractList, inputs: { persistSearch: "persistSearch", availableColumns: "availableColumns", selectedColumns: "selectedColumns", forcedVariables: "forcedVariables" }, usesInheritance: true, ngImport: i0 }); }
421
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAbstractList, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
422
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: NaturalAbstractList, inputs: { persistSearch: "persistSearch", availableColumns: "availableColumns", selectedColumns: "selectedColumns", forcedVariables: "forcedVariables" }, usesInheritance: true, ngImport: i0 }); }
423
423
  }
424
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractList, decorators: [{
424
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAbstractList, decorators: [{
425
425
  type: Directive
426
426
  }], ctorParameters: () => [{ type: undefined }], propDecorators: { persistSearch: [{
427
427
  type: Input
@@ -120,10 +120,10 @@ export class NaturalAbstractNavigableList extends NaturalAbstractList {
120
120
  }
121
121
  return [item];
122
122
  }
123
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractNavigableList, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
124
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalAbstractNavigableList, inputs: { ancestorRelationName: "ancestorRelationName" }, usesInheritance: true, ngImport: i0 }); }
123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAbstractNavigableList, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
124
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: NaturalAbstractNavigableList, inputs: { ancestorRelationName: "ancestorRelationName" }, usesInheritance: true, ngImport: i0 }); }
125
125
  }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAbstractNavigableList, decorators: [{
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAbstractNavigableList, decorators: [{
127
127
  type: Directive
128
128
  }], ctorParameters: () => [{ type: undefined }], propDecorators: { ancestorRelationName: [{
129
129
  type: Input
@@ -1,4 +1,4 @@
1
- import { cloneDeep, defaultsDeep, isArray, mergeWith, omit } from 'lodash-es';
1
+ import { cloneDeep, defaultsDeep, mergeWith, omit } from 'lodash-es';
2
2
  import { BehaviorSubject } from 'rxjs';
3
3
  import { mergeOverrideArray } from './utility';
4
4
  import { hasMixedGroupLogic } from './query-variable-manager-utils';
@@ -11,7 +11,7 @@ export var SortingOrder;
11
11
  * During lodash merge, concat arrays
12
12
  */
13
13
  function mergeConcatArray(destValue, source) {
14
- if (isArray(source)) {
14
+ if (Array.isArray(source)) {
15
15
  if (destValue) {
16
16
  return destValue.concat(source);
17
17
  }
@@ -169,4 +169,4 @@ export class NaturalQueryVariablesManager {
169
169
  return groups;
170
170
  }
171
171
  }
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktdmFyaWFibGUtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9jbGFzc2VzL3F1ZXJ5LXZhcmlhYmxlLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDNUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVyQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFzQmxFLE1BQU0sQ0FBTixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDcEIsMkJBQVcsQ0FBQTtJQUNYLDZCQUFhLENBQUE7QUFDakIsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLFNBQWMsRUFBRSxNQUFXO0lBQ2pELElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbEIsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7SUFDTCxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBQ0gsTUFBTSxPQUFPLDRCQUE0QjtJQUlyQyxZQUFtQixxQkFBdUQ7UUFIMUQsY0FBUyxHQUFtQyxJQUFJLGVBQWUsQ0FBZ0IsU0FBUyxDQUFDLENBQUM7UUFDekYsYUFBUSxHQUE0QixJQUFJLEdBQUcsRUFBc0IsQ0FBQztRQUcv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QixPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUN4RSxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjbG9uZURlZXAsIGRlZmF1bHRzRGVlcCwgaXNBcnJheSwgbWVyZ2VXaXRoLCBvbWl0fSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMaXRlcmFsfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XG5pbXBvcnQge21lcmdlT3ZlcnJpZGVBcnJheX0gZnJvbSAnLi91dGlsaXR5JztcbmltcG9ydCB7aGFzTWl4ZWRHcm91cExvZ2ljfSBmcm9tICcuL3F1ZXJ5LXZhcmlhYmxlLW1hbmFnZXItdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBRdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlZHVuZGFudC10eXBlLWNvbnN0aXR1ZW50c1xuICAgIGZpbHRlcj86IGFueSB8IG51bGw7XG4gICAgcGFnaW5hdGlvbj86IFBhZ2luYXRpb25JbnB1dCB8IG51bGw7XG4gICAgc29ydGluZz86IFNvcnRpbmdbXSB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uSW5wdXQgPSB7XG4gICAgb2Zmc2V0PzogbnVtYmVyIHwgbnVsbDtcbiAgICBwYWdlSW5kZXg/OiBudW1iZXIgfCBudWxsO1xuICAgIHBhZ2VTaXplPzogbnVtYmVyIHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIFNvcnRpbmcgPSB7XG4gICAgZmllbGQ6IGFueTtcbiAgICBvcmRlcj86IFNvcnRpbmdPcmRlciB8IG51bGw7XG4gICAgbnVsbEFzSGlnaGVzdD86IGJvb2xlYW4gfCBudWxsO1xuICAgIGVtcHR5U3RyaW5nQXNIaWdoZXN0PzogYm9vbGVhbiB8IG51bGw7XG59O1xuXG5leHBvcnQgZW51bSBTb3J0aW5nT3JkZXIge1xuICAgIEFTQyA9ICdBU0MnLFxuICAgIERFU0MgPSAnREVTQycsXG59XG5cbi8qKlxuICogRHVyaW5nIGxvZGFzaCBtZXJnZSwgY29uY2F0IGFycmF5c1xuICovXG5mdW5jdGlvbiBtZXJnZUNvbmNhdEFycmF5KGRlc3RWYWx1ZTogYW55LCBzb3VyY2U6IGFueSk6IGFueSB7XG4gICAgaWYgKGlzQXJyYXkoc291cmNlKSkge1xuICAgICAgICBpZiAoZGVzdFZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVzdFZhbHVlLmNvbmNhdChzb3VyY2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBGaWx0ZXIgbWFuYWdlciBzdG9yZXMgYSBzZXQgb2YgY2hhbm5lbHMgdGhhdCBjb250YWluIGEgdmFyaWFibGUgb2JqZWN0IGFuZCBleHBvc2VzIGFuIG9ic2VydmFibGUgXCJ2YXJpYWJsZXNcIiB0aGF0IHVwZGF0ZXMgd2l0aCB0aGUgcmVzdWx0XG4gKiBvZiBhbGwgY2hhbm5lbHMgbWVyZ2VkIHRvZ2V0aGVyLlxuICpcbiAqIEEgY2hhbm5lbCBpcyBzdXBwb3NlZCB0byBiZSB1c2VkIGJ5IGEgZ2l2ZW4gYXNwZWN0IG9mIHRoZSBHVUkgKHBhZ2luYXRpb24sIHNvcnRpbmcsIHNlYXJjaCwgb3RoZXJzID8pLlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBmbSA9IG5ldyBRdWVyeVZhcmlhYmxlc01hbmFnZXIoKTtcbiAqIGZtLm1lcmdlKCdjb21wb25lbnRBLXZhcmlhYmxlcycsIHthIDogWzEsIDIsIDNdfSk7XG4gKiBgYGBcbiAqXG4gKiBWYXJpYWJsZXMgYXR0cmlidXRlcyBpcyBhIEJlaGF2aW9yU3ViamVjdC4gVGhhdCBtZWFuIGl0J3Mgbm90IG1hbmRhdG9yeSB0byBzdWJzY3JpYmUsIHdlIGNhbiBqdXN0IGNhbGwgZ2V0VmFsdWUgb3IgdmFsdWUgYXR0cmlidXRlcyBvblxuICogaXQgOlxuICpcbiAqIGBgYHRzXG4gKiBjb25zb2xlLmxvZyhmbS52YXJpYWJsZXMudmFsdWUpOyAvLyB7YSA6IFsxLCAyLCAzXX1cbiAqIGBgYFxuICpcbiAqIFNldCBuZXcgdmFyaWFibGVzIGZvciAnY29tcG9uZW50QS12YXJpYWJsZXMnOlxuICpcbiAqIGBgYHRzXG4gKiBmbS5tZXJnZSgnY29tcG9uZW50QS12YXJpYWJsZXMnLCB7YSA6IFsxLCAyXX0pO1xuICogY29uc29sZS5sb2coZm0udmFyaWFibGVzLnZhbHVlKTsgLy8ge2EgOiBbMSwgMiwgM119XG4gKiBgYGBcbiAqXG4gKiBTZXQgbmV3IHZhcmlhYmxlcyBmb3IgbmV3IGNoYW5uZWw6XG4gKlxuICogYGBgdHNcbiAqIGZtLm1lcmdlKCdjb21wb25lbnRCLXZhcmlhYmxlcycsIHthIDogWzMsIDRdfSk7XG4gKiBjb25zb2xlLmxvZyhmbS52YXJpYWJsZXMudmFsdWUpOyAvLyB7YSA6IFsxLCAyLCAzLCA0XX1cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgTmF0dXJhbFF1ZXJ5VmFyaWFibGVzTWFuYWdlcjxUIGV4dGVuZHMgUXVlcnlWYXJpYWJsZXMgPSBRdWVyeVZhcmlhYmxlcz4ge1xuICAgIHB1YmxpYyByZWFkb25seSB2YXJpYWJsZXM6IEJlaGF2aW9yU3ViamVjdDxUIHwgdW5kZWZpbmVkPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5uZWxzOiBNYXA8c3RyaW5nLCBQYXJ0aWFsPFQ+PiA9IG5ldyBNYXA8c3RyaW5nLCBQYXJ0aWFsPFQ+PigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHF1ZXJ5VmFyaWFibGVzTWFuYWdlcj86IE5hdHVyYWxRdWVyeVZhcmlhYmxlc01hbmFnZXI8VD4pIHtcbiAgICAgICAgaWYgKHF1ZXJ5VmFyaWFibGVzTWFuYWdlcikge1xuICAgICAgICAgICAgdGhpcy5jaGFubmVscyA9IHF1ZXJ5VmFyaWFibGVzTWFuYWdlci5nZXRDaGFubmVsc0NvcHkoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFyaWFibGVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgb3Igb3ZlcnJpZGUgYWxsIHRoZSB2YXJpYWJsZXMgdGhhdCBtYXkgZXhpc3QgaW4gdGhlIGdpdmVuIGNoYW5uZWxcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0KGNoYW5uZWxOYW1lOiBzdHJpbmcsIHZhcmlhYmxlczogUGFydGlhbDxUPiB8IG51bGwgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgLy8gY2xvbmVEZWVwIHRvIGNoYW5nZSByZWZlcmVuY2UgYW5kIHByZXZlbnQgc29tZSBpbnRlcmFjdGlvbnMgd2hlbiBtZXJnZVxuICAgICAgICBpZiAodmFyaWFibGVzKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5uZWxzLnNldChjaGFubmVsTmFtZSwgY2xvbmVEZWVwKHZhcmlhYmxlcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGFubmVscy5kZWxldGUoY2hhbm5lbE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlVmFyaWFibGVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgZGVlcCBjbG9uZSBvZiB0aGUgdmFyaWFibGVzIGZvciB0aGUgZ2l2ZW4gY2hhbm5lbCBuYW1lLlxuICAgICAqXG4gICAgICogQXZvaWQgcmV0dXJuaW5nIHRoZSBzYW1lIHJlZmVyZW5jZSB0byBwcmV2ZW50IGFuIGF0dHJpYnV0ZSBjaGFuZ2UsIHRoZW4gYW5vdGhlciBjaGFubmVsIHVwZGF0ZSB0aGF0IHdvdWxkXG4gICAgICogdXNlZCB0aGlzIGNoYW5nZWQgYXR0cmlidXRlIHdpdGhvdXQgaGF2aW5nIGV4cGxpY2l0bHkgYXNrZWQgUXVlcnlWYXJpYWJsZXNNYW5hZ2VyIHRvIHVwZGF0ZSBpdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0KGNoYW5uZWxOYW1lOiBzdHJpbmcpOiBQYXJ0aWFsPFQ+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIGNsb25lRGVlcCh0aGlzLmNoYW5uZWxzLmdldChjaGFubmVsTmFtZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1lcmdlIHZhcmlhYmxlIGludG8gYSBjaGFubmVsLCBvdmVycmlkaW5nIGFycmF5cyBpbiBzYW1lIGNoYW5uZWwgLyBrZXlcbiAgICAgKi9cbiAgICBwdWJsaWMgbWVyZ2UoY2hhbm5lbE5hbWU6IHN0cmluZywgbmV3VmFyaWFibGVzOiBQYXJ0aWFsPFQ+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IHRoaXMuY2hhbm5lbHMuZ2V0KGNoYW5uZWxOYW1lKTtcbiAgICAgICAgaWYgKHZhcmlhYmxlcykge1xuICAgICAgICAgICAgbWVyZ2VXaXRoKHZhcmlhYmxlcywgY2xvbmVEZWVwKG5ld1ZhcmlhYmxlcyksIG1lcmdlT3ZlcnJpZGVBcnJheSk7IC8vIG1lcmdlIHByZXNlcnZlcyByZWZlcmVuY2VzLCBjbG9uZURlZXAgcHJldmVudCB0aGF0XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhcmlhYmxlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXQoY2hhbm5lbE5hbWUsIG5ld1ZhcmlhYmxlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcHBseSBkZWZhdWx0IHZhbHVlcyB0byBhIGNoYW5uZWxcbiAgICAgKiBOb3RlIDogbG9kYXNoIGRlZmF1bHRzIG9ubHkgZGVmaW5lcyB2YWx1ZXMgb24gZGVzdGluYXRpb25zIGtleXMgdGhhdCBhcmUgdW5kZWZpbmVkXG4gICAgICovXG4gICAgcHVibGljIGRlZmF1bHRzKGNoYW5uZWxOYW1lOiBzdHJpbmcsIG5ld1ZhcmlhYmxlczogUGFydGlhbDxUPik6IHZvaWQge1xuICAgICAgICBjb25zdCB2YXJpYWJsZXMgPSB0aGlzLmNoYW5uZWxzLmdldChjaGFubmVsTmFtZSk7XG4gICAgICAgIGlmICh2YXJpYWJsZXMpIHtcbiAgICAgICAgICAgIGRlZmF1bHRzRGVlcCh2YXJpYWJsZXMsIG5ld1ZhcmlhYmxlcyk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhcmlhYmxlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXQoY2hhbm5lbE5hbWUsIG5ld1ZhcmlhYmxlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENoYW5uZWxzQ29weSgpOiBNYXA8c3RyaW5nLCBQYXJ0aWFsPFQ+PiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgUGFydGlhbDxUPj4odGhpcy5jaGFubmVscyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWVyZ2UgY2hhbm5lbHMgaW4gYSBzaW5nbGUgb2JqZWN0XG4gICAgICogQXJyYXlzIGFyZSBjb25jYXRlbmF0ZWRcbiAgICAgKiBGaWx0ZXIgZ3JvdXBzIGFyZSBjb21iaW5lZCBzbWFydGx5IChzZWUgbWVyZ2VHcm91cExpc3QpXG4gICAgICovXG4gICAgcHJpdmF0ZSB1cGRhdGVWYXJpYWJsZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1lcmdlZDogVCA9IHt9IGFzIFQ7XG5cbiAgICAgICAgdGhpcy5jaGFubmVscy5mb3JFYWNoKGNoYW5uZWxWYXJpYWJsZXMgPT4ge1xuICAgICAgICAgICAgaWYgKGNoYW5uZWxWYXJpYWJsZXMuZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgLy8gTWVyZ2UgZmlsdGVyJ3MgZ3JvdXBzIGZpcnN0XG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBzID0gdGhpcy5tZXJnZUdyb3VwTGlzdChcbiAgICAgICAgICAgICAgICAgICAgbWVyZ2VkLmZpbHRlcj8uZ3JvdXBzID8gbWVyZ2VkLmZpbHRlci5ncm91cHMgOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFZhcmlhYmxlcy5maWx0ZXIuZ3JvdXBzIHx8IFtdLFxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAvLyBNZXJnZSBmaWx0ZXIga2V5ICh0aGF0IGNvbnRhaW4gZ3JvdXBzKVxuICAgICAgICAgICAgICAgIGlmIChncm91cHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAobWVyZ2VkLmZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VkLmZpbHRlci5ncm91cHMgPSBncm91cHM7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXJnZWQuZmlsdGVyID0ge2dyb3VwczogZ3JvdXBzfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG1lcmdlV2l0aChtZXJnZWQsIHtmaWx0ZXI6IGNoYW5uZWxWYXJpYWJsZXMuZmlsdGVyfSwgbWVyZ2VDb25jYXRBcnJheSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBNZXJnZSBvdGhlciBhdHRyaWJ1dGVzIHRoYW4gZmlsdGVyXG4gICAgICAgICAgICBtZXJnZVdpdGgobWVyZ2VkLCBvbWl0KGNoYW5uZWxWYXJpYWJsZXMsICdmaWx0ZXInKSwgbWVyZ2VDb25jYXRBcnJheSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudmFyaWFibGVzLm5leHQobWVyZ2VkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcm9zcyBtZXJnZSB0d28gZmlsdGVyc1xuICAgICAqIE9ubHkgYWNjZXB0cyBncm91cHMgd2l0aCBzYW1lIGdyb3VwTG9naWMgKGlnbm9yZXMgdGhlIGZpcnN0IG9uZSwgYmVjYXVzZSB0aGVyZSBpcyBubyBncm91cExvZ2ljIGluIHRoaXMgb25lKVxuICAgICAqIEB0aHJvd3MgSW4gY2FzZSB0d28gbm9uLWVtcHR5IGxpc3RzIG9mIGdyb3VwcyBhcmUgZ2l2ZW4gYW5kIGF0IG9uZSBvZiB0aGVtIG1peCBncm91cExvZ2ljIHZhbHVlLCB0aHJvd3MgYW4gZXJyb3JcbiAgICAgKi9cbiAgICBwcml2YXRlIG1lcmdlR3JvdXBMaXN0KGdyb3Vwc0E6IExpdGVyYWxbXSwgZ3JvdXBzQjogTGl0ZXJhbFtdKTogTGl0ZXJhbCB7XG4gICAgICAgIGlmIChncm91cHNBLmxlbmd0aCA9PT0gMCAmJiBncm91cHNCLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdOyAvLyBlbXB0eSBsaXN0aW5ncywgcmV0dXJuIGVtcHR5IGxpc3RzXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZ3JvdXBzQS5sZW5ndGggPT09IDAgJiYgZ3JvdXBzQi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZ3JvdXBzQjsgLy8gT25lIGxpc3QgaXMgZW1wdHksIHJldHVybiB0aGUgb25lIHRoYXQgaXMgbm90XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZ3JvdXBzQi5sZW5ndGggPT09IDAgJiYgZ3JvdXBzQS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZ3JvdXBzQTsgLy8gT25lIGxpc3QgaXMgZW1wdHksIHJldHVybiB0aGUgb25lIHRoYXQgaXMgbm90XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBncm91cHM6IExpdGVyYWxbXSA9IFtdO1xuXG4gICAgICAgIGlmIChoYXNNaXhlZEdyb3VwTG9naWMoZ3JvdXBzQSkgfHwgaGFzTWl4ZWRHcm91cExvZ2ljKGdyb3Vwc0IpKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignUXVlcnlWYXJpYWJsZXMgZ3JvdXBzIGNvbnRhaW4gbWl4ZWQgZ3JvdXAgbG9naWNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBncm91cHNBLmZvckVhY2goZ3JvdXBBID0+IHtcbiAgICAgICAgICAgIGdyb3Vwc0IuZm9yRWFjaChncm91cEIgPT4ge1xuICAgICAgICAgICAgICAgIGdyb3Vwcy5wdXNoKG1lcmdlV2l0aChjbG9uZURlZXAoZ3JvdXBBKSwgZ3JvdXBCLCBtZXJnZUNvbmNhdEFycmF5KSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGdyb3VwcztcbiAgICB9XG59XG4iXX0=
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktdmFyaWFibGUtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9jbGFzc2VzL3F1ZXJ5LXZhcmlhYmxlLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNuRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXJDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQXNCbEUsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUNwQiwyQkFBVyxDQUFBO0lBQ1gsNkJBQWEsQ0FBQTtBQUNqQixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkI7QUFFRDs7R0FFRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsU0FBYyxFQUFFLE1BQVc7SUFDakQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDeEIsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7SUFDTCxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBQ0gsTUFBTSxPQUFPLDRCQUE0QjtJQUlyQyxZQUFtQixxQkFBdUQ7UUFIMUQsY0FBUyxHQUFtQyxJQUFJLGVBQWUsQ0FBZ0IsU0FBUyxDQUFDLENBQUM7UUFDekYsYUFBUSxHQUE0QixJQUFJLEdBQUcsRUFBc0IsQ0FBQztRQUcv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QixPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUN4RSxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjbG9uZURlZXAsIGRlZmF1bHRzRGVlcCwgbWVyZ2VXaXRoLCBvbWl0fSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMaXRlcmFsfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XG5pbXBvcnQge21lcmdlT3ZlcnJpZGVBcnJheX0gZnJvbSAnLi91dGlsaXR5JztcbmltcG9ydCB7aGFzTWl4ZWRHcm91cExvZ2ljfSBmcm9tICcuL3F1ZXJ5LXZhcmlhYmxlLW1hbmFnZXItdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBRdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlZHVuZGFudC10eXBlLWNvbnN0aXR1ZW50c1xuICAgIGZpbHRlcj86IGFueSB8IG51bGw7XG4gICAgcGFnaW5hdGlvbj86IFBhZ2luYXRpb25JbnB1dCB8IG51bGw7XG4gICAgc29ydGluZz86IFNvcnRpbmdbXSB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uSW5wdXQgPSB7XG4gICAgb2Zmc2V0PzogbnVtYmVyIHwgbnVsbDtcbiAgICBwYWdlSW5kZXg/OiBudW1iZXIgfCBudWxsO1xuICAgIHBhZ2VTaXplPzogbnVtYmVyIHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIFNvcnRpbmcgPSB7XG4gICAgZmllbGQ6IGFueTtcbiAgICBvcmRlcj86IFNvcnRpbmdPcmRlciB8IG51bGw7XG4gICAgbnVsbEFzSGlnaGVzdD86IGJvb2xlYW4gfCBudWxsO1xuICAgIGVtcHR5U3RyaW5nQXNIaWdoZXN0PzogYm9vbGVhbiB8IG51bGw7XG59O1xuXG5leHBvcnQgZW51bSBTb3J0aW5nT3JkZXIge1xuICAgIEFTQyA9ICdBU0MnLFxuICAgIERFU0MgPSAnREVTQycsXG59XG5cbi8qKlxuICogRHVyaW5nIGxvZGFzaCBtZXJnZSwgY29uY2F0IGFycmF5c1xuICovXG5mdW5jdGlvbiBtZXJnZUNvbmNhdEFycmF5KGRlc3RWYWx1ZTogYW55LCBzb3VyY2U6IGFueSk6IGFueSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlKSkge1xuICAgICAgICBpZiAoZGVzdFZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVzdFZhbHVlLmNvbmNhdChzb3VyY2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBGaWx0ZXIgbWFuYWdlciBzdG9yZXMgYSBzZXQgb2YgY2hhbm5lbHMgdGhhdCBjb250YWluIGEgdmFyaWFibGUgb2JqZWN0IGFuZCBleHBvc2VzIGFuIG9ic2VydmFibGUgXCJ2YXJpYWJsZXNcIiB0aGF0IHVwZGF0ZXMgd2l0aCB0aGUgcmVzdWx0XG4gKiBvZiBhbGwgY2hhbm5lbHMgbWVyZ2VkIHRvZ2V0aGVyLlxuICpcbiAqIEEgY2hhbm5lbCBpcyBzdXBwb3NlZCB0byBiZSB1c2VkIGJ5IGEgZ2l2ZW4gYXNwZWN0IG9mIHRoZSBHVUkgKHBhZ2luYXRpb24sIHNvcnRpbmcsIHNlYXJjaCwgb3RoZXJzID8pLlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBmbSA9IG5ldyBRdWVyeVZhcmlhYmxlc01hbmFnZXIoKTtcbiAqIGZtLm1lcmdlKCdjb21wb25lbnRBLXZhcmlhYmxlcycsIHthIDogWzEsIDIsIDNdfSk7XG4gKiBgYGBcbiAqXG4gKiBWYXJpYWJsZXMgYXR0cmlidXRlcyBpcyBhIEJlaGF2aW9yU3ViamVjdC4gVGhhdCBtZWFuIGl0J3Mgbm90IG1hbmRhdG9yeSB0byBzdWJzY3JpYmUsIHdlIGNhbiBqdXN0IGNhbGwgZ2V0VmFsdWUgb3IgdmFsdWUgYXR0cmlidXRlcyBvblxuICogaXQgOlxuICpcbiAqIGBgYHRzXG4gKiBjb25zb2xlLmxvZyhmbS52YXJpYWJsZXMudmFsdWUpOyAvLyB7YSA6IFsxLCAyLCAzXX1cbiAqIGBgYFxuICpcbiAqIFNldCBuZXcgdmFyaWFibGVzIGZvciAnY29tcG9uZW50QS12YXJpYWJsZXMnOlxuICpcbiAqIGBgYHRzXG4gKiBmbS5tZXJnZSgnY29tcG9uZW50QS12YXJpYWJsZXMnLCB7YSA6IFsxLCAyXX0pO1xuICogY29uc29sZS5sb2coZm0udmFyaWFibGVzLnZhbHVlKTsgLy8ge2EgOiBbMSwgMiwgM119XG4gKiBgYGBcbiAqXG4gKiBTZXQgbmV3IHZhcmlhYmxlcyBmb3IgbmV3IGNoYW5uZWw6XG4gKlxuICogYGBgdHNcbiAqIGZtLm1lcmdlKCdjb21wb25lbnRCLXZhcmlhYmxlcycsIHthIDogWzMsIDRdfSk7XG4gKiBjb25zb2xlLmxvZyhmbS52YXJpYWJsZXMudmFsdWUpOyAvLyB7YSA6IFsxLCAyLCAzLCA0XX1cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgTmF0dXJhbFF1ZXJ5VmFyaWFibGVzTWFuYWdlcjxUIGV4dGVuZHMgUXVlcnlWYXJpYWJsZXMgPSBRdWVyeVZhcmlhYmxlcz4ge1xuICAgIHB1YmxpYyByZWFkb25seSB2YXJpYWJsZXM6IEJlaGF2aW9yU3ViamVjdDxUIHwgdW5kZWZpbmVkPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5uZWxzOiBNYXA8c3RyaW5nLCBQYXJ0aWFsPFQ+PiA9IG5ldyBNYXA8c3RyaW5nLCBQYXJ0aWFsPFQ+PigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHF1ZXJ5VmFyaWFibGVzTWFuYWdlcj86IE5hdHVyYWxRdWVyeVZhcmlhYmxlc01hbmFnZXI8VD4pIHtcbiAgICAgICAgaWYgKHF1ZXJ5VmFyaWFibGVzTWFuYWdlcikge1xuICAgICAgICAgICAgdGhpcy5jaGFubmVscyA9IHF1ZXJ5VmFyaWFibGVzTWFuYWdlci5nZXRDaGFubmVsc0NvcHkoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFyaWFibGVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgb3Igb3ZlcnJpZGUgYWxsIHRoZSB2YXJpYWJsZXMgdGhhdCBtYXkgZXhpc3QgaW4gdGhlIGdpdmVuIGNoYW5uZWxcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0KGNoYW5uZWxOYW1lOiBzdHJpbmcsIHZhcmlhYmxlczogUGFydGlhbDxUPiB8IG51bGwgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgLy8gY2xvbmVEZWVwIHRvIGNoYW5nZSByZWZlcmVuY2UgYW5kIHByZXZlbnQgc29tZSBpbnRlcmFjdGlvbnMgd2hlbiBtZXJnZVxuICAgICAgICBpZiAodmFyaWFibGVzKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5uZWxzLnNldChjaGFubmVsTmFtZSwgY2xvbmVEZWVwKHZhcmlhYmxlcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGFubmVscy5kZWxldGUoY2hhbm5lbE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlVmFyaWFibGVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIGEgZGVlcCBjbG9uZSBvZiB0aGUgdmFyaWFibGVzIGZvciB0aGUgZ2l2ZW4gY2hhbm5lbCBuYW1lLlxuICAgICAqXG4gICAgICogQXZvaWQgcmV0dXJuaW5nIHRoZSBzYW1lIHJlZmVyZW5jZSB0byBwcmV2ZW50IGFuIGF0dHJpYnV0ZSBjaGFuZ2UsIHRoZW4gYW5vdGhlciBjaGFubmVsIHVwZGF0ZSB0aGF0IHdvdWxkXG4gICAgICogdXNlZCB0aGlzIGNoYW5nZWQgYXR0cmlidXRlIHdpdGhvdXQgaGF2aW5nIGV4cGxpY2l0bHkgYXNrZWQgUXVlcnlWYXJpYWJsZXNNYW5hZ2VyIHRvIHVwZGF0ZSBpdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0KGNoYW5uZWxOYW1lOiBzdHJpbmcpOiBQYXJ0aWFsPFQ+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIGNsb25lRGVlcCh0aGlzLmNoYW5uZWxzLmdldChjaGFubmVsTmFtZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1lcmdlIHZhcmlhYmxlIGludG8gYSBjaGFubmVsLCBvdmVycmlkaW5nIGFycmF5cyBpbiBzYW1lIGNoYW5uZWwgLyBrZXlcbiAgICAgKi9cbiAgICBwdWJsaWMgbWVyZ2UoY2hhbm5lbE5hbWU6IHN0cmluZywgbmV3VmFyaWFibGVzOiBQYXJ0aWFsPFQ+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IHRoaXMuY2hhbm5lbHMuZ2V0KGNoYW5uZWxOYW1lKTtcbiAgICAgICAgaWYgKHZhcmlhYmxlcykge1xuICAgICAgICAgICAgbWVyZ2VXaXRoKHZhcmlhYmxlcywgY2xvbmVEZWVwKG5ld1ZhcmlhYmxlcyksIG1lcmdlT3ZlcnJpZGVBcnJheSk7IC8vIG1lcmdlIHByZXNlcnZlcyByZWZlcmVuY2VzLCBjbG9uZURlZXAgcHJldmVudCB0aGF0XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhcmlhYmxlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXQoY2hhbm5lbE5hbWUsIG5ld1ZhcmlhYmxlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcHBseSBkZWZhdWx0IHZhbHVlcyB0byBhIGNoYW5uZWxcbiAgICAgKiBOb3RlIDogbG9kYXNoIGRlZmF1bHRzIG9ubHkgZGVmaW5lcyB2YWx1ZXMgb24gZGVzdGluYXRpb25zIGtleXMgdGhhdCBhcmUgdW5kZWZpbmVkXG4gICAgICovXG4gICAgcHVibGljIGRlZmF1bHRzKGNoYW5uZWxOYW1lOiBzdHJpbmcsIG5ld1ZhcmlhYmxlczogUGFydGlhbDxUPik6IHZvaWQge1xuICAgICAgICBjb25zdCB2YXJpYWJsZXMgPSB0aGlzLmNoYW5uZWxzLmdldChjaGFubmVsTmFtZSk7XG4gICAgICAgIGlmICh2YXJpYWJsZXMpIHtcbiAgICAgICAgICAgIGRlZmF1bHRzRGVlcCh2YXJpYWJsZXMsIG5ld1ZhcmlhYmxlcyk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhcmlhYmxlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXQoY2hhbm5lbE5hbWUsIG5ld1ZhcmlhYmxlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENoYW5uZWxzQ29weSgpOiBNYXA8c3RyaW5nLCBQYXJ0aWFsPFQ+PiB7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgUGFydGlhbDxUPj4odGhpcy5jaGFubmVscyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWVyZ2UgY2hhbm5lbHMgaW4gYSBzaW5nbGUgb2JqZWN0XG4gICAgICogQXJyYXlzIGFyZSBjb25jYXRlbmF0ZWRcbiAgICAgKiBGaWx0ZXIgZ3JvdXBzIGFyZSBjb21iaW5lZCBzbWFydGx5IChzZWUgbWVyZ2VHcm91cExpc3QpXG4gICAgICovXG4gICAgcHJpdmF0ZSB1cGRhdGVWYXJpYWJsZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1lcmdlZDogVCA9IHt9IGFzIFQ7XG5cbiAgICAgICAgdGhpcy5jaGFubmVscy5mb3JFYWNoKGNoYW5uZWxWYXJpYWJsZXMgPT4ge1xuICAgICAgICAgICAgaWYgKGNoYW5uZWxWYXJpYWJsZXMuZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgLy8gTWVyZ2UgZmlsdGVyJ3MgZ3JvdXBzIGZpcnN0XG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBzID0gdGhpcy5tZXJnZUdyb3VwTGlzdChcbiAgICAgICAgICAgICAgICAgICAgbWVyZ2VkLmZpbHRlcj8uZ3JvdXBzID8gbWVyZ2VkLmZpbHRlci5ncm91cHMgOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFZhcmlhYmxlcy5maWx0ZXIuZ3JvdXBzIHx8IFtdLFxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAvLyBNZXJnZSBmaWx0ZXIga2V5ICh0aGF0IGNvbnRhaW4gZ3JvdXBzKVxuICAgICAgICAgICAgICAgIGlmIChncm91cHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAobWVyZ2VkLmZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VkLmZpbHRlci5ncm91cHMgPSBncm91cHM7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXJnZWQuZmlsdGVyID0ge2dyb3VwczogZ3JvdXBzfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG1lcmdlV2l0aChtZXJnZWQsIHtmaWx0ZXI6IGNoYW5uZWxWYXJpYWJsZXMuZmlsdGVyfSwgbWVyZ2VDb25jYXRBcnJheSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBNZXJnZSBvdGhlciBhdHRyaWJ1dGVzIHRoYW4gZmlsdGVyXG4gICAgICAgICAgICBtZXJnZVdpdGgobWVyZ2VkLCBvbWl0KGNoYW5uZWxWYXJpYWJsZXMsICdmaWx0ZXInKSwgbWVyZ2VDb25jYXRBcnJheSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudmFyaWFibGVzLm5leHQobWVyZ2VkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcm9zcyBtZXJnZSB0d28gZmlsdGVyc1xuICAgICAqIE9ubHkgYWNjZXB0cyBncm91cHMgd2l0aCBzYW1lIGdyb3VwTG9naWMgKGlnbm9yZXMgdGhlIGZpcnN0IG9uZSwgYmVjYXVzZSB0aGVyZSBpcyBubyBncm91cExvZ2ljIGluIHRoaXMgb25lKVxuICAgICAqIEB0aHJvd3MgSW4gY2FzZSB0d28gbm9uLWVtcHR5IGxpc3RzIG9mIGdyb3VwcyBhcmUgZ2l2ZW4gYW5kIGF0IG9uZSBvZiB0aGVtIG1peCBncm91cExvZ2ljIHZhbHVlLCB0aHJvd3MgYW4gZXJyb3JcbiAgICAgKi9cbiAgICBwcml2YXRlIG1lcmdlR3JvdXBMaXN0KGdyb3Vwc0E6IExpdGVyYWxbXSwgZ3JvdXBzQjogTGl0ZXJhbFtdKTogTGl0ZXJhbCB7XG4gICAgICAgIGlmIChncm91cHNBLmxlbmd0aCA9PT0gMCAmJiBncm91cHNCLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdOyAvLyBlbXB0eSBsaXN0aW5ncywgcmV0dXJuIGVtcHR5IGxpc3RzXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZ3JvdXBzQS5sZW5ndGggPT09IDAgJiYgZ3JvdXBzQi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZ3JvdXBzQjsgLy8gT25lIGxpc3QgaXMgZW1wdHksIHJldHVybiB0aGUgb25lIHRoYXQgaXMgbm90XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZ3JvdXBzQi5sZW5ndGggPT09IDAgJiYgZ3JvdXBzQS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZ3JvdXBzQTsgLy8gT25lIGxpc3QgaXMgZW1wdHksIHJldHVybiB0aGUgb25lIHRoYXQgaXMgbm90XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBncm91cHM6IExpdGVyYWxbXSA9IFtdO1xuXG4gICAgICAgIGlmIChoYXNNaXhlZEdyb3VwTG9naWMoZ3JvdXBzQSkgfHwgaGFzTWl4ZWRHcm91cExvZ2ljKGdyb3Vwc0IpKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignUXVlcnlWYXJpYWJsZXMgZ3JvdXBzIGNvbnRhaW4gbWl4ZWQgZ3JvdXAgbG9naWNzJyk7XG4gICAgICAgIH1cblxuICAgICAgICBncm91cHNBLmZvckVhY2goZ3JvdXBBID0+IHtcbiAgICAgICAgICAgIGdyb3Vwc0IuZm9yRWFjaChncm91cEIgPT4ge1xuICAgICAgICAgICAgICAgIGdyb3Vwcy5wdXNoKG1lcmdlV2l0aChjbG9uZURlZXAoZ3JvdXBBKSwgZ3JvdXBCLCBtZXJnZUNvbmNhdEFycmF5KSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGdyb3VwcztcbiAgICB9XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { isArray, pickBy } from 'lodash-es';
1
+ import { pickBy } from 'lodash-es';
2
2
  import { SortingOrder } from './query-variable-manager';
3
3
  export function formatIsoDate(date) {
4
4
  if (!date) {
@@ -53,7 +53,7 @@ export function relationsToIds(object) {
53
53
  else if (hasId(value)) {
54
54
  value = value.id;
55
55
  }
56
- else if (isArray(value)) {
56
+ else if (Array.isArray(value)) {
57
57
  value = value.map((i) => (hasId(i) ? i.id : i));
58
58
  }
59
59
  else if (typeof value === 'object' && !(value instanceof File) && !(value instanceof Date)) {
@@ -135,7 +135,7 @@ function hexToRgb(hex) {
135
135
  * During lodash.mergeWith, overrides arrays
136
136
  */
137
137
  export function mergeOverrideArray(destValue, source) {
138
- if (isArray(source)) {
138
+ if (Array.isArray(source)) {
139
139
  return source;
140
140
  }
141
141
  }
@@ -217,4 +217,4 @@ export function validateColumns(data) {
217
217
  }
218
218
  return data.split(',').filter(string => string);
219
219
  }
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9jbGFzc2VzL3V0aWxpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFHMUMsT0FBTyxFQUEyQixZQUFZLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQVVoRixNQUFNLFVBQVUsYUFBYSxDQUFDLElBQWlCO0lBQzNDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNSLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0IsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM5QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFekIsT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQVU7SUFDeEMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUN6RCxNQUFNLHFCQUFxQixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLHVCQUF1QjtJQUNoRyxNQUFNLElBQUksR0FBRyxxQkFB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QUssU0FBUyxDQUFDLEVBQ3hGLENBQUM7UUFDQyxPQUFPLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQzdELENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQWE7SUFDekMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2lzQXJyYXksIHBpY2tCeX0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7TGl0ZXJhbH0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHR5cGUge1JlYWRvbmx5RGVlcH0gZnJvbSAndHlwZS1mZXN0JztcbmltcG9ydCB7UGFnaW5hdGlvbklucHV0LCBTb3J0aW5nLCBTb3J0aW5nT3JkZXJ9IGZyb20gJy4vcXVlcnktdmFyaWFibGUtbWFuYWdlcic7XG5cbi8qKlxuICogVmVyeSBiYXNpYyBmb3JtYXR0aW5nIHRvIGdldCBvbmx5IGRhdGUsIHdpdGhvdXQgdGltZSBhbmQgaWdub3JpbmcgZW50aXJlbHkgdGhlIHRpbWV6b25lXG4gKlxuICogU28gc29tZXRoaW5nIGxpa2U6IFwiMjAyMS0wOS0yM1wiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRJc29EYXRlKGRhdGU6IG51bGwpOiBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdElzb0RhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZztcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRJc29EYXRlKGRhdGU6IERhdGUgfCBudWxsKTogc3RyaW5nIHwgbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRJc29EYXRlKGRhdGU6IERhdGUgfCBudWxsKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHkgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3QgbSA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XG4gICAgY29uc3QgZCA9IGRhdGUuZ2V0RGF0ZSgpO1xuXG4gICAgcmV0dXJuIHkgKyAnLScgKyAobSA8IDEwID8gJzAnIDogJycpICsgbSArICctJyArIChkIDwgMTAgPyAnMCcgOiAnJykgKyBkO1xufVxuXG4vKipcbiAqIEZvcm1hdCBhIGRhdGUgYW5kIHRpbWUgaW4gYSB3YXkgdGhhdCB3aWxsIHByZXNlcnZlIHRoZSBsb2NhbCB0aW1lIHpvbmUuXG4gKiBUaGlzIGFsbG93cyB0aGUgc2VydmVyIHNpZGUgdG8ga25vdyB0aGUgZGF5ICh3aXRob3V0IHRpbWUpIHRoYXQgd2FzIHNlbGVjdGVkIG9uIGNsaWVudCBzaWRlLlxuICpcbiAqIFNvIHNvbWV0aGluZyBsaWtlOiBcIjIwMjEtMDktMjNUMTc6NTc6MTYrMDk6MDBcIlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0SXNvRGF0ZVRpbWUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXRJbk1pbnV0ZXMgPSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCk7XG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXRJbkhvdXJzID0gLU1hdGgudHJ1bmModGltZXpvbmVPZmZzZXRJbk1pbnV0ZXMgLyA2MCk7IC8vIFVUQyBtaW51cyBsb2NhbCB0aW1lXG4gICAgY29uc3Qgc2lnbiA9IHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA+PSAwID8gJysnIDogJy0nO1xuICAgIGNvbnN0IGhvdXJzTGVhZGluZ1plcm8gPSBNYXRoLmFicyh0aW1lem9uZU9mZnNldEluSG91cnMpIDwgMTAgPyAnMCcgOiAnJztcbiAgICBjb25zdCByZW1haW5kZXJNaW51dGVzID0gLSh0aW1lem9uZU9mZnNldEluTWludXRlcyAlIDYwKTtcbiAgICBjb25zdCBtaW51dGVzTGVhZGluZ1plcm8gPSBNYXRoLmFicyhyZW1haW5kZXJNaW51dGVzKSA8IDEwID8gJzAnIDogJyc7XG5cbiAgICAvLyBJdCdzIGEgYml0IHVuZm9ydHVuYXRlIHRoYXQgd2UgbmVlZCB0byBjb25zdHJ1Y3QgYSBuZXcgRGF0ZSBpbnN0YW5jZSxcbiAgICAvLyBidXQgd2UgZG9uJ3Qgd2FudCB0aGUgb3JpZ2luYWwgRGF0ZSBpbnN0YW5jZSB0byBiZSBtb2RpZmllZFxuICAgIGNvbnN0IGNvcnJlY3RlZERhdGUgPSBuZXcgRGF0ZShcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAgIGRhdGUuZ2V0TWludXRlcygpLFxuICAgICAgICBkYXRlLmdldFNlY29uZHMoKSxcbiAgICAgICAgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSxcbiAgICApO1xuICAgIGNvcnJlY3RlZERhdGUuc2V0SG91cnMoZGF0ZS5nZXRIb3VycygpICsgdGltZXpvbmVPZmZzZXRJbkhvdXJzKTtcblxuICAgIGNvbnN0IGlzbyA9IGNvcnJlY3RlZERhdGVcbiAgICAgICAgLnRvSVNPU3RyaW5nKClcbiAgICAgICAgLnJlcGxhY2UoL1xcLlxcZHszfVovLCAnJylcbiAgICAgICAgLnJlcGxhY2UoJ1onLCAnJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICBpc28gK1xuICAgICAgICBzaWduICtcbiAgICAgICAgaG91cnNMZWFkaW5nWmVybyArXG4gICAgICAgIE1hdGguYWJzKHRpbWV6b25lT2Zmc2V0SW5Ib3VycykudG9TdHJpbmcoKSArXG4gICAgICAgICc6JyArXG4gICAgICAgIG1pbnV0ZXNMZWFkaW5nWmVybyArXG4gICAgICAgIHJlbWFpbmRlck1pbnV0ZXNcbiAgICApO1xufVxuXG4vKipcbiAqIFJlbGF0aW9ucyB0byBmdWxsIG9iamVjdHMgYXJlIGNvbnZlcnRlZCB0byB0aGVpciBJRHMgb25seS5cbiAqXG4gKiBTbyB7dXNlcjoge2lkOiAxMjN9fSBiZWNvbWVzIHt1c2VyOiAxMjN9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWxhdGlvbnNUb0lkcyhvYmplY3Q6IExpdGVyYWwpOiBMaXRlcmFsIHtcbiAgICBjb25zdCBuZXdPYmo6IExpdGVyYWwgPSB7fTtcbiAgICBPYmplY3Qua2V5cyhvYmplY3QpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgbGV0IHZhbHVlOiB1bmtub3duID0gb2JqZWN0W2tleV07XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIG5vb3BcbiAgICAgICAgfSBlbHNlIGlmIChoYXNJZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuaWQ7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUubWFwKChpOiB1bmtub3duKSA9PiAoaGFzSWQoaSkgPyBpLmlkIDogaSkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEZpbGUpICYmICEodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBwaWNrQnkodmFsdWUsICh2LCBrKSA9PiBrICE9PSAnX190eXBlbmFtZScpOyAvLyBvbWl0KHZhbHVlLCBbJ19fdHlwZW5hbWUnXSkgP1xuICAgICAgICB9XG5cbiAgICAgICAgbmV3T2JqW2tleV0gPSB2YWx1ZTtcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXdPYmo7XG59XG5cbmZ1bmN0aW9uIGhhc0lkKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMge2lkOiB1bmtub3dufSB7XG4gICAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAnaWQnIGluIHZhbHVlICYmICEhdmFsdWUuaWQ7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcGx1cmFsIGZvcm0gb2YgdGhlIGdpdmVuIG5hbWVcbiAqXG4gKiBUaGlzIGlzICoqbm90KiogbmVjZXNzYXJpbHkgdmFsaWQgZW5nbGlzaCBncmFtbWFyLiBJdHMgb25seSBwdXJwb3NlIGlzIGZvciBpbnRlcm5hbCB1c2FnZSwgbm90IGZvciBodW1hbnMuXG4gKlxuICogVGhpcyAqKk1VU1QqKiBiZSBrZXB0IGluIHN5bmMgd2l0aCBgXFxFY29kZXZcXEZlbGl4XFxBcGlcXFBsdXJhbDptYWtlKClgLlxuICpcbiAqIFRoaXMgaXMgYSBiaXQgcGVyZm9ybWFuY2Utc2Vuc2l0aXZlLCBzbyB3ZSBzaG91bGQga2VlcCBpdCBmYXN0IGFuZCBvbmx5IGNvdmVyIGNhc2VzIHRoYXQgd2UgYWN0dWFsbHkgbmVlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VQbHVyYWwobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBXb3JkcyBlbmRpbmcgaW4gYSB5IHByZWNlZGVkIGJ5IGEgdm93ZWwgZm9ybSB0aGVpciBwbHVyYWxzIGJ5IGFkZGluZyAtczpcbiAgICBpZiAobmFtZS5tYXRjaCgvW2FlaW91XXkkLykpIHtcbiAgICAgICAgcmV0dXJuIG5hbWUgKyAncyc7XG4gICAgfVxuXG4gICAgY29uc3QgcGx1cmFsID0gbmFtZSArICdzJztcblxuICAgIHJldHVybiBwbHVyYWwucmVwbGFjZSgveXMkLywgJ2llcycpLnJlcGxhY2UoL3NzJC8sICdzZXMnKS5yZXBsYWNlKC94cyQvLCAneGVzJyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgc3RyaW5nIHdpdGggdGhlIGZpcnN0IGxldHRlciBhcyBjYXBpdGFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cHBlckNhc2VGaXJzdExldHRlcih0ZXJtOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXJtLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdGVybS5zbGljZSgxKTtcbn1cblxuLyoqXG4gKiBSZXBsYWNlIGFsbCBhdHRyaWJ1dGVzIG9mIGZpcnN0IG9iamVjdCB3aXRoIHRoZSBvbmVzIHByb3ZpZGVkIGJ5IHRoZSBzZWNvbmQsIGJ1dCBrZWVwcyB0aGUgcmVmZXJlbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlT2JqZWN0S2VlcGluZ1JlZmVyZW5jZShvYmo6IExpdGVyYWwgfCBudWxsLCBuZXdPYmo6IExpdGVyYWwgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCFvYmogfHwgIW5ld09iaikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGRlbGV0ZSBvYmpba2V5XTtcbiAgICB9KTtcblxuICAgIE9iamVjdC5rZXlzKG5ld09iaikuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBvYmpba2V5XSA9IG5ld09ialtrZXldO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIEdldCBjb250cmFzdGVkIGNvbG9yIGZvciB0ZXh0IGluIHRoZSBzbGlkZXIgdGh1bWJcbiAqIEBwYXJhbSBoZXhCZ0NvbG9yIHN0cmluZyBpbiBoZXhhZGVjaW1hbHMgcmVwcmVzZW50aW5nIHRoZSBiYWNrZ3JvdW5kIGNvbG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JlZ3JvdW5kQ29sb3IoaGV4QmdDb2xvcjogc3RyaW5nKTogJ2JsYWNrJyB8ICd3aGl0ZScge1xuICAgIGNvbnN0IHJnYiA9IGhleFRvUmdiKGhleEJnQ29sb3Iuc2xpY2UoMCwgNykpOyAvLyBzcGxpY2UgcmVtb3ZlIGFscGhhIGFuZCBjb25zaWRlciBvbmx5IFwidmlzaWJsZVwiIGNvbG9yIGF0IDEwMCUgYWxwaGFcbiAgICBjb25zdCBvID0gTWF0aC5yb3VuZCgocmdiLnIgKiAyOTkgKyByZ2IuZyAqIDU4NyArIHJnYi5iICogMTE0KSAvIDEwMDApO1xuXG4gICAgcmV0dXJuIG8gPiAxMjUgPyAnYmxhY2snIDogJ3doaXRlJztcbn1cblxuZnVuY3Rpb24gaGV4VG9SZ2IoaGV4OiBzdHJpbmcpOiB7cjogbnVtYmVyOyBnOiBudW1iZXI7IGI6IG51bWJlcn0ge1xuICAgIC8vIEV4cGFuZCBzaG9ydGhhbmQgZm9ybSAoZS5nLiBcIjAzRlwiKSB0byBmdWxsIGZvcm0gKGUuZy4gXCIwMDMzRkZcIilcbiAgICBjb25zdCBzaG9ydGhhbmRSZWdleCA9IC9eIz8oW2EtZlxcZF0pKFthLWZcXGRdKShbYS1mXFxkXSkkL2k7XG4gICAgaGV4ID0gaGV4LnJlcGxhY2Uoc2hvcnRoYW5kUmVnZXgsIChtLCByLCBnLCBiKSA9PiB7XG4gICAgICAgIHJldHVybiByICsgciArIGcgKyBnICsgYiArIGI7XG4gICAgfSk7XG5cbiAgICBjb25zdCByZXN1bHQgPSAvXiM/KFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pJC9pLmV4ZWMoaGV4KTtcbiAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgID8ge1xuICAgICAgICAgICAgICByOiBwYXJzZUludChyZXN1bHRbMV0sIDE2KSxcbiAgICAgICAgICAgICAgZzogcGFyc2VJbnQocmVzdWx0WzJdLCAxNiksXG4gICAgICAgICAgICAgIGI6IHBhcnNlSW50KHJlc3VsdFszXSwgMTYpLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICAgIHI6IDAsXG4gICAgICAgICAgICAgIGc6IDAsXG4gICAgICAgICAgICAgIGI6IDAsXG4gICAgICAgICAgfTtcbn1cblxuLyoqXG4gKiBEdXJpbmcgbG9kYXNoLm1lcmdlV2l0aCwgb3ZlcnJpZGVzIGFycmF5c1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VPdmVycmlkZUFycmF5KGRlc3RWYWx1ZTogdW5rbm93biwgc291cmNlOiB1bmtub3duKTogdW5rbm93biB7XG4gICAgaWYgKGlzQXJyYXkoc291cmNlKSkge1xuICAgICAgICByZXR1cm4gc291cmNlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBDb3B5IHRleHQgdG8gY2xpcGJvYXJkLlxuICogQWNjZXB0cyBsaW5lIGJyZWFrcyBgXFxuYCBhcyB0ZXh0YXJlYSBkby5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvcHlUb0NsaXBib2FyZChkb2N1bWVudDogRG9jdW1lbnQsIHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChpbnB1dCk7XG4gICAgaW5wdXQudmFsdWUgPSB0ZXh0O1xuICAgIGlucHV0LnNlbGVjdCgpO1xuICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChpbnB1dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWVwRnJlZXplPFQgZXh0ZW5kcyBMaXRlcmFsPihvOiBUKTogUmVhZG9ubHlEZWVwPFQ+IHtcbiAgICBPYmplY3QudmFsdWVzKG8pLmZvckVhY2godiA9PiBPYmplY3QuaXNGcm96ZW4odikgfHwgZGVlcEZyZWV6ZSh2KSk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmZyZWV6ZShvKSBhcyBSZWFkb25seURlZXA8VD47XG59XG5cbi8qKlxuICogUmV0dXJuIGEgdmFsaWQgUGFnaW5hdGlvbklucHV0IGZyb20gd2hhdGV2ZXIgaXMgYXZhaWxhYmxlIGZyb20gZGF0YS4gSW52YWxpZCBwcm9wZXJ0aWVzL3R5cGVzIHdpbGwgYmUgZHJvcHBlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUGFnaW5hdGlvbihkYXRhOiB1bmtub3duKTogUGFnaW5hdGlvbklucHV0IHwgbnVsbCB7XG4gICAgaWYgKCFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHBhZ2luYXRpb246IFBhZ2luYXRpb25JbnB1dCA9IHt9O1xuXG4gICAgaWYgKCdvZmZzZXQnIGluIGRhdGEgJiYgKGRhdGEub2Zmc2V0ID09PSBudWxsIHx8IHR5cGVvZiBkYXRhLm9mZnNldCA9PT0gJ251bWJlcicpKSB7XG4gICAgICAgIHBhZ2luYXRpb24ub2Zmc2V0ID0gZGF0YS5vZmZzZXQ7XG4gICAgfVxuXG4gICAgaWYgKCdwYWdlSW5kZXgnIGluIGRhdGEgJiYgKGRhdGEucGFnZUluZGV4ID09PSBudWxsIHx8IHR5cGVvZiBkYXRhLnBhZ2VJbmRleCA9PT0gJ251bWJlcicpKSB7XG4gICAgICAgIHBhZ2luYXRpb24ucGFnZUluZGV4ID0gZGF0YS5wYWdlSW5kZXg7XG4gICAgfVxuXG4gICAgaWYgKCdwYWdlU2l6ZScgaW4gZGF0YSAmJiAoZGF0YS5wYWdlU2l6ZSA9PT0gbnVsbCB8fCB0eXBlb2YgZGF0YS5wYWdlU2l6ZSA9PT0gJ251bWJlcicpKSB7XG4gICAgICAgIHBhZ2luYXRpb24ucGFnZVNpemUgPSBkYXRhLnBhZ2VTaXplO1xuICAgIH1cblxuICAgIHJldHVybiBwYWdpbmF0aW9uO1xufVxuXG4vKipcbiAqIFJldHVybiBhIHZhbGlkIFNvcnRpbmdzIGZyb20gd2hhdGV2ZXIgaXMgYXZhaWxhYmxlIGZyb20gZGF0YS4gSW52YWxpZCBwcm9wZXJ0aWVzL3R5cGVzIHdpbGwgYmUgZHJvcHBlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU29ydGluZyhkYXRhOiB1bmtub3duKTogU29ydGluZ1tdIHwgbnVsbCB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQ6IFNvcnRpbmdbXSA9IFtdO1xuICAgIGRhdGEuZm9yRWFjaChzID0+IHtcbiAgICAgICAgY29uc3QgciA9IHZhbGlkYXRlT25lU29ydGluZyhzKTtcbiAgICAgICAgaWYgKHIpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHIpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZU9uZVNvcnRpbmcoZGF0YTogdW5rbm93bik6IFNvcnRpbmcgfCBudWxsIHtcbiAgICBpZiAoIWRhdGEgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnIHx8ICEoJ2ZpZWxkJyBpbiBkYXRhKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBzb3J0aW5nOiBTb3J0aW5nID0ge2ZpZWxkOiBkYXRhLmZpZWxkfTtcblxuICAgIGlmIChcbiAgICAgICAgJ29yZGVyJyBpbiBkYXRhICYmXG4gICAgICAgIChkYXRhLm9yZGVyID09PSBTb3J0aW5nT3JkZXIuQVNDIHx8IGRhdGEub3JkZXIgPT09IFNvcnRpbmdPcmRlci5ERVNDIHx8IGRhdGEub3JkZXIgPT09IG51bGwpXG4gICAgKSB7XG4gICAgICAgIHNvcnRpbmcub3JkZXIgPSBkYXRhLm9yZGVyO1xuICAgIH1cblxuICAgIGlmICgnbnVsbEFzSGlnaGVzdCcgaW4gZGF0YSAmJiAoZGF0YS5udWxsQXNIaWdoZXN0ID09PSBudWxsIHx8IHR5cGVvZiBkYXRhLm51bGxBc0hpZ2hlc3QgPT09ICdib29sZWFuJykpIHtcbiAgICAgICAgc29ydGluZy5udWxsQXNIaWdoZXN0ID0gZGF0YS5udWxsQXNIaWdoZXN0O1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICAgJ2VtcHR5U3RyaW5nQXNIaWdoZXN0JyBpbiBkYXRhICYmXG4gICAgICAgIChkYXRhLmVtcHR5U3RyaW5nQXNIaWdoZXN0ID09PSBudWxsIHx8IHR5cGVvZiBkYXRhLmVtcHR5U3RyaW5nQXNIaWdoZXN0ID09PSAnYm9vbGVhbicpXG4gICAgKSB7XG4gICAgICAgIHNvcnRpbmcuZW1wdHlTdHJpbmdBc0hpZ2hlc3QgPSBkYXRhLmVtcHR5U3RyaW5nQXNIaWdoZXN0O1xuICAgIH1cblxuICAgIHJldHVybiBzb3J0aW5nO1xufVxuXG4vKipcbiAqIFJldHVybiB2YWxpZCBjb2x1bW5zIGZyb20gd2hhdGV2ZXIgaXMgYXZhaWxhYmxlIGZyb20gZGF0YS4gSW52YWxpZCBwcm9wZXJ0aWVzL3R5cGVzIHdpbGwgYmUgZHJvcHBlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQ29sdW1ucyhkYXRhOiB1bmtub3duKTogc3RyaW5nW10gfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGEgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhLnNwbGl0KCcsJykuZmlsdGVyKHN0cmluZyA9PiBzdHJpbmcpO1xufVxuIl19
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9jbGFzc2VzL3V0aWxpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUdqQyxPQUFPLEVBQTJCLFlBQVksRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBVWhGLE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBaUI7SUFDM0MsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUV6QixPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3RSxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsSUFBVTtJQUN4QyxNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3pELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsdUJBQXVCO0lBQ2hHLE1BQU0sSUFBSSxHQUFHLHFCQUFxQixJQUFJLENB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LG9CQUFvQixLQUFLLFNBQVMsQ0FBQyxFQUN4RixDQUFDO1FBQ0MsT0FBTyxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUM3RCxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFhO0lBQ3pDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtwaWNrQnl9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge0xpdGVyYWx9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcbmltcG9ydCB0eXBlIHtSZWFkb25seURlZXB9IGZyb20gJ3R5cGUtZmVzdCc7XG5pbXBvcnQge1BhZ2luYXRpb25JbnB1dCwgU29ydGluZywgU29ydGluZ09yZGVyfSBmcm9tICcuL3F1ZXJ5LXZhcmlhYmxlLW1hbmFnZXInO1xuXG4vKipcbiAqIFZlcnkgYmFzaWMgZm9ybWF0dGluZyB0byBnZXQgb25seSBkYXRlLCB3aXRob3V0IHRpbWUgYW5kIGlnbm9yaW5nIGVudGlyZWx5IHRoZSB0aW1lem9uZVxuICpcbiAqIFNvIHNvbWV0aGluZyBsaWtlOiBcIjIwMjEtMDktMjNcIlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0SXNvRGF0ZShkYXRlOiBudWxsKTogbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRJc29EYXRlKGRhdGU6IERhdGUpOiBzdHJpbmc7XG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0SXNvRGF0ZShkYXRlOiBEYXRlIHwgbnVsbCk6IHN0cmluZyB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0SXNvRGF0ZShkYXRlOiBEYXRlIHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghZGF0ZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG0gPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICAgIGNvbnN0IGQgPSBkYXRlLmdldERhdGUoKTtcblxuICAgIHJldHVybiB5ICsgJy0nICsgKG0gPCAxMCA/ICcwJyA6ICcnKSArIG0gKyAnLScgKyAoZCA8IDEwID8gJzAnIDogJycpICsgZDtcbn1cblxuLyoqXG4gKiBGb3JtYXQgYSBkYXRlIGFuZCB0aW1lIGluIGEgd2F5IHRoYXQgd2lsbCBwcmVzZXJ2ZSB0aGUgbG9jYWwgdGltZSB6b25lLlxuICogVGhpcyBhbGxvd3MgdGhlIHNlcnZlciBzaWRlIHRvIGtub3cgdGhlIGRheSAod2l0aG91dCB0aW1lKSB0aGF0IHdhcyBzZWxlY3RlZCBvbiBjbGllbnQgc2lkZS5cbiAqXG4gKiBTbyBzb21ldGhpbmcgbGlrZTogXCIyMDIxLTA5LTIzVDE3OjU3OjE2KzA5OjAwXCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdElzb0RhdGVUaW1lKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRpbWV6b25lT2Zmc2V0SW5NaW51dGVzID0gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpO1xuICAgIGNvbnN0IHRpbWV6b25lT2Zmc2V0SW5Ib3VycyA9IC1NYXRoLnRydW5jKHRpbWV6b25lT2Zmc2V0SW5NaW51dGVzIC8gNjApOyAvLyBVVEMgbWludXMgbG9jYWwgdGltZVxuICAgIGNvbnN0IHNpZ24gPSB0aW1lem9uZU9mZnNldEluSG91cnMgPj0gMCA/ICcrJyA6ICctJztcbiAgICBjb25zdCBob3Vyc0xlYWRpbmdaZXJvID0gTWF0aC5hYnModGltZXpvbmVPZmZzZXRJbkhvdXJzKSA8IDEwID8gJzAnIDogJyc7XG4gICAgY29uc3QgcmVtYWluZGVyTWludXRlcyA9IC0odGltZXpvbmVPZmZzZXRJbk1pbnV0ZXMgJSA2MCk7XG4gICAgY29uc3QgbWludXRlc0xlYWRpbmdaZXJvID0gTWF0aC5hYnMocmVtYWluZGVyTWludXRlcykgPCAxMCA/ICcwJyA6ICcnO1xuXG4gICAgLy8gSXQncyBhIGJpdCB1bmZvcnR1bmF0ZSB0aGF0IHdlIG5lZWQgdG8gY29uc3RydWN0IGEgbmV3IERhdGUgaW5zdGFuY2UsXG4gICAgLy8gYnV0IHdlIGRvbid0IHdhbnQgdGhlIG9yaWdpbmFsIERhdGUgaW5zdGFuY2UgdG8gYmUgbW9kaWZpZWRcbiAgICBjb25zdCBjb3JyZWN0ZWREYXRlID0gbmV3IERhdGUoXG4gICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgICBkYXRlLmdldERhdGUoKSxcbiAgICAgICAgZGF0ZS5nZXRIb3VycygpLFxuICAgICAgICBkYXRlLmdldE1pbnV0ZXMoKSxcbiAgICAgICAgZGF0ZS5nZXRTZWNvbmRzKCksXG4gICAgICAgIGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCksXG4gICAgKTtcbiAgICBjb3JyZWN0ZWREYXRlLnNldEhvdXJzKGRhdGUuZ2V0SG91cnMoKSArIHRpbWV6b25lT2Zmc2V0SW5Ib3Vycyk7XG5cbiAgICBjb25zdCBpc28gPSBjb3JyZWN0ZWREYXRlXG4gICAgICAgIC50b0lTT1N0cmluZygpXG4gICAgICAgIC5yZXBsYWNlKC9cXC5cXGR7M31aLywgJycpXG4gICAgICAgIC5yZXBsYWNlKCdaJywgJycpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgaXNvICtcbiAgICAgICAgc2lnbiArXG4gICAgICAgIGhvdXJzTGVhZGluZ1plcm8gK1xuICAgICAgICBNYXRoLmFicyh0aW1lem9uZU9mZnNldEluSG91cnMpLnRvU3RyaW5nKCkgK1xuICAgICAgICAnOicgK1xuICAgICAgICBtaW51dGVzTGVhZGluZ1plcm8gK1xuICAgICAgICByZW1haW5kZXJNaW51dGVzXG4gICAgKTtcbn1cblxuLyoqXG4gKiBSZWxhdGlvbnMgdG8gZnVsbCBvYmplY3RzIGFyZSBjb252ZXJ0ZWQgdG8gdGhlaXIgSURzIG9ubHkuXG4gKlxuICogU28ge3VzZXI6IHtpZDogMTIzfX0gYmVjb21lcyB7dXNlcjogMTIzfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVsYXRpb25zVG9JZHMob2JqZWN0OiBMaXRlcmFsKTogTGl0ZXJhbCB7XG4gICAgY29uc3QgbmV3T2JqOiBMaXRlcmFsID0ge307XG4gICAgT2JqZWN0LmtleXMob2JqZWN0KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGxldCB2YWx1ZTogdW5rbm93biA9IG9iamVjdFtrZXldO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBub29wXG4gICAgICAgIH0gZWxzZSBpZiAoaGFzSWQodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmlkO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLm1hcCgoaTogdW5rbm93bikgPT4gKGhhc0lkKGkpID8gaS5pZCA6IGkpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICEodmFsdWUgaW5zdGFuY2VvZiBGaWxlKSAmJiAhKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gcGlja0J5KHZhbHVlLCAodiwgaykgPT4gayAhPT0gJ19fdHlwZW5hbWUnKTsgLy8gb21pdCh2YWx1ZSwgWydfX3R5cGVuYW1lJ10pID9cbiAgICAgICAgfVxuXG4gICAgICAgIG5ld09ialtrZXldID0gdmFsdWU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3T2JqO1xufVxuXG5mdW5jdGlvbiBoYXNJZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIHtpZDogdW5rbm93bn0ge1xuICAgIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgJ2lkJyBpbiB2YWx1ZSAmJiAhIXZhbHVlLmlkO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHBsdXJhbCBmb3JtIG9mIHRoZSBnaXZlbiBuYW1lXG4gKlxuICogVGhpcyBpcyAqKm5vdCoqIG5lY2Vzc2FyaWx5IHZhbGlkIGVuZ2xpc2ggZ3JhbW1hci4gSXRzIG9ubHkgcHVycG9zZSBpcyBmb3IgaW50ZXJuYWwgdXNhZ2UsIG5vdCBmb3IgaHVtYW5zLlxuICpcbiAqIFRoaXMgKipNVVNUKiogYmUga2VwdCBpbiBzeW5jIHdpdGggYFxcRWNvZGV2XFxGZWxpeFxcQXBpXFxQbHVyYWw6bWFrZSgpYC5cbiAqXG4gKiBUaGlzIGlzIGEgYml0IHBlcmZvcm1hbmNlLXNlbnNpdGl2ZSwgc28gd2Ugc2hvdWxkIGtlZXAgaXQgZmFzdCBhbmQgb25seSBjb3ZlciBjYXNlcyB0aGF0IHdlIGFjdHVhbGx5IG5lZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlUGx1cmFsKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gV29yZHMgZW5kaW5nIGluIGEgeSBwcmVjZWRlZCBieSBhIHZvd2VsIGZvcm0gdGhlaXIgcGx1cmFscyBieSBhZGRpbmcgLXM6XG4gICAgaWYgKG5hbWUubWF0Y2goL1thZWlvdV15JC8pKSB7XG4gICAgICAgIHJldHVybiBuYW1lICsgJ3MnO1xuICAgIH1cblxuICAgIGNvbnN0IHBsdXJhbCA9IG5hbWUgKyAncyc7XG5cbiAgICByZXR1cm4gcGx1cmFsLnJlcGxhY2UoL3lzJC8sICdpZXMnKS5yZXBsYWNlKC9zcyQvLCAnc2VzJykucmVwbGFjZSgveHMkLywgJ3hlcycpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHN0cmluZyB3aXRoIHRoZSBmaXJzdCBsZXR0ZXIgYXMgY2FwaXRhbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBwZXJDYXNlRmlyc3RMZXR0ZXIodGVybTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGVybS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHRlcm0uc2xpY2UoMSk7XG59XG5cbi8qKlxuICogUmVwbGFjZSBhbGwgYXR0cmlidXRlcyBvZiBmaXJzdCBvYmplY3Qgd2l0aCB0aGUgb25lcyBwcm92aWRlZCBieSB0aGUgc2Vjb25kLCBidXQga2VlcHMgdGhlIHJlZmVyZW5jZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZU9iamVjdEtlZXBpbmdSZWZlcmVuY2Uob2JqOiBMaXRlcmFsIHwgbnVsbCwgbmV3T2JqOiBMaXRlcmFsIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICghb2JqIHx8ICFuZXdPYmopIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBkZWxldGUgb2JqW2tleV07XG4gICAgfSk7XG5cbiAgICBPYmplY3Qua2V5cyhuZXdPYmopLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgb2JqW2tleV0gPSBuZXdPYmpba2V5XTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgY29udHJhc3RlZCBjb2xvciBmb3IgdGV4dCBpbiB0aGUgc2xpZGVyIHRodW1iXG4gKiBAcGFyYW0gaGV4QmdDb2xvciBzdHJpbmcgaW4gaGV4YWRlY2ltYWxzIHJlcHJlc2VudGluZyB0aGUgYmFja2dyb3VuZCBjb2xvclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9yZWdyb3VuZENvbG9yKGhleEJnQ29sb3I6IHN0cmluZyk6ICdibGFjaycgfCAnd2hpdGUnIHtcbiAgICBjb25zdCByZ2IgPSBoZXhUb1JnYihoZXhCZ0NvbG9yLnNsaWNlKDAsIDcpKTsgLy8gc3BsaWNlIHJlbW92ZSBhbHBoYSBhbmQgY29uc2lkZXIgb25seSBcInZpc2libGVcIiBjb2xvciBhdCAxMDAlIGFscGhhXG4gICAgY29uc3QgbyA9IE1hdGgucm91bmQoKHJnYi5yICogMjk5ICsgcmdiLmcgKiA1ODcgKyByZ2IuYiAqIDExNCkgLyAxMDAwKTtcblxuICAgIHJldHVybiBvID4gMTI1ID8gJ2JsYWNrJyA6ICd3aGl0ZSc7XG59XG5cbmZ1bmN0aW9uIGhleFRvUmdiKGhleDogc3RyaW5nKToge3I6IG51bWJlcjsgZzogbnVtYmVyOyBiOiBudW1iZXJ9IHtcbiAgICAvLyBFeHBhbmQgc2hvcnRoYW5kIGZvcm0gKGUuZy4gXCIwM0ZcIikgdG8gZnVsbCBmb3JtIChlLmcuIFwiMDAzM0ZGXCIpXG4gICAgY29uc3Qgc2hvcnRoYW5kUmVnZXggPSAvXiM/KFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pJC9pO1xuICAgIGhleCA9IGhleC5yZXBsYWNlKHNob3J0aGFuZFJlZ2V4LCAobSwgciwgZywgYikgPT4ge1xuICAgICAgICByZXR1cm4gciArIHIgKyBnICsgZyArIGIgKyBiO1xuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gL14jPyhbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleCk7XG4gICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICA/IHtcbiAgICAgICAgICAgICAgcjogcGFyc2VJbnQocmVzdWx0WzFdLCAxNiksXG4gICAgICAgICAgICAgIGc6IHBhcnNlSW50KHJlc3VsdFsyXSwgMTYpLFxuICAgICAgICAgICAgICBiOiBwYXJzZUludChyZXN1bHRbM10sIDE2KSxcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgICByOiAwLFxuICAgICAgICAgICAgICBnOiAwLFxuICAgICAgICAgICAgICBiOiAwLFxuICAgICAgICAgIH07XG59XG5cbi8qKlxuICogRHVyaW5nIGxvZGFzaC5tZXJnZVdpdGgsIG92ZXJyaWRlcyBhcnJheXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlT3ZlcnJpZGVBcnJheShkZXN0VmFsdWU6IHVua25vd24sIHNvdXJjZTogdW5rbm93bik6IHVua25vd24ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZSkpIHtcbiAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICB9XG59XG5cbi8qKlxuICogQ29weSB0ZXh0IHRvIGNsaXBib2FyZC5cbiAqIEFjY2VwdHMgbGluZSBicmVha3MgYFxcbmAgYXMgdGV4dGFyZWEgZG8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3B5VG9DbGlwYm9hcmQoZG9jdW1lbnQ6IERvY3VtZW50LCB0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoaW5wdXQpO1xuICAgIGlucHV0LnZhbHVlID0gdGV4dDtcbiAgICBpbnB1dC5zZWxlY3QoKTtcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaW5wdXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVlcEZyZWV6ZTxUIGV4dGVuZHMgTGl0ZXJhbD4obzogVCk6IFJlYWRvbmx5RGVlcDxUPiB7XG4gICAgT2JqZWN0LnZhbHVlcyhvKS5mb3JFYWNoKHYgPT4gT2JqZWN0LmlzRnJvemVuKHYpIHx8IGRlZXBGcmVlemUodikpO1xuXG4gICAgcmV0dXJuIE9iamVjdC5mcmVlemUobykgYXMgUmVhZG9ubHlEZWVwPFQ+O1xufVxuXG4vKipcbiAqIFJldHVybiBhIHZhbGlkIFBhZ2luYXRpb25JbnB1dCBmcm9tIHdoYXRldmVyIGlzIGF2YWlsYWJsZSBmcm9tIGRhdGEuIEludmFsaWQgcHJvcGVydGllcy90eXBlcyB3aWxsIGJlIGRyb3BwZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVBhZ2luYXRpb24oZGF0YTogdW5rbm93bik6IFBhZ2luYXRpb25JbnB1dCB8IG51bGwge1xuICAgIGlmICghZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uSW5wdXQgPSB7fTtcblxuICAgIGlmICgnb2Zmc2V0JyBpbiBkYXRhICYmIChkYXRhLm9mZnNldCA9PT0gbnVsbCB8fCB0eXBlb2YgZGF0YS5vZmZzZXQgPT09ICdudW1iZXInKSkge1xuICAgICAgICBwYWdpbmF0aW9uLm9mZnNldCA9IGRhdGEub2Zmc2V0O1xuICAgIH1cblxuICAgIGlmICgncGFnZUluZGV4JyBpbiBkYXRhICYmIChkYXRhLnBhZ2VJbmRleCA9PT0gbnVsbCB8fCB0eXBlb2YgZGF0YS5wYWdlSW5kZXggPT09ICdudW1iZXInKSkge1xuICAgICAgICBwYWdpbmF0aW9uLnBhZ2VJbmRleCA9IGRhdGEucGFnZUluZGV4O1xuICAgIH1cblxuICAgIGlmICgncGFnZVNpemUnIGluIGRhdGEgJiYgKGRhdGEucGFnZVNpemUgPT09IG51bGwgfHwgdHlwZW9mIGRhdGEucGFnZVNpemUgPT09ICdudW1iZXInKSkge1xuICAgICAgICBwYWdpbmF0aW9uLnBhZ2VTaXplID0gZGF0YS5wYWdlU2l6ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFnaW5hdGlvbjtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYSB2YWxpZCBTb3J0aW5ncyBmcm9tIHdoYXRldmVyIGlzIGF2YWlsYWJsZSBmcm9tIGRhdGEuIEludmFsaWQgcHJvcGVydGllcy90eXBlcyB3aWxsIGJlIGRyb3BwZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVNvcnRpbmcoZGF0YTogdW5rbm93bik6IFNvcnRpbmdbXSB8IG51bGwge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0OiBTb3J0aW5nW10gPSBbXTtcbiAgICBkYXRhLmZvckVhY2gocyA9PiB7XG4gICAgICAgIGNvbnN0IHIgPSB2YWxpZGF0ZU9uZVNvcnRpbmcocyk7XG4gICAgICAgIGlmIChyKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChyKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVPbmVTb3J0aW5nKGRhdGE6IHVua25vd24pOiBTb3J0aW5nIHwgbnVsbCB7XG4gICAgaWYgKCFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0JyB8fCAhKCdmaWVsZCcgaW4gZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3Qgc29ydGluZzogU29ydGluZyA9IHtmaWVsZDogZGF0YS5maWVsZH07XG5cbiAgICBpZiAoXG4gICAgICAgICdvcmRlcicgaW4gZGF0YSAmJlxuICAgICAgICAoZGF0YS5vcmRlciA9PT0gU29ydGluZ09yZGVyLkFTQyB8fCBkYXRhLm9yZGVyID09PSBTb3J0aW5nT3JkZXIuREVTQyB8fCBkYXRhLm9yZGVyID09PSBudWxsKVxuICAgICkge1xuICAgICAgICBzb3J0aW5nLm9yZGVyID0gZGF0YS5vcmRlcjtcbiAgICB9XG5cbiAgICBpZiAoJ251bGxBc0hpZ2hlc3QnIGluIGRhdGEgJiYgKGRhdGEubnVsbEFzSGlnaGVzdCA9PT0gbnVsbCB8fCB0eXBlb2YgZGF0YS5udWxsQXNIaWdoZXN0ID09PSAnYm9vbGVhbicpKSB7XG4gICAgICAgIHNvcnRpbmcubnVsbEFzSGlnaGVzdCA9IGRhdGEubnVsbEFzSGlnaGVzdDtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAgICdlbXB0eVN0cmluZ0FzSGlnaGVzdCcgaW4gZGF0YSAmJlxuICAgICAgICAoZGF0YS5lbXB0eVN0cmluZ0FzSGlnaGVzdCA9PT0gbnVsbCB8fCB0eXBlb2YgZGF0YS5lbXB0eVN0cmluZ0FzSGlnaGVzdCA9PT0gJ2Jvb2xlYW4nKVxuICAgICkge1xuICAgICAgICBzb3J0aW5nLmVtcHR5U3RyaW5nQXNIaWdoZXN0ID0gZGF0YS5lbXB0eVN0cmluZ0FzSGlnaGVzdDtcbiAgICB9XG5cbiAgICByZXR1cm4gc29ydGluZztcbn1cblxuLyoqXG4gKiBSZXR1cm4gdmFsaWQgY29sdW1ucyBmcm9tIHdoYXRldmVyIGlzIGF2YWlsYWJsZSBmcm9tIGRhdGEuIEludmFsaWQgcHJvcGVydGllcy90eXBlcyB3aWxsIGJlIGRyb3BwZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUNvbHVtbnMoZGF0YTogdW5rbm93bik6IHN0cmluZ1tdIHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBkYXRhICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YS5zcGxpdCgnLCcpLmZpbHRlcihzdHJpbmcgPT4gc3RyaW5nKTtcbn1cbiJdfQ==
@@ -31,10 +31,10 @@ export class NaturalHttpPrefixDirective {
31
31
  }
32
32
  }
33
33
  }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalHttpPrefixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalHttpPrefixDirective, isStandalone: true, selector: "[naturalHttpPrefix]", inputs: { naturalHttpPrefix: "naturalHttpPrefix" }, host: { listeners: { "ngModelChange": "httpize($event)" } }, ngImport: i0 }); }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalHttpPrefixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: NaturalHttpPrefixDirective, isStandalone: true, selector: "[naturalHttpPrefix]", inputs: { naturalHttpPrefix: "naturalHttpPrefix" }, host: { listeners: { "ngModelChange": "httpize($event)" } }, ngImport: i0 }); }
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalHttpPrefixDirective, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalHttpPrefixDirective, decorators: [{
38
38
  type: Directive,
39
39
  args: [{
40
40
  selector: '[naturalHttpPrefix]',
@@ -43,10 +43,10 @@ export class NaturalAlertService {
43
43
  });
44
44
  return dialog.afterClosed();
45
45
  }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAlertService, deps: [{ token: i1.MatDialog }, { token: i2.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable }); }
47
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAlertService, providedIn: 'root' }); }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAlertService, deps: [{ token: i1.MatDialog }, { token: i2.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable }); }
47
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAlertService, providedIn: 'root' }); }
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAlertService, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAlertService, decorators: [{
50
50
  type: Injectable,
51
51
  args: [{
52
52
  providedIn: 'root',
@@ -8,10 +8,10 @@ export class NaturalConfirmComponent {
8
8
  constructor(data) {
9
9
  this.data = data;
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalConfirmComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: NaturalConfirmComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<h2 mat-dialog-title>{{ data.title }}</h2>\n<mat-dialog-content\n ><p class=\"mat-body\">{{ data.message }}</p></mat-dialog-content\n>\n<mat-dialog-actions align=\"end\">\n <button [mat-dialog-close]=\"false\" mat-button>{{ data.cancelText }}</button>\n <button [mat-dialog-close]=\"true\" mat-stroked-button cdkFocusInitial>{{ data.confirmText }}</button>\n</mat-dialog-actions>\n", styles: ["mat-dialog-content{max-width:40em}\n"], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalConfirmComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: NaturalConfirmComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<h2 mat-dialog-title>{{ data.title }}</h2>\n<mat-dialog-content\n ><p class=\"mat-body\">{{ data.message }}</p></mat-dialog-content\n>\n<mat-dialog-actions align=\"end\">\n <button [mat-dialog-close]=\"false\" mat-button>{{ data.cancelText }}</button>\n <button [mat-dialog-close]=\"true\" mat-stroked-button cdkFocusInitial>{{ data.confirmText }}</button>\n</mat-dialog-actions>\n", styles: ["mat-dialog-content{max-width:40em}\n"], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalConfirmComponent, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalConfirmComponent, decorators: [{
15
15
  type: Component,
16
16
  args: [{ standalone: true, imports: [MatDialogModule, MatButtonModule], template: "<h2 mat-dialog-title>{{ data.title }}</h2>\n<mat-dialog-content\n ><p class=\"mat-body\">{{ data.message }}</p></mat-dialog-content\n>\n<mat-dialog-actions align=\"end\">\n <button [mat-dialog-close]=\"false\" mat-button>{{ data.cancelText }}</button>\n <button [mat-dialog-close]=\"true\" mat-stroked-button cdkFocusInitial>{{ data.confirmText }}</button>\n</mat-dialog-actions>\n", styles: ["mat-dialog-content{max-width:40em}\n"] }]
17
17
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -124,8 +124,8 @@ export class NaturalAvatarComponent {
124
124
  height: this.size + 'px',
125
125
  };
126
126
  }
127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAvatarComponent, deps: [{ token: i1.AvatarService }], target: i0.ɵɵFactoryTarget.Component }); }
128
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalAvatarComponent, isStandalone: true, selector: "natural-avatar", inputs: { image: "image", initials: "initials", gravatar: "gravatar", size: "size", decorated: "decorated", textSizeRatio: "textSizeRatio", bgColor: "bgColor", fgColor: "fgColor", borderRadius: "borderRadius", textMaximumLength: "textMaximumLength" }, host: { properties: { "style.height.px": "this.size", "style.width.px": "this.size", "class.decorated": "this.decorated" } }, usesOnChanges: true, ngImport: i0, template: `
127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAvatarComponent, deps: [{ token: i1.AvatarService }], target: i0.ɵɵFactoryTarget.Component }); }
128
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: NaturalAvatarComponent, isStandalone: true, selector: "natural-avatar", inputs: { image: "image", initials: "initials", gravatar: "gravatar", size: "size", decorated: "decorated", textSizeRatio: "textSizeRatio", bgColor: "bgColor", fgColor: "fgColor", borderRadius: "borderRadius", textMaximumLength: "textMaximumLength" }, host: { properties: { "style.height.px": "this.size", "style.width.px": "this.size", "class.decorated": "this.decorated" } }, usesOnChanges: true, ngImport: i0, template: `
129
129
  <div class="avatar-container" [ngStyle]="hostStyle">
130
130
  @if (avatarSrc) {
131
131
  <img
@@ -146,7 +146,7 @@ export class NaturalAvatarComponent {
146
146
  </div>
147
147
  `, isInline: true, styles: [":host{display:block}:host.decorated{position:relative}:host.decorated .avatar-container:before{content:\"\";position:absolute;inset:0;border-radius:50%;background:linear-gradient(345deg,#fff0 25%,#ffffff54)}:host.decorated .avatar-content{text-shadow:0 1px 0 rgba(0,0,0,.6)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
148
148
  }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalAvatarComponent, decorators: [{
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalAvatarComponent, decorators: [{
150
150
  type: Component,
151
151
  args: [{ selector: 'natural-avatar', template: `
152
152
  <div class="avatar-container" [ngStyle]="hostStyle">
@@ -55,10 +55,10 @@ export class AvatarService {
55
55
  .map(letter => letter.charCodeAt(0))
56
56
  .reduce((previous, current) => previous + current);
57
57
  }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AvatarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
59
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AvatarService, providedIn: 'root' }); }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: AvatarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
59
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: AvatarService, providedIn: 'root' }); }
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AvatarService, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: AvatarService, decorators: [{
62
62
  type: Injectable,
63
63
  args: [{
64
64
  providedIn: 'root',
@@ -110,10 +110,10 @@ export class NaturalColumnsPickerComponent {
110
110
  const visibleButtons = this.buttons?.reduce((sum, button) => (this.defaultTrue(button.show) ? 1 : 0), 0) ?? 0;
111
111
  return visibleButtons > 0;
112
112
  }
113
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalColumnsPickerComponent, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
114
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NaturalColumnsPickerComponent, isStandalone: true, selector: "natural-columns-picker", inputs: { buttons: "buttons", availableColumns: "availableColumns", selections: "selections" }, outputs: { selectionChange: "selectionChange" }, usesOnChanges: true, ngImport: i0, template: "<div>\n @if ((isMobile | async) && someVisibleButtons()) {\n <button mat-icon-button [matMenuTriggerFor]=\"mobileMenu\">\n <mat-icon naturalIcon=\"more_vert\" />\n </button>\n <mat-menu #mobileMenu=\"matMenu\">\n <ng-template matMenuContent>\n @for (button of buttons; track button) {\n @if (button.href) {\n <a\n mat-menu-item\n [href]=\"defaultTrue(button.show) && button.href\"\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [ngClass]=\"needMargin(button)\"\n >\n @if (useCheckbox(button)) {\n <mat-checkbox [checked]=\"button.checked\" />\n }\n {{ button.label }}\n </a>\n }\n @if (defaultTrue(button.show) && !button.href && !button.buttons) {\n <button\n mat-menu-item\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [ngClass]=\"needMargin(button)\"\n >\n @if (useCheckbox(button)) {\n <mat-checkbox [checked]=\"button.checked\" />\n }\n {{ button.label }}\n </button>\n }\n @if (defaultTrue(button.show) && button.buttons) {\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"subMenu\"\n (click)=\"button.click?.(button, $event)\"\n [ngClass]=\"needMargin(button)\"\n >\n @if (useCheckbox(button)) {\n <mat-checkbox [checked]=\"button.checked\" />\n }\n {{ button.label }}\n </button>\n <mat-menu #subMenu=\"matMenu\">\n <ng-template matMenuContent>\n @for (subButton of button.buttons; track subButton) {\n <a\n mat-menu-item\n [disabled]=\"subButton.disabled\"\n (click)=\"subButton.click(subButton, $event)\"\n >\n {{ subButton.label }}\n </a>\n }\n </ng-template>\n </mat-menu>\n }\n }\n @if (displayedColumns.length) {\n <button [matMenuTriggerFor]=\"columnMenu\" mat-menu-item [ngClass]=\"needMargin(null)\">\n <span i18n>Colonnes</span>\n </button>\n }\n </ng-template>\n </mat-menu>\n } @else {\n @for (button of buttons; track button) {\n @if (button.href) {\n <a\n mat-icon-button\n [href]=\"defaultTrue(button.show) && button.href\"\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [color]=\"color(button)\"\n [matTooltip]=\"button.label\"\n >\n <mat-icon [naturalIcon]=\"button.icon\" />\n </a>\n }\n @if (defaultTrue(button.show) && !button.href && !button.buttons) {\n <button\n mat-icon-button\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [color]=\"color(button)\"\n [matTooltip]=\"button.label\"\n >\n <mat-icon [naturalIcon]=\"button.icon\" />\n </button>\n }\n @if (defaultTrue(button.show) && button.buttons) {\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"menu\"\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [color]=\"color(button)\"\n [matTooltip]=\"button.label\"\n >\n <mat-icon [naturalIcon]=\"button.icon\" />\n </button>\n <mat-menu #menu=\"matMenu\">\n <ng-template matMenuContent>\n @for (subButton of button.buttons; track subButton) {\n <a\n mat-menu-item\n [disabled]=\"subButton.disabled\"\n (click)=\"subButton.click(subButton, $event)\"\n >\n {{ subButton.label }}\n </a>\n }\n </ng-template>\n </mat-menu>\n }\n }\n @if (displayedColumns.length) {\n <button\n [matMenuTriggerFor]=\"columnMenu\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"S\u00E9lectionner les colonnes\"\n >\n <mat-icon naturalIcon=\"view_column\" />\n </button>\n }\n }\n</div>\n\n<mat-menu #columnMenu=\"matMenu\">\n <ng-template matMenuContent>\n @for (column of displayedColumns; track column) {\n <div (click)=\"$event.stopPropagation(); column.checked = !column.checked; updateColumns()\" mat-menu-item>\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"updateColumns()\"\n [(ngModel)]=\"column.checked\"\n >{{ column.label }}</mat-checkbox\n >\n </div>\n }\n </ng-template>\n</mat-menu>\n", styles: [".align-with-checkbox{padding-left:61px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.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: MatCheckboxModule }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
113
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalColumnsPickerComponent, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
114
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: NaturalColumnsPickerComponent, isStandalone: true, selector: "natural-columns-picker", inputs: { buttons: "buttons", availableColumns: "availableColumns", selections: "selections" }, outputs: { selectionChange: "selectionChange" }, usesOnChanges: true, ngImport: i0, template: "<div>\n @if ((isMobile | async) && someVisibleButtons()) {\n <button mat-icon-button [matMenuTriggerFor]=\"mobileMenu\">\n <mat-icon naturalIcon=\"more_vert\" />\n </button>\n <mat-menu #mobileMenu=\"matMenu\">\n <ng-template matMenuContent>\n @for (button of buttons; track button) {\n @if (button.href) {\n <a\n mat-menu-item\n [href]=\"defaultTrue(button.show) && button.href\"\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [ngClass]=\"needMargin(button)\"\n >\n @if (useCheckbox(button)) {\n <mat-checkbox [checked]=\"button.checked\" />\n }\n {{ button.label }}\n </a>\n }\n @if (defaultTrue(button.show) && !button.href && !button.buttons) {\n <button\n mat-menu-item\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [ngClass]=\"needMargin(button)\"\n >\n @if (useCheckbox(button)) {\n <mat-checkbox [checked]=\"button.checked\" />\n }\n {{ button.label }}\n </button>\n }\n @if (defaultTrue(button.show) && button.buttons) {\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"subMenu\"\n (click)=\"button.click?.(button, $event)\"\n [ngClass]=\"needMargin(button)\"\n >\n @if (useCheckbox(button)) {\n <mat-checkbox [checked]=\"button.checked\" />\n }\n {{ button.label }}\n </button>\n <mat-menu #subMenu=\"matMenu\">\n <ng-template matMenuContent>\n @for (subButton of button.buttons; track subButton) {\n <a\n mat-menu-item\n [disabled]=\"subButton.disabled\"\n (click)=\"subButton.click(subButton, $event)\"\n >\n {{ subButton.label }}\n </a>\n }\n </ng-template>\n </mat-menu>\n }\n }\n @if (displayedColumns.length) {\n <button [matMenuTriggerFor]=\"columnMenu\" mat-menu-item [ngClass]=\"needMargin(null)\">\n <span i18n>Colonnes</span>\n </button>\n }\n </ng-template>\n </mat-menu>\n } @else {\n @for (button of buttons; track button) {\n @if (button.href) {\n <a\n mat-icon-button\n [href]=\"defaultTrue(button.show) && button.href\"\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [color]=\"color(button)\"\n [matTooltip]=\"button.label\"\n >\n <mat-icon [naturalIcon]=\"button.icon\" />\n </a>\n }\n @if (defaultTrue(button.show) && !button.href && !button.buttons) {\n <button\n mat-icon-button\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [color]=\"color(button)\"\n [matTooltip]=\"button.label\"\n >\n <mat-icon [naturalIcon]=\"button.icon\" />\n </button>\n }\n @if (defaultTrue(button.show) && button.buttons) {\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"menu\"\n (click)=\"button.click?.(button, $event)\"\n [disabled]=\"button.disabled\"\n [color]=\"color(button)\"\n [matTooltip]=\"button.label\"\n >\n <mat-icon [naturalIcon]=\"button.icon\" />\n </button>\n <mat-menu #menu=\"matMenu\">\n <ng-template matMenuContent>\n @for (subButton of button.buttons; track subButton) {\n <a\n mat-menu-item\n [disabled]=\"subButton.disabled\"\n (click)=\"subButton.click(subButton, $event)\"\n >\n {{ subButton.label }}\n </a>\n }\n </ng-template>\n </mat-menu>\n }\n }\n @if (displayedColumns.length) {\n <button\n [matMenuTriggerFor]=\"columnMenu\"\n mat-icon-button\n i18n-matTooltip\n matTooltip=\"S\u00E9lectionner les colonnes\"\n >\n <mat-icon naturalIcon=\"view_column\" />\n </button>\n }\n }\n</div>\n\n<mat-menu #columnMenu=\"matMenu\">\n <ng-template matMenuContent>\n @for (column of displayedColumns; track column) {\n <div (click)=\"$event.stopPropagation(); column.checked = !column.checked; updateColumns()\" mat-menu-item>\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"updateColumns()\"\n [(ngModel)]=\"column.checked\"\n >{{ column.label }}</mat-checkbox\n >\n </div>\n }\n </ng-template>\n</mat-menu>\n", styles: [".align-with-checkbox{padding-left:61px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.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: MatCheckboxModule }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
115
115
  }
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalColumnsPickerComponent, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalColumnsPickerComponent, decorators: [{
117
117
  type: Component,
118
118
  args: [{ selector: 'natural-columns-picker', standalone: true, imports: [
119
119
  CommonModule,
@@ -80,10 +80,10 @@ export class NaturalLinkableTabDirective extends NaturalAbstractController {
80
80
  getTabIndex(fragment) {
81
81
  return this.component._tabs.toArray().findIndex(tab => fragment === getTabId(tab));
82
82
  }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalLinkableTabDirective, deps: [{ token: i1.MatTabGroup }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Directive }); }
84
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalLinkableTabDirective, isStandalone: true, selector: "mat-tab-group[naturalLinkableTab]", inputs: { naturalLinkableTab: "naturalLinkableTab" }, usesInheritance: true, ngImport: i0 }); }
83
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalLinkableTabDirective, deps: [{ token: i1.MatTabGroup }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Directive }); }
84
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: NaturalLinkableTabDirective, isStandalone: true, selector: "mat-tab-group[naturalLinkableTab]", inputs: { naturalLinkableTab: "naturalLinkableTab" }, usesInheritance: true, ngImport: i0 }); }
85
85
  }
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalLinkableTabDirective, decorators: [{
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalLinkableTabDirective, decorators: [{
87
87
  type: Directive,
88
88
  args: [{
89
89
  selector: 'mat-tab-group[naturalLinkableTab]',
@@ -48,10 +48,10 @@ export class NaturalSrcDensityDirective {
48
48
  constructor(elementRef) {
49
49
  this.elementRef = elementRef;
50
50
  }
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSrcDensityDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
52
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NaturalSrcDensityDirective, isStandalone: true, selector: "img[naturalSrcDensity]", inputs: { naturalSrcDensity: "naturalSrcDensity" }, ngImport: i0 }); }
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalSrcDensityDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
52
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: NaturalSrcDensityDirective, isStandalone: true, selector: "img[naturalSrcDensity]", inputs: { naturalSrcDensity: "naturalSrcDensity" }, ngImport: i0 }); }
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NaturalSrcDensityDirective, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: NaturalSrcDensityDirective, decorators: [{
55
55
  type: Directive,
56
56
  args: [{
57
57
  selector: 'img[naturalSrcDensity]',