@ecodev/natural 61.0.0 → 61.0.2

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 (138) hide show
  1. package/esm2022/lib/classes/abstract-detail.mjs +36 -33
  2. package/esm2022/lib/classes/abstract-editable-list.mjs +8 -6
  3. package/esm2022/lib/classes/abstract-list.mjs +74 -55
  4. package/esm2022/lib/classes/abstract-navigable-list.mjs +9 -9
  5. package/esm2022/lib/classes/cumulative-changes.mjs +3 -5
  6. package/esm2022/lib/classes/data-source.mjs +3 -2
  7. package/esm2022/lib/classes/query-variable-manager.mjs +3 -3
  8. package/esm2022/lib/directives/http-prefix.directive.mjs +4 -6
  9. package/esm2022/lib/modules/alert/alert.service.mjs +9 -11
  10. package/esm2022/lib/modules/alert/confirm.component.mjs +6 -11
  11. package/esm2022/lib/modules/avatar/component/avatar.component.mjs +25 -23
  12. package/esm2022/lib/modules/avatar/service/avatar.service.mjs +22 -24
  13. package/esm2022/lib/modules/avatar/sources/source.mjs +2 -1
  14. package/esm2022/lib/modules/columns-picker/columns-picker.component.mjs +26 -28
  15. package/esm2022/lib/modules/columns-picker/public-api.mjs +1 -1
  16. package/esm2022/lib/modules/common/directives/background-density.directive.mjs +6 -8
  17. package/esm2022/lib/modules/common/directives/linkable-tab.directive.mjs +18 -19
  18. package/esm2022/lib/modules/common/directives/src-density.directive.mjs +6 -8
  19. package/esm2022/lib/modules/common/pipes/capitalize.pipe.mjs +3 -3
  20. package/esm2022/lib/modules/common/pipes/ellipsis.pipe.mjs +3 -3
  21. package/esm2022/lib/modules/common/pipes/enum.pipe.mjs +7 -9
  22. package/esm2022/lib/modules/common/pipes/time-ago.pipe.mjs +4 -3
  23. package/esm2022/lib/modules/common/public-api.mjs +2 -2
  24. package/esm2022/lib/modules/common/services/memory-storage.mjs +4 -6
  25. package/esm2022/lib/modules/common/services/seo.service.mjs +18 -26
  26. package/esm2022/lib/modules/detail-header/detail-header.component.mjs +38 -33
  27. package/esm2022/lib/modules/dialog-trigger/dialog-trigger.component.mjs +13 -11
  28. package/esm2022/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +13 -12
  29. package/esm2022/lib/modules/dropdown-components/public-api.mjs +3 -3
  30. package/esm2022/lib/modules/dropdown-components/type-boolean/type-boolean.component.mjs +10 -13
  31. package/esm2022/lib/modules/dropdown-components/type-date/type-date.component.mjs +29 -33
  32. package/esm2022/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +27 -32
  33. package/esm2022/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +3 -3
  34. package/esm2022/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +3 -3
  35. package/esm2022/lib/modules/dropdown-components/type-number/type-number.component.mjs +29 -30
  36. package/esm2022/lib/modules/dropdown-components/type-options/type-options.component.mjs +17 -15
  37. package/esm2022/lib/modules/dropdown-components/type-select/type-select.component.mjs +25 -25
  38. package/esm2022/lib/modules/dropdown-components/type-text/type-text.component.mjs +15 -17
  39. package/esm2022/lib/modules/file/abstract-file.mjs +51 -47
  40. package/esm2022/lib/modules/file/component/file.component.mjs +51 -41
  41. package/esm2022/lib/modules/file/file-drop.directive.mjs +10 -13
  42. package/esm2022/lib/modules/file/file-select.directive.mjs +9 -12
  43. package/esm2022/lib/modules/file/file.service.mjs +15 -20
  44. package/esm2022/lib/modules/file/public-api.mjs +1 -1
  45. package/esm2022/lib/modules/fixed-button/fixed-button.component.mjs +7 -8
  46. package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +15 -12
  47. package/esm2022/lib/modules/hierarchic-selector/classes/flat-node.mjs +8 -2
  48. package/esm2022/lib/modules/hierarchic-selector/classes/model-node.mjs +4 -2
  49. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +71 -55
  50. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +18 -20
  51. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +17 -11
  52. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +7 -9
  53. package/esm2022/lib/modules/icon/icon.directive.mjs +15 -23
  54. package/esm2022/lib/modules/logger/error-handler.mjs +11 -25
  55. package/esm2022/lib/modules/logger/public-api.mjs +2 -2
  56. package/esm2022/lib/modules/matomo/matomo.service.mjs +15 -22
  57. package/esm2022/lib/modules/panels/abstract-panel.mjs +23 -19
  58. package/esm2022/lib/modules/panels/panels.component.mjs +10 -9
  59. package/esm2022/lib/modules/panels/panels.service.mjs +56 -52
  60. package/esm2022/lib/modules/relations/relations.component.mjs +74 -45
  61. package/esm2022/lib/modules/search/dropdown-container/dropdown-container.component.mjs +21 -22
  62. package/esm2022/lib/modules/search/dropdown-container/dropdown-ref.mjs +4 -2
  63. package/esm2022/lib/modules/search/dropdown-container/dropdown.service.mjs +8 -11
  64. package/esm2022/lib/modules/search/facet-selector/facet-selector.component.mjs +13 -18
  65. package/esm2022/lib/modules/search/group/group.component.mjs +12 -11
  66. package/esm2022/lib/modules/search/input/input.component.mjs +86 -73
  67. package/esm2022/lib/modules/search/public-api.mjs +1 -1
  68. package/esm2022/lib/modules/search/search/search.component.mjs +37 -40
  69. package/esm2022/lib/modules/select/abstract-select.component.mjs +66 -39
  70. package/esm2022/lib/modules/select/select/select.component.mjs +51 -48
  71. package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +32 -22
  72. package/esm2022/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +39 -34
  73. package/esm2022/lib/modules/sidenav/sidenav/sidenav.component.mjs +3 -3
  74. package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +34 -29
  75. package/esm2022/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +3 -3
  76. package/esm2022/lib/modules/sidenav/sidenav-stack.service.mjs +13 -15
  77. package/esm2022/lib/modules/sidenav/sidenav.service.mjs +47 -54
  78. package/esm2022/lib/modules/stamp/stamp.component.mjs +4 -3
  79. package/esm2022/lib/modules/table-button/table-button.component.mjs +16 -13
  80. package/esm2022/lib/services/abstract-model.service.mjs +17 -7
  81. package/esm2022/lib/services/debounce.service.mjs +7 -9
  82. package/esm2022/lib/services/enum.service.mjs +7 -10
  83. package/esm2022/lib/services/link-mutation.service.mjs +11 -10
  84. package/esm2022/lib/services/persistence.service.mjs +9 -21
  85. package/esm2022/lib/services/swiss-parsing-date-adapter.service.mjs +3 -3
  86. package/esm2022/public-api.mjs +2 -2
  87. package/fesm2022/ecodev-natural.mjs +1357 -1270
  88. package/fesm2022/ecodev-natural.mjs.map +1 -1
  89. package/lib/modules/alert/alert.service.d.ts +1 -3
  90. package/lib/modules/alert/confirm.component.d.ts +1 -2
  91. package/lib/modules/avatar/component/avatar.component.d.ts +0 -2
  92. package/lib/modules/columns-picker/columns-picker.component.d.ts +1 -3
  93. package/lib/modules/columns-picker/public-api.d.ts +1 -1
  94. package/lib/modules/common/directives/background-density.directive.d.ts +0 -2
  95. package/lib/modules/common/directives/linkable-tab.directive.d.ts +2 -4
  96. package/lib/modules/common/directives/src-density.directive.d.ts +0 -2
  97. package/lib/modules/common/pipes/enum.pipe.d.ts +0 -2
  98. package/lib/modules/common/public-api.d.ts +2 -1
  99. package/lib/modules/common/services/seo.service.d.ts +2 -3
  100. package/lib/modules/dialog-trigger/dialog-trigger.component.d.ts +3 -3
  101. package/lib/modules/dropdown-components/public-api.d.ts +9 -9
  102. package/lib/modules/dropdown-components/type-boolean/type-boolean.component.d.ts +1 -3
  103. package/lib/modules/dropdown-components/type-date/type-date.component.d.ts +1 -3
  104. package/lib/modules/dropdown-components/type-date-range/type-date-range.component.d.ts +2 -3
  105. package/lib/modules/dropdown-components/type-number/type-number.component.d.ts +1 -2
  106. package/lib/modules/dropdown-components/type-options/type-options.component.d.ts +3 -3
  107. package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +1 -2
  108. package/lib/modules/dropdown-components/type-text/type-text.component.d.ts +1 -2
  109. package/lib/modules/file/component/file.component.d.ts +0 -3
  110. package/lib/modules/file/file.service.d.ts +0 -1
  111. package/lib/modules/file/public-api.d.ts +1 -1
  112. package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +1 -2
  113. package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +2 -3
  114. package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.d.ts +0 -2
  115. package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.d.ts +1 -2
  116. package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.d.ts +1 -2
  117. package/lib/modules/icon/icon.directive.d.ts +3 -5
  118. package/lib/modules/logger/error-handler.d.ts +3 -4
  119. package/lib/modules/logger/public-api.d.ts +2 -1
  120. package/lib/modules/matomo/matomo.service.d.ts +2 -5
  121. package/lib/modules/panels/panels.component.d.ts +1 -3
  122. package/lib/modules/panels/panels.service.d.ts +2 -6
  123. package/lib/modules/relations/relations.component.d.ts +3 -5
  124. package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +3 -4
  125. package/lib/modules/search/dropdown-container/dropdown.service.d.ts +1 -3
  126. package/lib/modules/search/facet-selector/facet-selector.component.d.ts +1 -2
  127. package/lib/modules/search/input/input.component.d.ts +1 -3
  128. package/lib/modules/search/public-api.d.ts +5 -5
  129. package/lib/modules/search/search/search.component.d.ts +0 -2
  130. package/lib/modules/select/select-enum/select-enum.component.d.ts +4 -4
  131. package/lib/modules/select/select-hierarchic/select-hierarchic.component.d.ts +4 -4
  132. package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +0 -1
  133. package/lib/modules/sidenav/sidenav.service.d.ts +2 -7
  134. package/lib/services/enum.service.d.ts +0 -2
  135. package/lib/services/link-mutation.service.d.ts +0 -2
  136. package/lib/services/persistence.service.d.ts +2 -4
  137. package/package.json +1 -1
  138. package/public-api.d.ts +3 -2
@@ -13,6 +13,7 @@ function isDate(value) {
13
13
  * - "dans 3 ans"
14
14
  */
15
15
  export class NaturalTimeAgoPipe {
16
+ fakedNow;
16
17
  constructor(fakedNow = null) {
17
18
  this.fakedNow = fakedNow;
18
19
  }
@@ -121,8 +122,8 @@ export class NaturalTimeAgoPipe {
121
122
  throw new Error('Time travelling just happened');
122
123
  }
123
124
  }
124
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalTimeAgoPipe, deps: [{ token: 'SHOULD_NEVER_BE_INJECTED', optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
125
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.3", ngImport: i0, type: NaturalTimeAgoPipe, isStandalone: true, name: "timeAgo" }); }
125
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalTimeAgoPipe, deps: [{ token: 'SHOULD_NEVER_BE_INJECTED', optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
126
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.3", ngImport: i0, type: NaturalTimeAgoPipe, isStandalone: true, name: "timeAgo" });
126
127
  }
127
128
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalTimeAgoPipe, decorators: [{
128
129
  type: Pipe,
@@ -136,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
136
137
  type: Inject,
137
138
  args: ['SHOULD_NEVER_BE_INJECTED']
138
139
  }] }] });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1hZ28ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9waXBlcy90aW1lLWFnby5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7O0FBRXBFLFNBQVMsTUFBTSxDQUFDLEtBQVU7SUFDdEIsT0FBTyxLQUFLLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUtILE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsWUFDcUUsV0FBMEIsSUFBSTtRQUE5QixhQUFRLEdBQVIsUUFBUSxDQUFzQjtJQUNoRyxDQUFDO0lBRUksTUFBTTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxJQUFzQztRQUNuRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDUixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFMUIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDOUIsTUFBTSxLQUFLLEdB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QUMsQ0FBQztZQUNoQyxPQUFPLFNBQVMsQ0FBQSxRQUFRLEtBQUssU0FBUyxDQUFDO1FBQzNDLENBQUM7YUFBTSxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQixPQUFPLFNBQVMsQ0FBQSxnQkFBZ0IsQ0FBQztRQUNyQyxDQUFDO2FBQU0sSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQyxPQUFPLFNBQVMsQ0FBQSxRQUFRLEtBQUssVUFBVSxDQUFDO1FBQzVDLENBQUM7YUFBTSxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixPQUFPLFNBQVMsQ0FBQSx1QkFBdUIsQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNyRCxDQUFDO0lBQ0wsQ0FBQzs4R0F6RlEsa0JBQWtCLGtCQUVILDBCQUEwQjs0R0FGekMsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUo5QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxTQUFTO29CQUNmLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBR1EsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgT3B0aW9uYWwsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5mdW5jdGlvbiBpc0RhdGUodmFsdWU6IGFueSk6IHZhbHVlIGlzIERhdGUge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKHZhbHVlLnZhbHVlT2YoKSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHN0cmluZyB0byBhcHByb3hpbWF0ZWx5IGRlc2NyaWJlIHRoZSBkYXRlLlxuICpcbiAqIEVnOlxuICpcbiAqIC0gXCJpbCB5IGEgcXVlbHF1ZXMgbWludXRlc1wiXG4gKiAtIFwiZGFucyAzIGpvdXJzXCJcbiAqIC0gXCJkYW5zIDMgYW5zXCJcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICd0aW1lQWdvJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsVGltZUFnb1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoJ1NIT1VMRF9ORVZFUl9CRV9JTkpFQ1RFRCcpIHByaXZhdGUgcmVhZG9ubHkgZmFrZWROb3c6IG51bWJlciB8IG51bGwgPSBudWxsLFxuICAgICkge31cblxuICAgIHByaXZhdGUgZ2V0Tm93KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmZha2VkTm93ID8/IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgICAgIGlmICghZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RhbXAgPSBpc0RhdGUoZGF0ZSkgPyBkYXRlLmdldFRpbWUoKSA6IERhdGUucGFyc2UoZGF0ZSk7XG4gICAgICAgIGNvbnN0IG5vdyA9IHRoaXMuZ2V0Tm93KCk7XG5cbiAgICAgICAgY29uc3QgJHNlY29uZHMgPSAoc3RhbXAgLSBub3cpIC8gMTAwMDtcbiAgICAgICAgY29uc3QgbWludXRlcyA9ICRzZWNvbmRzIC8gNjA7XG4gICAgICAgIGNvbnN0IGhvdXJzID0gbWludXRlcyAvIDYwO1xuICAgICAgICBjb25zdCBkYXlzID0gaG91cnMgLyAyNDtcbiAgICAgICAgY29uc3Qgd2Vla3MgPSBkYXlzIC8gNztcbiAgICAgICAgY29uc3QgbW9udGhzID0gZGF5cyAvIDMxO1xuICAgICAgICBjb25zdCB5ZWFycyA9IGRheXMgLyAzNjU7XG5cbiAgICAgICAgLy8gRmluZCBvdXQgdGhlIGJlc3QgdW5pdCB0byB1c2UgZm9yIGRpc3BsYXlcbiAgICAgICAgaWYgKHllYXJzIDw9IC0yKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQoTWF0aC5hYnMoeWVhcnMpKTtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgaWwgeSBhICR7dmFsdWV9IGFuc2A7XG4gICAgICAgIH0gZWxzZSBpZiAoeWVhcnMgPD0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgaWwgeSBhIHVuIGFuYDtcbiAgICAgICAgfSBlbHNlIGlmIChtb250aHMgPD0gLTIpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5yb3VuZChNYXRoLmFicyhtb250aHMpKTtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgaWwgeSBhICR7dmFsdWV9IG1vaXNgO1xuICAgICAgICB9IGVsc2UgaWYgKG1vbnRocyA8PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuICRsb2NhbGl6ZWBpbCB5IGEgdW4gbW9pc2A7XG4gICAgICAgIH0gZWxzZSBpZiAod2Vla3MgPD0gLTIpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5yb3VuZChNYXRoLmFicyh3ZWVrcykpO1xuICAgICAgICAgICAgcmV0dXJuICRsb2NhbGl6ZWBpbCB5IGEgJHt2YWx1ZX0gc2VtYWluZXNgO1xuICAgICAgICB9IGVsc2UgaWYgKHdlZWtzIDw9IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGlsIHkgYSB1bmUgc2VtYWluZWA7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF5cyA8PSAtMikge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKE1hdGguYWJzKGRheXMpKTtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgaWwgeSBhICR7dmFsdWV9IGpvdXJzYDtcbiAgICAgICAgfSBlbHNlIGlmIChkYXlzIDw9IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGlsIHkgYSB1biBqb3VyYDtcbiAgICAgICAgfSBlbHNlIGlmIChob3VycyA8PSAtMikge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKE1hdGguYWJzKGhvdXJzKSk7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGlsIHkgYSAke3ZhbHVlfSBoZXVyZXNgO1xuICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDw9IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGlsIHkgYSB1bmUgaGV1cmVgO1xuICAgICAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPD0gLTUpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5yb3VuZChNYXRoLmFicyhtaW51dGVzKSk7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGlsIHkgYSAke3ZhbHVlfSBtaW51dGVzYDtcbiAgICAgICAgfSBlbHNlIGlmIChtaW51dGVzIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgaWwgeSBhIHF1ZWxxdWVzIG1pbnV0ZXNgO1xuICAgICAgICB9IGVsc2UgaWYgKHllYXJzID4gMikge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKHllYXJzKTtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgZGFucyAke3ZhbHVlfSBhbnNgO1xuICAgICAgICB9IGVsc2UgaWYgKHllYXJzID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuICRsb2NhbGl6ZWBkYW5zIHVuIGFuYDtcbiAgICAgICAgfSBlbHNlIGlmIChtb250aHMgPiAyKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQobW9udGhzKTtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgZGFucyAke3ZhbHVlfSBtb2lzYDtcbiAgICAgICAgfSBlbHNlIGlmIChtb250aHMgPiAxKSB7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGRhbnMgdW4gbW9pc2A7XG4gICAgICAgIH0gZWxzZSBpZiAod2Vla3MgPiAyKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQod2Vla3MpO1xuICAgICAgICAgICAgcmV0dXJuICRsb2NhbGl6ZWBkYW5zICR7dmFsdWV9IHNlbWFpbmVzYDtcbiAgICAgICAgfSBlbHNlIGlmICh3ZWVrcyA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgZGFucyB1bmUgc2VtYWluZWA7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF5cyA+IDIpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5yb3VuZChkYXlzKTtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgZGFucyAke3ZhbHVlfSBqb3Vyc2A7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF5cyA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgZGFucyB1biBqb3VyYDtcbiAgICAgICAgfSBlbHNlIGlmIChob3VycyA+IDIpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5yb3VuZChob3Vycyk7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGRhbnMgJHt2YWx1ZX0gaGV1cmVzYDtcbiAgICAgICAgfSBlbHNlIGlmIChob3VycyA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgZGFucyB1bmUgaGV1cmVgO1xuICAgICAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPiA1KSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQobWludXRlcyk7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGRhbnMgJHt2YWx1ZX0gbWludXRlc2A7XG4gICAgICAgIH0gZWxzZSBpZiAobWludXRlcyA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgZGFucyBxdWVscXVlcyBtaW51dGVzYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGltZSB0cmF2ZWxsaW5nIGp1c3QgaGFwcGVuZWQnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1hZ28ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9waXBlcy90aW1lLWFnby5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7O0FBRXBFLFNBQVMsTUFBTSxDQUFDLEtBQVU7SUFDdEIsT0FBTyxLQUFLLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUtILE1BQU0sT0FBTyxrQkFBa0I7SUFFMEM7SUFEckUsWUFDcUUsV0FBMEIsSUFBSTtRQUE5QixhQUFRLEdBQVIsUUFBUSxDQUFzQjtJQUNoRyxDQUFDO0lBRUksTUFBTTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxJQUFzQztRQUNuRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDUixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFMUIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDOUIsTUFBTSxL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QUFLLENBQUMsQ0FBQztZQUNoQyxPQUFPLFNBQVMsQ0FBQSxRQUFRLEtBQUssU0FBUyxDQUFDO1FBQzNDLENBQUM7YUFBTSxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQixPQUFPLFNBQVMsQ0FBQSxnQkFBZ0IsQ0FBQztRQUNyQyxDQUFDO2FBQU0sSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQyxPQUFPLFNBQVMsQ0FBQSxRQUFRLEtBQUssVUFBVSxDQUFDO1FBQzVDLENBQUM7YUFBTSxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixPQUFPLFNBQVMsQ0FBQSx1QkFBdUIsQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNyRCxDQUFDO0lBQ0wsQ0FBQzt1R0F6RlEsa0JBQWtCLGtCQUVILDBCQUEwQjtxR0FGekMsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUo5QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxTQUFTO29CQUNmLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBR1EsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgT3B0aW9uYWwsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5mdW5jdGlvbiBpc0RhdGUodmFsdWU6IGFueSk6IHZhbHVlIGlzIERhdGUge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKHZhbHVlLnZhbHVlT2YoKSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHN0cmluZyB0byBhcHByb3hpbWF0ZWx5IGRlc2NyaWJlIHRoZSBkYXRlLlxuICpcbiAqIEVnOlxuICpcbiAqIC0gXCJpbCB5IGEgcXVlbHF1ZXMgbWludXRlc1wiXG4gKiAtIFwiZGFucyAzIGpvdXJzXCJcbiAqIC0gXCJkYW5zIDMgYW5zXCJcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICd0aW1lQWdvJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsVGltZUFnb1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoJ1NIT1VMRF9ORVZFUl9CRV9JTkpFQ1RFRCcpIHByaXZhdGUgcmVhZG9ubHkgZmFrZWROb3c6IG51bWJlciB8IG51bGwgPSBudWxsLFxuICAgICkge31cblxuICAgIHByaXZhdGUgZ2V0Tm93KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmZha2VkTm93ID8/IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgICAgIGlmICghZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RhbXAgPSBpc0RhdGUoZGF0ZSkgPyBkYXRlLmdldFRpbWUoKSA6IERhdGUucGFyc2UoZGF0ZSk7XG4gICAgICAgIGNvbnN0IG5vdyA9IHRoaXMuZ2V0Tm93KCk7XG5cbiAgICAgICAgY29uc3QgJHNlY29uZHMgPSAoc3RhbXAgLSBub3cpIC8gMTAwMDtcbiAgICAgICAgY29uc3QgbWludXRlcyA9ICRzZWNvbmRzIC8gNjA7XG4gICAgICAgIGNvbnN0IGhvdXJzID0gbWludXRlcyAvIDYwO1xuICAgICAgICBjb25zdCBkYXlzID0gaG91cnMgLyAyNDtcbiAgICAgICAgY29uc3Qgd2Vla3MgPSBkYXlzIC8gNztcbiAgICAgICAgY29uc3QgbW9udGhzID0gZGF5cyAvIDMxO1xuICAgICAgICBjb25zdCB5ZWFycyA9IGRheXMgLyAzNjU7XG5cbiAgICAgICAgLy8gRmluZCBvdXQgdGhlIGJlc3QgdW5pdCB0byB1c2UgZm9yIGRpc3BsYXlcbiAgICAgICAgaWYgKHllYXJzIDw9IC0yKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQoTWF0aC5hYnMoeWVhcnMpKTtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgaWwgeSBhICR7dmFsdWV9IGFuc2A7XG4gICAgICAgIH0gZWxzZSBpZiAoeWVhcnMgPD0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgaWwgeSBhIHVuIGFuYDtcbiAgICAgICAgfSBlbHNlIGlmIChtb250aHMgPD0gLTIpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5yb3VuZChNYXRoLmFicyhtb250aHMpKTtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgaWwgeSBhICR7dmFsdWV9IG1vaXNgO1xuICAgICAgICB9IGVsc2UgaWYgKG1vbnRocyA8PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuICRsb2NhbGl6ZWBpbCB5IGEgdW4gbW9pc2A7XG4gICAgICAgIH0gZWxzZSBpZiAod2Vla3MgPD0gLTIpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5yb3VuZChNYXRoLmFicyh3ZWVrcykpO1xuICAgICAgICAgICAgcmV0dXJuICRsb2NhbGl6ZWBpbCB5IGEgJHt2YWx1ZX0gc2VtYWluZXNgO1xuICAgICAgICB9IGVsc2UgaWYgKHdlZWtzIDw9IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGlsIHkgYSB1bmUgc2VtYWluZWA7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF5cyA8PSAtMikge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKE1hdGguYWJzKGRheXMpKTtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgaWwgeSBhICR7dmFsdWV9IGpvdXJzYDtcbiAgICAgICAgfSBlbHNlIGlmIChkYXlzIDw9IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGlsIHkgYSB1biBqb3VyYDtcbiAgICAgICAgfSBlbHNlIGlmIChob3VycyA8PSAtMikge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKE1hdGguYWJzKGhvdXJzKSk7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGlsIHkgYSAke3ZhbHVlfSBoZXVyZXNgO1xuICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDw9IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGlsIHkgYSB1bmUgaGV1cmVgO1xuICAgICAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPD0gLTUpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5yb3VuZChNYXRoLmFicyhtaW51dGVzKSk7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGlsIHkgYSAke3ZhbHVlfSBtaW51dGVzYDtcbiAgICAgICAgfSBlbHNlIGlmIChtaW51dGVzIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgaWwgeSBhIHF1ZWxxdWVzIG1pbnV0ZXNgO1xuICAgICAgICB9IGVsc2UgaWYgKHllYXJzID4gMikge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLnJvdW5kKHllYXJzKTtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgZGFucyAke3ZhbHVlfSBhbnNgO1xuICAgICAgICB9IGVsc2UgaWYgKHllYXJzID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuICRsb2NhbGl6ZWBkYW5zIHVuIGFuYDtcbiAgICAgICAgfSBlbHNlIGlmIChtb250aHMgPiAyKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQobW9udGhzKTtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgZGFucyAke3ZhbHVlfSBtb2lzYDtcbiAgICAgICAgfSBlbHNlIGlmIChtb250aHMgPiAxKSB7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGRhbnMgdW4gbW9pc2A7XG4gICAgICAgIH0gZWxzZSBpZiAod2Vla3MgPiAyKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQod2Vla3MpO1xuICAgICAgICAgICAgcmV0dXJuICRsb2NhbGl6ZWBkYW5zICR7dmFsdWV9IHNlbWFpbmVzYDtcbiAgICAgICAgfSBlbHNlIGlmICh3ZWVrcyA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgZGFucyB1bmUgc2VtYWluZWA7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF5cyA+IDIpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5yb3VuZChkYXlzKTtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgZGFucyAke3ZhbHVlfSBqb3Vyc2A7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF5cyA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgZGFucyB1biBqb3VyYDtcbiAgICAgICAgfSBlbHNlIGlmIChob3VycyA+IDIpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gTWF0aC5yb3VuZChob3Vycyk7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGRhbnMgJHt2YWx1ZX0gaGV1cmVzYDtcbiAgICAgICAgfSBlbHNlIGlmIChob3VycyA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgZGFucyB1bmUgaGV1cmVgO1xuICAgICAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPiA1KSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IE1hdGgucm91bmQobWludXRlcyk7XG4gICAgICAgICAgICByZXR1cm4gJGxvY2FsaXplYGRhbnMgJHt2YWx1ZX0gbWludXRlc2A7XG4gICAgICAgIH0gZWxzZSBpZiAobWludXRlcyA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiAkbG9jYWxpemVgZGFucyBxdWVscXVlcyBtaW51dGVzYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGltZSB0cmF2ZWxsaW5nIGp1c3QgaGFwcGVuZWQnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -9,6 +9,6 @@ export { NaturalTimeAgoPipe } from './pipes/time-ago.pipe';
