@openmrs/esm-app-shell 8.0.1-pre.3529 → 8.0.1-pre.3545

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/.turbo/turbo-build.log +11 -11
  2. package/dist/5065b224f93a41be.js +1 -0
  3. package/dist/5065b224f93a41be.js.map +1 -0
  4. package/dist/index.html +1 -1
  5. package/dist/{openmrs.980f0cb1d53432c2.js → openmrs.5a9b87b3120de429.js} +1 -1
  6. package/dist/{openmrs.980f0cb1d53432c2.js.map → openmrs.5a9b87b3120de429.js.map} +1 -1
  7. package/dist/service-worker.js +1 -1
  8. package/lib/{0c370ea5bcd23b88.js → d06b72ce27d2e581.js} +1 -1
  9. package/lib/esm-devtools-app/292.js +1 -1
  10. package/lib/esm-devtools-app/292.js.map +1 -1
  11. package/lib/esm-devtools-app/main.js +1 -1
  12. package/lib/esm-devtools-app/openmrs-esm-devtools-app.js +1 -1
  13. package/lib/esm-devtools-app/openmrs-esm-devtools-app.js.buildmanifest.json +5 -5
  14. package/lib/esm-devtools-app/routes.json +1 -1
  15. package/lib/esm-implementer-tools-app/1119.js +1 -1
  16. package/lib/esm-implementer-tools-app/1197.js +1 -1
  17. package/lib/esm-implementer-tools-app/2146.js +1 -1
  18. package/lib/esm-implementer-tools-app/2690.js +1 -1
  19. package/lib/esm-implementer-tools-app/3099.js +1 -1
  20. package/lib/esm-implementer-tools-app/3584.js +1 -1
  21. package/lib/esm-implementer-tools-app/4055.js +1 -1
  22. package/lib/esm-implementer-tools-app/4132.js +1 -1
  23. package/lib/esm-implementer-tools-app/4335.js +1 -1
  24. package/lib/esm-implementer-tools-app/439.js +1 -1
  25. package/lib/esm-implementer-tools-app/4618.js +1 -1
  26. package/lib/esm-implementer-tools-app/4652.js +1 -1
  27. package/lib/esm-implementer-tools-app/4944.js +1 -1
  28. package/lib/esm-implementer-tools-app/5173.js +1 -1
  29. package/lib/esm-implementer-tools-app/5241.js +1 -1
  30. package/lib/esm-implementer-tools-app/5442.js +1 -1
  31. package/lib/esm-implementer-tools-app/5661.js +1 -1
  32. package/lib/esm-implementer-tools-app/6022.js +1 -1
  33. package/lib/esm-implementer-tools-app/6468.js +1 -1
  34. package/lib/esm-implementer-tools-app/6589.js +1 -1
  35. package/lib/esm-implementer-tools-app/6679.js +1 -1
  36. package/lib/esm-implementer-tools-app/6840.js +1 -1
  37. package/lib/esm-implementer-tools-app/6859.js +1 -1
  38. package/lib/esm-implementer-tools-app/7097.js +1 -1
  39. package/lib/esm-implementer-tools-app/7159.js +1 -1
  40. package/lib/esm-implementer-tools-app/723.js +1 -1
  41. package/lib/esm-implementer-tools-app/7617.js +1 -1
  42. package/lib/esm-implementer-tools-app/795.js +1 -1
  43. package/lib/esm-implementer-tools-app/8163.js +1 -1
  44. package/lib/esm-implementer-tools-app/8292.js +1 -1
  45. package/lib/esm-implementer-tools-app/8292.js.map +1 -1
  46. package/lib/esm-implementer-tools-app/8349.js +1 -1
  47. package/lib/esm-implementer-tools-app/8371.js +1 -1
  48. package/lib/esm-implementer-tools-app/8618.js +1 -1
  49. package/lib/esm-implementer-tools-app/890.js +1 -1
  50. package/lib/esm-implementer-tools-app/9214.js +1 -1
  51. package/lib/esm-implementer-tools-app/9538.js +1 -1
  52. package/lib/esm-implementer-tools-app/9569.js +1 -1
  53. package/lib/esm-implementer-tools-app/986.js +1 -1
  54. package/lib/esm-implementer-tools-app/9879.js +1 -1
  55. package/lib/esm-implementer-tools-app/9895.js +1 -1
  56. package/lib/esm-implementer-tools-app/9900.js +1 -1
  57. package/lib/esm-implementer-tools-app/9913.js +1 -1
  58. package/lib/esm-implementer-tools-app/main.js +1 -1
  59. package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js +1 -1
  60. package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js.buildmanifest.json +129 -129
  61. package/lib/esm-implementer-tools-app/routes.json +1 -1
  62. package/lib/esm-login-app/8333.js +1 -1
  63. package/lib/esm-login-app/8333.js.map +1 -1
  64. package/lib/esm-login-app/main.js +1 -1
  65. package/lib/esm-login-app/openmrs-esm-login-app.js +3 -3
  66. package/lib/esm-login-app/openmrs-esm-login-app.js.buildmanifest.json +5 -5
  67. package/lib/esm-login-app/routes.json +1 -1
  68. package/lib/esm-offline-tools-app/1119.js +1 -0
  69. package/lib/esm-offline-tools-app/1197.js +1 -0
  70. package/lib/esm-offline-tools-app/1405.js +1 -0
  71. package/lib/esm-offline-tools-app/1405.js.map +1 -0
  72. package/lib/esm-offline-tools-app/1584c81d564cacde.svg +8 -0
  73. package/lib/esm-offline-tools-app/2062.js +1 -0
  74. package/lib/esm-offline-tools-app/2062.js.map +1 -0
  75. package/lib/esm-offline-tools-app/2070.js +1 -0
  76. package/lib/esm-offline-tools-app/2070.js.map +1 -0
  77. package/lib/esm-offline-tools-app/2146.js +1 -0
  78. package/lib/esm-offline-tools-app/2690.js +1 -0
  79. package/lib/esm-offline-tools-app/3099.js +1 -0
  80. package/lib/esm-offline-tools-app/3584.js +1 -0
  81. package/lib/esm-offline-tools-app/3709.js +1 -0
  82. package/lib/esm-offline-tools-app/3709.js.map +1 -0
  83. package/lib/esm-offline-tools-app/3963.js +1 -0
  84. package/lib/esm-offline-tools-app/3963.js.map +1 -0
  85. package/lib/esm-offline-tools-app/4055.js +1 -0
  86. package/lib/esm-offline-tools-app/4132.js +1 -0
  87. package/lib/esm-offline-tools-app/4300.js +1 -0
  88. package/lib/esm-offline-tools-app/4335.js +1 -0
  89. package/lib/esm-offline-tools-app/439.js +1 -0
  90. package/lib/esm-offline-tools-app/4618.js +1 -0
  91. package/lib/esm-offline-tools-app/4652.js +1 -0
  92. package/lib/esm-offline-tools-app/4944.js +1 -0
  93. package/lib/esm-offline-tools-app/5173.js +1 -0
  94. package/lib/esm-offline-tools-app/5241.js +1 -0
  95. package/lib/esm-offline-tools-app/5442.js +1 -0
  96. package/lib/esm-offline-tools-app/5623.js +2 -0
  97. package/lib/esm-offline-tools-app/5623.js.map +1 -0
  98. package/lib/esm-offline-tools-app/5661.js +1 -0
  99. package/lib/esm-offline-tools-app/5725.js +2 -0
  100. package/lib/esm-offline-tools-app/5725.js.LICENSE.txt +9 -0
  101. package/lib/esm-offline-tools-app/5725.js.map +1 -0
  102. package/lib/esm-offline-tools-app/5770.js +2 -0
  103. package/lib/esm-offline-tools-app/5770.js.map +1 -0
  104. package/lib/esm-offline-tools-app/6022.js +1 -0
  105. package/lib/esm-offline-tools-app/6090.js +2 -0
  106. package/lib/esm-offline-tools-app/6090.js.LICENSE.txt +9 -0
  107. package/lib/esm-offline-tools-app/6090.js.map +1 -0
  108. package/lib/esm-offline-tools-app/6252.js +1 -0
  109. package/lib/esm-offline-tools-app/6252.js.map +1 -0
  110. package/lib/esm-offline-tools-app/6269.js +2 -0
  111. package/lib/esm-offline-tools-app/6269.js.LICENSE.txt +9 -0
  112. package/lib/esm-offline-tools-app/6269.js.map +1 -0
  113. package/lib/esm-offline-tools-app/6326.js +2 -0
  114. package/lib/esm-offline-tools-app/6326.js.map +1 -0
  115. package/lib/esm-offline-tools-app/6408.js +2 -0
  116. package/lib/esm-offline-tools-app/6408.js.LICENSE.txt +32 -0
  117. package/lib/esm-offline-tools-app/6408.js.map +1 -0
  118. package/lib/esm-offline-tools-app/6468.js +1 -0
  119. package/lib/esm-offline-tools-app/6516.js +2 -0
  120. package/lib/esm-offline-tools-app/6516.js.map +1 -0
  121. package/lib/esm-offline-tools-app/6589.js +1 -0
  122. package/lib/esm-offline-tools-app/6679.js +1 -0
  123. package/lib/esm-offline-tools-app/6840.js +1 -0
  124. package/lib/esm-offline-tools-app/6859.js +1 -0
  125. package/lib/esm-offline-tools-app/7031.js +2 -0
  126. package/lib/{esm-help-menu-app/301.js.LICENSE.txt → esm-offline-tools-app/7031.js.LICENSE.txt} +0 -10
  127. package/lib/esm-offline-tools-app/7031.js.map +1 -0
  128. package/lib/esm-offline-tools-app/7097.js +1 -0
  129. package/lib/esm-offline-tools-app/7159.js +1 -0
  130. package/lib/esm-offline-tools-app/723.js +1 -0
  131. package/lib/esm-offline-tools-app/7617.js +1 -0
  132. package/lib/esm-offline-tools-app/795.js +1 -0
  133. package/lib/esm-offline-tools-app/8163.js +1 -0
  134. package/lib/esm-offline-tools-app/8292.js +1 -0
  135. package/lib/esm-offline-tools-app/8292.js.map +1 -0
  136. package/lib/esm-offline-tools-app/8349.js +1 -0
  137. package/lib/esm-offline-tools-app/8371.js +1 -0
  138. package/lib/esm-offline-tools-app/8618.js +1 -0
  139. package/lib/esm-offline-tools-app/8650.js +1 -0
  140. package/lib/esm-offline-tools-app/8650.js.map +1 -0
  141. package/lib/esm-offline-tools-app/890.js +1 -0
  142. package/lib/esm-offline-tools-app/9214.js +1 -0
  143. package/lib/esm-offline-tools-app/939.js +1 -0
  144. package/lib/{esm-help-menu-app → esm-offline-tools-app}/939.js.map +1 -1
  145. package/lib/esm-offline-tools-app/9538.js +1 -0
  146. package/lib/esm-offline-tools-app/9561.js +2 -0
  147. package/lib/esm-offline-tools-app/9561.js.map +1 -0
  148. package/lib/esm-offline-tools-app/9569.js +1 -0
  149. package/lib/esm-offline-tools-app/986.js +1 -0
  150. package/lib/esm-offline-tools-app/9879.js +1 -0
  151. package/lib/esm-offline-tools-app/9895.js +1 -0
  152. package/lib/esm-offline-tools-app/9900.js +1 -0
  153. package/lib/esm-offline-tools-app/9913.js +1 -0
  154. package/lib/esm-offline-tools-app/main.js +2 -0
  155. package/lib/esm-offline-tools-app/main.js.LICENSE.txt +15 -0
  156. package/lib/esm-offline-tools-app/main.js.map +1 -0
  157. package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js +1 -0
  158. package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js.buildmanifest.json +1584 -0
  159. package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js.map +1 -0
  160. package/lib/esm-offline-tools-app/routes.json +1 -0
  161. package/lib/esm-primary-navigation-app/2106.js +1 -1
  162. package/lib/esm-primary-navigation-app/2106.js.map +1 -1
  163. package/lib/esm-primary-navigation-app/8292.js +1 -1
  164. package/lib/esm-primary-navigation-app/8292.js.map +1 -1
  165. package/lib/esm-primary-navigation-app/main.js +1 -1
  166. package/lib/esm-primary-navigation-app/main.js.map +1 -1
  167. package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js +1 -1
  168. package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js.buildmanifest.json +10 -10
  169. package/lib/esm-primary-navigation-app/routes.json +1 -1
  170. package/lib/index.html +2 -2
  171. package/lib/openmrs.js +6 -6
  172. package/lib/service-worker.js +1 -1
  173. package/package.json +3 -3
  174. package/dist/7f998aeddcaa0cbf.js +0 -1
  175. package/dist/7f998aeddcaa0cbf.js.map +0 -1
  176. package/lib/esm-help-menu-app/185.js +0 -2
  177. package/lib/esm-help-menu-app/185.js.map +0 -1
  178. package/lib/esm-help-menu-app/292.js +0 -1
  179. package/lib/esm-help-menu-app/292.js.map +0 -1
  180. package/lib/esm-help-menu-app/300.js +0 -1
  181. package/lib/esm-help-menu-app/301.js +0 -2
  182. package/lib/esm-help-menu-app/301.js.map +0 -1
  183. package/lib/esm-help-menu-app/322.js +0 -1
  184. package/lib/esm-help-menu-app/322.js.map +0 -1
  185. package/lib/esm-help-menu-app/326.js +0 -2
  186. package/lib/esm-help-menu-app/326.js.map +0 -1
  187. package/lib/esm-help-menu-app/555.js +0 -1
  188. package/lib/esm-help-menu-app/555.js.map +0 -1
  189. package/lib/esm-help-menu-app/611.js +0 -2
  190. package/lib/esm-help-menu-app/611.js.map +0 -1
  191. package/lib/esm-help-menu-app/623.js +0 -2
  192. package/lib/esm-help-menu-app/623.js.map +0 -1
  193. package/lib/esm-help-menu-app/7.js +0 -1
  194. package/lib/esm-help-menu-app/7.js.map +0 -1
  195. package/lib/esm-help-menu-app/76.js +0 -1
  196. package/lib/esm-help-menu-app/76.js.map +0 -1
  197. package/lib/esm-help-menu-app/770.js +0 -2
  198. package/lib/esm-help-menu-app/770.js.map +0 -1
  199. package/lib/esm-help-menu-app/802.js +0 -1
  200. package/lib/esm-help-menu-app/802.js.map +0 -1
  201. package/lib/esm-help-menu-app/90.js +0 -1
  202. package/lib/esm-help-menu-app/90.js.map +0 -1
  203. package/lib/esm-help-menu-app/939.js +0 -1
  204. package/lib/esm-help-menu-app/main.js +0 -1
  205. package/lib/esm-help-menu-app/main.js.map +0 -1
  206. package/lib/esm-help-menu-app/openmrs-esm-help-menu-app.js +0 -1
  207. package/lib/esm-help-menu-app/openmrs-esm-help-menu-app.js.buildmanifest.json +0 -486
  208. package/lib/esm-help-menu-app/openmrs-esm-help-menu-app.js.map +0 -1
  209. package/lib/esm-help-menu-app/routes.json +0 -1
  210. /package/lib/{esm-help-menu-app/623.js.LICENSE.txt → esm-offline-tools-app/5623.js.LICENSE.txt} +0 -0
  211. /package/lib/{esm-help-menu-app/770.js.LICENSE.txt → esm-offline-tools-app/5770.js.LICENSE.txt} +0 -0
  212. /package/lib/{esm-help-menu-app/326.js.LICENSE.txt → esm-offline-tools-app/6326.js.LICENSE.txt} +0 -0
  213. /package/lib/{esm-help-menu-app/185.js.LICENSE.txt → esm-offline-tools-app/6516.js.LICENSE.txt} +0 -0
  214. /package/lib/{esm-help-menu-app/611.js.LICENSE.txt → esm-offline-tools-app/9561.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"$schema":"https://json.openmrs.org/routes.schema.json","pages":[{"component":"implementerTools","route":true},{"component":"globalImplementerTools","route":true}],"extensions":[{"name":"implementer-tools-button","slot":"top-nav-actions-slot","component":"implementerToolsButton","order":20}],"version":"8.0.1-pre.3529"}
