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,13 @@
1
+ /**
2
+ * ReportDefinition — the central domain object.
3
+ *
4
+ * A `ReportDefinition` is a complete, versioned, serializable description
5
+ * of a report page. It is the single source of truth for both the
6
+ * Designer and the Runtime.
7
+ *
8
+ * Key principle: **A report is data, not Angular source code.**
9
+ * The metadata is saved/loaded as JSON. Angular dynamically constructs
10
+ * the required controls, layout, and bindings at runtime.
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRlZmluaXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL21vZGVscy9yZXBvcnQtZGVmaW5pdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXBvcnREZWZpbml0aW9uIOKAlCB0aGUgY2VudHJhbCBkb21haW4gb2JqZWN0LlxuICpcbiAqIEEgYFJlcG9ydERlZmluaXRpb25gIGlzIGEgY29tcGxldGUsIHZlcnNpb25lZCwgc2VyaWFsaXphYmxlIGRlc2NyaXB0aW9uXG4gKiBvZiBhIHJlcG9ydCBwYWdlLiBJdCBpcyB0aGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgYm90aCB0aGVcbiAqIERlc2lnbmVyIGFuZCB0aGUgUnVudGltZS5cbiAqXG4gKiBLZXkgcHJpbmNpcGxlOiAqKkEgcmVwb3J0IGlzIGRhdGEsIG5vdCBBbmd1bGFyIHNvdXJjZSBjb2RlLioqXG4gKiBUaGUgbWV0YWRhdGEgaXMgc2F2ZWQvbG9hZGVkIGFzIEpTT04uIEFuZ3VsYXIgZHluYW1pY2FsbHkgY29uc3RydWN0c1xuICogdGhlIHJlcXVpcmVkIGNvbnRyb2xzLCBsYXlvdXQsIGFuZCBiaW5kaW5ncyBhdCBydW50aW1lLlxuICovXG5cbmltcG9ydCB7IFJlcG9ydENvbXBvbmVudERlZmluaXRpb24gfSBmcm9tICcuL3JlcG9ydC1jb21wb25lbnQubW9kZWwnO1xuaW1wb3J0IHsgUmVwb3J0UGFyYW1ldGVyRGVmaW5pdGlvbiB9IGZyb20gJy4vcmVwb3J0LXBhcmFtZXRlci5tb2RlbCc7XG5pbXBvcnQgeyBSZXBvcnREYXRhU291cmNlRGVmaW5pdGlvbiB9IGZyb20gJy4vcmVwb3J0LWRhdGFzb3VyY2UubW9kZWwnO1xuaW1wb3J0IHsgUmVwb3J0R3JpZERlZmluaXRpb24gfSBmcm9tICcuL3JlcG9ydC1ncmlkLm1vZGVsJztcbmltcG9ydCB7IFJlcG9ydExheW91dERlZmluaXRpb24gfSBmcm9tICcuL3JlcG9ydC1sYXlvdXQubW9kZWwnO1xuXG4vKipcbiAqIFBlcm1pc3Npb24gc2V0dGluZ3MgZm9yIGEgcmVwb3J0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFBlcm1pc3Npb25EZWZpbml0aW9uIHtcbiAgLyoqIFJvbGVzIHRoYXQgY2FuIHZpZXcvZXhlY3V0ZSB0aGlzIHJlcG9ydC4gKi9cbiAgdmlld1JvbGVzPzogc3RyaW5nW107XG5cbiAgLyoqIFJvbGVzIHRoYXQgY2FuIGVkaXQgdGhpcyByZXBvcnQgaW4gdGhlIGRlc2lnbmVyLiAqL1xuICBlZGl0Um9sZXM/OiBzdHJpbmdbXTtcblxuICAvKiogV2hldGhlciB0aGlzIHJlcG9ydCBpcyBwdWJsaWNseSBhY2Nlc3NpYmxlLiAqL1xuICBpc1B1YmxpYz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogU3VtbWFyeSBpbmZvcm1hdGlvbiBmb3IgbGlzdGluZyByZXBvcnRzICh3aXRob3V0IGZ1bGwgZGVmaW5pdGlvbikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0U3VtbWFyeSB7XG4gIC8qKiBVbmlxdWUgcmVwb3J0IGlkZW50aWZpZXIuICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqIFJlcG9ydCBkaXNwbGF5IG5hbWUuICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKiogQnJpZWYgZGVzY3JpcHRpb24uICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBDYXRlZ29yeSBvciBncm91cCBmb3Igb3JnYW5pemluZyByZXBvcnRzLiAqL1xuICBjYXRlZ29yeT86IHN0cmluZztcblxuICAvKiogQ3VycmVudCB2ZXJzaW9uIG51bWJlci4gKi9cbiAgdmVyc2lvbjogbnVtYmVyO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSByZXBvcnQgaXMgcHVibGlzaGVkICh2cy4gZHJhZnQpLiAqL1xuICBpc1B1Ymxpc2hlZDogYm9vbGVhbjtcblxuICAvKiogSVNPIGRhdGUgb2YgbGFzdCBtb2RpZmljYXRpb24uICovXG4gIGxhc3RNb2RpZmllZD86IHN0cmluZztcblxuICAvKiogVXNlciB3aG8gbGFzdCBtb2RpZmllZC4gKi9cbiAgbGFzdE1vZGlmaWVkQnk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29tcGxldGUgcmVwb3J0IGRlZmluaXRpb24g4oCUIHRoZSBzb3VyY2Ugb2YgdHJ1dGguXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGpzb25cbiAqIHtcbiAqICAgXCJpZFwiOiBcInNhbGVzLXJlZ2lzdGVyXCIsXG4gKiAgIFwibmFtZVwiOiBcIlNhbGVzIFJlZ2lzdGVyXCIsXG4gKiAgIFwic2NoZW1hVmVyc2lvblwiOiAxLFxuICogICBcInZlcnNpb25cIjogMSxcbiAqICAgXCJsYXlvdXRcIjogeyBcImNvbHVtbnNcIjogNCwgXCJnYXBcIjogMTYgfSxcbiAqICAgXCJjb21wb25lbnRzXCI6IFsuLi5dLFxuICogICBcInBhcmFtZXRlcnNcIjogWy4uLl0sXG4gKiAgIFwiZGF0YVNvdXJjZXNcIjogWy4uLl0sXG4gKiAgIFwiZ3JpZFwiOiB7IC4uLiB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnREZWZpbml0aW9uIHtcbiAgLyoqIFVuaXF1ZSByZXBvcnQgaWRlbnRpZmllci4gKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKiogRGlzcGxheSBuYW1lLiAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIEJyaWVmIGRlc2NyaXB0aW9uLiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKiogTWV0YWRhdGEgc2NoZW1hIHZlcnNpb24g4oCUIHVzZWQgZm9yIG1pZ3JhdGlvbi4gKi9cbiAgc2NoZW1hVmVyc2lvbjogbnVtYmVyO1xuXG4gIC8qKiBSZXBvcnQgY29udGVudCB2ZXJzaW9uIOKAlCBpbmNyZW1lbnRlZCBvbiBlYWNoIHNhdmUuICovXG4gIHZlcnNpb246IG51bWJlcjtcblxuICAvKiogQ2F0ZWdvcnkgb3IgZ3JvdXAgZm9yIG9yZ2FuaXppbmcgcmVwb3J0cy4gKi9cbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG5cbiAgLyoqIFBhZ2UgbGF5b3V0IGNvbmZpZ3VyYXRpb24uICovXG4gIGxheW91dDogUmVwb3J0TGF5b3V0RGVmaW5pdGlvbjtcblxuICAvKiogQ29tcG9uZW50cyAoY29udHJvbHMsIGJ1dHRvbnMsIGRpc3BsYXkgZWxlbWVudHMpIG9uIHRoaXMgcmVwb3J0IHBhZ2UuICovXG4gIGNvbXBvbmVudHM6IFJlcG9ydENvbXBvbmVudERlZmluaXRpb25bXTtcblxuICAvKiogUGFyYW1ldGVycyB0aGF0IGJyaWRnZSBpbnB1dHMgdG8gZGF0YSBzb3VyY2VzLiAqL1xuICBwYXJhbWV0ZXJzOiBSZXBvcnRQYXJhbWV0ZXJEZWZpbml0aW9uW107XG5cbiAgLyoqIERhdGEgc291cmNlcyBmb3IgZXhlY3V0aW5nIHF1ZXJpZXMuICovXG4gIGRhdGFTb3VyY2VzOiBSZXBvcnREYXRhU291cmNlRGVmaW5pdGlvbltdO1xuXG4gIC8qKiBSZXN1bHQgZ3JpZCBkZWZpbml0aW9uLiAqL1xuICBncmlkPzogUmVwb3J0R3JpZERlZmluaXRpb247XG5cbiAgLyoqIEFjY2VzcyBjb250cm9sIHNldHRpbmdzLiAqL1xuICBwZXJtaXNzaW9ucz86IFJlcG9ydFBlcm1pc3Npb25EZWZpbml0aW9uO1xuXG4gIC8qKiBDdXN0b20gbWV0YWRhdGEgZm9yIGhvc3Qtc3BlY2lmaWMgZXh0ZW5zaW9ucy4gKi9cbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKiogSVNPIGRhdGUgb2YgY3JlYXRpb24uICovXG4gIGNyZWF0ZWRBdD86IHN0cmluZztcblxuICAvKiogSVNPIGRhdGUgb2YgbGFzdCBtb2RpZmljYXRpb24uICovXG4gIHVwZGF0ZWRBdD86IHN0cmluZztcblxuICAvKiogVXNlciB3aG8gbGFzdCBtb2RpZmllZC4gKi9cbiAgdXBkYXRlZEJ5Pzogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Report grid definitions.
3
+ *
4
+ * Describes the logical structure of the result grid — columns, fields,
5
+ * formatting, sorting, and filtering. This is **not** a specific grid
6
+ * library's API. The `ReportGridBridgeComponent` translates this into
7
+ * whatever the host's grid component (BWays-grid, AG Grid, etc.) expects.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWdyaWQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL21vZGVscy9yZXBvcnQtZ3JpZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXBvcnQgZ3JpZCBkZWZpbml0aW9ucy5cbiAqXG4gKiBEZXNjcmliZXMgdGhlIGxvZ2ljYWwgc3RydWN0dXJlIG9mIHRoZSByZXN1bHQgZ3JpZCDigJQgY29sdW1ucywgZmllbGRzLFxuICogZm9ybWF0dGluZywgc29ydGluZywgYW5kIGZpbHRlcmluZy4gVGhpcyBpcyAqKm5vdCoqIGEgc3BlY2lmaWMgZ3JpZFxuICogbGlicmFyeSdzIEFQSS4gVGhlIGBSZXBvcnRHcmlkQnJpZGdlQ29tcG9uZW50YCB0cmFuc2xhdGVzIHRoaXMgaW50b1xuICogd2hhdGV2ZXIgdGhlIGhvc3QncyBncmlkIGNvbXBvbmVudCAoQldheXMtZ3JpZCwgQUcgR3JpZCwgZXRjLikgZXhwZWN0cy5cbiAqL1xuXG4vKipcbiAqIERlZmluZXMgdGhlIHJlc3VsdCBncmlkIGZvciBhIHJlcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRHcmlkRGVmaW5pdGlvbiB7XG4gIC8qKiBUaGUgZGF0YSBzb3VyY2UgSUQgdGhhdCBwcm92aWRlcyBkYXRhIGZvciB0aGlzIGdyaWQuICovXG4gIGRhdGFTb3VyY2VJZDogc3RyaW5nO1xuXG4gIC8qKiBDb2x1bW4gZGVmaW5pdGlvbnMuICovXG4gIGNvbHVtbnM6IEdyaWRDb2x1bW5EZWZpbml0aW9uW107XG5cbiAgLyoqIEdyaWQtbGV2ZWwgb3B0aW9ucy4gKi9cbiAgb3B0aW9ucz86IEdyaWRPcHRpb25zRGVmaW5pdGlvbjtcbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgc2luZ2xlIGNvbHVtbiBpbiB0aGUgcmVzdWx0IGdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZENvbHVtbkRlZmluaXRpb24ge1xuICAvKiogVGhlIGZpZWxkIG5hbWUgaW4gdGhlIGRhdGEgcm93IG9iamVjdC4gKi9cbiAgZmllbGQ6IHN0cmluZztcblxuICAvKiogRGlzcGxheSBsYWJlbCBmb3IgdGhlIGNvbHVtbiBoZWFkZXIuICovXG4gIGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqIENvbHVtbiBkYXRhIHR5cGUg4oCUIHVzZWQgZm9yIGZvcm1hdHRpbmcgYW5kIHNvcnRpbmcuICovXG4gIGRhdGFUeXBlPzogJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdkYXRlJyB8ICdib29sZWFuJyB8ICdjdXJyZW5jeSc7XG5cbiAgLyoqIERpc3BsYXkgZm9ybWF0IChlLmcuLCAnZGQvTU0veXl5eScgZm9yIGRhdGVzLCAnMS4yLTInIGZvciBudW1iZXJzKS4gKi9cbiAgZm9ybWF0Pzogc3RyaW5nO1xuXG4gIC8qKiBDb2x1bW4gd2lkdGggKENTUyB2YWx1ZSwgZS5nLiwgJzE1MHB4JywgJzIwJScpLiAqL1xuICB3aWR0aD86IHN0cmluZztcblxuICAvKiogV2hldGhlciB0aGlzIGNvbHVtbiBpcyBzb3J0YWJsZS4gRGVmYXVsdHMgdG8gYHRydWVgLiAqL1xuICBzb3J0YWJsZT86IGJvb2xlYW47XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBjb2x1bW4gaXMgZmlsdGVyYWJsZS4gRGVmYXVsdHMgdG8gYGZhbHNlYC4gKi9cbiAgZmlsdGVyYWJsZT86IGJvb2xlYW47XG5cbiAgLyoqIFRleHQgYWxpZ25tZW50LiAqL1xuICBhbGlnbj86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JztcblxuICAvKiogV2hldGhlciB0aGlzIGNvbHVtbiBpcyB2aXNpYmxlLiBEZWZhdWx0cyB0byBgdHJ1ZWAuICovXG4gIHZpc2libGU/OiBib29sZWFuO1xuXG4gIC8qKiBXaGV0aGVyIHRoaXMgY29sdW1uIGlzIHBpbm5lZC9mcm96ZW4uICovXG4gIHBpbm5lZD86ICdsZWZ0JyB8ICdyaWdodCcgfCBmYWxzZTtcblxuICAvKiogQ29sdW1uIGRpc3BsYXkgb3JkZXIgKGxvd2VyID0gZmlyc3QpLiAqL1xuICBvcmRlcj86IG51bWJlcjtcblxuICAvKiogQWdncmVnYXRlIGZ1bmN0aW9uIHRvIGRpc3BsYXkgaW4gYSBmb290ZXIgcm93LiAqL1xuICBhZ2dyZWdhdGU/OiAnc3VtJyB8ICdhdmcnIHwgJ2NvdW50JyB8ICdtaW4nIHwgJ21heCcgfCAnbm9uZSc7XG59XG5cbi8qKlxuICogR3JpZC1sZXZlbCBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRPcHRpb25zRGVmaW5pdGlvbiB7XG4gIC8qKiBOdW1iZXIgb2Ygcm93cyBwZXIgcGFnZS4gKi9cbiAgcGFnZVNpemU/OiBudW1iZXI7XG5cbiAgLyoqIFdoZXRoZXIgcGFnaW5hdGlvbiBpcyBlbmFibGVkLiAqL1xuICBwYWdpbmF0aW9uPzogYm9vbGVhbjtcblxuICAvKiogV2hldGhlciByb3cgc2VsZWN0aW9uIGlzIGVuYWJsZWQuICovXG4gIHNlbGVjdGFibGU/OiBib29sZWFuO1xuXG4gIC8qKiBTZWxlY3Rpb24gbW9kZSB3aGVuIHNlbGVjdGFibGUgaXMgdHJ1ZS4gKi9cbiAgc2VsZWN0aW9uTW9kZT86ICdzaW5nbGUnIHwgJ211bHRpcGxlJztcblxuICAvKiogV2hldGhlciB0byBzaG93IHJvdyBudW1iZXJzLiAqL1xuICBzaG93Um93TnVtYmVycz86IGJvb2xlYW47XG5cbiAgLyoqIFdoZXRoZXIgdG8gYWxsb3cgY29sdW1uIHJlb3JkZXJpbmcuICovXG4gIGFsbG93Q29sdW1uUmVvcmRlcj86IGJvb2xlYW47XG5cbiAgLyoqIFdoZXRoZXIgdG8gYWxsb3cgZXhwb3J0aW5nLiAqL1xuICBhbGxvd0V4cG9ydD86IGJvb2xlYW47XG5cbiAgLyoqIEV4cG9ydCBmb3JtYXRzIHRvIG9mZmVyLiAqL1xuICBleHBvcnRGb3JtYXRzPzogKCdjc3YnIHwgJ2V4Y2VsJyB8ICdwZGYnKVtdO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgYSBmb290ZXIgcm93IHdpdGggYWdncmVnYXRlcy4gKi9cbiAgc2hvd0Zvb3Rlcj86IGJvb2xlYW47XG5cbiAgLyoqIEhlaWdodCBvZiB0aGUgZ3JpZCAoQ1NTIHZhbHVlKS4gKi9cbiAgaGVpZ2h0Pzogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Layout definitions for report pages and individual components.
3
+ *
4
+ * Layout metadata uses **logical** values (rows, columns, spans) —
5
+ * not CSS class strings like `col-md-3`. The renderer translates
6
+ * logical layout to CSS Grid at runtime.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWxheW91dC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvbW9kZWxzL3JlcG9ydC1sYXlvdXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBMYXlvdXQgZGVmaW5pdGlvbnMgZm9yIHJlcG9ydCBwYWdlcyBhbmQgaW5kaXZpZHVhbCBjb21wb25lbnRzLlxuICpcbiAqIExheW91dCBtZXRhZGF0YSB1c2VzICoqbG9naWNhbCoqIHZhbHVlcyAocm93cywgY29sdW1ucywgc3BhbnMpIOKAlFxuICogbm90IENTUyBjbGFzcyBzdHJpbmdzIGxpa2UgYGNvbC1tZC0zYC4gVGhlIHJlbmRlcmVyIHRyYW5zbGF0ZXNcbiAqIGxvZ2ljYWwgbGF5b3V0IHRvIENTUyBHcmlkIGF0IHJ1bnRpbWUuXG4gKi9cblxuLyoqXG4gKiBEZXNjcmliZXMgdGhlIG92ZXJhbGwgcGFnZSBsYXlvdXQgZm9yIGEgcmVwb3J0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydExheW91dERlZmluaXRpb24ge1xuICAvKiogTnVtYmVyIG9mIGdyaWQgY29sdW1ucyB0aGUgcmVwb3J0IHBhZ2UgdXNlcy4gKi9cbiAgY29sdW1uczogbnVtYmVyO1xuXG4gIC8qKiBHYXAgYmV0d2VlbiBncmlkIGNlbGxzIGluIHBpeGVscy4gKi9cbiAgZ2FwPzogbnVtYmVyO1xuXG4gIC8qKiBPcHRpb25hbCBwYWRkaW5nIGFyb3VuZCB0aGUgcmVwb3J0IGNvbnRhaW5lciBpbiBwaXhlbHMuICovXG4gIHBhZGRpbmc/OiBudW1iZXI7XG5cbiAgLyoqIExheW91dCBkaXJlY3Rpb24uIERlZmF1bHRzIHRvICdsdHInLiAqL1xuICBkaXJlY3Rpb24/OiAnbHRyJyB8ICdydGwnO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBob3cgYSBzaW5nbGUgY29tcG9uZW50IGlzIHBvc2l0aW9uZWQgd2l0aGluIHRoZSByZXBvcnQgbGF5b3V0IGdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50TGF5b3V0RGVmaW5pdGlvbiB7XG4gIC8qKiBHcmlkIHJvdyBwbGFjZW1lbnQgKDEtYmFzZWQpLiAqL1xuICByb3c/OiBudW1iZXI7XG5cbiAgLyoqIEdyaWQgY29sdW1uIHBsYWNlbWVudCAoMS1iYXNlZCkuICovXG4gIGNvbHVtbj86IG51bWJlcjtcblxuICAvKiogTnVtYmVyIG9mIGNvbHVtbnMgdGhpcyBjb21wb25lbnQgc3BhbnMuICovXG4gIGNvbHVtblNwYW4/OiBudW1iZXI7XG5cbiAgLyoqIE51bWJlciBvZiByb3dzIHRoaXMgY29tcG9uZW50IHNwYW5zLiAqL1xuICByb3dTcGFuPzogbnVtYmVyO1xuXG4gIC8qKiBFeHBsaWNpdCB3aWR0aCBvdmVycmlkZSAoQ1NTIHZhbHVlLCBlLmcuLCAnMjAwcHgnLCAnNTAlJykuICovXG4gIHdpZHRoPzogc3RyaW5nO1xuXG4gIC8qKiBFeHBsaWNpdCBoZWlnaHQgb3ZlcnJpZGUgKENTUyB2YWx1ZSkuICovXG4gIGhlaWdodD86IHN0cmluZztcblxuICAvKiogTWluaW11bSBoZWlnaHQgb3ZlcnJpZGUgKENTUyB2YWx1ZSwgZS5nLiwgJzYwcHgnKS4gKi9cbiAgbWluSGVpZ2h0Pzogc3RyaW5nO1xuXG4gIC8qKiBNYXhpbXVtIGhlaWdodCBvdmVycmlkZSAoQ1NTIHZhbHVlLCBlLmcuLCAnMzAwcHgnKS4gKi9cbiAgbWF4SGVpZ2h0Pzogc3RyaW5nO1xuXG4gIC8qKiBGb3JjZXMgdGhpcyBjb21wb25lbnQgdG8gc3RhcnQgb24gYSBuZXcgc2VwYXJhdGUgcm93IGluIHRoZSBncmlkLiBEZWZhdWx0cyB0byBmYWxzZS4gKi9cbiAgbmV3Um93PzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Report parameter definitions.
3
+ *
4
+ * Parameters are the values that report input controls write to
5
+ * and that data source queries read from. They serve as the bridge
6
+ * between the user's form inputs and the backend query.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXBhcmFtZXRlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvbW9kZWxzL3JlcG9ydC1wYXJhbWV0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXBvcnQgcGFyYW1ldGVyIGRlZmluaXRpb25zLlxuICpcbiAqIFBhcmFtZXRlcnMgYXJlIHRoZSB2YWx1ZXMgdGhhdCByZXBvcnQgaW5wdXQgY29udHJvbHMgd3JpdGUgdG9cbiAqIGFuZCB0aGF0IGRhdGEgc291cmNlIHF1ZXJpZXMgcmVhZCBmcm9tLiBUaGV5IHNlcnZlIGFzIHRoZSBicmlkZ2VcbiAqIGJldHdlZW4gdGhlIHVzZXIncyBmb3JtIGlucHV0cyBhbmQgdGhlIGJhY2tlbmQgcXVlcnkuXG4gKi9cblxuLyoqXG4gKiBEZWZpbmVzIGEgc2luZ2xlIHJlcG9ydCBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0UGFyYW1ldGVyRGVmaW5pdGlvbiB7XG4gIC8qKiBVbmlxdWUga2V5IGlkZW50aWZ5aW5nIHRoaXMgcGFyYW1ldGVyLiAqL1xuICBrZXk6IHN0cmluZztcblxuICAvKiogRGlzcGxheSBuYW1lIGZvciB0aGUgcGFyYW1ldGVyLiAqL1xuICBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKiBEYXRhIHR5cGUgb2YgdGhlIHBhcmFtZXRlciB2YWx1ZS4gKi9cbiAgZGF0YVR5cGU6ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnZGF0ZScgfCAnYm9vbGVhbicgfCAnYXJyYXknO1xuXG4gIC8qKiBEZWZhdWx0IHZhbHVlIGlmIHRoZSB1c2VyIGRvZXNuJ3QgcHJvdmlkZSBvbmUuICovXG4gIGRlZmF1bHRWYWx1ZT86IHVua25vd247XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBwYXJhbWV0ZXIgbXVzdCBoYXZlIGEgdmFsdWUgYmVmb3JlIGV4ZWN1dGluZyB0aGUgcmVwb3J0LiAqL1xuICByZXF1aXJlZD86IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Validation rule definitions for report component controls.
3
+ *
4
+ * Pure data — no Angular dependencies. The `createValidators()` function
5
+ * in the validation module converts these into Angular `ValidatorFn[]`.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvbW9kZWxzL3ZhbGlkYXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZhbGlkYXRpb24gcnVsZSBkZWZpbml0aW9ucyBmb3IgcmVwb3J0IGNvbXBvbmVudCBjb250cm9scy5cbiAqXG4gKiBQdXJlIGRhdGEg4oCUIG5vIEFuZ3VsYXIgZGVwZW5kZW5jaWVzLiBUaGUgYGNyZWF0ZVZhbGlkYXRvcnMoKWAgZnVuY3Rpb25cbiAqIGluIHRoZSB2YWxpZGF0aW9uIG1vZHVsZSBjb252ZXJ0cyB0aGVzZSBpbnRvIEFuZ3VsYXIgYFZhbGlkYXRvckZuW11gLlxuICovXG5cbi8qKlxuICogRGVzY3JpYmVzIHZhbGlkYXRpb24gY29uc3RyYWludHMgZm9yIGEgc2luZ2xlIHJlcG9ydCBjb21wb25lbnQuXG4gKlxuICogRWFjaCBwcm9wZXJ0eSBtYXBzIHRvIGEgc3RhbmRhcmQgQW5ndWxhciB2YWxpZGF0b3IuXG4gKiBDdXN0b20gdmFsaWRhdG9ycyBjYW4gYmUgcmVmZXJlbmNlZCBieSBuYW1lIHZpYSBgY3VzdG9tYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uRGVmaW5pdGlvbiB7XG4gIC8qKiBXaGV0aGVyIHRoZSBmaWVsZCBpcyByZXF1aXJlZC4gKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuXG4gIC8qKiBNaW5pbXVtIG51bWVyaWMgdmFsdWUgKGZvciBudW1iZXIgaW5wdXRzKS4gKi9cbiAgbWluPzogbnVtYmVyO1xuXG4gIC8qKiBNYXhpbXVtIG51bWVyaWMgdmFsdWUgKGZvciBudW1iZXIgaW5wdXRzKS4gKi9cbiAgbWF4PzogbnVtYmVyO1xuXG4gIC8qKiBNaW5pbXVtIHN0cmluZyBsZW5ndGguICovXG4gIG1pbkxlbmd0aD86IG51bWJlcjtcblxuICAvKiogTWF4aW11bSBzdHJpbmcgbGVuZ3RoLiAqL1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG5cbiAgLyoqIFJlZ2V4IHBhdHRlcm4gdGhlIHZhbHVlIG11c3QgbWF0Y2guICovXG4gIHBhdHRlcm4/OiBzdHJpbmc7XG5cbiAgLyoqIE5hbWUgb2YgYSBjdXN0b20gdmFsaWRhdG9yIHJlZ2lzdGVyZWQgYnkgdGhlIGhvc3QgYXBwbGljYXRpb24uICovXG4gIGN1c3RvbT86IHN0cmluZztcblxuICAvKiogVXNlci1mYWNpbmcgbWVzc2FnZSBvdmVycmlkZXMsIGtleWVkIGJ5IHZhbGlkYXRvciBuYW1lLiAqL1xuICBtZXNzYWdlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Component category types.
3
+ *
4
+ * Categories organize components in the Designer's palette
5
+ * and help the runtime understand a component's role.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWNhdGVnb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvY29yZS9yZWdpc3RyeS9jb21wb25lbnQtY2F0ZWdvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXBvbmVudCBjYXRlZ29yeSB0eXBlcy5cbiAqXG4gKiBDYXRlZ29yaWVzIG9yZ2FuaXplIGNvbXBvbmVudHMgaW4gdGhlIERlc2lnbmVyJ3MgcGFsZXR0ZVxuICogYW5kIGhlbHAgdGhlIHJ1bnRpbWUgdW5kZXJzdGFuZCBhIGNvbXBvbmVudCdzIHJvbGUuXG4gKi9cblxuLyoqXG4gKiBQcmVkZWZpbmVkIGNvbXBvbmVudCBjYXRlZ29yaWVzLlxuICpcbiAqIC0gYGlucHV0YCDigJQgRm9ybSBjb250cm9scyB0aGF0IGFjY2VwdCB1c2VyIGlucHV0ICh0ZXh0LCBkcm9wZG93biwgZGF0ZSwgZXRjLilcbiAqIC0gYGFjdGlvbmAg4oCUIEJ1dHRvbnMgYW5kIHRyaWdnZXJzIChzZWFyY2gsIHJlc2V0LCBleHBvcnQpXG4gKiAtIGBkaXNwbGF5YCDigJQgUmVhZC1vbmx5IGRpc3BsYXkgZWxlbWVudHMgKGxhYmVscywgS1BJcywgc3VtbWFyaWVzKVxuICogLSBgZGF0YWAg4oCUIERhdGEtYm91bmQgY29tcG9uZW50cyAoZ3JpZHMsIGNoYXJ0cylcbiAqIC0gYGxheW91dGAg4oCUIFN0cnVjdHVyYWwgY29tcG9uZW50cyAoc2VjdGlvbnMsIHRhYnMsIGRpdmlkZXJzKVxuICovXG5leHBvcnQgdHlwZSBDb21wb25lbnRDYXRlZ29yeSA9ICdpbnB1dCcgfCAnYWN0aW9uJyB8ICdkaXNwbGF5JyB8ICdkYXRhJyB8ICdsYXlvdXQnO1xuIl19
@@ -0,0 +1,90 @@
1
+ /**
2
+ * ComponentRegistry — the scalable alternative to a giant `@switch` block.
3
+ *
4
+ * Instead of hard-coding component types in the renderer template:
5
+ * ```html
6
+ * @switch (comp.type) {
7
+ * @case ('input') { ... }
8
+ * @case ('dropdown') { ... }
9
+ * ...100 more cases...
10
+ * }
11
+ * ```
12
+ *
13
+ * The registry maps type strings to Angular component classes:
14
+ * ```typescript
15
+ * registry.register({ type: 'input', component: RptInputComponent, ... });
16
+ * const meta = registry.resolve('input');
17
+ * // Use meta.component with ngComponentOutlet
18
+ * ```
19
+ *
20
+ * **Host override**: The host ERP can register its own component for any type.
21
+ * If the host registers `type: 'dropdown'` with its PrimeNG-based dropdown,
22
+ * that component wins over the library's built-in dropdown.
23
+ */
24
+ import { Injectable } from '@angular/core';
25
+ import * as i0 from "@angular/core";
26
+ /**
27
+ * Central registry for all report component types.
28
+ *
29
+ * The registry is a simple `Map<string, ReportingComponentMeta>`.
30
+ * It does not use DI for individual components — DI is used to
31
+ * provide the registry itself.
32
+ *
33
+ * **Registration order**: Last registration wins. This allows the host
34
+ * application to override built-in components by registering after
35
+ * the library's built-in registration.
36
+ */
37
+ export class ComponentRegistry {
38
+ registry = new Map();
39
+ /**
40
+ * Register a component type.
41
+ *
42
+ * If a component with the same `type` is already registered,
43
+ * it is replaced. This enables host overrides.
44
+ *
45
+ * @param meta - Component metadata including the Angular component class.
46
+ */
47
+ register(meta) {
48
+ this.registry.set(meta.type, meta);
49
+ }
50
+ /**
51
+ * Resolve a component type to its metadata.
52
+ *
53
+ * @param type - The component type key.
54
+ * @returns The metadata, or `undefined` if not registered.
55
+ */
56
+ resolve(type) {
57
+ return this.registry.get(type);
58
+ }
59
+ /**
60
+ * Check whether a component type is registered.
61
+ */
62
+ has(type) {
63
+ return this.registry.has(type);
64
+ }
65
+ /**
66
+ * Get all registered component metadata entries.
67
+ */
68
+ getAll() {
69
+ return Array.from(this.registry.values());
70
+ }
71
+ /**
72
+ * Get registered components filtered by category.
73
+ */
74
+ getByCategory(category) {
75
+ return this.getAll().filter(meta => meta.category === category);
76
+ }
77
+ /**
78
+ * Get all registered type keys.
79
+ */
80
+ getRegisteredTypes() {
81
+ return Array.from(this.registry.keys());
82
+ }
83
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ComponentRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
84
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ComponentRegistry, providedIn: 'root' });
85
+ }
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ComponentRegistry, decorators: [{
87
+ type: Injectable,
88
+ args: [{ providedIn: 'root' }]
89
+ }] });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvY29yZS9yZWdpc3RyeS9jb21wb25lbnQtcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDOztBQXFDakQ7Ozs7Ozs7Ozs7R0FVRztBQUVILE1BQU0sT0FBTyxpQkFBaUI7SUFDWCxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQWtDLENBQUM7SUFFdEU7Ozs7Ozs7T0FPRztJQUNILFFBQVEsQ0FBQyxJQUE0QjtRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLElBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxRQUEyQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQjtRQUNoQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7d0dBbkRVLGlCQUFpQjs0R0FBakIsaUJBQWlCLGNBREosTUFBTTs7NEZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXBvbmVudFJlZ2lzdHJ5IOKAlCB0aGUgc2NhbGFibGUgYWx0ZXJuYXRpdmUgdG8gYSBnaWFudCBgQHN3aXRjaGAgYmxvY2suXG4gKlxuICogSW5zdGVhZCBvZiBoYXJkLWNvZGluZyBjb21wb25lbnQgdHlwZXMgaW4gdGhlIHJlbmRlcmVyIHRlbXBsYXRlOlxuICogYGBgaHRtbFxuICogQHN3aXRjaCAoY29tcC50eXBlKSB7XG4gKiAgIEBjYXNlICgnaW5wdXQnKSB7IC4uLiB9XG4gKiAgIEBjYXNlICgnZHJvcGRvd24nKSB7IC4uLiB9XG4gKiAgIC4uLjEwMCBtb3JlIGNhc2VzLi4uXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBUaGUgcmVnaXN0cnkgbWFwcyB0eXBlIHN0cmluZ3MgdG8gQW5ndWxhciBjb21wb25lbnQgY2xhc3NlczpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlZ2lzdHJ5LnJlZ2lzdGVyKHsgdHlwZTogJ2lucHV0JywgY29tcG9uZW50OiBScHRJbnB1dENvbXBvbmVudCwgLi4uIH0pO1xuICogY29uc3QgbWV0YSA9IHJlZ2lzdHJ5LnJlc29sdmUoJ2lucHV0Jyk7XG4gKiAvLyBVc2UgbWV0YS5jb21wb25lbnQgd2l0aCBuZ0NvbXBvbmVudE91dGxldFxuICogYGBgXG4gKlxuICogKipIb3N0IG92ZXJyaWRlKio6IFRoZSBob3N0IEVSUCBjYW4gcmVnaXN0ZXIgaXRzIG93biBjb21wb25lbnQgZm9yIGFueSB0eXBlLlxuICogSWYgdGhlIGhvc3QgcmVnaXN0ZXJzIGB0eXBlOiAnZHJvcGRvd24nYCB3aXRoIGl0cyBQcmltZU5HLWJhc2VkIGRyb3Bkb3duLFxuICogdGhhdCBjb21wb25lbnQgd2lucyBvdmVyIHRoZSBsaWJyYXJ5J3MgYnVpbHQtaW4gZHJvcGRvd24uXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Q2F0ZWdvcnkgfSBmcm9tICcuL2NvbXBvbmVudC1jYXRlZ29yeSc7XG5pbXBvcnQgeyBQcm9wZXJ0eURlZmluaXRpb24gfSBmcm9tICcuL3Byb3BlcnR5LWRlZmluaXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgUmVwb3J0Q29tcG9uZW50RGVmaW5pdGlvbiB9IGZyb20gJy4uL21vZGVscy9yZXBvcnQtY29tcG9uZW50Lm1vZGVsJztcblxuLyoqXG4gKiBNZXRhZGF0YSBkZXNjcmliaW5nIGEgcmVnaXN0ZXJlZCBjb21wb25lbnQgdHlwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdDb21wb25lbnRNZXRhIHtcbiAgLyoqIFVuaXF1ZSB0eXBlIGtleSAoZS5nLiwgJ2lucHV0JywgJ2Ryb3Bkb3duJywgJ2RhdGUnLCAnY3VzdG9tZXItc2VsZWN0b3InKS4gKi9cbiAgdHlwZTogc3RyaW5nO1xuXG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgRGVzaWduZXIgcGFsZXR0ZS4gKi9cbiAgZGlzcGxheU5hbWU6IHN0cmluZztcblxuICAvKiogQ2F0ZWdvcnkgZm9yIGdyb3VwaW5nIGluIHRoZSBEZXNpZ25lciBwYWxldHRlLiAqL1xuICBjYXRlZ29yeTogQ29tcG9uZW50Q2F0ZWdvcnk7XG5cbiAgLyoqIE9wdGlvbmFsIGljb24gaWRlbnRpZmllciBmb3IgdGhlIERlc2lnbmVyIHBhbGV0dGUuICovXG4gIGljb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZhY3RvcnkgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgZGVmYXVsdCBgUmVwb3J0Q29tcG9uZW50RGVmaW5pdGlvbmBcbiAgICogZm9yIHRoaXMgdHlwZS4gVXNlZCB3aGVuIGRyYWdnaW5nIGEgbmV3IGNvbXBvbmVudCBvbnRvIHRoZSBjYW52YXMuXG4gICAqL1xuICBjcmVhdGVEZWZhdWx0Q29uZmlnKCk6IFBhcnRpYWw8UmVwb3J0Q29tcG9uZW50RGVmaW5pdGlvbj47XG5cbiAgLyoqIFRoZSBBbmd1bGFyIGNvbXBvbmVudCBjbGFzcyB0byByZW5kZXIgYXQgcnVudGltZS4gKi9cbiAgY29tcG9uZW50OiBUeXBlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0eSBzY2hlbWEg4oCUIGRlc2NyaWJlcyBjb25maWd1cmFibGUgcHJvcGVydGllcyBmb3IgdGhlXG4gICAqIERlc2lnbmVyJ3MgcHJvcGVydHkgZWRpdG9yLlxuICAgKi9cbiAgcHJvcGVydHlTY2hlbWE6IFByb3BlcnR5RGVmaW5pdGlvbltdO1xufVxuXG4vKipcbiAqIENlbnRyYWwgcmVnaXN0cnkgZm9yIGFsbCByZXBvcnQgY29tcG9uZW50IHR5cGVzLlxuICpcbiAqIFRoZSByZWdpc3RyeSBpcyBhIHNpbXBsZSBgTWFwPHN0cmluZywgUmVwb3J0aW5nQ29tcG9uZW50TWV0YT5gLlxuICogSXQgZG9lcyBub3QgdXNlIERJIGZvciBpbmRpdmlkdWFsIGNvbXBvbmVudHMg4oCUIERJIGlzIHVzZWQgdG9cbiAqIHByb3ZpZGUgdGhlIHJlZ2lzdHJ5IGl0c2VsZi5cbiAqXG4gKiAqKlJlZ2lzdHJhdGlvbiBvcmRlcioqOiBMYXN0IHJlZ2lzdHJhdGlvbiB3aW5zLiBUaGlzIGFsbG93cyB0aGUgaG9zdFxuICogYXBwbGljYXRpb24gdG8gb3ZlcnJpZGUgYnVpbHQtaW4gY29tcG9uZW50cyBieSByZWdpc3RlcmluZyBhZnRlclxuICogdGhlIGxpYnJhcnkncyBidWlsdC1pbiByZWdpc3RyYXRpb24uXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50UmVnaXN0cnkge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdHJ5ID0gbmV3IE1hcDxzdHJpbmcsIFJlcG9ydGluZ0NvbXBvbmVudE1ldGE+KCk7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgY29tcG9uZW50IHR5cGUuXG4gICAqXG4gICAqIElmIGEgY29tcG9uZW50IHdpdGggdGhlIHNhbWUgYHR5cGVgIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCxcbiAgICogaXQgaXMgcmVwbGFjZWQuIFRoaXMgZW5hYmxlcyBob3N0IG92ZXJyaWRlcy5cbiAgICpcbiAgICogQHBhcmFtIG1ldGEgLSBDb21wb25lbnQgbWV0YWRhdGEgaW5jbHVkaW5nIHRoZSBBbmd1bGFyIGNvbXBvbmVudCBjbGFzcy5cbiAgICovXG4gIHJlZ2lzdGVyKG1ldGE6IFJlcG9ydGluZ0NvbXBvbmVudE1ldGEpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdHJ5LnNldChtZXRhLnR5cGUsIG1ldGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgYSBjb21wb25lbnQgdHlwZSB0byBpdHMgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSB0eXBlIC0gVGhlIGNvbXBvbmVudCB0eXBlIGtleS5cbiAgICogQHJldHVybnMgVGhlIG1ldGFkYXRhLCBvciBgdW5kZWZpbmVkYCBpZiBub3QgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHJlc29sdmUodHlwZTogc3RyaW5nKTogUmVwb3J0aW5nQ29tcG9uZW50TWV0YSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZ2V0KHR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgYSBjb21wb25lbnQgdHlwZSBpcyByZWdpc3RlcmVkLlxuICAgKi9cbiAgaGFzKHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5Lmhhcyh0eXBlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHJlZ2lzdGVyZWQgY29tcG9uZW50IG1ldGFkYXRhIGVudHJpZXMuXG4gICAqL1xuICBnZXRBbGwoKTogUmVwb3J0aW5nQ29tcG9uZW50TWV0YVtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnJlZ2lzdHJ5LnZhbHVlcygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcmVnaXN0ZXJlZCBjb21wb25lbnRzIGZpbHRlcmVkIGJ5IGNhdGVnb3J5LlxuICAgKi9cbiAgZ2V0QnlDYXRlZ29yeShjYXRlZ29yeTogQ29tcG9uZW50Q2F0ZWdvcnkpOiBSZXBvcnRpbmdDb21wb25lbnRNZXRhW10ge1xuICAgIHJldHVybiB0aGlzLmdldEFsbCgpLmZpbHRlcihtZXRhID0+IG1ldGEuY2F0ZWdvcnkgPT09IGNhdGVnb3J5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHJlZ2lzdGVyZWQgdHlwZSBrZXlzLlxuICAgKi9cbiAgZ2V0UmVnaXN0ZXJlZFR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnJlZ2lzdHJ5LmtleXMoKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { ComponentRegistry } from './component-registry';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL3JlZ2lzdHJ5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ29tcG9uZW50UmVnaXN0cnkgfSBmcm9tICcuL2NvbXBvbmVudC1yZWdpc3RyeSc7XG5leHBvcnQgdHlwZSB7IFJlcG9ydGluZ0NvbXBvbmVudE1ldGEgfSBmcm9tICcuL2NvbXBvbmVudC1yZWdpc3RyeSc7XG5leHBvcnQgdHlwZSB7IENvbXBvbmVudENhdGVnb3J5IH0gZnJvbSAnLi9jb21wb25lbnQtY2F0ZWdvcnknO1xuZXhwb3J0IHR5cGUgeyBQcm9wZXJ0eURlZmluaXRpb24sIFByb3BlcnR5T3B0aW9uIH0gZnJvbSAnLi9wcm9wZXJ0eS1kZWZpbml0aW9uLm1vZGVsJztcbiJdfQ==
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Property definitions for the Designer's property editor.
3
+ *
4
+ * Each registered component provides a `propertySchema` describing
5
+ * its configurable properties. The Designer's property editor uses
6
+ * this schema to dynamically generate an editing form — the property
7
+ * editor is itself metadata-driven.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZGVmaW5pdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvcmVnaXN0cnkvcHJvcGVydHktZGVmaW5pdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQcm9wZXJ0eSBkZWZpbml0aW9ucyBmb3IgdGhlIERlc2lnbmVyJ3MgcHJvcGVydHkgZWRpdG9yLlxuICpcbiAqIEVhY2ggcmVnaXN0ZXJlZCBjb21wb25lbnQgcHJvdmlkZXMgYSBgcHJvcGVydHlTY2hlbWFgIGRlc2NyaWJpbmdcbiAqIGl0cyBjb25maWd1cmFibGUgcHJvcGVydGllcy4gVGhlIERlc2lnbmVyJ3MgcHJvcGVydHkgZWRpdG9yIHVzZXNcbiAqIHRoaXMgc2NoZW1hIHRvIGR5bmFtaWNhbGx5IGdlbmVyYXRlIGFuIGVkaXRpbmcgZm9ybSDigJQgdGhlIHByb3BlcnR5XG4gKiBlZGl0b3IgaXMgaXRzZWxmIG1ldGFkYXRhLWRyaXZlbi5cbiAqL1xuXG4vKipcbiAqIERlc2NyaWJlcyBhIHNpbmdsZSBjb25maWd1cmFibGUgcHJvcGVydHkgb2YgYSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlEZWZpbml0aW9uIHtcbiAgLyoqIFByb3BlcnR5IGtleSAobWF0Y2hlcyBhIGtleSBpbiBgUmVwb3J0Q29tcG9uZW50RGVmaW5pdGlvbi5wcm9wZXJ0aWVzYCkuICovXG4gIGtleTogc3RyaW5nO1xuXG4gIC8qKiBEaXNwbGF5IGxhYmVsIGluIHRoZSBwcm9wZXJ0eSBlZGl0b3IuICovXG4gIGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqIFByb3BlcnR5IGRhdGEgdHlwZSDigJQgZGV0ZXJtaW5lcyB3aGljaCBlZGl0b3IgY29udHJvbCBpcyByZW5kZXJlZC4gKi9cbiAgdHlwZTogJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdib29sZWFuJyB8ICdzZWxlY3QnIHwgJ2NvbG9yJyB8ICdkYXRhc291cmNlJyB8ICd2YWxpZGF0aW9uJyB8ICdqc29uJztcblxuICAvKiogRGVmYXVsdCB2YWx1ZSBmb3IgbmV3IGNvbXBvbmVudHMuICovXG4gIGRlZmF1bHRWYWx1ZT86IHVua25vd247XG5cbiAgLyoqIE9wdGlvbnMgZm9yIGBzZWxlY3RgIHR5cGUgcHJvcGVydGllcy4gKi9cbiAgb3B0aW9ucz86IFByb3BlcnR5T3B0aW9uW107XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZC4gKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuXG4gIC8qKiBHcm91cGluZyBsYWJlbCBmb3Igb3JnYW5pemluZyBwcm9wZXJ0aWVzIGluIHRoZSBlZGl0b3IuICovXG4gIGdyb3VwPzogc3RyaW5nO1xuXG4gIC8qKiBIZWxwIHRleHQgLyB0b29sdGlwIGZvciB0aGUgcHJvcGVydHkgZWRpdG9yLiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHNpbmdsZSBvcHRpb24gZm9yIHNlbGVjdC10eXBlIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlPcHRpb24ge1xuICAvKiogVmFsdWUgc3RvcmVkIGluIG1ldGFkYXRhLiAqL1xuICBrZXk6IHN0cmluZztcblxuICAvKiogRGlzcGxheSBsYWJlbCBpbiB0aGUgZWRpdG9yIGRyb3Bkb3duLiAqL1xuICBsYWJlbDogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,55 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { FormControl, FormGroup } from '@angular/forms';
3
+ import { createValidators } from '../validation/validation-factory';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * DynamicFormBuilder converts metadata definitions into Angular Reactive Form controls.
7
+ *
8
+ * Follows the official Angular Dynamic Forms pattern:
9
+ * ReportComponentDefinition[] (metadata) -> DynamicFormBuilder -> FormGroup (runtime model)
10
+ */
11
+ export class DynamicFormBuilder {
12
+ /**
13
+ * Constructs an Angular FormGroup from a list of component definitions.
14
+ *
15
+ * Only components with a valid `key` property generate form controls.
16
+ *
17
+ * @param components - Array of report component definitions.
18
+ * @param initialValues - Optional dictionary of initial control values by key.
19
+ * @returns Configured Angular FormGroup.
20
+ */
21
+ toFormGroup(components, initialValues = {}) {
22
+ const group = {};
23
+ for (const comp of components) {
24
+ if (!comp.key) {
25
+ continue;
26
+ }
27
+ const defaultValue = initialValues[comp.key] ??
28
+ comp.properties?.['defaultValue'] ??
29
+ (comp.type === 'checkbox' ? false : '');
30
+ const isDisabled = comp.enabled === false;
31
+ const validators = createValidators(comp.validation);
32
+ group[comp.key] = new FormControl({
33
+ value: defaultValue,
34
+ disabled: isDisabled,
35
+ }, { validators });
36
+ }
37
+ return new FormGroup(group);
38
+ }
39
+ /**
40
+ * Extracts raw values from a FormGroup, including disabled controls.
41
+ *
42
+ * @param form - The FormGroup to extract from.
43
+ * @returns Key-value dictionary of all control values.
44
+ */
45
+ extractValues(form) {
46
+ return form.getRawValue();
47
+ }
48
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFormBuilder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
49
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFormBuilder, providedIn: 'root' });
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DynamicFormBuilder, decorators: [{
52
+ type: Injectable,
53
+ args: [{ providedIn: 'root' }]
54
+ }] });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWJ1aWxkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvc2VydmljZXMvZHluYW1pYy1mb3JtLWJ1aWxkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRXBFOzs7OztHQUtHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUM3Qjs7Ozs7Ozs7T0FRRztJQUNILFdBQVcsQ0FDVCxVQUF1QyxFQUN2QyxnQkFBeUMsRUFBRTtRQUUzQyxNQUFNLEtBQUssR0FBZ0MsRUFBRSxDQUFDO1FBRTlDLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDZCxTQUFTO1lBQ1gsQ0FBQztZQUVELE1BQU0sWUFBWSxHQUNoQixhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDakMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUUxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQztZQUUxQyxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFckQsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FDL0I7Z0JBQ0UsS0FBSyxFQUFFLFlBQVk7Z0JBQ25CLFFBQVEsRUFBRSxVQUFVO2FBQ3JCLEVBQ0QsRUFBRSxVQUFVLEVBQUUsQ0FDZixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLElBQWU7UUFDM0IsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUIsQ0FBQzt3R0FsRFUsa0JBQWtCOzRHQUFsQixrQkFBa0IsY0FETCxNQUFNOzs0RkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZXBvcnRDb21wb25lbnREZWZpbml0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3JlcG9ydC1jb21wb25lbnQubW9kZWwnO1xuaW1wb3J0IHsgY3JlYXRlVmFsaWRhdG9ycyB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1mYWN0b3J5JztcblxuLyoqXG4gKiBEeW5hbWljRm9ybUJ1aWxkZXIgY29udmVydHMgbWV0YWRhdGEgZGVmaW5pdGlvbnMgaW50byBBbmd1bGFyIFJlYWN0aXZlIEZvcm0gY29udHJvbHMuXG4gKlxuICogRm9sbG93cyB0aGUgb2ZmaWNpYWwgQW5ndWxhciBEeW5hbWljIEZvcm1zIHBhdHRlcm46XG4gKiBSZXBvcnRDb21wb25lbnREZWZpbml0aW9uW10gKG1ldGFkYXRhKSAtPiBEeW5hbWljRm9ybUJ1aWxkZXIgLT4gRm9ybUdyb3VwIChydW50aW1lIG1vZGVsKVxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtQnVpbGRlciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGFuIEFuZ3VsYXIgRm9ybUdyb3VwIGZyb20gYSBsaXN0IG9mIGNvbXBvbmVudCBkZWZpbml0aW9ucy5cbiAgICpcbiAgICogT25seSBjb21wb25lbnRzIHdpdGggYSB2YWxpZCBga2V5YCBwcm9wZXJ0eSBnZW5lcmF0ZSBmb3JtIGNvbnRyb2xzLlxuICAgKlxuICAgKiBAcGFyYW0gY29tcG9uZW50cyAtIEFycmF5IG9mIHJlcG9ydCBjb21wb25lbnQgZGVmaW5pdGlvbnMuXG4gICAqIEBwYXJhbSBpbml0aWFsVmFsdWVzIC0gT3B0aW9uYWwgZGljdGlvbmFyeSBvZiBpbml0aWFsIGNvbnRyb2wgdmFsdWVzIGJ5IGtleS5cbiAgICogQHJldHVybnMgQ29uZmlndXJlZCBBbmd1bGFyIEZvcm1Hcm91cC5cbiAgICovXG4gIHRvRm9ybUdyb3VwKFxuICAgIGNvbXBvbmVudHM6IFJlcG9ydENvbXBvbmVudERlZmluaXRpb25bXSxcbiAgICBpbml0aWFsVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9XG4gICk6IEZvcm1Hcm91cCB7XG4gICAgY29uc3QgZ3JvdXA6IFJlY29yZDxzdHJpbmcsIEZvcm1Db250cm9sPiA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBjb21wIG9mIGNvbXBvbmVudHMpIHtcbiAgICAgIGlmICghY29tcC5rZXkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9XG4gICAgICAgIGluaXRpYWxWYWx1ZXNbY29tcC5rZXldID8/XG4gICAgICAgIGNvbXAucHJvcGVydGllcz8uWydkZWZhdWx0VmFsdWUnXSA/P1xuICAgICAgICAoY29tcC50eXBlID09PSAnY2hlY2tib3gnID8gZmFsc2UgOiAnJyk7XG5cbiAgICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBjb21wLmVuYWJsZWQgPT09IGZhbHNlO1xuXG4gICAgICBjb25zdCB2YWxpZGF0b3JzID0gY3JlYXRlVmFsaWRhdG9ycyhjb21wLnZhbGlkYXRpb24pO1xuXG4gICAgICBncm91cFtjb21wLmtleV0gPSBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogZGVmYXVsdFZhbHVlLFxuICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkLFxuICAgICAgICB9LFxuICAgICAgICB7IHZhbGlkYXRvcnMgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEZvcm1Hcm91cChncm91cCk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgcmF3IHZhbHVlcyBmcm9tIGEgRm9ybUdyb3VwLCBpbmNsdWRpbmcgZGlzYWJsZWQgY29udHJvbHMuXG4gICAqXG4gICAqIEBwYXJhbSBmb3JtIC0gVGhlIEZvcm1Hcm91cCB0byBleHRyYWN0IGZyb20uXG4gICAqIEByZXR1cm5zIEtleS12YWx1ZSBkaWN0aW9uYXJ5IG9mIGFsbCBjb250cm9sIHZhbHVlcy5cbiAgICovXG4gIGV4dHJhY3RWYWx1ZXMoZm9ybTogRm9ybUdyb3VwKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiBmb3JtLmdldFJhd1ZhbHVlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export { DynamicFormBuilder } from './dynamic-form-builder.service';
2
+ export { ReportSessionContextService } from './report-session-context.service';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRHluYW1pY0Zvcm1CdWlsZGVyIH0gZnJvbSAnLi9keW5hbWljLWZvcm0tYnVpbGRlci5zZXJ2aWNlJztcbmV4cG9ydCB7IFJlcG9ydFNlc3Npb25Db250ZXh0U2VydmljZSB9IGZyb20gJy4vcmVwb3J0LXNlc3Npb24tY29udGV4dC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgU2Vzc2lvblBhcmFtTWF0Y2gsXG4gIERlcml2ZWRQYXJhbWV0ZXJzUmVzdWx0LFxufSBmcm9tICcuL3JlcG9ydC1zZXNzaW9uLWNvbnRleHQuc2VydmljZSc7XG5cbiJdfQ==