9
9
  export * from './services/memory-storage';
10
10
  export { NaturalSrcDensityDirective } from './directives/src-density.directive';
11
11
  export { NaturalBackgroundDensityDirective } from './directives/background-density.directive';
12
- export { NATURAL_SEO_CONFIG, NaturalSeoService, } from './services/seo.service';
12
+ export { NATURAL_SEO_CONFIG, NaturalSeoService } from './services/seo.service';
13
13
  export { provideSeo } from './services/seo.provider';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzVGLE9BQU8sRUFDSCxrQkFBa0IsRUFFbEIsaUJBQWlCLEdBTXBCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuYXR1cmFsXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2xpbmthYmxlLXRhYi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9jYXBpdGFsaXplLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9lbGxpcHNpcy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZW51bS5waXBlJztcbmV4cG9ydCB7TmF0dXJhbFRpbWVBZ29QaXBlfSBmcm9tICcuL3BpcGVzL3RpbWUtYWdvLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9tZW1vcnktc3RvcmFnZSc7XG5leHBvcnQge05hdHVyYWxTcmNEZW5zaXR5RGlyZWN0aXZlfSBmcm9tICcuL2RpcmVjdGl2ZXMvc3JjLWRlbnNpdHkuZGlyZWN0aXZlJztcbmV4cG9ydCB7TmF0dXJhbEJhY2tncm91bmREZW5zaXR5RGlyZWN0aXZlfSBmcm9tICcuL2RpcmVjdGl2ZXMvYmFja2dyb3VuZC1kZW5zaXR5LmRpcmVjdGl2ZSc7XG5leHBvcnQge1xuICAgIE5BVFVSQUxfU0VPX0NPTkZJRyxcbiAgICBOYXR1cmFsU2VvQ29uZmlnLFxuICAgIE5hdHVyYWxTZW9TZXJ2aWNlLFxuICAgIE5hdHVyYWxTZW8sXG4gICAgTmF0dXJhbFNlb0Jhc2ljLFxuICAgIE5hdHVyYWxTZW9SZXNvbHZlLFxuICAgIE5hdHVyYWxTZW9DYWxsYmFjayxcbiAgICBOYXR1cmFsU2VvUmVzb2x2ZURhdGEsXG59IGZyb20gJy4vc2VydmljZXMvc2VvLnNlcnZpY2UnO1xuZXhwb3J0IHtwcm92aWRlU2VvfSBmcm9tICcuL3NlcnZpY2VzL3Nlby5wcm92aWRlcic7XG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzVGLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBUzdFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbmF0dXJhbFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9saW5rYWJsZS10YWIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvY2FwaXRhbGl6ZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZWxsaXBzaXMucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2VudW0ucGlwZSc7XG5leHBvcnQge05hdHVyYWxUaW1lQWdvUGlwZX0gZnJvbSAnLi9waXBlcy90aW1lLWFnby5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvbWVtb3J5LXN0b3JhZ2UnO1xuZXhwb3J0IHtOYXR1cmFsU3JjRGVuc2l0eURpcmVjdGl2ZX0gZnJvbSAnLi9kaXJlY3RpdmVzL3NyYy1kZW5zaXR5LmRpcmVjdGl2ZSc7XG5leHBvcnQge05hdHVyYWxCYWNrZ3JvdW5kRGVuc2l0eURpcmVjdGl2ZX0gZnJvbSAnLi9kaXJlY3RpdmVzL2JhY2tncm91bmQtZGVuc2l0eS5kaXJlY3RpdmUnO1xuZXhwb3J0IHtOQVRVUkFMX1NFT19DT05GSUcsIE5hdHVyYWxTZW9TZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzL3Nlby5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgICBOYXR1cmFsU2VvQ29uZmlnLFxuICAgIE5hdHVyYWxTZW8sXG4gICAgTmF0dXJhbFNlb0Jhc2ljLFxuICAgIE5hdHVyYWxTZW9SZXNvbHZlLFxuICAgIE5hdHVyYWxTZW9DYWxsYmFjayxcbiAgICBOYXR1cmFsU2VvUmVzb2x2ZURhdGEsXG59IGZyb20gJy4vc2VydmljZXMvc2VvLnNlcnZpY2UnO1xuZXhwb3J0IHtwcm92aWRlU2VvfSBmcm9tICcuL3NlcnZpY2VzL3Nlby5wcm92aWRlcic7XG4iXX0=
@@ -8,9 +8,7 @@ export const LOCAL_STORAGE = new InjectionToken('Local storage that can be shime
8
8
  * Should be used to shim sessionStorage when running on server or in our tests
9
9
  */
10
10
  export class NaturalMemoryStorage {
11
- constructor() {
12
- this.data = new Map();
13
- }
11
+ data = new Map();
14
12
  get length() {
15
13
  return this.data.size;
16
14
  }
@@ -36,8 +34,8 @@ export class NaturalMemoryStorage {
36
34
  setItem(key, value) {
37
35
  this.data.set(key, value);
38
36
  }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalMemoryStorage, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
40
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalMemoryStorage, providedIn: 'root' }); }
37
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalMemoryStorage, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
38
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalMemoryStorage, providedIn: 'root' });
41
39
  }
