@openmrs/esm-implementer-tools-app 11.0.1-pre.5986 → 11.0.1-pre.6000
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/dist/{7575.css.map → 4823.css.map} +1 -1
- package/dist/4823.js +28 -0
- package/dist/4823.js.map +1 -0
- package/dist/openmrs-esm-implementer-tools-app.js +2 -2
- package/dist/openmrs-esm-implementer-tools-app.js.map +1 -1
- package/dist/routes.json +1 -1
- package/package.json +3 -3
- package/dist/7575.js +0 -28
- package/dist/7575.js.map +0 -1
- /package/dist/{7575.css → 4823.css} +0 -0
package/dist/4823.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";(globalThis.webpackChunk_openmrs_esm_implementer_tools_app=globalThis.webpackChunk_openmrs_esm_implementer_tools_app||[]).push([["4823"],{7562(e,t,n){let o,r,i;n.r(t),n.d(t,{GenderUnknownIcon:()=>aL,evaluateAsNumber:()=>o_,getImportMapOverrideMap:()=>nm,StockManagementPictogram:()=>dO,ChemistryIcon:()=>ay,BabyIcon:()=>al,DashboardExtension:()=>lL,openmrsComponentDecorator:()=>iy,tryRegisterExtension:()=>sW,pictogramIds:()=>u9,ActivityIcon:()=>an,compile:()=>ox,removeRouteMapOverride:()=>nF,TableBatchActions:()=>s0,getAsyncLifecycle:()=>ib,subscribeOpenmrsEvent:()=>n0,PasswordIcon:()=>a3,Assessment2Pictogram:()=>dr,CloseIcon:()=>aj,setupRouteMapOverrides:()=>nz,useFeatureFlag:()=>i0,reset:()=>rP,ConceptDictionaryPictogram:()=>dl,LabOrderIcon:()=>aq,VisitMode:()=>n4,isTranslationInspectorRecording:()=>th,useLocations:()=>sd,getLifecycle:()=>iv,formatDatetime:()=>cf,getVisitsForPatient:()=>or,formatPartialDate:()=>cu,CustomOverflowMenu:()=>s3,LocationIcon:()=>aK,GroupIcon:()=>aD,createUseStore:()=>r7,VisitStatus:()=>n3,getSessionLocation:()=>tY,getCurrentImportMap:()=>nj,usePatient:()=>s_,useRenderableExtensions:()=>sb,getOpenedWindowIndexByWorkspace:()=>rD,setLeftNav:()=>rO,clearHistory:()=>tI,clearConfigErrors:()=>e0,formatTime:()=>cp,isDevEnabled:()=>t4,CohortsPictogram:()=>da,closeWorkspaceGroup2:()=>d1,getCurrentRouteMap:()=>nL,ConfigurableLink:()=>r1,sessionStore:()=>tU,setSessionLocale:()=>tQ,subscribeSnackbarShown:()=>w,getLoggedInUser:()=>tX,GenderMaleIcon:()=>a$,getExtensionSlotConfigFromStore:()=>ei,evaluateAsNumberAsync:()=>oy,getImportMapDefaultMap:()=>nu,unregisterExtensionRendering:()=>o8,implementerToolsConfigStore:()=>e_,Type:()=>z,InPatientPictogram:()=>dw,cleanupObsoleteFeatureFlags:()=>oV,getAttachmentsUrl:()=>nK,showSnackbar:()=>dG,PatientBannerActionsMenu:()=>u2,PatientSearchPictogram:()=>dS,DocumentAttachmentIcon:()=>aE,Snackbar:()=>dB,CardiologyPictogram:()=>ds,ImageMedicalIcon:()=>aF,ActionableNotificationComponent:()=>ub,DiagnosisTags:()=>c4,openChildWorkspaceInWindow:()=>d9,iconIds:()=>at,PatientsPictogram:()=>dj,interpolateUrl:()=>tx,setupHistory:()=>tC,subscribeToastShown:()=>h,detachAll:()=>rj,convertToLocaleCalendar:()=>cg,DocumentIcon:()=>aC,configInternalStore:()=>Q,ActionMenuButton2:()=>mk,setupDynamicOfflineDataHandler:()=>mK,makeUrl:()=>tL,oneOf:()=>e3,selectPreferredName:()=>uV,MobileCheckIcon:()=>a1,createErrorHandler:()=>v,parseDate:()=>cr,getAttachmentByUuid:()=>nq,LeftNavMenu:()=>uo,getExtensionRegistration:()=>rv,dispatchToastShown:()=>p,ShoppingCartAddItemIcon:()=>lT,ReferralOrderIcon:()=>lo,ReportIcon:()=>li,getImportMapNextPageMap:()=>nd,registerExtension:()=>rb,setupOfflineSync:()=>mJ,DownloadIcon:()=>aP,useConnectivity:()=>m0,provide:()=>eT,ShoppingCartArrowDownIcon:()=>lm,featureFlagsStore:()=>oF,jsep:()=>oi.A,GeriatricsPictogram:()=>dg,SearchIcon:()=>ll,reportError:()=>y,slugify:()=>nb,isOmrsDateToday:()=>ct,getExtensionStore:()=>o4,BloodBankPictogram:()=>di,TriagePictogram:()=>dT,Workspace2:()=>mc,refetchCurrentUser:()=>tq,CheckmarkOutlineIcon:()=>a_,registerExtensionSlot:()=>rE,AllergiesIcon:()=>lI,ArrowDownIcon:()=>ar,useOpenmrsInfinite:()=>i9,getExtensionConfigFromExtensionSlotStore:()=>el,OpenmrsDatePicker:()=>c5,getExtensionConfigFromStore:()=>ea,getDynamicOfflineDataEntries:()=>mX,getLocaleDisplayName:()=>l0,messageOmrsServiceWorker:()=>mZ,navigate:()=>tj,launchWorkspace2:()=>d2,getGroupByWindowName:()=>rW,CustomOverflowMenuItem:()=>s7,isUrl:()=>e4,CaretDownIcon:()=>ad,ArrowLeftIcon:()=>ai,FacilityPictogram:()=>df,ViewOffIcon:()=>lC,updateInternalExtensionStore:()=>oQ,dispatchActionableNotificationShown:()=>d,resetRouteMapOverrides:()=>nH,formatDurationBetween:()=>cS,defaultVisitCustomRepresentation:()=>n7,getBreadcrumbsFor:()=>ts,useOpenmrsPagination:()=>i2,Pagination:()=>uD,CheckmarkFilledIcon:()=>aw,clearCurrentUser:()=>tJ,showModal:()=>uw,ChevronUpIcon:()=>aS,saveVisit:()=>on,useAttachments:()=>iW,Pictogram:()=>dD,useExtensionSlot:()=>ii,ChevronDownIcon:()=>av,OpenmrsDateRangePicker:()=>c6,deleteAttachmentPermanently:()=>nY,getVisitTypes:()=>n8,OverflowMenuHorizontalIcon:()=>a8,EventScheduleIcon:()=>aA,getSessionStore:()=>tz,ProcedureOrderIcon:()=>lt,preloadImport:()=>nS,registerWorkspaceWindows2:()=>rB,useOnVisible:()=>sp,setSessionLocation:()=>tZ,userHasAccess:()=>tK,ChartAverageIcon:()=>ag,getFeatureFlag:()=>oz,UserAvatarIcon:()=>lS,renderExtension:()=>rX,useFhirInfinite:()=>sr,toVisitTypeObject:()=>n5,useSession:()=>sx,EmergencyDepartmentPictogram:()=>dp,Notification:()=>uy,dispatchSnackbarShown:()=>m,formatDate:()=>cd,workspace2StoreActions:()=>mn,SwitcherIcon:()=>lu,esmStyleGuideSchema:()=>sY,getImportMapDisabledOverrides:()=>np,useAssignedExtensionIds:()=>iM,CaretRightIcon:()=>ap,evaluateAsType:()=>ov,PageHeader:()=>uL,TranslateIcon:()=>ly,setUserProperties:()=>t0,MovementIcon:()=>a6,renderInlineNotifications:()=>uE,subscribePrecacheStaticDependencies:()=>mQ,PaymentsDeskPictogram:()=>dk,usePrimaryIdentifierCode:()=>sy,useLayoutType:()=>ss,getCurrentUser:()=>tV,closeWorkspaceInWindow:()=>d7,XrayPictogram:()=>d$,CaretUpIcon:()=>af,renderActionableNotifications:()=>uI,OpenmrsAppContext:()=>iO,setupModals:()=>uh,getDefaultsFromConfigSchema:()=>function e(t){let n={};for(let o of Object.keys(t))if(mF(t[o])&&t[o].hasOwnProperty("_default"))n[o]=t[o]._default;else{if(o.startsWith("_"))continue;mF(t[o])?n[o]=e(t[o]):n[o]=t[o]}return n},subscribeTo:()=>L,recordConfigDerivationError:()=>eh,useAbortController:()=>iR,Extension:()=>r2,getFhirServerPaginationHandlers:()=>i4,useConnectedExtensions:()=>iV,registerApp:()=>sU,HospitalBedIcon:()=>aB,useExtensionInternalStore:()=>iY,configExtensionStore:()=>et,getSynchronizationItems:()=>mY,getExtensionSlotsConfigStore:()=>eo,registerExtensionRendering:()=>o6,RenderIfValueIsTruthy:()=>iA,registerFeatureFlag:()=>oH,useFhirFetchAll:()=>so,restBaseUrl:()=>tT,CalendarHeatMapIcon:()=>ac,isImportMapOverrideDisabled:()=>nf,resetConfigSystem:()=>e1,getExtensionInternalStore:()=>oY,registerGlobalStore:()=>$,evaluateAsBoolean:()=>oh,PatientBannerPatientInfo:()=>u0,addRouteMapOverride:()=>nB,getDefaultCalendar:()=>cl,SettingsIcon:()=>lc,DrugOrderIcon:()=>aI,ProgramsIcon:()=>ln,useAssignedExtensions:()=>ir,CloseFilledIcon:()=>ak,canAccessStorage:()=>mB,registerDefaultCalendar:()=>ca,TreeViewAltIcon:()=>lb,OverflowMenuVerticalIcon:()=>a4,clearConfigDerivationError:()=>ew,getConfigStore:()=>en,InformationSquareIcon:()=>az,EmptyCard:()=>ue,ChevronLeftIcon:()=>ab,RadiologyIcon:()=>lR,useCandidateExtensions:()=>iL,renderToasts:()=>dY,isDesktop:()=>sa,integrateBreakpoints:()=>sz,RegistrationPictogram:()=>dE,CardHeader:()=>sJ,getExtensionRegistrationFrom:()=>ry,InformationIcon:()=>aH,SystemAdministrationPictogram:()=>dA,TrashCanIcon:()=>lv,useShallowStableValue:()=>r5,PatientDocumentsPictogram:()=>dx,useOpenmrsSWR:()=>sf,Assessment1Pictogram:()=>dn,finishRegisteringAllApps:()=>sB,importDynamic:()=>nx,useFhirPagination:()=>i8,useVisitContextStore:()=>sI,ArrowUpIcon:()=>aa,matchTranslations:()=>t_,showActionableNotification:()=>uO,useForceUpdate:()=>i1,useVisit:()=>sO,PatientBannerPatientIdentifiers:()=>uX,TransferPictogram:()=>dR,usePagination:()=>sg,Breakpoint:()=>sF,PatientBannerToggleContactDetailsButton:()=>mN,CloseOutlineIcon:()=>aN,ObstetricsPictogram:()=>db,parseDateInput:()=>cw,ReportsPictogram:()=>dP,getConfig:()=>eM,attach:()=>rx,getLocale:()=>l1,isUrlWithTemplateParameters:()=>e8,useEmrConfiguration:()=>iK,useLeftNav:()=>sl,ToolsIcon:()=>l_,ErrorState:()=>ut,detach:()=>rS,setCurrentVisit:()=>ot,ConditionsIcon:()=>lA,SaveIcon:()=>la,useConfig:()=>iH,validator:()=>G,CalendarIcon:()=>au,getHistory:()=>tE,StickyNoteAddIcon:()=>lp,useWorkspace2Store:()=>mo,getPatientName:()=>uU,getVisitStore:()=>oe,getCoreTranslation:()=>tb,registerModuleWithConfigSystem:()=>eI,updateOpenedWorkspaceInWindow:()=>me,registerModuleLoad:()=>eO,getBreadcrumbs:()=>to,extractVariableNames:()=>oD,translateFrom:()=>tv,useStoreWithActions:()=>r3,EditIcon:()=>aO,getCandidateExtensions:()=>rC,shallowEqual:()=>x,subscribeNotificationShown:()=>f,MaximizeIcon:()=>aY,promptForClosingWorkspaces:()=>d4,WarningIcon:()=>lP,fhirBaseUrl:()=>t$,matchLocale:()=>mU,usePatientPhoto:()=>u8,registerBreadcrumb:()=>tt,EventsIcon:()=>aR,createGlobalStore:()=>R,subscribeToFeatureFlag:()=>oG,useExtensionStore:()=>iQ,createAttachment:()=>nX,useLeftNavStore:()=>sc,TableIcon:()=>lh,Icon:()=>lM,InformationFilledIcon:()=>aV,getCurrentPageMap:()=>nc,LaboratoryPictogram:()=>d_,temporaryConfigStore:()=>ee,toDateObjectStrict:()=>cn,defineConfigSchema:()=>eP,filterBreadcrumbs:()=>ti,invalidateImplementerToolsConfig:()=>ef,PatientBannerContactDetails:()=>mA,getAssignedExtensions:()=>rN,promptForClosingWorkspacesInWindow:()=>d3,PatientPhoto:()=>u7,MaterialOrderIcon:()=>aX,MicroscopeIcon:()=>a0,visitTypesUrl:()=>n6,getOpenedWindowWidth:()=>ms,scheduleRecomputation:()=>rt,PharmacyPictogram:()=>dN,AttachmentIcon:()=>lO,MoneyIcon:()=>a2,getAttachments:()=>nJ,PageHeaderContent:()=>uW,MedicationIcon:()=>aZ,PrinterIcon:()=>le,PatientListsPictogram:()=>dL,useAppContext:()=>iT,isOpenmrsRoutes:()=>nC,AppointmentsAltPictogram:()=>dt,GenericOrderTypeIcon:()=>aW,batchExtensionUpdates:()=>o9,useExtensionSlotStore:()=>it,ViewIcon:()=>lE,formattedName:()=>uH,sessionEndpoint:()=>tM,duration:()=>cb,resetImportMapOverrides:()=>nw,TableOfContentsIcon:()=>lg,CaretLeftIcon:()=>am,getTranslationOverrides:()=>eL,isVersionSatisfied:()=>mz,EmptyCardIllustration:()=>c9,PenIcon:()=>a9,recordTranslationSighting:()=>tw,validators:()=>e7,setupImportMapOverrides:()=>nv,showToast:()=>dZ,useDefineAppContext:()=>iI,verifyTotpCode:()=>t1,getGlobalStore:()=>M,useOnClickOutside:()=>sm,getWindowByWorkspaceName:()=>rL,ArrowRightIcon:()=>as,disableTranslationInspector:()=>tg,loadLifeCycles:()=>s$,registerBreadcrumbs:()=>tn,MotherIcon:()=>a5,extensionNamespaceSeparator:()=>td,fetchCurrentPatient:()=>nZ,Toast:()=>dq,MessageQueueIcon:()=>aQ,TwoFactorAuthenticationIcon:()=>lx,Pharmacy2Pictogram:()=>dC,goBackInHistory:()=>tP,GroupAccessIcon:()=>aU,getExtensionRenderingsStore:()=>oZ,setImplementerToolsConfigRecomputer:()=>ep,getAsyncExtensionLifecycle:()=>iS,setupApiModule:()=>t7,renderLoadingSpinner:()=>mR,showNotification:()=>uP,getModalRegistration:()=>r$,ListCheckedIcon:()=>aJ,ResponsiveWrapper:()=>dU,GynaecologyPictogram:()=>dh,ShoppingCartIcon:()=>ld,getRouteMapNextPageMap:()=>nD,MetadataExportPictogram:()=>dv,updateVisit:()=>oo,backendDependencies:()=>t3,MaybePictogram:()=>dW,createParcelMounter:()=>rJ,openmrsFetch:()=>tW,useStore:()=>r4,isOpenmrsAppRoutes:()=>nN,ExportedWorkspace:()=>my,DentistryPictogram:()=>dd,HomePictogram:()=>dM,ServiceQueuesPictogram:()=>dI,createExportedWorkspaceWindow:()=>ml,setFeatureFlag:()=>oq,toLanguageTag:()=>lQ,DigitalTrustPictogram:()=>dm,NumericObservation:()=>u$,attachmentUrl:()=>nG,interpolateString:()=>tS,inRange:()=>e6,useExtensionSlotMeta:()=>iZ,AppointmentsPictogram:()=>de,renderSnackbars:()=>dz,getRegisteredWorkspace2Names:()=>mi,logout:()=>t2,toLocationObject:()=>n1,ChartLineIcon:()=>ah,UserHasAccess:()=>sS,evaluateAsBooleanAsync:()=>ow,createDashboard:()=>lW,getLocations:()=>n2,useExtensionContext:()=>iX,getExtensionsConfigStore:()=>es,getRouteMapDefaultMap:()=>nW,age:()=>uG,isOmrsDateStrict:()=>ce,registerWorkspaceGroups2:()=>rU,usePaginationInfo:()=>sh,evaluateAsync:()=>og,useOpenmrsFetchAll:()=>st,removeImportMapOverride:()=>nh,useVisitTypes:()=>sR,ageAsDuration:()=>uz,getExtensionNameFromId:()=>r_,DataEntryPictogram:()=>du,renderParcel:()=>rq,ResetIcon:()=>ls,RenewIcon:()=>lr,useWorkspace2Context:()=>mr,subscribeActionableNotificationShown:()=>g,ErrorCard:()=>un,GenderFemaleIcon:()=>aT,enableImportMapOverride:()=>n_,enableTranslationInspector:()=>tf,retry:()=>mG,ComponentContext:()=>rQ,ExtensionSlot:()=>ia,unsetLeftNav:()=>rA,addImportMapOverride:()=>ng,MaybeIcon:()=>l$,useCustomOverflowMenu:()=>s4,PedestrianFamilyIcon:()=>a7,CtScanPictogram:()=>dc,dispatchNotificationShown:()=>u,leftNavStore:()=>rI,OpenmrsFetchError:()=>tD,UserFollowIcon:()=>lj,launchWorkspaceGroup2:()=>d0,ChevronRightIcon:()=>ax,UserXrayIcon:()=>lk,GenderOtherIcon:()=>aM,formatDuration:()=>ch,toOmrsIsoString:()=>co,Labs2Pictogram:()=>dy,workspace2Store:()=>rM,setUserLanguage:()=>tG,useBodyScrollLock:()=>iD,SyringeIcon:()=>lf,LocationPicker:()=>ur,useDebounce:()=>iz,TimeIcon:()=>lw,getExtensionSlotConfig:()=>er,AddIcon:()=>ao,getRouteMapOverrideMap:()=>nU,processConfig:()=>eW,InventoryManagementIcon:()=>aG,registerWorkspaces2:()=>rF,UserIcon:()=>lN,formatPatientName:()=>uF,fireOpenmrsEvent:()=>nQ,registerModal:()=>rT,registerTranslationNamespace:()=>eA,displayName:()=>uB,createLocalStore:()=>T,evaluate:()=>of,defineExtensionConfigSchema:()=>eR,getSyncLifecycle:()=>ix,renderWorkspaceWindowsAndMenu:()=>mL,evaluateAsTypeAsync:()=>ob});let s="openmrs:notification-shown",a="openmrs:actionable-notification-shown",l="openmrs:toast-shown",c="openmrs:snack-bar-shown";function u(e){window.dispatchEvent(new CustomEvent(s,{detail:e}))}function d(e){window.dispatchEvent(new CustomEvent(a,{detail:e}))}function m(e){window.dispatchEvent(new CustomEvent(c,{detail:e}))}function p(e){window.dispatchEvent(new CustomEvent(l,{detail:e}))}function f(e){let t=t=>e(t.detail);return window.addEventListener(s,t),()=>window.removeEventListener(s,t)}function g(e){let t=t=>e(t.detail);return window.addEventListener(a,t),()=>window.removeEventListener(a,t)}function h(e){let t=t=>e(t.detail);return window.addEventListener(l,t),()=>window.removeEventListener(l,t)}function w(e){let t=t=>e(t.detail);return window.addEventListener(c,t),()=>window.removeEventListener(c,t)}function _(e,t){let{message:n}=b(e);return"string"==typeof n&&n?n:t}function y(e){let t=b(e);setTimeout(()=>{throw t})}function v(){let e=Error();return t=>{let n=b(t);n.stack+=`
|
|
2
|
+
Async stacktrace:
|
|
3
|
+
${e.stack}`,y(t)}}function b(e){let t;if(e instanceof Error)return e;if(null===e)return Error("'null' was thrown as an error");if("object"==typeof e){try{t=`Object thrown as error: ${JSON.stringify(e)}`}catch(n){t=`Object thrown as error with the following properties: ${Object.keys(e)}`}return Error(t)}if(void 0===e)return Error("'undefined' was thrown as an error");return Error(e.toString())}function x(e,t){if(e===t||Object.is(e,t))return!0;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}if(Array.isArray(t)||"object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;let n=Object.getOwnPropertyNames(e),o=Object.getOwnPropertyNames(t);return n.length===o.length&&n.every(n=>e[n]===t[n])}window.onerror=function(e,t,n,o,r){return console.error("Unexpected error: ",r??e),p({description:_(r,"Oops! An unexpected error occurred."),kind:"error",title:"Error"}),!1},window.onunhandledrejection=function(e){console.error("Unhandled rejection: ",e.reason),p({description:_(e.reason,"Oops! An unhandled promise rejection occurred."),kind:"error",title:"Error"})};var S,j,k,N=n(1978),C=n(9167);function E(){try{return"u">typeof process&&("true"===process.env.VITEST||void 0!==process.env.JEST_WORKER_ID)||"u">typeof globalThis&&("__vitest_worker__"in globalThis||"__jest__"in globalThis)}catch{return!1}}let P={},I=Symbol.for("openmrs.esm-state.instanceCount"),O=globalThis,A=(O[I]??0)+1;function R(e,t,n="none"){let o=P[e];if(o)return o.active?E()||console.error(`Attempted to override the existing store ${e}. Make sure that stores are only created once.`):o.value.setState(t,!0),o.active=!0,o.value;{let o=W(e,t,n);return P[e]={value:o,active:!0},o}}function T(e){return(0,C.y)()(()=>e)}function $(e,t){let n=P[e];return n?(n.active?E()||console.error(`Attempted to override the existing store ${e}. Make sure that stores are only created once.`):n.value=t,n.active=!0,n.value):(P[e]={value:t,active:!0},t)}function M(e,t,n="none"){let o=P[e];if(!o){let o=W(e,t??{},n);return P[e]={value:o,active:!1},o}return o.value}function L(...e){let[t,n,o]=e,r=void 0===o?n:o,i=void 0===o?e=>e:n,s=i(t.getState());return r(s),t.subscribe(e=>{let t=i(e);x(s,t)||(s=t,r(t))})}function W(e,t,n){return"sessionStorage"===n?(0,C.y)()((0,N.Zr)(()=>t,{name:e,storage:(0,N.KU)(()=>sessionStorage)})):(0,C.y)()(()=>t)}O[I]=A,A>1&&!E()&&console.error(`Detected ${A} copies of @openmrs/esm-framework running on this page. Each copy keeps its own store registry, so stores, configuration and extension state are not shared between them. This usually means a frontend module loaded its own bundled framework instead of the one the app shell provides.`),globalThis.setTimeout?.(()=>{"u">typeof window&&"development"===window.spaEnv&&(window.stores=P)},1e3);var D=n(1156),U=n(3591),B=n(4888),F=n(1400),H=n(7014),V=n(8395),z=((S={}).Array="Array",S.Boolean="Boolean",S.ConceptUuid="ConceptUuid",S.Number="Number",S.Object="Object",S.String="String",S.UUID="UUID",S.PersonAttributeTypeUuid="PersonAttributeTypeUuid",S.PatientIdentifierTypeUuid="PatientIdentifierTypeUuid",S);function G(e,t){return n=>{if(!e(n))if("function"==typeof t)return t(n);else return t}}let q=G(e=>Array.isArray(e),"must be an array"),J=G(e=>"boolean"==typeof e,"must be a boolean"),K=G(e=>"number"==typeof e,"must be a number"),X=G(e=>"string"==typeof e,"must be a string"),Y=G(e=>"object"==typeof e&&!Array.isArray(e)&&null!==e,"must be an object (not an array or null)"),Z=G(e=>/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)||/^[0-9a-f]{36}$/i.test(e),"must be a valid UUID or a 36-character hexadecimal string"),Q=R("config-internal",{providedConfigs:[],schemas:{},moduleLoaded:{},moduleStarted:{}}),ee=R("temporary-config",{config:function(){try{return JSON.parse(localStorage.getItem("openmrs:temporaryConfig")||"{}")}catch(e){return{}}}()});ee.subscribe(e=>{var t=e.config;try{localStorage.setItem("openmrs:temporaryConfig",JSON.stringify(t))}catch(e){}});let et=R("config-store-of-extension-state",{mountedExtensions:[]});function en(e){return M(`config-module-${e}`,{config:null,loaded:!1,translationOverridesLoaded:!1})}function eo(){return M("config-extension-slots",{slots:{}})}function er(e){return ei(eo().getState(),e)}function ei(e,t){return e.slots[t]??{loaded:!1,config:{}}}function es(){return M("config-extensions",{configs:{}})}function ea(e,t,n){return e.configs[t]?.[n]??{loaded:!1,config:null}}function el(e,t,n){return e.configure?.[n]??null}let ec=(0,C.y)()(()=>({config:{}})),eu=0,ed=!0,em=!1;function ep(e){o=e}function ef(){ed=!0,eu>0&&eg()}function eg(){if(ed&&o&&!em){em=!0,ed=!1;try{o()}catch(e){ed=!0,eh(e),console.error("Failed to derive the implementer tools config",e)}finally{em=!1}}}function eh(e){ec.setState({derivationError:e instanceof Error?e.message:String(e)})}function ew(){ec.getState().derivationError&&ec.setState({derivationError:void 0})}let e_=$("config-implementer-tools",{...ec,getState:()=>(0===eu&&eg(),ec.getState()),setState:(...e)=>(ed=!1,ec.setState(...e)),subscribe(e){eu++,eg();let t=ec.subscribe(e),n=!1;return()=>{!n&&(n=!0,eu--),t()}}});function ey(e,t){if(Array.isArray(t))return t}function ev(e,t){return(0,B.A)({},e,t,ey)}let eb=[],ex=new Set,eS=null,ej=new WeakMap;function ek(){o=()=>{var e,t;let n,o;return e=Q.getState(),t=ee.getState(),n=e_.getState(),o={config:function(e,t){let n=function(e){let t={};for(let[n,o]of Object.entries(e)){let e=eB.get(n);if(e&&e.schema===o)t[n]=e.annotated;else{let e=function e(t){return t.hasOwnProperty("_default")?{...t,_value:t._default,_source:"default"}:eZ(t)?Object.keys(t).reduce((n,o)=>(n[o]=e(t[o]),n),{}):{}}((0,V.A)(o));eB.set(n,{schema:o,annotated:e}),t[n]=e}}return t}(e.schemas),o=[...e.providedConfigs.map(e=>[e.config,e.source]),[t.config,"temporary config"]],r=new Set(Object.keys(n));for(let[e]of o)for(let t of Object.keys(e))r.add(t);let i={};for(let e of r){let t=n[e],r=o.map(([t])=>t[e]),s=o.map(([,e])=>e),a=eU.get(e);if(a&&a.annotatedSchema===t&&a.configSlices.length===r.length&&a.configSlices.every((e,t)=>e===r[t])&&a.sources.every((e,t)=>e===s[t])){i[e]=a.result;continue}let l=t??{};o.forEach(([,e],t)=>{let n=r[t];void 0!==n&&(l=ev(l,function e(t,n){return eZ(t)?Object.keys(t).reduce((o,r)=>(o[r]=e(t[r],n),o),{}):{_value:t,_source:n}}(n,e)))}),eU.set(e,{annotatedSchema:t,configSlices:r,sources:s,result:l}),i[e]=l}return i}(e,t)},void((0,F.A)(n.config,o.config)||e_.setState(o))},eN(),eb.push(Q.subscribe(eN),ee.subscribe(eN),et.subscribe(eN))}function eN(){ew();try{!function(){let e=Q.getState(),t=ee.getState(),n=et.getState();if(eS?.configState===e&&eS.tempConfigState===t)return eE(e,n,t,eS.slotConfigs,!0);!function(e,t){for(let n of Object.keys(e.schemas)){let o,r=en(n),i=e.schemas[n],s=!!e.moduleLoaded[n],a=eC.get(n);if(a&&a.schema===i&&a.moduleLoaded===s&&a.providedConfigs===e.providedConfigs&&a.temporaryConfig===t.config)o=a.state;else{let r=s?function(e,t,n){let o=t.schemas[e],r=eV(e,eF(t,n));eG(o,r,e);let i=eX(o,r);return eq(o,i,e),delete i.extensionSlots,i}(n,e,t):function(e,t,n){let o=eX(e5,eV(e,eF(t,n)));return eq(e5,o,e),delete o.extensionSlots,o}(n,e,t);o={translationOverridesLoaded:!0,loaded:s,config:r},eC.set(n,{schema:i,moduleLoaded:s,providedConfigs:e.providedConfigs,temporaryConfig:t.config,state:o})}let l=r.getState();l.loaded===o.loaded&&l.translationOverridesLoaded===o.translationOverridesLoaded&&(0,F.A)(l.config,o.config)||r.setState(o)}}(e,t);let o=function(e,t){let n=ez(eF(e,t)),o=Object.keys(n).reduce((e,t)=>(n[t]?.extensionSlots&&(e[t]=n[t]?.extensionSlots),e),{});var r=o;for(let[e,t]of Object.entries(r))for(let[n,o]of Object.entries(t))!function(e,t,n){let o=`${t}.extensionSlots.${n}`,r=`Extension slot config '${o}'`,i=Object.keys(e).filter(e=>!["add","remove","order","configure"].includes(e));i.length&&eQ(o,r+`' contains invalid keys '${i.join("', '")}'`),!e.add||Array.isArray(e.add)&&e.add.every(e=>"string"==typeof e)||eQ(o,r+".add' is invalid. Must be an array of strings (extension IDs)"),!e.remove||Array.isArray(e.remove)&&e.remove.every(e=>"string"==typeof e)||eQ(o,r+".remove' is invalid. Must be an array of strings (extension IDs)"),!e.order||Array.isArray(e.order)&&e.order.every(e=>"string"==typeof e)||eQ(o,r+".order' is invalid. Must be an array of strings (extension IDs)"),e.configure&&!eZ(e.configure)&&eQ(o,r+".configure' is invalid. Must be an object with extension IDs for keys")}(o,e,n);let i={},s={};for(let e of Object.values(o))for(let[t,n]of Object.entries(e))i[t]=n,n.configure&&(s[t]??(s[t]=[])).push(n.configure);for(let[e,t]of Object.entries(s)){let n=1===t.length?t[0]:ez(t);i[e].configure!==n&&(i[e]={...i[e],configure:n})}return i}(e,t);(function(e){let t=eo(),n=t.getState().slots,o={},r=!1;for(let[t,i]of Object.entries(e)){let e=n[t];e?.loaded&&(0,F.A)(e.config,i)?o[t]=e:(o[t]={loaded:!0,config:i},r=!0)}(r||Object.keys(n).length!==Object.keys(o).length)&&t.setState({slots:o})})(o),eE(e,n,t,o,!1),eS={configState:e,tempConfigState:t,slotConfigs:o},ef()}()}catch(e){eh(e),console.error("Failed to recompute the configuration",e)}}ek();let eC=new Map;function eE(e,t,n,o,r){let i=es(),s=i.getState().configs,a={},l=!1,c=0;for(let i of t.mountedExtensions){let t,u=s[i.slotName]?.[i.extensionId],d=u&&ej.get(u);if(r&&u?.loaded&&d?.slotModuleName===i.slotModuleName&&d.extensionModuleName===i.extensionModuleName)t=u;else{let r=function(e,t,n,o,r,i,s){let a=function(e){let[t]=e.split("#");return t}(o),l=r.schemas[a],c=!!r.moduleStarted[t],u=JSON.stringify([n,o,e,t]),d=eD.get(u);if(d&&d.extensionSchema===l&&d.extensionModuleSchema===r.schemas[t]&&d.extensionModuleStarted===c&&d.providedConfigs===r.providedConfigs&&d.temporaryConfig===i.config)return d.config;let m=l?a:t,p=eF(r,i),f=s?.configure?.[o]??{},g=eV(e,p),h=g?.extensionSlots?.[n]?.configure?.[o]??{},w=ez([eV(m,p),f,h]),_=l??r.schemas[t];(l||c)&&eG(_,w,m);let y=eX(_,w);return eq(_,y,m),delete y.extensionSlots,eD.set(u,{extensionSchema:l,extensionModuleSchema:r.schemas[t],extensionModuleStarted:c,providedConfigs:r.providedConfigs,temporaryConfig:i.config,config:y}),y}(i.slotModuleName,i.extensionModuleName,i.slotName,i.extensionId,e,n,o[i.slotName]);t=u?.loaded&&(0,F.A)(u.config,r)?u:{config:r,loaded:!0}}ej.set(t,i),t!==u&&(l=!0),a[i.slotName]||(a[i.slotName]={}),a[i.slotName][i.extensionId]=t,c++}for(let[e,t]of Object.entries(a)){let n=s[e];n&&Object.keys(n).length===Object.keys(t).length&&Object.entries(t).every(([e,t])=>n[e]===t)&&(a[e]=n)}l||(l=Object.keys(s).length!==Object.keys(a).length||Object.values(s).reduce((e,t)=>e+Object.keys(t).length,0)!==c),l&&i.setState({configs:a})}function eP(e,t){eH(e,t);let n=ev(t,e5);Q.setState(t=>({...t,schemas:{...t.schemas,[e]:n},moduleLoaded:{...t.moduleLoaded,[e]:!0}}))}function eI(e){Q.setState(t=>({...t,schemas:{...t.schemas,[e]:e5}}))}function eO(e){Q.setState(t=>({...t,moduleLoaded:{...t.moduleLoaded,[e]:!0},moduleStarted:{...t.moduleStarted,[e]:!0}}))}function eA(e){Q.setState(t=>({...t,schemas:{...t.schemas,[e]:e2}}))}function eR(e,t){eH(e,t);let n=ev(t,e5);Q.getState().schemas[e]&&console.error(`Config schema for extension ${e} already exists. If there are multiple extensions with this same name, one will probably crash.`),Q.setState(t=>({...t,schemas:{...t.schemas,[e]:n}}))}function eT(e,t="provided"){Q.setState(n=>({...n,providedConfigs:[...n.providedConfigs,{source:t,config:e}]}))}function e$(e,t,n){return new Promise(o=>{let r,i=!1;function s(e){!i&&t(e)&&(i=!0,o(n(e)),r?.())}s(e.getState()),i||(r=e.subscribe(s))})}function eM(e){return e$(en(e),e=>!!(e.loaded&&e.config),e=>(0,H.A)(e.config,["Display conditions","Translation overrides"]))}function eL(e,t,n){let o=[e in Q.getState().schemas?e$(en(e),e=>!!(e.translationOverridesLoaded&&e.config),e=>e.config["Translation overrides"]??{}):Promise.resolve({})];if(t&&n){let e=ea(es().getState(),t,n),r=e.loaded&&e.config?e.config["Translation overrides"]??{}:{};o.push(Promise.resolve(r))}return Promise.all(o)}function eW(e,t,n){eG(e,t,n);let o=eX(e,t);return eq(e,o,n),o}let eD=new Map,eU=new Map,eB=new Map;function eF(e,t){return[...e.providedConfigs.map(e=>e.config),t.config]}function eH(e,t,n=""){let o="Please verify that you are running the latest version and, if so, alert the maintainer.";for(let r of Object.keys(t).filter(e=>!e.startsWith("_"))){let i=n+(n&&".")+r,s=t[r];if("Display conditions"===i&&console.error(`${e} declares a configuration option called "Display conditions"; the "Display conditions" option is a reserved name. ${o}`),"Translation overrides"===i&&console.error(`${e} declares a configuration option called "Translation overrides"; the "Translation overrides" option is a reserved name. ${o}`),!eZ(s)){console.error(`${e} has bad config schema definition for key '${i}'. ${o}`);continue}s.hasOwnProperty("_default")||eH(e,s,i);let a=s._elements;if(eY(a)&&eH(e,a,i+"._elements"),s._validators)for(let t of s._validators)"function"!=typeof t&&console.error(`${e} has invalid validator for key '${i}' ${o}.
|
|
4
|
+
|
|
5
|
+
If you're the maintainer: validators must be functions that return either undefined or an error string. Received ${t}.`);let l=s._type;l&&!Object.values(z).includes(l)&&console.error(`${e} has invalid type for key '${i}' ${o}.
|
|
6
|
+
|
|
7
|
+
If you're the maintainer: the allowed types are ${Object.values(z).join(", ")}. Received '${l}'`),Object.keys(s).every(e=>["_description","_validators","_elements","_type"].includes(e))&&!n.includes("._elements")&&console.error(`${e} has bad config schema definition for key '${i}'. ${o}.
|
|
8
|
+
|
|
9
|
+
If you're the maintainer: all config elements must have a default. Received ${JSON.stringify(s)}`),a&&l&&![z.Array,z.Object].includes(l)&&console.error(`${e} has bad config schema definition for key '${i}'. ${o}.
|
|
10
|
+
|
|
11
|
+
If you're the maintainer: the 'elements' key only works with '_type' equal to 'Array' or 'Object'. Received ${JSON.stringify(l)}`)}}function eV(e,t){return ez(t.map(({[e]:t})=>t).filter(e=>!!e))}function ez(e){return e.reduce((e,t)=>(0,B.A)(e,t,ey),{})}function eG(e,t,n=""){for(let o of Object.keys(t)){let r=t[o],i=n+"."+o,s=e[o];if(!e.hasOwnProperty(o)){("extensionSlots"!==o||""===n)&&eQ(i,`Unknown config key '${i}' provided. Ignoring.`);continue}(function e(t,n,o){eJ(o,t._type,n),eZ(n)?t._type===z.Object?function(t,n,o){if(t._elements)for(let r of Object.keys(n)){let i=n[r];e(t._elements,i,`${o}.${r}`)}}(t,n,o):t.hasOwnProperty("_default")||t.hasOwnProperty("_type")||eG(t,n,o):t._type===z.Array&&function(t,n,o){if(eJ(o,z.Array,n)){if(eY(t._elements))for(let r=0;r<n.length;r++)e(t._elements,n[r],`${o}[${r}]`);for(let e=0;e<n.length;e++)eJ(`${o}[${e}]`,t._elements?._type,n[e])}}(t,n,o)})(s,r,i)}}function eq(e,t,n=""){if(e){if(t!==e._default&&eK(n,e._validators,t),eZ(t))for(let o of Object.keys(t)){let r=t[o],i=n+"."+o,s=e[o];e._type===z.Object&&e._elements?eq(e._elements,r,i):eq(s,r,i)}else if(Array.isArray(t)&&e._elements)for(let o=0;o<t.length;o++)eq(e._elements,t[o],`${n}[${o}]`)}}function eJ(e,t,n){return!t||eK(e,[{Array:q,Boolean:J,ConceptUuid:Z,Number:K,Object:Y,String:X,UUID:Z,PersonAttributeTypeUuid:Z,PatientIdentifierTypeUuid:Z}[t]],n)}function eK(e,t,n){let o=!0;if(t)try{for(let r of t){let t=r(n);if("string"==typeof t){let r="object"==typeof n?`Invalid configuration for ${e}: ${t}`:`Invalid configuration value ${n} for ${e}: ${t}`;eQ(e,r),o=!1}}}catch(t){console.error(`Skipping invalid validator at "${e}". Encountered error
|
|
12
|
+
${t}`)}return o}let eX=(e,t)=>{let n=structuredClone(t);if(!e)return n;for(let t of Object.keys(e)){let o=n[t],r=e[t];if(r&&(r.hasOwnProperty("_type")||r.hasOwnProperty("_default"))){n.hasOwnProperty(t)||(n[t]=r._default);let e=r._elements;if(o&&eY(e)){if(r._type===z.Array&&Array.isArray(o)){let r=o.map(t=>eX(e,t));n[t]=r}else if(r._type===z.Object)for(let t of Object.keys(o))o[t]=eX(e,o[t])}}else if(eZ(r)){let e=o??{};eZ(e)&&(n[t]=eX(r,e))}}return n};function eY(e){return!!e&&Object.keys(e).filter(e=>!["_default","_validators"].includes(e)).length>0}function eZ(e){return"object"==typeof e&&!Array.isArray(e)&&null!==e}function eQ(e,t){let n=`${e}:::${t}`;ex.has(n)||(console.error(t),ex.add(n))}function e0(e){e?ex.forEach(t=>{t.startsWith(e)&&ex.delete(t)}):ex.clear()}function e1(){eb.forEach(e=>e()),eb.length=0,eC.clear(),eD.clear(),eB.clear(),eU.clear(),eS=null,ej=new WeakMap,ek()}let e2={"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:z.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(", ")}.`})]}},e5={"Display conditions":{privileges:{_description:"The privilege(s) the user must have to use this extension",_type:z.Array,_default:[]},expression:{_description:"The expression that determines whether the extension is displayed",_type:z.String,_default:void 0}},...e2},e6=(e,t)=>G(n=>e<=n&&n<=t,`must be between ${e} and ${t}`),e8=e=>{let t=e.concat(["openmrsBase","openmrsSpaBase"]);return G(e=>{if(!e||"string"!=typeof e)return!1;let n=/\${(.*?)}/g,o=n.exec(e);for(;o;){if(!t.includes(o[1]))return!1;o=n.exec(e)}return!0},"Should be a URL or path. The allowed template parameters are "+t.map(e=>"${"+e+"}").join(", "))},e4=e8([]),e3=e=>G(t=>e.includes(t),`Must be one of the following: '${e.join("', '")}'.`),e7={inRange:e6,isUrl:e4,isUrlWithTemplateParameters:e8,oneOf:e3};var e9=n(4913);let te=R("breadcrumbs",[]);function tt(e){return tn([e])}function tn(e){let t=[...to(),...e.map(e=>({matcher:e.matcher instanceof RegExp?e.matcher:"string"==typeof e.matcher?(0,e9.pathToRegexp)(e.matcher).regexp:(0,e9.pathToRegexp)(e.path).regexp,settings:e}))];te.setState(t,!0)}function to(){return te.getState()}function tr(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=tr(e,n.join("/"));if(t)return t}}(e,t)}function ti(e,t){if(e.length>0){let n=tr(e,t);if(n){let t=[n],o=tr(e,n.settings.parent);for(;void 0!==o;)t.push(o),o=tr(e,o.settings.parent);return t.reverse()}}return[]}function ts(e){return ti(to(),e)}var ta=n(2267),tl=n(2279);let tc={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",applicationError:"Application Error",batchActionItemSelected:"{{totalSelected}} item selected",batchActionsItemsSelected:"{{totalSelected}} items selected",cancel:"Cancel",change:"Change",Clinic:"Clinic",clearDevOverrides:"Clear dev overrides",close:"Close",closesActionableNotification:"Close actionable notification",closeSnackbar:"Close snackbar",confirm:"Confirm",contactAdministratorIfIssuePersists:"Contact your system administrator if the problem persists.",contactDetails:"Contact details",copied:"Copied!",copyToClipboard:"Copy to clipboard",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",provisional:"Provisional",recordNewEntry:"Record {{displayText}}",relationships:"Relationships",reload:"Reload",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",serverStartingUp:"The server is starting",serverStartingUpExplainer:"This can take a few minutes. OpenMRS will open automatically when the server is ready.",serverStartingUpSlowExplainer:"This is taking longer than usual. First startup after an upgrade can take 10 minutes or more. You can leave this page open.",sex:"Sex",showLess:"Show less",showMore:"Show more",snackbarNotification:"Snackbar notification",somethingWentWrongTryReloading:"Something went wrong. Please try reloading.",toggleDevTools:"Toggle dev tools",unknown:"Unknown",viewSetupProgress:"View setup progress",waitingForServer:"Waiting for the server",yearAbbreviation:"yr",yearsAbbreviation:"yrs"},tu=tl.Ay.default||tl.Ay,td="___",tm=new Map,tp=!1;function tf(){tp=!0,tu.emit("languageChanged",tu.language)}function tg(){tp=!1,tm.clear()}function th(){return tp}function tw(e){if(!tp)return;let t=tm.get(e.value);if(!t){tm.size>=2e4&&tm.delete(tm.keys().next().value),tm.set(e.value,[{...e}]);return}let n=t.find(t=>t.key===e.key&&t.namespace===e.namespace&&t.extensionNamespace===e.extensionNamespace);n?n.hasCount||(n.hasCount=e.hasCount):t.push({...e}),tm.delete(e.value),tm.set(e.value,t)}function t_(e){return e&&tp?(tm.get(e)??tm.get(e.trim())??[]).map(e=>({...e})):[]}let ty=tl.Ay.default||tl.Ay;function tv(e,t,n,o){return ty.t(t,{ns:e,defaultValue:n,...o})}function tb(e,t,n){return tc[e]?tv("core",e,t??tc[e],n):(console.error(`O3 Core Translations does not provide key '${e}'. The key itself is being rendered as text.`),e)}function tx(e,t){let n=window.getOpenmrsSpaBase().replace(/\/$/,""),o=tS(e,{openmrsBase:window.openmrsBase,openmrsSpaBase:n,...t});return e.startsWith("//")?o:o.replace(/^\/\//,"/")}function tS(e,t){return Object.keys(t).reduce((e,n)=>e.split("${"+n+"}").join(t[n]),e)}function tj({to:e,templateParams:t}){let n=window.getOpenmrsSpaBase().replace(/\/$/,""),o=tx(e,t).replace(window.location.origin,""),r=new URL(o,window.location.origin);if("http:"!=r.protocol&&"https:"!=r.protocol)throw console.error(`Received request to navigate to non-http URL: ${r.toString()}`),Error(tb("navigateNonHttp"));o.startsWith(n)?(0,ta.EH)(o):window.location.assign(o)}ty.on("initialized",function(){window.i18next.loadNamespaces(["core"])});let tk="openmrs:history";function tN(e){let t=JSON.parse(sessionStorage.getItem(tk)??"[]")||[];t.push(e),t.length>50&&(t=t.slice(-50)),sessionStorage.setItem(tk,JSON.stringify(t))}function tC(){0===JSON.parse(sessionStorage.getItem(tk)??"[]").length&&document.referrer&&tN(document.referrer),window.addEventListener("single-spa:routing-event",e=>{let t=tE();e.detail.originalEvent?.singleSpaTrigger=="replaceState"?(t[t.length-1]=window.location.href,sessionStorage.setItem(tk,JSON.stringify(t))):!e.detail.originalEvent?.singleSpa&&t.includes(window.location.href)?tP({toUrl:window.location.href}):t[t.length-1]!==window.location.href&&tN(window.location.href)})}function tE(){return JSON.parse(sessionStorage.getItem(tk)??"[]")}function tP({toUrl:e}){let t=tE(),n=t.lastIndexOf(e);if(-1!=n){let e=t.slice(0,n+1);tj({to:t[n]}),sessionStorage.setItem(tk,JSON.stringify(e))}else throw Error(`URL ${e} not found in history; cannot go back to it.`)}function tI(){sessionStorage.removeItem(tk)}let tO="${openmrsSpaBase}/login",tA={redirectAuthFailure:{enabled:{_type:z.Boolean,_default:!0,_description:"Whether to redirect logged-out users to `redirectAuthFailure.url`"},url:{_type:z.String,_default:tO,_validators:[e7.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:z.Array,_default:[401],_elements:{_type:z.Number,_validators:[e7.inRange(100,600)]},_description:"The HTTP error codes for which users will be redirected"},resolvePromise:{_type:z.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:z.Boolean,_default:!0,_description:"Whether openmrsFetch should support redirects returned from the backend"}};function tR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let tT="/ws/rest/v1",t$="/ws/fhir2/R4",tM=`${tT}/session`;function tL(e){return e&&e.startsWith("http")?e:("/"!==e[0]&&(e="/"+e),window.openmrsBase+e)}function tW(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=tL(e);t.headers||(t.headers={}),(0,U.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 o=!1;try{let e=new URL(n,window.location.href),t=new URL(tL(tT),window.location.href),r=e.pathname.replace(/\/{2,}/g,"/"),i=t.pathname.replace(/\/{2,}/g,"/");o=e.origin===t.origin&&(r===i||r.startsWith(`${i}/`))}catch{}if(o){let e=!1;for(let[n,o]of Object.entries(t.headers))"disable-www-authenticate"===n.toLowerCase()&&(void 0===o?delete t.headers[n]:e=!0);e||(t.headers["Disable-WWW-Authenticate"]="true")}if(e.startsWith(t$)){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:o,followRedirects:i}=await eM("@openmrs/esm-api");if(e.ok){let t=e.headers.get("location");return(i&&t&&(n===tL(tM)||204===e.status)&&tj({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===tL(tM)&&403===e.status||o.enabled&&o.errors.includes(e.status))&&(tI(),tj({to:o.url||e.headers.get("location")||tO}),!0!==t.rejectAuthFailure)?o.resolvePromise?Promise.resolve():new Promise(()=>{}):e.clone().text().then(t=>{let o=t;try{o=JSON.parse(t)}catch(e){}throw new tD(n,e,o,r)},()=>{throw new tD(n,e,null,r)})})}class tD extends Error{constructor(e,t,n,o){super(),tR(this,"response",void 0),tR(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`,o.message=this.message,this.responseBody=n,this.response=t,this.stack=`Stacktrace for outgoing request:
|
|
13
|
+
${o.stack}
|
|
14
|
+
Stacktrace for incoming response:
|
|
15
|
+
${this.stack}`}}let tU=R("session",{loaded:!1,session:null}),tB=0,tF=null;function tH(){return tF||(tU.getState().loaded&&tB>=Date.now()-6e4?null:tq())}function tV(e){let t=e?.includeAuthStatus??!0,n=e=>t?e:e.user,o=tH();return o?new Promise(e=>{let t=()=>{let t=tU.getState();t.loaded&&(r(),e(n(t.session)))},r=tU.subscribe(t);o.then(t,t)}):Promise.resolve(n(tU.getState().session))}function tz(){return tH(),tU}function tG(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 tq(e,t){tB=Date.now(),r??(r=tB);let n={};e&&t&&(n.Authorization=`Basic ${window.btoa(`${e}:${t}`)}`);let o=t5(tW(tM,{headers:n,rejectAuthFailure:!0})),i=()=>{tF===o&&(tF=null)};return o.then(i,i),tF=o,o}function tJ(){tU.setState({loaded:!0,session:{authenticated:!1,sessionId:""}},!0)}function tK(e,t){var n,o;if(void 0===t)return!e;if(!e)return!0;return n=e,o=t,("string"==typeof n?!(0,D.A)(o.privileges.find(e=>n===e.display)):Array.isArray(n)?n.every(e=>!(0,D.A)(o.privileges.find(t=>e===t.display))):((0,D.A)(n)||console.error(`Could not understand privileges "${n}"`),!0))||!(0,D.A)(t.roles.find(e=>"System Developer"===e.display))}function tX(){let e,t;return new Promise(n=>{let o=o=>{o.loaded&&o.session.user&&(e=o.session.user,n(o.session.user),t&&t())};o(tU.getState()),e||(t=tU.subscribe(o))})}async function tY(){return(await tV()).sessionLocation}async function tZ(e,t){return t5(tW(tM,{method:"POST",body:{sessionLocation:e},headers:{"Content-Type":"application/json"},rejectAuthFailure:!0,signal:t?.signal}))}async function tQ(e,t){return await tW(tM,{method:"POST",body:{locale:e},headers:{"Content-Type":"application/json"},signal:t?.signal}),tq()}async function t0(e,t,n){return n||(n=new AbortController),await tW(`${tT}/user/${e}`,{method:"POST",body:{userProperties:t},headers:{"Content-Type":"application/json"},signal:n.signal}),tq()}async function t1(e,t=!1){let n=await tW(t?`${tM}?rememberMe=true`:tM,{headers:{"X-Totp-Code":e}});return n.data?.authenticated?(await tq()).session:n.data}async function t2(){try{await tW(tM,{method:"DELETE",rejectAuthFailure:!0})}catch(e){if(!t6(e))throw e}tJ(),await tq().catch(()=>{})}function t5(e){return new Promise((t,n)=>{e.then(e=>{if("object"==typeof e?.data){let n={loaded:!0,session:e.data};tU.setState(n,!0),t(n)}else!function(e){if(!e?.redirected||!e.url)return!1;try{return new URL(e.url,window.location.href).pathname.replace(/\/+$/,"").endsWith("/initialsetup")}catch{return!1}}(e)?n(t8(Error("The session endpoint did not respond with a session"))):n(t8(Error("The server is still starting up"),!0))}).catch(e=>{var o,i;if(t6(e)){"object"==typeof(o=e.responseBody)&&null!==o&&!1===o.authenticated?tU.setState({loaded:!0,session:e.responseBody},!0):tJ(),t(tU.getState());return}(i=e)instanceof tD&&502===i.response.status&&!tU.getState().loaded&&void 0!==r&&Date.now()-r<18e4?n(t8(e,!0)):(y(`Failed to fetch new session information: ${e}`),n(t8(e)))})})}function t6(e){return e instanceof tD&&(401===e.response.status||403===e.response.status)}function t8(e,t=!1){return tU.getState().loaded||tU.setState({loaded:!1,session:null,error:e instanceof Error?e:Error(String(e)),initializing:t},!0),tU.getState()}function t4(){return"development"===window.spaEnv||"true"===localStorage.getItem("openmrs:devtools")}tU.subscribe(e=>{e.loaded&&e.session&&tG(e.session)});let t3={"webservices.rest":"2.24.0",fhir2:"1.0.0-SNAPSHOT"};function t7(){eP("@openmrs/esm-api",tA),tq()}let t9="import-map-override:",ne="import-map-overrides-disabled",nt="import-map-overrides:change",nn=!1,no=null,nr=null;async function ni(){return nr??(nr=ns().then(({map:e,complete:t})=>(t||(nr=null),e))),nr}async function ns(){let e=document.querySelectorAll('script[type="systemjs-importmap"]'),t=[],n=!0;for(let o=0;o<e.length;o++){let r=e[o];try{if(r.src){let e=await fetch(r.src);if(!e.ok)throw Error(`Request for ${r.src} returned ${e.status} ${e.statusText}`);t.push(await e.json())}else r.textContent&&t.push(JSON.parse(r.textContent))}catch(e){n=!1,console.warn(`[import-maps] Failed to parse import map from script tag at index ${o}`,e)}}return{map:na(t),complete:n}}function na(e){let t={imports:{}};for(let n of e)n?.imports&&Object.assign(t.imports,n.imports);return t}function nl(){let e={};try{let t=np();for(let n=0;n<localStorage.length;n++){let o=localStorage.key(n);if(o?.startsWith(t9)){let n=o.slice(t9.length);if(!t.includes(n)){let t=localStorage.getItem(o);t&&(e[n]=t)}}}}catch(e){console.warn("[import-maps] Failed to read import-map overrides from localStorage",e)}return{imports:e}}async function nc(){let e=await ni();return nn?na([e,no??nl()]):e}async function nu(){return ni()}async function nd(){return nn?na([await ni(),nl()]):ni()}function nm(e){if(!nn)return{imports:{}};if(e){let e={};for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(n?.startsWith(t9)){let t=localStorage.getItem(n);t&&(e[n.slice(t9.length)]=t)}}return{imports:e}}return nl()}function np(){if(!nn)return[];try{let e=localStorage.getItem(ne);if(e){let t=JSON.parse(e);if(Array.isArray(t))return t}}catch{}return[]}function nf(e){return!!nn&&np().includes(e)}function ng(e,t){if(!nn)return void console.warn("[Security] Import map overrides are disabled in production mode.");try{localStorage.setItem(t9+e,t),window.dispatchEvent(new CustomEvent(nt))}catch(e){console.warn("[import-maps] Failed to write import-map override to localStorage",e)}}function nh(e){if(!nn)return void console.warn("[Security] Import map overrides are disabled in production mode.");try{localStorage.removeItem(t9+e);let t=np().filter(t=>t!==e);t.length>0?localStorage.setItem(ne,JSON.stringify(t)):localStorage.removeItem(ne),window.dispatchEvent(new CustomEvent(nt))}catch(e){console.warn("[import-maps] Failed to update import-map overrides in localStorage",e)}}function nw(){if(!nn)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(t9)&&e.push(n)}e.forEach(e=>localStorage.removeItem(e)),localStorage.removeItem(ne),window.dispatchEvent(new CustomEvent(nt))}catch(e){console.warn("[import-maps] Failed to clear import-map overrides from localStorage",e)}}function n_(e){if(!nn)return void console.warn("[Security] Import map overrides are disabled in production mode.");try{let t=np().filter(t=>t!==e);t.length>0?localStorage.setItem(ne,JSON.stringify(t)):localStorage.removeItem(ne),window.dispatchEvent(new CustomEvent(nt))}catch(e){console.warn("[import-maps] Failed to update import-map overrides in localStorage",e)}}let ny=!1;function nv(){!ny&&(ny=!0,(nn="development"===window.spaEnv)&&(no=nl()))}function nb(e){return e.replace(/[\/\-@]/g,"_")}async function nx(e,t="./start",o){var r;let i,s=!o?.maxLoadingTime||o.maxLoadingTime<=0?6e5:o.maxLoadingTime;await Promise.race([nS(e,o?.importMap),new Promise((t,n)=>{i=setTimeout(()=>{var t;n(Error(`Could not resolve requested script, ${e}, within ${(t=s)<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`}.`))},s)})]),i&&clearTimeout(i);let a=nb(e),l=window[a];if(!("object"==typeof(r=l)&&null!==r&&"init"in r&&"function"==typeof r.init&&"get"in r&&"function"==typeof r.get)){let e=`The global variable ${a} 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 nS(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=nb(e);if(!window[n]){let n=t??await nj();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 o=n.imports[e];o.startsWith("./")&&(o=window.spaBase+o.substring(1));let r=e in nm().imports;try{return await function(e){var t;let n=(t=window)[nk]??(t[nk]=new Map),o=n.get(e);if(o)return o;if(document.head.querySelector(`script[src="${e}"]`))return console.warn(`Script at ${e} already loaded. Not loading it again.`),Promise.resolve();let r=document.createElement("script");r.src=e,r.type="text/javascript",r.async=!0;let i=new Promise((t,o)=>{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 s(){clearTimeout(i),r.removeEventListener("load",a),r.removeEventListener("error",l)}function a(){s(),t()}function l(t){s(),n.delete(e),r.remove();let i=`Failed to load script from ${e}`;console.error(i,t),o(t.message??i)}r.addEventListener("load",a),r.addEventListener("error",l),document.head.appendChild(r)});return n.set(e,i),i}(o)}catch(e){return r&&p({kind:"error",title:tb("scriptLoadingFailed","Error: Script failed to load"),description:tb("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:tb("resetOverrides","Reset overrides"),onActionButtonClick(){nw(),window.location.reload()}}),Promise.reject(e)}}return Promise.resolve()}async function nj(){return nc()}let nk=Symbol.for("__openmrs_script_loading");function nN(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,"modals")&&(!e.modals||!Array.isArray(e.modals))||Object.hasOwn(e,"workspaces2")&&(!e.workspaces2||!Array.isArray(e.workspaces2))||Object.hasOwn(e,"workspaceWindows2")&&(!e.workspaceWindows2||!Array.isArray(e.workspaceWindows2))||Object.hasOwn(e,"workspaceGroups2")&&(!e.workspaceGroups2||!Array.isArray(e.workspaceGroups2)))}function nC(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&&nN(t))}let nE="openmrs-routes:",nP="openmrs-routes:change",nI=!1,nO=null,nA=null;async function nR(){return nA??(nA=nT().then(({map:e,complete:t})=>(t||(nA=null),e))),nA}async function nT(){let e=document.querySelectorAll("script[type='openmrs-routes']"),t=[],n=!0;for(let o=0;o<e.length;o++){let r=e[o];try{let e;if(r.src){let t=await fetch(r.src);if(!t.ok)throw Error(`Request for ${r.src} returned ${t.status} ${t.statusText}`);e=await t.json()}else r.textContent&&(e=JSON.parse(r.textContent));e&&nC(e)&&t.push(e)}catch(e){n=!1,console.warn(`[route-maps] Failed to parse routes from script tag at index ${o}`,e)}}return{map:n$(t),complete:n}}function n$(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 nM(){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(nE)){let e=localStorage.getItem(n);e&&t.push({moduleName:n.slice(nE.length),raw:e})}}for(let n of(await Promise.allSettled(t.map(async({moduleName:e,raw:t})=>{let n=JSON.parse(t);if(nN(n))return{moduleName:e,routes:n};if("string"==typeof n&&n.startsWith("http")){let t=await fetch(n),o=await t.json();if(nN(o))return{moduleName:e,routes:o};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 nL(){let e=await nR();return nI?n$([e,nO??await nM()]):e}async function nW(){return nR()}async function nD(){return nI?n$([await nR(),await nM()]):nR()}function nU(){if(!nI)return{};let e={};try{for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(n?.startsWith(nE)){let t=localStorage.getItem(n);t&&(e[n.slice(nE.length)]=t)}}}catch(e){console.warn("[route-maps] Failed to read route overrides from localStorage",e)}return e}function nB(e,t){if(!nI)return void console.warn("[Security] Route overrides are disabled outside development mode.");try{if("string"==typeof t)if(t.startsWith("http"))localStorage.setItem(nE+e,JSON.stringify(t));else{let n=JSON.parse(t);if(!nN(n))return void console.error(`The supplied routes for ${e} is not a valid OpenmrsAppRoutes object`,t);localStorage.setItem(nE+e,JSON.stringify(n))}else if(t instanceof URL)localStorage.setItem(nE+e,JSON.stringify(t.toString()));else{if(!nN(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(nE+e,JSON.stringify(t))}window.dispatchEvent(new CustomEvent(nP))}catch(e){console.warn("[route-maps] Failed to write route override to localStorage",e)}}function nF(e){if(!nI)return void console.warn("[Security] Route overrides are disabled outside development mode.");try{localStorage.removeItem(nE+e),window.dispatchEvent(new CustomEvent(nP))}catch(e){console.warn("[route-maps] Failed to remove route override from localStorage",e)}}function nH(){if(!nI)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(nE)&&e.push(n)}e.forEach(e=>localStorage.removeItem(e)),window.dispatchEvent(new CustomEvent(nP))}catch(e){console.warn("[route-maps] Failed to clear route overrides from localStorage",e)}}let nV=null;function nz(){return nV||(nV=(nI="development"===window.spaEnv)?nM().then(e=>{nO=e}):Promise.resolve())}let nG=`${tT}/attachment`;function nq(e,t){return tW(`${nG}/${e}`,{signal:t.signal})}function nJ(e,t,n,o){return tW(nK(e,t,o),{signal:n.signal})}function nK(e,t,n){return n?`${nG}?patient=${e}&encounter=${n}`:`${nG}?patient=${e}&includeEncounterless=${t}`}async function nX(e,t,n){let o=new FormData;return o.append("fileCaption",t.fileDescription),o.append("patient",e),n&&o.append("encounter",n),t.file?o.append("file",t.file,t.fileName):(o.append("file",new File([""],t.fileName),t.fileName),o.append("base64Content",t.base64Content)),tW(`${nG}`,{method:"POST",body:o})}function nY(e,t){return tW(`${nG}/${e}`,{method:"DELETE",signal:t.signal})}async function nZ(e,t){return e?(await tW(`${t$}/Patient/${e}`,t)).data:null}function nQ(e,t){let n=new CustomEvent(`openmrs:${e}`,{detail:t??void 0,cancelable:!0,bubbles:!0});return window.dispatchEvent(n)}function n0(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 n1(e){return{uuid:e.uuid,display:e.display}}function n2(e=null,t=null){let n=new URLSearchParams;e&&n.set("tag",e),t&&n.set("q",t);let o=n.toString();return tW(`${tT}/location${o?"?"+o:""}`).then(e=>e.data.results.map(n1))}function n5(e){return{uuid:e.uuid,display:e.display,name:e.name}}let n6=`${tT}/visittype`;function n8(e=n6){return tW(e).then(e=>e.data.results.map(n5))}var n4=((j={}).NEWVISIT="startVisit",j.EDITVISIT="editVisit",j.LOADING="loadingVisit",j),n3=((k={}).NOTSTARTED="notStarted",k.ONGOING="ongoing",k);let n7="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))",n9=function(){try{return JSON.parse(sessionStorage.getItem("openmrs:visitStoreState")||"null")}catch(e){return null}}()||{patientUuid:null,manuallySetVisitUuid:null};function oe(){return M("visit",n9)}function ot(e,t){oe().setState({patientUuid:e,manuallySetVisitUuid:t})}function on(e,t){return tW(`${tT}/visit`,{signal:t.signal,method:"POST",headers:{"Content-type":"application/json"},body:e})}function oo(e,t,n){return tW(`${tT}/visit/${e}`,{signal:n.signal,method:"POST",headers:{"Content-type":"application/json"},body:t})}function or(e,t,n){return tW(`${tT}/visit?patient=${e}&v=${n??n7}`,{signal:t.signal,method:"GET",headers:{"Content-type":"application/json"}})}oe().subscribe(e=>{var t;t=e,sessionStorage.setItem("openmrs:visitStoreState",JSON.stringify(t))});var oi=n(9225),os=n(6881),oa=n(6828),ol=n(1956),oc=n(3635),ou=n(7839),od=n(2298);let om={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)}},op={...om,Promise};function of(e,t={}){return ov(e,t,oS)}async function og(e,t={}){return ob(e,t,oS)}function oh(e,t={}){return ov(e,t,oj)}function ow(e,t={}){return ob(e,t,oj)}function o_(e,t={}){return ov(e,t,ok)}function oy(e,t={}){return ob(e,t,ok)}function ov(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 o=oI(t,om),r=oN("string"==typeof e?(0,oi.A)(e):e,o);if(n(r))return r;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 ob(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 o=oI(t,op);return Promise.resolve(oN("string"==typeof e?(0,oi.A)(e):e,o)).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 ox(e){return(0,oi.A)(e)}function oS(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e||null==e||e instanceof Date}function oj(e){return"boolean"==typeof e}function ok(e){return"number"==typeof e}function oN(e,t){switch(e.type){case"UnaryExpression":var n,o,r,i,s,a,l,c,u,d,m,p,f,g=e,h=t;let w=oN(g.argument,h);switch(g.operator){case"+":return+w;case"-":return-w;case"~":return~w;case"!":return!w;default:throw`Expression evaluator does not support operator '${g.operator}''`}case"BinaryExpression":var _=e,y=t;switch(_.operator){case"&&":return oN(_.left,y)&&oN(_.right,y);case"||":return oN(_.left,y)||oN(_.right,y);case"??":return oN(_.left,y)??oN(_.right,y)}let v=oN(_.left,y),b=oN(_.right,y);switch(_.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 '${_.operator}' operator`}case"ConditionalExpression":return n=e,o=t,oN(n.test,o)?oN(n.consequent,o):oN(n.alternate,o);case"CallExpression":return oR(oE(e,t));case"ArrowFunctionExpression":let x;return r=e,i=t,x=r.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,o)=>{let r=e[o];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}(r)&&t.push([n,r]),t},[]));return oN(r.body,i.addVariables(t))}).bind(null);case"MemberExpression":return oR(oP(e,t));case"ArrayExpression":return s=e,a=t,s.elements?.map(oT(a));case"SequenceExpression":let S;return l=e,c=t,(S=l.expressions.map(oT(c)))[S.length-1];case"NewExpression":var j=e,k=t;if(j.callee&&"Identifier"===j.callee.type){let e=j.arguments?.map(oT(k));switch(j.callee.name){case"Date":return new Date(...e);case"RegExp":return new RegExp(...e);default:throw`Cannot instantiate object of type ${j.callee.name}`}}if(j.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,(o$(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(oT(p))??[],(C=m.quasis?.map(oT(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 oC(e,t){switch(e.type){case"Literal":return e.value;case"Identifier":return e.name;case"MemberExpression":return oC(e.property,t);default:throw`VisitExpressionName does not support expression of type '${e.type}'`}}function oE(e,t){let n=oA(e.callee,t);if(n===oO||e.optional&&null==n)return oO;let o=e.arguments?.map(oT(t));if(n){if("function"!=typeof n)throw`${oW(e.callee)} is not a function`}else throw`No function named ${oW(e.callee)} is defined in this context`;return n(...o)}function oP(e,t){let n=oA(e.object,t);if(n===oO||e.optional&&null==n)return oO;if(null===n)throw TypeError(`TypeError: cannot read properties of null (reading '${oL(e.property,t)}')`);if(void 0===n)switch(e.object.type){case"Identifier":{let n=oC(e.object,t);throw ReferenceError(`ReferenceError: ${n} is not defined`)}case"MemberExpression":throw TypeError(`TypeError: cannot read properties of undefined (reading '${oL(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 o=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}(oN(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);o$(o),function(e,t){if(oM.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,o);let r=n[o];return"function"==typeof r?r.bind(n):r}function oI(e,t){let n={variables:{...e},globals:{...t},addVariables(e){return this.variables={...this.variables,...e},this}};return n.addVariables.bind(n),n}oi.A.plugins.register(os.A),oi.A.plugins.register(oa.A),oi.A.plugins.register(ol.A),oi.A.plugins.register(oc.A),oi.A.plugins.register(ou.A),oi.A.plugins.register(od.A),oi.A.addBinaryOp("in",7),oi.A.addBinaryOp("??",1);let oO=Symbol("optional chain short-circuited");function oA(e,t){switch(e.type){case"MemberExpression":return oP(e,t);case"CallExpression":return oE(e,t);default:return oN(e,t)}}function oR(e){return e===oO?void 0:e}function oT(e){return function(t){return null===t?null:oN(t,e)}}function o$(e){if("__proto__"===e||"prototype"===e||"constructor"===e)throw{type:"Illegal property access",message:`Cannot access the ${e} property of objects`}}let oM=new Set(["toString","valueOf","hasOwnProperty"]);function oL(e,t){try{return oC(e,t)}catch{return"<computed>"}}function oW(e){return e?"MemberExpression"===e.type?e.property?.name:e.name:null}function oD(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:{...op},boundNames:new Set,variables:new Set};return oU("string"==typeof e?(0,oi.A)(e):e,t),[...t.variables]}function oU(e,t){switch(e.type){case"UnaryExpression":return n=e,o=t,void oU(n.argument,o);case"BinaryExpression":return r=e,i=t,void(oU(r.left,i),oU(r.right,i));case"ConditionalExpression":return s=e,a=t,void(oU(s.consequent,a),oU(s.test,a),oU(s.alternate,a));case"CallExpression":return l=e,c=t,void(oU(l.callee,c),l.arguments?.map(oB(c)));case"ArrowFunctionExpression":var n,o,r,i,s,a,l,c,u,d,m,p,f,g,h,w,_,y,v,b,x=e,S=t;let j=new Set(S.boundNames);for(let e of x.params??[])e?.type==="Identifier"&&j.add(e.name);oU(x.body,{...S,boundNames:j});return;case"MemberExpression":return u=e,d=t,void(oU(u.object,d),u.computed&&oU(u.property,d));case"ArrayExpression":return m=e,p=t,void m.elements?.map(oB(p));case"SequenceExpression":return f=e,g=t,void f.expressions?.map(oB(g));case"NewExpression":return h=e,w=t,void h.arguments?.map(oB(w));case"Literal":case"TemplateElement":return;case"Identifier":return _=e,y=t,void(_.name in y.globals||y.boundNames.has(_.name)||y.variables.add(_.name));case"TemplateLiteral":return v=e,b=t,void(v.expressions?.map(oB(b)),v.quasis?.map(oB(b)));default:throw`Expression evaluator does not support expression of type '${e.type}'`}}function oB(e){return function(t){return null===t?null:oU(t,e)}}let oF=M("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:",""),o=JSON.parse(localStorage.getItem(`openmrs:feature-flag-meta:${n}`)||"{}");e[n]={enabled:"true"===localStorage.getItem(t),...o}}return e}()});function oH(e,t,n){oF.setState(o=>({flags:{...o.flags,[e]:{enabled:o.flags[e]?.enabled??!1,label:t,description:n}}}))}function oV(){let e=oF.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 oz(e){return oF.getState().flags[e].enabled}function oG(e,t){oF.subscribe(n=>{t(n.flags[e].enabled)})}function oq(e,t){oF.setState(n=>({flags:{...n.flags,[e]:{...n.flags[e],enabled:t}}}))}oF.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 oJ=n(1216);let oK=R("extensionsInternal",{slots:{},extensions:{}}),oX=R("extensionRenderings",{renderings:new Map}),oY=()=>M("extensionsInternal",{slots:{},extensions:{}}),oZ=()=>M("extensionRenderings",{renderings:new Map});function oQ(e){let t=oK.getState(),n=e(t);n!==t&&oK.setState(n)}let o0=null,o1=null;function o2(){let e=oX.getState();return o0&&e===o1||(o0=new Map(e.renderings),o1=e,function(e){for(let t of(rn.clear(),e.values()))rr(t,1);ro=!0}(o0)),o0}function o5(e){o1={renderings:e},oX.setState(o1,!0)}function o6(e){let t=o2();t.has(e.renderingId)||(t.set(e.renderingId,e),rr(e,1),o5(t))}function o8(e){let t=o2(),n=t.get(e);n&&(t.delete(e),rr(n,-1),o5(t))}let o4=()=>M("extensions",{slots:{}}),o3=0,o7=new Set;function o9(e){o3++;try{return e()}finally{if(0==--o3&&o7.size>0){let e=Array.from(o7);for(let t of(o7.clear(),e))re(t)}}}function re(e){try{e()}catch(t){console.error(`The extension system's '${e.name}' recomputation failed`,t)}}function rt(e){o3>0?o7.add(e):re(e)}let rn=new Map,ro=!1;function rr(e,t){let n=JSON.stringify([e.slotName,e.extensionId,e.slotModuleName,e.extensionModuleName]),o=rn.get(n);if(!o){if(t<0)return;rn.set(n,{count:1,record:{slotModuleName:e.slotModuleName,extensionModuleName:e.extensionModuleName,slotName:e.slotName,extensionId:e.extensionId}}),ro=!0;return}o.count+=t,o.count<1&&(rn.delete(n),ro=!0)}function ri(){var e,t;if(o2(),!ro)return;ro=!1;let n=Array.from(rn.values(),({record:e})=>e);n.sort(rs),e=et.getState().mountedExtensions,t=n,e.length===t.length&&e.every((e,n)=>0===rs(e,t[n]))||et.setState({mountedExtensions:n})}function rs(e,t){return ra(e.slotName,t.slotName)||ra(e.extensionId,t.extensionId)||ra(e.slotModuleName,t.slotModuleName)||ra(e.extensionModuleName,t.extensionModuleName)}function ra(e,t){return e===t?0:e<t?-1:1}ri(),oX.subscribe(()=>rt(ri));let rl=oY(),rc=o4(),ru=eo(),rd=es(),rm=new Set,rp=!1;function rf(e){if(null===e)rm=null;else if(null!==rm)for(let t of e)rm.add(t);rt(rg)}function rg(){if(!rp){rp=!0;try{for(let e=1;;e++){let t=rm;if(null!==t&&0===t.size)return;rm=new Set;try{!function(e,t,n,o,r,i=null){let s=rc.getState().slots,a={},l=!1,c=Object.entries(o.flags).filter(([,{enabled:e}])=>e).map(([e])=>e);for(let[o,u]of Object.entries(e.slots)){let d=s[o];if(d&&i&&!i.has(o)){a[o]=d;continue}let{config:m}=ei(t,u.name),p=function(e,t,n,o,r,i){let s=function(e,t){let n=e.add||[],o=e.remove||[],r=e.order||[],{extensions:i}=rl.getState(),s=new Set(o),a=[...t,...n].filter(e=>!s.has(e)),l=rk(r),c=rk(t),u=new Map(a.map(e=>[e,function(e,t,n,o){let r=t.get(e);if(void 0!==r)return r;{if(void 0!==n)return 1e3+n;let t=o.get(e);return void 0!==t?2e3+t:3e3}}(e,l,i[r_(e)]?.order,c)]));return a.sort((e,t)=>u.get(e)-u.get(t))}(n,t.slots[e].attachedIds),a=[];for(let l of s){let{config:s}=ea(o,e,l),c=el(n,e,l),u=c?(0,oJ.A)({},s,c):s,d=r_(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||!tK(e,i.user))||m.featureFlag&&!r.includes(m.featureFlag))continue;a.push({id:l,name:d,moduleName:m.moduleName,config:u,featureFlag:m.featureFlag,meta:m.meta,displayConditionExpression:u?.["Display conditions"]?.expression||m.displayExpression})}}return a}(o,e,m,n,c,r.session);d&&d.moduleName===u.moduleName&&(0,F.A)(d.candidateExtensions,p)?a[o]=d:(a[o]={moduleName:u.moduleName,candidateExtensions:p},l=!0)}(l||Object.keys(s).length!==Object.keys(a).length)&&rc.setState({slots:a})}(rl.getState(),ru.getState(),rd.getState(),oF.getState(),tU.getState(),t)}catch(e){throw rm=null===t||null===rm?null:new Set([...t,...rm]),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{rp=!1}}}function rh(e,t){let n=new Set;for(let o of Object.keys(e))e[o]!==t[o]&&n.add(o);for(let o of Object.keys(t))o in e||n.add(o);return n}function rw(e,t){return{moduleName:t,name:e,attachedIds:[]}}function r_(e){let[t]=e.split("#");return t}function ry(e,t){let n=r_(t);return e.extensions[n]}function rv(e){return ry(rl.getState(),e)}rl.subscribe((e,t)=>{rf(e.extensions!==t.extensions?null:rh(e.slots,t.slots))}),ru.subscribe((e,t)=>{rf(rh(e.slots,t.slots))}),rd.subscribe((e,t)=>{rf(rh(e.configs,t.configs))}),oF.subscribe(()=>rf(null)),tU.subscribe(()=>rf(null)),rf(null);let rb=e=>oQ(t=>({...t,extensions:{...t.extensions,[e.name]:{...e}}}));function rx(e,t){oQ(n=>{let o=n.slots[e];return o?{...n,slots:{...n.slots,[e]:{...o,attachedIds:[...o.attachedIds,t]}}}:{...n,slots:{...n.slots,[e]:{...rw(e),attachedIds:[t]}}}})}function rS(e,t){oQ(n=>{let o=n.slots[e];return o&&o.attachedIds.includes(t)?{...n,slots:{...n.slots,[e]:{...o,attachedIds:o.attachedIds.filter(e=>e!==t)}}}:n})}function rj(e){oQ(t=>{let n=t.slots[e];return n?{...t,slots:{...t.slots,[e]:{...n,attachedIds:[]}}}:t})}function rk(e){let t=new Map;return e.forEach((e,n)=>{t.has(e)||t.set(e,n)}),t}function rN(e,t){return function(e,t,n=null,o){let r;return e.filter(e=>{let i=e.displayConditionExpression;if("string"!=typeof i||0===i.trim().length)return!0;r??(r=t&&"object"==typeof t?{session:n,...t}:{session:n});try{return!!oh(i,r)}catch(t){return console.error(`Error while evaluating expression '${i}' for ${e.id}`+(o?` in ${o}`:""),t),!1}})}(rC(e),t,tU.getState().session,e)}function rC(e){return rc.getState().slots[e]?.candidateExtensions??[]}let rE=(e,t)=>rl.setState(n=>{let o=n.slots[t]?.moduleName;if(o&&o!=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 ${o}.`),n;if(o&&o==e)return n;if(n.slots[t])return{...n,slots:{...n.slots,[t]:{...n.slots[t],moduleName:e}}};let r=rw(t,e);return{...n,slots:{...n.slots,[t]:{...r}}}}),rP=()=>{rm=null,oQ(()=>({slots:{},extensions:{}})),oZ().setState({renderings:new Map}),rc.setState({slots:{}})},rI=R("left-nav",{slotName:null,basePath:window.spaBase,mode:"normal"});function rO({name:e,basePath:t,mode:n,componentContext:o,state:r}){rI.setState({slotName:e,basePath:t,mode:n??"normal",componentContext:o,state:r})}function rA(e){rI.getState().slotName===e&&rI.setState(rI.getInitialState(),!0)}let rR=R("modalRegistry",{modals:{}});function rT(e){rR.setState(t=>(t.modals[e.name]=e,t))}function r$(e){let t=rR.getState().modals[e];if(!t){let n=rv(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.`),rT(t))}return t}let rM=R("workspace2",{registeredGroupsByName:{},registeredWindowsByName:{},registeredWorkspacesByName:{},openedGroup:null,openedWindows:[],isMostRecentlyOpenedWindowHidden:!1});function rL(e){let{registeredWorkspacesByName:t,registeredWindowsByName:n}=rM.getState(),o=t[e];if(o){let t=n[o.window];if(t)return t;throw Error(`No workspace window found with name: ${o.window} for workspace: ${e}`)}throw Error(`No workspace found with name: ${e}`)}function rW(e){let{registeredGroupsByName:t,registeredWindowsByName:n}=rM.getState(),o=n[e];if(o){let n=t[o.group];if(n)return n;throw Error(`No workspace group found with name: ${o.group} for window: ${e}`)}throw Error(`No workspace window found with name: ${e}`)}function rD(e){let{openedWindows:t}=rM.getState();return t.findIndex(t=>t.openedWorkspaces.find(t=>t.workspaceName===e))}function rU(e,t){if(0==t.length)return;let{registeredGroupsByName:n}=rM.getState(),o={...n};for(let n of t){if(o[n.name])throw Error(`Cannot register workspace group ${n.name} more than once`);o[n.name]={...n,moduleName:e}}rM.setState({registeredGroupsByName:o})}function rB(e,t){if(0==t.length)return;let{registeredWindowsByName:n}=rM.getState(),o={...n};for(let n of t){if(o[n.name])throw Error(`Cannot register workspace window ${n.name} more than once`);let t={...n,moduleName:e};o[n.name]=t}rM.setState({registeredWindowsByName:o})}function rF(e,t){if(0==t.length)return;let{registeredWorkspacesByName:n}=rM.getState(),o={...n};for(let n of t){if(o[n.name])throw Error(`Cannot register workspace ${n.name} more than once`);let t={...n,moduleName:e};o[n.name]=t}rM.setState({registeredWorkspacesByName:o})}let rH=0,rV=null,rz={bootstrap:15e3,mount:15e3,unmount:15e3};function rG(e,t){if(e.timeouts)return e;let n=e.name??"parcel",o=Object.fromEntries(Object.keys(rz).filter(t=>e[t]).map(o=>{var r,i;let s,a;return[o,(r=e[o],i=rz[o],s=Array.isArray(r)?r:[r],a=e=>s.reduce((t,r,i)=>t.then(()=>{let t=r(e);return"function"==typeof t?.then&&"function"==typeof t?.catch?t:Promise.reject(Error(`Lifecycle function ${o} at array index ${i} for parcel ${n} did not return a promise`))}),Promise.resolve(void 0)),e=>{let r,s=new Promise((e,t)=>{r=setTimeout(()=>t(Error(`Lifecycle function ${o} for parcel ${n} did not settle within ${i}ms`)),i)});return Promise.race([a(e),s]).finally(()=>clearTimeout(r)).then(e=>(t(o,!1),e),e=>{throw t(o,!0),e})})]}));return{...e,...o}}async function rq(e,t){var n,o;let r,i,s,a,l,c=await (rV??(rV=new Promise((e,t)=>{(0,ta.xL)({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),ta.xL))),rV),u={...t},d=(r=u,i=!1,{retarget:e=>r={...e},release:s=()=>(function(e){for(let t of Object.keys(e))delete e[t]})(r),onSettled(e,t){switch(e){case"bootstrap":t&&s();return;case"mount":i||(i=t);return;case"unmount":(t||i)&&s();return}}});return o=c((n=d.onSettled,"function"==typeof e?()=>e().then(e=>rG(e,n)):rG(e,n)),u),a=e=>t=>e.call(o,d.retarget(t)).catch(e=>{throw"SKIP_BECAUSE_BROKEN"===o.getStatus()&&d.release(),e}),l=o.update&&a(o.update),Object.defineProperty(o,"update",{configurable:!0,enumerable:!0,get:()=>l,set:e=>{l=e&&a(e)}})}function rJ(){return rK}function rK(e,t){let n,o=rq(e,t).then(e=>n=e);return{mount:()=>o.then(e=>e.mount()),unmount:()=>o.then(e=>e.unmount()),update:e=>o.then(t=>t.update?.(e)),getStatus:()=>n?.getStatus()??"LOADING_SOURCE_CODE",get loadPromise(){return o.then(e=>e.loadPromise)},get bootstrapPromise(){return o.then(e=>e.bootstrapPromise)},get mountPromise(){return o.then(e=>e.mountPromise)},get unmountPromise(){return o.then(e=>e.unmountPromise)}}}async function rX(e,t,n,o,r=e=>e,i={}){let s=r_(o),a=rv(o),l=null;if(e){let c;if(!a)throw Error(`Couldn't find extension '${s}' to attach to '${t}'`);let{meta:u,moduleName:d,load:m}=a,p=rH++,f=`${t}/${o}-${p}`;e.dataset.extensionRenderingId=f;let g=e=>{try{o8(f)}catch(t){console.error(e,t)}};try{o6({renderingId:f,extensionName:s,extensionModuleName:d,extensionId:o,slotName:t,slotModuleName:n})}catch(e){throw g(`Recomputing configuration after registering '${o}' failed also failed`),e}try{c=await m()}catch(e){throw g(`Recomputing configuration after '${o}' failed to load also failed`),e}try{l=await rq(r({...c,name:`${t}/${s}-${p}`}),{...i,_meta:u,_extensionContext:{extensionId:o,extensionSlotName:t,extensionSlotModuleName:n,extensionModuleName:d,extensionMeta:u},domElement:e})}catch(e){throw g(`Recomputing configuration after '${o}' failed to mount also failed`),e}l.mountPromise.then(void 0,e=>{console.error(`Extension '${o}' in slot '${t}' failed to mount`,e),g(`Recomputing configuration after '${o}' failed to mount also failed`)}),l.unmountPromise.then(()=>g(`Recomputing configuration after unmounting '${o}' failed`),e=>{console.error(`Extension '${o}' in slot '${t}' failed to unmount`,e),g(`Recomputing configuration after '${o}' failed to unmount also failed`)})}else console.warn(`Tried to render ${o} into ${t} but no DOM element was available.`);return l}var rY=n(6925),rZ=n.n(rY);let rQ=(0,rY.createContext)({moduleName:"",featureName:""});var r0=n(5140);function r1({to:e,templateParams:t,onBeforeNavigate:n,children:o,...r}){return(0,rY.useEffect)(()=>{r.href&&console.warn(`ConfigurableLink does not support the href prop. Use the 'to' prop instead. The provided href value is '${r.href}'`),r.onClick&&console.warn(`ConfigurableLink does not support the onClick prop. Use the 'onBeforeNavigate' prop instead. The 'to' prop of the offending link is ${e}`)},[]),(0,r0.jsx)("a",{onClick:o=>{0===o.button&&!o.ctrlKey&&!o.shiftKey&&!o.altKey&&!o.metaKey&&(o.preventDefault(),n?.(o),tj({to:e,templateParams:t})),0===o.button&&(o.ctrlKey||o.metaKey)&&n?.(o),0===o.button&&o.shiftKey&&n?.(o),1===o.button&&n?.(o)},href:tx(e,t),...r,children:o})}let r2=({state:e,children:t,...n})=>{let{extension:o}=(0,rY.useContext)(rQ),r=(0,rY.useRef)(null),i=(0,rY.useRef)(Promise.resolve()),s=(0,rY.useRef)(!1),a=(0,rY.useRef)(!1),l=(0,rY.useRef)(e),c=(0,rY.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,rY.useCallback)((e,t)=>{e.update&&"UNMOUNTING"!==e.getStatus()&&(i.current=Promise.all([e.mountPromise,i.current]).then(()=>{if(r.current?.getStatus()==="MOUNTED"&&r.current.update)return r.current.update({...t})}).catch(e=>{let t=r.current?.getStatus();"UNMOUNTING"!==t&&"NOT_MOUNTED"!==t&&"UNLOADING"!==t&&console.error(`The extension '${o?.extensionId}' failed to update`,e)}))},[]),d=(0,rY.useCallback)(t=>{t&&!r.current&&!a.current&&o?.extensionSlotName&&o.extensionSlotModuleName&&(a.current=!0,rX(t,o.extensionSlotName,o.extensionSlotModuleName,o.extensionId,void 0,e).then(t=>{(a.current=!1,r.current=t,s.current)?c(t):t&&l.current!==e&&u(t,l.current)},()=>{a.current=!1}))},[]);return(0,rY.useEffect)(()=>(s.current=!1,()=>{s.current=!0,c(r.current)}),[]),(0,rY.useEffect)(()=>{l.current=e,r.current&&u(r.current,e)},[e]),o?(0,r0.jsx)("div",{ref:d,"data-extension-id":o?.extensionId,style:{position:"relative"},...n}):null};function r5(e){let t=(0,rY.useRef)(e);return x(t.current,e)||(t.current=e),t.current}function r6(e,t){"function"==typeof t&&(t=t(e));let n={};for(let[o,r]of Object.entries(t)){let t=function(...t){e.setState(e=>r(e,...t))};n[o]=t}return n}let r8=e=>e;function r4(e,t=r8,n){let o=(0,rY.useCallback)(t=>e.subscribe(t),[e]),r=(0,rY.useCallback)(()=>t(e.getState()),[e,t]),i=(0,rY.useSyncExternalStore)(o,r,r),s=(0,rY.useMemo)(()=>n?r6(e,n):null,[e,n]);return(0,rY.useMemo)(()=>s?{...i,...s}:i,[i,s])}function r3(e,t){return r4(e,r8,t)}function r7(e){return function(t){let n=(0,rY.useCallback)(t=>e.subscribe(t),[]),o=(0,rY.useCallback)(()=>e.getState(),[]),r=(0,rY.useSyncExternalStore)(n,o,o),i=(0,rY.useMemo)(()=>t?r6(e,t):null,[t]);return(0,rY.useMemo)(()=>i?{...r,...i}:r,[r,i])}}let r9=[];Object.freeze(r9);let ie={candidateExtensions:r9};Object.freeze(ie);let it=e=>{let t=(0,rY.useCallback)(t=>t.slots?.[e]??ie,[e]);return r4(o4(),t)},io=e=>e.session;function ir(e,t){let{candidateExtensions:n}=it(e),o=r4(tU,io),r=r5(t);return(0,rY.useMemo)(()=>rN(e,r),[e,r,o,n])}function ii(e,t){let{moduleName:n}=(0,rY.useContext)(rQ);if(!n)throw Error("ComponentContext has not been provided. This should come from @openmrs/esm-react-utils.");return(0,rY.useEffect)(()=>{rE(n,e)},[n,e]),{extensions:ir(e,t),extensionSlotName:e,extensionSlotModuleName:n}}function is(e){return e}function ia({name:e,extensionSlotName:t,select:n=is,children:o,state:r,style:i,...s}){if(o&&r)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 a=e??t,l=(0,rY.useRef)(null),{extensions:c,extensionSlotModuleName:u}=ii(a,r),d=(0,rY.useMemo)(()=>n(c),[n,c]),m=(0,rY.useMemo)(()=>{if("function"==typeof o&&!rZ().isValidElement(o))return d.map(e=>o(e,r))},[o,d]);return(0,r0.jsx)("div",{ref:l,"data-extension-slot-name":a,"data-extension-slot-module-name":u,style:{...i,position:"relative"},...s,children:a&&d?.map((e,t)=>(0,r0.jsx)(rQ.Provider,{value:{moduleName:u,featureName:"",extension:{extensionId:e.id,extensionSlotName:a,extensionSlotModuleName:u,extensionMeta:e.meta}},children:m?.[t]??("function"!=typeof o?o:null)??(0,r0.jsx)(r2,{state:r})},e.id))})}var il=n(2852),ic=n.n(il),iu=n(9568),id=n(9737),im=n(749),ip=n.n(im),ig=n(5254);let ih={strictMode:!0,throwErrorsToConsole:!0,disableTranslations:!1},iw=new Map;(0,ig.initCache)(iw);let i_={errorRetryCount:3,fetcher:tW,focusThrottleInterval:18e5,revalidateIfStale:!0,revalidateOnFocus:!1,revalidateOnReconnect:!1,refreshInterval:0,shouldRetryOnError:e=>{if(e instanceof tD){let t=e.response.status;return!!(t>=500)||401===t||403===t||429===t}return!0},provider:()=>iw};function iy(e){if("object"!=typeof e||"string"!=typeof e.featureName||"string"!=typeof e.moduleName)throw Error("Invalid options");let t=Object.assign({},ih,e),n={...i_,...t.swrConfig};return function(e){var o,r,i,s,a;return i=r=class extends(o=rZ().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(0,r0.jsx)("div",{children:"An error has occurred. Please try reloading the page."});{let o=(0,r0.jsx)(rY.Suspense,{fallback:null,children:(0,r0.jsx)(im.SWRConfig,{value:n,children:(0,r0.jsx)(rQ.Provider,{value:this.state.config,children:t.disableTranslations?(0,r0.jsx)(e,{...this.props}):(0,r0.jsx)(id.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,children:(0,r0.jsx)(e,{...this.props})})})})});return t.strictMode&&rZ().StrictMode?(0,r0.jsx)(rZ().StrictMode,{children:o}):o}}constructor(e){super(e),this.state={caughtError:null,caughtErrorInfo:null,config:{moduleName:t.moduleName,featureName:t.featureName,extension:e._extensionContext}}}},s="displayName",a=`OpenmrsReactComponent(${t.featureName})`,s in i?Object.defineProperty(i,s,{value:a,enumerable:!0,configurable:!0,writable:!0}):i[s]=a,r}}function iv(e,t){return(0,iu.A)({React:rZ(),ReactDOMClient:ic(),rootComponent:iy(t)(e)})}function ib(e,t){return()=>e().then(({default:e})=>iv(e,t))}function ix(e,t){return()=>Promise.resolve(iv(e,t))}let iS=ib,ij=(0,C.y)()(()=>({}));$("openmrs-app-context",ij);let ik={};function iN(e,t=e=>e){let n=ij.getState();return e in n?Object.freeze(Object.assign({},t?t(n[e]):n[e])):null}function iC(e,t){ij.setState(n=>(e in n||(n[e]={}),n[e]=t(n[e]),Object.assign({},n)))}function iE(e){return null===e?null:Object.freeze(Object.assign({},e))}let iP=new Map;function iI(e,t){let n=(0,rY.useRef)(t??{}),o=(0,rY.useRef)(t=>iC(e,t)),r=(0,rY.useRef)(Symbol());return(0,rY.useEffect)(()=>{let n=t??{},o=r.current;return null===iN(e)?!function(e,t=ik){ij.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===ik?{}: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.`),iC(e,()=>n)),iP.set(e,o),()=>{iP.get(e)===o&&(ij.setState(t=>(e in t&&delete t[e],t)),iP.delete(e))}},[e]),(0,rY.useEffect)(()=>{let o=t??{};x(n.current,o)||(iC(e,()=>o),n.current=o)},[t]),o.current}function iO({namespace:e,value:t}){return iI(e,t),null}let iA=({children:e,value:t,fallback:n})=>t?(0,r0.jsx)(r0.Fragment,{children:e}):n?(0,r0.jsx)(r0.Fragment,{children:n}):null;function iR(){let e=(0,rY.useRef)(null);return(!e.current||e.current.signal.aborted)&&(e.current=new AbortController),(0,rY.useEffect)(()=>{let t=e.current;return()=>t?.abort()},[]),e.current}function iT(e,t=e=>e??{}){let[n,o]=(0,rY.useState)(()=>{if(i$(e))return;let n=iN(e);if(null!==n)return t?t(n):n});return(0,rY.useEffect)(()=>{if(i$(e))throw Error(`The namespace supplied to useAppContext must be a non-empty string, but was "${e}".`)},[e]),(0,rY.useEffect)(()=>{var n;let r;return(n=e=>{if(null==e)return void o(void 0);let n=t?t(e):e;o(e=>x(e,n)?e:n)})(iE(r=iN(e))),ij.subscribe(t=>{let o=e in t?t[e]:null;o!==r&&(r=o,n(iE(o)))})},[e,t]),n}function i$(e){return"string"!=typeof e||0===e.trim().length}function iM(e){let t=ir(e);return(0,rY.useMemo)(()=>t.map(e=>e.id),[t])}function iL(e){return it(e).candidateExtensions}function iW(e,t,n){let{data:o,error:r,mutate:i,isLoading:s,isValidating:a}=ip()(e?nK(e,t,n):null,tW);return(0,rY.useMemo)(()=>({isLoading:s,data:o?.data.results??[],error:r,mutate:i,isValidating:a}),[o,r,s,a,i])}function iD(e){(0,rY.useEffect)(()=>{if(e){let e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}}},[e])}let iU={},iB=`No ComponentContext has been provided. This should come from "openmrsComponentDecorator".
|
|
16
|
+
Usually this is already applied when using "getAsyncLifecycle" or "getSyncLifecycle".`;function iF(e,t,n){let o=iU[e];if(o)return o;let r=new Promise(e=>{let o=n(t.getState());if(o)return void e(o);let r=t.subscribe(t=>{let o=n(t);o&&(r(),e(o))})});return iU[e]=r,r.then(()=>{iU[e]===r&&delete iU[e]}),r}function iH(e){let{moduleName:t,extension:n}=(0,rY.useContext)(rQ),o=e?.externalModuleName??t;if(!o&&!n)throw Error(iB);let r=function(e){let t=(0,rY.useMemo)(()=>en(e),[e]),n=function(e){let[t,n]=(0,rY.useState)(()=>{let t=e.getState();return t.loaded&&t.config?t.config:null});return(0,rY.useEffect)(()=>e?.subscribe(e=>{e.loaded&&e.config&&n(e.config)}),[e]),t}(t);if(!n)throw iF(e,t,e=>e.loaded?e.config:null);return n}(o),i=function(e){let t=(0,rY.useMemo)(es,[]),n=function(e,t){let[n,o]=(0,rY.useState)(t?()=>{let n=ea(e.getState(),t.extensionSlotName,t.extensionId);if(n.loaded&&n.config)return n.config}:null);return(0,rY.useEffect)(()=>{if(t)return e.subscribe(e=>{let r=ea(e,t.extensionSlotName,t.extensionId);r.loaded&&r.config&&!(0,F.A)(r.config,n)&&o(r.config)})},[e,t,n]),n}(t,e);if(!n&&e)throw iF(`${e.extensionSlotName}-${e.extensionId}`,t,t=>{let n=ea(t,e.extensionSlotName,e.extensionId);return n.loaded?n.config:null});return n||{}}(n);return(0,rY.useMemo)(()=>e?.externalModuleName&&o===e.externalModuleName?{...r}:{...r,...i},[o,e?.externalModuleName,r,i])}let iV=ir;function iz(e,t=300){let[n,o]=(0,rY.useState)(e);return(0,rY.useEffect)(()=>{let n=setTimeout(()=>{o(e)},t);return()=>{clearTimeout(n)}},[e,t]),n}var iG=n(8086),iq=n.n(iG);let iJ=`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,t])=>`${e}:${t}`).join(",")}`;function iK(){let e=`${tT}/emrapi/configuration?v=${iJ}`,t=iq()(e,tW);return(0,rY.useMemo)(()=>({emrConfiguration:t.data?.data,isLoadingEmrConfiguration:t.isLoading,mutateEmrConfiguration:t.mutate,errorFetchingEmrConfiguration:t.error}),[t])}function iX(){return(0,rY.useContext)(rQ).extension}let iY=r7(oY());function iZ(e){let t=ir(e);return(0,rY.useMemo)(()=>Object.fromEntries(t.map(e=>[e.name,e.meta])),[t])}let iQ=r7(o4());function i0(e){let{flags:t}=r4(oF);return t[e]?.enabled??!1}function i1(){let[,e]=(0,rY.useState)(0);return(0,rY.useCallback)(()=>{e(e=>e+1)},[])}function i2(e,t,n={}){return i6(e,t,i5,n)}let i5={getPaginatedUrl:(e,t,n)=>{if(!e)return null;{let o=new URL(tL(e.toString()),window.location.toString());return o.searchParams.set("limit",""+t),o.searchParams.set("startIndex",""+n),o.searchParams.set("totalCount","true"),o.toString()}},getNextUrl:e=>{let t=e?.links?.find(e=>"next"==e.rel)?.uri;if(!t)return null;{let e=new URL(t);return e.host=window.location.host,e.protocol=window.location.protocol,e.toString()}},getTotalCount:e=>e?.totalCount??NaN,getCurrentPageSize:e=>e?.results?.length??NaN,getData:e=>e?.results};function i6(e,t,n,o={}){let{getPaginatedUrl:r,getTotalCount:i,getCurrentPageSize:s,getData:a}=n,{immutable:l,swrConfig:c}=o,u=o.fetcher??tW,[d,m]=(0,rY.useState)(1),p=(0,rY.useRef)(NaN),f=(0,rY.useRef)(NaN),g=(0,rY.useRef)(d),h=(0,rY.useRef)(!1),w=(0,rY.useRef)(!1),_=e?.toString()??"",[y,v]=(0,rY.useState)(_);_!==y&&(v(_),m(1),g.current=1,p.current=NaN,f.current=NaN,h.current=!1,w.current=!1);let b=(d-1)*t,x=(0,rY.useMemo)(()=>r(e,t,b),[e,t,b]),{data:S,...j}=(l?iq():ip())(x,u,c);S?.data&&(p.current=i(S?.data),f.current=s(S?.data),h.current=!0);let k=Math.ceil(p.current/t),N=(0,rY.useCallback)(e=>{if(!Number.isInteger(e)||e<1)return void console.warn(`useServerPagination: ignoring goTo(${e}); page must be a positive integer.`);let n=Math.ceil(p.current/t);!h.current||Number.isNaN(n)||e<=n?(g.current=e,m(e)):console.warn("Invalid attempt to go to out of bounds page: "+e)},[t]);(0,rY.useEffect)(()=>{if(!h.current)return;if(Number.isNaN(p.current)){w.current||(w.current=!0,console.warn(`useServerPagination: ${_} returned no total count, so out-of-range pages cannot be detected.`));return}let e=Math.max(1,Math.ceil(p.current/t));d>e&&(console.warn(`Invalid attempt to go to out of bounds page: ${d}; returning to page ${e}.`),g.current=e,m(e))},[d,t,_,S]);let C=(0,rY.useCallback)(()=>{N(g.current+1)},[N]),E=(0,rY.useCallback)(()=>{N(g.current-1)},[N]);return{data:a(S?.data),totalPages:k,totalCount:p.current,currentPage:d,currentPageSize:f.current,paginated:k>1,showNextButton:d<k,showPreviousButton:d>1,goTo:N,goToNext:C,goToPrevious:E,...j}}function i8(e,t,n={}){return i6(e,t,i4(),n)}function i4(){return{getPaginatedUrl:(e,t,n)=>{if(!e)return null;{let o=new URL(tL(e.toString()),window.location.toString());return o.searchParams.set("_count",""+t),o.searchParams.set("_getpagesoffset",""+n),o.toString()}},getNextUrl:e=>{let t=e?.link?.find(e=>"next"==e.relation)?.url;if(!t)return null;{let e=new URL(t);return e.host=window.location.host,e.protocol=window.location.protocol,e.toString()}},getTotalCount:e=>e?.total??NaN,getCurrentPageSize:e=>e?.entry?.length??NaN,getData:e=>e?.entry?.map(e=>e.resource)}}var i3=n(2216),i7=n.n(i3);function i9(e,t={}){return se(e,i5,t)}function se(e,t,n={}){let{swrInfiniteConfig:o,immutable:r}=n,{getNextUrl:i,getTotalCount:s,getData:a}=t,l=n.fetcher??tW,c=(0,rY.useCallback)((n,o)=>0==n?e?.toString()??null:t.getNextUrl(o.data),[e]),{data:u,size:d,setSize:m,...p}=i7()(c,l,{...o,...r?{revalidateIfStale:!1,revalidateOnFocus:!1,revalidateOnReconnect:!1}:{}}),f=i(u?.[u.length-1].data),g=s(u?.[0]?.data);return{data:u?.flatMap(e=>a(e.data)),totalCount:g,hasMore:null!=f,loadMore:()=>{m((u?.length??0)+1)},nextUri:f,...p}}function st(e,t={}){return sn(e,i5,t)}function sn(e,t,n={}){let o=se(e,t,n),{hasMore:r,error:i,data:s,loadMore:a,isLoading:l,nextUri:c}=o;return((0,rY.useEffect)(()=>{r&&!i&&a()},[r,c]),n.partialData)?o:{...o,data:r||i?void 0:s,isLoading:l||r}}function so(e,t={}){return sn(e,i4(),t)}function sr(e,t={}){return se(e,i4(),t)}function si(){let e="tablet";return document.body.classList.forEach(t=>{switch(t){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 ss(){let[e,t]=(0,rY.useState)(si);return(0,rY.useEffect)(()=>{let e=()=>{t(si())};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),e}let sa=e=>"small-desktop"===e||"large-desktop"===e;function sl(e){let t=(0,rY.useContext)(rQ);(0,rY.useEffect)(()=>(t&&t.moduleName&&(e.componentContext=t),rO(e),()=>{rA(e.name)}),[t,e])}function sc(){return r4(rI)}let su=[];function sd(e=null,t=null){let n=new URLSearchParams;e&&n.set("tag",e),t&&n.set("q",t);let o=n.toString(),{data:r}=st(`${tT}/location${o?"?"+o:""}`,{immutable:!0});return r??su}function sm(e,t=!0){let n=(0,rY.useRef)(null);return(0,rY.useEffect)(()=>{let o=o=>{t&&n.current&&o.target&&o.target instanceof Node&&(n.current.contains(o.target)||e(o))};return window.addEventListener("mousedown",o),window.addEventListener("touchstart",o),()=>{window.removeEventListener("mousedown",o),window.removeEventListener("touchstart",o)}},[e,t]),n}function sp(e){let t=(0,rY.useRef)(null);return(0,rY.useEffect)(()=>{let n=new IntersectionObserver(t=>{for(let n of t)if(n.isIntersecting)return void e()},{threshold:1});return t.current&&n.observe(t.current),()=>{t.current&&n.unobserve(t.current)}},[t.current,e]),t}function sf(e,t={}){let{abortController:n,fetchInit:o,url:r,swrConfig:i}=t,s=iR(),a=(0,rY.useMemo)(()=>o?.signal??n?.signal??s.signal,[n?.signal,o?.signal,s.signal]),l=(0,rY.useCallback)(e=>tW(function(e,t){if(t)return"function"==typeof t?t(e):t;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,r),{...o,signal:a}),[a,o,r]);return ip()(e,l,i)}function sg(e=[],t=10){let[n,o]=(0,rY.useState)(1),r=(0,rY.useMemo)(()=>"number"==typeof t&&t>0?Math.max(1,Math.ceil(e.length/t)):1,[e.length,t]);n>r&&o(r);let i=Math.min(Math.max(1,n),r),s=(0,rY.useMemo)(()=>{let n=(i-1)*t,o=(i+0)*t;return e.slice(n,o)},[e,i,t]),a=(0,rY.useCallback)(e=>{!Number.isInteger(e)||e<1?console.warn(`usePagination: ignoring goTo(${e}); page must be a positive integer.`):o(e)},[]),l=(0,rY.useCallback)(()=>{o(e=>e+1)},[]),c=(0,rY.useCallback)(()=>{o(e=>Math.max(1,e-1))},[]);return(0,rY.useMemo)(()=>({results:s,totalPages:r,currentPage:i,paginated:e.length>t,showNextButton:i<r,showPreviousButton:i>1,goTo:a,goToNext:l,goToPrevious:c}),[s,r,e.length,t,i,a,l,c])}function sh(e,t,n,o){return{pageSizes:(0,rY.useMemo)(()=>{let n=Math.ceil(t/e);return isNaN(n)&&(n=0),[...Array(n).keys()].map(t=>(t+1)*e)},[e,t]),pageItemsCount:(0,rY.useMemo)(()=>e>t?t:e*n>t?e*(n-1)+o:e*n,[e,t,n,o])}}function sw(){let e=/\/patient\/([a-zA-Z0-9\-]+)\/?/.exec(location.pathname);return e&&e[1]}function s_(e){let[t,n]=(0,rY.useState)(e??sw()),{data:o,error:r,isValidating:i}=ip()(t?["patient",t]:null,()=>nZ(t,{}));return(0,rY.useEffect)(()=>{let e=()=>{let e=sw();e!==t&&n(e)};return window.addEventListener("single-spa:routing-event",e),()=>window.removeEventListener("single-spa:routing-event",e)},[t]),(0,rY.useMemo)(()=>({isLoading:i&&!r&&!o,patient:o,patientUuid:t,error:r}),[i,r,o,t])}function sy(){let e=`${tT}/metadatamapping/termmapping?v=custom:(metadataUuid)&code=emr.primaryIdentifierType`,{data:t,error:n,isLoading:o}=ip()(e,tW);return(0,rY.useMemo)(()=>({primaryIdentifierCode:t?.data?.results[0]?.metadataUuid,isLoading:o,error:n}),[t,n,o])}function sv(e,t,n,o){let r=e?.slotName===t&&e.slotModuleName===n?e.components:null,i=new Map;for(let e of o)i.set(e,r?.get(e)??function(e,t,n){let o=r_(n),r=e=>e.extensions[o]?.meta,i=({state:o})=>{let i=r4(oY(),r),s=(0,rY.useMemo)(()=>({moduleName:t,featureName:"",extension:{extensionId:n,extensionSlotName:e,extensionSlotModuleName:t,extensionMeta:i}}),[i]);return(0,r0.jsx)(rQ.Provider,{value:s,children:(0,r0.jsx)(r2,{state:o})})};return i.displayName=`RenderableExtension(${n})`,i}(t,n,e));return{slotName:t,slotModuleName:n,components:i}}function sb(e){let{extensions:t,extensionSlotModuleName:n}=ii(e),o=(0,rY.useMemo)(()=>new Set(e?t.map(e=>e.id):[]),[e,t]),[r,i]=(0,rY.useState)(()=>sv(null,e,n,o)),s=r;return r.slotName===e&&r.slotModuleName===n&&r.components.size===o.size&&[...o].every(e=>r.components.has(e))||i(s=sv(r,e,n,o)),(0,rY.useMemo)(()=>e?t.flatMap(e=>{let t=s.components.get(e.id);return t?[t]:[]}):[],[e,t,s])}function sx(){let e=(0,rY.useRef)(null),[t,n]=(0,rY.useState)(null),o=null;if(!t){if(i){let e=tz().getState();e.loaded&&(o=e.session)}else i=new Promise(t=>{let n=({loaded:n,session:r})=>{n&&(t(r),o=r,e.current&&(e.current(),e.current=null))};n(tz().getState()),o||(e.current=tz().subscribe(n))});if(o)n(o);else throw i}(0,rY.useEffect)(()=>(e.current||(e.current=tz().subscribe(({loaded:e,session:t})=>{e&&(o=t,n(t))})),()=>{e.current&&(e.current(),e.current=null)}),[]);let r=t||o;if(!r)if(i)throw console.warn("useSession is in an unexpected state. Attempting to recover."),i;else throw Error("useSession is in an invalid state.");return r}let sS=({privilege:e,fallback:t,children:n})=>{let[o,r]=(0,rY.useState)(null);return((0,rY.useEffect)(()=>{let e=tz(),t=e.subscribe(({loaded:e,session:t})=>{r(e?t?.user??null:null)}),{loaded:n,session:o}=e.getState();return n&&r(o?.user??null),t},[]),o&&tK(e,o))?(0,r0.jsx)(r0.Fragment,{children:n}):t?(0,r0.jsx)(r0.Fragment,{children:t}):null};var sj=n(4343),sk=n.n(sj),sN=n(3355);let sC=new Map;function sE(){for(let e of Array.from(sC.values()))e()}let sP={setVisitContext:(e,t)=>null==t?{manuallySetVisitUuid:null}:{manuallySetVisitUuid:t.uuid,patientUuid:t.patient?.uuid}};function sI(e){let t=(0,rY.useId)();return(0,rY.useEffect)(()=>{if(e)return sC.set(t,e),()=>{sC.delete(t)}},[t,e]),{...r3(oe(),sP),mutateVisit:sE}}function sO(e,t=n7){let n=(0,rY.useRef)(void 0),{patientUuid:o,manuallySetVisitUuid:r,setVisitContext:i}=sI((0,rY.useCallback)(()=>n.current?.(),[])),s=e&&o==e?r:null,a=`?patient=${e}&v=${t}&includeInactive=false`,l=`/${s}?v=${t}`,{data:c,error:u,mutate:d,isValidating:m}=ip()(e?`${tT}/visit${a}`:null,tW),{data:p,error:f,mutate:g,isValidating:h}=ip()(e&&s?`${tT}/visit${l}`:null,tW),w=(0,rY.useMemo)(()=>c?.data.results.find(e=>null===e.stopDatetime)??null,[c]),_=(0,rY.useMemo)(()=>s&&p?p.data:null,[p,s]),y=(0,rY.useRef)(null);(0,rY.useEffect)(()=>{!m&&w&&o===e&&null===r&&i(w),h||(y.current&&_&&y.current.uuid===_.uuid&&!y.current.stopDatetime&&_.stopDatetime&&i(null),y.current=_)},[_,r,w,m,h,o]);let v=(0,rY.useCallback)(()=>{d(),g()},[d,g]);(0,rY.useEffect)(()=>{n.current=v},[v]);let b=!!(!c||s&&!p),x=!!(s?f:u);return{error:u||f,mutate:v,isValidating:m||h,activeVisit:w,currentVisit:_,currentVisitIsRetrospective:!!s,isLoading:b&&!x}}sj.extend(sN);let sA=[];function sR(){let{data:e}=iq()(n6,n8);return e??sA}let sT=new Map;async function s$(e,t){let n=t.indexOf("#"),o=n>=0,r=o?t.substring(0,n):e,i=o?t.substring(n+1):t,s=await nx(r);return s&&Object.hasOwn(s,i)&&"function"==typeof s[i]?sL(r,s).then(()=>s[i]()):(s?s&&Object.hasOwn(s,i)?console.warn(`The export ${t}, defined in ${e}'s routes.json, is not a function`):console.warn(`${r} does not define a component called "${i}", referenced in ${e}'s routes.json. This cannot be loaded.`):console.warn(`Unknown app ${r} for ${t} defined in ${e}'s routes.json`),sM)}let sM={bootstrap:()=>Promise.resolve(),mount:()=>Promise.resolve(),unmount:()=>Promise.resolve()};async function sL(e,t){if(e in sT)await sT[e];else{let n=t??await nx(e);await (sT[e]=new Promise((t,o)=>{if(Object.hasOwn(n,"startupApp")){let r=n.startupApp;if("function"==typeof r)return Promise.resolve(r()).then(()=>{eO(e),t(null)}).catch(o)}eO(e),t(null)}))}}function sW(e,t){let n=t.name;if(!n)return void console.error(`An extension definition in ${e} is missing an name and thus cannot be
|
|
17
|
+
registered. To fix this, ensure that you define the "name" field inside the
|
|
18
|
+
extension definition.`,t);t.slots&&t.slot&&console.warn(`The extension ${n} from ${e} declares both a 'slots' property and
|
|
19
|
+
a 'slot' property. Only the 'slots' property will be honored.`);let o=t.slots?t.slots:t.slot?[t.slot]:[];if(!t.component)return void console.error(`The extension ${n} from ${e} is missing a 'component' entry and thus cannot be registered.
|
|
20
|
+
To fix this, ensure that you define a 'component' field inside the extension definition.`,t);for(let r of(rb({name:n,load:()=>s$(e,t.component),meta:t.meta||{},order:t.order,moduleName:e,privileges:t.privileges,featureFlag:t.featureFlag,displayExpression:t.displayExpression}),o))rx(r,n)}let sD=[];function sU(e,t){o9(()=>(function(e,t){if(e&&t&&"object"==typeof t){eI(e);let n=t.extensions??[],o=t.modals??[],r=t.featureFlags??[],i=t.workspaceGroups2??[],s=t.workspaceWindows2??[],a=t.workspaces2??[];t.pages?.forEach(t=>{t&&"object"==typeof t&&Object.hasOwn(t,"component")&&(Object.hasOwn(t,"route")||Object.hasOwn(t,"routeRegex")||Object.hasOwn(t,"routes"))?sD.push({...t,appName:e}):console.warn(`A page for ${e} could not be registered as it does not appear to have the required properties`,t)}),n.forEach(t=>{t&&"object"==typeof t&&Object.hasOwn(t,"name")&&Object.hasOwn(t,"component")?sW(e,t):console.warn(`An extension for ${e} could not be registered as it does not appear to have the required properties`,t)}),o.forEach(t=>{if(t&&"object"==typeof t&&Object.hasOwn(t,"name")&&Object.hasOwn(t,"component")){let n;(n=t.name)?t.component?rT({name:n,moduleName:e,load:()=>s$(e,t.component)}):console.error(`The modal ${n} from ${e} is missing a 'component' entry and thus cannot be registered.
|
|
21
|
+
To fix this, ensure that you define a 'component' field inside the modal definition.`,t):console.error(`A modal definition in ${e} is missing an name and thus cannot be
|
|
22
|
+
registered. To fix this, ensure that you define the "name" field inside the
|
|
23
|
+
modal definition.`,t)}else console.warn(`A modal for ${e} could not be registered as it does not appear to have the required properties`,t)}),(Object.hasOwn(t,"workspaces")||Object.hasOwn(t,"workspaceGroups"))&&console.warn(`${e} defines workspaces or workspaceGroups in its routes.json, which are no longer supported and won't be registered. Use workspaces2, workspaceWindows2 and workspaceGroups2 instead.`),rU(e,i);for(let t of(rB(e,s),s))t.icon&&sW(e,{name:t.name,component:t.icon,slot:t.group,order:t.order});rF(e,a),r.forEach(t=>{if(t&&"object"==typeof t&&Object.hasOwn(t,"flagName"))t.flagName?t.label?t.description?oH(t.flagName,t.label,t.description):console.error(`A feature flag definition in ${e} is missing a description and thus cannot be registered.
|
|
24
|
+
To fix this, ensure that you define the "description" field inside the feature flag definition.`,t):console.error(`A feature flag definition in ${e} is missing a description and thus cannot be registered.
|
|
25
|
+
To fix this, ensure that you define the "label" field inside the feature flag definition.`,t):console.error(`A feature flag definition in ${e} is missing a name and thus cannot be registered.
|
|
26
|
+
To fix this, ensure that you define the "name" field inside the feature flag definition.`,t);else console.warn(`A feature flag for ${e} could not be registered as it does not appear to have the required properties`,t)})}})(e,t))}function sB(){sD.sort((e,t)=>e.appName.localeCompare(t.appName,"en"));let e=new Map;for(let t of sD){e.has(t.appName)?e.set(t.appName,e.get(t.appName)+1):e.set(t.appName,0);let n=e.get(t.appName),o=`${t.appName}-page-${n}`,r=t.containerDomId??"omrs-apps-container",i=document.getElementById(r),s=`single-spa-application:${o}`;if(i){let e=document.createElement("div");e.id=s,i?.appendChild(e)}else throw Error(`${t.appName} ${t.component} cannot be mounted to "${r}"; DOM element does not exist.`);!function(e,t){let n=void 0!==t.route?t.route:void 0!==t.routeRegex&&new RegExp(t.routeRegex);if(!1===n)return console.warn(`A registered page definition is missing a route and thus cannot be registered.
|
|
27
|
+
To fix this, ensure that you define the "route" (or alternatively the "routeRegex") field inside the extension definition.`,e);if(!t.component)return console.warn(`A registered page definition is missing a component and thus cannot be registered.
|
|
28
|
+
To fix this, ensure that you define the "component" field inside the page definition.`,e);let o=function(e,{featureFlag:t}){return t?n=>!!oz(t)&&e(n):e}(function e(t){if(Array.isArray(t)){let n=t.map(e);return e=>n.some(t=>t(e))}return"string"==typeof t?(0,ta.fz)(window.getOpenmrsSpaBase()+t):t instanceof RegExp?e=>t.test(e.pathname.replace(window.getOpenmrsSpaBase(),"")):()=>t}(n),t);(0,ta.AG)(e,()=>s$(t.appName,t.component),o)}(o,t)}}let sF={PHONE_MIN:0,PHONE_MAX:600,TABLET_MIN:601,TABLET_MAX:1023,SMALL_DESKTOP_MIN:1024,SMALL_DESKTOP_MAX:1439,LARGE_DESKTOP_MIN:1440,LARGE_DESKTOP_MAX:Number.MAX_SAFE_INTEGER};function sH(){document.body.classList.toggle("omrs-breakpoint-lt-tablet",window.innerWidth<sF.TABLET_MIN),document.body.classList.toggle("omrs-breakpoint-gt-phone",window.innerWidth>sF.PHONE_MAX),document.body.classList.toggle("omrs-breakpoint-gt-tablet",window.innerWidth>sF.TABLET_MAX),document.body.classList.toggle("omrs-breakpoint-lt-desktop",window.innerWidth<sF.SMALL_DESKTOP_MIN),document.body.classList.toggle("omrs-breakpoint-lt-small-desktop",window.innerWidth<sF.SMALL_DESKTOP_MIN),document.body.classList.toggle("omrs-breakpoint-lt-large-desktop",window.innerWidth<sF.LARGE_DESKTOP_MIN),document.body.classList.toggle("omrs-breakpoint-gt-small-desktop",window.innerWidth>sF.SMALL_DESKTOP_MAX)}let sV=!1;function sz(){sV||(window.addEventListener("resize",sH),sH(),sV=!0)}var sG=n(5530),sq=n.n(sG);function sJ({title:e,children:t}){let n="tablet"===ss();return(0,r0.jsxs)("div",{className:sq()({"-esm-implementer-tools__card-header-module__tabletHeader___Vkmd-":n,"-esm-implementer-tools__card-header-module__desktopHeader___ocWGq":!n}),children:[(0,r0.jsx)("h4",{children:e}),t]})}let sK=["red","magenta","purple","blue","teal","cyan","gray","green","warm-gray","cool-gray","high-contrast","outline"],sX={primaryColor:{_type:z.String,_description:"The color for displaying primary diagnoses tags",_default:"blue",_validators:[e7.oneOf(sK)]},secondaryColor:{_type:z.String,_description:"The color for displaying secondary diagnoses tags",_default:"gray",_validators:[e7.oneOf(sK)]}},sY={"Brand color #1":{_default:"#005d5d",_type:z.String},"Brand color #2":{_default:"#004144",_type:z.String},"Brand color #3":{_default:"#007d79",_type:z.String},excludePatientIdentifierCodeTypes:{uuids:{_type:z.Array,_description:"List of UUIDs of patient identifier types to exclude from rendering in the patient banner",_default:[],_elements:{_type:z.UUID}}},implementationName:{_type:z.String,_description:"A name of the place (or authority) where all possible locations a user can choose are located.",_default:"Clinic"},logo:{src:{_type:z.String,_default:"",_description:"The path or URL to the logo shown on the login page and while the server is starting up. If set to an empty string, the default OpenMRS logo is used.",_validators:[e7.isUrl]},alt:{_type:z.String,_default:"Logo",_description:"The alternative text for the logo image, displayed when the image cannot be loaded or on hover."}},patientPhotoConceptUuid:{_type:z.ConceptUuid,_default:"736e8771-e501-4615-bfa7-570c03f4bef5",_description:"Used to look up the patient photo, which is stored as an attachment obs. Set to `null` in order to disable the feature and use only generated avatars. To remove the avatars entirely, use extension configuration's `remove` feature."},preferredCalendar:{_type:z.Object,_description:"Keys should be locale codes, and values should be the preferred calendar for that locale. For example, {'am': 'ethiopic'}.",_default:{am:"ethiopic"},_elements:{_validators:[e7.oneOf(["buddhist","chinese","coptic","dangi","ethioaa","ethiopic","gregory","hebrew","indian","islamic","islamic-umalqura","islamic-tbla","islamic-civil","islamic-rgsa","iso8601","japanese","persian","roc","islamicc"])]}},preferredDateLocale:{_type:z.Object,_description:"Allows setting the locale used for date formatting for any browser locale. Does not affect time formatting. Keys should be locale codes, and values should be the preferred locale for formatting dates. For example, {'en': 'en-US', 'fr-CA': 'en-CA'}.",_default:{en:"en-GB"},_elements:{_type:z.String}},diagnosisTags:sX};var sZ=n(8326);let sQ={"carbon.table.batch.cancel":"cancel","carbon.table.batch.items.selected":"batchActionsItemsSelected","carbon.table.batch.item.selected":"batchActionItemSelected","carbon.table.batch.selectAll":"selectAll"},s0=e=>(0,r0.jsx)(sZ.TableBatchActions,{translateWithId:(e,t)=>{let n=sQ[e];return n?tb(n,e,t):e},...e}),s1="-esm-implementer-tools__custom-overflow-menu-module__container___8PykS",s2="-esm-implementer-tools__custom-overflow-menu-module__menu___qsOLn",s5="-esm-implementer-tools__custom-overflow-menu-module__show___BserJ",s6="-esm-implementer-tools__custom-overflow-menu-module__overflowMenuButton___n86Gz",s8=(0,rY.createContext)(null);function s4(){let e=(0,rY.useContext)(s8);if(!e)throw Error("useCustomOverflowMenu must be used within a CustomOverflowMenu");return e}function s3({menuTitle:e,children:t}){let[n,o]=rZ().useState(!1),r=sm(()=>o(!1),n),i="tablet"===ss(),s=(0,rY.useCallback)(()=>o(e=>!e),[]),a=(0,rY.useRef)(null),l=(0,rY.useRef)(null),c=(0,rY.useId)(),u=`custom-overflow-menu-trigger-${c}`,d=`custom-overflow-menu-${c}`,m=(0,rY.useCallback)(()=>{o(!1),a.current?.focus()},[]),p=(0,rY.useMemo)(()=>({closeMenu:m}),[m]),f=(0,rY.useCallback)(e=>{"Escape"===e.key&&n&&(e.stopPropagation(),m())},[m,n]),g=rY.Children.toArray(t);(0,rY.useEffect)(()=>{if(n&&l.current){let e=l.current.querySelector('[role="menuitem"]:not([disabled])');e?.focus()}},[n]);let h=(0,rY.useCallback)(({currentIndex:e,direction:t})=>{let n=l.current?.querySelectorAll('[role="menuitem"]:not([disabled])');if(!n?.length)return;let o=document.activeElement?.closest?.('[role="menuitem"]')??document.activeElement,r=Array.from(n).indexOf(o);if(-1===r)return void n[t>0?0:n.length-1]?.focus();let i=r+t,s=i<0?n.length-1:i>=n.length?0:i;n[s]?.focus()},[]),w=g.map((e,t)=>(0,rY.isValidElement)(e)?(0,rY.cloneElement)(e,{closeMenu:m,handleOverflowMenuItemFocus:h,index:t}):e);return(0,r0.jsxs)("div",{"data-overflow-menu":!0,className:sq()("cds--overflow-menu",s1),ref:r,children:[(0,r0.jsx)("button",{className:sq()("cds--btn","cds--btn--ghost","cds--overflow-menu__trigger",{"cds--overflow-menu--open":n},s6),"aria-controls":d,"aria-expanded":n,"aria-haspopup":"true",id:u,onClick:s,onKeyDown:f,ref:a,children:e}),(0,r0.jsxs)("div",{className:sq()("cds--overflow-menu-options","cds--overflow-menu--flip",s2,{[s5]:n}),"aria-labelledby":u,"data-floating-menu-direction":"bottom",id:d,onKeyDown:f,ref:l,role:"menu",tabIndex:-1,children:[(0,r0.jsx)("ul",{className:sq()("cds--overflow-menu-options__content",{"cds--overflow-menu-options--lg":i}),children:(0,r0.jsx)(s8.Provider,{value:p,children:w})}),(0,r0.jsx)("span",{})]})]})}function s7(e){let t=(0,rY.useContext)(s8);return(0,r0.jsx)(sZ.OverflowMenuItem,{...e,closeMenu:t?.closeMenu})}var s9=n(2277),ae=n(4194);let at=["omrs-icon-activity","omrs-icon-add","omrs-icon-arrow-down","omrs-icon-arrow-left","omrs-icon-arrow-right","omrs-icon-arrow-up","omrs-icon-baby","omrs-icon-calendar-heat-map","omrs-icon-calendar","omrs-icon-caret-down","omrs-icon-caret-left","omrs-icon-caret-right","omrs-icon-caret-up","omrs-icon-chart-average","omrs-icon-chart-line","omrs-icon-checkmark-filled","omrs-icon-checkmark-outline","omrs-icon-chemistry","omrs-icon-chevron-down","omrs-icon-chevron-left","omrs-icon-chevron-right","omrs-icon-chevron-up","omrs-icon-close","omrs-icon-close-filled","omrs-icon-close-outline","omrs-icon-document","omrs-icon-document-attachment","omrs-icon-download","omrs-icon-drug-order","omrs-icon-edit","omrs-icon-event-schedule","omrs-icon-events","omrs-icon-gender-female","omrs-icon-gender-male","omrs-icon-gender-other","omrs-icon-gender-unknown","omrs-icon-generic-order-type","omrs-icon-group","omrs-icon-group-access","omrs-icon-hospital-bed","omrs-icon-image-medical","omrs-icon-information","omrs-icon-information-filled","omrs-icon-information-square","omrs-icon-inventory-management","omrs-icon-lab-order","omrs-icon-list-checked","omrs-icon-location","omrs-icon-material-order","omrs-icon-maximize","omrs-icon-medication","omrs-icon-message-queue","omrs-icon-microscope","omrs-icon-mobile-check","omrs-icon-money","omrs-icon-mother","omrs-icon-movement","omrs-icon-overflow-menu--horizontal","omrs-icon-overflow-menu--vertical","omrs-icon-password","omrs-icon-pedestrian-family","omrs-icon-pen","omrs-icon-printer","omrs-icon-procedure-order","omrs-icon-programs","omrs-icon-renew","omrs-icon-referral-order","omrs-icon-report","omrs-icon-reset","omrs-icon-save","omrs-icon-search","omrs-icon-settings","omrs-icon-shopping-cart","omrs-icon-shopping-cart--arrow-down","omrs-icon-sticky-note-add","omrs-icon-switcher","omrs-icon-syringe","omrs-icon-table-of-contents","omrs-icon-table","omrs-icon-time","omrs-icon-tools","omrs-icon-translate","omrs-icon-trash-can","omrs-icon-tree-view--alt","omrs-icon-two-factor-authentication","omrs-icon-user-avatar","omrs-icon-user-follow","omrs-icon-user-xray","omrs-icon-user","omrs-icon-view-off","omrs-icon-view","omrs-icon-warning"],an=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-activity",iconProps:e})})),ao=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-add",iconProps:e})})),ar=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-arrow-down",iconProps:e})})),ai=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-arrow-left",iconProps:e})})),as=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-arrow-right",iconProps:e})})),aa=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-arrow-up",iconProps:e})})),al=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-baby",iconProps:e})})),ac=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-calendar-heat-map",iconProps:e})})),au=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-calendar",iconProps:e})})),ad=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-caret-down",iconProps:e})})),am=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-caret-left",iconProps:e})})),ap=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-caret-right",iconProps:e})})),af=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-caret-up",iconProps:e})})),ag=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-chart-average",iconProps:e})})),ah=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-chart-line",iconProps:e})})),aw=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-checkmark-filled",iconProps:e})})),a_=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-checkmark-outline",iconProps:e})})),ay=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-chemistry",iconProps:e})})),av=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-chevron-down",iconProps:e})})),ab=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-chevron-left",iconProps:e})})),ax=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-chevron-right",iconProps:e})})),aS=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-chevron-up",iconProps:e})})),aj=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-close",iconProps:e})})),ak=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-close-filled",iconProps:e})})),aN=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-close-outline",iconProps:e})})),aC=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-document",iconProps:e})})),aE=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-document-attachment",iconProps:e})})),aP=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-download",iconProps:e})})),aI=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-drug-order",iconProps:e})})),aO=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-edit",iconProps:e})})),aA=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-event-schedule",iconProps:e})})),aR=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-events",iconProps:e})})),aT=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-gender-female",iconProps:e})})),a$=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-gender-male",iconProps:e})})),aM=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-gender-other",iconProps:e})})),aL=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-gender-unknown",iconProps:e})})),aW=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-generic-order-type",iconProps:e})})),aD=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-group",iconProps:e})})),aU=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-group-access",iconProps:e})})),aB=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-hospital-bed",iconProps:e})})),aF=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-image-medical",iconProps:e})})),aH=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-information",iconProps:e})})),aV=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-information-filled",iconProps:e})})),az=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-information-square",iconProps:e})})),aG=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-inventory-management",iconProps:e})})),aq=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-lab-order",iconProps:e})})),aJ=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-list-checked",iconProps:e})})),aK=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-location",iconProps:e})})),aX=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-material-order",iconProps:e})})),aY=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-maximize",iconProps:e})})),aZ=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-medication",iconProps:e})})),aQ=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-message-queue",iconProps:e})})),a0=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-microscope",iconProps:e})})),a1=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-mobile-check",iconProps:e})})),a2=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-money",iconProps:e})})),a5=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-mother",iconProps:e})})),a6=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-movement",iconProps:e})})),a8=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-overflow-menu--horizontal",iconProps:e})})),a4=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-overflow-menu--horizontal",iconProps:e})})),a3=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-password",iconProps:e})})),a7=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-pedestrian-family",iconProps:e})})),a9=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-pen",iconProps:e})})),le=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-printer",iconProps:e})})),lt=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-procedure-order",iconProps:e})})),ln=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-programs",iconProps:e})})),lo=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-referral-order",iconProps:e})})),lr=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-renew",iconProps:e})})),li=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-report",iconProps:e})})),ls=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-reset",iconProps:e})})),la=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-save",iconProps:e})})),ll=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-search",iconProps:e})})),lc=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-settings",iconProps:e})})),lu=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-switcher",iconProps:e})})),ld=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-shopping-cart",iconProps:e})})),lm=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-shopping-cart--arrow-down",iconProps:e})})),lp=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-sticky-note-add",iconProps:e})})),lf=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-syringe",iconProps:e})})),lg=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-table-of-contents",iconProps:e})})),lh=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-table",iconProps:e})})),lw=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-time",iconProps:e})})),l_=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-tools",iconProps:e})})),ly=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-translate",iconProps:e})})),lv=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-trash-can",iconProps:e})})),lb=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-tree-view--alt",iconProps:e})})),lx=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-two-factor-authentication",iconProps:e})})),lS=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-user-avatar",iconProps:e})})),lj=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-user-follow",iconProps:e})})),lk=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-user-xray",iconProps:e})})),lN=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-user",iconProps:e})})),lC=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-view-off",iconProps:e})})),lE=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-view",iconProps:e})})),lP=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(lM,{ref:t,icon:"omrs-icon-warning",iconProps:e})})),lI=lP,lO=aE,lA=aJ,lR=aF,lT=lm,l$=(0,rY.memo)((0,rY.forwardRef)(function({icon:e,fallback:t,...n},o){let r=(0,rY.useRef)(e?document.getElementById(e):void 0);return(0,rY.useEffect)(()=>{let t=document.getElementById("omrs-svgs-container"),n=new MutationObserver(t=>{for(let n of t)"childList"===n.type&&(r.current=e?document.getElementById(e):void 0)});return t&&n.observe(t,{childList:!0}),()=>n.disconnect()},[e]),(0,r0.jsx)(iA,{value:r.current,fallback:t,children:(0,r0.jsx)(lM,{ref:o,icon:e,iconProps:n})})})),lM=(0,rY.memo)((0,rY.forwardRef)(function({icon:e,iconProps:t},n){let{className:o,fill:r,size:i}=Object.assign({},{fill:"currentColor",size:20},t);(i<=0||i>72)&&(console.error(`Invalid size '${i}' specified for ${e}. Defaulting to 20.`),i=20);let s=(0,rY.useRef)(null);return(0,rY.useImperativeHandle)(n,()=>s.current),(0,rY.useEffect)(()=>{s.current&&"currentColor"!==r&&s.current.style.setProperty("--omrs-icon-fill",r)},[]),(0,r0.jsx)("svg",{ref:s,className:sq()("omrs-icon","-esm-implementer-tools__icons-module__icon___BfFhd",o),height:i,width:i,viewBox:"0 0 16 16",children:(0,r0.jsx)("use",{href:`#${e}`})})})),lL=({path:e,title:t,basePath:n,icon:o})=>{let{t:r}=(0,id.useTranslation)(),i=(0,s9.zy)(),s=(0,rY.useMemo)(()=>{if(!e)return!1;let t=e.startsWith("/")?e.slice(1):e;if(t.startsWith("http"))return t===window.location.href;let n=t.split("/").map(e=>decodeURIComponent(e)),o=(i.pathname??"").split("/").slice(1).map(e=>decodeURIComponent(e));return o.some((e,t)=>n.every((e,n)=>o[t+n]===e))},[i.pathname,e]);return(0,r0.jsx)("div",{children:(0,r0.jsx)(r1,{className:sq()("cds--side-nav__link",{"active-left-nav-link":s}),to:`${n}/${encodeURIComponent(e)}`,children:(0,r0.jsxs)("span",{className:"-esm-implementer-tools__dashboard-module__menu___ds1tf",children:[(0,r0.jsx)(l$,{icon:o,className:"-esm-implementer-tools__dashboard-module__icon___4Zrrh",size:16}),(0,r0.jsx)("span",{children:r(t)})]})})},e)};function lW(e){return function({basePath:t}){return(0,r0.jsx)(ae.Kd,{children:(0,r0.jsx)(lL,{basePath:t,...e})})}}var lD=n(7715),lU=n(7532),lB=n(3692),lF=n(7615),lH=n(700),lV=n(6816),lz=n(1168);function lG(e){return rZ().createElement(lz.C,e)}var lq=n(3010),lJ=n(6513),lK=n(6190);function lX(e,t,n=!1){if(null==e)return n?e:void 0;if("string"==typeof e&&!e)return n?null:void 0;if(e instanceof lq.ng||e instanceof lq._l||e instanceof lq.Ip)return t?(0,lJ.yP)(e,t):e;{let n=sk()(e).toDate(),o=new lq.ng(n.getFullYear(),n.getMonth()+1,n.getDate());return t?(0,lJ.yP)(o,t):o}}function lY(e){if(e)return e.toDate((0,lK.Xj)())}var lZ=n(9002);function lQ(e){if("string"==typeof e&&0!==e.trim().length)try{return new Intl.Locale(e.replace(/[_@]/g,"-")).toString()}catch{return}}function l0(e){let t=e??"",n=lQ(t);if(!n)return t;try{return new Intl.DisplayNames([n],{type:"language"}).of(n)??t}catch{return t}}function l1(){let e=window.i18next.language,t=lQ(e)??e;return"ht"===t&&(t="fr-HT"),t}var l2=n(7883),l5=n(424),l6=n(1492),l8=n(8271);function l4(e,t){var n=function(e,t){if(!t.has(e))throw TypeError("attempted to get private field on non-instance");return t.get(e)}(e,t);return n.get?n.get.call(e):n.value}sj.extend(sN),sj.extend(l6),sj.extend(l5);let l3="YYYY-MM-DDTHH:mm:ss.SSSZZ",l7=/^(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?$/;function l9(e,t){let n=l7.exec(e);if(!n)return(0,l2.CD)(e,t);let o=Number(n[1]),r=void 0===n[2]?void 0:Number(n[2]),i=void 0===n[3]?void 0:Number(n[3]),s=new Date(0);return(s.setUTCFullYear(o,(r??1)-1,i??1),s.getUTCFullYear()!==o||s.getUTCMonth()!==(r??1)-1||s.getUTCDate()!==(i??1))?{invalid:`Invalid ISO calendar date '${e}'`}:{year:o,...void 0!==r&&{month:r},...void 0!==i&&{day:i}}}function ce(e){return null!=e&&28===e.trim().length&&"T"===(e=e.trim())[10]&&":"===e[13]&&":"===e[16]&&"."===e[19]&&("+"===e[23]||"-"===e[23])&&sj(e,l3).isValid()}function ct(e){return sj(e).isToday()}function cn(e){return ce(e)?sj(e,l3).toDate():null}function co(e,t=!1){let n=sj(e);return t&&(n=n.utc()),n.format(l3)}function cr(e){return sj(e).toDate()}var ci=new WeakMap;let cs=new class{register(e,t){l4(this,ci).set(e,t)}getCalendar(e){if(!e)return;if(e.calendar)return e.calendar;if(e.region){let t=`${e.language}-${e.region}`;if(l4(this,ci).has(t))return l4(this,ci).get(t)}if(e.language&&l4(this,ci).has(e.language))return l4(this,ci).get(e.language);let t=new Intl.DateTimeFormat(e.toString()).resolvedOptions().calendar;return l4(this,ci).set(`${e.language}${e.region?`-${e.region}`:""}`,t),t}constructor(){!function(e,t,n){if(t.has(e))throw TypeError("Cannot initialize the same private elements twice on an object");t.set(e,n)}(this,ci,{writable:!0,value:new Map})}};function ca(e,t){cs.register(e,t)}function cl(e){let t=e??l1();return cs.getCalendar(t instanceof Intl.Locale?t:new Intl.Locale(t))}let cc={mode:"standard",time:"for today",day:!0,month:!0,year:!0,noToday:!1};function cu(e,t={}){let n=l9(e,l1());if(n.invalid)return console.warn(`Could not parse invalid date '${e}'`),null;!(0,l8.A)(n.day)&&(0,l8.A)(n.month)&&(n=Object.assign({},(0,H.A)(n,"day"),{month:n.day})),n.month&&(n.month-=1),n.day&&(n=Object.assign({},(0,H.A)(n,"day"),{date:n.day}));let o=sj().set(n).toDate();return(0,l8.A)(n.year)&&(t.year=!1),(0,l8.A)(n.month)&&(t.month=!1),(0,l8.A)(n.date)&&(t.day=!1),cd(o,t)}function cd(e,t){let n,o=t?.locale??l1(),r=new Intl.Locale(o),{calendar:i,mode:s,time:a,day:l,month:c,year:u,noToday:d,numberingSystem:m}={...cc,...{noToday:"am"===r.language},...t},p={calendar:i??cl(r),year:u?"numeric":void 0,month:c?"short":void 0,day:l?"2-digit":void 0,numberingSystem:m},f=sj(e).isToday();if(f&&!d)n=(n=new Intl.RelativeTimeFormat(o,{numeric:"auto"}).format(0,"day"))[0].toLocaleUpperCase(o)+n.slice(1);else{"en"===r.language&&(o="en-GB");let t=new Intl.DateTimeFormat(o,p).formatToParts(e);("en"===r.language||"am"===r.language)&&"standard"==s&&u&&l&&(t=t.map(cm("-"))),"wide"==s&&(t=t.map(cm(" — "))),"ethiopic"===p.calendar&&(t=t.filter((e,t,n)=>"era"!==e.type&&("literal"!==e.type||!(t<n.length-1)||"era"!==n[t+1].type))),n=t.map(e=>e.value).join("")}return(!0===a||f&&"for today"===a)&&(n+=`, ${cp(e)}`),n}let cm=e=>(t,n,o)=>"literal"!==t.type||" "!==t.value||n<o.length-1&&"era"===o[n+1].type?t:{type:"literal",value:e};function cp(e){return e.toLocaleTimeString(l1(),{hour:"2-digit",minute:"2-digit"})}function cf(e,t){return cd(e,{...t,time:!0})}function cg(e,t){let n=cl("string"==typeof t?new Intl.Locale(t):t);return n?(0,lJ.yP)(e,(0,lZ.d)(n)):e}function ch(e,t){return new Intl.DurationFormat(l1(),t).format(e)}function cw(e,t){if(null==e)return null;if("string"==typeof e){let n=l9(e,l1());return n.invalid?(console.warn(`Could not interpret '${e}' as a date`),null):(n.day&&!n.month&&(n={...(0,H.A)(n,"day"),...{month:n.day}}),n.month&&(n.month-=1),n.day&&(n={...(0,H.A)(n,"day"),...{date:n.day}}),sj(t).set(n))}return sj(e)}let c_=["years","months","days","hours","minutes","seconds"],cy={second:"seconds",minute:"minutes",hour:"hours",day:"days",month:"months",year:"years"},cv={seconds:45,minutes:45,hours:22,days:26,months:11,years:1/0};function cb(e,t=sj(),n){let o,r=sj(t),i=cw(e,r);if(null==i)return null;if("string"==typeof n){let e=cy[n]??n;return{[e]:r.diff(i,e)}}let{thresholds:s,largestUnit:a,smallestUnit:l}=n??{};if(void 0!==a||void 0!==l){let e,t=l?cy[l]??l:void 0;return e="auto"===a||void 0===a?function(e,t,n){let o=c_.indexOf(n);for(let r=0;r<c_.length;r++){let i=c_[r];if(t.diff(e,i)>0)return r<=o?i:n}return n}(i,r,t??"seconds"):cy[a]??a,function(e,t,n,o){let r=c_.indexOf(n),i=c_.indexOf(o),s=c_.slice(r,i+1),a={},l=e;for(let e of s){let n=t.diff(l,e);a[e]=n,l=l.add(n,e)}return a}(i,r,e,t??e)}let c=(o=function(e){let t={...cv};if(e)for(let[n,o]of Object.entries(e))void 0!==o&&(t[cy[n]??n]=o);return t}(s),r.diff(i,"seconds")<o.seconds?"seconds":r.diff(i,"minutes")<o.minutes?"minutes":r.diff(i,"hours")<o.hours?"hours":r.diff(i,"days")<o.days?"days":r.diff(i,"months")<o.months?"months":"years");return{[c]:r.diff(i,c)}}let cx={style:"short",localeMatcher:"lookup"};function cS(e,t=sj(),n){let o=cb(e,t,n);return null==o?null:ch(o,"object"==typeof n&&n.formatOptions?{...cx,...n.formatOptions}:cx)}let cj=(0,rY.createContext)(null);function ck(){let e=iH({externalModuleName:"@openmrs/esm-styleguide"}).preferredDateLocale,t=(0,rY.useMemo)(()=>{let t=l1();return e[t]&&(t=e[t]),t},[window.i18next.language]),n=(0,rY.useMemo)(()=>{let e=cl(t);return void 0!==e?(0,lZ.d)(e):void 0},[t]),o=(0,rY.useMemo)(()=>new Intl.Locale(t,{calendar:n?.identifier}),[t,n]),r=(0,rY.useMemo)(()=>n?(0,lJ.yP)((0,lK.Ec)((0,lK.Xj)()),n):(0,lK.Ec)((0,lK.Xj)()),[n]);return{calendar:n,intlLocale:o,today_:r}}let cN=new lq.ng(1793,1,1);var cC=n(5830),cE=n(5354),cP=n(4745),cI=n(1202);function cO(e,t){return Number.parseInt(cd(e,{calendar:t.calendar,locale:t.baseName,day:!1,month:!1,noToday:!0,numberingSystem:"latn"}))}let cA=(0,rY.forwardRef)(function(e,t){let{className:n}=e,o=(0,rY.useContext)(cC.f2),r=(0,rY.useContext)(cC._I),i=o??r,s=(0,rY.useContext)(cj),a=(0,lK.Xj)(),l=cd(i.visibleRange.start.toDate(a),{calendar:s.calendar,locale:s.baseName,day:!1,year:!1,noToday:!0}),c=cO(i.visibleRange.start.toDate(a),s),u=i.maxValue?cO(i.maxValue.toDate(a),s):void 0,d=i.minValue?cO(i.minValue.toDate(a),s):void 0,m=(0,rY.useCallback)(e=>{i.setFocusedDate(i.focusedDate.cycle("year",e-i.focusedDate.year))},[]);return i&&(0,r0.jsxs)("span",{ref:t,className:n,children:[(0,r0.jsx)("span",{children:l}),(0,r0.jsxs)(cP.oz,{formatOptions:{useGrouping:!1},maxValue:u,minValue:d,onChange:m,value:c,children:[(0,r0.jsx)(cI.p,{}),(0,r0.jsxs)(lF.Y,{children:[(0,r0.jsx)(lH.$,{slot:"increment",children:(0,r0.jsx)(af,{size:8})}),(0,r0.jsx)(lH.$,{slot:"decrement",children:(0,r0.jsx)(ad,{size:8})})]})]})]})});var cR=n(9588);let cT="-esm-implementer-tools__datepicker-module__inputGroup___+4zks",c$="-esm-implementer-tools__datepicker-module__inputSegment___wiExn",cM="-esm-implementer-tools__datepicker-module__dateInputWrapper___uiyAC",cL="-esm-implementer-tools__datepicker-module__invalidText___SxtTL",cW="-esm-implementer-tools__datepicker-module__flatButton___UU1Qp",cD="-esm-implementer-tools__datepicker-module__flatButtonMd___fhR-1",cU="-esm-implementer-tools__datepicker-module__flatButtonSm___5INZ7",cB="-esm-implementer-tools__datepicker-module__flatButtonLg___RFMrl";function cF({children:e}){let t=(0,rY.useContext)(lU.Pg),n=(0,rY.useContext)(lU.a8),o=t??n,r=sm(()=>o?.close());return(0,r0.jsx)(cR.lG,{className:"-esm-implementer-tools__datepicker-module__dialog___qllIf",ref:r,children:e})}let cH=(0,rY.forwardRef)(function({variant:e,today_:t,minDate:n,maxDate:o},r){let i="range"===e,s=i?cC._e:cC.Vv;return(0,r0.jsx)(cE.A,{ref:r,className:"-esm-implementer-tools__datepicker-module__popover___16UMX",placement:"bottom start",offset:1,isNonModal:!0,children:(0,r0.jsx)(cF,{children:(0,r0.jsxs)(s,{...i?{minValue:n,maxValue:o,className:"cds--date-picker__calendar"}:{},children:[(0,r0.jsxs)("header",{className:"-esm-implementer-tools__datepicker-module__header___WAVlD",children:[(0,r0.jsx)(lH.$,{className:sq()(cW,cD),slot:"previous",children:(0,r0.jsx)(ab,{size:16})}),(0,r0.jsx)(cA,{className:"-esm-implementer-tools__datepicker-module__monthYear___A3aKF"}),(0,r0.jsx)(lH.$,{className:sq()(cW,cD),slot:"next",children:(0,r0.jsx)(ax,{size:16})})]}),(0,r0.jsx)(cC.r8,{className:"-esm-implementer-tools__datepicker-module__calendarGrid___6qRB2",children:e=>(0,r0.jsx)(cC.Zr,{className:sq()("cds--date-picker__day",{"-esm-implementer-tools__datepicker-module__today___TZl6M":0===t.compare(e)}),date:e},e.toString())})]})})})});var cV=n(8017),cz=n(9774),cG=n(7956);let cq=(0,rY.forwardRef)(function(e,t){let n=(0,rY.useContext)(lU.Pg),[o,r]=(0,lD.JT)({slot:e.slot},t,cz.cQ),{locale:i}=(0,lz.Y)(),s=(0,cG.F)({...o,locale:i,createCalendar:lZ.d}),a=(0,rY.useRef)(null),{fieldProps:l,inputProps:c}=(0,cV.cJ)({...o,inputRef:a},s,r),u=(0,rY.useCallback)(()=>{s.isDisabled||n.toggle()},[]);return(0,r0.jsxs)(lD.Kq,{values:[[cz.$,s],[cI.E,{...c,ref:a}],[lF.t,{...l,ref:r,isInvalid:s.isInvalid}]],children:[(0,r0.jsx)(lF.Y,{...e,id:e.id,ref:t,slot:e.slot||void 0,className:e.className,isDisabled:s.isDisabled,isInvalid:s.isInvalid,onClick:u,children:s.segments.map((t,n)=>(0,rY.cloneElement)(e.children(t),{key:n}))}),(0,r0.jsx)(cI.p,{})]})}),cJ=(0,rY.forwardRef)(function(e,t){let n=(0,rY.useContext)(lU.Pg),o=(0,rY.useContext)(lU.a8);return(n??o).isInvalid?(0,r0.jsx)(lP,{ref:t,size:16,...e}):(0,r0.jsx)(au,{ref:t,size:16,...e})});var cK=n(64),cX=n(5503),cY=n(1697),cZ=n(7866),cQ=n(8035),c0=n(2231);let c1=(0,rY.forwardRef)(function({segment:e,...t},n){let o=(0,rY.useContext)(cz.$),r=(0,cK.U)(n),{segmentProps:i}=(0,cX.V)(e,o,r),{focusProps:s,isFocused:a,isFocusVisible:l}=(0,cY.o)(),{hoverProps:c,isHovered:u}=(0,cZ.M)({...t,isDisabled:o.isDisabled||"literal"===e.type}),d=function(e){let{className:t,style:n,children:o,defaultClassName:r,defaultChildren:i,defaultStyle:s,values:a}=e;return(0,rY.useMemo)(()=>{let e,l,c;return e="function"==typeof t?t({...a,defaultClassName:r}):t,l="function"==typeof n?n({...a,defaultStyle:s||{}}):n,c="function"==typeof o?o({...a,defaultChildren:i}):null==o?i:o,{className:e??r,style:l||s?{...s,...l}:void 0,children:c??i,"data-rac":""}},[t,n,o,r,i,s,a])}({...t,values:{...e,isReadOnly:!e.isEditable,isInvalid:o.isInvalid,isDisabled:o.isDisabled,isHovered:u,isFocused:a,isFocusVisible:l},defaultChildren:e.text}),m=(0,rY.useCallback)(e=>{e.stopPropagation()},[]);return(0,r0.jsx)("span",{...(0,cQ.v)((0,c0.$)(t),i,s,c),...d,ref:r,style:i.style,"data-placeholder":e.isPlaceholder||void 0,"data-invalid":o.isInvalid||void 0,"data-readonly":!e.isEditable||void 0,"data-disabled":o.isDisabled||void 0,"data-type":e.type,"data-hovered":u||void 0,"data-focused":a||void 0,"data-focus-visible":l||void 0,onClick:m})}),c2={short:!1,size:"md"},c5=(0,rY.forwardRef)(function(e,t){let{className:n,defaultValue:o,isDisabled:r,invalid:i,invalidText:s,isInvalid:a,label:l,labelText:c,light:u,maxDate:d,minDate:m,onChange:p,onChangeRaw:f,short:g,size:h,value:w,..._}={...c2,...e},{calendar:y,intlLocale:v,today_:b}=ck(),x=(0,rY.useId)(),S=!!(c??l),j=(0,rY.useMemo)(()=>lX(o,y),[o,y]),k=(0,rY.useMemo)(()=>lX(w,y,!0),[w,y]),N=(0,rY.useMemo)(()=>lX(d,y),[d,y]),C=(0,rY.useMemo)(()=>lX(m??cN,y),[m,y]),E=(0,rY.useMemo)(()=>i||a,[i,a]),P=(0,rY.useMemo)(()=>(f&&p&&console.error("An OpenmrsDatePicker component was created with both onChange and onChangeRaw handlers defined. Only onChangeRaw will be used."),f??(e=>p?.(lY(e)))),[f,p]);return(0,r0.jsx)(lG,{locale:v.toString(),children:(0,r0.jsx)("div",{className:sq()("cds--form-item",n),children:(0,r0.jsx)(lD.Kq,{values:[[cj,v]],children:(0,r0.jsxs)(lU.lr,{className:sq()("cds--date-picker","cds--date-picker--single",{"cds--date-picker--short":g,"cds--date-picker--light":u}),defaultValue:j,isDisabled:r,isInvalid:E,maxValue:N,minValue:C,value:k,shouldForceLeadingZeros:"en"===v.language||void 0,..._,onChange:P,children:[(0,r0.jsxs)("div",{className:"cds--date-picker-container",children:[S&&(0,r0.jsx)(lB.J,{className:sq()("cds--label",{"cds--label--disabled":r}),htmlFor:x,children:c??l}),(0,r0.jsxs)(lF.Y,{className:cT,children:[(0,r0.jsx)(cq,{id:S?x:void 0,ref:t,className:sq()("cds--date-picker-input__wrapper","-esm-implementer-tools__datepicker-module__inputWrapper___kykar",{"-esm-implementer-tools__datepicker-module__inputWrapperSm___KJtg-":"sm"===h,"-esm-implementer-tools__datepicker-module__inputWrapperMd___ablE9":"md"===h||!h||0===h.length,"-esm-implementer-tools__datepicker-module__inputWrapperLg___5dkQp":"lg"===h}),children:e=>"era"!==e.type?(0,r0.jsx)(c1,{className:c$,segment:e}):(0,r0.jsx)(rZ().Fragment,{})}),(0,r0.jsx)(lH.$,{className:sq()(cW,{[cU]:"sm"===h,[cD]:"md"===h||!h||0===h.length,[cB]:"lg"===h}),children:(0,r0.jsx)(cJ,{})})]}),(0,r0.jsx)(lV.b,{className:cL,children:s})]}),(0,r0.jsx)(cH,{variant:"single",today_:b})]})})})})}),c6=(0,rY.forwardRef)(function({className:e,defaultValue:t,invalid:n,invalidText:o,isDisabled:r,isInvalid:i,label:s,labelText:a,light:l,maxDate:c,minDate:u,onChange:d,onChangeRaw:m,size:p="md",value:f,...g},h){let{calendar:w,intlLocale:_,today_:y}=ck(),v=(0,rY.useId)(),b=!!(a??s),x=(0,rY.useMemo)(()=>{if(f)return{start:lX(f[0],w,!1),end:lX(f[1],w,!1)}},[f,w]),S=(0,rY.useMemo)(()=>{if(t)return{start:lX(t[0],w,!1),end:lX(t[1],w,!1)}},[t,w]),j=(0,rY.useMemo)(()=>lX(u??cN,w,!0),[u,w]),k=(0,rY.useMemo)(()=>lX(c,w,!0),[c,w]),N=(0,rY.useMemo)(()=>n||i,[n,i]),C=(0,rY.useMemo)(()=>(m&&d&&console.error("An OpenmrsDateRangePicker component was created with both onChange and onChangeRaw handlers defined. Only onChangeRaw will be used."),m??(e=>d?.([lY(e.start),lY(e.end)]))),[m,d]);return(0,r0.jsx)(lG,{locale:_.toString(),children:(0,r0.jsx)("div",{className:sq()("cds--form-item",e),children:(0,r0.jsx)(lD.Kq,{values:[[cj,_]],children:(0,r0.jsx)(lU.Ur,{id:b?v:void 0,className:sq()("cds--date-picker",{"cds--date-picker--light":l,"cds--date-picker--disabled":r}),isInvalid:N,shouldForceLeadingZeros:"en"===_.language||void 0,maxValue:k,minValue:j,value:x,defaultValue:S,ref:h,isDisabled:r,...g,onChange:C,children:(0,r0.jsxs)("div",{className:"cds--date-picker-container",children:[b&&(0,r0.jsx)(lB.J,{className:sq()("cds--label",{"cds--label--disabled":r}),htmlFor:v,children:a??s}),(0,r0.jsxs)(lF.Y,{className:cT,children:[(0,r0.jsxs)("div",{className:sq()("-esm-implementer-tools__datepicker-module__inputsWrapper___YlkGh",{"-esm-implementer-tools__datepicker-module__inputsWrapperSm___fAKhS":"sm"===p,"-esm-implementer-tools__datepicker-module__inputsWrapperMd___XVgGP":"md"===p||!p||0===p.length,"-esm-implementer-tools__datepicker-module__inputsWrapperLg___UgHJ1":"lg"===p}),children:[(0,r0.jsx)(cz.J3,{className:sq()("cds--date-picker-input__wrapper","-esm-implementer-tools__datepicker-module__startInput___qgbQm",cM),slot:"start",children:e=>(0,r0.jsx)(c1,{className:c$,segment:e})}),(0,r0.jsx)("div",{className:"-esm-implementer-tools__datepicker-module__separator___79vXZ",children:(0,r0.jsx)("span",{"aria-hidden":"true","data-readonly":!0,children:"–"})}),(0,r0.jsx)(cz.J3,{className:sq()("cds--date-picker-input__wrapper","-esm-implementer-tools__datepicker-module__endInput___huv7x",cM),slot:"end",children:e=>(0,r0.jsx)(c1,{className:c$,segment:e})})]}),(0,r0.jsx)(lH.$,{className:sq()(cW,{[cU]:"sm"===p,[cD]:"md"===p||!p||0===p.length,[cB]:"lg"===p}),children:(0,r0.jsx)(cJ,{})})]}),(0,r0.jsx)(lV.b,{className:cL,children:o}),(0,r0.jsx)(cH,{variant:"range",today_:y,minDate:j,maxDate:k})]})})})})})});var c8=n(9606);let c4=({diagnoses:e,showCertainty:t=!1})=>{let{diagnosisTags:n}=iH({externalModuleName:"@openmrs/esm-styleguide"});return(0,r0.jsx)("div",{className:"-esm-implementer-tools__diagnosis-tags-module__container___8kut8",children:e.map(e=>{let o=t&&"PROVISIONAL"===e.certainty,r=1===e.rank?n?.primaryColor??"blue":n?.secondaryColor??"gray";return(0,r0.jsx)(c3,{color:r,isProvisional:o,name:e.display},e.uuid)})})};function c3({color:e,isProvisional:t,name:n}){let[o,r]=(0,rY.useState)(!1),[i,s]=(0,rY.useState)(!1),[a,l]=(0,rY.useState)(!1),c=a||i,u=(0,rY.useRef)(null);(0,rY.useLayoutEffect)(()=>{let e=u.current;if(!e)return;let t=()=>{let t=e.scrollWidth>e.clientWidth;l(t),t||r(!1)};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[n,t,c]);let d=sq()("cds--tag","cds--tag--md","cds--layout--size-md",`cds--tag--${e}`,"-esm-implementer-tools__diagnosis-tags-module__diagnosisTag___PFhpl"),m=(0,r0.jsxs)(r0.Fragment,{children:[t&&(0,r0.jsxs)(r0.Fragment,{children:[(0,r0.jsx)("span",{"aria-hidden":"true",className:"-esm-implementer-tools__diagnosis-tags-module__provisionalMark___8o6l4",children:"?"}),(0,r0.jsxs)("span",{className:"cds--visually-hidden",children:[tb("provisional","Provisional")," "]})]}),(0,r0.jsx)("span",{ref:u,className:"cds--tag__label",children:n})]});return c?(0,r0.jsxs)(c8.k$,{delay:0,closeDelay:150,isOpen:o,onOpenChange:r,children:[(0,r0.jsx)(lH.$,{className:d,"data-testid":"diagnosis-tag",onFocusChange:s,onPress:()=>r(!0),children:m}),(0,r0.jsx)(c8.m_,{className:"-esm-implementer-tools__diagnosis-tags-module__tagTooltip___asRTH",placement:"bottom",offset:4,containerPadding:8,children:n})]}):(0,r0.jsx)("span",{className:d,"data-testid":"diagnosis-tag",children:m})}let c7={action:"-esm-implementer-tools__empty-card-module__action___Y0dul",content:"-esm-implementer-tools__empty-card-module__content___fo0nB",desktopHeading:"-esm-implementer-tools__empty-card-module__desktopHeading___0Cg1N",tabletHeading:"-esm-implementer-tools__empty-card-module__tabletHeading___BogTF",tile:"-esm-implementer-tools__empty-card-module__tile___QB8Ld"},c9=({width:e="64",height:t="64"})=>(0,r0.jsx)("svg",{width:e,height:t,viewBox:"0 0 64 64",children:(0,r0.jsx)("use",{href:"#omrs-empty-data-illustration"})}),ue=e=>{let t="tablet"===ss(),n=e.launchForm;return(0,r0.jsx)(sZ.Layer,{className:c7.layer,children:(0,r0.jsxs)(sZ.Tile,{className:c7.tile,children:[(0,r0.jsx)("div",{className:t?c7.tabletHeading:c7.desktopHeading,children:(0,r0.jsx)("h4",{children:e.headerTitle})}),(0,r0.jsx)(c9,{}),(0,r0.jsx)("p",{className:c7.content,children:tb("emptyStateText","There are no {{displayText}} to display",{displayText:e.displayText})}),(0,r0.jsx)("p",{className:c7.action,children:n&&(0,r0.jsx)(sZ.Button,{onClick:()=>n(),kind:"ghost",size:t?"lg":"sm",children:tb("recordNewEntry","Record {{ displayText }}",{displayText:e.displayText})})})]})})},ut=({error:e,headerTitle:t})=>{let n="tablet"===ss();return(0,r0.jsx)(sZ.Layer,{children:(0,r0.jsxs)(sZ.Tile,{className:"-esm-implementer-tools__error-state-module__tile___dd418",children:[(0,r0.jsx)("div",{className:n?"-esm-implementer-tools__error-state-module__tabletHeading___g5rjg":"-esm-implementer-tools__error-state-module__desktopHeading___Nd9u2",children:(0,r0.jsx)("h4",{children:t})}),(0,r0.jsxs)("p",{className:"-esm-implementer-tools__error-state-module__errorMessage___z2RiN",children:[tb("error","Error")," ",`${e?.response?.status}: `,e?.response?.statusText]}),(0,r0.jsx)("p",{className:"-esm-implementer-tools__error-state-module__errorCopy___dq+e2",children:tb("errorCopy")})]})})},un=ut,uo=rZ().forwardRef((e,t)=>{let{slotName:n,basePath:o,componentContext:r,state:i}=sc(),s=window.location??{pathname:""},a=ir(n??"");return e.isChildOfHeader&&n&&a.length>0?(0,r0.jsxs)(sZ.SideNav,{"aria-label":tb("leftNavigation","Left navigation"),className:"-esm-implementer-tools__left-nav-module__leftNav___jzTJK",expanded:!0,isFixedNav:!0,ref:t,...e,children:[(0,r0.jsx)(ia,{name:"global-nav-menu-slot"}),n?(0,r0.jsx)(iA,{value:r,fallback:(0,r0.jsx)(ia,{name:n,state:{basePath:o,currentPath:s,...i}}),children:(0,r0.jsx)(rQ.Provider,{value:r,children:(0,r0.jsx)(ia,{name:n,state:{basePath:o,currentPath:s,...i}})})}):null]}):null}),ur=({selectedLocationUuid:e,defaultLocationUuid:t,locationTag:n,locationsPerRequest:o=50,onChange:r})=>{let[i,s]=(0,rY.useState)(""),a=(0,rY.useId)(),{location:l}=function(e){let t=e?`/ws/fhir2/R4/Location?_id=${e}`:null,{data:n,error:o,isLoading:r}=iq()(t,tW,{shouldRetryOnError:e=>!!e?.response?.status&&e.response.status>=500});return(0,rY.useMemo)(()=>({location:n?.data?.entry?n.data.entry[0]:null,error:t?o:null,isLoading:!!t&&r}),[n,r,o,t])}(t),{locations:c,isLoading:u,hasMore:d,loadingNewData:m,error:p,setPage:f}=function(e,t=0,n=""){let o=iz(n),{data:r,isLoading:i,isValidating:s,setSize:a,error:l}=i7()(function(n,r){if(r){let e=r.data?.link?.find(e=>"next"===e.relation);if(!e)return null;let t=new URL(e.url);return t.origin===window.location.origin?e.url:new URL(`${t.pathname}${t.search?`?${t.search}`:""}`,window.location.origin).toString()}let i=`${t$}/Location?`,s=new URLSearchParams;return s.append("_summary","data"),t&&s.append("_count",""+t),n&&s.append("_getpagesoffset",""+n*t),e&&s.append("_tag",e),"string"==typeof o&&""!==o&&s.append("name:contains",o),i+s.toString()},tW);return(0,rY.useMemo)(()=>({locations:r?.length?r?.flatMap(e=>e?.data?.entry??[]):[],isLoading:i,totalResults:r?.[0]?.data?.total,hasMore:!!r?.length&&r?.[r.length-1]?.data?.link?.some(e=>"next"===e.relation),loadingNewData:s,error:l||null,setPage:a}),[i,r,s,a,l])}(n,o,i),g=(0,rY.useMemo)(()=>l&&!i&&t?[l,...c.filter(({resource:e})=>e.id!==t)]:c??[],[l,c,t,i]),h=(0,rY.useCallback)(e=>{r(),s(e.trim())},[r]),w=sp((0,rY.useCallback)(()=>{!m&&d&&f(e=>e+1)},[m,d,f])),_=d?Math.max(0,Math.floor(g.length-o/2)):-1;return(0,r0.jsxs)(r0.Fragment,{children:[(0,r0.jsx)(sZ.Search,{"aria-describedby":p?`${a}-error`:void 0,labelText:tb("searchForLocation"),id:a,placeholder:tb("searchForLocation"),onChange:e=>h(e.target.value),size:"lg"}),p&&(0,r0.jsx)("div",{className:"-esm-implementer-tools__location-picker-module__errorNotification___vWBFD",id:`${a}-error`,children:(0,r0.jsx)(sZ.InlineNotification,{kind:"error",subtitle:tb("errorLoadingLoginLocations","Unable to load login locations. Please try again or contact support if the problem persists."),title:tb("error","Error")})}),(0,r0.jsx)("div",{className:"-esm-implementer-tools__location-picker-module__searchResults___Gbet+",children:u?(0,r0.jsx)("div",{className:"-esm-implementer-tools__location-picker-module__loadingContainer___QO-zj",children:Array.from({length:5}).map((e,t)=>(0,r0.jsx)(sZ.RadioButtonSkeleton,{className:"-esm-implementer-tools__location-picker-module__radioButtonSkeleton___otoCy",role:"progressbar"},t))}):(0,r0.jsxs)(r0.Fragment,{children:[(0,r0.jsx)("div",{className:"-esm-implementer-tools__location-picker-module__locationResultsContainer___6Pasf",children:g.length>0?(0,r0.jsx)(sZ.RadioButtonGroup,{name:"loginLocations",onChange:e=>{r(e?.toString())},orientation:"vertical",valueSelected:e,children:g.map((e,t)=>(0,r0.jsx)(sZ.RadioButton,{className:"-esm-implementer-tools__location-picker-module__locationRadioButton___rTDPj",id:e.resource.id,labelText:(0,r0.jsx)("span",{ref:t===_?w:null,children:e.resource.name}),name:e.resource.name,value:e.resource.id},e.resource.id))}):(0,r0.jsx)("div",{className:"-esm-implementer-tools__location-picker-module__emptyState___w4-Ca",children:(0,r0.jsx)("p",{className:"-esm-implementer-tools__location-picker-module__locationNotFound___Of2MJ",children:tb("noResultsToDisplay")})})}),m&&(0,r0.jsx)("div",{className:"-esm-implementer-tools__location-picker-module__loadingIcon___NAwSB",children:(0,r0.jsx)(sZ.InlineLoading,{description:tb("loading")})})]})})]})},ui=R("modalState",{modalContainer:null,modalStack:[]}),us=0;async function ua(e,t,n={}){let o=r$(t),r=null;if(e){if(!o)throw Error(`No modal named '${t}' has been registered.`);let{load:i}=o,s=await i(),a=us++;r=await rq({...s,name:`${t}-${a}`},{...n,domElement:e})}else y(`Failed to launch modal. Please notify your administrator. Modal name: ${t}`);return r}function ul(e){return"TO_BE_DELETED"===e.state||"DELETED"===e.state}function uc(e,t){t?.unmount&&(t.unmountPromise?.catch(()=>{}),t.unmount().catch(t=>{console.error(`The modal '${e}' failed to unmount`,t)}))}function uu(e){return e.find(e=>!ul(e))}function ud(e,t){e.container&&(e.container.style.visibility=t?"unset":"hidden")}let um=window.getComputedStyle(document.body).overflow;function up({modalStack:e,modalContainer:t}){if(t)if(e.length){t.style.visibility||(addEventListener("keydown",ug),document.body.style.overflow="hidden",t.style.visibility="unset");let n=uu(e);e.forEach(e=>{switch(e.state){case"NEW":{let n=function({size:e}){let t=document.createElement("div");return t.className=`cds--modal-container cds--modal-container--${e}`,t.setAttribute("role","dialog"),t.setAttribute("tabindex","-1"),t.setAttribute("aria-modal","true"),t}({size:e.props?.size??"md"});e.container=n,e.state="MOUNTING",ua(n,e.modalName,e.props).then(o=>{ul(e)?uc(e.modalName,o):o?(e.parcel=o,t.prepend(n),ud(e,uu(ui.getState().modalStack)===e),o.mountPromise.then(()=>{ul(e)||(e.state="MOUNTED")},t=>{y(t),e.parcel=null,uf(e)})):uf(e)},t=>{y(t),uf(e)});break}case"MOUNTING":case"MOUNTED":ud(e,e===n);break;case"TO_BE_DELETED":e.state="DELETED",e.onClose(),uc(e.modalName,e.parcel),e.container?.remove(),setTimeout(()=>{let t=ui.getState();ui.setState({...t,modalStack:t.modalStack.filter(t=>t!==e)})},0)}})}else t.style.removeProperty("visibility"),document.body.style.overflow=um,removeEventListener("keydown",ug)}function uf(e){if(ul(e))return;e.state="TO_BE_DELETED";let t=ui.getState();ui.setState({...t,modalStack:[...t.modalStack]})}function ug(e){"Escape"===e.key&&function(){let[e]=ui.getState().modalStack;e&&uf(e)}()}function uh(e){ui.subscribe(up),ui.setState({...ui.getState(),modalContainer:e})}function uw(e,t={},n=()=>{}){let o=()=>{let e=ui.getState().modalStack.find(e=>e.onClose===n);e&&uf(e)};if(r$(e)){var r;let i,s;r={state:"NEW",onClose:n,modalName:e,props:{close:o,...t}},s=[r,...(i=ui.getState()).modalStack],ui.setState({...i,modalStack:s})}else y(`Failed to launch modal. Please notify your administrator. Modal name: "${e}"`);return o}var u_=n(9685);let uy=({notification:e})=>{let{description:t,action:n,kind:o,critical:r,title:i,onAction:s}=e;return(0,r0.jsx)(sZ.ActionableNotification,{actionButtonLabel:n,kind:o||"info",lowContrast:r,subtitle:t,title:i||"",inline:!0,onActionButtonClick:s})},uv=({subject:e})=>{let[t,n]=(0,rY.useState)([]);return(0,rY.useEffect)(()=>{let t=e.subscribe(e=>n(t=>[...t.filter(t=>t.description!==e.description||t.action!==e.action||t.kind!==e.kind||t.title!==e.title),e]));return()=>t.unsubscribe()},[e]),(0,r0.jsx)(r0.Fragment,{children:t.map(e=>(0,r0.jsx)(uy,{notification:e},e.id))})},ub=({notification:e})=>{let{actionButtonLabel:t,onActionButtonClick:n=()=>{},subtitle:o,kind:r,title:i,critical:s,progressActionLabel:a,id:l,...c}=e,[u,d]=(0,rY.useState)(t);return(0,r0.jsx)(sZ.ActionableNotification,{kind:r||"info",actionButtonLabel:u,"aria-label":tb("closesActionableNotification","Closes actionable notification"),onActionButtonClick:()=>{n(),a&&d(a)},statusIconDescription:tb("actionableNotification","Actionable notification"),subtitle:o,title:i,lowContrast:s,inline:!0,...c})},ux=({subject:e})=>{let[t,n]=(0,rY.useState)([]);return(0,rY.useEffect)(()=>{let t=e.subscribe(e=>n(t=>[...t.filter(t=>t.subtitle!==e.subtitle||t.actionButtonLabel!==e.actionButtonLabel||t.onActionButtonClick!==e.onActionButtonClick||t.kind!==e.kind||t.title!==e.title),e]));return()=>t.unsubscribe()},[e]),(0,r0.jsx)(r0.Fragment,{children:t.map(e=>(0,r0.jsx)(ub,{notification:e},e.id))})};class uS{subscribe(e){return this.listeners.add(e),{unsubscribe:()=>{this.listeners.delete(e)}}}next(e){for(let t of[...this.listeners])t(e)}constructor(){!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(this,"listeners",new Set)}}let uj=new uS,uk=0,uN=new uS,uC=0;function uE(e){e&&(0,il.createRoot)(e).render((0,r0.jsx)(uv,{subject:uj}))}function uP(e){var t;e&&("string"==typeof(t=e.description)?t.trim().length>0:"object"==typeof t&&(t instanceof Error||!(0,u_.A)(t)))?(e.description instanceof Error&&(e.description=e.description.toLocaleString()),setTimeout(()=>{uj.next({...e,id:uk++})},0)):console.error("showNotification must be called with an object having a 'description' property that is a non-empty string or object")}function uI(e){e&&(0,il.createRoot)(e).render((0,r0.jsx)(ux,{subject:uN}))}function uO(e){var t;e&&("string"==typeof(t=e.actionButtonLabel)?t.trim().length>0:"object"==typeof t&&!(0,u_.A)(t))?setTimeout(()=>{uN.next({...e,id:uC++})},0):console.error("showActionableNotification must be called with an actionButtonLabel that is a non-empty string")}let uA=["NORMAL","HIGH","CRITICALLY_HIGH","OFF_SCALE_HIGH","LOW","CRITICALLY_LOW","OFF_SCALE_LOW"],uR=["critically_low","critically_high","high","low","normal","off_scale_low","off_scale_high"],uT={container:"-esm-implementer-tools__numeric-observation-module__container___NfxbH",card:"-esm-implementer-tools__numeric-observation-module__card___9oQAh","abnormal-value":"-esm-implementer-tools__numeric-observation-module__abnormal-value___drvEi","critical-value":"-esm-implementer-tools__numeric-observation-module__critical-value___JAIHt",cell:"-esm-implementer-tools__numeric-observation-module__cell___lTunW","critically-high":"-esm-implementer-tools__numeric-observation-module__critically-high___aDUjc","critically-low":"-esm-implementer-tools__numeric-observation-module__critically-low___5srAK",high:"-esm-implementer-tools__numeric-observation-module__high___7KiyK",low:"-esm-implementer-tools__numeric-observation-module__low___Zs2ct","label-container":"-esm-implementer-tools__numeric-observation-module__label-container___lGnGH","value-container":"-esm-implementer-tools__numeric-observation-module__value-container___hHPXt",label:"-esm-implementer-tools__numeric-observation-module__label___WFuxk",value:"-esm-implementer-tools__numeric-observation-module__value___6fHUr",units:"-esm-implementer-tools__numeric-observation-module__units___EdVuw","pad-right":"-esm-implementer-tools__numeric-observation-module__pad-right___6T9Cd","off-scale-low":"-esm-implementer-tools__numeric-observation-module__off-scale-low___Sc1CV","off-scale-high":"-esm-implementer-tools__numeric-observation-module__off-scale-high___cWpU2",arrow:"-esm-implementer-tools__numeric-observation-module__arrow___SLGUh"},u$=({value:e,unit:t,label:n,interpretation:o,referenceRange:r,conceptUuid:i,variant:s="card",patientUuid:a})=>{let l=(0,rY.useId)(),{referenceRange:c,isLoading:u}=function(e,t){let n=null;e&&(n=t?`${tT}/conceptreferencerange/?patient=${t}&concept=${e}&v=full`:`${tT}/conceptreferencerange/?concept=${e}&v=full`);let{data:o,error:r,isLoading:i}=iq()(n,tW),s=o?.data?.results?.[0];return{referenceRange:s?{hiNormal:s.hiNormal??null,hiAbsolute:s.hiAbsolute??null,hiCritical:s.hiCritical??null,lowNormal:s.lowNormal??null,lowAbsolute:s.lowAbsolute??null,lowCritical:s.lowCritical??null}:void 0,error:r,isLoading:i}}(r||o?void 0:i,a),d=r??c,m=(0,rY.useMemo)(()=>{if(o)return o?"--"===o?"normal":uA.includes(o)?o.toLowerCase():uR.includes(o)?o:"normal":void 0;if(d&&!u){if(!d||null==e||""===e)return"normal";let t="string"==typeof e?Number.parseFloat(e):e;return Number.isNaN(t)?"normal":null!==d.hiAbsolute&&void 0!==d.hiAbsolute&&t>d.hiAbsolute?"off_scale_high":null!==d.hiCritical&&void 0!==d.hiCritical&&t>=d.hiCritical?"critically_high":null!==d.hiNormal&&void 0!==d.hiNormal&&t>d.hiNormal?"high":null!==d.lowAbsolute&&void 0!==d.lowAbsolute&&t<d.lowAbsolute?"off_scale_low":null!==d.lowCritical&&void 0!==d.lowCritical&&t<=d.lowCritical?"critically_low":null!==d.lowNormal&&void 0!==d.lowNormal&&t<d.lowNormal?"low":"normal"}return"normal"},[o,d,e,u])??"normal",p="critically_low"===m||"critically_high"===m||"off_scale_low"===m||"off_scale_high"===m,f="normal"!==m,g=n?`omrs-numeric-obs-label-${n.replaceAll(/\s+/g,"-").toLowerCase()}-${l}`:void 0,h=`omrs-numeric-obs-value-${l}`,w=`omrs-numeric-obs-unit-${l}`,_=null!=e&&""!==e,y=_?e:tb("notAvailable","Not available"),v=sq()({[uT["critically-low"]]:"critically_low"===m||"off_scale_low"===m,[uT["critically-high"]]:"critically_high"===m||"off_scale_high"===m,[uT.low]:"low"===m,[uT.high]:"high"===m,[uT["off-scale-low"]]:"off_scale_low"===m,[uT["off-scale-high"]]:"off_scale_high"===m}),b=sq()({[uT.container]:!0,[uT.card]:!0,[uT["critical-value"]]:p,[uT["abnormal-value"]]:f&&!p}),x=sq()({[uT.cell]:!0,[v]:!0});return"cell"===s?(0,r0.jsxs)("div",{className:x,children:[y,_&&t?` ${t}`:""]}):(0,r0.jsxs)("section",{className:b,"data-testid":"numeric-observation-card",children:[n&&(0,r0.jsxs)("div",{className:uT["label-container"],children:[(0,r0.jsx)("span",{id:g,className:uT.label,children:n}),f&&(0,r0.jsx)("span",{className:uT[m.replace("_","-")],title:tb("abnormalValue","Abnormal value")})]}),(0,r0.jsxs)("div",{className:uT["value-container"],children:[(0,r0.jsx)("span",{id:h,"aria-labelledby":g&&w?`${g} ${w}`:g||w||void 0,className:uT.value,children:y}),_&&t&&(0,r0.jsx)("span",{id:w,className:uT.units,children:t})]})]})},uM="-esm-implementer-tools__page-header-module__pageHeader___YOpQL",uL=e=>{if("children"in e){let{children:t,className:n,...o}=e;return(0,r0.jsx)("div",{className:sq()(uM,n),...o,children:t})}{let{title:t,illustration:n,className:o,...r}=e;return(0,r0.jsx)("div",{className:sq()(uM,o),...r,children:(0,r0.jsx)(uW,{title:t,illustration:n})})}},uW=({title:e,illustration:t,className:n})=>{let[o,r]=(0,rY.useState)(null);return(0,rY.useEffect)(()=>{eM("@openmrs/esm-styleguide").then(e=>{r(e)})},[]),(0,r0.jsxs)("div",{className:sq()("-esm-implementer-tools__page-header-module__pageHeaderContent___PjsJm",n),children:[t,(0,r0.jsxs)("div",{className:"-esm-implementer-tools__page-header-module__pageLabels___pPcKj",children:[o?.implementationName&&(0,r0.jsx)("p",{children:tb(o.implementationName)}),(0,r0.jsx)("h1",{className:"-esm-implementer-tools__page-header-module__pageName___3d4IC",children:e})]})]})},uD=({totalItems:e,pageSize:t,onPageNumberChange:n,pageNumber:o,dashboardLinkUrl:r,currentItems:i,dashboardLinkLabel:s})=>{let{pageSizes:a,pageItemsCount:l}=sh(t,e,o,i),c="tablet"===ss(),u=tb("paginationItemsCount","{{pageItemsCount}} / {{totalItems}} items",{totalItems:e,pageItemsCount:l});return(0,r0.jsx)(r0.Fragment,{children:e>0&&(0,r0.jsxs)("div",{className:sq()({"-esm-implementer-tools__pagination-module__tablet___lQ3ak":c,"-esm-implementer-tools__pagination-module__desktop___HfUTY":!c}),children:[(0,r0.jsxs)("div",{children:[u,r&&(0,r0.jsx)(r1,{to:r,className:"-esm-implementer-tools__pagination-module__configurableLink___NM9v7",children:s??tb("seeAll","See all")})]}),(0,r0.jsx)(sZ.Pagination,{className:"-esm-implementer-tools__pagination-module__pagination___WzkBs",page:o,pageSize:t,pageSizes:a,totalItems:e,onChange:n,pageRangeText:(e,t)=>tb("paginationOfPages","of {{count}} pages",{count:t}),size:c?"lg":"sm"})]})})};function uU(e){return uF(uV(e,"usual","official"))}function uB(e){return uU(e)}function uF(e){var t;let n;return e?e.text??(n=(t=e).given??[],(t.family?n.concat(t.family):n).join(" ")):""}function uH(e){return uF(e)}function uV(e,...t){for(let n of(0==t.length&&(t=["usual"]),t)){let t=e.name?.find(e=>{var t,o;return t=e,o=n,t.use?t.use===o:"usual"===o});if(t)return t}}function uz(e,t=sj()){let n=sj(t),o=cw(e,n);if(null==o)return null;let r=n.diff(o,"hours"),i=n.diff(o,"days"),s=n.diff(o,"weeks"),a=n.diff(o,"months"),l=n.diff(o,"years"),c={};if(r<2)c.minutes=n.diff(o,"minutes");else if(i<2)c.hours=r;else if(s<4)c.days=i;else if(l<1){let e=n.subtract(s,"weeks").diff(o,"days");c.weeks=s,c.days=e}else if(l<2){let e=n.subtract(a,"months").diff(o,"days");c.months=a,c.days=e}else if(l<18){let e=n.subtract(l,"year").diff(o,"months");c.years=l,c.months=e}else c.years=l;return c}function uG(e,t=sj()){let n=uz(e,t);if(null==n)return null;let o={style:"short",localeMatcher:"lookup"};return"minutes"in n&&0===n.minutes&&(o.minutesDisplay="always"),ch(n,o)}let uq={container:"-esm-implementer-tools__patient-banner-patient-info-module__container___Gjd-4",activePatientContainer:"-esm-implementer-tools__patient-banner-patient-info-module__activePatientContainer___QLcpg",patientBanner:"-esm-implementer-tools__patient-banner-patient-info-module__patientBanner___7nrgC",patientName:"-esm-implementer-tools__patient-banner-patient-info-module__patientName___-bF9a",patientAvatar:"-esm-implementer-tools__patient-banner-patient-info-module__patientAvatar___AkN3H",patientAvatarButton:"-esm-implementer-tools__patient-banner-patient-info-module__patientAvatarButton___KDxA6",patientInfo:"-esm-implementer-tools__patient-banner-patient-info-module__patientInfo___+WtDB",demographics:"-esm-implementer-tools__patient-banner-patient-info-module__demographics___Vtf3v",row:"-esm-implementer-tools__patient-banner-patient-info-module__row___NIOYI",flexRow:"-esm-implementer-tools__patient-banner-patient-info-module__flexRow___VxdGB",tagsSlot:"-esm-implementer-tools__patient-banner-patient-info-module__tagsSlot___lU6+4",identifiers:"-esm-implementer-tools__patient-banner-patient-info-module__identifiers___tehd8",identifier:"-esm-implementer-tools__patient-banner-patient-info-module__identifier___bSJIF",primaryIdentifier:"-esm-implementer-tools__patient-banner-patient-info-module__primaryIdentifier___yOV1B",secondaryIdentifier:"-esm-implementer-tools__patient-banner-patient-info-module__secondaryIdentifier___WvJbh",value:"-esm-implementer-tools__patient-banner-patient-info-module__value___sBM-q",tag:"-esm-implementer-tools__patient-banner-patient-info-module__tag___BEvEV",gender:"-esm-implementer-tools__patient-banner-patient-info-module__gender___4XkLq",separator:"-esm-implementer-tools__patient-banner-patient-info-module__separator___iYBA3",tooltipPadding:"-esm-implementer-tools__patient-banner-patient-info-module__tooltipPadding___EWVCK",tooltipSmallText:"-esm-implementer-tools__patient-banner-patient-info-module__tooltipSmallText___yDmRU",actionsButtonText:"-esm-implementer-tools__patient-banner-patient-info-module__actionsButtonText___mn139"};function uJ({showIdentifierLabel:e,type:t,value:n}){return(0,r0.jsx)("span",{className:uq.primaryIdentifier,children:(0,r0.jsxs)(sZ.Tag,{className:uq.tag,type:"gray",children:[e&&t?.text&&(0,r0.jsxs)("span",{className:uq.label,children:[t.text,": "]}),(0,r0.jsx)("span",{className:uq.value,children:n})]})})}function uK({showIdentifierLabel:e,type:t,value:n}){return(0,r0.jsxs)(sZ.FormLabel,{className:uq.secondaryIdentifier,id:`patient-banner-identifier-${n}`,children:[e&&(0,r0.jsxs)("span",{className:uq.label,children:[t?.text,": "]}),(0,r0.jsx)("span",{className:uq.value,children:n})]})}function uX({identifiers:e,showIdentifierLabel:t}){let{excludePatientIdentifierCodeTypes:n}=iH(),{primaryIdentifierCode:o}=sy(),r=e?.filter(e=>{let t=e.type?.coding?.[0]?.code;return t&&!n?.uuids.includes(t)})??[];return(0,r0.jsx)(r0.Fragment,{children:r?.length?r.map(({value:e,type:n},i)=>(0,r0.jsxs)(rZ().Fragment,{children:[(0,r0.jsx)("span",{className:uq.identifier,children:n?.coding?.[0]?.code===o?(0,r0.jsx)(uJ,{showIdentifierLabel:t,type:n,value:e}):(0,r0.jsx)(uK,{showIdentifierLabel:t,type:n,value:e})}),i<r.length-1&&(0,r0.jsx)("span",{className:uq.separator,children:"\xb7"})]},e)):""})}let uY={Female:aT,Male:a$,Other:aM,Unknown:aL},uZ=({gender:e})=>{let t=uY[e];return t?(0,r0.jsx)(t,{fill:"#525252"}):null},uQ={male:"Male",female:"Female",other:"Other",unknown:"Unknown"};function u0({patient:e,renderedFrom:t}){var n;let o,r,i=uU(e),s=e?.gender&&(r=uQ[o=(n=e.gender).toLowerCase()]??"Unknown",{displayText:tb(o,n),iconKey:r}),a=(0,rY.useMemo)(()=>({patientUuid:e.id,patient:e,renderedFrom:t}),[e.id,e,t]);return(0,r0.jsxs)("div",{className:uq.patientInfo,children:[(0,r0.jsx)("div",{className:sq()(uq.row,uq.patientNameRow),children:(0,r0.jsxs)("div",{className:uq.flexRow,children:[(0,r0.jsx)("span",{className:uq.patientName,children:i}),s&&(0,r0.jsxs)("div",{className:uq.gender,children:[(0,r0.jsx)(uZ,{gender:s.iconKey}),(0,r0.jsx)("span",{children:s.displayText})]}),(0,r0.jsx)(ia,{className:uq.tagsSlot,name:"patient-banner-tags-slot",state:a})]})}),(0,r0.jsxs)("div",{className:uq.demographics,children:[e.birthDate&&(0,r0.jsxs)(r0.Fragment,{children:[(0,r0.jsx)("span",{children:uG(e.birthDate)}),(0,r0.jsx)("span",{className:uq.separator,children:"\xb7"}),(0,r0.jsx)("span",{children:cu(e.birthDate,{time:!1,noToday:!0})}),(0,r0.jsx)("span",{className:uq.separator,children:"\xb7"})]}),(0,r0.jsx)(uX,{identifiers:e.identifier,showIdentifierLabel:!0}),(0,r0.jsx)(ia,{className:uq.extensionSlot,name:"patient-banner-bottom-slot",state:a})]})]})}var u1=n(7683);function u2({patient:e,patientUuid:t,actionsSlotName:n,additionalActionsSlotState:o}){let[r,i]=(0,rY.useState)(!1),{extensions:s}=ii(n),a="tablet"===ss(),l=sm(()=>i(!1),r),c=(0,rY.useRef)(null),u=(0,rY.useRef)(null),d=(0,rY.useId)(),m=`patient-actions-menu-trigger-${d}`,p=`patient-actions-menu-${d}`,f=(0,rY.useCallback)(()=>i(e=>!e),[]),g=(0,rY.useCallback)(()=>{i(!1),c.current?.focus()},[]),h=(0,rY.useCallback)(e=>{if("Escape"===e.key&&r){e.stopPropagation(),g();return}if(("ArrowDown"===e.key||"ArrowUp"===e.key)&&r){e.preventDefault();let t=u.current?.querySelectorAll('[role="menuitem"]:not([disabled])');if(!t?.length)return;let n=document.activeElement?.closest?.('[role="menuitem"]')??document.activeElement,o=Array.from(t).indexOf(n);if(-1===o)return void t["ArrowDown"===e.key?0:t.length-1]?.focus();let r=o+("ArrowDown"===e.key?1:-1),i=r<0?t.length-1:r>=t.length?0:r;t[i]?.focus()}},[g,r]);(0,rY.useEffect)(()=>{if(r&&u.current){let e=u.current.querySelector('[role="menuitem"]:not([disabled])');e?.focus()}},[r]);let w=(0,rY.useMemo)(()=>({patientUuid:t,patient:e,closeMenu:g,...o}),[t,e,g,o]);return 0===s.length?null:(0,r0.jsx)("div",{className:"-esm-implementer-tools__patient-banner-actions-menu-module__overflowMenuContainer___lXHHD",children:(0,r0.jsxs)("div",{"data-overflow-menu":!0,className:sq()("cds--overflow-menu",s1),ref:l,children:[(0,r0.jsxs)("button",{className:sq()("cds--btn","cds--btn--ghost","cds--overflow-menu__trigger",{"cds--overflow-menu--open":r},s6),"aria-controls":p,"aria-expanded":r,"aria-haspopup":"true",id:m,onClick:f,onKeyDown:h,ref:c,children:[(0,r0.jsx)("span",{className:"-esm-implementer-tools__patient-banner-actions-menu-module__actionsButtonText___SdOyM",children:tb("actions","Actions")})," ",(0,r0.jsx)(u1.CH,{size:16,style:{marginLeft:"0.5rem",fill:"#78A9FF"}})]}),(0,r0.jsxs)("div",{className:sq()("cds--overflow-menu-options","cds--overflow-menu--flip",s2,{[s5]:r}),"aria-labelledby":m,"data-floating-menu-direction":"bottom",id:p,onKeyDown:h,ref:u,role:"menu",tabIndex:-1,children:[(0,r0.jsx)("ul",{className:sq()("cds--overflow-menu-options__content",{"cds--overflow-menu-options--lg":a}),children:(0,r0.jsx)(ia,{name:n,state:w},n)}),(0,r0.jsx)("span",{})]})]})})}var u5=n(397),u6=n.n(u5);function u8(e){let{patientPhotoConceptUuid:t}=iH({externalModuleName:"@openmrs/esm-styleguide"}),n=t?`${tT}/obs?patient=${e}&concept=${t}&v=full`:null,{data:o,error:r,isLoading:i}=ip()(e?n:null,tW),s=o?.data?.results[0];return{data:s?{dateTime:s?.obsDatetime,imageSrc:s?.value?.links?.uri}:null,error:r,isLoading:i}}let u4=({width:e=56,height:t=56,"aria-label":n})=>{let{t:o}=(0,id.useTranslation)();return(0,r0.jsxs)("svg",{"aria-label":n??o("patientPhotoPlaceholder","Patient photo placeholder"),width:e,height:t,fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,r0.jsx)("path",{fill:"#ffffff",d:"M0 0h56v56H0z"}),(0,r0.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m36.75 20.134-.884-.884L19.25 35.866l.884.884 1.25-1.25H34.25a1.252 1.252 0 0 0 1.25-1.25V21.384l1.25-1.25Zm-2.5 14.116H22.634l4.87-4.87 1.487 1.486a1.25 1.25 0 0 0 1.768 0l.991-.991 2.5 2.498v1.877Zm0-3.645-1.616-1.616a1.25 1.25 0 0 0-1.768 0l-.991.991-1.486-1.486 5.861-5.86v7.971Zm-12.5 1.145v-1.875l3.125-3.123.858.859.885-.885-.86-.86a1.25 1.25 0 0 0-1.767 0l-2.241 2.242V21.75h10V20.5h-10c-.69 0-1.25.56-1.25 1.25v10h1.25Z",fill:"#8D8D8D"})]})},u3="-esm-implementer-tools__patient-photo-module__avatar___t5TmZ";function u7({patientUuid:e,patientName:t,alt:n}){let{data:o,isLoading:r}=u8(e),[i,s]=(0,rY.useState)(null),[a,l]=(0,rY.useState)(!1),c=(0,rY.useMemo)(()=>u6().generate(e),[e]);(0,rY.useEffect)(()=>{if(o?.imageSrc){let e=new URL(o.imageSrc,window.location.origin).pathname;l(!0);let t=!1,n=new Image;return n.onload=()=>{t||(s(e),l(!1))},n.onerror=()=>{t||(s(null),l(!1))},n.src=e,()=>{t=!0}}s(null),l(!1)},[o?.imageSrc]);let u=(0,rY.useMemo)(()=>n||(i?tb("patientPhotoAlt","Profile photo of {{patientName}}",{patientName:t}):tb("patientAvatarAlt","Avatar for {{patientName}}",{patientName:t})),[n,i,t]);return r||a?(0,r0.jsx)(sZ.SkeletonIcon,{className:"-esm-implementer-tools__patient-photo-module__skeleton___ueN8Q","data-testid":"skeleton-icon"}):o?.imageSrc&&!i?(0,r0.jsx)(u4,{"aria-label":tb("patientPhotoPlaceholder","Photo placeholder for {{patientName}}",{patientName:t})}):i?(0,r0.jsx)("div",{"aria-label":u,children:(0,r0.jsx)("img",{className:u3,src:i,alt:u,title:t})}):(0,r0.jsx)("div",{"aria-label":u,children:(0,r0.jsx)("div",{className:u3,title:t,style:{backgroundImage:c.toDataUrl(),backgroundRepeat:"no-repeat",backgroundSize:"cover"},children:(0,r0.jsx)("span",{className:"-esm-implementer-tools__patient-photo-module__initials___-k9Hv",children:function(e,t=3){return e.split(/\s+/).filter(Boolean).slice(0,t).map(e=>e[0]).join("")}(t)})})})}let u9=["omrs-pict-appointments","omrs-pict-assessment-1","omrs-pict-assessment-2","omrs-pict-blood-bank","omrs-pict-cardiology","omrs-pict-cohorts","omrs-pict-concept-dictionary","omrs-pict-ct-scan","omrs-pict-data-entry","omrs-pict-dentistry","omrs-pict-digital-trust","omrs-pict-emergency-department","omrs-pict-facility","omrs-pict-geriatrics","omrs-pict-gynaecology","omrs-pict-in-patient","omrs-pict-laboratory","omrs-pict-labs-2","omrs-pict-metadata-export","omrs-pict-obstetrics","omrs-pict-patient-documents","omrs-pict-patient-search","omrs-pict-patients","omrs-pict-payments-desk","omrs-pict-pharmacy","omrs-pict-pharmacy-2","omrs-pict-registration","omrs-pict-reports","omrs-pict-service-queues","omrs-pict-stock-management","omrs-pict-system-administration","omrs-pict-transfer","omrs-pict-triage","omrs-pict-x-ray"],de=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-appointments",pictogramProps:e})})),dt=de,dn=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-assessment-1",pictogramProps:e})})),dr=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-assessment-2",pictogramProps:e})})),di=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-blood-bank",pictogramProps:e})})),ds=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-cardiology",pictogramProps:e})})),da=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-cohorts",pictogramProps:e})})),dl=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-concept-dictionary",pictogramProps:e})})),dc=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-ct-scan",pictogramProps:e})})),du=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-data-entry",pictogramProps:e})})),dd=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-dentistry",pictogramProps:e})})),dm=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-digital-trust",pictogramProps:e})})),dp=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-emergency-department",pictogramProps:e})})),df=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-facility",pictogramProps:e})})),dg=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-geriatrics",pictogramProps:e})})),dh=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-gynaecology",pictogramProps:e})})),dw=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-in-patient",pictogramProps:e})})),d_=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-laboratory",pictogramProps:e})})),dy=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-labs-2",pictogramProps:e})})),dv=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-metadata-export",pictogramProps:e})})),db=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-obstetrics",pictogramProps:e})})),dx=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-patient-documents",pictogramProps:e})})),dS=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-patient-search",pictogramProps:e})})),dj=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-patients",pictogramProps:e})})),dk=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-payments-desk",pictogramProps:e})})),dN=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-pharmacy",pictogramProps:e})})),dC=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-pharmacy-2",pictogramProps:e})})),dE=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-registration",pictogramProps:e})})),dP=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-reports",pictogramProps:e})})),dI=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-service-queues",pictogramProps:e})})),dO=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-stock-management",pictogramProps:e})})),dA=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-system-administration",pictogramProps:e})})),dR=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-transfer",pictogramProps:e})})),dT=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-triage",pictogramProps:e})})),d$=(0,rY.memo)((0,rY.forwardRef)(function(e,t){return(0,r0.jsx)(dD,{ref:t,pictogram:"omrs-pict-x-ray",pictogramProps:e})})),dM=df,dL=dj,dW=(0,rY.memo)((0,rY.forwardRef)(function({pictogram:e,fallback:t,...n},o){let r=(0,rY.useRef)(document.getElementById(e));return(0,rY.useEffect)(()=>{let t=document.getElementById("omrs-svgs-container"),n=new MutationObserver(t=>{for(let n of t)"childList"===n.type&&(r.current=document.getElementById(e))});return t&&n.observe(t,{childList:!0}),()=>n.disconnect()},[e]),(0,r0.jsx)(iA,{value:r.current,fallback:t,children:(0,r0.jsx)(dD,{ref:o,pictogram:e,pictogramProps:n})})})),dD=(0,rY.memo)((0,rY.forwardRef)(function({pictogram:e,pictogramProps:t},n){let{className:o,size:r}=Object.assign({},{size:92},t);return(r<=26||r>144)&&(console.error(`Invalid size '${r}' specified for ${e}. Defaulting to 92.`),r=92),(0,r0.jsx)("svg",{ref:n,className:sq()("-esm-implementer-tools__pictograms-module__pictogram___wXX7t",o),height:r,width:r,children:(0,r0.jsx)("use",{href:`#${e}`})})})),dU=({children:e})=>"tablet"===ss()?(0,r0.jsx)(sZ.Layer,{children:e}):(0,r0.jsx)(r0.Fragment,{children:e}),dB=({snackbar:e,closeSnackbar:t})=>{let{actionButtonLabel:n="",kind:o="success",onActionButtonClick:r=()=>{},isLowContrast:i="error"!==o,progressActionLabel:s,subtitle:a="",timeoutInMs:l=5e3,autoClose:c="error"!==o,title:u,id:d,...m}=e,[p,f]=(0,rY.useState)(n),[g,h]=(0,rY.useState)(!0),[w,_]=(0,rY.useState)(!1),y=(0,rY.useCallback)(()=>{setTimeout(t,250)},[t]),v=(0,rY.useCallback)(()=>{_(!0),y()},[y]);return(0,rY.useEffect)(()=>{if(c){let e=setTimeout(v,l);return()=>clearTimeout(e)}},[l,c,v]),(0,rY.useEffect)(()=>{h(!1),window.setTimeout(()=>{h(!0)},0)},[]),(0,r0.jsx)(sZ.ActionableNotification,{actionButtonLabel:p,"aria-label":tb("closeSnackbar","Close snackbar"),className:sq()("-esm-implementer-tools__snackbar-module__slideIn___-oZIt",{"-esm-implementer-tools__snackbar-module__animated___M2YBU":g,"-esm-implementer-tools__snackbar-module__slideOut___yEmGT":w}),kind:o,lowContrast:i,onActionButtonClick:()=>{r(),v(),s&&f(s)},onClose:y,statusIconDescription:tb("snackbarNotification","Snackbar notification"),subtitle:a,title:u,...m})},dF=({subject:e})=>{let[t,n]=(0,rY.useState)([]),o=(0,rY.useCallback)(e=>{n(t=>t.filter(t=>t!==e))},[]);return(0,rY.useEffect)(()=>{let t=e.subscribe(e=>n(t=>[...t.filter(t=>t.subtitle!==e.subtitle||t.actionButtonLabel!==e.actionButtonLabel||t.onActionButtonClick!==e.onActionButtonClick||t.kind!==e.kind||t.title!==e.title),e]));return()=>t.unsubscribe()},[e]),(0,r0.jsx)(r0.Fragment,{children:t.map(e=>(0,r0.jsx)(dB,{snackbar:e,closeSnackbar:()=>o(e)},e.id))})},dH=new uS,dV=0;function dz(e){e&&(0,il.createRoot)(e).render((0,r0.jsx)(dF,{subject:dH}))}function dG(e){var t;e&&"string"==typeof(t=e.title)&&t.trim().length>0?setTimeout(()=>{dH.next({...e,id:dV++})},0):console.error("showSnackbar must be called with an object having a 'title' property that is a non-empty string")}let dq=({toast:e,closeToast:t})=>{let{description:n,kind:o,critical:r,title:i,actionButtonLabel:s,onActionButtonClick:a=()=>{}}=e,l=(0,rY.useCallback)(()=>{a(),t()},[t,a]);return(0,r0.jsx)("div",{children:(0,r0.jsx)(sZ.ActionableNotification,{actionButtonLabel:s,kind:o||"info",lowContrast:r,subtitle:n,title:i||"",onActionButtonClick:l,onClose:t})})},dJ=({subject:e})=>{let[t,n]=(0,rY.useState)([]),o=(0,rY.useCallback)(e=>{n(t=>t.filter(t=>t!==e))},[]);return(0,rY.useEffect)(()=>{let t=e.subscribe(e=>n(t=>[...t.filter(t=>t.description!==e.description||t.kind!==e.kind||t.title!==e.title||t.actionButtonLabel!==e.actionButtonLabel||t.onActionButtonClick!==e.onActionButtonClick),e]));return()=>t.unsubscribe()},[e]),(0,r0.jsx)(r0.Fragment,{children:t.map(e=>(0,r0.jsx)(dq,{toast:e,closeToast:()=>o(e)},e.id))})},dK=new uS,dX=0;function dY(e){e&&(0,il.createRoot)(e).render((0,r0.jsx)(dJ,{subject:dK}))}function dZ(e){var t;e&&("string"==typeof(t=e.description)?t.trim().length>0:"object"==typeof t&&!(0,u_.A)(t))?setTimeout(()=>{dK.next({...e,id:dX++})},0):console.error("showToast must be called with an object having a 'description' property that is a non-empty string or object")}var dQ=n(4656);async function d0(e,t){let{openedGroup:n}=rM.getState();if(n){if(n.groupName===e&&d5(n.props,t))return!0;else if(!await d4({reason:"CLOSE_WORKSPACE_GROUP",explicit:!1}))return!1}return rM.setState(n=>({...n,openedGroup:{groupName:e,props:t},openedWindows:[]})),!0}async function d1(e){let{openedGroup:t,openedWindows:n}=rM.getState();if(t){if(n.length>0&&!(e||await d4({reason:"CLOSE_WORKSPACE_GROUP",explicit:!0})))return!1;rM.setState(e=>({...e,openedGroup:null,openedWindows:[]}))}return!0}async function d2(e,t=null,n=null,o=null){let r=rM.getState();if(!r.registeredWorkspacesByName[e])throw Error(`Unable to launch workspace ${e}. Workspace is not registered`);let i=rL(e);if(!i)throw Error(`Unable to launch workspace ${e}. Workspace is not registered to a workspace window`);let{openedGroup:s}=r,{name:a}=i,l=rW(a);if(!l)throw Error(`Unable to launch workspace ${e}. Workspace window ${i.name} is not registered to a workspace group`);let c=rD(e);if(s&&(s.groupName!==l.name||!d5(s.props,o)))return!!await d4({reason:"CLOSE_WORKSPACE_GROUP",explicit:!0})&&(rM.setState({...r,openedGroup:{groupName:l.name,props:o},openedWindows:[{windowName:a,openedWorkspaces:[ma(e,t)],props:n,maximized:!1}],isMostRecentlyOpenedWindowHidden:!1}),!0);if(c>=0){let o=r.openedWindows[c],i=r.openedGroup?.props??{},s=r.isMostRecentlyOpenedWindowHidden,{openedWorkspaces:u}=o;if(d5(o.props,n)){let d=u.find(t=>t.workspaceName===e);return d&&d5(d.props,t)?((s||c!==r.openedWindows.length-1)&&rM.setState(mn.restoreWindow(r,a)),!0):!!await d4({reason:"CLOSE_WORKSPACE",explicit:!1,windowName:a,workspaceName:e})&&(rM.setState({...r,openedGroup:{groupName:l.name,props:r?.openedGroup?.props??i},openedWindows:[...r.openedWindows.filter((e,t)=>t!==c),{windowName:a,openedWorkspaces:[ma(e,t)],props:o?.props??n,maximized:!1}],isMostRecentlyOpenedWindowHidden:!1}),!0)}return!!await d4({reason:"CLOSE_WINDOW",explicit:!1,windowName:a})&&(rM.setState({...r,openedGroup:{groupName:l.name,props:i??r?.openedGroup?.props},openedWindows:[...r.openedWindows.filter((e,t)=>t!==c),{windowName:a,openedWorkspaces:[ma(e,t)],props:n,maximized:!1}],isMostRecentlyOpenedWindowHidden:!1}),!0)}return"closable"!=l.persistence?(rM.setState({...r,openedGroup:{groupName:l.name,props:o??r?.openedGroup?.props??null},openedWindows:[...r.openedWindows,{windowName:a,openedWorkspaces:[ma(e,t)],props:n,maximized:!1}],isMostRecentlyOpenedWindowHidden:!1}),!0):!!await d4({reason:"CLOSE_OTHER_WINDOWS",explicit:!1,windowNameToSpare:i.name})&&(rM.setState({...r,openedGroup:{groupName:l.name,props:o??r?.openedGroup?.props??null},openedWindows:[{windowName:a,openedWorkspaces:[ma(e,t)],props:n,maximized:!1}],isMostRecentlyOpenedWindowHidden:!1}),!0)}function d5(e,t){return null==e||null==t||x(e,t)}function d6(e,t){let n=[];for(let o=e.openedWorkspaces.length-1;o>=0;o--){let r=e.openedWorkspaces[o];if(r.hasUnsavedChanges&&n.push(r),t&&r.workspaceName===t)break}return n}function d8(e){return 0===e.length?Promise.resolve(!0):new Promise(t=>{let n=uw("workspace2-close-prompt",{size:"sm",onConfirm:()=>{n(),t(!0)},onCancel:()=>{n(),t(!1)},affectedWorkspaceTitles:e.map(e=>e.title??"")})})}function d4(e){let{openedWindows:t}=rM.getState(),n=[];switch(e.reason){case"CLOSE_WORKSPACE_GROUP":n=t.flatMap(e=>d6(e));break;case"CLOSE_WINDOW":{let o=t.find(t=>t.windowName===e.windowName);if(!o)throw Error(`Window ${e.windowName} not found in opened windows.`);n=d6(o);break}case"CLOSE_WORKSPACE":{let o=t.find(t=>t.windowName===e.windowName);if(!o)throw Error(`Window ${e.windowName} not found in opened windows.`);n=d6(o,e.workspaceName);break}case"CLOSE_OTHER_WINDOWS":n=t.filter(t=>t.windowName!==e.windowNameToSpare).flatMap(e=>d6(e))}return d8(n)}function d3(e,t){return d8(d6(e,t))}function d7(e,t){let n=e.openedWorkspaces.findIndex(e=>e.workspaceName===t);return n<0?e:0===n?null:{...e,openedWorkspaces:e.openedWorkspaces.slice(0,n)}}function d9(e,t,n,o){let{registeredWorkspacesByName:r}=rM.getState(),i=r[n];if(!i)throw Error(`No workspace named "${n}" registered`);let s=r[t];if(!s)throw Error(`No workspace named "${t}" registered`);if(s.window!==i.window)throw Error(`Child workspace ${n} does not belong to the same workspace window as parent workspace ${t}`);if(i.window!==e.windowName)throw Error(`Cannot open child workspace ${n} as window ${i.window} is not opened`);let{openedWorkspaces:a}=e,l=a.findIndex(e=>e.workspaceName===t);if(-1===l)throw Error(`Cannot open child workspace ${n} from parent workspace ${t} as the parent is not opened within the workspace window`);let c=a.slice(0,l+1);return{...e,openedWorkspaces:[...c,ma(n,o)]}}function me(e,t,n){let o=e.openedWorkspaces.findIndex(e=>e.uuid===t);if(o<0)return e;let r=e.openedWorkspaces[o];if(Object.keys(n).every(e=>r[e]===n[e]))return e;let i=[...e.openedWorkspaces];return i[o]={...r,...n},{...e,openedWorkspaces:i}}function mt(e,t,n){let o=e.openedWindows.findIndex(e=>e.openedWorkspaces.some(e=>e.uuid===t));if(o<0)return e;let r=e.openedWindows[o],i=me(r,t,n);if(i===r)return e;let s=[...e.openedWindows];return s[o]=i,{...e,openedWindows:s}}let mn={setWindowMaximized(e,t,n){let o=e.openedWindows.findIndex(e=>e.windowName===t),r=[...e.openedWindows],i={...r[o],maximized:n};return r[o]=i,{...e,openedWindows:r}},hideWindow:e=>({...e,isMostRecentlyOpenedWindowHidden:!0}),restoreWindow(e,t){let n=e.openedWindows.findIndex(e=>e.windowName===t),o=e.openedWindows[n],r=[...e.openedWindows.filter((e,t)=>t!==n),o];return{...e,openedWindows:r,isMostRecentlyOpenedWindowHidden:!1}},closeWorkspace(e,t){let n=e.openedWindows.findIndex(e=>e.openedWorkspaces.some(e=>e.workspaceName===t));if(n<0)return e;let o=d7(e.openedWindows[n],t),r=[...e.openedWindows],i=e.isMostRecentlyOpenedWindowHidden;if(null===o){let t=n===e.openedWindows.length-1;r.splice(n,1),t&&r.length>0&&(i=!1)}else r[n]=o;return{...e,openedWindows:r,isMostRecentlyOpenedWindowHidden:i}},openChildWorkspace(e,t,n,o){let r=e.registeredWorkspacesByName[n];if(!r)throw Error(`No workspace named "${n}" registered`);let i=e.openedWindows.findIndex(e=>e.windowName===r.window);if(-1==i)throw Error(`Cannot open child workspace ${n} as window ${r.window} is not opened`);let s=[...e.openedWindows];return s[i]=d9(e.openedWindows[i],t,n,o),{...e,openedWindows:s}},setHasUnsavedChanges:(e,t,n)=>mt(e,t,{hasUnsavedChanges:n}),setWorkspaceTitle:(e,t,n)=>mt(e,t,{title:n})};function mo(){return r3(rM,mn)}let mr=()=>(0,rY.useContext)(iu.i),mi=()=>Object.keys(rM.getState().registeredWorkspacesByName);function ms(e,t,n){let o=e.openedWorkspaces[e.openedWorkspaces.length-1];return(o?t[o.workspaceName]?.width:void 0)??n[e.windowName]?.width??"narrow"}function ma(e,t){return{workspaceName:e,props:t??{},hasUnsavedChanges:!1,uuid:(0,dQ.A)()}}function ml(e,t,n){let o=rM.getState().registeredWorkspacesByName[e];return o?{windowName:o.window,openedWorkspaces:[ma(e,t)],props:n??null,maximized:!1}:null}let mc=({title:e,children:t,hasUnsavedChanges:n=!1})=>{let{setHasUnsavedChanges:o,setWorkspaceTitle:r}=mr();return(0,rY.useEffect)(()=>{o(n??!1)},[n,o]),(0,rY.useEffect)(()=>{r(e)},[e,r]),(0,r0.jsx)(r0.Fragment,{children:t})};var mu=n(1820),md=n(3173),mm=n(185);let mp={workspaceOuterContainer:"-esm-implementer-tools__workspace2-module__workspaceOuterContainer___bPVpy",narrowWorkspace:"-esm-implementer-tools__workspace2-module__narrowWorkspace___kSYS7",widerWorkspace:"-esm-implementer-tools__workspace2-module__widerWorkspace___nW2HB",extraWideWorkspace:"-esm-implementer-tools__workspace2-module__extraWideWorkspace___em5yA",workspaceMiddleContainer:"-esm-implementer-tools__workspace2-module__workspaceMiddleContainer___Bx1i6",maximized:"-esm-implementer-tools__workspace2-module__maximized___Kfygr",hidden:"-esm-implementer-tools__workspace2-module__hidden___RPimX",workspaceInnerContainer:"-esm-implementer-tools__workspace2-module__workspaceInnerContainer___5zxpt",workspaceSpacer:"-esm-implementer-tools__workspace2-module__workspaceSpacer___E+982",loader:"-esm-implementer-tools__workspace2-module__loader___vmBQn",hiddenExtraWorkspace:"-esm-implementer-tools__workspace2-module__hiddenExtraWorkspace___qkbMG",header:"-esm-implementer-tools__workspace2-module__header___IZ-2+",headerButtons:"-esm-implementer-tools__workspace2-module__headerButtons___81a2N",workspaceContent:"-esm-implementer-tools__workspace2-module__workspaceContent___eetPy",overlayHeaderSpacer:"-esm-implementer-tools__workspace2-module__overlayHeaderSpacer___ruc6r",isActionMenuOpened:"-esm-implementer-tools__workspace2-module__isActionMenuOpened___XgCkc",showActionMenu:"-esm-implementer-tools__workspace2-module__showActionMenu___sHRt1",marginWorkspaceContent:"-esm-implementer-tools__workspace2-module__marginWorkspaceContent___TN+S+",workspaceContainerWithActionMenu:"-esm-implementer-tools__workspace2-module__workspaceContainerWithActionMenu___xLg8e",workspaceFixedContainer:"-esm-implementer-tools__workspace2-module__workspaceFixedContainer___W9cgZ",workspaceContainerWithoutActionMenu:"-esm-implementer-tools__workspace2-module__workspaceContainerWithoutActionMenu___fRrxd"},mf=e=>e.registeredWorkspacesByName,mg=({lifeCycle:e,openedWorkspace:t,openedWindow:n,groupProps:o,actions:r,renderChrome:i,isRootWorkspace:s,isLeafWorkspace:a,showActionMenu:l})=>{let c=(0,rY.useMemo)(()=>t&&{closeWorkspace:async(e={})=>{let{closeWindow:o=!1,discardUnsavedChanges:i=!1}=e;return o?!!(i||await r.promptForClosingWorkspaces())&&(r.closeWorkspace(n.openedWorkspaces[0].workspaceName),!0):!!(i||await r.promptForClosingWorkspaces(t.workspaceName))&&(r.closeWorkspace(t.workspaceName),!0)},launchChildWorkspace:async(e,o)=>{let i=t.workspaceName,{openedWorkspaces:s}=n,a=s.findIndex(e=>e.workspaceName===i);-1===a||a!==s.length-1&&s.slice(a+1).some(e=>e.hasUnsavedChanges)&&!await r.promptForClosingWorkspaces(s[a+1].workspaceName)||r.openChildWorkspace(i,e,o||{})},setWorkspaceTitle:e=>r.setWorkspaceTitle(t.uuid,e),setHasUnsavedChanges:e=>r.setHasUnsavedChanges(t.uuid,e),workspaceName:t.workspaceName,workspaceProps:t.props,windowProps:n.props,groupProps:o,workspaceMeta:rM.getState().registeredWorkspacesByName[t.workspaceName]?.meta??{},isRootWorkspace:s,isLeafWorkspace:a,windowName:n.windowName,showActionMenu:l},[t,n,o,r,s,a,l]),u=!i&&!a,d=(0,rY.useMemo)(()=>e?(0,r0.jsx)(mu.A,{config:e,mountParcel:rK,wrapWith:"div",wrapClassName:sq()(mp.workspaceContent,{[mp.hiddenExtraWorkspace]:u}),...c},t.workspaceName):null===e?(0,r0.jsx)("div",{className:sq()(mp.workspaceContent,{[mp.hiddenExtraWorkspace]:u}),children:(0,r0.jsx)(sZ.InlineNotification,{kind:"error",title:tb("error"),subtitle:tb("somethingWentWrongTryReloading"),hideCloseButton:!0})}):null,[e,t.workspaceName,c,u]);return i?(0,r0.jsx)("div",{children:(0,r0.jsx)(mh,{openedWorkspace:t,openedWindow:n,isRootWorkspace:s,showActionMenu:l,closeWindow:()=>c.closeWorkspace({closeWindow:!0}),children:d})}):d??(0,r0.jsx)(sZ.InlineLoading,{className:sq()(mp.loader,{[mp.hiddenExtraWorkspace]:u}),description:`${tb("loading")}`})},mh=({openedWorkspace:e,openedWindow:t,isRootWorkspace:n,showActionMenu:o,closeWindow:r,children:i})=>{let s=ss(),{openedGroup:a,openedWindows:l,registeredWindowsByName:c,registeredWorkspacesByName:u,registeredGroupsByName:d,isMostRecentlyOpenedWindowHidden:m,setWindowMaximized:p,hideWindow:f}=mo(),g=t.windowName,{maximized:h}=t,w=e.title??"",_=c[g],y=ms(t,u,c),v=_?.icon,b=_?.canMaximize,x=!!a&&d[a.groupName]?.persistence==="closable",S=!!v&&!x,j=l.findIndex(e=>e.windowName===g)<l.length-1||m,k=Object.values(c).some(e=>e.group===a?.groupName&&void 0!==e.icon);return(0,r0.jsxs)("div",{className:sq()(mp.workspaceOuterContainer,{[mp.narrowWorkspace]:"narrow"===y,[mp.widerWorkspace]:"wider"===y,[mp.extraWideWorkspace]:"extra-wide"===y,[mp.isActionMenuOpened]:k}),children:[(0,r0.jsx)("div",{className:sq()(mp.workspaceSpacer,{[mp.hidden]:j})}),(0,r0.jsx)("div",{className:sq()(mp.workspaceMiddleContainer,{[mp.maximized]:h,[mp.hidden]:j,[mp.isRootWorkspace]:n,[mp.showActionMenu]:o}),children:(0,r0.jsx)("div",{className:sq()(mp.workspaceInnerContainer,{[mp.maximized]:h,[mp.hidden]:j,[mp.isRootWorkspace]:n}),children:i?(0,r0.jsxs)(r0.Fragment,{children:[(0,r0.jsxs)(sZ.Header,{"aria-label":tb("workspaceHeader"),className:mp.header,children:[(0,r0.jsx)(sZ.HeaderName,{prefix:"",children:w}),(0,r0.jsx)("div",{className:mp.overlayHeaderSpacer}),(0,r0.jsx)(sZ.HeaderGlobalBar,{className:mp.headerButtons,children:sa(s)?(0,r0.jsxs)(r0.Fragment,{children:[(b||h)&&(0,r0.jsx)(sZ.HeaderGlobalAction,{"aria-label":h?tb("minimize"):tb("maximize"),onClick:()=>p(g,!h),children:h?(0,r0.jsx)(md.Xj,{}):(0,r0.jsx)(md.hz,{})}),S&&(0,r0.jsx)(sZ.HeaderGlobalAction,{"aria-label":tb("hide"),onClick:()=>f(),children:(0,r0.jsx)(as,{})}),!x&&(0,r0.jsx)(sZ.HeaderGlobalAction,{"aria-label":tb("close"),onClick:r,children:(0,r0.jsx)(aj,{})})]}):(0,r0.jsxs)(r0.Fragment,{children:[S&&(0,r0.jsx)(sZ.HeaderGlobalAction,{"aria-label":tb("hide"),onClick:()=>f(),children:(0,r0.jsx)(mm.d3,{})}),(0,r0.jsx)(sZ.HeaderGlobalAction,{"aria-label":tb("close"),onClick:()=>{x?d1():r()},children:(0,r0.jsx)(aj,{})})]})})]}),i]}):(0,r0.jsx)(sZ.InlineLoading,{className:mp.loader,description:`${tb("loading")} ...`})})})]})},mw=({openedWindow:e,groupProps:t,actions:n,renderChrome:o,showActionMenu:r})=>{let{openedWorkspaces:i}=e,[s,a]=(0,rY.useState)({}),l=r4(rM,mf),c=(0,rY.useRef)(new Set);return(0,rY.useEffect)(()=>{let e=!1;return Promise.all(i.map(async t=>{let n=l[t.workspaceName];if(!n)return null;let{moduleName:o,component:r}=n;try{return[t.uuid,await s$(o,r)]}catch(n){return e||c.current.has(t.uuid)||(c.current.add(t.uuid),y(n)),[t.uuid,null]}})).then(t=>{e||a(Object.fromEntries(t.filter(e=>null!=e)))},y),()=>{e=!0}},[i,l]),(0,r0.jsx)(r0.Fragment,{children:i.map((a,l)=>(0,r0.jsx)(mg,{openedWorkspace:a,openedWindow:e,groupProps:t,actions:n,renderChrome:o,lifeCycle:s[a.uuid],isRootWorkspace:0===l,isLeafWorkspace:l===i.length-1,showActionMenu:r},a.uuid))})},m_=e=>e.registeredWorkspacesByName,my=({name:e,workspaceProps:t,windowProps:n,groupProps:o,onWindowChanged:r})=>{let i=r4(rM,m_),s=r4(rM,t=>{let n=t.registeredWorkspacesByName[e]?.window;return n?t.registeredWindowsByName[n]:void 0}),a={name:e,workspaceProps:t,windowProps:n,groupProps:o},l=(0,rY.useRef)(null),c=(0,rY.useRef)(null);if(!l.current){let r=ml(e,t,n);l.current=T({openedWindow:r,groupProps:o??null}),r&&(c.current=a)}let u=l.current;(0,rY.useEffect)(()=>{let r=c.current;if(r&&r.name===e&&x(r.workspaceProps,t)&&x(r.windowProps,n)&&x(r.groupProps,o))return;let i=ml(e,t,n);u.setState({openedWindow:i,groupProps:o??null},!0),c.current=i?a:null},[e,t,n,o,i,u]);let d=(0,rY.useMemo)(()=>(function(e){function t(t){e.setState(e=>{if(!e.openedWindow)return e;let n=t(e.openedWindow);return n===e.openedWindow?e:{...e,openedWindow:n}})}return{closeWorkspace(e){t(t=>d7(t,e))},openChildWorkspace(e,n,o){t(t=>d9(t,e,n,o))},setWorkspaceTitle(e,n){t(t=>me(t,e,{title:n}))},setHasUnsavedChanges(e,n){t(t=>me(t,e,{hasUnsavedChanges:n}))},promptForClosingWorkspaces(t){let{openedWindow:n}=e.getState();return n?d3(n,t):Promise.resolve(!0)}}})(u),[u]),{openedWindow:m,groupProps:p}=r4(u),f=m?.openedWorkspaces[m.openedWorkspaces.length-1],g=f?.workspaceName??null,h=f?.title??"",w=m?.openedWorkspaces.some(e=>e.hasUnsavedChanges)??!1,_=s?.width??"narrow",y=(0,rY.useRef)(r);return(0,rY.useEffect)(()=>{y.current=r}),(0,rY.useEffect)(()=>{y.current?.({workspaceName:g,windowWidth:_,title:h,hasUnsavedChanges:w})},[g,_,h,w]),(0,r0.jsx)("div",{className:"-esm-implementer-tools__exported-workspace-module__exportedWorkspace___7PE0H",children:m?(0,r0.jsx)(mw,{openedWindow:m,groupProps:p,actions:d,renderChrome:!1,showActionMenu:!1}):null})},mv="-esm-implementer-tools__action-menu-button2-module__container___jc6--",mb="-esm-implementer-tools__action-menu-button2-module__elementContainer___whLL8",mx="-esm-implementer-tools__action-menu-button2-module__active___fbyFm",mS="-esm-implementer-tools__action-menu-button2-module__focused___+aVpz";function mj({getIcon:e,hasUnsavedChanges:t,tagContent:n}){return(0,r0.jsxs)(r0.Fragment,{children:[e({size:16}),t?(0,r0.jsx)("span",{className:"-esm-implementer-tools__action-menu-button2-module__interruptedTag___sRkvS",children:"!"}):(0,r0.jsx)("span",{className:"-esm-implementer-tools__action-menu-button2-module__countTag___XMH0D",children:n})]})}let mk=({icon:e,label:t,tagContent:n,workspaceToLaunch:o,onBeforeWorkspaceLaunch:r,hidden:i,disabled:s})=>{let a=ss(),{openedWindows:l,restoreWindow:c,hideWindow:u,isMostRecentlyOpenedWindowHidden:d}=mo(),{extension:m}=(0,rY.useContext)(rQ),p=l.findIndex(e=>e.windowName===m?.extensionId),f=l[p],g=null!=f,h=g&&(p<l.length-1||d),w=g&&!h,_=f?.openedWorkspaces.some(e=>e.hasUnsavedChanges)??!1,y=async()=>{if(g)h?c(f.windowName):u();else if(await (r?.()??!0)){let{workspaceName:e,workspaceProps:t,windowProps:n}=o;d2(e,t,n)}};return i?.(l)?null:"tablet"===a||"phone"===a?(0,r0.jsxs)(sZ.Button,{className:sq()(mv,{[mx]:g&&!w,[mS]:w}),iconDescription:t,kind:"ghost",onClick:y,role:"button",tabIndex:0,size:"md",disabled:s?.(l),children:[(0,r0.jsx)("span",{className:mb,children:(0,r0.jsx)(mj,{hasUnsavedChanges:_,getIcon:e,tagContent:n})}),(0,r0.jsx)("span",{children:t})]}):(0,r0.jsx)(sZ.IconButton,{align:"left","aria-label":t,className:sq()(mv,{[mx]:g&&!w,[mS]:w}),enterDelayMs:300,kind:"ghost",label:t,onClick:y,size:"md",disabled:s?.(l),children:(0,r0.jsx)("div",{className:mb,children:(0,r0.jsx)(mj,{hasUnsavedChanges:_,getIcon:e,tagContent:n})})})};function mN({showContactDetails:e,toggleContactDetails:t,className:n}){return(0,r0.jsx)(sZ.Button,{className:n,iconDescription:"Toggle contact details",kind:"ghost",onClick:t,renderIcon:e?aS:av,children:e?tb("showLess","Show less"):tb("showMore","Show more")})}let mC={contactDetails:"-esm-implementer-tools__patient-banner-contact-details-module__contactDetails___R7vfY",deceased:"-esm-implementer-tools__patient-banner-contact-details-module__deceased___nTt+l",heading:"-esm-implementer-tools__patient-banner-contact-details-module__heading___x7UoT",row:"-esm-implementer-tools__patient-banner-contact-details-module__row___qFgIi",col:"-esm-implementer-tools__patient-banner-contact-details-module__col___JXUlg",relationship:"-esm-implementer-tools__patient-banner-contact-details-module__relationship___T3LO-"},mE=({patientUuid:e})=>{let{cohorts:t=[],isLoading:n}=function(e){let t=e?`${tT}/cohortm/cohortmember?patient=${e}&v=custom:(uuid,patient:ref,cohort:(uuid,name,startDate,endDate))`:null,{data:n,isLoading:o}=ip()(t,tW),r=n?.data?.results.map(e=>({uuid:e.cohort.uuid,name:e.cohort.name,startDate:e.cohort.startDate,endDate:e.cohort.endDate}));return(0,rY.useMemo)(()=>({cohorts:r,isLoading:o}),[o,r])}(e);return(0,r0.jsxs)(r0.Fragment,{children:[(0,r0.jsxs)("p",{className:mC.heading,children:[tb("patientLists","Patient Lists")," (",t?.length??0,")"]}),n?(0,r0.jsx)(sZ.InlineLoading,{description:`${tb("loading","Loading")} ...`,role:"progressbar"}):(0,r0.jsxs)("ul",{children:[(()=>{if(t?.length>0){let e=t.sort((e,t)=>cr(e?.startDate).getTime()-cr(t?.startDate).getTime()).slice(0,3);return e?.map(e=>(0,r0.jsx)("li",{children:(0,r0.jsx)(r1,{to:`${window.spaBase}/home/patient-lists/${e.uuid}`,children:e.name},e.uuid)},e.uuid))}return(0,r0.jsx)("li",{children:"--"})})(),t.length>3&&(0,r0.jsx)("li",{className:mC.link,children:(0,r0.jsx)(r1,{to:`${window.spaBase}/home/patient-lists`,children:tb("seeMoreLists","See {{count}} more lists",{count:t?.length-3})})})]})]})},mP=({patientId:e})=>{let{patient:t,isLoading:n}=s_(e),o=t?.address?.find(e=>"home"===e.use),r=e=>e.split("#")[1];return n?(0,r0.jsx)(sZ.InlineLoading,{description:`${tb("loading","Loading")} ...`,role:"progressbar"}):(0,r0.jsxs)(r0.Fragment,{children:[(0,r0.jsx)("p",{className:mC.heading,children:tb("address","Address")}),(0,r0.jsx)("ul",{children:o?Object.entries(o).filter(([e])=>"id"!==e&&"use"!==e).map(([e,t])=>"extension"===e?o.extension?.[0]?.extension?.map((t,n)=>(0,r0.jsxs)("li",{children:[tb(r(t.url),r(t.url)),": ",t.valueString]},`address-${e}-${n}`)):(0,r0.jsxs)("li",{children:[tb(e,e),": ",t]},`address-${e}`)):(0,r0.jsx)("li",{children:"--"})})]})},mI=({patientUuid:e})=>{let{isLoading:t,contactAttributes:n}=(e=>{let{contactAttributeTypes:t=[]}=iH({externalModuleName:"@openmrs/esm-patient-banner-app"}),{attributes:n,error:o,isLoading:r}=(e=>{let{data:t,error:n,isLoading:o}=iq()(`${tT}/patient/${e}?v=custom:(uuid,display,identifiers:(identifier,uuid,preferred,location:(uuid,name),identifierType:(uuid,name,format,formatDescription,validator)),person:(uuid,display,gender,birthdate,dead,age,deathDate,birthdateEstimated,causeOfDeath,preferredName:(uuid,preferred,givenName,middleName,familyName),attributes,preferredAddress:(uuid,preferred,address1,address2,cityVillage,longitude,stateProvince,latitude,country,postalCode,countyDistrict,address3,address4,address5,address6,address7)))`,tW);return{isLoading:o,attributes:t?.data.person.attributes??[],error:n}})(e);return{contactAttributes:(0,rY.useMemo)(()=>n.filter(({attributeType:e})=>t?.some(t=>e.uuid===t)),[n,t]),isLoading:r,error:o}})(e),o=(0,rY.useMemo)(()=>n?[...n?.map(e=>[e.attributeType.display?tb(e.attributeType.display,e.attributeType.display):"",e.value])]:[],[n]);return(0,r0.jsxs)(r0.Fragment,{children:[(0,r0.jsx)("p",{className:mC.heading,children:tb("contactDetails","Contact Details")}),t?(0,r0.jsx)(sZ.InlineLoading,{description:`${tb("loading","Loading")} ...`,role:"progressbar"}):(0,r0.jsx)("ul",{children:o.length?o.map(([e,t],n)=>(0,r0.jsxs)("li",{children:[e,": ",t]},`${e}-${t}-${n}`)):(0,r0.jsx)("li",{children:"--"})})]})},mO=({patientId:e})=>{let{data:t,isLoading:n}=function(e){let t=`${tT}/relationship?v=custom:(display,uuid,personA:(age,display,birthdate,uuid),personB:(age,display,birthdate,uuid),relationshipType:(uuid,display,description,aIsToB,bIsToA))&person=${e}`,{data:n,error:o,isLoading:r,isValidating:i}=ip()(e?t:null,tW),s=n?.data?.results?.length?function(e,t){let n=[];for(let o of t)e===o.personA.uuid?n.push({uuid:`${o.uuid}`,display:o.personB.display,relativeAge:o.personB.age,relativeUuid:o.personB.uuid,relationshipType:o.relationshipType.bIsToA}):n.push({uuid:`${o.uuid}`,display:o.personA.display,relativeAge:o.personA.age,relativeUuid:o.personA.uuid,relationshipType:o.relationshipType.aIsToB});return n}(e,n.data.results):null;return{data:n?s:null,error:o,isLoading:r,isValidating:i}}(e);return(0,r0.jsxs)(r0.Fragment,{children:[(0,r0.jsx)("p",{className:mC.heading,children:tb("relationships","Relationships")}),n?(0,r0.jsx)(sZ.InlineLoading,{description:`${tb("loading","Loading")} ...`,role:"progressbar"}):(0,r0.jsx)("ul",{children:t&&t.length>0?(0,r0.jsx)(r0.Fragment,{children:t.map(e=>(0,r0.jsxs)("li",{className:mC.relationship,children:[(0,r0.jsx)("div",{children:(0,r0.jsx)(r1,{to:`${window.spaBase}/patient/${e.relativeUuid}/chart`,children:e.display})}),(0,r0.jsx)("div",{children:e.relationshipType}),(0,r0.jsx)("div",{children:`${e.relativeAge?e.relativeAge:"--"} ${e.relativeAge?1===e.relativeAge?tb("yearAbbreviation","yr"):tb("yearsAbbreviation","yrs"):""}`})]},e.uuid))}):(0,r0.jsx)("li",{children:"--"})})]})};function mA({patientId:e,deceased:t}){return(0,r0.jsxs)("div",{className:sq()(mC.contactDetails,{[mC.deceased]:t}),children:[(0,r0.jsxs)("div",{className:mC.row,children:[(0,r0.jsx)("div",{className:mC.col,children:(0,r0.jsx)(mP,{patientId:e})}),(0,r0.jsx)("div",{className:mC.col,children:(0,r0.jsx)(mI,{patientUuid:e})})]}),(0,r0.jsxs)("div",{className:mC.row,children:[(0,r0.jsx)("div",{className:mC.col,children:(0,r0.jsx)(mO,{patientId:e})}),(0,r0.jsx)("div",{className:mC.col,children:(0,r0.jsx)(mE,{patientUuid:e})})]})]})}function mR(e){let t=document.querySelector("template#loading-spinner");if(t){let n=t.content.cloneNode(!0),o=Array.prototype.map.call(n.childNodes,e=>e);return e.appendChild(n),()=>o.forEach(e=>e.remove())}return()=>{}}let mT="-esm-implementer-tools__action-menu2-module__container___6Gke0";function m$({workspaceGroup:e,groupProps:t}){let n=ss(),{persistence:o}=e;return(0,r0.jsx)("aside",{className:"-esm-implementer-tools__action-menu2-module__sideRail___T2lMV",children:(0,r0.jsxs)("div",{className:mT,children:["closable"==o&&sa(n)&&(0,r0.jsx)(sZ.IconButton,{align:"left",onClick:()=>d1(),label:tb("close"),kind:"ghost",children:(0,r0.jsx)(aj,{})}),(0,r0.jsx)(rQ.Provider,{value:{moduleName:e.moduleName,featureName:e.name},children:(0,r0.jsx)(ia,{className:mT,name:e.name,state:{groupProps:t}})})]})})}function mM(e){let t=new URL(e,window.location.origin).pathname,n=new URL(window.getOpenmrsSpaBase?.()??"/",window.location.origin).pathname,o=n.endsWith("/")?n.slice(0,-1):n,r=null;return o?o===t?r="/":t.startsWith(`${o}/`)&&(r=t.slice(o.length)):r=t,{full:t,spaRelative:r}}function mL(e){e&&(0,il.createRoot)(e).render((0,r0.jsx)(mW,{}))}function mW(){let{openedGroup:e,openedWindows:t,registeredGroupsByName:n,registeredWindowsByName:o}=mo();if((0,rY.useEffect)(()=>n0("before-page-changed",t=>{let{newPage:o,cancelNavigation:r,oldUrl:i,newUrl:s}=t;if(!e)return;if(o)return void r(d1().then(e=>!e));let a=n[e.groupName],l=a?.scopePattern;l&&function(e,t,n){try{let o=new RegExp(e),r=mM(t),i=mM(n);if(null===r.spaRelative||null===i.spaRelative)return!0;let s=o.exec(r.spaRelative),a=o.exec(i.spaRelative);if(s&&a||(s=o.exec(r.full),a=o.exec(i.full)),!s||!a)return!0;if(s.length>1)return!s.slice(1).every((e,t)=>e===a[t+1]);return!1}catch{return!0}}(l,i,s)&&r(d1().then(e=>!e))}),[e,n]),!e)return null;let r=n[e.groupName],i=t.some(e=>e.maximized),{name:s}=r,a=Object.values(o).filter(e=>e.group===s&&void 0!==e.icon).sort((e,t)=>(e.order??Number.MAX_VALUE)-(t.order??Number.MAX_VALUE)).length>0;return(0,r0.jsxs)("div",{className:sq()("-esm-implementer-tools__workspace-windows-and-menu-module__workspaceWindowsAndMenuContainer___2u2mc",{"-esm-implementer-tools__workspace-windows-and-menu-module__overlay___7RHYZ":r.overlay,"-esm-implementer-tools__workspace-windows-and-menu-module__hasMaximizedWindow___gvJRd":i}),children:[(0,r0.jsx)("div",{className:"-esm-implementer-tools__workspace-windows-and-menu-module__workspaceWindowsContainer___40ITO",children:t.map(t=>(0,r0.jsx)(mD,{openedWindow:t,groupProps:e.props,showActionMenu:a},t.windowName))}),a&&(0,r0.jsx)(m$,{workspaceGroup:r,groupProps:e.props})]})}function mD({openedWindow:e,groupProps:t,showActionMenu:n}){let{windowName:o}=e,r=(0,rY.useMemo)(()=>({closeWorkspace(e){rM.setState(t=>mn.closeWorkspace(t,e))},openChildWorkspace(e,t,n){rM.setState(o=>mn.openChildWorkspace(o,e,t,n))},setWorkspaceTitle(e,t){rM.setState(n=>mn.setWorkspaceTitle(n,e,t))},setHasUnsavedChanges(e,t){rM.setState(n=>mn.setHasUnsavedChanges(n,e,t))},promptForClosingWorkspaces(e){let t=rM.getState().openedWindows.find(e=>e.windowName===o);return t?d3(t,e):Promise.resolve(!0)}}),[o]);return(0,r0.jsx)(mw,{openedWindow:e,groupProps:t,actions:r,renderChrome:!0,showActionMenu:n})}function mU(e,t,n){if(null==e)return n;let o=lQ(e);if(!o)return console.warn(`matchLocale: invalid requested locale tag: ${JSON.stringify(e)}`),n;let r=[];for(let e of t){let t=lQ(e);if(!t){console.warn(`matchLocale: skipping invalid available locale tag: ${JSON.stringify(e)}`);continue}r.push({canonical:t,original:e})}let i=o;for(;i;){let e=r.find(e=>e.canonical===i);if(e)return e.original;let t=i+"-",n=r.find(e=>e.canonical.startsWith(t));if(n)return n.original;if("ht"===i){i="fr-HT";continue}let o=i.lastIndexOf("-");if(-1===o)break;let s=(i=i.slice(0,o)).lastIndexOf("-");-1!==s&&i.length-s==2&&(i=i.slice(0,s))}return n}function mB(e=window.localStorage){try{return e.getItem("test"),!0}catch{return!1}}function mF(e){return!!e&&e.constructor===Object}var mH=n(3376);function mV(e){let[t,n,o]=e.split(".");return`${t}.${n}.${o}`}function mz(e,t){return mH(function(e){let t=e.indexOf("-");if(t>=0){let n=mV(e.slice(0,t)),o=e.slice(t+1);return`${n}-${o}`}return mV(e)}(t),e,{includePrerelease:!0})}async function mG(e,t={}){let n,{shouldRetry:o,getDelay:r,onError:i}=t;o=o??(e=>e<=5),r=r??(e=>(function(e,t=!1){return 1e3*Math.pow(2,t?e+1:e)})(e));let s=0;do try{return await mq(r(s)),await e()}catch(e){i?.(e,s),n=e}while(o(s++));throw n}async function mq(e){if(!(e<=0))return new Promise(t=>setTimeout(t,e))}function mJ(e,t,n,o){}function mK(e){}function mX(e){return Promise.resolve([])}function mY(e){return Promise.resolve([])}function mZ(e){return Promise.resolve({success:!1,result:void 0,error:"No service worker has been registered. Offline-related features have been removed from the framework."})}function mQ(e){return()=>{}}function m0(){return!0}}}]);
|