@o3r/components 12.0.0-next.2 → 12.0.0-next.21

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 (114) hide show
  1. package/builders/component-extractor/helpers/component/component-config.extractor.js +2 -2
  2. package/builders/component-extractor/helpers/component/component-config.extractor.js.map +1 -1
  3. package/builders/component-extractor/helpers/component/component.extractor.d.ts.map +1 -1
  4. package/builders/component-extractor/helpers/component/component.extractor.js +3 -0
  5. package/builders/component-extractor/helpers/component/component.extractor.js.map +1 -1
  6. package/builders/component-extractor/index.d.ts.map +1 -1
  7. package/builders/component-extractor/index.js +1 -0
  8. package/builders/component-extractor/index.js.map +1 -1
  9. package/builders/metadata-check/helpers/config-metadata-comparison.helper.d.ts.map +1 -1
  10. package/builders/metadata-check/helpers/config-metadata-comparison.helper.js +1 -3
  11. package/builders/metadata-check/helpers/config-metadata-comparison.helper.js.map +1 -1
  12. package/builders/package.json +3 -0
  13. package/fesm2022/o3r-components-rules-engine.mjs +11 -16
  14. package/fesm2022/o3r-components-rules-engine.mjs.map +1 -1
  15. package/fesm2022/o3r-components.mjs +64 -183
  16. package/fesm2022/o3r-components.mjs.map +1 -1
  17. package/package.json +26 -29
  18. package/rules-engine/package.json +3 -0
  19. package/rules-engine/placeholder.rules-engine.effect.d.ts +2 -2
  20. package/rules-engine/placeholder.rules-engine.effect.d.ts.map +1 -1
  21. package/schemas/placeholder-template.schema.json +0 -8
  22. package/schematics/package.json +3 -0
  23. package/stores/placeholder-request/placeholder-request.state.d.ts +0 -1
  24. package/stores/placeholder-request/placeholder-request.state.d.ts.map +1 -1
  25. package/tools/component-replacement/c11n.directive.d.ts.map +1 -1
  26. package/tools/component-replacement/c11n.mock.module.d.ts.map +1 -1
  27. package/tools/pipes/capitalize/capitalize.pipe.d.ts +0 -7
  28. package/tools/pipes/capitalize/capitalize.pipe.d.ts.map +1 -1
  29. package/tools/pipes/capitalize/index.d.ts +0 -1
  30. package/tools/pipes/capitalize/index.d.ts.map +1 -1
  31. package/tools/pipes/duration/duration.pipe.d.ts +0 -8
  32. package/tools/pipes/duration/duration.pipe.d.ts.map +1 -1
  33. package/tools/pipes/duration/index.d.ts +0 -1
  34. package/tools/pipes/duration/index.d.ts.map +1 -1
  35. package/tools/pipes/keep-white-space/index.d.ts +0 -1
  36. package/tools/pipes/keep-white-space/index.d.ts.map +1 -1
  37. package/tools/pipes/keep-white-space/keep-white-space.pipe.d.ts +1 -8
  38. package/tools/pipes/keep-white-space/keep-white-space.pipe.d.ts.map +1 -1
  39. package/tools/pipes/replace-with-bold/index.d.ts +0 -1
  40. package/tools/pipes/replace-with-bold/index.d.ts.map +1 -1
  41. package/tools/pipes/replace-with-bold/replace-with-bold.pipe.d.ts +0 -8
  42. package/tools/pipes/replace-with-bold/replace-with-bold.pipe.d.ts.map +1 -1
  43. package/tools/placeholder/placeholder.component.d.ts.map +1 -1
  44. package/esm2022/core/component.output.mjs +0 -2
  45. package/esm2022/core/index.mjs +0 -3
  46. package/esm2022/core/rendering/helpers.mjs +0 -31
  47. package/esm2022/core/rendering/index.mjs +0 -2
  48. package/esm2022/devkit/components-devkit.interface.mjs +0 -13
  49. package/esm2022/devkit/components-devtools.message.service.mjs +0 -115
  50. package/esm2022/devkit/components-devtools.module.mjs +0 -43
  51. package/esm2022/devkit/components-devtools.token.mjs +0 -6
  52. package/esm2022/devkit/index.mjs +0 -6
  53. package/esm2022/devkit/inspector/index.mjs +0 -4
  54. package/esm2022/devkit/inspector/ng/index.mjs +0 -2
  55. package/esm2022/devkit/inspector/ng/ng.mjs +0 -2
  56. package/esm2022/devkit/inspector/otter-inspector.helpers.mjs +0 -114
  57. package/esm2022/devkit/inspector/otter-inspector.service.mjs +0 -166
  58. package/esm2022/o3r-components.mjs +0 -5
  59. package/esm2022/public_api.mjs +0 -5
  60. package/esm2022/rules-engine/o3r-components-rules-engine.mjs +0 -5
  61. package/esm2022/rules-engine/placeholder.action-handler.mjs +0 -156
  62. package/esm2022/rules-engine/placeholder.interfaces.mjs +0 -3
  63. package/esm2022/rules-engine/placeholder.rules-engine.effect.mjs +0 -136
  64. package/esm2022/rules-engine/placeholder.rules-engine.module.mjs +0 -31
  65. package/esm2022/rules-engine/public_api.mjs +0 -4
  66. package/esm2022/stores/index.mjs +0 -3
  67. package/esm2022/stores/placeholder-request/index.mjs +0 -7
  68. package/esm2022/stores/placeholder-request/placeholder-request.actions.mjs +0 -18
  69. package/esm2022/stores/placeholder-request/placeholder-request.module.mjs +0 -39
  70. package/esm2022/stores/placeholder-request/placeholder-request.reducer.mjs +0 -71
  71. package/esm2022/stores/placeholder-request/placeholder-request.selectors.mjs +0 -15
  72. package/esm2022/stores/placeholder-request/placeholder-request.state.mjs +0 -5
  73. package/esm2022/stores/placeholder-request/placeholder-request.sync.mjs +0 -18
  74. package/esm2022/stores/placeholder-template/index.mjs +0 -7
  75. package/esm2022/stores/placeholder-template/placeholder-template.actions.mjs +0 -10
  76. package/esm2022/stores/placeholder-template/placeholder-template.module.mjs +0 -39
  77. package/esm2022/stores/placeholder-template/placeholder-template.reducer.mjs +0 -39
  78. package/esm2022/stores/placeholder-template/placeholder-template.selectors.mjs +0 -70
  79. package/esm2022/stores/placeholder-template/placeholder-template.state.mjs +0 -5
  80. package/esm2022/stores/placeholder-template/placeholder-template.sync.mjs +0 -15
  81. package/esm2022/tools/component-replacement/c11n.directive.mjs +0 -159
  82. package/esm2022/tools/component-replacement/c11n.helpers.mjs +0 -11
  83. package/esm2022/tools/component-replacement/c11n.mock.module.mjs +0 -46
  84. package/esm2022/tools/component-replacement/c11n.module.mjs +0 -47
  85. package/esm2022/tools/component-replacement/c11n.service.mjs +0 -37
  86. package/esm2022/tools/component-replacement/c11n.token.mjs +0 -6
  87. package/esm2022/tools/component-replacement/index.mjs +0 -7
  88. package/esm2022/tools/index.mjs +0 -4
  89. package/esm2022/tools/pipes/capitalize/capitalize.module.mjs +0 -19
  90. package/esm2022/tools/pipes/capitalize/capitalize.pipe.mjs +0 -27
  91. package/esm2022/tools/pipes/capitalize/index.mjs +0 -3
  92. package/esm2022/tools/pipes/duration/duration.model.mjs +0 -20
  93. package/esm2022/tools/pipes/duration/duration.module.mjs +0 -19
  94. package/esm2022/tools/pipes/duration/duration.pipe.mjs +0 -78
  95. package/esm2022/tools/pipes/duration/index.mjs +0 -3
  96. package/esm2022/tools/pipes/index.mjs +0 -5
  97. package/esm2022/tools/pipes/keep-white-space/index.mjs +0 -3
  98. package/esm2022/tools/pipes/keep-white-space/keep-white-space.module.mjs +0 -19
  99. package/esm2022/tools/pipes/keep-white-space/keep-white-space.pipe.mjs +0 -29
  100. package/esm2022/tools/pipes/replace-with-bold/index.mjs +0 -3
  101. package/esm2022/tools/pipes/replace-with-bold/replace-with-bold.module.mjs +0 -19
  102. package/esm2022/tools/pipes/replace-with-bold/replace-with-bold.pipe.mjs +0 -40
  103. package/esm2022/tools/placeholder/index.mjs +0 -3
  104. package/esm2022/tools/placeholder/placeholder.component.mjs +0 -83
  105. package/esm2022/tools/placeholder/placeholder.interface.mjs +0 -2
  106. package/esm2022/tools/placeholder/placeholder.module.mjs +0 -32
  107. package/tools/pipes/capitalize/capitalize.module.d.ts +0 -11
  108. package/tools/pipes/capitalize/capitalize.module.d.ts.map +0 -1
  109. package/tools/pipes/duration/duration.module.d.ts +0 -11
  110. package/tools/pipes/duration/duration.module.d.ts.map +0 -1
  111. package/tools/pipes/keep-white-space/keep-white-space.module.d.ts +0 -11
  112. package/tools/pipes/keep-white-space/keep-white-space.module.d.ts.map +0 -1
  113. package/tools/pipes/replace-with-bold/replace-with-bold.module.d.ts +0 -11
  114. package/tools/pipes/replace-with-bold/replace-with-bold.module.d.ts.map +0 -1