42
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalMemoryStorage, decorators: [{
43
41
  type: Injectable,
@@ -109,4 +107,4 @@ export const memoryLocalStorageProvider = {
109
107
  provide: LOCAL_STORAGE,
110
108
  useClass: NaturalMemoryStorage,
111
109
  };
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LXN0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9jb21tb24vc2VydmljZXMvbWVtb3J5LXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxjQUFjLEVBQVcsTUFBTSxlQUFlLENBQUM7O0FBRW5FLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FDN0MsdUVBQXVFLENBQzFFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQzNDLHFFQUFxRSxDQUN4RSxDQUFDO0FBT0Y7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFIakM7UUFJcUIsU0FBSSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0tBaUNyRDtJQS9CRyxJQUFXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sT0FBTyxDQUFDLEdBQVc7UUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM5QyxDQUFDO0lBRU0sR0FBRyxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLEVBQUUsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxHQUFHLENBQUM7WUFDZixDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxVQUFVLENBQUMsR0FBVztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDOzhHQWpDUSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQUZqQixNQUFNOzsyRkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOztBQXFDRCxNQUFNLFVBQVUscUJBQXFCO0lBQ2pDLElBQUksQ0FBQztRQUNELGlEQUFpRDtRQUNqRCxJQUFJLE9BQU8sY0FBYyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLGlEQUFpRDtZQUNqRCxPQUFPLGNBQWMsQ0FBQztRQUMxQixDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDVCxnQkFBZ0I7SUFDcEIsQ0FBQztJQUVELE9BQU8sSUFBSSxvQkFBb0IsRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQWE7SUFDNUMsK0VBQStFO0lBQy9FLHNGQUFzRjtJQUN0RixvRkFBb0Y7SUFDcEYsT0FBTyxFQUFFLGVBQWU7SUFDeEIsVUFBVSxFQUFFLHFCQUFxQjtDQUNwQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBYTtJQUNsRCxPQUFPLEVBQUUsZUFBZTtJQUN4QixRQUFRLEVBQUUsb0JBQW9CO0NBQ2pDLENBQUM7QUFFRixNQUFNLFVBQVUsbUJBQW1CO0lBQy9CLElBQUksQ0FBQztRQUNELGlEQUFpRDtRQUNqRCxJQUFJLE9BQU8sWUFBWSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3RDLGlEQUFpRDtZQUNqRCxPQUFPLFlBQVksQ0FBQztRQUN4QixDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDVCxhQUFhO0lBQ2pCLENBQUM7SUFFRCxPQUFPLElBQUksb0JBQW9CLEVBQUUsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFhO0lBQzFDLCtFQUErRTtJQUMvRSxzRkFBc0Y7SUFDdEYsb0ZBQW9GO0lBQ3BGLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFVBQVUsRUFBRSxtQkFBbUI7Q0FDbEMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQWE7SUFDaEQsT0FBTyxFQUFFLGFBQWE7SUFDdEIsUUFBUSxFQUFFLG9CQUFvQjtDQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgUHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgU0VTU0lPTl9TVE9SQUdFID0gbmV3IEluamVjdGlvblRva2VuPE5hdHVyYWxTdG9yYWdlPihcbiAgICAnU2Vzc2lvbiBzdG9yYWdlIHRoYXQgY2FuIGJlIHNoaW1lZCB3aGVuIHJ1bm5pbmcgb24gc2VydmVyIG9yIGluIHRlc3RzJyxcbik7XG5cbmV4cG9ydCBjb25zdCBMT0NBTF9TVE9SQUdFID0gbmV3IEluamVjdGlvblRva2VuPE5hdHVyYWxTdG9yYWdlPihcbiAgICAnTG9jYWwgc3RvcmFnZSB0aGF0IGNhbiBiZSBzaGltZWQgd2hlbiBydW5uaW5nIG9uIHNlcnZlciBvciBpbiB0ZXN0cycsXG4pO1xuXG4vKipcbiAqIE5vcm1hbCBgU3RvcmFnZWAgdHlwZSwgYnV0IHdpdGhvdXQgYXJyYXkgYWNjZXNzXG4gKi9cbmV4cG9ydCB0eXBlIE5hdHVyYWxTdG9yYWdlID0gUGljazxTdG9yYWdlLCAnbGVuZ3RoJyB8ICdjbGVhcicgfCAnZ2V0SXRlbScgfCAna2V5JyB8ICdyZW1vdmVJdGVtJyB8ICdzZXRJdGVtJz47XG5cbi8qKlxuICogTWVtb3J5IHN0b3JhZ2UgdG8ga2VlcCBzdG9yZSB2b2xhdGlsZSB0aGluZ3MgaW4gbWVtb3J5XG4gKlxuICogU2hvdWxkIGJlIHVzZWQgdG8gc2hpbSBzZXNzaW9uU3RvcmFnZSB3aGVuIHJ1bm5pbmcgb24gc2VydmVyIG9yIGluIG91ciB0ZXN0c1xuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsTWVtb3J5U3RvcmFnZSBpbXBsZW1lbnRzIE5hdHVyYWxTdG9yYWdlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGEgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gICAgcHVibGljIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5zaXplO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmRhdGEuZ2V0KGtleSk7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBrZXkoaW5kZXg6IG51bWJlcik6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMuZGF0YS5rZXlzKCkpIHtcbiAgICAgICAgICAgIGlmIChpKysgPT09IGluZGV4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVJdGVtKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YS5kZWxldGUoa2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGEuc2V0KGtleSwgdmFsdWUpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlc3Npb25TdG9yYWdlRmFjdG9yeSgpOiBOYXR1cmFsU3RvcmFnZSB7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtZ2xvYmFsc1xuICAgICAgICBpZiAodHlwZW9mIHNlc3Npb25TdG9yYWdlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtZ2xvYmFsc1xuICAgICAgICAgICAgcmV0dXJuIHNlc3Npb25TdG9yYWdlO1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBub3RoaW5nIGRvIHRvXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBOYXR1cmFsTWVtb3J5U3RvcmFnZSgpO1xufVxuXG4vKipcbiAqIFN0YW5kYXJkIGBzZXNzaW9uU3RvcmFnZWAgcHJvdmlkZXIgdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggU1NSLlxuICpcbiAqIEluIFNTUiBlbnZpcm9ubWVudCwgb3Igd2hlbiBgc2Vzc2lvblN0b3JhZ2VgIGlzIG5vdCBhdmFpbGFibGUsIHdpbGwgcmV0dXJuIGEgYE5hdHVyYWxNZW1vcnlTdG9yYWdlYFxuICovXG5leHBvcnQgY29uc3Qgc2Vzc2lvblN0b3JhZ2VQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgLy8gSGVyZSB3ZSBtdXN0IHVzZSBhIGZhY3RvcnkgdGhhdCByZXR1cm4gZGlyZWN0bHkgdGhlIHZhbHVlLCBvdGhlcndpc2UgaXQgd2lsbFxuICAgIC8vIGNyYXNoIHdoZW4gcnVubmluZyBvbiBzZXJ2ZXIgYmVjYXVzZSB0aGUgdmFsdWUgZG9lcyBub3QgZXhpc3QgKGJ1dCB0aGUgZmFjdG9yeSB3aWxsXG4gICAgLy8gbmV2ZXIgYWN0dWFsbHkgYmUgY2FsbGVkIG9uIHNlcnZlciwgc28gdGhlIHNlcnZlciB3aWxsIG5vdCBzZWUgdGhlIG1pc3NpbmcgdmFsdWUpXG4gICAgcHJvdmlkZTogU0VTU0lPTl9TVE9SQUdFLFxuICAgIHVzZUZhY3Rvcnk6IHNlc3Npb25TdG9yYWdlRmFjdG9yeSxcbn07XG5cbi8qKlxuICogUHJvdmlkZSBpbi1tZW1vcnkgc2Vzc2lvbiBzdG9yYWdlIHRvIGJlIHVzZWQgb25seSBpbiB0ZXN0cyBvciBTU1JcbiAqL1xuZXhwb3J0IGNvbnN0IG1lbW9yeVNlc3Npb25TdG9yYWdlUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IFNFU1NJT05fU1RPUkFHRSxcbiAgICB1c2VDbGFzczogTmF0dXJhbE1lbW9yeVN0b3JhZ2UsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxTdG9yYWdlRmFjdG9yeSgpOiBOYXR1cmFsU3RvcmFnZSB7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtZ2xvYmFsc1xuICAgICAgICBpZiAodHlwZW9mIGxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHNcbiAgICAgICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2U7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IE5hdHVyYWxNZW1vcnlTdG9yYWdlKCk7XG59XG5cbi8qKlxuICogU3RhbmRhcmQgYGxvY2FsU3RvcmFnZWAgcHJvdmlkZXIgdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggU1NSLlxuICpcbiAqIEluIFNTUiBlbnZpcm9ubWVudCwgb3Igd2hlbiBgbG9jYWxTdG9yYWdlYCBpcyBub3QgYXZhaWxhYmxlLCB3aWxsIHJldHVybiBhIGBOYXR1cmFsTWVtb3J5U3RvcmFnZWBcbiAqL1xuZXhwb3J0IGNvbnN0IGxvY2FsU3RvcmFnZVByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgICAvLyBIZXJlIHdlIG11c3QgdXNlIGEgZmFjdG9yeSB0aGF0IHJldHVybiBkaXJlY3RseSB0aGUgdmFsdWUsIG90aGVyd2lzZSBpdCB3aWxsXG4gICAgLy8gY3Jhc2ggd2hlbiBydW5uaW5nIG9uIHNlcnZlciBiZWNhdXNlIHRoZSB2YWx1ZSBkb2VzIG5vdCBleGlzdCAoYnV0IHRoZSBmYWN0b3J5IHdpbGxcbiAgICAvLyBuZXZlciBhY3R1YWxseSBiZSBjYWxsZWQgb24gc2VydmVyLCBzbyB0aGUgc2VydmVyIHdpbGwgbm90IHNlZSB0aGUgbWlzc2luZyB2YWx1ZSlcbiAgICBwcm92aWRlOiBMT0NBTF9TVE9SQUdFLFxuICAgIHVzZUZhY3Rvcnk6IGxvY2FsU3RvcmFnZUZhY3RvcnksXG59O1xuXG4vKipcbiAqIFByb3ZpZGUgaW4tbWVtb3J5IGxvY2FsIHN0b3JhZ2UgdG8gYmUgdXNlZCBvbmx5IGluIHRlc3RzIG9yIFNTUlxuICovXG5leHBvcnQgY29uc3QgbWVtb3J5TG9jYWxTdG9yYWdlUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IExPQ0FMX1NUT1JBR0UsXG4gICAgdXNlQ2xhc3M6IE5hdHVyYWxNZW1vcnlTdG9yYWdlLFxufTtcbiJdfQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LXN0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9jb21tb24vc2VydmljZXMvbWVtb3J5LXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxjQUFjLEVBQVcsTUFBTSxlQUFlLENBQUM7O0FBRW5FLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FDN0MsdUVBQXVFLENBQzFFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQzNDLHFFQUFxRSxDQUN4RSxDQUFDO0FBT0Y7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFDWixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFbEQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxHQUFXO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDOUMsQ0FBQztJQUVNLEdBQUcsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sR0FBRyxDQUFDO1lBQ2YsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sVUFBVSxDQUFDLEdBQVc7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzt1R0FqQ1Esb0JBQW9COzJHQUFwQixvQkFBb0IsY0FGakIsTUFBTTs7MkZBRVQsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7QUFxQ0QsTUFBTSxVQUFVLHFCQUFxQjtJQUNqQyxJQUFJLENBQUM7UUFDRCxpREFBaUQ7UUFDakQsSUFBSSxPQUFPLGNBQWMsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUN4QyxpREFBaUQ7WUFDakQsT0FBTyxjQUFjLENBQUM7UUFDMUIsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1QsZ0JBQWdCO0lBQ3BCLENBQUM7SUFFRCxPQUFPLElBQUksb0JBQW9CLEVBQUUsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFhO0lBQzVDLCtFQUErRTtJQUMvRSxzRkFBc0Y7SUFDdEYsb0ZBQW9GO0lBQ3BGLE9BQU8sRUFBRSxlQUFlO0lBQ3hCLFVBQVUsRUFBRSxxQkFBcUI7Q0FDcEMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQWE7SUFDbEQsT0FBTyxFQUFFLGVBQWU7SUFDeEIsUUFBUSxFQUFFLG9CQUFvQjtDQUNqQyxDQUFDO0FBRUYsTUFBTSxVQUFVLG1CQUFtQjtJQUMvQixJQUFJLENBQUM7UUFDRCxpREFBaUQ7UUFDakQsSUFBSSxPQUFPLFlBQVksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUN0QyxpREFBaUQ7WUFDakQsT0FBTyxZQUFZLENBQUM7UUFDeEIsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1QsYUFBYTtJQUNqQixDQUFDO0lBRUQsT0FBTyxJQUFJLG9CQUFvQixFQUFFLENBQUM7QUFDdEMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBYTtJQUMxQywrRUFBK0U7SUFDL0Usc0ZBQXNGO0lBQ3RGLG9GQUFvRjtJQUNwRixPQUFPLEVBQUUsYUFBYTtJQUN0QixVQUFVLEVBQUUsbUJBQW1CO0NBQ2xDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFhO0lBQ2hELE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFFBQVEsRUFBRSxvQkFBb0I7Q0FDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IFNFU1NJT05fU1RPUkFHRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOYXR1cmFsU3RvcmFnZT4oXG4gICAgJ1Nlc3Npb24gc3RvcmFnZSB0aGF0IGNhbiBiZSBzaGltZWQgd2hlbiBydW5uaW5nIG9uIHNlcnZlciBvciBpbiB0ZXN0cycsXG4pO1xuXG5leHBvcnQgY29uc3QgTE9DQUxfU1RPUkFHRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOYXR1cmFsU3RvcmFnZT4oXG4gICAgJ0xvY2FsIHN0b3JhZ2UgdGhhdCBjYW4gYmUgc2hpbWVkIHdoZW4gcnVubmluZyBvbiBzZXJ2ZXIgb3IgaW4gdGVzdHMnLFxuKTtcblxuLyoqXG4gKiBOb3JtYWwgYFN0b3JhZ2VgIHR5cGUsIGJ1dCB3aXRob3V0IGFycmF5IGFjY2Vzc1xuICovXG5leHBvcnQgdHlwZSBOYXR1cmFsU3RvcmFnZSA9IFBpY2s8U3RvcmFnZSwgJ2xlbmd0aCcgfCAnY2xlYXInIHwgJ2dldEl0ZW0nIHwgJ2tleScgfCAncmVtb3ZlSXRlbScgfCAnc2V0SXRlbSc+O1xuXG4vKipcbiAqIE1lbW9yeSBzdG9yYWdlIHRvIGtlZXAgc3RvcmUgdm9sYXRpbGUgdGhpbmdzIGluIG1lbW9yeVxuICpcbiAqIFNob3VsZCBiZSB1c2VkIHRvIHNoaW0gc2Vzc2lvblN0b3JhZ2Ugd2hlbiBydW5uaW5nIG9uIHNlcnZlciBvciBpbiBvdXIgdGVzdHNcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbE1lbW9yeVN0b3JhZ2UgaW1wbGVtZW50cyBOYXR1cmFsU3RvcmFnZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkYXRhID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcblxuICAgIHB1YmxpYyBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuc2l6ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YS5jbGVhcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVtKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5kYXRhLmdldChrZXkpO1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMga2V5KGluZGV4OiBudW1iZXIpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmRhdGEua2V5cygpKSB7XG4gICAgICAgICAgICBpZiAoaSsrID09PSBpbmRleCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGEuZGVsZXRlKGtleSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhLnNldChrZXksIHZhbHVlKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXNzaW9uU3RvcmFnZUZhY3RvcnkoKTogTmF0dXJhbFN0b3JhZ2Uge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHNcbiAgICAgICAgaWYgKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHNcbiAgICAgICAgICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZTtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gbm90aGluZyBkbyB0b1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgTmF0dXJhbE1lbW9yeVN0b3JhZ2UoKTtcbn1cblxuLyoqXG4gKiBTdGFuZGFyZCBgc2Vzc2lvblN0b3JhZ2VgIHByb3ZpZGVyIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIFNTUi5cbiAqXG4gKiBJbiBTU1IgZW52aXJvbm1lbnQsIG9yIHdoZW4gYHNlc3Npb25TdG9yYWdlYCBpcyBub3QgYXZhaWxhYmxlLCB3aWxsIHJldHVybiBhIGBOYXR1cmFsTWVtb3J5U3RvcmFnZWBcbiAqL1xuZXhwb3J0IGNvbnN0IHNlc3Npb25TdG9yYWdlUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICAgIC8vIEhlcmUgd2UgbXVzdCB1c2UgYSBmYWN0b3J5IHRoYXQgcmV0dXJuIGRpcmVjdGx5IHRoZSB2YWx1ZSwgb3RoZXJ3aXNlIGl0IHdpbGxcbiAgICAvLyBjcmFzaCB3aGVuIHJ1bm5pbmcgb24gc2VydmVyIGJlY2F1c2UgdGhlIHZhbHVlIGRvZXMgbm90IGV4aXN0IChidXQgdGhlIGZhY3Rvcnkgd2lsbFxuICAgIC8vIG5ldmVyIGFjdHVhbGx5IGJlIGNhbGxlZCBvbiBzZXJ2ZXIsIHNvIHRoZSBzZXJ2ZXIgd2lsbCBub3Qgc2VlIHRoZSBtaXNzaW5nIHZhbHVlKVxuICAgIHByb3ZpZGU6IFNFU1NJT05fU1RPUkFHRSxcbiAgICB1c2VGYWN0b3J5OiBzZXNzaW9uU3RvcmFnZUZhY3RvcnksXG59O1xuXG4vKipcbiAqIFByb3ZpZGUgaW4tbWVtb3J5IHNlc3Npb24gc3RvcmFnZSB0byBiZSB1c2VkIG9ubHkgaW4gdGVzdHMgb3IgU1NSXG4gKi9cbmV4cG9ydCBjb25zdCBtZW1vcnlTZXNzaW9uU3RvcmFnZVByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBTRVNTSU9OX1NUT1JBR0UsXG4gICAgdXNlQ2xhc3M6IE5hdHVyYWxNZW1vcnlTdG9yYWdlLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsU3RvcmFnZUZhY3RvcnkoKTogTmF0dXJhbFN0b3JhZ2Uge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHNcbiAgICAgICAgaWYgKHR5cGVvZiBsb2NhbFN0b3JhZ2UgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzXG4gICAgICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlO1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBOYXR1cmFsTWVtb3J5U3RvcmFnZSgpO1xufVxuXG4vKipcbiAqIFN0YW5kYXJkIGBsb2NhbFN0b3JhZ2VgIHByb3ZpZGVyIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIFNTUi5cbiAqXG4gKiBJbiBTU1IgZW52aXJvbm1lbnQsIG9yIHdoZW4gYGxvY2FsU3RvcmFnZWAgaXMgbm90IGF2YWlsYWJsZSwgd2lsbCByZXR1cm4gYSBgTmF0dXJhbE1lbW9yeVN0b3JhZ2VgXG4gKi9cbmV4cG9ydCBjb25zdCBsb2NhbFN0b3JhZ2VQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgLy8gSGVyZSB3ZSBtdXN0IHVzZSBhIGZhY3RvcnkgdGhhdCByZXR1cm4gZGlyZWN0bHkgdGhlIHZhbHVlLCBvdGhlcndpc2UgaXQgd2lsbFxuICAgIC8vIGNyYXNoIHdoZW4gcnVubmluZyBvbiBzZXJ2ZXIgYmVjYXVzZSB0aGUgdmFsdWUgZG9lcyBub3QgZXhpc3QgKGJ1dCB0aGUgZmFjdG9yeSB3aWxsXG4gICAgLy8gbmV2ZXIgYWN0dWFsbHkgYmUgY2FsbGVkIG9uIHNlcnZlciwgc28gdGhlIHNlcnZlciB3aWxsIG5vdCBzZWUgdGhlIG1pc3NpbmcgdmFsdWUpXG4gICAgcHJvdmlkZTogTE9DQUxfU1RPUkFHRSxcbiAgICB1c2VGYWN0b3J5OiBsb2NhbFN0b3JhZ2VGYWN0b3J5LFxufTtcblxuLyoqXG4gKiBQcm92aWRlIGluLW1lbW9yeSBsb2NhbCBzdG9yYWdlIHRvIGJlIHVzZWQgb25seSBpbiB0ZXN0cyBvciBTU1JcbiAqL1xuZXhwb3J0IGNvbnN0IG1lbW9yeUxvY2FsU3RvcmFnZVByb3ZpZGVyOiBQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBMT0NBTF9TVE9SQUdFLFxuICAgIHVzZUNsYXNzOiBOYXR1cmFsTWVtb3J5U3RvcmFnZSxcbn07XG4iXX0=
@@ -1,12 +1,11 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
- import { Inject, Injectable, InjectionToken, LOCALE_ID } from '@angular/core';
3
- import { NavigationEnd, PRIMARY_OUTLET } from '@angular/router';
2
+ import { Injectable, InjectionToken, LOCALE_ID, inject } from '@angular/core';
3
+ import { Meta, Title } from '@angular/platform-browser';
4
+ import { NavigationEnd, PRIMARY_OUTLET, Router } from '@angular/router';
4
5
  import { NaturalDialogTriggerComponent } from '../../dialog-trigger/dialog-trigger.component';
5
6
  import { combineLatest, filter, map, Observable, of, startWith, switchMap } from 'rxjs';
6
7
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
7
8
  import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/router";
9
- import * as i2 from "@angular/platform-browser";
10
9
  export const NATURAL_SEO_CONFIG = new InjectionToken('Configuration for SEO service');
11
10
  export function stripTags(str) {
12
11
  return str.replace(/<\/?[^>]*>/g, '');
@@ -26,15 +25,17 @@ export function stripTags(str) {
26
25
  * configured for it in the routing.
27
26
  */
28
27
  export class NaturalSeoService {
29
- constructor(configToken, router, titleService, metaTagService, document, locale) {
30
- this.router = router;
31
- this.titleService = titleService;
32
- this.metaTagService = metaTagService;
33
- this.document = document;
34
- this.locale = locale;
35
- this.config = {
36
- applicationName: '',
37
- };
28
+ router = inject(Router);
29
+ titleService = inject(Title);
30
+ metaTagService = inject(Meta);
31
+ document = inject(DOCUMENT);
32
+ locale = inject(LOCALE_ID);
33
+ routeData;
34
+ config = {
35
+ applicationName: '',
36
+ };
37
+ constructor() {
38
+ const configToken = inject(NATURAL_SEO_CONFIG);
38
39
  combineLatest({
39
40
  config: configToken instanceof Observable ? configToken.pipe(startWith(this.config)) : of(configToken),
40
41
  navigationEnd: this.router.events.pipe(filter(event => event instanceof NavigationEnd)),
@@ -222,22 +223,13 @@ export class NaturalSeoService {
222
223
  }
223
224
  return of(seo);
224
225
  }
225
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSeoService, deps: [{ token: NATURAL_SEO_CONFIG }, { token: i1.Router }, { token: i2.Title }, { token: i2.Meta }, { token: DOCUMENT }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
226
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSeoService, providedIn: 'root' }); }
226
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSeoService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
227
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSeoService, providedIn: 'root' });
227
228
  }
228
229
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalSeoService, decorators: [{
229
230
  type: Injectable,
230
231
  args: [{
231
232
  providedIn: 'root',
232
233
  }]
233
- }], ctorParameters: () => [{ type: undefined, decorators: [{
234
- type: Inject,
235
- args: [NATURAL_SEO_CONFIG]
236
- }] }, { type: i1.Router }, { type: i2.Title }, { type: i2.Meta }, { type: Document, decorators: [{
237
- type: Inject,
238
- args: [DOCUMENT]
239
- }] }, { type: undefined, decorators: [{
240
- type: Inject,
241
- args: [LOCALE_ID]
242
- }] }] });
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9jb21tb24vc2VydmljZXMvc2VvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUErQixhQUFhLEVBQUUsY0FBYyxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDcEcsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDNUYsT0FBTyxFQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQTZHOUQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQW1CLCtCQUErQixDQUFDLENBQUM7QUFFeEcsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFXO0lBQ2pDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQVlEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBTTFCLFlBQ2dDLFdBQTZCLEVBQ3hDLE1BQWMsRUFDZCxZQUFtQixFQUNuQixjQUFvQixFQUNGLFFBQWtCLEVBQzFCLE1BQWM7UUFKeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFPO1FBQ25CLG1CQUFjLEdBQWQsY0FBYyxDQUFNO1FB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QU8sSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7WUFDNUUsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFFOUIsT0FBTyxDQUFDLEtBQUssWUFBWSxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN6RCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ1IsT0FBTztvQkFDSCxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUU7b0JBQzNDLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVztvQkFDL0IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO2lCQUNyQixDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNOLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDOzhHQTlPUSxpQkFBaUIsa0JBT2Qsa0JBQWtCLDRFQUlsQixRQUFRLGFBQ1IsU0FBUztrSEFaWixpQkFBaUIsY0FGZCxNQUFNOzsyRkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFRUSxNQUFNOzJCQUFDLGtCQUFrQjs7MEJBSXpCLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgTE9DQUxFX0lEfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWV0YSwgVGl0bGV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBEYXRhLCBOYXZpZ2F0aW9uRW5kLCBQUklNQVJZX09VVExFVCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtOYXR1cmFsRGlhbG9nVHJpZ2dlckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vZGlhbG9nLXRyaWdnZXIvZGlhbG9nLXRyaWdnZXIuY29tcG9uZW50JztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzdGFydFdpdGgsIHN3aXRjaE1hcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5leHBvcnQgdHlwZSBOYXR1cmFsU2VvID0gTmF0dXJhbFNlb0Jhc2ljIHwgTmF0dXJhbFNlb0NhbGxiYWNrIHwgTmF0dXJhbFNlb1Jlc29sdmU7XG5cbi8qKlxuICogVHlwaWNhbGx5IHVzZWQgZm9yIFwic3RhdGljXCIgcGFnZXMgd2hlcmUgdGhlcmUgaXMgbm90IGEgc2luZ2xlIHJlc29sdmVkIG9iamVjdC4gU29cbiAqIGFsbCBwYWdlcyBzdWNoIGFzIFwiQWJvdXRcIiwgb3IgbGlzdCBvZiBvYmplY3RzIChsaXN0IG9mIHJpc2tzLCBldGMuKS5cbiAqXG4gKiBUaGlzIHNob3VsZCBiZSB0aGUgbW9zdCBjb21tb24gdXNlZCB2YXJpYW50LlxuICovXG5leHBvcnQgdHlwZSBOYXR1cmFsU2VvQmFzaWMgPSBSb2JvdHMgJiB7XG4gICAgLyoqXG4gICAgICogVGhlIHBhZ2UgdGl0bGUsIHRoYXQgd2lsbCBiZSBjb25jYXRlbmF0ZWQgd2l0aCBhcHBsaWNhdGlvbiBuYW1lXG4gICAgICovXG4gICAgdGl0bGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIElmIGdpdmVuIHdpbGwgYmUgdXNlZCBhcyBwYWdlIGRlc2NyaXB0aW9uLCBvdGhlcndpc2UgZmFsbGJhY2sgb24gZGVmYXVsdCB2YWx1ZVxuICAgICAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBwYXJhbWV0ZXJzIGluY2x1ZGVkIGluIHRoZSBjYW5vbmljYWwgdGFnJ3MgdXJsXG4gICAgICovXG4gICAgY2Fub25pY2FsUXVlcnlQYXJhbXNXaGl0ZWxpc3Q/OiBzdHJpbmdbXTtcbn07XG5cbnR5cGUgTmF0dXJhbExpbmtEZWZpbml0aW9uID0ge1xuICAgIGNoYXJzZXQ/OiBzdHJpbmc7XG4gICAgY3Jvc3NvcmlnaW4/OiBzdHJpbmc7XG4gICAgaHJlZj86IHN0cmluZztcbiAgICBocmVmbGFuZz86IHN0cmluZztcbiAgICBtZWRpYT86IHN0cmluZztcbiAgICByZWw/OiBzdHJpbmc7XG4gICAgcmV2Pzogc3RyaW5nO1xuICAgIHNpemVzPzogc3RyaW5nO1xuICAgIHRhcmdldD86IHN0cmluZztcbiAgICB0eXBlPzogc3RyaW5nO1xufSAmIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4vKipcbiAqIFR5cGljYWxseSB1c2VkIGZvciBhIFwiZHluYW1pY1wiIHBhZ2Ugd2hlcmUgYSBzaW5nbGUgb2JqZWN0IGlzIHJlc29sdmVkLiBTbyBhIGRldGFpbCBwYWdlLCBzdWNoXG4gKiBhcyB0aGUgZGV0YWlsIG9mIGEgcmlzayBhbmQgc28gb24uXG4gKi9cbmV4cG9ydCB0eXBlIE5hdHVyYWxTZW9SZXNvbHZlID0gUm9ib3RzICYge1xuICAgIC8qKlxuICAgICAqIFRoZSBrZXkgYG1vZGVsYCB3aWxsIGJlIHVzZWQgaW4gdGhlIHJlc29sdmVkIGRhdGEgdG8gZmluZCB0aGUgcmVzb2x2ZWQgb2JqZWN0LiBUaGUgZnVsbE5hbWVcbiAgICAgKiBvciBuYW1lIG9mIHRoZSBvYmplY3Qgd2lsbCBiZSB1c2VkIGZvciBwYWdlIHRpdGxlLCBhbmQgdGhlIG9iamVjdCBkZXNjcmlwdGlvbiwgaWYgYW55LFxuICAgICAqIHdpbGwgYmUgdXNlZCBmb3IgcGFnZSBkZXNjcmlwdGlvbi5cbiAgICAgKi9cbiAgICByZXNvbHZlOiB0cnVlO1xufTtcblxuLyoqXG4gKiBSYXJlbHkgdXNlZCBmb3IgYSBwYWdlIHRoYXQgaGFzIHZlcnkgc3BlY2lmaWMgbmVlZHMgYW5kIG5lZWQgdG8gYnVpbGQgdGl0bGUgYW5kIGRlc2NyaXB0aW9uIGluIGEgY3VzdG9tIHdheS5cbiAqIFRoZSBjYWxsYmFjayBiYWNrIHdpbGwgYmUgZ2l2ZW4gdGhlIHJlc29sdmVkIGRhdGEsIGFuZCBpdCBpcyB1cCB0byB0aGUgY2FsbGJhY2sgdG8gZmluZCB3aGF0ZXZlciBpdCBuZWVkcy5cbiAqL1xuZXhwb3J0IHR5cGUgTmF0dXJhbFNlb0NhbGxiYWNrID0gKHJvdXRlRGF0YTogRGF0YSkgPT4gTmF0dXJhbFNlb0Jhc2ljIHwgT2JzZXJ2YWJsZTxOYXR1cmFsU2VvQmFzaWM+O1xuXG4vKipcbiAqIFR5cGljYWxseSB1c2VkIHRvIHR5cGUgdGhlIHJvdXRpbmcgZGF0YSByZWNlaXZlZCBpbiB0aGUgY29tcG9uZW50LCBlZzpcbiAqXG4gKiBgYGB0c1xuICogY2xhc3MgTXlDb21wb25lbnQgZXh0ZW5kcyBOYXR1cmFsQWJzdHJhY3REZXRhaWw8TXlTZXJ2aWNlLCBOYXR1cmFsU2VvUmVzb2x2ZURhdGE+IHt9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IHR5cGUgTmF0dXJhbFNlb1Jlc29sdmVEYXRhID0ge1xuICAgIHNlbzogTmF0dXJhbFNlb0Jhc2ljO1xufTtcblxudHlwZSBSb2JvdHMgPSB7XG4gICAgLyoqXG4gICAgICogSWYgZ2l2ZW4gd2lsbCBiZSB1c2VkIGFzIHJvYm90cyBtZXRhIHRhZywgb3RoZXJ3aXNlIGZhbGxiYWNrIG9uIGRlZmF1bHQgdmFsdWVcbiAgICAgKi9cbiAgICByb2JvdHM/OiBzdHJpbmc7XG59O1xuXG50eXBlIE5hdHVyYWxTZW9Db25maWdQbGFpbiA9IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24gdGhhdCB3aWxsIGFsd2F5cyBhcHBlYXIgaW4gdGhlIHBhZ2UgdGl0bGVcbiAgICAgKi9cbiAgICByZWFkb25seSBhcHBsaWNhdGlvbk5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIERlZmF1bHQgdmFsdWUgZm9yIGRlc2NyaXB0aW9uIG1ldGEgdGhhdCBpcyB1c2VkIGZvciBwYWdlcyB3aXRob3V0IHZhbHVlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVmYXVsdERlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRGVmYXVsdCB2YWx1ZSBmb3Igcm9ib3RzIG1ldGEgdGhhdCBpcyB1c2VkIGZvciBwYWdlcyB3aXRob3V0IHZhbHVlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVmYXVsdFJvYm90cz86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIElmIGdpdmVuLCB0aGUgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2ggcm91dGUgYW5kIG11c3QgcmV0dXJuIGEgc3RyaW5nIHRoYXQgd2lsbFxuICAgICAqIGJlIGluc2VydGVkIGJldHdlZW4gdGhlIHBhZ2UgdGl0bGUgYW5kIHRoZSBhcHBsaWNhdGlvbiBuYW1lLlxuICAgICAqXG4gICAgICogSXQgc2hvdWxkIGJlIHVzZWQgdG8gY29tcGxldGUgdGhlIHRpdGxlIHdpdGggaW5mbyB0aGF0IGFyZSBvZnRlbiwgYnV0IG5vdCBuZWNlc3NhcmlseSBhbHdheXMsXG4gICAgICogYXZhaWxhYmxlIHRocm91Z2hvdXQgdGhlIGVudGlyZSBhcHBsaWNhdGlvbi4gVHlwaWNhbGx5IHVzZWQgZm9yIHRoZSBzaXRlL3N0YXRlIGluIE9LcGlsb3QuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZXh0cmFQYXJ0PzogKHJvdXRlRGF0YTogRGF0YSkgPT4gc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byBnZW5lcmF0ZSBhbHRlcm5hdGl2ZSB0YWdzXG4gICAgICogPGxpbmsgcmVsPVwiYWx0ZXJuYXRlXCIgaHJlZmxhbmc9XCJlblwiIGhyZWY9XCJodHRwczovL3d3dy5leGFtcGxlLmNvbS9lbi9wYWdlXCI+XG4gICAgICovXG4gICAgcmVhZG9ubHkgbGFuZ3VhZ2VzPzogcmVhZG9ubHkgc3RyaW5nW107XG59O1xuXG5leHBvcnQgdHlwZSBOYXR1cmFsU2VvQ29uZmlnID0gTmF0dXJhbFNlb0NvbmZpZ1BsYWluIHwgT2JzZXJ2YWJsZTxOYXR1cmFsU2VvQ29uZmlnUGxhaW4+O1xuZXhwb3J0IGNvbnN0IE5BVFVSQUxfU0VPX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOYXR1cmFsU2VvQ29uZmlnPignQ29uZmlndXJhdGlvbiBmb3IgU0VPIHNlcnZpY2UnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwVGFncyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC88XFwvP1tePl0qPi9nLCAnJyk7XG59XG5cbnR5cGUgTW9kZWwgPSB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBmdWxsTmFtZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn07XG5cbnR5cGUgUmVzb2x2ZWREYXRhID0ge1xuICAgIG1vZGVsPzogTW9kZWwgfCBPYnNlcnZhYmxlPE1vZGVsPjtcbn07XG5cbi8qKlxuICogVGhpcyBzZXJ2aWNlIGlzIHJlc3BvbnNpYmxlIHRvIGtlZXAgdXAgdG8gZGF0ZSB0aGUgcGFnZSB0aXRsZSBhbmQgcGFnZSBkZXNjcmlwdGlvbiBhY2NvcmRpbmdcbiAqIHRvIHdoYXQgaXMgY29uZmlndXJlZCBpbiByb3V0aW5nIG9yIGRlZmF1bHQgdmFsdWVzLlxuICpcbiAqIEl0ICoqbXVzdCoqIGJlIGluamVjdGVkIGluIHRoZSByb290IG1vZHVsZSBvZiB0aGUgYXBwbGljYXRpb24gdG8gaGF2ZSBlZmZlY3RzIGluIGFsbCBtb2R1bGVzLiBBbmQgaXRcbiAqIG11c3QgYmUgcHJvdmlkZWQgYSBjb25maWd1cmF0aW9uLlxuICpcbiAqIFRoZSBmdWxsIHRpdGxlIGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbiAqXG4gKiAgICAgZGlhbG9nIHRpdGxlIC0gcGFnZSB0aXRsZSAtIGV4dHJhIHBhcnQgLSBhcHAgbmFtZVxuICpcbiAqIGBkaWFsb2cgdGl0bGVgIG9ubHkgZXhpc3RzIGlmIGEgYE5hdHVyYWxEaWFsb2dUcmlnZ2VyQ29tcG9uZW50YCBpcyBjdXJyZW50bHkgb3BlbiwgYW5kIHRoYXQgc29tZSBTRU8gaXNcbiAqIGNvbmZpZ3VyZWQgZm9yIGl0IGluIHRoZSByb3V0aW5nLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsU2VvU2VydmljZSB7XG4gICAgcHJpdmF0ZSByb3V0ZURhdGE/OiBEYXRhO1xuICAgIHByaXZhdGUgY29uZmlnOiBOYXR1cmFsU2VvQ29uZmlnUGxhaW4gPSB7XG4gICAgICAgIGFwcGxpY2F0aW9uTmFtZTogJycsXG4gICAgfTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChOQVRVUkFMX1NFT19DT05GSUcpIGNvbmZpZ1Rva2VuOiBOYXR1cmFsU2VvQ29uZmlnLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlU2VydmljZTogVGl0bGUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbWV0YVRhZ1NlcnZpY2U6IE1ldGEsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KExPQ0FMRV9JRCkgcHJpdmF0ZSBsb2NhbGU6IHN0cmluZyxcbiAgICApIHtcbiAgICAgICAgY29tYmluZUxhdGVzdCh7XG4gICAgICAgICAgICBjb25maWc6IGNvbmZpZ1Rva2VuIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSA/IGNvbmZpZ1Rva2VuLnBpcGUoc3RhcnRXaXRoKHRoaXMuY29uZmlnKSkgOiBvZihjb25maWdUb2tlbiksXG4gICAgICAgICAgICBuYXZpZ2F0aW9uRW5kOiB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSksXG4gICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHtjb25maWd9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb290ID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUucm9vdC5zbmFwc2hvdDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZURhdGEgPSB0aGlzLmdldFJvdXRlRGF0YShyb290KTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZW86IE5hdHVyYWxTZW8gPSB0aGlzLnJvdXRlRGF0YS5zZW8gPz8ge3RpdGxlOiAnJ307XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpYWxvZ1JvdXRlRGF0YSA9IHRoaXMuZ2V0RGlhbG9nUm91dGVEYXRhKHJvb3QpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaWFsb2dTZW86IE5hdHVyYWxTZW8gPSBkaWFsb2dSb3V0ZURhdGE/LnNlbztcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiYXNpYyA9IHRoaXMudG9CYXNpYyhzZW8sIHRoaXMucm91dGVEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlhbG9nQmFzaWMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nUm91dGVEYXRhICYmIGRpYWxvZ1NlbyA/IHRoaXMudG9CYXNpYyhkaWFsb2dTZW8sIGRpYWxvZ1JvdXRlRGF0YSkgOiBvZihudWxsKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdCh7YmFzaWMsIGRpYWxvZ0Jhc2ljfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh7YmFzaWMsIGRpYWxvZ0Jhc2ljfSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkaWFsb2dCYXNpYykge1xuICAgICAgICAgICAgICAgICAgICBiYXNpYyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmRpYWxvZ0Jhc2ljLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMuam9pbihbZGlhbG9nQmFzaWMudGl0bGUsIGJhc2ljLnRpdGxlXSksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGUoYmFzaWMpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSBTRU8gd2l0aCBnaXZlbiBpbmZvLiBUaGUgZXh0cmEgcGFydCBhbmQgYXBwIG5hbWUgd2lsbCBiZSBhcHBlbmRlZCBhdXRvbWF0aWNhbGx5LlxuICAgICAqXG4gICAgICogSW4gbW9zdCBjYXNlcywgdGhpcyBzaG91bGQgbm90IGJlIHVzZWQuIEFuZCBpbnN0ZWFkLCB0aGUgU0VPIHNob3VsZCBiZSBjb25maWd1cmVkIGluIHRoZSByb3V0aW5nLFxuICAgICAqIHBvc3NpYmx5IHdpdGggdGhlIGNhbGxiYWNrIHZhcmlhbnQgZm9yIHNvbWUgZHluYW1pc20uXG4gICAgICpcbiAgICAgKiBCdXQgaW4gcmFyZSBjYXNlcywgb25seSB0aGUgQ29tcG9uZW50IGlzIGFibGUgdG8gYnVpbGQgYSBwcm9wZXIgcGFnZSB0aXRsZSwgYWZ0ZXIgaXQgZ2F0aGVyZWQgZXZlcnl0aGluZyBpdFxuICAgICAqIG5lZWRlZC4gRm9yIHRob3NlIGNhc2VzLCB0aGUgQ29tcG9uZW50IGNhbiBpbmplY3QgdGhpcyBzZXJ2aWNlIGFuZCB1cGRhdGUgdGhlIFNFTyBkaXJlY3RseS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlKHNlbzogTmF0dXJhbFNlb0Jhc2ljKTogdm9pZCB7XG4gICAgICAgIC8vIFRpdGxlXG4gICAgICAgIGNvbnN0IHBhcnRzID0gW1xuICAgICAgICAgICAgc2VvLnRpdGxlLFxuICAgICAgICAgICAgdGhpcy5jb25maWcuZXh0cmFQYXJ0ICYmIHRoaXMucm91dGVEYXRhID8gdGhpcy5jb25maWcuZXh0cmFQYXJ0KHRoaXMucm91dGVEYXRhKSA6ICcnLFxuICAgICAgICAgICAgdGhpcy5jb25maWcuYXBwbGljYXRpb25OYW1lLFxuICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5qb2luKHBhcnRzKTtcbiAgICAgICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUodGl0bGUpO1xuXG4gICAgICAgIC8vIERlc2NyaXB0aW9uXG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gc2VvPy5kZXNjcmlwdGlvbiA/PyB0aGlzLmNvbmZpZy5kZWZhdWx0RGVzY3JpcHRpb247XG4gICAgICAgIHRoaXMudXBkYXRlVGFnKCdkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uKTtcblxuICAgICAgICAvLyBSb2JvdHNcbiAgICAgICAgY29uc3Qgcm9ib3RzID0gc2VvPy5yb2JvdHMgPz8gdGhpcy5jb25maWcuZGVmYXVsdFJvYm90cztcbiAgICAgICAgdGhpcy51cGRhdGVUYWcoJ3JvYm90cycsIHJvYm90cyk7XG5cbiAgICAgICAgLy8gQ2Fub25pY2FsXG4gICAgICAgIC8vIEFkZCBsYW5ndWFnZSBpbiB1cmwgKGFmdGVyIGRvbWFpbikgaWYgc29tZSBsYW5ndWFnZXMgYXJlIHByb3ZpZGVkIG9ubHlcbiAgICAgICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLmNvbmZpZy5sYW5ndWFnZXM/Lmxlbmd0aCAmJiB0aGlzLmxvY2FsZSA/IHRoaXMubG9jYWxlLnNwbGl0KCctJylbMF0gOiAnJztcbiAgICAgICAgY29uc3QgdXJsUGFydHMgPSB0aGlzLmdldFVybFBhcnRzKHNlby5jYW5vbmljYWxRdWVyeVBhcmFtc1doaXRlbGlzdCA/PyBbXSk7XG4gICAgICAgIHRoaXMudXBkYXRlTGlua1RhZyh7cmVsOiAnY2Fub25pY2FsJywgaHJlZjogdGhpcy5nZXRVcmwodXJsUGFydHMsIGxhbmd1YWdlKX0pO1xuICAgICAgICB0aGlzLnVwZGF0ZUFsdGVybmF0ZXModXJsUGFydHMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQWx0ZXJuYXRlcyh1cmxQYXJ0czoge3VybDogc3RyaW5nOyBwYXJhbXM6IHN0cmluZ30pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb25maWcubGFuZ3VhZ2VzPy5mb3JFYWNoKGxhbmd1YWdlID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTGlua1RhZyh7cmVsOiAnYWx0ZXJuYXRlJywgaHJlZjogdGhpcy5nZXRVcmwodXJsUGFydHMsIGxhbmd1YWdlKSwgaHJlZmxhbmc6IGxhbmd1YWdlfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VXJsUGFydHMod2hpdGVMaXN0ZWRQYXJhbXM6IHN0cmluZ1tdKToge3VybDogc3RyaW5nOyBwYXJhbXM6IHN0cmluZ30ge1xuICAgICAgICBsZXQgdXJsID0gJ2h0dHBzOi8vJyArIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc/LndpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbiAgICAgICAgY29uc3QgdXJsVHJlZSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHRoaXMucm91dGVyLnVybCk7XG5cbiAgICAgICAgLy8gbmVlZCBiZXR0ZXIgbGlrZSBzb21ldGhpbmcgcmVjdXJzaXZlID9cbiAgICAgICAgaWYgKHVybFRyZWUucm9vdC5oYXNDaGlsZHJlbigpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWdtZW50cyA9IHVybFRyZWUucm9vdC5jaGlsZHJlbi5wcmltYXJ5Py5zZWdtZW50cztcbiAgICAgICAgICAgIGlmIChzZWdtZW50cyAmJiBzZWdtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdXJsICs9ICcvJyArIHNlZ21lbnRzLm1hcChzZWdtZW50ID0+IHNlZ21lbnQucGF0aCkuam9pbignLycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUXVlcnkgUGFyYW1zXG4gICAgICAgIGxldCBwYXJhbXMgPSAnJztcbiAgICAgICAgZm9yIChjb25zdCB3aGl0ZUxpc3RlZFBhcmFtIG9mIHdoaXRlTGlzdGVkUGFyYW1zKSB7XG4gICAgICAgICAgICBpZiAod2hpdGVMaXN0ZWRQYXJhbSBpbiB1cmxUcmVlLnF1ZXJ5UGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZW5jb2RlVVJJQ29tcG9uZW50KHdoaXRlTGlzdGVkUGFyYW0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZW5jb2RlVVJJQ29tcG9uZW50KHVybFRyZWUucXVlcnlQYXJhbXNbd2hpdGVMaXN0ZWRQYXJhbV0pO1xuICAgICAgICAgICAgICAgIGlmIChwYXJhbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcyArPSAnJic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhcmFtcyArPSBgJHtrZXl9PSR7dmFsdWV9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXJhbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSAnPycgKyBwYXJhbXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge3VybCwgcGFyYW1zfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgbGFuZ3VhZ2UgYmV0d2VlbiBkb21haW4gYW5kIHVyaSBodHRwczovL2V4YW1wbGUuY29tL2ZyL2ZvbGRlci9wYWdlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRVcmwodXJsUGFydHM6IHt1cmw6IHN0cmluZzsgcGFyYW1zOiBzdHJpbmd9LCBsYW5ndWFnZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGxldCB1cmwgPSB1cmxQYXJ0cy51cmw7XG5cbiAgICAgICAgaWYgKGxhbmd1YWdlKSB7XG4gICAgICAgICAgICB1cmwgPSB0aGlzLmFkZExhbmd1YWdlU2VnbWVudCh1cmwsIGxhbmd1YWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh1cmxQYXJ0cy5wYXJhbXMpIHtcbiAgICAgICAgICAgIHVybCArPSB1cmxQYXJ0cy5wYXJhbXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdXJsO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkTGFuZ3VhZ2VTZWdtZW50KHVybDogc3RyaW5nLCBsYW5ndWFnZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdXJsT2JqID0gbmV3IFVSTCh1cmwpO1xuICAgICAgICBjb25zdCBuZXdQYXRoID0gdXJsT2JqLnBhdGhuYW1lID09PSAnLycgPyBgLyR7bGFuZ3VhZ2V9YCA6IGAvJHtsYW5ndWFnZX0ke3VybE9iai5wYXRobmFtZX1gO1xuICAgICAgICByZXR1cm4gdXJsT2JqLm9yaWdpbiArIG5ld1BhdGggKyB1cmxPYmouc2VhcmNoICsgdXJsT2JqLmhhc2g7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBqb2luKHBhcnRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBwYXJ0cy5maWx0ZXIocyA9PiAhIXMpLmpvaW4oJyAtICcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVGFnKG5hbWU6IHN0cmluZywgdmFsdWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7XG4gICAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogc3RyaXBUYWdzKHZhbHVlKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tZXRhVGFnU2VydmljZS5yZW1vdmVUYWcoYG5hbWU9XCIke25hbWV9XCJgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTGlua1RhZyhkZWZpbml0aW9uOiBOYXR1cmFsTGlua0RlZmluaXRpb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbGlua0VsZW1lbnQgPVxuICAgICAgICAgICAgdGhpcy5kb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3I8SFRNTExpbmtFbGVtZW50Pih0aGlzLnBhcnNlU2VsZWN0b3IoZGVmaW5pdGlvbikpID8/XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJykpO1xuXG4gICAgICAgIGlmIChsaW5rRWxlbWVudCkge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoZGVmaW5pdGlvbikuZm9yRWFjaCgoYXR0cmlidXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCBkZWZpbml0aW9uW2F0dHJpYnV0ZV0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHNlbGVjdG9yIHRvIHVzZSBpbiBxdWVyeVNlbGVjdG9yIHRvIGdldCB0aGUgZ2l2ZW4gbGlua1xuICAgICAqL1xuICAgIHByaXZhdGUgcGFyc2VTZWxlY3RvcihkZWZpbml0aW9uOiBOYXR1cmFsTGlua0RlZmluaXRpb24pOiBzdHJpbmcge1xuICAgICAgICBsZXQgYXR0cmlidXRlcyA9ICdsaW5rJztcbiAgICAgICAgT2JqZWN0LmtleXMoZGVmaW5pdGlvbikuZm9yRWFjaChhdHRyID0+IHtcbiAgICAgICAgICAgIGlmIChhdHRyICE9PSAnaHJlZicpIHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzICs9IGBbJHthdHRyfT1cIiR7ZGVmaW5pdGlvblthdHRyXX1cIl1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gYXR0cmlidXRlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBkYXRhIGZyb20gdGhlIG1vc3QgZGVlcC9zcGVjaWZpYyBhY3RpdmF0ZWQgcm91dGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFJvdXRlRGF0YShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IERhdGEge1xuICAgICAgICBpZiAocm91dGUuZmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Um91dGVEYXRhKHJvdXRlLmZpcnN0Q2hpbGQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHJvdXRlLmRhdGE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBkYXRhIGZyb20gdGhlIGBOYXR1cmFsRGlhbG9nVHJpZ2dlckNvbXBvbmVudGAgaWYgb25lIGlzIG9wZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldERpYWxvZ1JvdXRlRGF0YShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IERhdGEgfCBudWxsIHtcbiAgICAgICAgaWYgKHJvdXRlLmNvbXBvbmVudCA9PT0gTmF0dXJhbERpYWxvZ1RyaWdnZXJDb21wb25lbnQgJiYgcm91dGUub3V0bGV0ICE9PSBQUklNQVJZX09VVExFVCkge1xuICAgICAgICAgICAgcmV0dXJuIHJvdXRlLmRhdGE7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHJvdXRlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXREaWFsb2dSb3V0ZURhdGEoY2hpbGQpO1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9CYXNpYyhzZW86IE5hdHVyYWxTZW8sIHJvdXRlRGF0YTogUmVzb2x2ZWREYXRhKTogT2JzZXJ2YWJsZTxOYXR1cmFsU2VvQmFzaWM+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBzZW8gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHNlbyhyb3V0ZURhdGEpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCBpbnN0YW5jZW9mIE9ic2VydmFibGUgPyByZXN1bHQgOiBvZihyZXN1bHQpO1xuICAgICAgICB9IGVsc2UgaWYgKCdyZXNvbHZlJyBpbiBzZW8pIHtcbiAgICAgICAgICAgIGlmICghKCdtb2RlbCcgaW4gcm91dGVEYXRhKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgcmVzb2x2ZWQgZGF0YSBgbW9kZWxgIGZvciBTRU8gc2VydmljZScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBtb2RlbCA9IHJvdXRlRGF0YS5tb2RlbDtcblxuICAgICAgICAgICAgcmV0dXJuIChtb2RlbCBpbnN0YW5jZW9mIE9ic2VydmFibGUgPyBtb2RlbCA6IG9mKG1vZGVsKSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHZhbHVlPy5mdWxsTmFtZSA/PyB2YWx1ZT8ubmFtZSA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB2YWx1ZT8uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICByb2JvdHM6IHNlby5yb2JvdHMsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9mKHNlbyk7XG4gICAgfVxufVxuIl19
234
+ }], ctorParameters: () => [] });
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9jb21tb24vc2VydmljZXMvc2VvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQStCLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEcsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDNUYsT0FBTyxFQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7QUE2RzlELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFtQiwrQkFBK0IsQ0FBQyxDQUFDO0FBRXhHLE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBVztJQUNqQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFZRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjtJQUNULE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixjQUFjLEdB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VSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RCxDQUFDO2FBQU0sSUFBSSxTQUFTLElBQUksR0FBRyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztZQUM1RSxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUU5QixPQUFPLENBQUMsS0FBSyxZQUFZLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3pELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDUixPQUFPO29CQUNILEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFJLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRTtvQkFDM0MsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXO29CQUMvQixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07aUJBQ3JCLENBQUM7WUFDTixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7dUdBL09RLGlCQUFpQjsyR0FBakIsaUJBQWlCLGNBRmQsTUFBTTs7MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0luamVjdGFibGUsIEluamVjdGlvblRva2VuLCBMT0NBTEVfSUQsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01ldGEsIFRpdGxlfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgRGF0YSwgTmF2aWdhdGlvbkVuZCwgUFJJTUFSWV9PVVRMRVQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7TmF0dXJhbERpYWxvZ1RyaWdnZXJDb21wb25lbnR9IGZyb20gJy4uLy4uL2RpYWxvZy10cmlnZ2VyL2RpYWxvZy10cmlnZ2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3RhcnRXaXRoLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuZXhwb3J0IHR5cGUgTmF0dXJhbFNlbyA9IE5hdHVyYWxTZW9CYXNpYyB8IE5hdHVyYWxTZW9DYWxsYmFjayB8IE5hdHVyYWxTZW9SZXNvbHZlO1xuXG4vKipcbiAqIFR5cGljYWxseSB1c2VkIGZvciBcInN0YXRpY1wiIHBhZ2VzIHdoZXJlIHRoZXJlIGlzIG5vdCBhIHNpbmdsZSByZXNvbHZlZCBvYmplY3QuIFNvXG4gKiBhbGwgcGFnZXMgc3VjaCBhcyBcIkFib3V0XCIsIG9yIGxpc3Qgb2Ygb2JqZWN0cyAobGlzdCBvZiByaXNrcywgZXRjLikuXG4gKlxuICogVGhpcyBzaG91bGQgYmUgdGhlIG1vc3QgY29tbW9uIHVzZWQgdmFyaWFudC5cbiAqL1xuZXhwb3J0IHR5cGUgTmF0dXJhbFNlb0Jhc2ljID0gUm9ib3RzICYge1xuICAgIC8qKlxuICAgICAqIFRoZSBwYWdlIHRpdGxlLCB0aGF0IHdpbGwgYmUgY29uY2F0ZW5hdGVkIHdpdGggYXBwbGljYXRpb24gbmFtZVxuICAgICAqL1xuICAgIHRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBJZiBnaXZlbiB3aWxsIGJlIHVzZWQgYXMgcGFnZSBkZXNjcmlwdGlvbiwgb3RoZXJ3aXNlIGZhbGxiYWNrIG9uIGRlZmF1bHQgdmFsdWVcbiAgICAgKi9cbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgcGFyYW1ldGVycyBpbmNsdWRlZCBpbiB0aGUgY2Fub25pY2FsIHRhZydzIHVybFxuICAgICAqL1xuICAgIGNhbm9uaWNhbFF1ZXJ5UGFyYW1zV2hpdGVsaXN0Pzogc3RyaW5nW107XG59O1xuXG50eXBlIE5hdHVyYWxMaW5rRGVmaW5pdGlvbiA9IHtcbiAgICBjaGFyc2V0Pzogc3RyaW5nO1xuICAgIGNyb3Nzb3JpZ2luPzogc3RyaW5nO1xuICAgIGhyZWY/OiBzdHJpbmc7XG4gICAgaHJlZmxhbmc/OiBzdHJpbmc7XG4gICAgbWVkaWE/OiBzdHJpbmc7XG4gICAgcmVsPzogc3RyaW5nO1xuICAgIHJldj86IHN0cmluZztcbiAgICBzaXplcz86IHN0cmluZztcbiAgICB0YXJnZXQ/OiBzdHJpbmc7XG4gICAgdHlwZT86IHN0cmluZztcbn0gJiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuLyoqXG4gKiBUeXBpY2FsbHkgdXNlZCBmb3IgYSBcImR5bmFtaWNcIiBwYWdlIHdoZXJlIGEgc2luZ2xlIG9iamVjdCBpcyByZXNvbHZlZC4gU28gYSBkZXRhaWwgcGFnZSwgc3VjaFxuICogYXMgdGhlIGRldGFpbCBvZiBhIHJpc2sgYW5kIHNvIG9uLlxuICovXG5leHBvcnQgdHlwZSBOYXR1cmFsU2VvUmVzb2x2ZSA9IFJvYm90cyAmIHtcbiAgICAvKipcbiAgICAgKiBUaGUga2V5IGBtb2RlbGAgd2lsbCBiZSB1c2VkIGluIHRoZSByZXNvbHZlZCBkYXRhIHRvIGZpbmQgdGhlIHJlc29sdmVkIG9iamVjdC4gVGhlIGZ1bGxOYW1lXG4gICAgICogb3IgbmFtZSBvZiB0aGUgb2JqZWN0IHdpbGwgYmUgdXNlZCBmb3IgcGFnZSB0aXRsZSwgYW5kIHRoZSBvYmplY3QgZGVzY3JpcHRpb24sIGlmIGFueSxcbiAgICAgKiB3aWxsIGJlIHVzZWQgZm9yIHBhZ2UgZGVzY3JpcHRpb24uXG4gICAgICovXG4gICAgcmVzb2x2ZTogdHJ1ZTtcbn07XG5cbi8qKlxuICogUmFyZWx5IHVzZWQgZm9yIGEgcGFnZSB0aGF0IGhhcyB2ZXJ5IHNwZWNpZmljIG5lZWRzIGFuZCBuZWVkIHRvIGJ1aWxkIHRpdGxlIGFuZCBkZXNjcmlwdGlvbiBpbiBhIGN1c3RvbSB3YXkuXG4gKiBUaGUgY2FsbGJhY2sgYmFjayB3aWxsIGJlIGdpdmVuIHRoZSByZXNvbHZlZCBkYXRhLCBhbmQgaXQgaXMgdXAgdG8gdGhlIGNhbGxiYWNrIHRvIGZpbmQgd2hhdGV2ZXIgaXQgbmVlZHMuXG4gKi9cbmV4cG9ydCB0eXBlIE5hdHVyYWxTZW9DYWxsYmFjayA9IChyb3V0ZURhdGE6IERhdGEpID0+IE5hdHVyYWxTZW9CYXNpYyB8IE9ic2VydmFibGU8TmF0dXJhbFNlb0Jhc2ljPjtcblxuLyoqXG4gKiBUeXBpY2FsbHkgdXNlZCB0byB0eXBlIHRoZSByb3V0aW5nIGRhdGEgcmVjZWl2ZWQgaW4gdGhlIGNvbXBvbmVudCwgZWc6XG4gKlxuICogYGBgdHNcbiAqIGNsYXNzIE15Q29tcG9uZW50IGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0RGV0YWlsPE15U2VydmljZSwgTmF0dXJhbFNlb1Jlc29sdmVEYXRhPiB7fVxuICogYGBgXG4gKi9cbmV4cG9ydCB0eXBlIE5hdHVyYWxTZW9SZXNvbHZlRGF0YSA9IHtcbiAgICBzZW86IE5hdHVyYWxTZW9CYXNpYztcbn07XG5cbnR5cGUgUm9ib3RzID0ge1xuICAgIC8qKlxuICAgICAqIElmIGdpdmVuIHdpbGwgYmUgdXNlZCBhcyByb2JvdHMgbWV0YSB0YWcsIG90aGVyd2lzZSBmYWxsYmFjayBvbiBkZWZhdWx0IHZhbHVlXG4gICAgICovXG4gICAgcm9ib3RzPzogc3RyaW5nO1xufTtcblxudHlwZSBOYXR1cmFsU2VvQ29uZmlnUGxhaW4gPSB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIHRoYXQgd2lsbCBhbHdheXMgYXBwZWFyIGluIHRoZSBwYWdlIHRpdGxlXG4gICAgICovXG4gICAgcmVhZG9ubHkgYXBwbGljYXRpb25OYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGZvciBkZXNjcmlwdGlvbiBtZXRhIHRoYXQgaXMgdXNlZCBmb3IgcGFnZXMgd2l0aG91dCB2YWx1ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlZmF1bHREZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIERlZmF1bHQgdmFsdWUgZm9yIHJvYm90cyBtZXRhIHRoYXQgaXMgdXNlZCBmb3IgcGFnZXMgd2l0aG91dCB2YWx1ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlZmF1bHRSb2JvdHM/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBJZiBnaXZlbiwgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoIHJvdXRlIGFuZCBtdXN0IHJldHVybiBhIHN0cmluZyB0aGF0IHdpbGxcbiAgICAgKiBiZSBpbnNlcnRlZCBiZXR3ZWVuIHRoZSBwYWdlIHRpdGxlIGFuZCB0aGUgYXBwbGljYXRpb24gbmFtZS5cbiAgICAgKlxuICAgICAqIEl0IHNob3VsZCBiZSB1c2VkIHRvIGNvbXBsZXRlIHRoZSB0aXRsZSB3aXRoIGluZm8gdGhhdCBhcmUgb2Z0ZW4sIGJ1dCBub3QgbmVjZXNzYXJpbHkgYWx3YXlzLFxuICAgICAqIGF2YWlsYWJsZSB0aHJvdWdob3V0IHRoZSBlbnRpcmUgYXBwbGljYXRpb24uIFR5cGljYWxseSB1c2VkIGZvciB0aGUgc2l0ZS9zdGF0ZSBpbiBPS3BpbG90LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGV4dHJhUGFydD86IChyb3V0ZURhdGE6IERhdGEpID0+IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gZ2VuZXJhdGUgYWx0ZXJuYXRpdmUgdGFnc1xuICAgICAqIDxsaW5rIHJlbD1cImFsdGVybmF0ZVwiIGhyZWZsYW5nPVwiZW5cIiBocmVmPVwiaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vZW4vcGFnZVwiPlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGxhbmd1YWdlcz86IHJlYWRvbmx5IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgTmF0dXJhbFNlb0NvbmZpZyA9IE5hdHVyYWxTZW9Db25maWdQbGFpbiB8IE9ic2VydmFibGU8TmF0dXJhbFNlb0NvbmZpZ1BsYWluPjtcbmV4cG9ydCBjb25zdCBOQVRVUkFMX1NFT19DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TmF0dXJhbFNlb0NvbmZpZz4oJ0NvbmZpZ3VyYXRpb24gZm9yIFNFTyBzZXJ2aWNlJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcFRhZ3Moc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvPFxcLz9bXj5dKj4vZywgJycpO1xufVxuXG50eXBlIE1vZGVsID0ge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgZnVsbE5hbWU/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59O1xuXG50eXBlIFJlc29sdmVkRGF0YSA9IHtcbiAgICBtb2RlbD86IE1vZGVsIHwgT2JzZXJ2YWJsZTxNb2RlbD47XG59O1xuXG4vKipcbiAqIFRoaXMgc2VydmljZSBpcyByZXNwb25zaWJsZSB0byBrZWVwIHVwIHRvIGRhdGUgdGhlIHBhZ2UgdGl0bGUgYW5kIHBhZ2UgZGVzY3JpcHRpb24gYWNjb3JkaW5nXG4gKiB0byB3aGF0IGlzIGNvbmZpZ3VyZWQgaW4gcm91dGluZyBvciBkZWZhdWx0IHZhbHVlcy5cbiAqXG4gKiBJdCAqKm11c3QqKiBiZSBpbmplY3RlZCBpbiB0aGUgcm9vdCBtb2R1bGUgb2YgdGhlIGFwcGxpY2F0aW9uIHRvIGhhdmUgZWZmZWN0cyBpbiBhbGwgbW9kdWxlcy4gQW5kIGl0XG4gKiBtdXN0IGJlIHByb3ZpZGVkIGEgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBUaGUgZnVsbCB0aXRsZSBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6XG4gKlxuICogICAgIGRpYWxvZyB0aXRsZSAtIHBhZ2UgdGl0bGUgLSBleHRyYSBwYXJ0IC0gYXBwIG5hbWVcbiAqXG4gKiBgZGlhbG9nIHRpdGxlYCBvbmx5IGV4aXN0cyBpZiBhIGBOYXR1cmFsRGlhbG9nVHJpZ2dlckNvbXBvbmVudGAgaXMgY3VycmVudGx5IG9wZW4sIGFuZCB0aGF0IHNvbWUgU0VPIGlzXG4gKiBjb25maWd1cmVkIGZvciBpdCBpbiB0aGUgcm91dGluZy5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFNlb1NlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0aXRsZVNlcnZpY2UgPSBpbmplY3QoVGl0bGUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWV0YVRhZ1NlcnZpY2UgPSBpbmplY3QoTWV0YSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdDxEb2N1bWVudD4oRE9DVU1FTlQpO1xuICAgIHByaXZhdGUgbG9jYWxlID0gaW5qZWN0KExPQ0FMRV9JRCk7XG5cbiAgICBwcml2YXRlIHJvdXRlRGF0YT86IERhdGE7XG4gICAgcHJpdmF0ZSBjb25maWc6IE5hdHVyYWxTZW9Db25maWdQbGFpbiA9IHtcbiAgICAgICAgYXBwbGljYXRpb25OYW1lOiAnJyxcbiAgICB9O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCBjb25maWdUb2tlbiA9IGluamVjdDxOYXR1cmFsU2VvQ29uZmlnPihOQVRVUkFMX1NFT19DT05GSUcpO1xuXG4gICAgICAgIGNvbWJpbmVMYXRlc3Qoe1xuICAgICAgICAgICAgY29uZmlnOiBjb25maWdUb2tlbiBpbnN0YW5jZW9mIE9ic2VydmFibGUgPyBjb25maWdUb2tlbi5waXBlKHN0YXJ0V2l0aCh0aGlzLmNvbmZpZykpIDogb2YoY29uZmlnVG9rZW4pLFxuICAgICAgICAgICAgbmF2aWdhdGlvbkVuZDogdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLFxuICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh7Y29uZmlnfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnJvb3Quc25hcHNob3Q7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVEYXRhID0gdGhpcy5nZXRSb3V0ZURhdGEocm9vdCk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VvOiBOYXR1cmFsU2VvID0gdGhpcy5yb3V0ZURhdGEuc2VvID8/IHt0aXRsZTogJyd9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaWFsb2dSb3V0ZURhdGEgPSB0aGlzLmdldERpYWxvZ1JvdXRlRGF0YShyb290KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlhbG9nU2VvOiBOYXR1cmFsU2VvID0gZGlhbG9nUm91dGVEYXRhPy5zZW87XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFzaWMgPSB0aGlzLnRvQmFzaWMoc2VvLCB0aGlzLnJvdXRlRGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpYWxvZ0Jhc2ljID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1JvdXRlRGF0YSAmJiBkaWFsb2dTZW8gPyB0aGlzLnRvQmFzaWMoZGlhbG9nU2VvLCBkaWFsb2dSb3V0ZURhdGEpIDogb2YobnVsbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qoe2Jhc2ljLCBkaWFsb2dCYXNpY30pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoe2Jhc2ljLCBkaWFsb2dCYXNpY30pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGlhbG9nQmFzaWMpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFzaWMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5kaWFsb2dCYXNpYyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLmpvaW4oW2RpYWxvZ0Jhc2ljLnRpdGxlLCBiYXNpYy50aXRsZV0pLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlKGJhc2ljKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgU0VPIHdpdGggZ2l2ZW4gaW5mby4gVGhlIGV4dHJhIHBhcnQgYW5kIGFwcCBuYW1lIHdpbGwgYmUgYXBwZW5kZWQgYXV0b21hdGljYWxseS5cbiAgICAgKlxuICAgICAqIEluIG1vc3QgY2FzZXMsIHRoaXMgc2hvdWxkIG5vdCBiZSB1c2VkLiBBbmQgaW5zdGVhZCwgdGhlIFNFTyBzaG91bGQgYmUgY29uZmlndXJlZCBpbiB0aGUgcm91dGluZyxcbiAgICAgKiBwb3NzaWJseSB3aXRoIHRoZSBjYWxsYmFjayB2YXJpYW50IGZvciBzb21lIGR5bmFtaXNtLlxuICAgICAqXG4gICAgICogQnV0IGluIHJhcmUgY2FzZXMsIG9ubHkgdGhlIENvbXBvbmVudCBpcyBhYmxlIHRvIGJ1aWxkIGEgcHJvcGVyIHBhZ2UgdGl0bGUsIGFmdGVyIGl0IGdhdGhlcmVkIGV2ZXJ5dGhpbmcgaXRcbiAgICAgKiBuZWVkZWQuIEZvciB0aG9zZSBjYXNlcywgdGhlIENvbXBvbmVudCBjYW4gaW5qZWN0IHRoaXMgc2VydmljZSBhbmQgdXBkYXRlIHRoZSBTRU8gZGlyZWN0bHkuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZShzZW86IE5hdHVyYWxTZW9CYXNpYyk6IHZvaWQge1xuICAgICAgICAvLyBUaXRsZVxuICAgICAgICBjb25zdCBwYXJ0cyA9IFtcbiAgICAgICAgICAgIHNlby50aXRsZSxcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmV4dHJhUGFydCAmJiB0aGlzLnJvdXRlRGF0YSA/IHRoaXMuY29uZmlnLmV4dHJhUGFydCh0aGlzLnJvdXRlRGF0YSkgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmFwcGxpY2F0aW9uTmFtZSxcbiAgICAgICAgXTtcblxuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMuam9pbihwYXJ0cyk7XG4gICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRpdGxlKTtcblxuICAgICAgICAvLyBEZXNjcmlwdGlvblxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHNlbz8uZGVzY3JpcHRpb24gPz8gdGhpcy5jb25maWcuZGVmYXVsdERlc2NyaXB0aW9uO1xuICAgICAgICB0aGlzLnVwZGF0ZVRhZygnZGVzY3JpcHRpb24nLCBkZXNjcmlwdGlvbik7XG5cbiAgICAgICAgLy8gUm9ib3RzXG4gICAgICAgIGNvbnN0IHJvYm90cyA9IHNlbz8ucm9ib3RzID8/IHRoaXMuY29uZmlnLmRlZmF1bHRSb2JvdHM7XG4gICAgICAgIHRoaXMudXBkYXRlVGFnKCdyb2JvdHMnLCByb2JvdHMpO1xuXG4gICAgICAgIC8vIENhbm9uaWNhbFxuICAgICAgICAvLyBBZGQgbGFuZ3VhZ2UgaW4gdXJsIChhZnRlciBkb21haW4pIGlmIHNvbWUgbGFuZ3VhZ2VzIGFyZSBwcm92aWRlZCBvbmx5XG4gICAgICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy5jb25maWcubGFuZ3VhZ2VzPy5sZW5ndGggJiYgdGhpcy5sb2NhbGUgPyB0aGlzLmxvY2FsZS5zcGxpdCgnLScpWzBdIDogJyc7XG4gICAgICAgIGNvbnN0IHVybFBhcnRzID0gdGhpcy5nZXRVcmxQYXJ0cyhzZW8uY2Fub25pY2FsUXVlcnlQYXJhbXNXaGl0ZWxpc3QgPz8gW10pO1xuICAgICAgICB0aGlzLnVwZGF0ZUxpbmtUYWcoe3JlbDogJ2Nhbm9uaWNhbCcsIGhyZWY6IHRoaXMuZ2V0VXJsKHVybFBhcnRzLCBsYW5ndWFnZSl9KTtcbiAgICAgICAgdGhpcy51cGRhdGVBbHRlcm5hdGVzKHVybFBhcnRzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUFsdGVybmF0ZXModXJsUGFydHM6IHt1cmw6IHN0cmluZzsgcGFyYW1zOiBzdHJpbmd9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlnLmxhbmd1YWdlcz8uZm9yRWFjaChsYW5ndWFnZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxpbmtUYWcoe3JlbDogJ2FsdGVybmF0ZScsIGhyZWY6IHRoaXMuZ2V0VXJsKHVybFBhcnRzLCBsYW5ndWFnZSksIGhyZWZsYW5nOiBsYW5ndWFnZX0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFVybFBhcnRzKHdoaXRlTGlzdGVkUGFyYW1zOiBzdHJpbmdbXSk6IHt1cmw6IHN0cmluZzsgcGFyYW1zOiBzdHJpbmd9IHtcbiAgICAgICAgbGV0IHVybCA9ICdodHRwczovLycgKyB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Py53aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG4gICAgICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnJvdXRlci51cmwpO1xuXG4gICAgICAgIC8vIG5lZWQgYmV0dGVyIGxpa2Ugc29tZXRoaW5nIHJlY3Vyc2l2ZSA/XG4gICAgICAgIGlmICh1cmxUcmVlLnJvb3QuaGFzQ2hpbGRyZW4oKSkge1xuICAgICAgICAgICAgY29uc3Qgc2VnbWVudHMgPSB1cmxUcmVlLnJvb3QuY2hpbGRyZW4ucHJpbWFyeT8uc2VnbWVudHM7XG4gICAgICAgICAgICBpZiAoc2VnbWVudHMgJiYgc2VnbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHVybCArPSAnLycgKyBzZWdtZW50cy5tYXAoc2VnbWVudCA9PiBzZWdtZW50LnBhdGgpLmpvaW4oJy8nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFF1ZXJ5IFBhcmFtc1xuICAgICAgICBsZXQgcGFyYW1zID0gJyc7XG4gICAgICAgIGZvciAoY29uc3Qgd2hpdGVMaXN0ZWRQYXJhbSBvZiB3aGl0ZUxpc3RlZFBhcmFtcykge1xuICAgICAgICAgICAgaWYgKHdoaXRlTGlzdGVkUGFyYW0gaW4gdXJsVHJlZS5xdWVyeVBhcmFtcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGVuY29kZVVSSUNvbXBvbmVudCh3aGl0ZUxpc3RlZFBhcmFtKTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGVuY29kZVVSSUNvbXBvbmVudCh1cmxUcmVlLnF1ZXJ5UGFyYW1zW3doaXRlTGlzdGVkUGFyYW1dKTtcbiAgICAgICAgICAgICAgICBpZiAocGFyYW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXMgKz0gJyYnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXJhbXMgKz0gYCR7a2V5fT0ke3ZhbHVlfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFyYW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgcGFyYW1zID0gJz8nICsgcGFyYW1zO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHt1cmwsIHBhcmFtc307XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIGxhbmd1YWdlIGJldHdlZW4gZG9tYWluIGFuZCB1cmkgaHR0cHM6Ly9leGFtcGxlLmNvbS9mci9mb2xkZXIvcGFnZVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0VXJsKHVybFBhcnRzOiB7dXJsOiBzdHJpbmc7IHBhcmFtczogc3RyaW5nfSwgbGFuZ3VhZ2U/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBsZXQgdXJsID0gdXJsUGFydHMudXJsO1xuXG4gICAgICAgIGlmIChsYW5ndWFnZSkge1xuICAgICAgICAgICAgdXJsID0gdGhpcy5hZGRMYW5ndWFnZVNlZ21lbnQodXJsLCBsYW5ndWFnZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodXJsUGFydHMucGFyYW1zKSB7XG4gICAgICAgICAgICB1cmwgKz0gdXJsUGFydHMucGFyYW1zO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVybDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZExhbmd1YWdlU2VnbWVudCh1cmw6IHN0cmluZywgbGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHVybE9iaiA9IG5ldyBVUkwodXJsKTtcbiAgICAgICAgY29uc3QgbmV3UGF0aCA9IHVybE9iai5wYXRobmFtZSA9PT0gJy8nID8gYC8ke2xhbmd1YWdlfWAgOiBgLyR7bGFuZ3VhZ2V9JHt1cmxPYmoucGF0aG5hbWV9YDtcbiAgICAgICAgcmV0dXJuIHVybE9iai5vcmlnaW4gKyBuZXdQYXRoICsgdXJsT2JqLnNlYXJjaCArIHVybE9iai5oYXNoO1xuICAgIH1cblxuICAgIHByaXZhdGUgam9pbihwYXJ0czogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcGFydHMuZmlsdGVyKHMgPT4gISFzKS5qb2luKCcgLSAnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVRhZyhuYW1lOiBzdHJpbmcsIHZhbHVlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5tZXRhVGFnU2VydmljZS51cGRhdGVUYWcoe1xuICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHN0cmlwVGFncyh2YWx1ZSksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWV0YVRhZ1NlcnZpY2UucmVtb3ZlVGFnKGBuYW1lPVwiJHtuYW1lfVwiYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUxpbmtUYWcoZGVmaW5pdGlvbjogTmF0dXJhbExpbmtEZWZpbml0aW9uKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxpbmtFbGVtZW50ID1cbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yPEhUTUxMaW5rRWxlbWVudD4odGhpcy5wYXJzZVNlbGVjdG9yKGRlZmluaXRpb24pKSA/P1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpKTtcblxuICAgICAgICBpZiAobGlua0VsZW1lbnQpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGRlZmluaXRpb24pLmZvckVhY2goKGF0dHJpYnV0ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgZGVmaW5pdGlvblthdHRyaWJ1dGVdKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBzZWxlY3RvciB0byB1c2UgaW4gcXVlcnlTZWxlY3RvciB0byBnZXQgdGhlIGdpdmVuIGxpbmtcbiAgICAgKi9cbiAgICBwcml2YXRlIHBhcnNlU2VsZWN0b3IoZGVmaW5pdGlvbjogTmF0dXJhbExpbmtEZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGF0dHJpYnV0ZXMgPSAnbGluayc7XG4gICAgICAgIE9iamVjdC5rZXlzKGRlZmluaXRpb24pLmZvckVhY2goYXR0ciA9PiB7XG4gICAgICAgICAgICBpZiAoYXR0ciAhPT0gJ2hyZWYnKSB7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlcyArPSBgWyR7YXR0cn09XCIke2RlZmluaXRpb25bYXR0cl19XCJdYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgZGF0YSBmcm9tIHRoZSBtb3N0IGRlZXAvc3BlY2lmaWMgYWN0aXZhdGVkIHJvdXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRSb3V0ZURhdGEocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBEYXRhIHtcbiAgICAgICAgaWYgKHJvdXRlLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFJvdXRlRGF0YShyb3V0ZS5maXJzdENoaWxkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiByb3V0ZS5kYXRhO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgZGF0YSBmcm9tIHRoZSBgTmF0dXJhbERpYWxvZ1RyaWdnZXJDb21wb25lbnRgIGlmIG9uZSBpcyBvcGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXREaWFsb2dSb3V0ZURhdGEocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBEYXRhIHwgbnVsbCB7XG4gICAgICAgIGlmIChyb3V0ZS5jb21wb25lbnQgPT09IE5hdHVyYWxEaWFsb2dUcmlnZ2VyQ29tcG9uZW50ICYmIHJvdXRlLm91dGxldCAhPT0gUFJJTUFSWV9PVVRMRVQpIHtcbiAgICAgICAgICAgIHJldHVybiByb3V0ZS5kYXRhO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiByb3V0ZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0RGlhbG9nUm91dGVEYXRhKGNoaWxkKTtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvQmFzaWMoc2VvOiBOYXR1cmFsU2VvLCByb3V0ZURhdGE6IFJlc29sdmVkRGF0YSk6IE9ic2VydmFibGU8TmF0dXJhbFNlb0Jhc2ljPiB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2VvID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBzZW8ocm91dGVEYXRhKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlID8gcmVzdWx0IDogb2YocmVzdWx0KTtcbiAgICAgICAgfSBlbHNlIGlmICgncmVzb2x2ZScgaW4gc2VvKSB7XG4gICAgICAgICAgICBpZiAoISgnbW9kZWwnIGluIHJvdXRlRGF0YSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHJlc29sdmVkIGRhdGEgYG1vZGVsYCBmb3IgU0VPIHNlcnZpY2UnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbW9kZWwgPSByb3V0ZURhdGEubW9kZWw7XG5cbiAgICAgICAgICAgIHJldHVybiAobW9kZWwgaW5zdGFuY2VvZiBPYnNlcnZhYmxlID8gbW9kZWwgOiBvZihtb2RlbCkpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB2YWx1ZT8uZnVsbE5hbWUgPz8gdmFsdWU/Lm5hbWUgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdmFsdWU/LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm9ib3RzOiBzZW8ucm9ib3RzLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZihzZW8pO1xuICAgIH1cbn1cbiJdfQ==
@@ -7,36 +7,41 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/material/button";
8
8
  import * as i2 from "@angular/material/icon";
