@openmrs/esm-app-shell 10.0.1-pre.5607 → 10.0.1-pre.5616

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.
@@ -705,7 +705,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* import */ var _openmrs_es
705
705
  },
706
706
  "./src/run.ts"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
707
707
  "use strict";
708
- eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n run: () => (run)\n});\n/* import */ var single_spa__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/single-spa/single-spa\");\n/* import */ var single_spa__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(single_spa__rspack_import_0);\n/* import */ var _openmrs_esm_framework_src_internal__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/@openmrs/esm-framework/src/internal/@openmrs/esm-framework/src/internal\");\n/* import */ var _openmrs_esm_framework_src_internal__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(_openmrs_esm_framework_src_internal__rspack_import_1);\n/* import */ var _openmrs_esm_styleguide_src_index__rspack_import_2 = __webpack_require__(\"../../framework/esm-styleguide/dist/index.js\");\n/* import */ var _locale__rspack_import_3 = __webpack_require__(\"./src/locale.ts\");\n/* import */ var swr_mutation__rspack_import_4 = __webpack_require__(\"webpack/sharing/consume/default/swr/mutation/swr/mutation\");\n/* import */ var swr_mutation__rspack_import_4_default = /*#__PURE__*/__webpack_require__.n(swr_mutation__rspack_import_4);\n/* import */ var swr_subscription__rspack_import_5 = __webpack_require__(\"webpack/sharing/consume/default/swr/subscription/swr/subscription\");\n/* import */ var swr_subscription__rspack_import_5_default = /*#__PURE__*/__webpack_require__.n(swr_subscription__rspack_import_5);\n/* import */ var _routing_events__rspack_import_6 = __webpack_require__(\"./src/routing-events.ts\");\n/* import */ var _events__rspack_import_7 = __webpack_require__(\"./src/events.ts\");\n/* import */ var _ui__rspack_import_8 = __webpack_require__(\"./src/ui/index.ts\");\n/* import */ var _core_config__rspack_import_9 = __webpack_require__(\"./src/core-config.ts\");\n\n\n\n\n// imported so we create the MF shares for these\n\n\n\n\n\n\n// @internal\n// used to track when the window.installedModules global is finalised\n// so we can pre-load all modules\nconst REGISTRATION_PROMISES = Symbol('openmrs_registration_promises');\nlet initialRouteMap;\n/**\n * Sets up the frontend modules (apps). Uses the defined export\n * from the root modules of the apps. This is done by reading the\n * list of apps from the routes.registry.json file, which serves\n * as the registry of all apps in the application.\n */ async function setupApps() {\n await (0,_openmrs_esm_framework_src_internal__rspack_import_1.setupRouteMapOverrides)();\n const routes = initialRouteMap = await (0,_openmrs_esm_framework_src_internal__rspack_import_1.getCurrentRouteMap)();\n const modules = [];\n const registrationPromises = Object.entries(routes.routes).map(async ([module, appRoutes])=>{\n modules.push([\n module,\n appRoutes\n ]);\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.registerApp)(module, appRoutes);\n });\n window[REGISTRATION_PROMISES] = Promise.all(registrationPromises);\n Object.defineProperty(window, 'installedModules', {\n value: modules,\n writable: false,\n configurable: false\n });\n}\n/**\n * Loads the provided configurations and sets them in the system.\n */ async function loadConfigs(configs) {\n for (const config of configs){\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.provide)(config.value, config.name);\n }\n}\n/**\n * Runs the shell by importing the translations and starting single SPA.\n */ async function runShell() {\n try {\n await (0,_locale__rspack_import_3.setupI18n)();\n } catch (err) {\n console.error(`Failed to initialize translation system`, err);\n }\n const applicationVersion = initialRouteMap.version;\n if (applicationVersion === undefined || applicationVersion === null || applicationVersion.trim().length === 0) {\n Object.defineProperty(window, 'applicationVersion', {\n value: undefined,\n writable: false,\n configurable: false\n });\n } else if (applicationVersion === 'prerelease') {\n Object.defineProperty(window, 'applicationVersion', {\n value: window.spaVersion === 'local' ? (0,_openmrs_esm_framework_src_internal__rspack_import_1.getCoreTranslation)('localVersion') : (0,_openmrs_esm_framework_src_internal__rspack_import_1.getCoreTranslation)('prereleaseVersion'),\n writable: false,\n configurable: false\n });\n } else {\n Object.defineProperty(window, 'applicationVersion', {\n value: applicationVersion,\n writable: false,\n configurable: false\n });\n }\n const { preferredCalendar } = await (0,_openmrs_esm_framework_src_internal__rspack_import_1.getConfig)('@openmrs/esm-styleguide');\n for (const entry of Object.entries(preferredCalendar)){\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.registerDefaultCalendar)(entry[0], entry[1]);\n }\n (0,single_spa__rspack_import_0.start)();\n}\nfunction handleInitFailure(e) {\n console.error(e);\n renderFatalErrorPage(e);\n}\nfunction renderFatalErrorPage(e) {\n const template = document.querySelector('#app-error');\n if (template) {\n const fragment = template.content.cloneNode(true);\n const messageContainer = fragment.querySelector('[data-var=\"message\"]');\n if (messageContainer) {\n messageContainer.textContent = e?.message || 'No additional information available.';\n }\n if (localStorage.getItem('openmrs:devtools') && Object.keys(localStorage).some((k)=>k.startsWith('import-map-override:'))) {\n const appErrorActionButtons = fragment?.querySelector('#buttons');\n if (appErrorActionButtons) {\n const clearDevOverridesButton = document.createElement('button');\n clearDevOverridesButton.className = 'cds--btn';\n clearDevOverridesButton.innerHTML = 'Clear dev overrides';\n clearDevOverridesButton.onclick = clearDevOverrides;\n appErrorActionButtons.appendChild(clearDevOverridesButton);\n }\n }\n document.body.appendChild(fragment);\n }\n}\nfunction clearDevOverrides() {\n const keysToRemove = Object.keys(localStorage).filter((key)=>key.startsWith('import-map-override:') && ![\n 'import-map-override:react',\n 'import-map-override:react-dom'\n ].includes(key));\n keysToRemove.forEach((key)=>localStorage.removeItem(key));\n location.reload();\n}\nfunction createConfigLoader(configUrls) {\n const loadingConfigs = Promise.all(configUrls.map((configUrl)=>{\n const interpolatedUrl = (0,_openmrs_esm_framework_src_internal__rspack_import_1.interpolateUrl)(configUrl);\n return fetch(interpolatedUrl).then((res)=>res.json()).then((config)=>({\n name: configUrl,\n value: config\n })).catch((err)=>{\n console.error(`Loading the config from \"${configUrl}\" failed.`, err);\n return {\n name: configUrl,\n value: {}\n };\n });\n }));\n return ()=>loadingConfigs.then(loadConfigs);\n}\nfunction showNotifications() {\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.renderInlineNotifications)(document.querySelector('.omrs-inline-notifications-container'));\n return;\n}\nfunction showActionableNotifications() {\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.renderActionableNotifications)(document.querySelector('.omrs-actionable-notifications-container'));\n}\nfunction showToasts() {\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.renderToasts)(document.querySelector('.omrs-toasts-container'));\n}\nfunction showWorkspacesAndActionMenu() {\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.renderWorkspaceWindowsAndMenu)(document.querySelector('#omrs-workspaces-container'));\n}\nfunction showSnackbars() {\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.renderSnackbars)(document.querySelector('.omrs-snackbars-container'));\n}\nfunction showModals() {\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.setupModals)(document.querySelector('.omrs-modals-container'));\n}\nfunction showLoadingSpinner() {\n return (0,_openmrs_esm_framework_src_internal__rspack_import_1.renderLoadingSpinner)(document.body);\n}\n/**\n * Registers the extensions coming from the app shell itself.\n */ function registerCoreExtensions() {\n const extensions = (0,_ui__rspack_import_8.getCoreExtensions)();\n for (const extension of extensions){\n // FIXME This \"core extensions\" concept should likely be retired\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.tryRegisterExtension)(_ui__rspack_import_8.appName, extension);\n }\n}\nfunction run(configUrls) {\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.setupImportMapOverrides)();\n const closeLoading = showLoadingSpinner();\n const provideConfigs = createConfigLoader(configUrls);\n (0,_openmrs_esm_styleguide_src_index__rspack_import_2.setupStyleguide)();\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.integrateBreakpoints)();\n showToasts();\n showModals();\n showNotifications();\n showActionableNotifications();\n showSnackbars();\n showWorkspacesAndActionMenu();\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.subscribeNotificationShown)(_openmrs_esm_framework_src_internal__rspack_import_1.showNotification);\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.subscribeActionableNotificationShown)(_openmrs_esm_framework_src_internal__rspack_import_1.showActionableNotification);\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.subscribeToastShown)(_openmrs_esm_framework_src_internal__rspack_import_1.showToast);\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.subscribeSnackbarShown)(_openmrs_esm_framework_src_internal__rspack_import_1.showSnackbar);\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.setupApiModule)();\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.setupHistory)();\n registerCoreExtensions();\n (0,_core_config__rspack_import_9.setupCoreConfig)();\n const polyfillReady = typeof Intl !== 'undefined' && 'DurationFormat' in Intl ? Promise.resolve() : Promise.all(/* import() | intl-durationformat-polyfill */ [__webpack_require__.e(\"default-node_modules_tslib_tslib_es6_mjs\"), __webpack_require__.e(\"intl-durationformat-polyfill\")]).then(__webpack_require__.bind(__webpack_require__, \"../../../node_modules/@formatjs/intl-durationformat/lib/polyfill.js\")).then(()=>undefined);\n return polyfillReady.then(setupApps).then(()=>Promise.resolve((0,_openmrs_esm_framework_src_internal__rspack_import_1.finishRegisteringAllApps)())).then(provideConfigs).then(runShell).catch(handleInitFailure).then(closeLoading).then(()=>{\n // intentionally not returned so that processing the \"started\" event doesn't block\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.fireOpenmrsEvent)('started');\n });\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvc2hlbGwvZXNtLWFwcC1zaGVsbC9zcmMvcnVuLnRzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uL3NyYy9ydW4udHM/Njg1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdGFydCB9IGZyb20gJ3NpbmdsZS1zcGEnO1xuaW1wb3J0IHsgdHlwZSBDYWxlbmRhcklkZW50aWZpZXIgfSBmcm9tICdAaW50ZXJuYXRpb25hbGl6ZWQvZGF0ZSc7XG5pbXBvcnQge1xuICB0eXBlIENvbmZpZyxcbiAgdHlwZSBFeHRlbnNpb25EZWZpbml0aW9uLFxuICBmaW5pc2hSZWdpc3RlcmluZ0FsbEFwcHMsXG4gIGZpcmVPcGVubXJzRXZlbnQsXG4gIGdldENvbmZpZyxcbiAgZ2V0Q29yZVRyYW5zbGF0aW9uLFxuICBnZXRDdXJyZW50Um91dGVNYXAsXG4gIGludGVncmF0ZUJyZWFrcG9pbnRzLFxuICBpbnRlcnBvbGF0ZVVybCxcbiAgdHlwZSBPcGVubXJzUm91dGVzLFxuICBwcm92aWRlLFxuICByZWdpc3RlckFwcCxcbiAgcmVnaXN0ZXJEZWZhdWx0Q2FsZW5kYXIsXG4gIHJlbmRlckFjdGlvbmFibGVOb3RpZmljYXRpb25zLFxuICByZW5kZXJJbmxpbmVOb3RpZmljYXRpb25zLFxuICByZW5kZXJMb2FkaW5nU3Bpbm5lcixcbiAgcmVuZGVyU25hY2tiYXJzLFxuICByZW5kZXJUb2FzdHMsXG4gIHJlbmRlcldvcmtzcGFjZVdpbmRvd3NBbmRNZW51LFxuICBzZXR1cEFwaU1vZHVsZSxcbiAgc2V0dXBIaXN0b3J5LFxuICBzZXR1cEltcG9ydE1hcE92ZXJyaWRlcyxcbiAgc2V0dXBNb2RhbHMsXG4gIHNldHVwUm91dGVNYXBPdmVycmlkZXMsXG4gIHNob3dBY3Rpb25hYmxlTm90aWZpY2F0aW9uLFxuICBzaG93Tm90aWZpY2F0aW9uLFxuICBzaG93U25hY2tiYXIsXG4gIHNob3dUb2FzdCxcbiAgc3Vic2NyaWJlQWN0aW9uYWJsZU5vdGlmaWNhdGlvblNob3duLFxuICBzdWJzY3JpYmVOb3RpZmljYXRpb25TaG93bixcbiAgc3Vic2NyaWJlU25hY2tiYXJTaG93bixcbiAgc3Vic2NyaWJlVG9hc3RTaG93bixcbiAgdHlwZSBTdHlsZWd1aWRlQ29uZmlnT2JqZWN0LFxuICB0cnlSZWdpc3RlckV4dGVuc2lvbixcbn0gZnJvbSAnQG9wZW5tcnMvZXNtLWZyYW1ld29yay9zcmMvaW50ZXJuYWwnO1xuaW1wb3J0IHsgc2V0dXBTdHlsZWd1aWRlIH0gZnJvbSAnQG9wZW5tcnMvZXNtLXN0eWxlZ3VpZGUvc3JjL2luZGV4JztcbmltcG9ydCB7IHNldHVwSTE4biB9IGZyb20gJy4vbG9jYWxlJztcbi8vIGltcG9ydGVkIHNvIHdlIGNyZWF0ZSB0aGUgTUYgc2hhcmVzIGZvciB0aGVzZVxuaW1wb3J0ICdzd3IvbXV0YXRpb24nO1xuaW1wb3J0ICdzd3Ivc3Vic2NyaXB0aW9uJztcbmltcG9ydCAnLi9yb3V0aW5nLWV2ZW50cyc7XG5pbXBvcnQgJy4vZXZlbnRzJztcbmltcG9ydCB7IGFwcE5hbWUsIGdldENvcmVFeHRlbnNpb25zIH0gZnJvbSAnLi91aSc7XG5pbXBvcnQgeyBzZXR1cENvcmVDb25maWcgfSBmcm9tICcuL2NvcmUtY29uZmlnJztcblxuLy8gQGludGVybmFsXG4vLyB1c2VkIHRvIHRyYWNrIHdoZW4gdGhlIHdpbmRvdy5pbnN0YWxsZWRNb2R1bGVzIGdsb2JhbCBpcyBmaW5hbGlzZWRcbi8vIHNvIHdlIGNhbiBwcmUtbG9hZCBhbGwgbW9kdWxlc1xuY29uc3QgUkVHSVNUUkFUSU9OX1BST01JU0VTID0gU3ltYm9sKCdvcGVubXJzX3JlZ2lzdHJhdGlvbl9wcm9taXNlcycpO1xuXG5sZXQgaW5pdGlhbFJvdXRlTWFwOiBPcGVubXJzUm91dGVzO1xuXG4vKipcbiAqIFNldHMgdXAgdGhlIGZyb250ZW5kIG1vZHVsZXMgKGFwcHMpLiBVc2VzIHRoZSBkZWZpbmVkIGV4cG9ydFxuICogZnJvbSB0aGUgcm9vdCBtb2R1bGVzIG9mIHRoZSBhcHBzLiBUaGlzIGlzIGRvbmUgYnkgcmVhZGluZyB0aGVcbiAqIGxpc3Qgb2YgYXBwcyBmcm9tIHRoZSByb3V0ZXMucmVnaXN0cnkuanNvbiBmaWxlLCB3aGljaCBzZXJ2ZXNcbiAqIGFzIHRoZSByZWdpc3RyeSBvZiBhbGwgYXBwcyBpbiB0aGUgYXBwbGljYXRpb24uXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHNldHVwQXBwcygpIHtcbiAgYXdhaXQgc2V0dXBSb3V0ZU1hcE92ZXJyaWRlcygpO1xuICBjb25zdCByb3V0ZXMgPSAoaW5pdGlhbFJvdXRlTWFwID0gYXdhaXQgZ2V0Q3VycmVudFJvdXRlTWFwKCkpO1xuXG4gIGNvbnN0IG1vZHVsZXM6IHR5cGVvZiB3aW5kb3cuaW5zdGFsbGVkTW9kdWxlcyA9IFtdO1xuICBjb25zdCByZWdpc3RyYXRpb25Qcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKHJvdXRlcy5yb3V0ZXMpLm1hcChhc3luYyAoW21vZHVsZSwgYXBwUm91dGVzXSkgPT4ge1xuICAgIG1vZHVsZXMucHVzaChbbW9kdWxlLCBhcHBSb3V0ZXNdKTtcbiAgICByZWdpc3RlckFwcChtb2R1bGUsIGFwcFJvdXRlcyk7XG4gIH0pO1xuXG4gIHdpbmRvd1tSRUdJU1RSQVRJT05fUFJPTUlTRVNdID0gUHJvbWlzZS5hbGwocmVnaXN0cmF0aW9uUHJvbWlzZXMpO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCAnaW5zdGFsbGVkTW9kdWxlcycsIHtcbiAgICB2YWx1ZTogbW9kdWxlcyxcbiAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgfSk7XG59XG5cbi8qKlxuICogTG9hZHMgdGhlIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb25zIGFuZCBzZXRzIHRoZW0gaW4gdGhlIHN5c3RlbS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gbG9hZENvbmZpZ3MoY29uZmlnczogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBDb25maWcgfT4pIHtcbiAgZm9yIChjb25zdCBjb25maWcgb2YgY29uZmlncykge1xuICAgIHByb3ZpZGUoY29uZmlnLnZhbHVlLCBjb25maWcubmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSdW5zIHRoZSBzaGVsbCBieSBpbXBvcnRpbmcgdGhlIHRyYW5zbGF0aW9ucyBhbmQgc3RhcnRpbmcgc2luZ2xlIFNQQS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcnVuU2hlbGwoKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgc2V0dXBJMThuKCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBpbml0aWFsaXplIHRyYW5zbGF0aW9uIHN5c3RlbWAsIGVycik7XG4gIH1cblxuICBjb25zdCBhcHBsaWNhdGlvblZlcnNpb24gPSBpbml0aWFsUm91dGVNYXAudmVyc2lvbjtcbiAgaWYgKGFwcGxpY2F0aW9uVmVyc2lvbiA9PT0gdW5kZWZpbmVkIHx8IGFwcGxpY2F0aW9uVmVyc2lvbiA9PT0gbnVsbCB8fCBhcHBsaWNhdGlvblZlcnNpb24udHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICdhcHBsaWNhdGlvblZlcnNpb24nLCB7XG4gICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB9KTtcbiAgfSBlbHNlIGlmIChhcHBsaWNhdGlvblZlcnNpb24gPT09ICdwcmVyZWxlYXNlJykge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICdhcHBsaWNhdGlvblZlcnNpb24nLCB7XG4gICAgICB2YWx1ZTpcbiAgICAgICAgd2luZG93LnNwYVZlcnNpb24gPT09ICdsb2NhbCcgPyBnZXRDb3JlVHJhbnNsYXRpb24oJ2xvY2FsVmVyc2lvbicpIDogZ2V0Q29yZVRyYW5zbGF0aW9uKCdwcmVyZWxlYXNlVmVyc2lvbicpLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCAnYXBwbGljYXRpb25WZXJzaW9uJywge1xuICAgICAgdmFsdWU6IGFwcGxpY2F0aW9uVmVyc2lvbixcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICBjb25zdCB7IHByZWZlcnJlZENhbGVuZGFyIH0gPSBhd2FpdCBnZXRDb25maWc8U3R5bGVndWlkZUNvbmZpZ09iamVjdD4oJ0BvcGVubXJzL2VzbS1zdHlsZWd1aWRlJyk7XG4gIGZvciAoY29uc3QgZW50cnkgb2YgT2JqZWN0LmVudHJpZXMocHJlZmVycmVkQ2FsZW5kYXIpKSB7XG4gICAgcmVnaXN0ZXJEZWZhdWx0Q2FsZW5kYXIoZW50cnlbMF0sIGVudHJ5WzFdIGFzIENhbGVuZGFySWRlbnRpZmllcik7XG4gIH1cblxuICBzdGFydCgpO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVJbml0RmFpbHVyZShlOiBFcnJvcikge1xuICBjb25zb2xlLmVycm9yKGUpO1xuICByZW5kZXJGYXRhbEVycm9yUGFnZShlKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyRmF0YWxFcnJvclBhZ2UoZT86IEVycm9yKSB7XG4gIGNvbnN0IHRlbXBsYXRlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MVGVtcGxhdGVFbGVtZW50PignI2FwcC1lcnJvcicpO1xuXG4gIGlmICh0ZW1wbGF0ZSkge1xuICAgIGNvbnN0IGZyYWdtZW50ID0gdGVtcGxhdGUuY29udGVudC5jbG9uZU5vZGUodHJ1ZSkgYXMgRG9jdW1lbnRGcmFnbWVudDtcbiAgICBjb25zdCBtZXNzYWdlQ29udGFpbmVyID0gZnJhZ21lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdmFyPVwibWVzc2FnZVwiXScpO1xuXG4gICAgaWYgKG1lc3NhZ2VDb250YWluZXIpIHtcbiAgICAgIG1lc3NhZ2VDb250YWluZXIudGV4dENvbnRlbnQgPSBlPy5tZXNzYWdlIHx8ICdObyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGF2YWlsYWJsZS4nO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdvcGVubXJzOmRldnRvb2xzJykgJiZcbiAgICAgIE9iamVjdC5rZXlzKGxvY2FsU3RvcmFnZSkuc29tZSgoaykgPT4gay5zdGFydHNXaXRoKCdpbXBvcnQtbWFwLW92ZXJyaWRlOicpKVxuICAgICkge1xuICAgICAgY29uc3QgYXBwRXJyb3JBY3Rpb25CdXR0b25zID0gZnJhZ21lbnQ/LnF1ZXJ5U2VsZWN0b3IoJyNidXR0b25zJyk7XG4gICAgICBpZiAoYXBwRXJyb3JBY3Rpb25CdXR0b25zKSB7XG4gICAgICAgIGNvbnN0IGNsZWFyRGV2T3ZlcnJpZGVzQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG4gICAgICAgIGNsZWFyRGV2T3ZlcnJpZGVzQnV0dG9uLmNsYXNzTmFtZSA9ICdjZHMtLWJ0bic7XG4gICAgICAgIGNsZWFyRGV2T3ZlcnJpZGVzQnV0dG9uLmlubmVySFRNTCA9ICdDbGVhciBkZXYgb3ZlcnJpZGVzJztcbiAgICAgICAgY2xlYXJEZXZPdmVycmlkZXNCdXR0b24ub25jbGljayA9IGNsZWFyRGV2T3ZlcnJpZGVzO1xuICAgICAgICBhcHBFcnJvckFjdGlvbkJ1dHRvbnMuYXBwZW5kQ2hpbGQoY2xlYXJEZXZPdmVycmlkZXNCdXR0b24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNsZWFyRGV2T3ZlcnJpZGVzKCkge1xuICBjb25zdCBrZXlzVG9SZW1vdmUgPSBPYmplY3Qua2V5cyhsb2NhbFN0b3JhZ2UpLmZpbHRlcihcbiAgICAoa2V5KSA9PlxuICAgICAga2V5LnN0YXJ0c1dpdGgoJ2ltcG9ydC1tYXAtb3ZlcnJpZGU6JykgJiZcbiAgICAgICFbJ2ltcG9ydC1tYXAtb3ZlcnJpZGU6cmVhY3QnLCAnaW1wb3J0LW1hcC1vdmVycmlkZTpyZWFjdC1kb20nXS5pbmNsdWRlcyhrZXkpLFxuICApO1xuICBrZXlzVG9SZW1vdmUuZm9yRWFjaCgoa2V5KSA9PiBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpKTtcbiAgbG9jYXRpb24ucmVsb2FkKCk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbmZpZ0xvYWRlcihjb25maWdVcmxzOiBBcnJheTxzdHJpbmc+KSB7XG4gIGNvbnN0IGxvYWRpbmdDb25maWdzID0gUHJvbWlzZS5hbGwoXG4gICAgY29uZmlnVXJscy5tYXAoKGNvbmZpZ1VybCkgPT4ge1xuICAgICAgY29uc3QgaW50ZXJwb2xhdGVkVXJsID0gaW50ZXJwb2xhdGVVcmwoY29uZmlnVXJsKTtcbiAgICAgIHJldHVybiBmZXRjaChpbnRlcnBvbGF0ZWRVcmwpXG4gICAgICAgIC50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG4gICAgICAgIC50aGVuKChjb25maWcpID0+ICh7XG4gICAgICAgICAgbmFtZTogY29uZmlnVXJsLFxuICAgICAgICAgIHZhbHVlOiBjb25maWcsXG4gICAgICAgIH0pKVxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYExvYWRpbmcgdGhlIGNvbmZpZyBmcm9tIFwiJHtjb25maWdVcmx9XCIgZmFpbGVkLmAsIGVycik7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IGNvbmZpZ1VybCxcbiAgICAgICAgICAgIHZhbHVlOiB7fSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9KSxcbiAgKTtcbiAgcmV0dXJuICgpID0+IGxvYWRpbmdDb25maWdzLnRoZW4obG9hZENvbmZpZ3MpO1xufVxuXG5mdW5jdGlvbiBzaG93Tm90aWZpY2F0aW9ucygpIHtcbiAgcmVuZGVySW5saW5lTm90aWZpY2F0aW9ucyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcub21ycy1pbmxpbmUtbm90aWZpY2F0aW9ucy1jb250YWluZXInKSk7XG4gIHJldHVybjtcbn1cblxuZnVuY3Rpb24gc2hvd0FjdGlvbmFibGVOb3RpZmljYXRpb25zKCkge1xuICByZW5kZXJBY3Rpb25hYmxlTm90aWZpY2F0aW9ucyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcub21ycy1hY3Rpb25hYmxlLW5vdGlmaWNhdGlvbnMtY29udGFpbmVyJykpO1xufVxuXG5mdW5jdGlvbiBzaG93VG9hc3RzKCkge1xuICByZW5kZXJUb2FzdHMoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm9tcnMtdG9hc3RzLWNvbnRhaW5lcicpKTtcbn1cblxuZnVuY3Rpb24gc2hvd1dvcmtzcGFjZXNBbmRBY3Rpb25NZW51KCkge1xuICByZW5kZXJXb3Jrc3BhY2VXaW5kb3dzQW5kTWVudShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjb21ycy13b3Jrc3BhY2VzLWNvbnRhaW5lcicpKTtcbn1cblxuZnVuY3Rpb24gc2hvd1NuYWNrYmFycygpIHtcbiAgcmVuZGVyU25hY2tiYXJzKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vbXJzLXNuYWNrYmFycy1jb250YWluZXInKSk7XG59XG5cbmZ1bmN0aW9uIHNob3dNb2RhbHMoKSB7XG4gIHNldHVwTW9kYWxzKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vbXJzLW1vZGFscy1jb250YWluZXInKSk7XG59XG5cbmZ1bmN0aW9uIHNob3dMb2FkaW5nU3Bpbm5lcigpIHtcbiAgcmV0dXJuIHJlbmRlckxvYWRpbmdTcGlubmVyKGRvY3VtZW50LmJvZHkpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGUgZXh0ZW5zaW9ucyBjb21pbmcgZnJvbSB0aGUgYXBwIHNoZWxsIGl0c2VsZi5cbiAqL1xuZnVuY3Rpb24gcmVnaXN0ZXJDb3JlRXh0ZW5zaW9ucygpIHtcbiAgY29uc3QgZXh0ZW5zaW9ucyA9IGdldENvcmVFeHRlbnNpb25zKCk7XG4gIGZvciAoY29uc3QgZXh0ZW5zaW9uIG9mIGV4dGVuc2lvbnMpIHtcbiAgICAvLyBGSVhNRSBUaGlzIFwiY29yZSBleHRlbnNpb25zXCIgY29uY2VwdCBzaG91bGQgbGlrZWx5IGJlIHJldGlyZWRcbiAgICB0cnlSZWdpc3RlckV4dGVuc2lvbihhcHBOYW1lLCBleHRlbnNpb24gYXMgdW5rbm93biBhcyBFeHRlbnNpb25EZWZpbml0aW9uKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuKGNvbmZpZ1VybHM6IEFycmF5PHN0cmluZz4pIHtcbiAgc2V0dXBJbXBvcnRNYXBPdmVycmlkZXMoKTtcblxuICBjb25zdCBjbG9zZUxvYWRpbmcgPSBzaG93TG9hZGluZ1NwaW5uZXIoKTtcbiAgY29uc3QgcHJvdmlkZUNvbmZpZ3MgPSBjcmVhdGVDb25maWdMb2FkZXIoY29uZmlnVXJscyk7XG5cbiAgc2V0dXBTdHlsZWd1aWRlKCk7XG4gIGludGVncmF0ZUJyZWFrcG9pbnRzKCk7XG4gIHNob3dUb2FzdHMoKTtcbiAgc2hvd01vZGFscygpO1xuICBzaG93Tm90aWZpY2F0aW9ucygpO1xuICBzaG93QWN0aW9uYWJsZU5vdGlmaWNhdGlvbnMoKTtcbiAgc2hvd1NuYWNrYmFycygpO1xuICBzaG93V29ya3NwYWNlc0FuZEFjdGlvbk1lbnUoKTtcbiAgc3Vic2NyaWJlTm90aWZpY2F0aW9uU2hvd24oc2hvd05vdGlmaWNhdGlvbik7XG4gIHN1YnNjcmliZUFjdGlvbmFibGVOb3RpZmljYXRpb25TaG93bihzaG93QWN0aW9uYWJsZU5vdGlmaWNhdGlvbik7XG4gIHN1YnNjcmliZVRvYXN0U2hvd24oc2hvd1RvYXN0KTtcbiAgc3Vic2NyaWJlU25hY2tiYXJTaG93bihzaG93U25hY2tiYXIpO1xuICBzZXR1cEFwaU1vZHVsZSgpO1xuICBzZXR1cEhpc3RvcnkoKTtcbiAgcmVnaXN0ZXJDb3JlRXh0ZW5zaW9ucygpO1xuICBzZXR1cENvcmVDb25maWcoKTtcblxuICBjb25zdCBwb2x5ZmlsbFJlYWR5ID1cbiAgICB0eXBlb2YgSW50bCAhPT0gJ3VuZGVmaW5lZCcgJiYgJ0R1cmF0aW9uRm9ybWF0JyBpbiBJbnRsXG4gICAgICA/IFByb21pc2UucmVzb2x2ZSgpXG4gICAgICA6IGltcG9ydChcbiAgICAgICAgICAvKiB3ZWJwYWNrQ2h1bmtOYW1lOiBcImludGwtZHVyYXRpb25mb3JtYXQtcG9seWZpbGxcIiAqL1xuICAgICAgICAgICdAZm9ybWF0anMvaW50bC1kdXJhdGlvbmZvcm1hdC9saWIvcG9seWZpbGwnXG4gICAgICAgICkudGhlbigoKSA9PiB1bmRlZmluZWQpO1xuXG4gIHJldHVybiBwb2x5ZmlsbFJlYWR5XG4gICAgLnRoZW4oc2V0dXBBcHBzKVxuICAgIC50aGVuKCgpID0+IFByb21pc2UucmVzb2x2ZShmaW5pc2hSZWdpc3RlcmluZ0FsbEFwcHMoKSkpXG4gICAgLnRoZW4ocHJvdmlkZUNvbmZpZ3MpXG4gICAgLnRoZW4ocnVuU2hlbGwpXG4gICAgLmNhdGNoKGhhbmRsZUluaXRGYWlsdXJlKVxuICAgIC50aGVuKGNsb3NlTG9hZGluZylcbiAgICAudGhlbigoKSA9PiB7XG4gICAgICAvLyBpbnRlbnRpb25hbGx5IG5vdCByZXR1cm5lZCBzbyB0aGF0IHByb2Nlc3NpbmcgdGhlIFwic3RhcnRlZFwiIGV2ZW50IGRvZXNuJ3QgYmxvY2tcbiAgICAgIGZpcmVPcGVubXJzRXZlbnQoJ3N0YXJ0ZWQnKTtcbiAgICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJzdGFydCIsImZpbmlzaFJlZ2lzdGVyaW5nQWxsQXBwcyIsImZpcmVPcGVubXJzRXZlbnQiLCJnZXRDb25maWciLCJnZXRDb3JlVHJhbnNsYXRpb24iLCJnZXRDdXJyZW50Um91dGVNYXAiLCJpbnRlZ3JhdGVCcmVha3BvaW50cyIsImludGVycG9sYXRlVXJsIiwicHJvdmlkZSIsInJlZ2lzdGVyQXBwIiwicmVnaXN0ZXJEZWZhdWx0Q2FsZW5kYXIiLCJyZW5kZXJBY3Rpb25hYmxlTm90aWZpY2F0aW9ucyIsInJlbmRlcklubGluZU5vdGlmaWNhdGlvbnMiLCJyZW5kZXJMb2FkaW5nU3Bpbm5lciIsInJlbmRlclNuYWNrYmFycyIsInJlbmRlclRvYXN0cyIsInJlbmRlcldvcmtzcGFjZVdpbmRvd3NBbmRNZW51Iiwic2V0dXBBcGlNb2R1bGUiLCJzZXR1cEhpc3RvcnkiLCJzZXR1cEltcG9ydE1hcE92ZXJyaWRlcyIsInNldHVwTW9kYWxzIiwic2V0dXBSb3V0ZU1hcE92ZXJyaWRlcyIsInNob3dBY3Rpb25hYmxlTm90aWZpY2F0aW9uIiwic2hvd05vdGlmaWNhdGlvbiIsInNob3dTbmFja2JhciIsInNob3dUb2FzdCIsInN1YnNjcmliZUFjdGlvbmFibGVOb3RpZmljYXRpb25TaG93biIsInN1YnNjcmliZU5vdGlmaWNhdGlvblNob3duIiwic3Vic2NyaWJlU25hY2tiYXJTaG93biIsInN1YnNjcmliZVRvYXN0U2hvd24iLCJ0cnlSZWdpc3RlckV4dGVuc2lvbiIsInNldHVwU3R5bGVndWlkZSIsInNldHVwSTE4biIsImFwcE5hbWUiLCJnZXRDb3JlRXh0ZW5zaW9ucyIsInNldHVwQ29yZUNvbmZpZyIsIlJFR0lTVFJBVElPTl9QUk9NSVNFUyIsIlN5bWJvbCIsImluaXRpYWxSb3V0ZU1hcCIsInNldHVwQXBwcyIsInJvdXRlcyIsIm1vZHVsZXMiLCJyZWdpc3RyYXRpb25Qcm9taXNlcyIsIk9iamVjdCIsIm1vZHVsZSIsImFwcFJvdXRlcyIsIndpbmRvdyIsIlByb21pc2UiLCJsb2FkQ29uZmlncyIsImNvbmZpZ3MiLCJjb25maWciLCJydW5TaGVsbCIsImVyciIsImNvbnNvbGUiLCJhcHBsaWNhdGlvblZlcnNpb24iLCJ1bmRlZmluZWQiLCJwcmVmZXJyZWRDYWxlbmRhciIsImVudHJ5IiwiaGFuZGxlSW5pdEZhaWx1cmUiLCJlIiwicmVuZGVyRmF0YWxFcnJvclBhZ2UiLCJ0ZW1wbGF0ZSIsImRvY3VtZW50IiwiZnJhZ21lbnQiLCJtZXNzYWdlQ29udGFpbmVyIiwibG9jYWxTdG9yYWdlIiwiayIsImFwcEVycm9yQWN0aW9uQnV0dG9ucyIsImNsZWFyRGV2T3ZlcnJpZGVzQnV0dG9uIiwiY2xlYXJEZXZPdmVycmlkZXMiLCJrZXlzVG9SZW1vdmUiLCJrZXkiLCJsb2NhdGlvbiIsImNyZWF0ZUNvbmZpZ0xvYWRlciIsImNvbmZpZ1VybHMiLCJsb2FkaW5nQ29uZmlncyIsImNvbmZpZ1VybCIsImludGVycG9sYXRlZFVybCIsImZldGNoIiwicmVzIiwic2hvd05vdGlmaWNhdGlvbnMiLCJzaG93QWN0aW9uYWJsZU5vdGlmaWNhdGlvbnMiLCJzaG93VG9hc3RzIiwic2hvd1dvcmtzcGFjZXNBbmRBY3Rpb25NZW51Iiwic2hvd1NuYWNrYmFycyIsInNob3dNb2RhbHMiLCJzaG93TG9hZGluZ1NwaW5uZXIiLCJyZWdpc3RlckNvcmVFeHRlbnNpb25zIiwiZXh0ZW5zaW9ucyIsImV4dGVuc2lvbiIsInJ1biIsImNsb3NlTG9hZGluZyIsInByb3ZpZGVDb25maWdzIiwicG9seWZpbGxSZWFkeSIsIkludGwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFtQztBQXFDVTtBQUN1QjtBQUMvQjtBQUNyQyxnREFBZ0Q7QUFDMUI7QUFDSTtBQUNBO0FBQ1I7QUFDZ0M7QUFDRjtBQUVoRCxZQUFZO0FBQ1oscUVBQXFFO0FBQ3JFLGlDQUFpQztBQUNqQyxNQUFNb0Msd0JBQXdCQyxPQUFPO0FBRXJDLElBQUlDO0FBRUo7Ozs7O0NBS0MsR0FDRCxlQUFlQztJQUNiLE1BQU1sQiwrRUFBc0JBO0lBQzVCLE1BQU1tQixTQUFVRixrQkFBa0IsTUFBTWpDLDJFQUFrQkE7SUFFMUQsTUFBTW9DLFVBQTBDLEVBQUU7SUFDbEQsTUFBTUMsdUJBQXVCQyxPQUFPLE9BQU8sQ0FBQ0gsT0FBTyxNQUFNLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQ0ksUUFB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\n//# sourceURL=webpack-internal:///./src/run.ts\n\n}");
708
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n run: () => (run)\n});\n/* import */ var single_spa__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/single-spa/single-spa\");\n/* import */ var single_spa__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(single_spa__rspack_import_0);\n/* import */ var _openmrs_esm_framework_src_internal__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/@openmrs/esm-framework/src/internal/@openmrs/esm-framework/src/internal\");\n/* import */ var _openmrs_esm_framework_src_internal__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(_openmrs_esm_framework_src_internal__rspack_import_1);\n/* import */ var _openmrs_esm_styleguide_src_index__rspack_import_2 = __webpack_require__(\"../../framework/esm-styleguide/dist/index.js\");\n/* import */ var _locale__rspack_import_3 = __webpack_require__(\"./src/locale.ts\");\n/* import */ var swr_mutation__rspack_import_4 = __webpack_require__(\"webpack/sharing/consume/default/swr/mutation/swr/mutation\");\n/* import */ var swr_mutation__rspack_import_4_default = /*#__PURE__*/__webpack_require__.n(swr_mutation__rspack_import_4);\n/* import */ var swr_subscription__rspack_import_5 = __webpack_require__(\"webpack/sharing/consume/default/swr/subscription/swr/subscription\");\n/* import */ var swr_subscription__rspack_import_5_default = /*#__PURE__*/__webpack_require__.n(swr_subscription__rspack_import_5);\n/* import */ var _routing_events__rspack_import_6 = __webpack_require__(\"./src/routing-events.ts\");\n/* import */ var _events__rspack_import_7 = __webpack_require__(\"./src/events.ts\");\n/* import */ var _ui__rspack_import_8 = __webpack_require__(\"./src/ui/index.ts\");\n/* import */ var _core_config__rspack_import_9 = __webpack_require__(\"./src/core-config.ts\");\n\n\n\n\n// imported so we create the MF shares for these\n\n\n\n\n\n\n// @internal\n// used to track when the window.installedModules global is finalised\n// so we can pre-load all modules\nconst REGISTRATION_PROMISES = Symbol('openmrs_registration_promises');\nlet initialRouteMap;\n/**\n * Sets up the frontend modules (apps). Uses the defined export\n * from the root modules of the apps. This is done by reading the\n * list of apps from the routes.registry.json file, which serves\n * as the registry of all apps in the application.\n */ async function setupApps() {\n await (0,_openmrs_esm_framework_src_internal__rspack_import_1.setupRouteMapOverrides)();\n const routes = initialRouteMap = await (0,_openmrs_esm_framework_src_internal__rspack_import_1.getCurrentRouteMap)();\n const modules = [];\n const registrationPromises = Object.entries(routes.routes).map(async ([module, appRoutes])=>{\n modules.push([\n module,\n appRoutes\n ]);\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.registerApp)(module, appRoutes);\n });\n window[REGISTRATION_PROMISES] = Promise.all(registrationPromises);\n Object.defineProperty(window, 'installedModules', {\n value: modules,\n writable: false,\n configurable: false\n });\n}\n/**\n * Loads the provided configurations and sets them in the system.\n */ async function loadConfigs(configs) {\n for (const config of configs){\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.provide)(config.value, config.name);\n }\n}\n/**\n * Runs the shell by importing the translations and starting single SPA.\n */ async function runShell() {\n try {\n await (0,_locale__rspack_import_3.setupI18n)();\n } catch (err) {\n console.error(`Failed to initialize translation system`, err);\n }\n const applicationVersion = initialRouteMap.version;\n if (applicationVersion === undefined || applicationVersion === null || applicationVersion.trim().length === 0) {\n Object.defineProperty(window, 'applicationVersion', {\n value: undefined,\n writable: false,\n configurable: false\n });\n } else if (applicationVersion === 'prerelease') {\n Object.defineProperty(window, 'applicationVersion', {\n value: window.spaVersion === 'local' ? (0,_openmrs_esm_framework_src_internal__rspack_import_1.getCoreTranslation)('localVersion') : (0,_openmrs_esm_framework_src_internal__rspack_import_1.getCoreTranslation)('prereleaseVersion'),\n writable: false,\n configurable: false\n });\n } else {\n Object.defineProperty(window, 'applicationVersion', {\n value: applicationVersion,\n writable: false,\n configurable: false\n });\n }\n const { preferredCalendar } = await (0,_openmrs_esm_framework_src_internal__rspack_import_1.getConfig)('@openmrs/esm-styleguide');\n for (const entry of Object.entries(preferredCalendar)){\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.registerDefaultCalendar)(entry[0], entry[1]);\n }\n (0,single_spa__rspack_import_0.start)();\n}\nfunction handleInitFailure(e) {\n console.error(e);\n renderFatalErrorPage(e);\n}\n/**\n * No app can render without a session, so a session fetch that fails before any session has loaded\n * gets the same error page as a failed startup. Reading the session store retries the fetch, so the\n * page is taken down again if a later fetch succeeds, e.g. once a backend that was starting up is ready.\n */ function showErrorPageOnSessionFailure() {\n let removeErrorPage;\n const unsubscribe = (0,_openmrs_esm_framework_src_internal__rspack_import_1.getSessionStore)().subscribe((state)=>{\n if (state.loaded) {\n unsubscribe();\n removeErrorPage?.();\n } else if (state.error && !removeErrorPage) {\n removeErrorPage = renderFatalErrorPage(state.error);\n }\n });\n}\n/** Renders the fatal error page and returns a function that removes it. */ function renderFatalErrorPage(e) {\n const template = document.querySelector('#app-error');\n if (template) {\n const fragment = template.content.cloneNode(true);\n const messageContainer = fragment.querySelector('[data-var=\"message\"]');\n if (messageContainer) {\n messageContainer.textContent = e?.message || 'No additional information available.';\n }\n if (localStorage.getItem('openmrs:devtools') && Object.keys(localStorage).some((k)=>k.startsWith('import-map-override:'))) {\n const appErrorActionButtons = fragment?.querySelector('#buttons');\n if (appErrorActionButtons) {\n const clearDevOverridesButton = document.createElement('button');\n clearDevOverridesButton.className = 'cds--btn';\n clearDevOverridesButton.innerHTML = 'Clear dev overrides';\n clearDevOverridesButton.onclick = clearDevOverrides;\n appErrorActionButtons.appendChild(clearDevOverridesButton);\n }\n }\n const nodes = Array.from(fragment.childNodes);\n document.body.appendChild(fragment);\n return ()=>nodes.forEach((node)=>node.remove());\n }\n}\nfunction clearDevOverrides() {\n const keysToRemove = Object.keys(localStorage).filter((key)=>key.startsWith('import-map-override:') && ![\n 'import-map-override:react',\n 'import-map-override:react-dom'\n ].includes(key));\n keysToRemove.forEach((key)=>localStorage.removeItem(key));\n location.reload();\n}\nfunction createConfigLoader(configUrls) {\n const loadingConfigs = Promise.all(configUrls.map((configUrl)=>{\n const interpolatedUrl = (0,_openmrs_esm_framework_src_internal__rspack_import_1.interpolateUrl)(configUrl);\n return fetch(interpolatedUrl).then((res)=>res.json()).then((config)=>({\n name: configUrl,\n value: config\n })).catch((err)=>{\n console.error(`Loading the config from \"${configUrl}\" failed.`, err);\n return {\n name: configUrl,\n value: {}\n };\n });\n }));\n return ()=>loadingConfigs.then(loadConfigs);\n}\nfunction showNotifications() {\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.renderInlineNotifications)(document.querySelector('.omrs-inline-notifications-container'));\n return;\n}\nfunction showActionableNotifications() {\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.renderActionableNotifications)(document.querySelector('.omrs-actionable-notifications-container'));\n}\nfunction showToasts() {\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.renderToasts)(document.querySelector('.omrs-toasts-container'));\n}\nfunction showWorkspacesAndActionMenu() {\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.renderWorkspaceWindowsAndMenu)(document.querySelector('#omrs-workspaces-container'));\n}\nfunction showSnackbars() {\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.renderSnackbars)(document.querySelector('.omrs-snackbars-container'));\n}\nfunction showModals() {\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.setupModals)(document.querySelector('.omrs-modals-container'));\n}\nfunction showLoadingSpinner() {\n return (0,_openmrs_esm_framework_src_internal__rspack_import_1.renderLoadingSpinner)(document.body);\n}\n/**\n * Registers the extensions coming from the app shell itself.\n */ function registerCoreExtensions() {\n const extensions = (0,_ui__rspack_import_8.getCoreExtensions)();\n for (const extension of extensions){\n // FIXME This \"core extensions\" concept should likely be retired\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.tryRegisterExtension)(_ui__rspack_import_8.appName, extension);\n }\n}\nfunction run(configUrls) {\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.setupImportMapOverrides)();\n const closeLoading = showLoadingSpinner();\n const provideConfigs = createConfigLoader(configUrls);\n (0,_openmrs_esm_styleguide_src_index__rspack_import_2.setupStyleguide)();\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.integrateBreakpoints)();\n showToasts();\n showModals();\n showNotifications();\n showActionableNotifications();\n showSnackbars();\n showWorkspacesAndActionMenu();\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.subscribeNotificationShown)(_openmrs_esm_framework_src_internal__rspack_import_1.showNotification);\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.subscribeActionableNotificationShown)(_openmrs_esm_framework_src_internal__rspack_import_1.showActionableNotification);\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.subscribeToastShown)(_openmrs_esm_framework_src_internal__rspack_import_1.showToast);\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.subscribeSnackbarShown)(_openmrs_esm_framework_src_internal__rspack_import_1.showSnackbar);\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.setupApiModule)();\n showErrorPageOnSessionFailure();\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.setupHistory)();\n registerCoreExtensions();\n (0,_core_config__rspack_import_9.setupCoreConfig)();\n const polyfillReady = typeof Intl !== 'undefined' && 'DurationFormat' in Intl ? Promise.resolve() : Promise.all(/* import() | intl-durationformat-polyfill */ [__webpack_require__.e(\"default-node_modules_tslib_tslib_es6_mjs\"), __webpack_require__.e(\"intl-durationformat-polyfill\")]).then(__webpack_require__.bind(__webpack_require__, \"../../../node_modules/@formatjs/intl-durationformat/lib/polyfill.js\")).then(()=>undefined);\n return polyfillReady.then(setupApps).then(()=>Promise.resolve((0,_openmrs_esm_framework_src_internal__rspack_import_1.finishRegisteringAllApps)())).then(provideConfigs).then(runShell).catch(handleInitFailure).then(closeLoading).then(()=>{\n // intentionally not returned so that processing the \"started\" event doesn't block\n (0,_openmrs_esm_framework_src_internal__rspack_import_1.fireOpenmrsEvent)('started');\n });\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvc2hlbGwvZXNtLWFwcC1zaGVsbC9zcmMvcnVuLnRzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uL3NyYy9ydW4udHM/Njg1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdGFydCB9IGZyb20gJ3NpbmdsZS1zcGEnO1xuaW1wb3J0IHsgdHlwZSBDYWxlbmRhcklkZW50aWZpZXIgfSBmcm9tICdAaW50ZXJuYXRpb25hbGl6ZWQvZGF0ZSc7XG5pbXBvcnQge1xuICB0eXBlIENvbmZpZyxcbiAgdHlwZSBFeHRlbnNpb25EZWZpbml0aW9uLFxuICBmaW5pc2hSZWdpc3RlcmluZ0FsbEFwcHMsXG4gIGZpcmVPcGVubXJzRXZlbnQsXG4gIGdldENvbmZpZyxcbiAgZ2V0Q29yZVRyYW5zbGF0aW9uLFxuICBnZXRDdXJyZW50Um91dGVNYXAsXG4gIGdldFNlc3Npb25TdG9yZSxcbiAgaW50ZWdyYXRlQnJlYWtwb2ludHMsXG4gIGludGVycG9sYXRlVXJsLFxuICB0eXBlIE9wZW5tcnNSb3V0ZXMsXG4gIHByb3ZpZGUsXG4gIHJlZ2lzdGVyQXBwLFxuICByZWdpc3RlckRlZmF1bHRDYWxlbmRhcixcbiAgcmVuZGVyQWN0aW9uYWJsZU5vdGlmaWNhdGlvbnMsXG4gIHJlbmRlcklubGluZU5vdGlmaWNhdGlvbnMsXG4gIHJlbmRlckxvYWRpbmdTcGlubmVyLFxuICByZW5kZXJTbmFja2JhcnMsXG4gIHJlbmRlclRvYXN0cyxcbiAgcmVuZGVyV29ya3NwYWNlV2luZG93c0FuZE1lbnUsXG4gIHNldHVwQXBpTW9kdWxlLFxuICBzZXR1cEhpc3RvcnksXG4gIHNldHVwSW1wb3J0TWFwT3ZlcnJpZGVzLFxuICBzZXR1cE1vZGFscyxcbiAgc2V0dXBSb3V0ZU1hcE92ZXJyaWRlcyxcbiAgc2hvd0FjdGlvbmFibGVOb3RpZmljYXRpb24sXG4gIHNob3dOb3RpZmljYXRpb24sXG4gIHNob3dTbmFja2JhcixcbiAgc2hvd1RvYXN0LFxuICBzdWJzY3JpYmVBY3Rpb25hYmxlTm90aWZpY2F0aW9uU2hvd24sXG4gIHN1YnNjcmliZU5vdGlmaWNhdGlvblNob3duLFxuICBzdWJzY3JpYmVTbmFja2JhclNob3duLFxuICBzdWJzY3JpYmVUb2FzdFNob3duLFxuICB0eXBlIFN0eWxlZ3VpZGVDb25maWdPYmplY3QsXG4gIHRyeVJlZ2lzdGVyRXh0ZW5zaW9uLFxufSBmcm9tICdAb3Blbm1ycy9lc20tZnJhbWV3b3JrL3NyYy9pbnRlcm5hbCc7XG5pbXBvcnQgeyBzZXR1cFN0eWxlZ3VpZGUgfSBmcm9tICdAb3Blbm1ycy9lc20tc3R5bGVndWlkZS9zcmMvaW5kZXgnO1xuaW1wb3J0IHsgc2V0dXBJMThuIH0gZnJvbSAnLi9sb2NhbGUnO1xuLy8gaW1wb3J0ZWQgc28gd2UgY3JlYXRlIHRoZSBNRiBzaGFyZXMgZm9yIHRoZXNlXG5pbXBvcnQgJ3N3ci9tdXRhdGlvbic7XG5pbXBvcnQgJ3N3ci9zdWJzY3JpcHRpb24nO1xuaW1wb3J0ICcuL3JvdXRpbmctZXZlbnRzJztcbmltcG9ydCAnLi9ldmVudHMnO1xuaW1wb3J0IHsgYXBwTmFtZSwgZ2V0Q29yZUV4dGVuc2lvbnMgfSBmcm9tICcuL3VpJztcbmltcG9ydCB7IHNldHVwQ29yZUNvbmZpZyB9IGZyb20gJy4vY29yZS1jb25maWcnO1xuXG4vLyBAaW50ZXJuYWxcbi8vIHVzZWQgdG8gdHJhY2sgd2hlbiB0aGUgd2luZG93Lmluc3RhbGxlZE1vZHVsZXMgZ2xvYmFsIGlzIGZpbmFsaXNlZFxuLy8gc28gd2UgY2FuIHByZS1sb2FkIGFsbCBtb2R1bGVzXG5jb25zdCBSRUdJU1RSQVRJT05fUFJPTUlTRVMgPSBTeW1ib2woJ29wZW5tcnNfcmVnaXN0cmF0aW9uX3Byb21pc2VzJyk7XG5cbmxldCBpbml0aWFsUm91dGVNYXA6IE9wZW5tcnNSb3V0ZXM7XG5cbi8qKlxuICogU2V0cyB1cCB0aGUgZnJvbnRlbmQgbW9kdWxlcyAoYXBwcykuIFVzZXMgdGhlIGRlZmluZWQgZXhwb3J0XG4gKiBmcm9tIHRoZSByb290IG1vZHVsZXMgb2YgdGhlIGFwcHMuIFRoaXMgaXMgZG9uZSBieSByZWFkaW5nIHRoZVxuICogbGlzdCBvZiBhcHBzIGZyb20gdGhlIHJvdXRlcy5yZWdpc3RyeS5qc29uIGZpbGUsIHdoaWNoIHNlcnZlc1xuICogYXMgdGhlIHJlZ2lzdHJ5IG9mIGFsbCBhcHBzIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2V0dXBBcHBzKCkge1xuICBhd2FpdCBzZXR1cFJvdXRlTWFwT3ZlcnJpZGVzKCk7XG4gIGNvbnN0IHJvdXRlcyA9IChpbml0aWFsUm91dGVNYXAgPSBhd2FpdCBnZXRDdXJyZW50Um91dGVNYXAoKSk7XG5cbiAgY29uc3QgbW9kdWxlczogdHlwZW9mIHdpbmRvdy5pbnN0YWxsZWRNb2R1bGVzID0gW107XG4gIGNvbnN0IHJlZ2lzdHJhdGlvblByb21pc2VzID0gT2JqZWN0LmVudHJpZXMocm91dGVzLnJvdXRlcykubWFwKGFzeW5jIChbbW9kdWxlLCBhcHBSb3V0ZXNdKSA9PiB7XG4gICAgbW9kdWxlcy5wdXNoKFttb2R1bGUsIGFwcFJvdXRlc10pO1xuICAgIHJlZ2lzdGVyQXBwKG1vZHVsZSwgYXBwUm91dGVzKTtcbiAgfSk7XG5cbiAgd2luZG93W1JFR0lTVFJBVElPTl9QUk9NSVNFU10gPSBQcm9taXNlLmFsbChyZWdpc3RyYXRpb25Qcm9taXNlcyk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICdpbnN0YWxsZWRNb2R1bGVzJywge1xuICAgIHZhbHVlOiBtb2R1bGVzLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICB9KTtcbn1cblxuLyoqXG4gKiBMb2FkcyB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbnMgYW5kIHNldHMgdGhlbSBpbiB0aGUgc3lzdGVtLlxuICovXG5hc3luYyBmdW5jdGlvbiBsb2FkQ29uZmlncyhjb25maWdzOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgdmFsdWU6IENvbmZpZyB9Pikge1xuICBmb3IgKGNvbnN0IGNvbmZpZyBvZiBjb25maWdzKSB7XG4gICAgcHJvdmlkZShjb25maWcudmFsdWUsIGNvbmZpZy5uYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIFJ1bnMgdGhlIHNoZWxsIGJ5IGltcG9ydGluZyB0aGUgdHJhbnNsYXRpb25zIGFuZCBzdGFydGluZyBzaW5nbGUgU1BBLlxuICovXG5hc3luYyBmdW5jdGlvbiBydW5TaGVsbCgpIHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBzZXR1cEkxOG4oKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGluaXRpYWxpemUgdHJhbnNsYXRpb24gc3lzdGVtYCwgZXJyKTtcbiAgfVxuXG4gIGNvbnN0IGFwcGxpY2F0aW9uVmVyc2lvbiA9IGluaXRpYWxSb3V0ZU1hcC52ZXJzaW9uO1xuICBpZiAoYXBwbGljYXRpb25WZXJzaW9uID09PSB1bmRlZmluZWQgfHwgYXBwbGljYXRpb25WZXJzaW9uID09PSBudWxsIHx8IGFwcGxpY2F0aW9uVmVyc2lvbi50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ2FwcGxpY2F0aW9uVmVyc2lvbicsIHtcbiAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIH0pO1xuICB9IGVsc2UgaWYgKGFwcGxpY2F0aW9uVmVyc2lvbiA9PT0gJ3ByZXJlbGVhc2UnKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ2FwcGxpY2F0aW9uVmVyc2lvbicsIHtcbiAgICAgIHZhbHVlOlxuICAgICAgICB3aW5kb3cuc3BhVmVyc2lvbiA9PT0gJ2xvY2FsJyA/IGdldENvcmVUcmFuc2xhdGlvbignbG9jYWxWZXJzaW9uJykgOiBnZXRDb3JlVHJhbnNsYXRpb24oJ3ByZXJlbGVhc2VWZXJzaW9uJyksXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICdhcHBsaWNhdGlvblZlcnNpb24nLCB7XG4gICAgICB2YWx1ZTogYXBwbGljYXRpb25WZXJzaW9uLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IHsgcHJlZmVycmVkQ2FsZW5kYXIgfSA9IGF3YWl0IGdldENvbmZpZzxTdHlsZWd1aWRlQ29uZmlnT2JqZWN0PignQG9wZW5tcnMvZXNtLXN0eWxlZ3VpZGUnKTtcbiAgZm9yIChjb25zdCBlbnRyeSBvZiBPYmplY3QuZW50cmllcyhwcmVmZXJyZWRDYWxlbmRhcikpIHtcbiAgICByZWdpc3RlckRlZmF1bHRDYWxlbmRhcihlbnRyeVswXSwgZW50cnlbMV0gYXMgQ2FsZW5kYXJJZGVudGlmaWVyKTtcbiAgfVxuXG4gIHN0YXJ0KCk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUluaXRGYWlsdXJlKGU6IEVycm9yKSB7XG4gIGNvbnNvbGUuZXJyb3IoZSk7XG4gIHJlbmRlckZhdGFsRXJyb3JQYWdlKGUpO1xufVxuXG4vKipcbiAqIE5vIGFwcCBjYW4gcmVuZGVyIHdpdGhvdXQgYSBzZXNzaW9uLCBzbyBhIHNlc3Npb24gZmV0Y2ggdGhhdCBmYWlscyBiZWZvcmUgYW55IHNlc3Npb24gaGFzIGxvYWRlZFxuICogZ2V0cyB0aGUgc2FtZSBlcnJvciBwYWdlIGFzIGEgZmFpbGVkIHN0YXJ0dXAuIFJlYWRpbmcgdGhlIHNlc3Npb24gc3RvcmUgcmV0cmllcyB0aGUgZmV0Y2gsIHNvIHRoZVxuICogcGFnZSBpcyB0YWtlbiBkb3duIGFnYWluIGlmIGEgbGF0ZXIgZmV0Y2ggc3VjY2VlZHMsIGUuZy4gb25jZSBhIGJhY2tlbmQgdGhhdCB3YXMgc3RhcnRpbmcgdXAgaXMgcmVhZHkuXG4gKi9cbmZ1bmN0aW9uIHNob3dFcnJvclBhZ2VPblNlc3Npb25GYWlsdXJlKCkge1xuICBsZXQgcmVtb3ZlRXJyb3JQYWdlOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG4gIGNvbnN0IHVuc3Vic2NyaWJlID0gZ2V0U2Vzc2lvblN0b3JlKCkuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgIGlmIChzdGF0ZS5sb2FkZWQpIHtcbiAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgICByZW1vdmVFcnJvclBhZ2U/LigpO1xuICAgIH0gZWxzZSBpZiAoc3RhdGUuZXJyb3IgJiYgIXJlbW92ZUVycm9yUGFnZSkge1xuICAgICAgcmVtb3ZlRXJyb3JQYWdlID0gcmVuZGVyRmF0YWxFcnJvclBhZ2Uoc3RhdGUuZXJyb3IpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKiBSZW5kZXJzIHRoZSBmYXRhbCBlcnJvciBwYWdlIGFuZCByZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCByZW1vdmVzIGl0LiAqL1xuZnVuY3Rpb24gcmVuZGVyRmF0YWxFcnJvclBhZ2UoZT86IEVycm9yKTogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgdGVtcGxhdGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxUZW1wbGF0ZUVsZW1lbnQ+KCcjYXBwLWVycm9yJyk7XG5cbiAgaWYgKHRlbXBsYXRlKSB7XG4gICAgY29uc3QgZnJhZ21lbnQgPSB0ZW1wbGF0ZS5jb250ZW50LmNsb25lTm9kZSh0cnVlKSBhcyBEb2N1bWVudEZyYWdtZW50O1xuICAgIGNvbnN0IG1lc3NhZ2VDb250YWluZXIgPSBmcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS12YXI9XCJtZXNzYWdlXCJdJyk7XG5cbiAgICBpZiAobWVzc2FnZUNvbnRhaW5lcikge1xuICAgICAgbWVzc2FnZUNvbnRhaW5lci50ZXh0Q29udGVudCA9IGU/Lm1lc3NhZ2UgfHwgJ05vIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXZhaWxhYmxlLic7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ29wZW5tcnM6ZGV2dG9vbHMnKSAmJlxuICAgICAgT2JqZWN0LmtleXMobG9jYWxTdG9yYWdlKS5zb21lKChrKSA9PiBrLnN0YXJ0c1dpdGgoJ2ltcG9ydC1tYXAtb3ZlcnJpZGU6JykpXG4gICAgKSB7XG4gICAgICBjb25zdCBhcHBFcnJvckFjdGlvbkJ1dHRvbnMgPSBmcmFnbWVudD8ucXVlcnlTZWxlY3RvcignI2J1dHRvbnMnKTtcbiAgICAgIGlmIChhcHBFcnJvckFjdGlvbkJ1dHRvbnMpIHtcbiAgICAgICAgY29uc3QgY2xlYXJEZXZPdmVycmlkZXNCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcbiAgICAgICAgY2xlYXJEZXZPdmVycmlkZXNCdXR0b24uY2xhc3NOYW1lID0gJ2Nkcy0tYnRuJztcbiAgICAgICAgY2xlYXJEZXZPdmVycmlkZXNCdXR0b24uaW5uZXJIVE1MID0gJ0NsZWFyIGRldiBvdmVycmlkZXMnO1xuICAgICAgICBjbGVhckRldk92ZXJyaWRlc0J1dHRvbi5vbmNsaWNrID0gY2xlYXJEZXZPdmVycmlkZXM7XG4gICAgICAgIGFwcEVycm9yQWN0aW9uQnV0dG9ucy5hcHBlbmRDaGlsZChjbGVhckRldk92ZXJyaWRlc0J1dHRvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZXMgPSBBcnJheS5mcm9tKGZyYWdtZW50LmNoaWxkTm9kZXMpO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO1xuICAgIHJldHVybiAoKSA9PiBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiBub2RlLnJlbW92ZSgpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjbGVhckRldk92ZXJyaWRlcygpIHtcbiAgY29uc3Qga2V5c1RvUmVtb3ZlID0gT2JqZWN0LmtleXMobG9jYWxTdG9yYWdlKS5maWx0ZXIoXG4gICAgKGtleSkgPT5cbiAgICAgIGtleS5zdGFydHNXaXRoKCdpbXBvcnQtbWFwLW92ZXJyaWRlOicpICYmXG4gICAgICAhWydpbXBvcnQtbWFwLW92ZXJyaWRlOnJlYWN0JywgJ2ltcG9ydC1tYXAtb3ZlcnJpZGU6cmVhY3QtZG9tJ10uaW5jbHVkZXMoa2V5KSxcbiAgKTtcbiAga2V5c1RvUmVtb3ZlLmZvckVhY2goKGtleSkgPT4gbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KSk7XG4gIGxvY2F0aW9uLnJlbG9hZCgpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDb25maWdMb2FkZXIoY29uZmlnVXJsczogQXJyYXk8c3RyaW5nPikge1xuICBjb25zdCBsb2FkaW5nQ29uZmlncyA9IFByb21pc2UuYWxsKFxuICAgIGNvbmZpZ1VybHMubWFwKChjb25maWdVcmwpID0+IHtcbiAgICAgIGNvbnN0IGludGVycG9sYXRlZFVybCA9IGludGVycG9sYXRlVXJsKGNvbmZpZ1VybCk7XG4gICAgICByZXR1cm4gZmV0Y2goaW50ZXJwb2xhdGVkVXJsKVxuICAgICAgICAudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxuICAgICAgICAudGhlbigoY29uZmlnKSA9PiAoe1xuICAgICAgICAgIG5hbWU6IGNvbmZpZ1VybCxcbiAgICAgICAgICB2YWx1ZTogY29uZmlnLFxuICAgICAgICB9KSlcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBMb2FkaW5nIHRoZSBjb25maWcgZnJvbSBcIiR7Y29uZmlnVXJsfVwiIGZhaWxlZC5gLCBlcnIpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiBjb25maWdVcmwsXG4gICAgICAgICAgICB2YWx1ZToge30sXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfSksXG4gICk7XG4gIHJldHVybiAoKSA9PiBsb2FkaW5nQ29uZmlncy50aGVuKGxvYWRDb25maWdzKTtcbn1cblxuZnVuY3Rpb24gc2hvd05vdGlmaWNhdGlvbnMoKSB7XG4gIHJlbmRlcklubGluZU5vdGlmaWNhdGlvbnMoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm9tcnMtaW5saW5lLW5vdGlmaWNhdGlvbnMtY29udGFpbmVyJykpO1xuICByZXR1cm47XG59XG5cbmZ1bmN0aW9uIHNob3dBY3Rpb25hYmxlTm90aWZpY2F0aW9ucygpIHtcbiAgcmVuZGVyQWN0aW9uYWJsZU5vdGlmaWNhdGlvbnMoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm9tcnMtYWN0aW9uYWJsZS1ub3RpZmljYXRpb25zLWNvbnRhaW5lcicpKTtcbn1cblxuZnVuY3Rpb24gc2hvd1RvYXN0cygpIHtcbiAgcmVuZGVyVG9hc3RzKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vbXJzLXRvYXN0cy1jb250YWluZXInKSk7XG59XG5cbmZ1bmN0aW9uIHNob3dXb3Jrc3BhY2VzQW5kQWN0aW9uTWVudSgpIHtcbiAgcmVuZGVyV29ya3NwYWNlV2luZG93c0FuZE1lbnUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI29tcnMtd29ya3NwYWNlcy1jb250YWluZXInKSk7XG59XG5cbmZ1bmN0aW9uIHNob3dTbmFja2JhcnMoKSB7XG4gIHJlbmRlclNuYWNrYmFycyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcub21ycy1zbmFja2JhcnMtY29udGFpbmVyJykpO1xufVxuXG5mdW5jdGlvbiBzaG93TW9kYWxzKCkge1xuICBzZXR1cE1vZGFscyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcub21ycy1tb2RhbHMtY29udGFpbmVyJykpO1xufVxuXG5mdW5jdGlvbiBzaG93TG9hZGluZ1NwaW5uZXIoKSB7XG4gIHJldHVybiByZW5kZXJMb2FkaW5nU3Bpbm5lcihkb2N1bWVudC5ib2R5KTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIGV4dGVuc2lvbnMgY29taW5nIGZyb20gdGhlIGFwcCBzaGVsbCBpdHNlbGYuXG4gKi9cbmZ1bmN0aW9uIHJlZ2lzdGVyQ29yZUV4dGVuc2lvbnMoKSB7XG4gIGNvbnN0IGV4dGVuc2lvbnMgPSBnZXRDb3JlRXh0ZW5zaW9ucygpO1xuICBmb3IgKGNvbnN0IGV4dGVuc2lvbiBvZiBleHRlbnNpb25zKSB7XG4gICAgLy8gRklYTUUgVGhpcyBcImNvcmUgZXh0ZW5zaW9uc1wiIGNvbmNlcHQgc2hvdWxkIGxpa2VseSBiZSByZXRpcmVkXG4gICAgdHJ5UmVnaXN0ZXJFeHRlbnNpb24oYXBwTmFtZSwgZXh0ZW5zaW9uIGFzIHVua25vd24gYXMgRXh0ZW5zaW9uRGVmaW5pdGlvbik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihjb25maWdVcmxzOiBBcnJheTxzdHJpbmc+KSB7XG4gIHNldHVwSW1wb3J0TWFwT3ZlcnJpZGVzKCk7XG5cbiAgY29uc3QgY2xvc2VMb2FkaW5nID0gc2hvd0xvYWRpbmdTcGlubmVyKCk7XG4gIGNvbnN0IHByb3ZpZGVDb25maWdzID0gY3JlYXRlQ29uZmlnTG9hZGVyKGNvbmZpZ1VybHMpO1xuXG4gIHNldHVwU3R5bGVndWlkZSgpO1xuICBpbnRlZ3JhdGVCcmVha3BvaW50cygpO1xuICBzaG93VG9hc3RzKCk7XG4gIHNob3dNb2RhbHMoKTtcbiAgc2hvd05vdGlmaWNhdGlvbnMoKTtcbiAgc2hvd0FjdGlvbmFibGVOb3RpZmljYXRpb25zKCk7XG4gIHNob3dTbmFja2JhcnMoKTtcbiAgc2hvd1dvcmtzcGFjZXNBbmRBY3Rpb25NZW51KCk7XG4gIHN1YnNjcmliZU5vdGlmaWNhdGlvblNob3duKHNob3dOb3RpZmljYXRpb24pO1xuICBzdWJzY3JpYmVBY3Rpb25hYmxlTm90aWZpY2F0aW9uU2hvd24oc2hvd0FjdGlvbmFibGVOb3RpZmljYXRpb24pO1xuICBzdWJzY3JpYmVUb2FzdFNob3duKHNob3dUb2FzdCk7XG4gIHN1YnNjcmliZVNuYWNrYmFyU2hvd24oc2hvd1NuYWNrYmFyKTtcbiAgc2V0dXBBcGlNb2R1bGUoKTtcbiAgc2hvd0Vycm9yUGFnZU9uU2Vzc2lvbkZhaWx1cmUoKTtcbiAgc2V0dXBIaXN0b3J5KCk7XG4gIHJlZ2lzdGVyQ29yZUV4dGVuc2lvbnMoKTtcbiAgc2V0dXBDb3JlQ29uZmlnKCk7XG5cbiAgY29uc3QgcG9seWZpbGxSZWFkeSA9XG4gICAgdHlwZW9mIEludGwgIT09ICd1bmRlZmluZWQnICYmICdEdXJhdGlvbkZvcm1hdCcgaW4gSW50bFxuICAgICAgPyBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgOiBpbXBvcnQoXG4gICAgICAgICAgLyogd2VicGFja0NodW5rTmFtZTogXCJpbnRsLWR1cmF0aW9uZm9ybWF0LXBvbHlmaWxsXCIgKi9cbiAgICAgICAgICAnQGZvcm1hdGpzL2ludGwtZHVyYXRpb25mb3JtYXQvbGliL3BvbHlmaWxsJ1xuICAgICAgICApLnRoZW4oKCkgPT4gdW5kZWZpbmVkKTtcblxuICByZXR1cm4gcG9seWZpbGxSZWFkeVxuICAgIC50aGVuKHNldHVwQXBwcylcbiAgICAudGhlbigoKSA9PiBQcm9taXNlLnJlc29sdmUoZmluaXNoUmVnaXN0ZXJpbmdBbGxBcHBzKCkpKVxuICAgIC50aGVuKHByb3ZpZGVDb25maWdzKVxuICAgIC50aGVuKHJ1blNoZWxsKVxuICAgIC5jYXRjaChoYW5kbGVJbml0RmFpbHVyZSlcbiAgICAudGhlbihjbG9zZUxvYWRpbmcpXG4gICAgLnRoZW4oKCkgPT4ge1xuICAgICAgLy8gaW50ZW50aW9uYWxseSBub3QgcmV0dXJuZWQgc28gdGhhdCBwcm9jZXNzaW5nIHRoZSBcInN0YXJ0ZWRcIiBldmVudCBkb2Vzbid0IGJsb2NrXG4gICAgICBmaXJlT3Blbm1yc0V2ZW50KCdzdGFydGVkJyk7XG4gICAgfSk7XG59XG4iXSwibmFtZXMiOlsic3RhcnQiLCJmaW5pc2hSZWdpc3RlcmluZ0FsbEFwcHMiLCJmaXJlT3Blbm1yc0V2ZW50IiwiZ2V0Q29uZmlnIiwiZ2V0Q29yZVRyYW5zbGF0aW9uIiwiZ2V0Q3VycmVudFJvdXRlTWFwIiwiZ2V0U2Vzc2lvblN0b3JlIiwiaW50ZWdyYXRlQnJlYWtwb2ludHMiLCJpbnRlcnBvbGF0ZVVybCIsInByb3ZpZGUiLCJyZWdpc3RlckFwcCIsInJlZ2lzdGVyRGVmYXVsdENhbGVuZGFyIiwicmVuZGVyQWN0aW9uYWJsZU5vdGlmaWNhdGlvbnMiLCJyZW5kZXJJbmxpbmVOb3RpZmljYXRpb25zIiwicmVuZGVyTG9hZGluZ1NwaW5uZXIiLCJyZW5kZXJTbmFja2JhcnMiLCJyZW5kZXJUb2FzdHMiLCJyZW5kZXJXb3Jrc3BhY2VXaW5kb3dzQW5kTWVudSIsInNldHVwQXBpTW9kdWxlIiwic2V0dXBIaXN0b3J5Iiwic2V0dXBJbXBvcnRNYXBPdmVycmlkZXMiLCJzZXR1cE1vZGFscyIsInNldHVwUm91dGVNYXBPdmVycmlkZXMiLCJzaG93QWN0aW9uYWJsZU5vdGlmaWNhdGlvbiIsInNob3dOb3RpZmljYXRpb24iLCJzaG93U25hY2tiYXIiLCJzaG93VG9hc3QiLCJzdWJzY3JpYmVBY3Rpb25hYmxlTm90aWZpY2F0aW9uU2hvd24iLCJzdWJzY3JpYmVOb3RpZmljYXRpb25TaG93biIsInN1YnNjcmliZVNuYWNrYmFyU2hvd24iLCJzdWJzY3JpYmVUb2FzdFNob3duIiwidHJ5UmVnaXN0ZXJFeHRlbnNpb24iLCJzZXR1cFN0eWxlZ3VpZGUiLCJzZXR1cEkxOG4iLCJhcHBOYW1lIiwiZ2V0Q29yZUV4dGVuc2lvbnMiLCJzZXR1cENvcmVDb25maWciLCJSRUdJU1RSQVRJT05fUFJPTUlTRVMiLCJTeW1ib2wiLCJpbml0aWFsUm91dGVNYXAiLCJzZXR1cEFwcHMiLCJyb3V0ZXMiLCJtb2R1bGVzIiwicmVnaXN0cmF0aW9uUHJvbWlzZXMiLCJPYmplY3QiLCJtb2R1bGUiLCJhcHBSb3V0ZXMiLCJ3aW5kb3ciLCJQcm9taXNlIiwibG9hZENvbmZpZ3MiLCJjb25maWdzIiwiY29uZmlnIiwicnVuU2hlbGwiLCJlcnIiLCJjb25zb2xlIiwiYXBwbGljYXRpb25WZXJzaW9uIiwidW5kZWZpbmVkIiwicHJlZmVycmVkQ2FsZW5kYXIiLCJlbnRyeSIsImhhbmRsZUluaXRGYWlsdXJlIiwiZSIsInJlbmRlckZhdGFsRXJyb3JQYWdlIiwic2hvd0Vycm9yUGFnZU9uU2Vzc2lvbkZhaWx1cmUiLCJyZW1vdmVFcnJvclBhZ2UiLCJ1bnN1YnNjcmliZSIsInN0YXRlIiwidGVtcGxhdGUiLCJkb2N1bWVudCIsImZyYWdtZW50IiwibWVzc2FnZUNvbnRhaW5lciIsImxvY2FsU3RvcmFnZSIsImsiLCJhcHBFcnJvckFjdGlvbkJ1dHRvbnMiLCJjbGVhckRldk92ZXJyaWRlc0J1dHRvbiIsImNsZWFyRGV2T3ZlcnJpZGVzIiwibm9kZXMiLCJBcnJheSIsIm5vZGUiLCJrZXlzVG9SZW1vdmUiLCJrZXkiLCJsb2NhdGlvbiIsImNyZWF0ZUNvbmZpZ0xvYWRlciIsImNvbmZpZ1VybHMiLCJsb2FkaW5nQ29uZmlncyIsImNvbmZpZ1VybCIsImludGVycG9sYXRlZFVybCIsImZldGNoIiwicmVzIiwic2hvd05vdGlmaWNhdGlvbnMiLCJzaG93QWN0aW9uYWJsZU5vdGlmaWNhdGlvbnMiLCJzaG93VG9hc3RzIiwic2hvd1dvcmtzcGFjZXNBbmRBY3Rpb25NZW51Iiwic2hvd1NuYWNrYmFycyIsInNob3dNb2RhbHMiLCJzaG93TG9hZGluZ1NwaW5uZXIiLCJyZWdpc3RlckNvcmVFeHRlbnNpb25zIiwiZXh0ZW5zaW9ucyIsImV4dGVuc2lvbiIsInJ1biIsImNsb3NlTG9hZGluZyIsInByb3ZpZGVDb25maWdzIiwicG9seWZpbGxSZWFkeSIsIkludGwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFtQztBQXNDVTtBQUN1QjtBQUMvQjtBQUNyQyxnREFBZ0Q7QUFDMUI7QUFDSTtBQUNBO0FBQ1I7QUFDZ0M7QUFDRjtBQUVoRCxZQUFZO0FBQ1oscUVBQXFFO0FBQ3JFLGlDQUFpQztBQUNqQyxNQUFNcUMsd0JBQXdCQyxPQUFPO0FBRXJDLElBQUlDO0FBRUo7Ozs7O0NBS0MsR0FDRCxl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\n//# sourceURL=webpack-internal:///./src/run.ts\n\n}");
709
709
 