1
+ {"$schema":"https://json.openmrs.org/routes.schema.json","pages":[{"component":"implementerTools","route":true},{"component":"globalImplementerTools","route":true}],"extensions":[{"name":"implementer-tools-button","slot":"top-nav-actions-slot","component":"implementerToolsButton","order":20}],"version":"8.0.1-pre.3545"}
@@ -12,7 +12,7 @@ If you're the maintainer: the 'elements' key only works with '_type' equal to 'A
12
12
  ${n}`)}return o}let eD=(e,n)=>{let t=(0,L.Z)(n);if(!e)return t;for(let n of Object.keys(e)){let o=t[n],a=e[n];if(a&&(a.hasOwnProperty("_type")||a.hasOwnProperty("_default"))){t.hasOwnProperty(n)||(t[n]=a._default);let e=a._elements;if(o&&eP(e)){if(a._type===H.Array&&Array.isArray(o)){let a=o.map(n=>eD(e,n));t[n]=a}else if(a._type===H.Object)for(let n of Object.keys(o))o[n]=eD(e,o[n])}}else if(eT(a)){let e=o??{};eT(e)&&(t[n]=eD(a,e))}}return t};function eP(e){return!!e&&Object.keys(e).filter(e=>!["_default","_validators"].includes(e)).length>0}function eT(e){return"object"==typeof e&&!Array.isArray(e)&&null!==e}let eI=new Set;function eO(e,n){let t=`${e}:::${n}`;eI||(eI=new Set),eI.has(t)||(console.error(n),eI.add(t))}function eN(e){e?eI.forEach(n=>{n.startsWith(e)&&eI.delete(n)}):eI.clear()}function eF(){eu.forEach(e=>e()),eu.length=0,e_()}let eW={"Translation overrides":{_description:"Per-language overrides for frontend translations should be keyed by language code and each language dictionary contains the translation key and the display value",_type:H.Object,_default:{},_validators:[U(e=>Object.keys(e).every(e=>/^[a-z]{2,3}(-[A-Z]{2,3})?$/.test(e)),e=>{let n=Object.keys(e).filter(e=>!/^[a-z]{2,3}(-[A-Z]{2,3})?$/.test(e));return`The 'Translation overrides' object should have language codes for keys. Language codes must be in the form of a two-to-three letter language code optionally followed by a hyphen and a two-to-three letter country code. The following keys do not conform: ${n.join(", ")}.`})]}},eG={"Display conditions":{privileges:{_description:"The privilege(s) the user must have to use this extension",_type:H.Array,_default:[]},expression:{_description:"The expression that determines whether the extension is displayed",_type:H.String,_default:void 0}},...eW},ej=(e,n)=>U(t=>e<=t&&t<=n,`must be between ${e} and ${n}`),eq=e=>{let n=e.concat(["openmrsBase","openmrsSpaBase"]);return U(e=>{if(!e||"string"!=typeof e)return!1;let t=/\${(.*?)}/g,o=t.exec(e);for(;o;){if(!n.includes(o[1]))return!1;o=t.exec(e)}return!0},"Should be a URL or path. The allowed template parameters are "+n.map(e=>"${"+e+"}").join(", "))},eV=eq([]),eL=e=>U(n=>e.includes(n),`Must be one of the following: '${e.join("', '")}'.`),eR={inRange:ej,isUrl:eV,isUrlWithTemplateParameters:eq,oneOf:eL};var eH=t(91784);let eU=T("breadcrumbs",[]);function eX(e){return eJ([e])}function eJ(e){let n=[...eY(),...e.map(e=>({matcher:e.matcher instanceof RegExp?e.matcher:"string"==typeof e.matcher?(0,eH.Bo)(e.matcher):(0,eH.Bo)(e.path),settings:e}))];eU.setState(n,!0)}function eY(){return eU.getState()}function eQ(e,n){if(n)return function(e,n){let[t]=e.filter(e=>e.matcher.test(n));return t}(e,n)||function(e,n){let t=n.split("/");for(;t.length>1;){t.pop();let n=eQ(e,t.join("/"));if(n)return n}}(e,n)}function eZ(e,n){if(e.length>0){let t=eQ(e,n);if(t){let n=[t],o=eQ(e,t.settings.parent);for(;void 0!==o;)n.push(o),o=eQ(e,o.settings.parent);return n.reverse()}}return[]}function eK(e){return eZ(eY(),e)}var e0=t(33899);function e1(e,n){let t=window.getOpenmrsSpaBase().replace(/\/$/,"");return e2(e,{openmrsBase:window.openmrsBase,openmrsSpaBase:t,...n}).replace(/^\/\//,"/")}function e2(e,n){return Object.keys(n).reduce((e,t)=>e.split("${"+t+"}").join(n[t]),e)}function e3({to:e,templateParams:n}){let t=window.getOpenmrsSpaBase().replace(/\/$/,""),o=e1(e,n).replace(window.location.origin,"");o.startsWith(t)?(0,e0.UO)(o):window.location.assign(o)}let e5="openmrs:history";function e6(e){let n=JSON.parse(sessionStorage.getItem(e5)??"[]")||[];n.push(e),n.length>50&&(n=n.slice(-50)),sessionStorage.setItem(e5,JSON.stringify(n))}function e4(){0===JSON.parse(sessionStorage.getItem(e5)??"[]").length&&document.referrer&&e6(document.referrer),window.addEventListener("single-spa:routing-event",e=>{let n=e8();e.detail.originalEvent?.singleSpaTrigger=="replaceState"?(n[n.length-1]=window.location.href,sessionStorage.setItem(e5,JSON.stringify(n))):!e.detail.originalEvent?.singleSpa&&n.includes(window.location.href)?e7({toUrl:window.location.href}):n[n.length-1]!==window.location.href&&e6(window.location.href)})}function e8(){return JSON.parse(sessionStorage.getItem(e5)??"[]")}function e7({toUrl:e}){let n=e8(),t=n.lastIndexOf(e);if(-1!=t){let e=n.slice(0,t+1);e3({to:n[t]}),sessionStorage.setItem(e5,JSON.stringify(e))}else throw Error(`URL ${e} not found in history; cannot go back to it.`)}function e9(){sessionStorage.removeItem(e5)}let ne="${openmrsSpaBase}/login",nn={redirectAuthFailure:{enabled:{_type:H.Boolean,_default:!0,_description:"Whether to redirect logged-out users to `redirectAuthFailure.url`"},url:{_type:H.String,_default:ne,_validators:[eR.isUrl],_description:"The url to which users will be redirected when they are logged out. If set to blank, the `location` header from the response will be used."},errors:{_type:H.Array,_default:[401],_elements:{_type:H.Number,_validators:[eR.inRange(100,600)]},_description:"The HTTP error codes for which users will be redirected"},resolvePromise:{_type:H.Boolean,_default:!1,_description:"Changes how requests that fail authentication are handled. Try messing with this if redirects to the login page aren't working correctly."}},followRedirects:{_type:H.Boolean,_default:!0,_description:"Whether openmrsFetch should support redirects returned from the backend"}};function nt(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}let no="/ws/rest/v1",na="/ws/fhir2/R4",nr=`${no}/session`;function ni(e){return e&&e.startsWith("http")?e:("/"!==e[0]&&(e="/"+e),window.openmrsBase+e)}function ns(e,n={}){if("string"!=typeof e)throw Error("The first argument to @openmrs/api's openmrsFetch function must be a url string");if("object"!=typeof n)throw Error("The second argument to @openmrs/api's openmrsFetch function must be a plain object.");if(!window.openmrsBase)throw Error("@openmrs/api is running in a browser that doesn't have window.openmrsBase, which is provided by openmrs-module-spa's HTML file.");let t=ni(e);if(n.headers||(n.headers={}),(0,G.Z)(n.body)&&(n.body=JSON.stringify(n.body)),void 0===n.headers.Accept&&(n.headers.Accept="application/json"),null===n.headers.Accept&&delete n.headers.Accept,e.startsWith(no)&&void 0===n.headers["Disable-WWW-Authenticate"]&&(n.headers["Disable-WWW-Authenticate"]="true"),e.startsWith(na)){let e=new URL(t,window.location.toString());e.searchParams.has("_summary")||(e.searchParams.set("_summary","data"),t=e.toString())}let o=Error();return window.fetch(t,n).then(async e=>{let{redirectAuthFailure:n,followRedirects:a}=await ev("@openmrs/esm-api");if(e.ok)if(204!==e.status)return e.clone().text().then(n=>{try{n&&(e.data=JSON.parse(n))}catch(e){}return e});else{if(a&&e.headers.has("location")){let n=e.headers.get("location");n&&e3({to:n})}return e.data=null,e}return t===ni(nr)&&403===e.status||n.enabled&&n.errors.includes(e.status)?(e9(),e3({to:n.url||e.headers.get("location")||ne}),n.resolvePromise?Promise.resolve():new Promise(()=>{})):e.clone().text().then(n=>{let a=n;try{a=JSON.parse(n)}catch(e){}throw new nc(t,e,a,o)},n=>{throw new nc(t,e,null,o)})})}function nl(e,n={}){if("object"!=typeof n)throw Error("The second argument to openmrsObservableFetch must be either omitted or an object");let t=new AbortController;return n.signal=t.signal,new W.Observable(o=>{let a=!1;return ns(e,n).then(e=>{a=!0,o.next(e),o.complete()},e=>{a=!0,o.error(e)}),()=>{a||t.abort()}})}class nc extends Error{constructor(e,n,t,o){super(),nt(this,"response",void 0),nt(this,"responseBody",void 0),this.message=`Server responded with ${n.status} (${n.statusText}) for url ${e}. Check err.responseBody or network tab in dev tools for more info`,o.message=this.message,this.responseBody=t,this.response=n,this.stack=`Stacktrace for outgoing request:
13
13
  ${o.stack}
14
14
  Stacktrace for incoming response:
15
- ${this.stack}`}}let np=T("session",{loaded:!1,session:null}),nd=0;function nu(e={includeAuthStatus:!0}){return(nd<Date.now()-6e4||!np.getState().loaded)&&nf(),new W.Observable(n=>{let t=t=>{t.loaded&&(e.includeAuthStatus?n.next(t.session):n.next(t.session?.user))};return t(np.getState()),np.subscribe(t)})}function ng(){return(nd<Date.now()-6e4||!np.getState().loaded)&&nf(),np}function n_(e){let n=e.locale??e.user?.userProperties?.defaultLocale;n&&n.includes("_")&&(n=n.replaceAll("_","-")),function(e){if(void 0===e||"string"!=typeof e)return!1;try{new Intl.Locale(e)}catch(e){return!1}return!0}(n)&&n!==document.documentElement.getAttribute("lang")&&document.documentElement.setAttribute("lang",n)}function nf(e,n){nd=Date.now();let t={};return e&&n&&(t.Authorization=`Basic ${window.btoa(`${e}:${n}`)}`),n$(ns(nr,{headers:t}))}function nm(){np.setState({loaded:!0,session:{authenticated:!1,sessionId:""}})}function nh(e,n){var t,o;if(void 0===n)return!e;if(!e)return!0;return t=e,o=n,("string"==typeof t?!(0,F.Z)(o.privileges.find(e=>t===e.display)):Array.isArray(t)?t.every(e=>!(0,F.Z)(o.privileges.find(n=>e===n.display))):((0,F.Z)(t)||console.error(`Could not understand privileges "${t}"`),!0))||!(0,F.Z)(n.roles.find(e=>"System Developer"===e.display))}function nb(){let e,n;return new Promise(t=>{let o=o=>{o.loaded&&o.session.user&&(e=o.session.user,t(o.session.user),n&&n())};o(np.getState()),e||(n=np.subscribe(o))})}function ny(){return new Promise((e,n)=>{nu().subscribe(n=>{e(n.sessionLocation)},n).unsubscribe()})}async function nA(e,n){return n$(ns(nr,{method:"POST",body:{sessionLocation:e},headers:{"Content-Type":"application/json"},signal:n.signal}))}async function nv(e,n,t){return t||(t=new AbortController),await ns(`${no}/user/${e}`,{method:"POST",body:{userProperties:n},headers:{"Content-Type":"application/json"},signal:t.signal}),nf()}function n$(e){return new Promise((n,t)=>{e.then(e=>{let o;"object"==typeof e?.data?(o={loaded:!0,session:e.data},np.setState(o),n(o)):(o={loaded:!1,session:null},np.setState(o),t(o))}).catch(e=>{C(`Failed to fetch new session information: ${e}`);let n={loaded:!1,session:null};np.setState(n),t(n)})})}function nk(){return"development"===window.spaEnv||"true"===localStorage.getItem("openmrs:devtools")}np.subscribe(e=>{e.loaded&&e.session&&n_(e.session)});let nC={"webservices.rest":"2.24.0",fhir2:"1.0.0-SNAPSHOT"};function nw(){ef("@openmrs/esm-api",nn),nf()}let nx={address1:"Address line 1",address2:"Address line 2",address3:"Address line 3",address4:"Address line 4",address5:"Address line 5",address6:"Address line 6",city:"City",cityVillage:"City",country:"Country",countyDistrict:"District",district:"District",postalCode:"Postal code",state:"State",stateProvince:"State",closeAllOpenedWorkspaces:"Discard changes in {{count}} workspaces",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",discard:"Discard",hide:"Hide",maximize:"Maximize",minimize:"Minimize",openAnyway:"Open anyway",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",closeWorkspaces2PromptTitle:"Close workspace(s)",closeWorkspaces2PromptBody:"You are about to close the following workspace(s), which might have unsaved changes:",actions:"Actions",actionableNotification:"Actionable notification",address:"Address",age:"Age",cancel:"Cancel",change:"Change",Clinic:"Clinic",close:"Close",closesActionableNotification:"Closes actionable notification",closeSnackbar:"Close snackbar",confirm:"Confirm",contactAdministratorIfIssuePersists:"Contact your system administrator if the problem persists.",contactDetails:"Contact details",delete:"Delete",discardChanges:"Discard changes",edit:"Edit",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",leftNavigation:"Left navigation",loading:"Loading",male:"Male",noResultsToDisplay:"No results to display",other:"Other",patientAvatarAlt:"Avatar for {{patientName}}",patientIdentifierSticker:"Patient identifier sticker",patientLists:"Patient lists",patientPhotoAlt:"Profile photo of {{patientName}}",patientPhotoPlaceholder:"Photo placeholder for {{patientName}}",print:"Print",printError:"Print error",printErrorExplainer:"An error occurred in {{errorLocation}}",printIdentifierSticker:"Print identifier sticker",printing:"Printing",relationships:"Relationships",resetOverrides:"Reset overrides",save:"Save",scriptLoadingFailed:"Error: Script failed to load",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.",searchForLocation:"Search for a location",seeMoreLists:"See {{count}} more lists",sex:"Sex",showLess:"Show less",showMore:"Show more",snackbarNotification:"Snackbar notification",toggleDevTools:"Toggle dev tools",unknown:"Unknown",yearAbbreviation:"yr",yearsAbbreviation:"yrs"};var nz=t(332);let nE=nz.ZP.default||nz.ZP;function nS(e,n,t,o){return nE.t(n,{ns:e,defaultValue:t,...o})}function nB(e,n,t){return nx[e]?nS("core",e,n??nx[e],t):(console.error(`O3 Core Translations does not provide key '${e}'. The key itself is being rendered as text.`),e)}function nM(e){return e.replace(/[\/\-@]/g,"_")}async function nD(e,n="./start",o){var a;let r,i=!o?.maxLoadingTime||o.maxLoadingTime<=0?6e5:o.maxLoadingTime;await Promise.race([nP(e,o?.importMap),new Promise((n,t)=>{r=setTimeout(()=>{var n;t(Error(`Could not resolve requested script, ${e}, within ${(n=i)<1e3?`${n} milliseconds`:n<6e4?`${Math.floor(n/1e3)} seconds`:n<36e5?`${Math.floor(n/6e4)} minutes`:n<864e5?`${Math.floor(n/36e5)} hours`:`${Math.floor(n/864e5)} days`}.`))},i)})]),r&&clearTimeout(r);let s=nM(e),l=window[s];if(!("object"==typeof(a=l)&&null!==a&&"init"in a&&"function"==typeof a.init&&"get"in a&&"function"==typeof a.get)){let e=`The global variable ${s} does not refer to a federated module`;throw console.error(e),Error(e)}l.init(t.S.default);let c=(await l.get(n))();if("object"!=typeof c||null===c){let n=`Container for ${e} did not return an ESM module as expected`;throw console.error(n),Error(n)}return c}async function nP(e,n){if("string"!=typeof e||0===e.trim().length){let e="Attempted to call importDynamic() without supplying a package to load";throw console.error(e),Error(e)}let t=nM(e);if(!window[t]){let t=n??await nT();if(!t.imports.hasOwnProperty(e)){let n=`Could not find the package ${e} defined in the current importmap`;throw console.error(n),Error(n)}let o=t.imports[e];o.startsWith("./")&&(o=window.spaBase+o.substring(1));let a=!!window.localStorage.getItem(`import-map-override:${e}`);try{return await new Promise((e,n)=>{!function(e,n,t){let o=document.head.querySelector(`script[src="${e}"]`),a=window[nI];if(a||(a=window[nI]=new Set([])),o)if(a.has(e)){let e,a,r;r=()=>{e&&o.removeEventListener("load",e),a&&o.removeEventListener("error",a)},e=()=>{r(),n(null)},a=e=>{r(),t(e.message)},o.addEventListener("load",e),o.addEventListener("error",a)}else console.warn(`Script at ${e} already loaded. Not loading it again.`),n(null);else{let o,r,i;a.add(e);let s=document.createElement("script");s.src=e,s.type="text/javascript",s.async=!0;let l=setTimeout(()=>{console.error(`The script at ${e} did not load within 5 seconds. This may indicate an issue with the imports in the script's entry-point file or with the script's bundler configuration.`)},5e3);i=()=>{clearTimeout(l),a.delete(e),o&&s.removeEventListener("load",o),r&&s.removeEventListener("error",r)},o=()=>{i(),n(null)},r=n=>{i();let o=`Failed to load script from ${e}`;console.error(o,n),t(n.message??o)},s.addEventListener("load",o),s.addEventListener("error",r),document.head.appendChild(s)}}(o,e,n)})}catch(e){return a&&y({kind:"error",title:nB("scriptLoadingFailed","Error: Script failed to load"),description:nB("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.",{url:o}),actionButtonLabel:nB("resetOverrides","Reset overrides"),onActionButtonClick(){window.importMapOverrides.resetOverrides(),window.location.reload()}}),Promise.reject(e)}}return Promise.resolve()}async function nT(){return window.importMapOverrides.getCurrentPageMap()}nE.on("initialized",function(){window.i18next.loadNamespaces(["core"])});let nI=Symbol("__openmrs_script_loading"),nO=`${no}/attachment`;function nN(e,n){return ns(`${nO}/${e}`,{signal:n.signal})}function nF(e,n,t){return ns(`${nO}?patient=${e}&includeEncounterless=${n}`,{signal:t.signal})}async function nW(e,n){let t=new FormData;return t.append("fileCaption",n.fileDescription),t.append("patient",e),n.file?t.append("file",n.file,n.fileName):(t.append("file",new File([""],n.fileName),n.fileName),t.append("base64Content",n.base64Content)),ns(`${nO}`,{method:"POST",body:t})}function nG(e,n){return ns(`${nO}/${e}`,{method:"DELETE",signal:n.signal})}var nj=t(23805);function nq(e,n){if(void 0!==a)return console.warn(`The application's Service Worker has already been registered. The new service worker at ${e} will not be registered.`),a;if(!("serviceWorker"in navigator))throw Error("Registering the Service Worker is not possible due to missing browser capabilities.");let t=new nj.ZW(e,n);return a=t.register().then(()=>t.controlling.then(()=>t))}function nV(){return a??Promise.resolve(void 0)}let nL="x-omrs-offline-response-body",nR="x-omrs-offline-response-status",nH="x-omrs-offline-caching-strategy";async function nU(e){let n=await nV();return n?await n.messageSW(e):{success:!1,result:void 0,error:"No service worker has been registered. This is typically the case when the application has been built without offline-related features."}}async function nX(){let e=window.sessionStorage;try{e.setItem("someKeyHere","test"),e.removeItem("someKeyHere")}catch(n){if(n.code===DOMException.QUOTA_EXCEEDED_ERR&&0===e.length)return!0}return!1}async function nJ(){return!window.indexedDB}async function nY(){return new Promise(e=>{let n=indexedDB.open("test");n.onerror=()=>e(!0),n.onsuccess=()=>e(!1)})}async function nQ(){return await nY()||await nJ()||await nX()}let nZ="openmrs3:offline-mode",nK="unavailable";function n0(){return{current:nK,notAvailable:"unavailable"===nK,active:"on"===nK}}function n1(e){"unavailable"!==nK&&"unavailable"!==e&&(localStorage.setItem(nZ,"on"===e?"active":"disabled"),nK=e)}async function n2(){await nQ()||(nK="active"===localStorage.getItem(nZ)?"on":"off"),navigator.onLine}var n3=t(44197);function n5(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class n6 extends n3.ZP{constructor(){super("EsmOffline"),n5(this,"syncQueue",void 0),n5(this,"dynamicOfflineData",void 0),this.version(4).stores({syncQueue:"++id,userId,type,[userId+type]",dynamicOfflineData:"++id,type,identifier,*users,&[type+identifier]"}),this.syncQueue=this.table("syncQueue"),this.dynamicOfflineData=this.table("dynamicOfflineData")}}function n4(){return new n6}let n8=new n6,n7={},n9=T("offline-synchronization",{});function te(){return n9}async function tn(){if(n9.getState().synchronization)return;let e=await n8.syncQueue.count(),n={},t=Object.entries(n7),o=t.length,a={},r=new AbortController,i=()=>{let e=n9.getState().synchronization;n9.setState({synchronization:{...e,pendingCount:e.pendingCount-1}})};try{n9.setState({synchronization:{totalCount:e,pendingCount:e,abortController:r}});for(let e=0;e<o&&t.length>0;e++)for(let e=t.length;e--;){let[o,s]=t[e],l=s.dependsOn.map(e=>n[e]);l.every(Boolean)&&(a[o]={},await Promise.all(l),n[o]=tt(s,a,r,i),t.splice(e,1))}await Promise.allSettled(Object.values(n))}finally{n9.setState({synchronization:void 0})}}async function tt({type:e,dependsOn:n,process:t},o,a,r){let i=[],s=[],l=await to();await n8.syncQueue.where({type:e,userId:l}).each((e,n)=>{i.push([n.primaryKey,e.content,e.descriptor]),s.push(e.content)});for(let c=0;c<i.length;c++){let[p,d,{id:u,dependencies:g=[]}]=i[c];try{let r=await t(d,{abort:a,index:c,items:s,userId:l,dependencies:g.map(({id:e,type:t})=>n.includes(t)?o[t][e]:void 0)});void 0!==u&&(o[e][u]=r),await n8.syncQueue.delete(p)}catch(e){await n8.syncQueue.update(p,{lastError:{name:e?.name,message:e?.message??e?.toString()}})}finally{r()}}}async function to(){let e=await nb();return e?.uuid||"*"}async function ta(e,n,t,o){let a=o&&o.id;return void 0!==a&&await n8.syncQueue.where({type:n,userId:e}).filter(e=>e?.descriptor.id===a).delete().catch(n3.ZP.errnames.DatabaseClosed),await n8.syncQueue.add({type:n,content:t,userId:e,descriptor:o||{},createdOn:new Date}).catch(n3.ZP.errnames.DatabaseClosed,()=>-1)}async function tr(e,n,t){let o=await to();return await ta(o,e,n,t)}async function ti(e,n){return(await ts(e,n)).map(e=>e.content)}async function ts(e,n){return await n8.syncQueue.where(n?{type:n,userId:e}:{userId:e}).toArray().catch(n3.ZP.errnames.DatabaseClosed,()=>[])}async function tl(e){let n=await to();return await ti(n,e)}async function tc(e){let n=await to();return await ts(n,e)}async function tp(e){return await n8.syncQueue.get(e).catch(n3.ZP.errnames.DatabaseClosed,()=>void 0)}function td(e){return!!n7[e]?.options.onBeginEditSyncItem}async function tu(e){let n=await tp(e);if(!n)throw Error(`No sync item with the ID ${e} exists.`);let t=n7[n.type]?.options.onBeginEditSyncItem;if(!t)throw Error(`A sync item with the ID ${e} exists, but the associated handler (if one exists) doesn't support editing the item. You can avoid this error by either verifying that sync items of this type can be edited via the "canEditSynchronizationItemsOfType(type: string)" function or alternatively ensure that the synchronizaton handler for sync items of type "${n.type}" supports editing items.`);t(n)}async function tg(e){await n8.syncQueue.delete(e).catch(n3.ZP.errnames.DatabaseClosed)}function t_(e,n,t,o={}){n7[e]={type:e,dependsOn:n,process:t,options:o}}var tf=t(43415);let tm="OFFLINE+";function th(){return tm+(0,tf.Z)()}function tb(e){return e.startsWith(tm)}let ty={};function tA(){return Object.values(ty)}function tv(e){ty[e.id]&&console.warn(`[setupDynamicOfflineDataHandler] Another second handler with the ID "${e.id}" was registered. This handler will override the previous one. This could be unintended as the previous handler might run different flows than the newly registered one. If this is the case, ensure that you are setting up the handlers with different IDs.`),ty[e.id]=e}async function t$(e){let n=await tB();return await tk(n,e)}async function tk(e,n){let t=new n6;return await t.dynamicOfflineData.where(n?{type:n,users:e}:{users:e}).toArray().catch(n3.ZP.errnames.DatabaseClosed,()=>[])}async function tC(e,n){let t=await tB();return await tw(t,e,n)}async function tw(e,n,t){let o=new n6,a=await o.dynamicOfflineData.get({type:n,identifier:t}).catch(n3.ZP.errnames.DatabaseClosed,()=>void 0);a?a.users.includes(e)||await o.dynamicOfflineData.update(a.id,{users:[...a.users,e]}).catch(n3.ZP.errnames.DatabaseClosed):await o.dynamicOfflineData.add({users:[e],type:n,identifier:t}).catch(n3.ZP.errnames.DatabaseClosed)}async function tx(e,n){let t=await tB();return await tz(t,e,n)}async function tz(e,n,t){let o=new n6,a=await o.dynamicOfflineData.get({type:n,identifier:t,users:e}).catch(n3.ZP.errnames.DatabaseClosed,()=>void 0);a&&(a.users.length>1?await o.dynamicOfflineData.update(a.id,{users:a.users.filter(n=>n!==e)}).catch(n3.ZP.errnames.DatabaseClosed):await o.dynamicOfflineData.delete(a.id).catch(n3.ZP.errnames.DatabaseClosed))}async function tE(e,n){let t=await t$(e);await Promise.all(t.map(async e=>tS(e.type,e.identifier,n)))}async function tS(e,n,t){await tC(e,n);let o=new n6,a=await tB(),r=await o.dynamicOfflineData.get({type:e,identifier:n}).catch(n3.ZP.errnames.DatabaseClosed,()=>void 0),i=tA().filter(n=>n.type===e);if(!r)return;let s=await Promise.all(i.map(async e=>{try{return e.sync(n,t),{id:e.id,error:void 0}}catch(t){let n=t.message?.toString()??t.toString();return{id:e.id,error:n}}})),l=s.filter(e=>!e.error).map(e=>e.id),c=s.filter(e=>e.error).map(e=>e.id),p=s.filter(e=>e.error).map(e=>({handlerId:e.id,message:e.error})),d={syncedOn:new Date,syncedBy:a,succeededHandlers:l,erroredHandlers:c,errors:p};r.id&&await o.dynamicOfflineData.update(r.id,{syncState:d}).catch(n3.ZP.errnames.DatabaseClosed)}async function tB(){let e=(await nb()).uuid;if(!e)throw Error("Using the dynamic offline data API requires a logged in user.");return e}let tM=T("offline-patients",{offlinePatientDataSyncState:{},handlers:{}});function tD(){return tI(),tM}function tP(e,n){tI(),tv({type:"patient",displayName:n.displayName,id:e,isSynced:()=>Promise.resolve(!0),sync:(e,t)=>n.onOfflinePatientAdded({patientUuid:e,signal:t??new AbortController().signal})})}async function tT(e){tI(),await tS("patient",e)}function tI(){console.warn("The offline patient API has been deprecated and will be removed in a future release. To prevent future crashes, the functions remain available for the moment, but any invocations should be migrated ASAP.")}async function tO(e,n,t=!0){if(e){let o=null,[a,r]=await Promise.all([ns(`${na}/Patient/${e}`,n).catch(e=>o=e),t?tN(e):Promise.resolve(null)]);if(a.ok)return a.data;if(r)return r;if(o)throw o}return null}async function tN(e){let n=(await tl("patient-registration")).find(n=>n.fhirPatient.id===e);return n?.fhirPatient??null}var tF=t(34049);function tW(e){return{uuid:e.uuid,display:e.display}}function tG(e=null,n=null){let t=new URLSearchParams;e&&t.set("tag",e),n&&t.set("q",n);let o=t.toString();return nl(`${no}/location${o?"?"+o:""}`).pipe((0,tF.map)(e=>e.data.results.map(tW))).pipe((0,tF.take)(1))}function tj(e){return{uuid:e.uuid,display:e.display,name:e.name}}function tq(){return nl(`${no}/visittype`).pipe((0,tF.map)(e=>e.data.results.map(tj))).pipe((0,tF.take)(1))}var tV=((S={}).NEWVISIT="startVisit",S.EDITVISIT="editVisit",S.LOADING="loadingVisit",S),tL=((B={}).NOTSTARTED="notStarted",B.ONGOING="ongoing",B);let tR="custom:(uuid,display,voided,indication,startDatetime,stopDatetime,encounters:(uuid,display,encounterDatetime,form:(uuid,name),location:ref,encounterType:ref,encounterProviders:(uuid,display,provider:(uuid,display))),patient:(uuid,display),visitType:(uuid,name,display),attributes:(uuid,display,attributeType:(name,datatypeClassname,uuid),value),location:(uuid,name,display))",tH=function(){try{return JSON.parse(sessionStorage.getItem("openmrs:visitStoreState")||"null")}catch(e){return null}}()||{patientUuid:null,manuallySetVisitUuid:null,mutateVisitCallbacks:{}};function tU(){return O("visit",tH)}function tX(e,n){tU().setState({patientUuid:e,manuallySetVisitUuid:n})}function tJ(e,n){return ns(`${no}/visit`,{signal:n.signal,method:"POST",headers:{"Content-type":"application/json"},body:e})}function tY(e,n,t){return ns(`${no}/visit/${e}`,{signal:t.signal,method:"POST",headers:{"Content-type":"application/json"},body:n})}function tQ(e,n,t){return ns(`${no}/visit?patient=${e}&v=${t??tR}`,{signal:n.signal,method:"GET",headers:{"Content-type":"application/json"}})}tU().subscribe(e=>{var n;n=e,sessionStorage.setItem("openmrs:visitStoreState",JSON.stringify(n))});let tZ=new W.BehaviorSubject(null);var tK=t(89373),t0=t(31204),t1=t(68334),t2=t(21003),t3=t(75754),t5=t(63511),t6=t(73237);let t4={Array,Boolean,Symbol,Infinity,NaN,Math,Number,BigInt,String,RegExp,JSON,isFinite,isNaN,parseFloat,parseInt,decodeURI,encodeURI,encodeURIComponent,Object:{__proto__:void 0,assign:Object.assign.bind(null),fromEntries:Object.fromEntries.bind(null),hasOwn:Object.hasOwn.bind(null),keys:Object.keys.bind(null),is:Object.is.bind(null),values:Object.values.bind(null)}},t8={...t4,Promise};function t7(e,n={}){return oa(e,n,os)}async function t9(e,n={}){return or(e,n,os)}function oe(e,n={}){return oa(e,n,ol)}function on(e,n={}){return or(e,n,ol)}function ot(e,n={}){return oa(e,n,oc)}function oo(e,n={}){return or(e,n,oc)}function oa(e,n={},t){if("string"!=typeof e&&("object"!=typeof e||!e||!("type"in e)))throw`Unknown expression type ${e}. Expressions must either be a string or pre-compiled string.`;if("string"==typeof e&&0===e.trim().length)throw{type:"Empty expression",message:"Expression cannot be an empty string"};null==n&&(n={});let o=ou(n,t4),a=op("string"==typeof e?(0,tK.Z)(e):e,o);if(t(a))return a;throw{type:"Invalid result",message:"string"==typeof e?`The expression ${e} did not produce a valid result`:"The expression did not produce a valid result"}}async function or(e,n={},t){if("string"!=typeof e&&("object"!=typeof e||!e||!("type"in e)))return Promise.reject(`Unknown expression type ${e}. Expressions must either be a string or pre-compiled string.`);if("string"==typeof e&&0===e.trim().length)throw{type:"Empty expression",message:"Expression cannot be an empty string"};null==n&&(n={});let o=ou(n,t8);return Promise.resolve(op("string"==typeof e?(0,tK.Z)(e):e,o)).then(n=>{if(t(n))return n;throw{type:"Invalid result",message:"string"==typeof e?`The expression ${e} did not produce a valid result`:"The expression did not produce a valid result"}})}function oi(e){return(0,tK.Z)(e)}function os(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e||null==e||e instanceof Date}function ol(e){return"boolean"==typeof e}function oc(e){return"number"==typeof e}function op(e,n){switch(e.type){case"UnaryExpression":var t,o,a,r,i,s,l,c,p=e,d=n;let u=op(p.argument,d);switch(p.operator){case"+":return+u;case"-":return-u;case"~":return~u;case"!":return!u;default:throw`Expression evaluator does not support operator '${p.operator}''`}case"BinaryExpression":var g=e,_=n;let f=op(g.left,_),m=op(g.right,_);switch(g.operator){case"+":return f+m;case"-":return f-m;case"*":return f*m;case"/":return f/m;case"%":return f%m;case"**":return f**m;case"==":return f==m;case"===":return f===m;case"!=":return f!=m;case"!==":return f!==m;case">":return f>m;case">=":return f>=m;case"<":return f<m;case"<=":return f<=m;case"in":return f in m;case"&&":return f&&m;case"||":return f||m;case"??":return f??m;default:throw`Expression evaluator does not support operator '${g.operator}' operator`}case"ConditionalExpression":return t=e,o=n,op(t.test,o)?op(t.consequent,o):op(t.alternate,o);case"CallExpression":var h=e,b=n;let y=h.arguments?.map(og(b)),A=op(h.callee,b);if(A){if("function"!=typeof A)throw`${of(h.callee)} is not a function`}else throw`No function named ${of(h.callee)} is defined in this context`;return A(...y);case"ArrowFunctionExpression":var v=e,$=n;let k=v.params?.map(e=>{if("Identifier"===e.type)return e.name;throw`Cannot handle parameter of type ${e.type}`})??[];return(function(...e){if(e.length<k.length)throw`Required argument(s) ${k.slice(e.length,-1).join(", ")} were not provided`;let n=Object.fromEntries(k.reduce((n,t,o)=>{let a=e[o];return function e(n){if("string"==typeof n||"number"==typeof n||"boolean"==typeof n||"function"==typeof n||null===n||n instanceof RegExp)return!0;if("object"==typeof n){for(let t of Object.keys(n))if(!e(n[t]))return!1;return!0}if(Array.isArray(n)){for(let t of n)if(!e(t))break}return!1}(a)&&n.push([t,a]),n},[]));return op(v.body,$.addVariables(n))}).bind($.thisObj??null);case"MemberExpression":return function(e,n){let t,o=op(e.object,n);if(void 0===o)switch(e.object.type){case"Identifier":{let t=od(e.object,n);throw ReferenceError(`ReferenceError: ${t} is not defined`)}case"MemberExpression":{let t=od(e.property,n);throw TypeError(`TypeError: cannot read properties of undefined (reading '${t}')`)}default:throw`VisitMemberExpression does not support operator '${e.object.type}' type`}let a=o;if("string"==typeof o)a=String.prototype;else if("number"==typeof o)a=Number.prototype;else if("function"==typeof o);else if("object"!=typeof o)throw`VisitMemberExpression does not support member access on type ${typeof o}`;switch(n.thisObj=a,e.property.type){case"Identifier":case"MemberExpression":t=op(e.property,n);break;default:{let a=op(e.property,n);if(void 0===a)throw{type:"Illegal property access",message:"No property was supplied to the property access"};o_(a),t=o[a]}}return"function"==typeof t?t.bind(o):t}(e,n);case"ArrayExpression":return a=e,r=n,a.elements?.map(og(r));case"SequenceExpression":var C=e,w=n;let x=C.expressions.map(og(w));return x[x.length-1];case"NewExpression":var z=e,E=n;if(z.callee&&"Identifier"===z.callee.type){let e=z.arguments?.map(og(E));switch(z.callee.name){case"Date":return new Date(...e);case"RegExp":return new RegExp(...e);default:throw`Cannot instantiate object of type ${z.callee.name}`}}if(z.callee)throw"new must be called with either Date or RegExp";throw'Could not handle "new" without a specified class';case"Literal":return s=0,o_((i=e).value),i.value;case"Identifier":var S=e,B=n;o_(S.name);let M=B.thisObj;if(M&&("object"==typeof M||"function"==typeof M)&&S.name in M){let e=M[S.name];return o_(e),e}if(B.variables&&S.name in B.variables){let e=B.variables[S.name];return o_(e),e}return S.name in B.globals?B.globals[S.name]:void 0;case"TemplateLiteral":var D=e,P=n;let T=D.expressions?.map(og(P))??[],I=D.quasis?.map(og(P))??[];return I.filter(e=>!e.tail).map(e=>e.value).join("")+T.join("")+I.filter(e=>e.tail).map(e=>e.value).join("");case"TemplateElement":return c=0,{value:(l=e).cooked,tail:l.tail};default:throw`Expression evaluator does not support expression of type '${e.type}'`}}function od(e,n){switch(e.type){case"Literal":return e.value;case"Identifier":return e.name;case"MemberExpression":return od(e.property,n);default:throw`VisitExpressionName does not support expression of type '${e.type}'`}}function ou(e,n){let t={thisObj:void 0,variables:{...e},globals:{...n},addVariables(e){return this.variables={...this.variables,...e},this}};return t.addVariables.bind(t),t}function og(e){return function(n){return null===n?null:op(n,e)}}function o_(e){if("__proto__"===e||"prototype"===e||"constructor"===e)throw{type:"Illegal property access",message:`Cannot access the ${e} property of objects`}}function of(e){return e?"MemberExpression"===e.type?e.property?.name:e.name:null}function om(e){if("string"!=typeof e&&("object"!=typeof e||!e||!("type"in e)))throw`Unknown expression type ${e}. Expressions must either be a string or pre-compiled string.`;let n={globals:{...t8},isLocalExpression:!1,variables:new Set};return oh("string"==typeof e?(0,tK.Z)(e):e,n),[...n.variables]}function oh(e,n){switch(e.type){case"UnaryExpression":return t=e,o=n,oh(t.argument,o);case"BinaryExpression":return a=e,r=n,[oh(a.left,r),oh(a.right,r)].filter(Boolean);case"ConditionalExpression":var t,o,a,r,i,s,l,c,p,d,u,g,_,f,m,h,b=e,y=n;return[oh(b.consequent,y),oh(b.test,y),oh(b.alternate,y)].filter(Boolean);case"CallExpression":var A=e,v=n;let $=oh(A.callee,v);return A.arguments?.map(ob(v)),$;case"ArrowFunctionExpression":var k=e,C=n;let w={...C};w.isLocalExpression=!0;let x=k.params?.map(ob(w))??[],z=oh(k.body,w)??[];if(z&&Array.isArray(z))for(let e of z)x.includes(e)||C.variables.add(e);return;case"MemberExpression":var E=e,S=n;oh(E.object,S);let B={...S};B.isLocalExpression=!0,oh(E.property,B);return;case"ArrayExpression":return i=e,s=n,void i.elements?.map(ob(s));case"SequenceExpression":return l=e,c=n,void l.expressions?.map(ob(c));case"NewExpression":return p=e,d=n,void p.arguments?.map(ob(d));case"Literal":return u=0,void(g=0);case"Identifier":var M=e,D=n;if(!(M.name in D.globals))if(D.isLocalExpression)return M.name;else D.variables.add(M.name);return;case"TemplateLiteral":return _=e,f=n,void(_.expressions?.map(ob(f)),_.quasis?.map(ob(f)));case"TemplateElement":return m=0,void(h=0);default:throw`Expression evaluator does not support expression of type '${e.type}'`}}function ob(e){return function(n){return null===n?null:oh(n,e)}}tK.Z.plugins.register(t0.Z),tK.Z.plugins.register(t1.Z),tK.Z.plugins.register(t2.Z),tK.Z.plugins.register(t3.Z),tK.Z.plugins.register(t5.Z),tK.Z.plugins.register(t6.Z),tK.Z.addBinaryOp("in",7),tK.Z.addBinaryOp("??",1);let oy=O("feature-flags",{flags:function(){let e={};for(let n of Object.keys(localStorage))if(n.startsWith("openmrs:feature-flag:")){let t=n.replace("openmrs:feature-flag:",""),o=JSON.parse(localStorage.getItem(`openmrs:feature-flag-meta:${t}`)||"{}");e[t]={enabled:"true"===localStorage.getItem(n),...o}}return e}()});function oA(e,n,t){oy.setState(o=>({flags:{...o.flags,[e]:{enabled:o.flags[e]?.enabled??!1,label:n,description:t}}}))}function ov(){let e=oy.getState().flags;Object.keys(localStorage).filter(e=>e.startsWith("openmrs:feature-flag:")).forEach(n=>{let t=n.replace("openmrs:feature-flag:","");e[t]||(localStorage.removeItem(n),localStorage.removeItem(`openmrs:feature-flag-meta:${t}`))})}function o$(e){return oy.getState().flags[e].enabled}function ok(e,n){oy.subscribe(t=>{n(t.flags[e].enabled)})}function oC(e,n){oy.setState(t=>({flags:{...t.flags,[e]:{...t.flags[e],enabled:n}}}))}function ow(e){return!window.offlineEnabled||(e??navigator.onLine)}oy.subscribe(e=>{for(let[n,t]of Object.entries(e.flags))localStorage.setItem(`openmrs:feature-flag:${n}`,t.enabled.toString()),localStorage.setItem(`openmrs:feature-flag-meta:${n}`,JSON.stringify({label:t.label,description:t.description}))});var ox=t(39508),oz=t(25424);function oE(e=!0,n=!1){return oS(ow(),e,n)}function oS(e,n=!0,t=!1){return!!(e?n:t)}let oB=T("extensionsInternal",{slots:{},extensions:{}}),oM=()=>O("extensionsInternal",{slots:{},extensions:{}});function oD(e){let n=oB.getState(),t=e(n);t!==n&&oB.setState(t)}let oP=()=>O("extensions",{slots:{}});function oT(e){let n=[];for(let t of Object.values(e.extensions))for(let e of t.instances)n.push({slotModuleName:e.slotModuleName,extensionModuleName:t.moduleName,slotName:e.slotName,extensionId:e.id});(0,ox.Z)(et.getState().mountedExtensions,n)||et.setState({mountedExtensions:n})}oT(oB.getState()),oB.subscribe(oT);let oI=oM(),oO=oP(),oN=ea(),oF=es();function oW(e,n,t,o,a){let r={},i=ow(),s=Object.entries(o.flags).filter(([,{enabled:e}])=>e).map(([e])=>e);for(let[o,l]of Object.entries(e.slots)){let{config:c}=ei(n,l.name),p=oY(o,e,c,t,s,i,a.session);r[o]={moduleName:l.moduleName,assignedExtensions:p}}(0,ox.Z)(oO.getState().slots,r)||oO.setState({slots:r})}function oG(){oW(oI.getState(),oN.getState(),oF.getState(),oy.getState(),np.getState())}function oj(e,n,t){return{moduleName:n,name:e,attachedIds:[],config:null,state:t}}function oq(e){let[n]=e.split("#");return n}function oV(e,n){let t=oq(n);return e.extensions[t]}function oL(e){return oV(oI.getState(),e)}oI.subscribe(e=>{oW(e,oN.getState(),oF.getState(),oy.getState(),np.getState())}),oN.subscribe(e=>{oW(oI.getState(),e,oF.getState(),oy.getState(),np.getState())}),oF.subscribe(e=>{oW(oI.getState(),oN.getState(),e,oy.getState(),np.getState())}),oy.subscribe(e=>{oW(oI.getState(),oN.getState(),oF.getState(),e,np.getState())}),np.subscribe(e=>{oW(oI.getState(),oN.getState(),oF.getState(),oy.getState(),e)}),oG(),s(oG);let oR=e=>oI.setState(n=>(n.extensions[e.name]={...e,instances:[]},n));function oH(e,n){oD(t=>{let o=t.slots[e];return o?{...t,slots:{...t.slots,[e]:{...o,attachedIds:[...o.attachedIds,n]}}}:{...t,slots:{...t.slots,[e]:{...oj(e),attachedIds:[n]}}}})}function oU(e,n){oD(t=>{let o=t.slots[e];return o&&o.attachedIds.includes(n)?{...t,slots:{...t.slots,[e]:{...o,attachedIds:o.attachedIds.filter(e=>e!==n)}}}:t})}function oX(e){oD(n=>{let t=n.slots[e];return t?{...n,slots:{...n.slots,[e]:{...t,attachedIds:[]}}}:n})}function oJ(e,n,t,o){let a=n.indexOf(e);if(-1!==a)return a;{if(void 0!==t)return 1e3+t;let n=o.indexOf(e);return -1!==n?2e3+n:-1}}function oY(e,n,t,o,a,r,i){let s=function(e,n){let t=e.add||[],o=e.remove||[],a=e.order||[],{extensions:r}=oI.getState();return[...n,...t].filter(e=>!o.includes(e)).sort((e,t)=>{let o=oJ(e,a,r[oq(e)]?.order,n),i=oJ(t,a,r[oq(t)]?.order,n);return -1===i?-1:-1===o?1:o-i})}(t,n.slots[e].attachedIds),l=[],c=n.slots[e]?.state,p=c&&"object"==typeof c?{session:i,...c}:{session:i};for(let c of s){let{config:s}=ec(o,e,c),d=ep(t,e,c),u=(0,oz.Z)(s,d),g=oq(c),_=n.extensions[g];if(_){let n=u?.["Display conditions"]?.privileges??_.privileges??[];if(n&&("string"==typeof n||Array.isArray(n)&&n.length>0)&&(!i?.user||!nh(n,i.user)))continue;let t=u?.["Display conditions"]?.expression||_.displayExpression;if(void 0!==t&&"string"==typeof t&&t.trim().length>0)try{if(!oe(t,p))continue}catch(n){console.error(`Error while evaluating expression '${t}' for extension ${g} in slot ${e}`,n);continue}if(_.featureFlag&&!a.includes(_.featureFlag)||window.offlineEnabled&&!oS(r,_.online,_.offline))continue;l.push({id:c,name:g,moduleName:_.moduleName,config:u,featureFlag:_.featureFlag,meta:_.meta,online:u?.["Display conditions"]?.online??_.online??!0,offline:u?.["Display conditions"]?.offline??_.offline??!1})}}return l}function oQ(e){let n=oI.getState(),{config:t}=er(e),o=oF.getState(),a=oy.getState(),r=np.getState(),i=ow();return oY(e,n,t,o,Object.entries(a.flags).filter(([,{enabled:e}])=>e).map(([e])=>e),i,r.session)}let oZ=(e,n,t)=>oI.setState(o=>{let a=o.slots[n]?.moduleName;if(a&&a!=e)return console.warn(`An extension slot with the name '${n}' already exists. Refusing to register the same slot name twice (in "registerExtensionSlot"). The existing one is from module ${a}.`),o;if(a&&a==e)return o;if(o.slots[n])return{...o,slots:{...o.slots,[n]:{...o.slots[n],moduleName:e,state:t}}};let r=oj(n,e,t);return{...o,slots:{...o.slots,[n]:{...r}}}});function oK(e,n,t=!1){oI.setState(o=>{let a=t?(0,oz.Z)(o.slots[e].state,n):n;return{...o,slots:{...o.slots,[e]:{...o.slots[e],state:a}}}})}let o0=()=>oO.setState(()=>({slots:{},extensions:{}})),o1=T("left-nav",{slotName:null,basePath:window.spaBase,mode:"normal"});function o2({name:e,basePath:n,mode:t,componentContext:o,state:a}){o1.setState({slotName:e,basePath:n,mode:t??"normal",componentContext:o,state:a})}function o3(e){o1.getState().slotName===e&&o1.setState(o1.getInitialState(),!0)}let o5=T("modalRegistry",{modals:{}});function o6(e){o5.setState(n=>(n.modals[e.name]=e,n))}function o4(e){let n=o5.getState().modals[e];if(!n){let t=oL(e);t&&(n={name:e,load:t.load,moduleName:t.moduleName},console.warn(`Modal ${e} was registered as an extension. This is deprecated and will be removed in the future. Please register it in the "modals" section of routes.json instead of the "extensions" section.`),o6(n))}return n}let o8=T("workspaceRegistrations",{workspaces:{}}),o7=T("workspaceGroups",{workspaceGroups:{}});function o9(e){o8.setState(n=>({workspaces:{...n.workspaces,[e.name]:{...e,load:e.load,preferredWindowSize:e.preferredWindowSize??"normal",type:e.type??"form",canHide:e.canHide??!1,canMaximize:e.canMaximize??!1,width:e.width??"narrow",groups:e.groups??[]}}}))}function ae(e){o7.setState(n=>{let t=n.workspaceGroups[e.name];return t?{workspaceGroups:{...n.workspaceGroups,[e.name]:{...t,members:Array.from(new Set([...t.members,...e.members]))}}}:{workspaceGroups:{...n.workspaceGroups,[e.name]:{name:e.name,members:e.members}}}})}let an=new Set;function at(e){let n=o8.getState().workspaces;if(n[e])return n[e];{let n=oL(e);if(n)return an.has(e)||(console.warn(`The workspace '${e}' is registered as an extension. This is deprecated. Please register it in the "workspaces" section of the routes.json file.`),an.add(e)),{name:n.name,title:function(e){let n=e?.meta?.title;return"string"==typeof n?n:n&&"object"==typeof n?nS(e.moduleName,n.key,n.default):e.name}(n),moduleName:n.moduleName,preferredWindowSize:n.meta?.screenSize??"normal",load:n.load,type:n.meta?.type??"form",canHide:n.meta?.canHide??!1,canMaximize:n.meta?.canMaximize??!1,width:n.meta?.width??"narrow",groups:n.meta?.groups??[]};throw Error(`No workspace named '${e}' has been registered.`)}}function ao(e){let n=o7.getState().workspaceGroups;if(n[e])return n[e];throw Error(`No workspace group named '${e}' has been registered.`)}let aa=T("workspace2",{registeredGroupsByName:{},registeredWindowsByName:{},registeredWorkspacesByName:{},openedGroup:null,openedWindows:[],workspaceTitleByWorkspaceName:{}});function ar(e){let{registeredWorkspacesByName:n,registeredWindowsByName:t}=aa.getState(),o=n[e];if(o){let n=t[o.window];if(n)return n;throw Error(`No workspace window found with name: ${o.window} for workspace: ${e}`)}throw Error(`No workspace found with name: ${e}`)}function ai(e){let{registeredGroupsByName:n,registeredWindowsByName:t}=aa.getState(),o=t[e];if(o){let t=n[o.group];if(t)return t;throw Error(`No workspace group found with name: ${o.group} for window: ${e}`)}throw Error(`No workspace window found with name: ${e}`)}function as(e){let{openedWindows:n}=aa.getState();return n.findIndex(n=>n.openedWorkspaces.find(n=>n.workspaceName===e))}function al(e){if(0==e.length)return;let{registeredGroupsByName:n}=aa.getState(),t={...n};for(let n of e){if(t[n.name])throw Error(`Cannot register workspace group ${n.name} more than once`);t[n.name]=n}aa.setState({registeredGroupsByName:t})}function ac(e,n){if(0==n.length)return;let{registeredWindowsByName:t}=aa.getState(),o={...t};for(let t of n){if(o[t.name])throw Error(`Cannot register workspace window ${t.name} more than once`);let n={...t,moduleName:e};o[t.name]=n}aa.setState({registeredWindowsByName:o})}function ap(e,n){if(0==n.length)return;let{registeredWorkspacesByName:t}=aa.getState(),o={...t};for(let t of n){if(o[t.name])throw Error(`Cannot register workspace ${t.name} more than once`);let n={...t,moduleName:e};o[t.name]=n}aa.setState({registeredWorkspacesByName:o})}let ad=0;async function au(e,n,t,o,a=e=>e,r={}){let i=oq(o),s=oL(o),l=null;if(e){if(!s)throw Error(`Couldn't find extension '${i}' to attach to '${n}'`);let{meta:c,moduleName:p,online:d,offline:u,load:g}=s;if(oE(d,u)){oD(a=>({...a,extensions:{...a.extensions,[i]:{...a.extensions[i],instances:[...a.extensions[i].instances,{domElement:e,id:o,slotName:n,slotModuleName:t}]}}}));let s=await g(),d=ad++;l=(0,e0.BP)(a({...s,name:`${n}/${i}-${d}`}),{...r,_meta:c,_extensionContext:{extensionId:o,extensionSlotName:n,extensionSlotModuleName:t,extensionModuleName:p},domElement:e})}}else console.warn(`Tried to render ${o} into ${n} but no DOM element was available.`);return l}var ag=t(4449),a_=t.n(ag);let af=(0,ag.createContext)({moduleName:"",featureName:""});function am({to:e,templateParams:n,onBeforeNavigate:t,children:o,...a}){return(0,ag.useEffect)(()=>{a.href&&console.warn(`ConfigurableLink does not support the href prop. Use the 'to' prop instead. The provided href value is '${a.href}'`),a.onClick&&console.warn(`ConfigurableLink does not support the onClick prop. Use the 'onBeforeNavigate' prop instead. The 'to' prop of the offending link is ${e}`)},[]),ag.createElement("a",{onClick:o=>{0===o.button&&!o.ctrlKey&&!o.shiftKey&&!o.altKey&&!o.metaKey&&(o.preventDefault(),t?.(o),e3({to:e,templateParams:n})),0===o.button&&(o.ctrlKey||o.metaKey)&&t?.(o),0===o.button&&o.shiftKey&&t?.(o),1===o.button&&t?.(o)},href:e1(e,n),...a},o)}let ah=({state:e,children:n,...t})=>{let{extension:o}=(0,ag.useContext)(af),a=(0,ag.useRef)(null),r=(0,ag.useRef)(Promise.resolve()),i=(0,ag.useCallback)(n=>{o?.extensionSlotName&&o.extensionSlotModuleName&&o.extensionSlotModuleName&&!a.current&&au(n,o.extensionSlotName,o.extensionSlotModuleName,o.extensionId,void 0,e).then(e=>{a.current=e})},[]);return(0,ag.useEffect)(()=>()=>{if(a&&a.current)switch(a.current.getStatus()){case"MOUNTING":a.current.mountPromise.then(()=>{a.current?.getStatus()==="MOUNTED"&&a.current.unmount()});break;case"MOUNTED":a.current.unmount();break;case"UPDATING":r.current&&r.current.then(()=>{a.current?.getStatus()==="MOUNTED"&&a.current.unmount()})}},[]),(0,ag.useEffect)(()=>{a.current&&a.current.update&&"UNMOUNTING"!==a.current.getStatus()&&Promise.all([a.current.mountPromise,r.current]).then(()=>{a?.current?.getStatus()==="MOUNTED"&&a.current.update&&(r.current=a.current.update({...e}).catch(e=>{if(!(e instanceof Error)||!e.message.includes("minified message #32")||a.current?.getStatus()==="MOUNTED")throw e}))})},[e]),o?ag.createElement("div",{ref:i,"data-extension-id":o?.extensionId,style:{position:"relative"},...t}):null};function ab(e,n){"function"==typeof n&&(n=n(e));let t={};for(let[o,a]of Object.entries(n)){let n=function(...n){e.setState(e=>a(e,...n))};t[o]=n}return t}let ay=()=>e=>e;function aA(e,n=ay(),t){let o=(0,ag.useCallback)(n=>e.subscribe(n),[e]),a=(0,ag.useCallback)(()=>n(e.getState()),[e,n]),r=(0,ag.useSyncExternalStore)(o,a,a),i=(0,ag.useMemo)(()=>t?ab(e,t):{},[e,t]);return{...r,...i}}function av(e,n){return aA(e,ay(),n)}function a$(e){return function(n){let t=(0,ag.useCallback)(n=>e.subscribe(n),[]),o=(0,ag.useCallback)(()=>e.getState(),[]),a=(0,ag.useSyncExternalStore)(t,o,o),r=(0,ag.useMemo)(()=>n?ab(e,n):{},[n]);return{...a,...r}}}let ak=e=>aA(oP(),n=>n.slots?.[e]);function aC(e){let n=ak(e);return n?.assignedExtensions??[]}function aw(e,n){let{moduleName:t}=(0,ag.useContext)(af),o=(0,ag.useRef)(!0);if(!t)throw Error("ComponentContext has not been provided. This should come from @openmrs/esm-react-utils.");return(0,ag.useEffect)(()=>{oZ(t,e,n),o.current=!1},[]),(0,ag.useEffect)(()=>{o.current||oK(e,n)},[e,n]),{extensions:aC(e),extensionSlotName:e,extensionSlotModuleName:t}}function ax(e){return e}function az({name:e,extensionSlotName:n,select:t=ax,children:o,state:a,style:r,...i}){if(o&&a)throw Error("Both children and state have been provided. If children are provided, the state must be passed as a prop to the `Extension` component.");let s=e??n,l=(0,ag.useRef)(null),{extensions:c,extensionSlotModuleName:p}=aw(s,a),d=(0,ag.useMemo)(()=>t(c),[t,c]),u=(0,ag.useMemo)(()=>{if("function"==typeof o&&!ag.isValidElement(o))return d.map(e=>o(e,a))},[o,d]);return ag.createElement("div",{ref:l,"data-extension-slot-name":s,"data-extension-slot-module-name":p,style:{...r,position:"relative"},...i},s&&d?.map((e,n)=>ag.createElement(af.Provider,{key:e.id,value:{moduleName:p,featureName:"",extension:{extensionId:e.id,extensionSlotName:s,extensionSlotModuleName:p}}},u?.[n]??("function"!=typeof o?o:null)??ag.createElement(ah,{state:a}))))}let aE=(0,M.M)()(()=>({}));I("openmrs-app-context",aE);let aS={};function aB(e,n){aE.setState(t=>(e in t||(t[e]={}),t[e]=n(t[e]),Object.assign({},t)))}function aM(e,n){let t=(0,ag.useRef)(n??{}),o=(0,ag.useRef)(n=>aB(e,n));return(0,ag.useEffect)(()=>(!function(e,n=aS){aE.setState(t=>{if(e in t)throw Error(`Attempted to re-register namespace ${e} in the app context. Each namespace must be unregistered before the name can be registered again.`);return Object.assign({},t,{[e]:n===aS?{}:n})})}(e,n??{}),()=>{aE.setState(n=>(e in n&&delete n[e],n))}),[e]),(0,ag.useEffect)(()=>{let o=n??{};z(t.current,o)||(aB(e,()=>o),t.current=o)},[n]),o.current}function aD({namespace:e,value:n}){return aM(e,n),null}let aP=({children:e,value:n,fallback:t})=>n?ag.createElement(ag.Fragment,null,e):t?ag.createElement(ag.Fragment,null,t):null,aT=({privilege:e,fallback:n,children:t})=>{let[o,a]=(0,ag.useState)(null);return((0,ag.useEffect)(()=>{let e=nu({includeAuthStatus:!1}).subscribe(a);return()=>e.unsubscribe()},[]),o&&nh(e,o))?ag.createElement(ag.Fragment,null,t):n?ag.createElement(ag.Fragment,null,n):null};var aI=t(44645),aO=t(92339),aN=t(55938),aF=t(73139);let aW={strictMode:!0,throwErrorsToConsole:!0,disableTranslations:!1},aG=new Map,aj={errorRetryCount:3,fetcher:ns,focusThrottleInterval:18e5,revalidateIfStale:!0,revalidateOnFocus:!1,revalidateOnReconnect:!1,refreshInterval:0,provider:()=>aG};function aq(e){if("object"!=typeof e||"string"!=typeof e.featureName||"string"!=typeof e.moduleName)throw Error("Invalid options");let n=Object.assign({},aW,e),t={...aj,...n.swrConfig};return function(e){var o,a,r,i,s;return r=a=class extends(o=ag.Component){componentDidCatch(e,t){t&&t.componentStack&&(e.extra=Object.assign(e.extra||{},{componentStack:t.componentStack})),n.throwErrorsToConsole&&setTimeout(()=>{throw e}),this.setState({caughtError:e,caughtErrorInfo:t})}render(){if(this.state.caughtError)return ag.createElement("div",null,"An error has occurred. Please try reloading the page.");{let o=ag.createElement(ag.Suspense,{fallback:null},ag.createElement(aF.J$,{value:t},ag.createElement(af.Provider,{value:this.state.config},n.disableTranslations?ag.createElement(e,this.props):ag.createElement(aN.I18nextProvider,{i18n:window.i18next,defaultNS:this.state.config.extension?`${this.state.config.moduleName}___${this.state.config.extension.extensionSlotName}___${this.state.config.extension.extensionId}`:this.state.config.moduleName},ag.createElement(e,this.props)))));return n.strictMode&&ag.StrictMode?ag.createElement(ag.StrictMode,null,o):o}}constructor(e){super(e),this.state={caughtError:null,caughtErrorInfo:null,config:{moduleName:n.moduleName,featureName:n.featureName,extension:e._extensionContext}}}},i="displayName",s=`OpenmrsReactComponent(${n.featureName})`,i in r?Object.defineProperty(r,i,{value:s,enumerable:!0,configurable:!0,writable:!0}):r[i]=s,a}}function aV(e,n){return(0,aO.Z)({React:ag,ReactDOMClient:aI,rootComponent:aq(n)(e)})}function aL(e,n){return()=>e().then(({default:e})=>aV(e,n))}function aR(e,n){return()=>Promise.resolve(aV(e,n))}let aH=aL;function aU(){let e=(0,ag.useRef)();return(!e.current||e.current.signal.aborted)&&(e.current=new AbortController),(0,ag.useEffect)(()=>{let n=e.current;return()=>n?.abort()},[]),e.current}function aX(e,n=e=>e??{}){let[t,o]=(0,ag.useState)();return(0,ag.useEffect)(()=>{if(null==e||""===e.replace(" ",""))throw Error(`The namespace supplied to useAppContext must be a non-empty string, but was "${e}".`)},[e]),(0,ag.useEffect)(()=>{var a;let r;return(a=e=>{if(void 0!==e){let a=n?n(e):e??{};z(t,a)||o(a)}})(Object.freeze(Object.assign({},r=function(e,n=e=>e){let t=aE.getState();return e in t?Object.freeze(Object.assign({},n?n(t[e]):t[e])):null}(e)))),aE.subscribe(n=>{let t=e in n?n[e]:null;t!==r&&(r=t,a(Object.freeze(Object.assign({},t))))})},[]),t}function aJ(e){let[n,t]=(0,ag.useState)([]);return(0,ag.useEffect)(()=>oP().subscribe(o=>{let a=o.slots[e]?.assignedExtensions.map(e=>e.id)??[];(0,ox.Z)(a,n)||t(a)}),[]),n}function aY(e,n){let{data:t,error:o,mutate:a,isLoading:r,isValidating:i}=(0,aF.default)(`${nO}?patient=${e}&includeEncounterless=${n}`,ns);return(0,ag.useMemo)(()=>({isLoading:r,data:t?.data.results??[],error:o,mutate:a,isValidating:i}),[t,o,r,i,a])}function aQ(e){(0,ag.useEffect)(()=>{if(e){let e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}}},[e])}let aZ={},aK=`No ComponentContext has been provided. This should come from "openmrsComponentDecorator".
15
+ ${this.stack}`}}let np=T("session",{loaded:!1,session:null}),nd=0;function nu(e={includeAuthStatus:!0}){return(nd<Date.now()-6e4||!np.getState().loaded)&&nf(),new W.Observable(n=>{let t=t=>{t.loaded&&(e.includeAuthStatus?n.next(t.session):n.next(t.session?.user))};return t(np.getState()),np.subscribe(t)})}function ng(){return(nd<Date.now()-6e4||!np.getState().loaded)&&nf(),np}function n_(e){let n=e.locale??e.user?.userProperties?.defaultLocale;n&&n.includes("_")&&(n=n.replaceAll("_","-")),function(e){if(void 0===e||"string"!=typeof e)return!1;try{new Intl.Locale(e)}catch(e){return!1}return!0}(n)&&n!==document.documentElement.getAttribute("lang")&&document.documentElement.setAttribute("lang",n)}function nf(e,n){nd=Date.now();let t={};return e&&n&&(t.Authorization=`Basic ${window.btoa(`${e}:${n}`)}`),n$(ns(nr,{headers:t}))}function nm(){np.setState({loaded:!0,session:{authenticated:!1,sessionId:""}})}function nh(e,n){var t,o;if(void 0===n)return!e;if(!e)return!0;return t=e,o=n,("string"==typeof t?!(0,F.Z)(o.privileges.find(e=>t===e.display)):Array.isArray(t)?t.every(e=>!(0,F.Z)(o.privileges.find(n=>e===n.display))):((0,F.Z)(t)||console.error(`Could not understand privileges "${t}"`),!0))||!(0,F.Z)(n.roles.find(e=>"System Developer"===e.display))}function nb(){let e,n;return new Promise(t=>{let o=o=>{o.loaded&&o.session.user&&(e=o.session.user,t(o.session.user),n&&n())};o(np.getState()),e||(n=np.subscribe(o))})}function ny(){return new Promise((e,n)=>{nu().subscribe(n=>{e(n.sessionLocation)},n).unsubscribe()})}async function nA(e,n){return n$(ns(nr,{method:"POST",body:{sessionLocation:e},headers:{"Content-Type":"application/json"},signal:n.signal}))}async function nv(e,n,t){return t||(t=new AbortController),await ns(`${no}/user/${e}`,{method:"POST",body:{userProperties:n},headers:{"Content-Type":"application/json"},signal:t.signal}),nf()}function n$(e){return new Promise((n,t)=>{e.then(e=>{let o;"object"==typeof e?.data?(o={loaded:!0,session:e.data},np.setState(o),n(o)):(o={loaded:!1,session:null},np.setState(o),t(o))}).catch(e=>{C(`Failed to fetch new session information: ${e}`);let n={loaded:!1,session:null};np.setState(n),t(n)})})}function nk(){return"development"===window.spaEnv||"true"===localStorage.getItem("openmrs:devtools")}np.subscribe(e=>{e.loaded&&e.session&&n_(e.session)});let nC={"webservices.rest":"2.24.0",fhir2:"1.0.0-SNAPSHOT"};function nw(){ef("@openmrs/esm-api",nn),nf()}let nx={address1:"Address line 1",address2:"Address line 2",address3:"Address line 3",address4:"Address line 4",address5:"Address line 5",address6:"Address line 6",city:"City",cityVillage:"City",country:"Country",countyDistrict:"District",district:"District",postalCode:"Postal code",state:"State",stateProvince:"State",closeAllOpenedWorkspaces:"Discard changes in {{count}} workspaces",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",discard:"Discard",hide:"Hide",maximize:"Maximize",minimize:"Minimize",openAnyway:"Open anyway",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",closeWorkspaces2PromptTitle:"Close workspace(s)",closeWorkspaces2PromptBody:"You are about to close the following workspace(s), which might have unsaved changes:",actions:"Actions",actionableNotification:"Actionable notification",address:"Address",age:"Age",cancel:"Cancel",change:"Change",Clinic:"Clinic",close:"Close",closesActionableNotification:"Closes actionable notification",closeSnackbar:"Close snackbar",confirm:"Confirm",contactAdministratorIfIssuePersists:"Contact your system administrator if the problem persists.",contactDetails:"Contact details",delete:"Delete",discardChanges:"Discard changes",edit:"Edit",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",leftNavigation:"Left navigation",loading:"Loading",male:"Male",noResultsToDisplay:"No results to display",other:"Other",patientAvatarAlt:"Avatar for {{patientName}}",patientIdentifierSticker:"Patient identifier sticker",patientLists:"Patient lists",patientPhotoAlt:"Profile photo of {{patientName}}",patientPhotoPlaceholder:"Photo placeholder for {{patientName}}",print:"Print",printError:"Print error",printErrorExplainer:"An error occurred in {{errorLocation}}",printIdentifierSticker:"Print identifier sticker",printing:"Printing",relationships:"Relationships",resetOverrides:"Reset overrides",save:"Save",scriptLoadingFailed:"Error: Script failed to load",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.",searchForLocation:"Search for a location",seeMoreLists:"See {{count}} more lists",sex:"Sex",showLess:"Show less",showMore:"Show more",snackbarNotification:"Snackbar notification",toggleDevTools:"Toggle dev tools",unknown:"Unknown",yearAbbreviation:"yr",yearsAbbreviation:"yrs"};var nz=t(332);let nE=nz.ZP.default||nz.ZP;function nS(e,n,t,o){return nE.t(n,{ns:e,defaultValue:t,...o})}function nB(e,n,t){return nx[e]?nS("core",e,n??nx[e],t):(console.error(`O3 Core Translations does not provide key '${e}'. The key itself is being rendered as text.`),e)}function nM(e){return e.replace(/[\/\-@]/g,"_")}async function nD(e,n="./start",o){var a;let r,i=!o?.maxLoadingTime||o.maxLoadingTime<=0?6e5:o.maxLoadingTime;await Promise.race([nP(e,o?.importMap),new Promise((n,t)=>{r=setTimeout(()=>{var n;t(Error(`Could not resolve requested script, ${e}, within ${(n=i)<1e3?`${n} milliseconds`:n<6e4?`${Math.floor(n/1e3)} seconds`:n<36e5?`${Math.floor(n/6e4)} minutes`:n<864e5?`${Math.floor(n/36e5)} hours`:`${Math.floor(n/864e5)} days`}.`))},i)})]),r&&clearTimeout(r);let s=nM(e),l=window[s];if(!("object"==typeof(a=l)&&null!==a&&"init"in a&&"function"==typeof a.init&&"get"in a&&"function"==typeof a.get)){let e=`The global variable ${s} does not refer to a federated module`;throw console.error(e),Error(e)}l.init(t.S.default);let c=(await l.get(n))();if("object"!=typeof c||null===c){let n=`Container for ${e} did not return an ESM module as expected`;throw console.error(n),Error(n)}return c}async function nP(e,n){if("string"!=typeof e||0===e.trim().length){let e="Attempted to call importDynamic() without supplying a package to load";throw console.error(e),Error(e)}let t=nM(e);if(!window[t]){let t=n??await nT();if(!t.imports.hasOwnProperty(e)){let n=`Could not find the package ${e} defined in the current importmap`;throw console.error(n),Error(n)}let o=t.imports[e];o.startsWith("./")&&(o=window.spaBase+o.substring(1));let a=!!window.localStorage.getItem(`import-map-override:${e}`);try{return await new Promise((e,n)=>{!function(e,n,t){let o=document.head.querySelector(`script[src="${e}"]`),a=window[nI];if(a||(a=window[nI]=new Set([])),o)if(a.has(e)){let e,a,r;r=()=>{e&&o.removeEventListener("load",e),a&&o.removeEventListener("error",a)},e=()=>{r(),n(null)},a=e=>{r(),t(e.message)},o.addEventListener("load",e),o.addEventListener("error",a)}else console.warn(`Script at ${e} already loaded. Not loading it again.`),n(null);else{let o,r,i;a.add(e);let s=document.createElement("script");s.src=e,s.type="text/javascript",s.async=!0;let l=setTimeout(()=>{console.error(`The script at ${e} did not load within 5 seconds. This may indicate an issue with the imports in the script's entry-point file or with the script's bundler configuration.`)},5e3);i=()=>{clearTimeout(l),a.delete(e),o&&s.removeEventListener("load",o),r&&s.removeEventListener("error",r)},o=()=>{i(),n(null)},r=n=>{i();let o=`Failed to load script from ${e}`;console.error(o,n),t(n.message??o)},s.addEventListener("load",o),s.addEventListener("error",r),document.head.appendChild(s)}}(o,e,n)})}catch(e){return a&&y({kind:"error",title:nB("scriptLoadingFailed","Error: Script failed to load"),description:nB("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.",{url:o}),actionButtonLabel:nB("resetOverrides","Reset overrides"),onActionButtonClick(){window.importMapOverrides.resetOverrides(),window.location.reload()}}),Promise.reject(e)}}return Promise.resolve()}async function nT(){return window.importMapOverrides.getCurrentPageMap()}nE.on("initialized",function(){window.i18next.loadNamespaces(["core"])});let nI=Symbol("__openmrs_script_loading"),nO=`${no}/attachment`;function nN(e,n){return ns(`${nO}/${e}`,{signal:n.signal})}function nF(e,n,t){return ns(`${nO}?patient=${e}&includeEncounterless=${n}`,{signal:t.signal})}async function nW(e,n){let t=new FormData;return t.append("fileCaption",n.fileDescription),t.append("patient",e),n.file?t.append("file",n.file,n.fileName):(t.append("file",new File([""],n.fileName),n.fileName),t.append("base64Content",n.base64Content)),ns(`${nO}`,{method:"POST",body:t})}function nG(e,n){return ns(`${nO}/${e}`,{method:"DELETE",signal:n.signal})}var nj=t(23805);function nq(e,n){if(void 0!==a)return console.warn(`The application's Service Worker has already been registered. The new service worker at ${e} will not be registered.`),a;if(!("serviceWorker"in navigator))throw Error("Registering the Service Worker is not possible due to missing browser capabilities.");let t=new nj.ZW(e,n);return a=t.register().then(()=>t.controlling.then(()=>t))}function nV(){return a??Promise.resolve(void 0)}let nL="x-omrs-offline-response-body",nR="x-omrs-offline-response-status",nH="x-omrs-offline-caching-strategy";async function nU(e){let n=await nV();return n?await n.messageSW(e):{success:!1,result:void 0,error:"No service worker has been registered. This is typically the case when the application has been built without offline-related features."}}async function nX(){let e=window.sessionStorage;try{e.setItem("someKeyHere","test"),e.removeItem("someKeyHere")}catch(n){if(n.code===DOMException.QUOTA_EXCEEDED_ERR&&0===e.length)return!0}return!1}async function nJ(){return!window.indexedDB}async function nY(){return new Promise(e=>{let n=indexedDB.open("test");n.onerror=()=>e(!0),n.onsuccess=()=>e(!1)})}async function nQ(){return await nY()||await nJ()||await nX()}let nZ="openmrs3:offline-mode",nK="unavailable";function n0(){return{current:nK,notAvailable:"unavailable"===nK,active:"on"===nK}}function n1(e){"unavailable"!==nK&&"unavailable"!==e&&(localStorage.setItem(nZ,"on"===e?"active":"disabled"),nK=e)}async function n2(){await nQ()||(nK="active"===localStorage.getItem(nZ)?"on":"off"),navigator.onLine}var n3=t(44197);function n5(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class n6 extends n3.ZP{constructor(){super("EsmOffline"),n5(this,"syncQueue",void 0),n5(this,"dynamicOfflineData",void 0),this.version(4).stores({syncQueue:"++id,userId,type,[userId+type]",dynamicOfflineData:"++id,type,identifier,*users,&[type+identifier]"}),this.syncQueue=this.table("syncQueue"),this.dynamicOfflineData=this.table("dynamicOfflineData")}}function n4(){return new n6}let n8=new n6,n7={},n9=T("offline-synchronization",{});function te(){return n9}async function tn(){if(n9.getState().synchronization)return;let e=await n8.syncQueue.count(),n={},t=Object.entries(n7),o=t.length,a={},r=new AbortController,i=()=>{let e=n9.getState().synchronization;n9.setState({synchronization:{...e,pendingCount:e.pendingCount-1}})};try{n9.setState({synchronization:{totalCount:e,pendingCount:e,abortController:r}});for(let e=0;e<o&&t.length>0;e++)for(let e=t.length;e--;){let[o,s]=t[e],l=s.dependsOn.map(e=>n[e]);l.every(Boolean)&&(a[o]={},await Promise.all(l),n[o]=tt(s,a,r,i),t.splice(e,1))}await Promise.allSettled(Object.values(n))}finally{n9.setState({synchronization:void 0})}}async function tt({type:e,dependsOn:n,process:t},o,a,r){let i=[],s=[],l=await to();await n8.syncQueue.where({type:e,userId:l}).each((e,n)=>{i.push([n.primaryKey,e.content,e.descriptor]),s.push(e.content)});for(let c=0;c<i.length;c++){let[p,d,{id:u,dependencies:g=[]}]=i[c];try{let r=await t(d,{abort:a,index:c,items:s,userId:l,dependencies:g.map(({id:e,type:t})=>n.includes(t)?o[t][e]:void 0)});void 0!==u&&(o[e][u]=r),await n8.syncQueue.delete(p)}catch(e){await n8.syncQueue.update(p,{lastError:{name:e?.name,message:e?.message??e?.toString()}})}finally{r()}}}async function to(){let e=await nb();return e?.uuid||"*"}async function ta(e,n,t,o){let a=o&&o.id;return void 0!==a&&await n8.syncQueue.where({type:n,userId:e}).filter(e=>e?.descriptor.id===a).delete().catch(n3.ZP.errnames.DatabaseClosed),await n8.syncQueue.add({type:n,content:t,userId:e,descriptor:o||{},createdOn:new Date}).catch(n3.ZP.errnames.DatabaseClosed,()=>-1)}async function tr(e,n,t){let o=await to();return await ta(o,e,n,t)}async function ti(e,n){return(await ts(e,n)).map(e=>e.content)}async function ts(e,n){return await n8.syncQueue.where(n?{type:n,userId:e}:{userId:e}).toArray().catch(n3.ZP.errnames.DatabaseClosed,()=>[])}async function tl(e){let n=await to();return await ti(n,e)}async function tc(e){let n=await to();return await ts(n,e)}async function tp(e){return await n8.syncQueue.get(e).catch(n3.ZP.errnames.DatabaseClosed,()=>void 0)}function td(e){return!!n7[e]?.options.onBeginEditSyncItem}async function tu(e){let n=await tp(e);if(!n)throw Error(`No sync item with the ID ${e} exists.`);let t=n7[n.type]?.options.onBeginEditSyncItem;if(!t)throw Error(`A sync item with the ID ${e} exists, but the associated handler (if one exists) doesn't support editing the item. You can avoid this error by either verifying that sync items of this type can be edited via the "canEditSynchronizationItemsOfType(type: string)" function or alternatively ensure that the synchronizaton handler for sync items of type "${n.type}" supports editing items.`);t(n)}async function tg(e){await n8.syncQueue.delete(e).catch(n3.ZP.errnames.DatabaseClosed)}function t_(e,n,t,o={}){n7[e]={type:e,dependsOn:n,process:t,options:o}}var tf=t(43415);let tm="OFFLINE+";function th(){return tm+(0,tf.Z)()}function tb(e){return e.startsWith(tm)}let ty={};function tA(){return Object.values(ty)}function tv(e){ty[e.id]&&console.warn(`[setupDynamicOfflineDataHandler] Another second handler with the ID "${e.id}" was registered. This handler will override the previous one. This could be unintended as the previous handler might run different flows than the newly registered one. If this is the case, ensure that you are setting up the handlers with different IDs.`),ty[e.id]=e}async function t$(e){let n=await tB();return await tk(n,e)}async function tk(e,n){let t=new n6;return await t.dynamicOfflineData.where(n?{type:n,users:e}:{users:e}).toArray().catch(n3.ZP.errnames.DatabaseClosed,()=>[])}async function tC(e,n){let t=await tB();return await tw(t,e,n)}async function tw(e,n,t){let o=new n6,a=await o.dynamicOfflineData.get({type:n,identifier:t}).catch(n3.ZP.errnames.DatabaseClosed,()=>void 0);a?a.users.includes(e)||await o.dynamicOfflineData.update(a.id,{users:[...a.users,e]}).catch(n3.ZP.errnames.DatabaseClosed):await o.dynamicOfflineData.add({users:[e],type:n,identifier:t}).catch(n3.ZP.errnames.DatabaseClosed)}async function tx(e,n){let t=await tB();return await tz(t,e,n)}async function tz(e,n,t){let o=new n6,a=await o.dynamicOfflineData.get({type:n,identifier:t,users:e}).catch(n3.ZP.errnames.DatabaseClosed,()=>void 0);a&&(a.users.length>1?await o.dynamicOfflineData.update(a.id,{users:a.users.filter(n=>n!==e)}).catch(n3.ZP.errnames.DatabaseClosed):await o.dynamicOfflineData.delete(a.id).catch(n3.ZP.errnames.DatabaseClosed))}async function tE(e,n){let t=await t$(e);await Promise.all(t.map(async e=>tS(e.type,e.identifier,n)))}async function tS(e,n,t){await tC(e,n);let o=new n6,a=await tB(),r=await o.dynamicOfflineData.get({type:e,identifier:n}).catch(n3.ZP.errnames.DatabaseClosed,()=>void 0),i=tA().filter(n=>n.type===e);if(!r)return;let s=await Promise.all(i.map(async e=>{try{return e.sync(n,t),{id:e.id,error:void 0}}catch(t){let n=t.message?.toString()??t.toString();return{id:e.id,error:n}}})),l=s.filter(e=>!e.error).map(e=>e.id),c=s.filter(e=>e.error).map(e=>e.id),p=s.filter(e=>e.error).map(e=>({handlerId:e.id,message:e.error})),d={syncedOn:new Date,syncedBy:a,succeededHandlers:l,erroredHandlers:c,errors:p};r.id&&await o.dynamicOfflineData.update(r.id,{syncState:d}).catch(n3.ZP.errnames.DatabaseClosed)}async function tB(){let e=(await nb()).uuid;if(!e)throw Error("Using the dynamic offline data API requires a logged in user.");return e}let tM=T("offline-patients",{offlinePatientDataSyncState:{},handlers:{}});function tD(){return tI(),tM}function tP(e,n){tI(),tv({type:"patient",displayName:n.displayName,id:e,isSynced:()=>Promise.resolve(!0),sync:(e,t)=>n.onOfflinePatientAdded({patientUuid:e,signal:t??new AbortController().signal})})}async function tT(e){tI(),await tS("patient",e)}function tI(){console.warn("The offline patient API has been deprecated and will be removed in a future release. To prevent future crashes, the functions remain available for the moment, but any invocations should be migrated ASAP.")}async function tO(e,n,t=!0){if(e){let o=null,[a,r]=await Promise.all([ns(`${na}/Patient/${e}`,n).catch(e=>o=e),t?tN(e):Promise.resolve(null)]);if(a.ok)return a.data;if(r)return r;if(o)throw o}return null}async function tN(e){let n=(await tl("patient-registration")).find(n=>n.fhirPatient.id===e);return n?.fhirPatient??null}var tF=t(34049);function tW(e){return{uuid:e.uuid,display:e.display}}function tG(e=null,n=null){let t=new URLSearchParams;e&&t.set("tag",e),n&&t.set("q",n);let o=t.toString();return nl(`${no}/location${o?"?"+o:""}`).pipe((0,tF.map)(e=>e.data.results.map(tW))).pipe((0,tF.take)(1))}function tj(e){return{uuid:e.uuid,display:e.display,name:e.name}}function tq(){return nl(`${no}/visittype`).pipe((0,tF.map)(e=>e.data.results.map(tj))).pipe((0,tF.take)(1))}var tV=((S={}).NEWVISIT="startVisit",S.EDITVISIT="editVisit",S.LOADING="loadingVisit",S),tL=((B={}).NOTSTARTED="notStarted",B.ONGOING="ongoing",B);let tR="custom:(uuid,display,voided,indication,startDatetime,stopDatetime,encounters:(uuid,display,encounterDatetime,form:(uuid,name),location:ref,encounterType:ref,encounterProviders:(uuid,display,provider:(uuid,display))),patient:(uuid,display),visitType:(uuid,name,display),attributes:(uuid,display,attributeType:(name,datatypeClassname,uuid),value),location:(uuid,name,display))",tH=function(){try{return JSON.parse(sessionStorage.getItem("openmrs:visitStoreState")||"null")}catch(e){return null}}()||{patientUuid:null,manuallySetVisitUuid:null,mutateVisitCallbacks:{}};function tU(){return O("visit",tH)}function tX(e,n){tU().setState({patientUuid:e,manuallySetVisitUuid:n})}function tJ(e,n){return ns(`${no}/visit`,{signal:n.signal,method:"POST",headers:{"Content-type":"application/json"},body:e})}function tY(e,n,t){return ns(`${no}/visit/${e}`,{signal:t.signal,method:"POST",headers:{"Content-type":"application/json"},body:n})}function tQ(e,n,t){return ns(`${no}/visit?patient=${e}&v=${t??tR}`,{signal:n.signal,method:"GET",headers:{"Content-type":"application/json"}})}tU().subscribe(e=>{var n;n=e,sessionStorage.setItem("openmrs:visitStoreState",JSON.stringify(n))});let tZ=new W.BehaviorSubject(null);var tK=t(89373),t0=t(31204),t1=t(68334),t2=t(21003),t3=t(75754),t5=t(63511),t6=t(73237);let t4={Array,Boolean,Symbol,Infinity,NaN,Math,Number,BigInt,String,RegExp,JSON,isFinite,isNaN,parseFloat,parseInt,decodeURI,encodeURI,encodeURIComponent,Object:{__proto__:void 0,assign:Object.assign.bind(null),fromEntries:Object.fromEntries.bind(null),hasOwn:Object.hasOwn.bind(null),keys:Object.keys.bind(null),is:Object.is.bind(null),values:Object.values.bind(null)}},t8={...t4,Promise};function t7(e,n={}){return oa(e,n,os)}async function t9(e,n={}){return or(e,n,os)}function oe(e,n={}){return oa(e,n,ol)}function on(e,n={}){return or(e,n,ol)}function ot(e,n={}){return oa(e,n,oc)}function oo(e,n={}){return or(e,n,oc)}function oa(e,n={},t){if("string"!=typeof e&&("object"!=typeof e||!e||!("type"in e)))throw`Unknown expression type ${e}. Expressions must either be a string or pre-compiled string.`;if("string"==typeof e&&0===e.trim().length)throw{type:"Empty expression",message:"Expression cannot be an empty string"};null==n&&(n={});let o=ou(n,t4),a=op("string"==typeof e?(0,tK.Z)(e):e,o);if(t(a))return a;throw{type:"Invalid result",message:"string"==typeof e?`The expression ${e} did not produce a valid result`:"The expression did not produce a valid result"}}async function or(e,n={},t){if("string"!=typeof e&&("object"!=typeof e||!e||!("type"in e)))return Promise.reject(`Unknown expression type ${e}. Expressions must either be a string or pre-compiled string.`);if("string"==typeof e&&0===e.trim().length)throw{type:"Empty expression",message:"Expression cannot be an empty string"};null==n&&(n={});let o=ou(n,t8);return Promise.resolve(op("string"==typeof e?(0,tK.Z)(e):e,o)).then(n=>{if(t(n))return n;throw{type:"Invalid result",message:"string"==typeof e?`The expression ${e} did not produce a valid result`:"The expression did not produce a valid result"}})}function oi(e){return(0,tK.Z)(e)}function os(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e||null==e||e instanceof Date}function ol(e){return"boolean"==typeof e}function oc(e){return"number"==typeof e}function op(e,n){switch(e.type){case"UnaryExpression":var t,o,a,r,i,s,l,c,p=e,d=n;let u=op(p.argument,d);switch(p.operator){case"+":return+u;case"-":return-u;case"~":return~u;case"!":return!u;default:throw`Expression evaluator does not support operator '${p.operator}''`}case"BinaryExpression":var g=e,_=n;let f=op(g.left,_),m=op(g.right,_);switch(g.operator){case"+":return f+m;case"-":return f-m;case"*":return f*m;case"/":return f/m;case"%":return f%m;case"**":return f**m;case"==":return f==m;case"===":return f===m;case"!=":return f!=m;case"!==":return f!==m;case">":return f>m;case">=":return f>=m;case"<":return f<m;case"<=":return f<=m;case"in":return f in m;case"&&":return f&&m;case"||":return f||m;case"??":return f??m;default:throw`Expression evaluator does not support operator '${g.operator}' operator`}case"ConditionalExpression":return t=e,o=n,op(t.test,o)?op(t.consequent,o):op(t.alternate,o);case"CallExpression":var h=e,b=n;let y=h.arguments?.map(og(b)),A=op(h.callee,b);if(A){if("function"!=typeof A)throw`${of(h.callee)} is not a function`}else throw`No function named ${of(h.callee)} is defined in this context`;return A(...y);case"ArrowFunctionExpression":var v=e,$=n;let k=v.params?.map(e=>{if("Identifier"===e.type)return e.name;throw`Cannot handle parameter of type ${e.type}`})??[];return(function(...e){if(e.length<k.length)throw`Required argument(s) ${k.slice(e.length,-1).join(", ")} were not provided`;let n=Object.fromEntries(k.reduce((n,t,o)=>{let a=e[o];return function e(n){if("string"==typeof n||"number"==typeof n||"boolean"==typeof n||"function"==typeof n||null===n||n instanceof RegExp)return!0;if("object"==typeof n){for(let t of Object.keys(n))if(!e(n[t]))return!1;return!0}if(Array.isArray(n)){for(let t of n)if(!e(t))break}return!1}(a)&&n.push([t,a]),n},[]));return op(v.body,$.addVariables(n))}).bind($.thisObj??null);case"MemberExpression":return function(e,n){let t,o=op(e.object,n);if(void 0===o)switch(e.object.type){case"Identifier":{let t=od(e.object,n);throw ReferenceError(`ReferenceError: ${t} is not defined`)}case"MemberExpression":{let t=od(e.property,n);throw TypeError(`TypeError: cannot read properties of undefined (reading '${t}')`)}default:throw`VisitMemberExpression does not support operator '${e.object.type}' type`}let a=o;if("string"==typeof o)a=String.prototype;else if("number"==typeof o)a=Number.prototype;else if("function"==typeof o);else if("object"!=typeof o)throw`VisitMemberExpression does not support member access on type ${typeof o}`;switch(n.thisObj=a,e.property.type){case"Identifier":case"MemberExpression":t=op(e.property,n);break;default:{let a=op(e.property,n);if(void 0===a)throw{type:"Illegal property access",message:"No property was supplied to the property access"};o_(a),t=o[a]}}return"function"==typeof t?t.bind(o):t}(e,n);case"ArrayExpression":return a=e,r=n,a.elements?.map(og(r));case"SequenceExpression":var C=e,w=n;let x=C.expressions.map(og(w));return x[x.length-1];case"NewExpression":var z=e,E=n;if(z.callee&&"Identifier"===z.callee.type){let e=z.arguments?.map(og(E));switch(z.callee.name){case"Date":return new Date(...e);case"RegExp":return new RegExp(...e);default:throw`Cannot instantiate object of type ${z.callee.name}`}}if(z.callee)throw"new must be called with either Date or RegExp";throw'Could not handle "new" without a specified class';case"Literal":return s=0,o_((i=e).value),i.value;case"Identifier":var S=e,B=n;o_(S.name);let M=B.thisObj;if(M&&("object"==typeof M||"function"==typeof M)&&S.name in M){let e=M[S.name];return o_(e),e}if(B.variables&&S.name in B.variables){let e=B.variables[S.name];return o_(e),e}return S.name in B.globals?B.globals[S.name]:void 0;case"TemplateLiteral":var D=e,P=n;let T=D.expressions?.map(og(P))??[],I=D.quasis?.map(og(P))??[];return I.filter(e=>!e.tail).map(e=>e.value).join("")+T.join("")+I.filter(e=>e.tail).map(e=>e.value).join("");case"TemplateElement":return c=0,{value:(l=e).cooked,tail:l.tail};default:throw`Expression evaluator does not support expression of type '${e.type}'`}}function od(e,n){switch(e.type){case"Literal":return e.value;case"Identifier":return e.name;case"MemberExpression":return od(e.property,n);default:throw`VisitExpressionName does not support expression of type '${e.type}'`}}function ou(e,n){let t={thisObj:void 0,variables:{...e},globals:{...n},addVariables(e){return this.variables={...this.variables,...e},this}};return t.addVariables.bind(t),t}function og(e){return function(n){return null===n?null:op(n,e)}}function o_(e){if("__proto__"===e||"prototype"===e||"constructor"===e)throw{type:"Illegal property access",message:`Cannot access the ${e} property of objects`}}function of(e){return e?"MemberExpression"===e.type?e.property?.name:e.name:null}function om(e){if("string"!=typeof e&&("object"!=typeof e||!e||!("type"in e)))throw`Unknown expression type ${e}. Expressions must either be a string or pre-compiled string.`;let n={globals:{...t8},isLocalExpression:!1,variables:new Set};return oh("string"==typeof e?(0,tK.Z)(e):e,n),[...n.variables]}function oh(e,n){switch(e.type){case"UnaryExpression":return t=e,o=n,oh(t.argument,o);case"BinaryExpression":return a=e,r=n,[oh(a.left,r),oh(a.right,r)].filter(Boolean);case"ConditionalExpression":var t,o,a,r,i,s,l,c,p,d,u,g,_,f,m,h,b=e,y=n;return[oh(b.consequent,y),oh(b.test,y),oh(b.alternate,y)].filter(Boolean);case"CallExpression":var A=e,v=n;let $=oh(A.callee,v);return A.arguments?.map(ob(v)),$;case"ArrowFunctionExpression":var k=e,C=n;let w={...C};w.isLocalExpression=!0;let x=k.params?.map(ob(w))??[],z=oh(k.body,w)??[];if(z&&Array.isArray(z))for(let e of z)x.includes(e)||C.variables.add(e);return;case"MemberExpression":var E=e,S=n;oh(E.object,S);let B={...S};B.isLocalExpression=!0,oh(E.property,B);return;case"ArrayExpression":return i=e,s=n,void i.elements?.map(ob(s));case"SequenceExpression":return l=e,c=n,void l.expressions?.map(ob(c));case"NewExpression":return p=e,d=n,void p.arguments?.map(ob(d));case"Literal":return u=0,void(g=0);case"Identifier":var M=e,D=n;if(!(M.name in D.globals))if(D.isLocalExpression)return M.name;else D.variables.add(M.name);return;case"TemplateLiteral":return _=e,f=n,void(_.expressions?.map(ob(f)),_.quasis?.map(ob(f)));case"TemplateElement":return m=0,void(h=0);default:throw`Expression evaluator does not support expression of type '${e.type}'`}}function ob(e){return function(n){return null===n?null:oh(n,e)}}tK.Z.plugins.register(t0.Z),tK.Z.plugins.register(t1.Z),tK.Z.plugins.register(t2.Z),tK.Z.plugins.register(t3.Z),tK.Z.plugins.register(t5.Z),tK.Z.plugins.register(t6.Z),tK.Z.addBinaryOp("in",7),tK.Z.addBinaryOp("??",1);let oy=O("feature-flags",{flags:function(){let e={};for(let n of Object.keys(localStorage))if(n.startsWith("openmrs:feature-flag:")){let t=n.replace("openmrs:feature-flag:",""),o=JSON.parse(localStorage.getItem(`openmrs:feature-flag-meta:${t}`)||"{}");e[t]={enabled:"true"===localStorage.getItem(n),...o}}return e}()});function oA(e,n,t){oy.setState(o=>({flags:{...o.flags,[e]:{enabled:o.flags[e]?.enabled??!1,label:n,description:t}}}))}function ov(){let e=oy.getState().flags;Object.keys(localStorage).filter(e=>e.startsWith("openmrs:feature-flag:")).forEach(n=>{let t=n.replace("openmrs:feature-flag:","");e[t]||(localStorage.removeItem(n),localStorage.removeItem(`openmrs:feature-flag-meta:${t}`))})}function o$(e){return oy.getState().flags[e].enabled}function ok(e,n){oy.subscribe(t=>{n(t.flags[e].enabled)})}function oC(e,n){oy.setState(t=>({flags:{...t.flags,[e]:{...t.flags[e],enabled:n}}}))}function ow(e){return!window.offlineEnabled||(e??navigator.onLine)}oy.subscribe(e=>{for(let[n,t]of Object.entries(e.flags))localStorage.setItem(`openmrs:feature-flag:${n}`,t.enabled.toString()),localStorage.setItem(`openmrs:feature-flag-meta:${n}`,JSON.stringify({label:t.label,description:t.description}))});var ox=t(39508),oz=t(25424);function oE(e=!0,n=!1){return oS(ow(),e,n)}function oS(e,n=!0,t=!1){return!!(e?n:t)}let oB=T("extensionsInternal",{slots:{},extensions:{}}),oM=()=>O("extensionsInternal",{slots:{},extensions:{}});function oD(e){let n=oB.getState(),t=e(n);t!==n&&oB.setState(t)}let oP=()=>O("extensions",{slots:{}});function oT(e){let n=[];for(let t of Object.values(e.extensions))for(let e of t.instances)n.push({slotModuleName:e.slotModuleName,extensionModuleName:t.moduleName,slotName:e.slotName,extensionId:e.id});(0,ox.Z)(et.getState().mountedExtensions,n)||et.setState({mountedExtensions:n})}oT(oB.getState()),oB.subscribe(oT);let oI=oM(),oO=oP(),oN=ea(),oF=es();function oW(e,n,t,o,a){let r={},i=ow(),s=Object.entries(o.flags).filter(([,{enabled:e}])=>e).map(([e])=>e);for(let[o,l]of Object.entries(e.slots)){let{config:c}=ei(n,l.name),p=oY(o,e,c,t,s,i,a.session);r[o]={moduleName:l.moduleName,assignedExtensions:p}}(0,ox.Z)(oO.getState().slots,r)||oO.setState({slots:r})}function oG(){oW(oI.getState(),oN.getState(),oF.getState(),oy.getState(),np.getState())}function oj(e,n,t){return{moduleName:n,name:e,attachedIds:[],config:null,state:t}}function oq(e){let[n]=e.split("#");return n}function oV(e,n){let t=oq(n);return e.extensions[t]}function oL(e){return oV(oI.getState(),e)}oI.subscribe(e=>{oW(e,oN.getState(),oF.getState(),oy.getState(),np.getState())}),oN.subscribe(e=>{oW(oI.getState(),e,oF.getState(),oy.getState(),np.getState())}),oF.subscribe(e=>{oW(oI.getState(),oN.getState(),e,oy.getState(),np.getState())}),oy.subscribe(e=>{oW(oI.getState(),oN.getState(),oF.getState(),e,np.getState())}),np.subscribe(e=>{oW(oI.getState(),oN.getState(),oF.getState(),oy.getState(),e)}),oG(),s(oG);let oR=e=>oI.setState(n=>(n.extensions[e.name]={...e,instances:[]},n));function oH(e,n){oD(t=>{let o=t.slots[e];return o?{...t,slots:{...t.slots,[e]:{...o,attachedIds:[...o.attachedIds,n]}}}:{...t,slots:{...t.slots,[e]:{...oj(e),attachedIds:[n]}}}})}function oU(e,n){oD(t=>{let o=t.slots[e];return o&&o.attachedIds.includes(n)?{...t,slots:{...t.slots,[e]:{...o,attachedIds:o.attachedIds.filter(e=>e!==n)}}}:t})}function oX(e){oD(n=>{let t=n.slots[e];return t?{...n,slots:{...n.slots,[e]:{...t,attachedIds:[]}}}:n})}function oJ(e,n,t,o){let a=n.indexOf(e);if(-1!==a)return a;{if(void 0!==t)return 1e3+t;let n=o.indexOf(e);return -1!==n?2e3+n:-1}}function oY(e,n,t,o,a,r,i){let s=function(e,n){let t=e.add||[],o=e.remove||[],a=e.order||[],{extensions:r}=oI.getState();return[...n,...t].filter(e=>!o.includes(e)).sort((e,t)=>{let o=oJ(e,a,r[oq(e)]?.order,n),i=oJ(t,a,r[oq(t)]?.order,n);return -1===i?-1:-1===o?1:o-i})}(t,n.slots[e].attachedIds),l=[],c=n.slots[e]?.state,p=c&&"object"==typeof c?{session:i,...c}:{session:i};for(let c of s){let{config:s}=ec(o,e,c),d=ep(t,e,c),u=(0,oz.Z)(s,d),g=oq(c),_=n.extensions[g];if(_){let n=u?.["Display conditions"]?.privileges??_.privileges??[];if(n&&("string"==typeof n||Array.isArray(n)&&n.length>0)&&(!i?.user||!nh(n,i.user)))continue;let t=u?.["Display conditions"]?.expression||_.displayExpression;if(void 0!==t&&"string"==typeof t&&t.trim().length>0)try{if(!oe(t,p))continue}catch(n){console.error(`Error while evaluating expression '${t}' for extension ${g} in slot ${e}`,n);continue}if(_.featureFlag&&!a.includes(_.featureFlag)||window.offlineEnabled&&!oS(r,_.online,_.offline))continue;l.push({id:c,name:g,moduleName:_.moduleName,config:u,featureFlag:_.featureFlag,meta:_.meta,online:u?.["Display conditions"]?.online??_.online??!0,offline:u?.["Display conditions"]?.offline??_.offline??!1})}}return l}function oQ(e){let n=oI.getState(),{config:t}=er(e),o=oF.getState(),a=oy.getState(),r=np.getState(),i=ow();return oY(e,n,t,o,Object.entries(a.flags).filter(([,{enabled:e}])=>e).map(([e])=>e),i,r.session)}let oZ=(e,n,t)=>oI.setState(o=>{let a=o.slots[n]?.moduleName;if(a&&a!=e)return console.warn(`An extension slot with the name '${n}' already exists. Refusing to register the same slot name twice (in "registerExtensionSlot"). The existing one is from module ${a}.`),o;if(a&&a==e)return o;if(o.slots[n])return{...o,slots:{...o.slots,[n]:{...o.slots[n],moduleName:e,state:t}}};let r=oj(n,e,t);return{...o,slots:{...o.slots,[n]:{...r}}}});function oK(e,n,t=!1){oI.setState(o=>{let a=t?(0,oz.Z)(o.slots[e].state,n):n;return{...o,slots:{...o.slots,[e]:{...o.slots[e],state:a}}}})}let o0=()=>oO.setState(()=>({slots:{},extensions:{}})),o1=T("left-nav",{slotName:null,basePath:window.spaBase,mode:"normal"});function o2({name:e,basePath:n,mode:t,componentContext:o,state:a}){o1.setState({slotName:e,basePath:n,mode:t??"normal",componentContext:o,state:a})}function o3(e){o1.getState().slotName===e&&o1.setState(o1.getInitialState(),!0)}let o5=T("modalRegistry",{modals:{}});function o6(e){o5.setState(n=>(n.modals[e.name]=e,n))}function o4(e){let n=o5.getState().modals[e];if(!n){let t=oL(e);t&&(n={name:e,load:t.load,moduleName:t.moduleName},console.warn(`Modal ${e} was registered as an extension. This is deprecated and will be removed in the future. Please register it in the "modals" section of routes.json instead of the "extensions" section.`),o6(n))}return n}let o8=T("workspaceRegistrations",{workspaces:{}}),o7=T("workspaceGroups",{workspaceGroups:{}});function o9(e){o8.setState(n=>({workspaces:{...n.workspaces,[e.name]:{...e,load:e.load,preferredWindowSize:e.preferredWindowSize??"normal",type:e.type??"form",canHide:e.canHide??!1,canMaximize:e.canMaximize??!1,width:e.width??"narrow",groups:e.groups??[]}}}))}function ae(e){o7.setState(n=>{let t=n.workspaceGroups[e.name];return t?{workspaceGroups:{...n.workspaceGroups,[e.name]:{...t,members:Array.from(new Set([...t.members,...e.members]))}}}:{workspaceGroups:{...n.workspaceGroups,[e.name]:{name:e.name,members:e.members}}}})}let an=new Set;function at(e){let n=o8.getState().workspaces;if(n[e])return n[e];{let n=oL(e);if(n)return an.has(e)||(console.warn(`The workspace '${e}' is registered as an extension. This is deprecated. Please register it in the "workspaces" section of the routes.json file.`),an.add(e)),{name:n.name,title:function(e){let n=e?.meta?.title;return"string"==typeof n?n:n&&"object"==typeof n?nS(e.moduleName,n.key,n.default):e.name}(n),moduleName:n.moduleName,preferredWindowSize:n.meta?.screenSize??"normal",load:n.load,type:n.meta?.type??"form",canHide:n.meta?.canHide??!1,canMaximize:n.meta?.canMaximize??!1,width:n.meta?.width??"narrow",groups:n.meta?.groups??[]};throw Error(`No workspace named '${e}' has been registered.`)}}function ao(e){let n=o7.getState().workspaceGroups;if(n[e])return n[e];throw Error(`No workspace group named '${e}' has been registered.`)}let aa=T("workspace2",{registeredGroupsByName:{},registeredWindowsByName:{},registeredWorkspacesByName:{},openedGroup:null,openedWindows:[],workspaceTitleByWorkspaceName:{}});function ar(e){let{registeredWorkspacesByName:n,registeredWindowsByName:t}=aa.getState(),o=n[e];if(o){let n=t[o.window];if(n)return n;throw Error(`No workspace window found with name: ${o.window} for workspace: ${e}`)}throw Error(`No workspace found with name: ${e}`)}function ai(e){let{registeredGroupsByName:n,registeredWindowsByName:t}=aa.getState(),o=t[e];if(o){let t=n[o.group];if(t)return t;throw Error(`No workspace group found with name: ${o.group} for window: ${e}`)}throw Error(`No workspace window found with name: ${e}`)}function as(e){let{openedWindows:n}=aa.getState();return n.findIndex(n=>n.openedWorkspaces.find(n=>n.workspaceName===e))}function al(e){if(0==e.length)return;let{registeredGroupsByName:n}=aa.getState(),t={...n};for(let n of e){if(t[n.name])throw Error(`Cannot register workspace group ${n.name} more than once`);t[n.name]=n}aa.setState({registeredGroupsByName:t})}function ac(e,n){if(0==n.length)return;let{registeredWindowsByName:t}=aa.getState(),o={...t};for(let t of n){if(o[t.name])throw Error(`Cannot register workspace window ${t.name} more than once`);let n={...t,moduleName:e};o[t.name]=n}aa.setState({registeredWindowsByName:o})}function ap(e,n){if(0==n.length)return;let{registeredWorkspacesByName:t}=aa.getState(),o={...t};for(let t of n){if(o[t.name])throw Error(`Cannot register workspace ${t.name} more than once`);let n={...t,moduleName:e};o[t.name]=n}aa.setState({registeredWorkspacesByName:o})}let ad=0;async function au(e,n,t,o,a=e=>e,r={}){let i=oq(o),s=oL(o),l=null;if(e){if(!s)throw Error(`Couldn't find extension '${i}' to attach to '${n}'`);let{meta:c,moduleName:p,online:d,offline:u,load:g}=s;if(oE(d,u)){oD(a=>({...a,extensions:{...a.extensions,[i]:{...a.extensions[i],instances:[...a.extensions[i].instances,{domElement:e,id:o,slotName:n,slotModuleName:t}]}}}));let s=await g(),d=ad++;l=(0,e0.BP)(a({...s,name:`${n}/${i}-${d}`}),{...r,_meta:c,_extensionContext:{extensionId:o,extensionSlotName:n,extensionSlotModuleName:t,extensionModuleName:p},domElement:e})}}else console.warn(`Tried to render ${o} into ${n} but no DOM element was available.`);return l}var ag=t(4449),a_=t.n(ag);let af=(0,ag.createContext)({moduleName:"",featureName:""});function am({to:e,templateParams:n,onBeforeNavigate:t,children:o,...a}){return(0,ag.useEffect)(()=>{a.href&&console.warn(`ConfigurableLink does not support the href prop. Use the 'to' prop instead. The provided href value is '${a.href}'`),a.onClick&&console.warn(`ConfigurableLink does not support the onClick prop. Use the 'onBeforeNavigate' prop instead. The 'to' prop of the offending link is ${e}`)},[]),ag.createElement("a",{onClick:o=>{0===o.button&&!o.ctrlKey&&!o.shiftKey&&!o.altKey&&!o.metaKey&&(o.preventDefault(),t?.(o),e3({to:e,templateParams:n})),0===o.button&&(o.ctrlKey||o.metaKey)&&t?.(o),0===o.button&&o.shiftKey&&t?.(o),1===o.button&&t?.(o)},href:e1(e,n),...a},o)}let ah=({state:e,children:n,...t})=>{let{extension:o}=(0,ag.useContext)(af),a=(0,ag.useRef)(null),r=(0,ag.useRef)(Promise.resolve()),i=(0,ag.useCallback)(n=>{o?.extensionSlotName&&o.extensionSlotModuleName&&o.extensionSlotModuleName&&!a.current&&au(n,o.extensionSlotName,o.extensionSlotModuleName,o.extensionId,void 0,e).then(e=>{a.current=e})},[]);return(0,ag.useEffect)(()=>()=>{if(a&&a.current)switch(a.current.getStatus()){case"MOUNTING":a.current.mountPromise.then(()=>{a.current?.getStatus()==="MOUNTED"&&a.current.unmount()});break;case"MOUNTED":a.current.unmount();break;case"UPDATING":r.current&&r.current.then(()=>{a.current?.getStatus()==="MOUNTED"&&a.current.unmount()})}},[]),(0,ag.useEffect)(()=>{a.current&&a.current.update&&"UNMOUNTING"!==a.current.getStatus()&&Promise.all([a.current.mountPromise,r.current]).then(()=>{a?.current?.getStatus()==="MOUNTED"&&a.current.update&&(r.current=a.current.update({...e}).catch(e=>{if(!(e instanceof Error)||!e.message.includes("minified message #32")||a.current?.getStatus()==="MOUNTED")throw e}))})},[e]),o?ag.createElement("div",{ref:i,"data-extension-id":o?.extensionId,style:{position:"relative"},...t}):null};function ab(e,n){"function"==typeof n&&(n=n(e));let t={};for(let[o,a]of Object.entries(n)){let n=function(...n){e.setState(e=>a(e,...n))};t[o]=n}return t}let ay=()=>e=>e;function aA(e,n=ay(),t){let o=(0,ag.useCallback)(n=>e.subscribe(n),[e]),a=(0,ag.useCallback)(()=>n(e.getState()),[e,n]),r=(0,ag.useSyncExternalStore)(o,a,a),i=(0,ag.useMemo)(()=>t?ab(e,t):{},[e,t]);return{...r,...i}}function av(e,n){return aA(e,ay(),n)}function a$(e){return function(n){let t=(0,ag.useCallback)(n=>e.subscribe(n),[]),o=(0,ag.useCallback)(()=>e.getState(),[]),a=(0,ag.useSyncExternalStore)(t,o,o),r=(0,ag.useMemo)(()=>n?ab(e,n):{},[n]);return{...a,...r}}}let ak=e=>aA(oP(),n=>n.slots?.[e]);function aC(e){let n=ak(e);return n?.assignedExtensions??[]}function aw(e,n){let{moduleName:t}=(0,ag.useContext)(af),o=(0,ag.useRef)(!0);if(!t)throw Error("ComponentContext has not been provided. This should come from @openmrs/esm-react-utils.");return(0,ag.useEffect)(()=>{oZ(t,e,n),o.current=!1},[]),(0,ag.useEffect)(()=>{o.current||oK(e,n)},[e,n]),{extensions:aC(e),extensionSlotName:e,extensionSlotModuleName:t}}function ax(e){return e}function az({name:e,extensionSlotName:n,select:t=ax,children:o,state:a,style:r,...i}){if(o&&a)throw Error("Both children and state have been provided. If children are provided, the state must be passed as a prop to the `Extension` component.");let s=e??n,l=(0,ag.useRef)(null),{extensions:c,extensionSlotModuleName:p}=aw(s,a),d=(0,ag.useMemo)(()=>t(c),[t,c]),u=(0,ag.useMemo)(()=>{if("function"==typeof o&&!ag.isValidElement(o))return d.map(e=>o(e,a))},[o,d]);return ag.createElement("div",{ref:l,"data-extension-slot-name":s,"data-extension-slot-module-name":p,style:{...r,position:"relative"},...i},s&&d?.map((e,n)=>ag.createElement(af.Provider,{key:e.id,value:{moduleName:p,featureName:"",extension:{extensionId:e.id,extensionSlotName:s,extensionSlotModuleName:p}}},u?.[n]??("function"!=typeof o?o:null)??ag.createElement(ah,{state:a}))))}let aE=(0,M.M)()(()=>({}));I("openmrs-app-context",aE);let aS={};function aB(e,n){aE.setState(t=>(e in t||(t[e]={}),t[e]=n(t[e]),Object.assign({},t)))}function aM(e,n){let t=(0,ag.useRef)(n??{}),o=(0,ag.useRef)(n=>aB(e,n));return(0,ag.useEffect)(()=>(!function(e,n=aS){aE.setState(t=>{if(e in t)throw Error(`Attempted to re-register namespace ${e} in the app context. Each namespace must be unregistered before the name can be registered again.`);return Object.assign({},t,{[e]:n===aS?{}:n})})}(e,n??{}),()=>{aE.setState(n=>(e in n&&delete n[e],n))}),[e]),(0,ag.useEffect)(()=>{let o=n??{};z(t.current,o)||(aB(e,()=>o),t.current=o)},[n]),o.current}function aD({namespace:e,value:n}){return aM(e,n),null}let aP=({children:e,value:n,fallback:t})=>n?ag.createElement(ag.Fragment,null,e):t?ag.createElement(ag.Fragment,null,t):null,aT=({privilege:e,fallback:n,children:t})=>{let[o,a]=(0,ag.useState)(null);return((0,ag.useEffect)(()=>{let e=nu({includeAuthStatus:!1}).subscribe(a);return()=>e.unsubscribe()},[]),o&&nh(e,o))?ag.createElement(ag.Fragment,null,t):n?ag.createElement(ag.Fragment,null,n):null};var aI=t(44645),aO=t(92339),aN=t(55938),aF=t(73139);let aW={strictMode:!0,throwErrorsToConsole:!0,disableTranslations:!1},aG=new Map,aj={errorRetryCount:3,fetcher:ns,focusThrottleInterval:18e5,revalidateIfStale:!0,revalidateOnFocus:!1,revalidateOnReconnect:!1,refreshInterval:0,shouldRetryOnError:e=>{if(e instanceof nc){let n=e.response.status;return!!(n>=500)||401===n||403===n||429===n}return!0},provider:()=>aG};function aq(e){if("object"!=typeof e||"string"!=typeof e.featureName||"string"!=typeof e.moduleName)throw Error("Invalid options");let n=Object.assign({},aW,e),t={...aj,...n.swrConfig};return function(e){var o,a,r,i,s;return r=a=class extends(o=ag.Component){componentDidCatch(e,t){t&&t.componentStack&&(e.extra=Object.assign(e.extra||{},{componentStack:t.componentStack})),n.throwErrorsToConsole&&setTimeout(()=>{throw e}),this.setState({caughtError:e,caughtErrorInfo:t})}render(){if(this.state.caughtError)return ag.createElement("div",null,"An error has occurred. Please try reloading the page.");{let o=ag.createElement(ag.Suspense,{fallback:null},ag.createElement(aF.J$,{value:t},ag.createElement(af.Provider,{value:this.state.config},n.disableTranslations?ag.createElement(e,this.props):ag.createElement(aN.I18nextProvider,{i18n:window.i18next,defaultNS:this.state.config.extension?`${this.state.config.moduleName}___${this.state.config.extension.extensionSlotName}___${this.state.config.extension.extensionId}`:this.state.config.moduleName},ag.createElement(e,this.props)))));return n.strictMode&&ag.StrictMode?ag.createElement(ag.StrictMode,null,o):o}}constructor(e){super(e),this.state={caughtError:null,caughtErrorInfo:null,config:{moduleName:n.moduleName,featureName:n.featureName,extension:e._extensionContext}}}},i="displayName",s=`OpenmrsReactComponent(${n.featureName})`,i in r?Object.defineProperty(r,i,{value:s,enumerable:!0,configurable:!0,writable:!0}):r[i]=s,a}}function aV(e,n){return(0,aO.Z)({React:ag,ReactDOMClient:aI,rootComponent:aq(n)(e)})}function aL(e,n){return()=>e().then(({default:e})=>aV(e,n))}function aR(e,n){return()=>Promise.resolve(aV(e,n))}let aH=aL;function aU(){let e=(0,ag.useRef)();return(!e.current||e.current.signal.aborted)&&(e.current=new AbortController),(0,ag.useEffect)(()=>{let n=e.current;return()=>n?.abort()},[]),e.current}function aX(e,n=e=>e??{}){let[t,o]=(0,ag.useState)();return(0,ag.useEffect)(()=>{if(null==e||""===e.replace(" ",""))throw Error(`The namespace supplied to useAppContext must be a non-empty string, but was "${e}".`)},[e]),(0,ag.useEffect)(()=>{var a;let r;return(a=e=>{if(void 0!==e){let a=n?n(e):e??{};z(t,a)||o(a)}})(Object.freeze(Object.assign({},r=function(e,n=e=>e){let t=aE.getState();return e in t?Object.freeze(Object.assign({},n?n(t[e]):t[e])):null}(e)))),aE.subscribe(n=>{let t=e in n?n[e]:null;t!==r&&(r=t,a(Object.freeze(Object.assign({},t))))})},[]),t}function aJ(e){let[n,t]=(0,ag.useState)([]);return(0,ag.useEffect)(()=>oP().subscribe(o=>{let a=o.slots[e]?.assignedExtensions.map(e=>e.id)??[];(0,ox.Z)(a,n)||t(a)}),[]),n}function aY(e,n){let{data:t,error:o,mutate:a,isLoading:r,isValidating:i}=(0,aF.default)(`${nO}?patient=${e}&includeEncounterless=${n}`,ns);return(0,ag.useMemo)(()=>({isLoading:r,data:t?.data.results??[],error:o,mutate:a,isValidating:i}),[t,o,r,i,a])}function aQ(e){(0,ag.useEffect)(()=>{if(e){let e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}}},[e])}let aZ={},aK=`No ComponentContext has been provided. This should come from "openmrsComponentDecorator".
16
16
  Usually this is already applied when using "getAsyncLifecycle" or "getSyncLifecycle".`;function a0(e){let{moduleName:n,extension:t}=(0,ag.useContext)(af),o=e?.externalModuleName??n;if(!o&&!t)throw Error(aK);let a=function(e){let n=(0,ag.useMemo)(()=>eo(e),[e]),t=function(e){let[n,t]=(0,ag.useState)(()=>{let n=e.getState();return n.loaded&&n.config?n.config:null});return(0,ag.useEffect)(()=>e?.subscribe(e=>{e.loaded&&e.config&&t(e.config)}),[e]),n}(n);if(!t)throw aZ[e]||(aZ[e]=new Promise(e=>{let t=n.subscribe(n=>{n.loaded&&n.config&&(e(n.config),t())})})),aZ[e];return t}(o),r=function(e){let n=(0,ag.useMemo)(es,[]),t=function(e,n){let[t,o]=(0,ag.useState)(n?()=>{let t=ec(e.getState(),n.extensionSlotName,n.extensionId);if(t.loaded&&t.config)return t.config}:null);return(0,ag.useEffect)(()=>{if(n)return e.subscribe(e=>{let a=ec(e,n.extensionSlotName,n.extensionId);a.loaded&&a.config&&!(0,ox.Z)(a.config,t)&&o(a.config)})},[e,n,t]),t}(n,e);if(!t&&e){let t=`${e.extensionSlotName}-${e.extensionId}`;throw!aZ[t]&&n&&(aZ[t]=new Promise(t=>{let o=n.subscribe(n=>{let a=ec(n,e.extensionSlotName,e.extensionId);a.loaded&&a.config&&(t(a.config),o())})})),aZ[t]}return t||{}}(t);return(0,ag.useMemo)(()=>e?.externalModuleName&&o===e.externalModuleName?{...a}:{...a,...r},[o,e?.externalModuleName,a,r])}let a1=aC;function a2(){let[e,n]=(0,ag.useState)(ow());return(0,ag.useEffect)(()=>s(({online:e})=>n(e)),[]),e}function a3(e,n=300){let[t,o]=(0,ag.useState)(e);return(0,ag.useEffect)(()=>{let t=setTimeout(()=>{o(e)},n);return()=>{clearTimeout(t)}},[e,n]),t}var a5=t(19812),a6=t.n(a5);let a4=`custom:${[["admissionDecisionConcept","ref"],["admissionEncounterType","ref"],["admissionForm","ref"],["atFacilityVisitType","ref"],["bedAssignmentEncounterType","ref"],["cancelADTRequestEncounterType","ref"],["checkInClerkEncounterRole","ref"],["checkInEncounterType","ref"],["clinicianEncounterRole","ref"],["conceptSourcesForDiagnosisSearch","ref"],["consultEncounterType","ref"],["consultFreeTextCommentsConcept","ref"],["denyAdmissionConcept","ref"],["diagnosisMetadata","ref"],["diagnosisSets","ref"],["dischargeForm","ref"],["dispositionDescriptor","ref"],["dispositions","ref"],["emrApiConceptSource","ref"],["exitFromInpatientEncounterType","ref"],["extraPatientIdentifierTypes","ref"],["fullPrivilegeLevel","ref"],["highPrivilegeLevel","ref"],["identifierTypesToSearch","ref"],["inpatientNoteEncounterType","ref"],["lastViewedPatientSizeLimit","ref"],["metadataSourceName","ref"],["motherChildRelationshipType","ref"],["narrowerThanConceptMapType","ref"],["nonDiagnosisConceptSets","ref"],["orderingProviderEncounterRole","ref"],["patientDiedConcept","ref"],["personImageDirectory","ref"],["primaryIdentifierType","ref"],["sameAsConceptMapType","ref"],["suppressedDiagnosisConcepts","ref"],["supportsAdmissionLocationTag","(uuid,display,name,links)"],["supportsLoginLocationTag","(uuid,display,name,links)"],["supportsTransferLocationTag","(uuid,display,name,links)"],["supportsVisitsLocationTag","(uuid,display,name,links)"],["telephoneAttributeType","ref"],["testPatientPersonAttributeType","ref"],["transferForm","ref"],["transferRequestEncounterType","ref"],["transferWithinHospitalEncounterType","ref"],["unknownCauseOfDeathConcept","ref"],["unknownLocation","ref"],["unknownPatientPersonAttributeType","ref"],["unknownProvider","ref"],["visitAssignmentHandlerAdjustEncounterTimeOfDayIfNecessary","ref"],["visitExpireHours","ref"],["visitNoteEncounterType","ref"]].map(([e,n])=>`${e}:${n}`).join(",")}`;function a8(){let e=a5(`${no}/emrapi/configuration?v=${a4}`,ns);return(0,ag.useMemo)(()=>({emrConfiguration:e.data?.data,isLoadingEmrConfiguration:e.isLoading,mutateEmrConfiguration:e.mutate,errorFetchingEmrConfiguration:e.error}),[e])}let a7=a$(oM());function a9(e){let n=aC(e);return(0,ag.useMemo)(()=>Object.fromEntries(n.map(e=>[e.name,e.meta])),[n])}let re=a$(oP());function rn(e){let{flags:n}=aA(oy);return n[e]?.enabled??!1}function rt(){let[,e]=(0,ag.useState)(0);return(0,ag.useCallback)(()=>{e(e=>e+1)},[])}function ro(e,n,t={}){return rr(e,n,ra,t)}let ra={getPaginatedUrl:(e,n,t)=>{if(!e)return null;{let o=new URL(ni(e.toString()),window.location.toString());return o.searchParams.set("limit",""+n),o.searchParams.set("startIndex",""+t),o.searchParams.set("totalCount","true"),o.toString()}},getNextUrl:e=>{let n=e?.links?.find(e=>"next"==e.rel)?.uri;if(!n)return null;{let e=new URL(n);return e.host=window.location.host,e.protocol=window.location.protocol,e.toString()}},getTotalCount:e=>e?.totalCount??Number.NaN,getCurrentPageSize:e=>e?.results?.length??Number.NaN,getData:e=>e?.results};function rr(e,n,t,o={}){let{getPaginatedUrl:a,getTotalCount:r,getCurrentPageSize:i,getData:s}=t,{immutable:l,swrConfig:c}=o,p=o.fetcher??ns,[d,u]=(0,ag.useState)(1),g=(0,ag.useRef)(Number.NaN),_=(0,ag.useRef)(Number.NaN),f=(d-1)*n,m=(0,ag.useMemo)(()=>a(e,n,f),[e,n,f]),{data:h,...b}=(l?a5:aF.default)(m,p,c);h?.data&&(g.current=r(h?.data),_.current=i(h?.data));let y=Math.ceil(g.current/n),A=(0,ag.useCallback)(e=>{0<e&&e<=y?u(e):console.warn("Invalid attempt to go to out of bounds page: "+e)},[e,d,y]),v=(0,ag.useCallback)(()=>{A(d+1)},[e,d,y]),$=(0,ag.useCallback)(()=>{A(d-1)},[e,d,y]);return{data:s(h?.data),totalPages:y,totalCount:g.current,currentPage:d,currentPageSize:_,paginated:y>1,showNextButton:d<y,showPreviousButton:d>1,goTo:A,goToNext:v,goToPrevious:$,...b}}function ri(e,n,t={}){return rr(e,n,rs(),t)}function rs(){return{getPaginatedUrl:(e,n,t)=>{if(!e)return null;{let o=new URL(ni(e.toString()),window.location.toString());return o.searchParams.set("_count",""+n),o.searchParams.set("_getpagesoffset",""+t),o.toString()}},getNextUrl:e=>{let n=e?.link?.find(e=>"next"==e.relation)?.url;if(!n)return null;{let e=new URL(n);return e.host=window.location.host,e.protocol=window.location.protocol,e.toString()}},getTotalCount:e=>e?.total??Number.NaN,getCurrentPageSize:e=>e?.entry?.length??Number.NaN,getData:e=>e?.entry?.map(e=>e.resource)}}var rl=t(49309),rc=t.n(rl);function rp(e,n={}){return rd(e,ra,n)}function rd(e,n,t={}){let{swrInfiniteConfig:o,immutable:a}=t,{getNextUrl:r,getTotalCount:i,getData:s}=n,l=t.fetcher??ns,{data:c,size:p,setSize:d,...u}=rl((0,ag.useCallback)((t,o)=>0==t?e?.toString()??null:n.getNextUrl(o.data),[e]),l,{...o,...a?{revalidateIfStale:!1,revalidateOnFocus:!1,revalidateOnReconnect:!1}:{}}),g=r(c?.[c.length-1].data),_=i(c?.[0]?.data);return{data:c?.flatMap(e=>s(e.data)),totalCount:_,hasMore:null!=g,loadMore:()=>{d((c?.length??0)+1)},nextUri:g,...u}}function ru(e,n={}){return rg(e,ra,n)}function rg(e,n,t={}){let o=rd(e,n,t),{hasMore:a,error:r,data:i,loadMore:s,isLoading:l,nextUri:c}=o;return((0,ag.useEffect)(()=>{a&&!r&&s()},[a,c]),t.partialData)?o:{...o,data:a||r?void 0:i,isLoading:l||a}}function r_(e,n={}){return rg(e,rs(),n)}function rf(e,n={}){return rd(e,rs(),n)}function rm(){let e="tablet";return document.body.classList.forEach(n=>{switch(n){case"omrs-breakpoint-lt-tablet":e="phone";break;case"omrs-breakpoint-gt-small-desktop":e="large-desktop";break;case"omrs-breakpoint-gt-tablet":e="small-desktop"}}),e}function rh(){let[e,n]=(0,ag.useState)(rm);return(0,ag.useEffect)(()=>{let e=()=>{n(rm())};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),e}let rb=e=>"small-desktop"===e||"large-desktop"===e;function ry(e){let n=(0,ag.useContext)(af);(0,ag.useEffect)(()=>(n&&n.moduleName&&(e.componentContext=n),o2(e),()=>{o3(e.name)}),[n,e])}function rA(){return aA(o1)}function rv(e=null,n=null){let[t,o]=(0,ag.useState)([]);return(0,ag.useEffect)(()=>{let t=tG(e,n).subscribe(e=>{o(e)},e=>{console.error(e)});return()=>t.unsubscribe()},[e,n]),t}function r$(e,n=!0){let t=(0,ag.useRef)(null);return(0,ag.useEffect)(()=>{let o=o=>{!n||!t.current||t.current.contains(o.target)||e(o)};return window.addEventListener("mousedown",o),window.addEventListener("touchstart",o),()=>{window.removeEventListener("mousedown",o),window.removeEventListener("touchstart",o)}},[e,n]),t}function rk(e){let n=(0,ag.useRef)();return(0,ag.useEffect)(()=>{let t=new IntersectionObserver(n=>{for(let t of n)if(t.isIntersecting)return void e()},{threshold:1});return n.current&&t.observe(n.current),()=>{n.current&&t.unobserve(n.current)}},[n.current,e]),n}function rC(e,n={}){let{abortController:t,fetchInit:o,url:a,swrConfig:r}=n,i=aU(),s=(0,ag.useMemo)(()=>o?.signal??t?.signal??i.signal,[t?.signal,o?.signal,i.signal]),l=(0,ag.useCallback)(e=>ns(function(e,n){if(n)return"function"==typeof n?n(e):n;if("string"==typeof e)return e;throw Error(`When using useOpenmrsSWR with a key that is not a string, you must provide a url() function that converts the key to a valid url. The key for this hook is ${e}.`)}(e,a),{...o,signal:s}),[s,o,a]);return(0,aF.default)(e,l,r)}function rw(e=[],n=10){let[t,o]=(0,ag.useState)(1),a=(0,ag.useMemo)(()=>"number"==typeof n&&n>0?Math.max(1,Math.ceil(e.length/n)):1,[e.length,n]),r=(0,ag.useMemo)(()=>{let o=(t-1)*n,a=(t+0)*n;return e.slice(o,a)},[e,t,n]),i=(0,ag.useCallback)(e=>{o(Math.max(1,Math.min(a,e)))},[o,a]),s=(0,ag.useCallback)(()=>{t<a&&o(t+1)},[t,a,o]),l=(0,ag.useCallback)(()=>{t>1&&o(t-1)},[t,o]);return(0,ag.useMemo)(()=>({results:r,totalPages:a,currentPage:t,paginated:e.length>n,showNextButton:t<a,showPreviousButton:t>1,goTo:i,goToNext:s,goToPrevious:l}),[r,a,e.length,n,t,i,s,l])}function rx(){let e=/\/patient\/([a-zA-Z0-9\-]+)\/?/.exec(location.pathname);return e&&e[1]}function rz(e){let[n,t]=(0,ag.useState)(e??rx()),{data:o,error:a,isValidating:r}=(0,aF.default)(n?["patient",n]:null,()=>tO(n,{}));return(0,ag.useEffect)(()=>{let e=()=>{let e=rx();e!==n&&t(e)};return window.addEventListener("single-spa:routing-event",e),()=>window.removeEventListener("single-spa:routing-event",e)},[n]),(0,ag.useMemo)(()=>({isLoading:r&&!a&&!o,patient:o,patientUuid:n,error:a}),[r,a,o,n])}function rE(){let e=`${no}/metadatamapping/termmapping?v=custom:(metadataUuid)&code=emr.primaryIdentifierType`,{data:n,error:t,isLoading:o}=(0,aF.default)(e,ns);return(0,ag.useMemo)(()=>({primaryIdentifierCode:n?.data?.results[0]?.metadataUuid,isLoading:o,error:t}),[n,t,o])}function rS(e){let{extensions:n,extensionSlotModuleName:t}=aw(e);return e?n.map(n=>({state:o})=>ag.createElement(af.Provider,{value:{moduleName:t,featureName:"",extension:{extensionId:n.id,extensionSlotName:e,extensionSlotModuleName:t}}},ag.createElement(ah,{state:o}))):[]}var rB=t(87530),rM=t.n(rB),rD=t(44332);let rP={setVisitContext:(e,n)=>null==n?{manuallySetVisitUuid:null}:{manuallySetVisitUuid:n.uuid,patientUuid:n.patient?.uuid},mutateVisit(e){for(let n of Object.values(e.mutateVisitCallbacks??{}))n();return{}}};function rT(e){let n=(0,ag.useId)();return(0,ag.useEffect)(()=>{let t=tU();return e&&t.setState({mutateVisitCallbacks:{...t.getState().mutateVisitCallbacks,[n]:e}}),()=>{if(e){let e={...t.getState().mutateVisitCallbacks};delete e[n],t.setState({mutateVisitCallbacks:e})}}},[n,e]),av(tU(),rP)}function rI(e,n=tR){let{patientUuid:t,manuallySetVisitUuid:o,setVisitContext:a}=rT(),r=e&&t==e?o:null,i=`?patient=${e}&v=${n}&includeInactive=false`,s=`/${r}?v=${n}`,{data:l,error:c,mutate:p,isValidating:d}=(0,aF.default)(e?`${no}/visit${i}`:null,ns),{data:u,error:g,mutate:_,isValidating:f}=(0,aF.default)(e&&r?`${no}/visit${s}`:null,ns),m=(0,ag.useMemo)(()=>l?.data.results.find(e=>null===e.stopDatetime)??null,[l]),h=(0,ag.useMemo)(()=>r&&u?u.data:null,[u,r]),b=(0,ag.useRef)(null);(0,ag.useEffect)(()=>{!d&&m&&t===e&&null===o&&a(m),f||(b.current&&h&&b.current.uuid===h.uuid&&!b.current.stopDatetime&&h.stopDatetime&&a(null),b.current=h)},[h,o,m,d,f,t]);let y=(0,ag.useCallback)(()=>{p(),_()},[p,_]);rT(y);let A=!!(!l||r&&!u),v=!!(r?g:c);return{error:c||g,mutate:y,isValidating:d||f,activeVisit:m,currentVisit:h,currentVisitIsRetrospective:!!r,isLoading:A&&!v}}function rO(){let[e,n]=(0,ag.useState)([]);return(0,ag.useEffect)(()=>{let e=tq().subscribe(e=>{n(e)},e=>console.error(e));return()=>e.unsubscribe()},[]),e}function rN(){let e=(0,ag.useRef)(),[n,t]=(0,ag.useState)(null),a=null;if(!n){if(o){let e=ng().getState();e.loaded&&(a=e.session)}else o=new Promise(n=>{let t=({loaded:t,session:o})=>{t&&(n(o),a=o,e.current&&(e.current(),e.current=void 0))};t(ng().getState()),a||(e.current=ng().subscribe(t))});if(a)t(a);else throw o}(0,ag.useEffect)(()=>(e.current||(e.current=ng().subscribe(({loaded:e,session:n})=>{e&&(a=n,t(n))})),()=>{e.current&&(e.current(),e.current=void 0)}),[]);let r=n||a;if(!r)if(o)throw console.warn("useSession is in an unexpected state. Attempting to recover."),o;else throw Error("useSession is in an invalid state.");return r}rB.extend(rD);let rF="openmrs-routes:",rW=new Map;async function rG(e,n){let t=n.indexOf("#"),o=t>=0,a=o?n.substring(0,t):e,r=o?n.substring(t+1):n,i=await nD(a);return i&&Object.hasOwn(i,r)&&"function"==typeof i[r]?rq(a,i).then(()=>i[r]()):(i?i&&Object.hasOwn(i,r)?console.warn(`The export ${n}, defined in ${e}'s routes.json, is not a function`):console.warn(`${a} does not define a component called "${r}", referenced in ${e}'s routes.json. This cannot be loaded.`):console.warn(`Unknown app ${a} for ${n} defined in ${e}'s routes.json`),rj)}let rj={bootstrap:()=>Promise.resolve(),mount:()=>Promise.resolve(),unmount:()=>Promise.resolve()};async function rq(e,n){if(e in rW)await rW[e];else{let t=n??await nD(e);await (rW[e]=new Promise((n,o)=>{if(Object.hasOwn(t,"startupApp")){let a=t.startupApp;if("function"==typeof a)return Promise.resolve(a()).then(()=>{eh(e),n(null)}).catch(o)}eh(e),n(null)}))}}function rV(e,n){let t=n.name;if(!t)return void console.error(`An extension definition in ${e} is missing an name and thus cannot be
17
17
  registered. To fix this, ensure that you define the "name" field inside the
18
18
  extension definition.`,n);n.slots&&n.slot&&console.warn(`The extension ${t} from ${e} declares both a 'slots' property and