@openmrs/esm-primary-navigation-app 10.0.1-pre.5598 → 10.0.1-pre.5605

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.
@@ -4,4 +4,4 @@
4
4
  │ 53.js (423.104 KiB)
5
5
  
6
6
 
7
- Rspack compiled with 1 warning in 26.50 s
7
+ Rspack compiled with 1 warning in 17.82 s
package/dist/3077.js CHANGED
@@ -9,7 +9,7 @@ If you're the maintainer: the allowed types are ${Object.values(H).join(", ")}.
9
9
  If you're the maintainer: all config elements must have a default. Received ${JSON.stringify(a)}`),s&&l&&![H.Array,H.Object].includes(l)&&console.error(`${e} has bad config schema definition for key '${i}'. ${r}.
10
10
 
11
11
  If you're the maintainer: the 'elements' key only works with '_type' equal to 'Array' or 'Object'. Received ${JSON.stringify(l)}`)}}function eB(e,t){return eU(t.map(({[e]:t})=>t).filter(e=>!!e))}function eU(e){return e.reduce((e,t)=>(0,D.A)(e,t,ew),{})}function eF(e,t,n=""){for(let r of Object.keys(t)){let o=t[r],i=n+"."+r,a=e[r];if(!e.hasOwnProperty(r)){("extensionSlots"!==r||""===n)&&eX(i,`Unknown config key '${i}' provided. Ignoring.`);continue}(function e(t,n,r){eG(r,t._type,n),eq(n)?t._type===H.Object?function(t,n,r){if(t._elements)for(let o of Object.keys(n)){let i=n[o];e(t._elements,i,`${r}.${o}`)}}(t,n,r):t.hasOwnProperty("_default")||t.hasOwnProperty("_type")||eF(t,n,r):t._type===H.Array&&function(t,n,r){if(eG(r,H.Array,n)){if(eJ(t._elements))for(let o=0;o<n.length;o++)e(t._elements,n[o],`${r}[${o}]`);for(let e=0;e<n.length;e++)eG(`${r}[${e}]`,t._elements?._type,n[e])}}(t,n,r)})(a,o,i)}}function eH(e,t,n=""){if(e){if(t!==e._default&&ez(n,e._validators,t),eq(t))for(let r of Object.keys(t)){let o=t[r],i=n+"."+r,a=e[r];e._type===H.Object&&e._elements?eH(e._elements,o,i):eH(a,o,i)}else if(Array.isArray(t)&&e._elements)for(let r=0;r<t.length;r++)eH(e._elements,t[r],`${n}[${r}]`)}}function eG(e,t,n){return!t||ez(e,[{Array:z,Boolean:V,ConceptUuid:X,Number:J,Object:K,String:q,UUID:X,PersonAttributeTypeUuid:X,PatientIdentifierTypeUuid:X}[t]],n)}function ez(e,t,n){let r=!0;if(t)try{for(let o of t){let t=o(n);if("string"==typeof t){let o="object"==typeof n?`Invalid configuration for ${e}: ${t}`:`Invalid configuration value ${n} for ${e}: ${t}`;eX(e,o),r=!1}}}catch(t){console.error(`Skipping invalid validator at "${e}". Encountered error