710
710
  },
711
711
  "./src/ui/index.ts"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
package/lib/index.html CHANGED
@@ -33,7 +33,7 @@
33
33
  <script type="openmrs-routes" src="/openmrs/spa/routes.registry.json"></script>
34
34
 
35
35
 
36
- <link rel="preload" href="/openmrs/spa/6fa8075110bb9581.js" as="script"><link rel="preload" href="/openmrs/spa/179d0d3c39ccf890.js" as="script"><link rel="preload" href="/openmrs/spa/4afcde165187cf34.js" as="script"><link rel="preload" href="/openmrs/spa/a9723890347a594e.js" as="script"><link rel="preload" href="/openmrs/spa/6a07d9edae91d64a.js" as="script"><link rel="preload" href="/openmrs/spa/29eb002ac8b08df5.js" as="script"><link rel="preload" href="/openmrs/spa/2b18050c552ba37b.js" as="script"><link rel="preload" href="/openmrs/spa/41733b40a9c3c3a5.js" as="script"><link rel="preload" href="/openmrs/spa/dba37f937b9fef08.js" as="script"><link rel="preload" href="/openmrs/spa/9728df55a98ebbd2.js" as="script"><link rel="preload" href="/openmrs/spa/dcee9941dbf0fcae.js" as="script"><link rel="preload" href="/openmrs/spa/e0650e8f5bc5a5f0.js" as="script"><link rel="preload" href="/openmrs/spa/965c2ea7ad36f9b9.js" as="script"><link rel="preload" href="/openmrs/spa/18ec06b4e1782343.js" as="script"><link rel="preload" href="/openmrs/spa/c912d57aa96a2320.js" as="script"><link rel="preload" href="/openmrs/spa/ab4148a466ebd6ef.js" as="script"><link rel="preload" href="/openmrs/spa/a2ed0a758d2afe95.js" as="script"><link rel="preload" href="/openmrs/spa/4907fc954ee36d02.js" as="script"><link rel="preload" href="/openmrs/spa/6c72dcc37b6da71c.js" as="script"><link rel="preload" href="/openmrs/spa/258c11567d1269c4.js" as="script"><link rel="preload" href="/openmrs/spa/41084f226b2f0007.js" as="script">
36
+ <link rel="preload" href="/openmrs/spa/6fa8075110bb9581.js" as="script"><link rel="preload" href="/openmrs/spa/0f63a955dacaced7.js" as="script"><link rel="preload" href="/openmrs/spa/4afcde165187cf34.js" as="script"><link rel="preload" href="/openmrs/spa/1058b45598de41ef.js" as="script"><link rel="preload" href="/openmrs/spa/6a07d9edae91d64a.js" as="script"><link rel="preload" href="/openmrs/spa/29eb002ac8b08df5.js" as="script"><link rel="preload" href="/openmrs/spa/2b18050c552ba37b.js" as="script"><link rel="preload" href="/openmrs/spa/41733b40a9c3c3a5.js" as="script"><link rel="preload" href="/openmrs/spa/dba37f937b9fef08.js" as="script"><link rel="preload" href="/openmrs/spa/9728df55a98ebbd2.js" as="script"><link rel="preload" href="/openmrs/spa/dcee9941dbf0fcae.js" as="script"><link rel="preload" href="/openmrs/spa/e0650e8f5bc5a5f0.js" as="script"><link rel="preload" href="/openmrs/spa/965c2ea7ad36f9b9.js" as="script"><link rel="preload" href="/openmrs/spa/18ec06b4e1782343.js" as="script"><link rel="preload" href="/openmrs/spa/c912d57aa96a2320.js" as="script"><link rel="preload" href="/openmrs/spa/ab4148a466ebd6ef.js" as="script"><link rel="preload" href="/openmrs/spa/a2ed0a758d2afe95.js" as="script"><link rel="preload" href="/openmrs/spa/4907fc954ee36d02.js" as="script"><link rel="preload" href="/openmrs/spa/6c72dcc37b6da71c.js" as="script"><link rel="preload" href="/openmrs/spa/258c11567d1269c4.js" as="script"><link rel="preload" href="/openmrs/spa/41084f226b2f0007.js" as="script">
37
37
  <meta name="theme-color" content="#005d5d" /><link rel="manifest" href="/openmrs/spa/manifest.8bf1757a96431f7a7b87baad8f950c48.json" /></head>