@@ -1,2 +0,0 @@
1
- export * from './ng';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGV2a2l0L2luc3BlY3Rvci9uZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmcnO1xuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGV2a2l0L2luc3BlY3Rvci9uZy9uZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBOZyB7XG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGNvbXBvbmVudCBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBET00gZWxlbWVudC5cbiAgICpcbiAgICogVXNhZ2U6XG4gICAqXG4gICAqIEdpdmVuIHRoZSBmb2xsb3dpbmcgRE9NIHN0cnVjdHVyZTpcbiAgICogYGBgaHRtbFxuICAgKiA8bXktYXBwPlxuICAgKiAgIDxkaXY+XG4gICAqICAgICA8Y2hpbGQtY29tcD48L2NoaWxkLWNvbXA+XG4gICAqICAgPC9kaXY+XG4gICAqIDwvbXktYXBwPlxuICAgKiBgYGBcbiAgICogQ2FsbGluZyBgZ2V0Q29tcG9uZW50YCBvbiBgPGNoaWxkLWNvbXA+YCB3aWxsIHJldHVybiB0aGUgaW5zdGFuY2Ugb2YgYENoaWxkQ29tcG9uZW50YFxuICAgKiBhc3NvY2lhdGVkIHdpdGggdGhpcyBET00gZWxlbWVudC5cbiAgICpcbiAgICogQ2FsbGluZyB0aGUgZnVuY3Rpb24gb24gYDxteS1hcHA+YCB3aWxsIHJldHVybiB0aGUgYE15QXBwYCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIGVsZW1lbnQgRE9NIGVsZW1lbnQgZnJvbSB3aGljaCB0aGUgY29tcG9uZW50IHNob3VsZCBiZSByZXRyaWV2ZWQuXG4gICAqIEByZXR1cm5zIENvbXBvbmVudCBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhlIGVsZW1lbnQgb3IgYG51bGxgIGlmIHRoZXJlXG4gICAqICAgIGlzIG5vIGNvbXBvbmVudCBhc3NvY2lhdGVkIHdpdGggaXQuXG4gICAqL1xuICBnZXRDb21wb25lbnQ8VCA9IGFueT4oZWxlbWVudDogRWxlbWVudCk6IFQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGNvbXBvbmVudCBpbnN0YW5jZSB3aG9zZSB2aWV3IGNvbnRhaW5zIHRoZSBET00gZWxlbWVudC5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGlmIGA8Y2hpbGQtY29tcD5gIGlzIHVzZWQgaW4gdGhlIHRlbXBsYXRlIG9mIGA8YXBwLWNvbXA+YFxuICAgKiAoaS5lLiBhIGBWaWV3Q2hpbGRgIG9mIGA8YXBwLWNvbXA+YCksIGNhbGxpbmcgYGdldE93bmluZ0NvbXBvbmVudGAgb24gYDxjaGlsZC1jb21wPmBcbiAgICogd291bGQgcmV0dXJuIGA8YXBwLWNvbXA+YC5cbiAgICogQHBhcmFtIGVsZW1lbnRPckRpciBET00gZWxlbWVudCwgY29tcG9uZW50IG9yIGRpcmVjdGl2ZSBpbnN0YW5jZVxuICAgKiAgICBmb3Igd2hpY2ggdG8gcmV0cmlldmUgdGhlIHJvb3QgY29tcG9uZW50cy5cbiAgICogQHJldHVybnMgQ29tcG9uZW50IGluc3RhbmNlIHdob3NlIHZpZXcgb3ducyB0aGUgRE9NIGVsZW1lbnQgb3IgbnVsbCBpZiB0aGUgZWxlbWVudCBpcyBub3RcbiAgICogICAgcGFydCBvZiBhIGNvbXBvbmVudCB2aWV3LlxuICAgKi9cbiAgZ2V0T3duaW5nQ29tcG9uZW50PFQgPSBhbnk+KGVsZW1lbnRPckRpcjogRWxlbWVudCB8IG9iamVjdCk6IFQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGhvc3QgZWxlbWVudCBvZiBhIGNvbXBvbmVudCBvciBkaXJlY3RpdmUgaW5zdGFuY2UuXG4gICAqIFRoZSBob3N0IGVsZW1lbnQgaXMgdGhlIERPTSBlbGVtZW50IHRoYXQgbWF0Y2hlZCB0aGUgc2VsZWN0b3Igb2YgdGhlIGRpcmVjdGl2ZS5cbiAgICogQHBhcmFtIGNvbXBvbmVudE9yRGlyZWN0aXZlIENvbXBvbmVudCBvciBkaXJlY3RpdmUgaW5zdGFuY2UgZm9yIHdoaWNoIHRoZSBob3N0XG4gICAqICAgICBlbGVtZW50IHNob3VsZCBiZSByZXRyaWV2ZWQuXG4gICAqIEByZXR1cm5zIEhvc3QgZWxlbWVudCBvZiB0aGUgdGFyZ2V0LlxuICAgKi9cbiAgZ2V0SG9zdEVsZW1lbnQoY29tcG9uZW50T3JEaXJlY3RpdmU6IG9iamVjdCk6IEVsZW1lbnQ7XG59XG4iXX0=
@@ -1,114 +0,0 @@
1
- import { otterComponentInfoPropertyName, } from '@o3r/core';
2
- /**
3
- * Otter inspector css class
4
- */
5
- export const INSPECTOR_CLASS = 'otter-devtools-inspector';
6
- /**
7
- * Determine if a node is an Otter container
8
- * @param node Element to check
9
- * @returns true if the node is an Otter container
10
- */
11
- export const isContainer = (node) => {
12
- return !!node?.tagName.toLowerCase().endsWith('cont');
13
- };
14
- /**
15
- * Determine the config id of a component instance
16
- * @param instance component instance
17
- * @returns the config id of the component instance
18
- */
19
- export const getConfigId = (instance) => {
20
- return instance[otterComponentInfoPropertyName]?.configId;
21
- };
22
- /**
23
- * Recursive method to determin the translations of a node
24
- * @param node HTMLElement to check
25
- * @param rec recursive method
26
- * @returns the trasnslations associated to their component name
27
- */
28
- export function getTranslationsRec(node, rec) {
29
- const angularDevTools = window.ng;
30
- const o3rInfoProperty = '__otter-info__';
31
- if (!node || !angularDevTools) {
32
- return;
33
- }
34
- const component = angularDevTools.getComponent(node);
35
- const subTranslations = Array.from(node.children).map((child) => rec(child, rec));
36
- const translations = {};
37
- subTranslations.forEach((s) => {
38
- Object.entries(s || {}).forEach(([k, v]) => {
39
- if (v.length > 0) {
40
- translations[k] = v;
41
- }
42
- });
43
- });
44
- if (component) {
45
- const componentName = component.constructor.name;
46
- const componentTranslations = Object.values(component[o3rInfoProperty]?.translations || {}).filter((t) => typeof t === 'string');
47
- if (componentTranslations.length > 0) {
48
- translations[componentName] = componentTranslations;
49
- }
50
- }
51
- return Object.keys(translations).length > 0 ? translations : undefined;
52
- }
53
- /**
54
- * Determine the translations of a node
55
- * @param node HTMLElement to check
56
- * @returns the translations associated to their component name
57
- */
58
- export const getTranslations = (node) => getTranslationsRec(node, getTranslations);
59
- /**
60
- * Recursive method to determine the analytics of a node
61
- * @param node Element to check
62
- * @param rec recursive method
63
- * @returns the analytics associated to their component name
64
- */
65
- export function getAnalyticEventsRec(node, rec) {
66
- const angularDevTools = window.ng;
67
- const o3rInfoProperty = '__otter-info__';
68
- if (!node || !angularDevTools) {
69
- return;
70
- }
71
- const component = angularDevTools.getComponent(node);
72
- const subEvents = Array.from(node.children).map((child) => rec(child, rec));
73
- const events = {};
74
- subEvents.forEach((s) => {
75
- Object.entries(s || {}).forEach(([k, v]) => {
76
- if (v.length > 0) {
77
- events[k] = v;
78
- }
79
- });
80
- });
81
- if (component && component[o3rInfoProperty]) {
82
- const componentName = component.constructor.name;
83
- const componentEvents = Object.values(component.analyticsEvents || {}).map((eventConstructor) => eventConstructor.name);
84
- if (componentEvents.length > 0) {
85
- events[componentName] = componentEvents;
86
- }
87
- }
88
- return Object.keys(events).length > 0 ? events : undefined;
89
- }
90
- /**
91
- * Determine the analytics of a node
92
- * @param node Element to check
93
- * @returns the analytics associated to their component name
94
- */
95
- export const getAnalyticEvents = (node) => getAnalyticEventsRec(node, getAnalyticEvents);
96
- /**
97
- * Determine all info from an Otter component
98
- * @param componentClassInstance component instance
99
- * @param host HTML element hosting the component
100
- * @returns all info from an Otter component
101
- */
102
- export const getOtterLikeComponentInfo = (componentClassInstance, host) => {
103
- const configId = getConfigId(componentClassInstance);
104
- const translations = getTranslations(host);
105
- const analytics = getAnalyticEvents(host);
106
- return {
107
- // Cannot use anymore `constructor.name` else all components are named `_a`
108
- componentName: componentClassInstance.constructor.ɵcmp?.debugInfo?.className || componentClassInstance.constructor.name,
109
- configId,
110
- translations,
111
- analytics
112
- };
113
- };
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3R0ZXItaW5zcGVjdG9yLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGV2a2l0L2luc3BlY3Rvci9vdHRlci1pbnNwZWN0b3IuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsOEJBQThCLEdBQy9CLE1BQU0sV0FBVyxDQUFDO0FBZW5COztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLDBCQUEwQixDQUFDO0FBRTFEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFnQyxFQUFtQixFQUFFO0lBQy9FLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hELENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxRQUFhLEVBQUUsRUFBRTtJQUMzQyxPQUFPLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFLFFBQVEsQ0FBQztBQUM1RCxDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFvQixFQUFFLEdBQThCO0lBQ3JGLE1BQU0sZUFBZSxHQUFJLE1BQWMsQ0FBQyxFQUFFLENBQUM7SUFDM0MsTUFBTSxlQUFlLEdBQTBDLGdCQUFnQixDQUFDO0lBQ2hGLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM5QixPQUFPO0lBQ1QsQ0FBQztJQUNELE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsTUFBTSxlQUFlLEdBQTZDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFF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QUFlLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZJLElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsZUFBZSxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQzdELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFvQixFQUF3QyxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFFL0k7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLHNCQUEyQixFQUFFLElBQWEsRUFBMEIsRUFBRTtJQUM5RyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNyRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsT0FBTztRQUNMLDJFQUEyRTtRQUMzRSxhQUFhLEVBQUUsc0JBQXNCLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxJQUFJLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxJQUFJO1FBQ3ZILFFBQVE7UUFDUixZQUFZO1FBQ1osU0FBUztLQUNWLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBvdHRlckNvbXBvbmVudEluZm9Qcm9wZXJ0eU5hbWUsXG59IGZyb20gJ0BvM3IvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3R0ZXJMaWtlQ29tcG9uZW50SW5mbyB7XG4gIC8qKiBDb250YWluZXIgaW5mb3JtYXRpb24gKi9cbiAgY29udGFpbmVyPzogT3R0ZXJMaWtlQ29tcG9uZW50SW5mbztcbiAgLyoqIENvbmZpZ3VyYXRpb24gSUQgKi9cbiAgY29uZmlnSWQ/OiBzdHJpbmc7XG4gIC8qKiBDb21wb25lbnQgbmFtZSAqL1xuICBjb21wb25lbnROYW1lOiBzdHJpbmc7XG4gIC8qKiBDb21wb25lbnQgdHJhbnNsYXRpb24gKi9cbiAgdHJhbnNsYXRpb25zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+O1xuICAvKiogQ29tcG9uZW50IGFuYWx5dGljcyAqL1xuICBhbmFseXRpY3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG59XG5cbi8qKlxuICogT3R0ZXIgaW5zcGVjdG9yIGNzcyBjbGFzc1xuICovXG5leHBvcnQgY29uc3QgSU5TUEVDVE9SX0NMQVNTID0gJ290dGVyLWRldnRvb2xzLWluc3BlY3Rvcic7XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgbm9kZSBpcyBhbiBPdHRlciBjb250YWluZXJcbiAqIEBwYXJhbSBub2RlIEVsZW1lbnQgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIG5vZGUgaXMgYW4gT3R0ZXIgY29udGFpbmVyXG4gKi9cbmV4cG9ydCBjb25zdCBpc0NvbnRhaW5lciA9IChub2RlOiBFbGVtZW50IHwgdW5kZWZpbmVkIHwgbnVsbCk6IG5vZGUgaXMgRWxlbWVudCA9PiB7XG4gIHJldHVybiAhIW5vZGU/LnRhZ05hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnY29udCcpO1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgdGhlIGNvbmZpZyBpZCBvZiBhIGNvbXBvbmVudCBpbnN0YW5jZVxuICogQHBhcmFtIGluc3RhbmNlIGNvbXBvbmVudCBpbnN0YW5jZVxuICogQHJldHVybnMgdGhlIGNvbmZpZyBpZCBvZiB0aGUgY29tcG9uZW50IGluc3RhbmNlXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDb25maWdJZCA9IChpbnN0YW5jZTogYW55KSA9PiB7XG4gIHJldHVybiBpbnN0YW5jZVtvdHRlckNvbXBvbmVudEluZm9Qcm9wZXJ0eU5hbWVdPy5jb25maWdJZDtcbn07XG5cbi8qKlxuICogUmVjdXJzaXZlIG1ldGhvZCB0byBkZXRlcm1pbiB0aGUgdHJhbnNsYXRpb25zIG9mIGEgbm9kZVxuICogQHBhcmFtIG5vZGUgSFRNTEVsZW1lbnQgdG8gY2hlY2tcbiAqIEBwYXJhbSByZWMgcmVjdXJzaXZlIG1ldGhvZFxuICogQHJldHVybnMgdGhlIHRyYXNuc2xhdGlvbnMgYXNzb2NpYXRlZCB0byB0aGVpciBjb21wb25lbnQgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNsYXRpb25zUmVjKG5vZGU6IEVsZW1lbnQgfCBudWxsLCByZWM6IHR5cGVvZiBnZXRUcmFuc2xhdGlvbnNSZWMpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCB1bmRlZmluZWQge1xuICBjb25zdCBhbmd1bGFyRGV2VG9vbHMgPSAod2luZG93IGFzIGFueSkubmc7XG4gIGNvbnN0IG8zckluZm9Qcm9wZXJ0eTogdHlwZW9mIG90dGVyQ29tcG9uZW50SW5mb1Byb3BlcnR5TmFtZSA9ICdfX290dGVyLWluZm9fXyc7XG4gIGlmICghbm9kZSB8fCAhYW5ndWxhckRldlRvb2xzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGNvbXBvbmVudCA9IGFuZ3VsYXJEZXZUb29scy5nZXRDb21wb25lbnQobm9kZSk7XG4gIGNvbnN0IHN1YlRyYW5zbGF0aW9uczogKFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiB8IHVuZGVmaW5lZClbXSA9IEFycmF5LmZyb20obm9kZS5jaGlsZHJlbikubWFwKChjaGlsZCkgPT4gcmVjKGNoaWxkLCByZWMpKTtcbiAgY29uc3QgdHJhbnNsYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7fTtcbiAgc3ViVHJhbnNsYXRpb25zLmZvckVhY2goKHMpID0+IHtcbiAgICBPYmplY3QuZW50cmllcyhzIHx8IHt9KS5mb3JFYWNoKChbaywgdl0pID0+IHtcbiAgICAgIGlmICh2Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgdHJhbnNsYXRpb25zW2tdID0gdjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIGlmIChjb21wb25lbnQpIHtcbiAgICBjb25zdCBjb21wb25lbnROYW1lOiBzdHJpbmcgPSBjb21wb25lbnQuY29uc3RydWN0b3IubmFtZTtcbiAgICBjb25zdCBjb21wb25lbnRUcmFuc2xhdGlvbnMgPSBPYmplY3QudmFsdWVzPHN0cmluZz4oY29tcG9uZW50W28zckluZm9Qcm9wZXJ0eV0/LnRyYW5zbGF0aW9ucyB8fCB7fSkuZmlsdGVyKCh0KSA9PiB0eXBlb2YgdCA9PT0gJ3N0cmluZycpO1xuICAgIGlmIChjb21wb25lbnRUcmFuc2xhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgdHJhbnNsYXRpb25zW2NvbXBvbmVudE5hbWVdID0gY29tcG9uZW50VHJhbnNsYXRpb25zO1xuICAgIH1cbiAgfVxuICByZXR1cm4gT2JqZWN0LmtleXModHJhbnNsYXRpb25zKS5sZW5ndGggPiAwID8gdHJhbnNsYXRpb25zIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIERldGVybWluZSB0aGUgdHJhbnNsYXRpb25zIG9mIGEgbm9kZVxuICogQHBhcmFtIG5vZGUgSFRNTEVsZW1lbnQgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHRoZSB0cmFuc2xhdGlvbnMgYXNzb2NpYXRlZCB0byB0aGVpciBjb21wb25lbnQgbmFtZVxuICovXG5leHBvcnQgY29uc3QgZ2V0VHJhbnNsYXRpb25zID0gKG5vZGU6IEVsZW1lbnQgfCBudWxsKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgdW5kZWZpbmVkID0+IGdldFRyYW5zbGF0aW9uc1JlYyhub2RlLCBnZXRUcmFuc2xhdGlvbnMpO1xuXG4vKipcbiAqIFJlY3Vyc2l2ZSBtZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSBhbmFseXRpY3Mgb2YgYSBub2RlXG4gKiBAcGFyYW0gbm9kZSBFbGVtZW50IHRvIGNoZWNrXG4gKiBAcGFyYW0gcmVjIHJlY3Vyc2l2ZSBtZXRob2RcbiAqIEByZXR1cm5zIHRoZSBhbmFseXRpY3MgYXNzb2NpYXRlZCB0byB0aGVpciBjb21wb25lbnQgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QW5hbHl0aWNFdmVudHNSZWMobm9kZTogRWxlbWVudCB8IG51bGwsIHJlYzogdHlwZW9mIGdldEFuYWx5dGljRXZlbnRzUmVjKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgYW5ndWxhckRldlRvb2xzID0gKHdpbmRvdyBhcyBhbnkpLm5nO1xuICBjb25zdCBvM3JJbmZvUHJvcGVydHk6IHR5cGVvZiBvdHRlckNvbXBvbmVudEluZm9Qcm9wZXJ0eU5hbWUgPSAnX19vdHRlci1pbmZvX18nO1xuICBpZiAoIW5vZGUgfHwgIWFuZ3VsYXJEZXZUb29scykge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBjb21wb25lbnQgPSBhbmd1bGFyRGV2VG9vbHMuZ2V0Q29tcG9uZW50KG5vZGUpO1xuICBjb25zdCBzdWJFdmVudHMgPSBBcnJheS5mcm9tKG5vZGUuY2hpbGRyZW4pLm1hcCgoY2hpbGQpID0+IHJlYyhjaGlsZCwgcmVjKSk7XG4gIGNvbnN0IGV2ZW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG4gIHN1YkV2ZW50cy5mb3JFYWNoKChzKSA9PiB7XG4gICAgT2JqZWN0LmVudHJpZXMocyB8fCB7fSkuZm9yRWFjaCgoW2ssIHZdKSA9PiB7XG4gICAgICBpZiAodi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGV2ZW50c1trXSA9IHY7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuICBpZiAoY29tcG9uZW50ICYmIGNvbXBvbmVudFtvM3JJbmZvUHJvcGVydHldKSB7XG4gICAgY29uc3QgY29tcG9uZW50TmFtZTogc3RyaW5nID0gY29tcG9uZW50LmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgY29uc3QgY29tcG9uZW50RXZlbnRzOiBzdHJpbmdbXSA9IE9iamVjdC52YWx1ZXM8YW55Pihjb21wb25lbnQuYW5hbHl0aWNzRXZlbnRzIHx8IHt9KS5tYXAoKGV2ZW50Q29uc3RydWN0b3IpID0+IGV2ZW50Q29uc3RydWN0b3IubmFtZSk7XG4gICAgaWYgKGNvbXBvbmVudEV2ZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBldmVudHNbY29tcG9uZW50TmFtZV0gPSBjb21wb25lbnRFdmVudHM7XG4gICAgfVxuICB9XG4gIHJldHVybiBPYmplY3Qua2V5cyhldmVudHMpLmxlbmd0aCA+IDAgPyBldmVudHMgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIHRoZSBhbmFseXRpY3Mgb2YgYSBub2RlXG4gKiBAcGFyYW0gbm9kZSBFbGVtZW50IHRvIGNoZWNrXG4gKiBAcmV0dXJucyB0aGUgYW5hbHl0aWNzIGFzc29jaWF0ZWQgdG8gdGhlaXIgY29tcG9uZW50IG5hbWVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFuYWx5dGljRXZlbnRzID0gKG5vZGU6IEVsZW1lbnQgfCBudWxsKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgdW5kZWZpbmVkID0+IGdldEFuYWx5dGljRXZlbnRzUmVjKG5vZGUsIGdldEFuYWx5dGljRXZlbnRzKTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgYWxsIGluZm8gZnJvbSBhbiBPdHRlciBjb21wb25lbnRcbiAqIEBwYXJhbSBjb21wb25lbnRDbGFzc0luc3RhbmNlIGNvbXBvbmVudCBpbnN0YW5jZVxuICogQHBhcmFtIGhvc3QgSFRNTCBlbGVtZW50IGhvc3RpbmcgdGhlIGNvbXBvbmVudFxuICogQHJldHVybnMgYWxsIGluZm8gZnJvbSBhbiBPdHRlciBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldE90dGVyTGlrZUNvbXBvbmVudEluZm8gPSAoY29tcG9uZW50Q2xhc3NJbnN0YW5jZTogYW55LCBob3N0OiBFbGVtZW50KTogT3R0ZXJMaWtlQ29tcG9uZW50SW5mbyA9PiB7XG4gIGNvbnN0IGNvbmZpZ0lkID0gZ2V0Q29uZmlnSWQoY29tcG9uZW50Q2xhc3NJbnN0YW5jZSk7XG4gIGNvbnN0IHRyYW5zbGF0aW9ucyA9IGdldFRyYW5zbGF0aW9ucyhob3N0KTtcbiAgY29uc3QgYW5hbHl0aWNzID0gZ2V0QW5hbHl0aWNFdmVudHMoaG9zdCk7XG4gIHJldHVybiB7XG4gICAgLy8gQ2Fubm90IHVzZSBhbnltb3JlIGBjb25zdHJ1Y3Rvci5uYW1lYCBlbHNlIGFsbCBjb21wb25lbnRzIGFyZSBuYW1lZCBgX2FgXG4gICAgY29tcG9uZW50TmFtZTogY29tcG9uZW50Q2xhc3NJbnN0YW5jZS5jb25zdHJ1Y3Rvci7JtWNtcD8uZGVidWdJbmZvPy5jbGFzc05hbWUgfHwgY29tcG9uZW50Q2xhc3NJbnN0YW5jZS5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgIGNvbmZpZ0lkLFxuICAgIHRyYW5zbGF0aW9ucyxcbiAgICBhbmFseXRpY3NcbiAgfTtcbn07XG4iXX0=
@@ -1,166 +0,0 @@
1
- import { BehaviorSubject, } from 'rxjs';
2
- import { getOtterLikeComponentInfo, INSPECTOR_CLASS, isContainer, } from './otter-inspector.helpers';
3
- /**
4
- * Service to handle the custom inspector for the Otter Devtools Chrome extension.
5
- */
6
- export class OtterInspectorService {
7
- constructor() {
8
- this.elementMouseOverCallback = this.elementMouseOver.bind(this);
9
- this.elementClickCallback = this.elementClick.bind(this);
10
- this.cancelEventCallback = this.cancelEvent.bind(this);
11
- this.inspectorDiv = null;
12
- this.otterLikeComponentInfoToBeSent = new BehaviorSubject(undefined);
13
- /**
14
- * Stream of component info to be sent to the extension app.
15
- */
16
- this.otterLikeComponentInfoToBeSent$ = this.otterLikeComponentInfoToBeSent.asObservable();
17
- this.angularDevTools = window.ng;
18
- }
19
- startInspecting() {
20
- window.addEventListener('mouseover', this.elementMouseOverCallback, true);
21
- window.addEventListener('click', this.elementClickCallback, true);
22
- window.addEventListener('mouseout', this.cancelEventCallback, true);
23
- }
24
- elementClick(e) {
25
- e.stopImmediatePropagation();
26
- e.stopPropagation();
27
- e.preventDefault();
28
- if (!this.selectedComponent || !this.angularDevTools) {
29
- return;
30
- }
31
- const parentElement = this.selectedComponent.host.parentElement;
32
- const parent = parentElement && (this.angularDevTools.getComponent(parentElement) || this.angularDevTools.getOwningComponent(parentElement));
33
- const parentHost = parent && this.angularDevTools.getHostElement(parent);
34
- const container = isContainer(parentHost)
35
- ? getOtterLikeComponentInfo(parent, parentHost)
36
- : undefined;
37
- const { component, host, ...infoToBeSent } = this.selectedComponent;
38
- this.otterLikeComponentInfoToBeSent.next({
39
- ...infoToBeSent,
40
- container
41
- });
42
- }
43
- isOtterLikeComponent(info) {
44
- const hasConfigId = !!info.configId;
45
- const hasTranslations = !!info.translations?.length;
46
- const hasAnalytics = Object.keys(info.analytics || {}).length > 0;
47
- return hasConfigId || hasTranslations || hasAnalytics;
48
- }
49
- findComponentInfo(node) {
50
- if (!this.angularDevTools) {
51
- return;
52
- }
53
- let componentClassInstance = this.angularDevTools.getComponent(node) || this.angularDevTools.getOwningComponent(node);
54
- let o3rLikeComponentInfo;
55
- let isO3rLike;
56
- if (!componentClassInstance) {
57
- return;
58
- }
59
- do {
60
- o3rLikeComponentInfo = getOtterLikeComponentInfo(componentClassInstance, this.angularDevTools.getHostElement(componentClassInstance));
61
- isO3rLike = this.isOtterLikeComponent(o3rLikeComponentInfo);
62
- if (!isO3rLike) {
63
- componentClassInstance = this.angularDevTools.getOwningComponent(componentClassInstance);
64
- }
65
- } while (!isO3rLike && componentClassInstance);
66
- if (isO3rLike) {
67
- return {
68
- component: componentClassInstance,
69
- host: this.angularDevTools.getHostElement(componentClassInstance),
70
- ...o3rLikeComponentInfo
71
- };
72
- }
73
- }
74
- elementMouseOver(e) {
75
- this.cancelEvent(e);
76
- const el = e.target;
77
- if (el) {
78
- const selectedComponent = this.findComponentInfo(el);
79
- if (selectedComponent?.host !== this.selectedComponent?.host) {
80
- this.unHighlight();
81
- this.highlight(selectedComponent);
82
- }
83
- }
84
- }
85
- highlight(selectedComponent) {
86
- this.selectedComponent = selectedComponent;
87
- if (this.selectedComponent?.host && this.inspectorDiv) {
88
- const rect = this.selectedComponent.host.getBoundingClientRect();
89
- this.inspectorDiv.style.width = `${rect.width}px`;
90
- this.inspectorDiv.style.height = `${rect.height}px`;
91
- this.inspectorDiv.style.top = `${rect.top}px`;
92
- this.inspectorDiv.style.left = `${rect.left}px`;
93
- this.inspectorDiv.firstChild.textContent = `<${this.selectedComponent.componentName}>`;
94
- }
95
- }
96
- unHighlight() {
97
- if (this.selectedComponent?.host && this.inspectorDiv) {
98
- this.inspectorDiv.style.width = '0';
99
- this.inspectorDiv.style.height = '0';
100
- this.inspectorDiv.style.top = '0';
101
- this.inspectorDiv.style.left = '0';
102
- }
103
- this.selectedComponent = undefined;
104
- }
105
- cancelEvent(e) {
106
- e.stopPropagation();
107
- e.stopImmediatePropagation();
108
- e.preventDefault();
109
- }
110
- /**
111
- * Prepare the inspector div and add it to the DOM.
112
- */
113
- prepareInspector() {
114
- if (this.inspectorDiv) {
115
- return;
116
- }
117
- const inspectorCss = document.createElement('style');
118
- inspectorCss.textContent = `
119
- .${INSPECTOR_CLASS} {
120
- z-index: 9999999;
121
- width: 0;
122
- height: 0;
123
- background: rgba(104, 182, 255, 0.35);
124
- position: fixed;
125
- left: 0;
126
- top: 0;
127
- pointer-events: none;
128
- }
129
-
130
- .${INSPECTOR_CLASS} > span {
131
- bottom: -25px;
132
- position: absolute;
133
- right: 10px;
134
- background: rgba(104, 182, 255, 0.9);;
135
- padding: 5px;
136
- border-radius: 5px;
137
- color: white;
138
- }`;
139
- const inspectorDiv = document.createElement('div');
140
- const inspectorSpan = document.createElement('span');
141
- inspectorDiv.append(inspectorSpan);
142
- inspectorDiv.classList.add(INSPECTOR_CLASS);
143
- document.head.append(inspectorCss);
144
- document.body.append(inspectorDiv);
145
- this.inspectorDiv = inspectorDiv;
146
- }
147
- /**
148
- * Toggle the inspector.
149
- * @param isRunning true if the inspector is running
150
- */
151
- toggleInspector(isRunning) {
152
- if (isRunning) {
153
- this.startInspecting();
154
- }
155
- else {
156
- this.stopInspecting();
157
- }
158
- }
159
- stopInspecting() {
160
- this.unHighlight();
161
- window.removeEventListener('mouseover', this.elementMouseOverCallback, true);
162
- window.removeEventListener('click', this.elementClickCallback, true);
163
- window.removeEventListener('mouseout', this.cancelEventCallback, true);
164
- }
165
- }
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3R0ZXItaW5zcGVjdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGV2a2l0L2luc3BlY3Rvci9vdHRlci1pbnNwZWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxHQUVoQixNQUFNLE1BQU0sQ0FBQztBQUlkLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsZUFBZSxFQUNmLFdBQVcsR0FFWixNQUFNLDJCQUEyQixDQUFDO0FBT25DOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHFCQUFxQjtJQWNoQztRQVppQiw2QkFBd0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELHlCQUFvQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELHdCQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNELGlCQUFZLEdBQTBCLElBQUksQ0FBQztRQUNsQyxtQ0FBOEIsR0FBRyxJQUFJLGVBQWUsQ0FBcUMsU0FBUyxDQUFDLENBQUM7UUFFckg7O1dBRUc7UUFDSSxvQ0FBK0IsR0FBbUQsSUFBSSxDQUFDLDhCQUE4QixDQUFDLFlBQVksRUFBRSxDQUFDO1FBRzFJLElBQUksQ0FBQyxlQUFlLEdBQUksTUFBYyxDQUFDLEVBQW9CLENBQUM7SUFDOUQsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxJ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bkQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxZQUFZLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25DLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25DLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlLENBQUMsU0FBa0I7UUFDdkMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBOZyxcbn0gZnJvbSAnLi9uZyc7XG5pbXBvcnQge1xuICBnZXRPdHRlckxpa2VDb21wb25lbnRJbmZvLFxuICBJTlNQRUNUT1JfQ0xBU1MsXG4gIGlzQ29udGFpbmVyLFxuICBPdHRlckxpa2VDb21wb25lbnRJbmZvLFxufSBmcm9tICcuL290dGVyLWluc3BlY3Rvci5oZWxwZXJzJztcblxuaW50ZXJmYWNlIENvbXBvbmVudEluZm8gZXh0ZW5kcyBPdHRlckxpa2VDb21wb25lbnRJbmZvIHtcbiAgY29tcG9uZW50OiBhbnk7XG4gIGhvc3Q6IEVsZW1lbnQ7XG59XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgdGhlIGN1c3RvbSBpbnNwZWN0b3IgZm9yIHRoZSBPdHRlciBEZXZ0b29scyBDaHJvbWUgZXh0ZW5zaW9uLlxuICovXG5leHBvcnQgY2xhc3MgT3R0ZXJJbnNwZWN0b3JTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhbmd1bGFyRGV2VG9vbHM6IE5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRNb3VzZU92ZXJDYWxsYmFjayA9IHRoaXMuZWxlbWVudE1vdXNlT3Zlci5iaW5kKHRoaXMpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRDbGlja0NhbGxiYWNrID0gdGhpcy5lbGVtZW50Q2xpY2suYmluZCh0aGlzKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjYW5jZWxFdmVudENhbGxiYWNrID0gdGhpcy5jYW5jZWxFdmVudC5iaW5kKHRoaXMpO1xuICBwcml2YXRlIHNlbGVjdGVkQ29tcG9uZW50OiBDb21wb25lbnRJbmZvIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGluc3BlY3RvckRpdjogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBvdHRlckxpa2VDb21wb25lbnRJbmZvVG9CZVNlbnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE90dGVyTGlrZUNvbXBvbmVudEluZm8gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgLyoqXG4gICAqIFN0cmVhbSBvZiBjb21wb25lbnQgaW5mbyB0byBiZSBzZW50IHRvIHRoZSBleHRlbnNpb24gYXBwLlxuICAgKi9cbiAgcHVibGljIG90dGVyTGlrZUNvbXBvbmVudEluZm9Ub0JlU2VudCQ6IE9ic2VydmFibGU8T3R0ZXJMaWtlQ29tcG9uZW50SW5mbyB8IHVuZGVmaW5lZD4gPSB0aGlzLm90dGVyTGlrZUNvbXBvbmVudEluZm9Ub0JlU2VudC5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmFuZ3VsYXJEZXZUb29scyA9ICh3aW5kb3cgYXMgYW55KS5uZyBhcyBOZyB8IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRJbnNwZWN0aW5nKCkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW92ZXInLCB0aGlzLmVsZW1lbnRNb3VzZU92ZXJDYWxsYmFjaywgdHJ1ZSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5lbGVtZW50Q2xpY2tDYWxsYmFjaywgdHJ1ZSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgdGhpcy5jYW5jZWxFdmVudENhbGxiYWNrLCB0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZWxlbWVudENsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGhpcy5zZWxlY3RlZENvbXBvbmVudCB8fCAhdGhpcy5hbmd1bGFyRGV2VG9vbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IHRoaXMuc2VsZWN0ZWRDb21wb25lbnQuaG9zdC5wYXJlbnRFbGVtZW50O1xuICAgIGNvbnN0IHBhcmVudCA9IHBhcmVudEVsZW1lbnQgJiYgKHRoaXMuYW5ndWxhckRldlRvb2xzLmdldENvbXBvbmVudChwYXJlbnRFbGVtZW50KSB8fCB0aGlzLmFuZ3VsYXJEZXZUb29scy5nZXRPd25pbmdDb21wb25lbnQocGFyZW50RWxlbWVudCkpO1xuICAgIGNvbnN0IHBhcmVudEhvc3QgPSBwYXJlbnQgJiYgdGhpcy5hbmd1bGFyRGV2VG9vbHMuZ2V0SG9zdEVsZW1lbnQocGFyZW50KTtcbiAgICBjb25zdCBjb250YWluZXIgPSBpc0NvbnRhaW5lcihwYXJlbnRIb3N0KVxuICAgICAgPyBnZXRPdHRlckxpa2VDb21wb25lbnRJbmZvKHBhcmVudCwgcGFyZW50SG9zdClcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgeyBjb21wb25lbnQsIGhvc3QsIC4uLmluZm9Ub0JlU2VudCB9ID0gdGhpcy5zZWxlY3RlZENvbXBvbmVudDtcblxuICAgIHRoaXMub3R0ZXJMaWtlQ29tcG9uZW50SW5mb1RvQmVTZW50Lm5leHQoe1xuICAgICAgLi4uaW5mb1RvQmVTZW50LFxuICAgICAgY29udGFpbmVyXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGlzT3R0ZXJMaWtlQ29tcG9uZW50KGluZm86IE90dGVyTGlrZUNvbXBvbmVudEluZm8pIHtcbiAgICBjb25zdCBoYXNDb25maWdJZCA9ICEhaW5mby5jb25maWdJZDtcbiAgICBjb25zdCBoYXNUcmFuc2xhdGlvbnMgPSAhIWluZm8udHJhbnNsYXRpb25zPy5sZW5ndGg7XG4gICAgY29uc3QgaGFzQW5hbHl0aWNzID0gT2JqZWN0LmtleXMoaW5mby5hbmFseXRpY3MgfHwge30pLmxlbmd0aCA+IDA7XG4gICAgcmV0dXJuIGhhc0NvbmZpZ0lkIHx8IGhhc1RyYW5zbGF0aW9ucyB8fCBoYXNBbmFseXRpY3M7XG4gIH1cblxuICBwcml2YXRlIGZpbmRDb21wb25lbnRJbmZvKG5vZGU6IEVsZW1lbnQpOiBDb21wb25lbnRJbmZvIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuYW5ndWxhckRldlRvb2xzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBjb21wb25lbnRDbGFzc0luc3RhbmNlID0gdGhpcy5hbmd1bGFyRGV2VG9vbHMuZ2V0Q29tcG9uZW50KG5vZGUpIHx8IHRoaXMuYW5ndWxhckRldlRvb2xzLmdldE93bmluZ0NvbXBvbmVudChub2RlKTtcbiAgICBsZXQgbzNyTGlrZUNvbXBvbmVudEluZm86IE90dGVyTGlrZUNvbXBvbmVudEluZm87XG4gICAgbGV0IGlzTzNyTGlrZTogYm9vbGVhbjtcbiAgICBpZiAoIWNvbXBvbmVudENsYXNzSW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZG8ge1xuICAgICAgbzNyTGlrZUNvbXBvbmVudEluZm8gPSBnZXRPdHRlckxpa2VDb21wb25lbnRJbmZvKGNvbXBvbmVudENsYXNzSW5zdGFuY2UsIHRoaXMuYW5ndWxhckRldlRvb2xzLmdldEhvc3RFbGVtZW50KGNvbXBvbmVudENsYXNzSW5zdGFuY2UpKTtcbiAgICAgIGlzTzNyTGlrZSA9IHRoaXMuaXNPdHRlckxpa2VDb21wb25lbnQobzNyTGlrZUNvbXBvbmVudEluZm8pO1xuICAgICAgaWYgKCFpc08zckxpa2UpIHtcbiAgICAgICAgY29tcG9uZW50Q2xhc3NJbnN0YW5jZSA9IHRoaXMuYW5ndWxhckRldlRvb2xzLmdldE93bmluZ0NvbXBvbmVudChjb21wb25lbnRDbGFzc0luc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9IHdoaWxlICghaXNPM3JMaWtlICYmIGNvbXBvbmVudENsYXNzSW5zdGFuY2UpO1xuICAgIGlmIChpc08zckxpa2UpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbXBvbmVudDogY29tcG9uZW50Q2xhc3NJbnN0YW5jZSxcbiAgICAgICAgaG9zdDogdGhpcy5hbmd1bGFyRGV2VG9vbHMuZ2V0SG9zdEVsZW1lbnQoY29tcG9uZW50Q2xhc3NJbnN0YW5jZSksXG4gICAgICAgIC4uLm8zckxpa2VDb21wb25lbnRJbmZvXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZWxlbWVudE1vdXNlT3ZlcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5jYW5jZWxFdmVudChlKTtcblxuICAgIGNvbnN0IGVsID0gZS50YXJnZXQgYXMgRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChlbCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRDb21wb25lbnQgPSB0aGlzLmZpbmRDb21wb25lbnRJbmZvKGVsKTtcbiAgICAgIGlmIChzZWxlY3RlZENvbXBvbmVudD8uaG9zdCAhPT0gdGhpcy5zZWxlY3RlZENvbXBvbmVudD8uaG9zdCkge1xuICAgICAgICB0aGlzLnVuSGlnaGxpZ2h0KCk7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0KHNlbGVjdGVkQ29tcG9uZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhpZ2hsaWdodChzZWxlY3RlZENvbXBvbmVudDogQ29tcG9uZW50SW5mbyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQgPSBzZWxlY3RlZENvbXBvbmVudDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENvbXBvbmVudD8uaG9zdCAmJiB0aGlzLmluc3BlY3RvckRpdikge1xuICAgICAgY29uc3QgcmVjdCA9IHRoaXMuc2VsZWN0ZWRDb21wb25lbnQuaG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LnN0eWxlLndpZHRoID0gYCR7cmVjdC53aWR0aH1weGA7XG4gICAgICB0aGlzLmluc3BlY3RvckRpdi5zdHlsZS5oZWlnaHQgPSBgJHtyZWN0LmhlaWdodH1weGA7XG4gICAgICB0aGlzLmluc3BlY3RvckRpdi5zdHlsZS50b3AgPSBgJHtyZWN0LnRvcH1weGA7XG4gICAgICB0aGlzLmluc3BlY3RvckRpdi5zdHlsZS5sZWZ0ID0gYCR7cmVjdC5sZWZ0fXB4YDtcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LmZpcnN0Q2hpbGQhLnRleHRDb250ZW50ID0gYDwke3RoaXMuc2VsZWN0ZWRDb21wb25lbnQuY29tcG9uZW50TmFtZX0+YDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVuSGlnaGxpZ2h0KCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ29tcG9uZW50Py5ob3N0ICYmIHRoaXMuaW5zcGVjdG9yRGl2KSB7XG4gICAgICB0aGlzLmluc3BlY3RvckRpdi5zdHlsZS53aWR0aCA9ICcwJztcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LnN0eWxlLmhlaWdodCA9ICcwJztcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LnN0eWxlLnRvcCA9ICcwJztcbiAgICAgIHRoaXMuaW5zcGVjdG9yRGl2LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGNhbmNlbEV2ZW50KGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgdGhlIGluc3BlY3RvciBkaXYgYW5kIGFkZCBpdCB0byB0aGUgRE9NLlxuICAgKi9cbiAgcHVibGljIHByZXBhcmVJbnNwZWN0b3IoKSB7XG4gICAgaWYgKHRoaXMuaW5zcGVjdG9yRGl2KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGluc3BlY3RvckNzcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgaW5zcGVjdG9yQ3NzLnRleHRDb250ZW50ID0gYFxuICAgICAgLiR7SU5TUEVDVE9SX0NMQVNTfSB7XG4gICAgICAgIHotaW5kZXg6IDk5OTk5OTk7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTA0LCAxODIsIDI1NSwgMC4zNSk7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLiR7SU5TUEVDVE9SX0NMQVNTfSA+IHNwYW4ge1xuICAgICAgICBib3R0b206IC0yNXB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwNCwgMTgyLCAyNTUsIDAuOSk7O1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgfWA7XG5cbiAgICBjb25zdCBpbnNwZWN0b3JEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBjb25zdCBpbnNwZWN0b3JTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgIGluc3BlY3RvckRpdi5hcHBlbmQoaW5zcGVjdG9yU3Bhbik7XG4gICAgaW5zcGVjdG9yRGl2LmNsYXNzTGlzdC5hZGQoSU5TUEVDVE9SX0NMQVNTKTtcblxuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kKGluc3BlY3RvckNzcyk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoaW5zcGVjdG9yRGl2KTtcbiAgICB0aGlzLmluc3BlY3RvckRpdiA9IGluc3BlY3RvckRpdjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIGluc3BlY3Rvci5cbiAgICogQHBhcmFtIGlzUnVubmluZyB0cnVlIGlmIHRoZSBpbnNwZWN0b3IgaXMgcnVubmluZ1xuICAgKi9cbiAgcHVibGljIHRvZ2dsZUluc3BlY3Rvcihpc1J1bm5pbmc6IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNSdW5uaW5nKSB7XG4gICAgICB0aGlzLnN0YXJ0SW5zcGVjdGluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0b3BJbnNwZWN0aW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0b3BJbnNwZWN0aW5nKCkge1xuICAgIHRoaXMudW5IaWdobGlnaHQoKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgdGhpcy5lbGVtZW50TW91c2VPdmVyQ2FsbGJhY2ssIHRydWUpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuZWxlbWVudENsaWNrQ2FsbGJhY2ssIHRydWUpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIHRoaXMuY2FuY2VsRXZlbnRDYWxsYmFjaywgdHJ1ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibzNyLWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbzNyLWNvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -1,5 +0,0 @@
1
- export * from './core/index';
2
- export * from './devkit/index';
3
- export * from './stores/index';
4
- export * from './tools/index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIHsgQ29udGV4dCwgQ29udGV4dElucHV0LCBCYXNlQ29udGV4dE91dHB1dCwgVGVtcGxhdGVDb250ZXh0IH0gZnJvbSAnQG8zci9jb3JlJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2RldmtpdC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3Jlcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3Rvb2xzL2luZGV4JztcbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibzNyLWNvbXBvbmVudHMtcnVsZXMtZW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3J1bGVzLWVuZ2luZS9vM3ItY29tcG9uZW50cy1ydWxlcy1lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -1,156 +0,0 @@
1
- import { Injectable, Injector, Optional, } from '@angular/core';
2
- import { takeUntilDestroyed, } from '@angular/core/rxjs-interop';
3
- import { select, Store, } from '@ngrx/store';
4
- import { DynamicContentService, } from '@o3r/dynamic-content';
5
- import { LocalizationService, } from '@o3r/localization';
6
- import { LoggerService, } from '@o3r/logger';
7
- import { combineLatest, distinctUntilChanged, firstValueFrom, map, of, startWith, Subject, withLatestFrom, } from 'rxjs';
8
- import { RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE, } from './placeholder.interfaces';
9
- import { deletePlaceholderTemplateEntity, selectPlaceholderRequestEntities, selectPlaceholderTemplateEntities, setPlaceholderRequestEntityFromUrl, setPlaceholderTemplateEntity, updatePlaceholderRequestEntity, } from '@o3r/components';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@ngrx/store";
12
- import * as i2 from "@o3r/logger";
13
- import * as i3 from "@o3r/localization";
14
- /**
15
- * Service to handle async PlaceholderTemplate actions
16
- */
17
- export class PlaceholderRulesEngineActionHandler {
18
- constructor(store, logger, injector, translateService) {
19
- this.logger = logger;
20
- this.injector = injector;
21
- this.placeholdersActions$ = new Subject();
22
- /** @inheritdoc */
23
- this.supportingActions = [RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE];
24
- const lang$ = translateService
25
- ? translateService.getTranslateService().onLangChange.pipe(map(({ lang }) => lang), startWith(translateService.getCurrentLanguage()), distinctUntilChanged())
26
- : of(null);
27
- const filteredActions$ = combineLatest([
28
- lang$,
29
- this.placeholdersActions$.pipe(distinctUntilChanged((prev, next) => JSON.stringify(prev) === JSON.stringify(next)))
30
- ]).pipe(withLatestFrom(combineLatest([store.pipe(select(selectPlaceholderTemplateEntities)), store.pipe(select(selectPlaceholderRequestEntities))])), map(([langAndTemplatesUrls, storedPlaceholdersAndRequests]) => {
31
- const [lang, placeholderActions] = langAndTemplatesUrls;
32
- const storedPlaceholders = storedPlaceholdersAndRequests[0] || {};
33
- const storedPlaceholderRequests = storedPlaceholdersAndRequests[1] || {};
34
- const placeholderNewRequests = [];
35
- // Stores all raw Urls used from the current engine execution
36
- const usedUrls = {};
37
- // Get all Urls that needs to be resolved from current rules engine output
38
- const placeholdersTemplates = placeholderActions.reduce((acc, placeholderAction) => {
39
- const placeholdersTemplateUrl = {
40
- rawUrl: placeholderAction.templateUrl,
41
- priority: placeholderAction.priority
42
- };
43
- if (acc[placeholderAction.placeholderId]) {
44
- acc[placeholderAction.placeholderId].push(placeholdersTemplateUrl);
45
- }
46
- else {
47
- acc[placeholderAction.placeholderId] = [placeholdersTemplateUrl];
48
- }
49
- const resolvedUrl = this.resolveUrlWithLang(placeholderAction.templateUrl, lang);
50
- // Filters duplicates and resolved urls that are already in the store
51
- if (!usedUrls[placeholderAction.templateUrl] && (!storedPlaceholderRequests[placeholderAction.templateUrl]
52
- || storedPlaceholderRequests[placeholderAction.templateUrl].resolvedUrl !== resolvedUrl)) {
53
- placeholderNewRequests.push({
54
- rawUrl: placeholderAction.templateUrl,
55
- resolvedUrl: this.resolveUrlWithLang(placeholderAction.templateUrl, lang)
56
- });
57
- }
58
- usedUrls[placeholderAction.templateUrl] = true;
59
- return acc;
60
- }, {});
61
- // Urls not used anymore and not already disabled
62
- const placeholderRequestsToDisable = [];
63
- // Urls used that were disabled
64
- const placeholderRequestsToEnable = [];
65
- Object.keys(storedPlaceholderRequests).forEach((storedPlaceholderRequestRawUrl) => {
66
- const usedFromEngineIteration = usedUrls[storedPlaceholderRequestRawUrl];
67
- const usedFromStore = (storedPlaceholderRequests && storedPlaceholderRequests[storedPlaceholderRequestRawUrl]) ? storedPlaceholderRequests[storedPlaceholderRequestRawUrl].used : false;
68
- if (!usedFromEngineIteration && usedFromStore) {
69
- placeholderRequestsToDisable.push(storedPlaceholderRequestRawUrl);
70
- }
71
- else if (usedFromEngineIteration && !usedFromStore) {
72
- placeholderRequestsToEnable.push(storedPlaceholderRequestRawUrl);
73
- }
74
- });
75
- // Placeholder that are no longer filled by the current engine execution output will be cleared
76
- const placeholdersTemplatesToBeCleanedUp = Object.keys(storedPlaceholders)
77
- .filter((placeholderId) => !placeholdersTemplates[placeholderId]);
78
- const placeholdersTemplatesToBeSet = Object.keys(placeholdersTemplates).reduce((changedPlaceholderTemplates, placeholderTemplateId) => {
79
- // Caching if the placeholder template already exists with the same urls
80
- if (!storedPlaceholders[placeholderTemplateId]
81
- || !(JSON.stringify(storedPlaceholders[placeholderTemplateId].urlsWithPriority) === JSON.stringify(placeholdersTemplates[placeholderTemplateId]))) {
82
- changedPlaceholderTemplates.push({
83
- id: placeholderTemplateId,
84
- urlsWithPriority: placeholdersTemplates[placeholderTemplateId]
85
- });
86
- }
87
- return changedPlaceholderTemplates;
88
- }, []);
89
- return {
90
- placeholdersTemplatesToBeCleanedUp,
91
- placeholderRequestsToDisable,
92
- placeholderRequestsToEnable,
93
- placeholdersTemplatesToBeSet,
94
- placeholderNewRequests
95
- };
96
- }));
97
- filteredActions$.pipe(takeUntilDestroyed()).subscribe((placeholdersUpdates) => {
98
- placeholdersUpdates.placeholdersTemplatesToBeCleanedUp.forEach((placeholderId) => store.dispatch(deletePlaceholderTemplateEntity({
99
- id: placeholderId
100
- })));
101
- placeholdersUpdates.placeholdersTemplatesToBeSet.forEach((placeholdersTemplateToBeSet) => {
102
- store.dispatch(setPlaceholderTemplateEntity({ entity: placeholdersTemplateToBeSet }));
103
- });
104
- placeholdersUpdates.placeholderRequestsToDisable.forEach((placeholderRequestToDisable) => {
105
- store.dispatch(updatePlaceholderRequestEntity({ entity: { id: placeholderRequestToDisable, used: false } }));
106
- });
107
- placeholdersUpdates.placeholderRequestsToEnable.forEach((placeholderRequestToEnable) => {
108
- store.dispatch(updatePlaceholderRequestEntity({ entity: { id: placeholderRequestToEnable, used: true } }));
109
- });
110
- placeholdersUpdates.placeholderNewRequests.forEach((placeholderNewRequest) => {
111
- store.dispatch(setPlaceholderRequestEntityFromUrl({
112
- resolvedUrl: placeholderNewRequest.resolvedUrl,
113
- id: placeholderNewRequest.rawUrl,
114
- call: this.retrieveTemplate(placeholderNewRequest.resolvedUrl)
115
- }));
116
- });
117
- });
118
- }
119
- /**
120
- * Localize the url, replacing the language marker
121
- * @param url
122
- * @param language
123
- */
124
- resolveUrlWithLang(url, language) {
125
- if (!language && url.includes('[LANGUAGE]')) {
126
- this.logger.warn(`Missing language when trying to resolve ${url}`);
127
- }
128
- return language ? url.replace(/\[LANGUAGE]/g, language) : url;
129
- }
130
- /**
131
- * Retrieve template as json from a given url
132
- * @param url
133
- */
134
- async retrieveTemplate(url) {
135
- const resolvedUrl$ = this.injector.get(DynamicContentService, null, { optional: true })?.getContentPathStream(url) || of(url);
136
- const fullUrl = await firstValueFrom(resolvedUrl$);
137
- return fetch(fullUrl).then((response) => response.json());
138
- }
139
- /** @inheritdoc */
140
- executeActions(actions) {
141
- const templates = actions.map((action) => ({
142
- placeholderId: action.placeholderId,
143
- templateUrl: action.value,
144
- priority: action.priority || 0
145
- }));
146
- this.placeholdersActions$.next(templates);
147
- }
148
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PlaceholderRulesEngineActionHandler, deps: [{ token: i1.Store }, { token: i2.LoggerService }, { token: i0.Injector }, { token: i3.LocalizationService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
149
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PlaceholderRulesEngineActionHandler }); }
150
- }
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PlaceholderRulesEngineActionHandler, decorators: [{
152
- type: Injectable
153
- }], ctorParameters: () => [{ type: i1.Store }, { type: i2.LoggerService }, { type: i0.Injector }, { type: i3.LocalizationService, decorators: [{
154
- type: Optional
155
- }] }] });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIuYWN0aW9uLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcnVsZXMtZW5naW5lL3BsYWNlaG9sZGVyLmFjdGlvbi1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsa0JBQWtCLEdBQ25CLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUNMLE1BQU0sRUFDTixLQUFLLEdBQ04sTUFBTSxhQUFhLENBQUM7QUFJckIsT0FBTyxFQUNMLHFCQUFxQixHQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxtQkFBbUIsR0FDcEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQ0wsYUFBYSxHQUNkLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDTCxhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxHQUFHLEVBQ0gsRUFBRSxFQUNGLFNBQVMsRUFDVCxPQUFPLEVBQ1AsY0FBYyxHQUNmLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUVMLDJDQUEyQyxHQUM1QyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFDTCwrQkFBK0IsRUFHL0IsZ0NBQWdDLEVBQ2hDLGlDQUFpQyxFQUNqQyxrQ0FBa0MsRUFDbEMsNEJBQTRCLEVBQzVCLDhCQUE4QixHQUMvQixNQUFNLGlCQUFpQixDQUFDOzs7OztBQUV6Qjs7R0FFRztBQUVILE1BQU0sT0FBTyxtQ0FBbUM7SUFNOUMsWUFDRSxLQUFzQyxFQUNyQixNQUFxQixFQUNyQixRQUFrQixFQUN2QixnQkFBc0M7UUFGakMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBUjNCLHlCQUFvQixHQUFnRixJQUFJLE9BQU8sRUFBRSxD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Y2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlLFxuICBJbmplY3RvcixcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgdGFrZVVudGlsRGVzdHJveWVkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBzZWxlY3QsXG4gIFN0b3JlLFxufSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgdHlwZSB7XG4gIFJ1bGVzRW5naW5lQWN0aW9uSGFuZGxlcixcbn0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7XG4gIER5bmFtaWNDb250ZW50U2VydmljZSxcbn0gZnJvbSAnQG8zci9keW5hbWljLWNvbnRlbnQnO1xuaW1wb3J0IHtcbiAgTG9jYWxpemF0aW9uU2VydmljZSxcbn0gZnJvbSAnQG8zci9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtcbiAgTG9nZ2VyU2VydmljZSxcbn0gZnJvbSAnQG8zci9sb2dnZXInO1xuaW1wb3J0IHtcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpcnN0VmFsdWVGcm9tLFxuICBtYXAsXG4gIG9mLFxuICBzdGFydFdpdGgsXG4gIFN1YmplY3QsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEFjdGlvblVwZGF0ZVBsYWNlaG9sZGVyQmxvY2ssXG4gIFJVTEVTX0VOR0lORV9QTEFDRUhPTERFUl9VUERBVEVfQUNUSU9OX1RZUEUsXG59IGZyb20gJy4vcGxhY2Vob2xkZXIuaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBkZWxldGVQbGFjZWhvbGRlclRlbXBsYXRlRW50aXR5LFxuICBQbGFjZWhvbGRlclJlcXVlc3RSZXBseSxcbiAgUGxhY2Vob2xkZXJUZW1wbGF0ZVN0b3JlLFxuICBzZWxlY3RQbGFjZWhvbGRlclJlcXVlc3RFbnRpdGllcyxcbiAgc2VsZWN0UGxhY2Vob2xkZXJUZW1wbGF0ZUVudGl0aWVzLFxuICBzZXRQbGFjZWhvbGRlclJlcXVlc3RFbnRpdHlGcm9tVXJsLFxuICBzZXRQbGFjZWhvbGRlclRlbXBsYXRlRW50aXR5LFxuICB1cGRhdGVQbGFjZWhvbGRlclJlcXVlc3RFbnRpdHksXG59IGZyb20gJ0BvM3IvY29tcG9uZW50cyc7XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgYXN5bmMgUGxhY2Vob2xkZXJUZW1wbGF0ZSBhY3Rpb25zXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQbGFjZWhvbGRlclJ1bGVzRW5naW5lQWN0aW9uSGFuZGxlciBpbXBsZW1lbnRzIFJ1bGVzRW5naW5lQWN0aW9uSGFuZGxlcjxBY3Rpb25VcGRhdGVQbGFjZWhvbGRlckJsb2NrPiB7XG4gIHByb3RlY3RlZCBwbGFjZWhvbGRlcnNBY3Rpb25zJDogU3ViamVjdDx7IHBsYWNlaG9sZGVySWQ6IHN0cmluZzsgdGVtcGxhdGVVcmw6IHN0cmluZzsgcHJpb3JpdHk6IG51bWJlciB9W10+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN1cHBvcnRpbmdBY3Rpb25zID0gW1JVTEVTX0VOR0lORV9QTEFDRUhPTERFUl9VUERBVEVfQUNUSU9OX1RZUEVdIGFzIGNvbnN0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0b3JlOiBTdG9yZTxQbGFjZWhvbGRlclRlbXBsYXRlU3RvcmU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBPcHRpb25hbCgpIHRyYW5zbGF0ZVNlcnZpY2U/OiBMb2NhbGl6YXRpb25TZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IGxhbmckID0gdHJhbnNsYXRlU2VydmljZVxuICAgICAgPyB0cmFuc2xhdGVTZXJ2aWNlLmdldFRyYW5zbGF0ZVNlcnZpY2UoKS5vbkxhbmdDaGFuZ2UucGlwZShcbiAgICAgICAgbWFwKCh7IGxhbmcgfSkgPT4gbGFuZyksXG4gICAgICAgIHN0YXJ0V2l0aCh0cmFuc2xhdGVTZXJ2aWNlLmdldEN1cnJlbnRMYW5ndWFnZSgpKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKVxuICAgICAgOiBvZihudWxsKTtcblxuICAgIGNvbnN0IGZpbHRlcmVkQWN0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIGxhbmckLFxuICAgICAgdGhpcy5wbGFjZWhvbGRlcnNBY3Rpb25zJC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldiwgbmV4dCkgPT4gSlNPTi5zdHJpbmdpZnkocHJldikgPT09IEpTT04uc3RyaW5naWZ5KG5leHQpKVxuICAgICAgKVxuICAgIF0pLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbShcbiAgICAgICAgY29tYmluZUxhdGVzdChbc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0UGxhY2Vob2xkZXJUZW1wbGF0ZUVudGl0aWVzKSksIHN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdFBsYWNlaG9sZGVyUmVxdWVzdEVudGl0aWVzKSldKVxuICAgICAgKSxcbiAgICAgIG1hcCgoW2xhbmdBbmRUZW1wbGF0ZXNVcmxzLCBzdG9yZWRQbGFjZWhvbGRlcnNBbmRSZXF1ZXN0c10pID0+IHtcbiAgICAgICAgY29uc3QgW2xhbmcsIHBsYWNlaG9sZGVyQWN0aW9uc10gPSBsYW5nQW5kVGVtcGxhdGVzVXJscztcbiAgICAgICAgY29uc3Qgc3RvcmVkUGxhY2Vob2xkZXJzID0gc3RvcmVkUGxhY2Vob2xkZXJzQW5kUmVxdWVzdHNbMF0gfHwge307XG4gICAgICAgIGNvbnN0IHN0b3JlZFBsYWNlaG9sZGVyUmVxdWVzdHMgPSBzdG9yZWRQbGFjZWhvbGRlcnNBbmRSZXF1ZXN0c1sxXSB8fCB7fTtcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJOZXdSZXF1ZXN0czogeyByYXdVcmw6IHN0cmluZzsgcmVzb2x2ZWRVcmw6IHN0cmluZyB9W10gPSBbXTtcbiAgICAgICAgLy8gU3RvcmVzIGFsbCByYXcgVXJscyB1c2VkIGZyb20gdGhlIGN1cnJlbnQgZW5naW5lIGV4ZWN1dGlvblxuICAgICAgICBjb25zdCB1c2VkVXJsczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgICAgICAgLy8gR2V0IGFsbCBVcmxzIHRoYXQgbmVlZHMgdG8gYmUgcmVzb2x2ZWQgZnJvbSBjdXJyZW50IHJ1bGVzIGVuZ2luZSBvdXRwdXRcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJzVGVtcGxhdGVzID0gcGxhY2Vob2xkZXJBY3Rpb25zLnJlZHVjZSgoYWNjLCBwbGFjZWhvbGRlckFjdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyc1RlbXBsYXRlVXJsID0ge1xuICAgICAgICAgICAgcmF3VXJsOiBwbGFjZWhvbGRlckFjdGlvbi50ZW1wbGF0ZVVybCxcbiAgICAgICAgICAgIHByaW9yaXR5OiBwbGFjZWhvbGRlckFjdGlvbi5wcmlvcml0eVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKGFjY1twbGFjZWhvbGRlckFjdGlvbi5wbGFjZWhvbGRlcklkXSkge1xuICAgICAgICAgICAgYWNjW3BsYWNlaG9sZGVyQWN0aW9uLnBsYWNlaG9sZGVySWRdLnB1c2gocGxhY2Vob2xkZXJzVGVtcGxhdGVVcmwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhY2NbcGxhY2Vob2xkZXJBY3Rpb24ucGxhY2Vob2xkZXJJZF0gPSBbcGxhY2Vob2xkZXJzVGVtcGxhdGVVcmxdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCByZXNvbHZlZFVybCA9IHRoaXMucmVzb2x2ZVVybFdpdGhMYW5nKHBsYWNlaG9sZGVyQWN0aW9uLnRlbXBsYXRlVXJsLCBsYW5nKTtcbiAgICAgICAgICAvLyBGaWx0ZXJzIGR1cGxpY2F0ZXMgYW5kIHJlc29sdmVkIHVybHMgdGhhdCBhcmUgYWxyZWFkeSBpbiB0aGUgc3RvcmVcbiAgICAgICAgICBpZiAoIXVzZWRVcmxzW3BsYWNlaG9sZGVyQWN0aW9uLnRlbXBsYXRlVXJsXSAmJiAoIXN0b3JlZFBsYWNlaG9sZGVyUmVxdWVzdHNbcGxhY2Vob2xkZXJBY3Rpb24udGVtcGxhdGVVcmxdXG4gICAgICAgICAgICB8fCBzdG9yZWRQbGFjZWhvbGRlclJlcXVlc3RzW3BsYWNlaG9sZGVyQWN0aW9uLnRlbXBsYXRlVXJsXSEucmVzb2x2ZWRVcmwgIT09IHJlc29sdmVkVXJsKSkge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXJOZXdSZXF1ZXN0cy5wdXNoKHtcbiAgICAgICAgICAgICAgcmF3VXJsOiBwbGFjZWhvbGRlckFjdGlvbi50ZW1wbGF0ZVVybCxcbiAgICAgICAgICAgICAgcmVzb2x2ZWRVcmw6IHRoaXMucmVzb2x2ZVVybFdpdGhMYW5nKHBsYWNlaG9sZGVyQWN0aW9uLnRlbXBsYXRlVXJsLCBsYW5nKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHVzZWRVcmxzW3BsYWNlaG9sZGVyQWN0aW9uLnRlbXBsYXRlVXJsXSA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30gYXMgeyBba2V5OiBzdHJpbmddOiB7IHJhd1VybDogc3RyaW5nOyBwcmlvcml0eTogbnVtYmVyIH1bXSB9KTtcbiAgICAgICAgLy8gVXJscyBub3QgdXNlZCBhbnltb3JlIGFuZCBub3QgYWxyZWFkeSBkaXNhYmxlZFxuICAgICAgICBjb25zdCBwbGFjZWhvbGRlclJlcXVlc3RzVG9EaXNhYmxlOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICAvLyBVcmxzIHVzZWQgdGhhdCB3ZXJlIGRpc2FibGVkXG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyUmVxdWVzdHNUb0VuYWJsZTogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgT2JqZWN0LmtleXMoc3RvcmVkUGxhY2Vob2xkZXJSZXF1ZXN0cykuZm9yRWFjaCgoc3RvcmVkUGxhY2Vob2xkZXJSZXF1ZXN0UmF3VXJsKSA9PiB7XG4gICAgICAgICAgY29uc3QgdXNlZEZyb21FbmdpbmVJdGVyYXRpb24gPSB1c2VkVXJsc1tzdG9yZWRQbGFjZWhvbGRlclJlcXVlc3RSYXdVcmxdO1xuICAgICAgICAgIGNvbnN0IHVzZWRGcm9tU3RvcmUgPSAoc3RvcmVkUGxhY2Vob2xkZXJSZXF1ZXN0cyAmJiBzdG9yZWRQbGFjZWhvbGRlclJlcXVlc3RzW3N0b3JlZFBsYWNlaG9sZGVyUmVxdWVzdFJhd1VybF0pID8gc3RvcmVkUGxhY2Vob2xkZXJSZXF1ZXN0c1tzdG9yZWRQbGFjZWhvbGRlclJlcXVlc3RSYXdVcmxdLnVzZWQgOiBmYWxzZTtcbiAgICAgICAgICBpZiAoIXVzZWRGcm9tRW5naW5lSXRlcmF0aW9uICYmIHVzZWRGcm9tU3RvcmUpIHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyUmVxdWVzdHNUb0Rpc2FibGUucHVzaChzdG9yZWRQbGFjZWhvbGRlclJlcXVlc3RSYXdVcmwpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodXNlZEZyb21FbmdpbmVJdGVyYXRpb24gJiYgIXVzZWRGcm9tU3RvcmUpIHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyUmVxdWVzdHNUb0VuYWJsZS5wdXNoKHN0b3JlZFBsYWNlaG9sZGVyUmVxdWVzdFJhd1VybCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gUGxhY2Vob2xkZXIgdGhhdCBhcmUgbm8gbG9uZ2VyIGZpbGxlZCBieSB0aGUgY3VycmVudCBlbmdpbmUgZXhlY3V0aW9uIG91dHB1dCB3aWxsIGJlIGNsZWFyZWRcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJzVGVtcGxhdGVzVG9CZUNsZWFuZWRVcCA9IE9iamVjdC5rZXlzKHN0b3JlZFBsYWNlaG9sZGVycylcbiAgICAgICAgICAuZmlsdGVyKChwbGFjZWhvbGRlcklkKSA9PiAhcGxhY2Vob2xkZXJzVGVtcGxhdGVzW3BsYWNlaG9sZGVySWRdKTtcblxuICAgICAgICBjb25zdCBwbGFjZWhvbGRlcnNUZW1wbGF0ZXNUb0JlU2V0ID0gT2JqZWN0LmtleXMocGxhY2Vob2xkZXJzVGVtcGxhdGVzKS5yZWR1Y2UoKGNoYW5nZWRQbGFjZWhvbGRlclRlbXBsYXRlcywgcGxhY2Vob2xkZXJUZW1wbGF0ZUlkKSA9PiB7XG4gICAgICAgICAgLy8gQ2FjaGluZyBpZiB0aGUgcGxhY2Vob2xkZXIgdGVtcGxhdGUgYWxyZWFkeSBleGlzdHMgd2l0aCB0aGUgc2FtZSB1cmxzXG4gICAgICAgICAgaWYgKCFzdG9yZWRQbGFjZWhvbGRlcnNbcGxhY2Vob2xkZXJUZW1wbGF0ZUlkXVxuICAgICAgICAgICAgfHwgIShKU09OLnN0cmluZ2lmeShzdG9yZWRQbGFjZWhvbGRlcnNbcGxhY2Vob2xkZXJUZW1wbGF0ZUlkXS51cmxzV2l0aFByaW9yaXR5KSA9PT0gSlNPTi5zdHJpbmdpZnkocGxhY2Vob2xkZXJzVGVtcGxhdGVzW3BsYWNlaG9sZGVyVGVtcGxhdGVJZF0pKSkge1xuICAgICAgICAgICAgY2hhbmdlZFBsYWNlaG9sZGVyVGVtcGxhdGVzLnB1c2goe1xuICAgICAgICAgICAgICBpZDogcGxhY2Vob2xkZXJUZW1wbGF0ZUlkLFxuICAgICAgICAgICAgICB1cmxzV2l0aFByaW9yaXR5OiBwbGFjZWhvbGRlcnNUZW1wbGF0ZXNbcGxhY2Vob2xkZXJUZW1wbGF0ZUlkXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjaGFuZ2VkUGxhY2Vob2xkZXJUZW1wbGF0ZXM7XG4gICAgICAgIH0sIFtdIGFzIHsgaWQ6IHN0cmluZzsgdXJsc1dpdGhQcmlvcml0eTogeyByYXdVcmw6IHN0cmluZzsgcHJpb3JpdHk6IG51bWJlciB9W10gfVtdKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwbGFjZWhvbGRlcnNUZW1wbGF0ZXNUb0JlQ2xlYW5lZFVwLFxuICAgICAgICAgIHBsYWNlaG9sZGVyUmVxdWVzdHNUb0Rpc2FibGUsXG4gICAgICAgICAgcGxhY2Vob2xkZXJSZXF1ZXN0c1RvRW5hYmxlLFxuICAgICAgICAgIHBsYWNlaG9sZGVyc1RlbXBsYXRlc1RvQmVTZXQsXG4gICAgICAgICAgcGxhY2Vob2xkZXJOZXdSZXF1ZXN0c1xuICAgICAgICB9O1xuICAgICAgfSlcbiAgICApO1xuICAgIGZpbHRlcmVkQWN0aW9ucyQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKChwbGFjZWhvbGRlcnNVcGRhdGVzKSA9PiB7XG4gICAgICBwbGFjZWhvbGRlcnNVcGRhdGVzLnBsYWNlaG9sZGVyc1RlbXBsYXRlc1RvQmVDbGVhbmVkVXAuZm9yRWFjaCgocGxhY2Vob2xkZXJJZCkgPT5cbiAgICAgICAgc3RvcmUuZGlzcGF0Y2goZGVsZXRlUGxhY2Vob2xkZXJUZW1wbGF0ZUVudGl0eSh7XG4gICAgICAgICAgaWQ6IHBsYWNlaG9sZGVySWRcbiAgICAgICAgfSkpXG4gICAgICApO1xuICAgICAgcGxhY2Vob2xkZXJzVXBkYXRlcy5wbGFjZWhvbGRlcnNUZW1wbGF0ZXNUb0JlU2V0LmZvckVhY2goKHBsYWNlaG9sZGVyc1RlbXBsYXRlVG9CZVNldCkgPT4ge1xuICAgICAgICBzdG9yZS5kaXNwYXRjaChzZXRQbGFjZWhvbGRlclRlbXBsYXRlRW50aXR5KHsgZW50aXR5OiBwbGFjZWhvbGRlcnNUZW1wbGF0ZVRvQmVTZXQgfSkpO1xuICAgICAgfSk7XG4gICAgICBwbGFjZWhvbGRlcnNVcGRhdGVzLnBsYWNlaG9sZGVyUmVxdWVzdHNUb0Rpc2FibGUuZm9yRWFjaCgocGxhY2Vob2xkZXJSZXF1ZXN0VG9EaXNhYmxlKSA9PiB7XG4gICAgICAgIHN0b3JlLmRpc3BhdGNoKHVwZGF0ZVBsYWNlaG9sZGVyUmVxdWVzdEVudGl0eSh7IGVudGl0eTogeyBpZDogcGxhY2Vob2xkZXJSZXF1ZXN0VG9EaXNhYmxlLCB1c2VkOiBmYWxzZSB9IH0pKTtcbiAgICAgIH0pO1xuICAgICAgcGxhY2Vob2xkZXJzVXBkYXRlcy5wbGFjZWhvbGRlclJlcXVlc3RzVG9FbmFibGUuZm9yRWFjaCgocGxhY2Vob2xkZXJSZXF1ZXN0VG9FbmFibGUpID0+IHtcbiAgICAgICAgc3RvcmUuZGlzcGF0Y2godXBkYXRlUGxhY2Vob2xkZXJSZXF1ZXN0RW50aXR5KHsgZW50aXR5OiB7IGlkOiBwbGFjZWhvbGRlclJlcXVlc3RUb0VuYWJsZSwgdXNlZDogdHJ1ZSB9IH0pKTtcbiAgICAgIH0pO1xuICAgICAgcGxhY2Vob2xkZXJzVXBkYXRlcy5wbGFjZWhvbGRlck5ld1JlcXVlc3RzLmZvckVhY2goKHBsYWNlaG9sZGVyTmV3UmVxdWVzdCkgPT4ge1xuICAgICAgICBzdG9yZS5kaXNwYXRjaChzZXRQbGFjZWhvbGRlclJlcXVlc3RFbnRpdHlGcm9tVXJsKHtcbiAgICAgICAgICByZXNvbHZlZFVybDogcGxhY2Vob2xkZXJOZXdSZXF1ZXN0LnJlc29sdmVkVXJsLFxuICAgICAgICAgIGlkOiBwbGFjZWhvbGRlck5ld1JlcXVlc3QucmF3VXJsLFxuICAgICAgICAgIGNhbGw6IHRoaXMucmV0cmlldmVUZW1wbGF0ZShwbGFjZWhvbGRlck5ld1JlcXVlc3QucmVzb2x2ZWRVcmwpXG4gICAgICAgIH0pKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExvY2FsaXplIHRoZSB1cmwsIHJlcGxhY2luZyB0aGUgbGFuZ3VhZ2UgbWFya2VyXG4gICAqIEBwYXJhbSB1cmxcbiAgICogQHBhcmFtIGxhbmd1YWdlXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb2x2ZVVybFdpdGhMYW5nKHVybDogc3RyaW5nLCBsYW5ndWFnZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKCFsYW5ndWFnZSAmJiB1cmwuaW5jbHVkZXMoJ1tMQU5HVUFHRV0nKSkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihgTWlzc2luZyBsYW5ndWFnZSB3aGVuIHRyeWluZyB0byByZXNvbHZlICR7dXJsfWApO1xuICAgIH1cbiAgICByZXR1cm4gbGFuZ3VhZ2UgPyB1cmwucmVwbGFjZSgvXFxbTEFOR1VBR0VdL2csIGxhbmd1YWdlKSA6IHVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0ZW1wbGF0ZSBhcyBqc29uIGZyb20gYSBnaXZlbiB1cmxcbiAgICogQHBhcmFtIHVybFxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIHJldHJpZXZlVGVtcGxhdGUodXJsOiBzdHJpbmcpOiBQcm9taXNlPFBsYWNlaG9sZGVyUmVxdWVzdFJlcGx5PiB7XG4gICAgY29uc3QgcmVzb2x2ZWRVcmwkID0gdGhpcy5pbmplY3Rvci5nZXQoRHluYW1pY0NvbnRlbnRTZXJ2aWNlLCBudWxsLCB7IG9wdGlvbmFsOiB0cnVlIH0pPy5nZXRDb250ZW50UGF0aFN0cmVhbSh1cmwpIHx8IG9mKHVybCk7XG4gICAgY29uc3QgZnVsbFVybCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHJlc29sdmVkVXJsJCk7XG4gICAgcmV0dXJuIGZldGNoKGZ1bGxVcmwpLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBleGVjdXRlQWN0aW9ucyhhY3Rpb25zOiBBY3Rpb25VcGRhdGVQbGFjZWhvbGRlckJsb2NrW10pIHtcbiAgICBjb25zdCB0ZW1wbGF0ZXMgPSBhY3Rpb25zLm1hcCgoYWN0aW9uKSA9PiAoe1xuICAgICAgcGxhY2Vob2xkZXJJZDogYWN0aW9uLnBsYWNlaG9sZGVySWQsXG4gICAgICB0ZW1wbGF0ZVVybDogYWN0aW9uLnZhbHVlLFxuICAgICAgcHJpb3JpdHk6IGFjdGlvbi5wcmlvcml0eSB8fCAwXG4gICAgfSkpO1xuXG4gICAgdGhpcy5wbGFjZWhvbGRlcnNBY3Rpb25zJC5uZXh0KHRlbXBsYXRlcyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- /** ActionUpdatePlaceholderBlock */
2
- export const RULES_ENGINE_PLACEHOLDER_UPDATE_ACTION_TYPE = 'UPDATE_PLACEHOLDER';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ydWxlcy1lbmdpbmUvcGxhY2Vob2xkZXIuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxvQ0FBb0M7QUFDcEMsTUFBTSxDQUFDLE1BQU0sMkNBQTJDLEdBQUcsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIFJ1bGVzRW5naW5lQWN0aW9uLFxufSBmcm9tICdAbzNyL2NvcmUnO1xuXG4vKiogQWN0aW9uVXBkYXRlUGxhY2Vob2xkZXJCbG9jayAgKi9cbmV4cG9ydCBjb25zdCBSVUxFU19FTkdJTkVfUExBQ0VIT0xERVJfVVBEQVRFX0FDVElPTl9UWVBFID0gJ1VQREFURV9QTEFDRUhPTERFUic7XG5cbi8qKlxuICogQ29udGVudCBvZiBhY3Rpb24gdGhhdCB1cGRhdGVzIGEgcGxhY2Vob2xkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25VcGRhdGVQbGFjZWhvbGRlckJsb2NrIGV4dGVuZHMgUnVsZXNFbmdpbmVBY3Rpb24ge1xuICBhY3Rpb25UeXBlOiB0eXBlb2YgUlVMRVNfRU5HSU5FX1BMQUNFSE9MREVSX1VQREFURV9BQ1RJT05fVFlQRTtcbiAgcGxhY2Vob2xkZXJJZDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBwcmlvcml0eT86IG51bWJlcjtcbn1cbiJdfQ==