9
9
  export class NaturalDetailHeaderComponent {
10
- constructor() {
11
- /**
12
- * Must be set to get proper links when used in panels
13
- */
14
- this.isPanel = false;
15
- /**
16
- * If given will show icon before title
17
- */
18
- this.icon = '';
19
- /**
20
- * Title shown if model has no name, or empty name.
21
- *
22
- * Typically should be the human name for the object type, eg: 'Product'
23
- */
24
- this.label = '';
25
- /**
26
- * Label of the root of the breadcrumb, defaults to the value of `label`.
27
- *
28
- * Typically should be the plural form of the object type, eg: 'Products'
29
- */
30
- this.rootLabel = '';
31
- /**
32
- * Title shown if model has no id.
33
- *
34
- * Typically should be similar to 'New product'.
35
- */
36
- this.newLabel = '';
37
- this.breadcrumbs = [];
38
- this.listRoute = [];
39
- }
10
+ /**
11
+ * Base URL used to build links, defaults to '/'
12
+ */
13
+ currentBaseUrl;
14
+ /**
15
+ * Must be set to get proper links when used in panels
16
+ */
17
+ isPanel = false;
18
+ /**
19
+ * If given will show icon before title
20
+ */
21
+ icon = '';
22
+ /**
23
+ * Title shown if model has no name, or empty name.
24
+ *
25
+ * Typically should be the human name for the object type, eg: 'Product'
26
+ */
27
+ label = '';
28
+ /**
29
+ * Label of the root of the breadcrumb, defaults to the value of `label`.
30
+ *
31
+ * Typically should be the plural form of the object type, eg: 'Products'
32
+ */
33
+ rootLabel = '';
34
+ /**
35
+ * Title shown if model has no id.
36
+ *
37
+ * Typically should be similar to 'New product'.
38
+ */
39
+ newLabel = '';
40
+ model;
41
+ breadcrumbs = [];
42
+ listRoute = [];
43
+ listFragment;
44
+ link;
40
45
  getRootLink() {
41
46
  return [this.currentBaseUrl || '/'].concat(this.listRoute);
42
47
  }
@@ -46,8 +51,8 @@ export class NaturalDetailHeaderComponent {
46
51
  }
47
52
  return this.getRootLink().concat([id]);
48
53
  }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalDetailHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: NaturalDetailHeaderComponent, isStandalone: true, selector: "natural-detail-header", inputs: { currentBaseUrl: "currentBaseUrl", isPanel: "isPanel", icon: "icon", label: "label", rootLabel: "rootLabel", newLabel: "newLabel", model: "model", breadcrumbs: "breadcrumbs", listRoute: "listRoute", listFragment: "listFragment", link: "link" }, ngImport: i0, template: "<div class=\"breadcrumb\">\n @if (rootLabel || label) {\n <a [routerLink]=\"isPanel ? [] : getRootLink()\" [fragment]=\"listFragment\" color=\"primary\" mat-button>{{\n rootLabel || label\n }}</a>\n }\n @for (parent of breadcrumbs; track parent.id) {\n /\n <a [routerLink]=\"isPanel ? [] : getLink(parent.id)\" color=\"primary\" mat-button>\n {{ parent?.fullName || parent?.name }}</a\n >\n }\n</div>\n\n<div class=\"body\">\n @if (icon) {\n <div style=\"width: 30px\">\n <mat-icon [naturalIcon]=\"icon\" />\n </div>\n }\n @if (!model.id) {\n <div class=\"mat-headline-5 nat-no-margin newLabel\">{{ newLabel }}</div>\n }\n @if (model.id) {\n <div class=\"mat-headline-5 nat-no-margin label\">{{ model.name || model.fullName || label }}</div>\n }\n <div>\n <ng-content />\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column}:host .breadcrumb,:host .body{display:flex;flex-direction:row;align-items:center}:host .breadcrumb{position:relative;top:5px}:host .body{min-height:40px}:host .body>*:not(:last-child){margin-right:5px}:host .body .label,:host .body .newLabel{flex:1}@media screen and (max-width: 600px){:host .body{flex-direction:column;align-items:flex-start}:host .body>*:not(:last-child){margin-bottom:10px!important}:host .body mat-icon{display:none}}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }] }); }
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalDetailHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: NaturalDetailHeaderComponent, isStandalone: true, selector: "natural-detail-header", inputs: { currentBaseUrl: "currentBaseUrl", isPanel: "isPanel", icon: "icon", label: "label", rootLabel: "rootLabel", newLabel: "newLabel", model: "model", breadcrumbs: "breadcrumbs", listRoute: "listRoute", listFragment: "listFragment", link: "link" }, ngImport: i0, template: "<div class=\"breadcrumb\">\n @if (rootLabel || label) {\n <a [routerLink]=\"isPanel ? [] : getRootLink()\" [fragment]=\"listFragment\" color=\"primary\" mat-button>{{\n rootLabel || label\n }}</a>\n }\n @for (parent of breadcrumbs; track parent.id) {\n /\n <a [routerLink]=\"isPanel ? [] : getLink(parent.id)\" color=\"primary\" mat-button>\n {{ parent?.fullName || parent?.name }}</a\n >\n }\n</div>\n\n<div class=\"body\">\n @if (icon) {\n <div style=\"width: 30px\">\n <mat-icon [naturalIcon]=\"icon\" />\n </div>\n }\n @if (!model.id) {\n <div class=\"mat-headline-5 nat-no-margin newLabel\">{{ newLabel }}</div>\n }\n @if (model.id) {\n <div class=\"mat-headline-5 nat-no-margin label\">{{ model.name || model.fullName || label }}</div>\n }\n <div>\n <ng-content />\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column}:host .breadcrumb,:host .body{display:flex;flex-direction:row;align-items:center}:host .breadcrumb{position:relative;top:5px}:host .body{min-height:40px}:host .body>*:not(:last-child){margin-right:5px}:host .body .label,:host .body .newLabel{flex:1}@media screen and (max-width: 600px){:host .body{flex-direction:column;align-items:flex-start}:host .body>*:not(:last-child){margin-bottom:10px!important}:host .body mat-icon{display:none}}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }] });
51
56
  }