38
38
  <body>
39
39
  <script src="/openmrs/spa/openmrs.js"></script>
package/lib/openmrs.js CHANGED
@@ -17,7 +17,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
17
17
  },
18
18
  "./src/index.ts"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
19
19
  "use strict";
20
- eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n setupUtils: () => (setupUtils)\n});\n/* import */ var _federation_runtime__rspack_import_0 = __webpack_require__(\"./src/federation-runtime.ts\");\n/* import */ var _framework_share__rspack_import_1 = __webpack_require__(\"./src/framework-share.ts\");\n\n\n// Before anything else: every frontend module reads the Module Federation runtime from the globals\n// this publishes, and modules are only ever loaded from code reached via `initializeSpa` below.\n(0,_federation_runtime__rspack_import_0.publishFederationRuntime)();\nfunction _createSpaBase(baseUrl) {\n return ()=>baseUrl;\n}\nfunction setupPaths(config) {\n let error = false;\n if (!config.apiUrl) {\n console.error('initializeSpa() was called without supplying an apiUrl. This means that the application cannot communicate with the backend.');\n error = true;\n }\n if (!config.spaPath) {\n console.error('initializeSpa() was called without supplying a spaPath. This means that the application cannot properly generate urls.');\n error = true;\n }\n if (error) {\n throw new Error('One or more required properties in the basic configuration of the application was missing and the application cannot be rendered. Please see the browser console for details.');\n }\n // Object.defineProperty used to make these read-only\n Object.defineProperty(window, 'openmrsBase', {\n value: config.apiUrl,\n writable: false,\n configurable: false\n });\n Object.defineProperty(window, 'spaBase', {\n value: config.spaPath,\n writable: false,\n configurable: false\n });\n Object.defineProperty(window, 'spaEnv', {\n value: config.env || 'production',\n writable: false,\n configurable: false\n });\n Object.defineProperty(window, 'spaVersion', {\n value: \"10.0.1-pre.5607-20260929\" ?? 0,\n writable: false,\n configurable: false\n });\n const spaBaseWithSlash = window.spaBase.endsWith('/') ? window.spaBase : window.spaBase + '/';\n Object.defineProperty(window, 'getOpenmrsSpaBase', {\n value: _createSpaBase(spaBaseWithSlash),\n writable: false,\n configurable: false\n });\n}\nfunction setupUtils() {\n Object.defineProperty(window, 'copyText', {\n value: (source)=>{\n const sel = window.getSelection();\n if (sel) {\n const r = document.createRange();\n r.selectNode(source);\n sel.removeAllRanges();\n sel.addRange(r);\n document.execCommand('copy');\n sel.removeAllRanges();\n }\n },\n writable: false,\n configurable: false\n });\n}\nfunction wireSpaPaths() {\n const baseElement = document.createElement('base');\n const baseHref = window.getOpenmrsSpaBase();\n baseElement.href = baseHref;\n document.head.appendChild(baseElement);\n __webpack_require__.p = baseHref;\n}\nlet initPromise = null;\n/**\n * Initializes the OpenMRS Frontend App Shell.\n * @param config The global configuration to apply.\n */ function initializeSpa(config) {\n if (initPromise) {\n return initPromise;\n }\n setupUtils();\n setupPaths(config);\n wireSpaPaths();\n initPromise = Promise.resolve(__webpack_require__.I('default')).then(async ()=>{\n const shareScope = __webpack_require__.S.default;\n // MF will deduplicate these as they're aliased at build time, but at runtime\n // apps try to load `@openmrs/esm-framework`, so here we provide a runtime\n // alias that resolves to the \"internal\" copy of the framework\n if (shareScope['@openmrs/esm-framework/src/internal'] && !shareScope['@openmrs/esm-framework']) {\n shareScope['@openmrs/esm-framework'] = shareScope['@openmrs/esm-framework/src/internal'];\n }\n // Frontend modules also register their own framework into this scope; this keeps them resolving\n // to the app shell's copy no matter what version they bring.\n (0,_framework_share__rspack_import_1.pinFrameworkToAppShell)(shareScope);\n const { configUrls = [] } = config;\n const { run } = await Promise.all(/* import() | run */ [__webpack_require__.e(\"default-webpack_sharing_consume_default_react_react\"), __webpack_require__.e(\"default-webpack_sharing_consume_default_react-dom_react-dom\"), __webpack_require__.e(\"default-node_modules_carbon_icons-react_es_generated_bucket-11_js-node_modules_carbon_icons-r-63ea09\"), __webpack_require__.e(\"default-framework_esm-framework_dist_internal_js\"), __webpack_require__.e(\"default-vendors-node_modules_i18next-browser-languagedetector_dist_esm_i18nextBrowserLanguage-1ba50a\"), __webpack_require__.e(\"run\")]).then(__webpack_require__.bind(__webpack_require__, \"./src/run.ts\"));\n return run(configUrls);\n });\n return initPromise;\n}\nObject.defineProperty(window, 'initializeSpa', {\n value: initializeSpa,\n writable: false,\n configurable: false\n});\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvc2hlbGwvZXNtLWFwcC1zaGVsbC9zcmMvaW5kZXgudHMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4vc3JjL2luZGV4LnRzPzhjYzUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHVibGlzaEZlZGVyYXRpb25SdW50aW1lIH0gZnJvbSAnLi9mZWRlcmF0aW9uLXJ1bnRpbWUnO1xuaW1wb3J0IHsgcGluRnJhbWV3b3JrVG9BcHBTaGVsbCB9IGZyb20gJy4vZnJhbWV3b3JrLXNoYXJlJztcbmltcG9ydCB0eXBlIHsgU3BhQ29uZmlnIH0gZnJvbSAnQG9wZW5tcnMvZXNtLWZyYW1ld29yay9zcmMvaW50ZXJuYWwnO1xuXG4vLyBCZWZvcmUgYW55dGhpbmcgZWxzZTogZXZlcnkgZnJvbnRlbmQgbW9kdWxlIHJlYWRzIHRoZSBNb2R1bGUgRmVkZXJhdGlvbiBydW50aW1lIGZyb20gdGhlIGdsb2JhbHNcbi8vIHRoaXMgcHVibGlzaGVzLCBhbmQgbW9kdWxlcyBhcmUgb25seSBldmVyIGxvYWRlZCBmcm9tIGNvZGUgcmVhY2hlZCB2aWEgYGluaXRpYWxpemVTcGFgIGJlbG93LlxucHVibGlzaEZlZGVyYXRpb25SdW50aW1lKCk7XG5cbmZ1bmN0aW9uIF9jcmVhdGVTcGFCYXNlKGJhc2VVcmw6IHN0cmluZykge1xuICByZXR1cm4gKCkgPT4gYmFzZVVybDtcbn1cblxuZnVuY3Rpb24gc2V0dXBQYXRocyhjb25maWc6IFNwYUNvbmZpZykge1xuICBsZXQgZXJyb3IgPSBmYWxzZTtcbiAgaWYgKCFjb25maWcuYXBpVXJsKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgICdpbml0aWFsaXplU3BhKCkgd2FzIGNhbGxlZCB3aXRob3V0IHN1cHBseWluZyBhbiBhcGlVcmwuIFRoaXMgbWVhbnMgdGhhdCB0aGUgYXBwbGljYXRpb24gY2Fubm90IGNvbW11bmljYXRlIHdpdGggdGhlIGJhY2tlbmQuJyxcbiAgICApO1xuICAgIGVycm9yID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICghY29uZmlnLnNwYVBhdGgpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgJ2luaXRpYWxpemVTcGEoKSB3YXMgY2FsbGVkIHdpdGhvdXQgc3VwcGx5aW5nIGEgc3BhUGF0aC4gVGhpcyBtZWFucyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBjYW5ub3QgcHJvcGVybHkgZ2VuZXJhdGUgdXJscy4nLFxuICAgICk7XG4gICAgZXJyb3IgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ09uZSBvciBtb3JlIHJlcXVpcmVkIHByb3BlcnRpZXMgaW4gdGhlIGJhc2ljIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uIHdhcyBtaXNzaW5nIGFuZCB0aGUgYXBwbGljYXRpb24gY2Fubm90IGJlIHJlbmRlcmVkLiBQbGVhc2Ugc2VlIHRoZSBicm93c2VyIGNvbnNvbGUgZm9yIGRldGFpbHMuJyxcbiAgICApO1xuICB9XG5cbiAgLy8gT2JqZWN0LmRlZmluZVByb3BlcnR5IHVzZWQgdG8gbWFrZSB0aGVzZSByZWFkLW9ubHlcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ29wZW5tcnNCYXNlJywge1xuICAgIHZhbHVlOiBjb25maWcuYXBpVXJsLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICB9KTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ3NwYUJhc2UnLCB7XG4gICAgdmFsdWU6IGNvbmZpZy5zcGFQYXRoLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICB9KTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ3NwYUVudicsIHtcbiAgICB2YWx1ZTogY29uZmlnLmVudiB8fCAncHJvZHVjdGlvbicsXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gIH0pO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCAnc3BhVmVyc2lvbicsIHtcbiAgICB2YWx1ZTogcHJvY2Vzcy5lbnYuQlVJTERfVkVSU0lPTiA/PyAnbG9jYWwnLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICB9KTtcblxuICBjb25zdCBzcGFCYXNlV2l0aFNsYXNoID0gd2luZG93LnNwYUJhc2UuZW5kc1dpdGgoJy8nKSA/IHdpbmRvdy5zcGFCYXNlIDogd2luZG93LnNwYUJhc2UgKyAnLyc7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICdnZXRPcGVubXJzU3BhQmFzZScsIHtcbiAgICB2YWx1ZTogX2NyZWF0ZVNwYUJhc2Uoc3BhQmFzZVdpdGhTbGFzaCksXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBVdGlscygpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ2NvcHlUZXh0Jywge1xuICAgIHZhbHVlOiAoc291cmNlOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgY29uc3Qgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuXG4gICAgICBpZiAoc2VsKSB7XG4gICAgICAgIGNvbnN0IHIgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgICByLnNlbGVjdE5vZGUoc291cmNlKTtcbiAgICAgICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICBzZWwuYWRkUmFuZ2Uocik7XG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gd2lyZVNwYVBhdGhzKCkge1xuICBjb25zdCBiYXNlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Jhc2UnKTtcbiAgY29uc3QgYmFzZUhyZWYgPSB3aW5kb3cuZ2V0T3Blbm1yc1NwYUJhc2UoKTtcbiAgYmFzZUVsZW1lbnQuaHJlZiA9IGJhc2VIcmVmO1xuICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGJhc2VFbGVtZW50KTtcbiAgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPSBiYXNlSHJlZjtcbn1cblxubGV0IGluaXRQcm9taXNlOiBQcm9taXNlPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIE9wZW5NUlMgRnJvbnRlbmQgQXBwIFNoZWxsLlxuICogQHBhcmFtIGNvbmZpZyBUaGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gdG8gYXBwbHkuXG4gKi9cbmZ1bmN0aW9uIGluaXRpYWxpemVTcGEoY29uZmlnOiBTcGFDb25maWcpIHtcbiAgaWYgKGluaXRQcm9taXNlKSB7XG4gICAgcmV0dXJuIGluaXRQcm9taXNlO1xuICB9XG5cbiAgc2V0dXBVdGlscygpO1xuICBzZXR1cFBhdGhzKGNvbmZpZyk7XG4gIHdpcmVTcGFQYXRocygpO1xuICBpbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShfX3dlYnBhY2tfaW5pdF9zaGFyaW5nX18oJ2RlZmF1bHQnKSkudGhlbihhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgc2hhcmVTY29wZSA9IF9fd2VicGFja19zaGFyZV9zY29wZXNfXy5kZWZhdWx0O1xuICAgIC8vIE1GIHdpbGwgZGVkdXBsaWNhdGUgdGhlc2UgYXMgdGhleSdyZSBhbGlhc2VkIGF0IGJ1aWxkIHRpbWUsIGJ1dCBhdCBydW50aW1lXG4gICAgLy8gYXBwcyB0cnkgdG8gbG9hZCBgQG9wZW5tcnMvZXNtLWZyYW1ld29ya2AsIHNvIGhlcmUgd2UgcHJvdmlkZSBhIHJ1bnRpbWVcbiAgICAvLyBhbGlhcyB0aGF0IHJlc29sdmVzIHRvIHRoZSBcImludGVybmFsXCIgY29weSBvZiB0aGUgZnJhbWV3b3JrXG4gICAgaWYgKHNoYXJlU2NvcGVbJ0BvcGVubXJzL2VzbS1mcmFtZXdvcmsvc3JjL2ludGVybmFsJ10gJiYgIXNoYXJlU2NvcGVbJ0BvcGVubXJzL2VzbS1mcmFtZXdvcmsnXSkge1xuICAgICAgc2hhcmVTY29wZVsnQG9wZW5tcnMvZXNtLWZyYW1ld29yayddID0gc2hhcmVTY29wZVsnQG9wZW5tcnMvZXNtLWZyYW1ld29yay9zcmMvaW50ZXJuYWwnXTtcbiAgICB9XG5cbiAgICAvLyBGcm9udGVuZCBtb2R1bGVzIGFsc28gcmVnaXN0ZXIgdGhlaXIgb3duIGZyYW1ld29yayBpbnRvIHRoaXMgc2NvcGU7IHRoaXMga2VlcHMgdGhlbSByZXNvbHZpbmdcbiAgICAvLyB0byB0aGUgYXBwIHNoZWxsJ3MgY29weSBubyBtYXR0ZXIgd2hhdCB2ZXJzaW9uIHRoZXkgYnJpbmcuXG4gICAgcGluRnJhbWV3b3JrVG9BcHBTaGVsbChzaGFyZVNjb3BlKTtcblxuICAgIGNvbnN0IHsgY29uZmlnVXJscyA9IFtdIH0gPSBjb25maWc7XG5cbiAgICBjb25zdCB7IHJ1biB9ID0gYXdhaXQgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwicnVuXCIsIHdlYnBhY2tQcmVsb2FkOiB0cnVlICovICcuL3J1bicpO1xuICAgIHJldHVybiBydW4oY29uZmlnVXJscyk7XG4gIH0pO1xuICByZXR1cm4gaW5pdFByb21pc2U7XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICdpbml0aWFsaXplU3BhJywge1xuICB2YWx1ZTogaW5pdGlhbGl6ZVNwYSxcbiAgd3JpdGFibGU6IGZhbHNlLFxuICBjb25maWd1cmFibGU6IGZhbHNlLFxufSk7XG4iXSwibmFtZXMiOlsicHVibGlzaEZlZGVyYXRpb25SdW50aW1lIiwicGluRnJhbWV3b3JrVG9BcHBTaGVsbCIsIl9jcmVhdGVTcGFCYXNlIiwiYmFzZVVybCIsInNldHVwUGF0aHMiLCJjb25maWciLCJlcnJvciIsImNvbnNvbGUiLCJFcnJvciIsIk9iamVjdCIsIndpbmRvdyIsInByb2Nlc3MiLCJzcGFCYXNlV2l0aFNsYXNoIiwic2V0dXBVdGlscyIsInNvdXJjZSIsInNlbCIsInIiLCJkb2N1bWVudCIsIndpcmVTcGFQYXRocyIsImJhc2VFbGVtZW50IiwiYmFzZUhyZWYiLCJfX3dlYnBhY2tfcHVibGljX3BhdGhfXyIsImluaXRQcm9taXNlIiwiaW5pdGlhbGl6ZVNwYSIsIlByb21pc2UiLCJfX3dlYnBhY2tfaW5pdF9zaGFyaW5nX18iLCJzaGFyZVNjb3BlIiwiX193ZWJwYWNrX3NoYXJlX3Njb3Blc19fIiwiY29uZmlnVXJscyIsInJ1biJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWdFO0FBQ0w7QUFHM0QsbUdBQW1HO0FBQ25HLGdHQUFnRztBQUNoR0EsaUVBQXdCQTtBQUV4QixTQUFTRSxlQUFlQyxPQUFlO0lBQ3JDLE9BQU8sSUFBTUE7QUFDZjtBQUVBLFNBQVNDLFdBQVdDLE1BQWlCO0lBQ25DLElBQUlDLFFBQVE7SUFDWixJQUFJLENBQUNELE9BQU8sTUFBTSxFQUFFO1FBQ2xCRSxRQUFRLEtBQUssQ0FDWDtRQUVGRCxRQUFRO0lBQ1Y7SUFFQSxJQUFJLENBQUNELE9BQU8sT0FBTyxFQUFFO1FBQ25CRSxRQUFRLEtBQUssQ0FDWDtRQUVGRCxRQUFRO0lBQ1Y7SUFFQSxJQUFJQSxPQUFPO1FBQ1QsTUFBTSxJQUFJRSxNQUNSO0lBRUo7SUFFQSxxREFBcUQ7SUFDckRDLE9BQU8sY0FBYyxDQUFDQyxRQUFRLGVBQWU7UUFDM0MsT0FBT0wsT0FBTyxNQUFNO1FBQ3BCLFVBQVU7UUFDVixjQUFjO0lBQ2hCO0lBQ0FJLE9BQU8sY0FBYyxDQUFDQyxRQUFRLFdBQVc7UUFDdkMsT0FBT0wsT0FBTyxPQUFPO1FBQ3JCLFVBQVU7UUFDVixjQUFjO0lBQ2hCO0lBQ0FJLE9BQU8sY0FBYyxDQUFDQyxRQUFRLFVBQVU7UUFDdEMsT0FBT0wsT0FBTyxHQUFHLElBQUk7UUFDckIsVUFBVTtRQUNWLGNBQWM7SUFDaEI7SUFDQUksT0FBTyxjQUFjLENBQUNDLFFBQVEsY0FBYztRQUMxQyxPQUFPQywwQkFBeUIsSUFBSSxDQUFPO1FBQzNDLFVBQVU7UUFDVixjQUFjO0lBQ2hCO0lBRUEsTUFBTUMsbUJBQW1CRixPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBT0EsT0FBTyxPQUFPLEdBQUdBLE9BQU8sT0FBTyxHQUFHO0lBQzFGRCxPQUFPLGNBQWMsQ0FBQ0MsUUFBUSxxQkFBcUI7UUFDakQsT0FBT1IsZUFBZVU7UUFDdEIsVUFBVTtRQUNWLGNBQWM7SUFDaEI7QUFDRjtBQUVPLFNBQVNDO0lBQ2RKLE9BQU8sY0FBYyxDQUFDQyxRQUFRLFlBQVk7UUFDeEMsT0FBTyxDQUFDSTtZQUNOLE1BQU1DLE1BQU1MLE9BQU8sWUFBWTtZQUUvQixJQUFJSyxLQUFLO2dCQUNQLE1BQU1DLElBQUlDLFNBQVMsV0FBVztnQkFDOUJELEVBQUUsVUFBVSxDQUFDRjtnQkFDYkMsSUFBSSxlQUFlO2dCQUNuQkEsSUFBSSxRQUFRLENBQUNDO2dCQUNiQyxTQUFTLFdBQVcsQ0FBQztnQkFDckJGLElBQUksZUFBZTtZQUNyQjtRQUNGO1FBQ0EsVUFBVTtRQUNWLGNBQWM7SUFDaEI7QUFDRjtBQUVBLFNBQVNHO0lBQ1AsTUFBTUMsY0FBY0YsU0FBUyxhQUFhLENBQUM7SUFDM0MsTUFBTUcsV0FBV1YsT0FBTyxpQkFBaUI7SUFDekNTLFlBQVksSUFBSSxHQUFHQztJQUNuQkgsU0FBUyxJQUFJLENBQUMsV0FBVyxDQUFDRTtJQUMxQkUscUJBQXVCQSxHQUFHRDtBQUM1QjtBQUVBLElBQUlFLGNBQW9DO0FBRXhDOzs7Q0FHQyxHQUNELFNBQVNDLGNBQWNsQixNQUFpQjtJQUN0QyxJQUFJaUIsYUFBYTtRQUNmLE9BQU9BO0lBQ1Q7SUFFQVQ7SUFDQVQsV0FBV0M7SUFDWGE7SUFDQUksY0FBY0UsUUFBUSxPQUFPLENBQUNDLHFCQUF3QkEsQ0FBQyxZQUFZLElBQUksQ0FBQztRQUN0RSxNQUFNQyxhQUFhQyxxQkFBd0JBLENBQUMsT0FBTztRQUNuRCw2RUFBNkU7UUFDN0UsMEVBQTBFO1FBQzFFLDhEQUE4RDtRQUM5RCxJQUFJRCxVQUFVLENBQUMsc0NBQXNDLElBQUksQ0FBQ0EsVUFBVSxDQUFDLHlCQUF5QixFQUFFO1lBQzlGQSxVQUFVLENBQUMseUJBQXlCLEdBQUdBLFVBQVUsQ0FBQyxzQ0FBc0M7UUFDMUY7UUFFQSxnR0FBZ0c7UUFDaEcsNkRBQTZEO1FBQzdEekIsNERBQXNCQSxDQUFDeUI7UUFFdkIsTUFBTSxFQUFFRSxhQUFhLEVBQUUsRUFBRSxHQUFHdkI7UUFFNUIsTUFBTSxFQUFFd0IsR0FBRyxFQUFFLEdBQUcsTUFBTSxpbkJBQW1FO1FBQ3pGLE9BQU9BLElBQUlEO0lBQ2I7SUFDQSxPQUFPTjtBQUNUO0FBRUFiLE9BQU8sY0FBYyxDQUFDQyxRQUFRLGlCQUFpQjtJQUM3QyxPQUFPYTtJQUNQLFVBQVU7SUFDVixjQUFjO0FBQ2hCIn0=\n//# sourceURL=webpack-internal:///./src/index.ts\n\n}");
20
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n setupUtils: () => (setupUtils)\n});\n/* import */ var _federation_runtime__rspack_import_0 = __webpack_require__(\"./src/federation-runtime.ts\");\n/* import */ var _framework_share__rspack_import_1 = __webpack_require__(\"./src/framework-share.ts\");\n\n\n// Before anything else: every frontend module reads the Module Federation runtime from the globals\n// this publishes, and modules are only ever loaded from code reached via `initializeSpa` below.\n(0,_federation_runtime__rspack_import_0.publishFederationRuntime)();\nfunction _createSpaBase(baseUrl) {\n return ()=>baseUrl;\n}\nfunction setupPaths(config) {\n let error = false;\n if (!config.apiUrl) {\n console.error('initializeSpa() was called without supplying an apiUrl. This means that the application cannot communicate with the backend.');\n error = true;\n }\n if (!config.spaPath) {\n console.error('initializeSpa() was called without supplying a spaPath. This means that the application cannot properly generate urls.');\n error = true;\n }\n if (error) {\n throw new Error('One or more required properties in the basic configuration of the application was missing and the application cannot be rendered. Please see the browser console for details.');\n }\n // Object.defineProperty used to make these read-only\n Object.defineProperty(window, 'openmrsBase', {\n value: config.apiUrl,\n writable: false,\n configurable: false\n });\n Object.defineProperty(window, 'spaBase', {\n value: config.spaPath,\n writable: false,\n configurable: false\n });\n Object.defineProperty(window, 'spaEnv', {\n value: config.env || 'production',\n writable: false,\n configurable: false\n });\n Object.defineProperty(window, 'spaVersion', {\n value: \"10.0.1-pre.5616-20260929\" ?? 0,\n writable: false,\n configurable: false\n });\n const spaBaseWithSlash = window.spaBase.endsWith('/') ? window.spaBase : window.spaBase + '/';\n Object.defineProperty(window, 'getOpenmrsSpaBase', {\n value: _createSpaBase(spaBaseWithSlash),\n writable: false,\n configurable: false\n });\n}\nfunction setupUtils() {\n Object.defineProperty(window, 'copyText', {\n value: (source)=>{\n const sel = window.getSelection();\n if (sel) {\n const r = document.createRange();\n r.selectNode(source);\n sel.removeAllRanges();\n sel.addRange(r);\n document.execCommand('copy');\n sel.removeAllRanges();\n }\n },\n writable: false,\n configurable: false\n });\n}\nfunction wireSpaPaths() {\n const baseElement = document.createElement('base');\n const baseHref = window.getOpenmrsSpaBase();\n baseElement.href = baseHref;\n document.head.appendChild(baseElement);\n __webpack_require__.p = baseHref;\n}\nlet initPromise = null;\n/**\n * Initializes the OpenMRS Frontend App Shell.\n * @param config The global configuration to apply.\n */ function initializeSpa(config) {\n if (initPromise) {\n return initPromise;\n }\n setupUtils();\n setupPaths(config);\n wireSpaPaths();\n initPromise = Promise.resolve(__webpack_require__.I('default')).then(async ()=>{\n const shareScope = __webpack_require__.S.default;\n // MF will deduplicate these as they're aliased at build time, but at runtime\n // apps try to load `@openmrs/esm-framework`, so here we provide a runtime\n // alias that resolves to the \"internal\" copy of the framework\n if (shareScope['@openmrs/esm-framework/src/internal'] && !shareScope['@openmrs/esm-framework']) {\n shareScope['@openmrs/esm-framework'] = shareScope['@openmrs/esm-framework/src/internal'];\n }\n // Frontend modules also register their own framework into this scope; this keeps them resolving\n // to the app shell's copy no matter what version they bring.\n (0,_framework_share__rspack_import_1.pinFrameworkToAppShell)(shareScope);\n const { configUrls = [] } = config;\n const { run } = await Promise.all(/* import() | run */ [__webpack_require__.e(\"default-webpack_sharing_consume_default_react_react\"), __webpack_require__.e(\"default-webpack_sharing_consume_default_react-dom_react-dom\"), __webpack_require__.e(\"default-node_modules_carbon_icons-react_es_generated_bucket-11_js-node_modules_carbon_icons-r-63ea09\"), __webpack_require__.e(\"default-framework_esm-framework_dist_internal_js\"), __webpack_require__.e(\"default-vendors-node_modules_i18next-browser-languagedetector_dist_esm_i18nextBrowserLanguage-1ba50a\"), __webpack_require__.e(\"run\")]).then(__webpack_require__.bind(__webpack_require__, \"./src/run.ts\"));\n return run(configUrls);\n });\n return initPromise;\n}\nObject.defineProperty(window, 'initializeSpa', {\n value: initializeSpa,\n writable: false,\n configurable: false\n});\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvc2hlbGwvZXNtLWFwcC1zaGVsbC9zcmMvaW5kZXgudHMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4vc3JjL2luZGV4LnRzPzhjYzUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHVibGlzaEZlZGVyYXRpb25SdW50aW1lIH0gZnJvbSAnLi9mZWRlcmF0aW9uLXJ1bnRpbWUnO1xuaW1wb3J0IHsgcGluRnJhbWV3b3JrVG9BcHBTaGVsbCB9IGZyb20gJy4vZnJhbWV3b3JrLXNoYXJlJztcbmltcG9ydCB0eXBlIHsgU3BhQ29uZmlnIH0gZnJvbSAnQG9wZW5tcnMvZXNtLWZyYW1ld29yay9zcmMvaW50ZXJuYWwnO1xuXG4vLyBCZWZvcmUgYW55dGhpbmcgZWxzZTogZXZlcnkgZnJvbnRlbmQgbW9kdWxlIHJlYWRzIHRoZSBNb2R1bGUgRmVkZXJhdGlvbiBydW50aW1lIGZyb20gdGhlIGdsb2JhbHNcbi8vIHRoaXMgcHVibGlzaGVzLCBhbmQgbW9kdWxlcyBhcmUgb25seSBldmVyIGxvYWRlZCBmcm9tIGNvZGUgcmVhY2hlZCB2aWEgYGluaXRpYWxpemVTcGFgIGJlbG93LlxucHVibGlzaEZlZGVyYXRpb25SdW50aW1lKCk7XG5cbmZ1bmN0aW9uIF9jcmVhdGVTcGFCYXNlKGJhc2VVcmw6IHN0cmluZykge1xuICByZXR1cm4gKCkgPT4gYmFzZVVybDtcbn1cblxuZnVuY3Rpb24gc2V0dXBQYXRocyhjb25maWc6IFNwYUNvbmZpZykge1xuICBsZXQgZXJyb3IgPSBmYWxzZTtcbiAgaWYgKCFjb25maWcuYXBpVXJsKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgICdpbml0aWFsaXplU3BhKCkgd2FzIGNhbGxlZCB3aXRob3V0IHN1cHBseWluZyBhbiBhcGlVcmwuIFRoaXMgbWVhbnMgdGhhdCB0aGUgYXBwbGljYXRpb24gY2Fubm90IGNvbW11bmljYXRlIHdpdGggdGhlIGJhY2tlbmQuJyxcbiAgICApO1xuICAgIGVycm9yID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICghY29uZmlnLnNwYVBhdGgpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgJ2luaXRpYWxpemVTcGEoKSB3YXMgY2FsbGVkIHdpdGhvdXQgc3VwcGx5aW5nIGEgc3BhUGF0aC4gVGhpcyBtZWFucyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBjYW5ub3QgcHJvcGVybHkgZ2VuZXJhdGUgdXJscy4nLFxuICAgICk7XG4gICAgZXJyb3IgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ09uZSBvciBtb3JlIHJlcXVpcmVkIHByb3BlcnRpZXMgaW4gdGhlIGJhc2ljIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uIHdhcyBtaXNzaW5nIGFuZCB0aGUgYXBwbGljYXRpb24gY2Fubm90IGJlIHJlbmRlcmVkLiBQbGVhc2Ugc2VlIHRoZSBicm93c2VyIGNvbnNvbGUgZm9yIGRldGFpbHMuJyxcbiAgICApO1xuICB9XG5cbiAgLy8gT2JqZWN0LmRlZmluZVByb3BlcnR5IHVzZWQgdG8gbWFrZSB0aGVzZSByZWFkLW9ubHlcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ29wZW5tcnNCYXNlJywge1xuICAgIHZhbHVlOiBjb25maWcuYXBpVXJsLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICB9KTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ3NwYUJhc2UnLCB7XG4gICAgdmFsdWU6IGNvbmZpZy5zcGFQYXRoLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICB9KTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ3NwYUVudicsIHtcbiAgICB2YWx1ZTogY29uZmlnLmVudiB8fCAncHJvZHVjdGlvbicsXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gIH0pO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCAnc3BhVmVyc2lvbicsIHtcbiAgICB2YWx1ZTogcHJvY2Vzcy5lbnYuQlVJTERfVkVSU0lPTiA/PyAnbG9jYWwnLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICB9KTtcblxuICBjb25zdCBzcGFCYXNlV2l0aFNsYXNoID0gd2luZG93LnNwYUJhc2UuZW5kc1dpdGgoJy8nKSA/IHdpbmRvdy5zcGFCYXNlIDogd2luZG93LnNwYUJhc2UgKyAnLyc7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICdnZXRPcGVubXJzU3BhQmFzZScsIHtcbiAgICB2YWx1ZTogX2NyZWF0ZVNwYUJhc2Uoc3BhQmFzZVdpdGhTbGFzaCksXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBVdGlscygpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ2NvcHlUZXh0Jywge1xuICAgIHZhbHVlOiAoc291cmNlOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgY29uc3Qgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuXG4gICAgICBpZiAoc2VsKSB7XG4gICAgICAgIGNvbnN0IHIgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgICByLnNlbGVjdE5vZGUoc291cmNlKTtcbiAgICAgICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICBzZWwuYWRkUmFuZ2Uocik7XG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gd2lyZVNwYVBhdGhzKCkge1xuICBjb25zdCBiYXNlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Jhc2UnKTtcbiAgY29uc3QgYmFzZUhyZWYgPSB3aW5kb3cuZ2V0T3Blbm1yc1NwYUJhc2UoKTtcbiAgYmFzZUVsZW1lbnQuaHJlZiA9IGJhc2VIcmVmO1xuICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGJhc2VFbGVtZW50KTtcbiAgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPSBiYXNlSHJlZjtcbn1cblxubGV0IGluaXRQcm9taXNlOiBQcm9taXNlPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIE9wZW5NUlMgRnJvbnRlbmQgQXBwIFNoZWxsLlxuICogQHBhcmFtIGNvbmZpZyBUaGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gdG8gYXBwbHkuXG4gKi9cbmZ1bmN0aW9uIGluaXRpYWxpemVTcGEoY29uZmlnOiBTcGFDb25maWcpIHtcbiAgaWYgKGluaXRQcm9taXNlKSB7XG4gICAgcmV0dXJuIGluaXRQcm9taXNlO1xuICB9XG5cbiAgc2V0dXBVdGlscygpO1xuICBzZXR1cFBhdGhzKGNvbmZpZyk7XG4gIHdpcmVTcGFQYXRocygpO1xuICBpbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShfX3dlYnBhY2tfaW5pdF9zaGFyaW5nX18oJ2RlZmF1bHQnKSkudGhlbihhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgc2hhcmVTY29wZSA9IF9fd2VicGFja19zaGFyZV9zY29wZXNfXy5kZWZhdWx0O1xuICAgIC8vIE1GIHdpbGwgZGVkdXBsaWNhdGUgdGhlc2UgYXMgdGhleSdyZSBhbGlhc2VkIGF0IGJ1aWxkIHRpbWUsIGJ1dCBhdCBydW50aW1lXG4gICAgLy8gYXBwcyB0cnkgdG8gbG9hZCBgQG9wZW5tcnMvZXNtLWZyYW1ld29ya2AsIHNvIGhlcmUgd2UgcHJvdmlkZSBhIHJ1bnRpbWVcbiAgICAvLyBhbGlhcyB0aGF0IHJlc29sdmVzIHRvIHRoZSBcImludGVybmFsXCIgY29weSBvZiB0aGUgZnJhbWV3b3JrXG4gICAgaWYgKHNoYXJlU2NvcGVbJ0BvcGVubXJzL2VzbS1mcmFtZXdvcmsvc3JjL2ludGVybmFsJ10gJiYgIXNoYXJlU2NvcGVbJ0BvcGVubXJzL2VzbS1mcmFtZXdvcmsnXSkge1xuICAgICAgc2hhcmVTY29wZVsnQG9wZW5tcnMvZXNtLWZyYW1ld29yayddID0gc2hhcmVTY29wZVsnQG9wZW5tcnMvZXNtLWZyYW1ld29yay9zcmMvaW50ZXJuYWwnXTtcbiAgICB9XG5cbiAgICAvLyBGcm9udGVuZCBtb2R1bGVzIGFsc28gcmVnaXN0ZXIgdGhlaXIgb3duIGZyYW1ld29yayBpbnRvIHRoaXMgc2NvcGU7IHRoaXMga2VlcHMgdGhlbSByZXNvbHZpbmdcbiAgICAvLyB0byB0aGUgYXBwIHNoZWxsJ3MgY29weSBubyBtYXR0ZXIgd2hhdCB2ZXJzaW9uIHRoZXkgYnJpbmcuXG4gICAgcGluRnJhbWV3b3JrVG9BcHBTaGVsbChzaGFyZVNjb3BlKTtcblxuICAgIGNvbnN0IHsgY29uZmlnVXJscyA9IFtdIH0gPSBjb25maWc7XG5cbiAgICBjb25zdCB7IHJ1biB9ID0gYXdhaXQgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwicnVuXCIsIHdlYnBhY2tQcmVsb2FkOiB0cnVlICovICcuL3J1bicpO1xuICAgIHJldHVybiBydW4oY29uZmlnVXJscyk7XG4gIH0pO1xuICByZXR1cm4gaW5pdFByb21pc2U7XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICdpbml0aWFsaXplU3BhJywge1xuICB2YWx1ZTogaW5pdGlhbGl6ZVNwYSxcbiAgd3JpdGFibGU6IGZhbHNlLFxuICBjb25maWd1cmFibGU6IGZhbHNlLFxufSk7XG4iXSwibmFtZXMiOlsicHVibGlzaEZlZGVyYXRpb25SdW50aW1lIiwicGluRnJhbWV3b3JrVG9BcHBTaGVsbCIsIl9jcmVhdGVTcGFCYXNlIiwiYmFzZVVybCIsInNldHVwUGF0aHMiLCJjb25maWciLCJlcnJvciIsImNvbnNvbGUiLCJFcnJvciIsIk9iamVjdCIsIndpbmRvdyIsInByb2Nlc3MiLCJzcGFCYXNlV2l0aFNsYXNoIiwic2V0dXBVdGlscyIsInNvdXJjZSIsInNlbCIsInIiLCJkb2N1bWVudCIsIndpcmVTcGFQYXRocyIsImJhc2VFbGVtZW50IiwiYmFzZUhyZWYiLCJfX3dlYnBhY2tfcHVibGljX3BhdGhfXyIsImluaXRQcm9taXNlIiwiaW5pdGlhbGl6ZVNwYSIsIlByb21pc2UiLCJfX3dlYnBhY2tfaW5pdF9zaGFyaW5nX18iLCJzaGFyZVNjb3BlIiwiX193ZWJwYWNrX3NoYXJlX3Njb3Blc19fIiwiY29uZmlnVXJscyIsInJ1biJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWdFO0FBQ0w7QUFHM0QsbUdBQW1HO0FBQ25HLGdHQUFnRztBQUNoR0EsaUVBQXdCQTtBQUV4QixTQUFTRSxlQUFlQyxPQUFlO0lBQ3JDLE9BQU8sSUFBTUE7QUFDZjtBQUVBLFNBQVNDLFdBQVdDLE1BQWlCO0lBQ25DLElBQUlDLFFBQVE7SUFDWixJQUFJLENBQUNELE9BQU8sTUFBTSxFQUFFO1FBQ2xCRSxRQUFRLEtBQUssQ0FDWDtRQUVGRCxRQUFRO0lBQ1Y7SUFFQSxJQUFJLENBQUNELE9BQU8sT0FBTyxFQUFFO1FBQ25CRSxRQUFRLEtBQUssQ0FDWDtRQUVGRCxRQUFRO0lBQ1Y7SUFFQSxJQUFJQSxPQUFPO1FBQ1QsTUFBTSxJQUFJRSxNQUNSO0lBRUo7SUFFQSxxREFBcUQ7SUFDckRDLE9BQU8sY0FBYyxDQUFDQyxRQUFRLGVBQWU7UUFDM0MsT0FBT0wsT0FBTyxNQUFNO1FBQ3BCLFVBQVU7UUFDVixjQUFjO0lBQ2hCO0lBQ0FJLE9BQU8sY0FBYyxDQUFDQyxRQUFRLFdBQVc7UUFDdkMsT0FBT0wsT0FBTyxPQUFPO1FBQ3JCLFVBQVU7UUFDVixjQUFjO0lBQ2hCO0lBQ0FJLE9BQU8sY0FBYyxDQUFDQyxRQUFRLFVBQVU7UUFDdEMsT0FBT0wsT0FBTyxHQUFHLElBQUk7UUFDckIsVUFBVTtRQUNWLGNBQWM7SUFDaEI7SUFDQUksT0FBTyxjQUFjLENBQUNDLFFBQVEsY0FBYztRQUMxQyxPQUFPQywwQkFBeUIsSUFBSSxDQUFPO1FBQzNDLFVBQVU7UUFDVixjQUFjO0lBQ2hCO0lBRUEsTUFBTUMsbUJBQW1CRixPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBT0EsT0FBTyxPQUFPLEdBQUdBLE9BQU8sT0FBTyxHQUFHO0lBQzFGRCxPQUFPLGNBQWMsQ0FBQ0MsUUFBUSxxQkFBcUI7UUFDakQsT0FBT1IsZUFBZVU7UUFDdEIsVUFBVTtRQUNWLGNBQWM7SUFDaEI7QUFDRjtBQUVPLFNBQVNDO0lBQ2RKLE9BQU8sY0FBYyxDQUFDQyxRQUFRLFlBQVk7UUFDeEMsT0FBTyxDQUFDSTtZQUNOLE1BQU1DLE1BQU1MLE9BQU8sWUFBWTtZQUUvQixJQUFJSyxLQUFLO2dCQUNQLE1BQU1DLElBQUlDLFNBQVMsV0FBVztnQkFDOUJELEVBQUUsVUFBVSxDQUFDRjtnQkFDYkMsSUFBSSxlQUFlO2dCQUNuQkEsSUFBSSxRQUFRLENBQUNDO2dCQUNiQyxTQUFTLFdBQVcsQ0FBQztnQkFDckJGLElBQUksZUFBZTtZQUNyQjtRQUNGO1FBQ0EsVUFBVTtRQUNWLGNBQWM7SUFDaEI7QUFDRjtBQUVBLFNBQVNHO0lBQ1AsTUFBTUMsY0FBY0YsU0FBUyxhQUFhLENBQUM7SUFDM0MsTUFBTUcsV0FBV1YsT0FBTyxpQkFBaUI7SUFDekNTLFlBQVksSUFBSSxHQUFHQztJQUNuQkgsU0FBUyxJQUFJLENBQUMsV0FBVyxDQUFDRTtJQUMxQkUscUJBQXVCQSxHQUFHRDtBQUM1QjtBQUVBLElBQUlFLGNBQW9DO0FBRXhDOzs7Q0FHQyxHQUNELFNBQVNDLGNBQWNsQixNQUFpQjtJQUN0QyxJQUFJaUIsYUFBYTtRQUNmLE9BQU9BO0lBQ1Q7SUFFQVQ7SUFDQVQsV0FBV0M7SUFDWGE7SUFDQUksY0FBY0UsUUFBUSxPQUFPLENBQUNDLHFCQUF3QkEsQ0FBQyxZQUFZLElBQUksQ0FBQztRQUN0RSxNQUFNQyxhQUFhQyxxQkFBd0JBLENBQUMsT0FBTztRQUNuRCw2RUFBNkU7UUFDN0UsMEVBQTBFO1FBQzFFLDhEQUE4RDtRQUM5RCxJQUFJRCxVQUFVLENBQUMsc0NBQXNDLElBQUksQ0FBQ0EsVUFBVSxDQUFDLHlCQUF5QixFQUFFO1lBQzlGQSxVQUFVLENBQUMseUJBQXlCLEdBQUdBLFVBQVUsQ0FBQyxzQ0FBc0M7UUFDMUY7UUFFQSxnR0FBZ0c7UUFDaEcsNkRBQTZEO1FBQzdEekIsNERBQXNCQSxDQUFDeUI7UUFFdkIsTUFBTSxFQUFFRSxhQUFhLEVBQUUsRUFBRSxHQUFHdkI7UUFFNUIsTUFBTSxFQUFFd0IsR0FBRyxFQUFFLEdBQUcsTUFBTSxpbkJBQW1FO1FBQ3pGLE9BQU9BLElBQUlEO0lBQ2I7SUFDQSxPQUFPTjtBQUNUO0FBRUFiLE9BQU8sY0FBYyxDQUFDQyxRQUFRLGlCQUFpQjtJQUM3QyxPQUFPYTtJQUNQLFVBQVU7SUFDVixjQUFjO0FBQ2hCIn0=\n//# sourceURL=webpack-internal:///./src/index.ts\n\n}");
21
21
 