12
- ${t}`)}return r}let eV=(e,t)=>{let n=structuredClone(t);if(!e)return n;for(let t of Object.keys(e)){let r=n[t],o=e[t];if(o&&(o.hasOwnProperty("_type")||o.hasOwnProperty("_default"))){n.hasOwnProperty(t)||(n[t]=o._default);let e=o._elements;if(r&&eJ(e)){if(o._type===H.Array&&Array.isArray(r)){let o=r.map(t=>eV(e,t));n[t]=o}else if(o._type===H.Object)for(let t of Object.keys(r))r[t]=eV(e,r[t])}}else if(eq(o)){let e=r??{};eq(e)&&(n[t]=eV(o,e))}}return n};function eJ(e){return!!e&&Object.keys(e).filter(e=>!["_default","_validators"].includes(e)).length>0}function eq(e){return"object"==typeof e&&!Array.isArray(e)&&null!==e}let eK=new Set;function eX(e,t){let n=`${e}:::${t}`;eK||(eK=new Set),eK.has(n)||(console.error(t),eK.add(n))}function eY(e){e?eK.forEach(t=>{t.startsWith(e)&&eK.delete(t)}):eK.clear()}function eZ(){ev.forEach(e=>e()),ev.length=0,eS.clear(),eT.clear(),eW.clear(),eM.clear(),ex()}let eQ={"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:[G(e=>Object.keys(e).every(e=>/^[a-z]{2,3}(-[A-Z]{2,3})?$/.test(e)),e=>{let t=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: ${t.join(", ")}.`})]}},e0={"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}},...eQ},e1=(e,t)=>G(n=>e<=n&&n<=t,`must be between ${e} and ${t}`),e2=e=>{let t=e.concat(["openmrsBase","openmrsSpaBase"]);return G(e=>{if(!e||"string"!=typeof e)return!1;let n=/\${(.*?)}/g,r=n.exec(e);for(;r;){if(!t.includes(r[1]))return!1;r=n.exec(e)}return!0},"Should be a URL or path. The allowed template parameters are "+t.map(e=>"${"+e+"}").join(", "))},e6=e2([]),e5=e=>G(t=>e.includes(t),`Must be one of the following: '${e.join("', '")}'.`),e8={inRange:e1,isUrl:e6,isUrlWithTemplateParameters:e2,oneOf:e5};var e3=n(4913);let e4=O("breadcrumbs",[]);function e7(e){return e9([e])}function e9(e){let t=[...te(),...e.map(e=>({matcher:e.matcher instanceof RegExp?e.matcher:"string"==typeof e.matcher?(0,e3.pathToRegexp)(e.matcher).regexp:(0,e3.pathToRegexp)(e.path).regexp,settings:e}))];e4.setState(t,!0)}function te(){return e4.getState()}function tt(e,t){if(t)return function(e,t){let[n]=e.filter(e=>e.matcher.test(t));return n}(e,t)||function(e,t){let n=t.split("/");for(;n.length>1;){n.pop();let t=tt(e,n.join("/"));if(t)return t}}(e,t)}function tn(e,t){if(e.length>0){let n=tt(e,t);if(n){let t=[n],r=tt(e,n.settings.parent);for(;void 0!==r;)t.push(r),r=tt(e,r.settings.parent);return t.reverse()}}return[]}function tr(e){return tn(te(),e)}var to=n(480);let ti={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",discardUnsavedChangesPromptBodyMultiple:"{{count}} workspaces have unsaved changes. Closing them will discard the changes:",discardUnsavedChangesPromptBodySingle:"<strong>{{workspaceTitle}}</strong> has unsaved changes. Closing it will discard them.",discardUnsavedChangesPromptTitle:"Discard unsaved changes?",keepEditing:"Keep editing",abnormalValue:"Abnormal value",actions:"Actions",actionableNotification:"Actionable notification",address:"Address",age:"Age",batchActionItemSelected:"{{totalSelected}} item selected",batchActionsItemsSelected:"{{totalSelected}} items selected",cancel:"Cancel",change:"Change",Clinic:"Clinic",close:"Close",closesActionableNotification:"Close 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",emptyStateText:"There are no {{displayText}} to display",error:"Error",errorCopy:"Sorry, there was a problem displaying this information. You can try to reload this page, or contact the site administrator and quote the error code above.",errorLoadingLoginLocations:"Unable to load login locations. Please try again or contact support if the problem persists.",female:"Female",leftNavigation:"Left navigation",loading:"Loading",localVersion:"Local Build",male:"Male",navigateNonHttp:"Could not navigate to the requested page as it is not a safe URL",noResultsToDisplay:"No results to display",notAvailable:"Not available",other:"Other",paginationItemsCount:"{{pageItemsCount}} / {{totalItems}} items",paginationOfPages:"of {{count}} pages",patientAvatarAlt:"Avatar for {{patientName}}",patientIdentifierSticker:"Patient identifier sticker",patientLists:"Patient lists",patientPhotoAlt:"Profile photo of {{patientName}}",patientPhotoPlaceholder:"Photo placeholder for {{patientName}}",prereleaseVersion:"Prerelease",print:"Print",printError:"Print error",printErrorExplainer:"An error occurred in {{errorLocation}}",printIdentifierSticker:"Print identifier sticker",printing:"Printing",recordNewEntry:"Record {{displayText}}",relationships:"Relationships",resetOverrides:"Reset overrides",save:"Save",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",seeAll:"See all",seeMoreLists:"See {{count}} more lists",selectAll:"Select all",sex:"Sex",showLess:"Show less",showMore:"Show more",snackbarNotification:"Snackbar notification",toggleDevTools:"Toggle dev tools",unknown:"Unknown",yearAbbreviation:"yr",yearsAbbreviation:"yrs"};var ta=n(2279);let ts=ta.Ay.default||ta.Ay;function tl(e,t,n,r){return ts.t(t,{ns:e,defaultValue:n,...r})}function tc(e,t,n){return ti[e]?tl("core",e,t??ti[e],n):(console.error(`O3 Core Translations does not provide key '${e}'. The key itself is being rendered as text.`),e)}function tu(e,t){let n=window.getOpenmrsSpaBase().replace(/\/$/,""),r=td(e,{openmrsBase:window.openmrsBase,openmrsSpaBase:n,...t});return e.startsWith("//")?r:r.replace(/^\/\//,"/")}function td(e,t){return Object.keys(t).reduce((e,n)=>e.split("${"+n+"}").join(t[n]),e)}function tm({to:e,templateParams:t}){let n=window.getOpenmrsSpaBase().replace(/\/$/,""),r=tu(e,t).replace(window.location.origin,""),o=new URL(r,window.location.origin);if("http:"!=o.protocol&&"https:"!=o.protocol)throw console.error(`Received request to navigate to non-http URL: ${o.toString()}`),Error(tc("navigateNonHttp"));r.startsWith(n)?(0,to.navigateToUrl)(r):window.location.assign(r)}ts.on("initialized",function(){window.i18next.loadNamespaces(["core"])});let tp="openmrs:history";function tf(e){let t=JSON.parse(sessionStorage.getItem(tp)??"[]")||[];t.push(e),t.length>50&&(t=t.slice(-50)),sessionStorage.setItem(tp,JSON.stringify(t))}function tg(){0===JSON.parse(sessionStorage.getItem(tp)??"[]").length&&document.referrer&&tf(document.referrer),window.addEventListener("single-spa:routing-event",e=>{let t=th();e.detail.originalEvent?.singleSpaTrigger=="replaceState"?(t[t.length-1]=window.location.href,sessionStorage.setItem(tp,JSON.stringify(t))):!e.detail.originalEvent?.singleSpa&&t.includes(window.location.href)?t_({toUrl:window.location.href}):t[t.length-1]!==window.location.href&&tf(window.location.href)})}function th(){return JSON.parse(sessionStorage.getItem(tp)??"[]")}function t_({toUrl:e}){let t=th(),n=t.lastIndexOf(e);if(-1!=n){let e=t.slice(0,n+1);tm({to:t[n]}),sessionStorage.setItem(tp,JSON.stringify(e))}else throw Error(`URL ${e} not found in history; cannot go back to it.`)}function tw(){sessionStorage.removeItem(tp)}let ty="${openmrsSpaBase}/login",tv={redirectAuthFailure:{enabled:{_type:H.Boolean,_default:!0,_description:"Whether to redirect logged-out users to `redirectAuthFailure.url`"},url:{_type:H.String,_default:ty,_validators:[e8.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:[e8.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 tb(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let tx="/ws/rest/v1",tk="/ws/fhir2/R4",tS=`${tx}/session`;function tj(e){return e&&e.startsWith("http")?e:("/"!==e[0]&&(e="/"+e),window.openmrsBase+e)}function tN(e,t={}){if("string"!=typeof e)throw Error("The first argument to @openmrs/api's openmrsFetch function must be a url string");if("object"!=typeof t)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 n=tj(e);if(t.headers||(t.headers={}),(0,L.A)(t.body)&&(t.body=JSON.stringify(t.body)),void 0===t.headers.Accept&&(t.headers.Accept="application/json"),null===t.headers.Accept&&delete t.headers.Accept,e.startsWith(tx)&&void 0===t.headers["Disable-WWW-Authenticate"]&&(t.headers["Disable-WWW-Authenticate"]="true"),e.startsWith(tk)){let e=new URL(n,window.location.toString());e.searchParams.has("_summary")||(e.searchParams.set("_summary","data"),n=e.toString())}let r=Error();return window.fetch(n,t).then(async e=>{let{redirectAuthFailure:t,followRedirects:o}=await eO("@openmrs/esm-api");if(e.ok){let t=e.headers.get("location");return(o&&t&&(n===tj(tS)||204===e.status)&&tm({to:t}),204===e.status)?(e.data=null,e):e.clone().text().then(t=>{try{t&&(e.data=JSON.parse(t))}catch(e){}return e})}return n===tj(tS)&&403===e.status||t.enabled&&t.errors.includes(e.status)?(tw(),tm({to:t.url||e.headers.get("location")||ty}),t.resolvePromise?Promise.resolve():new Promise(()=>{})):e.clone().text().then(t=>{let o=t;try{o=JSON.parse(t)}catch(e){}throw new tC(n,e,o,r)},t=>{throw new tC(n,e,null,r)})})}class tC extends Error{constructor(e,t,n,r){super(),tb(this,"response",void 0),tb(this,"responseBody",void 0),this.message=`Server responded with ${t.status} (${t.statusText}) for url ${e}. Check err.responseBody or network tab in dev tools for more info`,r.message=this.message,this.responseBody=n,this.response=t,this.stack=`Stacktrace for outgoing request:
12
+ ${t}`)}return r}let eV=(e,t)=>{let n=structuredClone(t);if(!e)return n;for(let t of Object.keys(e)){let r=n[t],o=e[t];if(o&&(o.hasOwnProperty("_type")||o.hasOwnProperty("_default"))){n.hasOwnProperty(t)||(n[t]=o._default);let e=o._elements;if(r&&eJ(e)){if(o._type===H.Array&&Array.isArray(r)){let o=r.map(t=>eV(e,t));n[t]=o}else if(o._type===H.Object)for(let t of Object.keys(r))r[t]=eV(e,r[t])}}else if(eq(o)){let e=r??{};eq(e)&&(n[t]=eV(o,e))}}return n};function eJ(e){return!!e&&Object.keys(e).filter(e=>!["_default","_validators"].includes(e)).length>0}function eq(e){return"object"==typeof e&&!Array.isArray(e)&&null!==e}let eK=new Set;function eX(e,t){let n=`${e}:::${t}`;eK||(eK=new Set),eK.has(n)||(console.error(t),eK.add(n))}function eY(e){e?eK.forEach(t=>{t.startsWith(e)&&eK.delete(t)}):eK.clear()}function eZ(){ev.forEach(e=>e()),ev.length=0,eS.clear(),eT.clear(),eW.clear(),eM.clear(),ex()}let eQ={"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:[G(e=>Object.keys(e).every(e=>/^[a-z]{2,3}(-[A-Z]{2,3})?$/.test(e)),e=>{let t=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: ${t.join(", ")}.`})]}},e0={"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}},...eQ},e1=(e,t)=>G(n=>e<=n&&n<=t,`must be between ${e} and ${t}`),e2=e=>{let t=e.concat(["openmrsBase","openmrsSpaBase"]);return G(e=>{if(!e||"string"!=typeof e)return!1;let n=/\${(.*?)}/g,r=n.exec(e);for(;r;){if(!t.includes(r[1]))return!1;r=n.exec(e)}return!0},"Should be a URL or path. The allowed template parameters are "+t.map(e=>"${"+e+"}").join(", "))},e6=e2([]),e5=e=>G(t=>e.includes(t),`Must be one of the following: '${e.join("', '")}'.`),e8={inRange:e1,isUrl:e6,isUrlWithTemplateParameters:e2,oneOf:e5};var e3=n(4913);let e4=O("breadcrumbs",[]);function e7(e){return e9([e])}function e9(e){let t=[...te(),...e.map(e=>({matcher:e.matcher instanceof RegExp?e.matcher:"string"==typeof e.matcher?(0,e3.pathToRegexp)(e.matcher).regexp:(0,e3.pathToRegexp)(e.path).regexp,settings:e}))];e4.setState(t,!0)}function te(){return e4.getState()}function tt(e,t){if(t)return function(e,t){let[n]=e.filter(e=>e.matcher.test(t));return n}(e,t)||function(e,t){let n=t.split("/");for(;n.length>1;){n.pop();let t=tt(e,n.join("/"));if(t)return t}}(e,t)}function tn(e,t){if(e.length>0){let n=tt(e,t);if(n){let t=[n],r=tt(e,n.settings.parent);for(;void 0!==r;)t.push(r),r=tt(e,r.settings.parent);return t.reverse()}}return[]}function tr(e){return tn(te(),e)}var to=n(480);let ti={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",discardUnsavedChangesPromptBodyMultiple:"{{count}} workspaces have unsaved changes. Closing them will discard the changes:",discardUnsavedChangesPromptBodySingle:"<strong>{{workspaceTitle}}</strong> has unsaved changes. Closing it will discard them.",discardUnsavedChangesPromptTitle:"Discard unsaved changes?",keepEditing:"Keep editing",abnormalValue:"Abnormal value",actions:"Actions",actionableNotification:"Actionable notification",address:"Address",age:"Age",batchActionItemSelected:"{{totalSelected}} item selected",batchActionsItemsSelected:"{{totalSelected}} items selected",cancel:"Cancel",change:"Change",Clinic:"Clinic",close:"Close",closesActionableNotification:"Close 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",emptyStateText:"There are no {{displayText}} to display",error:"Error",errorCopy:"Sorry, there was a problem displaying this information. You can try to reload this page, or contact the site administrator and quote the error code above.",errorLoadingLoginLocations:"Unable to load login locations. Please try again or contact support if the problem persists.",female:"Female",leftNavigation:"Left navigation",loading:"Loading",localVersion:"Local Build",male:"Male",navigateNonHttp:"Could not navigate to the requested page as it is not a safe URL",noResultsToDisplay:"No results to display",notAvailable:"Not available",other:"Other",paginationItemsCount:"{{pageItemsCount}} / {{totalItems}} items",paginationOfPages:"of {{count}} pages",patientAvatarAlt:"Avatar for {{patientName}}",patientIdentifierSticker:"Patient identifier sticker",patientLists:"Patient lists",patientPhotoAlt:"Profile photo of {{patientName}}",patientPhotoPlaceholder:"Photo placeholder for {{patientName}}",prereleaseVersion:"Prerelease",print:"Print",printError:"Print error",printErrorExplainer:"An error occurred in {{errorLocation}}",printIdentifierSticker:"Print identifier sticker",printing:"Printing",recordNewEntry:"Record {{displayText}}",relationships:"Relationships",resetOverrides:"Reset overrides",save:"Save",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",seeAll:"See all",seeMoreLists:"See {{count}} more lists",selectAll:"Select all",sex:"Sex",showLess:"Show less",showMore:"Show more",snackbarNotification:"Snackbar notification",toggleDevTools:"Toggle dev tools",unknown:"Unknown",yearAbbreviation:"yr",yearsAbbreviation:"yrs"};var ta=n(2279);let ts=ta.Ay.default||ta.Ay;function tl(e,t,n,r){return ts.t(t,{ns:e,defaultValue:n,...r})}function tc(e,t,n){return ti[e]?tl("core",e,t??ti[e],n):(console.error(`O3 Core Translations does not provide key '${e}'. The key itself is being rendered as text.`),e)}function tu(e,t){let n=window.getOpenmrsSpaBase().replace(/\/$/,""),r=td(e,{openmrsBase:window.openmrsBase,openmrsSpaBase:n,...t});return e.startsWith("//")?r:r.replace(/^\/\//,"/")}function td(e,t){return Object.keys(t).reduce((e,n)=>e.split("${"+n+"}").join(t[n]),e)}function tm({to:e,templateParams:t}){let n=window.getOpenmrsSpaBase().replace(/\/$/,""),r=tu(e,t).replace(window.location.origin,""),o=new URL(r,window.location.origin);if("http:"!=o.protocol&&"https:"!=o.protocol)throw console.error(`Received request to navigate to non-http URL: ${o.toString()}`),Error(tc("navigateNonHttp"));r.startsWith(n)?(0,to.navigateToUrl)(r):window.location.assign(r)}ts.on("initialized",function(){window.i18next.loadNamespaces(["core"])});let tp="openmrs:history";function tf(e){let t=JSON.parse(sessionStorage.getItem(tp)??"[]")||[];t.push(e),t.length>50&&(t=t.slice(-50)),sessionStorage.setItem(tp,JSON.stringify(t))}function tg(){0===JSON.parse(sessionStorage.getItem(tp)??"[]").length&&document.referrer&&tf(document.referrer),window.addEventListener("single-spa:routing-event",e=>{let t=th();e.detail.originalEvent?.singleSpaTrigger=="replaceState"?(t[t.length-1]=window.location.href,sessionStorage.setItem(tp,JSON.stringify(t))):!e.detail.originalEvent?.singleSpa&&t.includes(window.location.href)?t_({toUrl:window.location.href}):t[t.length-1]!==window.location.href&&tf(window.location.href)})}function th(){return JSON.parse(sessionStorage.getItem(tp)??"[]")}function t_({toUrl:e}){let t=th(),n=t.lastIndexOf(e);if(-1!=n){let e=t.slice(0,n+1);tm({to:t[n]}),sessionStorage.setItem(tp,JSON.stringify(e))}else throw Error(`URL ${e} not found in history; cannot go back to it.`)}function tw(){sessionStorage.removeItem(tp)}let ty="${openmrsSpaBase}/login",tv={redirectAuthFailure:{enabled:{_type:H.Boolean,_default:!0,_description:"Whether to redirect logged-out users to `redirectAuthFailure.url`"},url:{_type:H.String,_default:ty,_validators:[e8.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:[e8.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 tb(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let tx="/ws/rest/v1",tk="/ws/fhir2/R4",tS=`${tx}/session`;function tj(e){return e&&e.startsWith("http")?e:("/"!==e[0]&&(e="/"+e),window.openmrsBase+e)}function tN(e,t={}){if("string"!=typeof e)throw Error("The first argument to @openmrs/api's openmrsFetch function must be a url string");if("object"!=typeof t)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 n=tj(e);t.headers||(t.headers={}),(0,L.A)(t.body)&&(t.body=JSON.stringify(t.body)),void 0===t.headers.Accept&&(t.headers.Accept="application/json"),null===t.headers.Accept&&delete t.headers.Accept;let r=!1;try{let e=new URL(n,window.location.href),t=new URL(tj(tx),window.location.href),o=e.pathname.replace(/\/{2,}/g,"/"),i=t.pathname.replace(/\/{2,}/g,"/");r=e.origin===t.origin&&(o===i||o.startsWith(`${i}/`))}catch{}if(r){let e=!1;for(let[n,r]of Object.entries(t.headers))"disable-www-authenticate"===n.toLowerCase()&&(void 0===r?delete t.headers[n]:e=!0);e||(t.headers["Disable-WWW-Authenticate"]="true")}if(e.startsWith(tk)){let e=new URL(n,window.location.toString());e.searchParams.has("_summary")||(e.searchParams.set("_summary","data"),n=e.toString())}let o=Error();return window.fetch(n,t).then(async e=>{let{redirectAuthFailure:t,followRedirects:r}=await eO("@openmrs/esm-api");if(e.ok){let t=e.headers.get("location");return(r&&t&&(n===tj(tS)||204===e.status)&&tm({to:t}),204===e.status)?(e.data=null,e):e.clone().text().then(t=>{try{t&&(e.data=JSON.parse(t))}catch(e){}return e})}return n===tj(tS)&&403===e.status||t.enabled&&t.errors.includes(e.status)?(tw(),tm({to:t.url||e.headers.get("location")||ty}),t.resolvePromise?Promise.resolve():new Promise(()=>{})):e.clone().text().then(t=>{let r=t;try{r=JSON.parse(t)}catch(e){}throw new tC(n,e,r,o)},t=>{throw new tC(n,e,null,o)})})}class tC extends Error{constructor(e,t,n,r){super(),tb(this,"response",void 0),tb(this,"responseBody",void 0),this.message=`Server responded with ${t.status} (${t.statusText}) for url ${e}. Check err.responseBody or network tab in dev tools for more info`,r.message=this.message,this.responseBody=n,this.response=t,this.stack=`Stacktrace for outgoing request:
13
13
  ${r.stack}
14
14
  Stacktrace for incoming response:
15
15
  ${this.stack}`}}let tE=O("session",{loaded:!1,session:null}),tI=0,tP=null;function tA(){return tP||(tE.getState().loaded&&tI>=Date.now()-6e4?null:tT())}function tO(e){let t=e?.includeAuthStatus??!0,n=e=>t?e:e.user;return tA()?new Promise(e=>{let t=tE.subscribe(r=>{r.loaded&&(t(),e(n(r.session)))})}):Promise.resolve(n(tE.getState().session))}function tR(){return tA(),tE}function t$(e){let t=e.locale??e.user?.userProperties?.defaultLocale;t&&t.includes("_")&&(t=t.replaceAll("_","-")),function(e){if(void 0===e||"string"!=typeof e)return!1;try{new Intl.Locale(e)}catch(e){return!1}return!0}(t)&&t!==document.documentElement.getAttribute("lang")&&document.documentElement.setAttribute("lang",t)}function tT(e,t){tI=Date.now();let n={};e&&t&&(n.Authorization=`Basic ${window.btoa(`${e}:${t}`)}`);let r=tF(tN(tS,{headers:n})),o=()=>{tP===r&&(tP=null)};return r.then(o,o),tP=r,r}function tM(){tE.setState({loaded:!0,session:{authenticated:!1,sessionId:""}})}function tW(e,t){var n,r;if(void 0===t)return!e;if(!e)return!0;return n=e,r=t,("string"==typeof n?!(0,W.A)(r.privileges.find(e=>n===e.display)):Array.isArray(n)?n.every(e=>!(0,W.A)(r.privileges.find(t=>e===t.display))):((0,W.A)(n)||console.error(`Could not understand privileges "${n}"`),!0))||!(0,W.A)(t.roles.find(e=>"System Developer"===e.display))}function tL(){let e,t;return new Promise(n=>{let r=r=>{r.loaded&&r.session.user&&(e=r.session.user,n(r.session.user),t&&t())};r(tE.getState()),e||(t=tE.subscribe(r))})}async function tD(){return(await tO()).sessionLocation}async function tB(e,t){return tF(tN(tS,{method:"POST",body:{sessionLocation:e},headers:{"Content-Type":"application/json"},signal:t.signal}))}async function tU(e,t,n){return n||(n=new AbortController),await tN(`${tx}/user/${e}`,{method:"POST",body:{userProperties:t},headers:{"Content-Type":"application/json"},signal:n.signal}),tT()}function tF(e){return new Promise((t,n)=>{e.then(e=>{let r;"object"==typeof e?.data?(r={loaded:!0,session:e.data},tE.setState(r),t(r)):(r={loaded:!1,session:null},tE.setState(r),n(r))}).catch(e=>{w(`Failed to fetch new session information: ${e}`);let t={loaded:!1,session:null};tE.setState(t),n(t)})})}function tH(){return"development"===window.spaEnv||"true"===localStorage.getItem("openmrs:devtools")}tE.subscribe(e=>{e.loaded&&e.session&&t$(e.session)});let tG={"webservices.rest":"2.24.0",fhir2:"1.0.0-SNAPSHOT"};function tz(){ej("@openmrs/esm-api",tv),tT()}let tV="import-map-override:",tJ="import-map-overrides-disabled",tq="import-map-overrides:change",tK=!1,tX=null,tY=null;async function tZ(){return tY??(tY=tQ().then(({map:e,complete:t})=>(t||(tY=null),e))),tY}async function tQ(){let e=document.querySelectorAll('script[type="systemjs-importmap"]'),t=[],n=!0;for(let r=0;r<e.length;r++){let o=e[r];try{if(o.src){let e=await fetch(o.src);if(!e.ok)throw Error(`Request for ${o.src} returned ${e.status} ${e.statusText}`);t.push(await e.json())}else o.textContent&&t.push(JSON.parse(o.textContent))}catch(e){n=!1,console.warn(`[import-maps] Failed to parse import map from script tag at index ${r}`,e)}}return{map:t0(t),complete:n}}function t0(e){let t={imports:{}};for(let n of e)n?.imports&&Object.assign(t.imports,n.imports);return t}function t1(){let e={};try{let t=t3();for(let n=0;n<localStorage.length;n++){let r=localStorage.key(n);if(r?.startsWith(tV)){let n=r.slice(tV.length);if(!t.includes(n)){let t=localStorage.getItem(r);t&&(e[n]=t)}}}}catch(e){console.warn("[import-maps] Failed to read import-map overrides from localStorage",e)}return{imports:e}}async function t2(){let e=await tZ();return tK?t0([e,tX??t1()]):e}async function t6(){return tZ()}async function t5(){return tK?t0([await tZ(),t1()]):tZ()}function t8(e){if(!tK)return{imports:{}};if(e){let e={};for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(n?.startsWith(tV)){let t=localStorage.getItem(n);t&&(e[n.slice(tV.length)]=t)}}return{imports:e}}return t1()}function t3(){if(!tK)return[];try{let e=localStorage.getItem(tJ);if(e){let t=JSON.parse(e);if(Array.isArray(t))return t}}catch{}return[]}function t4(e){return!!tK&&t3().includes(e)}function t7(e,t){if(!tK)return void console.warn("[Security] Import map overrides are disabled in production mode.");try{localStorage.setItem(tV+e,t),window.dispatchEvent(new CustomEvent(tq))}catch(e){console.warn("[import-maps] Failed to write import-map override to localStorage",e)}}function t9(e){if(!tK)return void console.warn("[Security] Import map overrides are disabled in production mode.");try{localStorage.removeItem(tV+e);let t=t3().filter(t=>t!==e);t.length>0?localStorage.setItem(tJ,JSON.stringify(t)):localStorage.removeItem(tJ),window.dispatchEvent(new CustomEvent(tq))}catch(e){console.warn("[import-maps] Failed to update import-map overrides in localStorage",e)}}function ne(){if(!tK)return void console.warn("[Security] Import map overrides are disabled in production mode.");try{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n?.startsWith(tV)&&e.push(n)}e.forEach(e=>localStorage.removeItem(e)),localStorage.removeItem(tJ),window.dispatchEvent(new CustomEvent(tq))}catch(e){console.warn("[import-maps] Failed to clear import-map overrides from localStorage",e)}}function nt(e){if(!tK)return void console.warn("[Security] Import map overrides are disabled in production mode.");try{let t=t3().filter(t=>t!==e);t.length>0?localStorage.setItem(tJ,JSON.stringify(t)):localStorage.removeItem(tJ),window.dispatchEvent(new CustomEvent(tq))}catch(e){console.warn("[import-maps] Failed to update import-map overrides in localStorage",e)}}let nn=!1;function nr(){!nn&&(nn=!0,(tK="development"===window.spaEnv)&&(tX=t1()))}function no(e){return e.replace(/[\/\-@]/g,"_")}async function ni(e,t="./start",r){var o;let i,a=!r?.maxLoadingTime||r.maxLoadingTime<=0?6e5:r.maxLoadingTime;await Promise.race([na(e,r?.importMap),new Promise((t,n)=>{i=setTimeout(()=>{var t;n(Error(`Could not resolve requested script, ${e}, within ${(t=a)<1e3?`${t} milliseconds`:t<6e4?`${Math.floor(t/1e3)} seconds`:t<36e5?`${Math.floor(t/6e4)} minutes`:t<864e5?`${Math.floor(t/36e5)} hours`:`${Math.floor(t/864e5)} days`}.`))},a)})]),i&&clearTimeout(i);let s=no(e),l=window[s];if(!("object"==typeof(o=l)&&null!==o&&"init"in o&&"function"==typeof o.init&&"get"in o&&"function"==typeof o.get)){let e=`The global variable ${s} does not refer to a federated module`;throw console.error(e),Error(e)}l.init(n.S.default);let c=(await l.get(t))();if("object"!=typeof c||null===c){let t=`Container for ${e} did not return an ESM module as expected`;throw console.error(t),Error(t)}return c}async function na(e,t){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 n=no(e);if(!window[n]){let n=t??await ns();if(!n.imports.hasOwnProperty(e)){let t=`Could not find the package ${e} defined in the current importmap`;throw console.error(t),Error(t)}let r=n.imports[e];r.startsWith("./")&&(r=window.spaBase+r.substring(1));let o=e in t8().imports;try{return await function(e){var t;let n=(t=window)[nl]??(t[nl]=new Map),r=n.get(e);if(r)return r;if(document.head.querySelector(`script[src="${e}"]`))return console.warn(`Script at ${e} already loaded. Not loading it again.`),Promise.resolve();let o=document.createElement("script");o.src=e,o.type="text/javascript",o.async=!0;let i=new Promise((t,r)=>{let i=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);function a(){clearTimeout(i),o.removeEventListener("load",s),o.removeEventListener("error",l)}function s(){a(),t()}function l(t){a(),n.delete(e),o.remove();let i=`Failed to load script from ${e}`;console.error(i,t),r(t.message??i)}o.addEventListener("load",s),o.addEventListener("error",l),document.head.appendChild(o)});return n.set(e,i),i}(r)}catch(e){return o&&m({kind:"error",title:tc("scriptLoadingFailed","Error: Script failed to load"),description:tc("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:r}),actionButtonLabel:tc("resetOverrides","Reset overrides"),onActionButtonClick(){ne(),window.location.reload()}}),Promise.reject(e)}}return Promise.resolve()}async function ns(){return t2()}let nl=Symbol.for("__openmrs_script_loading");function nc(e){return!!e&&"object"==typeof e&&!(Object.hasOwn(e,"pages")&&(!e.pages||!Array.isArray(e.pages))||Object.hasOwn(e,"extensions")&&(!e.extensions||!Array.isArray(e.extensions))||Object.hasOwn(e,"workspaces")&&(!e.workspaces||!Array.isArray(e.workspaces))||Object.hasOwn(e,"modals")&&(!e.modals||!Array.isArray(e.modals)))}function nu(e){return!!e&&"object"==typeof e&&"routes"in e&&!!e.routes&&"object"==typeof e.routes&&Object.entries(e.routes).every(([e,t])=>"string"==typeof e&&nc(t))}let nd="openmrs-routes:",nm="openmrs-routes:change",np=!1,nf=null,ng=null;async function nh(){return ng??(ng=n_().then(({map:e,complete:t})=>(t||(ng=null),e))),ng}async function n_(){let e=document.querySelectorAll("script[type='openmrs-routes']"),t=[],n=!0;for(let r=0;r<e.length;r++){let o=e[r];try{let e;if(o.src){let t=await fetch(o.src);if(!t.ok)throw Error(`Request for ${o.src} returned ${t.status} ${t.statusText}`);e=await t.json()}else o.textContent&&(e=JSON.parse(o.textContent));e&&nu(e)&&t.push(e)}catch(e){n=!1,console.warn(`[route-maps] Failed to parse routes from script tag at index ${r}`,e)}}return{map:nw(t),complete:n}}function nw(e){let t={routes:{}};for(let n of e)n&&"object"==typeof n&&!Array.isArray(n)&&(Object.assign(t.routes,n.routes),void 0===t.version&&void 0!==n.version&&(t.version=n.version));return t}async function ny(){let e={version:void 0,routes:{}};try{let t=[];for(let e=0;e<localStorage.length;e++){let n=localStorage.key(e);if(n?.startsWith(nd)){let e=localStorage.getItem(n);e&&t.push({moduleName:n.slice(nd.length),raw:e})}}for(let n of(await Promise.allSettled(t.map(async({moduleName:e,raw:t})=>{let n=JSON.parse(t);if(nc(n))return{moduleName:e,routes:n};if("string"==typeof n&&n.startsWith("http")){let t=await fetch(n),r=await t.json();if(nc(r))return{moduleName:e,routes:r};throw Error(`${n} did not resolve to a valid OpenmrsAppRoutes object`)}throw Error(`Override for ${e} is neither a valid routes object nor a URL`)}))))"fulfilled"===n.status?e.routes[n.value.moduleName]=n.value.routes:console.warn("[route-maps] Failed to load route override",n.reason)}catch(e){console.warn("[route-maps] Failed to read route overrides from localStorage",e)}return e}async function nv(){let e=await nh();return np?nw([e,nf??await ny()]):e}async function nb(){return nh()}async function nx(){return np?nw([await nh(),await ny()]):nh()}function nk(){if(!np)return{};let e={};try{for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(n?.startsWith(nd)){let t=localStorage.getItem(n);t&&(e[n.slice(nd.length)]=t)}}}catch(e){console.warn("[route-maps] Failed to read route overrides from localStorage",e)}return e}function nS(e,t){if(!np)return void console.warn("[Security] Route overrides are disabled outside development mode.");try{if("string"==typeof t)if(t.startsWith("http"))localStorage.setItem(nd+e,JSON.stringify(t));else{let n=JSON.parse(t);if(!nc(n))return void console.error(`The supplied routes for ${e} is not a valid OpenmrsAppRoutes object`,t);localStorage.setItem(nd+e,JSON.stringify(n))}else if(t instanceof URL)localStorage.setItem(nd+e,JSON.stringify(t.toString()));else{if(!nc(t))return void console.error(`Override for ${e} is not in a valid format. Expected either a Javascript Object, a JSON string of a Javascript object, or a URL`,t);localStorage.setItem(nd+e,JSON.stringify(t))}window.dispatchEvent(new CustomEvent(nm))}catch(e){console.warn("[route-maps] Failed to write route override to localStorage",e)}}function nj(e){if(!np)return void console.warn("[Security] Route overrides are disabled outside development mode.");try{localStorage.removeItem(nd+e),window.dispatchEvent(new CustomEvent(nm))}catch(e){console.warn("[route-maps] Failed to remove route override from localStorage",e)}}function nN(){if(!np)return void console.warn("[Security] Route overrides are disabled outside development mode.");try{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n?.startsWith(nd)&&e.push(n)}e.forEach(e=>localStorage.removeItem(e)),window.dispatchEvent(new CustomEvent(nm))}catch(e){console.warn("[route-maps] Failed to clear route overrides from localStorage",e)}}let nC=null;function nE(){return nC||(nC=(np="development"===window.spaEnv)?ny().then(e=>{nf=e}):Promise.resolve())}let nI=`${tx}/attachment`;function nP(e,t){return tN(`${nI}/${e}`,{signal:t.signal})}function nA(e,t,n,r){return tN(nO(e,t,r),{signal:n.signal})}function nO(e,t,n){return n?`${nI}?patient=${e}&encounter=${n}`:`${nI}?patient=${e}&includeEncounterless=${t}`}async function nR(e,t,n){let r=new FormData;return r.append("fileCaption",t.fileDescription),r.append("patient",e),n&&r.append("encounter",n),t.file?r.append("file",t.file,t.fileName):(r.append("file",new File([""],t.fileName),t.fileName),r.append("base64Content",t.base64Content)),tN(`${nI}`,{method:"POST",body:r})}function n$(e,t){return tN(`${nI}/${e}`,{method:"DELETE",signal:t.signal})}async function nT(e,t){return e?(await tN(`${tk}/Patient/${e}`,t)).data:null}function nM(e,t){let n=new CustomEvent(`openmrs:${e}`,{detail:t??void 0,cancelable:!0,bubbles:!0});return window.dispatchEvent(n)}function nW(e,t){let n=e=>{t("detail"in e&&null!==e.detail?e.detail:void 0)};return window.addEventListener(`openmrs:${e}`,n),()=>{window.removeEventListener(`openmrs:${e}`,n)}}function nL(e){return{uuid:e.uuid,display:e.display}}function nD(e=null,t=null){let n=new URLSearchParams;e&&n.set("tag",e),t&&n.set("q",t);let r=n.toString();return tN(`${tx}/location${r?"?"+r:""}`).then(e=>e.data.results.map(nL))}function nB(e){return{uuid:e.uuid,display:e.display,name:e.name}}let nU=`${tx}/visittype`;function nF(e=nU){return tN(e).then(e=>e.data.results.map(nB))}var nH=((k={}).NEWVISIT="startVisit",k.EDITVISIT="editVisit",k.LOADING="loadingVisit",k),nG=((S={}).NOTSTARTED="notStarted",S.ONGOING="ongoing",S);let nz="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))",nV=function(){try{return JSON.parse(sessionStorage.getItem("openmrs:visitStoreState")||"null")}catch(e){return null}}()||{patientUuid:null,manuallySetVisitUuid:null};function nJ(){return $("visit",nV)}function nq(e,t){nJ().setState({patientUuid:e,manuallySetVisitUuid:t})}function nK(e,t){return tN(`${tx}/visit`,{signal:t.signal,method:"POST",headers:{"Content-type":"application/json"},body:e})}function nX(e,t,n){return tN(`${tx}/visit/${e}`,{signal:n.signal,method:"POST",headers:{"Content-type":"application/json"},body:t})}function nY(e,t,n){return tN(`${tx}/visit?patient=${e}&v=${n??nz}`,{signal:t.signal,method:"GET",headers:{"Content-type":"application/json"}})}nJ().subscribe(e=>{var t;t=e,sessionStorage.setItem("openmrs:visitStoreState",JSON.stringify(t))});var nZ=n(9225),nQ=n(6881),n0=n(6828),n1=n(1956),n2=n(3635),n6=n(7839),n5=n(2298);let n8={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)}},n3={...n8,Promise};function n4(e,t={}){return rr(e,t,ra)}async function n7(e,t={}){return ro(e,t,ra)}function n9(e,t={}){return rr(e,t,rs)}function re(e,t={}){return ro(e,t,rs)}function rt(e,t={}){return rr(e,t,rl)}function rn(e,t={}){return ro(e,t,rl)}function rr(e,t={},n){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==t&&(t={});let r=rp(t,n8),o=rc("string"==typeof e?(0,nZ.A)(e):e,r);if(n(o))return o;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 ro(e,t={},n){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==t&&(t={});let r=rp(t,n3);return Promise.resolve(rc("string"==typeof e?(0,nZ.A)(e):e,r)).then(t=>{if(n(t))return t;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 ri(e){return(0,nZ.A)(e)}function ra(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e||null==e||e instanceof Date}function rs(e){return"boolean"==typeof e}function rl(e){return"number"==typeof e}function rc(e,t){switch(e.type){case"UnaryExpression":var n,r,o,i,a,s,l,c,u,d,m,p,f,g=e,h=t;let _=rc(g.argument,h);switch(g.operator){case"+":return+_;case"-":return-_;case"~":return~_;case"!":return!_;default:throw`Expression evaluator does not support operator '${g.operator}''`}case"BinaryExpression":var w=e,y=t;switch(w.operator){case"&&":return rc(w.left,y)&&rc(w.right,y);case"||":return rc(w.left,y)||rc(w.right,y);case"??":return rc(w.left,y)??rc(w.right,y)}let v=rc(w.left,y),b=rc(w.right,y);switch(w.operator){case"+":return v+b;case"-":return v-b;case"*":return v*b;case"/":return v/b;case"%":return v%b;case"**":return v**b;case"==":return v==b;case"===":return v===b;case"!=":return v!=b;case"!==":return v!==b;case">":return v>b;case">=":return v>=b;case"<":return v<b;case"<=":return v<=b;case"in":return v in b;default:throw`Expression evaluator does not support operator '${w.operator}' operator`}case"ConditionalExpression":return n=e,r=t,rc(n.test,r)?rc(n.consequent,r):rc(n.alternate,r);case"CallExpression":return rh(rd(e,t));case"ArrowFunctionExpression":let x;return o=e,i=t,x=o.params?.map(e=>{if("Identifier"===e.type)return e.name;throw`Cannot handle parameter of type ${e.type}`})??[],(function(...e){if(e.length<x.length)throw`Required argument(s) ${x.slice(e.length,-1).join(", ")} were not provided`;let t=Object.fromEntries(x.reduce((t,n,r)=>{let o=e[r];return function e(t){if("string"==typeof t||"number"==typeof t||"boolean"==typeof t||"function"==typeof t||null===t||t instanceof RegExp)return!0;if("object"==typeof t){for(let n of Object.keys(t))if(!e(t[n]))return!1;return!0}if(Array.isArray(t)){for(let n of t)if(!e(n))break}return!1}(o)&&t.push([n,o]),t},[]));return rc(o.body,i.addVariables(t))}).bind(null);case"MemberExpression":return rh(rm(e,t));case"ArrayExpression":return a=e,s=t,a.elements?.map(r_(s));case"SequenceExpression":let k;return l=e,c=t,(k=l.expressions.map(r_(c)))[k.length-1];case"NewExpression":var S=e,j=t;if(S.callee&&"Identifier"===S.callee.type){let e=S.arguments?.map(r_(j));switch(S.callee.name){case"Date":return new Date(...e);case"RegExp":return new RegExp(...e);default:throw`Cannot instantiate object of type ${S.callee.name}`}}if(S.callee)throw"new must be called with either Date or RegExp";throw'Could not handle "new" without a specified class';case"Literal":return e.value;case"Identifier":return u=e,d=t,(rw(u.name),d.variables&&Object.hasOwn(d.variables,u.name))?d.variables[u.name]:Object.hasOwn(d.globals,u.name)?d.globals[u.name]:void 0;case"TemplateLiteral":let N,C;return m=e,p=t,N=m.expressions?.map(r_(p))??[],(C=m.quasis?.map(r_(p))??[]).filter(e=>!e.tail).map(e=>e.value).join("")+N.join("")+C.filter(e=>e.tail).map(e=>e.value).join("");case"TemplateElement":return{value:(f=e).cooked,tail:f.tail};default:throw`Expression evaluator does not support expression of type '${e.type}'`}}function ru(e,t){switch(e.type){case"Literal":return e.value;case"Identifier":return e.name;case"MemberExpression":return ru(e.property,t);default:throw`VisitExpressionName does not support expression of type '${e.type}'`}}function rd(e,t){let n=rg(e.callee,t);if(n===rf||e.optional&&null==n)return rf;let r=e.arguments?.map(r_(t));if(n){if("function"!=typeof n)throw`${rb(e.callee)} is not a function`}else throw`No function named ${rb(e.callee)} is defined in this context`;return n(...r)}function rm(e,t){let n=rg(e.object,t);if(n===rf||e.optional&&null==n)return rf;if(null===n)throw TypeError(`TypeError: cannot read properties of null (reading '${rv(e.property,t)}')`);if(void 0===n)switch(e.object.type){case"Identifier":{let n=ru(e.object,t);throw ReferenceError(`ReferenceError: ${n} is not defined`)}case"MemberExpression":throw TypeError(`TypeError: cannot read properties of undefined (reading '${rv(e.property,t)}')`);default:throw`VisitMemberExpression does not support operator '${e.object.type}' type`}if("object"!=typeof n&&"function"!=typeof n&&"string"!=typeof n&&"number"!=typeof n)throw`VisitMemberExpression does not support member access on type ${typeof n}`;let r=e.computed?function(e){if(void 0===e)throw{type:"Illegal property access",message:"No property was supplied to the property access"};if("string"!=typeof e&&"number"!=typeof e)throw{type:"Illegal property access",message:`Cannot use a value of type ${null===e?"null":typeof e} as a property name`};return e}(rc(e.property,t)):function(e){if("Identifier"!==e.type)throw`VisitMemberExpression does not support a property of type '${e.type}'`;return e.name}(e.property);rw(r),function(e,t){if(ry.has(String(t)))return;let n=Object(e);for(;null!==n;){if(Object.hasOwn(n,t)){if(n===Object.prototype||n===Function.prototype)throw{type:"Illegal property access",message:`Cannot access the ${t} property of objects`};return}n=Object.getPrototypeOf(n)}}(n,r);let o=n[r];return"function"==typeof o?o.bind(n):o}function rp(e,t){let n={variables:{...e},globals:{...t},addVariables(e){return this.variables={...this.variables,...e},this}};return n.addVariables.bind(n),n}nZ.A.plugins.register(nQ.A),nZ.A.plugins.register(n0.A),nZ.A.plugins.register(n1.A),nZ.A.plugins.register(n2.A),nZ.A.plugins.register(n6.A),nZ.A.plugins.register(n5.A),nZ.A.addBinaryOp("in",7),nZ.A.addBinaryOp("??",1);let rf=Symbol("optional chain short-circuited");function rg(e,t){switch(e.type){case"MemberExpression":return rm(e,t);case"CallExpression":return rd(e,t);default:return rc(e,t)}}function rh(e){return e===rf?void 0:e}function r_(e){return function(t){return null===t?null:rc(t,e)}}function rw(e){if("__proto__"===e||"prototype"===e||"constructor"===e)throw{type:"Illegal property access",message:`Cannot access the ${e} property of objects`}}let ry=new Set(["toString","valueOf","hasOwnProperty"]);function rv(e,t){try{return ru(e,t)}catch{return"<computed>"}}function rb(e){return e?"MemberExpression"===e.type?e.property?.name:e.name:null}function rx(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 t={globals:{...n3},isLocalExpression:!1,variables:new Set};return rk("string"==typeof e?(0,nZ.A)(e):e,t),[...t.variables]}function rk(e,t){switch(e.type){case"UnaryExpression":return r=e,o=t,rk(r.argument,o);case"BinaryExpression":return i=e,a=t,[rk(i.left,a),rk(i.right,a)].filter(Boolean);case"ConditionalExpression":return s=e,l=t,[rk(s.consequent,l),rk(s.test,l),rk(s.alternate,l)].filter(Boolean);case"CallExpression":let n;return c=e,u=t,n=rk(c.callee,u),c.arguments?.map(rS(u)),n;case"ArrowFunctionExpression":var r,o,i,a,s,l,c,u,d,m,p,f,g,h,_,w,y=e,v=t;let b={...v};b.isLocalExpression=!0;let x=y.params?.map(rS(b))??[],k=rk(y.body,b)??[];if(k&&Array.isArray(k))for(let e of k)x.includes(e)||v.variables.add(e);return;case"MemberExpression":var S=e,j=t;if(rk(S.object,j),S.computed)return void rk(S.property,j);let N={...j};N.isLocalExpression=!0,rk(S.property,N);return;case"ArrayExpression":return d=e,m=t,void d.elements?.map(rS(m));case"SequenceExpression":return p=e,f=t,void p.expressions?.map(rS(f));case"NewExpression":return g=e,h=t,void g.arguments?.map(rS(h));case"Literal":case"TemplateElement":return;case"Identifier":var C=e,E=t;if(!(C.name in E.globals))if(E.isLocalExpression)return C.name;else E.variables.add(C.name);return;case"TemplateLiteral":return _=e,w=t,void(_.expressions?.map(rS(w)),_.quasis?.map(rS(w)));default:throw`Expression evaluator does not support expression of type '${e.type}'`}}function rS(e){return function(t){return null===t?null:rk(t,e)}}let rj=$("feature-flags",{flags:function(){let e={};for(let t of Object.keys(localStorage))if(t.startsWith("openmrs:feature-flag:")){let n=t.replace("openmrs:feature-flag:",""),r=JSON.parse(localStorage.getItem(`openmrs:feature-flag-meta:${n}`)||"{}");e[n]={enabled:"true"===localStorage.getItem(t),...r}}return e}()});function rN(e,t,n){rj.setState(r=>({flags:{...r.flags,[e]:{enabled:r.flags[e]?.enabled??!1,label:t,description:n}}}))}function rC(){let e=rj.getState().flags;Object.keys(localStorage).filter(e=>e.startsWith("openmrs:feature-flag:")).forEach(t=>{let n=t.replace("openmrs:feature-flag:","");e[n]||(localStorage.removeItem(t),localStorage.removeItem(`openmrs:feature-flag-meta:${n}`))})}function rE(e){return rj.getState().flags[e].enabled}function rI(e,t){rj.subscribe(n=>{t(n.flags[e].enabled)})}function rP(e,t){rj.setState(n=>({flags:{...n.flags,[e]:{...n.flags[e],enabled:t}}}))}rj.subscribe(e=>{for(let[t,n]of Object.entries(e.flags))localStorage.setItem(`openmrs:feature-flag:${t}`,n.enabled.toString()),localStorage.setItem(`openmrs:feature-flag-meta:${t}`,JSON.stringify({label:n.label,description:n.description}))});var rA=n(1216);let rO=O("extensionsInternal",{slots:{},extensions:{}}),rR=O("extensionRenderings",{renderings:new Map}),r$=()=>$("extensionsInternal",{slots:{},extensions:{}}),rT=()=>$("extensionRenderings",{renderings:new Map});function rM(e){let t=rO.getState(),n=e(t);n!==t&&rO.setState(n)}let rW=null,rL=null;function rD(){let e=rR.getState();return rW&&e===rL||(rW=new Map(e.renderings),rL=e,function(e){for(let t of(rK.clear(),e.values()))rY(t,1);rX=!0}(rW)),rW}function rB(e){rL={renderings:e},rR.setState(rL,!0)}function rU(e){let t=rD();t.has(e.renderingId)||(t.set(e.renderingId,e),rY(e,1),rB(t))}function rF(e){let t=rD(),n=t.get(e);n&&(t.delete(e),rY(n,-1),rB(t))}let rH=()=>$("extensions",{slots:{}}),rG=0,rz=new Set;function rV(e){rG++;try{return e()}finally{if(0==--rG&&rz.size>0){let e=Array.from(rz);for(let t of(rz.clear(),e))rJ(t)}}}function rJ(e){try{e()}catch(t){console.error(`The extension system's '${e.name}' recomputation failed`,t)}}function rq(e){rG>0?rz.add(e):rJ(e)}let rK=new Map,rX=!1;function rY(e,t){let n=JSON.stringify([e.slotName,e.extensionId,e.slotModuleName,e.extensionModuleName]),r=rK.get(n);if(!r){if(t<0)return;rK.set(n,{count:1,record:{slotModuleName:e.slotModuleName,extensionModuleName:e.extensionModuleName,slotName:e.slotName,extensionId:e.extensionId}}),rX=!0;return}r.count+=t,r.count<1&&(rK.delete(n),rX=!0)}function rZ(){var e,t;if(rD(),!rX)return;rX=!1;let n=Array.from(rK.values(),({record:e})=>e);n.sort(rQ),e=Q.getState().mountedExtensions,t=n,e.length===t.length&&e.every((e,n)=>0===rQ(e,t[n]))||Q.setState({mountedExtensions:n})}function rQ(e,t){return r0(e.slotName,t.slotName)||r0(e.extensionId,t.extensionId)||r0(e.slotModuleName,t.slotModuleName)||r0(e.extensionModuleName,t.extensionModuleName)}function r0(e,t){return e===t?0:e<t?-1:1}rZ(),rR.subscribe(()=>rq(rZ));let r1=r$(),r2=rH(),r6=et(),r5=eo(),r8=new Set,r3=!1;function r4(e){if(null===e)r8=null;else if(null!==r8)for(let t of e)r8.add(t);rq(r7)}function r7(){if(!r3){r3=!0;try{for(let e=1;;e++){let t=r8;if(null!==t&&0===t.size)return;r8=new Set;try{!function(e,t,n,r,o,i=null){let a=r2.getState().slots,s={},l=!1,c=Object.entries(r.flags).filter(([,{enabled:e}])=>e).map(([e])=>e);for(let[r,u]of Object.entries(e.slots)){let d=a[r];if(d&&i&&!i.has(r)){s[r]=d;continue}let{config:m}=er(t,u.name),p=function(e,t,n,r,o,i){let a=function(e,t){let n=e.add||[],r=e.remove||[],o=e.order||[],{extensions:i}=r1.getState();return[...t,...n].filter(e=>!r.includes(e)).sort((e,n)=>ol(e,o,i[ot(e)]?.order,t)-ol(n,o,i[ot(n)]?.order,t))}(n,t.slots[e].attachedIds),s=[];for(let l of a){let{config:a}=ea(r,e,l),c=es(n,e,l),u=c?(0,rA.A)({},a,c):a,d=ot(l),m=t.extensions[d];if(m){let e=u?.["Display conditions"]?.privileges??m.privileges??[];if(e&&("string"==typeof e||Array.isArray(e)&&e.length>0)&&(!i?.user||!tW(e,i.user))||m.featureFlag&&!o.includes(m.featureFlag))continue;s.push({id:l,name:d,moduleName:m.moduleName,config:u,featureFlag:m.featureFlag,meta:m.meta,displayConditionExpression:u?.["Display conditions"]?.expression||m.displayExpression})}}return s}(r,e,m,n,c,o.session);d&&d.moduleName===u.moduleName&&(0,B.A)(d.candidateExtensions,p)?s[r]=d:(s[r]={moduleName:u.moduleName,candidateExtensions:p},l=!0)}(l||Object.keys(a).length!==Object.keys(s).length)&&r2.setState({slots:s})}(r1.getState(),r6.getState(),r5.getState(),rj.getState(),tE.getState(),t)}catch(e){throw r8=null===t||null===r8?null:new Set([...t,...r8]),e}if(e>=20)return void console.error("The extension system stopped recomputing after 20 passes because something keeps invalidating slots in response to the extension store being written. Some slots are left stale until the next write.")}}finally{r3=!1}}}function r9(e,t){let n=new Set;for(let r of Object.keys(e))e[r]!==t[r]&&n.add(r);for(let r of Object.keys(t))r in e||n.add(r);return n}function oe(e,t){return{moduleName:t,name:e,attachedIds:[]}}function ot(e){let[t]=e.split("#");return t}function on(e,t){let n=ot(t);return e.extensions[n]}function or(e){return on(r1.getState(),e)}r1.subscribe((e,t)=>{r4(e.extensions!==t.extensions?null:r9(e.slots,t.slots))}),r6.subscribe((e,t)=>{r4(r9(e.slots,t.slots))}),r5.subscribe((e,t)=>{r4(r9(e.configs,t.configs))}),rj.subscribe(()=>r4(null)),tE.subscribe(()=>r4(null)),r4(null);let oo=e=>rM(t=>({...t,extensions:{...t.extensions,[e.name]:{...e}}}));function oi(e,t){rM(n=>{let r=n.slots[e];return r?{...n,slots:{...n.slots,[e]:{...r,attachedIds:[...r.attachedIds,t]}}}:{...n,slots:{...n.slots,[e]:{...oe(e),attachedIds:[t]}}}})}function oa(e,t){rM(n=>{let r=n.slots[e];return r&&r.attachedIds.includes(t)?{...n,slots:{...n.slots,[e]:{...r,attachedIds:r.attachedIds.filter(e=>e!==t)}}}:n})}function os(e){rM(t=>{let n=t.slots[e];return n?{...t,slots:{...t.slots,[e]:{...n,attachedIds:[]}}}:t})}function ol(e,t,n,r){let o=t.indexOf(e);if(-1!==o)return o;{if(void 0!==n)return 1e3+n;let t=r.indexOf(e);return -1!==t?2e3+t:3e3}}function oc(e,t){return function(e,t,n=null,r){let o;return e.filter(e=>{let i=e.displayConditionExpression;if("string"!=typeof i||0===i.trim().length)return!0;o??(o=t&&"object"==typeof t?{session:n,...t}:{session:n});try{return!!n9(i,o)}catch(t){return console.error(`Error while evaluating expression '${i}' for ${e.id}`+(r?` in ${r}`:""),t),!1}})}(ou(e),t,tE.getState().session,e)}function ou(e){return r2.getState().slots[e]?.candidateExtensions??[]}let od=(e,t)=>r1.setState(n=>{let r=n.slots[t]?.moduleName;if(r&&r!=e)return console.warn(`An extension slot with the name '${t}' already exists. Refusing to register the same slot name twice (in "registerExtensionSlot"). The existing one is from module ${r}.`),n;if(r&&r==e)return n;if(n.slots[t])return{...n,slots:{...n.slots,[t]:{...n.slots[t],moduleName:e}}};let o=oe(t,e);return{...n,slots:{...n.slots,[t]:{...o}}}}),om=()=>{r8=null,rM(()=>({slots:{},extensions:{}})),rT().setState({renderings:new Map}),r2.setState({slots:{}})},op=O("left-nav",{slotName:null,basePath:window.spaBase,mode:"normal"});function of({name:e,basePath:t,mode:n,componentContext:r,state:o}){op.setState({slotName:e,basePath:t,mode:n??"normal",componentContext:r,state:o})}function og(e){op.getState().slotName===e&&op.setState(op.getInitialState(),!0)}let oh=O("modalRegistry",{modals:{}});function o_(e){oh.setState(t=>(t.modals[e.name]=e,t))}function ow(e){let t=oh.getState().modals[e];if(!t){let n=or(e);n&&(t={name:e,load:n.load,moduleName:n.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.`),o_(t))}return t}let oy=O("workspaceRegistrations",{workspaces:{}}),ov=O("workspaceGroups",{workspaceGroups:{}});function ob(e){oy.setState(t=>({workspaces:{...t.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 ox(e){ov.setState(t=>{let n=t.workspaceGroups[e.name];return n?{workspaceGroups:{...t.workspaceGroups,[e.name]:{...n,members:Array.from(new Set([...n.members,...e.members]))}}}:{workspaceGroups:{...t.workspaceGroups,[e.name]:{name:e.name,members:e.members}}}})}let ok=new Set;function oS(e){let t=oy.getState().workspaces;if(t[e])return t[e];{let t=or(e);if(t){var n;let r;return ok.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.`),ok.add(e)),{name:t.name,title:(n=t,"string"==typeof(r=n?.meta?.title)?r:r&&"object"==typeof r?tl(n.moduleName,r.key,r.default):n.name),moduleName:t.moduleName,preferredWindowSize:t.meta?.screenSize??"normal",load:t.load,type:t.meta?.type??"form",canHide:t.meta?.canHide??!1,canMaximize:t.meta?.canMaximize??!1,width:t.meta?.width??"narrow",groups:t.meta?.groups??[]}}throw Error(`No workspace named '${e}' has been registered.`)}}function oj(e){let t=ov.getState().workspaceGroups;if(t[e])return t[e];throw Error(`No workspace group named '${e}' has been registered.`)}let oN=O("workspace2",{registeredGroupsByName:{},registeredWindowsByName:{},registeredWorkspacesByName:{},openedGroup:null,openedWindows:[],workspaceTitleByWorkspaceName:{},isMostRecentlyOpenedWindowHidden:!1});function oC(e){let{registeredWorkspacesByName:t,registeredWindowsByName:n}=oN.getState(),r=t[e];if(r){let t=n[r.window];if(t)return t;throw Error(`No workspace window found with name: ${r.window} for workspace: ${e}`)}throw Error(`No workspace found with name: ${e}`)}function oE(e){let{registeredGroupsByName:t,registeredWindowsByName:n}=oN.getState(),r=n[e];if(r){let n=t[r.group];if(n)return n;throw Error(`No workspace group found with name: ${r.group} for window: ${e}`)}throw Error(`No workspace window found with name: ${e}`)}function oI(e){let{openedWindows:t}=oN.getState();return t.findIndex(t=>t.openedWorkspaces.find(t=>t.workspaceName===e))}function oP(e,t){if(0==t.length)return;let{registeredGroupsByName:n}=oN.getState(),r={...n};for(let n of t){if(r[n.name])throw Error(`Cannot register workspace group ${n.name} more than once`);r[n.name]={...n,moduleName:e}}oN.setState({registeredGroupsByName:r})}function oA(e,t){if(0==t.length)return;let{registeredWindowsByName:n}=oN.getState(),r={...n};for(let n of t){if(r[n.name])throw Error(`Cannot register workspace window ${n.name} more than once`);let t={...n,moduleName:e};r[n.name]=t}oN.setState({registeredWindowsByName:r})}function oO(e,t){if(0==t.length)return;let{registeredWorkspacesByName:n}=oN.getState(),r={...n};for(let n of t){if(r[n.name])throw Error(`Cannot register workspace ${n.name} more than once`);let t={...n,moduleName:e};r[n.name]=t}oN.setState({registeredWorkspacesByName:r})}let oR=0,o$=null,oT={bootstrap:15e3,mount:15e3,unmount:15e3};function oM(e,t){if(e.timeouts)return e;let n=e.name??"parcel",r=Object.fromEntries(Object.keys(oT).filter(t=>e[t]).map(r=>{var o,i;let a,s;return[r,(o=e[r],i=oT[r],a=Array.isArray(o)?o:[o],s=e=>a.reduce((t,o,i)=>t.then(()=>{let t=o(e);return"function"==typeof t?.then&&"function"==typeof t?.catch?t:Promise.reject(Error(`Lifecycle function ${r} at array index ${i} for parcel ${n} did not return a promise`))}),Promise.resolve(void 0)),e=>{let o,a=new Promise((e,t)=>{o=setTimeout(()=>t(Error(`Lifecycle function ${r} for parcel ${n} did not settle within ${i}ms`)),i)});return Promise.race([s(e),a]).finally(()=>clearTimeout(o)).then(e=>(t(r,!1),e),e=>{throw t(r,!0),e})})]}));return{...e,...r}}async function oW(e,t){var n,r;let o,i,a,s,l,c=await (o$??(o$=new Promise((e,t)=>{(0,to.mountRootParcel)({name:"openmrs-extension-host",bootstrap:()=>Promise.resolve(),mount:t=>(e(t.mountParcel),Promise.resolve()),unmount:()=>Promise.resolve()},{domElement:document.createElement("div")}).mountPromise.catch(t)}).catch(e=>(console.error("The host parcel used to mount extensions could not be mounted. Falling back to mounting extensions as root parcels, which leaks their DOM elements.",e),to.mountRootParcel))),o$),u={...t},d=(o=u,i=!1,{retarget:e=>o={...e},release:a=()=>(function(e){for(let t of Object.keys(e))delete e[t]})(o),onSettled(e,t){switch(e){case"bootstrap":t&&a();return;case"mount":i||(i=t);return;case"unmount":(t||i)&&a();return}}});return r=c((n=d.onSettled,"function"==typeof e?()=>e().then(e=>oM(e,n)):oM(e,n)),u),s=e=>t=>e.call(r,d.retarget(t)).catch(e=>{throw"SKIP_BECAUSE_BROKEN"===r.getStatus()&&d.release(),e}),l=r.update&&s(r.update),Object.defineProperty(r,"update",{configurable:!0,enumerable:!0,get:()=>l,set:e=>{l=e&&s(e)}})}function oL(){return oD}function oD(e,t){let n,r=oW(e,t).then(e=>n=e);return{mount:()=>r.then(e=>e.mount()),unmount:()=>r.then(e=>e.unmount()),update:e=>r.then(t=>t.update?.(e)),getStatus:()=>n?.getStatus()??"LOADING_SOURCE_CODE",get loadPromise(){return r.then(e=>e.loadPromise)},get bootstrapPromise(){return r.then(e=>e.bootstrapPromise)},get mountPromise(){return r.then(e=>e.mountPromise)},get unmountPromise(){return r.then(e=>e.unmountPromise)}}}async function oB(e,t,n,r,o=e=>e,i={}){let a=ot(r),s=or(r),l=null;if(e){let c;if(!s)throw Error(`Couldn't find extension '${a}' to attach to '${t}'`);let{meta:u,moduleName:d,load:m}=s,p=oR++,f=`${t}/${r}-${p}`;e.dataset.extensionRenderingId=f;let g=e=>{try{rF(f)}catch(t){console.error(e,t)}};try{rU({renderingId:f,extensionName:a,extensionModuleName:d,extensionId:r,slotName:t,slotModuleName:n})}catch(e){throw g(`Recomputing configuration after registering '${r}' failed also failed`),e}try{c=await m()}catch(e){throw g(`Recomputing configuration after '${r}' failed to load also failed`),e}try{l=await oW(o({...c,name:`${t}/${a}-${p}`}),{...i,_meta:u,_extensionContext:{extensionId:r,extensionSlotName:t,extensionSlotModuleName:n,extensionModuleName:d,extensionMeta:u},domElement:e})}catch(e){throw g(`Recomputing configuration after '${r}' failed to mount also failed`),e}l.mountPromise.then(void 0,e=>{console.error(`Extension '${r}' in slot '${t}' failed to mount`,e),g(`Recomputing configuration after '${r}' failed to mount also failed`)}),l.unmountPromise.then(()=>g(`Recomputing configuration after unmounting '${r}' failed`),e=>{console.error(`Extension '${r}' in slot '${t}' failed to unmount`,e),g(`Recomputing configuration after '${r}' failed to unmount also failed`)})}else console.warn(`Tried to render ${r} into ${t} but no DOM element was available.`);return l}var oU=n(6925),oF=n.n(oU);let oH=(0,oU.createContext)({moduleName:"",featureName:""});function oG({to:e,templateParams:t,onBeforeNavigate:n,children:r,...o}){return(0,oU.useEffect)(()=>{o.href&&console.warn(`ConfigurableLink does not support the href prop. Use the 'to' prop instead. The provided href value is '${o.href}'`),o.onClick&&console.warn(`ConfigurableLink does not support the onClick prop. Use the 'onBeforeNavigate' prop instead. The 'to' prop of the offending link is ${e}`)},[]),oF().createElement("a",{onClick:r=>{0===r.button&&!r.ctrlKey&&!r.shiftKey&&!r.altKey&&!r.metaKey&&(r.preventDefault(),n?.(r),tm({to:e,templateParams:t})),0===r.button&&(r.ctrlKey||r.metaKey)&&n?.(r),0===r.button&&r.shiftKey&&n?.(r),1===r.button&&n?.(r)},href:tu(e,t),...o},r)}let oz=({state:e,children:t,...n})=>{let{extension:r}=(0,oU.useContext)(oH),o=(0,oU.useRef)(null),i=(0,oU.useRef)(Promise.resolve()),a=(0,oU.useRef)(!1),s=(0,oU.useRef)(!1),l=(0,oU.useRef)(e),c=(0,oU.useCallback)(e=>{if(!e)return;let t=()=>{"MOUNTED"===e.getStatus()&&e.unmount()};switch(e.getStatus()){case"MOUNTED":e.unmount();break;case"UPDATING":i.current?.then(t,t);break;default:e.mountPromise.then(t,()=>{})}},[]),u=(0,oU.useCallback)((e,t)=>{e.update&&"UNMOUNTING"!==e.getStatus()&&(i.current=Promise.all([e.mountPromise,i.current]).then(()=>{if(o.current?.getStatus()==="MOUNTED"&&o.current.update)return o.current.update({...t})}).catch(e=>{let t=o.current?.getStatus();"UNMOUNTING"!==t&&"NOT_MOUNTED"!==t&&"UNLOADING"!==t&&console.error(`The extension '${r?.extensionId}' failed to update`,e)}))},[]),d=(0,oU.useCallback)(t=>{t&&!o.current&&!s.current&&r?.extensionSlotName&&r.extensionSlotModuleName&&(s.current=!0,oB(t,r.extensionSlotName,r.extensionSlotModuleName,r.extensionId,void 0,e).then(t=>{(s.current=!1,o.current=t,a.current)?c(t):t&&l.current!==e&&u(t,l.current)},()=>{s.current=!1}))},[]);return(0,oU.useEffect)(()=>(a.current=!1,()=>{a.current=!0,c(o.current)}),[]),(0,oU.useEffect)(()=>{l.current=e,o.current&&u(o.current,e)},[e]),r?oF().createElement("div",{ref:d,"data-extension-id":r?.extensionId,style:{position:"relative"},...n}):null};function oV(e){let t=(0,oU.useRef)(e);return b(t.current,e)||(t.current=e),t.current}function oJ(e,t){"function"==typeof t&&(t=t(e));let n={};for(let[r,o]of Object.entries(t)){let t=function(...t){e.setState(e=>o(e,...t))};n[r]=t}return n}let oq=e=>e;function oK(e,t=oq,n){let r=(0,oU.useCallback)(t=>e.subscribe(t),[e]),o=(0,oU.useCallback)(()=>t(e.getState()),[e,t]),i=(0,oU.useSyncExternalStore)(r,o,o),a=(0,oU.useMemo)(()=>n?oJ(e,n):null,[e,n]);return(0,oU.useMemo)(()=>a?{...i,...a}:i,[i,a])}function oX(e,t){return oK(e,oq,t)}function oY(e){return function(t){let n=(0,oU.useCallback)(t=>e.subscribe(t),[]),r=(0,oU.useCallback)(()=>e.getState(),[]),o=(0,oU.useSyncExternalStore)(n,r,r),i=(0,oU.useMemo)(()=>t?oJ(e,t):null,[t]);return(0,oU.useMemo)(()=>i?{...o,...i}:o,[o,i])}}let oZ=[];Object.freeze(oZ);let oQ={candidateExtensions:oZ};Object.freeze(oQ);let o0=e=>{let t=(0,oU.useCallback)(t=>t.slots?.[e]??oQ,[e]);return oK(rH(),t)},o1=e=>e.session;function o2(e,t){let{candidateExtensions:n}=o0(e),r=oK(tE,o1),o=oV(t);return(0,oU.useMemo)(()=>oc(e,o),[e,o,r,n])}function o6(e,t){let{moduleName:n}=(0,oU.useContext)(oH);if(!n)throw Error("ComponentContext has not been provided. This should come from @openmrs/esm-react-utils.");return(0,oU.useEffect)(()=>{od(n,e)},[n,e]),{extensions:o2(e,t),extensionSlotName:e,extensionSlotModuleName:n}}function o5(e){return e}function o8({name:e,extensionSlotName:t,select:n=o5,children:r,state:o,style:i,...a}){if(r&&o)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??t,l=(0,oU.useRef)(null),{extensions:c,extensionSlotModuleName:u}=o6(s,o),d=(0,oU.useMemo)(()=>n(c),[n,c]),m=(0,oU.useMemo)(()=>{if("function"==typeof r&&!oF().isValidElement(r))return d.map(e=>r(e,o))},[r,d]);return oF().createElement("div",{ref:l,"data-extension-slot-name":s,"data-extension-slot-module-name":u,style:{...i,position:"relative"},...a},s&&d?.map((e,t)=>oF().createElement(oH.Provider,{key:e.id,value:{moduleName:u,featureName:"",extension:{extensionId:e.id,extensionSlotName:s,extensionSlotModuleName:u,extensionMeta:e.meta}}},m?.[t]??("function"!=typeof r?r:null)??oF().createElement(oz,{state:o}))))}var o3=n(3776),o4=n(9568),o7=n(9737),o9=n(2324),ie=n(242);let it={strictMode:!0,throwErrorsToConsole:!0,disableTranslations:!1},ir=new Map;(0,ie.y)(ir);let io={errorRetryCount:3,fetcher:tN,focusThrottleInterval:18e5,revalidateIfStale:!0,revalidateOnFocus:!1,revalidateOnReconnect:!1,refreshInterval:0,shouldRetryOnError:e=>{if(e instanceof tC){let t=e.response.status;return!!(t>=500)||401===t||403===t||429===t}return!0},provider:()=>ir};function ii(e){if("object"!=typeof e||"string"!=typeof e.featureName||"string"!=typeof e.moduleName)throw Error("Invalid options");let t=Object.assign({},it,e),n={...io,...t.swrConfig};return function(e){var r,o,i,a,s;return i=o=class extends(r=oF().Component){componentDidCatch(e,n){n&&n.componentStack&&(e.extra=Object.assign(e.extra||{},{componentStack:n.componentStack})),t.throwErrorsToConsole&&setTimeout(()=>{throw e}),this.setState({caughtError:e,caughtErrorInfo:n})}render(){if(this.state.caughtError)return oF().createElement("div",null,"An error has occurred. Please try reloading the page.");{let r=oF().createElement(oU.Suspense,{fallback:null},oF().createElement(o9.S,{value:n},oF().createElement(oH.Provider,{value:this.state.config},t.disableTranslations?oF().createElement(e,this.props):oF().createElement(o7.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},oF().createElement(e,this.props)))));return t.strictMode&&oF().StrictMode?oF().createElement(oF().StrictMode,null,r):r}}constructor(e){super(e),this.state={caughtError:null,caughtErrorInfo:null,config:{moduleName:t.moduleName,featureName:t.featureName,extension:e._extensionContext}}}},a="displayName",s=`OpenmrsReactComponent(${t.featureName})`,a in i?Object.defineProperty(i,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):i[a]=s,o}}function ia(e,t){return(0,o4.A)({React:oF(),ReactDOMClient:o3,rootComponent:ii(t)(e)})}function is(e,t){return()=>e().then(({default:e})=>ia(e,t))}function il(e,t){return()=>Promise.resolve(ia(e,t))}let ic=is,iu=(0,N.y)()(()=>({}));R("openmrs-app-context",iu);let id={};function im(e,t=e=>e){let n=iu.getState();return e in n?Object.freeze(Object.assign({},t?t(n[e]):n[e])):null}function ip(e,t){iu.setState(n=>(e in n||(n[e]={}),n[e]=t(n[e]),Object.assign({},n)))}function ig(e){return null===e?null:Object.freeze(Object.assign({},e))}let ih=new Map;function i_(e,t){let n=(0,oU.useRef)(t??{}),r=(0,oU.useRef)(t=>ip(e,t)),o=(0,oU.useRef)(Symbol());return(0,oU.useEffect)(()=>{let n=t??{},r=o.current;return null===im(e)?!function(e,t=id){iu.setState(n=>{if(e in n)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({},n,{[e]:t===id?{}:t})})}(e,n):(console.warn(`Namespace ${e} is already registered in the app context. This is likely a race condition during navigation, but may indicate two components are trying to own the same namespace. Updating the existing context.`),ip(e,()=>n)),ih.set(e,r),()=>{ih.get(e)===r&&(iu.setState(t=>(e in t&&delete t[e],t)),ih.delete(e))}},[e]),(0,oU.useEffect)(()=>{let r=t??{};b(n.current,r)||(ip(e,()=>r),n.current=r)},[t]),r.current}function iw({namespace:e,value:t}){return i_(e,t),null}let iy=({children:e,value:t,fallback:n})=>t?oF().createElement(oF().Fragment,null,e):n?oF().createElement(oF().Fragment,null,n):null;function iv(){let e=(0,oU.useRef)();return(!e.current||e.current.signal.aborted)&&(e.current=new AbortController),(0,oU.useEffect)(()=>{let t=e.current;return()=>t?.abort()},[]),e.current}function ib(e,t=e=>e??{}){let[n,r]=(0,oU.useState)(()=>{if(ix(e))return;let n=im(e);if(null!==n)return t?t(n):n});return(0,oU.useEffect)(()=>{if(ix(e))throw Error(`The namespace supplied to useAppContext must be a non-empty string, but was "${e}".`)},[e]),(0,oU.useEffect)(()=>{var n;let o;return(n=e=>{if(null==e)return void r(void 0);let n=t?t(e):e;r(e=>b(e,n)?e:n)})(ig(o=im(e))),iu.subscribe(t=>{let r=e in t?t[e]:null;r!==o&&(o=r,n(ig(r)))})},[e,t]),n}function ix(e){return"string"!=typeof e||0===e.trim().length}function ik(e){let t=o2(e);return(0,oU.useMemo)(()=>t.map(e=>e.id),[t])}function iS(e){return o0(e).candidateExtensions}function ij(e,t,n){let{data:r,error:o,mutate:i,isLoading:a,isValidating:s}=(0,o9.u)(e?nO(e,t,n):null,tN);return(0,oU.useMemo)(()=>({isLoading:a,data:r?.data.results??[],error:o,mutate:i,isValidating:s}),[r,o,a,s,i])}function iN(e){(0,oU.useEffect)(()=>{if(e){let e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}}},[e])}let iC={},iE=`No ComponentContext has been provided. This should come from "openmrsComponentDecorator".