52
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalDetailHeaderComponent, decorators: [{
53
58
  type: Component,
@@ -76,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
76
81
  }], link: [{
77
82
  type: Input
78
83
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kZXRhaWwtaGVhZGVyL2RldGFpbC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZGV0YWlsLWhlYWRlci9kZXRhaWwtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBU3pELE1BQU0sT0FBTyw0QkFBNEI7SUFQekM7UUFhSTs7V0FFRztRQUNhLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFaEM7O1dBRUc7UUFDYSxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzFCOzs7O1dBSUc7UUFDYSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRTNCOzs7O1dBSUc7UUFDYSxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRS9COzs7O1dBSUc7UUFDYSxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRWQsZ0JBQVcsR0FBcUIsRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBVSxFQUFFLENBQUM7S0FlekM7SUFYVSxXQUFXO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sT0FBTyxDQUFDLEVBQVU7UUFDckIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBbkRRLDRCQUE0QjtrR0FBNUIsNEJBQTRCLCtVQ2R6QyxrNkJBOEJBLDBoQkRsQmMsZUFBZSw0TUFBRSxVQUFVLG1PQUFFLGFBQWEsb0xBQUUsb0JBQW9COzsyRkFFakUsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNJLHVCQUF1QixjQUdyQixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQzs4QkFNM0QsY0FBYztzQkFBN0IsS0FBSztnQkFLVSxPQUFPO3NCQUF0QixLQUFLO2dCQUtVLElBQUk7c0JBQW5CLEtBQUs7Z0JBTVUsS0FBSztzQkFBcEIsS0FBSztnQkFPVSxTQUFTO3NCQUF4QixLQUFLO2dCQU9VLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQzBCLEtBQUs7c0JBQXBDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUNQLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMaXRlcmFsLCBOYW1lT3JGdWxsTmFtZX0gZnJvbSAnLi4vLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHtOYXR1cmFsSWNvbkRpcmVjdGl2ZX0gZnJvbSAnLi4vaWNvbi9pY29uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtSb3V0ZXJMaW5rfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1kZXRhaWwtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGV0YWlsLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2RldGFpbC1oZWFkZXIuY29tcG9uZW50LnNjc3MnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW01hdEJ1dHRvbk1vZHVsZSwgUm91dGVyTGluaywgTWF0SWNvbk1vZHVsZSwgTmF0dXJhbEljb25EaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRGV0YWlsSGVhZGVyQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBCYXNlIFVSTCB1c2VkIHRvIGJ1aWxkIGxpbmtzLCBkZWZhdWx0cyB0byAnLydcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgY3VycmVudEJhc2VVcmw/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBNdXN0IGJlIHNldCB0byBnZXQgcHJvcGVyIGxpbmtzIHdoZW4gdXNlZCBpbiBwYW5lbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNQYW5lbCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWYgZ2l2ZW4gd2lsbCBzaG93IGljb24gYmVmb3JlIHRpdGxlXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGljb24gPSAnJztcbiAgICAvKipcbiAgICAgKiBUaXRsZSBzaG93biBpZiBtb2RlbCBoYXMgbm8gbmFtZSwgb3IgZW1wdHkgbmFtZS5cbiAgICAgKlxuICAgICAqIFR5cGljYWxseSBzaG91bGQgYmUgdGhlIGh1bWFuIG5hbWUgZm9yIHRoZSBvYmplY3QgdHlwZSwgZWc6ICdQcm9kdWN0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsYWJlbCA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgb2YgdGhlIHJvb3Qgb2YgdGhlIGJyZWFkY3J1bWIsIGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBgbGFiZWxgLlxuICAgICAqXG4gICAgICogVHlwaWNhbGx5IHNob3VsZCBiZSB0aGUgcGx1cmFsIGZvcm0gb2YgdGhlIG9iamVjdCB0eXBlLCBlZzogJ1Byb2R1Y3RzJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb290TGFiZWwgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFRpdGxlIHNob3duIGlmIG1vZGVsIGhhcyBubyBpZC5cbiAgICAgKlxuICAgICAqIFR5cGljYWxseSBzaG91bGQgYmUgc2ltaWxhciB0byAnTmV3IHByb2R1Y3QnLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBuZXdMYWJlbCA9ICcnO1xuICAgIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgbW9kZWwhOiBMaXRlcmFsO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBicmVhZGNydW1iczogTmFtZU9yRnVsbE5hbWVbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsaXN0Um91dGU6IGFueVtdID0gW107XG4gICAgQElucHV0KCkgcHVibGljIGxpc3RGcmFnbWVudDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsaW5rPzogKGlkOiBzdHJpbmcpID0+IGFueVtdO1xuXG4gICAgcHVibGljIGdldFJvb3RMaW5rKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFt0aGlzLmN1cnJlbnRCYXNlVXJsIHx8ICcvJ10uY29uY2F0KHRoaXMubGlzdFJvdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TGluayhpZDogc3RyaW5nKTogYW55W10ge1xuICAgICAgICBpZiAodGhpcy5saW5rKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRSb290TGluaygpLmNvbmNhdCh0aGlzLmxpbmsoaWQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmdldFJvb3RMaW5rKCkuY29uY2F0KFtpZF0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJicmVhZGNydW1iXCI+XG4gICAgQGlmIChyb290TGFiZWwgfHwgbGFiZWwpIHtcbiAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiaXNQYW5lbCA/IFtdIDogZ2V0Um9vdExpbmsoKVwiIFtmcmFnbWVudF09XCJsaXN0RnJhZ21lbnRcIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtYnV0dG9uPnt7XG4gICAgICAgICAgICByb290TGFiZWwgfHwgbGFiZWxcbiAgICAgICAgfX08L2E+XG4gICAgfVxuICAgIEBmb3IgKHBhcmVudCBvZiBicmVhZGNydW1iczsgdHJhY2sgcGFyZW50LmlkKSB7XG4gICAgICAgIC9cbiAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiaXNQYW5lbCA/IFtdIDogZ2V0TGluayhwYXJlbnQuaWQpXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0LWJ1dHRvbj5cbiAgICAgICAgICAgIHt7IHBhcmVudD8uZnVsbE5hbWUgfHwgcGFyZW50Py5uYW1lIH19PC9hXG4gICAgICAgID5cbiAgICB9XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImJvZHlcIj5cbiAgICBAaWYgKGljb24pIHtcbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAzMHB4XCI+XG4gICAgICAgICAgICA8bWF0LWljb24gW25hdHVyYWxJY29uXT1cImljb25cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmICghbW9kZWwuaWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1oZWFkbGluZS01IG5hdC1uby1tYXJnaW4gbmV3TGFiZWxcIj57eyBuZXdMYWJlbCB9fTwvZGl2PlxuICAgIH1cbiAgICBAaWYgKG1vZGVsLmlkKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtaGVhZGxpbmUtNSBuYXQtbm8tbWFyZ2luIGxhYmVsXCI+e3sgbW9kZWwubmFtZSB8fCBtb2RlbC5mdWxsTmFtZSB8fCBsYWJlbCB9fTwvZGl2PlxuICAgIH1cbiAgICA8ZGl2PlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kZXRhaWwtaGVhZGVyL2RldGFpbC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZGV0YWlsLWhlYWRlci9kZXRhaWwtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBU3pELE1BQU0sT0FBTyw0QkFBNEI7SUFDckM7O09BRUc7SUFDYSxjQUFjLENBQVU7SUFFeEM7O09BRUc7SUFDYSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRWhDOztPQUVHO0lBQ2EsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUMxQjs7OztPQUlHO0lBQ2EsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUUzQjs7OztPQUlHO0lBQ2EsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUUvQjs7OztPQUlHO0lBQ2EsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNFLEtBQUssQ0FBVztJQUNoQyxXQUFXLEdBQXFCLEVBQUUsQ0FBQztJQUNuQyxTQUFTLEdBQVUsRUFBRSxDQUFDO0lBQ3RCLFlBQVksQ0FBcUI7SUFDakMsSUFBSSxDQUF5QjtJQUV0QyxXQUFXO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sT0FBTyxDQUFDLEVBQVU7UUFDckIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7dUdBbkRRLDRCQUE0QjsyRkFBNUIsNEJBQTRCLCtVQ2R6QyxrNkJBOEJBLDBoQkRsQmMsZUFBZSw0TUFBRSxVQUFVLG1PQUFFLGFBQWEsb0xBQUUsb0JBQW9COzsyRkFFakUsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNJLHVCQUF1QixjQUdyQixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQzs4QkFNM0QsY0FBYztzQkFBN0IsS0FBSztnQkFLVSxPQUFPO3NCQUF0QixLQUFLO2dCQUtVLElBQUk7c0JBQW5CLEtBQUs7Z0JBTVUsS0FBSztzQkFBcEIsS0FBSztnQkFPVSxTQUFTO3NCQUF4QixLQUFLO2dCQU9VLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQzBCLEtBQUs7c0JBQXBDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUNQLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMaXRlcmFsLCBOYW1lT3JGdWxsTmFtZX0gZnJvbSAnLi4vLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHtOYXR1cmFsSWNvbkRpcmVjdGl2ZX0gZnJvbSAnLi4vaWNvbi9pY29uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtSb3V0ZXJMaW5rfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1kZXRhaWwtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGV0YWlsLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2RldGFpbC1oZWFkZXIuY29tcG9uZW50LnNjc3MnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW01hdEJ1dHRvbk1vZHVsZSwgUm91dGVyTGluaywgTWF0SWNvbk1vZHVsZSwgTmF0dXJhbEljb25EaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRGV0YWlsSGVhZGVyQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBCYXNlIFVSTCB1c2VkIHRvIGJ1aWxkIGxpbmtzLCBkZWZhdWx0cyB0byAnLydcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgY3VycmVudEJhc2VVcmw/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBNdXN0IGJlIHNldCB0byBnZXQgcHJvcGVyIGxpbmtzIHdoZW4gdXNlZCBpbiBwYW5lbHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNQYW5lbCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWYgZ2l2ZW4gd2lsbCBzaG93IGljb24gYmVmb3JlIHRpdGxlXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGljb24gPSAnJztcbiAgICAvKipcbiAgICAgKiBUaXRsZSBzaG93biBpZiBtb2RlbCBoYXMgbm8gbmFtZSwgb3IgZW1wdHkgbmFtZS5cbiAgICAgKlxuICAgICAqIFR5cGljYWxseSBzaG91bGQgYmUgdGhlIGh1bWFuIG5hbWUgZm9yIHRoZSBvYmplY3QgdHlwZSwgZWc6ICdQcm9kdWN0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsYWJlbCA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgb2YgdGhlIHJvb3Qgb2YgdGhlIGJyZWFkY3J1bWIsIGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBgbGFiZWxgLlxuICAgICAqXG4gICAgICogVHlwaWNhbGx5IHNob3VsZCBiZSB0aGUgcGx1cmFsIGZvcm0gb2YgdGhlIG9iamVjdCB0eXBlLCBlZzogJ1Byb2R1Y3RzJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyByb290TGFiZWwgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFRpdGxlIHNob3duIGlmIG1vZGVsIGhhcyBubyBpZC5cbiAgICAgKlxuICAgICAqIFR5cGljYWxseSBzaG91bGQgYmUgc2ltaWxhciB0byAnTmV3IHByb2R1Y3QnLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBuZXdMYWJlbCA9ICcnO1xuICAgIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgbW9kZWwhOiBMaXRlcmFsO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBicmVhZGNydW1iczogTmFtZU9yRnVsbE5hbWVbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsaXN0Um91dGU6IGFueVtdID0gW107XG4gICAgQElucHV0KCkgcHVibGljIGxpc3RGcmFnbWVudDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsaW5rPzogKGlkOiBzdHJpbmcpID0+IGFueVtdO1xuXG4gICAgcHVibGljIGdldFJvb3RMaW5rKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFt0aGlzLmN1cnJlbnRCYXNlVXJsIHx8ICcvJ10uY29uY2F0KHRoaXMubGlzdFJvdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TGluayhpZDogc3RyaW5nKTogYW55W10ge1xuICAgICAgICBpZiAodGhpcy5saW5rKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRSb290TGluaygpLmNvbmNhdCh0aGlzLmxpbmsoaWQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmdldFJvb3RMaW5rKCkuY29uY2F0KFtpZF0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJicmVhZGNydW1iXCI+XG4gICAgQGlmIChyb290TGFiZWwgfHwgbGFiZWwpIHtcbiAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiaXNQYW5lbCA/IFtdIDogZ2V0Um9vdExpbmsoKVwiIFtmcmFnbWVudF09XCJsaXN0RnJhZ21lbnRcIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtYnV0dG9uPnt7XG4gICAgICAgICAgICByb290TGFiZWwgfHwgbGFiZWxcbiAgICAgICAgfX08L2E+XG4gICAgfVxuICAgIEBmb3IgKHBhcmVudCBvZiBicmVhZGNydW1iczsgdHJhY2sgcGFyZW50LmlkKSB7XG4gICAgICAgIC9cbiAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiaXNQYW5lbCA/IFtdIDogZ2V0TGluayhwYXJlbnQuaWQpXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0LWJ1dHRvbj5cbiAgICAgICAgICAgIHt7IHBhcmVudD8uZnVsbE5hbWUgfHwgcGFyZW50Py5uYW1lIH19PC9hXG4gICAgICAgID5cbiAgICB9XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImJvZHlcIj5cbiAgICBAaWYgKGljb24pIHtcbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAzMHB4XCI+XG4gICAgICAgICAgICA8bWF0LWljb24gW25hdHVyYWxJY29uXT1cImljb25cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmICghbW9kZWwuaWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdC1oZWFkbGluZS01IG5hdC1uby1tYXJnaW4gbmV3TGFiZWxcIj57eyBuZXdMYWJlbCB9fTwvZGl2PlxuICAgIH1cbiAgICBAaWYgKG1vZGVsLmlkKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtaGVhZGxpbmUtNSBuYXQtbm8tbWFyZ2luIGxhYmVsXCI+e3sgbW9kZWwubmFtZSB8fCBtb2RlbC5mdWxsTmFtZSB8fCBsYWJlbCB9fTwvZGl2PlxuICAgIH1cbiAgICA8ZGl2PlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,12 +1,14 @@
1
- import { Component } from '@angular/core';
1
+ import { Component, inject } from '@angular/core';
2
+ import { MatDialog } from '@angular/material/dialog';
3
+ import { ActivatedRoute, Router } from '@angular/router';
2
4
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/material/dialog";
4
- import * as i2 from "@angular/router";
5
5
  export class NaturalDialogTriggerComponent {
6
- constructor(dialog, route, router) {
7
- this.dialog = dialog;
8
- this.route = route;
9
- this.router = router;
6
+ dialog = inject(MatDialog);
7
+ route = inject(ActivatedRoute);
8
+ router = inject(Router);
9
+ dialogRef;
10
+ triggerConfig;
11
+ constructor() {
10
12
  // Data from activated route
11
13
  this.triggerConfig = this.route.snapshot.data.trigger;
12
14
  // Get data relative to dialog service configuration
@@ -57,8 +59,8 @@ export class NaturalDialogTriggerComponent {
57
59
  this.router.navigate(['.'], { relativeTo: this.route.parent });
58
60
  }
59
61
  }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalDialogTriggerComponent, deps: [{ token: i1.MatDialog }, { token: i2.ActivatedRoute }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: NaturalDialogTriggerComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true }); }
62
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalDialogTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
63
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: NaturalDialogTriggerComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: '', isInline: true });
62
64
  }