22
22
  },
23
23
  "@module-federation/runtime/rspack.js!=!data:text/javascript,import __module_federation_bundler_runtime__ from \"/home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/@module-federation/webpack-bundler-runtime/dist/index.cjs\";import __module_federation_runtime_plugin_0__ from \"/home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/@module-federation/inject-external-runtime-core-plugin/dist/index.cjs\";const __module_federation_runtime_plugins__ = [{ plugin: __module_federation_runtime_plugin_0__, params: undefined }].filter(({ plugin }) => plugin).map(({ plugin, params }) => plugin(params));const __module_federation_remote_infos__ = {};const __module_federation_container_name__ = \"@openmrs/esm-app-shell\";const __module_federation_share_strategy__ = \"version-first\";if((__webpack_require__.initializeSharingData||__webpack_require__.initializeExposesData)&&__webpack_require__.federation){var _ref,_ref1,_ref2,_ref3,_ref4;var __webpack_require___remotesLoadingData,__webpack_require___remotesLoadingData1,__webpack_require___initializeSharingData,__webpack_require___consumesLoadingData,__webpack_require___consumesLoadingData1,__webpack_require___initializeExposesData,__webpack_require___consumesLoadingData2;const override=(obj,key,value)=>{if(!obj)return;if(obj[key])obj[key]=value};const merge=(obj,key,fn)=>{const value=fn();if(Array.isArray(value)){var _obj,_key,_;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=[];obj[key].push(...value)}else if(typeof value===\"object\"&&value!==null){var _obj1,_key1,_1;(_1=(_obj1=obj)[_key1=key])!==null&&_1!==void 0?_1:_obj1[_key1]={};Object.assign(obj[key],value)}};const early=(obj,key,initial)=>{var _obj,_key,_;(_=(_obj=obj)[_key=key])!==null&&_!==void 0?_:_obj[_key]=initial()};const remotesLoadingChunkMapping=(_ref=(__webpack_require___remotesLoadingData=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData===void 0?void 0:__webpack_require___remotesLoadingData.chunkMapping)!==null&&_ref!==void 0?_ref:{};const remotesLoadingModuleIdToRemoteDataMapping=(_ref1=(__webpack_require___remotesLoadingData1=__webpack_require__.remotesLoadingData)===null||__webpack_require___remotesLoadingData1===void 0?void 0:__webpack_require___remotesLoadingData1.moduleIdToRemoteDataMapping)!==null&&_ref1!==void 0?_ref1:{};const initializeSharingScopeToInitDataMapping=(_ref2=(__webpack_require___initializeSharingData=__webpack_require__.initializeSharingData)===null||__webpack_require___initializeSharingData===void 0?void 0:__webpack_require___initializeSharingData.scopeToSharingDataMapping)!==null&&_ref2!==void 0?_ref2:{};const consumesLoadingChunkMapping=(_ref3=(__webpack_require___consumesLoadingData=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData===void 0?void 0:__webpack_require___consumesLoadingData.chunkMapping)!==null&&_ref3!==void 0?_ref3:{};const consumesLoadingModuleToConsumeDataMapping=(_ref4=(__webpack_require___consumesLoadingData1=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData1===void 0?void 0:__webpack_require___consumesLoadingData1.moduleIdToConsumeDataMapping)!==null&&_ref4!==void 0?_ref4:{};const consumesLoadinginstalledModules={};const initializeSharingInitPromises=[];const initializeSharingInitTokens={};const containerShareScope=(__webpack_require___initializeExposesData=__webpack_require__.initializeExposesData)===null||__webpack_require___initializeExposesData===void 0?void 0:__webpack_require___initializeExposesData.shareScope;for(const key in __module_federation_bundler_runtime__){__webpack_require__.federation[key]=__module_federation_bundler_runtime__[key]}early(__webpack_require__.federation,\"consumesLoadingModuleToHandlerMapping\",()=>{const consumesLoadingModuleToHandlerMapping={};for(let[moduleId,data]of Object.entries(consumesLoadingModuleToConsumeDataMapping)){consumesLoadingModuleToHandlerMapping[moduleId]={getter:data.fallback,shareInfo:{shareConfig:{fixedDependencies:false,requiredVersion:data.requiredVersion,strictVersion:data.strictVersion,singleton:data.singleton,eager:data.eager},scope:[data.shareScope]},shareKey:data.shareKey}}return consumesLoadingModuleToHandlerMapping});early(__webpack_require__.federation,\"initOptions\",()=>({}));early(__webpack_require__.federation.initOptions,\"name\",()=>__module_federation_container_name__);early(__webpack_require__.federation.initOptions,\"shareStrategy\",()=>__module_federation_share_strategy__);early(__webpack_require__.federation.initOptions,\"shared\",()=>{const shared={};for(let[scope,stages]of Object.entries(initializeSharingScopeToInitDataMapping)){for(let stage of stages){if(typeof stage===\"object\"&&stage!==null){const{name,version,factory,eager,singleton,requiredVersion,strictVersion}=stage;const shareConfig={};const isValidValue=function(val){return typeof val!==\"undefined\"};if(isValidValue(singleton)){shareConfig.singleton=singleton}if(isValidValue(requiredVersion)){shareConfig.requiredVersion=requiredVersion}if(isValidValue(eager)){shareConfig.eager=eager}if(isValidValue(strictVersion)){shareConfig.strictVersion=strictVersion}const options={version,scope:[scope],shareConfig,get:factory};if(shared[name]){shared[name].push(options)}else{shared[name]=[options]}}}}return shared});merge(__webpack_require__.federation.initOptions,\"remotes\",()=>Object.values(__module_federation_remote_infos__).flat().filter(remote=>remote.externalType===\"script\"));merge(__webpack_require__.federation.initOptions,\"plugins\",()=>__module_federation_runtime_plugins__);early(__webpack_require__.federation,\"bundlerRuntimeOptions\",()=>({}));early(__webpack_require__.federation.bundlerRuntimeOptions,\"remotes\",()=>({}));early(__webpack_require__.federation.bundlerRuntimeOptions.remotes,\"chunkMapping\",()=>remotesLoadingChunkMapping);early(__webpack_require__.federation.bundlerRuntimeOptions.remotes,\"remoteInfos\",()=>__module_federation_remote_infos__);early(__webpack_require__.federation.bundlerRuntimeOptions.remotes,\"idToExternalAndNameMapping\",()=>{const remotesLoadingIdToExternalAndNameMappingMapping={};for(let[moduleId,data]of Object.entries(remotesLoadingModuleIdToRemoteDataMapping)){remotesLoadingIdToExternalAndNameMappingMapping[moduleId]=[data.shareScope,data.name,data.externalModuleId,data.remoteName]}return remotesLoadingIdToExternalAndNameMappingMapping});early(__webpack_require__.federation.bundlerRuntimeOptions.remotes,\"webpackRequire\",()=>__webpack_require__);merge(__webpack_require__.federation.bundlerRuntimeOptions.remotes,\"idToRemoteMap\",()=>{const idToRemoteMap={};for(let[id,remoteData]of Object.entries(remotesLoadingModuleIdToRemoteDataMapping)){const info=__module_federation_remote_infos__[remoteData.remoteName];if(info)idToRemoteMap[id]=info}return idToRemoteMap});override(__webpack_require__,\"S\",__webpack_require__.federation.bundlerRuntime.S);if(__webpack_require__.federation.attachShareScopeMap){__webpack_require__.federation.attachShareScopeMap(__webpack_require__)}override(__webpack_require__.f,\"remotes\",(chunkId,promises)=>__webpack_require__.federation.bundlerRuntime.remotes({chunkId,promises,chunkMapping:remotesLoadingChunkMapping,idToExternalAndNameMapping:__webpack_require__.federation.bundlerRuntimeOptions.remotes.idToExternalAndNameMapping,idToRemoteMap:__webpack_require__.federation.bundlerRuntimeOptions.remotes.idToRemoteMap,webpackRequire:__webpack_require__}));override(__webpack_require__.f,\"consumes\",(chunkId,promises)=>__webpack_require__.federation.bundlerRuntime.consumes({chunkId,promises,chunkMapping:consumesLoadingChunkMapping,moduleToHandlerMapping:__webpack_require__.federation.consumesLoadingModuleToHandlerMapping,installedModules:consumesLoadinginstalledModules,webpackRequire:__webpack_require__}));override(__webpack_require__,\"I\",(name,initScope)=>__webpack_require__.federation.bundlerRuntime.I({shareScopeName:name,initScope,initPromises:initializeSharingInitPromises,initTokens:initializeSharingInitTokens,webpackRequire:__webpack_require__}));override(__webpack_require__,\"initContainer\",(shareScope,initScope,remoteEntryInitOptions)=>__webpack_require__.federation.bundlerRuntime.initContainerEntry({shareScope,initScope,remoteEntryInitOptions,shareScopeKey:containerShareScope,webpackRequire:__webpack_require__}));override(__webpack_require__,\"getContainer\",(module1,getScope)=>{var moduleMap=__webpack_require__.initializeExposesData.moduleMap;__webpack_require__.R=getScope;getScope=Object.prototype.hasOwnProperty.call(moduleMap,module1)?moduleMap[module1]():Promise.resolve().then(()=>{throw new Error('Module \"'+module1+'\" does not exist in container.')});__webpack_require__.R=undefined;return getScope});__webpack_require__.federation.instance=__webpack_require__.federation.runtime.init(__webpack_require__.federation.initOptions);if((__webpack_require___consumesLoadingData2=__webpack_require__.consumesLoadingData)===null||__webpack_require___consumesLoadingData2===void 0?void 0:__webpack_require___consumesLoadingData2.initialConsumes){__webpack_require__.federation.bundlerRuntime.installInitialConsumes({webpackRequire:__webpack_require__,installedModules:consumesLoadinginstalledModules,initialConsumes:__webpack_require__.consumesLoadingData.initialConsumes,moduleToHandlerMapping:__webpack_require__.federation.consumesLoadingModuleToHandlerMapping})}}"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
