@o3r/components 11.6.0-prerelease.7 → 11.6.0-prerelease.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/builders/component-extractor/helpers/component/component-class.extractor.d.ts +3 -9
  2. package/builders/component-extractor/helpers/component/component-class.extractor.d.ts.map +1 -1
  3. package/builders/component-extractor/helpers/component/component-class.extractor.js +34 -37
  4. package/builders/component-extractor/helpers/component/component-config.extractor.d.ts +2 -15
  5. package/builders/component-extractor/helpers/component/component-config.extractor.d.ts.map +1 -1
  6. package/builders/component-extractor/helpers/component/component-config.extractor.js +24 -45
  7. package/builders/component-extractor/helpers/component/component.extractor.d.ts +2 -10
  8. package/builders/component-extractor/helpers/component/component.extractor.d.ts.map +1 -1
  9. package/builders/component-extractor/helpers/component/component.extractor.js +20 -25
  10. package/builders/component-extractor/helpers/component/component.parser.d.ts +2 -3
  11. package/builders/component-extractor/helpers/component/component.parser.d.ts.map +1 -1
  12. package/builders/component-extractor/helpers/component/component.parser.js +11 -14
  13. package/builders/component-extractor/index.d.ts.map +1 -1
  14. package/builders/component-extractor/index.js +25 -27
  15. package/builders/component-extractor/schema.d.ts.map +1 -1
  16. package/builders/metadata-check/helpers/config-metadata-comparison.helper.d.ts +1 -1
  17. package/builders/metadata-check/helpers/config-metadata-comparison.helper.d.ts.map +1 -1
  18. package/builders/metadata-check/helpers/config-metadata-comparison.helper.js +1 -1
  19. package/builders/metadata-check/index.d.ts.map +1 -1
  20. package/builders/metadata-check/schema.d.ts.map +1 -1
  21. package/core/component.output.d.ts.map +1 -1
  22. package/core/rendering/helpers.d.ts +0 -1
  23. package/core/rendering/helpers.d.ts.map +1 -1
  24. package/devkit/components-devkit.interface.d.ts.map +1 -1
  25. package/devkit/components-devtools.message.service.d.ts +2 -3
  26. package/devkit/components-devtools.message.service.d.ts.map +1 -1
  27. package/devkit/components-devtools.module.d.ts.map +1 -1
  28. package/devkit/components-devtools.token.d.ts.map +1 -1
  29. package/devkit/inspector/ng/ng.d.ts +3 -1
  30. package/devkit/inspector/ng/ng.d.ts.map +1 -1
  31. package/devkit/inspector/otter-inspector.helpers.d.ts.map +1 -1
  32. package/devkit/inspector/otter-inspector.service.d.ts.map +1 -1
  33. package/esm2022/core/component.output.mjs +1 -1
  34. package/esm2022/core/rendering/helpers.mjs +3 -4
  35. package/esm2022/devkit/components-devkit.interface.mjs +7 -7
  36. package/esm2022/devkit/components-devtools.message.service.mjs +12 -13
  37. package/esm2022/devkit/components-devtools.module.mjs +6 -6
  38. package/esm2022/devkit/components-devtools.token.mjs +2 -2
  39. package/esm2022/devkit/index.mjs +1 -1
  40. package/esm2022/devkit/inspector/index.mjs +1 -1
  41. package/esm2022/devkit/inspector/ng/ng.mjs +1 -1
  42. package/esm2022/devkit/inspector/otter-inspector.helpers.mjs +8 -8
  43. package/esm2022/devkit/inspector/otter-inspector.service.mjs +8 -8
  44. package/esm2022/rules-engine/placeholder.action-handler.mjs +20 -18
  45. package/esm2022/rules-engine/placeholder.interfaces.mjs +1 -1
  46. package/esm2022/rules-engine/placeholder.rules-engine.effect.mjs +25 -22
  47. package/esm2022/rules-engine/placeholder.rules-engine.module.mjs +6 -6
  48. package/esm2022/rules-engine/public_api.mjs +2 -2
  49. package/esm2022/stores/index.mjs +2 -2
  50. package/esm2022/stores/placeholder-request/index.mjs +1 -1
  51. package/esm2022/stores/placeholder-request/placeholder-request.actions.mjs +3 -3
  52. package/esm2022/stores/placeholder-request/placeholder-request.module.mjs +5 -5
  53. package/esm2022/stores/placeholder-request/placeholder-request.reducer.mjs +4 -4
  54. package/esm2022/stores/placeholder-request/placeholder-request.selectors.mjs +4 -4
  55. package/esm2022/stores/placeholder-request/placeholder-request.state.mjs +1 -1
  56. package/esm2022/stores/placeholder-request/placeholder-request.sync.mjs +3 -3
  57. package/esm2022/stores/placeholder-template/index.mjs +1 -1
  58. package/esm2022/stores/placeholder-template/placeholder-template.actions.mjs +2 -2
  59. package/esm2022/stores/placeholder-template/placeholder-template.module.mjs +5 -5
  60. package/esm2022/stores/placeholder-template/placeholder-template.reducer.mjs +3 -3
  61. package/esm2022/stores/placeholder-template/placeholder-template.selectors.mjs +8 -8
  62. package/esm2022/stores/placeholder-template/placeholder-template.state.mjs +1 -1
  63. package/esm2022/stores/placeholder-template/placeholder-template.sync.mjs +2 -2
  64. package/esm2022/tools/component-replacement/c11n.directive.mjs +6 -5
  65. package/esm2022/tools/component-replacement/c11n.helpers.mjs +1 -1
  66. package/esm2022/tools/component-replacement/c11n.mock.module.mjs +5 -5
  67. package/esm2022/tools/component-replacement/c11n.module.mjs +6 -5
  68. package/esm2022/tools/component-replacement/c11n.service.mjs +4 -4
  69. package/esm2022/tools/component-replacement/c11n.token.mjs +2 -2
  70. package/esm2022/tools/component-replacement/index.mjs +3 -3
  71. package/esm2022/tools/pipes/capitalize/capitalize.module.mjs +3 -3
  72. package/esm2022/tools/pipes/capitalize/capitalize.pipe.mjs +2 -2
  73. package/esm2022/tools/pipes/duration/duration.module.mjs +3 -3
  74. package/esm2022/tools/pipes/duration/duration.pipe.mjs +4 -3
  75. package/esm2022/tools/pipes/keep-white-space/keep-white-space.module.mjs +3 -3
  76. package/esm2022/tools/pipes/keep-white-space/keep-white-space.pipe.mjs +2 -2
  77. package/esm2022/tools/pipes/replace-with-bold/replace-with-bold.module.mjs +3 -3
  78. package/esm2022/tools/pipes/replace-with-bold/replace-with-bold.pipe.mjs +3 -3
  79. package/esm2022/tools/placeholder/placeholder.component.mjs +15 -19
  80. package/esm2022/tools/placeholder/placeholder.interface.mjs +1 -1
  81. package/esm2022/tools/placeholder/placeholder.module.mjs +7 -7
  82. package/fesm2022/o3r-components-rules-engine.mjs +31 -26
  83. package/fesm2022/o3r-components-rules-engine.mjs.map +1 -1
  84. package/fesm2022/o3r-components.mjs +173 -176
  85. package/fesm2022/o3r-components.mjs.map +1 -1
  86. package/package.json +11 -11
  87. package/rules-engine/placeholder.action-handler.d.ts +1 -1
  88. package/rules-engine/placeholder.action-handler.d.ts.map +1 -1
  89. package/rules-engine/placeholder.interfaces.d.ts.map +1 -1
  90. package/rules-engine/placeholder.rules-engine.effect.d.ts +2 -2
  91. package/rules-engine/placeholder.rules-engine.effect.d.ts.map +1 -1
  92. package/rules-engine/placeholder.rules-engine.module.d.ts.map +1 -1
  93. package/rules-engine/public_api.d.ts +1 -1
  94. package/rules-engine/public_api.d.ts.map +1 -1
  95. package/schematics/cms-adapter/index.d.ts.map +1 -1
  96. package/schematics/cms-adapter/index.js +1 -1
  97. package/schematics/ng-add/helpers/devtools-registration.d.ts +0 -2
  98. package/schematics/ng-add/helpers/devtools-registration.d.ts.map +1 -1
  99. package/schematics/ng-add/helpers/devtools-registration.js +1 -3
  100. package/schematics/ng-add/index.d.ts.map +1 -1
  101. package/schematics/ng-add/index.js +2 -3
  102. package/schematics/ng-add/schema.d.ts.map +1 -1
  103. package/schematics/ng-update/v10-0/index.d.ts.map +1 -1
  104. package/schematics/ng-update/v10-0/index.js +2 -1
  105. package/stores/index.d.ts +1 -1
  106. package/stores/index.d.ts.map +1 -1
  107. package/stores/placeholder-request/placeholder-request.actions.d.ts.map +1 -1
  108. package/stores/placeholder-request/placeholder-request.module.d.ts.map +1 -1
  109. package/stores/placeholder-request/placeholder-request.reducer.d.ts.map +1 -1
  110. package/stores/placeholder-request/placeholder-request.selectors.d.ts.map +1 -1
  111. package/stores/placeholder-request/placeholder-request.state.d.ts.map +1 -1
  112. package/stores/placeholder-request/placeholder-request.sync.d.ts.map +1 -1
  113. package/stores/placeholder-template/placeholder-template.actions.d.ts.map +1 -1
  114. package/stores/placeholder-template/placeholder-template.module.d.ts.map +1 -1
  115. package/stores/placeholder-template/placeholder-template.reducer.d.ts.map +1 -1
  116. package/stores/placeholder-template/placeholder-template.selectors.d.ts.map +1 -1
  117. package/stores/placeholder-template/placeholder-template.state.d.ts.map +1 -1
  118. package/stores/placeholder-template/placeholder-template.sync.d.ts +1 -1
  119. package/stores/placeholder-template/placeholder-template.sync.d.ts.map +1 -1
  120. package/tools/component-replacement/c11n.directive.d.ts.map +1 -1
  121. package/tools/component-replacement/c11n.helpers.d.ts.map +1 -1
  122. package/tools/component-replacement/c11n.mock.module.d.ts.map +1 -1
  123. package/tools/component-replacement/c11n.module.d.ts +1 -0
  124. package/tools/component-replacement/c11n.module.d.ts.map +1 -1
  125. package/tools/component-replacement/c11n.service.d.ts.map +1 -1
  126. package/tools/component-replacement/c11n.token.d.ts.map +1 -1
  127. package/tools/component-replacement/index.d.ts +2 -2
  128. package/tools/component-replacement/index.d.ts.map +1 -1
  129. package/tools/pipes/capitalize/capitalize.module.d.ts.map +1 -1
  130. package/tools/pipes/capitalize/capitalize.pipe.d.ts.map +1 -1
  131. package/tools/pipes/duration/duration.module.d.ts.map +1 -1
  132. package/tools/pipes/duration/duration.pipe.d.ts +1 -0
  133. package/tools/pipes/duration/duration.pipe.d.ts.map +1 -1
  134. package/tools/pipes/keep-white-space/keep-white-space.module.d.ts.map +1 -1
  135. package/tools/pipes/keep-white-space/keep-white-space.pipe.d.ts.map +1 -1
  136. package/tools/pipes/replace-with-bold/replace-with-bold.module.d.ts.map +1 -1
  137. package/tools/pipes/replace-with-bold/replace-with-bold.pipe.d.ts.map +1 -1
  138. package/tools/placeholder/placeholder.component.d.ts.map +1 -1
  139. package/tools/placeholder/placeholder.interface.d.ts.map +1 -1
  140. package/tools/placeholder/placeholder.module.d.ts.map +1 -1
@@ -1,5 +1,5 @@
1
- import { NgModule } from '@angular/core';
2
- import { KeepWhiteSpacePipe } from './keep-white-space.pipe';
1
+ import { NgModule, } from '@angular/core';
2
+ import { KeepWhiteSpacePipe, } from './keep-white-space.pipe';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * @deprecated please use O3rKeepWhiteSpacePipe, will be removed in v12.
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
16
16
  exports: [KeepWhiteSpacePipe]
