@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.
- package/.eslintignore +5 -0
- package/.eslintrc.js +19 -0
- package/.github/workflows/main.yml +162 -0
- package/.prettierrc +8 -0
- package/LICENSE +401 -0
- package/README.md +317 -0
- package/dist/0081d5d3d536cb23.js +1 -0
- package/dist/02acc4469a2fe2e4.woff2 +0 -0
- package/dist/081587ca0db8e63f.woff2 +0 -0
- package/dist/08cf53c4e5e71cf1.woff2 +0 -0
- package/dist/090b2bc014d24ea4.woff2 +0 -0
- package/dist/09de5db63ef7b579.js +1 -0
- package/dist/0ae92bcea615e948.woff2 +0 -0
- package/dist/0be8520d8945b3b7.woff2 +0 -0
- package/dist/0e7dd073cd8bb0ad.woff2 +0 -0
- package/dist/0edb77cd19e43550.js +1 -0
- package/dist/14869ac5d1830304.woff2 +0 -0
- package/dist/14aaceff85fc8b28.woff2 +0 -0
- package/dist/14c3abea79fc1389.js +1 -0
- package/dist/155a4ac079785bfd.js +1 -0
- package/dist/155a4ac079785bfd.js.map +1 -0
- package/dist/16f443eed01776ca.woff2 +0 -0
- package/dist/183bae0e53a22182.woff2 +0 -0
- package/dist/19c8f94ccd6289f5.woff2 +0 -0
- package/dist/1ae86565eab7451c.woff2 +0 -0
- package/dist/1c7bf8797e0a9be6.woff2 +0 -0
- package/dist/1f266d3619b30f16.woff2 +0 -0
- package/dist/1f8c5a4087a524fd.woff2 +0 -0
- package/dist/20ba2b23c5c0cd0b.woff2 +0 -0
- package/dist/22a32bd51591301b.js +1 -0
- package/dist/273c72d90e432a3d.js +1 -0
- package/dist/295dd01a1fbfee6d.woff2 +0 -0
- package/dist/29cbe6827c3f03ef.js +1 -0
- package/dist/2f686985e26e7107.woff2 +0 -0
- package/dist/315eff729e4ccbd9.woff2 +0 -0
- package/dist/368d16e3259bf207.woff2 +0 -0
- package/dist/36c49aa341a7079a.woff2 +0 -0
- package/dist/36e1e0430475edee.woff2 +0 -0
- package/dist/374c3ee36d9e040a.js +1 -0
- package/dist/377971e519bf3f4a.js +2 -0
- package/dist/377971e519bf3f4a.js.LICENSE.txt +39 -0
- package/dist/377971e519bf3f4a.js.map +1 -0
- package/dist/3b0ea8395009dcf3.js +2 -0
- package/dist/3b0ea8395009dcf3.js.LICENSE.txt +9 -0
- package/dist/3b0ea8395009dcf3.js.map +1 -0
- package/dist/3bc19662b8630ee9.woff2 +0 -0
- package/dist/3f645f473b3f8fba.woff2 +0 -0
- package/dist/41320d8930d23b36.js +1 -0
- package/dist/4218ac9901b9d36d.woff2 +0 -0
- package/dist/4659f3ca46d928b5.js +1 -0
- package/dist/4659f3ca46d928b5.js.map +1 -0
- package/dist/4680ba68412e4da9.woff2 +0 -0
- package/dist/48e37bd7ebf85a1f.woff2 +0 -0
- package/dist/4aabceefe5a2494a.js +1 -0
- package/dist/4c188cbaefba58cd.js +1 -0
- package/dist/4e11b8a7c445255f.woff2 +0 -0
- package/dist/537ddd61c5c1fce2.woff2 +0 -0
- package/dist/54f5eee3a7989556.js +1 -0
- package/dist/55c9107b50dd747c.js +1 -0
- package/dist/56c4118c0907f151.woff2 +0 -0
- package/dist/5938bc2ae7ec60c0.woff2 +0 -0
- package/dist/5c6586155f0d278a.woff2 +0 -0
- package/dist/5e50c92017029ca3.js +1 -0
- package/dist/5e50c92017029ca3.js.map +1 -0
- package/dist/600aca7295d8bcb7.js +2 -0
- package/dist/600aca7295d8bcb7.js.LICENSE.txt +9 -0
- package/dist/600aca7295d8bcb7.js.map +1 -0
- package/dist/60ec587649ba812a.woff2 +0 -0
- package/dist/64cf08a5ac3266d8.js +1 -0
- package/dist/652f476a8a1603d3.js +2 -0
- package/dist/652f476a8a1603d3.js.LICENSE.txt +9 -0
- package/dist/652f476a8a1603d3.js.map +1 -0
- package/dist/65e6511e035870e1.woff2 +0 -0
- package/dist/661425f6798cd16a.woff2 +0 -0
- package/dist/66b864fe213caf46.woff2 +0 -0
- package/dist/680eb791e6266590.js +2 -0
- package/dist/680eb791e6266590.js.LICENSE.txt +19 -0
- package/dist/680eb791e6266590.js.map +1 -0
- package/dist/69d087d970ee9455.woff2 +0 -0
- package/dist/69e3aa4276b4cb4b.js +1 -0
- package/dist/6a88f03fc4e7c3da.js +1 -0
- package/dist/6c6c45e66ff54281.woff2 +0 -0
- package/dist/6d9009857c6df878.js +1 -0
- package/dist/6ebe7cea59ed2853.js +1 -0
- package/dist/6f3181849e740935.js +1 -0
- package/dist/6f3181849e740935.js.map +1 -0
- package/dist/7073a7323e92bd11.woff2 +0 -0
- package/dist/70ac433ae2a89a89.js +1 -0
- package/dist/70ee4ee625ac0ec1.js +1 -0
- package/dist/718c6cc31274ab1a.woff2 +0 -0
- package/dist/727696c3934d0966.js +1 -0
- package/dist/727763c0f0df59dc.js +1 -0
- package/dist/727763c0f0df59dc.js.map +1 -0
- package/dist/72cdbedfe04be9f9.woff2 +0 -0
- package/dist/7509c9f56fe9e532.woff2 +0 -0
- package/dist/75dc5c5b04adc8bf.woff2 +0 -0
- package/dist/77b48bc05299ecca.woff2 +0 -0
- package/dist/7a0a0215c248c73d.woff2 +0 -0
- package/dist/7c0d0c5180de8729.js +1 -0
- package/dist/7f00bebb24e40167.woff2 +0 -0
- package/dist/802c6176541eeed7.woff2 +0 -0
- package/dist/8080081b3379c637.woff2 +0 -0
- package/dist/81cfdaeaa0bbca1f.js +1 -0
- package/dist/8605507b7a8487c4.woff2 +0 -0
- package/dist/893a160d06428365.js +1 -0
- package/dist/893a160d06428365.js.map +1 -0
- package/dist/8a83d654702f6534.woff2 +0 -0
- package/dist/8fe71173a13fe571.woff2 +0 -0
- package/dist/94aa912dcac90114.js +1 -0
- package/dist/9624cec0f9bdd81e.woff2 +0 -0
- package/dist/98a3af55a1698171.woff2 +0 -0
- package/dist/99823aaebba56f46.js +1 -0
- package/dist/9ba85996af74c5ce.woff2 +0 -0
- package/dist/9ddb22faa35006e7.woff2 +0 -0
- package/dist/a167fb2799dd741b.woff2 +0 -0
- package/dist/a2045a5cc4fdf94f.woff2 +0 -0
- package/dist/a246c73905a31c93.woff2 +0 -0
- package/dist/a325099b0a580ce2.js +2 -0
- package/dist/a325099b0a580ce2.js.LICENSE.txt +14 -0
- package/dist/a325099b0a580ce2.js.map +1 -0
- package/dist/a401aa7939cb6e6f.woff2 +0 -0
- package/dist/a40fef67997d3b2c.js +1 -0
- package/dist/a62897b000a24b86.js +1 -0
- package/dist/a6ed036f17a1ea29.woff2 +0 -0
- package/dist/a77bac4877483a0a.js +1 -0
- package/dist/a9f25ca430709a1a.woff2 +0 -0
- package/dist/aa0dfbdd569b1c24.js +2 -0
- package/dist/aa0dfbdd569b1c24.js.LICENSE.txt +5 -0
- package/dist/aa0dfbdd569b1c24.js.map +1 -0
- package/dist/ab0f637d6cff12e4.js +1 -0
- package/dist/afa9121a49e95351.woff2 +0 -0
- package/dist/afcda12d9f805543.woff2 +0 -0
- package/dist/b09ded85a7da77f1.woff2 +0 -0
- package/dist/b10dbe5318a91a12.js +1 -0
- package/dist/b2f4e9d1e821b71c.woff2 +0 -0
- package/dist/b4a074bf828bb757.woff2 +0 -0
- package/dist/b7f447da43f6e596.woff2 +0 -0
- package/dist/bcca84a524572d10.woff2 +0 -0
- package/dist/be093e052a6d50eb.js +1 -0
- package/dist/be4d1f97b11d087c.woff2 +0 -0
- package/dist/bec14780d81164de.woff2 +0 -0
- package/dist/c31657fe213c1b5e.js +1 -0
- package/dist/c49ef726d3f0420b.js +1 -0
- package/dist/c553f7e0199c5084.woff2 +0 -0
- package/dist/c94ac2fdc1ff1418.js +1 -0
- package/dist/c9d9ce9f465df4fe.woff2 +0 -0
- package/dist/cbbb57b397433964.js +2 -0
- package/dist/cbbb57b397433964.js.LICENSE.txt +14 -0
- package/dist/cbbb57b397433964.js.map +1 -0
- package/dist/d188f7f036ac5779.woff2 +0 -0
- package/dist/d1aa59bd9c702dc4.js +2 -0
- package/dist/d1aa59bd9c702dc4.js.LICENSE.txt +32 -0
- package/dist/d1aa59bd9c702dc4.js.map +1 -0
- package/dist/d265d81c58525ae4.woff2 +0 -0
- package/dist/d5942cd81663e136.woff2 +0 -0
- package/dist/d66b8ff73d95cabb.woff2 +0 -0
- package/dist/d84bac6d07672dd2.js +1 -0
- package/dist/d84bac6d07672dd2.js.map +1 -0
- package/dist/d88899ef0fd16719.woff2 +0 -0
- package/dist/d92b5ecf31fc187b.js +1 -0
- package/dist/d9a5d958e69e058d.woff2 +0 -0
- package/dist/dac90d495be353a0.woff2 +0 -0
- package/dist/db0550511978dc47.js +1 -0
- package/dist/dd8ce598529c3fab.woff2 +0 -0
- package/dist/de013f1be25103fa.woff2 +0 -0
- package/dist/df222fceeffca849.woff2 +0 -0
- package/dist/df22bda08ec7964c.js +1 -0
- package/dist/e05b7f902b02a251.js +1 -0
- package/dist/e05b7f902b02a251.js.map +1 -0
- package/dist/e465f1481f0d2e1c.js +1 -0
- package/dist/e62b00b9199c1ac9.woff2 +0 -0
- package/dist/e696cef1407b2610.woff2 +0 -0
- package/dist/eb42de5422d9af00.js +1 -0
- package/dist/eed48feba743e21c.woff2 +0 -0
- package/dist/f135ef54213f8975.js +1 -0
- package/dist/f260e50923d4283b.js +1 -0
- package/dist/f543c88feb236d11.woff2 +0 -0
- package/dist/f591b0079faa93fe.woff2 +0 -0
- package/dist/f6ed27923769ad1d.woff2 +0 -0
- package/dist/f8d066e92ea157c6.js +1 -0
- package/dist/fae042506530c1e6.js +1 -0
- package/dist/favicon.ico +0 -0
- package/dist/fbebeb4336e67012.woff2 +0 -0
- package/dist/fd574df77d31a5eb.js +1 -0
- package/dist/icon_128x128.3dde25c6e69b1c010a6a5d6b27b3f436.png +0 -0
- package/dist/icon_144x144.e263e02b838d229b02ff9133e6e0f2ba.png +0 -0
- package/dist/icon_192x192.d3d318638bbe8a10a3c687d3d302d01a.png +0 -0
- package/dist/icon_256x256.c729f6e7e914b58fcea5ce91d7aa9bad.png +0 -0
- package/dist/icon_384x384.c8923df6b6bd08eba5c79b78d7fcecc0.png +0 -0
- package/dist/icon_512x512.7163efb26df832de513bc58d925ea22e.png +0 -0
- package/dist/icon_96x96.682ee334ae19d49894217370b8596f61.png +0 -0
- package/dist/index.html +9 -0
- package/dist/logo-512.png +0 -0
- package/dist/logo.svg +30 -0
- package/dist/manifest.266df36f2271d27ae9bcaa196a2976ae.json +47 -0
- package/dist/openmrs.39723c21cec4b1fc.css +1 -0
- package/dist/openmrs.39723c21cec4b1fc.css.map +1 -0
- package/dist/openmrs.44bac4c8520ee42f.css +2 -0
- package/dist/openmrs.44bac4c8520ee42f.css.map +1 -0
- package/dist/openmrs.936e8cf6a4b1599d.css +2 -0
- package/dist/openmrs.936e8cf6a4b1599d.css.map +1 -0
- package/dist/openmrs.c3adea28ef850516.js +1 -0
- package/dist/openmrs.c3adea28ef850516.js.map +1 -0
- package/dist/openmrs.e4daba1e3b840e70.css +25 -0
- package/dist/openmrs.e4daba1e3b840e70.css.map +1 -0
- package/dist/service-worker.js +1 -0
- package/dist/service-worker.js.map +1 -0
- package/dist-build-23687264126/0081d5d3d536cb23.js +1 -0
- package/dist-build-23687264126/02acc4469a2fe2e4.woff2 +0 -0
- package/dist-build-23687264126/081587ca0db8e63f.woff2 +0 -0
- package/dist-build-23687264126/08cf53c4e5e71cf1.woff2 +0 -0
- package/dist-build-23687264126/090b2bc014d24ea4.woff2 +0 -0
- package/dist-build-23687264126/09de5db63ef7b579.js +1 -0
- package/dist-build-23687264126/0ae92bcea615e948.woff2 +0 -0
- package/dist-build-23687264126/0be8520d8945b3b7.woff2 +0 -0
- package/dist-build-23687264126/0e7dd073cd8bb0ad.woff2 +0 -0
- package/dist-build-23687264126/0edb77cd19e43550.js +1 -0
- package/dist-build-23687264126/14869ac5d1830304.woff2 +0 -0
- package/dist-build-23687264126/14aaceff85fc8b28.woff2 +0 -0
- package/dist-build-23687264126/14c3abea79fc1389.js +1 -0
- package/dist-build-23687264126/155a4ac079785bfd.js +1 -0
- package/dist-build-23687264126/155a4ac079785bfd.js.map +1 -0
- package/dist-build-23687264126/16f443eed01776ca.woff2 +0 -0
- package/dist-build-23687264126/183bae0e53a22182.woff2 +0 -0
- package/dist-build-23687264126/19c8f94ccd6289f5.woff2 +0 -0
- package/dist-build-23687264126/1ae86565eab7451c.woff2 +0 -0
- package/dist-build-23687264126/1c7bf8797e0a9be6.woff2 +0 -0
- package/dist-build-23687264126/1f266d3619b30f16.woff2 +0 -0
- package/dist-build-23687264126/1f8c5a4087a524fd.woff2 +0 -0
- package/dist-build-23687264126/20ba2b23c5c0cd0b.woff2 +0 -0
- package/dist-build-23687264126/22a32bd51591301b.js +1 -0
- package/dist-build-23687264126/273c72d90e432a3d.js +1 -0
- package/dist-build-23687264126/295dd01a1fbfee6d.woff2 +0 -0
- package/dist-build-23687264126/29cbe6827c3f03ef.js +1 -0
- package/dist-build-23687264126/2f686985e26e7107.woff2 +0 -0
- package/dist-build-23687264126/315eff729e4ccbd9.woff2 +0 -0
- package/dist-build-23687264126/368d16e3259bf207.woff2 +0 -0
- package/dist-build-23687264126/36c49aa341a7079a.woff2 +0 -0
- package/dist-build-23687264126/36e1e0430475edee.woff2 +0 -0
- package/dist-build-23687264126/374c3ee36d9e040a.js +1 -0
- package/dist-build-23687264126/377971e519bf3f4a.js +2 -0
- package/dist-build-23687264126/377971e519bf3f4a.js.LICENSE.txt +39 -0
- package/dist-build-23687264126/377971e519bf3f4a.js.map +1 -0
- package/dist-build-23687264126/3b0ea8395009dcf3.js +2 -0
- package/dist-build-23687264126/3b0ea8395009dcf3.js.LICENSE.txt +9 -0
- package/dist-build-23687264126/3b0ea8395009dcf3.js.map +1 -0
- package/dist-build-23687264126/3bc19662b8630ee9.woff2 +0 -0
- package/dist-build-23687264126/3f645f473b3f8fba.woff2 +0 -0
- package/dist-build-23687264126/41320d8930d23b36.js +1 -0
- package/dist-build-23687264126/4218ac9901b9d36d.woff2 +0 -0
- package/dist-build-23687264126/4659f3ca46d928b5.js +1 -0
- package/dist-build-23687264126/4659f3ca46d928b5.js.map +1 -0
- package/dist-build-23687264126/4680ba68412e4da9.woff2 +0 -0
- package/dist-build-23687264126/48e37bd7ebf85a1f.woff2 +0 -0
- package/dist-build-23687264126/4aabceefe5a2494a.js +1 -0
- package/dist-build-23687264126/4c188cbaefba58cd.js +1 -0
- package/dist-build-23687264126/4e11b8a7c445255f.woff2 +0 -0
- package/dist-build-23687264126/537ddd61c5c1fce2.woff2 +0 -0
- package/dist-build-23687264126/54f5eee3a7989556.js +1 -0
- package/dist-build-23687264126/55c9107b50dd747c.js +1 -0
- package/dist-build-23687264126/56c4118c0907f151.woff2 +0 -0
- package/dist-build-23687264126/5938bc2ae7ec60c0.woff2 +0 -0
- package/dist-build-23687264126/5c6586155f0d278a.woff2 +0 -0
- package/dist-build-23687264126/5e50c92017029ca3.js +1 -0
- package/dist-build-23687264126/5e50c92017029ca3.js.map +1 -0
- package/dist-build-23687264126/600aca7295d8bcb7.js +2 -0
- package/dist-build-23687264126/600aca7295d8bcb7.js.LICENSE.txt +9 -0
- package/dist-build-23687264126/600aca7295d8bcb7.js.map +1 -0
- package/dist-build-23687264126/60ec587649ba812a.woff2 +0 -0
- package/dist-build-23687264126/64cf08a5ac3266d8.js +1 -0
- package/dist-build-23687264126/652f476a8a1603d3.js +2 -0
- package/dist-build-23687264126/652f476a8a1603d3.js.LICENSE.txt +9 -0
- package/dist-build-23687264126/652f476a8a1603d3.js.map +1 -0
- package/dist-build-23687264126/65e6511e035870e1.woff2 +0 -0
- package/dist-build-23687264126/661425f6798cd16a.woff2 +0 -0
- package/dist-build-23687264126/66b864fe213caf46.woff2 +0 -0
- package/dist-build-23687264126/680eb791e6266590.js +2 -0
- package/dist-build-23687264126/680eb791e6266590.js.LICENSE.txt +19 -0
- package/dist-build-23687264126/680eb791e6266590.js.map +1 -0
- package/dist-build-23687264126/69d087d970ee9455.woff2 +0 -0
- package/dist-build-23687264126/69e3aa4276b4cb4b.js +1 -0
- package/dist-build-23687264126/6a88f03fc4e7c3da.js +1 -0
- package/dist-build-23687264126/6c6c45e66ff54281.woff2 +0 -0
- package/dist-build-23687264126/6d9009857c6df878.js +1 -0
- package/dist-build-23687264126/6ebe7cea59ed2853.js +1 -0
- package/dist-build-23687264126/6f3181849e740935.js +1 -0
- package/dist-build-23687264126/6f3181849e740935.js.map +1 -0
- package/dist-build-23687264126/7073a7323e92bd11.woff2 +0 -0
- package/dist-build-23687264126/70ac433ae2a89a89.js +1 -0
- package/dist-build-23687264126/70ee4ee625ac0ec1.js +1 -0
- package/dist-build-23687264126/718c6cc31274ab1a.woff2 +0 -0
- package/dist-build-23687264126/727696c3934d0966.js +1 -0
- package/dist-build-23687264126/727763c0f0df59dc.js +1 -0
- package/dist-build-23687264126/727763c0f0df59dc.js.map +1 -0
- package/dist-build-23687264126/72cdbedfe04be9f9.woff2 +0 -0
- package/dist-build-23687264126/7509c9f56fe9e532.woff2 +0 -0
- package/dist-build-23687264126/75dc5c5b04adc8bf.woff2 +0 -0
- package/dist-build-23687264126/77b48bc05299ecca.woff2 +0 -0
- package/dist-build-23687264126/7a0a0215c248c73d.woff2 +0 -0
- package/dist-build-23687264126/7c0d0c5180de8729.js +1 -0
- package/dist-build-23687264126/7f00bebb24e40167.woff2 +0 -0
- package/dist-build-23687264126/802c6176541eeed7.woff2 +0 -0
- package/dist-build-23687264126/8080081b3379c637.woff2 +0 -0
- package/dist-build-23687264126/81cfdaeaa0bbca1f.js +1 -0
- package/dist-build-23687264126/8605507b7a8487c4.woff2 +0 -0
- package/dist-build-23687264126/893a160d06428365.js +1 -0
- package/dist-build-23687264126/893a160d06428365.js.map +1 -0
- package/dist-build-23687264126/8a83d654702f6534.woff2 +0 -0
- package/dist-build-23687264126/8fe71173a13fe571.woff2 +0 -0
- package/dist-build-23687264126/94aa912dcac90114.js +1 -0
- package/dist-build-23687264126/9624cec0f9bdd81e.woff2 +0 -0
- package/dist-build-23687264126/98a3af55a1698171.woff2 +0 -0
- package/dist-build-23687264126/99823aaebba56f46.js +1 -0
- package/dist-build-23687264126/9ba85996af74c5ce.woff2 +0 -0
- package/dist-build-23687264126/9ddb22faa35006e7.woff2 +0 -0
- package/dist-build-23687264126/a167fb2799dd741b.woff2 +0 -0
- package/dist-build-23687264126/a2045a5cc4fdf94f.woff2 +0 -0
- package/dist-build-23687264126/a246c73905a31c93.woff2 +0 -0
- package/dist-build-23687264126/a325099b0a580ce2.js +2 -0
- package/dist-build-23687264126/a325099b0a580ce2.js.LICENSE.txt +14 -0
- package/dist-build-23687264126/a325099b0a580ce2.js.map +1 -0
- package/dist-build-23687264126/a401aa7939cb6e6f.woff2 +0 -0
- package/dist-build-23687264126/a40fef67997d3b2c.js +1 -0
- package/dist-build-23687264126/a62897b000a24b86.js +1 -0
- package/dist-build-23687264126/a6ed036f17a1ea29.woff2 +0 -0
- package/dist-build-23687264126/a77bac4877483a0a.js +1 -0
- package/dist-build-23687264126/a9f25ca430709a1a.woff2 +0 -0
- package/dist-build-23687264126/aa0dfbdd569b1c24.js +2 -0
- package/dist-build-23687264126/aa0dfbdd569b1c24.js.LICENSE.txt +5 -0
- package/dist-build-23687264126/aa0dfbdd569b1c24.js.map +1 -0
- package/dist-build-23687264126/ab0f637d6cff12e4.js +1 -0
- package/dist-build-23687264126/afa9121a49e95351.woff2 +0 -0
- package/dist-build-23687264126/afcda12d9f805543.woff2 +0 -0
- package/dist-build-23687264126/b09ded85a7da77f1.woff2 +0 -0
- package/dist-build-23687264126/b10dbe5318a91a12.js +1 -0
- package/dist-build-23687264126/b2f4e9d1e821b71c.woff2 +0 -0
- package/dist-build-23687264126/b4a074bf828bb757.woff2 +0 -0
- package/dist-build-23687264126/b7f447da43f6e596.woff2 +0 -0
- package/dist-build-23687264126/bcca84a524572d10.woff2 +0 -0
- package/dist-build-23687264126/be093e052a6d50eb.js +1 -0
- package/dist-build-23687264126/be4d1f97b11d087c.woff2 +0 -0
- package/dist-build-23687264126/bec14780d81164de.woff2 +0 -0
- package/dist-build-23687264126/c31657fe213c1b5e.js +1 -0
- package/dist-build-23687264126/c49ef726d3f0420b.js +1 -0
- package/dist-build-23687264126/c553f7e0199c5084.woff2 +0 -0
- package/dist-build-23687264126/c94ac2fdc1ff1418.js +1 -0
- package/dist-build-23687264126/c9d9ce9f465df4fe.woff2 +0 -0
- package/dist-build-23687264126/cbbb57b397433964.js +2 -0
- package/dist-build-23687264126/cbbb57b397433964.js.LICENSE.txt +14 -0
- package/dist-build-23687264126/cbbb57b397433964.js.map +1 -0
- package/dist-build-23687264126/d188f7f036ac5779.woff2 +0 -0
- package/dist-build-23687264126/d1aa59bd9c702dc4.js +2 -0
- package/dist-build-23687264126/d1aa59bd9c702dc4.js.LICENSE.txt +32 -0
- package/dist-build-23687264126/d1aa59bd9c702dc4.js.map +1 -0
- package/dist-build-23687264126/d265d81c58525ae4.woff2 +0 -0
- package/dist-build-23687264126/d5942cd81663e136.woff2 +0 -0
- package/dist-build-23687264126/d66b8ff73d95cabb.woff2 +0 -0
- package/dist-build-23687264126/d84bac6d07672dd2.js +1 -0
- package/dist-build-23687264126/d84bac6d07672dd2.js.map +1 -0
- package/dist-build-23687264126/d88899ef0fd16719.woff2 +0 -0
- package/dist-build-23687264126/d92b5ecf31fc187b.js +1 -0
- package/dist-build-23687264126/d9a5d958e69e058d.woff2 +0 -0
- package/dist-build-23687264126/dac90d495be353a0.woff2 +0 -0
- package/dist-build-23687264126/db0550511978dc47.js +1 -0
- package/dist-build-23687264126/dd8ce598529c3fab.woff2 +0 -0
- package/dist-build-23687264126/de013f1be25103fa.woff2 +0 -0
- package/dist-build-23687264126/df222fceeffca849.woff2 +0 -0
- package/dist-build-23687264126/df22bda08ec7964c.js +1 -0
- package/dist-build-23687264126/e05b7f902b02a251.js +1 -0
- package/dist-build-23687264126/e05b7f902b02a251.js.map +1 -0
- package/dist-build-23687264126/e465f1481f0d2e1c.js +1 -0
- package/dist-build-23687264126/e62b00b9199c1ac9.woff2 +0 -0
- package/dist-build-23687264126/e696cef1407b2610.woff2 +0 -0
- package/dist-build-23687264126/eb42de5422d9af00.js +1 -0
- package/dist-build-23687264126/eed48feba743e21c.woff2 +0 -0
- package/dist-build-23687264126/f135ef54213f8975.js +1 -0
- package/dist-build-23687264126/f260e50923d4283b.js +1 -0
- package/dist-build-23687264126/f543c88feb236d11.woff2 +0 -0
- package/dist-build-23687264126/f591b0079faa93fe.woff2 +0 -0
- package/dist-build-23687264126/f6ed27923769ad1d.woff2 +0 -0
- package/dist-build-23687264126/f8d066e92ea157c6.js +1 -0
- package/dist-build-23687264126/fae042506530c1e6.js +1 -0
- package/dist-build-23687264126/favicon.ico +0 -0
- package/dist-build-23687264126/fbebeb4336e67012.woff2 +0 -0
- package/dist-build-23687264126/fd574df77d31a5eb.js +1 -0
- package/dist-build-23687264126/icon_128x128.3dde25c6e69b1c010a6a5d6b27b3f436.png +0 -0
- package/dist-build-23687264126/icon_144x144.e263e02b838d229b02ff9133e6e0f2ba.png +0 -0
- package/dist-build-23687264126/icon_192x192.d3d318638bbe8a10a3c687d3d302d01a.png +0 -0
- package/dist-build-23687264126/icon_256x256.c729f6e7e914b58fcea5ce91d7aa9bad.png +0 -0
- package/dist-build-23687264126/icon_384x384.c8923df6b6bd08eba5c79b78d7fcecc0.png +0 -0
- package/dist-build-23687264126/icon_512x512.7163efb26df832de513bc58d925ea22e.png +0 -0
- package/dist-build-23687264126/icon_96x96.682ee334ae19d49894217370b8596f61.png +0 -0
- package/dist-build-23687264126/index.html +9 -0
- package/dist-build-23687264126/logo-512.png +0 -0
- package/dist-build-23687264126/logo.svg +30 -0
- package/dist-build-23687264126/manifest.266df36f2271d27ae9bcaa196a2976ae.json +47 -0
- package/dist-build-23687264126/openmrs.39723c21cec4b1fc.css +1 -0
- package/dist-build-23687264126/openmrs.39723c21cec4b1fc.css.map +1 -0
- package/dist-build-23687264126/openmrs.44bac4c8520ee42f.css +2 -0
- package/dist-build-23687264126/openmrs.44bac4c8520ee42f.css.map +1 -0
- package/dist-build-23687264126/openmrs.936e8cf6a4b1599d.css +2 -0
- package/dist-build-23687264126/openmrs.936e8cf6a4b1599d.css.map +1 -0
- package/dist-build-23687264126/openmrs.c3adea28ef850516.js +1 -0
- package/dist-build-23687264126/openmrs.c3adea28ef850516.js.map +1 -0
- package/dist-build-23687264126/openmrs.e4daba1e3b840e70.css +25 -0
- package/dist-build-23687264126/openmrs.e4daba1e3b840e70.css.map +1 -0
- package/dist-build-23687264126/service-worker.js +1 -0
- package/dist-build-23687264126/service-worker.js.map +1 -0
- package/e2e/core/env.ts +5 -0
- package/e2e/core/global-setup.ts +34 -0
- package/e2e/core/test.ts +21 -0
- package/e2e/pages/app-shell.page.ts +34 -0
- package/e2e/pages/etl-sources.page.ts +35 -0
- package/e2e/pages/report-sections.page.ts +20 -0
- package/e2e/pages/section-preview.modal.ts +29 -0
- package/e2e/specs/etl-sources.spec.ts +51 -0
- package/e2e/specs/navigation.spec.ts +13 -0
- package/e2e/specs/section-preview-validation.spec.ts +38 -0
- package/e2e/specs/section-preview.spec.ts +94 -0
- package/e2e/tsconfig.json +11 -0
- package/example.env +5 -0
- package/jest.config.js +28 -0
- package/package.json +82 -0
- package/playwright.config.ts +28 -0
- package/src/admin-card-link.extension.module.scss +55 -0
- package/src/admin-card-link.extension.tsx +24 -0
- package/src/components/admin/admin-page.component.tsx +31 -0
- package/src/components/admin/age-categories-page.component.tsx +109 -0
- package/src/components/admin/age-groups-page.component.tsx +146 -0
- package/src/components/admin/etl-sources-page.component.tsx +344 -0
- package/src/components/admin/report-categories-page.component.tsx +256 -0
- package/src/components/admin/report-library-page.component.tsx +540 -0
- package/src/components/ai-support/ai-assist-button.component.tsx +30 -0
- package/src/components/ai-support/ai-assist-modal.component.tsx +81 -0
- package/src/components/ai-support/ai.service.ts +21 -0
- package/src/components/ai-support/ai.types.ts +12 -0
- package/src/components/app-shell/report-builder-shell.component.tsx +120 -0
- package/src/components/app-shell/report-builder-shell.scss +15 -0
- package/src/components/data-themes/data-theme-form.component.tsx +59 -0
- package/src/components/data-themes/data-theme-modal.component.tsx +349 -0
- package/src/components/data-themes/data-themes-page.component.tsx +132 -0
- package/src/components/data-themes/data-themes-table.component.tsx +91 -0
- package/src/components/data-themes/icon-registry.ts +35 -0
- package/src/components/data-themes/sections/data-theme-basics.section.tsx +63 -0
- package/src/components/data-themes/sections/data-theme-condition-columns.section.tsx +397 -0
- package/src/components/data-themes/sections/data-theme-fields-editor.section.tsx +125 -0
- package/src/components/data-themes/sections/data-theme-metadata.section.tsx +245 -0
- package/src/components/data-themes/sections/data-theme-preview.section.tsx +115 -0
- package/src/components/data-themes/sections/data-theme-source.section.tsx +184 -0
- package/src/components/indicators/README.md +24 -0
- package/src/components/indicators/base-indicator-basic-fields.component.tsx +18 -0
- package/src/components/indicators/base-indicator-basics.section.tsx +54 -0
- package/src/components/indicators/base-indicator-countby.section.tsx +25 -0
- package/src/components/indicators/base-indicator-criteria.section.tsx +83 -0
- package/src/components/indicators/base-indicator-details-form.component.tsx +80 -0
- package/src/components/indicators/base-indicator-theme-unit-fields.component.tsx +39 -0
- package/src/components/indicators/create-base-indicator-modal.component.tsx +501 -0
- package/src/components/indicators/create-composite-base-indicator-modal.component.tsx +297 -0
- package/src/components/indicators/create-final-indicator-modal.component.tsx +260 -0
- package/src/components/indicators/diagnosis-filters-form.component.tsx +101 -0
- package/src/components/indicators/disaggregation-panel.component.tsx +93 -0
- package/src/components/indicators/handler/concept-search-multiselect.component.tsx +153 -0
- package/src/components/indicators/handler/question-answer-concept-search.component.tsx +336 -0
- package/src/components/indicators/indicator-status-tag.component.tsx +9 -0
- package/src/components/indicators/indicators-page.component.tsx +481 -0
- package/src/components/indicators/indicators-page.scss +121 -0
- package/src/components/indicators/indicators-table.component.tsx +166 -0
- package/src/components/indicators/preview-table.component.tsx +31 -0
- package/src/components/indicators/sections/composite-indicator-basics.section.tsx +36 -0
- package/src/components/indicators/sections/composite-indicator-picker.section.tsx +161 -0
- package/src/components/indicators/sections/composite-indicator-sql-preview.section.tsx +31 -0
- package/src/components/indicators/sections/final-indicator-basics.section.tsx +46 -0
- package/src/components/indicators/sections/final-indicator-disaggregation.section.tsx +47 -0
- package/src/components/indicators/sections/final-indicator-picker.section.tsx +92 -0
- package/src/components/indicators/sections/final-indicator-preview.section.tsx +20 -0
- package/src/components/indicators/sections/final-indicator-results-preview.section.tsx +65 -0
- package/src/components/indicators/sections/indicator-basics.section.tsx +40 -0
- package/src/components/indicators/sections/indicator-conditions.section.tsx +194 -0
- package/src/components/indicators/sections/indicator-sql-preview.section.tsx +26 -0
- package/src/components/indicators/sections/indicator-theme.section.tsx +48 -0
- package/src/components/indicators/sql-preview.component.tsx +19 -0
- package/src/components/indicators/types/base-indicator-form.types.ts +17 -0
- package/src/components/indicators/types/base-indicator-theme.constants.ts +8 -0
- package/src/components/indicators/types/composite-indicator.types.ts +21 -0
- package/src/components/indicators/types/condition-ui.types.ts +11 -0
- package/src/components/indicators/types/data-theme-config.types.ts +88 -0
- package/src/components/indicators/types/indicator-types.ts +56 -0
- package/src/components/indicators/types/sql-builders.ts +43 -0
- package/src/components/indicators/utils/composite-indicator-sql.utils.ts +206 -0
- package/src/components/indicators/utils/concept-preload.utils.ts +21 -0
- package/src/components/indicators/utils/final-indicator-sql.utils.ts +124 -0
- package/src/components/indicators/utils/indicator-conditions-hydration.utils.ts +254 -0
- package/src/components/indicators/utils/indicator-sql.utils.ts +185 -0
- package/src/components/landing/landing-action-item.component.tsx +50 -0
- package/src/components/landing/landing-action-list.component.tsx +12 -0
- package/src/components/landing/landing-activity-list.component.tsx +47 -0
- package/src/components/landing/landing-footer-grid.component.tsx +45 -0
- package/src/components/landing/landing-hero.component.tsx +18 -0
- package/src/components/landing/landing-section-card.component.tsx +33 -0
- package/src/components/landing/report-builder-landing-page.component.tsx +103 -0
- package/src/components/landing/report-builder-landing-page.scss +131 -0
- package/src/components/report/dashboard/reports-table.component.tsx +145 -0
- package/src/components/report/definition/panels/properties-panel.component.tsx +38 -0
- package/src/components/report/definition/panels/report-structure-panel.component.tsx +61 -0
- package/src/components/report/definition/panels/selection-panel.component.tsx +58 -0
- package/src/components/report/definition/report-definition-editor.component.tsx +99 -0
- package/src/components/report/definition/report-definition.types.ts +66 -0
- package/src/components/report/design/panels/IndicatorPropertiesPanel.scss +33 -0
- package/src/components/report/design/panels/IndicatorPropertiesPanel.tsx +389 -0
- package/src/components/report/design/panels/JsonPreviewPanel.scss +32 -0
- package/src/components/report/design/panels/JsonPreviewPanel.tsx +104 -0
- package/src/components/report/design/panels/mapping-preview-panel.component.tsx +82 -0
- package/src/components/report/design/panels/mapping-preview-panel.scss +55 -0
- package/src/components/report/design/panels/template-structure-panel.component.tsx +296 -0
- package/src/components/report/design/panels/template-structure-panel.scss +81 -0
- package/src/components/report/design/report-design-editor.component.tsx +894 -0
- package/src/components/report/design/report-design.types.ts +43 -0
- package/src/components/report/design/report-design.utils.ts +86 -0
- package/src/components/report/panels/report-detail.component.tsx +71 -0
- package/src/components/report/panels/report-panel-shell.component.tsx +60 -0
- package/src/components/report/report-dashboard.page.component.tsx +75 -0
- package/src/components/report/report-editor.page.component.tsx +466 -0
- package/src/components/report/report.routes.tsx +30 -0
- package/src/components/report-sections/create-report-section-modal.component.tsx +278 -0
- package/src/components/report-sections/hooks/useAgeCategories.ts +25 -0
- package/src/components/report-sections/hooks/useSectionEditorState.ts +306 -0
- package/src/components/report-sections/panels/Dhis2MappingPanel.tsx +157 -0
- package/src/components/report-sections/panels/DisaggregationPanel.tsx +97 -0
- package/src/components/report-sections/panels/IndicatorPickerPanel.tsx +143 -0
- package/src/components/report-sections/panels/SectionBasicsPanel.tsx +27 -0
- package/src/components/report-sections/report-section-preview-modal.component.tsx +418 -0
- package/src/components/report-sections/report-sections-page.component.tsx +313 -0
- package/src/components/report-sections/section-types.ts +55 -0
- package/src/components/report-sections/section-utils.ts +46 -0
- package/src/components/report-sections/sections-page.scss +79 -0
- package/src/components/run-reports/run-reports-page.component.tsx +23 -0
- package/src/components/shared/header/builder-header-actions.component.tsx +38 -0
- package/src/components/shared/header/header.component.tsx +85 -0
- package/src/components/shared/header/header.scss +150 -0
- package/src/components/shared/header/illustration.component.tsx +34 -0
- package/src/components/shared/indicator-properties-panel/IndicatorPropertiesPanel.scss +33 -0
- package/src/components/shared/indicator-properties-panel/IndicatorPropertiesPanel.tsx +389 -0
- package/src/components/shared/json-preview-panel/JsonPreviewPanel.scss +32 -0
- package/src/components/shared/json-preview-panel/JsonPreviewPanel.tsx +104 -0
- package/src/components/shared/mapping-preview-panel/mapping-preview-panel.component.tsx +82 -0
- package/src/components/shared/mapping-preview-panel/mapping-preview-panel.scss +55 -0
- package/src/components/shared/preview/query-results-preview.component.tsx +204 -0
- package/src/components/shared/template-structure-panel/template-structure-panel.component.tsx +296 -0
- package/src/components/shared/template-structure-panel/template-structure-panel.scss +81 -0
- package/src/config-schema.ts +23 -0
- package/src/globals.d.ts +14 -0
- package/src/hooks/theme/useDataThemes.ts +28 -0
- package/src/hooks/theme/useMambaTableMeta.ts +34 -0
- package/src/hooks/theme/useMambaTables.ts +63 -0
- package/src/index.ts +23 -0
- package/src/resources/agegroup/agegroups.api.ts +58 -0
- package/src/resources/concepts/concept-mapper.ts +21 -0
- package/src/resources/concepts/concept-types.ts +31 -0
- package/src/resources/concepts/concepts.resource.ts +44 -0
- package/src/resources/concepts/useConceptSearch.ts +41 -0
- package/src/resources/etl-source/etl-source.api.ts +65 -0
- package/src/resources/indicator/indicators.api.ts +125 -0
- package/src/resources/openmrs-api.ts +24 -0
- package/src/resources/preview/sql-preview.api.ts +54 -0
- package/src/resources/report/reports.api.ts +117 -0
- package/src/resources/report-category/report-category.api.ts +41 -0
- package/src/resources/report-library/report-library.api.ts +63 -0
- package/src/resources/report-section/report-sections.api.ts +73 -0
- package/src/resources/report-section/section-preview.api.ts +21 -0
- package/src/resources/theme/data-theme.api.ts +88 -0
- package/src/resources/theme/mamba-schema.api.ts +31 -0
- package/src/resources/theme/mamba-table-meta.api.ts +45 -0
- package/src/root.component.tsx +20 -0
- package/src/routes/report-builder.routes.tsx +66 -0
- package/src/routes/report-builder.scss +56 -0
- package/src/routes.json +21 -0
- package/src/sample-template.ts +121 -0
- package/src/template-utils.ts +110 -0
- package/src/types/carbon-react-inert.d.ts +13 -0
- package/src/types/condition-operators.ts +49 -0
- package/src/types/theme/data-theme.types.ts +88 -0
- package/src/utils/html-entities.utils.ts +23 -0
- package/tools/setup-tests.ts +1 -0
- package/translations/en.json +4 -0
- package/tsconfig.json +43 -0
- 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":"40BAGA,MAAMA,EAAO,OAKPC,EAA8BD,IAC9BE,EAASC,OACTC,EAAeC,GAAIA,IAAMJ,EACzBK,EAAcD,GAAgB,mBAALA,EACzBE,EAAe,CAACC,EAAGC,KAAI,IAClBD,KACAC,IAELC,EAAiBC,GAAIL,EAAWK,EAAEC,MAMlCC,EAAQ,IAAIC,QAElB,IAAIC,EAAU,EASd,MAAMC,EAAcC,IAChB,MAAMC,SAAcD,EACdE,EAAcF,GAAOA,EAAIE,YACzBC,EAASD,GAAeE,KAC9B,IAAIC,EACAC,EACJ,GAAIrB,EAAOe,KAASA,GAAQG,GAAUD,GAAeK,OA8BjDF,EAASF,EAASH,EAAIQ,SAAmB,UAARP,EAAmBD,EAAIS,WAAqB,UAARR,EAAmBS,KAAKC,UAAUX,GAAO,GAAKA,MA9B1D,CAIzD,GADAK,EAAST,EAAMgB,IAAIZ,GACfK,EAAQ,OAAOA,EAMnB,GAFAA,IAAWP,EAAU,IACrBF,EAAMiB,IAAIb,EAAKK,GACXH,GAAeY,MAAO,CAGtB,IADAT,EAAS,IACLC,EAAQ,EAAGA,EAAQN,EAAIe,OAAQT,IAC/BD,GAAUN,EAAWC,EAAIM,IAAU,IAEvCV,EAAMiB,IAAIb,EAAKK,EACnB,CACA,GAAIH,GAAejB,EAAQ,CAEvBoB,EAAS,IACT,MAAMW,EAAO/B,EAAO+B,KAAKhB,GAAKiB,OAC9B,MAAO9B,EAAYmB,EAAQU,EAAKE,QACvB/B,EAAYa,EAAIM,MACjBD,GAAUC,EAAQ,IAAMP,EAAWC,EAAIM,IAAU,KAGzDV,EAAMiB,IAAIb,EAAKK,EACnB,CACJ,CAGA,OAAOA,GAILc,EAAiB,IAAItB,QAErBuB,EAAc,CAAC,EACfC,EAAgB,CAAC,EACjBC,EAAgB,YAEhBC,SAAyBC,QAAUF,EACnCG,SAA2BC,UAAYJ,EACvCK,EAA2B,IAAIJ,UAA0BC,OAA8B,uBAAKF,EAC5FM,EAAoB,CAACC,EAAOC,KAC9B,MAAMC,EAAQZ,EAAeP,IAAIiB,GACjC,MAAO,CAEH,KAAK1C,EAAY2C,IAAQD,EAAMjB,IAAIkB,IAAQV,EAE1CY,IACG,IAAK7C,EAAY2C,GAAM,CACnB,MAAMG,EAAOJ,EAAMjB,IAAIkB,GAGjBA,KAAOT,IACTA,EAAcS,GAAOG,GAEzBF,EAAM,GAAGD,EAAKxC,EAAa2C,EAAMD,GAAOC,GAAQb,EACpD,GAGJW,EAAM,GAEN,KACS5C,EAAY2C,IAETA,KAAOT,EAAsBA,EAAcS,IAG3C3C,EAAY2C,IAAQD,EAAMjB,IAAIkB,IAAQV,IAYtD,IAAIc,GAAS,EACjB,MAEOC,EAAeC,GAAkBb,GAAmBC,OAAOa,iBAAmB,CACjFb,OAAOa,iBAAiBC,KAAKd,QAC7BA,OAAOe,oBAAoBD,KAAKd,SAChC,CACAzC,EACAA,GAoCEyD,EAAS,CACXC,SA5Ca,IAAIP,EA6CjBQ,UApCc,KACd,MAAMC,EAAkBlB,GAAqBC,SAASiB,gBACtD,OAAOxD,EAAYwD,IAAwC,WAApBA,IAoCrCC,EAAuB,CACzBC,UAnCeC,IAEXrB,GACAC,SAASW,iBAAiB,mBAAoBS,GAElDX,EAAc,QAASW,GAChB,KACCrB,GACAC,SAASa,oBAAoB,mBAAoBO,GAErDV,EAAe,QAASU,KA0B5BC,cAvBmBD,IAEnB,MAAME,EAAW,KACbd,GAAS,EACTY,KAGEG,EAAY,KACdf,GAAS,GAIb,OAFAC,EAAc,SAAUa,GACxBb,EAAc,UAAWc,GAClB,KACHb,EAAe,SAAUY,GACzBZ,EAAe,UAAWa,MAY5BC,GAAmB,QACnBC,GAAa5B,GAAmB,SAAUC,OAE1C4B,EAAOC,GAAI1B,IAA6BH,OAA8B,sBAAE6B,GAAKC,WAAWD,EAAG,GAI3FE,EAA4BJ,EAAY,EAAAK,UAAY,EAAAC,gBAEpDC,EAA2C,oBAAdC,WAA6BA,UAAUC,WAEpEC,GAAkBV,GAAaO,IAAwB,CACzD,UACA,MACFI,SAASJ,EAAoBK,gBAAkBL,EAAoBM,UAE/DC,EAAanC,IACf,GAAIzC,EAAWyC,GACX,IACIA,EAAMA,GACV,CAAE,MAAOoC,GAELpC,EAAM,EACV,CAIJ,MAAMqC,EAAOrC,EAGb,MAAO,CADPA,EAAoB,iBAAPA,EAAkBA,GAAOhB,MAAMsD,QAAQtC,GAAOA,EAAIf,OAASe,GAAO/B,EAAW+B,GAAO,GAG7FqC,IAKR,IAAIE,EAAc,EAClB,MAAMC,EAAe,MAAMD,EAO3B,IAAIE,EAAS,CACXC,UAAW,KACXC,uBAJ6B,EAK7BC,YARkB,EASlBC,aAPmB,EAQnBC,gBATsB,GAYxBC,eAAeC,KAAkBX,GAC7B,MAAOtC,EAAOkD,EAAMC,EAAOC,GAASd,EAG9Be,EAAU5F,EAAa,CACzB6F,eAAe,EACfC,cAAc,GACE,kBAAVH,EAAsB,CAC5BI,WAAYJ,GACZA,GAAS,CAAC,GACd,IAAIE,EAAgBD,EAAQC,cAC5B,MAAMG,EAAwBJ,EAAQK,gBACtC,IAAIC,EAAiBN,EAAQM,eAC7B,MAGMJ,EAAeF,EAAQE,aAG7B,GAAI/F,EAAW0F,GAAO,CAClB,MAAMU,EAAYV,EACZW,EAAc,GACdC,EAAK9D,EAAMb,OACjB,IAAK,MAAMc,KAAO6D,GAEb,iBAAiBC,KAAK9D,IAAQ2D,EAAU5D,EAAMjB,IAAIkB,GAAK+D,KACpDH,EAAYI,KAAKhE,GAGzB,OAAOiE,QAAQC,IAAIN,EAAYO,IAAIC,GACvC,CACA,OAAOA,EAAYnB,GACnBF,eAAeqB,EAAYL,GAEvB,MAAO/D,GAAOmC,EAAU4B,GACxB,IAAK/D,EAAK,OACV,MAAOlB,EAAKC,GAAOe,EAAkBC,EAAOC,IACrCqE,EAAoBC,EAAUC,EAAOC,GAAWnF,EAAeP,IAAIiB,GACpE0E,EAAkB,KACpB,MAAMC,EAAeL,EAAmBrE,GAExC,OADmBzC,EAAW6F,EAAQG,YAAcH,EAAQG,WAAWzE,IAAM6F,KAAMZ,IAA6B,IAAvBX,EAAQG,qBAItFgB,EAAMvE,UACNwE,EAAQxE,GACX0E,GAAgBA,EAAa,IACtBA,EAAa,GA1DnB,GA0DoC7G,KAAK,IAAIiB,IAAM6F,MAGrD7F,IAAM6F,MAGjB,GAAItC,EAAKpD,OAAS,EAEd,OAAOwF,IAEX,IACIG,EADAD,EAAOzB,EAGX,MAAM2B,EAAmBrC,IACzB8B,EAAStE,GAAO,CACZ6E,EACA,GAEJ,MAAMC,GAAqBzH,EAAYqG,GACjCzD,EAAQnB,IAIRiG,EAAgB9E,EAAM0E,KACtBK,EAAc/E,EAAMgF,GACpBC,EAAgB7H,EAAY2H,GAAeD,EAAgBC,EAUjE,GARIF,IACApB,EAAiBnG,EAAWmG,GAAkBA,EAAewB,EAAeH,GAAiBrB,EAE7F3E,EAAI,CACA4F,KAAMjB,EACNuB,GAAIC,KAGR3H,EAAWoH,GAEX,IACIA,EAAOA,EAAKO,EAChB,CAAE,MAAO9C,GAELwC,EAAQxC,CACZ,CAGJ,GAAIuC,GAAQhH,EAAcgH,GAAO,CAS7B,GANAA,QAAaA,EAAKQ,MAAO/C,IACrBwC,EAAQxC,IAKRyC,IAAqBP,EAAStE,GAAK,GAAI,CACvC,GAAI4E,EAAO,MAAMA,EACjB,OAAOD,CACX,CAAWC,GAASE,GA3FJ,CAACF,GACmB,mBAA1BpB,EAAuCA,EAAsBoB,IAAmC,IAA1BpB,EA0FvCC,CAAgBmB,KAGrDvB,GAAgB,EAEhBtE,EAAI,CACA4F,KAAMO,EACND,GAAI/H,IAGhB,CAEA,GAAImG,IACKuB,EAED,GAAIrH,EAAW8F,GAAgB,CAC3B,MAAM+B,EAAqB/B,EAAcsB,EAAMO,GAC/CnG,EAAI,CACA4F,KAAMS,EACNR,MAAO1H,EACP+H,GAAI/H,GAEZ,MAEI6B,EAAI,CACA4F,OACAC,MAAO1H,EACP+H,GAAI/H,IAgBpB,GAVAoH,EAAStE,GAAK,GAAKwC,IAEnByB,QAAQoB,QAAQZ,KAAmB5G,KAAK,KAGpCkB,EAAI,CACAkG,GAAI/H,OAIR0H,EAIJ,OAAOD,EAHH,GAAIrB,EAAc,MAAMsB,CAIhC,CACJ,CAEA,MAAMU,EAAoB,CAACZ,EAAcvG,KACrC,IAAI,MAAM6B,KAAO0E,EACTA,EAAa1E,GAAK,IAAI0E,EAAa1E,GAAK,GAAG7B,IAGjDoH,EAAY,CAACC,EAAUpC,KAMzB,IAAK/D,EAAeoG,IAAID,GAAW,CAC/B,MAAME,EAAOlI,EAAasD,EAAsBsC,GAG1CiB,EAAqB,CAAC,EACtBsB,EAAS3C,EAAexC,KAAKtD,EAAWsI,GAC9C,IAAII,EAAU3I,EACd,MAAM4I,EAAgB,CAAC,EACjBC,EAAY,CAAC9F,EAAKgB,KACpB,MAAM+E,EAAOF,EAAc7F,IAAQ,GAGnC,OAFA6F,EAAc7F,GAAO+F,EACrBA,EAAK/B,KAAKhD,GACH,IAAI+E,EAAKC,OAAOD,EAAKE,QAAQjF,GAAW,IAE7CkF,EAAS,CAAClG,EAAKmG,EAAOhG,KACxBqF,EAASzG,IAAIiB,EAAKmG,GAClB,MAAMJ,EAAOF,EAAc7F,GAC3B,GAAI+F,EACA,IAAK,MAAMK,KAAML,EACbK,EAAGD,EAAOhG,IAIhBkG,EAAe,KACjB,IAAKhH,EAAeoG,IAAID,KAEpBnG,EAAeN,IAAIyG,EAAU,CACzBnB,EACA,CAAC,EACD,CAAC,EACD,CAAC,EACDsB,EACAO,EACAJ,KAECzE,GAAW,CAOZ,MAAMiF,EAAeZ,EAAK3E,UAAUS,WAAWhB,KAAKtD,EAAWoI,EAAkB9E,KAAKtD,EAAWmH,EA7NjG,KA8NMkC,EAAmBb,EAAKzE,cAAcO,WAAWhB,KAAKtD,EAAWoI,EAAkB9E,KAAKtD,EAAWmH,EA7NrG,KA8NJuB,EAAU,KACNU,GAAgBA,IAChBC,GAAoBA,IAIpBlH,EAAemH,OAAOhB,GAE9B,GASR,OANAa,IAMO,CACHb,EACAG,EACAU,EACAT,EAER,CACA,MAAO,CACHJ,EACAnG,EAAeP,IAAI0G,GAAU,KAe/BiB,EAAU,CAACzB,EAAa0B,IAAUzI,EAAW+G,IAAgB/G,EAAWyI,IAEvE3G,EAAO4F,GAAUJ,EAAU,IAAIoB,KAEhCC,EAAgBpJ,EAAa,CAE/BqJ,cAAe5J,EACf6J,UAAW7J,EACX8J,QAAS9J,EACT+J,aAnBiB,CAACC,EAAGC,EAAIC,EAAQ5D,EAAYmC,KAC7C,MAAM0B,EAAgBD,EAAOE,gBACvBC,EAAoB5B,EAAK6B,WAEzBC,MAAcC,KAAKC,SAAW,KAAQ,IAAMJ,EAAoB,EAAIA,EAAoB,KAAOH,EAAOQ,oBACvGtK,EAAY+J,IAAkBE,EAAoBF,GAGvD5F,WAAW+B,EAAYiE,EAAS9B,IAYhCkC,YAAa3K,EAEb4K,mBAAmB,EACnBC,uBAAuB,EACvBC,mBAAmB,EACnBC,oBAAoB,EAEpBL,mBAAoB5F,EAAiB,IAAQ,IAC7CkG,sBAAuB,IACvBC,iBAAkB,IAClBC,eAAgBpG,EAAiB,IAAO,IAExC0E,UACA2B,SAAU,KAAI,EACdrI,QACA4F,SACA0C,SAAU,CAAC,GAEf3H,GAEM4H,EAAe,CAAC7K,EAAGC,KAErB,MAAMJ,EAAIE,EAAaC,EAAGC,GAE1B,GAAIA,EAAG,CACH,MAAQ6K,IAAKC,EAAIH,SAAUI,GAAOhL,GAC1B8K,IAAKG,EAAIL,SAAUM,GAAOjL,EAC9B8K,GAAME,IACNpL,EAAEiL,IAAMC,EAAGI,OAAOF,IAElBD,GAAME,IACNrL,EAAE+K,SAAW7K,EAAaiL,EAAIE,GAEtC,CACA,OAAOrL,GAGLuL,GAAmB,IAAAC,eAAc,CAAC,GAClCC,EAAaC,IACf,MAAM,MAAE7C,GAAU6C,EACZC,GAAe,IAAAC,YAAWL,GAC1BM,EAAqB5L,EAAW4I,GAChCgB,GAAS,IAAAiC,SAAQ,IAAID,EAAqBhD,EAAM8C,GAAgB9C,EAAO,CACzEgD,EACAF,EACA9C,IAGEkD,GAAiB,IAAAD,SAAQ,IAAID,EAAqBhC,EAASmB,EAAaW,EAAc9B,GAAS,CACjGgC,EACAF,EACA9B,IAGE3B,EAAW2B,GAAUA,EAAO3B,SAE5B8D,GAAkB,IAAAC,QAAOrM,GAC3BsI,IAAa8D,EAAgBE,UAC7BF,EAAgBE,QAAUjE,EAAUC,EAAS6D,EAAetJ,OAASA,GAAQoH,IAEjF,MAAMsC,EAAeH,EAAgBE,QAarC,OAXIC,IACAJ,EAAetJ,MAAQ0J,EAAa,GACpCJ,EAAe1D,OAAS8D,EAAa,IAGzChI,EAA0B,KACtB,GAAIgI,EAEA,OADAA,EAAa,IAAMA,EAAa,KACzBA,EAAa,IAEzB,KACI,IAAAC,eAAcb,EAAiBc,SAAUnM,EAAawL,EAAO,CAChE7C,MAAOkD,MAITO,EAAkB,QAGlBC,EAAiBpK,GAAmBC,OAAOoK,qBAC3CvB,EAAMsB,EAAiBnK,OAAOoK,qBAAuB,GAQrDC,EAAa1H,GACR9E,EAAW8E,EAAK,IAAM,CACzBA,EAAK,GACLA,EAAK,GACLA,EAAK,IAAM,CAAC,GACZ,CACAA,EAAK,GACL,MACa,OAAZA,EAAK,GAAcA,EAAK,GAAKA,EAAK,KAAO,CAAC,GAI7C2H,EAAe,IACVxM,EAAaoJ,GAAe,IAAAsC,YAAWL,IAG5CoB,EAAU,CAACC,EAAMC,KACnB,MAAOnK,EAAKoK,GAASjI,EAAU+H,IACxB,CAAE,CAAE,CAAE1F,GAAWnF,EAAeP,IAAIiB,GAE3C,GAAIyE,EAAQxE,GAAM,OAAOwE,EAAQxE,GACjC,MAAMqK,EAAMF,EAAQC,GAEpB,OADA5F,EAAQxE,GAAOqK,EACRA,GAoBLC,EAAsB/B,EAAIK,OAlBZ2B,GAAa,CAACL,EAAMM,EAAUrD,IAenCoD,EAAWL,EAbFM,GAAY,KAAKnI,KAC7B,MAAOrC,GAAOmC,EAAU+H,IACjB,CAAE,CAAE,CAAE1F,GAAWnF,EAAeP,IAAIiB,GAC3C,GAAIC,EAAIyK,WAAWb,GAGf,OAAOY,KAAYnI,GAEvB,MAAMgI,EAAM7F,EAAQxE,GACpB,OAAI3C,EAAYgN,GAAaG,KAAYnI,WAClCmC,EAAQxE,GACRqK,EACV,GACgClD,IAOnCuD,GAAYC,GACP,YAAuBtI,GAE1B,MAAMuI,EAAiBZ,KAEhBhK,EAAKoG,EAAIyE,GAAWd,EAAU1H,GAE/B8E,EAASmB,EAAasC,EAAgBC,GAE5C,IAAIC,EAAOH,EACX,MAAM,IAAEpC,GAAQpB,EACV4D,GAAcxC,GAAO,IAAIK,OAAO0B,GACtC,IAAI,IAAIU,EAAID,EAAW9L,OAAQ+L,KAC3BF,EAAOC,EAAWC,GAAGF,GAEzB,OAAOA,EAAK9K,EAAKoG,GAAMe,EAAOgD,SAAW,KAAMhD,EACnD,EAKE8D,GAAoB,CAACjL,EAAKkL,EAAWlK,KACvC,MAAMmK,EAAoBD,EAAUlL,KAASkL,EAAUlL,GAAO,IAE9D,OADAmL,EAAkBnH,KAAKhD,GAChB,KACH,MAAMxC,EAAQ2M,EAAkBlF,QAAQjF,GACpCxC,GAAS,IAET2M,EAAkB3M,GAAS2M,EAAkBA,EAAkBlM,OAAS,GACxEkM,EAAkB/L,SAMxBgM,GAAiB,CAACC,EAAQN,IACrB,IAAI1I,KACP,MAAOrC,EAAKoG,EAAIe,GAAU4C,EAAU1H,GAC9BiJ,GAAQnE,EAAOoB,KAAO,IAAIK,OAAOmC,GACvC,OAAOM,EAAOrL,EAAKoG,EAAI,IAChBe,EACHoB,IAAK+C,KA9FTzB,IAEAnK,OAAO6L,uBAAyB,E","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"}')}}]);
|