@@ -122,7 +122,7 @@ eval("{\n//#region src/utils/context.ts\nfunction remoteToEntry(r) {\n\treturn {
122
122
 
123
123
  },
124
124
  "../../../node_modules/@module-federation/runtime-core/dist/utils/env.cjs"(__unused_rspack_module, exports, __webpack_require__) {
125
- eval("{let _module_federation_sdk = __webpack_require__(\"../../../node_modules/@module-federation/sdk/dist/index.cjs\");\n\n//#region src/utils/env.ts\nfunction getBuilderId() {\n\treturn true ? \"@openmrs/esm-app-shell:10.0.1-pre.5607\" : 0;\n}\n\n//#endregion\nexports.getBuilderId = getBuilderId;\n//# sourceMappingURL=env.cjs.map\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9keW5hbWljfC9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9ub2RlX21vZHVsZXMvQG1vZHVsZS1mZWRlcmF0aW9uL3J1bnRpbWUtY29yZS9kaXN0L3V0aWxzL2Vudi5janMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AbW9kdWxlLWZlZGVyYXRpb24vcnVudGltZS1jb3JlL2Rpc3QvdXRpbHMvZW52LmNqcz83ZWJhIl0sInNvdXJjZXNDb250ZW50IjpbImxldCBfbW9kdWxlX2ZlZGVyYXRpb25fc2RrID0gcmVxdWlyZShcIkBtb2R1bGUtZmVkZXJhdGlvbi9zZGtcIik7XG5cbi8vI3JlZ2lvbiBzcmMvdXRpbHMvZW52LnRzXG5mdW5jdGlvbiBnZXRCdWlsZGVySWQoKSB7XG5cdHJldHVybiB0eXBlb2YgRkVERVJBVElPTl9CVUlMRF9JREVOVElGSUVSICE9PSBcInVuZGVmaW5lZFwiID8gRkVERVJBVElPTl9CVUlMRF9JREVOVElGSUVSIDogXCJcIjtcbn1cblxuLy8jZW5kcmVnaW9uXG5leHBvcnRzLmdldEJ1aWxkZXJJZCA9IGdldEJ1aWxkZXJJZDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVudi5janMubWFwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZCQUE2QixtQkFBTyxDQUFDLDZEQUF3Qjs7QUFFN0Q7QUFDQTtBQUNBLFFBQVEsS0FBa0QsR0FBRyx3Q0FBMkIsR0FBRyxDQUFFO0FBQzdGOztBQUVBO0FBQ0Esb0JBQW9CO0FBQ3BCIn0=\n//# sourceURL=webpack-internal:///../../../node_modules/@module-federation/runtime-core/dist/utils/env.cjs\n\n}");
125
+ eval("{let _module_federation_sdk = __webpack_require__(\"../../../node_modules/@module-federation/sdk/dist/index.cjs\");\n\n//#region src/utils/env.ts\nfunction getBuilderId() {\n\treturn true ? \"@openmrs/esm-app-shell:10.0.1-pre.5616\" : 0;\n}\n\n//#endregion\nexports.getBuilderId = getBuilderId;\n//# sourceMappingURL=env.cjs.map\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9keW5hbWljfC9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9ub2RlX21vZHVsZXMvQG1vZHVsZS1mZWRlcmF0aW9uL3J1bnRpbWUtY29yZS9kaXN0L3V0aWxzL2Vudi5janMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AbW9kdWxlLWZlZGVyYXRpb24vcnVudGltZS1jb3JlL2Rpc3QvdXRpbHMvZW52LmNqcz83ZWJhIl0sInNvdXJjZXNDb250ZW50IjpbImxldCBfbW9kdWxlX2ZlZGVyYXRpb25fc2RrID0gcmVxdWlyZShcIkBtb2R1bGUtZmVkZXJhdGlvbi9zZGtcIik7XG5cbi8vI3JlZ2lvbiBzcmMvdXRpbHMvZW52LnRzXG5mdW5jdGlvbiBnZXRCdWlsZGVySWQoKSB7XG5cdHJldHVybiB0eXBlb2YgRkVERVJBVElPTl9CVUlMRF9JREVOVElGSUVSICE9PSBcInVuZGVmaW5lZFwiID8gRkVERVJBVElPTl9CVUlMRF9JREVOVElGSUVSIDogXCJcIjtcbn1cblxuLy8jZW5kcmVnaW9uXG5leHBvcnRzLmdldEJ1aWxkZXJJZCA9IGdldEJ1aWxkZXJJZDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVudi5janMubWFwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZCQUE2QixtQkFBTyxDQUFDLDZEQUF3Qjs7QUFFN0Q7QUFDQTtBQUNBLFFBQVEsS0FBa0QsR0FBRyx3Q0FBMkIsR0FBRyxDQUFFO0FBQzdGOztBQUVBO0FBQ0Esb0JBQW9CO0FBQ3BCIn0=\n//# sourceURL=webpack-internal:///../../../node_modules/@module-federation/runtime-core/dist/utils/env.cjs\n\n}");
126
126
 
127
127
  },
