@epcare/esm-report-builder 0.1.1-pre.15

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 (586) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.js +19 -0
  3. package/.github/workflows/main.yml +162 -0
  4. package/.prettierrc +8 -0
  5. package/LICENSE +401 -0
  6. package/README.md +317 -0
  7. package/dist/0081d5d3d536cb23.js +1 -0
  8. package/dist/02acc4469a2fe2e4.woff2 +0 -0
  9. package/dist/081587ca0db8e63f.woff2 +0 -0
  10. package/dist/08cf53c4e5e71cf1.woff2 +0 -0
  11. package/dist/090b2bc014d24ea4.woff2 +0 -0
  12. package/dist/09de5db63ef7b579.js +1 -0
  13. package/dist/0ae92bcea615e948.woff2 +0 -0
  14. package/dist/0be8520d8945b3b7.woff2 +0 -0
  15. package/dist/0e7dd073cd8bb0ad.woff2 +0 -0
  16. package/dist/0edb77cd19e43550.js +1 -0
  17. package/dist/14869ac5d1830304.woff2 +0 -0
  18. package/dist/14aaceff85fc8b28.woff2 +0 -0
  19. package/dist/14c3abea79fc1389.js +1 -0
  20. package/dist/155a4ac079785bfd.js +1 -0
  21. package/dist/155a4ac079785bfd.js.map +1 -0
  22. package/dist/16f443eed01776ca.woff2 +0 -0
  23. package/dist/183bae0e53a22182.woff2 +0 -0
  24. package/dist/19c8f94ccd6289f5.woff2 +0 -0
  25. package/dist/1ae86565eab7451c.woff2 +0 -0
  26. package/dist/1c7bf8797e0a9be6.woff2 +0 -0
  27. package/dist/1f266d3619b30f16.woff2 +0 -0
  28. package/dist/1f8c5a4087a524fd.woff2 +0 -0
  29. package/dist/20ba2b23c5c0cd0b.woff2 +0 -0
  30. package/dist/22a32bd51591301b.js +1 -0
  31. package/dist/273c72d90e432a3d.js +1 -0
  32. package/dist/295dd01a1fbfee6d.woff2 +0 -0
  33. package/dist/29cbe6827c3f03ef.js +1 -0
  34. package/dist/2f686985e26e7107.woff2 +0 -0
  35. package/dist/315eff729e4ccbd9.woff2 +0 -0
  36. package/dist/368d16e3259bf207.woff2 +0 -0
  37. package/dist/36c49aa341a7079a.woff2 +0 -0
  38. package/dist/36e1e0430475edee.woff2 +0 -0
  39. package/dist/374c3ee36d9e040a.js +1 -0
  40. package/dist/377971e519bf3f4a.js +2 -0
  41. package/dist/377971e519bf3f4a.js.LICENSE.txt +39 -0
  42. package/dist/377971e519bf3f4a.js.map +1 -0
  43. package/dist/3b0ea8395009dcf3.js +2 -0
  44. package/dist/3b0ea8395009dcf3.js.LICENSE.txt +9 -0
  45. package/dist/3b0ea8395009dcf3.js.map +1 -0
  46. package/dist/3bc19662b8630ee9.woff2 +0 -0
  47. package/dist/3f645f473b3f8fba.woff2 +0 -0
  48. package/dist/41320d8930d23b36.js +1 -0
  49. package/dist/4218ac9901b9d36d.woff2 +0 -0
  50. package/dist/4659f3ca46d928b5.js +1 -0
  51. package/dist/4659f3ca46d928b5.js.map +1 -0
  52. package/dist/4680ba68412e4da9.woff2 +0 -0
  53. package/dist/48e37bd7ebf85a1f.woff2 +0 -0
  54. package/dist/4aabceefe5a2494a.js +1 -0
  55. package/dist/4c188cbaefba58cd.js +1 -0
  56. package/dist/4e11b8a7c445255f.woff2 +0 -0
  57. package/dist/537ddd61c5c1fce2.woff2 +0 -0
  58. package/dist/54f5eee3a7989556.js +1 -0
  59. package/dist/55c9107b50dd747c.js +1 -0
  60. package/dist/56c4118c0907f151.woff2 +0 -0
  61. package/dist/5938bc2ae7ec60c0.woff2 +0 -0
  62. package/dist/5c6586155f0d278a.woff2 +0 -0
  63. package/dist/5e50c92017029ca3.js +1 -0
  64. package/dist/5e50c92017029ca3.js.map +1 -0
  65. package/dist/600aca7295d8bcb7.js +2 -0
  66. package/dist/600aca7295d8bcb7.js.LICENSE.txt +9 -0
  67. package/dist/600aca7295d8bcb7.js.map +1 -0
  68. package/dist/60ec587649ba812a.woff2 +0 -0
  69. package/dist/64cf08a5ac3266d8.js +1 -0
  70. package/dist/652f476a8a1603d3.js +2 -0
  71. package/dist/652f476a8a1603d3.js.LICENSE.txt +9 -0
  72. package/dist/652f476a8a1603d3.js.map +1 -0
  73. package/dist/65e6511e035870e1.woff2 +0 -0
  74. package/dist/661425f6798cd16a.woff2 +0 -0
  75. package/dist/66b864fe213caf46.woff2 +0 -0
  76. package/dist/680eb791e6266590.js +2 -0
  77. package/dist/680eb791e6266590.js.LICENSE.txt +19 -0
  78. package/dist/680eb791e6266590.js.map +1 -0
  79. package/dist/69d087d970ee9455.woff2 +0 -0
  80. package/dist/69e3aa4276b4cb4b.js +1 -0
  81. package/dist/6a88f03fc4e7c3da.js +1 -0
  82. package/dist/6c6c45e66ff54281.woff2 +0 -0
  83. package/dist/6d9009857c6df878.js +1 -0
  84. package/dist/6ebe7cea59ed2853.js +1 -0
  85. package/dist/6f3181849e740935.js +1 -0
  86. package/dist/6f3181849e740935.js.map +1 -0
  87. package/dist/7073a7323e92bd11.woff2 +0 -0
  88. package/dist/70ac433ae2a89a89.js +1 -0
  89. package/dist/70ee4ee625ac0ec1.js +1 -0
  90. package/dist/718c6cc31274ab1a.woff2 +0 -0
  91. package/dist/727696c3934d0966.js +1 -0
  92. package/dist/727763c0f0df59dc.js +1 -0
  93. package/dist/727763c0f0df59dc.js.map +1 -0
  94. package/dist/72cdbedfe04be9f9.woff2 +0 -0
  95. package/dist/7509c9f56fe9e532.woff2 +0 -0
  96. package/dist/75dc5c5b04adc8bf.woff2 +0 -0
  97. package/dist/77b48bc05299ecca.woff2 +0 -0
  98. package/dist/7a0a0215c248c73d.woff2 +0 -0
  99. package/dist/7c0d0c5180de8729.js +1 -0
  100. package/dist/7f00bebb24e40167.woff2 +0 -0
  101. package/dist/802c6176541eeed7.woff2 +0 -0
  102. package/dist/8080081b3379c637.woff2 +0 -0
  103. package/dist/81cfdaeaa0bbca1f.js +1 -0
  104. package/dist/8605507b7a8487c4.woff2 +0 -0
  105. package/dist/893a160d06428365.js +1 -0
  106. package/dist/893a160d06428365.js.map +1 -0
  107. package/dist/8a83d654702f6534.woff2 +0 -0
  108. package/dist/8fe71173a13fe571.woff2 +0 -0
  109. package/dist/94aa912dcac90114.js +1 -0
  110. package/dist/9624cec0f9bdd81e.woff2 +0 -0
  111. package/dist/98a3af55a1698171.woff2 +0 -0
  112. package/dist/99823aaebba56f46.js +1 -0
  113. package/dist/9ba85996af74c5ce.woff2 +0 -0
  114. package/dist/9ddb22faa35006e7.woff2 +0 -0
  115. package/dist/a167fb2799dd741b.woff2 +0 -0
  116. package/dist/a2045a5cc4fdf94f.woff2 +0 -0
  117. package/dist/a246c73905a31c93.woff2 +0 -0
  118. package/dist/a325099b0a580ce2.js +2 -0
  119. package/dist/a325099b0a580ce2.js.LICENSE.txt +14 -0
  120. package/dist/a325099b0a580ce2.js.map +1 -0
  121. package/dist/a401aa7939cb6e6f.woff2 +0 -0
  122. package/dist/a40fef67997d3b2c.js +1 -0
  123. package/dist/a62897b000a24b86.js +1 -0
  124. package/dist/a6ed036f17a1ea29.woff2 +0 -0
  125. package/dist/a77bac4877483a0a.js +1 -0
  126. package/dist/a9f25ca430709a1a.woff2 +0 -0
  127. package/dist/aa0dfbdd569b1c24.js +2 -0
  128. package/dist/aa0dfbdd569b1c24.js.LICENSE.txt +5 -0
  129. package/dist/aa0dfbdd569b1c24.js.map +1 -0
  130. package/dist/ab0f637d6cff12e4.js +1 -0
  131. package/dist/afa9121a49e95351.woff2 +0 -0
  132. package/dist/afcda12d9f805543.woff2 +0 -0
  133. package/dist/b09ded85a7da77f1.woff2 +0 -0
  134. package/dist/b10dbe5318a91a12.js +1 -0
  135. package/dist/b2f4e9d1e821b71c.woff2 +0 -0
  136. package/dist/b4a074bf828bb757.woff2 +0 -0
  137. package/dist/b7f447da43f6e596.woff2 +0 -0
  138. package/dist/bcca84a524572d10.woff2 +0 -0
  139. package/dist/be093e052a6d50eb.js +1 -0
  140. package/dist/be4d1f97b11d087c.woff2 +0 -0
  141. package/dist/bec14780d81164de.woff2 +0 -0
  142. package/dist/c31657fe213c1b5e.js +1 -0
  143. package/dist/c49ef726d3f0420b.js +1 -0
  144. package/dist/c553f7e0199c5084.woff2 +0 -0
  145. package/dist/c94ac2fdc1ff1418.js +1 -0
  146. package/dist/c9d9ce9f465df4fe.woff2 +0 -0
  147. package/dist/cbbb57b397433964.js +2 -0
  148. package/dist/cbbb57b397433964.js.LICENSE.txt +14 -0
  149. package/dist/cbbb57b397433964.js.map +1 -0
  150. package/dist/d188f7f036ac5779.woff2 +0 -0
  151. package/dist/d1aa59bd9c702dc4.js +2 -0
  152. package/dist/d1aa59bd9c702dc4.js.LICENSE.txt +32 -0
  153. package/dist/d1aa59bd9c702dc4.js.map +1 -0
  154. package/dist/d265d81c58525ae4.woff2 +0 -0
  155. package/dist/d5942cd81663e136.woff2 +0 -0
  156. package/dist/d66b8ff73d95cabb.woff2 +0 -0
  157. package/dist/d84bac6d07672dd2.js +1 -0
  158. package/dist/d84bac6d07672dd2.js.map +1 -0
  159. package/dist/d88899ef0fd16719.woff2 +0 -0
  160. package/dist/d92b5ecf31fc187b.js +1 -0
  161. package/dist/d9a5d958e69e058d.woff2 +0 -0
  162. package/dist/dac90d495be353a0.woff2 +0 -0
  163. package/dist/db0550511978dc47.js +1 -0
  164. package/dist/dd8ce598529c3fab.woff2 +0 -0
  165. package/dist/de013f1be25103fa.woff2 +0 -0
  166. package/dist/df222fceeffca849.woff2 +0 -0
  167. package/dist/df22bda08ec7964c.js +1 -0
  168. package/dist/e05b7f902b02a251.js +1 -0
  169. package/dist/e05b7f902b02a251.js.map +1 -0
  170. package/dist/e465f1481f0d2e1c.js +1 -0
  171. package/dist/e62b00b9199c1ac9.woff2 +0 -0
  172. package/dist/e696cef1407b2610.woff2 +0 -0
  173. package/dist/eb42de5422d9af00.js +1 -0
  174. package/dist/eed48feba743e21c.woff2 +0 -0
  175. package/dist/f135ef54213f8975.js +1 -0
  176. package/dist/f260e50923d4283b.js +1 -0
  177. package/dist/f543c88feb236d11.woff2 +0 -0
  178. package/dist/f591b0079faa93fe.woff2 +0 -0
  179. package/dist/f6ed27923769ad1d.woff2 +0 -0
  180. package/dist/f8d066e92ea157c6.js +1 -0
  181. package/dist/fae042506530c1e6.js +1 -0
  182. package/dist/favicon.ico +0 -0
  183. package/dist/fbebeb4336e67012.woff2 +0 -0
  184. package/dist/fd574df77d31a5eb.js +1 -0
  185. package/dist/icon_128x128.3dde25c6e69b1c010a6a5d6b27b3f436.png +0 -0
  186. package/dist/icon_144x144.e263e02b838d229b02ff9133e6e0f2ba.png +0 -0
  187. package/dist/icon_192x192.d3d318638bbe8a10a3c687d3d302d01a.png +0 -0
  188. package/dist/icon_256x256.c729f6e7e914b58fcea5ce91d7aa9bad.png +0 -0
  189. package/dist/icon_384x384.c8923df6b6bd08eba5c79b78d7fcecc0.png +0 -0
  190. package/dist/icon_512x512.7163efb26df832de513bc58d925ea22e.png +0 -0
  191. package/dist/icon_96x96.682ee334ae19d49894217370b8596f61.png +0 -0
  192. package/dist/index.html +9 -0
  193. package/dist/logo-512.png +0 -0
  194. package/dist/logo.svg +30 -0
  195. package/dist/manifest.266df36f2271d27ae9bcaa196a2976ae.json +47 -0
  196. package/dist/openmrs.39723c21cec4b1fc.css +1 -0
  197. package/dist/openmrs.39723c21cec4b1fc.css.map +1 -0
  198. package/dist/openmrs.44bac4c8520ee42f.css +2 -0
  199. package/dist/openmrs.44bac4c8520ee42f.css.map +1 -0
  200. package/dist/openmrs.936e8cf6a4b1599d.css +2 -0
  201. package/dist/openmrs.936e8cf6a4b1599d.css.map +1 -0
  202. package/dist/openmrs.c3adea28ef850516.js +1 -0
  203. package/dist/openmrs.c3adea28ef850516.js.map +1 -0
  204. package/dist/openmrs.e4daba1e3b840e70.css +25 -0
  205. package/dist/openmrs.e4daba1e3b840e70.css.map +1 -0
  206. package/dist/service-worker.js +1 -0
  207. package/dist/service-worker.js.map +1 -0
  208. package/dist-build-23687264126/0081d5d3d536cb23.js +1 -0
  209. package/dist-build-23687264126/02acc4469a2fe2e4.woff2 +0 -0
  210. package/dist-build-23687264126/081587ca0db8e63f.woff2 +0 -0
  211. package/dist-build-23687264126/08cf53c4e5e71cf1.woff2 +0 -0
  212. package/dist-build-23687264126/090b2bc014d24ea4.woff2 +0 -0
  213. package/dist-build-23687264126/09de5db63ef7b579.js +1 -0
  214. package/dist-build-23687264126/0ae92bcea615e948.woff2 +0 -0
  215. package/dist-build-23687264126/0be8520d8945b3b7.woff2 +0 -0
  216. package/dist-build-23687264126/0e7dd073cd8bb0ad.woff2 +0 -0
  217. package/dist-build-23687264126/0edb77cd19e43550.js +1 -0
  218. package/dist-build-23687264126/14869ac5d1830304.woff2 +0 -0
  219. package/dist-build-23687264126/14aaceff85fc8b28.woff2 +0 -0
  220. package/dist-build-23687264126/14c3abea79fc1389.js +1 -0
  221. package/dist-build-23687264126/155a4ac079785bfd.js +1 -0
  222. package/dist-build-23687264126/155a4ac079785bfd.js.map +1 -0
  223. package/dist-build-23687264126/16f443eed01776ca.woff2 +0 -0
  224. package/dist-build-23687264126/183bae0e53a22182.woff2 +0 -0
  225. package/dist-build-23687264126/19c8f94ccd6289f5.woff2 +0 -0
  226. package/dist-build-23687264126/1ae86565eab7451c.woff2 +0 -0
  227. package/dist-build-23687264126/1c7bf8797e0a9be6.woff2 +0 -0
  228. package/dist-build-23687264126/1f266d3619b30f16.woff2 +0 -0
  229. package/dist-build-23687264126/1f8c5a4087a524fd.woff2 +0 -0
  230. package/dist-build-23687264126/20ba2b23c5c0cd0b.woff2 +0 -0
  231. package/dist-build-23687264126/22a32bd51591301b.js +1 -0
  232. package/dist-build-23687264126/273c72d90e432a3d.js +1 -0
  233. package/dist-build-23687264126/295dd01a1fbfee6d.woff2 +0 -0
  234. package/dist-build-23687264126/29cbe6827c3f03ef.js +1 -0
  235. package/dist-build-23687264126/2f686985e26e7107.woff2 +0 -0
  236. package/dist-build-23687264126/315eff729e4ccbd9.woff2 +0 -0
  237. package/dist-build-23687264126/368d16e3259bf207.woff2 +0 -0
  238. package/dist-build-23687264126/36c49aa341a7079a.woff2 +0 -0
  239. package/dist-build-23687264126/36e1e0430475edee.woff2 +0 -0
  240. package/dist-build-23687264126/374c3ee36d9e040a.js +1 -0
  241. package/dist-build-23687264126/377971e519bf3f4a.js +2 -0
  242. package/dist-build-23687264126/377971e519bf3f4a.js.LICENSE.txt +39 -0
  243. package/dist-build-23687264126/377971e519bf3f4a.js.map +1 -0
  244. package/dist-build-23687264126/3b0ea8395009dcf3.js +2 -0
  245. package/dist-build-23687264126/3b0ea8395009dcf3.js.LICENSE.txt +9 -0
  246. package/dist-build-23687264126/3b0ea8395009dcf3.js.map +1 -0
  247. package/dist-build-23687264126/3bc19662b8630ee9.woff2 +0 -0
  248. package/dist-build-23687264126/3f645f473b3f8fba.woff2 +0 -0
  249. package/dist-build-23687264126/41320d8930d23b36.js +1 -0
  250. package/dist-build-23687264126/4218ac9901b9d36d.woff2 +0 -0
  251. package/dist-build-23687264126/4659f3ca46d928b5.js +1 -0
  252. package/dist-build-23687264126/4659f3ca46d928b5.js.map +1 -0
  253. package/dist-build-23687264126/4680ba68412e4da9.woff2 +0 -0
  254. package/dist-build-23687264126/48e37bd7ebf85a1f.woff2 +0 -0
  255. package/dist-build-23687264126/4aabceefe5a2494a.js +1 -0
  256. package/dist-build-23687264126/4c188cbaefba58cd.js +1 -0
  257. package/dist-build-23687264126/4e11b8a7c445255f.woff2 +0 -0
  258. package/dist-build-23687264126/537ddd61c5c1fce2.woff2 +0 -0
  259. package/dist-build-23687264126/54f5eee3a7989556.js +1 -0
  260. package/dist-build-23687264126/55c9107b50dd747c.js +1 -0
  261. package/dist-build-23687264126/56c4118c0907f151.woff2 +0 -0
  262. package/dist-build-23687264126/5938bc2ae7ec60c0.woff2 +0 -0
  263. package/dist-build-23687264126/5c6586155f0d278a.woff2 +0 -0
  264. package/dist-build-23687264126/5e50c92017029ca3.js +1 -0
  265. package/dist-build-23687264126/5e50c92017029ca3.js.map +1 -0
  266. package/dist-build-23687264126/600aca7295d8bcb7.js +2 -0
  267. package/dist-build-23687264126/600aca7295d8bcb7.js.LICENSE.txt +9 -0
  268. package/dist-build-23687264126/600aca7295d8bcb7.js.map +1 -0
  269. package/dist-build-23687264126/60ec587649ba812a.woff2 +0 -0
  270. package/dist-build-23687264126/64cf08a5ac3266d8.js +1 -0
  271. package/dist-build-23687264126/652f476a8a1603d3.js +2 -0
  272. package/dist-build-23687264126/652f476a8a1603d3.js.LICENSE.txt +9 -0
  273. package/dist-build-23687264126/652f476a8a1603d3.js.map +1 -0
  274. package/dist-build-23687264126/65e6511e035870e1.woff2 +0 -0
  275. package/dist-build-23687264126/661425f6798cd16a.woff2 +0 -0
  276. package/dist-build-23687264126/66b864fe213caf46.woff2 +0 -0
  277. package/dist-build-23687264126/680eb791e6266590.js +2 -0
  278. package/dist-build-23687264126/680eb791e6266590.js.LICENSE.txt +19 -0
  279. package/dist-build-23687264126/680eb791e6266590.js.map +1 -0
  280. package/dist-build-23687264126/69d087d970ee9455.woff2 +0 -0
  281. package/dist-build-23687264126/69e3aa4276b4cb4b.js +1 -0
  282. package/dist-build-23687264126/6a88f03fc4e7c3da.js +1 -0
  283. package/dist-build-23687264126/6c6c45e66ff54281.woff2 +0 -0
  284. package/dist-build-23687264126/6d9009857c6df878.js +1 -0
  285. package/dist-build-23687264126/6ebe7cea59ed2853.js +1 -0
  286. package/dist-build-23687264126/6f3181849e740935.js +1 -0
  287. package/dist-build-23687264126/6f3181849e740935.js.map +1 -0
  288. package/dist-build-23687264126/7073a7323e92bd11.woff2 +0 -0
  289. package/dist-build-23687264126/70ac433ae2a89a89.js +1 -0
  290. package/dist-build-23687264126/70ee4ee625ac0ec1.js +1 -0
  291. package/dist-build-23687264126/718c6cc31274ab1a.woff2 +0 -0
  292. package/dist-build-23687264126/727696c3934d0966.js +1 -0
  293. package/dist-build-23687264126/727763c0f0df59dc.js +1 -0
  294. package/dist-build-23687264126/727763c0f0df59dc.js.map +1 -0
  295. package/dist-build-23687264126/72cdbedfe04be9f9.woff2 +0 -0
  296. package/dist-build-23687264126/7509c9f56fe9e532.woff2 +0 -0
  297. package/dist-build-23687264126/75dc5c5b04adc8bf.woff2 +0 -0
  298. package/dist-build-23687264126/77b48bc05299ecca.woff2 +0 -0
  299. package/dist-build-23687264126/7a0a0215c248c73d.woff2 +0 -0
  300. package/dist-build-23687264126/7c0d0c5180de8729.js +1 -0
  301. package/dist-build-23687264126/7f00bebb24e40167.woff2 +0 -0
  302. package/dist-build-23687264126/802c6176541eeed7.woff2 +0 -0
  303. package/dist-build-23687264126/8080081b3379c637.woff2 +0 -0
  304. package/dist-build-23687264126/81cfdaeaa0bbca1f.js +1 -0
  305. package/dist-build-23687264126/8605507b7a8487c4.woff2 +0 -0
  306. package/dist-build-23687264126/893a160d06428365.js +1 -0
  307. package/dist-build-23687264126/893a160d06428365.js.map +1 -0
  308. package/dist-build-23687264126/8a83d654702f6534.woff2 +0 -0
  309. package/dist-build-23687264126/8fe71173a13fe571.woff2 +0 -0
  310. package/dist-build-23687264126/94aa912dcac90114.js +1 -0
  311. package/dist-build-23687264126/9624cec0f9bdd81e.woff2 +0 -0
  312. package/dist-build-23687264126/98a3af55a1698171.woff2 +0 -0
  313. package/dist-build-23687264126/99823aaebba56f46.js +1 -0
  314. package/dist-build-23687264126/9ba85996af74c5ce.woff2 +0 -0
  315. package/dist-build-23687264126/9ddb22faa35006e7.woff2 +0 -0
  316. package/dist-build-23687264126/a167fb2799dd741b.woff2 +0 -0
  317. package/dist-build-23687264126/a2045a5cc4fdf94f.woff2 +0 -0
  318. package/dist-build-23687264126/a246c73905a31c93.woff2 +0 -0
  319. package/dist-build-23687264126/a325099b0a580ce2.js +2 -0
  320. package/dist-build-23687264126/a325099b0a580ce2.js.LICENSE.txt +14 -0
  321. package/dist-build-23687264126/a325099b0a580ce2.js.map +1 -0
  322. package/dist-build-23687264126/a401aa7939cb6e6f.woff2 +0 -0
  323. package/dist-build-23687264126/a40fef67997d3b2c.js +1 -0
  324. package/dist-build-23687264126/a62897b000a24b86.js +1 -0
  325. package/dist-build-23687264126/a6ed036f17a1ea29.woff2 +0 -0
  326. package/dist-build-23687264126/a77bac4877483a0a.js +1 -0
  327. package/dist-build-23687264126/a9f25ca430709a1a.woff2 +0 -0
  328. package/dist-build-23687264126/aa0dfbdd569b1c24.js +2 -0
  329. package/dist-build-23687264126/aa0dfbdd569b1c24.js.LICENSE.txt +5 -0
  330. package/dist-build-23687264126/aa0dfbdd569b1c24.js.map +1 -0
  331. package/dist-build-23687264126/ab0f637d6cff12e4.js +1 -0
  332. package/dist-build-23687264126/afa9121a49e95351.woff2 +0 -0
  333. package/dist-build-23687264126/afcda12d9f805543.woff2 +0 -0
  334. package/dist-build-23687264126/b09ded85a7da77f1.woff2 +0 -0
  335. package/dist-build-23687264126/b10dbe5318a91a12.js +1 -0
  336. package/dist-build-23687264126/b2f4e9d1e821b71c.woff2 +0 -0
  337. package/dist-build-23687264126/b4a074bf828bb757.woff2 +0 -0
  338. package/dist-build-23687264126/b7f447da43f6e596.woff2 +0 -0
  339. package/dist-build-23687264126/bcca84a524572d10.woff2 +0 -0
  340. package/dist-build-23687264126/be093e052a6d50eb.js +1 -0
  341. package/dist-build-23687264126/be4d1f97b11d087c.woff2 +0 -0
  342. package/dist-build-23687264126/bec14780d81164de.woff2 +0 -0
  343. package/dist-build-23687264126/c31657fe213c1b5e.js +1 -0
  344. package/dist-build-23687264126/c49ef726d3f0420b.js +1 -0
  345. package/dist-build-23687264126/c553f7e0199c5084.woff2 +0 -0
  346. package/dist-build-23687264126/c94ac2fdc1ff1418.js +1 -0
  347. package/dist-build-23687264126/c9d9ce9f465df4fe.woff2 +0 -0
  348. package/dist-build-23687264126/cbbb57b397433964.js +2 -0
  349. package/dist-build-23687264126/cbbb57b397433964.js.LICENSE.txt +14 -0
  350. package/dist-build-23687264126/cbbb57b397433964.js.map +1 -0
  351. package/dist-build-23687264126/d188f7f036ac5779.woff2 +0 -0
  352. package/dist-build-23687264126/d1aa59bd9c702dc4.js +2 -0
  353. package/dist-build-23687264126/d1aa59bd9c702dc4.js.LICENSE.txt +32 -0
  354. package/dist-build-23687264126/d1aa59bd9c702dc4.js.map +1 -0
  355. package/dist-build-23687264126/d265d81c58525ae4.woff2 +0 -0
  356. package/dist-build-23687264126/d5942cd81663e136.woff2 +0 -0
  357. package/dist-build-23687264126/d66b8ff73d95cabb.woff2 +0 -0
  358. package/dist-build-23687264126/d84bac6d07672dd2.js +1 -0
  359. package/dist-build-23687264126/d84bac6d07672dd2.js.map +1 -0
  360. package/dist-build-23687264126/d88899ef0fd16719.woff2 +0 -0
  361. package/dist-build-23687264126/d92b5ecf31fc187b.js +1 -0
  362. package/dist-build-23687264126/d9a5d958e69e058d.woff2 +0 -0
  363. package/dist-build-23687264126/dac90d495be353a0.woff2 +0 -0
  364. package/dist-build-23687264126/db0550511978dc47.js +1 -0
  365. package/dist-build-23687264126/dd8ce598529c3fab.woff2 +0 -0
  366. package/dist-build-23687264126/de013f1be25103fa.woff2 +0 -0
  367. package/dist-build-23687264126/df222fceeffca849.woff2 +0 -0
  368. package/dist-build-23687264126/df22bda08ec7964c.js +1 -0
  369. package/dist-build-23687264126/e05b7f902b02a251.js +1 -0
  370. package/dist-build-23687264126/e05b7f902b02a251.js.map +1 -0
  371. package/dist-build-23687264126/e465f1481f0d2e1c.js +1 -0
  372. package/dist-build-23687264126/e62b00b9199c1ac9.woff2 +0 -0
  373. package/dist-build-23687264126/e696cef1407b2610.woff2 +0 -0
  374. package/dist-build-23687264126/eb42de5422d9af00.js +1 -0
  375. package/dist-build-23687264126/eed48feba743e21c.woff2 +0 -0
  376. package/dist-build-23687264126/f135ef54213f8975.js +1 -0
  377. package/dist-build-23687264126/f260e50923d4283b.js +1 -0
  378. package/dist-build-23687264126/f543c88feb236d11.woff2 +0 -0
  379. package/dist-build-23687264126/f591b0079faa93fe.woff2 +0 -0
  380. package/dist-build-23687264126/f6ed27923769ad1d.woff2 +0 -0
  381. package/dist-build-23687264126/f8d066e92ea157c6.js +1 -0
  382. package/dist-build-23687264126/fae042506530c1e6.js +1 -0
  383. package/dist-build-23687264126/favicon.ico +0 -0
  384. package/dist-build-23687264126/fbebeb4336e67012.woff2 +0 -0
  385. package/dist-build-23687264126/fd574df77d31a5eb.js +1 -0
  386. package/dist-build-23687264126/icon_128x128.3dde25c6e69b1c010a6a5d6b27b3f436.png +0 -0
  387. package/dist-build-23687264126/icon_144x144.e263e02b838d229b02ff9133e6e0f2ba.png +0 -0
  388. package/dist-build-23687264126/icon_192x192.d3d318638bbe8a10a3c687d3d302d01a.png +0 -0
  389. package/dist-build-23687264126/icon_256x256.c729f6e7e914b58fcea5ce91d7aa9bad.png +0 -0
  390. package/dist-build-23687264126/icon_384x384.c8923df6b6bd08eba5c79b78d7fcecc0.png +0 -0
  391. package/dist-build-23687264126/icon_512x512.7163efb26df832de513bc58d925ea22e.png +0 -0
  392. package/dist-build-23687264126/icon_96x96.682ee334ae19d49894217370b8596f61.png +0 -0
  393. package/dist-build-23687264126/index.html +9 -0
  394. package/dist-build-23687264126/logo-512.png +0 -0
  395. package/dist-build-23687264126/logo.svg +30 -0
  396. package/dist-build-23687264126/manifest.266df36f2271d27ae9bcaa196a2976ae.json +47 -0
  397. package/dist-build-23687264126/openmrs.39723c21cec4b1fc.css +1 -0
  398. package/dist-build-23687264126/openmrs.39723c21cec4b1fc.css.map +1 -0
  399. package/dist-build-23687264126/openmrs.44bac4c8520ee42f.css +2 -0
  400. package/dist-build-23687264126/openmrs.44bac4c8520ee42f.css.map +1 -0
  401. package/dist-build-23687264126/openmrs.936e8cf6a4b1599d.css +2 -0
  402. package/dist-build-23687264126/openmrs.936e8cf6a4b1599d.css.map +1 -0
  403. package/dist-build-23687264126/openmrs.c3adea28ef850516.js +1 -0
  404. package/dist-build-23687264126/openmrs.c3adea28ef850516.js.map +1 -0
  405. package/dist-build-23687264126/openmrs.e4daba1e3b840e70.css +25 -0
  406. package/dist-build-23687264126/openmrs.e4daba1e3b840e70.css.map +1 -0
  407. package/dist-build-23687264126/service-worker.js +1 -0
  408. package/dist-build-23687264126/service-worker.js.map +1 -0
  409. package/e2e/core/env.ts +5 -0
  410. package/e2e/core/global-setup.ts +34 -0
  411. package/e2e/core/test.ts +21 -0
  412. package/e2e/pages/app-shell.page.ts +34 -0
  413. package/e2e/pages/etl-sources.page.ts +35 -0
  414. package/e2e/pages/report-sections.page.ts +20 -0
  415. package/e2e/pages/section-preview.modal.ts +29 -0
  416. package/e2e/specs/etl-sources.spec.ts +51 -0
  417. package/e2e/specs/navigation.spec.ts +13 -0
  418. package/e2e/specs/section-preview-validation.spec.ts +38 -0
  419. package/e2e/specs/section-preview.spec.ts +94 -0
  420. package/e2e/tsconfig.json +11 -0
  421. package/example.env +5 -0
  422. package/jest.config.js +28 -0
  423. package/package.json +82 -0
  424. package/playwright.config.ts +28 -0
  425. package/src/admin-card-link.extension.module.scss +55 -0
  426. package/src/admin-card-link.extension.tsx +24 -0
  427. package/src/components/admin/admin-page.component.tsx +31 -0
  428. package/src/components/admin/age-categories-page.component.tsx +109 -0
  429. package/src/components/admin/age-groups-page.component.tsx +146 -0
  430. package/src/components/admin/etl-sources-page.component.tsx +344 -0
  431. package/src/components/admin/report-categories-page.component.tsx +256 -0
  432. package/src/components/admin/report-library-page.component.tsx +540 -0
  433. package/src/components/ai-support/ai-assist-button.component.tsx +30 -0
  434. package/src/components/ai-support/ai-assist-modal.component.tsx +81 -0
  435. package/src/components/ai-support/ai.service.ts +21 -0
  436. package/src/components/ai-support/ai.types.ts +12 -0
  437. package/src/components/app-shell/report-builder-shell.component.tsx +120 -0
  438. package/src/components/app-shell/report-builder-shell.scss +15 -0
  439. package/src/components/data-themes/data-theme-form.component.tsx +59 -0
  440. package/src/components/data-themes/data-theme-modal.component.tsx +349 -0
  441. package/src/components/data-themes/data-themes-page.component.tsx +132 -0
  442. package/src/components/data-themes/data-themes-table.component.tsx +91 -0
  443. package/src/components/data-themes/icon-registry.ts +35 -0
  444. package/src/components/data-themes/sections/data-theme-basics.section.tsx +63 -0
  445. package/src/components/data-themes/sections/data-theme-condition-columns.section.tsx +397 -0
  446. package/src/components/data-themes/sections/data-theme-fields-editor.section.tsx +125 -0
  447. package/src/components/data-themes/sections/data-theme-metadata.section.tsx +245 -0
  448. package/src/components/data-themes/sections/data-theme-preview.section.tsx +115 -0
  449. package/src/components/data-themes/sections/data-theme-source.section.tsx +184 -0
  450. package/src/components/indicators/README.md +24 -0
  451. package/src/components/indicators/base-indicator-basic-fields.component.tsx +18 -0
  452. package/src/components/indicators/base-indicator-basics.section.tsx +54 -0
  453. package/src/components/indicators/base-indicator-countby.section.tsx +25 -0
  454. package/src/components/indicators/base-indicator-criteria.section.tsx +83 -0
  455. package/src/components/indicators/base-indicator-details-form.component.tsx +80 -0
  456. package/src/components/indicators/base-indicator-theme-unit-fields.component.tsx +39 -0
  457. package/src/components/indicators/create-base-indicator-modal.component.tsx +501 -0
  458. package/src/components/indicators/create-composite-base-indicator-modal.component.tsx +297 -0
  459. package/src/components/indicators/create-final-indicator-modal.component.tsx +260 -0
  460. package/src/components/indicators/diagnosis-filters-form.component.tsx +101 -0
  461. package/src/components/indicators/disaggregation-panel.component.tsx +93 -0
  462. package/src/components/indicators/handler/concept-search-multiselect.component.tsx +153 -0
  463. package/src/components/indicators/handler/question-answer-concept-search.component.tsx +336 -0
  464. package/src/components/indicators/indicator-status-tag.component.tsx +9 -0
  465. package/src/components/indicators/indicators-page.component.tsx +481 -0
  466. package/src/components/indicators/indicators-page.scss +121 -0
  467. package/src/components/indicators/indicators-table.component.tsx +166 -0
  468. package/src/components/indicators/preview-table.component.tsx +31 -0
  469. package/src/components/indicators/sections/composite-indicator-basics.section.tsx +36 -0
  470. package/src/components/indicators/sections/composite-indicator-picker.section.tsx +161 -0
  471. package/src/components/indicators/sections/composite-indicator-sql-preview.section.tsx +31 -0
  472. package/src/components/indicators/sections/final-indicator-basics.section.tsx +46 -0
  473. package/src/components/indicators/sections/final-indicator-disaggregation.section.tsx +47 -0
  474. package/src/components/indicators/sections/final-indicator-picker.section.tsx +92 -0
  475. package/src/components/indicators/sections/final-indicator-preview.section.tsx +20 -0
  476. package/src/components/indicators/sections/final-indicator-results-preview.section.tsx +65 -0
  477. package/src/components/indicators/sections/indicator-basics.section.tsx +40 -0
  478. package/src/components/indicators/sections/indicator-conditions.section.tsx +194 -0
  479. package/src/components/indicators/sections/indicator-sql-preview.section.tsx +26 -0
  480. package/src/components/indicators/sections/indicator-theme.section.tsx +48 -0
  481. package/src/components/indicators/sql-preview.component.tsx +19 -0
  482. package/src/components/indicators/types/base-indicator-form.types.ts +17 -0
  483. package/src/components/indicators/types/base-indicator-theme.constants.ts +8 -0
  484. package/src/components/indicators/types/composite-indicator.types.ts +21 -0
  485. package/src/components/indicators/types/condition-ui.types.ts +11 -0
  486. package/src/components/indicators/types/data-theme-config.types.ts +88 -0
  487. package/src/components/indicators/types/indicator-types.ts +56 -0
  488. package/src/components/indicators/types/sql-builders.ts +43 -0
  489. package/src/components/indicators/utils/composite-indicator-sql.utils.ts +206 -0
  490. package/src/components/indicators/utils/concept-preload.utils.ts +21 -0
  491. package/src/components/indicators/utils/final-indicator-sql.utils.ts +124 -0
  492. package/src/components/indicators/utils/indicator-conditions-hydration.utils.ts +254 -0
  493. package/src/components/indicators/utils/indicator-sql.utils.ts +185 -0
  494. package/src/components/landing/landing-action-item.component.tsx +50 -0
  495. package/src/components/landing/landing-action-list.component.tsx +12 -0
  496. package/src/components/landing/landing-activity-list.component.tsx +47 -0
  497. package/src/components/landing/landing-footer-grid.component.tsx +45 -0
  498. package/src/components/landing/landing-hero.component.tsx +18 -0
  499. package/src/components/landing/landing-section-card.component.tsx +33 -0
  500. package/src/components/landing/report-builder-landing-page.component.tsx +103 -0
  501. package/src/components/landing/report-builder-landing-page.scss +131 -0
  502. package/src/components/report/dashboard/reports-table.component.tsx +145 -0
  503. package/src/components/report/definition/panels/properties-panel.component.tsx +38 -0
  504. package/src/components/report/definition/panels/report-structure-panel.component.tsx +61 -0
  505. package/src/components/report/definition/panels/selection-panel.component.tsx +58 -0
  506. package/src/components/report/definition/report-definition-editor.component.tsx +99 -0
  507. package/src/components/report/definition/report-definition.types.ts +66 -0
  508. package/src/components/report/design/panels/IndicatorPropertiesPanel.scss +33 -0
  509. package/src/components/report/design/panels/IndicatorPropertiesPanel.tsx +389 -0
  510. package/src/components/report/design/panels/JsonPreviewPanel.scss +32 -0
  511. package/src/components/report/design/panels/JsonPreviewPanel.tsx +104 -0
  512. package/src/components/report/design/panels/mapping-preview-panel.component.tsx +82 -0
  513. package/src/components/report/design/panels/mapping-preview-panel.scss +55 -0
  514. package/src/components/report/design/panels/template-structure-panel.component.tsx +296 -0
  515. package/src/components/report/design/panels/template-structure-panel.scss +81 -0
  516. package/src/components/report/design/report-design-editor.component.tsx +894 -0
  517. package/src/components/report/design/report-design.types.ts +43 -0
  518. package/src/components/report/design/report-design.utils.ts +86 -0
  519. package/src/components/report/panels/report-detail.component.tsx +71 -0
  520. package/src/components/report/panels/report-panel-shell.component.tsx +60 -0
  521. package/src/components/report/report-dashboard.page.component.tsx +75 -0
  522. package/src/components/report/report-editor.page.component.tsx +466 -0
  523. package/src/components/report/report.routes.tsx +30 -0
  524. package/src/components/report-sections/create-report-section-modal.component.tsx +278 -0
  525. package/src/components/report-sections/hooks/useAgeCategories.ts +25 -0
  526. package/src/components/report-sections/hooks/useSectionEditorState.ts +306 -0
  527. package/src/components/report-sections/panels/Dhis2MappingPanel.tsx +157 -0
  528. package/src/components/report-sections/panels/DisaggregationPanel.tsx +97 -0
  529. package/src/components/report-sections/panels/IndicatorPickerPanel.tsx +143 -0
  530. package/src/components/report-sections/panels/SectionBasicsPanel.tsx +27 -0
  531. package/src/components/report-sections/report-section-preview-modal.component.tsx +418 -0
  532. package/src/components/report-sections/report-sections-page.component.tsx +313 -0
  533. package/src/components/report-sections/section-types.ts +55 -0
  534. package/src/components/report-sections/section-utils.ts +46 -0
  535. package/src/components/report-sections/sections-page.scss +79 -0
  536. package/src/components/run-reports/run-reports-page.component.tsx +23 -0
  537. package/src/components/shared/header/builder-header-actions.component.tsx +38 -0
  538. package/src/components/shared/header/header.component.tsx +85 -0
  539. package/src/components/shared/header/header.scss +150 -0
  540. package/src/components/shared/header/illustration.component.tsx +34 -0
  541. package/src/components/shared/indicator-properties-panel/IndicatorPropertiesPanel.scss +33 -0
  542. package/src/components/shared/indicator-properties-panel/IndicatorPropertiesPanel.tsx +389 -0
  543. package/src/components/shared/json-preview-panel/JsonPreviewPanel.scss +32 -0
  544. package/src/components/shared/json-preview-panel/JsonPreviewPanel.tsx +104 -0
  545. package/src/components/shared/mapping-preview-panel/mapping-preview-panel.component.tsx +82 -0
  546. package/src/components/shared/mapping-preview-panel/mapping-preview-panel.scss +55 -0
  547. package/src/components/shared/preview/query-results-preview.component.tsx +204 -0
  548. package/src/components/shared/template-structure-panel/template-structure-panel.component.tsx +296 -0
  549. package/src/components/shared/template-structure-panel/template-structure-panel.scss +81 -0
  550. package/src/config-schema.ts +23 -0
  551. package/src/globals.d.ts +14 -0
  552. package/src/hooks/theme/useDataThemes.ts +28 -0
  553. package/src/hooks/theme/useMambaTableMeta.ts +34 -0
  554. package/src/hooks/theme/useMambaTables.ts +63 -0
  555. package/src/index.ts +23 -0
  556. package/src/resources/agegroup/agegroups.api.ts +58 -0
  557. package/src/resources/concepts/concept-mapper.ts +21 -0
  558. package/src/resources/concepts/concept-types.ts +31 -0
  559. package/src/resources/concepts/concepts.resource.ts +44 -0
  560. package/src/resources/concepts/useConceptSearch.ts +41 -0
  561. package/src/resources/etl-source/etl-source.api.ts +65 -0
  562. package/src/resources/indicator/indicators.api.ts +125 -0
  563. package/src/resources/openmrs-api.ts +24 -0
  564. package/src/resources/preview/sql-preview.api.ts +54 -0
  565. package/src/resources/report/reports.api.ts +117 -0
  566. package/src/resources/report-category/report-category.api.ts +41 -0
  567. package/src/resources/report-library/report-library.api.ts +63 -0
  568. package/src/resources/report-section/report-sections.api.ts +73 -0
  569. package/src/resources/report-section/section-preview.api.ts +21 -0
  570. package/src/resources/theme/data-theme.api.ts +88 -0
  571. package/src/resources/theme/mamba-schema.api.ts +31 -0
  572. package/src/resources/theme/mamba-table-meta.api.ts +45 -0
  573. package/src/root.component.tsx +20 -0
  574. package/src/routes/report-builder.routes.tsx +66 -0
  575. package/src/routes/report-builder.scss +56 -0
  576. package/src/routes.json +21 -0
  577. package/src/sample-template.ts +121 -0
  578. package/src/template-utils.ts +110 -0
  579. package/src/types/carbon-react-inert.d.ts +13 -0
  580. package/src/types/condition-operators.ts +49 -0
  581. package/src/types/theme/data-theme.types.ts +88 -0
  582. package/src/utils/html-entities.utils.ts +23 -0
  583. package/tools/setup-tests.ts +1 -0
  584. package/translations/en.json +4 -0
  585. package/tsconfig.json +43 -0
  586. package/webpack.config.js +14 -0
