@openmrs/esm-report-builder 0.1.1-pre.101

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 (670) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.js +19 -0
  3. package/.prettierrc +8 -0
  4. package/.tx/config +12 -0
  5. package/LICENSE +401 -0
  6. package/README.md +336 -0
  7. package/__mocks__/react-i18next.js +12 -0
  8. package/dist/128.css +1 -0
  9. package/dist/128.css.map +1 -0
  10. package/dist/128.js +338 -0
  11. package/dist/128.js.map +1 -0
  12. package/dist/1480.js +1 -0
  13. package/dist/1480.js.map +1 -0
  14. package/dist/1646.js +1 -0
  15. package/dist/1646.js.map +1 -0
  16. package/dist/1869.js +1 -0
  17. package/dist/1869.js.map +1 -0
  18. package/dist/1877.js +1 -0
  19. package/dist/1877.js.map +1 -0
  20. package/dist/2131.js +1 -0
  21. package/dist/2131.js.map +1 -0
  22. package/dist/2317.js +1 -0
  23. package/dist/2317.js.map +1 -0
  24. package/dist/2408.js +1 -0
  25. package/dist/2408.js.map +1 -0
  26. package/dist/2416.js +1 -0
  27. package/dist/2416.js.map +1 -0
  28. package/dist/282.js +1 -0
  29. package/dist/282.js.map +1 -0
  30. package/dist/2881.js +1 -0
  31. package/dist/2881.js.map +1 -0
  32. package/dist/2997.js +1 -0
  33. package/dist/2997.js.map +1 -0
  34. package/dist/3378.js +1 -0
  35. package/dist/3378.js.map +1 -0
  36. package/dist/3963.js +1 -0
  37. package/dist/3963.js.map +1 -0
  38. package/dist/4106.js +1 -0
  39. package/dist/4106.js.map +1 -0
  40. package/dist/4111.js +1 -0
  41. package/dist/4111.js.map +1 -0
  42. package/dist/4171.css +1 -0
  43. package/dist/4171.css.map +1 -0
  44. package/dist/4171.js +43 -0
  45. package/dist/4171.js.map +1 -0
  46. package/dist/434.js +1 -0
  47. package/dist/434.js.map +1 -0
  48. package/dist/4348.js +1 -0
  49. package/dist/4348.js.map +1 -0
  50. package/dist/4383.js +1 -0
  51. package/dist/4383.js.map +1 -0
  52. package/dist/4658.js +1 -0
  53. package/dist/4658.js.map +1 -0
  54. package/dist/4668.js +1 -0
  55. package/dist/4668.js.map +1 -0
  56. package/dist/4928.js +1 -0
  57. package/dist/4928.js.map +1 -0
  58. package/dist/5098.js +1 -0
  59. package/dist/5098.js.map +1 -0
  60. package/dist/5117.js +1 -0
  61. package/dist/5117.js.map +1 -0
  62. package/dist/5132.js +1 -0
  63. package/dist/5132.js.map +1 -0
  64. package/dist/5145.js +1 -0
  65. package/dist/5145.js.map +1 -0
  66. package/dist/550.js +1 -0
  67. package/dist/550.js.map +1 -0
  68. package/dist/5503.js +1 -0
  69. package/dist/5503.js.map +1 -0
  70. package/dist/556.js +1 -0
  71. package/dist/556.js.map +1 -0
  72. package/dist/5644.js +1 -0
  73. package/dist/5644.js.map +1 -0
  74. package/dist/5940.js +1 -0
  75. package/dist/5940.js.map +1 -0
  76. package/dist/6047.js +1 -0
  77. package/dist/6047.js.map +1 -0
  78. package/dist/6237.js +1 -0
  79. package/dist/6237.js.map +1 -0
  80. package/dist/6371.js +1 -0
  81. package/dist/6371.js.map +1 -0
  82. package/dist/6377.js +1 -0
  83. package/dist/6377.js.map +1 -0
  84. package/dist/6444.js +1 -0
  85. package/dist/6444.js.map +1 -0
  86. package/dist/6508.js +1 -0
  87. package/dist/6508.js.map +1 -0
  88. package/dist/6652.js +1 -0
  89. package/dist/6652.js.map +1 -0
  90. package/dist/6686.js +1 -0
  91. package/dist/6686.js.map +1 -0
  92. package/dist/6724.js +1 -0
  93. package/dist/6724.js.map +1 -0
  94. package/dist/6867.js +19 -0
  95. package/dist/6867.js.map +1 -0
  96. package/dist/6904.js +1 -0
  97. package/dist/6904.js.map +1 -0
  98. package/dist/7045.js +1 -0
  99. package/dist/7045.js.map +1 -0
  100. package/dist/7175.js +1 -0
  101. package/dist/7175.js.map +1 -0
  102. package/dist/7182.js +1 -0
  103. package/dist/7182.js.map +1 -0
  104. package/dist/7475.js +1 -0
  105. package/dist/7475.js.map +1 -0
  106. package/dist/7742.js +1 -0
  107. package/dist/7742.js.map +1 -0
  108. package/dist/7912.js +1 -0
  109. package/dist/7912.js.map +1 -0
  110. package/dist/8251.js +1 -0
  111. package/dist/8251.js.map +1 -0
  112. package/dist/8358.js +1 -0
  113. package/dist/8358.js.map +1 -0
  114. package/dist/8359.js +1 -0
  115. package/dist/8359.js.map +1 -0
  116. package/dist/8695.js +1 -0
  117. package/dist/8695.js.map +1 -0
  118. package/dist/903.js +1 -0
  119. package/dist/903.js.map +1 -0
  120. package/dist/9072.js +1 -0
  121. package/dist/9072.js.map +1 -0
  122. package/dist/9806.js +1 -0
  123. package/dist/9806.js.map +1 -0
  124. package/dist/997.js +1 -0
  125. package/dist/997.js.map +1 -0
  126. package/dist/openmrs-esm-report-builder.js +3 -0
  127. package/dist/openmrs-esm-report-builder.js.buildmanifest.json +1433 -0
  128. package/dist/openmrs-esm-report-builder.js.map +1 -0
  129. package/dist/routes.json +1 -0
  130. package/e2e/core/env.ts +5 -0
  131. package/e2e/core/global-setup.ts +34 -0
  132. package/e2e/core/test.ts +21 -0
  133. package/e2e/pages/app-shell.page.ts +35 -0
  134. package/e2e/pages/etl-sources.page.ts +36 -0
  135. package/e2e/pages/report-sections.page.ts +21 -0
  136. package/e2e/pages/section-preview.modal.ts +29 -0
  137. package/e2e/specs/etl-sources.spec.ts +51 -0
  138. package/e2e/specs/navigation.spec.ts +13 -0
  139. package/e2e/specs/section-preview-validation.spec.ts +38 -0
  140. package/e2e/specs/section-preview.spec.ts +94 -0
  141. package/e2e/support/github/Dockerfile +32 -0
  142. package/e2e/support/github/Dockerfile.dockerignore +13 -0
  143. package/e2e/support/github/docker-compose.yml +31 -0
  144. package/e2e/support/github/run-e2e-docker-env.sh +131 -0
  145. package/e2e/support/github/spa-assemble-config.json +6 -0
  146. package/e2e/tsconfig.json +11 -0
  147. package/example.env +5 -0
  148. package/linelist_report_builder_design_spec.md +816 -0
  149. package/package.json +98 -0
  150. package/playwright.config.ts +28 -0
  151. package/rspack.config.js +2 -0
  152. package/src/__debug__/all-designs.test.tsx +33 -0
  153. package/src/admin-card-link.extension.module.scss +55 -0
  154. package/src/admin-card-link.extension.tsx +24 -0
  155. package/src/components/admin/admin-page.component.tsx +75 -0
  156. package/src/components/admin/age-categories-page.component.tsx +109 -0
  157. package/src/components/admin/age-groups-page.component.tsx +146 -0
  158. package/src/components/admin/etl-browser/columns-tab.component.tsx +80 -0
  159. package/src/components/admin/etl-browser/etl-browser-page.component.tsx +309 -0
  160. package/src/components/admin/etl-browser/etl-browser.component.scss +424 -0
  161. package/src/components/admin/etl-browser/metadata-tab.component.tsx +65 -0
  162. package/src/components/admin/etl-browser/preview-grid.component.tsx +189 -0
  163. package/src/components/admin/etl-browser/relationships-tab.component.tsx +21 -0
  164. package/src/components/admin/etl-browser/sources-tree.component.tsx +118 -0
  165. package/src/components/admin/etl-browser/table-detail.component.tsx +124 -0
  166. package/src/components/admin/etl-browser/table-info-strip.component.tsx +51 -0
  167. package/src/components/admin/etl-browser/table-list.component.tsx +136 -0
  168. package/src/components/admin/etl-browser/use-table-preview.ts +47 -0
  169. package/src/components/admin/etl-sources-page.component.tsx +355 -0
  170. package/src/components/admin/etl-tasks-page.component.scss +370 -0
  171. package/src/components/admin/etl-tasks-page.component.tsx +768 -0
  172. package/src/components/admin/report-categories-page.component.tsx +267 -0
  173. package/src/components/admin/report-library-page.component.tsx +551 -0
  174. package/src/components/ai-support/ai-assist-button.component.tsx +30 -0
  175. package/src/components/ai-support/ai-assist-modal.component.tsx +81 -0
  176. package/src/components/ai-support/ai.service.ts +21 -0
  177. package/src/components/ai-support/ai.types.ts +12 -0
  178. package/src/components/app-shell/report-builder-shell.component.tsx +242 -0
  179. package/src/components/app-shell/report-builder-shell.scss +18 -0
  180. package/src/components/dashboards/dashboard-config.schema.ts +97 -0
  181. package/src/components/dashboards/dashboard-form-modal.component.tsx +150 -0
  182. package/src/components/dashboards/dashboards-admin.scss +62 -0
  183. package/src/components/dashboards/dashboards-page.component.tsx +153 -0
  184. package/src/components/dashboards/dashboards-table.component.tsx +130 -0
  185. package/src/components/dashboards/sections/dashboard-autoinclude.section.tsx +75 -0
  186. package/src/components/dashboards/sections/dashboard-basics.section.tsx +80 -0
  187. package/src/components/dashboards/sections/dashboard-json.section.tsx +79 -0
  188. package/src/components/dashboards/sections/dashboard-sections-editor.section.tsx +130 -0
  189. package/src/components/dashboards/sections/dashboard-widgets-editor.section.tsx +184 -0
  190. package/src/components/data-themes/data-theme-form.component.tsx +59 -0
  191. package/src/components/data-themes/data-theme-modal.component.tsx +349 -0
  192. package/src/components/data-themes/data-themes-page.component.tsx +139 -0
  193. package/src/components/data-themes/data-themes-table.component.tsx +98 -0
  194. package/src/components/data-themes/icon-registry.ts +35 -0
  195. package/src/components/data-themes/sections/data-theme-basics.section.tsx +63 -0
  196. package/src/components/data-themes/sections/data-theme-condition-columns.section.tsx +397 -0
  197. package/src/components/data-themes/sections/data-theme-fields-editor.section.tsx +125 -0
  198. package/src/components/data-themes/sections/data-theme-metadata.section.tsx +245 -0
  199. package/src/components/data-themes/sections/data-theme-preview.section.tsx +115 -0
  200. package/src/components/data-themes/sections/data-theme-source.section.tsx +184 -0
  201. package/src/components/data-visualizer/components/cqi-components/cqi-data-table.component.tsx +214 -0
  202. package/src/components/data-visualizer/components/cqi-components/cqi-elements.ts +203 -0
  203. package/src/components/data-visualizer/components/cqi-components/detail.component.tsx +110 -0
  204. package/src/components/data-visualizer/components/cqi-components/detail.scss +22 -0
  205. package/src/components/data-visualizer/components/data-table/data-table.component.tsx +208 -0
  206. package/src/components/data-visualizer/components/data-table/data-tables.scss +206 -0
  207. package/src/components/data-visualizer/components/empty-state/empty-state-illustration.component.tsx +53 -0
  208. package/src/components/data-visualizer/components/header/header.component.tsx +43 -0
  209. package/src/components/data-visualizer/components/header/header.scss +71 -0
  210. package/src/components/data-visualizer/components/model/confirm.component.tsx +40 -0
  211. package/src/components/data-visualizer/components/panel/panel.component.tsx +20 -0
  212. package/src/components/data-visualizer/components/panel/panel.scss +25 -0
  213. package/src/components/data-visualizer/components/popover/modifier-panel.tsx +53 -0
  214. package/src/components/data-visualizer/constants.ts +445 -0
  215. package/src/components/data-visualizer/data-visualizer-illustration.component.tsx +31 -0
  216. package/src/components/data-visualizer/data-visualizer.component.tsx +1935 -0
  217. package/src/components/data-visualizer/data-visualizer.resource.ts +462 -0
  218. package/src/components/data-visualizer/data-visualizer.scss +448 -0
  219. package/src/components/data-visualizer/declarations.d.ts +131 -0
  220. package/src/components/data-visualizer/parameter-inputs/boolean-parameter-input.component.tsx +34 -0
  221. package/src/components/data-visualizer/parameter-inputs/concept-parameter-input.component.tsx +81 -0
  222. package/src/components/data-visualizer/parameter-inputs/date-parameter-input.component.tsx +110 -0
  223. package/src/components/data-visualizer/parameter-inputs/date-range-input.component.scss +47 -0
  224. package/src/components/data-visualizer/parameter-inputs/date-range-input.component.tsx +228 -0
  225. package/src/components/data-visualizer/parameter-inputs/identifier-type-parameter-input.component.tsx +69 -0
  226. package/src/components/data-visualizer/parameter-inputs/list-parameter-input.component.tsx +73 -0
  227. package/src/components/data-visualizer/parameter-inputs/location-parameter-input.component.tsx +81 -0
  228. package/src/components/data-visualizer/parameter-inputs/number-parameter-input.component.tsx +40 -0
  229. package/src/components/data-visualizer/parameter-inputs/person-attribute-parameter-input.component.tsx +71 -0
  230. package/src/components/data-visualizer/parameter-inputs/text-parameter-input.component.tsx +52 -0
  231. package/src/components/data-visualizer/report-parameter-modal.component.tsx +383 -0
  232. package/src/components/data-visualizer/types.ts +206 -0
  233. package/src/components/etl-monitor/builder/builder-state-machine.ts +381 -0
  234. package/src/components/etl-monitor/builder/design-registry.tsx +139 -0
  235. package/src/components/etl-monitor/builder/etl-monitor-builder-context.tsx +702 -0
  236. package/src/components/etl-monitor/builder/etl-monitor-builder-modal.component.tsx +461 -0
  237. package/src/components/etl-monitor/builder/etl-monitor-builder-modal.scss +256 -0
  238. package/src/components/etl-monitor/builder/etl-monitor-builder-page.component.tsx +387 -0
  239. package/src/components/etl-monitor/builder/etl-monitor-builder-page.scss +976 -0
  240. package/src/components/etl-monitor/builder/generated-config-panel.component.tsx +168 -0
  241. package/src/components/etl-monitor/builder/generated-config-panel.scss +198 -0
  242. package/src/components/etl-monitor/builder/index.ts +5 -0
  243. package/src/components/etl-monitor/builder/monitor-preview.tsx +124 -0
  244. package/src/components/etl-monitor/builder/steps/data-source-step.component.tsx +667 -0
  245. package/src/components/etl-monitor/builder/steps/data-source-step.scss +284 -0
  246. package/src/components/etl-monitor/builder/steps/design-samples.ts +278 -0
  247. package/src/components/etl-monitor/builder/steps/design-step.component.tsx +299 -0
  248. package/src/components/etl-monitor/builder/steps/design-step.scss +479 -0
  249. package/src/components/etl-monitor/builder/steps/fields-step.component.tsx +859 -0
  250. package/src/components/etl-monitor/builder/steps/fields-step.scss +459 -0
  251. package/src/components/etl-monitor/builder/steps/general-step.component.tsx +288 -0
  252. package/src/components/etl-monitor/builder/steps/general-step.scss +103 -0
  253. package/src/components/etl-monitor/builder/steps/index.ts +5 -0
  254. package/src/components/etl-monitor/builder/steps/preview-step.component.tsx +245 -0
  255. package/src/components/etl-monitor/builder/steps/preview-step.scss +236 -0
  256. package/src/components/etl-monitor/etl-monitor-card-shell.component.tsx +154 -0
  257. package/src/components/etl-monitor/etl-monitor-card-shell.scss +103 -0
  258. package/src/components/etl-monitor/etl-monitor-dashboard.component.tsx +227 -0
  259. package/src/components/etl-monitor/etl-monitor-dashboard.scss +148 -0
  260. package/src/components/etl-monitor/etl-monitor-status-card.component.tsx +192 -0
  261. package/src/components/etl-monitor/etl-monitors-page.component.tsx +621 -0
  262. package/src/components/etl-monitor/renderers/DetailsRenderer.tsx +2 -0
  263. package/src/components/etl-monitor/renderers/ErrorLogRenderer.tsx +2 -0
  264. package/src/components/etl-monitor/renderers/EtlMonitorWidget.tsx +97 -0
  265. package/src/components/etl-monitor/renderers/MetricsGridRenderer.tsx +2 -0
  266. package/src/components/etl-monitor/renderers/MonitorRenderer.tsx +175 -0
  267. package/src/components/etl-monitor/renderers/ProgressRenderer.tsx +2 -0
  268. package/src/components/etl-monitor/renderers/StatusCardRenderer.tsx +2 -0
  269. package/src/components/etl-monitor/renderers/SummaryCardRenderer.tsx +2 -0
  270. package/src/components/etl-monitor/renderers/TableRenderer.tsx +2 -0
  271. package/src/components/etl-monitor/renderers/component-icons.tsx +33 -0
  272. package/src/components/etl-monitor/renderers/components/details-renderer.tsx +195 -0
  273. package/src/components/etl-monitor/renderers/components/error-log-renderer.tsx +104 -0
  274. package/src/components/etl-monitor/renderers/components/index.ts +6 -0
  275. package/src/components/etl-monitor/renderers/components/log-renderer.tsx +86 -0
  276. package/src/components/etl-monitor/renderers/components/metrics-grid-renderer.tsx +133 -0
  277. package/src/components/etl-monitor/renderers/components/progress-renderer.tsx +188 -0
  278. package/src/components/etl-monitor/renderers/components/status-card-renderer.tsx +247 -0
  279. package/src/components/etl-monitor/renderers/components/summary-card-renderer.tsx +160 -0
  280. package/src/components/etl-monitor/renderers/components/table-renderer.tsx +175 -0
  281. package/src/components/etl-monitor/renderers/components/time-series-renderer.tsx +310 -0
  282. package/src/components/etl-monitor/renderers/data-transformer.ts +361 -0
  283. package/src/components/etl-monitor/renderers/index.ts +11 -0
  284. package/src/components/etl-monitor/renderers/legacy-monitor-renderer.tsx +69 -0
  285. package/src/components/etl-monitor/renderers/monitor-renderer.tsx +6 -0
  286. package/src/components/etl-monitor/renderers/monitor-renderers.scss +1621 -0
  287. package/src/components/etl-monitor/renderers/monitor-widget-card.component.tsx +54 -0
  288. package/src/components/etl-monitor/renderers/monitor-widget-card.scss +16 -0
  289. package/src/components/etl-monitor/renderers/v2-monitor-renderer.tsx +227 -0
  290. package/src/components/import-export/artifact-groups.ts +153 -0
  291. package/src/components/import-export/export-report-modal.component.tsx +265 -0
  292. package/src/components/import-export/import-export-page.component.tsx +610 -0
  293. package/src/components/import-export/import-export.styles.scss +825 -0
  294. package/src/components/import-export/import-package-modal.component.tsx +401 -0
  295. package/src/components/import-export/index.ts +3 -0
  296. package/src/components/indicators/README.md +24 -0
  297. package/src/components/indicators/base-indicator-basic-fields.component.tsx +18 -0
  298. package/src/components/indicators/base-indicator-basics.section.tsx +54 -0
  299. package/src/components/indicators/base-indicator-countby.section.tsx +25 -0
  300. package/src/components/indicators/base-indicator-criteria.section.tsx +83 -0
  301. package/src/components/indicators/base-indicator-details-form.component.tsx +80 -0
  302. package/src/components/indicators/base-indicator-theme-unit-fields.component.tsx +39 -0
  303. package/src/components/indicators/create-base-indicator-modal.component.tsx +623 -0
  304. package/src/components/indicators/create-composite-base-indicator-modal.component.tsx +295 -0
  305. package/src/components/indicators/create-custom-indicator-modal.component.tsx +548 -0
  306. package/src/components/indicators/create-final-indicator-modal.component.tsx +285 -0
  307. package/src/components/indicators/custom-condition-input.component.tsx +310 -0
  308. package/src/components/indicators/diagnosis-filters-form.component.tsx +101 -0
  309. package/src/components/indicators/disaggregation-panel.component.tsx +93 -0
  310. package/src/components/indicators/handler/concept-search-multiselect.component.tsx +153 -0
  311. package/src/components/indicators/handler/question-answer-concept-search.component.tsx +336 -0
  312. package/src/components/indicators/indicator-run-preview-modal.component.tsx +391 -0
  313. package/src/components/indicators/indicator-search-select.component.tsx +297 -0
  314. package/src/components/indicators/indicator-status-tag.component.tsx +9 -0
  315. package/src/components/indicators/indicators-page.component.tsx +673 -0
  316. package/src/components/indicators/indicators-page.scss +121 -0
  317. package/src/components/indicators/indicators-table.component.tsx +188 -0
  318. package/src/components/indicators/preview-table.component.tsx +31 -0
  319. package/src/components/indicators/sections/composite-indicator-basics.section.tsx +36 -0
  320. package/src/components/indicators/sections/composite-indicator-picker.section.tsx +116 -0
  321. package/src/components/indicators/sections/composite-indicator-sql-preview.section.tsx +31 -0
  322. package/src/components/indicators/sections/custom-indicator-basics.section.tsx +65 -0
  323. package/src/components/indicators/sections/custom-indicator-disaggregation.section.tsx +93 -0
  324. package/src/components/indicators/sections/custom-indicator-filters.section.tsx +203 -0
  325. package/src/components/indicators/sections/custom-indicator-population.section.tsx +107 -0
  326. package/src/components/indicators/sections/custom-indicator-sql-preview.section.tsx +108 -0
  327. package/src/components/indicators/sections/final-indicator-basics.section.tsx +46 -0
  328. package/src/components/indicators/sections/final-indicator-disaggregation.section.tsx +47 -0
  329. package/src/components/indicators/sections/final-indicator-picker.section.tsx +60 -0
  330. package/src/components/indicators/sections/final-indicator-preview.section.tsx +20 -0
  331. package/src/components/indicators/sections/final-indicator-results-preview.section.tsx +65 -0
  332. package/src/components/indicators/sections/indicator-basics.section.tsx +40 -0
  333. package/src/components/indicators/sections/indicator-conditions.section.tsx +279 -0
  334. package/src/components/indicators/sections/indicator-sql-preview.section.tsx +63 -0
  335. package/src/components/indicators/sections/indicator-theme.section.tsx +48 -0
  336. package/src/components/indicators/sql-preview.component.tsx +19 -0
  337. package/src/components/indicators/tag-input.component.tsx +177 -0
  338. package/src/components/indicators/types/base-indicator-form.types.ts +17 -0
  339. package/src/components/indicators/types/base-indicator-theme.constants.ts +8 -0
  340. package/src/components/indicators/types/composite-indicator.types.ts +27 -0
  341. package/src/components/indicators/types/condition-ui.types.ts +11 -0
  342. package/src/components/indicators/types/custom-indicator.types.ts +161 -0
  343. package/src/components/indicators/types/data-theme-config.types.ts +88 -0
  344. package/src/components/indicators/types/indicator-types.ts +57 -0
  345. package/src/components/indicators/types/sql-builders.ts +43 -0
  346. package/src/components/indicators/utils/composite-indicator-sql.utils.test.ts +143 -0
  347. package/src/components/indicators/utils/composite-indicator-sql.utils.ts +426 -0
  348. package/src/components/indicators/utils/concept-preload.utils.ts +21 -0
  349. package/src/components/indicators/utils/custom-indicator-interpreter.test.ts +493 -0
  350. package/src/components/indicators/utils/custom-indicator-interpreter.ts +702 -0
  351. package/src/components/indicators/utils/final-indicator-sql.utils.ts +190 -0
  352. package/src/components/indicators/utils/indicator-conditions-hydration.utils.ts +254 -0
  353. package/src/components/indicators/utils/indicator-sql-resolution.utils.ts +204 -0
  354. package/src/components/indicators/utils/indicator-sql.utils.ts +721 -0
  355. package/src/components/indicators/utils/population-sql.compiler.test.ts +985 -0
  356. package/src/components/indicators/utils/population-sql.compiler.ts +858 -0
  357. package/src/components/landing/landing-action-item.component.tsx +50 -0
  358. package/src/components/landing/landing-action-list.component.tsx +12 -0
  359. package/src/components/landing/landing-activity-list.component.tsx +47 -0
  360. package/src/components/landing/landing-footer-grid.component.tsx +45 -0
  361. package/src/components/landing/landing-hero.component.tsx +18 -0
  362. package/src/components/landing/landing-section-card.component.tsx +33 -0
  363. package/src/components/landing/report-builder-landing-page.component.tsx +186 -0
  364. package/src/components/landing/report-builder-landing-page.scss +131 -0
  365. package/src/components/legacy-reports/legacy-report-detail-page.component.tsx +300 -0
  366. package/src/components/legacy-reports/legacy-report-editor-page.component.tsx +324 -0
  367. package/src/components/legacy-reports/legacy-report-upload-modal.component.tsx +307 -0
  368. package/src/components/legacy-reports/legacy-reports-page.component.tsx +206 -0
  369. package/src/components/legacy-reports/legacy-reports-table.component.tsx +154 -0
  370. package/src/components/legacy-reports/tabs/legacy-report-datasets-tab.component.tsx +344 -0
  371. package/src/components/legacy-reports/tabs/legacy-report-dimensions-tab.component.tsx +590 -0
  372. package/src/components/legacy-reports/tabs/legacy-report-indicators-tab.component.tsx +490 -0
  373. package/src/components/legacy-reports/tabs/legacy-report-json-preview-tab.component.tsx +272 -0
  374. package/src/components/legacy-reports/tabs/legacy-report-overview-tab.component.tsx +218 -0
  375. package/src/components/legacy-reports/tabs/legacy-report-parameters-tab.component.tsx +279 -0
  376. package/src/components/linelist/definition/indicator-to-sql.utils.ts +281 -0
  377. package/src/components/linelist/definition/linelist-definition-editor.component.tsx +1676 -0
  378. package/src/components/linelist/definition/linelist-definition-editor.scss +461 -0
  379. package/src/components/linelist/definition/linelist-definition.types.ts +108 -0
  380. package/src/components/linelist/definition/panels/column-properties-panel.component.tsx +328 -0
  381. package/src/components/linelist/definition/panels/column-selector-panel.component.tsx +1082 -0
  382. package/src/components/linelist/definition/panels/column-selector-panel.scss +100 -0
  383. package/src/components/linelist/definition/panels/custom-sql-column-modal.component.tsx +248 -0
  384. package/src/components/linelist/definition/panels/encounter-diagnosis-column-modal.component.tsx +300 -0
  385. package/src/components/linelist/definition/panels/encounter-diagnosis-column-modal.scss +21 -0
  386. package/src/components/linelist/definition/panels/multi-datasource-selector.component.tsx +332 -0
  387. package/src/components/linelist/definition/panels/multi-datasource-selector.scss +161 -0
  388. package/src/components/linelist/definition/panels/observation-column-modal.component.tsx +450 -0
  389. package/src/components/linelist/definition/panels/observation-column-modal.scss +29 -0
  390. package/src/components/linelist/definition/panels/parameter-panel.component.tsx +659 -0
  391. package/src/components/linelist/definition/panels/parameter-panel.scss +64 -0
  392. package/src/components/linelist/definition/panels/population-source-selector.component.tsx +407 -0
  393. package/src/components/linelist/definition/panels/population-source-selector.scss +187 -0
  394. package/src/components/linelist/design/panels/column-category-selector.component.tsx +433 -0
  395. package/src/components/linelist/design/panels/column-category-selector.scss +324 -0
  396. package/src/components/linelist/design/panels/column-debug-panel.component.tsx +197 -0
  397. package/src/components/linelist/design/panels/column-debug-panel.scss +141 -0
  398. package/src/components/linelist/design/panels/data-catalogue.component.tsx +1062 -0
  399. package/src/components/linelist/design/panels/data-catalogue.scss +263 -0
  400. package/src/components/linelist/design/panels/display-settings-panel.component.tsx +405 -0
  401. package/src/components/linelist/design/panels/display-settings-panel.scss +78 -0
  402. package/src/components/linelist/design/panels/filtermap-editor.component.tsx +434 -0
  403. package/src/components/linelist/design/panels/filtermap-editor.scss +176 -0
  404. package/src/components/linelist/design/panels/json-preview.component.tsx +114 -0
  405. package/src/components/linelist/design/panels/json-preview.scss +85 -0
  406. package/src/components/linelist/design/panels/query-config-panel.component.tsx +1137 -0
  407. package/src/components/linelist/design/panels/query-config-panel.scss +341 -0
  408. package/src/components/linelist/design/panels/sort-config-panel.component.tsx +330 -0
  409. package/src/components/linelist/design/panels/sort-config-panel.scss +77 -0
  410. package/src/components/linelist/design/panels/sql-builder-panel.component.tsx +475 -0
  411. package/src/components/linelist/design/panels/sql-builder-panel.scss +226 -0
  412. package/src/components/linelist/design/panels/transformation-panel.component.tsx +687 -0
  413. package/src/components/linelist/design/panels/transformation-panel.scss +81 -0
  414. package/src/components/linelist/design/panels/visual-filter-panel.component.tsx +595 -0
  415. package/src/components/linelist/design/panels/visual-filter-panel.scss +76 -0
  416. package/src/components/linelist/linelist-dashboard.page.component.tsx +756 -0
  417. package/src/components/linelist/linelist-dashboard.page.scss +240 -0
  418. package/src/components/linelist/linelist-editor.page.component.tsx +134 -0
  419. package/src/components/linelist/linelist-editor.page.scss +28 -0
  420. package/src/components/linelist/linelist-run-report.page.component.tsx +715 -0
  421. package/src/components/linelist/linelist-run-report.page.scss +136 -0
  422. package/src/components/linelist/modals/linelist-report-builder-modal.component.tsx +1454 -0
  423. package/src/components/linelist/modals/linelist-report-builder-modal.scss +164 -0
  424. package/src/components/linelist/modals/preview-parameter-modal.component.tsx +361 -0
  425. package/src/components/report/dashboard/reports-table.component.tsx +186 -0
  426. package/src/components/report/definition/panels/properties-panel.component.tsx +38 -0
  427. package/src/components/report/definition/panels/report-structure-panel.component.tsx +61 -0
  428. package/src/components/report/definition/panels/selection-panel.component.tsx +58 -0
  429. package/src/components/report/definition/report-definition-editor.component.tsx +99 -0
  430. package/src/components/report/definition/report-definition.types.ts +66 -0
  431. package/src/components/report/design/panels/IndicatorPropertiesPanel.scss +33 -0
  432. package/src/components/report/design/panels/IndicatorPropertiesPanel.tsx +389 -0
  433. package/src/components/report/design/panels/JsonPreviewPanel.scss +32 -0
  434. package/src/components/report/design/panels/JsonPreviewPanel.tsx +104 -0
  435. package/src/components/report/design/panels/mapping-preview-panel.component.tsx +82 -0
  436. package/src/components/report/design/panels/mapping-preview-panel.scss +55 -0
  437. package/src/components/report/design/panels/template-structure-panel.component.tsx +296 -0
  438. package/src/components/report/design/panels/template-structure-panel.scss +81 -0
  439. package/src/components/report/design/report-design-editor.component.tsx +1170 -0
  440. package/src/components/report/design/report-design.types.ts +48 -0
  441. package/src/components/report/design/report-design.utils.ts +86 -0
  442. package/src/components/report/panels/report-detail.component.tsx +71 -0
  443. package/src/components/report/panels/report-panel-shell.component.tsx +60 -0
  444. package/src/components/report/report-dashboard.page.component.tsx +554 -0
  445. package/src/components/report/report-editor.page.component.tsx +590 -0
  446. package/src/components/report/report.routes.tsx +32 -0
  447. package/src/components/report-sections/create-report-section-modal.component.tsx +388 -0
  448. package/src/components/report-sections/hooks/useAgeCategories.ts +25 -0
  449. package/src/components/report-sections/hooks/useSectionEditorState.ts +449 -0
  450. package/src/components/report-sections/panels/Dhis2MappingPanel.tsx +157 -0
  451. package/src/components/report-sections/panels/DisaggregationPanel.tsx +97 -0
  452. package/src/components/report-sections/panels/IndicatorPickerPanel.tsx +201 -0
  453. package/src/components/report-sections/panels/SectionBasicsPanel.tsx +27 -0
  454. package/src/components/report-sections/report-section-preview-modal.component.tsx +548 -0
  455. package/src/components/report-sections/report-sections-page.component.tsx +325 -0
  456. package/src/components/report-sections/section-disaggregation.utils.ts +637 -0
  457. package/src/components/report-sections/section-types.ts +55 -0
  458. package/src/components/report-sections/section-utils.ts +50 -0
  459. package/src/components/report-sections/sections-page.scss +79 -0
  460. package/src/components/run-reports/run-reports-page.component.tsx +8 -0
  461. package/src/components/security/access-denied-page.component.tsx +64 -0
  462. package/src/components/security/access-denied-page.scss +39 -0
  463. package/src/components/security/privilege-route.component.test.tsx +76 -0
  464. package/src/components/security/privilege-route.component.tsx +39 -0
  465. package/src/components/shared/compile-setup-modal.component.tsx +182 -0
  466. package/src/components/shared/concept-selector.component.tsx +245 -0
  467. package/src/components/shared/concept-selector.scss +121 -0
  468. package/src/components/shared/header/builder-header-actions.component.tsx +38 -0
  469. package/src/components/shared/header/header.component.tsx +85 -0
  470. package/src/components/shared/header/header.scss +151 -0
  471. package/src/components/shared/header/illustration.component.tsx +34 -0
  472. package/src/components/shared/indicator-properties-panel/IndicatorPropertiesPanel.scss +33 -0
  473. package/src/components/shared/indicator-properties-panel/IndicatorPropertiesPanel.tsx +389 -0
  474. package/src/components/shared/json-preview-panel/JsonPreviewPanel.scss +32 -0
  475. package/src/components/shared/json-preview-panel/JsonPreviewPanel.tsx +104 -0
  476. package/src/components/shared/mapping-preview-panel/mapping-preview-panel.component.tsx +82 -0
  477. package/src/components/shared/mapping-preview-panel/mapping-preview-panel.scss +55 -0
  478. package/src/components/shared/preview/query-results-preview.component.tsx +204 -0
  479. package/src/components/shared/template-structure-panel/template-structure-panel.component.tsx +296 -0
  480. package/src/components/shared/template-structure-panel/template-structure-panel.scss +81 -0
  481. package/src/config-schema.ts +43 -0
  482. package/src/constants/privileges.test.ts +54 -0
  483. package/src/constants/privileges.ts +118 -0
  484. package/src/features/dashboards/DashboardRendererPage.tsx +174 -0
  485. package/src/features/dashboards/DashboardsPage.tsx +164 -0
  486. package/src/features/dashboards/EtlDashboardPage.tsx +32 -0
  487. package/src/features/dashboards/components/DashboardEmptyState.tsx +41 -0
  488. package/src/features/dashboards/components/DashboardGrid.tsx +48 -0
  489. package/src/features/dashboards/components/DashboardHeader.tsx +58 -0
  490. package/src/features/dashboards/components/DashboardSection.tsx +46 -0
  491. package/src/features/dashboards/components/ReportLaunchCard.tsx +51 -0
  492. package/src/features/dashboards/components/WidgetSlotDispatcher.tsx +61 -0
  493. package/src/features/dashboards/components/WidgetUnavailableCard.tsx +36 -0
  494. package/src/features/dashboards/dashboards.scss +196 -0
  495. package/src/features/dashboards/hooks/useDashboard.ts +61 -0
  496. package/src/features/dashboards/hooks/useDashboardWidgets.ts +74 -0
  497. package/src/features/dashboards/hooks/useDashboards.ts +56 -0
  498. package/src/features/dashboards/hooks/useMonitorDataMap.ts +84 -0
  499. package/src/features/dashboards/index.ts +11 -0
  500. package/src/features/dashboards/utils/dashboard-config.util.test.ts +286 -0
  501. package/src/features/dashboards/utils/dashboard-config.util.ts +382 -0
  502. package/src/features/report-visualizer/ReportVisualizerPage.tsx +448 -0
  503. package/src/features/report-visualizer/components/Export/ExportMenu.tsx +141 -0
  504. package/src/features/report-visualizer/components/Export/index.ts +2 -0
  505. package/src/features/report-visualizer/components/ReportExplorer/QuickFilters.tsx +152 -0
  506. package/src/features/report-visualizer/components/ReportExplorer/ReportCategoryFilter.tsx +54 -0
  507. package/src/features/report-visualizer/components/ReportExplorer/ReportExplorerPanel.tsx +201 -0
  508. package/src/features/report-visualizer/components/ReportExplorer/ReportExplorerRail.tsx +202 -0
  509. package/src/features/report-visualizer/components/ReportExplorer/ReportList.tsx +287 -0
  510. package/src/features/report-visualizer/components/ReportExplorer/ReportSearch.tsx +151 -0
  511. package/src/features/report-visualizer/components/ReportExplorer/ReportTagFilter.tsx +100 -0
  512. package/src/features/report-visualizer/components/ReportExplorer/RunReportButton.tsx +42 -0
  513. package/src/features/report-visualizer/components/ReportExplorer/RuntimeParameterForm.tsx +259 -0
  514. package/src/features/report-visualizer/components/ReportExplorer/index.ts +8 -0
  515. package/src/features/report-visualizer/components/ReportWorkspace/ReportLayer.tsx +33 -0
  516. package/src/features/report-visualizer/components/ReportWorkspace/ReportSummary.tsx +88 -0
  517. package/src/features/report-visualizer/components/ReportWorkspace/ReportViewTabs.tsx +72 -0
  518. package/src/features/report-visualizer/components/ReportWorkspace/ReportWorkspaceHeader.tsx +92 -0
  519. package/src/features/report-visualizer/components/ReportWorkspace/ReportWorkspacePanel.tsx +242 -0
  520. package/src/features/report-visualizer/components/ReportWorkspace/index.ts +5 -0
  521. package/src/features/report-visualizer/components/TableView/ColumnVisibilityMenu.tsx +206 -0
  522. package/src/features/report-visualizer/components/TableView/ReportTable.tsx +253 -0
  523. package/src/features/report-visualizer/components/TableView/index.ts +2 -0
  524. package/src/features/report-visualizer/hooks/index.ts +4 -0
  525. package/src/features/report-visualizer/hooks/useExplorerPreferences.ts +103 -0
  526. package/src/features/report-visualizer/hooks/useReportCapabilities.ts +112 -0
  527. package/src/features/report-visualizer/hooks/useReportParameters.ts +152 -0
  528. package/src/features/report-visualizer/hooks/useReports.ts +135 -0
  529. package/src/features/report-visualizer/index.ts +6 -0
  530. package/src/features/report-visualizer/report-visualizer.scss +593 -0
  531. package/src/features/report-visualizer/types/index.ts +1 -0
  532. package/src/features/report-visualizer/types/report-visualizer.types.ts +104 -0
  533. package/src/features/report-visualizer/utils/status-colors.ts +117 -0
  534. package/src/globals.d.ts +9 -0
  535. package/src/hooks/address-template.ts +86 -0
  536. package/src/hooks/concept.ts +112 -0
  537. package/src/hooks/indicator/index.ts +1 -0
  538. package/src/hooks/indicator/useIndicatorsByTheme.ts +41 -0
  539. package/src/hooks/openmrs-reference-data.ts +432 -0
  540. package/src/hooks/theme/index.ts +4 -0
  541. package/src/hooks/theme/useDataTheme.ts +61 -0
  542. package/src/hooks/theme/useDataThemes.ts +28 -0
  543. package/src/hooks/theme/useMambaTableMeta.ts +34 -0
  544. package/src/hooks/theme/useMambaTables.ts +95 -0
  545. package/src/hooks/use-report-builder-privileges.test.tsx +92 -0
  546. package/src/hooks/use-report-builder-privileges.ts +58 -0
  547. package/src/index.ts +29 -0
  548. package/src/resources/address-template/address-template.api.ts +180 -0
  549. package/src/resources/agegroup/agegroups.api.ts +58 -0
  550. package/src/resources/concept/concept.api.ts +116 -0
  551. package/src/resources/concepts/concept-mapper.ts +21 -0
  552. package/src/resources/concepts/concept-types.ts +31 -0
  553. package/src/resources/concepts/concepts.resource.ts +44 -0
  554. package/src/resources/concepts/useConceptSearch.ts +41 -0
  555. package/src/resources/dashboard/dashboard.api.ts +107 -0
  556. package/src/resources/etl-monitor/etl-monitor-test.api.ts +409 -0
  557. package/src/resources/etl-monitor/etl-monitor.api.ts +381 -0
  558. package/src/resources/etl-source/etl-source.api.ts +65 -0
  559. package/src/resources/etl-task/etl-task.api.ts +96 -0
  560. package/src/resources/etl-task/etl-task.types.ts +31 -0
  561. package/src/resources/indicator/indicators.api.ts +125 -0
  562. package/src/resources/legacy-reports/legacy-reports.api.ts +144 -0
  563. package/src/resources/linelist/linelist-reports.api.ts +616 -0
  564. package/src/resources/location/location.api.ts +135 -0
  565. package/src/resources/openmrs-api.ts +40 -0
  566. package/src/resources/patient-identifier-type/patient-identifier-type.api.ts +65 -0
  567. package/src/resources/person-attribute-type/person-attribute-type.api.ts +71 -0
  568. package/src/resources/preview/sql-preview.api.ts +54 -0
  569. package/src/resources/report/reports.api.ts +140 -0
  570. package/src/resources/report-category/report-category.api.ts +41 -0
  571. package/src/resources/report-import-export/import-export-api.ts +164 -0
  572. package/src/resources/report-library/report-library.api.ts +63 -0
  573. package/src/resources/report-section/report-sections.api.ts +73 -0
  574. package/src/resources/report-section/section-preview.api.ts +25 -0
  575. package/src/resources/theme/data-theme.api.ts +88 -0
  576. package/src/resources/theme/etl-schema.api.ts +101 -0
  577. package/src/resources/theme/etl-table-meta.api.ts +45 -0
  578. package/src/root.component.tsx +20 -0
  579. package/src/routes/report-builder.routes.tsx +160 -0
  580. package/src/routes/report-builder.scss +56 -0
  581. package/src/routes.json +31 -0
  582. package/src/sample-template.ts +121 -0
  583. package/src/template-utils.ts +110 -0
  584. package/src/types/carbon-react-inert.d.ts +13 -0
  585. package/src/types/condition-operators.ts +63 -0
  586. package/src/types/dashboard/dashboard.types.ts +137 -0
  587. package/src/types/dashboard/index.ts +4 -0
  588. package/src/types/etl/etl-types.ts +238 -0
  589. package/src/types/etl-monitor/etl-monitor-builder.types.ts +555 -0
  590. package/src/types/etl-monitor/etl-monitor-v2.types.ts +397 -0
  591. package/src/types/etl-monitor/etl-monitor.types.ts +188 -0
  592. package/src/types/etl-monitor/index.ts +6 -0
  593. package/src/types/linelist/compile-config.ts +455 -0
  594. package/src/types/linelist-types.ts +2059 -0
  595. package/src/types/theme/data-theme.types.ts +88 -0
  596. package/src/utils/api-error.utils.test.ts +147 -0
  597. package/src/utils/api-error.utils.ts +131 -0
  598. package/src/utils/config-enhancer.ts +62 -0
  599. package/src/utils/etl-browser/etl-browser.util.test.ts +151 -0
  600. package/src/utils/etl-browser/export-csv.util.ts +43 -0
  601. package/src/utils/etl-browser/group-tables.util.ts +84 -0
  602. package/src/utils/etl-browser/index.ts +4 -0
  603. package/src/utils/etl-browser/summarize-columns.util.ts +27 -0
  604. package/src/utils/etl-browser/table-sql.util.ts +20 -0
  605. package/src/utils/etl-monitor/config-v2-adapter.util.ts +460 -0
  606. package/src/utils/etl-monitor/endpoint-config-normalizer.util.ts +383 -0
  607. package/src/utils/etl-monitor/index.ts +10 -0
  608. package/src/utils/etl-monitor/jsonpath-resolver.util.ts +118 -0
  609. package/src/utils/etl-monitor/normalization-examples.ts +0 -0
  610. package/src/utils/etl-monitor/schema-inspector.util.ts +76 -0
  611. package/src/utils/etl-monitor/semantic-type-detector.util.ts +76 -0
  612. package/src/utils/etl-monitor/status-mapper.util.ts +105 -0
  613. package/src/utils/etl-monitor/value-formatters.util.ts +167 -0
  614. package/src/utils/etl-task/etl-task-card.util.test.ts +240 -0
  615. package/src/utils/etl-task/etl-task-card.util.ts +276 -0
  616. package/src/utils/etl-task/index.ts +1 -0
  617. package/src/utils/html-entities.utils.ts +34 -0
  618. package/src/utils/parameter-resolution.ts +218 -0
  619. package/src/views/etl-monitor-builder/add-monitor-modal.component.scss +0 -0
  620. package/src/views/etl-monitor-builder/add-monitor-modal.component.tsx +210 -0
  621. package/src/views/etl-monitor-builder/etl-monitor-builder.component.scss +157 -0
  622. package/src/views/etl-monitor-builder/etl-monitor-builder.component.tsx +252 -0
  623. package/src/views/etl-monitor-builder/etl-monitor-builder.store.ts +126 -0
  624. package/tools/i18next-parser.config.js +0 -0
  625. package/tools/setup-tests.ts +1 -0
  626. package/tools/update-openmrs-deps.mjs +42 -0
  627. package/translations/am.json +65 -0
  628. package/translations/ar.json +65 -0
  629. package/translations/ar_SY.json +65 -0
  630. package/translations/bn.json +65 -0
  631. package/translations/cs.json +65 -0
  632. package/translations/de.json +65 -0
  633. package/translations/en.json +65 -0
  634. package/translations/en_US.json +65 -0
  635. package/translations/es.json +65 -0
  636. package/translations/es_MX.json +65 -0
  637. package/translations/fr.json +65 -0
  638. package/translations/he.json +65 -0
  639. package/translations/hi.json +65 -0
  640. package/translations/hi_IN.json +65 -0
  641. package/translations/id.json +65 -0
  642. package/translations/it.json +65 -0
  643. package/translations/ka.json +65 -0
  644. package/translations/km.json +65 -0
  645. package/translations/ku.json +65 -0
  646. package/translations/ky.json +65 -0
  647. package/translations/lg.json +65 -0
  648. package/translations/ne.json +65 -0
  649. package/translations/pl.json +65 -0
  650. package/translations/pt.json +65 -0
  651. package/translations/pt_BR.json +65 -0
  652. package/translations/qu.json +65 -0
  653. package/translations/ro_RO.json +65 -0
  654. package/translations/ru_RU.json +65 -0
  655. package/translations/si.json +65 -0
  656. package/translations/sq.json +65 -0
  657. package/translations/sw.json +65 -0
  658. package/translations/sw_KE.json +65 -0
  659. package/translations/tr.json +65 -0
  660. package/translations/tr_TR.json +65 -0
  661. package/translations/uk.json +65 -0
  662. package/translations/uz.json +65 -0
  663. package/translations/uz@Latn.json +65 -0
  664. package/translations/uz_UZ.json +65 -0
  665. package/translations/vi.json +65 -0
  666. package/translations/zh.json +65 -0
  667. package/translations/zh_CN.json +65 -0
  668. package/translations/zh_TW.json +65 -0
  669. package/tsconfig.json +24 -0
  670. package/vitest.config.mts +42 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openmrs-esm-report-builder.js","sources":["webpack://@openmrs/esm-report-builder/webpack/runtime/jsonp_chunk_loading","webpack://@openmrs/esm-report-builder/webpack/runtime/embed_federation_runtime","webpack://@openmrs/esm-report-builder/==void 0","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/runtime/dist/_virtual/_rolldown/runtime.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/runtime/dist/helpers.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/runtime/dist/index.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/runtime/dist/utils.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/_virtual/_rolldown/runtime.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/attachShareScopeMap.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/constant.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/consumes.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/error-codes/dist/error-codes.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/error-codes/dist/getShortErrorMsg.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/getSharedFallbackGetter.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/getUsedExports.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/index.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/init.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/initContainerEntry.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/initializeSharing.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/installInitialConsumes.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/remotes.cjs","webpack://@openmrs/esm-report-builder/./node_modules/@module-federation/webpack-bundler-runtime/dist/updateOptions.cjs","webpack://@openmrs/esm-report-builder/module_federation/runtime","webpack://@openmrs/esm-report-builder/webpack/runtime/compat_get_default_export","webpack://@openmrs/esm-report-builder/webpack/runtime/define_property_getters","webpack://@openmrs/esm-report-builder/webpack/runtime/ensure_chunk","webpack://@openmrs/esm-report-builder/webpack/runtime/get javascript chunk filename","webpack://@openmrs/esm-report-builder/webpack/runtime/get mini-css chunk filename","webpack://@openmrs/esm-report-builder/webpack/runtime/global","webpack://@openmrs/esm-report-builder/webpack/runtime/has_own_property","webpack://@openmrs/esm-report-builder/webpack/runtime/load_script","webpack://@openmrs/esm-report-builder/webpack/runtime/make_namespace_object","webpack://@openmrs/esm-report-builder/webpack/runtime/rspack_version","webpack://@openmrs/esm-report-builder/webpack/runtime/sharing","webpack://@openmrs/esm-report-builder/webpack/runtime/auto_public_path","webpack://@openmrs/esm-report-builder/webpack/runtime/css loading","webpack://@openmrs/esm-report-builder/webpack/runtime/consumes_loading","webpack://@openmrs/esm-report-builder/webpack/runtime/initialize_exposes","webpack://@openmrs/esm-report-builder/webpack/runtime/rspack_unique_id"],"names":["_ref","_ref1","_ref2","_ref3","_ref4","__webpack_require___remotesLoadingData","__webpack_require___remotesLoadingData1","__webpack_require___initializeSharingData","__webpack_require___consumesLoadingData","__webpack_require___consumesLoadingData1","__webpack_require___initializeExposesData","__webpack_require___consumesLoadingData2","__module_federation_runtime_plugins__","plugin","params","__module_federation_remote_infos__","__webpack_require__","override","obj","key","value","merge","fn","Array","_","_obj","_1","_obj1","Object","early","initial","remotesLoadingChunkMapping","remotesLoadingModuleIdToRemoteDataMapping","initializeSharingScopeToInitDataMapping","consumesLoadingChunkMapping","consumesLoadingModuleToConsumeDataMapping","consumesLoadinginstalledModules","initializeSharingInitPromises","initializeSharingInitTokens","containerShareScope","__module_federation_bundler_runtime__","consumesLoadingModuleToHandlerMapping","moduleId","data","shared","scope","stages","stage","name","version","factory","eager","singleton","requiredVersion","strictVersion","shareConfig","isValidValue","val","options","remote","remotesLoadingIdToExternalAndNameMappingMapping","idToRemoteMap","id","remoteData","info","chunkId","promises","initScope","shareScope","remoteEntryInitOptions","module1","getScope","moduleMap","Promise","Error","undefined","Symbol","r","Date","e","JSON","b","l","h","s","i","p","console","u","globalThis","Function","window","document","clearTimeout","setTimeout"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"reportbuilder":"*"},"pages":[{"component":"root","route":"report-builder","online":true,"offline":false,"order":1}],"extensions":[{"name":"system-administration-report-builder-card-link","slot":"system-admin-page-card-link-slot","component":"reportBuilderAdminLink","online":true,"offline":false,"privileges":"Task: reportbuilder.report.view"},{"component":"confirmModal","name":"confirm-modal","online":true,"offline":true}],"version":"0.1.1-pre.101"}