128
128
  "../../../node_modules/@module-federation/runtime-core/dist/utils/hooks/asyncHook.cjs"(__unused_rspack_module, exports, __webpack_require__) {
@@ -218,7 +218,7 @@ eval("{Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\
218
218
 
219
219
  },
220
220
  "../../../node_modules/@module-federation/runtime-tools/node_modules/@module-federation/runtime/dist/utils.cjs"(__unused_rspack_module, exports, __webpack_require__) {
221
- eval("{const require_runtime = __webpack_require__(\"../../../node_modules/@module-federation/runtime-tools/node_modules/@module-federation/runtime/dist/_virtual/_rolldown/runtime.cjs\");\nlet _module_federation_runtime_core = __webpack_require__(\"../../../node_modules/@module-federation/runtime-core/dist/index.cjs\");\n\n//#region src/utils.ts\nfunction getBuilderId() {\n\treturn true ? \"@openmrs/esm-app-shell:10.0.1-pre.5607\" : 0;\n}\nfunction getGlobalFederationInstance(name, version) {\n\tconst buildId = getBuilderId();\n\treturn _module_federation_runtime_core.CurrentGlobal.__FEDERATION__.__INSTANCES__.find((GMInstance) => {\n\t\tif (buildId && GMInstance.options.id === buildId) return true;\n\t\tif (GMInstance.options.name === name && !GMInstance.options.version && !version) return true;\n\t\tif (GMInstance.options.name === name && version && GMInstance.options.version === version) return true;\n\t\treturn false;\n\t});\n}\n\n//#endregion\nexports.getGlobalFederationInstance = getGlobalFederationInstance;\n//# sourceMappingURL=utils.cjs.map\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9keW5hbWljfC9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9ub2RlX21vZHVsZXMvQG1vZHVsZS1mZWRlcmF0aW9uL3J1bnRpbWUtdG9vbHMvbm9kZV9tb2R1bGVzL0Btb2R1bGUtZmVkZXJhdGlvbi9ydW50aW1lL2Rpc3QvdXRpbHMuY2pzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQG1vZHVsZS1mZWRlcmF0aW9uL3J1bnRpbWUtdG9vbHMvbm9kZV9tb2R1bGVzL0Btb2R1bGUtZmVkZXJhdGlvbi9ydW50aW1lL2Rpc3QvdXRpbHMuY2pzP2QxMTgiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcmVxdWlyZV9ydW50aW1lID0gcmVxdWlyZSgnLi9fdmlydHVhbC9fcm9sbGRvd24vcnVudGltZS5janMnKTtcbmxldCBfbW9kdWxlX2ZlZGVyYXRpb25fcnVudGltZV9jb3JlID0gcmVxdWlyZShcIkBtb2R1bGUtZmVkZXJhdGlvbi9ydW50aW1lLWNvcmVcIik7XG5cbi8vI3JlZ2lvbiBzcmMvdXRpbHMudHNcbmZ1bmN0aW9uIGdldEJ1aWxkZXJJZCgpIHtcblx0cmV0dXJuIHR5cGVvZiBGRURFUkFUSU9OX0JVSUxEX0lERU5USUZJRVIgIT09IFwidW5kZWZpbmVkXCIgPyBGRURFUkFUSU9OX0JVSUxEX0lERU5USUZJRVIgOiBcIlwiO1xufVxuZnVuY3Rpb24gZ2V0R2xvYmFsRmVkZXJhdGlvbkluc3RhbmNlKG5hbWUsIHZlcnNpb24pIHtcblx0Y29uc3QgYnVpbGRJZCA9IGdldEJ1aWxkZXJJZCgpO1xuXHRyZXR1cm4gX21vZHVsZV9mZWRlcmF0aW9uX3J1bnRpbWVfY29yZS5DdXJyZW50R2xvYmFsLl9fRkVERVJBVElPTl9fLl9fSU5TVEFOQ0VTX18uZmluZCgoR01JbnN0YW5jZSkgPT4ge1xuXHRcdGlmIChidWlsZElkICYmIEdNSW5zdGFuY2Uub3B0aW9ucy5pZCA9PT0gYnVpbGRJZCkgcmV0dXJuIHRydWU7XG5cdFx0aWYgKEdNSW5zdGFuY2Uub3B0aW9ucy5uYW1lID09PSBuYW1lICYmICFHTUluc3RhbmNlLm9wdGlvbnMudmVyc2lvbiAmJiAhdmVyc2lvbikgcmV0dXJuIHRydWU7XG5cdFx0aWYgKEdNSW5zdGFuY2Uub3B0aW9ucy5uYW1lID09PSBuYW1lICYmIHZlcnNpb24gJiYgR01JbnN0YW5jZS5vcHRpb25zLnZlcnNpb24gPT09IHZlcnNpb24pIHJldHVybiB0cnVlO1xuXHRcdHJldHVybiBmYWxzZTtcblx0fSk7XG59XG5cbi8vI2VuZHJlZ2lvblxuZXhwb3J0cy5nZXRHbG9iYWxGZWRlcmF0aW9uSW5zdGFuY2UgPSBnZXRHbG9iYWxGZWRlcmF0aW9uSW5zdGFuY2U7XG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5janMubWFwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdCQUF3QixtQkFBTyxDQUFDLG9JQUFrQztBQUNsRSxzQ0FBc0MsbUJBQU8sQ0FBQyxzRUFBaUM7O0FBRS9FO0FBQ0E7QUFDQSxRQUFRLEtBQWtELEdBQUcsd0NBQTJCLEdBQUcsQ0FBRTtBQUM3RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGOztBQUVBO0FBQ0EsbUNBQW1DO0FBQ25DIn0=\n//# sourceURL=webpack-internal:///../../../node_modules/@module-federation/runtime-tools/node_modules/@module-federation/runtime/dist/utils.cjs\n\n}");
221
+ eval("{const require_runtime = __webpack_require__(\"../../../node_modules/@module-federation/runtime-tools/node_modules/@module-federation/runtime/dist/_virtual/_rolldown/runtime.cjs\");\nlet _module_federation_runtime_core = __webpack_require__(\"../../../node_modules/@module-federation/runtime-core/dist/index.cjs\");\n\n//#region src/utils.ts\nfunction getBuilderId() {\n\treturn true ? \"@openmrs/esm-app-shell:10.0.1-pre.5616\" : 0;\n}\nfunction getGlobalFederationInstance(name, version) {\n\tconst buildId = getBuilderId();\n\treturn _module_federation_runtime_core.CurrentGlobal.__FEDERATION__.__INSTANCES__.find((GMInstance) => {\n\t\tif (buildId && GMInstance.options.id === buildId) return true;\n\t\tif (GMInstance.options.name === name && !GMInstance.options.version && !version) return true;\n\t\tif (GMInstance.options.name === name && version && GMInstance.options.version === version) return true;\n\t\treturn false;\n\t});\n}\n\n//#endregion\nexports.getGlobalFederationInstance = getGlobalFederationInstance;\n//# sourceMappingURL=utils.cjs.map\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9keW5hbWljfC9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9ub2RlX21vZHVsZXMvQG1vZHVsZS1mZWRlcmF0aW9uL3J1bnRpbWUtdG9vbHMvbm9kZV9tb2R1bGVzL0Btb2R1bGUtZmVkZXJhdGlvbi9ydW50aW1lL2Rpc3QvdXRpbHMuY2pzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQG1vZHVsZS1mZWRlcmF0aW9uL3J1bnRpbWUtdG9vbHMvbm9kZV9tb2R1bGVzL0Btb2R1bGUtZmVkZXJhdGlvbi9ydW50aW1lL2Rpc3QvdXRpbHMuY2pzP2QxMTgiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcmVxdWlyZV9ydW50aW1lID0gcmVxdWlyZSgnLi9fdmlydHVhbC9fcm9sbGRvd24vcnVudGltZS5janMnKTtcbmxldCBfbW9kdWxlX2ZlZGVyYXRpb25fcnVudGltZV9jb3JlID0gcmVxdWlyZShcIkBtb2R1bGUtZmVkZXJhdGlvbi9ydW50aW1lLWNvcmVcIik7XG5cbi8vI3JlZ2lvbiBzcmMvdXRpbHMudHNcbmZ1bmN0aW9uIGdldEJ1aWxkZXJJZCgpIHtcblx0cmV0dXJuIHR5cGVvZiBGRURFUkFUSU9OX0JVSUxEX0lERU5USUZJRVIgIT09IFwidW5kZWZpbmVkXCIgPyBGRURFUkFUSU9OX0JVSUxEX0lERU5USUZJRVIgOiBcIlwiO1xufVxuZnVuY3Rpb24gZ2V0R2xvYmFsRmVkZXJhdGlvbkluc3RhbmNlKG5hbWUsIHZlcnNpb24pIHtcblx0Y29uc3QgYnVpbGRJZCA9IGdldEJ1aWxkZXJJZCgpO1xuXHRyZXR1cm4gX21vZHVsZV9mZWRlcmF0aW9uX3J1bnRpbWVfY29yZS5DdXJyZW50R2xvYmFsLl9fRkVERVJBVElPTl9fLl9fSU5TVEFOQ0VTX18uZmluZCgoR01JbnN0YW5jZSkgPT4ge1xuXHRcdGlmIChidWlsZElkICYmIEdNSW5zdGFuY2Uub3B0aW9ucy5pZCA9PT0gYnVpbGRJZCkgcmV0dXJuIHRydWU7XG5cdFx0aWYgKEdNSW5zdGFuY2Uub3B0aW9ucy5uYW1lID09PSBuYW1lICYmICFHTUluc3RhbmNlLm9wdGlvbnMudmVyc2lvbiAmJiAhdmVyc2lvbikgcmV0dXJuIHRydWU7XG5cdFx0aWYgKEdNSW5zdGFuY2Uub3B0aW9ucy5uYW1lID09PSBuYW1lICYmIHZlcnNpb24gJiYgR01JbnN0YW5jZS5vcHRpb25zLnZlcnNpb24gPT09IHZlcnNpb24pIHJldHVybiB0cnVlO1xuXHRcdHJldHVybiBmYWxzZTtcblx0fSk7XG59XG5cbi8vI2VuZHJlZ2lvblxuZXhwb3J0cy5nZXRHbG9iYWxGZWRlcmF0aW9uSW5zdGFuY2UgPSBnZXRHbG9iYWxGZWRlcmF0aW9uSW5zdGFuY2U7XG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5janMubWFwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdCQUF3QixtQkFBTyxDQUFDLG9JQUFrQztBQUNsRSxzQ0FBc0MsbUJBQU8sQ0FBQyxzRUFBaUM7O0FBRS9FO0FBQ0E7QUFDQSxRQUFRLEtBQWtELEdBQUcsd0NBQTJCLEdBQUcsQ0FBRTtBQUM3RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGOztBQUVBO0FBQ0EsbUNBQW1DO0FBQ25DIn0=\n//# sourceURL=webpack-internal:///../../../node_modules/@module-federation/runtime-tools/node_modules/@module-federation/runtime/dist/utils.cjs\n\n}");
222
222
 
223
223
  },
224
224
  "../../../node_modules/@module-federation/sdk/dist/_virtual/_rolldown/runtime.cjs"(__unused_rspack_module, exports) {
@@ -358,7 +358,7 @@ eval("{Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.t
358
358
 
359
359
  },
360
360
  "../../../node_modules/@module-federation/webpack-bundler-runtime/node_modules/@module-federation/runtime/dist/utils.cjs"(__unused_rspack_module, exports, __webpack_require__) {
361
- eval("{const require_runtime = __webpack_require__(\"../../../node_modules/@module-federation/webpack-bundler-runtime/node_modules/@module-federation/runtime/dist/_virtual/_rolldown/runtime.cjs\");\nlet _module_federation_runtime_core = __webpack_require__(\"../../../node_modules/@module-federation/runtime-core/dist/index.cjs\");\n\n//#region src/utils.ts\nfunction getBuilderId() {\n\treturn true ? \"@openmrs/esm-app-shell:10.0.1-pre.5607\" : 0;\n}\nfunction getGlobalFederationInstance(name, version) {\n\tconst buildId = getBuilderId();\n\treturn _module_federation_runtime_core.CurrentGlobal.__FEDERATION__.__INSTANCES__.find((GMInstance) => {\n\t\tif (buildId && GMInstance.options.id === buildId) return true;\n\t\tif (GMInstance.options.name === name && !GMInstance.options.version && !version) return true;\n\t\tif (GMInstance.options.name === name && version && GMInstance.options.version === version) return true;\n\t\treturn false;\n\t});\n}\n\n//#endregion\nexports.getGlobalFederationInstance = getGlobalFederationInstance;\n//# sourceMappingURL=utils.cjs.map\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9keW5hbWljfC9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9ub2RlX21vZHVsZXMvQG1vZHVsZS1mZWRlcmF0aW9uL3dlYnBhY2stYnVuZGxlci1ydW50aW1lL25vZGVfbW9kdWxlcy9AbW9kdWxlLWZlZGVyYXRpb24vcnVudGltZS9kaXN0L3V0aWxzLmNqcyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Btb2R1bGUtZmVkZXJhdGlvbi93ZWJwYWNrLWJ1bmRsZXItcnVudGltZS9ub2RlX21vZHVsZXMvQG1vZHVsZS1mZWRlcmF0aW9uL3J1bnRpbWUvZGlzdC91dGlscy5janM/Y2M1OCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCByZXF1aXJlX3J1bnRpbWUgPSByZXF1aXJlKCcuL192aXJ0dWFsL19yb2xsZG93bi9ydW50aW1lLmNqcycpO1xubGV0IF9tb2R1bGVfZmVkZXJhdGlvbl9ydW50aW1lX2NvcmUgPSByZXF1aXJlKFwiQG1vZHVsZS1mZWRlcmF0aW9uL3J1bnRpbWUtY29yZVwiKTtcblxuLy8jcmVnaW9uIHNyYy91dGlscy50c1xuZnVuY3Rpb24gZ2V0QnVpbGRlcklkKCkge1xuXHRyZXR1cm4gdHlwZW9mIEZFREVSQVRJT05fQlVJTERfSURFTlRJRklFUiAhPT0gXCJ1bmRlZmluZWRcIiA/IEZFREVSQVRJT05fQlVJTERfSURFTlRJRklFUiA6IFwiXCI7XG59XG5mdW5jdGlvbiBnZXRHbG9iYWxGZWRlcmF0aW9uSW5zdGFuY2UobmFtZSwgdmVyc2lvbikge1xuXHRjb25zdCBidWlsZElkID0gZ2V0QnVpbGRlcklkKCk7XG5cdHJldHVybiBfbW9kdWxlX2ZlZGVyYXRpb25fcnVudGltZV9jb3JlLkN1cnJlbnRHbG9iYWwuX19GRURFUkFUSU9OX18uX19JTlNUQU5DRVNfXy5maW5kKChHTUluc3RhbmNlKSA9PiB7XG5cdFx0aWYgKGJ1aWxkSWQgJiYgR01JbnN0YW5jZS5vcHRpb25zLmlkID09PSBidWlsZElkKSByZXR1cm4gdHJ1ZTtcblx0XHRpZiAoR01JbnN0YW5jZS5vcHRpb25zLm5hbWUgPT09IG5hbWUgJiYgIUdNSW5zdGFuY2Uub3B0aW9ucy52ZXJzaW9uICYmICF2ZXJzaW9uKSByZXR1cm4gdHJ1ZTtcblx0XHRpZiAoR01JbnN0YW5jZS5vcHRpb25zLm5hbWUgPT09IG5hbWUgJiYgdmVyc2lvbiAmJiBHTUluc3RhbmNlLm9wdGlvbnMudmVyc2lvbiA9PT0gdmVyc2lvbikgcmV0dXJuIHRydWU7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9KTtcbn1cblxuLy8jZW5kcmVnaW9uXG5leHBvcnRzLmdldEdsb2JhbEZlZGVyYXRpb25JbnN0YW5jZSA9IGdldEdsb2JhbEZlZGVyYXRpb25JbnN0YW5jZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmNqcy5tYXAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0JBQXdCLG1CQUFPLENBQUMsOElBQWtDO0FBQ2xFLHNDQUFzQyxtQkFBTyxDQUFDLHNFQUFpQzs7QUFFL0U7QUFDQTtBQUNBLFFBQVEsS0FBa0QsR0FBRyx3Q0FBMkIsR0FBRyxDQUFFO0FBQzdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7QUFDQSxtQ0FBbUM7QUFDbkMifQ==\n//# sourceURL=webpack-internal:///../../../node_modules/@module-federation/webpack-bundler-runtime/node_modules/@module-federation/runtime/dist/utils.cjs\n\n}");
361
+ eval("{const require_runtime = __webpack_require__(\"../../../node_modules/@module-federation/webpack-bundler-runtime/node_modules/@module-federation/runtime/dist/_virtual/_rolldown/runtime.cjs\");\nlet _module_federation_runtime_core = __webpack_require__(\"../../../node_modules/@module-federation/runtime-core/dist/index.cjs\");\n\n//#region src/utils.ts\nfunction getBuilderId() {\n\treturn true ? \"@openmrs/esm-app-shell:10.0.1-pre.5616\" : 0;\n}\nfunction getGlobalFederationInstance(name, version) {\n\tconst buildId = getBuilderId();\n\treturn _module_federation_runtime_core.CurrentGlobal.__FEDERATION__.__INSTANCES__.find((GMInstance) => {\n\t\tif (buildId && GMInstance.options.id === buildId) return true;\n\t\tif (GMInstance.options.name === name && !GMInstance.options.version && !version) return true;\n\t\tif (GMInstance.options.name === name && version && GMInstance.options.version === version) return true;\n\t\treturn false;\n\t});\n}\n\n//#endregion\nexports.getGlobalFederationInstance = getGlobalFederationInstance;\n//# sourceMappingURL=utils.cjs.map\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9keW5hbWljfC9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9ub2RlX21vZHVsZXMvQG1vZHVsZS1mZWRlcmF0aW9uL3dlYnBhY2stYnVuZGxlci1ydW50aW1lL25vZGVfbW9kdWxlcy9AbW9kdWxlLWZlZGVyYXRpb24vcnVudGltZS9kaXN0L3V0aWxzLmNqcyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Btb2R1bGUtZmVkZXJhdGlvbi93ZWJwYWNrLWJ1bmRsZXItcnVudGltZS9ub2RlX21vZHVsZXMvQG1vZHVsZS1mZWRlcmF0aW9uL3J1bnRpbWUvZGlzdC91dGlscy5janM/Y2M1OCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCByZXF1aXJlX3J1bnRpbWUgPSByZXF1aXJlKCcuL192aXJ0dWFsL19yb2xsZG93bi9ydW50aW1lLmNqcycpO1xubGV0IF9tb2R1bGVfZmVkZXJhdGlvbl9ydW50aW1lX2NvcmUgPSByZXF1aXJlKFwiQG1vZHVsZS1mZWRlcmF0aW9uL3J1bnRpbWUtY29yZVwiKTtcblxuLy8jcmVnaW9uIHNyYy91dGlscy50c1xuZnVuY3Rpb24gZ2V0QnVpbGRlcklkKCkge1xuXHRyZXR1cm4gdHlwZW9mIEZFREVSQVRJT05fQlVJTERfSURFTlRJRklFUiAhPT0gXCJ1bmRlZmluZWRcIiA/IEZFREVSQVRJT05fQlVJTERfSURFTlRJRklFUiA6IFwiXCI7XG59XG5mdW5jdGlvbiBnZXRHbG9iYWxGZWRlcmF0aW9uSW5zdGFuY2UobmFtZSwgdmVyc2lvbikge1xuXHRjb25zdCBidWlsZElkID0gZ2V0QnVpbGRlcklkKCk7XG5cdHJldHVybiBfbW9kdWxlX2ZlZGVyYXRpb25fcnVudGltZV9jb3JlLkN1cnJlbnRHbG9iYWwuX19GRURFUkFUSU9OX18uX19JTlNUQU5DRVNfXy5maW5kKChHTUluc3RhbmNlKSA9PiB7XG5cdFx0aWYgKGJ1aWxkSWQgJiYgR01JbnN0YW5jZS5vcHRpb25zLmlkID09PSBidWlsZElkKSByZXR1cm4gdHJ1ZTtcblx0XHRpZiAoR01JbnN0YW5jZS5vcHRpb25zLm5hbWUgPT09IG5hbWUgJiYgIUdNSW5zdGFuY2Uub3B0aW9ucy52ZXJzaW9uICYmICF2ZXJzaW9uKSByZXR1cm4gdHJ1ZTtcblx0XHRpZiAoR01JbnN0YW5jZS5vcHRpb25zLm5hbWUgPT09IG5hbWUgJiYgdmVyc2lvbiAmJiBHTUluc3RhbmNlLm9wdGlvbnMudmVyc2lvbiA9PT0gdmVyc2lvbikgcmV0dXJuIHRydWU7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9KTtcbn1cblxuLy8jZW5kcmVnaW9uXG5leHBvcnRzLmdldEdsb2JhbEZlZGVyYXRpb25JbnN0YW5jZSA9IGdldEdsb2JhbEZlZGVyYXRpb25JbnN0YW5jZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmNqcy5tYXAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0JBQXdCLG1CQUFPLENBQUMsOElBQWtDO0FBQ2xFLHNDQUFzQyxtQkFBTyxDQUFDLHNFQUFpQzs7QUFFL0U7QUFDQTtBQUNBLFFBQVEsS0FBa0QsR0FBRyx3Q0FBMkIsR0FBRyxDQUFFO0FBQzdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7QUFDQSxtQ0FBbUM7QUFDbkMifQ==\n//# sourceURL=webpack-internal:///../../../node_modules/@module-federation/webpack-bundler-runtime/node_modules/@module-federation/runtime/dist/utils.cjs\n\n}");
362
362
 
363
363
  },
364
364
  "../../../node_modules/@module-federation/error-codes/dist/desc.mjs"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
@@ -655,7 +655,7 @@ __webpack_require__.u = (chunkId) => {
655
655
  // return url for filenames not based on template
656
656
 
657
657
  // return url for filenames based on template
658
- return "" + {"default-framework_esm-framework_dist_internal_js": "179d0d3c39ccf890","default-node_modules_carbon_icons-react_es_generated_bucket-11_js-node_modules_carbon_icons-r-63ea09": "6fa8075110bb9581","default-node_modules_carbon_react_es_index_js": "4907fc954ee36d02","default-node_modules_react-dom_index_js": "41733b40a9c3c3a5","default-node_modules_react-i18next_dist_es_index_js": "dba37f937b9fef08","default-node_modules_react-router-dom_dist_index_js": "41084f226b2f0007","default-node_modules_swr_dist__internal_index_mjs": "9728df55a98ebbd2","default-node_modules_swr_dist_infinite_index_mjs": "18ec06b4e1782343","default-node_modules_swr_dist_use-swr-emll9s78_mjs": "dcee9941dbf0fcae","default-node_modules_tslib_tslib_es6_mjs": "a2ed0a758d2afe95","default-vendors-node_modules_dayjs_dayjs_min_js": "ab4148a466ebd6ef","default-vendors-node_modules_i18next-browser-languagedetector_dist_esm_i18nextBrowserLanguage-1ba50a": "4afcde165187cf34","default-vendors-node_modules_i18next_dist_esm_i18next_js": "29eb002ac8b08df5","default-vendors-node_modules_react_index_js": "2b18050c552ba37b","default-vendors-node_modules_single-spa_lib_es2015_esm_single-spa_dev_js": "6a07d9edae91d64a","framework_esm-translations_translations_am_json": "c480caae407f477b","framework_esm-translations_translations_ar_SY_json": "935c56e6fc3f4eb9","framework_esm-translations_translations_ar_json": "d548ccf57a2b3efc","framework_esm-translations_translations_bn_json": "8a39bb2828dd5901","framework_esm-translations_translations_cs_json": "2437de89f6e52cc4","framework_esm-translations_translations_de_json": "a26f73b4efd5a0db","framework_esm-translations_translations_en_US_json": "45470aef57aada9b","framework_esm-translations_translations_en_json": "28cd0b4d1d48499c","framework_esm-translations_translations_es_MX_json": "24d941a4faeeedc3","framework_esm-translations_translations_es_json": "79a70c776c963b07","framework_esm-translations_translations_fr_json": "c30965f09a3e01ba","framework_esm-translations_translations_he_json": "d4fecb39d12881b8","framework_esm-translations_translations_hi_IN_json": "358f3aa095ecae65","framework_esm-translations_translations_hi_json": "6502ebe7d0d0716b","framework_esm-translations_translations_id_json": "5e902230903f56ad","framework_esm-translations_translations_it_json": "94790873eebfc80d","framework_esm-translations_translations_ka_json": "4303c469b7ff7576","framework_esm-translations_translations_km_json": "08ae84f7ae3fd30a","framework_esm-translations_translations_ku_json": "b6518cdc113a6cc8","framework_esm-translations_translations_ky_json": "ae0700dd4f6acc20","framework_esm-translations_translations_lg_json": "7f2111ac7a0220c9","framework_esm-translations_translations_ne_json": "636a0d28b22ffd7c","framework_esm-translations_translations_pl_json": "7b32f9e23be8df86","framework_esm-translations_translations_pt_BR_json": "8c3e1a1a6bbafa66","framework_esm-translations_translations_pt_json": "5b577f83da68cef2","framework_esm-translations_translations_qu_json": "cdec54e1793226fa","framework_esm-translations_translations_ro_RO_json": "a52784d106f5e784","framework_esm-translations_translations_ru_RU_json": "524e945c14018b8e","framework_esm-translations_translations_si_json": "7d5c0f39d43a15ed","framework_esm-translations_translations_sq_json": "95b4328888c96752","framework_esm-translations_translations_sw_KE_json": "bb3fb0f9a62de60b","framework_esm-translations_translations_sw_json": "4b8d4db107d5f32b","framework_esm-translations_translations_tr_TR_json": "bd00a3b5f927dc70","framework_esm-translations_translations_tr_json": "0c1857dcb045ec48","framework_esm-translations_translations_uk_json": "d44fa94144daf6e7","framework_esm-translations_translations_uz_Latn_json": "7d578e9b49663caa","framework_esm-translations_translations_uz_UZ_json": "9a00917b6b8c31a0","framework_esm-translations_translations_uz_json": "12e58d0ec655509e","framework_esm-translations_translations_vi_json": "db5558c4b7d422e5","framework_esm-translations_translations_zh_CN_json": "2a5e745dfce6e1b0","framework_esm-translations_translations_zh_TW_json": "22a4c67262d7c2ec","framework_esm-translations_translations_zh_json": "767a2eb32d699e9e","intl-durationformat-polyfill": "e3ec6219acc5c306","node_modules_swr_dist_immutable_index_mjs": "bf18b81b008d141f","node_modules_swr_dist_index_index_mjs": "0f3e13a16d559dba","node_modules_swr_dist_mutation_index_mjs": "cde39f3d2a3c48d0","node_modules_swr_dist_subscription_index_mjs": "ecb3a4bbeb2c0246","node_modules_use-sync-external-store_shim_index_js": "c912d57aa96a2320","node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_immutable_index_mjs": "965c2ea7ad36f9b9","node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_index_index_mjs": "e0650e8f5bc5a5f0","node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_mutation_index_mjs": "6c72dcc37b6da71c","node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_subscription_index_mjs": "258c11567d1269c4","run": "a9723890347a594e",}[chunkId] + ".js"
658
+ return "" + {"default-framework_esm-framework_dist_internal_js": "0f63a955dacaced7","default-node_modules_carbon_icons-react_es_generated_bucket-11_js-node_modules_carbon_icons-r-63ea09": "6fa8075110bb9581","default-node_modules_carbon_react_es_index_js": "4907fc954ee36d02","default-node_modules_react-dom_index_js": "41733b40a9c3c3a5","default-node_modules_react-i18next_dist_es_index_js": "dba37f937b9fef08","default-node_modules_react-router-dom_dist_index_js": "41084f226b2f0007","default-node_modules_swr_dist__internal_index_mjs": "9728df55a98ebbd2","default-node_modules_swr_dist_infinite_index_mjs": "18ec06b4e1782343","default-node_modules_swr_dist_use-swr-emll9s78_mjs": "dcee9941dbf0fcae","default-node_modules_tslib_tslib_es6_mjs": "a2ed0a758d2afe95","default-vendors-node_modules_dayjs_dayjs_min_js": "ab4148a466ebd6ef","default-vendors-node_modules_i18next-browser-languagedetector_dist_esm_i18nextBrowserLanguage-1ba50a": "4afcde165187cf34","default-vendors-node_modules_i18next_dist_esm_i18next_js": "29eb002ac8b08df5","default-vendors-node_modules_react_index_js": "2b18050c552ba37b","default-vendors-node_modules_single-spa_lib_es2015_esm_single-spa_dev_js": "6a07d9edae91d64a","framework_esm-translations_translations_am_json": "c480caae407f477b","framework_esm-translations_translations_ar_SY_json": "935c56e6fc3f4eb9","framework_esm-translations_translations_ar_json": "d548ccf57a2b3efc","framework_esm-translations_translations_bn_json": "8a39bb2828dd5901","framework_esm-translations_translations_cs_json": "2437de89f6e52cc4","framework_esm-translations_translations_de_json": "a26f73b4efd5a0db","framework_esm-translations_translations_en_US_json": "45470aef57aada9b","framework_esm-translations_translations_en_json": "28cd0b4d1d48499c","framework_esm-translations_translations_es_MX_json": "24d941a4faeeedc3","framework_esm-translations_translations_es_json": "79a70c776c963b07","framework_esm-translations_translations_fr_json": "c30965f09a3e01ba","framework_esm-translations_translations_he_json": "d4fecb39d12881b8","framework_esm-translations_translations_hi_IN_json": "358f3aa095ecae65","framework_esm-translations_translations_hi_json": "6502ebe7d0d0716b","framework_esm-translations_translations_id_json": "5e902230903f56ad","framework_esm-translations_translations_it_json": "94790873eebfc80d","framework_esm-translations_translations_ka_json": "4303c469b7ff7576","framework_esm-translations_translations_km_json": "08ae84f7ae3fd30a","framework_esm-translations_translations_ku_json": "b6518cdc113a6cc8","framework_esm-translations_translations_ky_json": "ae0700dd4f6acc20","framework_esm-translations_translations_lg_json": "7f2111ac7a0220c9","framework_esm-translations_translations_ne_json": "636a0d28b22ffd7c","framework_esm-translations_translations_pl_json": "7b32f9e23be8df86","framework_esm-translations_translations_pt_BR_json": "8c3e1a1a6bbafa66","framework_esm-translations_translations_pt_json": "5b577f83da68cef2","framework_esm-translations_translations_qu_json": "cdec54e1793226fa","framework_esm-translations_translations_ro_RO_json": "a52784d106f5e784","framework_esm-translations_translations_ru_RU_json": "524e945c14018b8e","framework_esm-translations_translations_si_json": "7d5c0f39d43a15ed","framework_esm-translations_translations_sq_json": "95b4328888c96752","framework_esm-translations_translations_sw_KE_json": "bb3fb0f9a62de60b","framework_esm-translations_translations_sw_json": "4b8d4db107d5f32b","framework_esm-translations_translations_tr_TR_json": "bd00a3b5f927dc70","framework_esm-translations_translations_tr_json": "0c1857dcb045ec48","framework_esm-translations_translations_uk_json": "d44fa94144daf6e7","framework_esm-translations_translations_uz_Latn_json": "7d578e9b49663caa","framework_esm-translations_translations_uz_UZ_json": "9a00917b6b8c31a0","framework_esm-translations_translations_uz_json": "12e58d0ec655509e","framework_esm-translations_translations_vi_json": "db5558c4b7d422e5","framework_esm-translations_translations_zh_CN_json": "2a5e745dfce6e1b0","framework_esm-translations_translations_zh_TW_json": "22a4c67262d7c2ec","framework_esm-translations_translations_zh_json": "767a2eb32d699e9e","intl-durationformat-polyfill": "e3ec6219acc5c306","node_modules_swr_dist_immutable_index_mjs": "bf18b81b008d141f","node_modules_swr_dist_index_index_mjs": "0f3e13a16d559dba","node_modules_swr_dist_mutation_index_mjs": "cde39f3d2a3c48d0","node_modules_swr_dist_subscription_index_mjs": "ecb3a4bbeb2c0246","node_modules_use-sync-external-store_shim_index_js": "c912d57aa96a2320","node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_immutable_index_mjs": "965c2ea7ad36f9b9","node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_index_index_mjs": "e0650e8f5bc5a5f0","node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_mutation_index_mjs": "6c72dcc37b6da71c","node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_subscription_index_mjs": "258c11567d1269c4","run": "1058b45598de41ef",}[chunkId] + ".js"
659
659
  }
660
660
  })();