package/README.md ADDED
@@ -0,0 +1,317 @@
1
+ # OpenMRS ESM Report Builder
2
+
3
+ **Package:** `@ugandaemr/esm-report-builder` *(currently being prepared for `@openmrs/esm-report-builder` packaging)*
4
+ **Platform:** OpenMRS 3 (O3) Microfrontend
5
+ **Status:** Active Development
6
+
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ The **OpenMRS ESM Report Builder** is an OpenMRS 3 frontend microfrontend (ESM) for **designing, managing, and structuring health reports** used in national and facility-level reporting.
12
+
13
+ It provides a unified environment where implementers, analysts, and developers can:
14
+
15
+ - Create and manage reports
16
+ - Design report layouts and sections
17
+ - Define reusable indicator logic
18
+ - Build structured, disaggregation-aware report templates
19
+ - Manage shared reporting metadata and catalogues
20
+ - Preview and export machine-consumable report definitions
21
+
22
+ The Report Builder intentionally separates **report design**, **indicator logic**, and **template mapping**, enabling reuse, governance, and long-term maintainability of reporting artifacts.
23
+
24
+ This project focuses on **report design and management**, not report execution. It helps teams create a clear source of truth for reporting structures that can later be evaluated by backend services, data pipelines, or reporting engines.
25
+
26
+ ---
27
+
28
+ ## Vision
29
+
30
+ The goal of this project is to provide a modern, modular, and maintainable report-authoring experience for OpenMRS implementations such as UgandaEMR, while aligning the work for broader reuse in the OpenMRS ecosystem. The module is intended to make report definitions easier to create, review, reuse, govern, and eventually share across implementations.
31
+
32
+ ---
33
+
34
+ ## What This App Is (and Is Not)
35
+
36
+ ### What it is
37
+ - A **report design and configuration tool**
38
+ - A **template and indicator authoring environment**
39
+ - A **source of truth** for report definitions
40
+ - A bridge between reporting logic and downstream evaluators/renderers
41
+ - A reusable reporting workspace for structured health reporting metadata
42
+
43
+ ### What it is not
44
+ - Not a report executor
45
+ - Not a data visualization runtime by itself
46
+ - Not responsible for evaluating indicators or querying data directly
47
+ - Not a data warehouse or backend reporting engine
48
+
49
+ Execution is delegated to backend services and reporting pipelines.
50
+
51
+ ---
52
+
53
+ ## Core Capabilities
54
+
55
+ ### 1. Landing Experience
56
+ The application includes a landing page that introduces the report builder workspace and acts as the entry point for users navigating the module inside OpenMRS 3.
57
+
58
+ ### 2. Reports Management
59
+ - Create new reports
60
+ - List existing reports
61
+ - Open and edit reports
62
+ - Duplicate and export reports *(planned/partial workflow support)*
63
+ - Manage report metadata such as name, description, and status
64
+
65
+ Each report is intended to encapsulate:
66
+ - A report design
67
+ - A report template
68
+ - References to reusable indicator definitions
69
+
70
+ ### 3. Report Design
71
+ Design the **human-readable structure** of a report.
72
+
73
+ Current and planned report design capabilities include:
74
+ - Pages and sections
75
+ - Narrative text
76
+ - Indicator tables
77
+ - Section configuration and previews
78
+ - Future chart and visual elements
79
+
80
+ ### 4. Indicator Library and Builder
81
+ The indicators module is one of the most developed parts of the project and is centered around reusable reporting logic.
82
+
83
+ Current work includes:
84
+ - Base indicator creation
85
+ - Composite indicator creation
86
+ - Final indicator creation
87
+ - Indicator status display
88
+ - Disaggregation-aware configuration
89
+ - SQL preview support
90
+ - Diagnosis filter support
91
+ - Preview table support
92
+ - Reusable indicator definitions across reports
93
+
94
+ This design helps separate indicator logic from final report layout so that indicators can be reused across multiple reports.
95
+
96
+ ### 5. Report Sections
97
+ The report sections area supports building the structural layout of reports independently from indicator logic.
98
+
99
+ Current work includes:
100
+ - Section creation
101
+ - Section preview
102
+ - Section utilities
103
+ - Section type handling
104
+
105
+ ### 6. Administrative Configuration
106
+ The admin area supports shared configuration and reusable catalogues needed by the report builder.
107
+
108
+ Current work includes:
109
+ - Report library page
110
+ - Data themes management
111
+ - Report categories page
112
+ - Age categories page
113
+ - Age groups page
114
+
115
+ These shared resources help improve consistency and reduce repeated setup across reports.
116
+
117
+ ### 7. Run Reports Area
118
+ A run reports page is included as part of the product structure and can support future integrations for execution, preview, orchestration, or report delivery workflows.
119
+
120
+ ### 8. AI Assistance Foundation
121
+ The codebase already includes AI support components and service definitions, creating a foundation for guided authoring, assisted SQL generation, and smarter report-building workflows.
122
+
123
+ ---
124
+
125
+ ## Current Functional Routes
126
+
127
+ The current application structure includes the following main routes:
128
+
129
+ - `/` — landing page
130
+ - `/reports` — reports dashboard
131
+ - `/new` — create report
132
+ - `/edit/:reportId` — edit report
133
+ - `/indicators` — indicators workspace
134
+ - `/sections` — report sections workspace
135
+ - `/run` — run reports page
136
+ - `/admin` — admin home
137
+ - `/admin/report-categories` — report categories
138
+ - `/admin/age-categories` — age categories
139
+ - `/admin/age-groups` — age groups
140
+ - `/admin/report-library` — report library
141
+ - `/admin/themes` — data themes
142
+
143
+ ---
144
+
145
+ ## Technical Stack
146
+
147
+ This frontend is built with:
148
+
149
+ - **OpenMRS 3 Microfrontend architecture**
150
+ - **React**
151
+ - **TypeScript**
152
+ - **Carbon Design System**
153
+ - **Sass**
154
+ - **Jest** for testing
155
+ - **ESLint** for linting
156
+ - **Yarn** for package management
157
+
158
+ ---
159
+
160
+ ## Package and Build Details
161
+
162
+ The project is currently packaged as an OpenMRS ESM and produces a browser bundle under `dist/openmrs-esm-report-builder.js`.
163
+
164
+ Available scripts include:
165
+
166
+ - `yarn start` — start local development
167
+ - `yarn build` — production build
168
+ - `yarn analyze` — build analysis
169
+ - `yarn lint` — lint source code
170
+ - `yarn test` — run tests
171
+ - `yarn coverage` — run test coverage
172
+ - `yarn typescript` — run TypeScript checks
173
+ - `yarn verify` — run lint, tests, and type checks together
174
+
175
+ ---
176
+
177
+ ## Project Structure
178
+
179
+ A simplified view of the project organization:
180
+
181
+ ```text
182
+ src/
183
+ ├── components/
184
+ │ ├── admin/
185
+ │ ├── ai-support/
186
+ │ ├── app-shell/
187
+ │ ├── data-themes/
188
+ │ ├── indicators/
189
+ │ ├── landing/
190
+ │ ├── report/
191
+ │ ├── report-sections/
192
+ │ └── run-reports/
193
+ ├── resources/
194
+ ├── routes/
195
+ ├── types/
196
+ ├── utils/
197
+ ├── config-schema.ts
198
+ ├── index.ts
199
+ ├── root.component.tsx
200
+ ├── sample-template.ts
201
+ └── template-utils.ts
202
+ ```
203
+
204
+ ---
205
+
206
+ ## Build and Run
207
+
208
+ ### Prerequisites
209
+ - Node.js 18+
210
+ - Yarn 1.x or Corepack-enabled Yarn
211
+ - OpenMRS 3 backend
212
+
213
+ ### Install
214
+ ```bash
215
+ yarn install
216
+ ```
217
+
218
+ ### Run
219
+ ```bash
220
+ yarn start --backend=http://localhost:9098
221
+ ```
222
+
223
+ ### Access
224
+ - `http://localhost:8080/openmrs/spa/report-builder`
225
+
226
+ ### Build
227
+ ```bash
228
+ yarn build
229
+ ```
230
+
231
+ ### Verify
232
+ ```bash
233
+ yarn verify
234
+ ```
235
+
236
+ ---
237
+
238
+ ## Integration in OpenMRS
239
+
240
+ This application is structured as an OpenMRS ESM and is intended to plug into an OpenMRS 3 shell. It defines a root lifecycle and extension entry points so it can integrate cleanly into the broader frontend platform.
241
+
242
+ ---
243
+
244
+ ## Current Scope and Boundaries
245
+
246
+ ### What this project currently covers
247
+ - Report authoring and configuration
248
+ - Reusable indicator design
249
+ - Structural report composition
250
+ - Shared reporting catalogues and metadata
251
+ - A foundation for future AI-assisted authoring
252
+
253
+ ### What remains outside this module
254
+ - Indicator evaluation
255
+ - Data retrieval and backend execution
256
+ - Report scheduling and orchestration engines
257
+ - Advanced chart rendering and analytics runtime
258
+
259
+ ---
260
+
261
+ ## Publishing Direction
262
+
263
+ This work began under the UgandaEMR scope and is being prepared for broader OpenMRS-aligned packaging. The current direction is to align the package and module pathing for publication under the `@openmrs` scope.
264
+
265
+ ---
266
+
267
+ ## CI/CD Direction
268
+
269
+ The project is being prepared with a GitHub Actions workflow to support:
270
+
271
+ - Build validation on push and pull request
272
+ - Verification using lint, tests, and TypeScript checks
273
+ - Prerelease publishing
274
+ - Release publishing to npm-compatible package scopes
275
+
276
+ ---
277
+
278
+ ## Roadmap
279
+
280
+ Planned and likely next steps include:
281
+
282
+ - Completing more report editor workflows
283
+ - Strengthening report library and migration flows
284
+ - Expanding data theme configuration
285
+ - Improving execution handoff to backend/reporting services
286
+ - Adding richer preview capabilities
287
+ - Strengthening AI-assisted authoring experiences
288
+ - Finalizing package publication under `@openmrs`
289
+ - Adding documentation for extension slots and backend API expectations
290
+
291
+ ---
292
+
293
+ ## Contribution Notes
294
+
295
+ When contributing:
296
+
297
+ 1. Keep report structure, indicator logic, and shared catalogues cleanly separated.
298
+ 2. Prefer reusable components and configuration-driven approaches.
299
+ 3. Run `yarn verify` before submitting changes.
300
+ 4. Keep alignment with OpenMRS 3 frontend conventions.
301
+ 5. Document any new routes, admin pages, or API contracts.
302
+
303
+ ---
304
+
305
+ ## Maintainers
306
+ - Hexam Creation Consult
307
+
308
+ ---
309
+
310
+ ## License
311
+ Mozilla Public License 2.0 (MPL-2.0)
312
+
313
+ ---
314
+
315
+ ## Acknowledgements
316
+
317
+ This work builds on the OpenMRS 3 microfrontend platform and reflects implementation needs around structured health reporting, indicator management, and reporting governance within UgandaEMR and the wider OpenMRS ecosystem.
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkopenmrs=self.webpackChunkopenmrs||[]).push([[9725],{19725(e){e.exports=JSON.parse('{"actionableNotification":"Actionable notification","actions":"Actions","address":"Address","address1":"Address line 1","address2":"Address line 2","address3":"Address line 3","address4":"Address line 4","address5":"Address line 5","address6":"Address line 6","age":"Age","cancel":"Cancel","change":"Change","city":"City","cityVillage":"City","Clinic":"Clinic","close":"Close","closeAllOpenedWorkspaces":"Discard changes in {{count}} workspaces","closesActionableNotification":"Closes actionable notification","closeSnackbar":"Close snackbar","closeWorkspaces2PromptBody":"You are about to close the following workspace(s), which might have unsaved changes:","closeWorkspaces2PromptTitle":"Close workspace(s)","closingAllWorkspacesPromptBody":"There may be unsaved changes in the following workspaces. Do you want to discard changes in the following workspaces? {{workspaceNames}}","closingAllWorkspacesPromptTitle":"You have unsaved changes","confirm":"Confirm","contactAdministratorIfIssuePersists":"Contact your system administrator if the problem persists.","contactDetails":"Contact Details","country":"Country","countyDistrict":"District","delete":"Delete","discard":"Discard","discardChanges":"Discard changes","district":"District","edit":"Edit","emptyStateText":"There are no {{displayText}} to display","error":"Error","errorCopy":"Sorry, there was a problem displaying this information. You can try to reload this page, or contact the site administrator and quote the error code above.","errorLoadingLoginLocations":"Unable to load login locations. Please try again or contact support if the problem persists.","female":"Female","hide":"Hide","leftNavigation":"Left navigation","loading":"Loading","male":"Male","maximize":"Maximize","minimize":"Minimize","noResultsToDisplay":"No results to display","openAnyway":"Open Anyway","other":"Other","paginationItemsCount":"{{pageItemsCount}} / {{totalItems}} items","paginationOfPages":"of {{count}} pages","patientAvatarAlt":"Avatar for {{patientName}}","patientIdentifierSticker":"Patient identifier sticker","patientLists":"Patient Lists","patientPhotoAlt":"Profile photo of {{patientName}}","patientPhotoPlaceholder":"Photo placeholder for {{patientName}}","postalCode":"Postal code","print":"Print","printError":"Print error","printErrorExplainer":"An error occurred in {{errorLocation}}","printIdentifierSticker":"Print identifier sticker","printing":"Printing","recordNewEntry":"Record {{displayText}}","relationships":"Relationships","resetOverrides":"Reset overrides","save":"Save","scriptLoadingError":"Failed to load overridden script from {{url}}. Please check that the bundled script is available at the expected URL. Click the button below to reset all import map overrides.","scriptLoadingFailed":"Error: Script failed to load","searchForLocation":"Search for a location","seeAll":"See all","seeMoreLists":"See {{count}} more lists","sex":"Sex","showLess":"Show less","showMore":"Show more","snackbarNotification":"Snackbar notification","state":"State","stateProvince":"State","toggleDevTools":"Toggle dev tools","unknown":"Unknown","unsavedChangesInOpenedWorkspace":"You may have unsaved changes in the opened workspace. Do you want to discard these changes?","unsavedChangesInWorkspace":"There may be unsaved changes in \\"{{workspaceName}}\\". Please save them before opening another workspace.","unsavedChangesTitleText":"Unsaved changes","workspaceHeader":"Workspace header","yearAbbreviation":"yr","yearsAbbreviation":"yrs"}')}}]);
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkopenmrs=self.webpackChunkopenmrs||[]).push([[3663],{63663(e){e.exports=JSON.parse('{"actionableNotification":"Actionable notification","actions":"Ações","address":"Endereço","address1":"Endereço linha 1","address2":"Endereço linha 2","address3":"Endereço linha 3","address4":"Endereço linha 4","address5":"Endereço linha 5","address6":"Endereço linha 6","age":"Idade","cancel":"Cancelar","change":"Alterar","city":"Cidade","cityVillage":"Cidade","Clinic":"Clinic","close":"Fechar","closeAllOpenedWorkspaces":"Descartar alterações em {{count}} espaços de trabalho","closesActionableNotification":"Closes actionable notification","closeSnackbar":"Close snackbar","closeWorkspaces2PromptBody":"You are about to close the following workspace(s), which might have unsaved changes:","closeWorkspaces2PromptTitle":"Close workspace(s)","closingAllWorkspacesPromptBody":"There may be unsaved changes in the following workspaces. Do you want to discard changes in the following workspaces? {{workspaceNames}}","closingAllWorkspacesPromptTitle":"Você tem alterações não gravadas","confirm":"Confirmar","contactAdministratorIfIssuePersists":"Contacte o administrador do sistema se o problema persistir.","contactDetails":"Detalhes de contato","country":"País","countyDistrict":"Distrito","delete":"Delete","discard":"Descartar","discardChanges":"Discard changes","district":"Distrito","edit":"Edit","emptyStateText":"There are no {{displayText}} to display","error":"Erro","errorCopy":"Desculpe, ocorreu um problema ao visualizar essas informações. Você pode tentar recarregar esta página ou entrar em contato com o administrador do sistema providenciando o código de erro acima.","errorLoadingLoginLocations":"Unable to load login locations. Please try again or contact support if the problem persists.","female":"Feminino","hide":"Esconder","leftNavigation":"Left navigation","loading":"Carregando","male":"Masculino","maximize":"Maximizar","minimize":"Minimizar","noResultsToDisplay":"No results to display","openAnyway":"Abrir mesmo assim","other":"Outro","paginationItemsCount":"{{pageItemsCount}} / {{totalItems}} items","paginationOfPages":"of {{count}} pages","patientAvatarAlt":"Avatar for {{patientName}}","patientIdentifierSticker":"Etiqueta de Identificador do Utente","patientLists":"Lista de Utentes","patientPhotoAlt":"Profile photo of {{patientName}}","patientPhotoPlaceholder":"Photo placeholder for {{patientName}}","postalCode":"Caixa postal","print":"Imprimir","printError":"Erro de impressão","printErrorExplainer":"Ocorreu um erro em {{errorLocation}}","printIdentifierSticker":"Imprimir etiqueta do identificador","printing":"Imprimindo","recordNewEntry":"Record {{displayText}}","relationships":"Relacionamentos","resetOverrides":"Redefinir substituições","save":"Salvar","scriptLoadingError":"Falha ao carregar o script de substituíção de {{url}}. Verifique se o script incluído está disponível no URL esperado. Clique no botão abaixo para redefinir todas as substituições de mapas de importação.","scriptLoadingFailed":"Erro: O carregamento do script falhou","searchForLocation":"Search for a location","seeAll":"See all","seeMoreLists":"Ver {{count}} mais listas","sex":"Sexo","showLess":"Mostrar menos","showMore":"Mostrar mais","snackbarNotification":"Snackbar notification","state":"Estado","stateProvince":"Estado","toggleDevTools":"Toggle dev tools","unknown":"Desconhecido","unsavedChangesInOpenedWorkspace":"You may have unsaved changes in the opened workspace. Do you want to discard these changes?","unsavedChangesInWorkspace":"There may be unsaved changes in \\"{{workspaceName}}\\". Please save them before opening another workspace.","unsavedChangesTitleText":"Alterações não gravadas","workspaceHeader":"Cabeçalho do espaço de trabalho","yearAbbreviation":"yr","yearsAbbreviation":"yrs"}')}}]);
Binary file
Binary file
Binary file
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkopenmrs=self.webpackChunkopenmrs||[]).push([[2800],{42800(e){e.exports=JSON.parse('{"actionableNotification":"Actionable notification","actions":"Actions","address":"Address","address1":"Address line 1","address2":"Address line 2","address3":"Address line 3","address4":"Address line 4","address5":"Address line 5","address6":"Address line 6","age":"Age","cancel":"Cancel","change":"Change","city":"City","cityVillage":"City","Clinic":"Clinic","close":"Close","closeAllOpenedWorkspaces":"Discard changes in {{count}} workspaces","closesActionableNotification":"Closes actionable notification","closeSnackbar":"Close snackbar","closeWorkspaces2PromptBody":"You are about to close the following workspace(s), which might have unsaved changes:","closeWorkspaces2PromptTitle":"Close workspace(s)","closingAllWorkspacesPromptBody":"There may be unsaved changes in the following workspaces. Do you want to discard changes in the following workspaces? {{workspaceNames}}","closingAllWorkspacesPromptTitle":"You have unsaved changes","confirm":"Confirm","contactAdministratorIfIssuePersists":"Contact your system administrator if the problem persists.","contactDetails":"Contact Details","country":"Country","countyDistrict":"District","delete":"Delete","discard":"Discard","discardChanges":"Discard changes","district":"District","edit":"Edit","emptyStateText":"There are no {{displayText}} to display","error":"Error","errorCopy":"Sorry, there was a problem displaying this information. You can try to reload this page, or contact the site administrator and quote the error code above.","errorLoadingLoginLocations":"Unable to load login locations. Please try again or contact support if the problem persists.","female":"Female","hide":"Hide","leftNavigation":"Left navigation","loading":"Loading","male":"Male","maximize":"Maximize","minimize":"Minimize","noResultsToDisplay":"No results to display","openAnyway":"Open Anyway","other":"Other","paginationItemsCount":"{{pageItemsCount}} / {{totalItems}} items","paginationOfPages":"of {{count}} pages","patientAvatarAlt":"Avatar for {{patientName}}","patientIdentifierSticker":"Patient identifier sticker","patientLists":"Patient Lists","patientPhotoAlt":"Profile photo of {{patientName}}","patientPhotoPlaceholder":"Photo placeholder for {{patientName}}","postalCode":"Postal code","print":"Print","printError":"Print error","printErrorExplainer":"An error occurred in {{errorLocation}}","printIdentifierSticker":"Print identifier sticker","printing":"Printing","recordNewEntry":"Record {{displayText}}","relationships":"Relationships","resetOverrides":"Reset overrides","save":"Save","scriptLoadingError":"Failed to load overridden script from {{url}}. Please check that the bundled script is available at the expected URL. Click the button below to reset all import map overrides.","scriptLoadingFailed":"Error: Script failed to load","searchForLocation":"Search for a location","seeAll":"See all","seeMoreLists":"See {{count}} more lists","sex":"Sex","showLess":"Show less","showMore":"Show more","snackbarNotification":"Snackbar notification","state":"State","stateProvince":"State","toggleDevTools":"Toggle dev tools","unknown":"Unknown","unsavedChangesInOpenedWorkspace":"You may have unsaved changes in the opened workspace. Do you want to discard these changes?","unsavedChangesInWorkspace":"There may be unsaved changes in \\"{{workspaceName}}\\". Please save them before opening another workspace.","unsavedChangesTitleText":"Unsaved changes","workspaceHeader":"Workspace header","yearAbbreviation":"yr","yearsAbbreviation":"yrs"}')}}]);
Binary file
Binary file
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkopenmrs=self.webpackChunkopenmrs||[]).push([[914],{40914(e){e.exports=JSON.parse('{"actionableNotification":"Actionable notification","actions":"Actions","address":"Address","address1":"Address line 1","address2":"Address line 2","address3":"Address line 3","address4":"Address line 4","address5":"Address line 5","address6":"Address line 6","age":"Age","cancel":"Cancel","change":"Change","city":"City","cityVillage":"City","Clinic":"Clinic","close":"Close","closeAllOpenedWorkspaces":"Discard changes in {{count}} workspaces","closesActionableNotification":"Closes actionable notification","closeSnackbar":"Close snackbar","closeWorkspaces2PromptBody":"You are about to close the following workspace(s), which might have unsaved changes:","closeWorkspaces2PromptTitle":"Close workspace(s)","closingAllWorkspacesPromptBody":"There may be unsaved changes in the following workspaces. Do you want to discard changes in the following workspaces? {{workspaceNames}}","closingAllWorkspacesPromptTitle":"You have unsaved changes","confirm":"Confirm","contactAdministratorIfIssuePersists":"Contact your system administrator if the problem persists.","contactDetails":"Contact Details","country":"Country","countyDistrict":"District","delete":"Delete","discard":"Discard","discardChanges":"Discard changes","district":"District","edit":"Edit","emptyStateText":"There are no {{displayText}} to display","error":"Error","errorCopy":"Sorry, there was a problem displaying this information. You can try to reload this page, or contact the site administrator and quote the error code above.","errorLoadingLoginLocations":"Unable to load login locations. Please try again or contact support if the problem persists.","female":"Female","hide":"Hide","leftNavigation":"Left navigation","loading":"Loading","male":"Male","maximize":"Maximize","minimize":"Minimize","noResultsToDisplay":"No results to display","openAnyway":"Open Anyway","other":"Other","paginationItemsCount":"{{pageItemsCount}} / {{totalItems}} items","paginationOfPages":"of {{count}} pages","patientAvatarAlt":"Avatar for {{patientName}}","patientIdentifierSticker":"Patient identifier sticker","patientLists":"Patient Lists","patientPhotoAlt":"Profile photo of {{patientName}}","patientPhotoPlaceholder":"Photo placeholder for {{patientName}}","postalCode":"Postal code","print":"Print","printError":"Print error","printErrorExplainer":"An error occurred in {{errorLocation}}","printIdentifierSticker":"Print identifier sticker","printing":"Printing","recordNewEntry":"Record {{displayText}}","relationships":"Relationships","resetOverrides":"Reset overrides","save":"Save","scriptLoadingError":"Failed to load overridden script from {{url}}. Please check that the bundled script is available at the expected URL. Click the button below to reset all import map overrides.","scriptLoadingFailed":"Error: Script failed to load","searchForLocation":"Search for a location","seeAll":"See all","seeMoreLists":"See {{count}} more lists","sex":"Sex","showLess":"Show less","showMore":"Show more","snackbarNotification":"Snackbar notification","state":"State","stateProvince":"State","toggleDevTools":"Toggle dev tools","unknown":"Unknown","unsavedChangesInOpenedWorkspace":"You may have unsaved changes in the opened workspace. Do you want to discard these changes?","unsavedChangesInWorkspace":"There may be unsaved changes in \\"{{workspaceName}}\\". Please save them before opening another workspace.","unsavedChangesTitleText":"Unsaved changes","workspaceHeader":"Workspace header","yearAbbreviation":"yr","yearsAbbreviation":"yrs"}')}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkopenmrs=self.webpackChunkopenmrs||[]).push([[1632],{21632(e,t,n){n.r(t),n.d(t,{INFINITE_PREFIX:()=>H,IS_REACT_LEGACY:()=>T,IS_SERVER:()=>k,OBJECT:()=>s,SWRConfig:()=>G,SWRGlobalState:()=>p,UNDEFINED:()=>i,cache:()=>$,compare:()=>U,createCacheHelper:()=>y,defaultConfig:()=>J,defaultConfigOptions:()=>S,getTimestamp:()=>V,hasRequestAnimationFrame:()=>v,initCache:()=>P,internalMutate:()=>M,isDocumentDefined:()=>_,isFunction:()=>c,isPromiseLike:()=>l,isUndefined:()=>a,isWindowDefined:()=>g,mergeConfigs:()=>j,mergeObjects:()=>u,mutate:()=>q,noop:()=>r,normalize:()=>Y,preload:()=>Q,preset:()=>O,rAF:()=>I,revalidateEvents:()=>W,serialize:()=>F,slowConnection:()=>L,stableHash:()=>E,subscribeCallback:()=>te,useIsomorphicLayoutEffect:()=>A,useSWRConfig:()=>K,withArgs:()=>ee,withMiddleware:()=>ne});var o=n(34227);const r=()=>{},i=r(),s=Object,a=e=>e===i,c=e=>"function"==typeof e,u=(e,t)=>({...e,...t}),l=e=>c(e.then),f=new WeakMap;let d=0;const E=e=>{const t=typeof e,n=e&&e.constructor,o=n==Date;let r,i;if(s(e)!==e||o||n==RegExp)r=o?e.toJSON():"symbol"==t?e.toString():"string"==t?JSON.stringify(e):""+e;else{if(r=f.get(e),r)return r;if(r=++d+"~",f.set(e,r),n==Array){for(r="@",i=0;i<e.length;i++)r+=E(e[i])+",";f.set(e,r)}if(n==s){r="#";const t=s.keys(e).sort();for(;!a(i=t.pop());)a(e[i])||(r+=i+":"+E(e[i])+",");f.set(e,r)}}return r},p=new WeakMap,h={},m={},w="undefined",g=typeof window!=w,_=typeof document!=w,v=()=>g&&typeof window.requestAnimationFrame!=w,y=(e,t)=>{const n=p.get(e);return[()=>!a(t)&&e.get(t)||h,o=>{if(!a(t)){const r=e.get(t);t in m||(m[t]=r),n[5](t,u(r,o),r||h)}},n[6],()=>!a(t)&&t in m?m[t]:!a(t)&&e.get(t)||h]};let b=!0;const[R,C]=g&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[r,r],O={isOnline:()=>b,isVisible:()=>{const e=_&&document.visibilityState;return a(e)||"hidden"!==e}},S={initFocus:e=>(_&&document.addEventListener("visibilitychange",e),R("focus",e),()=>{_&&document.removeEventListener("visibilitychange",e),C("focus",e)}),initReconnect:e=>{const t=()=>{b=!0,e()},n=()=>{b=!1};return R("online",t),R("offline",n),()=>{C("online",t),C("offline",n)}}},T=!o.useId,k=!g||"Deno"in window,I=e=>v()?window.requestAnimationFrame(e):setTimeout(e,1),A=k?o.useEffect:o.useLayoutEffect,D="undefined"!=typeof navigator&&navigator.connection,L=!k&&D&&(["slow-2g","2g"].includes(D.effectiveType)||D.saveData),F=e=>{if(c(e))try{e=e()}catch(t){e=""}const t=e;return[e="string"==typeof e?e:(Array.isArray(e)?e.length:e)?E(e):"",t]};let N=0;const V=()=>++N;var W={__proto__:null,ERROR_REVALIDATE_EVENT:3,FOCUS_EVENT:0,MUTATE_EVENT:2,RECONNECT_EVENT:1};async function M(...e){const[t,n,o,r]=e,s=u({populateCache:!0,throwOnError:!0},"boolean"==typeof r?{revalidate:r}:r||{});let f=s.populateCache;const d=s.rollbackOnError;let E=s.optimisticData;const h=s.throwOnError;if(c(n)){const e=n,o=[],r=t.keys();for(const n of r)!/^\$(inf|sub)\$/.test(n)&&e(t.get(n)._k)&&o.push(n);return Promise.all(o.map(m))}return m(n);async function m(n){const[r]=F(n);if(!r)return;const[u,m]=y(t,r),[w,g,_,v]=p.get(t),b=()=>{const e=w[r];return(c(s.revalidate)?s.revalidate(u().data,n):!1!==s.revalidate)&&(delete _[r],delete v[r],e&&e[0])?e[0](2).then(()=>u().data):u().data};if(e.length<3)return b();let R,C=o;const O=V();g[r]=[O,0];const S=!a(E),T=u(),k=T.data,I=T._c,A=a(I)?k:I;if(S&&(E=c(E)?E(A,k):E,m({data:E,_c:A})),c(C))try{C=C(A)}catch(e){R=e}if(C&&l(C)){if(C=await C.catch(e=>{R=e}),O!==g[r][0]){if(R)throw R;return C}R&&S&&(e=>"function"==typeof d?d(e):!1!==d)(R)&&(f=!0,m({data:A,_c:i}))}if(f&&!R)if(c(f)){const e=f(C,A);m({data:e,error:i,_c:i})}else m({data:C,error:i,_c:i});if(g[r][1]=V(),Promise.resolve(b()).then(()=>{m({_c:i})}),!R)return C;if(h)throw R}}const x=(e,t)=>{for(const n in e)e[n][0]&&e[n][0](t)},P=(e,t)=>{if(!p.has(e)){const n=u(S,t),o={},s=M.bind(i,e);let a=r;const c={},l=(e,t)=>{const n=c[e]||[];return c[e]=n,n.push(t),()=>n.splice(n.indexOf(t),1)},f=(t,n,o)=>{e.set(t,n);const r=c[t];if(r)for(const e of r)e(n,o)},d=()=>{if(!p.has(e)&&(p.set(e,[o,{},{},{},s,f,l]),!k)){const t=n.initFocus(setTimeout.bind(i,x.bind(i,o,0))),r=n.initReconnect(setTimeout.bind(i,x.bind(i,o,1)));a=()=>{t&&t(),r&&r(),p.delete(e)}}};return d(),[e,s,d,a]}return[e,p.get(e)[4]]},U=(e,t)=>E(e)==E(t),[$,q]=P(new Map),J=u({onLoadingSlow:r,onSuccess:r,onError:r,onErrorRetry:(e,t,n,o,r)=>{const i=n.errorRetryCount,s=r.retryCount,c=~~((Math.random()+.5)*(1<<(s<8?s:8)))*n.errorRetryInterval;!a(i)&&s>i||setTimeout(o,c,r)},onDiscarded:r,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:L?1e4:5e3,focusThrottleInterval:5e3,dedupingInterval:2e3,loadingTimeout:L?5e3:3e3,compare:U,isPaused:()=>!1,cache:$,mutate:q,fallback:{}},O),j=(e,t)=>{const n=u(e,t);if(t){const{use:o,fallback:r}=e,{use:i,fallback:s}=t;o&&i&&(n.use=o.concat(i)),r&&s&&(n.fallback=u(r,s))}return n},z=(0,o.createContext)({}),G=e=>{const{value:t}=e,n=(0,o.useContext)(z),r=c(t),s=(0,o.useMemo)(()=>r?t(n):t,[r,n,t]),a=(0,o.useMemo)(()=>r?s:j(n,s),[r,n,s]),l=s&&s.provider,f=(0,o.useRef)(i);l&&!f.current&&(f.current=P(l(a.cache||$),s));const d=f.current;return d&&(a.cache=d[0],a.mutate=d[1]),A(()=>{if(d)return d[2]&&d[2](),d[3]},[]),(0,o.createElement)(z.Provider,u(e,{value:a}))},H="$inf$",B=g&&window.__SWR_DEVTOOLS_USE__,X=B?window.__SWR_DEVTOOLS_USE__:[],Y=e=>c(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(null===e[1]?e[2]:e[1])||{}],K=()=>u(J,(0,o.useContext)(z)),Q=(e,t)=>{const[n,o]=F(e),[,,,r]=p.get($);if(r[n])return r[n];const i=t(o);return r[n]=i,i},Z=X.concat(e=>(t,n,o)=>e(t,n&&((...e)=>{const[o]=F(t),[,,,r]=p.get($);if(o.startsWith(H))return n(...e);const i=r[o];return a(i)?n(...e):(delete r[o],i)}),o)),ee=e=>function(...t){const n=K(),[o,r,i]=Y(t),s=j(n,i);let a=e;const{use:c}=s,u=(c||[]).concat(Z);for(let e=u.length;e--;)a=u[e](a);return a(o,r||s.fetcher||null,s)},te=(e,t,n)=>{const o=t[e]||(t[e]=[]);return o.push(n),()=>{const e=o.indexOf(n);e>=0&&(o[e]=o[o.length-1],o.pop())}},ne=(e,t)=>(...n)=>{const[o,r,i]=Y(n),s=(i.use||[]).concat(t);return e(o,r,{...i,use:s})};B&&(window.__SWR_DEVTOOLS_REACT__=o)}}]);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"155a4ac079785bfd.js","mappings":"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","sources":["webpack://openmrs/../swr/dist/_internal/index.mjs"],"names":["noop","UNDEFINED","OBJECT","Object","isUndefined","v","isFunction","mergeObjects","a","b","isPromiseLike","x","then","table","WeakMap","counter","stableHash","arg","type","constructor","isDate","Date","result","index","RegExp","toJSON","toString","JSON","stringify","get","set","Array","length","keys","sort","pop","SWRGlobalState","EMPTY_CACHE","INITIAL_CACHE","STR_UNDEFINED","isWindowDefined","window","isDocumentDefined","document","hasRequestAnimationFrame","createCacheHelper","cache","key","state","info","prev","online","onWindowEvent","offWindowEvent","addEventListener","bind","removeEventListener","preset","isOnline","isVisible","visibilityState","defaultConfigOptions","initFocus","callback","initReconnect","onOnline","onOffline","IS_REACT_LEGACY","IS_SERVER","rAF","f","setTimeout","useIsomorphicLayoutEffect","useEffect","useLayoutEffect","navigatorConnection","navigator","connection","slowConnection","includes","effectiveType","saveData","serialize","err","args","isArray","__timestamp","getTimestamp","events","__proto__","ERROR_REVALIDATE_EVENT","FOCUS_EVENT","MUTATE_EVENT","RECONNECT_EVENT","async","internalMutate","_key","_data","_opts","options","populateCache","throwOnError","revalidate","rollbackOnErrorOption","rollbackOnError","optimisticData","keyFilter","matchedKeys","it","test","_k","push","Promise","all","map","mutateByKey","EVENT_REVALIDATORS","MUTATION","FETCH","PRELOAD","startRevalidate","revalidators","data","error","beforeMutationTs","hasOptimisticData","displayedData","currentData","_c","committedData","catch","populateCachedData","resolve","revalidateAllKeys","initCache","provider","has","opts","mutate","unmount","subscriptions","subscribe","subs","splice","indexOf","setter","value","fn","initProvider","releaseFocus","releaseReconnect","delete","compare","newData","Map","defaultConfig","onLoadingSlow","onSuccess","onError","onErrorRetry","_","__","config","maxRetryCount","errorRetryCount","currentRetryCount","retryCount","timeout","Math","random","errorRetryInterval","onDiscarded","revalidateOnFocus","revalidateOnReconnect","revalidateIfStale","shouldRetryOnError","focusThrottleInterval","dedupingInterval","loadingTimeout","isPaused","fallback","mergeConfigs","use","u1","f1","u2","f2","concat","SWRConfigContext","createContext","SWRConfig","props","parentConfig","useContext","isFunctionalConfig","useMemo","extendedConfig","cacheContextRef","useRef","current","cacheContext","createElement","Provider","INFINITE_PREFIX","enableDevtools","__SWR_DEVTOOLS_USE__","normalize","useSWRConfig","preload","key_","fetcher","fnArg","req","BUILT_IN_MIDDLEWARE","useSWRNext","fetcher_","startsWith","withArgs","hook","fallbackConfig","_config","next","middleware","i","subscribeCallback","callbacks","keyedRevalidators","withMiddleware","useSWR","uses","__SWR_DEVTOOLS_REACT__"],"sourceRoot":""}
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkopenmrs=self.webpackChunkopenmrs||[]).push([[6911],{56911(e){e.exports=JSON.parse('{"actionableNotification":"Actionable notification","actions":"Actions","address":"Adresse","address1":"Adresse: ligne 1","address2":"Adresse: ligne 2","address3":"Adresse : ligne 3","address4":"Adresse : ligne 4","address5":"Adresse : ligne 5","address6":"Adresse : ligne 6","age":"Âge","cancel":"Annuler","change":"Modifier","city":"Ville","cityVillage":"Ville","Clinic":"Clinique","close":"Fermer","closeAllOpenedWorkspaces":"Abandonner les modifications dans les {{count}} espaces de travail ","closesActionableNotification":"Closes actionable notification","closeSnackbar":"Close snackbar","closeWorkspaces2PromptBody":"Vous êtes sur le point de fermer l(es) espace(s) de travail suivant(s) qui pourrai(en)t avoir des modifications non enregistrées:","closeWorkspaces2PromptTitle":"Fermer l(es) espace(s) de travail","closingAllWorkspacesPromptBody":"Il se pourrait qu\'il y ait des modifications non enregistrées dans les espaces de travail suivants. Voulez-vous ignorer les modifications apportées dans les espace de travail suivants ? {{workspaceNames}}","closingAllWorkspacesPromptTitle":"Vous avez des modifications non enregistrées","confirm":"Valider","contactAdministratorIfIssuePersists":"Si le problème persiste, veuillez contacter votre administrateur système.","contactDetails":"Coordonnées","country":"Pays","countyDistrict":"District","delete":"Supprimer","discard":"Abandonner","discardChanges":"Abandonner les modifications","district":"District","edit":"Modifier","emptyStateText":"There are no {{displayText}} to display","error":"Erreur","errorCopy":"Désolé, il y a eu un problème lors de l\'affichage de cette information. Vous pouvez essayer de rafraîchir cette page ou contacter l\'administrateur du site en mentionnant le code d\'erreur ci-dessus.","errorLoadingLoginLocations":"Unable to load login locations. Please try again or contact support if the problem persists.","female":"Femme","hide":"Cacher","leftNavigation":"Left navigation","loading":"Chargement","male":"Homme","maximize":"Agrandir","minimize":"Réduire","noResultsToDisplay":"No results to display","openAnyway":"Ouvrir malgré tout","other":"Autre","paginationItemsCount":"{{pageItemsCount}} / {{totalItems}} items","paginationOfPages":"of {{count}} pages","patientAvatarAlt":"Avatar for {{patientName}}","patientIdentifierSticker":"Etiquette d\'identification","patientLists":"Listes","patientPhotoAlt":"Profile photo of {{patientName}}","patientPhotoPlaceholder":"Photo placeholder for {{patientName}}","postalCode":"Code postal","print":"Imprimer","printError":"Erreur d\'impression","printErrorExplainer":"Une erreur s\'est produite dans {{errorLocation}}","printIdentifierSticker":"Imprimer l\'etiquette d\'identification","printing":"Impression en cours","recordNewEntry":"Record {{displayText}}","relationships":"Relations et liens de parenté","resetOverrides":"Réinitialiser les modifications","save":"Enregistrer","scriptLoadingError":"Échec du chargement du script depuis {{url}}. Veuillez vérifier que le script est disponible à l\'URL spécifiée. Cliquez sur le bouton ci-dessous pour réinitialiser l\'import map","scriptLoadingFailed":"Erreur : Le chargement du script a échoué","searchForLocation":"Search for a location","seeAll":"See all","seeMoreLists":"Voir {{count}} listes de plus","sex":"Sexe","showLess":"Afficher moins","showMore":"Afficher plus","snackbarNotification":"Snackbar notification","state":"État","stateProvince":"État","toggleDevTools":"Activer/Désactiver les outils de développement","unknown":"Inconnu","unsavedChangesInOpenedWorkspace":"Il se pourrait que vous ayez des modifications non enregistrées dans l\'espace de travail ouvert. Voulez-vous abandonner ces modifications ?","unsavedChangesInWorkspace":"Il se peut que des modifications non enregistrées aient été apportées à « {{workspaceName}} ». Veuillez les enregistrer avant d\'ouvrir un autre espace de travail.","unsavedChangesTitleText":"Modifications non enregistrées","workspaceHeader":"En-tête de l\'espace de travail","yearAbbreviation":"yr","yearsAbbreviation":"yrs"}')}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkopenmrs=self.webpackChunkopenmrs||[]).push([[1858],{21858(e){e.exports=JSON.parse('{"actionableNotification":"Actionable notification","actions":"Actions","address":"Address","address1":"Address line 1","address2":"Address line 2","address3":"Address line 3","address4":"Address line 4","address5":"Address line 5","address6":"Address line 6","age":"Age","cancel":"Cancel","change":"Change","city":"City","cityVillage":"City","Clinic":"Clinic","close":"Close","closeAllOpenedWorkspaces":"Discard changes in {{count}} workspaces","closesActionableNotification":"Closes actionable notification","closeSnackbar":"Close snackbar","closeWorkspaces2PromptBody":"You are about to close the following workspace(s), which might have unsaved changes:","closeWorkspaces2PromptTitle":"Close workspace(s)","closingAllWorkspacesPromptBody":"There may be unsaved changes in the following workspaces. Do you want to discard changes in the following workspaces? {{workspaceNames}}","closingAllWorkspacesPromptTitle":"You have unsaved changes","confirm":"Confirm","contactAdministratorIfIssuePersists":"Contact your system administrator if the problem persists.","contactDetails":"Contact Details","country":"Country","countyDistrict":"District","delete":"Delete","discard":"Discard","discardChanges":"Discard changes","district":"District","edit":"Edit","emptyStateText":"There are no {{displayText}} to display","error":"Error","errorCopy":"Sorry, there was a problem displaying this information. You can try to reload this page, or contact the site administrator and quote the error code above.","errorLoadingLoginLocations":"Unable to load login locations. Please try again or contact support if the problem persists.","female":"Female","hide":"Hide","leftNavigation":"Left navigation","loading":"Loading","male":"Male","maximize":"Maximize","minimize":"Minimize","noResultsToDisplay":"No results to display","openAnyway":"Open Anyway","other":"Other","paginationItemsCount":"{{pageItemsCount}} / {{totalItems}} items","paginationOfPages":"of {{count}} pages","patientAvatarAlt":"Avatar for {{patientName}}","patientIdentifierSticker":"Patient identifier sticker","patientLists":"Patient Lists","patientPhotoAlt":"Profile photo of {{patientName}}","patientPhotoPlaceholder":"Photo placeholder for {{patientName}}","postalCode":"Postal code","print":"Print","printError":"Print error","printErrorExplainer":"An error occurred in {{errorLocation}}","printIdentifierSticker":"Print identifier sticker","printing":"Printing","recordNewEntry":"Record {{displayText}}","relationships":"Relationships","resetOverrides":"Reset overrides","save":"Save","scriptLoadingError":"Failed to load overridden script from {{url}}. Please check that the bundled script is available at the expected URL. Click the button below to reset all import map overrides.","scriptLoadingFailed":"Error: Script failed to load","searchForLocation":"Search for a location","seeAll":"See all","seeMoreLists":"See {{count}} more lists","sex":"Sex","showLess":"Show less","showMore":"Show more","snackbarNotification":"Snackbar notification","state":"State","stateProvince":"State","toggleDevTools":"Toggle dev tools","unknown":"Unknown","unsavedChangesInOpenedWorkspace":"You may have unsaved changes in the opened workspace. Do you want to discard these changes?","unsavedChangesInWorkspace":"There may be unsaved changes in \\"{{workspaceName}}\\". Please save them before opening another workspace.","unsavedChangesTitleText":"Unsaved changes","workspaceHeader":"Workspace header","yearAbbreviation":"yr","yearsAbbreviation":"yrs"}')}}]);
Binary file
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkopenmrs=self.webpackChunkopenmrs||[]).push([[9543],{29543(e){e.exports=JSON.parse('{"actionableNotification":"Actionable notification","actions":"Actions","address":"Address","address1":"Address line 1","address2":"Address line 2","address3":"Address line 3","address4":"Address line 4","address5":"Address line 5","address6":"Address line 6","age":"Age","cancel":"Cancel","change":"ផ្លាស់ប្តូរ","city":"City","cityVillage":"City","Clinic":"Clinic","close":"Close","closeAllOpenedWorkspaces":"Discard changes in {{count}} workspaces","closesActionableNotification":"Closes actionable notification","closeSnackbar":"Close snackbar","closeWorkspaces2PromptBody":"You are about to close the following workspace(s), which might have unsaved changes:","closeWorkspaces2PromptTitle":"Close workspace(s)","closingAllWorkspacesPromptBody":"There may be unsaved changes in the following workspaces. Do you want to discard changes in the following workspaces? {{workspaceNames}}","closingAllWorkspacesPromptTitle":"You have unsaved changes","confirm":"Confirm","contactAdministratorIfIssuePersists":"Contact your system administrator if the problem persists.","contactDetails":"Contact Details","country":"Country","countyDistrict":"District","delete":"Delete","discard":"Discard","discardChanges":"Discard changes","district":"District","edit":"Edit","emptyStateText":"There are no {{displayText}} to display","error":"Error","errorCopy":"Sorry, there was a problem displaying this information. You can try to reload this page, or contact the site administrator and quote the error code above.","errorLoadingLoginLocations":"Unable to load login locations. Please try again or contact support if the problem persists.","female":"Female","hide":"Hide","leftNavigation":"Left navigation","loading":"Loading","male":"Male","maximize":"Maximize","minimize":"Minimize","noResultsToDisplay":"No results to display","openAnyway":"Open Anyway","other":"Other","paginationItemsCount":"{{pageItemsCount}} / {{totalItems}} items","paginationOfPages":"of {{count}} pages","patientAvatarAlt":"Avatar for {{patientName}}","patientIdentifierSticker":"Patient identifier sticker","patientLists":"Patient Lists","patientPhotoAlt":"Profile photo of {{patientName}}","patientPhotoPlaceholder":"Photo placeholder for {{patientName}}","postalCode":"Postal code","print":"Print","printError":"Print error","printErrorExplainer":"An error occurred in {{errorLocation}}","printIdentifierSticker":"Print identifier sticker","printing":"Printing","recordNewEntry":"Record {{displayText}}","relationships":"Relationships","resetOverrides":"Reset overrides","save":"Save","scriptLoadingError":"Failed to load overridden script from {{url}}. Please check that the bundled script is available at the expected URL. Click the button below to reset all import map overrides.","scriptLoadingFailed":"Error: Script failed to load","searchForLocation":"Search for a location","seeAll":"See all","seeMoreLists":"See {{count}} more lists","sex":"Sex","showLess":"Show less","showMore":"Show more","snackbarNotification":"Snackbar notification","state":"State","stateProvince":"State","toggleDevTools":"Toggle dev tools","unknown":"Unknown","unsavedChangesInOpenedWorkspace":"You may have unsaved changes in the opened workspace. Do you want to discard these changes?","unsavedChangesInWorkspace":"There may be unsaved changes in \\"{{workspaceName}}\\". Please save them before opening another workspace.","unsavedChangesTitleText":"Unsaved changes","workspaceHeader":"Workspace header","yearAbbreviation":"yr","yearsAbbreviation":"yrs"}')}}]);
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkopenmrs=self.webpackChunkopenmrs||[]).push([[4945],{74945(e){e.exports=JSON.parse('{"actionableNotification":"Actionable notification","actions":"Actions","address":"Address","address1":"Address line 1","address2":"Address line 2","address3":"Address line 3","address4":"Address line 4","address5":"Address line 5","address6":"Address line 6","age":"Age","cancel":"Cancel","change":"Change","city":"City","cityVillage":"City","Clinic":"Clinic","close":"Close","closeAllOpenedWorkspaces":"Discard changes in {{count}} workspaces","closesActionableNotification":"Closes actionable notification","closeSnackbar":"Close snackbar","closeWorkspaces2PromptBody":"You are about to close the following workspace(s), which might have unsaved changes:","closeWorkspaces2PromptTitle":"Close workspace(s)","closingAllWorkspacesPromptBody":"There may be unsaved changes in the following workspaces. Do you want to discard changes in the following workspaces? {{workspaceNames}}","closingAllWorkspacesPromptTitle":"You have unsaved changes","confirm":"Confirm","contactAdministratorIfIssuePersists":"Contact your system administrator if the problem persists.","contactDetails":"Contact Details","country":"Country","countyDistrict":"District","delete":"Delete","discard":"Discard","discardChanges":"Discard changes","district":"District","edit":"Edit","emptyStateText":"There are no {{displayText}} to display","error":"Error","errorCopy":"Sorry, there was a problem displaying this information. You can try to reload this page, or contact the site administrator and quote the error code above.","errorLoadingLoginLocations":"Unable to load login locations. Please try again or contact support if the problem persists.","female":"Female","hide":"Hide","leftNavigation":"Left navigation","loading":"Loading","male":"Male","maximize":"Maximize","minimize":"Minimize","noResultsToDisplay":"No results to display","openAnyway":"Open Anyway","other":"Other","paginationItemsCount":"{{pageItemsCount}} / {{totalItems}} items","paginationOfPages":"of {{count}} pages","patientAvatarAlt":"Avatar for {{patientName}}","patientIdentifierSticker":"Patient identifier sticker","patientLists":"Patient Lists","patientPhotoAlt":"Profile photo of {{patientName}}","patientPhotoPlaceholder":"Photo placeholder for {{patientName}}","postalCode":"Postal code","print":"Print","printError":"Print error","printErrorExplainer":"An error occurred in {{errorLocation}}","printIdentifierSticker":"Print identifier sticker","printing":"Printing","recordNewEntry":"Record {{displayText}}","relationships":"Relationships","resetOverrides":"Reset overrides","save":"Save","scriptLoadingError":"Failed to load overridden script from {{url}}. Please check that the bundled script is available at the expected URL. Click the button below to reset all import map overrides.","scriptLoadingFailed":"Error: Script failed to load","searchForLocation":"Search for a location","seeAll":"See all","seeMoreLists":"See {{count}} more lists","sex":"Sex","showLess":"Show less","showMore":"Show more","snackbarNotification":"Snackbar notification","state":"State","stateProvince":"State","toggleDevTools":"Toggle dev tools","unknown":"Unknown","unsavedChangesInOpenedWorkspace":"You may have unsaved changes in the opened workspace. Do you want to discard these changes?","unsavedChangesInWorkspace":"There may be unsaved changes in \\"{{workspaceName}}\\". Please save them before opening another workspace.","unsavedChangesTitleText":"Unsaved changes","workspaceHeader":"Workspace header","yearAbbreviation":"yr","yearsAbbreviation":"yrs"}')}}]);