bways-report 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +477 -0
  3. package/esm2022/bways-report.mjs +5 -0
  4. package/esm2022/lib/core/errors/index.mjs +2 -0
  5. package/esm2022/lib/core/errors/reporting-errors.mjs +65 -0
  6. package/esm2022/lib/core/index.mjs +8 -0
  7. package/esm2022/lib/core/models/component-event.model.mjs +8 -0
  8. package/esm2022/lib/core/models/index.mjs +5 -0
  9. package/esm2022/lib/core/models/report-component.model.mjs +10 -0
  10. package/esm2022/lib/core/models/report-datasource.model.mjs +9 -0
  11. package/esm2022/lib/core/models/report-definition.model.mjs +13 -0
  12. package/esm2022/lib/core/models/report-grid.model.mjs +10 -0
  13. package/esm2022/lib/core/models/report-layout.model.mjs +9 -0
  14. package/esm2022/lib/core/models/report-parameter.model.mjs +9 -0
  15. package/esm2022/lib/core/models/validation.model.mjs +8 -0
  16. package/esm2022/lib/core/registry/component-category.mjs +8 -0
  17. package/esm2022/lib/core/registry/component-registry.mjs +90 -0
  18. package/esm2022/lib/core/registry/index.mjs +2 -0
  19. package/esm2022/lib/core/registry/property-definition.model.mjs +10 -0
  20. package/esm2022/lib/core/services/dynamic-form-builder.service.mjs +55 -0
  21. package/esm2022/lib/core/services/index.mjs +3 -0
  22. package/esm2022/lib/core/services/report-session-context.service.mjs +314 -0
  23. package/esm2022/lib/core/tokens/index.mjs +3 -0
  24. package/esm2022/lib/core/tokens/reporting-config.token.mjs +26 -0
  25. package/esm2022/lib/core/tokens/session-context.token.mjs +18 -0
  26. package/esm2022/lib/core/utilities/id-generator.mjs +17 -0
  27. package/esm2022/lib/core/utilities/index.mjs +3 -0
  28. package/esm2022/lib/core/utilities/schema-migration.mjs +38 -0
  29. package/esm2022/lib/core/utils/identifier-humanizer.mjs +88 -0
  30. package/esm2022/lib/core/validation/index.mjs +2 -0
  31. package/esm2022/lib/core/validation/validation-factory.mjs +70 -0
  32. package/esm2022/lib/data-access/adapters/http-lookup.adapter.mjs +107 -0
  33. package/esm2022/lib/data-access/adapters/http-schema-discovery.adapter.mjs +119 -0
  34. package/esm2022/lib/data-access/adapters/index.mjs +3 -0
  35. package/esm2022/lib/data-access/contracts/data-source.contract.mjs +28 -0
  36. package/esm2022/lib/data-access/contracts/index.mjs +7 -0
  37. package/esm2022/lib/data-access/contracts/lookup.contract.mjs +6 -0
  38. package/esm2022/lib/data-access/contracts/master-data.provider.mjs +24 -0
  39. package/esm2022/lib/data-access/contracts/report-persistence.contract.mjs +25 -0
  40. package/esm2022/lib/data-access/contracts/schema-discovery.contract.mjs +7 -0
  41. package/esm2022/lib/data-access/contracts/translation.contract.mjs +9 -0
  42. package/esm2022/lib/data-access/index.mjs +3 -0
  43. package/esm2022/lib/features/designer/components/component-palette/component-palette.component.mjs +542 -0
  44. package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +843 -0
  45. package/esm2022/lib/features/designer/components/property-editor/parameter-binding-editor.component.mjs +556 -0
  46. package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +845 -0
  47. package/esm2022/lib/features/designer/components/property-editor/property-editor-general.component.mjs +185 -0
  48. package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +452 -0
  49. package/esm2022/lib/features/designer/components/property-editor/property-editor-layout.component.mjs +350 -0
  50. package/esm2022/lib/features/designer/components/property-editor/property-editor-report.component.mjs +175 -0
  51. package/esm2022/lib/features/designer/components/property-editor/property-editor-validation.component.mjs +137 -0
  52. package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +608 -0
  53. package/esm2022/lib/features/designer/components/toolbar/designer-toolbar.component.mjs +225 -0
  54. package/esm2022/lib/features/designer/designer.component.mjs +285 -0
  55. package/esm2022/lib/features/designer/index.mjs +7 -0
  56. package/esm2022/lib/features/designer/services/designer-state.service.mjs +310 -0
  57. package/esm2022/lib/features/designer/services/index.mjs +2 -0
  58. package/esm2022/lib/features/designer/utilities/canvas-layout.util.mjs +124 -0
  59. package/esm2022/lib/features/export/index.mjs +2 -0
  60. package/esm2022/lib/features/export/models/export.models.mjs +2 -0
  61. package/esm2022/lib/features/export/services/report-export.service.mjs +107 -0
  62. package/esm2022/lib/features/index.mjs +6 -0
  63. package/esm2022/lib/features/persistence/index.mjs +2 -0
  64. package/esm2022/lib/features/persistence/services/index.mjs +4 -0
  65. package/esm2022/lib/features/persistence/services/report-store.service.mjs +183 -0
  66. package/esm2022/lib/features/persistence/services/report-versioning.service.mjs +81 -0
  67. package/esm2022/lib/features/persistence/services/schema-validator.service.mjs +102 -0
  68. package/esm2022/lib/features/routing/components/routed-report-designer.component.mjs +156 -0
  69. package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +163 -0
  70. package/esm2022/lib/features/routing/index.mjs +6 -0
  71. package/esm2022/lib/features/routing/models/report-route.models.mjs +2 -0
  72. package/esm2022/lib/features/routing/report-routes.mjs +49 -0
  73. package/esm2022/lib/features/routing/resolvers/report.resolver.mjs +22 -0
  74. package/esm2022/lib/features/routing/services/report-menu.service.mjs +77 -0
  75. package/esm2022/lib/features/runtime/dynamic-renderer.component.mjs +222 -0
  76. package/esm2022/lib/features/runtime/index.mjs +4 -0
  77. package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +409 -0
  78. package/esm2022/lib/features/runtime/report-runtime.component.mjs +147 -0
  79. package/esm2022/lib/primitives/components/button/rpt-button.component.mjs +88 -0
  80. package/esm2022/lib/primitives/components/chart-bridge/report-chart-bridge.component.mjs +361 -0
  81. package/esm2022/lib/primitives/components/checkbox/rpt-checkbox.component.mjs +86 -0
  82. package/esm2022/lib/primitives/components/date/rpt-date.component.mjs +91 -0
  83. package/esm2022/lib/primitives/components/dropdown/rpt-dropdown.component.mjs +204 -0
  84. package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +476 -0
  85. package/esm2022/lib/primitives/components/index.mjs +10 -0
  86. package/esm2022/lib/primitives/components/input/rpt-input.component.mjs +88 -0
  87. package/esm2022/lib/primitives/components/kpi-card/rpt-kpi-card.component.mjs +197 -0
  88. package/esm2022/lib/primitives/components/number/rpt-number.component.mjs +110 -0
  89. package/esm2022/lib/primitives/index.mjs +3 -0
  90. package/esm2022/lib/primitives/register-builtins.mjs +328 -0
  91. package/esm2022/lib/provide-reporting.mjs +92 -0
  92. package/esm2022/public-api.mjs +9 -0
  93. package/fesm2022/bways-report.mjs +10360 -0
  94. package/fesm2022/bways-report.mjs.map +1 -0
  95. package/index.d.ts +5 -0
  96. package/lib/core/errors/index.d.ts +1 -0
  97. package/lib/core/errors/reporting-errors.d.ts +42 -0
  98. package/lib/core/index.d.ts +7 -0
  99. package/lib/core/models/component-event.model.d.ts +37 -0
  100. package/lib/core/models/index.d.ts +11 -0
  101. package/lib/core/models/report-component.model.d.ts +95 -0
  102. package/lib/core/models/report-datasource.model.d.ts +39 -0
  103. package/lib/core/models/report-definition.model.d.ts +100 -0
  104. package/lib/core/models/report-grid.model.d.ts +73 -0
  105. package/lib/core/models/report-layout.model.d.ts +43 -0
  106. package/lib/core/models/report-parameter.model.d.ts +22 -0
  107. package/lib/core/models/validation.model.d.ts +30 -0
  108. package/lib/core/registry/component-category.d.ts +16 -0
  109. package/lib/core/registry/component-registry.d.ts +101 -0
  110. package/lib/core/registry/index.d.ts +4 -0
  111. package/lib/core/registry/property-definition.model.d.ts +38 -0
  112. package/lib/core/services/dynamic-form-builder.service.d.ts +30 -0
  113. package/lib/core/services/index.d.ts +3 -0
  114. package/lib/core/services/report-session-context.service.d.ts +87 -0
  115. package/lib/core/tokens/index.d.ts +4 -0
  116. package/lib/core/tokens/reporting-config.token.d.ts +42 -0
  117. package/lib/core/tokens/session-context.token.d.ts +36 -0
  118. package/lib/core/utilities/id-generator.d.ts +9 -0
  119. package/lib/core/utilities/index.d.ts +3 -0
  120. package/lib/core/utilities/schema-migration.d.ts +10 -0
  121. package/lib/core/utils/identifier-humanizer.d.ts +22 -0
  122. package/lib/core/validation/index.d.ts +1 -0
  123. package/lib/core/validation/validation-factory.d.ts +31 -0
  124. package/lib/data-access/adapters/http-lookup.adapter.d.ts +19 -0
  125. package/lib/data-access/adapters/http-schema-discovery.adapter.d.ts +20 -0
  126. package/lib/data-access/adapters/index.d.ts +2 -0
  127. package/lib/data-access/contracts/data-source.contract.d.ts +37 -0
  128. package/lib/data-access/contracts/index.d.ts +9 -0
  129. package/lib/data-access/contracts/lookup.contract.d.ts +32 -0
  130. package/lib/data-access/contracts/master-data.provider.d.ts +54 -0
  131. package/lib/data-access/contracts/report-persistence.contract.d.ts +36 -0
  132. package/lib/data-access/contracts/schema-discovery.contract.d.ts +52 -0
  133. package/lib/data-access/contracts/translation.contract.d.ts +16 -0
  134. package/lib/data-access/index.d.ts +2 -0
  135. package/lib/features/designer/components/component-palette/component-palette.component.d.ts +39 -0
  136. package/lib/features/designer/components/design-canvas/design-canvas.component.d.ts +42 -0
  137. package/lib/features/designer/components/property-editor/parameter-binding-editor.component.d.ts +36 -0
  138. package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +68 -0
  139. package/lib/features/designer/components/property-editor/property-editor-general.component.d.ts +20 -0
  140. package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts +20 -0
  141. package/lib/features/designer/components/property-editor/property-editor-layout.component.d.ts +18 -0
  142. package/lib/features/designer/components/property-editor/property-editor-report.component.d.ts +15 -0
  143. package/lib/features/designer/components/property-editor/property-editor-validation.component.d.ts +12 -0
  144. package/lib/features/designer/components/property-editor/property-editor.component.d.ts +44 -0
  145. package/lib/features/designer/components/toolbar/designer-toolbar.component.d.ts +18 -0
  146. package/lib/features/designer/designer.component.d.ts +36 -0
  147. package/lib/features/designer/index.d.ts +7 -0
  148. package/lib/features/designer/services/designer-state.service.d.ts +103 -0
  149. package/lib/features/designer/services/index.d.ts +2 -0
  150. package/lib/features/designer/utilities/canvas-layout.util.d.ts +55 -0
  151. package/lib/features/export/index.d.ts +2 -0
  152. package/lib/features/export/models/export.models.d.ts +16 -0
  153. package/lib/features/export/services/report-export.service.d.ts +27 -0
  154. package/lib/features/index.d.ts +5 -0
  155. package/lib/features/persistence/index.d.ts +1 -0
  156. package/lib/features/persistence/services/index.d.ts +5 -0
  157. package/lib/features/persistence/services/report-store.service.d.ts +53 -0
  158. package/lib/features/persistence/services/report-versioning.service.d.ts +29 -0
  159. package/lib/features/persistence/services/schema-validator.service.d.ts +34 -0
  160. package/lib/features/routing/components/routed-report-designer.component.d.ts +18 -0
  161. package/lib/features/routing/components/routed-report-runtime.component.d.ts +18 -0
  162. package/lib/features/routing/index.d.ts +6 -0
  163. package/lib/features/routing/models/report-route.models.d.ts +41 -0
  164. package/lib/features/routing/report-routes.d.ts +16 -0
  165. package/lib/features/routing/resolvers/report.resolver.d.ts +7 -0
  166. package/lib/features/routing/services/report-menu.service.d.ts +30 -0
  167. package/lib/features/runtime/dynamic-renderer.component.d.ts +30 -0
  168. package/lib/features/runtime/index.d.ts +3 -0
  169. package/lib/features/runtime/report-grid-bridge.component.d.ts +94 -0
  170. package/lib/features/runtime/report-runtime.component.d.ts +26 -0
  171. package/lib/primitives/components/button/rpt-button.component.d.ts +19 -0
  172. package/lib/primitives/components/chart-bridge/report-chart-bridge.component.d.ts +45 -0
  173. package/lib/primitives/components/checkbox/rpt-checkbox.component.d.ts +14 -0
  174. package/lib/primitives/components/date/rpt-date.component.d.ts +17 -0
  175. package/lib/primitives/components/dropdown/rpt-dropdown.component.d.ts +32 -0
  176. package/lib/primitives/components/icon/rpt-icon.component.d.ts +41 -0
  177. package/lib/primitives/components/index.d.ts +12 -0
  178. package/lib/primitives/components/input/rpt-input.component.d.ts +16 -0
  179. package/lib/primitives/components/kpi-card/rpt-kpi-card.component.d.ts +43 -0
  180. package/lib/primitives/components/number/rpt-number.component.d.ts +20 -0
  181. package/lib/primitives/index.d.ts +2 -0
  182. package/lib/primitives/register-builtins.d.ts +11 -0
  183. package/lib/provide-reporting.d.ts +75 -0
  184. package/package.json +55 -0
  185. package/public-api.d.ts +5 -0
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Validation factory — converts `ValidationDefinition` metadata
3
+ * into Angular `ValidatorFn[]`.
4
+ *
5
+ * This is a **pure function** — no DI, no Angular TestBed needed.
6
+ * Easily unit-testable.
7
+ */
8
+ import { Validators } from '@angular/forms';
9
+ /**
10
+ * Converts a `ValidationDefinition` into an array of Angular validator functions.
11
+ *
12
+ * @param definition - Validation metadata from the report definition.
13
+ * @returns Array of Angular `ValidatorFn` to apply to a form control.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const validators = createValidators({ required: true, maxLength: 100 });
18
+ * const control = new FormControl('', validators);
19
+ * ```
20
+ */
21
+ export function createValidators(definition) {
22
+ if (!definition) {
23
+ return [];
24
+ }
25
+ const validators = [];
26
+ if (definition.required) {
27
+ validators.push(Validators.required);
28
+ }
29
+ if (definition.min !== undefined) {
30
+ validators.push(Validators.min(definition.min));
31
+ }
32
+ if (definition.max !== undefined) {
33
+ validators.push(Validators.max(definition.max));
34
+ }
35
+ if (definition.minLength !== undefined) {
36
+ validators.push(Validators.minLength(definition.minLength));
37
+ }
38
+ if (definition.maxLength !== undefined) {
39
+ validators.push(Validators.maxLength(definition.maxLength));
40
+ }
41
+ if (definition.pattern) {
42
+ validators.push(Validators.pattern(definition.pattern));
43
+ }
44
+ return validators;
45
+ }
46
+ /**
47
+ * Extracts a user-facing validation error message from a validation definition
48
+ * and error key.
49
+ *
50
+ * @param definition - Validation metadata.
51
+ * @param errorKey - The validation error key (e.g., 'required', 'maxlength').
52
+ * @returns The custom message if defined, or a default message.
53
+ */
54
+ export function getValidationMessage(definition, errorKey) {
55
+ // Check for custom message first
56
+ if (definition?.messages?.[errorKey]) {
57
+ return definition.messages[errorKey];
58
+ }
59
+ // Default messages
60
+ const defaults = {
61
+ required: 'This field is required',
62
+ min: `Minimum value is ${definition?.min}`,
63
+ max: `Maximum value is ${definition?.max}`,
64
+ minlength: `Minimum length is ${definition?.minLength}`,
65
+ maxlength: `Maximum length is ${definition?.maxLength}`,
66
+ pattern: 'Invalid format',
67
+ };
68
+ return defaults[errorKey] ?? 'Invalid value';
69
+ }
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvY29yZS92YWxpZGF0aW9uL3ZhbGlkYXRpb24tZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsVUFBaUM7SUFDaEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFrQixFQUFFLENBQUM7SUFFckMsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEIsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNqQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNqQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLFVBQTRDLEVBQzVDLFFBQWdCO0lBRWhCLGlDQUFpQztJQUNqQyxJQUFJLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3JDLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLE1BQU0sUUFBUSxHQUEyQjtRQUN2QyxRQUFRLEVBQUUsd0JBQXdCO1FBQ2xDLEdBQUcsRUFBRSxvQkFBb0IsVUFBVSxFQUFFLEdBQUcsRUFBRTtRQUMxQyxHQUFHLEVBQUUsb0JBQW9CLFVBQVUsRUFBRSxHQUFHLEVBQUU7UUFDMUMsU0FBUyxFQUFFLHFCQUFxQixVQUFVLEVBQUUsU0FBUyxFQUFFO1FBQ3ZELFNBQVMsRUFBRSxxQkFBcUIsVUFBVSxFQUFFLFNBQVMsRUFBRTtRQUN2RCxPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCLENBQUM7SUFFRixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxlQUFlLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVmFsaWRhdGlvbiBmYWN0b3J5IOKAlCBjb252ZXJ0cyBgVmFsaWRhdGlvbkRlZmluaXRpb25gIG1ldGFkYXRhXG4gKiBpbnRvIEFuZ3VsYXIgYFZhbGlkYXRvckZuW11gLlxuICpcbiAqIFRoaXMgaXMgYSAqKnB1cmUgZnVuY3Rpb24qKiDigJQgbm8gREksIG5vIEFuZ3VsYXIgVGVzdEJlZCBuZWVkZWQuXG4gKiBFYXNpbHkgdW5pdC10ZXN0YWJsZS5cbiAqL1xuXG5pbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFZhbGlkYXRpb25EZWZpbml0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3ZhbGlkYXRpb24ubW9kZWwnO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgYFZhbGlkYXRpb25EZWZpbml0aW9uYCBpbnRvIGFuIGFycmF5IG9mIEFuZ3VsYXIgdmFsaWRhdG9yIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcGFyYW0gZGVmaW5pdGlvbiAtIFZhbGlkYXRpb24gbWV0YWRhdGEgZnJvbSB0aGUgcmVwb3J0IGRlZmluaXRpb24uXG4gKiBAcmV0dXJucyBBcnJheSBvZiBBbmd1bGFyIGBWYWxpZGF0b3JGbmAgdG8gYXBwbHkgdG8gYSBmb3JtIGNvbnRyb2wuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHZhbGlkYXRvcnMgPSBjcmVhdGVWYWxpZGF0b3JzKHsgcmVxdWlyZWQ6IHRydWUsIG1heExlbmd0aDogMTAwIH0pO1xuICogY29uc3QgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgdmFsaWRhdG9ycyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVZhbGlkYXRvcnMoZGVmaW5pdGlvbj86IFZhbGlkYXRpb25EZWZpbml0aW9uKTogVmFsaWRhdG9yRm5bXSB7XG4gIGlmICghZGVmaW5pdGlvbikge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcblxuICBpZiAoZGVmaW5pdGlvbi5yZXF1aXJlZCkge1xuICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgfVxuXG4gIGlmIChkZWZpbml0aW9uLm1pbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKGRlZmluaXRpb24ubWluKSk7XG4gIH1cblxuICBpZiAoZGVmaW5pdGlvbi5tYXggIT09IHVuZGVmaW5lZCkge1xuICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heChkZWZpbml0aW9uLm1heCkpO1xuICB9XG5cbiAgaWYgKGRlZmluaXRpb24ubWluTGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgoZGVmaW5pdGlvbi5taW5MZW5ndGgpKTtcbiAgfVxuXG4gIGlmIChkZWZpbml0aW9uLm1heExlbmd0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKGRlZmluaXRpb24ubWF4TGVuZ3RoKSk7XG4gIH1cblxuICBpZiAoZGVmaW5pdGlvbi5wYXR0ZXJuKSB7XG4gICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybihkZWZpbml0aW9uLnBhdHRlcm4pKTtcbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0b3JzO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIGEgdXNlci1mYWNpbmcgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlIGZyb20gYSB2YWxpZGF0aW9uIGRlZmluaXRpb25cbiAqIGFuZCBlcnJvciBrZXkuXG4gKlxuICogQHBhcmFtIGRlZmluaXRpb24gLSBWYWxpZGF0aW9uIG1ldGFkYXRhLlxuICogQHBhcmFtIGVycm9yS2V5IC0gVGhlIHZhbGlkYXRpb24gZXJyb3Iga2V5IChlLmcuLCAncmVxdWlyZWQnLCAnbWF4bGVuZ3RoJykuXG4gKiBAcmV0dXJucyBUaGUgY3VzdG9tIG1lc3NhZ2UgaWYgZGVmaW5lZCwgb3IgYSBkZWZhdWx0IG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWxpZGF0aW9uTWVzc2FnZShcbiAgZGVmaW5pdGlvbjogVmFsaWRhdGlvbkRlZmluaXRpb24gfCB1bmRlZmluZWQsXG4gIGVycm9yS2V5OiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIC8vIENoZWNrIGZvciBjdXN0b20gbWVzc2FnZSBmaXJzdFxuICBpZiAoZGVmaW5pdGlvbj8ubWVzc2FnZXM/LltlcnJvcktleV0pIHtcbiAgICByZXR1cm4gZGVmaW5pdGlvbi5tZXNzYWdlc1tlcnJvcktleV07XG4gIH1cblxuICAvLyBEZWZhdWx0IG1lc3NhZ2VzXG4gIGNvbnN0IGRlZmF1bHRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIHJlcXVpcmVkOiAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcsXG4gICAgbWluOiBgTWluaW11bSB2YWx1ZSBpcyAke2RlZmluaXRpb24/Lm1pbn1gLFxuICAgIG1heDogYE1heGltdW0gdmFsdWUgaXMgJHtkZWZpbml0aW9uPy5tYXh9YCxcbiAgICBtaW5sZW5ndGg6IGBNaW5pbXVtIGxlbmd0aCBpcyAke2RlZmluaXRpb24/Lm1pbkxlbmd0aH1gLFxuICAgIG1heGxlbmd0aDogYE1heGltdW0gbGVuZ3RoIGlzICR7ZGVmaW5pdGlvbj8ubWF4TGVuZ3RofWAsXG4gICAgcGF0dGVybjogJ0ludmFsaWQgZm9ybWF0JyxcbiAgfTtcblxuICByZXR1cm4gZGVmYXVsdHNbZXJyb3JLZXldID8/ICdJbnZhbGlkIHZhbHVlJztcbn1cbiJdfQ==
@@ -0,0 +1,107 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { of } from 'rxjs';
4
+ import { catchError, tap } from 'rxjs/operators';
5
+ import { ReportLookupAdapter, } from '../contracts/lookup.contract';
6
+ import { REPORTING_CONFIG } from '../../core/tokens/reporting-config.token';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * Built-in HTTP adapter for fetching dropdown options from backend database tables and SPs.
10
+ * Includes in-memory caching with TTL and rich fallback mock data for testing.
11
+ */
12
+ export class HttpReportLookupAdapter extends ReportLookupAdapter {
13
+ http = inject(HttpClient, { optional: true });
14
+ config = inject(REPORTING_CONFIG, { optional: true });
15
+ cache = new Map();
16
+ mockDataStore = {
17
+ Customers: [
18
+ { customerId: 101, customerName: 'Acme Corporation', branchId: 1, isActive: true },
19
+ { customerId: 102, customerName: 'Globex Industries', branchId: 2, isActive: true },
20
+ { customerId: 103, customerName: 'Initech Software', branchId: 1, isActive: true },
21
+ { customerId: 104, customerName: 'Umbrella Corporation', branchId: 3, isActive: true },
22
+ { customerId: 105, customerName: 'Wayne Enterprises', branchId: 2, isActive: true },
23
+ { customerId: 106, customerName: 'Stark Industries', branchId: 1, isActive: true },
24
+ ],
25
+ Branches: [
26
+ { branchId: 1, branchName: 'North America HQ (New York)', region: 'North America' },
27
+ { branchId: 2, branchName: 'EMEA Division (London)', region: 'Europe' },
28
+ { branchId: 3, branchName: 'APAC Hub (Singapore)', region: 'Asia Pacific' },
29
+ { branchId: 4, branchName: 'LATAM Office (São Paulo)', region: 'Latin America' },
30
+ ],
31
+ Products: [
32
+ { productId: 1, productName: 'Enterprise ERP Suite', category: 'Software', unitPrice: 2400 },
33
+ { productId: 2, productName: 'Cloud Analytics Pro', category: 'SaaS', unitPrice: 1200 },
34
+ { productId: 3, productName: 'Security Shield Endpoint', category: 'Security', unitPrice: 850 },
35
+ { productId: 4, productName: 'Dedicated API Gateway', category: 'Infrastructure', unitPrice: 3100 },
36
+ ],
37
+ PaymentMethods: [
38
+ { code: 'BANK_TRANSFER', title: 'Direct Bank Wire' },
39
+ { code: 'CREDIT_CARD', title: 'Corporate Credit Card' },
40
+ { code: 'PAYPAL', title: 'PayPal Corporate' },
41
+ { code: 'NET_30', title: 'Net 30 Invoicing' },
42
+ ],
43
+ usp_GetCustomerList: [
44
+ { id: 101, name: 'Acme Corporation (SP)', branchId: 1, branch: 'NA' },
45
+ { id: 102, name: 'Globex Industries (SP)', branchId: 2, branch: 'EMEA' },
46
+ { id: 105, name: 'Wayne Enterprises (SP)', branchId: 1, branch: 'NA' },
47
+ { id: 106, name: 'Stark Industries (SP)', branchId: 3, branch: 'APAC' },
48
+ ],
49
+ usp_GetBranchLookup: [
50
+ { id: 1, name: 'North America HQ' },
51
+ { id: 2, name: 'EMEA Division' },
52
+ { id: 3, name: 'APAC Hub' },
53
+ ],
54
+ };
55
+ fetchOptions(request) {
56
+ const cacheKey = this.generateCacheKey(request);
57
+ const cached = this.cache.get(cacheKey);
58
+ const now = Date.now();
59
+ if (cached && cached.expiresAt > now) {
60
+ return of(cached.data);
61
+ }
62
+ const baseUrl = this.config?.apiBaseUrl;
63
+ if (baseUrl && this.http) {
64
+ return this.http.post(`${baseUrl}/lookup`, request).pipe(tap((items) => this.setCache(cacheKey, items)), catchError((err) => {
65
+ console.warn('[HttpLookupAdapter] Remote lookup failed, falling back to mock:', err);
66
+ const fallback = this.resolveMockOptions(request);
67
+ this.setCache(cacheKey, fallback);
68
+ return of(fallback);
69
+ }));
70
+ }
71
+ const fallback = this.resolveMockOptions(request);
72
+ this.setCache(cacheKey, fallback);
73
+ return of(fallback);
74
+ }
75
+ setCache(key, data, ttlSeconds = 300) {
76
+ this.cache.set(key, {
77
+ expiresAt: Date.now() + ttlSeconds * 1000,
78
+ data,
79
+ });
80
+ }
81
+ generateCacheKey(req) {
82
+ return `${req.sourceType}:${req.entityName}:${req.valueField}:${req.displayField}:${JSON.stringify(req.filter ?? {})}:${JSON.stringify(req.parameters ?? {})}`;
83
+ }
84
+ resolveMockOptions(req) {
85
+ const entity = req.entityName || '';
86
+ const records = this.mockDataStore[entity] ?? [];
87
+ const valKey = req.valueField;
88
+ const labelKey = req.displayField;
89
+ let filteredRecords = records;
90
+ const branchParam = req.parameters?.['@BranchId'] ?? req.parameters?.['branchId'];
91
+ if (branchParam !== undefined && branchParam !== null && branchParam !== '') {
92
+ const matchNum = Number(branchParam);
93
+ filteredRecords = records.filter((r) => r['branchId'] === undefined || r['branchId'] === matchNum || r['branch'] === String(branchParam));
94
+ }
95
+ return filteredRecords.map((r) => ({
96
+ value: r[valKey] ?? String(r['id'] ?? r['code'] ?? ''),
97
+ label: r[labelKey] ?? String(r['name'] ?? r['title'] ?? ''),
98
+ raw: r,
99
+ }));
100
+ }
101
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportLookupAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
102
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportLookupAdapter });
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportLookupAdapter, decorators: [{
105
+ type: Injectable
106
+ }] });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1sb29rdXAuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2RhdGEtYWNjZXNzL2FkYXB0ZXJzL2h0dHAtbG9va3VwLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBTyxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBR0wsbUJBQW1CLEdBQ3BCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBTzVFOzs7R0FHRztBQUVILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBbUI7SUFDN0MsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFdEQsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFzQixDQUFDO0lBRXRDLGFBQWEsR0FBc0Q7UUFDbEYsU0FBUyxFQUFFO1lBQ1QsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDbEYsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFFBQVEs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QzlCLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEYsSUFBSSxXQUFXLEtBQUssU0FBUyxJQUFJLFdBQVcsS0FBSyxJQUFJLElBQUksV0FBVyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzVFLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNyQyxlQUFlLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDOUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUN4RyxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqQyxLQUFLLEVBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBcUIsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0UsS0FBSyxFQUFHLENBQUMsQ0FBQyxRQUFRLENBQVksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkUsR0FBRyxFQUFFLENBQUM7U0FDUCxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7d0dBeEdVLHVCQUF1Qjs0R0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgTG9va3VwT3B0aW9uSXRlbSxcbiAgTG9va3VwUXVlcnlSZXF1ZXN0LFxuICBSZXBvcnRMb29rdXBBZGFwdGVyLFxufSBmcm9tICcuLi9jb250cmFjdHMvbG9va3VwLmNvbnRyYWN0JztcbmltcG9ydCB7IFJFUE9SVElOR19DT05GSUcgfSBmcm9tICcuLi8uLi9jb3JlL3Rva2Vucy9yZXBvcnRpbmctY29uZmlnLnRva2VuJztcblxuaW50ZXJmYWNlIENhY2hlRW50cnkge1xuICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgZGF0YTogTG9va3VwT3B0aW9uSXRlbVtdO1xufVxuXG4vKipcbiAqIEJ1aWx0LWluIEhUVFAgYWRhcHRlciBmb3IgZmV0Y2hpbmcgZHJvcGRvd24gb3B0aW9ucyBmcm9tIGJhY2tlbmQgZGF0YWJhc2UgdGFibGVzIGFuZCBTUHMuXG4gKiBJbmNsdWRlcyBpbi1tZW1vcnkgY2FjaGluZyB3aXRoIFRUTCBhbmQgcmljaCBmYWxsYmFjayBtb2NrIGRhdGEgZm9yIHRlc3RpbmcuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIdHRwUmVwb3J0TG9va3VwQWRhcHRlciBleHRlbmRzIFJlcG9ydExvb2t1cEFkYXB0ZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoUkVQT1JUSU5HX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIENhY2hlRW50cnk+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBtb2NrRGF0YVN0b3JlOiBSZWNvcmQ8c3RyaW5nLCBBcnJheTx7IFtrZXk6IHN0cmluZ106IHVua25vd24gfT4+ID0ge1xuICAgIEN1c3RvbWVyczogW1xuICAgICAgeyBjdXN0b21lcklkOiAxMDEsIGN1c3RvbWVyTmFtZTogJ0FjbWUgQ29ycG9yYXRpb24nLCBicmFuY2hJZDogMSwgaXNBY3RpdmU6IHRydWUgfSxcbiAgICAgIHsgY3VzdG9tZXJJZDogMTAyLCBjdXN0b21lck5hbWU6ICdHbG9iZXggSW5kdXN0cmllcycsIGJyYW5jaElkOiAyLCBpc0FjdGl2ZTogdHJ1ZSB9LFxuICAgICAgeyBjdXN0b21lcklkOiAxMDMsIGN1c3RvbWVyTmFtZTogJ0luaXRlY2ggU29mdHdhcmUnLCBicmFuY2hJZDogMSwgaXNBY3RpdmU6IHRydWUgfSxcbiAgICAgIHsgY3VzdG9tZXJJZDogMTA0LCBjdXN0b21lck5hbWU6ICdVbWJyZWxsYSBDb3Jwb3JhdGlvbicsIGJyYW5jaElkOiAzLCBpc0FjdGl2ZTogdHJ1ZSB9LFxuICAgICAgeyBjdXN0b21lcklkOiAxMDUsIGN1c3RvbWVyTmFtZTogJ1dheW5lIEVudGVycHJpc2VzJywgYnJhbmNoSWQ6IDIsIGlzQWN0aXZlOiB0cnVlIH0sXG4gICAgICB7IGN1c3RvbWVySWQ6IDEwNiwgY3VzdG9tZXJOYW1lOiAnU3RhcmsgSW5kdXN0cmllcycsIGJyYW5jaElkOiAxLCBpc0FjdGl2ZTogdHJ1ZSB9LFxuICAgIF0sXG4gICAgQnJhbmNoZXM6IFtcbiAgICAgIHsgYnJhbmNoSWQ6IDEsIGJyYW5jaE5hbWU6ICdOb3J0aCBBbWVyaWNhIEhRIChOZXcgWW9yayknLCByZWdpb246ICdOb3J0aCBBbWVyaWNhJyB9LFxuICAgICAgeyBicmFuY2hJZDogMiwgYnJhbmNoTmFtZTogJ0VNRUEgRGl2aXNpb24gKExvbmRvbiknLCByZWdpb246ICdFdXJvcGUnIH0sXG4gICAgICB7IGJyYW5jaElkOiAzLCBicmFuY2hOYW1lOiAnQVBBQyBIdWIgKFNpbmdhcG9yZSknLCByZWdpb246ICdBc2lhIFBhY2lmaWMnIH0sXG4gICAgICB7IGJyYW5jaElkOiA0LCBicmFuY2hOYW1lOiAnTEFUQU0gT2ZmaWNlIChTw6NvIFBhdWxvKScsIHJlZ2lvbjogJ0xhdGluIEFtZXJpY2EnIH0sXG4gICAgXSxcbiAgICBQcm9kdWN0czogW1xuICAgICAgeyBwcm9kdWN0SWQ6IDEsIHByb2R1Y3ROYW1lOiAnRW50ZXJwcmlzZSBFUlAgU3VpdGUnLCBjYXRlZ29yeTogJ1NvZnR3YXJlJywgdW5pdFByaWNlOiAyNDAwIH0sXG4gICAgICB7IHByb2R1Y3RJZDogMiwgcHJvZHVjdE5hbWU6ICdDbG91ZCBBbmFseXRpY3MgUHJvJywgY2F0ZWdvcnk6ICdTYWFTJywgdW5pdFByaWNlOiAxMjAwIH0sXG4gICAgICB7IHByb2R1Y3RJZDogMywgcHJvZHVjdE5hbWU6ICdTZWN1cml0eSBTaGllbGQgRW5kcG9pbnQnLCBjYXRlZ29yeTogJ1NlY3VyaXR5JywgdW5pdFByaWNlOiA4NTAgfSxcbiAgICAgIHsgcHJvZHVjdElkOiA0LCBwcm9kdWN0TmFtZTogJ0RlZGljYXRlZCBBUEkgR2F0ZXdheScsIGNhdGVnb3J5OiAnSW5mcmFzdHJ1Y3R1cmUnLCB1bml0UHJpY2U6IDMxMDAgfSxcbiAgICBdLFxuICAgIFBheW1lbnRNZXRob2RzOiBbXG4gICAgICB7IGNvZGU6ICdCQU5LX1RSQU5TRkVSJywgdGl0bGU6ICdEaXJlY3QgQmFuayBXaXJlJyB9LFxuICAgICAgeyBjb2RlOiAnQ1JFRElUX0NBUkQnLCB0aXRsZTogJ0NvcnBvcmF0ZSBDcmVkaXQgQ2FyZCcgfSxcbiAgICAgIHsgY29kZTogJ1BBWVBBTCcsIHRpdGxlOiAnUGF5UGFsIENvcnBvcmF0ZScgfSxcbiAgICAgIHsgY29kZTogJ05FVF8zMCcsIHRpdGxlOiAnTmV0IDMwIEludm9pY2luZycgfSxcbiAgICBdLFxuICAgIHVzcF9HZXRDdXN0b21lckxpc3Q6IFtcbiAgICAgIHsgaWQ6IDEwMSwgbmFtZTogJ0FjbWUgQ29ycG9yYXRpb24gKFNQKScsIGJyYW5jaElkOiAxLCBicmFuY2g6ICdOQScgfSxcbiAgICAgIHsgaWQ6IDEwMiwgbmFtZTogJ0dsb2JleCBJbmR1c3RyaWVzIChTUCknLCBicmFuY2hJZDogMiwgYnJhbmNoOiAnRU1FQScgfSxcbiAgICAgIHsgaWQ6IDEwNSwgbmFtZTogJ1dheW5lIEVudGVycHJpc2VzIChTUCknLCBicmFuY2hJZDogMSwgYnJhbmNoOiAnTkEnIH0sXG4gICAgICB7IGlkOiAxMDYsIG5hbWU6ICdTdGFyayBJbmR1c3RyaWVzIChTUCknLCBicmFuY2hJZDogMywgYnJhbmNoOiAnQVBBQycgfSxcbiAgICBdLFxuICAgIHVzcF9HZXRCcmFuY2hMb29rdXA6IFtcbiAgICAgIHsgaWQ6IDEsIG5hbWU6ICdOb3J0aCBBbWVyaWNhIEhRJyB9LFxuICAgICAgeyBpZDogMiwgbmFtZTogJ0VNRUEgRGl2aXNpb24nIH0sXG4gICAgICB7IGlkOiAzLCBuYW1lOiAnQVBBQyBIdWInIH0sXG4gICAgXSxcbiAgfTtcblxuICBmZXRjaE9wdGlvbnMocmVxdWVzdDogTG9va3VwUXVlcnlSZXF1ZXN0KTogT2JzZXJ2YWJsZTxMb29rdXBPcHRpb25JdGVtW10+IHtcbiAgICBjb25zdCBjYWNoZUtleSA9IHRoaXMuZ2VuZXJhdGVDYWNoZUtleShyZXF1ZXN0KTtcbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLmNhY2hlLmdldChjYWNoZUtleSk7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcblxuICAgIGlmIChjYWNoZWQgJiYgY2FjaGVkLmV4cGlyZXNBdCA+IG5vdykge1xuICAgICAgcmV0dXJuIG9mKGNhY2hlZC5kYXRhKTtcbiAgICB9XG5cbiAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5jb25maWc/LmFwaUJhc2VVcmw7XG4gICAgaWYgKGJhc2VVcmwgJiYgdGhpcy5odHRwKSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TG9va3VwT3B0aW9uSXRlbVtdPihgJHtiYXNlVXJsfS9sb29rdXBgLCByZXF1ZXN0KS5waXBlKFxuICAgICAgICB0YXAoKGl0ZW1zKSA9PiB0aGlzLnNldENhY2hlKGNhY2hlS2V5LCBpdGVtcykpLFxuICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ1tIdHRwTG9va3VwQWRhcHRlcl0gUmVtb3RlIGxvb2t1cCBmYWlsZWQsIGZhbGxpbmcgYmFjayB0byBtb2NrOicsIGVycik7XG4gICAgICAgICAgY29uc3QgZmFsbGJhY2sgPSB0aGlzLnJlc29sdmVNb2NrT3B0aW9ucyhyZXF1ZXN0KTtcbiAgICAgICAgICB0aGlzLnNldENhY2hlKGNhY2hlS2V5LCBmYWxsYmFjayk7XG4gICAgICAgICAgcmV0dXJuIG9mKGZhbGxiYWNrKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgZmFsbGJhY2sgPSB0aGlzLnJlc29sdmVNb2NrT3B0aW9ucyhyZXF1ZXN0KTtcbiAgICB0aGlzLnNldENhY2hlKGNhY2hlS2V5LCBmYWxsYmFjayk7XG4gICAgcmV0dXJuIG9mKGZhbGxiYWNrKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2FjaGUoa2V5OiBzdHJpbmcsIGRhdGE6IExvb2t1cE9wdGlvbkl0ZW1bXSwgdHRsU2Vjb25kcyA9IDMwMCk6IHZvaWQge1xuICAgIHRoaXMuY2FjaGUuc2V0KGtleSwge1xuICAgICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgdHRsU2Vjb25kcyAqIDEwMDAsXG4gICAgICBkYXRhLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNhY2hlS2V5KHJlcTogTG9va3VwUXVlcnlSZXF1ZXN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7cmVxLnNvdXJjZVR5cGV9OiR7cmVxLmVudGl0eU5hbWV9OiR7cmVxLnZhbHVlRmllbGR9OiR7cmVxLmRpc3BsYXlGaWVsZH06JHtKU09OLnN0cmluZ2lmeShyZXEuZmlsdGVyID8/IHt9KX06JHtKU09OLnN0cmluZ2lmeShyZXEucGFyYW1ldGVycyA/PyB7fSl9YDtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZU1vY2tPcHRpb25zKHJlcTogTG9va3VwUXVlcnlSZXF1ZXN0KTogTG9va3VwT3B0aW9uSXRlbVtdIHtcbiAgICBjb25zdCBlbnRpdHkgPSByZXEuZW50aXR5TmFtZSB8fCAnJztcbiAgICBjb25zdCByZWNvcmRzID0gdGhpcy5tb2NrRGF0YVN0b3JlW2VudGl0eV0gPz8gW107XG4gICAgY29uc3QgdmFsS2V5ID0gcmVxLnZhbHVlRmllbGQ7XG4gICAgY29uc3QgbGFiZWxLZXkgPSByZXEuZGlzcGxheUZpZWxkO1xuXG4gICAgbGV0IGZpbHRlcmVkUmVjb3JkcyA9IHJlY29yZHM7XG4gICAgY29uc3QgYnJhbmNoUGFyYW0gPSByZXEucGFyYW1ldGVycz8uWydAQnJhbmNoSWQnXSA/PyByZXEucGFyYW1ldGVycz8uWydicmFuY2hJZCddO1xuICAgIGlmIChicmFuY2hQYXJhbSAhPT0gdW5kZWZpbmVkICYmIGJyYW5jaFBhcmFtICE9PSBudWxsICYmIGJyYW5jaFBhcmFtICE9PSAnJykge1xuICAgICAgY29uc3QgbWF0Y2hOdW0gPSBOdW1iZXIoYnJhbmNoUGFyYW0pO1xuICAgICAgZmlsdGVyZWRSZWNvcmRzID0gcmVjb3Jkcy5maWx0ZXIoXG4gICAgICAgIChyKSA9PiByWydicmFuY2hJZCddID09PSB1bmRlZmluZWQgfHwgclsnYnJhbmNoSWQnXSA9PT0gbWF0Y2hOdW0gfHwgclsnYnJhbmNoJ10gPT09IFN0cmluZyhicmFuY2hQYXJhbSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlcmVkUmVjb3Jkcy5tYXAoKHIpID0+ICh7XG4gICAgICB2YWx1ZTogKHJbdmFsS2V5XSBhcyBzdHJpbmcgfCBudW1iZXIpID8/IFN0cmluZyhyWydpZCddID8/IHJbJ2NvZGUnXSA/PyAnJyksXG4gICAgICBsYWJlbDogKHJbbGFiZWxLZXldIGFzIHN0cmluZykgPz8gU3RyaW5nKHJbJ25hbWUnXSA/PyByWyd0aXRsZSddID8/ICcnKSxcbiAgICAgIHJhdzogcixcbiAgICB9KSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,119 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { of } from 'rxjs';
4
+ import { catchError } from 'rxjs/operators';
5
+ import { ReportSchemaDiscoveryAdapter, } from '../contracts/schema-discovery.contract';
6
+ import { REPORTING_CONFIG } from '../../core/tokens/reporting-config.token';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * Built-in HTTP adapter for backend database schema discovery.
10
+ * Connects to NestJS / REST backend endpoints, with fallback mock schema for development.
11
+ */
12
+ export class HttpReportSchemaDiscoveryAdapter extends ReportSchemaDiscoveryAdapter {
13
+ http = inject(HttpClient, { optional: true });
14
+ config = inject(REPORTING_CONFIG, { optional: true });
15
+ mockEntities = [
16
+ { name: 'Customers', schema: 'dbo', type: 'table', friendlyName: 'Customer Directory', category: 'Sales & CRM', description: 'Active customer accounts and profiles' },
17
+ { name: 'Branches', schema: 'dbo', type: 'table', friendlyName: 'Branch Locations', category: 'Master Data', description: 'Company branches and regional offices' },
18
+ { name: 'Products', schema: 'dbo', type: 'table', friendlyName: 'Product Catalog', category: 'Inventory', description: 'Product catalog with category codes' },
19
+ { name: 'PaymentMethods', schema: 'dbo', type: 'table', friendlyName: 'Payment Methods', category: 'Finance', description: 'Available payment modes' },
20
+ { name: 'usp_GetCustomerList', schema: 'dbo', type: 'stored_procedure', friendlyName: 'Customer Directory (SP)', category: 'Sales & CRM', description: 'Returns filtered customers by branch' },
21
+ { name: 'usp_GetBranchLookup', schema: 'dbo', type: 'stored_procedure', friendlyName: 'Active Branches (SP)', category: 'Master Data', description: 'Returns active branches' },
22
+ ];
23
+ mockColumns = {
24
+ Customers: [
25
+ { field: 'customerId', label: 'Customer ID', dataType: 'number', nullable: false },
26
+ { field: 'customerName', label: 'Customer Name', dataType: 'string', nullable: false },
27
+ { field: 'email', label: 'Email Address', dataType: 'string', nullable: true },
28
+ { field: 'branchId', label: 'Branch ID', dataType: 'number', nullable: true },
29
+ { field: 'isActive', label: 'Active Status', dataType: 'boolean', nullable: false },
30
+ ],
31
+ Branches: [
32
+ { field: 'branchId', label: 'Branch ID', dataType: 'number', nullable: false },
33
+ { field: 'branchName', label: 'Branch Name', dataType: 'string', nullable: false },
34
+ { field: 'region', label: 'Region', dataType: 'string', nullable: true },
35
+ ],
36
+ Products: [
37
+ { field: 'productId', label: 'Product ID', dataType: 'number', nullable: false },
38
+ { field: 'productName', label: 'Product Name', dataType: 'string', nullable: false },
39
+ { field: 'category', label: 'Category', dataType: 'string', nullable: true },
40
+ { field: 'unitPrice', label: 'Unit Price', dataType: 'number', nullable: false },
41
+ ],
42
+ PaymentMethods: [
43
+ { field: 'code', label: 'Payment Code', dataType: 'string', nullable: false },
44
+ { field: 'title', label: 'Method Title', dataType: 'string', nullable: false },
45
+ ],
46
+ usp_GetCustomerList: [
47
+ { field: 'id', label: 'ID', dataType: 'number', nullable: false },
48
+ { field: 'name', label: 'Customer Name', dataType: 'string', nullable: false },
49
+ { field: 'branch', label: 'Branch Code', dataType: 'string', nullable: true },
50
+ ],
51
+ usp_GetBranchLookup: [
52
+ { field: 'id', label: 'Branch ID', dataType: 'number', nullable: false },
53
+ { field: 'name', label: 'Branch Name', dataType: 'string', nullable: false },
54
+ ],
55
+ };
56
+ mockParameters = {
57
+ usp_GetCustomerList: [
58
+ { name: '@BranchId', friendlyLabel: 'Branch Location', dataType: 'number', sqlType: 'INT', required: false, description: 'Filter customers belonging to this branch' },
59
+ { name: '@ActiveOnly', friendlyLabel: 'Active Only', dataType: 'boolean', sqlType: 'BIT', required: false, defaultValue: true, description: 'Only show active customers' },
60
+ ],
61
+ usp_GetBranchLookup: [
62
+ { name: '@Region', friendlyLabel: 'Geographical Region', dataType: 'string', sqlType: 'VARCHAR(50)', required: false, description: 'Filter by geographical region' },
63
+ ],
64
+ };
65
+ getEntities(types) {
66
+ const baseUrl = this.config?.apiBaseUrl;
67
+ if (baseUrl && this.http) {
68
+ const typeParam = types ? types.join(',') : '';
69
+ return this.http
70
+ .get(`${baseUrl}/schema/entities`, {
71
+ params: typeParam ? { types: typeParam } : {},
72
+ })
73
+ .pipe(catchError((err) => {
74
+ console.warn('[HttpSchemaDiscovery] API request failed, falling back to mock schema:', err);
75
+ return of(this.filterMockEntities(types));
76
+ }));
77
+ }
78
+ return of(this.filterMockEntities(types));
79
+ }
80
+ getColumns(entityName, schema = 'dbo', type) {
81
+ const baseUrl = this.config?.apiBaseUrl;
82
+ if (baseUrl && this.http) {
83
+ return this.http
84
+ .get(`${baseUrl}/schema/columns`, {
85
+ params: { entityName, schema, ...(type ? { type } : {}) },
86
+ })
87
+ .pipe(catchError((err) => {
88
+ console.warn(`[HttpSchemaDiscovery] Failed to get columns for ${entityName}:`, err);
89
+ return of(this.mockColumns[entityName] ?? []);
90
+ }));
91
+ }
92
+ return of(this.mockColumns[entityName] ?? []);
93
+ }
94
+ getParameters(entityName, schema = 'dbo') {
95
+ const baseUrl = this.config?.apiBaseUrl;
96
+ if (baseUrl && this.http) {
97
+ return this.http
98
+ .get(`${baseUrl}/schema/parameters`, {
99
+ params: { entityName, schema },
100
+ })
101
+ .pipe(catchError((err) => {
102
+ console.warn(`[HttpSchemaDiscovery] Failed to get parameters for ${entityName}:`, err);
103
+ return of(this.mockParameters[entityName] ?? []);
104
+ }));
105
+ }
106
+ return of(this.mockParameters[entityName] ?? []);
107
+ }
108
+ filterMockEntities(types) {
109
+ if (!types || types.length === 0)
110
+ return this.mockEntities;
111
+ return this.mockEntities.filter((e) => types.includes(e.type));
112
+ }
113
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportSchemaDiscoveryAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
114
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportSchemaDiscoveryAdapter });
115
+ }
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HttpReportSchemaDiscoveryAdapter, decorators: [{
117
+ type: Injectable
118
+ }] });
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1zY2hlbWEtZGlzY292ZXJ5LmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9hZGFwdGVycy9odHRwLXNjaGVtYS1kaXNjb3ZlcnkuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUtMLDRCQUE0QixHQUM3QixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOztBQUU1RTs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsNEJBQTRCO0lBQy9ELElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXRELFlBQVksR0FBNkI7UUFDeEQsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsdUNBQXVDLEVBQUU7UUFDdEssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsdUNBQXVDLEVBQUU7UUFDbkssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUscUNBQXFDLEVBQUU7UUFDOUosRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRTtRQUN0SixFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsc0NBQXNDLEVBQUU7UUFDL0wsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFO0tBQ2hMLENBQUM7SUFFZSxXQUFXLEdBQTJDO1FBQ3JFLFNBQVMsRUFBRTtZQUNULEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUNsRixFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDdEYsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQzlFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUM3RSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7U0FDcEY7UUFDRCxRQUFRLEVBQUU7WUFDUixFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDOUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO1lBQ2xGLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtTQUN6RTtRQUNELFFBQVEsRUFBRTtZQUNSLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUNoRixFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDcEYsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1lBQzVFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtTQUNqRjtRQUNELGNBQWMsRUFB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QUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFO2FBQy9CLENBQUM7aUJBQ0QsSUFBSSxDQUNILFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLHNEQUFzRCxVQUFVLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDdkYsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQTRCO1FBQ3JELElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQzt3R0FwSFUsZ0NBQWdDOzRHQUFoQyxnQ0FBZ0M7OzRGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIERhdGFiYXNlRW50aXR5TWV0YWRhdGEsXG4gIERhdGFiYXNlRW50aXR5VHlwZSxcbiAgRW50aXR5Q29sdW1uTWV0YWRhdGEsXG4gIFByb2NlZHVyZVBhcmFtZXRlck1ldGFkYXRhLFxuICBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyLFxufSBmcm9tICcuLi9jb250cmFjdHMvc2NoZW1hLWRpc2NvdmVyeS5jb250cmFjdCc7XG5pbXBvcnQgeyBSRVBPUlRJTkdfQ09ORklHIH0gZnJvbSAnLi4vLi4vY29yZS90b2tlbnMvcmVwb3J0aW5nLWNvbmZpZy50b2tlbic7XG5cbi8qKlxuICogQnVpbHQtaW4gSFRUUCBhZGFwdGVyIGZvciBiYWNrZW5kIGRhdGFiYXNlIHNjaGVtYSBkaXNjb3ZlcnkuXG4gKiBDb25uZWN0cyB0byBOZXN0SlMgLyBSRVNUIGJhY2tlbmQgZW5kcG9pbnRzLCB3aXRoIGZhbGxiYWNrIG1vY2sgc2NoZW1hIGZvciBkZXZlbG9wbWVudC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEh0dHBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIGV4dGVuZHMgUmVwb3J0U2NoZW1hRGlzY292ZXJ5QWRhcHRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50LCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChSRVBPUlRJTkdfQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9ja0VudGl0aWVzOiBEYXRhYmFzZUVudGl0eU1ldGFkYXRhW10gPSBbXG4gICAgeyBuYW1lOiAnQ3VzdG9tZXJzJywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3RhYmxlJywgZnJpZW5kbHlOYW1lOiAnQ3VzdG9tZXIgRGlyZWN0b3J5JywgY2F0ZWdvcnk6ICdTYWxlcyAmIENSTScsIGRlc2NyaXB0aW9uOiAnQWN0aXZlIGN1c3RvbWVyIGFjY291bnRzIGFuZCBwcm9maWxlcycgfSxcbiAgICB7IG5hbWU6ICdCcmFuY2hlcycsIHNjaGVtYTogJ2RibycsIHR5cGU6ICd0YWJsZScsIGZyaWVuZGx5TmFtZTogJ0JyYW5jaCBMb2NhdGlvbnMnLCBjYXRlZ29yeTogJ01hc3RlciBEYXRhJywgZGVzY3JpcHRpb246ICdDb21wYW55IGJyYW5jaGVzIGFuZCByZWdpb25hbCBvZmZpY2VzJyB9LFxuICAgIHsgbmFtZTogJ1Byb2R1Y3RzJywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3RhYmxlJywgZnJpZW5kbHlOYW1lOiAnUHJvZHVjdCBDYXRhbG9nJywgY2F0ZWdvcnk6ICdJbnZlbnRvcnknLCBkZXNjcmlwdGlvbjogJ1Byb2R1Y3QgY2F0YWxvZyB3aXRoIGNhdGVnb3J5IGNvZGVzJyB9LFxuICAgIHsgbmFtZTogJ1BheW1lbnRNZXRob2RzJywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3RhYmxlJywgZnJpZW5kbHlOYW1lOiAnUGF5bWVudCBNZXRob2RzJywgY2F0ZWdvcnk6ICdGaW5hbmNlJywgZGVzY3JpcHRpb246ICdBdmFpbGFibGUgcGF5bWVudCBtb2RlcycgfSxcbiAgICB7IG5hbWU6ICd1c3BfR2V0Q3VzdG9tZXJMaXN0Jywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3N0b3JlZF9wcm9jZWR1cmUnLCBmcmllbmRseU5hbWU6ICdDdXN0b21lciBEaXJlY3RvcnkgKFNQKScsIGNhdGVnb3J5OiAnU2FsZXMgJiBDUk0nLCBkZXNjcmlwdGlvbjogJ1JldHVybnMgZmlsdGVyZWQgY3VzdG9tZXJzIGJ5IGJyYW5jaCcgfSxcbiAgICB7IG5hbWU6ICd1c3BfR2V0QnJhbmNoTG9va3VwJywgc2NoZW1hOiAnZGJvJywgdHlwZTogJ3N0b3JlZF9wcm9jZWR1cmUnLCBmcmllbmRseU5hbWU6ICdBY3RpdmUgQnJhbmNoZXMgKFNQKScsIGNhdGVnb3J5OiAnTWFzdGVyIERhdGEnLCBkZXNjcmlwdGlvbjogJ1JldHVybnMgYWN0aXZlIGJyYW5jaGVzJyB9LFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9ja0NvbHVtbnM6IFJlY29yZDxzdHJpbmcsIEVudGl0eUNvbHVtbk1ldGFkYXRhW10+ID0ge1xuICAgIEN1c3RvbWVyczogW1xuICAgICAgeyBmaWVsZDogJ2N1c3RvbWVySWQnLCBsYWJlbDogJ0N1c3RvbWVyIElEJywgZGF0YVR5cGU6ICdudW1iZXInLCBudWxsYWJsZTogZmFsc2UgfSxcbiAgICAgIHsgZmllbGQ6ICdjdXN0b21lck5hbWUnLCBsYWJlbDogJ0N1c3RvbWVyIE5hbWUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ2VtYWlsJywgbGFiZWw6ICdFbWFpbCBBZGRyZXNzJywgZGF0YVR5cGU6ICdzdHJpbmcnLCBudWxsYWJsZTogdHJ1ZSB9LFxuICAgICAgeyBmaWVsZDogJ2JyYW5jaElkJywgbGFiZWw6ICdCcmFuY2ggSUQnLCBkYXRhVHlwZTogJ251bWJlcicsIG51bGxhYmxlOiB0cnVlIH0sXG4gICAgICB7IGZpZWxkOiAnaXNBY3RpdmUnLCBsYWJlbDogJ0FjdGl2ZSBTdGF0dXMnLCBkYXRhVHlwZTogJ2Jvb2xlYW4nLCBudWxsYWJsZTogZmFsc2UgfSxcbiAgICBdLFxuICAgIEJyYW5jaGVzOiBbXG4gICAgICB7IGZpZWxkOiAnYnJhbmNoSWQnLCBsYWJlbDogJ0JyYW5jaCBJRCcsIGRhdGFUeXBlOiAnbnVtYmVyJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGZpZWxkOiAnYnJhbmNoTmFtZScsIGxhYmVsOiAnQnJhbmNoIE5hbWUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ3JlZ2lvbicsIGxhYmVsOiAnUmVnaW9uJywgZGF0YVR5cGU6ICdzdHJpbmcnLCBudWxsYWJsZTogdHJ1ZSB9LFxuICAgIF0sXG4gICAgUHJvZHVjdHM6IFtcbiAgICAgIHsgZmllbGQ6ICdwcm9kdWN0SWQnLCBsYWJlbDogJ1Byb2R1Y3QgSUQnLCBkYXRhVHlwZTogJ251bWJlcicsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ3Byb2R1Y3ROYW1lJywgbGFiZWw6ICdQcm9kdWN0IE5hbWUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ2NhdGVnb3J5JywgbGFiZWw6ICdDYXRlZ29yeScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IHRydWUgfSxcbiAgICAgIHsgZmllbGQ6ICd1bml0UHJpY2UnLCBsYWJlbDogJ1VuaXQgUHJpY2UnLCBkYXRhVHlwZTogJ251bWJlcicsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgIF0sXG4gICAgUGF5bWVudE1ldGhvZHM6IFtcbiAgICAgIHsgZmllbGQ6ICdjb2RlJywgbGFiZWw6ICdQYXltZW50IENvZGUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgICAgeyBmaWVsZDogJ3RpdGxlJywgbGFiZWw6ICdNZXRob2QgVGl0bGUnLCBkYXRhVHlwZTogJ3N0cmluZycsIG51bGxhYmxlOiBmYWxzZSB9LFxuICAgIF0sXG4gICAgdXNwX0dldEN1c3RvbWVyTGlzdDogW1xuICAgICAgeyBmaWVsZDogJ2lkJywgbGFiZWw6ICdJRCcsIGRhdGFUeXBlOiAnbnVtYmVyJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGZpZWxkOiAnbmFtZScsIGxhYmVsOiAnQ3VzdG9tZXIgTmFtZScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgICB7IGZpZWxkOiAnYnJhbmNoJywgbGFiZWw6ICdCcmFuY2ggQ29kZScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IHRydWUgfSxcbiAgICBdLFxuICAgIHVzcF9HZXRCcmFuY2hMb29rdXA6IFtcbiAgICAgIHsgZmllbGQ6ICdpZCcsIGxhYmVsOiAnQnJhbmNoIElEJywgZGF0YVR5cGU6ICdudW1iZXInLCBudWxsYWJsZTogZmFsc2UgfSxcbiAgICAgIHsgZmllbGQ6ICduYW1lJywgbGFiZWw6ICdCcmFuY2ggTmFtZScsIGRhdGFUeXBlOiAnc3RyaW5nJywgbnVsbGFibGU6IGZhbHNlIH0sXG4gICAgXSxcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG1vY2tQYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBQcm9jZWR1cmVQYXJhbWV0ZXJNZXRhZGF0YVtdPiA9IHtcbiAgICB1c3BfR2V0Q3VzdG9tZXJMaXN0OiBbXG4gICAgICB7IG5hbWU6ICdAQnJhbmNoSWQnLCBmcmllbmRseUxhYmVsOiAnQnJhbmNoIExvY2F0aW9uJywgZGF0YVR5cGU6ICdudW1iZXInLCBzcWxUeXBlOiAnSU5UJywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBjdXN0b21lcnMgYmVsb25naW5nIHRvIHRoaXMgYnJhbmNoJyB9LFxuICAgICAgeyBuYW1lOiAnQEFjdGl2ZU9ubHknLCBmcmllbmRseUxhYmVsOiAnQWN0aXZlIE9ubHknLCBkYXRhVHlwZTogJ2Jvb2xlYW4nLCBzcWxUeXBlOiAnQklUJywgcmVxdWlyZWQ6IGZhbHNlLCBkZWZhdWx0VmFsdWU6IHRydWUsIGRlc2NyaXB0aW9uOiAnT25seSBzaG93IGFjdGl2ZSBjdXN0b21lcnMnIH0sXG4gICAgXSxcbiAgICB1c3BfR2V0QnJhbmNoTG9va3VwOiBbXG4gICAgICB7IG5hbWU6ICdAUmVnaW9uJywgZnJpZW5kbHlMYWJlbDogJ0dlb2dyYXBoaWNhbCBSZWdpb24nLCBkYXRhVHlwZTogJ3N0cmluZycsIHNxbFR5cGU6ICdWQVJDSEFSKDUwKScsIHJlcXVpcmVkOiBmYWxzZSwgZGVzY3JpcHRpb246ICdGaWx0ZXIgYnkgZ2VvZ3JhcGhpY2FsIHJlZ2lvbicgfSxcbiAgICBdLFxuICB9O1xuXG4gIGdldEVudGl0aWVzKHR5cGVzPzogRGF0YWJhc2VFbnRpdHlUeXBlW10pOiBPYnNlcnZhYmxlPERhdGFiYXNlRW50aXR5TWV0YWRhdGFbXT4ge1xuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmNvbmZpZz8uYXBpQmFzZVVybDtcbiAgICBpZiAoYmFzZVVybCAmJiB0aGlzLmh0dHApIHtcbiAgICAgIGNvbnN0IHR5cGVQYXJhbSA9IHR5cGVzID8gdHlwZXMuam9pbignLCcpIDogJyc7XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8RGF0YWJhc2VFbnRpdHlNZXRhZGF0YVtdPihgJHtiYXNlVXJsfS9zY2hlbWEvZW50aXRpZXNgLCB7XG4gICAgICAgICAgcGFyYW1zOiB0eXBlUGFyYW0gPyB7IHR5cGVzOiB0eXBlUGFyYW0gfSA6IHt9LFxuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignW0h0dHBTY2hlbWFEaXNjb3ZlcnldIEFQSSByZXF1ZXN0IGZhaWxlZCwgZmFsbGluZyBiYWNrIHRvIG1vY2sgc2NoZW1hOicsIGVycik7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5maWx0ZXJNb2NrRW50aXRpZXModHlwZXMpKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gb2YodGhpcy5maWx0ZXJNb2NrRW50aXRpZXModHlwZXMpKTtcbiAgfVxuXG4gIGdldENvbHVtbnMoXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIHNjaGVtYSA9ICdkYm8nLFxuICAgIHR5cGU/OiBEYXRhYmFzZUVudGl0eVR5cGVcbiAgKTogT2JzZXJ2YWJsZTxFbnRpdHlDb2x1bW5NZXRhZGF0YVtdPiB7XG4gICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29uZmlnPy5hcGlCYXNlVXJsO1xuICAgIGlmIChiYXNlVXJsICYmIHRoaXMuaHR0cCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PEVudGl0eUNvbHVtbk1ldGFkYXRhW10+KGAke2Jhc2VVcmx9L3NjaGVtYS9jb2x1bW5zYCwge1xuICAgICAgICAgIHBhcmFtczogeyBlbnRpdHlOYW1lLCBzY2hlbWEsIC4uLih0eXBlID8geyB0eXBlIH0gOiB7fSkgfSxcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFtIdHRwU2NoZW1hRGlzY292ZXJ5XSBGYWlsZWQgdG8gZ2V0IGNvbHVtbnMgZm9yICR7ZW50aXR5TmFtZX06YCwgZXJyKTtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLm1vY2tDb2x1bW5zW2VudGl0eU5hbWVdID8/IFtdKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gb2YodGhpcy5tb2NrQ29sdW1uc1tlbnRpdHlOYW1lXSA/PyBbXSk7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXJzKGVudGl0eU5hbWU6IHN0cmluZywgc2NoZW1hID0gJ2RibycpOiBPYnNlcnZhYmxlPFByb2NlZHVyZVBhcmFtZXRlck1ldGFkYXRhW10+IHtcbiAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5jb25maWc/LmFwaUJhc2VVcmw7XG4gICAgaWYgKGJhc2VVcmwgJiYgdGhpcy5odHRwKSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8UHJvY2VkdXJlUGFyYW1ldGVyTWV0YWRhdGFbXT4oYCR7YmFzZVVybH0vc2NoZW1hL3BhcmFtZXRlcnNgLCB7XG4gICAgICAgICAgcGFyYW1zOiB7IGVudGl0eU5hbWUsIHNjaGVtYSB9LFxuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgW0h0dHBTY2hlbWFEaXNjb3ZlcnldIEZhaWxlZCB0byBnZXQgcGFyYW1ldGVycyBmb3IgJHtlbnRpdHlOYW1lfTpgLCBlcnIpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMubW9ja1BhcmFtZXRlcnNbZW50aXR5TmFtZV0gPz8gW10pO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBvZih0aGlzLm1vY2tQYXJhbWV0ZXJzW2VudGl0eU5hbWVdID8/IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyTW9ja0VudGl0aWVzKHR5cGVzPzogRGF0YWJhc2VFbnRpdHlUeXBlW10pOiBEYXRhYmFzZUVudGl0eU1ldGFkYXRhW10ge1xuICAgIGlmICghdHlwZXMgfHwgdHlwZXMubGVuZ3RoID09PSAwKSByZXR1cm4gdGhpcy5tb2NrRW50aXRpZXM7XG4gICAgcmV0dXJuIHRoaXMubW9ja0VudGl0aWVzLmZpbHRlcigoZSkgPT4gdHlwZXMuaW5jbHVkZXMoZS50eXBlKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export { HttpReportSchemaDiscoveryAdapter } from './http-schema-discovery.adapter';
2
+ export { HttpReportLookupAdapter } from './http-lookup.adapter';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9hZGFwdGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEh0dHBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIH0gZnJvbSAnLi9odHRwLXNjaGVtYS1kaXNjb3ZlcnkuYWRhcHRlcic7XG5leHBvcnQgeyBIdHRwUmVwb3J0TG9va3VwQWRhcHRlciB9IGZyb20gJy4vaHR0cC1sb29rdXAuYWRhcHRlcic7XG4iXX0=
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Data-access contracts — abstract classes the host application implements.
3
+ *
4
+ * The library defines WHAT data it needs; the host defines HOW to get it.
5
+ * This keeps the library host-independent.
6
+ */
7
+ /**
8
+ * Contract for executing report data source queries.
9
+ *
10
+ * The host application provides a concrete implementation that
11
+ * calls the appropriate backend (REST API, stored procedures, etc.).
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // Host implementation
16
+ * @Injectable()
17
+ * export class MyDataSourceAdapter extends ReportDataSourceAdapter {
18
+ * constructor(private http: HttpClient) { super(); }
19
+ *
20
+ * execute(dataSource, parameters) {
21
+ * return this.http.post(dataSource.endpoint, parameters);
22
+ * }
23
+ * }
24
+ * ```
25
+ */
26
+ export class ReportDataSourceAdapter {
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UuY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvZGF0YS1zb3VyY2UuY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFLSDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBTSxPQUFnQix1QkFBdUI7Q0FZNUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERhdGEtYWNjZXNzIGNvbnRyYWN0cyDigJQgYWJzdHJhY3QgY2xhc3NlcyB0aGUgaG9zdCBhcHBsaWNhdGlvbiBpbXBsZW1lbnRzLlxuICpcbiAqIFRoZSBsaWJyYXJ5IGRlZmluZXMgV0hBVCBkYXRhIGl0IG5lZWRzOyB0aGUgaG9zdCBkZWZpbmVzIEhPVyB0byBnZXQgaXQuXG4gKiBUaGlzIGtlZXBzIHRoZSBsaWJyYXJ5IGhvc3QtaW5kZXBlbmRlbnQuXG4gKi9cblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVwb3J0RGF0YVNvdXJjZURlZmluaXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9yZXBvcnQtZGF0YXNvdXJjZS5tb2RlbCc7XG5cbi8qKlxuICogQ29udHJhY3QgZm9yIGV4ZWN1dGluZyByZXBvcnQgZGF0YSBzb3VyY2UgcXVlcmllcy5cbiAqXG4gKiBUaGUgaG9zdCBhcHBsaWNhdGlvbiBwcm92aWRlcyBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIHRoYXRcbiAqIGNhbGxzIHRoZSBhcHByb3ByaWF0ZSBiYWNrZW5kIChSRVNUIEFQSSwgc3RvcmVkIHByb2NlZHVyZXMsIGV0Yy4pLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBIb3N0IGltcGxlbWVudGF0aW9uXG4gKiBASW5qZWN0YWJsZSgpXG4gKiBleHBvcnQgY2xhc3MgTXlEYXRhU291cmNlQWRhcHRlciBleHRlbmRzIFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyIHtcbiAqICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IHN1cGVyKCk7IH1cbiAqXG4gKiAgIGV4ZWN1dGUoZGF0YVNvdXJjZSwgcGFyYW1ldGVycykge1xuICogICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChkYXRhU291cmNlLmVuZHBvaW50LCBwYXJhbWV0ZXJzKTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXBvcnREYXRhU291cmNlQWRhcHRlciB7XG4gIC8qKlxuICAgKiBFeGVjdXRlIGEgZGF0YSBzb3VyY2UgcXVlcnkgYW5kIHJldHVybiB0aGUgcmVzdWx0IHJvd3MuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhU291cmNlIC0gVGhlIGRhdGEgc291cmNlIGRlZmluaXRpb24gZnJvbSB0aGUgcmVwb3J0IG1ldGFkYXRhLlxuICAgKiBAcGFyYW0gcGFyYW1ldGVycyAtIEN1cnJlbnQgcGFyYW1ldGVyIHZhbHVlcyBmcm9tIHRoZSByZXBvcnQgZm9ybS5cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiByZXN1bHQgcm93cy5cbiAgICovXG4gIGFic3RyYWN0IGV4ZWN1dGUoXG4gICAgZGF0YVNvdXJjZTogUmVwb3J0RGF0YVNvdXJjZURlZmluaXRpb24sXG4gICAgcGFyYW1ldGVyczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgKTogT2JzZXJ2YWJsZTx1bmtub3duW10+O1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ export { ReportDataSourceAdapter } from './data-source.contract';
2
+ export { MasterDataProvider } from './master-data.provider';
3
+ export { ReportPersistenceAdapter } from './report-persistence.contract';
4
+ export { ReportTranslationAdapter } from './translation.contract';
5
+ export { ReportSchemaDiscoveryAdapter } from './schema-discovery.contract';
6
+ export { ReportLookupAdapter } from './lookup.contract';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFPM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBSZXBvcnREYXRhU291cmNlQWRhcHRlciB9IGZyb20gJy4vZGF0YS1zb3VyY2UuY29udHJhY3QnO1xuZXhwb3J0IHsgTWFzdGVyRGF0YVByb3ZpZGVyIH0gZnJvbSAnLi9tYXN0ZXItZGF0YS5wcm92aWRlcic7XG5leHBvcnQgdHlwZSB7IE1hc3RlckRhdGFPcHRpb25zLCBNYXN0ZXJEYXRhSXRlbSB9IGZyb20gJy4vbWFzdGVyLWRhdGEucHJvdmlkZXInO1xuZXhwb3J0IHsgUmVwb3J0UGVyc2lzdGVuY2VBZGFwdGVyIH0gZnJvbSAnLi9yZXBvcnQtcGVyc2lzdGVuY2UuY29udHJhY3QnO1xuZXhwb3J0IHsgUmVwb3J0VHJhbnNsYXRpb25BZGFwdGVyIH0gZnJvbSAnLi90cmFuc2xhdGlvbi5jb250cmFjdCc7XG5leHBvcnQgeyBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIH0gZnJvbSAnLi9zY2hlbWEtZGlzY292ZXJ5LmNvbnRyYWN0JztcbmV4cG9ydCB0eXBlIHtcbiAgRGF0YWJhc2VFbnRpdHlUeXBlLFxuICBEYXRhYmFzZUVudGl0eU1ldGFkYXRhLFxuICBFbnRpdHlDb2x1bW5NZXRhZGF0YSxcbiAgUHJvY2VkdXJlUGFyYW1ldGVyTWV0YWRhdGEsXG59IGZyb20gJy4vc2NoZW1hLWRpc2NvdmVyeS5jb250cmFjdCc7XG5leHBvcnQgeyBSZXBvcnRMb29rdXBBZGFwdGVyIH0gZnJvbSAnLi9sb29rdXAuY29udHJhY3QnO1xuZXhwb3J0IHR5cGUgeyBMb29rdXBRdWVyeVJlcXVlc3QsIExvb2t1cE9wdGlvbkl0ZW0gfSBmcm9tICcuL2xvb2t1cC5jb250cmFjdCc7XG4iXX0=
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Abstract contract for fetching dynamic lookup/option data for report dropdown components.
3
+ */
4
+ export class ReportLookupAdapter {
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZGF0YS1hY2Nlc3MvY29udHJhY3RzL2xvb2t1cC5jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwQkE7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLG1CQUFtQjtDQUt4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERyb3Bkb3duU291cmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL3JlcG9ydC1jb21wb25lbnQubW9kZWwnO1xuXG4vKipcbiAqIFJlcXVlc3QgcGF5bG9hZCBmb3IgcXVlcnlpbmcgbG9va3VwIGRhdGEgZnJvbSB0aGUgaG9zdCBiYWNrZW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwUXVlcnlSZXF1ZXN0IHtcbiAgc291cmNlVHlwZTogRHJvcGRvd25Tb3VyY2VUeXBlO1xuICBlbnRpdHlOYW1lPzogc3RyaW5nO1xuICBzY2hlbWE/OiBzdHJpbmc7XG4gIHZhbHVlRmllbGQ6IHN0cmluZztcbiAgZGlzcGxheUZpZWxkOiBzdHJpbmc7XG4gIGZpbHRlcj86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBwYXJhbWV0ZXJzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGxpbWl0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZWQgb3B0aW9uIGl0ZW0gZm9yIGRyb3Bkb3ducyBhbmQgc2VsZWN0b3JzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwT3B0aW9uSXRlbSB7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHJhdz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIEFic3RyYWN0IGNvbnRyYWN0IGZvciBmZXRjaGluZyBkeW5hbWljIGxvb2t1cC9vcHRpb24gZGF0YSBmb3IgcmVwb3J0IGRyb3Bkb3duIGNvbXBvbmVudHMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXBvcnRMb29rdXBBZGFwdGVyIHtcbiAgLyoqXG4gICAqIEZldGNoZXMgZHJvcGRvd24gb3B0aW9uIHJvd3MgZnJvbSBkYXRhYmFzZSB0YWJsZSBvciBzdG9yZWQgcHJvY2VkdXJlLlxuICAgKi9cbiAgYWJzdHJhY3QgZmV0Y2hPcHRpb25zKHJlcXVlc3Q6IExvb2t1cFF1ZXJ5UmVxdWVzdCk6IE9ic2VydmFibGU8TG9va3VwT3B0aW9uSXRlbVtdPjtcbn1cbiJdfQ==
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Master data provider contract.
3
+ *
4
+ * Provides lookup/reference data for report components
5
+ * (e.g., dropdown options for customers, products, branches).
6
+ */
7
+ /**
8
+ * Contract for providing master/lookup data to report components.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * @Injectable()
13
+ * export class MyMasterDataProvider extends MasterDataProvider {
14
+ * constructor(private http: HttpClient) { super(); }
15
+ *
16
+ * getMasterData(masterName, options) {
17
+ * return this.http.get(`/api/master/${masterName}`, { params: options });
18
+ * }
19
+ * }
20
+ * ```
21
+ */
22
+ export class MasterDataProvider {
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzdGVyLWRhdGEucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvbWFzdGVyLWRhdGEucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFnQ0g7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLE9BQWdCLGtCQUFrQjtDQVl2QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTWFzdGVyIGRhdGEgcHJvdmlkZXIgY29udHJhY3QuXG4gKlxuICogUHJvdmlkZXMgbG9va3VwL3JlZmVyZW5jZSBkYXRhIGZvciByZXBvcnQgY29tcG9uZW50c1xuICogKGUuZy4sIGRyb3Bkb3duIG9wdGlvbnMgZm9yIGN1c3RvbWVycywgcHJvZHVjdHMsIGJyYW5jaGVzKS5cbiAqL1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcXVlcnlpbmcgbWFzdGVyIGRhdGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFzdGVyRGF0YU9wdGlvbnMge1xuICAvKiogU2VhcmNoL2ZpbHRlciB0ZXh0LiAqL1xuICBzZWFyY2hUZXh0Pzogc3RyaW5nO1xuXG4gIC8qKiBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byByZXR1cm4uICovXG4gIGxpbWl0PzogbnVtYmVyO1xuXG4gIC8qKiBBZGRpdGlvbmFsIGZpbHRlciBwYXJhbWV0ZXJzLiAqL1xuICBmaWx0ZXI/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBBIHNpbmdsZSBtYXN0ZXIgZGF0YSBpdGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hc3RlckRhdGFJdGVtIHtcbiAgLyoqIFRoZSB2YWx1ZSB0byBzdG9yZS4gKi9cbiAgdmFsdWU6IHVua25vd247XG5cbiAgLyoqIFRoZSBkaXNwbGF5IGxhYmVsLiAqL1xuICBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKiBBZGRpdGlvbmFsIGRhdGEgZmllbGRzLiAqL1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG4vKipcbiAqIENvbnRyYWN0IGZvciBwcm92aWRpbmcgbWFzdGVyL2xvb2t1cCBkYXRhIHRvIHJlcG9ydCBjb21wb25lbnRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBASW5qZWN0YWJsZSgpXG4gKiBleHBvcnQgY2xhc3MgTXlNYXN0ZXJEYXRhUHJvdmlkZXIgZXh0ZW5kcyBNYXN0ZXJEYXRhUHJvdmlkZXIge1xuICogICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHsgc3VwZXIoKTsgfVxuICpcbiAqICAgZ2V0TWFzdGVyRGF0YShtYXN0ZXJOYW1lLCBvcHRpb25zKSB7XG4gKiAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYC9hcGkvbWFzdGVyLyR7bWFzdGVyTmFtZX1gLCB7IHBhcmFtczogb3B0aW9ucyB9KTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNYXN0ZXJEYXRhUHJvdmlkZXIge1xuICAvKipcbiAgICogRmV0Y2ggbWFzdGVyIGRhdGEgaXRlbXMgYnkgbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIG1hc3Rlck5hbWUgLSBUaGUgbWFzdGVyIGRhdGEgc2V0IG5hbWUgKGUuZy4sICdjdXN0b21lcnMnLCAncHJvZHVjdHMnKS5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBmaWx0ZXJpbmcvcGFnaW5hdGlvbi5cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiBtYXN0ZXIgZGF0YSBpdGVtcy5cbiAgICovXG4gIGFic3RyYWN0IGdldE1hc3RlckRhdGEoXG4gICAgbWFzdGVyTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBNYXN0ZXJEYXRhT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPE1hc3RlckRhdGFJdGVtW10+O1xufVxuIl19
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Report persistence contract.
3
+ *
4
+ * The host application implements this to save/load report definitions
5
+ * to/from their backend (database, file system, API, etc.).
6
+ */
7
+ /**
8
+ * Contract for persisting report definitions.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * @Injectable()
13
+ * export class MyPersistenceAdapter extends ReportPersistenceAdapter {
14
+ * constructor(private http: HttpClient) { super(); }
15
+ *
16
+ * load(reportId) {
17
+ * return this.http.get<ReportDefinition>(`/api/reports/${reportId}`);
18
+ * }
19
+ * // ... other methods
20
+ * }
21
+ * ```
22
+ */
23
+ export class ReportPersistenceAdapter {
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXBlcnNpc3RlbmNlLmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZGF0YS1hY2Nlc3MvY29udHJhY3RzL3JlcG9ydC1wZXJzaXN0ZW5jZS5jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUtIOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sT0FBZ0Isd0JBQXdCO0NBZTdDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXBvcnQgcGVyc2lzdGVuY2UgY29udHJhY3QuXG4gKlxuICogVGhlIGhvc3QgYXBwbGljYXRpb24gaW1wbGVtZW50cyB0aGlzIHRvIHNhdmUvbG9hZCByZXBvcnQgZGVmaW5pdGlvbnNcbiAqIHRvL2Zyb20gdGhlaXIgYmFja2VuZCAoZGF0YWJhc2UsIGZpbGUgc3lzdGVtLCBBUEksIGV0Yy4pLlxuICovXG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlcG9ydERlZmluaXRpb24sIFJlcG9ydFN1bW1hcnkgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9yZXBvcnQtZGVmaW5pdGlvbi5tb2RlbCc7XG5cbi8qKlxuICogQ29udHJhY3QgZm9yIHBlcnNpc3RpbmcgcmVwb3J0IGRlZmluaXRpb25zLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBASW5qZWN0YWJsZSgpXG4gKiBleHBvcnQgY2xhc3MgTXlQZXJzaXN0ZW5jZUFkYXB0ZXIgZXh0ZW5kcyBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXIge1xuICogICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHsgc3VwZXIoKTsgfVxuICpcbiAqICAgbG9hZChyZXBvcnRJZCkge1xuICogICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFJlcG9ydERlZmluaXRpb24+KGAvYXBpL3JlcG9ydHMvJHtyZXBvcnRJZH1gKTtcbiAqICAgfVxuICogICAvLyAuLi4gb3RoZXIgbWV0aG9kc1xuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXBvcnRQZXJzaXN0ZW5jZUFkYXB0ZXIge1xuICAvKiogTG9hZCBhIGZ1bGwgcmVwb3J0IGRlZmluaXRpb24gYnkgSUQuICovXG4gIGFic3RyYWN0IGxvYWQocmVwb3J0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UmVwb3J0RGVmaW5pdGlvbj47XG5cbiAgLyoqIFNhdmUgKGNyZWF0ZSBvciB1cGRhdGUpIGEgcmVwb3J0IGRlZmluaXRpb24uICovXG4gIGFic3RyYWN0IHNhdmUocmVwb3J0OiBSZXBvcnREZWZpbml0aW9uKTogT2JzZXJ2YWJsZTxSZXBvcnREZWZpbml0aW9uPjtcblxuICAvKiogTGlzdCBhdmFpbGFibGUgcmVwb3J0cyAoc3VtbWFyaWVzIG9ubHkpLiAqL1xuICBhYnN0cmFjdCBsaXN0KCk6IE9ic2VydmFibGU8UmVwb3J0U3VtbWFyeVtdPjtcblxuICAvKiogRGVsZXRlIGEgcmVwb3J0IGJ5IElELiAqL1xuICBhYnN0cmFjdCBkZWxldGUocmVwb3J0SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgLyoqIFB1Ymxpc2ggYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIGEgcmVwb3J0LiAqL1xuICBhYnN0cmFjdCBwdWJsaXNoKHJlcG9ydElkOiBzdHJpbmcsIHZlcnNpb246IG51bWJlcik6IE9ic2VydmFibGU8dm9pZD47XG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Abstract contract for discovering backend database schemas, entities, columns, and parameters.
3
+ * Enables the Visual Designer to discover tables and procedures without tight coupling.
4
+ */
5
+ export class ReportSchemaDiscoveryAdapter {
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWRpc2NvdmVyeS5jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2RhdGEtYWNjZXNzL2NvbnRyYWN0cy9zY2hlbWEtZGlzY292ZXJ5LmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVDQTs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLDRCQUE0QjtDQXNCakQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIERhdGFiYXNlRW50aXR5VHlwZSA9ICd0YWJsZScgfCAndmlldycgfCAnc3RvcmVkX3Byb2NlZHVyZSc7XG5cbi8qKlxuICogTWV0YWRhdGEgZm9yIGEgZGF0YWJhc2UgZW50aXR5ICh0YWJsZSwgdmlldywgb3Igc3RvcmVkIHByb2NlZHVyZSlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUVudGl0eU1ldGFkYXRhIHtcbiAgbmFtZTogc3RyaW5nO1xuICBzY2hlbWE6IHN0cmluZztcbiAgdHlwZTogRGF0YWJhc2VFbnRpdHlUeXBlO1xuICBmcmllbmRseU5hbWU/OiBzdHJpbmc7XG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgYW4gZW50aXR5IGNvbHVtbiBvciBzdG9yZWQgcHJvY2VkdXJlIHJldHVybiBmaWVsZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNvbHVtbk1ldGFkYXRhIHtcbiAgZmllbGQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgZGF0YVR5cGU6ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnZGF0ZScgfCAnYm9vbGVhbic7XG4gIG51bGxhYmxlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNZXRhZGF0YSBmb3Igc3RvcmVkIHByb2NlZHVyZSBwYXJhbWV0ZXJzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2VkdXJlUGFyYW1ldGVyTWV0YWRhdGEge1xuICBuYW1lOiBzdHJpbmc7XG4gIGZyaWVuZGx5TGFiZWw/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkYXRhVHlwZTogJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdkYXRlJyB8ICdib29sZWFuJztcbiAgc3FsVHlwZTogc3RyaW5nO1xuICByZXF1aXJlZDogYm9vbGVhbjtcbiAgZGVmYXVsdFZhbHVlPzogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBjb250cmFjdCBmb3IgZGlzY292ZXJpbmcgYmFja2VuZCBkYXRhYmFzZSBzY2hlbWFzLCBlbnRpdGllcywgY29sdW1ucywgYW5kIHBhcmFtZXRlcnMuXG4gKiBFbmFibGVzIHRoZSBWaXN1YWwgRGVzaWduZXIgdG8gZGlzY292ZXIgdGFibGVzIGFuZCBwcm9jZWR1cmVzIHdpdGhvdXQgdGlnaHQgY291cGxpbmcuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyIHtcbiAgLyoqXG4gICAqIFJldHJpZXZlcyBsaXN0IG9mIGRhdGFiYXNlIHRhYmxlcywgdmlld3MsIG9yIHN0b3JlZCBwcm9jZWR1cmVzLlxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0RW50aXRpZXModHlwZXM/OiBEYXRhYmFzZUVudGl0eVR5cGVbXSk6IE9ic2VydmFibGU8RGF0YWJhc2VFbnRpdHlNZXRhZGF0YVtdPjtcblxuICAvKipcbiAgICogUmV0cmlldmVzIGNvbHVtbnMgZm9yIGEgc3BlY2lmaWMgdGFibGUsIHZpZXcsIG9yIHN0b3JlZCBwcm9jZWR1cmUuXG4gICAqL1xuICBhYnN0cmFjdCBnZXRDb2x1bW5zKFxuICAgIGVudGl0eU5hbWU6IHN0cmluZyxcbiAgICBzY2hlbWE/OiBzdHJpbmcsXG4gICAgdHlwZT86IERhdGFiYXNlRW50aXR5VHlwZVxuICApOiBPYnNlcnZhYmxlPEVudGl0eUNvbHVtbk1ldGFkYXRhW10+O1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgcGFyYW1ldGVycyBmb3IgYSBzdG9yZWQgcHJvY2VkdXJlLlxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0UGFyYW1ldGVycyhcbiAgICBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICAgc2NoZW1hPzogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8UHJvY2VkdXJlUGFyYW1ldGVyTWV0YWRhdGFbXT47XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Translation adapter contract.
3
+ *
4
+ * Allows host ERP applications to plug in their own i18n/translation
5
+ * system (e.g. @ngx-translate, Transloco, or custom backend dictionary).
6
+ */
7
+ export class ReportTranslationAdapter {
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvdHJhbnNsYXRpb24uY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQWdCLHdCQUF3QjtDQVM3QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHJhbnNsYXRpb24gYWRhcHRlciBjb250cmFjdC5cbiAqXG4gKiBBbGxvd3MgaG9zdCBFUlAgYXBwbGljYXRpb25zIHRvIHBsdWcgaW4gdGhlaXIgb3duIGkxOG4vdHJhbnNsYXRpb25cbiAqIHN5c3RlbSAoZS5nLiBAbmd4LXRyYW5zbGF0ZSwgVHJhbnNsb2NvLCBvciBjdXN0b20gYmFja2VuZCBkaWN0aW9uYXJ5KS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlcG9ydFRyYW5zbGF0aW9uQWRhcHRlciB7XG4gIC8qKlxuICAgKiBUcmFuc2xhdGUgYSBnaXZlbiBrZXkgaW50byB0aGUgY3VycmVudCBhY3RpdmUgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgLSBUcmFuc2xhdGlvbiBrZXkgb3IgZGVmYXVsdCBsYWJlbC5cbiAgICogQHBhcmFtIHBhcmFtcyAtIE9wdGlvbmFsIGludGVycG9sYXRpb24gcGFyYW1ldGVycy5cbiAgICogQHJldHVybnMgVHJhbnNsYXRlZCBzdHJpbmcsIG9yIGtleSBpZiBubyB0cmFuc2xhdGlvbiBmb3VuZC5cbiAgICovXG4gIGFic3RyYWN0IHRyYW5zbGF0ZShrZXk6IHN0cmluZywgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPik6IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './contracts';
2
+ export * from './adapters';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29udHJhY3RzJztcbmV4cG9ydCAqIGZyb20gJy4vYWRhcHRlcnMnO1xuIl19