17
17
  }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VlcC13aGl0ZS1zcGFjZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdG9vbHMvcGlwZXMva2VlcC13aGl0ZS1zcGFjZS9rZWVwLXdoaXRlLXNwYWNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDOztBQUUzRDs7R0FFRztBQUtILE1BQU0sT0FBTyx3QkFBd0I7a0lBQXhCLHdCQUF3QjttSUFBeEIsd0JBQXdCLGlCQUhwQixrQkFBa0IsYUFDdkIsa0JBQWtCO21JQUVqQix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBSnBDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQ2xDLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtLZWVwV2hpdGVTcGFjZVBpcGV9IGZyb20gJy4va2VlcC13aGl0ZS1zcGFjZS5waXBlJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBwbGVhc2UgdXNlIE8zcktlZXBXaGl0ZVNwYWNlUGlwZSwgd2lsbCBiZSByZW1vdmVkIGluIHYxMi5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbS2VlcFdoaXRlU3BhY2VQaXBlXSxcbiAgZXhwb3J0czogW0tlZXBXaGl0ZVNwYWNlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgS2VlcFdoaXRlU3BhY2VQaXBlTW9kdWxlIHt9XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VlcC13aGl0ZS1zcGFjZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdG9vbHMvcGlwZXMva2VlcC13aGl0ZS1zcGFjZS9rZWVwLXdoaXRlLXNwYWNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsR0FDbkIsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFakM7O0dBRUc7QUFLSCxNQUFNLE9BQU8sd0JBQXdCO2tJQUF4Qix3QkFBd0I7bUlBQXhCLHdCQUF3QixpQkFIcEIsa0JBQWtCLGFBQ3ZCLGtCQUFrQjttSUFFakIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQUpwQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBOZ01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBLZWVwV2hpdGVTcGFjZVBpcGUsXG59IGZyb20gJy4va2VlcC13aGl0ZS1zcGFjZS5waXBlJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBwbGVhc2UgdXNlIE8zcktlZXBXaGl0ZVNwYWNlUGlwZSwgd2lsbCBiZSByZW1vdmVkIGluIHYxMi5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbS2VlcFdoaXRlU3BhY2VQaXBlXSxcbiAgZXhwb3J0czogW0tlZXBXaGl0ZVNwYWNlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgS2VlcFdoaXRlU3BhY2VQaXBlTW9kdWxlIHt9XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Pipe } from '@angular/core';
1
+ import { Pipe, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class O3rKeepWhiteSpacePipe {
4
4
  transform(value) {
@@ -26,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
26
26
  name: 'keepWhiteSpace'
27
27
  }]
28
28
  }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VlcC13aGl0ZS1zcGFjZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Rvb2xzL3BpcGVzL2tlZXAtd2hpdGUtc3BhY2Uva2VlcC13aGl0ZS1zcGFjZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUtsRCxNQUFNLE9BQU8scUJBQXFCO0lBQ3pCLFNBQVMsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztrSUFIVSxxQkFBcUI7Z0lBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFIakMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsbUJBQW1CO2lCQUMxQjs7QUFPRDs7R0FFRztBQUlILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxxQkFBcUI7a0lBQWhELGtCQUFrQjtnSUFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUg5QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxnQkFBZ0I7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnbzNyS2VlcFdoaXRlU3BhY2UnXG59KVxuZXhwb3J0IGNsYXNzIE8zcktlZXBXaGl0ZVNwYWNlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwdWJsaWMgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9cXHMvZywgJyZuYnNwOycpO1xuICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSBPM3JLZWVwV2hpdGVTcGFjZVBpcGUsIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MTIuXG4gKi9cbkBQaXBlKHtcbiAgbmFtZTogJ2tlZXBXaGl0ZVNwYWNlJ1xufSlcbmV4cG9ydCBjbGFzcyBLZWVwV2hpdGVTcGFjZVBpcGUgZXh0ZW5kcyBPM3JLZWVwV2hpdGVTcGFjZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHt9XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VlcC13aGl0ZS1zcGFjZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Rvb2xzL3BpcGVzL2tlZXAtd2hpdGUtc3BhY2Uva2VlcC13aGl0ZS1zcGFjZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxJQUFJLEdBRUwsTUFBTSxlQUFlLENBQUM7O0FBS3ZCLE1BQU0sT0FBTyxxQkFBcUI7SUFDekIsU0FBUyxDQUFDLEtBQWE7UUFDNUIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDO2tJQUhVLHFCQUFxQjtnSUFBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUhqQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxtQkFBbUI7aUJBQzFCOztBQU9EOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHFCQUFxQjtrSUFBaEQsa0JBQWtCO2dJQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBSDlCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGdCQUFnQjtpQkFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBQaXBlLFxuICBQaXBlVHJhbnNmb3JtLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnbzNyS2VlcFdoaXRlU3BhY2UnXG59KVxuZXhwb3J0IGNsYXNzIE8zcktlZXBXaGl0ZVNwYWNlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwdWJsaWMgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9cXHMvZywgJyZuYnNwOycpO1xuICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSBPM3JLZWVwV2hpdGVTcGFjZVBpcGUsIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MTIuXG4gKi9cbkBQaXBlKHtcbiAgbmFtZTogJ2tlZXBXaGl0ZVNwYWNlJ1xufSlcbmV4cG9ydCBjbGFzcyBLZWVwV2hpdGVTcGFjZVBpcGUgZXh0ZW5kcyBPM3JLZWVwV2hpdGVTcGFjZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHt9XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { NgModule } from '@angular/core';
2
- import { ReplaceWithBoldPipe } from './replace-with-bold.pipe';
1
+ import { NgModule, } from '@angular/core';
2
+ import { ReplaceWithBoldPipe, } from './replace-with-bold.pipe';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * @deprecated please use O3rReplaceWithBoldPipe, will be removed in v12.
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
16
16
  exports: [ReplaceWithBoldPipe]
17
17
  }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS13aXRoLWJvbGQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Rvb2xzL3BpcGVzL3JlcGxhY2Utd2l0aC1ib2xkL3JlcGxhY2Utd2l0aC1ib2xkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDOztBQUU3RDs7R0FFRztBQUtILE1BQU0sT0FBTyx5QkFBeUI7a0lBQXpCLHlCQUF5QjttSUFBekIseUJBQXlCLGlCQUhyQixtQkFBbUIsYUFDeEIsbUJBQW1CO21JQUVsQix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBSnJDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSZXBsYWNlV2l0aEJvbGRQaXBlfSBmcm9tICcuL3JlcGxhY2Utd2l0aC1ib2xkLnBpcGUnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIHBsZWFzZSB1c2UgTzNyUmVwbGFjZVdpdGhCb2xkUGlwZSwgd2lsbCBiZSByZW1vdmVkIGluIHYxMi5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUmVwbGFjZVdpdGhCb2xkUGlwZV0sXG4gIGV4cG9ydHM6IFtSZXBsYWNlV2l0aEJvbGRQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBSZXBsYWNlV2l0aEJvbGRQaXBlTW9kdWxlIHt9XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS13aXRoLWJvbGQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Rvb2xzL3BpcGVzL3JlcGxhY2Utd2l0aC1ib2xkL3JlcGxhY2Utd2l0aC1ib2xkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxtQkFBbUIsR0FDcEIsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFbEM7O0dBRUc7QUFLSCxNQUFNLE9BQU8seUJBQXlCO2tJQUF6Qix5QkFBeUI7bUlBQXpCLHlCQUF5QixpQkFIckIsbUJBQW1CLGFBQ3hCLG1CQUFtQjttSUFFbEIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQUpyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBOZ01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBSZXBsYWNlV2l0aEJvbGRQaXBlLFxufSBmcm9tICcuL3JlcGxhY2Utd2l0aC1ib2xkLnBpcGUnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIHBsZWFzZSB1c2UgTzNyUmVwbGFjZVdpdGhCb2xkUGlwZSwgd2lsbCBiZSByZW1vdmVkIGluIHYxMi5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUmVwbGFjZVdpdGhCb2xkUGlwZV0sXG4gIGV4cG9ydHM6IFtSZXBsYWNlV2l0aEJvbGRQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBSZXBsYWNlV2l0aEJvbGRQaXBlTW9kdWxlIHt9XG4iXX0=
@@ -1,6 +1,6 @@
1
- import { Pipe } from '@angular/core';
1
+ import { Pipe, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- const escapeRegExp = (str) => str.replace(/[-[\]/{}()*+?.\\^$|]/g, '\\$&');
3
+ const escapeRegExp = (str) => str.replace(/[$()*+./?[\\\]^{|}-]/g, '\\$&');
4
4
  export class O3rReplaceWithBoldPipe {
5
5
  transform(value, inputText) {
6
6
  if (inputText) {
@@ -37,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
37
37
  name: 'replaceWithBold'
38
38
  }]
39
39
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS13aXRoLWJvbGQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy90b29scy9waXBlcy9yZXBsYWNlLXdpdGgtYm9sZC9yZXBsYWNlLXdpdGgtYm9sZC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUVsRCxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQU1uRixNQUFNLE9BQU8sc0JBQXNCO0lBQzFCLFNBQVMsQ0FBQyxLQUFhLEVBQUUsU0FBaUI7UUFDL0MsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLENBQUM7UUFDdkUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO2tJQVJVLHNCQUFzQjtnSUFBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQUpsQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxvQkFBb0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7QUFZRDs7R0FFRztBQUlILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxzQkFBc0I7SUFDdEQsWUFBWSxDQUFDLEdBQVc7UUFDN0IsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztrSUFIVSxtQkFBbUI7Z0lBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFIL0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsaUJBQWlCO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IGVzY2FwZVJlZ0V4cCA9IChzdHI6IHN0cmluZykgPT4gc3RyLnJlcGxhY2UoL1stW1xcXS97fSgpKis/LlxcXFxeJHxdL2csICdcXFxcJCYnKTtcblxuQFBpcGUoe1xuICBuYW1lOiAnbzNyUmVwbGFjZVdpdGhCb2xkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBPM3JSZXBsYWNlV2l0aEJvbGRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgaW5wdXRUZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChpbnB1dFRleHQpIHtcbiAgICAgIGNvbnN0IHJlZ2V4cCA9IG5ldyBSZWdFeHAoZXNjYXBlUmVnRXhwKGlucHV0VGV4dC50cmltKCkpLCAnZ2knKTtcbiAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKHJlZ2V4cCwgKG1hdGNoKSA9PiBgPHN0cm9uZz4ke21hdGNofTwvc3Ryb25nPmApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSBPM3JSZXBsYWNlV2l0aEJvbGRQaXBlLCB3aWxsIGJlIHJlbW92ZWQgaW4gdjEyLlxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICdyZXBsYWNlV2l0aEJvbGQnXG59KVxuZXhwb3J0IGNsYXNzIFJlcGxhY2VXaXRoQm9sZFBpcGUgZXh0ZW5kcyBPM3JSZXBsYWNlV2l0aEJvbGRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHB1YmxpYyBlc2NhcGVSZWdFeHAoc3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZXNjYXBlUmVnRXhwKHN0cik7XG4gIH1cbn1cbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS13aXRoLWJvbGQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy90b29scy9waXBlcy9yZXBsYWNlLXdpdGgtYm9sZC9yZXBsYWNlLXdpdGgtYm9sZC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxJQUFJLEdBRUwsTUFBTSxlQUFlLENBQUM7O0FBRXZCLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBTW5GLE1BQU0sT0FBTyxzQkFBc0I7SUFDMUIsU0FBUyxDQUFDLEtBQWEsRUFBRSxTQUFpQjtRQUMvQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2hFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsQ0FBQztRQUN2RSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7a0lBUlUsc0JBQXNCO2dJQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSmxDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLG9CQUFvQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztBQVlEOztHQUVHO0FBSUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHNCQUFzQjtJQUN0RCxZQUFZLENBQUMsR0FBVztRQUM3QixPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDO2tJQUhVLG1CQUFtQjtnSUFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUgvQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxpQkFBaUI7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUGlwZSxcbiAgUGlwZVRyYW5zZm9ybSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IGVzY2FwZVJlZ0V4cCA9IChzdHI6IHN0cmluZykgPT4gc3RyLnJlcGxhY2UoL1skKCkqKy4vP1tcXFxcXFxdXnt8fS1dL2csICdcXFxcJCYnKTtcblxuQFBpcGUoe1xuICBuYW1lOiAnbzNyUmVwbGFjZVdpdGhCb2xkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBPM3JSZXBsYWNlV2l0aEJvbGRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgaW5wdXRUZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChpbnB1dFRleHQpIHtcbiAgICAgIGNvbnN0IHJlZ2V4cCA9IG5ldyBSZWdFeHAoZXNjYXBlUmVnRXhwKGlucHV0VGV4dC50cmltKCkpLCAnZ2knKTtcbiAgICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKHJlZ2V4cCwgKG1hdGNoKSA9PiBgPHN0cm9uZz4ke21hdGNofTwvc3Ryb25nPmApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSBPM3JSZXBsYWNlV2l0aEJvbGRQaXBlLCB3aWxsIGJlIHJlbW92ZWQgaW4gdjEyLlxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICdyZXBsYWNlV2l0aEJvbGQnXG59KVxuZXhwb3J0IGNsYXNzIFJlcGxhY2VXaXRoQm9sZFBpcGUgZXh0ZW5kcyBPM3JSZXBsYWNlV2l0aEJvbGRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHB1YmxpYyBlc2NhcGVSZWdFeHAoc3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZXNjYXBlUmVnRXhwKHN0cik7XG4gIH1cbn1cbiJdfQ==
@@ -1,9 +1,9 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation } from '@angular/core';
2
- import { Store } from '@ngrx/store';
3
- import { sendOtterMessage } from '@o3r/core';
4
- import { BehaviorSubject, ReplaySubject, sample, Subject, Subscription } from 'rxjs';
5
- import { distinctUntilChanged, filter, map, switchMap } from 'rxjs/operators';
6
- import { selectPlaceholderTemplateMode, selectSortedTemplates } from '../../stores/placeholder-template';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation, } from '@angular/core';
2
+ import { Store, } from '@ngrx/store';
3
+ import { sendOtterMessage, } from '@o3r/core';
4
+ import { BehaviorSubject, ReplaySubject, sample, Subject, Subscription, } from 'rxjs';
5
+ import { distinctUntilChanged, filter, map, switchMap, } from 'rxjs/operators';
6
+ import { selectPlaceholderTemplateMode, selectSortedTemplates, } from '../../stores/placeholder-template';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@ngrx/store";
9
9
  import * as i2 from "@angular/common";