661
661
  // webpack/runtime/global
@@ -773,7 +773,7 @@ __webpack_require__.rv = () => ("1.7.9")
773
773
  (() => {
774
774
 
775
775
  __webpack_require__.S = {};
776
- __webpack_require__.initializeSharingData = { scopeToSharingDataMapping: { "default": [{ name: "@carbon/react", version: "1.92.1", factory: () => (Promise.all([__webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-webpack_sharing_consume_default_react-dom_react-dom"), __webpack_require__.e("default-node_modules_carbon_icons-react_es_generated_bucket-11_js-node_modules_carbon_icons-r-63ea09"), __webpack_require__.e("default-node_modules_tslib_tslib_es6_mjs"), __webpack_require__.e("default-node_modules_carbon_react_es_index_js")]).then(() => (() => (__webpack_require__("../../../node_modules/@carbon/react/es/index.js"))))), eager: 0, singleton: 1, requiredVersion: "1.x", strictVersion: 0 }, { name: "@openmrs/esm-framework/src/internal", version: "10.0.1-pre.5607", factory: () => (Promise.all([__webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-webpack_sharing_consume_default_react-dom_react-dom"), __webpack_require__.e("default-node_modules_carbon_icons-react_es_generated_bucket-11_js-node_modules_carbon_icons-r-63ea09"), __webpack_require__.e("default-framework_esm-framework_dist_internal_js")]).then(() => (() => (__webpack_require__("../../framework/esm-framework/dist/internal.js"))))), eager: 0, singleton: 1, requiredVersion: "*", strictVersion: 0 }, { name: "dayjs", version: "1.11.13", factory: () => (__webpack_require__.e("default-vendors-node_modules_dayjs_dayjs_min_js").then(() => (() => (__webpack_require__("../../../node_modules/dayjs/dayjs.min.js"))))), eager: 0, singleton: 1, requiredVersion: "1.x", strictVersion: 0 }, { name: "i18next", version: "25.5.3", factory: () => (__webpack_require__.e("default-vendors-node_modules_i18next_dist_esm_i18next_js").then(() => (() => (__webpack_require__("../../../node_modules/i18next/dist/esm/i18next.js"))))), eager: 0, singleton: 1, requiredVersion: "25.x", strictVersion: 0 }, { name: "react-dom", version: "18.3.1", factory: () => (Promise.all([__webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-node_modules_react-dom_index_js")]).then(() => (() => (__webpack_require__("../../../node_modules/react-dom/index.js"))))), eager: 0, singleton: 1, requiredVersion: "18.x", strictVersion: 0 }, { name: "react-i18next", version: "16.0.0", factory: () => (Promise.all([__webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-node_modules_react-i18next_dist_es_index_js")]).then(() => (() => (__webpack_require__("../../../node_modules/react-i18next/dist/es/index.js"))))), eager: 0, singleton: 1, requiredVersion: "16.x", strictVersion: 0 }, { name: "react-router-dom", version: "6.30.3", factory: () => (Promise.all([__webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-webpack_sharing_consume_default_react-dom_react-dom"), __webpack_require__.e("default-node_modules_react-router-dom_dist_index_js")]).then(() => (() => (__webpack_require__("../../../node_modules/react-router-dom/dist/index.js"))))), eager: 0, singleton: 1, requiredVersion: "6.x", strictVersion: 0 }, { name: "react", version: "18.3.1", factory: () => (__webpack_require__.e("default-vendors-node_modules_react_index_js").then(() => (() => (__webpack_require__("../../../node_modules/react/index.js"))))), eager: 0, singleton: 1, requiredVersion: "18.x", strictVersion: 0 }, { name: "single-spa", version: "6.0.3", factory: () => (__webpack_require__.e("default-vendors-node_modules_single-spa_lib_es2015_esm_single-spa_dev_js").then(() => (() => (__webpack_require__("../../../node_modules/single-spa/lib/es2015/esm/single-spa.dev.js"))))), eager: 0, singleton: 1, requiredVersion: "6.x", strictVersion: 0 }, { name: "swr/_internal", version: "2.5.1", factory: () => (Promise.all([__webpack_require__.e("default-node_modules_swr_dist__internal_index_mjs"), __webpack_require__.e("default-webpack_sharing_consume_default_react_react")]).then(() => (() => (__webpack_require__("../../../node_modules/swr/dist/_internal/index.mjs"))))), eager: 0, singleton: 1, requiredVersion: "2.5.1", strictVersion: 0 }, { name: "swr/immutable", version: "2.5.1", factory: () => (Promise.all([__webpack_require__.e("default-node_modules_swr_dist__internal_index_mjs"), __webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-node_modules_swr_dist_use-swr-emll9s78_mjs"), __webpack_require__.e("node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_immutable_index_mjs")]).then(() => (() => (__webpack_require__("../../../node_modules/swr/dist/immutable/index.mjs"))))), eager: 0, singleton: 1, requiredVersion: "2.5.1", strictVersion: 0 }, { name: "swr/infinite", version: "2.5.1", factory: () => (Promise.all([__webpack_require__.e("default-node_modules_swr_dist__internal_index_mjs"), __webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-node_modules_swr_dist_use-swr-emll9s78_mjs"), __webpack_require__.e("default-node_modules_swr_dist_infinite_index_mjs"), __webpack_require__.e("node_modules_use-sync-external-store_shim_index_js")]).then(() => (() => (__webpack_require__("../../../node_modules/swr/dist/infinite/index.mjs"))))), eager: 0, singleton: 1, requiredVersion: "2.5.1", strictVersion: 0 }, { name: "swr/mutation", version: "2.5.1", factory: () => (Promise.all([__webpack_require__.e("default-node_modules_swr_dist__internal_index_mjs"), __webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-node_modules_swr_dist_use-swr-emll9s78_mjs"), __webpack_require__.e("node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_mutation_index_mjs")]).then(() => (() => (__webpack_require__("../../../node_modules/swr/dist/mutation/index.mjs"))))), eager: 0, singleton: 1, requiredVersion: "2.5.1", strictVersion: 0 }, { name: "swr/subscription", version: "2.5.1", factory: () => (Promise.all([__webpack_require__.e("default-node_modules_swr_dist__internal_index_mjs"), __webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-node_modules_swr_dist_use-swr-emll9s78_mjs"), __webpack_require__.e("node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_subscription_index_mjs")]).then(() => (() => (__webpack_require__("../../../node_modules/swr/dist/subscription/index.mjs"))))), eager: 0, singleton: 1, requiredVersion: "2.5.1", strictVersion: 0 }, { name: "swr", version: "2.5.1", factory: () => (Promise.all([__webpack_require__.e("default-node_modules_swr_dist__internal_index_mjs"), __webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-node_modules_swr_dist_use-swr-emll9s78_mjs"), __webpack_require__.e("node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_index_index_mjs")]).then(() => (() => (__webpack_require__("../../../node_modules/swr/dist/index/index.mjs"))))), eager: 0, singleton: 1, requiredVersion: "2.5.1", strictVersion: 0 }] }, uniqueName: "@openmrs/esm-app-shell" };
776
+ __webpack_require__.initializeSharingData = { scopeToSharingDataMapping: { "default": [{ name: "@carbon/react", version: "1.92.1", factory: () => (Promise.all([__webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-webpack_sharing_consume_default_react-dom_react-dom"), __webpack_require__.e("default-node_modules_carbon_icons-react_es_generated_bucket-11_js-node_modules_carbon_icons-r-63ea09"), __webpack_require__.e("default-node_modules_tslib_tslib_es6_mjs"), __webpack_require__.e("default-node_modules_carbon_react_es_index_js")]).then(() => (() => (__webpack_require__("../../../node_modules/@carbon/react/es/index.js"))))), eager: 0, singleton: 1, requiredVersion: "1.x", strictVersion: 0 }, { name: "@openmrs/esm-framework/src/internal", version: "10.0.1-pre.5616", factory: () => (Promise.all([__webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-webpack_sharing_consume_default_react-dom_react-dom"), __webpack_require__.e("default-node_modules_carbon_icons-react_es_generated_bucket-11_js-node_modules_carbon_icons-r-63ea09"), __webpack_require__.e("default-framework_esm-framework_dist_internal_js")]).then(() => (() => (__webpack_require__("../../framework/esm-framework/dist/internal.js"))))), eager: 0, singleton: 1, requiredVersion: "*", strictVersion: 0 }, { name: "dayjs", version: "1.11.13", factory: () => (__webpack_require__.e("default-vendors-node_modules_dayjs_dayjs_min_js").then(() => (() => (__webpack_require__("../../../node_modules/dayjs/dayjs.min.js"))))), eager: 0, singleton: 1, requiredVersion: "1.x", strictVersion: 0 }, { name: "i18next", version: "25.5.3", factory: () => (__webpack_require__.e("default-vendors-node_modules_i18next_dist_esm_i18next_js").then(() => (() => (__webpack_require__("../../../node_modules/i18next/dist/esm/i18next.js"))))), eager: 0, singleton: 1, requiredVersion: "25.x", strictVersion: 0 }, { name: "react-dom", version: "18.3.1", factory: () => (Promise.all([__webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-node_modules_react-dom_index_js")]).then(() => (() => (__webpack_require__("../../../node_modules/react-dom/index.js"))))), eager: 0, singleton: 1, requiredVersion: "18.x", strictVersion: 0 }, { name: "react-i18next", version: "16.0.0", factory: () => (Promise.all([__webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-node_modules_react-i18next_dist_es_index_js")]).then(() => (() => (__webpack_require__("../../../node_modules/react-i18next/dist/es/index.js"))))), eager: 0, singleton: 1, requiredVersion: "16.x", strictVersion: 0 }, { name: "react-router-dom", version: "6.30.3", factory: () => (Promise.all([__webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-webpack_sharing_consume_default_react-dom_react-dom"), __webpack_require__.e("default-node_modules_react-router-dom_dist_index_js")]).then(() => (() => (__webpack_require__("../../../node_modules/react-router-dom/dist/index.js"))))), eager: 0, singleton: 1, requiredVersion: "6.x", strictVersion: 0 }, { name: "react", version: "18.3.1", factory: () => (__webpack_require__.e("default-vendors-node_modules_react_index_js").then(() => (() => (__webpack_require__("../../../node_modules/react/index.js"))))), eager: 0, singleton: 1, requiredVersion: "18.x", strictVersion: 0 }, { name: "single-spa", version: "6.0.3", factory: () => (__webpack_require__.e("default-vendors-node_modules_single-spa_lib_es2015_esm_single-spa_dev_js").then(() => (() => (__webpack_require__("../../../node_modules/single-spa/lib/es2015/esm/single-spa.dev.js"))))), eager: 0, singleton: 1, requiredVersion: "6.x", strictVersion: 0 }, { name: "swr/_internal", version: "2.5.1", factory: () => (Promise.all([__webpack_require__.e("default-node_modules_swr_dist__internal_index_mjs"), __webpack_require__.e("default-webpack_sharing_consume_default_react_react")]).then(() => (() => (__webpack_require__("../../../node_modules/swr/dist/_internal/index.mjs"))))), eager: 0, singleton: 1, requiredVersion: "2.5.1", strictVersion: 0 }, { name: "swr/immutable", version: "2.5.1", factory: () => (Promise.all([__webpack_require__.e("default-node_modules_swr_dist__internal_index_mjs"), __webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-node_modules_swr_dist_use-swr-emll9s78_mjs"), __webpack_require__.e("node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_immutable_index_mjs")]).then(() => (() => (__webpack_require__("../../../node_modules/swr/dist/immutable/index.mjs"))))), eager: 0, singleton: 1, requiredVersion: "2.5.1", strictVersion: 0 }, { name: "swr/infinite", version: "2.5.1", factory: () => (Promise.all([__webpack_require__.e("default-node_modules_swr_dist__internal_index_mjs"), __webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-node_modules_swr_dist_use-swr-emll9s78_mjs"), __webpack_require__.e("default-node_modules_swr_dist_infinite_index_mjs"), __webpack_require__.e("node_modules_use-sync-external-store_shim_index_js")]).then(() => (() => (__webpack_require__("../../../node_modules/swr/dist/infinite/index.mjs"))))), eager: 0, singleton: 1, requiredVersion: "2.5.1", strictVersion: 0 }, { name: "swr/mutation", version: "2.5.1", factory: () => (Promise.all([__webpack_require__.e("default-node_modules_swr_dist__internal_index_mjs"), __webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-node_modules_swr_dist_use-swr-emll9s78_mjs"), __webpack_require__.e("node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_mutation_index_mjs")]).then(() => (() => (__webpack_require__("../../../node_modules/swr/dist/mutation/index.mjs"))))), eager: 0, singleton: 1, requiredVersion: "2.5.1", strictVersion: 0 }, { name: "swr/subscription", version: "2.5.1", factory: () => (Promise.all([__webpack_require__.e("default-node_modules_swr_dist__internal_index_mjs"), __webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-node_modules_swr_dist_use-swr-emll9s78_mjs"), __webpack_require__.e("node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_subscription_index_mjs")]).then(() => (() => (__webpack_require__("../../../node_modules/swr/dist/subscription/index.mjs"))))), eager: 0, singleton: 1, requiredVersion: "2.5.1", strictVersion: 0 }, { name: "swr", version: "2.5.1", factory: () => (Promise.all([__webpack_require__.e("default-node_modules_swr_dist__internal_index_mjs"), __webpack_require__.e("default-webpack_sharing_consume_default_react_react"), __webpack_require__.e("default-node_modules_swr_dist_use-swr-emll9s78_mjs"), __webpack_require__.e("node_modules_use-sync-external-store_shim_index_js-node_modules_swr_dist_index_index_mjs")]).then(() => (() => (__webpack_require__("../../../node_modules/swr/dist/index/index.mjs"))))), eager: 0, singleton: 1, requiredVersion: "2.5.1", strictVersion: 0 }] }, uniqueName: "@openmrs/esm-app-shell" };
777
777
  __webpack_require__.I = __webpack_require__.I || function() { throw new Error("should have __webpack_require__.I") }
778
778
 
779
779
  })();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmrs/esm-app-shell",
3
- "version": "10.0.1-pre.5607",
3
+ "version": "10.0.1-pre.5616",
4
4
  "license": "MPL-2.0",
5
5
  "main": "dist/openmrs.js",
6
6
  "scripts": {
@@ -36,8 +36,8 @@
36
36
  "@module-federation/enhanced": "2.8.1",
37
37
  "@module-federation/error-codes": "2.8.1",
38
38
  "@module-federation/sdk": "2.8.1",
39
- "@openmrs/esm-framework": "10.0.1-pre.5607",
40
- "@openmrs/esm-styleguide": "10.0.1-pre.5607",
39
+ "@openmrs/esm-framework": "10.0.1-pre.5616",
40
+ "@openmrs/esm-styleguide": "10.0.1-pre.5616",
41
41
  "@rspack/cli": "1.7.9",
42
42
  "@rspack/core": "1.7.9",
43
43
  "browserslist-config-openmrs": "^1.0.1",
@@ -0,0 +1,111 @@
1
+ // Boot is left pending forever so the only error page these tests can see is the one raised by a
2
+ // failed session fetch, not the one `handleInitFailure` renders for a failed startup.
3
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
4
+
5
+ interface SessionState {
6
+ loaded: boolean;
7
+ session: unknown;
8
+ error?: Error;
9
+ }
10
+
11
+ const harness = vi.hoisted(() => ({
12
+ listeners: new Set<(state: SessionState) => void>(),
13
+ push(state: SessionState) {
14
+ this.listeners.forEach((listener) => listener(state));
15
+ },
16
+ }));
17
+
18
+ vi.mock('@openmrs/esm-framework/src/internal', () => {
19
+ const noop = () => {};
20
+ return {
21
+ finishRegisteringAllApps: noop,
22
+ fireOpenmrsEvent: noop,
23
+ getConfig: noop,
24
+ getCoreTranslation: noop,
25
+ getCurrentRouteMap: noop,
26
+ getSessionStore: () => ({
27
+ getState: () => ({ loaded: false, session: null }),
28
+ subscribe: (listener: (state: SessionState) => void) => {
29
+ harness.listeners.add(listener);
30
+ return () => harness.listeners.delete(listener);
31
+ },
32
+ }),
33
+ integrateBreakpoints: noop,
34
+ interpolateUrl: (url: string) => url,
35
+ provide: noop,
36
+ registerApp: noop,
37
+ registerDefaultCalendar: noop,
38
+ renderActionableNotifications: noop,
39
+ renderInlineNotifications: noop,
40
+ renderLoadingSpinner: () => noop,
41
+ renderSnackbars: noop,
42
+ renderToasts: noop,
43
+ renderWorkspaceWindowsAndMenu: noop,
44
+ setupApiModule: noop,
45
+ setupHistory: noop,
46
+ setupImportMapOverrides: noop,
47
+ setupModals: noop,
48
+ setupRouteMapOverrides: () => new Promise(() => {}),
49
+ showActionableNotification: noop,
50
+ showNotification: noop,
51
+ showSnackbar: noop,
52
+ showToast: noop,
53
+ subscribeActionableNotificationShown: noop,
54
+ subscribeNotificationShown: noop,
55
+ subscribeSnackbarShown: noop,
56
+ subscribeToastShown: noop,
57
+ tryRegisterExtension: noop,
58
+ };
59
+ });
60
+
61
+ vi.mock('single-spa', () => ({ start: () => {} }));
62
+ vi.mock('@openmrs/esm-styleguide/src/index', () => ({ setupStyleguide: () => {} }));
63
+ vi.mock('./locale', () => ({ setupI18n: () => {} }));
64
+ vi.mock('./routing-events', () => ({}));
65
+ vi.mock('./events', () => ({}));
66
+ vi.mock('./ui', () => ({ appName: '@openmrs/esm-app-shell', getCoreExtensions: () => [] }));
67
+ vi.mock('./core-config', () => ({ setupCoreConfig: () => {} }));
68
+
69
+ import { run } from './run';
70
+
71
+ const errorPage = () => document.querySelector('.omrs-app-error');
72
+
73
+ describe('the session error page', () => {
74
+ beforeEach(() => {
75
+ harness.listeners.clear();
76
+ document.body.innerHTML = `
77
+ <template id="app-error">
78
+ <div class="omrs-app-error"><code data-var="message"></code></div>
79
+ </template>`;
80
+ vi.stubGlobal('fetch', () => new Promise(() => {}));
81
+ run([]);
82
+ });
83
+
84
+ it('is shown when the session fails to load', () => {
85
+ harness.push({ loaded: false, session: null, error: new Error('Bad Gateway') });
86
+
87
+ expect(errorPage()?.textContent).toBe('Bad Gateway');
88
+ });
89
+
90
+ it('is shown only once when the session fails to load repeatedly', () => {
91
+ harness.push({ loaded: false, session: null, error: new Error('Bad Gateway') });
92
+ harness.push({ loaded: false, session: null, error: new Error('Bad Gateway') });
93
+
94
+ expect(document.querySelectorAll('.omrs-app-error')).toHaveLength(1);
95
+ });
96
+
97
+ it('is taken down when a later session fetch succeeds', () => {
98
+ harness.push({ loaded: false, session: null, error: new Error('Bad Gateway') });
99
+ harness.push({ loaded: true, session: { authenticated: true } });
100
+
101
+ expect(errorPage()).toBeNull();
102
+ expect(harness.listeners.size).toBe(0);
103
+ });
104
+
105
+ it('is not shown when the session loads first', () => {
106
+ harness.push({ loaded: true, session: { authenticated: true } });
107
+
108
+ expect(errorPage()).toBeNull();
109
+ expect(harness.listeners.size).toBe(0);
110
+ });
111
+ });
package/src/run.ts CHANGED
@@ -8,6 +8,7 @@ import {
8
8
  getConfig,
9
9
  getCoreTranslation,
10
10
  getCurrentRouteMap,
11
+ getSessionStore,
11
12
  integrateBreakpoints,
12
13
  interpolateUrl,
13
14
  type OpenmrsRoutes,
@@ -131,7 +132,25 @@ function handleInitFailure(e: Error) {
131
132
  renderFatalErrorPage(e);
132
133
  }
133
134
 
134
- function renderFatalErrorPage(e?: Error) {
135
+ /**
136
+ * No app can render without a session, so a session fetch that fails before any session has loaded
137
+ * gets the same error page as a failed startup. Reading the session store retries the fetch, so the
138
+ * page is taken down again if a later fetch succeeds, e.g. once a backend that was starting up is ready.
139
+ */
140
+ function showErrorPageOnSessionFailure() {
141
+ let removeErrorPage: (() => void) | undefined;
142
+ const unsubscribe = getSessionStore().subscribe((state) => {
143
+ if (state.loaded) {
144
+ unsubscribe();
145
+ removeErrorPage?.();
146
+ } else if (state.error && !removeErrorPage) {
147
+ removeErrorPage = renderFatalErrorPage(state.error);
148
+ }
149
+ });
150
+ }
151
+
152
+ /** Renders the fatal error page and returns a function that removes it. */
153
+ function renderFatalErrorPage(e?: Error): (() => void) | undefined {
135
154
  const template = document.querySelector<HTMLTemplateElement>('#app-error');
136
155
 
137
156
  if (template) {
@@ -156,7 +175,9 @@ function renderFatalErrorPage(e?: Error) {
156
175
  }
157
176
  }
158
177
 
178
+ const nodes = Array.from(fragment.childNodes);
159
179
  document.body.appendChild(fragment);
180
+ return () => nodes.forEach((node) => node.remove());
160
181
  }
161
182
  }
162
183
 
@@ -251,6 +272,7 @@ export function run(configUrls: Array<string>) {
251
272
  subscribeToastShown(showToast);
252
273
  subscribeSnackbarShown(showSnackbar);
253
274
  setupApiModule();
275
+ showErrorPageOnSessionFailure();
254
276
  setupHistory();
255
277
  registerCoreExtensions();
256
278
  setupCoreConfig();