@@ -0,0 +1,5 @@
1
+ export const e2eBaseUrl = (process.env.E2E_BASE_URL || 'http://localhost:8080/openmrs').replace(/\/$/, '');
2
+ export const playwrightBaseUrl = process.env.PLAYWRIGHT_BASE_URL || `${e2eBaseUrl}/spa/report-builder`;
3
+ export const username = process.env.E2E_USERNAME || 'admin';
4
+ export const password = process.env.E2E_PASSWORD || 'Admin123';
5
+ export const loginLocation = process.env.E2E_LOGIN_LOCATION || '8d6c993e-c2cc-11de-8d13-0010c6dffd0f';
@@ -0,0 +1,34 @@
1
+ import { request, type FullConfig } from '@playwright/test';
2
+ import fs from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { e2eBaseUrl, loginLocation, password, username } from './env';
5
+
6
+ async function globalSetup(config: FullConfig) {
7
+ const storageStatePath = config.projects[0]?.use?.storageState as string | undefined;
8
+ if (!storageStatePath) return;
9
+
10
+ const requestContext = await request.newContext({ baseURL: e2eBaseUrl });
11
+
12
+ const authHeader = `Basic ${Buffer.from(`${username}:${password}`).toString('base64')}`;
13
+ const response = await requestContext.post(`${e2eBaseUrl}/ws/rest/v1/session`, {
14
+ headers: {
15
+ Authorization: authHeader,
16
+ 'Content-Type': 'application/json',
17
+ },
18
+ data: {
19
+ sessionLocation: loginLocation,
20
+ },
21
+ failOnStatusCode: false,
22
+ });
23
+
24
+ if (!response.ok()) {
25
+ throw new Error(`E2E authentication failed with status ${response.status()}. Check E2E_* variables and backend availability.`);
26
+ }
27
+
28
+ const state = await requestContext.storageState();
29
+ await fs.mkdir(path.dirname(storageStatePath), { recursive: true });
30
+ await fs.writeFile(storageStatePath, JSON.stringify(state, null, 2));
31
+ await requestContext.dispose();
32
+ }
33
+
34
+ export default globalSetup;
@@ -0,0 +1,21 @@
1
+ import { test as base, expect } from '@playwright/test';
2
+ import { AppShellPage } from '../pages/app-shell.page';
3
+ import { ETLSourcesPage } from '../pages/etl-sources.page';
4
+ import { ReportSectionsPage } from '../pages/report-sections.page';
5
+ import { SectionPreviewModal } from '../pages/section-preview.modal';
6
+
7
+ type Fixtures = {
8
+ appShell: AppShellPage;
9
+ etlSourcesPage: ETLSourcesPage;
10
+ reportSectionsPage: ReportSectionsPage;
11
+ sectionPreviewModal: SectionPreviewModal;
12
+ };
13
+
14
+ export const test = base.extend<Fixtures>({
15
+ appShell: async ({ page }, use) => use(new AppShellPage(page)),
16
+ etlSourcesPage: async ({ page }, use) => use(new ETLSourcesPage(page)),
17
+ reportSectionsPage: async ({ page }, use) => use(new ReportSectionsPage(page)),
18
+ sectionPreviewModal: async ({ page }, use) => use(new SectionPreviewModal(page)),
19
+ });
20
+
21
+ export { expect };
@@ -0,0 +1,35 @@
1
+ import type { Page } from '@playwright/test';
2
+ import { playwrightBaseUrl } from '../core/env';
3
+
4
+ export class AppShellPage {
5
+ constructor(private readonly page: Page) {}
6
+
7
+ async goto(path = '/') {
8
+ await this.page.goto(`${playwrightBaseUrl}${path}`);
9
+ }
10
+
11
+ async openHome() {
12
+ await this.page.getByRole('link', { name: 'Home' }).click();
13
+ }
14
+
15
+ async openReports() {
16
+ await this.page.getByRole('link', { name: 'Reports' }).click();
17
+ }
18
+
19
+ async openSections() {
20
+ await this.page.getByRole('link', { name: 'Sections' }).click();
21
+ }
22
+
23
+ async openIndicators() {
24
+ await this.page.getByRole('link', { name: 'Indicators' }).click();
25
+ }
26
+
27
+ async openAdminMenu() {
28
+ await this.page.getByText('Admin', { exact: true }).click();
29
+ }
30
+
31
+ async openAdminTile(name: string) {
32
+ await this.openAdminMenu();
33
+ await this.page.getByText(name, { exact: true }).click();
34
+ }
35
+ }
@@ -0,0 +1,36 @@
1
+ import type { Page } from '@playwright/test';
2
+ import { expect } from '@playwright/test';
3
+ import { playwrightBaseUrl } from '../core/env';
4
+
5
+ export class ETLSourcesPage {
6
+ constructor(private readonly page: Page) {}
7
+
8
+ async goto() {
9
+ await this.page.goto(`${playwrightBaseUrl}/admin/etl-sources`);
10
+ }
11
+
12
+ async expectLoaded() {
13
+ await expect(this.page.getByRole('heading', { name: 'ETL Sources', exact: true })).toBeVisible();
14
+ }
15
+
16
+ async clickNew() {
17
+ await this.page.getByTestId('etl-source-new').click();
18
+ }
19
+
20
+ async fillForm(data: { name: string; code?: string; schemaName?: string; sourceType?: string; description?: string; tablePatterns?: string }) {
21
+ await this.page.getByTestId('etl-source-name').fill(data.name);
22
+ if (data.code !== undefined) await this.page.getByTestId('etl-source-code').fill(data.code);
23
+ if (data.schemaName !== undefined) await this.page.getByTestId('etl-source-schema').fill(data.schemaName);
24
+ if (data.sourceType !== undefined) await this.page.getByTestId('etl-source-type').fill(data.sourceType);
25
+ if (data.description !== undefined) await this.page.getByTestId('etl-source-description').fill(data.description);
26
+ if (data.tablePatterns !== undefined) await this.page.getByTestId('etl-source-table-patterns').fill(data.tablePatterns);
27
+ }
28
+
29
+ async save() {
30
+ await this.page.getByRole('button', { name: 'Save' }).click();
31
+ }
32
+
33
+ row(name: string) {
34
+ return this.page.getByRole('row').filter({ hasText: name });
35
+ }
36
+ }
@@ -0,0 +1,21 @@
1
+ import type { Page } from '@playwright/test';
2
+ import { expect } from '@playwright/test';
3
+ import { playwrightBaseUrl } from '../core/env';
4
+
5
+ export class ReportSectionsPage {
6
+ constructor(private readonly page: Page) {}
7
+
8
+ async goto() {
9
+ await this.page.goto(`${playwrightBaseUrl}/sections`);
10
+ }
11
+
12
+ async expectLoaded() {
13
+ await expect(this.page.getByRole('heading', { name: 'Sections', exact: true })).toBeVisible();
14
+ }
15
+
16
+ async openPreviewFor(sectionName: string) {
17
+ const row = this.page.getByTestId(`section-row-${sectionName.replace(/\s+/g, '-')}`);
18
+ await row.getByRole('button').click();
19
+ await this.page.getByText('Preview', { exact: true }).click();
20
+ }
21
+ }
@@ -0,0 +1,29 @@
1
+ import type { Page } from '@playwright/test';
2
+ import { expect } from '@playwright/test';
3
+
4
+ export class SectionPreviewModal {
5
+ constructor(private readonly page: Page) {}
6
+
7
+ async expectOpen() {
8
+ await expect(this.page.getByRole('dialog')).toBeVisible();
9
+ }
10
+
11
+ async fillPreviewRequest(data: { startDate: string; endDate: string; indicatorUuid?: string; maxRows?: number }) {
12
+ await this.page.getByTestId('section-preview-startdate').fill(data.startDate);
13
+ await this.page.getByTestId('section-preview-enddate').fill(data.endDate);
14
+ if (data.indicatorUuid !== undefined) await this.page.getByTestId('section-preview-indicatoruuid').fill(data.indicatorUuid);
15
+ if (data.maxRows !== undefined) await this.page.getByTestId('section-preview-maxrows').fill(String(data.maxRows));
16
+ }
17
+
18
+ async run() {
19
+ await this.page.getByTestId('section-preview-run').click();
20
+ }
21
+
22
+ async expectMatrixVisible() {
23
+ await expect(this.page.getByTestId('section-preview-matrix')).toBeVisible();
24
+ }
25
+
26
+ async expectError(message: string) {
27
+ await expect(this.page.getByText(message)).toBeVisible();
28
+ }
29
+ }
@@ -0,0 +1,51 @@
1
+ import { test, expect } from '../core/test';
2
+
3
+ test.describe('ETL Sources', () => {
4
+ test('creates an ETL source and sends the expected payload', async ({ page, etlSourcesPage }) => {
5
+ await page.route('**/ws/rest/v1/reportbuilder/etlsource**', async (route) => {
6
+ const request = route.request();
7
+
8
+ if (request.method() === 'GET') {
9
+ await route.fulfill({
10
+ status: 200,
11
+ contentType: 'application/json',
12
+ body: JSON.stringify({ results: [] }),
13
+ });
14
+ return;
15
+ }
16
+
17
+ if (request.method() === 'POST') {
18
+ const body = request.postDataJSON();
19
+ expect(body).toMatchObject({
20
+ name: 'E2E Source',
21
+ code: 'E2E_SRC',
22
+ schemaName: 'reporting',
23
+ sourceType: 'mysql',
24
+ active: true,
25
+ });
26
+
27
+ await route.fulfill({
28
+ status: 201,
29
+ contentType: 'application/json',
30
+ body: JSON.stringify({ uuid: 'etl-1', ...body }),
31
+ });
32
+ return;
33
+ }
34
+
35
+ await route.continue();
36
+ });
37
+
38
+ await etlSourcesPage.goto();
39
+ await etlSourcesPage.expectLoaded();
40
+ await etlSourcesPage.clickNew();
41
+ await etlSourcesPage.fillForm({
42
+ name: 'E2E Source',
43
+ code: 'E2E_SRC',
44
+ schemaName: 'reporting',
45
+ sourceType: 'mysql',
46
+ description: 'Created from Playwright',
47
+ tablePatterns: 'encounter_%',
48
+ });
49
+ await etlSourcesPage.save();
50
+ });
51
+ });
@@ -0,0 +1,13 @@
1
+ import { test } from '../core/test';
2
+
3
+ test.describe('report builder navigation', () => {
4
+ test('loads the sections page', async ({ reportSectionsPage }) => {
5
+ await reportSectionsPage.goto();
6
+ await reportSectionsPage.expectLoaded();
7
+ });
8
+
9
+ test('loads the ETL Sources page', async ({ etlSourcesPage }) => {
10
+ await etlSourcesPage.goto();
11
+ await etlSourcesPage.expectLoaded();
12
+ });
13
+ });
@@ -0,0 +1,38 @@
1
+ import { test } from '../core/test';
2
+
3
+ const sectionUuid = '4278ebf9-47ab-40b8-aeca-df3e4a050c79';
4
+
5
+ test.describe('section preview validation', () => {
6
+ test('shows a validation error when dates are missing', async ({ page, reportSectionsPage, sectionPreviewModal }) => {
7
+ await page.route('**/ws/rest/v1/reportbuilder/section?**', async (route) => {
8
+ await route.fulfill({
9
+ status: 200,
10
+ contentType: 'application/json',
11
+ body: JSON.stringify({ results: [{ uuid: sectionUuid, name: 'Monthly HTS Summary', configJson: '{}' }] }),
12
+ });
13
+ });
14
+
15
+ await page.route(`**/ws/rest/v1/reportbuilder/section/${sectionUuid}**`, async (route) => {
16
+ await route.fulfill({
17
+ status: 200,
18
+ contentType: 'application/json',
19
+ body: JSON.stringify({ uuid: sectionUuid, name: 'Monthly HTS Summary', configJson: '{}' }),
20
+ });
21
+ });
22
+
23
+ await page.route('**/ws/rest/v1/reportbuilder/indicator**', async (route) => {
24
+ await route.fulfill({
25
+ status: 200,
26
+ contentType: 'application/json',
27
+ body: JSON.stringify({ results: [] }),
28
+ });
29
+ });
30
+
31
+ await reportSectionsPage.goto();
32
+ await reportSectionsPage.expectLoaded();
33
+ await reportSectionsPage.openPreviewFor('Monthly HTS Summary');
34
+ await sectionPreviewModal.expectOpen();
35
+ await sectionPreviewModal.run();
36
+ await sectionPreviewModal.expectError('Start date and End date are required.');
37
+ });
38
+ });
@@ -0,0 +1,94 @@
1
+ import { test, expect } from '../core/test';
2
+
3
+ const sectionUuid = '4278ebf9-47ab-40b8-aeca-df3e4a050c79';
4
+ const indicatorUuid = '2b9c6c8e-1234-4d9f-8abc-1234567890ab';
5
+
6
+ test.describe('section preview', () => {
7
+ test('submits preview payload and renders the matrix', async ({ page, reportSectionsPage, sectionPreviewModal }) => {
8
+ await page.route('**/ws/rest/v1/reportbuilder/section?**', async (route) => {
9
+ await route.fulfill({
10
+ status: 200,
11
+ contentType: 'application/json',
12
+ body: JSON.stringify({
13
+ results: [
14
+ {
15
+ uuid: sectionUuid,
16
+ name: 'Monthly HTS Summary',
17
+ code: 'HTS_MONTHLY',
18
+ configJson: JSON.stringify({ indicators: [{ uuid: indicatorUuid }] }),
19
+ },
20
+ ],
21
+ }),
22
+ });
23
+ });
24
+
25
+ await page.route(`**/ws/rest/v1/reportbuilder/section/${sectionUuid}**`, async (route) => {
26
+ await route.fulfill({
27
+ status: 200,
28
+ contentType: 'application/json',
29
+ body: JSON.stringify({
30
+ uuid: sectionUuid,
31
+ name: 'Monthly HTS Summary',
32
+ code: 'HTS_MONTHLY',
33
+ configJson: JSON.stringify({ indicators: [{ uuid: indicatorUuid }] }),
34
+ }),
35
+ });
36
+ });
37
+
38
+ await page.route('**/ws/rest/v1/reportbuilder/indicator**', async (route) => {
39
+ await route.fulfill({
40
+ status: 200,
41
+ contentType: 'application/json',
42
+ body: JSON.stringify({ results: [] }),
43
+ });
44
+ });
45
+
46
+ await page.route('**/ws/rest/v1/reportbuilder/sectionpreview', async (route) => {
47
+ const body = route.request().postDataJSON();
48
+ expect(body).toEqual({
49
+ sectionUuid,
50
+ indicatorUuid,
51
+ startDate: '2026-01-01',
52
+ endDate: '2026-01-31',
53
+ maxRows: 100,
54
+ params: {},
55
+ });
56
+
57
+ await route.fulfill({
58
+ status: 200,
59
+ contentType: 'application/json',
60
+ body: JSON.stringify({
61
+ sectionUuid,
62
+ results: [
63
+ {
64
+ indicatorUuid,
65
+ name: 'HTS TST',
66
+ kind: 'base',
67
+ columns: ['age_group', 'gender', 'value'],
68
+ rows: [
69
+ ['0-28d', 'F', 2],
70
+ ['0-28d', 'M', 1],
71
+ ],
72
+ rowCount: 2,
73
+ truncated: false,
74
+ },
75
+ ],
76
+ }),
77
+ });
78
+ });
79
+
80
+ await reportSectionsPage.goto();
81
+ await reportSectionsPage.expectLoaded();
82
+ await reportSectionsPage.openPreviewFor('Monthly HTS Summary');
83
+ await sectionPreviewModal.expectOpen();
84
+ await sectionPreviewModal.fillPreviewRequest({
85
+ startDate: '2026-01-01',
86
+ endDate: '2026-01-31',
87
+ indicatorUuid,
88
+ maxRows: 100,
89
+ });
90
+ await sectionPreviewModal.run();
91
+ await sectionPreviewModal.expectMatrixVisible();
92
+ await expect(page.getByRole('cell', { name: 'HTS TST' })).toBeVisible();
93
+ });
94
+ });
@@ -0,0 +1,32 @@
1
+ # syntax=docker/dockerfile:1
2
+ FROM node:22-alpine AS build
3
+
4
+ WORKDIR /app
5
+
6
+ # Install dependencies first so Docker layer caching short-circuits it
7
+ COPY package.json yarn.lock .yarnrc.yml ./
8
+ COPY .yarn ./.yarn/
9
+ RUN corepack enable && yarn install --immutable
10
+
11
+ COPY . .
12
+
13
+ # Build and pack this module
14
+ RUN yarn build
15
+ RUN yarn pack -o /app/_openmrs_esm_report_builder.tgz
16
+
17
+ # Assemble the SPA from the manifest's default module set plus this module.
18
+ # Do not run `openmrs build` afterwards: rebuilding the shell here decouples it
19
+ # from the manifest-pinned modules and breaks module federation.
20
+ RUN npm_config_legacy_peer_deps=true npm install -g openmrs@next
21
+ ARG CACHE_BUST
22
+ RUN npm_config_legacy_peer_deps=true openmrs assemble --manifest --mode config --config e2e/support/github/spa-assemble-config.json --target /app/spa
23
+
24
+ FROM openmrs/openmrs-reference-application-3-frontend:nightly
25
+
26
+ # Keep the image's default index.html (the startup script patches it with
27
+ # SPA_PATH/API_URL at runtime); overlay the freshly assembled import map and
28
+ # modules after dropping the precompressed variants that would shadow them.
29
+ RUN rm -f /usr/share/nginx/html/importmap.json.br /usr/share/nginx/html/importmap.json.gz \
30
+ /usr/share/nginx/html/routes.registry.json.br /usr/share/nginx/html/routes.registry.json.gz
31
+
32
+ COPY --from=build /app/spa/ /usr/share/nginx/html/
@@ -0,0 +1,13 @@
1
+ node_modules
2
+ .git
3
+ .github
4
+ dist
5
+ docs
6
+ logs
7
+ playwright-report
8
+ test-results
9
+ e2e/storageState.json
10
+ package.tgz
11
+ *.md
12
+ *.sql
13
+ .mf
@@ -0,0 +1,31 @@
1
+ # This docker compose file is used to create a backend environment for the e2e.yml
2
+ # workflow. The images are pre-filled with data so that the backend environment can
3
+ # be started within a short time. Adapted from openmrs-esm-core for this repo.
4
+ services:
5
+ gateway:
6
+ image: openmrs/openmrs-reference-application-3-gateway:${TAG:-nightly}
7
+ hostname: gateway
8
+ depends_on:
9
+ - frontend
10
+ - backend
11
+ ports:
12
+ - "${E2E_PORT:-8080}:80"
13
+
14
+ frontend:
15
+ build:
16
+ context: .
17
+ dockerfile: e2e/support/github/Dockerfile
18
+ hostname: frontend
19
+ environment:
20
+ SPA_PATH: /openmrs/spa
21
+ API_URL: /openmrs
22
+
23
+ backend:
24
+ image: openmrs/openmrs-reference-application-3-backend:nightly-with-data
25
+ hostname: backend
26
+ depends_on:
27
+ - db
28
+
29
+ db:
30
+ image: openmrs/openmrs-reference-application-3-db:nightly-with-data
31
+ hostname: db