63
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalDialogTriggerComponent, decorators: [{
64
66
  type: Component,
@@ -66,5 +68,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
66
68
  template: '',
67
69
  standalone: true,
68
70
  }]
69
- }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.ActivatedRoute }, { type: i2.Router }] });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXRyaWdnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZGlhbG9nLXRyaWdnZXIvZGlhbG9nLXRyaWdnZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7Ozs7QUFzQm5ELE1BQU0sT0FBTyw2QkFBNkI7SUFLdEMsWUFDcUIsTUFBaUIsRUFDakIsS0FBcUIsRUFDckIsTUFBYztRQUZkLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUUvQiw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBZ0QsQ0FBQztRQUUvRixvREFBb0Q7UUFDcEQsTUFBTSxFQUFDLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1FBQzFELE1BQU0sWUFBWSxHQUF5RDtZQUN2RSxHQUFHLE1BQU07WUFDVCxJQUFJLEVBQUU7Z0JBQ0YsSUFBSSxFQUFFLElBQUk7Z0JBQ1Ysd0VBQXdFO2dCQUN4RSxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDN0I7U0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FJL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFOUMsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO1FBQ3BELENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksUUFBUSxDQUFDLFNBQWdEO1FBQzVELE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxJQUFJLElBQUksSUFBSSxTQUFTLEtBQUssRUFBRSxDQUFDLENBQUMsd0JBQXdCO1FBRXhGLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbkIsd0JBQXdCO1lBQ3hCLE9BQU87UUFDWCxDQUFDO2FBQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0IsNENBQTRDO1lBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQWtCLENBQUMsQ0FBQztRQUM3QyxDQUFDO2FBQU0sSUFBSSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDakUsaUdBQWlHO1lBQ2pHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQXlCLENBQUMsQ0FBQztRQUN2RSxDQUFDO2FBQU0sSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLG1IQUFtSDtZQUNuSCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0wsQ0FBQzs4R0FsRVEsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsd0VBSDVCLEVBQUU7OzJGQUdILDZCQUE2QjtrQkFKekMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsRUFBRTtvQkFDWixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnLCBNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXIsIFJvdXRlckxpbmt9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCB0eXBlIE5hdHVyYWxEaWFsb2dUcmlnZ2VyUm91dGluZ0RhdGE8VCwgRD4gPSB7XG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+O1xuICAgIGFmdGVyQ2xvc2VkUm91dGU/OiBSb3V0ZXJMaW5rWydyb3V0ZXJMaW5rJ107XG4gICAgZGlhbG9nQ29uZmlnOiBNYXREaWFsb2dDb25maWc8RD47XG59O1xuXG5leHBvcnQgdHlwZSBOYXR1cmFsRGlhbG9nVHJpZ2dlclByb3ZpZGVkRGF0YTxEPiA9IHtcbiAgICBkYXRhPzogUmVhZG9ubHk8RD4gfCBudWxsO1xuICAgIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVkdW5kYW50LXR5cGUtY29uc3RpdHVlbnRzXG5leHBvcnQgdHlwZSBOYXR1cmFsRGlhbG9nVHJpZ2dlclJlZGlyZWN0aW9uVmFsdWVzID0gUm91dGVyTGlua1sncm91dGVyTGluayddIHwgbnVsbCB8IHVuZGVmaW5lZCB8ICcnIHwgLTE7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRGlhbG9nVHJpZ2dlckNvbXBvbmVudDxULCBEPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxULCBOYXR1cmFsRGlhbG9nVHJpZ2dlclJlZGlyZWN0aW9uVmFsdWVzPjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJpZ2dlckNvbmZpZzogTmF0dXJhbERpYWxvZ1RyaWdnZXJSb3V0aW5nRGF0YTxULCBEPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgKSB7XG4gICAgICAgIC8vIERhdGEgZnJvbSBhY3RpdmF0ZWQgcm91dGVcbiAgICAgICAgdGhpcy50cmlnZ2VyQ29uZmlnID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLnRyaWdnZXIgYXMgTmF0dXJhbERpYWxvZ1RyaWdnZXJSb3V0aW5nRGF0YTxULCBEPjtcblxuICAgICAgICAvLyBHZXQgZGF0YSByZWxhdGl2ZSB0byBkaWFsb2cgc2VydmljZSBjb25maWd1cmF0aW9uXG4gICAgICAgIGNvbnN0IHtkYXRhLCAuLi5jb25maWd9ID0gdGhpcy50cmlnZ2VyQ29uZmlnLmRpYWxvZ0NvbmZpZztcbiAgICAgICAgY29uc3QgZGlhbG9nQ29uZmlnOiBNYXREaWFsb2dDb25maWc8TmF0dXJhbERpYWxvZ1RyaWdnZXJQcm92aWRlZERhdGE8RD4+ID0ge1xuICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICAgICAgLy8gU2V0IGRhdGEgYWNjZXNzaWJsZSBpbnRvIGNvbXBvbmVudCBpbnN0YW50aWF0ZWQgYnkgdGhlIGRpYWxvZyBzZXJ2aWNlXG4gICAgICAgICAgICAgICAgYWN0aXZhdGVkUm91dGU6IHRoaXMucm91dGUsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbjxcbiAgICAgICAgICAgIFQsXG4gICAgICAgICAgICBOYXR1cmFsRGlhbG9nVHJpZ2dlclByb3ZpZGVkRGF0YTxEPixcbiAgICAgICAgICAgIE5hdHVyYWxEaWFsb2dUcmlnZ2VyUmVkaXJlY3Rpb25WYWx1ZXNcbiAgICAgICAgPih0aGlzLnRyaWdnZXJDb25maWcuY29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xuXG4gICAgICAgIC8vIFJlZGlyZWN0IG9uIGNsb3NpbmcgKGlmIGFwcGxpY2FibGUpXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmJlZm9yZUNsb3NlZCgpLnN1YnNjcmliZShleGl0VmFsdWUgPT4gdGhpcy5yZWRpcmVjdChleGl0VmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiByb3V0ZXIgbGVhdmVzIHJvdXRlLCBhbmQgc28gb24sIGNsb3NlcyB0aGUgbW9kYWwgd2l0aCB1bmRlZmluZWQgdmFsdWUgdG8gcHJldmVudCBhIG5ldyByZWRpcmVjdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgtMSk7IC8vIC0xID0gbm8gcmVkaXJlY3Rpb25cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZGlyZWN0cyBvbiBtb2RhbCBjbG9zaW5nIHVuZGVyIGZvbGxvd2luZyBydWxlcy9jb25kaXRpb25zXG4gICAgICpcbiAgICAgKiBJZiAtMSA6IG5vIHJlZGlyZWN0aW9uXG4gICAgICogSWYgdW5kZWZpbmVkLCBudWxsIG9yIGVtcHR5IHN0cmluZyA6IHVzZXMgdGhlIHJvdXRlciBwcm92aWRlZCByZWRpcmVjdGlvbiByb3V0ZSBvciBmYWxsYmFja3Mgb24gcGFyZW50IHJvdXRlIGlmIHJvdXRlciBkb24ndCBwcm92aWRlXG4gICAgICogSWYgYSB2YWx1ZSBpcyBwcm92aWRlZCwgc2hvdWxkIGJlIG9mIHR5cGUgYW55W10gYW5kIGl0J3MgdXNlZCBmb3IgcmVkaXJlY3Rpb24uXG4gICAgICovXG4gICAgcHVibGljIHJlZGlyZWN0KGV4aXRWYWx1ZTogTmF0dXJhbERpYWxvZ1RyaWdnZXJSZWRpcmVjdGlvblZhbHVlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBpc0VtcHR5RXhpdFZhbHVlID0gZXhpdFZhbHVlID09IG51bGwgfHwgZXhpdFZhbHVlID09PSAnJzsgLy8gdW5kZWZpbmVkLCBudWxsIG9yICcnXG5cbiAgICAgICAgaWYgKGV4aXRWYWx1ZSA9PT0gLTEpIHtcbiAgICAgICAgICAgIC8vIGlmIC0xLCBkb24ndCByZWRpcmVjdFxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKCFpc0VtcHR5RXhpdFZhbHVlKSB7XG4gICAgICAgICAgICAvLyBJZiB2YWx1ZSBwcm92aWRlZCwgcmVkaXJlY3QgdG8gdGhhdCByb3V0ZVxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoZXhpdFZhbHVlIGFzIGFueVtdKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0VtcHR5RXhpdFZhbHVlICYmIHRoaXMudHJpZ2dlckNvbmZpZy5hZnRlckNsb3NlZFJvdXRlKSB7XG4gICAgICAgICAgICAvLyBJZiB2YWx1ZSBpcyBub3QgcHJvdmlkZWQgKG51bGwpIGFuZCByb3V0ZXIgY29udGV4dCBzcGVjaWZpZWQgZGVmYXVsdCByZWRpcmVjdGlvbiByb3V0ZSwgdXNlIGl0XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0aGlzLnRyaWdnZXJDb25maWcuYWZ0ZXJDbG9zZWRSb3V0ZSBhcyBhbnlbXSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNFbXB0eUV4aXRWYWx1ZSkge1xuICAgICAgICAgICAgLy8gSWYgbmVpdGhlciBvZiBjb21wb25lbnQgb3Igcm91dGVyIHByb3ZpZGVzIHJlZGlyZWN0aW9uLCBnbyB0byBwYXJlbnQgKGNhcmUgOiBwYXJlbnQgY2FuJ3QgaGF2ZSBlbXB0eSBwYXRoIDogJycpLFxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuJ10sIHtyZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLnBhcmVudH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
71
+ }], ctorParameters: () => [] });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXRyaWdnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZGlhbG9nLXRyaWdnZXIvZGlhbG9nLXRyaWdnZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQWEsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBQyxTQUFTLEVBQWdDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEYsT0FBTyxFQUFDLGNBQWMsRUFBRSxNQUFNLEVBQWEsTUFBTSxpQkFBaUIsQ0FBQzs7QUFvQm5FLE1BQU0sT0FBTyw2QkFBNkI7SUFDckIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQixLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQy9CLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFeEIsU0FBUyxDQUF5RDtJQUVsRSxhQUFhLENBQXdDO0lBRXRFO1FBQ0ksNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQWdELENBQUM7UUFFL0Ysb0RBQW9EO1FBQ3BELE1BQU0sRUFBQyxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztRQUMxRCxNQUFNLFlBQVksR0FBeUQ7WUFDdkUsR0FBRyxNQUFNO1lBQ1QsSUFBSSxFQUFFO2dCQUNGLElBQUksRUFBRSxJQUFJO2dCQUNWLHdFQUF3RTtnQkFDeEUsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQzdCO1NBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBSS9CLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTlDLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQjtRQUNwRCxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFFBQVEsQ0FBQyxTQUFnRDtRQUM1RCxNQUFNLGdCQUFnQixHQUFHLFNBQVMsSUFBSSxJQUFJLElBQUksU0FBUyxLQUFLLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QjtRQUV4RixJQUFJLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ25CLHdCQUF3QjtZQUN4QixPQUFPO1FBQ1gsQ0FBQzthQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzNCLDRDQUE0QztZQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFrQixDQUFDLENBQUM7UUFDN0MsQ0FBQzthQUFNLElBQUksZ0JBQWdCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2pFLGlHQUFpRztZQUNqRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUF5QixDQUFDLENBQUM7UUFDdkUsQ0FBQzthQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixtSEFBbUg7WUFDbkgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNMLENBQUM7dUdBbEVRLDZCQUE2QjsyRkFBN0IsNkJBQTZCLHdFQUg1QixFQUFFOzsyRkFHSCw2QkFBNkI7a0JBSnpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLEVBQUU7b0JBQ1osVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnLCBNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXIsIFJvdXRlckxpbmt9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCB0eXBlIE5hdHVyYWxEaWFsb2dUcmlnZ2VyUm91dGluZ0RhdGE8VCwgRD4gPSB7XG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+O1xuICAgIGFmdGVyQ2xvc2VkUm91dGU/OiBSb3V0ZXJMaW5rWydyb3V0ZXJMaW5rJ107XG4gICAgZGlhbG9nQ29uZmlnOiBNYXREaWFsb2dDb25maWc8RD47XG59O1xuXG5leHBvcnQgdHlwZSBOYXR1cmFsRGlhbG9nVHJpZ2dlclByb3ZpZGVkRGF0YTxEPiA9IHtcbiAgICBkYXRhPzogUmVhZG9ubHk8RD4gfCBudWxsO1xuICAgIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVkdW5kYW50LXR5cGUtY29uc3RpdHVlbnRzXG5leHBvcnQgdHlwZSBOYXR1cmFsRGlhbG9nVHJpZ2dlclJlZGlyZWN0aW9uVmFsdWVzID0gUm91dGVyTGlua1sncm91dGVyTGluayddIHwgbnVsbCB8IHVuZGVmaW5lZCB8ICcnIHwgLTE7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRGlhbG9nVHJpZ2dlckNvbXBvbmVudDxULCBEPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxULCBOYXR1cmFsRGlhbG9nVHJpZ2dlclJlZGlyZWN0aW9uVmFsdWVzPjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJpZ2dlckNvbmZpZzogTmF0dXJhbERpYWxvZ1RyaWdnZXJSb3V0aW5nRGF0YTxULCBEPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8gRGF0YSBmcm9tIGFjdGl2YXRlZCByb3V0ZVxuICAgICAgICB0aGlzLnRyaWdnZXJDb25maWcgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEudHJpZ2dlciBhcyBOYXR1cmFsRGlhbG9nVHJpZ2dlclJvdXRpbmdEYXRhPFQsIEQ+O1xuXG4gICAgICAgIC8vIEdldCBkYXRhIHJlbGF0aXZlIHRvIGRpYWxvZyBzZXJ2aWNlIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgY29uc3Qge2RhdGEsIC4uLmNvbmZpZ30gPSB0aGlzLnRyaWdnZXJDb25maWcuZGlhbG9nQ29uZmlnO1xuICAgICAgICBjb25zdCBkaWFsb2dDb25maWc6IE1hdERpYWxvZ0NvbmZpZzxOYXR1cmFsRGlhbG9nVHJpZ2dlclByb3ZpZGVkRGF0YTxEPj4gPSB7XG4gICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgICAgICAgICAgICAvLyBTZXQgZGF0YSBhY2Nlc3NpYmxlIGludG8gY29tcG9uZW50IGluc3RhbnRpYXRlZCBieSB0aGUgZGlhbG9nIHNlcnZpY2VcbiAgICAgICAgICAgICAgICBhY3RpdmF0ZWRSb3V0ZTogdGhpcy5yb3V0ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuPFxuICAgICAgICAgICAgVCxcbiAgICAgICAgICAgIE5hdHVyYWxEaWFsb2dUcmlnZ2VyUHJvdmlkZWREYXRhPEQ+LFxuICAgICAgICAgICAgTmF0dXJhbERpYWxvZ1RyaWdnZXJSZWRpcmVjdGlvblZhbHVlc1xuICAgICAgICA+KHRoaXMudHJpZ2dlckNvbmZpZy5jb21wb25lbnQsIGRpYWxvZ0NvbmZpZyk7XG5cbiAgICAgICAgLy8gUmVkaXJlY3Qgb24gY2xvc2luZyAoaWYgYXBwbGljYWJsZSlcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuYmVmb3JlQ2xvc2VkKCkuc3Vic2NyaWJlKGV4aXRWYWx1ZSA9PiB0aGlzLnJlZGlyZWN0KGV4aXRWYWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aGVuIHJvdXRlciBsZWF2ZXMgcm91dGUsIGFuZCBzbyBvbiwgY2xvc2VzIHRoZSBtb2RhbCB3aXRoIHVuZGVmaW5lZCB2YWx1ZSB0byBwcmV2ZW50IGEgbmV3IHJlZGlyZWN0aW9uXG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKC0xKTsgLy8gLTEgPSBubyByZWRpcmVjdGlvblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVkaXJlY3RzIG9uIG1vZGFsIGNsb3NpbmcgdW5kZXIgZm9sbG93aW5nIHJ1bGVzL2NvbmRpdGlvbnNcbiAgICAgKlxuICAgICAqIElmIC0xIDogbm8gcmVkaXJlY3Rpb25cbiAgICAgKiBJZiB1bmRlZmluZWQsIG51bGwgb3IgZW1wdHkgc3RyaW5nIDogdXNlcyB0aGUgcm91dGVyIHByb3ZpZGVkIHJlZGlyZWN0aW9uIHJvdXRlIG9yIGZhbGxiYWNrcyBvbiBwYXJlbnQgcm91dGUgaWYgcm91dGVyIGRvbid0IHByb3ZpZGVcbiAgICAgKiBJZiBhIHZhbHVlIGlzIHByb3ZpZGVkLCBzaG91bGQgYmUgb2YgdHlwZSBhbnlbXSBhbmQgaXQncyB1c2VkIGZvciByZWRpcmVjdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVkaXJlY3QoZXhpdFZhbHVlOiBOYXR1cmFsRGlhbG9nVHJpZ2dlclJlZGlyZWN0aW9uVmFsdWVzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlzRW1wdHlFeGl0VmFsdWUgPSBleGl0VmFsdWUgPT0gbnVsbCB8fCBleGl0VmFsdWUgPT09ICcnOyAvLyB1bmRlZmluZWQsIG51bGwgb3IgJydcblxuICAgICAgICBpZiAoZXhpdFZhbHVlID09PSAtMSkge1xuICAgICAgICAgICAgLy8gaWYgLTEsIGRvbid0IHJlZGlyZWN0XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzRW1wdHlFeGl0VmFsdWUpIHtcbiAgICAgICAgICAgIC8vIElmIHZhbHVlIHByb3ZpZGVkLCByZWRpcmVjdCB0byB0aGF0IHJvdXRlXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShleGl0VmFsdWUgYXMgYW55W10pO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRW1wdHlFeGl0VmFsdWUgJiYgdGhpcy50cmlnZ2VyQ29uZmlnLmFmdGVyQ2xvc2VkUm91dGUpIHtcbiAgICAgICAgICAgIC8vIElmIHZhbHVlIGlzIG5vdCBwcm92aWRlZCAobnVsbCkgYW5kIHJvdXRlciBjb250ZXh0IHNwZWNpZmllZCBkZWZhdWx0IHJlZGlyZWN0aW9uIHJvdXRlLCB1c2UgaXRcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHRoaXMudHJpZ2dlckNvbmZpZy5hZnRlckNsb3NlZFJvdXRlIGFzIGFueVtdKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0VtcHR5RXhpdFZhbHVlKSB7XG4gICAgICAgICAgICAvLyBJZiBuZWl0aGVyIG9mIGNvbXBvbmVudCBvciByb3V0ZXIgcHJvdmlkZXMgcmVkaXJlY3Rpb24sIGdvIHRvIHBhcmVudCAoY2FyZSA6IHBhcmVudCBjYW4ndCBoYXZlIGVtcHR5IHBhdGggOiAnJyksXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4nXSwge3JlbGF0aXZlVG86IHRoaXMucm91dGUucGFyZW50fSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=