@@ -33,21 +33,18 @@ export class PlaceholderComponent {
33
33
  id,
34
34
  orderedTemplates: placeholders?.orderedTemplates,
35
35
  isPending: placeholders?.isPending
36
- })), distinctUntilChanged((previous, current) => previous.id === current.id &&
37
- previous.isPending === current.isPending &&
38
- previous.orderedTemplates?.map(placeholder => placeholder.renderedTemplate).join('') ===
39
- current.orderedTemplates?.map(placeholder => placeholder.renderedTemplate).join(''))))).subscribe(({ id, orderedTemplates, isPending }) => {
36
+ })), distinctUntilChanged((previous, current) => previous.id === current.id
37
+ && previous.isPending === current.isPending
38
+ && previous.orderedTemplates?.map((placeholder) => placeholder.renderedTemplate).join('')
39
+ === current.orderedTemplates?.map((placeholder) => placeholder.renderedTemplate).join(''))))).subscribe(({ id, orderedTemplates, isPending }) => {
40
40
  this.isPending = isPending;
41
- if (!orderedTemplates?.length) {
42
- this.template = undefined;
43
- }
44
- else {
41
+ this.template = orderedTemplates?.length
45
42
  // Concatenates the list of templates
46
- this.template = orderedTemplates.map(placeholder => placeholder.renderedTemplate).join('');
47
- }
43
+ ? orderedTemplates.map((placeholder) => placeholder.renderedTemplate).join('')
44
+ : undefined;
48
45
  if (this.isPending === false) {
49
46
  this.messages$.next({
50
- templateIds: !this.isPending ? (orderedTemplates || []).map(placeholder => placeholder.resolvedUrl) : [],
47
+ templateIds: this.isPending ? [] : (orderedTemplates || []).map((placeholder) => placeholder.resolvedUrl),
51
48
  placeholderId: id
52
49
  });
53
50
  }
@@ -77,10 +74,9 @@ export class PlaceholderComponent {
77
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PlaceholderComponent, decorators: [{
78
75
  type: Component,
79
76
  args: [{ selector: 'o3r-placeholder', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
80
- // eslint-disable-next-line @typescript-eslint/naming-convention
81
77
  '[class.debug]': `mode() === 'debug'`
82
78
  }, template: "<ng-template #projection>\n <ng-content></ng-content>\n</ng-template>\n@switch (mode()) {\n @case ('debug') {\n <span class=\"placehoder-id\">{{ id$ | async }}</span>\n }\n @case ('pending') {\n <ng-container *ngTemplateOutlet=\"projection\" />\n }\n @case ('normal') {\n @if (isPending) {\n <ng-container *ngTemplateOutlet=\"projection\" />\n } @else {\n <div [innerHTML]=\"template\"></div>\n }\n }\n}\n", styles: [".debug{padding:15px;text-align:center;border:2px dashed var(--o3r-placeholder-debug-color, #a65c27);border-radius:10px;width:100%;background:var(--o3r-placeholder-background, #fff2ea);border-style:dashed;color:var(--o3r-placeholder-debug-color, #a65c27);font-size:larger}\n"] }]
83
79
  }], ctorParameters: () => [{ type: i1.Store }, { type: i0.ChangeDetectorRef }], propDecorators: { id: [{
84
80
  type: Input
85
81
  }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xzL3BsYWNlaG9sZGVyL3BsYWNlaG9sZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90b29scy9wbGFjZWhvbGRlci9wbGFjZWhvbGRlci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEVBSUwsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzNDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25GLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBaUQsNkJBQTZCLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7OztBQUd2Sjs7Ozs7R0FLRztBQVlILE1BQU0sT0FBTyxvQkFBb0I7SUFrQi9CLHdCQUF3QjtJQUN4QixJQUNXLEVBQUUsQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUE2QixLQUFzQyxFQUFtQixFQUFxQjtRQUE5RSxVQUFLLEdBQUwsS0FBSyxDQUFpQztRQUFtQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQXRCMUYsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5DLFFBQUcsR0FBRyxJQUFJLGVBQWUsQ0FB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TyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUNsRyxDQUFDLFNBQVMsQ0FBQztZQUNWLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQ2IsZ0JBQWdCLENBQWtDLDRCQUE0QixFQUFFLElBQUksRUFBRSxLQUFLLENBQUM7WUFDOUYsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUNiLGdCQUFnQixDQUFrQyw0QkFBNEIsRUFBRTtnQkFDOUUsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSztnQkFDN0IsV0FBVyxFQUFFLEVBQUU7YUFDaEIsRUFBRSxLQUFLLENBQUM7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLDJEQUEyRDtRQUMzRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxrQkFBa0I7SUFDWCxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7a0lBMUZVLG9CQUFvQjtzSEFBcEIsb0JBQW9CLDRJQ25DakMsdWJBa0JBOzs0RkRpQmEsb0JBQW9CO2tCQVhoQyxTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLGdFQUFnRTt3QkFDaEUsZUFBZSxFQUFFLG9CQUFvQjtxQkFDdEM7MEdBc0JVLEVBQUU7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIHR5cGUgU2lnbmFsLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3RvcmV9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7c2VuZE90dGVyTWVzc2FnZX0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0LCBzYW1wbGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge3R5cGUgUGxhY2Vob2xkZXJNb2RlLCBQbGFjZWhvbGRlclRlbXBsYXRlU3RvcmUsIHNlbGVjdFBsYWNlaG9sZGVyVGVtcGxhdGVNb2RlLCBzZWxlY3RTb3J0ZWRUZW1wbGF0ZXN9IGZyb20gJy4uLy4uL3N0b3Jlcy9wbGFjZWhvbGRlci10ZW1wbGF0ZSc7XG5pbXBvcnQge1BsYWNlaG9sZGVyTG9hZGluZ1N0YXR1cywgUGxhY2Vob2xkZXJMb2FkaW5nU3RhdHVzTWVzc2FnZX0gZnJvbSAnLi9wbGFjZWhvbGRlci5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFBsYWNlaG9sZGVyIGNvbXBvbmVudCB0aGF0IGlzIGJpbmQgdG8gdGhlIFBsYWNlaG9sZGVyVGVtcGxhdGVTdG9yZSB0byBkaXNwbGF5IGEgdGVtcGxhdGUgYmFzZWQgb24gaXRzIElEXG4gKiBBIGxvYWRpbmcgaW5kaWNhdGlvbiBjYW4gYmUgcHJvdmlkZWQgdmlhIHByb2plY3Rpb25cbiAqIEBleGFtcGxlXG4gKiAgPG8zci1wbGFjZWhvbGRlciBpZD1cIm15LXRlbXBsYXRlLWlkXCI+SXMgbG9hZGluZyAuLi48L28zci1wbGFjZWhvbGRlcj5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbzNyLXBsYWNlaG9sZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BsYWNlaG9sZGVyLnRlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybDogJy4vcGxhY2Vob2xkZXIuc3R5bGUuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdbY2xhc3MuZGVidWddJzogYG1vZGUoKSA9PT0gJ2RlYnVnJ2BcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBQbGFjZWhvbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhZnRlclZpZXdJbml0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlcyQgPSBuZXcgUmVwbGF5U3ViamVjdDxQbGFjZWhvbGRlckxvYWRpbmdTdGF0dXM+KDEpO1xuXG4gIC8qKiBEZXRlcm1pbmUgaWYgdGhlIHBsYWNlaG9sZGVyIGNvbnRlbnQgaXMgcGVuZGluZyAqL1xuICBwdWJsaWMgaXNQZW5kaW5nPzogYm9vbGVhbjtcblxuICAvKiogR2VuZXJhdGVkIEhUTUwgdGVtcGxhdGUgKi9cbiAgcHVibGljIHRlbXBsYXRlPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBtb2RlOiBTaWduYWw8UGxhY2Vob2xkZXJNb2RlPjtcblxuICAvKiogdGVtcGxhdGUgaWRlbnRpZnkgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pZCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0b3JlOiBTdG9yZTxQbGFjZWhvbGRlclRlbXBsYXRlU3RvcmU+LCBwcml2YXRlIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMubW9kZSA9IHRoaXMuc3RvcmUuc2VsZWN0U2lnbmFsKHNlbGVjdFBsYWNlaG9sZGVyVGVtcGxhdGVNb2RlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5pZCQucGlwZShcbiAgICAgICAgZmlsdGVyKChpZCk6IGlkIGlzIHN0cmluZyA9PiAhIWlkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgc3dpdGNoTWFwKChpZDogc3RyaW5nKSA9PlxuICAgICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KHNlbGVjdFNvcnRlZFRlbXBsYXRlcyhpZCkpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHBsYWNlaG9sZGVycykgPT4gKHtcbiAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgIG9yZGVyZWRUZW1wbGF0ZXM6IHBsYWNlaG9sZGVycz8ub3JkZXJlZFRlbXBsYXRlcyxcbiAgICAgICAgICAgICAgaXNQZW5kaW5nOiBwbGFjZWhvbGRlcnM/LmlzUGVuZGluZ1xuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXZpb3VzLCBjdXJyZW50KSA9PlxuICAgICAgICAgICAgICBwcmV2aW91cy5pZCA9PT0gY3VycmVudC5pZCAmJlxuICAgICAgICAgICAgICBwcmV2aW91cy5pc1BlbmRpbmcgPT09IGN1cnJlbnQuaXNQZW5kaW5nICYmXG4gICAgICAgICAgICAgIHByZXZpb3VzLm9yZGVyZWRUZW1wbGF0ZXM/Lm1hcChwbGFjZWhvbGRlciA9PiBwbGFjZWhvbGRlci5yZW5kZXJlZFRlbXBsYXRlKS5qb2luKCcnKSA9PT1cbiAgICAgICAgICAgICAgY3VycmVudC5vcmRlcmVkVGVtcGxhdGVzPy5tYXAocGxhY2Vob2xkZXIgPT4gcGxhY2Vob2xkZXIucmVuZGVyZWRUZW1wbGF0ZSkuam9pbignJylcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICkuc3Vic2NyaWJlKCh7aWQsIG9yZGVyZWRUZW1wbGF0ZXMsIGlzUGVuZGluZ30pID0+IHtcbiAgICAgICAgdGhpcy5pc1BlbmRpbmcgPSBpc1BlbmRpbmc7XG4gICAgICAgIGlmICghb3JkZXJlZFRlbXBsYXRlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy50ZW1wbGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBDb25jYXRlbmF0ZXMgdGhlIGxpc3Qgb2YgdGVtcGxhdGVzXG4gICAgICAgICAgdGhpcy50ZW1wbGF0ZSA9IG9yZGVyZWRUZW1wbGF0ZXMubWFwKHBsYWNlaG9sZGVyID0+IHBsYWNlaG9sZGVyLnJlbmRlcmVkVGVtcGxhdGUpLmpvaW4oJycpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzUGVuZGluZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VzJC5uZXh0KHtcbiAgICAgICAgICAgIHRlbXBsYXRlSWRzOiAhdGhpcy5pc1BlbmRpbmcgPyAob3JkZXJlZFRlbXBsYXRlcyB8fCBbXSkubWFwKHBsYWNlaG9sZGVyID0+IHBsYWNlaG9sZGVyLnJlc29sdmVkVXJsKSA6IFtdLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXJJZDogaWRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMubWVzc2FnZXMkLnBpcGUoXG4gICAgICBzYW1wbGUodGhpcy5hZnRlclZpZXdJbml0JCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXMsIGN1cnJlbnQpID0+IEpTT04uc3RyaW5naWZ5KGN1cnJlbnQpID09PSBKU09OLnN0cmluZ2lmeShwcmV2aW91cykpXG4gICAgKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGEpID0+XG4gICAgICAgIHNlbmRPdHRlck1lc3NhZ2U8UGxhY2Vob2xkZXJMb2FkaW5nU3RhdHVzTWVzc2FnZT4oJ3BsYWNlaG9sZGVyLWxvYWRpbmctc3RhdHVzJywgZGF0YSwgZmFsc2UpLFxuICAgICAgY29tcGxldGU6ICgpID0+XG4gICAgICAgIHNlbmRPdHRlck1lc3NhZ2U8UGxhY2Vob2xkZXJMb2FkaW5nU3RhdHVzTWVzc2FnZT4oJ3BsYWNlaG9sZGVyLWxvYWRpbmctc3RhdHVzJywge1xuICAgICAgICAgIHBsYWNlaG9sZGVySWQ6IHRoaXMuaWQkLnZhbHVlLFxuICAgICAgICAgIHRlbXBsYXRlSWRzOiBbXVxuICAgICAgICB9LCBmYWxzZSlcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgLy8gTWFrZSBzdXJlIHRoZSB2aWV3IGlzIHJlbmRlcmVkIGJlZm9yZSBwb3N0aW5nIHRoZSBzdGF0dXNcbiAgICB0aGlzLmFmdGVyVmlld0luaXQkLm5leHQoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5tZXNzYWdlcyQuY29tcGxldGUoKTtcbiAgICB0aGlzLmFmdGVyVmlld0luaXQkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNwcm9qZWN0aW9uPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuQHN3aXRjaCAobW9kZSgpKSB7XG4gIEBjYXNlICgnZGVidWcnKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvZGVyLWlkXCI+e3sgaWQkIHwgYXN5bmMgfX08L3NwYW4+XG4gIH1cbiAgQGNhc2UgKCdwZW5kaW5nJykge1xuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcm9qZWN0aW9uXCIgLz5cbiAgfVxuICBAY2FzZSAoJ25vcm1hbCcpIHtcbiAgICBAaWYgKGlzUGVuZGluZykge1xuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByb2plY3Rpb25cIiAvPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInRlbXBsYXRlXCI+PC9kaXY+XG4gICAgfVxuICB9XG59XG4iXX0=
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xzL3BsYWNlaG9sZGVyL3BsYWNlaG9sZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90b29scy9wbGFjZWhvbGRlci9wbGFjZWhvbGRlci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEVBSUwsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxLQUFLLEdBQ04sTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLGdCQUFnQixHQUNqQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixNQUFNLEVBQ04sT0FBTyxFQUNQLFlBQVksR0FDYixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBR0wsNkJBQTZCLEVBQzdCLHFCQUFxQixHQUN0QixNQUFNLG1DQUFtQyxDQUFDOzs7O0FBTTNDOzs7OztHQUtHO0FBV0gsTUFBTSxPQUFPLG9CQUFvQjtJQWlCL0Isd0JBQXdCO0lBQ3hCLElBQ1csRUFBRSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELFlBQTZCLEtBQXNDLEVBQW1CLEVBQXFCO1FBQTlFLFVBQUssR0FBTCxLQUFLLENBQWlDO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBdEIxRixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkMsUUFBRyxHQUFHLElBQUksZUFBZSxD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QyxDQUFDLENBQ2xHLENBQUMsU0FBUyxDQUFDO1lBQ1YsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDYixnQkFBZ0IsQ0FBa0MsNEJBQTRCLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQztZQUM5RixRQUFRLEVBQUUsR0FBRyxFQUFFLENBQ2IsZ0JBQWdCLENBQWtDLDRCQUE0QixFQUFFO2dCQUM5RSxhQUFhLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLO2dCQUM3QixXQUFXLEVBQUUsRUFBRTthQUNoQixFQUFFLEtBQUssQ0FBQztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsMkRBQTJEO1FBQzNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGtCQUFrQjtJQUNYLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztrSUF2RlUsb0JBQW9CO3NIQUFwQixvQkFBb0IsNElDekRqQyx1YkFrQkE7OzRGRHVDYSxvQkFBb0I7a0JBVmhDLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osZUFBZSxFQUFFLG9CQUFvQjtxQkFDdEM7MEdBcUJVLEVBQUU7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIHR5cGUgU2lnbmFsLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTdG9yZSxcbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgc2VuZE90dGVyTWVzc2FnZSxcbn0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgUmVwbGF5U3ViamVjdCxcbiAgc2FtcGxlLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIHR5cGUgUGxhY2Vob2xkZXJNb2RlLFxuICBQbGFjZWhvbGRlclRlbXBsYXRlU3RvcmUsXG4gIHNlbGVjdFBsYWNlaG9sZGVyVGVtcGxhdGVNb2RlLFxuICBzZWxlY3RTb3J0ZWRUZW1wbGF0ZXMsXG59IGZyb20gJy4uLy4uL3N0b3Jlcy9wbGFjZWhvbGRlci10ZW1wbGF0ZSc7XG5pbXBvcnQge1xuICBQbGFjZWhvbGRlckxvYWRpbmdTdGF0dXMsXG4gIFBsYWNlaG9sZGVyTG9hZGluZ1N0YXR1c01lc3NhZ2UsXG59IGZyb20gJy4vcGxhY2Vob2xkZXIuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBQbGFjZWhvbGRlciBjb21wb25lbnQgdGhhdCBpcyBiaW5kIHRvIHRoZSBQbGFjZWhvbGRlclRlbXBsYXRlU3RvcmUgdG8gZGlzcGxheSBhIHRlbXBsYXRlIGJhc2VkIG9uIGl0cyBJRFxuICogQSBsb2FkaW5nIGluZGljYXRpb24gY2FuIGJlIHByb3ZpZGVkIHZpYSBwcm9qZWN0aW9uXG4gKiBAZXhhbXBsZVxuICogIDxvM3ItcGxhY2Vob2xkZXIgaWQ9XCJteS10ZW1wbGF0ZS1pZFwiPklzIGxvYWRpbmcgLi4uPC9vM3ItcGxhY2Vob2xkZXI+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28zci1wbGFjZWhvbGRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wbGFjZWhvbGRlci50ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3BsYWNlaG9sZGVyLnN0eWxlLnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuZGVidWddJzogYG1vZGUoKSA9PT0gJ2RlYnVnJ2BcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBQbGFjZWhvbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWZ0ZXJWaWV3SW5pdCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZXMkID0gbmV3IFJlcGxheVN1YmplY3Q8UGxhY2Vob2xkZXJMb2FkaW5nU3RhdHVzPigxKTtcblxuICAvKiogRGV0ZXJtaW5lIGlmIHRoZSBwbGFjZWhvbGRlciBjb250ZW50IGlzIHBlbmRpbmcgKi9cbiAgcHVibGljIGlzUGVuZGluZz86IGJvb2xlYW47XG5cbiAgLyoqIEdlbmVyYXRlZCBIVE1MIHRlbXBsYXRlICovXG4gIHB1YmxpYyB0ZW1wbGF0ZT86IHN0cmluZztcblxuICBwdWJsaWMgbW9kZTogU2lnbmFsPFBsYWNlaG9sZGVyTW9kZT47XG5cbiAgLyoqIHRlbXBsYXRlIGlkZW50aWZ5ICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuaWQkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdG9yZTogU3RvcmU8UGxhY2Vob2xkZXJUZW1wbGF0ZVN0b3JlPiwgcHJpdmF0ZSByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLm1vZGUgPSB0aGlzLnN0b3JlLnNlbGVjdFNpZ25hbChzZWxlY3RQbGFjZWhvbGRlclRlbXBsYXRlTW9kZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuaWQkLnBpcGUoXG4gICAgICAgIGZpbHRlcigoaWQpOiBpZCBpcyBzdHJpbmcgPT4gISFpZCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHN3aXRjaE1hcCgoaWQ6IHN0cmluZykgPT5cbiAgICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChzZWxlY3RTb3J0ZWRUZW1wbGF0ZXMoaWQpKS5waXBlKFxuICAgICAgICAgICAgbWFwKChwbGFjZWhvbGRlcnMpID0+ICh7XG4gICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICBvcmRlcmVkVGVtcGxhdGVzOiBwbGFjZWhvbGRlcnM/Lm9yZGVyZWRUZW1wbGF0ZXMsXG4gICAgICAgICAgICAgIGlzUGVuZGluZzogcGxhY2Vob2xkZXJzPy5pc1BlbmRpbmdcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2aW91cywgY3VycmVudCkgPT5cbiAgICAgICAgICAgICAgcHJldmlvdXMuaWQgPT09IGN1cnJlbnQuaWRcbiAgICAgICAgICAgICAgJiYgcHJldmlvdXMuaXNQZW5kaW5nID09PSBjdXJyZW50LmlzUGVuZGluZ1xuICAgICAgICAgICAgICAmJiBwcmV2aW91cy5vcmRlcmVkVGVtcGxhdGVzPy5tYXAoKHBsYWNlaG9sZGVyKSA9PiBwbGFjZWhvbGRlci5yZW5kZXJlZFRlbXBsYXRlKS5qb2luKCcnKVxuICAgICAgICAgICAgICA9PT0gY3VycmVudC5vcmRlcmVkVGVtcGxhdGVzPy5tYXAoKHBsYWNlaG9sZGVyKSA9PiBwbGFjZWhvbGRlci5yZW5kZXJlZFRlbXBsYXRlKS5qb2luKCcnKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKS5zdWJzY3JpYmUoKHsgaWQsIG9yZGVyZWRUZW1wbGF0ZXMsIGlzUGVuZGluZyB9KSA9PiB7XG4gICAgICAgIHRoaXMuaXNQZW5kaW5nID0gaXNQZW5kaW5nO1xuICAgICAgICB0aGlzLnRlbXBsYXRlID0gb3JkZXJlZFRlbXBsYXRlcz8ubGVuZ3RoXG4gICAgICAgICAgLy8gQ29uY2F0ZW5hdGVzIHRoZSBsaXN0IG9mIHRlbXBsYXRlc1xuICAgICAgICAgID8gb3JkZXJlZFRlbXBsYXRlcy5tYXAoKHBsYWNlaG9sZGVyKSA9PiBwbGFjZWhvbGRlci5yZW5kZXJlZFRlbXBsYXRlKS5qb2luKCcnKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBpZiAodGhpcy5pc1BlbmRpbmcgPT09IGZhbHNlKSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlcyQubmV4dCh7XG4gICAgICAgICAgICB0ZW1wbGF0ZUlkczogdGhpcy5pc1BlbmRpbmcgPyBbXSA6IChvcmRlcmVkVGVtcGxhdGVzIHx8IFtdKS5tYXAoKHBsYWNlaG9sZGVyKSA9PiBwbGFjZWhvbGRlci5yZXNvbHZlZFVybCksXG4gICAgICAgICAgICBwbGFjZWhvbGRlcklkOiBpZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5tZXNzYWdlcyQucGlwZShcbiAgICAgIHNhbXBsZSh0aGlzLmFmdGVyVmlld0luaXQkKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2aW91cywgY3VycmVudCkgPT4gSlNPTi5zdHJpbmdpZnkoY3VycmVudCkgPT09IEpTT04uc3RyaW5naWZ5KHByZXZpb3VzKSlcbiAgICApLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoZGF0YSkgPT5cbiAgICAgICAgc2VuZE90dGVyTWVzc2FnZTxQbGFjZWhvbGRlckxvYWRpbmdTdGF0dXNNZXNzYWdlPigncGxhY2Vob2xkZXItbG9hZGluZy1zdGF0dXMnLCBkYXRhLCBmYWxzZSksXG4gICAgICBjb21wbGV0ZTogKCkgPT5cbiAgICAgICAgc2VuZE90dGVyTWVzc2FnZTxQbGFjZWhvbGRlckxvYWRpbmdTdGF0dXNNZXNzYWdlPigncGxhY2Vob2xkZXItbG9hZGluZy1zdGF0dXMnLCB7XG4gICAgICAgICAgcGxhY2Vob2xkZXJJZDogdGhpcy5pZCQudmFsdWUsXG4gICAgICAgICAgdGVtcGxhdGVJZHM6IFtdXG4gICAgICAgIH0sIGZhbHNlKVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAvLyBNYWtlIHN1cmUgdGhlIHZpZXcgaXMgcmVuZGVyZWQgYmVmb3JlIHBvc3RpbmcgdGhlIHN0YXR1c1xuICAgIHRoaXMuYWZ0ZXJWaWV3SW5pdCQubmV4dCgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm1lc3NhZ2VzJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuYWZ0ZXJWaWV3SW5pdCQuY29tcGxldGUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3Byb2plY3Rpb24+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5Ac3dpdGNoIChtb2RlKCkpIHtcbiAgQGNhc2UgKCdkZWJ1ZycpIHtcbiAgICA8c3BhbiBjbGFzcz1cInBsYWNlaG9kZXItaWRcIj57eyBpZCQgfCBhc3luYyB9fTwvc3Bhbj5cbiAgfVxuICBAY2FzZSAoJ3BlbmRpbmcnKSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByb2plY3Rpb25cIiAvPlxuICB9XG4gIEBjYXNlICgnbm9ybWFsJykge1xuICAgIEBpZiAoaXNQZW5kaW5nKSB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJvamVjdGlvblwiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IFtpbm5lckhUTUxdPVwidGVtcGxhdGVcIj48L2Rpdj5cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xzL3BsYWNlaG9sZGVyL3BsYWNlaG9sZGVyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge090dGVyTWVzc2FnZUNvbnRlbnR9IGZyb20gJ0BvM3IvY29yZSc7XG5cbi8qKlxuICogUGF5bG9hZCBvZiB0aGUge0BzZWUgUGxhY2Vob2xkZXJMb2FkaW5nU3RhdHVzTWVzc2FnZX1cbiAqXG4gKiBEZXNjcmliZSB0aGUgc3RhdGUgb2YgYW4gaWRlbnRpZmllZCBwbGFjZWhvbGRlcjogd2hhdCB0ZW1wbGF0ZSBpcyBiZWluZyBsb2FkZWQgYW5kIHdoZXRoZXIgdGhlIGxvYWQgaXMgZG9uZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsYWNlaG9sZGVyTG9hZGluZ1N0YXR1cyB7XG4gIC8qKlxuICAgKiBJZHMgb2YgdGhlIHRlbXBsYXRlIHRvIGJlIGxvYWRlZCBpbiB0aGUgcGxhY2Vob2xkZXJcbiAgICovXG4gIHRlbXBsYXRlSWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBJZGVudGlmeSB0aGUgcGxhY2Vob2xkZXIgdW5kZXIgY29uc2lkZXJhdGlvblxuICAgKi9cbiAgcGxhY2Vob2xkZXJJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBNZXNzYWdlIHRvIGRlc2NyaWJlIGEgcGxhY2Vob2xkZXIncyBsb2FkaW5nIHN0YXR1czogdGhlIHRlbXBsYXRlcyB0byBiZSBsb2FkZWQgYW5kIHRoZSBwZW5kaW5nIHN0YXR1cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbGFjZWhvbGRlckxvYWRpbmdTdGF0dXNNZXNzYWdlIGV4dGVuZHMgUGxhY2Vob2xkZXJMb2FkaW5nU3RhdHVzLFxuICBPdHRlck1lc3NhZ2VDb250ZW50PCdwbGFjZWhvbGRlci1sb2FkaW5nLXN0YXR1cyc+IHt9XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xzL3BsYWNlaG9sZGVyL3BsYWNlaG9sZGVyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBPdHRlck1lc3NhZ2VDb250ZW50LFxufSBmcm9tICdAbzNyL2NvcmUnO1xuXG4vKipcbiAqIFBheWxvYWQgb2YgdGhlIHtAc2VlIFBsYWNlaG9sZGVyTG9hZGluZ1N0YXR1c01lc3NhZ2V9XG4gKlxuICogRGVzY3JpYmUgdGhlIHN0YXRlIG9mIGFuIGlkZW50aWZpZWQgcGxhY2Vob2xkZXI6IHdoYXQgdGVtcGxhdGUgaXMgYmVpbmcgbG9hZGVkIGFuZCB3aGV0aGVyIHRoZSBsb2FkIGlzIGRvbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbGFjZWhvbGRlckxvYWRpbmdTdGF0dXMge1xuICAvKipcbiAgICogSWRzIG9mIHRoZSB0ZW1wbGF0ZSB0byBiZSBsb2FkZWQgaW4gdGhlIHBsYWNlaG9sZGVyXG4gICAqL1xuICB0ZW1wbGF0ZUlkcz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogSWRlbnRpZnkgdGhlIHBsYWNlaG9sZGVyIHVuZGVyIGNvbnNpZGVyYXRpb25cbiAgICovXG4gIHBsYWNlaG9sZGVySWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTWVzc2FnZSB0byBkZXNjcmliZSBhIHBsYWNlaG9sZGVyJ3MgbG9hZGluZyBzdGF0dXM6IHRoZSB0ZW1wbGF0ZXMgdG8gYmUgbG9hZGVkIGFuZCB0aGUgcGVuZGluZyBzdGF0dXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxhY2Vob2xkZXJMb2FkaW5nU3RhdHVzTWVzc2FnZSBleHRlbmRzIFBsYWNlaG9sZGVyTG9hZGluZ1N0YXR1cyxcbiAgT3R0ZXJNZXNzYWdlQ29udGVudDwncGxhY2Vob2xkZXItbG9hZGluZy1zdGF0dXMnPiB7fVxuIl19
@@ -1,9 +1,9 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { StoreModule } from '@ngrx/store';
4
- import { PlaceholderTemplateStoreModule } from '../../stores/placeholder-template/index';
5
- import { PlaceholderComponent } from './placeholder.component';
6
- import { PlaceholderRequestStoreModule } from '../../stores/placeholder-request/index';
1
+ import { CommonModule, } from '@angular/common';
2
+ import { NgModule, } from '@angular/core';
3
+ import { StoreModule, } from '@ngrx/store';
4
+ import { PlaceholderRequestStoreModule, } from '../../stores/placeholder-request/index';
5
+ import { PlaceholderTemplateStoreModule, } from '../../stores/placeholder-template/index';
6
+ import { PlaceholderComponent, } from './placeholder.component';
7
7
  import * as i0 from "@angular/core";
8
8
  export class PlaceholderModule {
9
9
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PlaceholderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
29
29
  exports: [PlaceholderComponent]
30
30
  }]
31
31
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xzL3BsYWNlaG9sZGVyL3BsYWNlaG9sZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQVl2RixNQUFNLE9BQU8saUJBQWlCO2tJQUFqQixpQkFBaUI7bUlBQWpCLGlCQUFpQixpQkFIYixvQkFBb0IsYUFMakMsWUFBWTtZQUNaLFdBQVc7WUFDWCw4QkFBOEI7WUFDOUIsNkJBQTZCLGFBR3JCLG9CQUFvQjttSUFFbkIsaUJBQWlCLFlBUjFCLFlBQVk7WUFDWixXQUFXO1lBQ1gsOEJBQThCO1lBQzlCLDZCQUE2Qjs7NEZBS3BCLGlCQUFpQjtrQkFWN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLDhCQUE4Qjt3QkFDOUIsNkJBQTZCO3FCQUM5QjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZU1vZHVsZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFBsYWNlaG9sZGVyVGVtcGxhdGVTdG9yZU1vZHVsZSB9IGZyb20gJy4uLy4uL3N0b3Jlcy9wbGFjZWhvbGRlci10ZW1wbGF0ZS9pbmRleCc7XG5pbXBvcnQgeyBQbGFjZWhvbGRlckNvbXBvbmVudCB9IGZyb20gJy4vcGxhY2Vob2xkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWNlaG9sZGVyUmVxdWVzdFN0b3JlTW9kdWxlIH0gZnJvbSAnLi4vLi4vc3RvcmVzL3BsYWNlaG9sZGVyLXJlcXVlc3QvaW5kZXgnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFN0b3JlTW9kdWxlLFxuICAgIFBsYWNlaG9sZGVyVGVtcGxhdGVTdG9yZU1vZHVsZSxcbiAgICBQbGFjZWhvbGRlclJlcXVlc3RTdG9yZU1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtQbGFjZWhvbGRlckNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtQbGFjZWhvbGRlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgUGxhY2Vob2xkZXJNb2R1bGUgeyB9XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rvb2xzL3BsYWNlaG9sZGVyL3BsYWNlaG9sZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxHQUNiLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsV0FBVyxHQUNaLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDTCw2QkFBNkIsR0FDOUIsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsOEJBQThCLEdBQy9CLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUNMLG9CQUFvQixHQUNyQixNQUFNLHlCQUF5QixDQUFDOztBQVlqQyxNQUFNLE9BQU8saUJBQWlCO2tJQUFqQixpQkFBaUI7bUlBQWpCLGlCQUFpQixpQkFIYixvQkFBb0IsYUFMakMsWUFBWTtZQUNaLFdBQVc7WUFDWCw4QkFBOEI7WUFDOUIsNkJBQTZCLGFBR3JCLG9CQUFvQjttSUFFbkIsaUJBQWlCLFlBUjFCLFlBQVk7WUFDWixXQUFXO1lBQ1gsOEJBQThCO1lBQzlCLDZCQUE2Qjs7NEZBS3BCLGlCQUFpQjtrQkFWN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLDhCQUE4Qjt3QkFDOUIsNkJBQTZCO3FCQUM5QjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tbW9uTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgTmdNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU3RvcmVNb2R1bGUsXG59IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIFBsYWNlaG9sZGVyUmVxdWVzdFN0b3JlTW9kdWxlLFxufSBmcm9tICcuLi8uLi9zdG9yZXMvcGxhY2Vob2xkZXItcmVxdWVzdC9pbmRleCc7XG5pbXBvcnQge1xuICBQbGFjZWhvbGRlclRlbXBsYXRlU3RvcmVNb2R1bGUsXG59IGZyb20gJy4uLy4uL3N0b3Jlcy9wbGFjZWhvbGRlci10ZW1wbGF0ZS9pbmRleCc7XG5pbXBvcnQge1xuICBQbGFjZWhvbGRlckNvbXBvbmVudCxcbn0gZnJvbSAnLi9wbGFjZWhvbGRlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFN0b3JlTW9kdWxlLFxuICAgIFBsYWNlaG9sZGVyVGVtcGxhdGVTdG9yZU1vZHVsZSxcbiAgICBQbGFjZWhvbGRlclJlcXVlc3RTdG9yZU1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtQbGFjZWhvbGRlckNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtQbGFjZWhvbGRlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgUGxhY2Vob2xkZXJNb2R1bGUge31cbiJdfQ==
@@ -1,8 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Optional, NgModule } from '@angular/core';
3
- import * as i1$1 from '@ngrx/effects';
4
- import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
5
- import { selectPlaceholderTemplateEntities, selectPlaceholderRequestEntities, deletePlaceholderTemplateEntity, setPlaceholderTemplateEntity, updatePlaceholderRequestEntity, setPlaceholderRequestEntityFromUrl, selectPlaceholderRequestEntityUsage, failPlaceholderRequestEntity, cancelPlaceholderRequest, PlaceholderRequestStoreModule, PlaceholderTemplateStoreModule } from '@o3r/components';
6
3
  import * as i1 from '@ngrx/store';
7
4
  import { select } from '@ngrx/store';
8
5
  import * as i4 from '@o3r/dynamic-content';
@@ -10,9 +7,12 @@ import { DynamicContentService } from '@o3r/dynamic-content';
10
7
  import * as i3 from '@o3r/localization';
11
8
  import * as i2 from '@o3r/logger';
12
9
  import { Subscription, Subject, map, startWith, distinctUntilChanged, of, combineLatest, withLatestFrom, firstValueFrom, EMPTY } from 'rxjs';
10
+ import { selectPlaceholderTemplateEntities, selectPlaceholderRequestEntities, deletePlaceholderTemplateEntity, setPlaceholderTemplateEntity, updatePlaceholderRequestEntity, setPlaceholderRequestEntityFromUrl, selectPlaceholderRequestEntityUsage, failPlaceholderRequestEntity, cancelPlaceholderRequest, PlaceholderRequestStoreModule, PlaceholderTemplateStoreModule } from '@o3r/components';
11
+ import * as i1$1 from '@ngrx/effects';
12
+ import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
13
13
  import { fromApiEffectSwitchMapById } from '@o3r/core';
14
- import { map as map$1, distinctUntilChanged as distinctUntilChanged$1, switchMap, take } from 'rxjs/operators';
15
14
  import { JSONPath } from 'jsonpath-plus';
15
+ import { map as map$1, distinctUntilChanged as distinctUntilChanged$1, switchMap, take } from 'rxjs/operators';
16
16
  import * as i3$1 from '@o3r/rules-engine';
17
17
 
18
18
  /** ActionUpdatePlaceholderBlock */
@@ -29,7 +29,9 @@ class PlaceholderRulesEngineActionHandler {
29
29
  this.placeholdersActions$ = new Subject();
30
30
  /** @inheritdoc */
31
31
  this.supportingActions = [RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE];
32
- const lang$ = translateService ? translateService.getTranslateService().onLangChange.pipe(map(({ lang }) => lang), startWith(translateService.getCurrentLanguage()), distinctUntilChanged()) : of(null);
32
+ const lang$ = translateService
33
+ ? translateService.getTranslateService().onLangChange.pipe(map(({ lang }) => lang), startWith(translateService.getCurrentLanguage()), distinctUntilChanged())
34
+ : of(null);
33
35
  const filteredActions$ = combineLatest([
34
36
  lang$,
35
37
  this.placeholdersActions$.pipe(distinctUntilChanged((prev, next) => JSON.stringify(prev) === JSON.stringify(next)))
@@ -80,11 +82,11 @@ class PlaceholderRulesEngineActionHandler {
80
82
  });
81
83
  // Placeholder that are no longer filled by the current engine execution output will be cleared
82
84
  const placeholdersTemplatesToBeCleanedUp = Object.keys(storedPlaceholders)
83
- .filter(placeholderId => !placeholdersTemplates[placeholderId]);
85
+ .filter((placeholderId) => !placeholdersTemplates[placeholderId]);
84
86
  const placeholdersTemplatesToBeSet = Object.keys(placeholdersTemplates).reduce((changedPlaceholderTemplates, placeholderTemplateId) => {
85
87
  // Caching if the placeholder template already exists with the same urls
86
- if (!storedPlaceholders[placeholderTemplateId] ||
87
- !(JSON.stringify(storedPlaceholders[placeholderTemplateId].urlsWithPriority) === JSON.stringify(placeholdersTemplates[placeholderTemplateId]))) {
88
+ if (!storedPlaceholders[placeholderTemplateId]
89
+ || !(JSON.stringify(storedPlaceholders[placeholderTemplateId].urlsWithPriority) === JSON.stringify(placeholdersTemplates[placeholderTemplateId]))) {
88
90
  changedPlaceholderTemplates.push({
89
91
  id: placeholderTemplateId,
90
92
  urlsWithPriority: placeholdersTemplates[placeholderTemplateId]
@@ -101,19 +103,19 @@ class PlaceholderRulesEngineActionHandler {
101
103
  };
102
104
  }));
103
105
  this.subscription.add(filteredActions$.subscribe((placeholdersUpdates) => {
104
- placeholdersUpdates.placeholdersTemplatesToBeCleanedUp.forEach(placeholderId => store.dispatch(deletePlaceholderTemplateEntity({
106
+ placeholdersUpdates.placeholdersTemplatesToBeCleanedUp.forEach((placeholderId) => store.dispatch(deletePlaceholderTemplateEntity({
105
107
  id: placeholderId
106
108
  })));
107
- placeholdersUpdates.placeholdersTemplatesToBeSet.forEach(placeholdersTemplateToBeSet => {
109
+ placeholdersUpdates.placeholdersTemplatesToBeSet.forEach((placeholdersTemplateToBeSet) => {
108
110
  store.dispatch(setPlaceholderTemplateEntity({ entity: placeholdersTemplateToBeSet }));
109
111
  });
110
- placeholdersUpdates.placeholderRequestsToDisable.forEach(placeholderRequestToDisable => {
112
+ placeholdersUpdates.placeholderRequestsToDisable.forEach((placeholderRequestToDisable) => {
111
113
  store.dispatch(updatePlaceholderRequestEntity({ entity: { id: placeholderRequestToDisable, used: false } }));
112
114
  });
113
- placeholdersUpdates.placeholderRequestsToEnable.forEach(placeholderRequestToEnable => {
115
+ placeholdersUpdates.placeholderRequestsToEnable.forEach((placeholderRequestToEnable) => {
114
116
  store.dispatch(updatePlaceholderRequestEntity({ entity: { id: placeholderRequestToEnable, used: true } }));
115
117
  });
116
- placeholdersUpdates.placeholderNewRequests.forEach(placeholderNewRequest => {
118
+ placeholdersUpdates.placeholderNewRequests.forEach((placeholderNewRequest) => {
117
119
  store.dispatch(setPlaceholderRequestEntityFromUrl({
118
120
  resolvedUrl: placeholderNewRequest.resolvedUrl,
119
121
  id: placeholderNewRequest.rawUrl,
@@ -181,13 +183,15 @@ class PlaceholderTemplateResponseEffect {
181
183
  */
182
184
  this.setPlaceholderRequestEntityFromUrl$ = createEffect(() => this.actions$.pipe(ofType(setPlaceholderRequestEntityFromUrl), fromApiEffectSwitchMapById((templateResponse, action) => {
183
185
  const facts = templateResponse.vars ? Object.entries(templateResponse.vars).filter(([, variable]) => variable.type === 'fact') : [];
184
- const factsStreamsList = this.rulesEngineService ? facts.map(([varName, fact]) => this.rulesEngineService.engine.retrieveOrCreateFactStream(fact.value).pipe(map$1((factValue) => ({
185
- varName,
186
- factName: fact.value,
187
- // eslint-disable-next-line new-cap
188
- factValue: (fact.path && factValue) ? JSONPath({ wrap: false, json: factValue, path: fact.path }) : factValue
189
- })), distinctUntilChanged$1((previous, current) => previous.factValue === current.factValue))) : [];
190
- const factsStreamsList$ = factsStreamsList.length ? combineLatest(factsStreamsList) : of([]);
186
+ const factsStreamsList = this.rulesEngineService
187
+ ? facts.map(([varName, fact]) => this.rulesEngineService.engine.retrieveOrCreateFactStream(fact.value).pipe(map$1((factValue) => ({
188
+ varName,
189
+ factName: fact.value,
190
+ // eslint-disable-next-line new-cap -- naming convention imposed by jsonpath-plus
191
+ factValue: (fact.path && factValue) ? JSONPath({ wrap: false, json: factValue, path: fact.path }) : factValue
192
+ })), distinctUntilChanged$1((previous, current) => previous.factValue === current.factValue)))
193
+ : [];
194
+ const factsStreamsList$ = factsStreamsList.length > 0 ? combineLatest(factsStreamsList) : of([]);
191
195
  return combineLatest([factsStreamsList$, this.store.select(selectPlaceholderRequestEntityUsage(action.id)).pipe(distinctUntilChanged$1())]).pipe(switchMap(([factsUsedInTemplate, placeholderRequestUsage]) => {
192
196
  if (!placeholderRequestUsage) {
193
197
  return EMPTY;
@@ -251,9 +255,9 @@ class PlaceholderTemplateResponseEffect {
251
255
  acc[paramKey] = factMapFromVars[paramValue];
252
256
  return acc;
253
257
  }, linkedVars);
254
- replacements$.push(this.translationService ?
255
- this.translationService.translate(vars[varName].value, linkedParams).pipe(map$1((value) => (value ? { ejsVar, value } : null))) :
256
- of(null));
258
+ replacements$.push(this.translationService
259
+ ? this.translationService.translate(vars[varName].value, linkedParams).pipe(map$1((value) => (value ? { ejsVar, value } : null)))
260
+ : of(null));
257
261
  break;
258
262
  }
259
263
  default: {
@@ -264,11 +268,12 @@ class PlaceholderTemplateResponseEffect {
264
268
  }
265
269
  }
266
270
  }
267
- return replacements$.length > 0 && !!template ?
268
- combineLatest(replacements$).pipe(map$1((replacements) => ({
271
+ return replacements$.length > 0 && !!template
272
+ ? combineLatest(replacements$).pipe(map$1((replacements) => ({
269
273
  renderedTemplate: replacements.reduce((acc, replacement) => replacement ? acc.replace(replacement.ejsVar, replacement.value) : acc, template),
270
274
  unknownTypeFound
271
- }))) : of({ renderedTemplate: template, unknownTypeFound });
275
+ })))
276
+ : of({ renderedTemplate: template, unknownTypeFound });
272
277
  }
273
278
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PlaceholderTemplateResponseEffect, deps: [{ token: i1$1.Actions }, { token: i1.Store }, { token: i3$1.RulesEngineRunnerService, optional: true }, { token: i4.DynamicContentService, optional: true }, { token: i3.LocalizationService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
274
279
  /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PlaceholderTemplateResponseEffect }); }
@@ -1 +1 @@
1
- {"version":3,"file":"o3r-components-rules-engine.mjs","sources":["../../src/rules-engine/placeholder.interfaces.ts","../../src/rules-engine/placeholder.action-handler.ts","../../src/rules-engine/placeholder.rules-engine.effect.ts","../../src/rules-engine/placeholder.rules-engine.module.ts","../../src/rules-engine/o3r-components-rules-engine.ts"],"sourcesContent":["import type { RulesEngineAction } from '@o3r/core';\n\n/** ActionUpdatePlaceholderBlock */\nexport const RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE = 'UPDATE_PLACEHOLDER';\n\n/**\n * Content of action that updates a placeholder\n */\nexport interface ActionUpdatePlaceholderBlock extends RulesEngineAction {\n actionType: typeof RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE;\n placeholderId: string;\n value: string;\n priority?: number;\n}\n","import { Injectable, Injector, OnDestroy, Optional } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport type { RulesEngineActionHandler } from '@o3r/core';\nimport {\n deletePlaceholderTemplateEntity,\n PlaceholderRequestReply,\n PlaceholderTemplateStore,\n selectPlaceholderRequestEntities,\n selectPlaceholderTemplateEntities,\n setPlaceholderRequestEntityFromUrl,\n setPlaceholderTemplateEntity,\n updatePlaceholderRequestEntity\n} from '@o3r/components';\nimport { DynamicContentService } from '@o3r/dynamic-content';\nimport { LocalizationService } from '@o3r/localization';\nimport { LoggerService } from '@o3r/logger';\nimport { combineLatest, distinctUntilChanged, firstValueFrom, map, of, startWith, Subject, Subscription, withLatestFrom } from 'rxjs';\nimport { ActionUpdatePlaceholderBlock, RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE } from './placeholder.interfaces';\n\n/**\n * Service to handle async PlaceholderTemplate actions\n */\n@Injectable()\nexport class PlaceholderRulesEngineActionHandler implements OnDestroy, RulesEngineActionHandler<ActionUpdatePlaceholderBlock> {\n\n protected subscription = new Subscription();\n\n protected placeholdersActions$: Subject<{ placeholderId: string; templateUrl: string; priority: number }[]> = new Subject();\n\n /** @inheritdoc */\n public readonly supportingActions = [RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE] as const;\n\n constructor(\n store: Store<PlaceholderTemplateStore>,\n private readonly logger: LoggerService,\n private readonly injector: Injector,\n @Optional() translateService?: LocalizationService\n ) {\n const lang$ = translateService ? translateService.getTranslateService().onLangChange.pipe(\n map(({ lang }) => lang),\n startWith(translateService.getCurrentLanguage()),\n distinctUntilChanged()\n ) : of(null);\n\n const filteredActions$ = combineLatest([\n lang$,\n this.placeholdersActions$.pipe(\n distinctUntilChanged((prev, next) => JSON.stringify(prev) === JSON.stringify(next))\n )\n ]).pipe(\n withLatestFrom(\n combineLatest([store.pipe(select(selectPlaceholderTemplateEntities)), store.pipe(select(selectPlaceholderRequestEntities))])\n ),\n map(([langAndTemplatesUrls, storedPlaceholdersAndRequests]) => {\n const [lang, placeholderActions] = langAndTemplatesUrls;\n const storedPlaceholders = storedPlaceholdersAndRequests[0] || {};\n const storedPlaceholderRequests = storedPlaceholdersAndRequests[1] || {};\n const placeholderNewRequests: { rawUrl: string; resolvedUrl: string }[] = [];\n // Stores all raw Urls used from the current engine execution\n const usedUrls: Record<string, boolean> = {};\n // Get all Urls that needs to be resolved from current rules engine output\n const placeholdersTemplates = placeholderActions.reduce((acc, placeholderAction) => {\n const placeholdersTemplateUrl = {\n rawUrl: placeholderAction.templateUrl,\n priority: placeholderAction.priority\n };\n if (acc[placeholderAction.placeholderId]) {\n acc[placeholderAction.placeholderId].push(placeholdersTemplateUrl);\n } else {\n acc[placeholderAction.placeholderId] = [placeholdersTemplateUrl];\n }\n const resolvedUrl = this.resolveUrlWithLang(placeholderAction.templateUrl, lang);\n // Filters duplicates and resolved urls that are already in the store\n if (!usedUrls[placeholderAction.templateUrl] && (!storedPlaceholderRequests[placeholderAction.templateUrl]\n || storedPlaceholderRequests[placeholderAction.templateUrl]!.resolvedUrl !== resolvedUrl)) {\n placeholderNewRequests.push({\n rawUrl: placeholderAction.templateUrl,\n resolvedUrl: this.resolveUrlWithLang(placeholderAction.templateUrl, lang)\n });\n }\n usedUrls[placeholderAction.templateUrl] = true;\n return acc;\n }, {} as { [key: string]: { rawUrl: string; priority: number }[] });\n // Urls not used anymore and not already disabled\n const placeholderRequestsToDisable: string[] = [];\n // Urls used that were disabled\n const placeholderRequestsToEnable: string[] = [];\n Object.keys(storedPlaceholderRequests).forEach((storedPlaceholderRequestRawUrl) => {\n const usedFromEngineIteration = usedUrls[storedPlaceholderRequestRawUrl];\n const usedFromStore = (storedPlaceholderRequests && storedPlaceholderRequests[storedPlaceholderRequestRawUrl]) ? storedPlaceholderRequests[storedPlaceholderRequestRawUrl].used : false;\n if (!usedFromEngineIteration && usedFromStore) {\n placeholderRequestsToDisable.push(storedPlaceholderRequestRawUrl);\n } else if (usedFromEngineIteration && !usedFromStore) {\n placeholderRequestsToEnable.push(storedPlaceholderRequestRawUrl);\n }\n });\n // Placeholder that are no longer filled by the current engine execution output will be cleared\n const placeholdersTemplatesToBeCleanedUp = Object.keys(storedPlaceholders)\n .filter(placeholderId => !placeholdersTemplates[placeholderId]);\n\n const placeholdersTemplatesToBeSet = Object.keys(placeholdersTemplates).reduce((changedPlaceholderTemplates, placeholderTemplateId) => {\n // Caching if the placeholder template already exists with the same urls\n if (!storedPlaceholders[placeholderTemplateId] ||\n !(JSON.stringify(storedPlaceholders[placeholderTemplateId].urlsWithPriority) === JSON.stringify(placeholdersTemplates[placeholderTemplateId]))) {\n changedPlaceholderTemplates.push({\n id: placeholderTemplateId,\n urlsWithPriority: placeholdersTemplates[placeholderTemplateId]\n });\n }\n return changedPlaceholderTemplates;\n }, [] as { id: string; urlsWithPriority: { rawUrl: string; priority: number }[] }[]);\n return {\n placeholdersTemplatesToBeCleanedUp,\n placeholderRequestsToDisable,\n placeholderRequestsToEnable,\n placeholdersTemplatesToBeSet,\n placeholderNewRequests\n };\n })\n );\n this.subscription.add(filteredActions$.subscribe((placeholdersUpdates) => {\n placeholdersUpdates.placeholdersTemplatesToBeCleanedUp.forEach(placeholderId =>\n store.dispatch(deletePlaceholderTemplateEntity({\n id: placeholderId\n }))\n );\n placeholdersUpdates.placeholdersTemplatesToBeSet.forEach(placeholdersTemplateToBeSet => {\n store.dispatch(setPlaceholderTemplateEntity({ entity: placeholdersTemplateToBeSet }));\n });\n placeholdersUpdates.placeholderRequestsToDisable.forEach(placeholderRequestToDisable => {\n store.dispatch(updatePlaceholderRequestEntity({ entity: { id: placeholderRequestToDisable, used: false } }));\n });\n placeholdersUpdates.placeholderRequestsToEnable.forEach(placeholderRequestToEnable => {\n store.dispatch(updatePlaceholderRequestEntity({ entity: { id: placeholderRequestToEnable, used: true } }));\n });\n placeholdersUpdates.placeholderNewRequests.forEach(placeholderNewRequest => {\n store.dispatch(setPlaceholderRequestEntityFromUrl({\n resolvedUrl: placeholderNewRequest.resolvedUrl,\n id: placeholderNewRequest.rawUrl,\n call: this.retrieveTemplate(placeholderNewRequest.resolvedUrl)\n }));\n });\n }));\n }\n\n /**\n * Localize the url, replacing the language marker\n * @param url\n * @param language\n */\n protected resolveUrlWithLang(url: string, language: string | null): string {\n if (!language && url.includes('[LANGUAGE]')) {\n this.logger.warn(`Missing language when trying to resolve ${url}`);\n }\n return language ? url.replace(/\\[LANGUAGE]/g, language) : url;\n }\n\n /**\n * Retrieve template as json from a given url\n * @param url\n */\n protected async retrieveTemplate(url: string): Promise<PlaceholderRequestReply> {\n const resolvedUrl$ = this.injector.get(DynamicContentService, null, { optional: true })?.getContentPathStream(url) || of(url);\n const fullUrl = await firstValueFrom(resolvedUrl$);\n return fetch(fullUrl).then((response) => response.json());\n }\n\n /** @inheritdoc */\n public executeActions(actions: ActionUpdatePlaceholderBlock[]) {\n const templates = actions.map((action) => ({\n placeholderId: action.placeholderId,\n templateUrl: action.value,\n priority: action.priority || 0\n }));\n\n this.placeholdersActions$.next(templates);\n }\n\n /** @inheritdoc */\n public ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n}\n","import {Injectable, Optional} from '@angular/core';\nimport {Actions, createEffect, ofType} from '@ngrx/effects';\nimport {\n cancelPlaceholderRequest,\n failPlaceholderRequestEntity,\n PlaceholderRequestStore,\n PlaceholderVariable,\n selectPlaceholderRequestEntityUsage,\n setPlaceholderRequestEntityFromUrl,\n updatePlaceholderRequestEntity\n} from '@o3r/components';\nimport {fromApiEffectSwitchMapById} from '@o3r/core';\nimport {DynamicContentService} from '@o3r/dynamic-content';\nimport {LocalizationService} from '@o3r/localization';\nimport {RulesEngineRunnerService} from '@o3r/rules-engine';\nimport {combineLatest, EMPTY, Observable, of} from 'rxjs';\nimport {distinctUntilChanged, map, switchMap, take} from 'rxjs/operators';\nimport {Store} from '@ngrx/store';\nimport { JSONPath } from 'jsonpath-plus';\n\n/**\n * Service to handle async PlaceholderTemplate actions\n */\n@Injectable()\nexport class PlaceholderTemplateResponseEffect {\n /**\n * Set the PlaceholderRequest entity with the reply content, dispatch failPlaceholderRequestEntity if it catches a failure\n * Handles the rendering of the HTML content from the template and creates the combine latest from facts list if needed\n * Disables unused templates refresh if used is false in the store\n */\n public setPlaceholderRequestEntityFromUrl$ = createEffect(() =>\n this.actions$.pipe(\n ofType(setPlaceholderRequestEntityFromUrl),\n fromApiEffectSwitchMapById(\n (templateResponse, action) => {\n const facts = templateResponse.vars ? Object.entries(templateResponse.vars).filter(([, variable]) => variable.type === 'fact') : [];\n const factsStreamsList = this.rulesEngineService ? facts.map(([varName, fact]) =>\n this.rulesEngineService!.engine.retrieveOrCreateFactStream(fact.value).pipe(\n map((factValue) => ({\n varName,\n factName: fact.value,\n // eslint-disable-next-line new-cap\n factValue: (fact.path && factValue) ? JSONPath({ wrap: false, json: factValue, path: fact.path }) : factValue\n })),\n distinctUntilChanged((previous, current) => previous.factValue === current.factValue)\n )) : [];\n\n const factsStreamsList$ = factsStreamsList.length ? combineLatest(factsStreamsList) : of([]);\n return combineLatest([factsStreamsList$, this.store.select(selectPlaceholderRequestEntityUsage(action.id)).pipe(distinctUntilChanged())]).pipe(\n switchMap(([factsUsedInTemplate, placeholderRequestUsage]) => {\n if (!placeholderRequestUsage) {\n return EMPTY;\n }\n return this.getRenderedHTML$(templateResponse.template, templateResponse.vars, factsUsedInTemplate).pipe(\n map(({renderedTemplate, unknownTypeFound}) =>\n // Update instead of set because used already set by the update from url action\n updatePlaceholderRequestEntity({\n entity: {\n ...templateResponse,\n resolvedUrl: action.resolvedUrl,\n id: action.id,\n renderedTemplate,\n unknownTypeFound\n },\n requestId: action.requestId\n })\n )\n );\n }));\n },\n (error, action) => of(failPlaceholderRequestEntity({ids: [action.id], error, requestId: action.requestId})),\n (requestIdPayload, action) => cancelPlaceholderRequest({...requestIdPayload, id: action.id})\n )\n )\n );\n\n constructor(\n private readonly actions$: Actions,\n private readonly store: Store<PlaceholderRequestStore>,\n @Optional() private readonly rulesEngineService: RulesEngineRunnerService | null,\n @Optional() private readonly dynamicContentService: DynamicContentService | null,\n @Optional() private readonly translationService: LocalizationService | null) {\n }\n\n /**\n * Renders the html template, replacing facts and urls and localizationKeys\n * @param template\n * @param vars\n * @param facts\n */\n private getRenderedHTML$(template?: string, vars?: Record<string, PlaceholderVariable>, facts?: { varName: string; factName: string; factValue: any }[]) {\n let unknownTypeFound = false;\n const factMap = (facts || []).reduce((mapping: { [key: string]: any }, fact) => {\n mapping[fact.factName] = fact.factValue;\n return mapping;\n }, {});\n const factMapFromVars = (facts || []).reduce((mapping: { [key: string]: any }, fact) => {\n mapping[fact.varName] = fact.factValue;\n return mapping;\n }, {});\n const replacements$: Observable<{ ejsVar: RegExp; value: string } | null>[] = [];\n if (vars && template) {\n for (const varName in vars) {\n if (Object.prototype.hasOwnProperty.call(vars, varName)) {\n const ejsVar = new RegExp(`<%=\\\\s*${varName}\\\\s*%>`, 'g');\n switch (vars[varName].type) {\n case 'relativeUrl': {\n replacements$.push(\n this.dynamicContentService?.getMediaPathStream(vars[varName].value).pipe(\n take(1),\n map((value: string) => ({ejsVar, value}))\n ) || of({ ejsVar, value: vars[varName].value })\n );\n break;\n }\n case 'fullUrl': {\n template = template.replace(ejsVar, vars[varName].value);\n break;\n }\n case 'fact': {\n template = template.replace(ejsVar, factMap[vars[varName].value] ?? '');\n break;\n }\n case 'localisation': {\n const linkedVars = (vars[varName].vars || []).reduce((acc: { [key: string]: any }, parameter) => {\n const paramName = vars[parameter].value;\n acc[paramName] = factMap[paramName];\n return acc;\n }, {});\n const linkedParams = (Object.entries(vars[varName].parameters || {})).reduce((acc: { [key: string]: any }, [paramKey, paramValue]) => {\n acc[paramKey] = factMapFromVars[paramValue];\n return acc;\n }, linkedVars);\n replacements$.push(\n this.translationService ?\n this.translationService.translate(vars[varName].value, linkedParams).pipe(\n map((value) => (value ? { ejsVar, value } : null))\n ) :\n of(null)\n );\n break;\n }\n default : {\n unknownTypeFound = true;\n break;\n }\n }\n }\n }\n }\n return replacements$.length > 0 && !!template ?\n combineLatest(replacements$).pipe(\n map((replacements) => ({\n renderedTemplate: replacements.reduce(\n (acc, replacement) =>\n replacement ? acc.replace(replacement.ejsVar, replacement.value) : acc,\n template\n ),\n unknownTypeFound\n }))\n ) : of({renderedTemplate: template, unknownTypeFound});\n }\n}\n","import { NgModule } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { PlaceholderRequestStoreModule, PlaceholderTemplateStoreModule } from '@o3r/components';\nimport { PlaceholderRulesEngineActionHandler } from './placeholder.action-handler';\nimport { PlaceholderTemplateResponseEffect } from './placeholder.rules-engine.effect';\n\n@NgModule({\n imports: [\n EffectsModule.forFeature([PlaceholderTemplateResponseEffect]),\n PlaceholderRequestStoreModule,\n PlaceholderTemplateStoreModule\n ],\n providers: [\n PlaceholderRulesEngineActionHandler\n ]\n})\nexport class PlaceholderRulesEngineActionModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["map","distinctUntilChanged","i1","i2","i3","i5"],"mappings":"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"}
1
+ {"version":3,"file":"o3r-components-rules-engine.mjs","sources":["../../src/rules-engine/placeholder.interfaces.ts","../../src/rules-engine/placeholder.action-handler.ts","../../src/rules-engine/placeholder.rules-engine.effect.ts","../../src/rules-engine/placeholder.rules-engine.module.ts","../../src/rules-engine/o3r-components-rules-engine.ts"],"sourcesContent":["import type {\n RulesEngineAction,\n} from '@o3r/core';\n\n/** ActionUpdatePlaceholderBlock */\nexport const RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE = 'UPDATE_PLACEHOLDER';\n\n/**\n * Content of action that updates a placeholder\n */\nexport interface ActionUpdatePlaceholderBlock extends RulesEngineAction {\n actionType: typeof RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE;\n placeholderId: string;\n value: string;\n priority?: number;\n}\n","import {\n Injectable,\n Injector,\n OnDestroy,\n Optional,\n} from '@angular/core';\nimport {\n select,\n Store,\n} from '@ngrx/store';\nimport type {\n RulesEngineActionHandler,\n} from '@o3r/core';\nimport {\n DynamicContentService,\n} from '@o3r/dynamic-content';\nimport {\n LocalizationService,\n} from '@o3r/localization';\nimport {\n LoggerService,\n} from '@o3r/logger';\nimport {\n combineLatest,\n distinctUntilChanged,\n firstValueFrom,\n map,\n of,\n startWith,\n Subject,\n Subscription,\n withLatestFrom,\n} from 'rxjs';\nimport {\n ActionUpdatePlaceholderBlock,\n RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE,\n} from './placeholder.interfaces';\nimport {\n deletePlaceholderTemplateEntity,\n PlaceholderRequestReply,\n PlaceholderTemplateStore,\n selectPlaceholderRequestEntities,\n selectPlaceholderTemplateEntities,\n setPlaceholderRequestEntityFromUrl,\n setPlaceholderTemplateEntity,\n updatePlaceholderRequestEntity,\n} from '@o3r/components';\n\n/**\n * Service to handle async PlaceholderTemplate actions\n */\n@Injectable()\nexport class PlaceholderRulesEngineActionHandler implements OnDestroy, RulesEngineActionHandler<ActionUpdatePlaceholderBlock> {\n protected subscription = new Subscription();\n\n protected placeholdersActions$: Subject<{ placeholderId: string; templateUrl: string; priority: number }[]> = new Subject();\n\n /** @inheritdoc */\n public readonly supportingActions = [RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE] as const;\n\n constructor(\n store: Store<PlaceholderTemplateStore>,\n private readonly logger: LoggerService,\n private readonly injector: Injector,\n @Optional() translateService?: LocalizationService\n ) {\n const lang$ = translateService\n ? translateService.getTranslateService().onLangChange.pipe(\n map(({ lang }) => lang),\n startWith(translateService.getCurrentLanguage()),\n distinctUntilChanged()\n )\n : of(null);\n\n const filteredActions$ = combineLatest([\n lang$,\n this.placeholdersActions$.pipe(\n distinctUntilChanged((prev, next) => JSON.stringify(prev) === JSON.stringify(next))\n )\n ]).pipe(\n withLatestFrom(\n combineLatest([store.pipe(select(selectPlaceholderTemplateEntities)), store.pipe(select(selectPlaceholderRequestEntities))])\n ),\n map(([langAndTemplatesUrls, storedPlaceholdersAndRequests]) => {\n const [lang, placeholderActions] = langAndTemplatesUrls;\n const storedPlaceholders = storedPlaceholdersAndRequests[0] || {};\n const storedPlaceholderRequests = storedPlaceholdersAndRequests[1] || {};\n const placeholderNewRequests: { rawUrl: string; resolvedUrl: string }[] = [];\n // Stores all raw Urls used from the current engine execution\n const usedUrls: Record<string, boolean> = {};\n // Get all Urls that needs to be resolved from current rules engine output\n const placeholdersTemplates = placeholderActions.reduce((acc, placeholderAction) => {\n const placeholdersTemplateUrl = {\n rawUrl: placeholderAction.templateUrl,\n priority: placeholderAction.priority\n };\n if (acc[placeholderAction.placeholderId]) {\n acc[placeholderAction.placeholderId].push(placeholdersTemplateUrl);\n } else {\n acc[placeholderAction.placeholderId] = [placeholdersTemplateUrl];\n }\n const resolvedUrl = this.resolveUrlWithLang(placeholderAction.templateUrl, lang);\n // Filters duplicates and resolved urls that are already in the store\n if (!usedUrls[placeholderAction.templateUrl] && (!storedPlaceholderRequests[placeholderAction.templateUrl]\n || storedPlaceholderRequests[placeholderAction.templateUrl]!.resolvedUrl !== resolvedUrl)) {\n placeholderNewRequests.push({\n rawUrl: placeholderAction.templateUrl,\n resolvedUrl: this.resolveUrlWithLang(placeholderAction.templateUrl, lang)\n });\n }\n usedUrls[placeholderAction.templateUrl] = true;\n return acc;\n }, {} as { [key: string]: { rawUrl: string; priority: number }[] });\n // Urls not used anymore and not already disabled\n const placeholderRequestsToDisable: string[] = [];\n // Urls used that were disabled\n const placeholderRequestsToEnable: string[] = [];\n Object.keys(storedPlaceholderRequests).forEach((storedPlaceholderRequestRawUrl) => {\n const usedFromEngineIteration = usedUrls[storedPlaceholderRequestRawUrl];\n const usedFromStore = (storedPlaceholderRequests && storedPlaceholderRequests[storedPlaceholderRequestRawUrl]) ? storedPlaceholderRequests[storedPlaceholderRequestRawUrl].used : false;\n if (!usedFromEngineIteration && usedFromStore) {\n placeholderRequestsToDisable.push(storedPlaceholderRequestRawUrl);\n } else if (usedFromEngineIteration && !usedFromStore) {\n placeholderRequestsToEnable.push(storedPlaceholderRequestRawUrl);\n }\n });\n // Placeholder that are no longer filled by the current engine execution output will be cleared\n const placeholdersTemplatesToBeCleanedUp = Object.keys(storedPlaceholders)\n .filter((placeholderId) => !placeholdersTemplates[placeholderId]);\n\n const placeholdersTemplatesToBeSet = Object.keys(placeholdersTemplates).reduce((changedPlaceholderTemplates, placeholderTemplateId) => {\n // Caching if the placeholder template already exists with the same urls\n if (!storedPlaceholders[placeholderTemplateId]\n || !(JSON.stringify(storedPlaceholders[placeholderTemplateId].urlsWithPriority) === JSON.stringify(placeholdersTemplates[placeholderTemplateId]))) {\n changedPlaceholderTemplates.push({\n id: placeholderTemplateId,\n urlsWithPriority: placeholdersTemplates[placeholderTemplateId]\n });\n }\n return changedPlaceholderTemplates;\n }, [] as { id: string; urlsWithPriority: { rawUrl: string; priority: number }[] }[]);\n return {\n placeholdersTemplatesToBeCleanedUp,\n placeholderRequestsToDisable,\n placeholderRequestsToEnable,\n placeholdersTemplatesToBeSet,\n placeholderNewRequests\n };\n })\n );\n this.subscription.add(filteredActions$.subscribe((placeholdersUpdates) => {\n placeholdersUpdates.placeholdersTemplatesToBeCleanedUp.forEach((placeholderId) =>\n store.dispatch(deletePlaceholderTemplateEntity({\n id: placeholderId\n }))\n );\n placeholdersUpdates.placeholdersTemplatesToBeSet.forEach((placeholdersTemplateToBeSet) => {\n store.dispatch(setPlaceholderTemplateEntity({ entity: placeholdersTemplateToBeSet }));\n });\n placeholdersUpdates.placeholderRequestsToDisable.forEach((placeholderRequestToDisable) => {\n store.dispatch(updatePlaceholderRequestEntity({ entity: { id: placeholderRequestToDisable, used: false } }));\n });\n placeholdersUpdates.placeholderRequestsToEnable.forEach((placeholderRequestToEnable) => {\n store.dispatch(updatePlaceholderRequestEntity({ entity: { id: placeholderRequestToEnable, used: true } }));\n });\n placeholdersUpdates.placeholderNewRequests.forEach((placeholderNewRequest) => {\n store.dispatch(setPlaceholderRequestEntityFromUrl({\n resolvedUrl: placeholderNewRequest.resolvedUrl,\n id: placeholderNewRequest.rawUrl,\n call: this.retrieveTemplate(placeholderNewRequest.resolvedUrl)\n }));\n });\n }));\n }\n\n /**\n * Localize the url, replacing the language marker\n * @param url\n * @param language\n */\n protected resolveUrlWithLang(url: string, language: string | null): string {\n if (!language && url.includes('[LANGUAGE]')) {\n this.logger.warn(`Missing language when trying to resolve ${url}`);\n }\n return language ? url.replace(/\\[LANGUAGE]/g, language) : url;\n }\n\n /**\n * Retrieve template as json from a given url\n * @param url\n */\n protected async retrieveTemplate(url: string): Promise<PlaceholderRequestReply> {\n const resolvedUrl$ = this.injector.get(DynamicContentService, null, { optional: true })?.getContentPathStream(url) || of(url);\n const fullUrl = await firstValueFrom(resolvedUrl$);\n return fetch(fullUrl).then((response) => response.json());\n }\n\n /** @inheritdoc */\n public executeActions(actions: ActionUpdatePlaceholderBlock[]) {\n const templates = actions.map((action) => ({\n placeholderId: action.placeholderId,\n templateUrl: action.value,\n priority: action.priority || 0\n }));\n\n this.placeholdersActions$.next(templates);\n }\n\n /** @inheritdoc */\n public ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n}\n","import {\n Injectable,\n Optional,\n} from '@angular/core';\nimport {\n Actions,\n createEffect,\n ofType,\n} from '@ngrx/effects';\nimport {\n Store,\n} from '@ngrx/store';\nimport {\n fromApiEffectSwitchMapById,\n} from '@o3r/core';\nimport {\n DynamicContentService,\n} from '@o3r/dynamic-content';\nimport {\n LocalizationService,\n} from '@o3r/localization';\nimport {\n RulesEngineRunnerService,\n} from '@o3r/rules-engine';\nimport {\n JSONPath,\n} from 'jsonpath-plus';\nimport {\n combineLatest,\n EMPTY,\n Observable,\n of,\n} from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n switchMap,\n take,\n} from 'rxjs/operators';\nimport {\n cancelPlaceholderRequest,\n failPlaceholderRequestEntity,\n type PlaceholderRequestStore,\n type PlaceholderVariable,\n selectPlaceholderRequestEntityUsage,\n setPlaceholderRequestEntityFromUrl,\n updatePlaceholderRequestEntity,\n} from '@o3r/components';\n\n/**\n * Service to handle async PlaceholderTemplate actions\n */\n@Injectable()\nexport class PlaceholderTemplateResponseEffect {\n /**\n * Set the PlaceholderRequest entity with the reply content, dispatch failPlaceholderRequestEntity if it catches a failure\n * Handles the rendering of the HTML content from the template and creates the combine latest from facts list if needed\n * Disables unused templates refresh if used is false in the store\n */\n public setPlaceholderRequestEntityFromUrl$ = createEffect(() =>\n this.actions$.pipe(\n ofType(setPlaceholderRequestEntityFromUrl),\n fromApiEffectSwitchMapById(\n (templateResponse, action) => {\n const facts = templateResponse.vars ? Object.entries(templateResponse.vars).filter(([, variable]) => variable.type === 'fact') : [];\n const factsStreamsList = this.rulesEngineService\n ? facts.map(([varName, fact]) =>\n this.rulesEngineService!.engine.retrieveOrCreateFactStream(fact.value).pipe(\n map((factValue) => ({\n varName,\n factName: fact.value,\n // eslint-disable-next-line new-cap -- naming convention imposed by jsonpath-plus\n factValue: (fact.path && factValue) ? JSONPath({ wrap: false, json: factValue, path: fact.path }) : factValue\n })),\n distinctUntilChanged((previous, current) => previous.factValue === current.factValue)\n ))\n : [];\n\n const factsStreamsList$ = factsStreamsList.length > 0 ? combineLatest(factsStreamsList) : of([]);\n return combineLatest([factsStreamsList$, this.store.select(selectPlaceholderRequestEntityUsage(action.id)).pipe(distinctUntilChanged())]).pipe(\n switchMap(([factsUsedInTemplate, placeholderRequestUsage]) => {\n if (!placeholderRequestUsage) {\n return EMPTY;\n }\n return this.getRenderedHTML$(templateResponse.template, templateResponse.vars, factsUsedInTemplate).pipe(\n map(({ renderedTemplate, unknownTypeFound }) =>\n // Update instead of set because used already set by the update from url action\n updatePlaceholderRequestEntity({\n entity: {\n ...templateResponse,\n resolvedUrl: action.resolvedUrl,\n id: action.id,\n renderedTemplate,\n unknownTypeFound\n },\n requestId: action.requestId\n })\n )\n );\n }));\n },\n (error, action) => of(failPlaceholderRequestEntity({ ids: [action.id], error, requestId: action.requestId })),\n (requestIdPayload, action) => cancelPlaceholderRequest({ ...requestIdPayload, id: action.id })\n )\n )\n );\n\n constructor(\n private readonly actions$: Actions,\n private readonly store: Store<PlaceholderRequestStore>,\n @Optional() private readonly rulesEngineService: RulesEngineRunnerService | null,\n @Optional() private readonly dynamicContentService: DynamicContentService | null,\n @Optional() private readonly translationService: LocalizationService | null) {}\n\n /**\n * Renders the html template, replacing facts and urls and localizationKeys\n * @param template\n * @param vars\n * @param facts\n */\n private getRenderedHTML$(template?: string, vars?: Record<string, PlaceholderVariable>, facts?: { varName: string; factName: string; factValue: any }[]) {\n let unknownTypeFound = false;\n const factMap = (facts || []).reduce((mapping: { [key: string]: any }, fact) => {\n mapping[fact.factName] = fact.factValue;\n return mapping;\n }, {});\n const factMapFromVars = (facts || []).reduce((mapping: { [key: string]: any }, fact) => {\n mapping[fact.varName] = fact.factValue;\n return mapping;\n }, {});\n const replacements$: Observable<{ ejsVar: RegExp; value: string } | null>[] = [];\n if (vars && template) {\n for (const varName in vars) {\n if (Object.prototype.hasOwnProperty.call(vars, varName)) {\n const ejsVar = new RegExp(`<%=\\\\s*${varName}\\\\s*%>`, 'g');\n switch (vars[varName].type) {\n case 'relativeUrl': {\n replacements$.push(\n this.dynamicContentService?.getMediaPathStream(vars[varName].value).pipe(\n take(1),\n map((value: string) => ({ ejsVar, value }))\n ) || of({ ejsVar, value: vars[varName].value })\n );\n break;\n }\n case 'fullUrl': {\n template = template.replace(ejsVar, vars[varName].value);\n break;\n }\n case 'fact': {\n template = template.replace(ejsVar, factMap[vars[varName].value] ?? '');\n break;\n }\n case 'localisation': {\n const linkedVars = (vars[varName].vars || []).reduce((acc: { [key: string]: any }, parameter) => {\n const paramName = vars[parameter].value;\n acc[paramName] = factMap[paramName];\n return acc;\n }, {});\n const linkedParams = (Object.entries(vars[varName].parameters || {})).reduce((acc: { [key: string]: any }, [paramKey, paramValue]) => {\n acc[paramKey] = factMapFromVars[paramValue];\n return acc;\n }, linkedVars);\n replacements$.push(\n this.translationService\n ? this.translationService.translate(vars[varName].value, linkedParams).pipe(\n map((value) => (value ? { ejsVar, value } : null))\n )\n : of(null)\n );\n break;\n }\n default : {\n unknownTypeFound = true;\n break;\n }\n }\n }\n }\n }\n return replacements$.length > 0 && !!template\n ? combineLatest(replacements$).pipe(\n map((replacements) => ({\n renderedTemplate: replacements.reduce(\n (acc, replacement) =>\n replacement ? acc.replace(replacement.ejsVar, replacement.value) : acc,\n template\n ),\n unknownTypeFound\n }))\n )\n : of({ renderedTemplate: template, unknownTypeFound });\n }\n}\n","import {\n NgModule,\n} from '@angular/core';\nimport {\n EffectsModule,\n} from '@ngrx/effects';\nimport {\n PlaceholderRulesEngineActionHandler,\n} from './placeholder.action-handler';\nimport {\n PlaceholderTemplateResponseEffect,\n} from './placeholder.rules-engine.effect';\nimport {\n PlaceholderRequestStoreModule,\n PlaceholderTemplateStoreModule,\n} from '@o3r/components';\n\n@NgModule({\n imports: [\n EffectsModule.forFeature([PlaceholderTemplateResponseEffect]),\n PlaceholderRequestStoreModule,\n PlaceholderTemplateStoreModule\n ],\n providers: [\n PlaceholderRulesEngineActionHandler\n ]\n})\nexport class PlaceholderRulesEngineActionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["map","distinctUntilChanged","i1","i2","i3","i5"],"mappings":"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"}