@openmrs/esm-app-shell 10.0.1-pre.5738 → 10.0.1-pre.5745

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.
@@ -729,7 +729,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
729
729
  },
730
730
  "./src/locale.ts"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
731
731
  "use strict";
732
- eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n setupI18n: () => (setupI18n)\n});\n/* import */ var i18next__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/i18next/i18next\");\n/* import */ var i18next__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(i18next__rspack_import_0);\n/* import */ var i18next_browser_languagedetector__rspack_import_1 = __webpack_require__(\"../../../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js\");\n/* import */ var react_i18next__rspack_import_2 = __webpack_require__(\"webpack/sharing/consume/default/react-i18next/react-i18next\");\n/* import */ var react_i18next__rspack_import_2_default = /*#__PURE__*/__webpack_require__.n(react_i18next__rspack_import_2);\n/* import */ var lodash_es__rspack_import_5 = __webpack_require__(\"../../../node_modules/lodash-es/merge.js\");\n/* import */ var _openmrs_esm_framework_src_internal__rspack_import_3 = __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_3_default = /*#__PURE__*/__webpack_require__.n(_openmrs_esm_framework_src_internal__rspack_import_3);\n/* import */ var _language_detection__rspack_import_4 = __webpack_require__(\"./src/language-detection.ts\");\n\n\n\n\n\n\n(0,_openmrs_esm_framework_src_internal__rspack_import_3.registerTranslationNamespace)('core');\nfunction setupI18n() {\n const i18n = (i18next__rspack_import_0_default()) || i18next__rspack_import_0;\n Object.defineProperty(window, 'i18next', {\n value: i18n,\n writable: false,\n configurable: false\n });\n const languageChangeObserver = new MutationObserver(()=>{\n i18n.changeLanguage().catch((e)=>console.error('i18next failed to re-detect language', e));\n });\n languageChangeObserver.observe(document.documentElement, {\n attributeFilter: [\n 'lang'\n ],\n attributes: true\n });\n i18n.on('languageChanged', ()=>{\n document.documentElement.setAttribute('dir', i18n.dir());\n });\n return i18n.use(i18next_browser_languagedetector__rspack_import_1[\"default\"]).use({\n type: 'backend',\n init () {},\n read (language, namespace, callback) {\n if (namespace === 'translation') {\n callback(Error(\"can't handle translation namespace\"), null);\n } else if (namespace === undefined || language === undefined) {\n callback(Error(), null);\n } else if (namespace === 'core') {\n Promise.all([\n __webpack_require__(\"../../framework/esm-translations/translations lazy recursive ^\\\\.\\\\/.*\\\\.json$\")(`./${language}.json`),\n (0,_openmrs_esm_framework_src_internal__rspack_import_3.getTranslationOverrides)(namespace)\n ]).then(([json, [overrides]])=>{\n let translations = json?.default ?? {};\n if (language in overrides) {\n translations = (0,lodash_es__rspack_import_5[\"default\"])(translations, overrides[language]);\n }\n callback(null, translations);\n }).catch((err)=>{\n callback(err, null);\n });\n } else {\n const [ns, slotName, extensionId] = namespace.split('___');\n (0,_openmrs_esm_framework_src_internal__rspack_import_3.importDynamic)(ns).then((module)=>Promise.allSettled([\n getImportPromise(module, ns, language),\n (0,_openmrs_esm_framework_src_internal__rspack_import_3.getTranslationOverrides)(ns, slotName, extensionId)\n ])).then(([jsonResult, overridesResult])=>{\n // If importTranslation rejects (e.g., no translation file for this locale),\n // fall back to empty so config-provided overrides can still be applied.\n let translations = jsonResult.status === 'fulfilled' ? jsonResult.value ?? {} : {};\n const overrides = overridesResult.status === 'fulfilled' ? overridesResult.value : [];\n // if we have a slotName and extensionId, it means that we're only loading the namespace for that extension\n // in that slot, but we _also_ process the base translations for the namespace and any top-level config overrides\n // so here we also provide the translations for just the namespace before merging everything together\n if (slotName && extensionId) {\n if (overrides.length >= 1 && language in overrides[0]) {\n window.i18next.addResourceBundle(language, ns, (0,lodash_es__rspack_import_5[\"default\"])(translations, overrides[0][language]), true, false);\n } else {\n window.i18next.addResourceBundle(language, ns, translations, true, false);\n }\n }\n translations = (0,lodash_es__rspack_import_5[\"default\"])(translations, ...overrides.filter((o)=>language in o).map((o)=>o[language]));\n callback(null, translations);\n }).catch((err)=>{\n callback(err, null);\n });\n }\n }\n }).use(react_i18next__rspack_import_2.initReactI18next).init({\n detection: _language_detection__rspack_import_4.languageDetectionOptions,\n fallbackLng: 'en',\n nsSeparator: false\n });\n}\nfunction getImportPromise(module, namespace, language) {\n if (typeof module.importTranslation !== 'function') {\n throw Error(`Module ${namespace} does not export an importTranslation function`);\n }\n if (!language) {\n return Promise.resolve({});\n } else if (language.includes('-')) {\n language = language.replace('-', '_');\n }\n const importPromise = module.importTranslation(`./${language}.json`);\n if (!(importPromise instanceof Promise)) {\n throw Error(`Module ${namespace} exports an importTranslation function that does not return a promise. Did you forget to set require.context mode to 'lazy'?`);\n }\n return importPromise;\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvc2hlbGwvZXNtLWFwcC1zaGVsbC9zcmMvbG9jYWxlLnRzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uL3NyYy9sb2NhbGUudHM/NjI2NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMThuZXh0IGZyb20gJ2kxOG5leHQnO1xuaW1wb3J0IExhbmd1YWdlRGV0ZWN0b3IgZnJvbSAnaTE4bmV4dC1icm93c2VyLWxhbmd1YWdlZGV0ZWN0b3InO1xuaW1wb3J0IHsgaW5pdFJlYWN0STE4bmV4dCB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgZ2V0VHJhbnNsYXRpb25PdmVycmlkZXMsXG4gIGltcG9ydER5bmFtaWMsXG4gIHJlZ2lzdGVyVHJhbnNsYXRpb25OYW1lc3BhY2UsXG59IGZyb20gJ0BvcGVubXJzL2VzbS1mcmFtZXdvcmsvc3JjL2ludGVybmFsJztcbmltcG9ydCB7IGxhbmd1YWdlRGV0ZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4vbGFuZ3VhZ2UtZGV0ZWN0aW9uJztcblxucmVnaXN0ZXJUcmFuc2xhdGlvbk5hbWVzcGFjZSgnY29yZScpO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBJMThuKCkge1xuICBjb25zdCBpMThuID0gaTE4bmV4dC5kZWZhdWx0IHx8IGkxOG5leHQ7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICdpMThuZXh0Jywge1xuICAgIHZhbHVlOiBpMThuLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICB9KTtcblxuICBjb25zdCBsYW5ndWFnZUNoYW5nZU9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuICAgIGkxOG4uY2hhbmdlTGFuZ3VhZ2UoKS5jYXRjaCgoZSkgPT4gY29uc29sZS5lcnJvcignaTE4bmV4dCBmYWlsZWQgdG8gcmUtZGV0ZWN0IGxhbmd1YWdlJywgZSkpO1xuICB9KTtcblxuICBsYW5ndWFnZUNoYW5nZU9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCB7XG4gICAgYXR0cmlidXRlRmlsdGVyOiBbJ2xhbmcnXSxcbiAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICB9KTtcblxuICBpMThuLm9uKCdsYW5ndWFnZUNoYW5nZWQnLCAoKSA9PiB7XG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGlyJywgaTE4bi5kaXIoKSk7XG4gIH0pO1xuXG4gIHJldHVybiBpMThuXG4gICAgLnVzZShMYW5ndWFnZURldGVjdG9yKVxuICAgIC51c2U8aTE4bmV4dC5CYWNrZW5kTW9kdWxlPih7XG4gICAgICB0eXBlOiAnYmFja2VuZCcsXG4gICAgICBpbml0KCkge30sXG4gICAgICByZWFkKGxhbmd1YWdlLCBuYW1lc3BhY2UsIGNhbGxiYWNrKSB7XG4gICAgICAgIGlmIChuYW1lc3BhY2UgPT09ICd0cmFuc2xhdGlvbicpIHtcbiAgICAgICAgICBjYWxsYmFjayhFcnJvcihcImNhbid0IGhhbmRsZSB0cmFuc2xhdGlvbiBuYW1lc3BhY2VcIiksIG51bGwpO1xuICAgICAgICB9IGVsc2UgaWYgKG5hbWVzcGFjZSA9PT0gdW5kZWZpbmVkIHx8IGxhbmd1YWdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjYWxsYmFjayhFcnJvcigpLCBudWxsKTtcbiAgICAgICAgfSBlbHNlIGlmIChuYW1lc3BhY2UgPT09ICdjb3JlJykge1xuICAgICAgICAgIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgIGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJsYXp5XCIgKi8gYEBvcGVubXJzL2VzbS10cmFuc2xhdGlvbnMvdHJhbnNsYXRpb25zLyR7bGFuZ3VhZ2V9Lmpzb25gKSxcbiAgICAgICAgICAgIGdldFRyYW5zbGF0aW9uT3ZlcnJpZGVzKG5hbWVzcGFjZSksXG4gICAgICAgICAgXSlcbiAgICAgICAgICAgIC50aGVuKChbanNvbiwgW292ZXJyaWRlc11dKSA9PiB7XG4gICAgICAgICAgICAgIGxldCB0cmFuc2xhdGlvbnMgPSBqc29uPy5kZWZhdWx0ID8/IHt9O1xuXG4gICAgICAgICAgICAgIGlmIChsYW5ndWFnZSBpbiBvdmVycmlkZXMpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnMgPSBtZXJnZSh0cmFuc2xhdGlvbnMsIG92ZXJyaWRlc1tsYW5ndWFnZV0pO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgdHJhbnNsYXRpb25zKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycjogRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgY2FsbGJhY2soZXJyLCBudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IFtucywgc2xvdE5hbWUsIGV4dGVuc2lvbklkXSA9IG5hbWVzcGFjZS5zcGxpdCgnX19fJyk7XG4gICAgICAgICAgaW1wb3J0RHluYW1pYyhucylcbiAgICAgICAgICAgIC50aGVuKChtb2R1bGUpID0+XG4gICAgICAgICAgICAgIFByb21pc2UuYWxsU2V0dGxlZChbXG4gICAgICAgICAgICAgICAgZ2V0SW1wb3J0UHJvbWlzZShtb2R1bGUsIG5zLCBsYW5ndWFnZSksXG4gICAgICAgICAgICAgICAgZ2V0VHJhbnNsYXRpb25PdmVycmlkZXMobnMsIHNsb3ROYW1lLCBleHRlbnNpb25JZCksXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnRoZW4oKFtqc29uUmVzdWx0LCBvdmVycmlkZXNSZXN1bHRdKSA9PiB7XG4gICAgICAgICAgICAgIC8vIElmIGltcG9ydFRyYW5zbGF0aW9uIHJlamVjdHMgKGUuZy4sIG5vIHRyYW5zbGF0aW9uIGZpbGUgZm9yIHRoaXMgbG9jYWxlKSxcbiAgICAgICAgICAgICAgLy8gZmFsbCBiYWNrIHRvIGVtcHR5IHNvIGNvbmZpZy1wcm92aWRlZCBvdmVycmlkZXMgY2FuIHN0aWxsIGJlIGFwcGxpZWQuXG4gICAgICAgICAgICAgIGxldCB0cmFuc2xhdGlvbnMgPSBqc29uUmVzdWx0LnN0YXR1cyA9PT0gJ2Z1bGZpbGxlZCcgPyAoanNvblJlc3VsdC52YWx1ZSA/PyB7fSkgOiB7fTtcbiAgICAgICAgICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gb3ZlcnJpZGVzUmVzdWx0LnN0YXR1cyA9PT0gJ2Z1bGZpbGxlZCcgPyBvdmVycmlkZXNSZXN1bHQudmFsdWUgOiBbXTtcblxuICAgICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIGEgc2xvdE5hbWUgYW5kIGV4dGVuc2lvbklkLCBpdCBtZWFucyB0aGF0IHdlJ3JlIG9ubHkgbG9hZGluZyB0aGUgbmFtZXNwYWNlIGZvciB0aGF0IGV4dGVuc2lvblxuICAgICAgICAgICAgICAvLyBpbiB0aGF0IHNsb3QsIGJ1dCB3ZSBfYWxzb18gcHJvY2VzcyB0aGUgYmFzZSB0cmFuc2xhdGlvbnMgZm9yIHRoZSBuYW1lc3BhY2UgYW5kIGFueSB0b3AtbGV2ZWwgY29uZmlnIG92ZXJyaWRlc1xuICAgICAgICAgICAgICAvLyBzbyBoZXJlIHdlIGFsc28gcHJvdmlkZSB0aGUgdHJhbnNsYXRpb25zIGZvciBqdXN0IHRoZSBuYW1lc3BhY2UgYmVmb3JlIG1lcmdpbmcgZXZlcnl0aGluZyB0b2dldGhlclxuICAgICAgICAgICAgICBpZiAoc2xvdE5hbWUgJiYgZXh0ZW5zaW9uSWQpIHtcbiAgICAgICAgICAgICAgICBpZiAob3ZlcnJpZGVzLmxlbmd0aCA+PSAxICYmIGxhbmd1YWdlIGluIG92ZXJyaWRlc1swXSkge1xuICAgICAgICAgICAgICAgICAgd2luZG93LmkxOG5leHQuYWRkUmVzb3VyY2VCdW5kbGUoXG4gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlLFxuICAgICAgICAgICAgICAgICAgICBucyxcbiAgICAgICAgICAgICAgICAgICAgbWVyZ2UodHJhbnNsYXRpb25zLCBvdmVycmlkZXNbMF1bbGFuZ3VhZ2VdKSxcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB3aW5kb3cuaTE4bmV4dC5hZGRSZXNvdXJjZUJ1bmRsZShsYW5ndWFnZSwgbnMsIHRyYW5zbGF0aW9ucywgdHJ1ZSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHRyYW5zbGF0aW9ucyA9IG1lcmdlKHRyYW5zbGF0aW9ucywgLi4ub3ZlcnJpZGVzLmZpbHRlcigobykgPT4gbGFuZ3VhZ2UgaW4gbykubWFwKChvKSA9PiBvW2xhbmd1YWdlXSkpO1xuXG4gICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIHRyYW5zbGF0aW9ucyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlcnI6IEVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIGNhbGxiYWNrKGVyciwgbnVsbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KVxuICAgIC51c2UoaW5pdFJlYWN0STE4bmV4dClcbiAgICAuaW5pdCh7XG4gICAgICBkZXRlY3Rpb246IGxhbmd1YWdlRGV0ZWN0aW9uT3B0aW9ucyxcbiAgICAgIGZhbGxiYWNrTG5nOiAnZW4nLFxuICAgICAgbnNTZXBhcmF0b3I6IGZhbHNlLFxuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRJbXBvcnRQcm9taXNlKFxuICBtb2R1bGU6IHtcbiAgICBpbXBvcnRUcmFuc2xhdGlvbjogKGxhbmd1YWdlOiBzdHJpbmcpID0+IFByb21pc2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG4gIH0sXG4gIG5hbWVzcGFjZTogc3RyaW5nLFxuICBsYW5ndWFnZTogc3RyaW5nLFxuKSB7XG4gIGlmICh0eXBlb2YgbW9kdWxlLmltcG9ydFRyYW5zbGF0aW9uICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgRXJyb3IoYE1vZHVsZSAke25hbWVzcGFjZX0gZG9lcyBub3QgZXhwb3J0IGFuIGltcG9ydFRyYW5zbGF0aW9uIGZ1bmN0aW9uYCk7XG4gIH1cblxuICBpZiAoIWxhbmd1YWdlKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gIH0gZWxzZSBpZiAobGFuZ3VhZ2UuaW5jbHVkZXMoJy0nKSkge1xuICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2UucmVwbGFjZSgnLScsICdfJyk7XG4gIH1cblxuICBjb25zdCBpbXBvcnRQcm9taXNlID0gbW9kdWxlLmltcG9ydFRyYW5zbGF0aW9uKGAuLyR7bGFuZ3VhZ2V9Lmpzb25gKTtcblxuICBpZiAoIShpbXBvcnRQcm9taXNlIGluc3RhbmNlb2YgUHJvbWlzZSkpIHtcbiAgICB0aHJvdyBFcnJvcihcbiAgICAgIGBNb2R1bGUgJHtuYW1lc3BhY2V9IGV4cG9ydHMgYW4gaW1wb3J0VHJhbnNsYXRpb24gZnVuY3Rpb24gdGhhdCBkb2VzIG5vdCByZXR1cm4gYSBwcm9taXNlLiBEaWQgeW91IGZvcmdldCB0byBzZXQgcmVxdWlyZS5jb250ZXh0IG1vZGUgdG8gJ2xhenknP2AsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBpbXBvcnRQcm9taXNlO1xufVxuIl0sIm5hbWVzIjpbImkxOG5leHQiLCJMYW5ndWFnZURldGVjdG9yIiwiaW5pdFJlYWN0STE4bmV4dCIsIm1lcmdlIiwiZ2V0VHJhbnNsYXRpb25PdmVycmlkZXMiLCJpbXBvcnREeW5hbWljIiwicmVnaXN0ZXJUcmFuc2xhdGlvbk5hbWVzcGFjZSIsImxhbmd1YWdlRGV0ZWN0aW9uT3B0aW9ucyIsInNldHVwSTE4biIsImkxOG4iLCJPYmplY3QiLCJ3aW5kb3ciLCJsYW5ndWFnZUNoYW5nZU9ic2VydmVyIiwiTXV0YXRpb25PYnNlcnZlciIsImUiLCJjb25zb2xlIiwiZG9jdW1lbnQiLCJsYW5ndWFnZSIsIm5hbWVzcGFjZSIsImNhbGxiYWNrIiwiRXJyb3IiLCJ1bmRlZmluZWQiLCJQcm9taXNlIiwianNvbiIsIm92ZXJyaWRlcyIsInRyYW5zbGF0aW9ucyIsImVyciIsIm5zIiwic2xvdE5hbWUiLCJleHRlbnNpb25JZCIsIm1vZHVsZSIsImdldEltcG9ydFByb21pc2UiLCJqc29uUmVzdWx0Iiwib3ZlcnJpZGVzUmVzdWx0IiwibyIsImltcG9ydFByb21pc2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBbUM7QUFDNkI7QUFDZjtBQUNmO0FBS1c7QUFDbUI7QUFFaEVNLHFGQUE0QkEsQ0FBQztBQUV0QixTQUFTRTtJQUNkLE1BQU1DLE9BQU9ULG9DQUFlLElBQUlBLHdCQUFPQTtJQUN2Q1UsT0FBTyxjQUFjLENBQUNDLFFBQVEsV0FBVztRQUN2QyxPQUFPRjtRQUNQLFVBQVU7UUFDVixjQUFjO0lBQ2hCO0lBRUEsTUFBTUcseUJBQXlCLElBQUlDLGlCQUFpQjtRQUNsREosS0FBSyxjQUFjLEdBQUcsS0FBSyxDQUFDLENBQUNLLElBQU1DLFFBQVEsS0FBSyxDQUFDLHdDQUF3Q0Q7SUFDM0Y7SUFFQUYsdUJBQXVCLE9BQU8sQ0FBQ0ksU0FBUyxlQUFlLEVBQUU7UUFDdkQsaUJBQWlCO1lBQUM7U0FBTztRQUN6QixZQUFZO0lBQ2Q7SUFFQVAsS0FBSyxFQUFFLENBQUMsbUJBQW1CO1FBQ3pCTyxTQUFTLGVBQWUsQ0FBQyxZQUFZLENBQUMsT0FBT1AsS0FBSyxHQUFHO0lBQ3ZEO0lBRUEsT0FBT0EsS0FDSixHQUFHLENBQUNSLDREQUFnQkEsRUFDcEIsR0FBRyxDQUF3QjtRQUMxQixNQUFNO1FBQ04sU0FBUTtRQUNSLE1BQUtnQixRQUFRLEVBQUVDLFNBQVMsRUFBRUMsUUFBUTtZQUNoQyxJQUFJRCxjQUFjLGVBQWU7Z0JBQy9CQyxTQUFTQyxNQUFNLHVDQUF1QztZQUN4RCxPQUFPLElBQUlGLGNBQWNHLGFBQWFKLGFBQWFJLFdBQVc7Z0JBQzVERixTQUFTQyxTQUFTO1lBQ3BCLE9BQU8sSUFBSUYsY0FBYyxRQUFRO2dCQUMvQkksUUFBUSxHQUFHLENBQUM7b0JBQ1Ysc0dBQWlDLEdBQXdDLEVBQUVMLFNBQVMsTUFBTSxDQUFDO29CQUMzRmIsZ0ZBQXVCQSxDQUFDYztpQkFDekIsRUFDRSxJQUFJLENBQUMsQ0FBQyxDQUFDSyxNQUFNLENBQUNDLFVBQVUsQ0FBQztvQkFDeEIsSUFBSUMsZUFBZUYsTUFBTSxXQUFXLENBQUM7b0JBRXJDLElBQUlOLFlBQVlPLFdBQVc7d0JBQ3pCQyxlQUFldEIseUNBQUtBLENBQUNzQixjQUFjRCxTQUFTLENBQUNQLFNBQVM7b0JBQ3hEO29CQUVBRSxTQUFTLE1BQU1NO2dCQUNqQixHQUNDLEtBQUssQ0FBQyxDQUFDQztvQkFDTlAsU0FBU08sS0FBSztnQkFDaEI7WUFDSixPQUFPO2dCQUNMLE1BQU0sQ0FBQ0MsSUFBSUMsVUFBVUMsWUFBWSxHQUFHWCxVQUFVLEtBQUssQ0FBQztnQkFDcERiLHNFQUFhQSxDQUFDc0IsSUFDWCxJQUFJLENBQUMsQ0FBQ0csU0FDTFIsUUFBUSxVQUFVLENBQUM7d0JBQ2pCUyxpQkFBaUJELFFBQVFILElBQUlWO3dCQUM3QmIsZ0ZBQXVCQSxDQUFDdUIsSUFBSUMsVUFBVUM7cUJBQ3ZDLEdBRUYsSUFBSSxDQUFDLENBQUMsQ0FBQ0csWUFBWUMsZ0JBQWdCO29CQUNsQyw0RUFBNEU7b0JBQzVFLHdFQUF3RTtvQkFDeEUsSUFBSVIsZUFBZU8sV0FBVyxNQUFNLEtBQUssY0FBZUEsV0FBVyxLQUFLLElBQUksQ0FBQyxJQUFLLENBQUM7b0JBQ25GLE1BQU1SLFlBQVlTLGdCQUFnQixNQUFNLEtBQUssY0FBY0EsZ0JBQWdCLEtBQUssR0FBRyxFQUFFO29CQUVyRiwyR0FBMkc7b0JBQzNHLGlIQUFpSDtvQkFDakgscUdBQXFHO29CQUNyRyxJQUFJTCxZQUFZQyxhQUFhO3dCQUMzQixJQUFJTCxVQUFVLE1BQU0sSUFBSSxLQUFLUCxZQUFZTyxTQUFTLENBQUMsRUFBRSxFQUFFOzRCQUNyRGIsT0FBTyxPQUFPLENBQUMsaUJBQWlCLENBQzlCTSxVQUNBVSxJQUNBeEIseUNBQUtBLENBQUNzQixjQUFjRCxTQUFTLENBQUMsRUFBRSxDQUFDUCxTQUFTLEdBQzFDLE1BQ0E7d0JBRUosT0FBTzs0QkFDTE4sT0FBTyxPQUFPLENBQUMsaUJBQWlCLENBQUNNLFVBQVVVLElBQUlGLGNBQWMsTUFBTTt3QkFDckU7b0JBQ0Y7b0JBRUFBLGVBQWV0Qix5Q0FBS0EsQ0FBQ3NCLGlCQUFpQkQsVUFBVSxNQUFNLENBQUMsQ0FBQ1UsSUFBTWpCLFlBQVlpQixHQUFHLEdBQUcsQ0FBQyxDQUFDQSxJQUFNQSxDQUFDLENBQUNqQixTQUFTO29CQUVuR0UsU0FBUyxNQUFNTTtnQkFDakIsR0FDQyxLQUFLLENBQUMsQ0FBQ0M7b0JBQ05QLFNBQVNPLEtBQUs7Z0JBQ2hCO1lBQ0o7UUFDRjtJQUNGLEdBQ0MsR0FBRyxDQUFDeEIsK0NBQWdCQSxFQUNwQixJQUFJLENBQUM7UUFDSixXQUFXSyw2REFBd0JBO1FBQ25DLGFBQWE7UUFDYixhQUFhO0lBQ2Y7QUFDSjtBQUVBLFNBQVN3QixpQkFDUEQsTUFFQyxFQUNEWixTQUFpQixFQUNqQkQsUUFBZ0I7SUFFaEIsSUFBSSxPQUFPYSxPQUFPLGlCQUFpQixLQUFLLFlBQVk7UUFDbEQsTUFBTVYsTUFBTSxDQUFDLE9BQU8sRUFBRUYsVUFBVSw4Q0FBOEMsQ0FBQztJQUNqRjtJQUVBLElBQUksQ0FBQ0QsVUFBVTtRQUNiLE9BQU9LLFFBQVEsT0FBTyxDQUFDLENBQUM7SUFDMUIsT0FBTyxJQUFJTCxTQUFTLFFBQVEsQ0FBQyxNQUFNO1FBQ2pDQSxXQUFXQSxTQUFTLE9BQU8sQ0FBQyxLQUFLO0lBQ25DO0lBRUEsTUFBTWtCLGdCQUFnQkwsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsRUFBRWIsU0FBUyxLQUFLLENBQUM7SUFFbkUsSUFBSSxDQUFFa0IsQ0FBQUEseUJBQXlCYixPQUFNLEdBQUk7UUFDdkMsTUFBTUYsTUFDSixDQUFDLE9BQU8sRUFBRUYsVUFBVSw0SEFBNEgsQ0FBQztJQUVySjtJQUVBLE9BQU9pQjtBQUNUIn0=\n//# sourceURL=webpack-internal:///./src/locale.ts\n\n}");
732
+ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n setupI18n: () => (setupI18n)\n});\n/* import */ var i18next__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/i18next/i18next\");\n/* import */ var i18next__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(i18next__rspack_import_0);\n/* import */ var i18next_browser_languagedetector__rspack_import_1 = __webpack_require__(\"../../../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js\");\n/* import */ var react_i18next__rspack_import_2 = __webpack_require__(\"webpack/sharing/consume/default/react-i18next/react-i18next\");\n/* import */ var react_i18next__rspack_import_2_default = /*#__PURE__*/__webpack_require__.n(react_i18next__rspack_import_2);\n/* import */ var lodash_es__rspack_import_5 = __webpack_require__(\"../../../node_modules/lodash-es/merge.js\");\n/* import */ var _openmrs_esm_framework_src_internal__rspack_import_3 = __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_3_default = /*#__PURE__*/__webpack_require__.n(_openmrs_esm_framework_src_internal__rspack_import_3);\n/* import */ var _language_detection__rspack_import_4 = __webpack_require__(\"./src/language-detection.ts\");\n\n\n\n\n\n\n(0,_openmrs_esm_framework_src_internal__rspack_import_3.registerTranslationNamespace)('core');\n/**\n * Extension namespaces that were read while their extension was not mounted, so they are missing its\n * translation overrides, with the languages that were read. See {@link applyPendingExtensionOverrides}.\n */ const pendingExtensionOverrides = new Map();\nfunction setupI18n() {\n const i18n = (i18next__rspack_import_0_default()) || i18next__rspack_import_0;\n Object.defineProperty(window, 'i18next', {\n value: i18n,\n writable: false,\n configurable: false\n });\n const languageChangeObserver = new MutationObserver(()=>{\n i18n.changeLanguage().catch((e)=>console.error('i18next failed to re-detect language', e));\n });\n languageChangeObserver.observe(document.documentElement, {\n attributeFilter: [\n 'lang'\n ],\n attributes: true\n });\n i18n.on('languageChanged', ()=>{\n document.documentElement.setAttribute('dir', i18n.dir());\n });\n (0,_openmrs_esm_framework_src_internal__rspack_import_3.getExtensionsConfigStore)().subscribe(applyPendingExtensionOverrides);\n return i18n.use(i18next_browser_languagedetector__rspack_import_1[\"default\"]).use({\n type: 'backend',\n init () {},\n read (language, namespace, callback) {\n if (namespace === 'translation') {\n callback(Error(\"can't handle translation namespace\"), null);\n } else if (namespace === undefined || language === undefined) {\n callback(Error(), null);\n } else if (namespace === 'core') {\n Promise.all([\n __webpack_require__(\"../../framework/esm-translations/translations lazy recursive ^\\\\.\\\\/.*\\\\.json$\")(`./${language}.json`),\n (0,_openmrs_esm_framework_src_internal__rspack_import_3.getTranslationOverrides)(namespace)\n ]).then(([json, [overrides]])=>{\n let translations = json?.default ?? {};\n if (language in overrides) {\n translations = (0,lodash_es__rspack_import_5[\"default\"])(translations, overrides[language]);\n }\n callback(null, translations);\n }).catch((err)=>{\n callback(err, null);\n });\n } else {\n const [ns, slotName, extensionId] = namespace.split('___');\n let extensionMountedAtRead = true;\n (0,_openmrs_esm_framework_src_internal__rspack_import_3.importDynamic)(ns).then((module)=>{\n if (slotName && extensionId) {\n extensionMountedAtRead = (0,_openmrs_esm_framework_src_internal__rspack_import_3.getExtensionConfigFromStore)((0,_openmrs_esm_framework_src_internal__rspack_import_3.getExtensionsConfigStore)().getState(), slotName, extensionId).loaded;\n }\n return Promise.allSettled([\n getImportPromise(module, ns, language),\n (0,_openmrs_esm_framework_src_internal__rspack_import_3.getTranslationOverrides)(ns, slotName, extensionId)\n ]);\n }).then(([jsonResult, overridesResult])=>{\n // If importTranslation rejects (e.g., no translation file for this locale),\n // fall back to empty so config-provided overrides can still be applied.\n let translations = jsonResult.status === 'fulfilled' ? jsonResult.value ?? {} : {};\n const overrides = overridesResult.status === 'fulfilled' ? overridesResult.value : [];\n // if we have a slotName and extensionId, it means that we're only loading the namespace for that extension\n // in that slot, but we _also_ process the base translations for the namespace and any top-level config overrides\n // so here we also provide the translations for just the namespace before merging everything together\n if (slotName && extensionId) {\n if (overrides.length >= 1 && language in overrides[0]) {\n window.i18next.addResourceBundle(language, ns, (0,lodash_es__rspack_import_5[\"default\"])(translations, overrides[0][language]), true, false);\n } else {\n window.i18next.addResourceBundle(language, ns, translations, true, false);\n }\n }\n translations = (0,lodash_es__rspack_import_5[\"default\"])(translations, ...overrides.filter((o)=>language in o).map((o)=>o[language]));\n callback(null, translations);\n if (!extensionMountedAtRead) {\n const pending = pendingExtensionOverrides.get(namespace);\n if (pending) {\n pending.languages.add(language);\n } else {\n pendingExtensionOverrides.set(namespace, {\n slotName,\n extensionId,\n languages: new Set([\n language\n ])\n });\n }\n // The extension may have mounted while the namespace was being read.\n applyPendingExtensionOverrides((0,_openmrs_esm_framework_src_internal__rspack_import_3.getExtensionsConfigStore)().getState());\n }\n }).catch((err)=>{\n callback(err, null);\n });\n }\n }\n }).use(react_i18next__rspack_import_2.initReactI18next).init({\n detection: _language_detection__rspack_import_4.languageDetectionOptions,\n fallbackLng: 'en',\n nsSeparator: false\n });\n}\n/**\n * An extension's translation overrides only exist while it is mounted, but i18next reads a namespace\n * once per language and never again, e.g. when a language change re-reads the namespace of an\n * extension that has since unmounted. This merges the overrides into each pending namespace's loaded\n * bundles once its extension is mounted, which happens before it renders.\n */ function applyPendingExtensionOverrides(state) {\n if (pendingExtensionOverrides.size === 0) {\n return;\n }\n for (const [namespace, { slotName, extensionId, languages }] of pendingExtensionOverrides){\n const extensionConfig = (0,_openmrs_esm_framework_src_internal__rspack_import_3.getExtensionConfigFromStore)(state, slotName, extensionId);\n if (!extensionConfig.loaded || !extensionConfig.config) {\n continue;\n }\n const overrides = extensionConfig.config['Translation overrides'] ?? {};\n for (const language of languages){\n if (language in overrides) {\n window.i18next.addResourceBundle(language, namespace, overrides[language], true, true);\n }\n }\n pendingExtensionOverrides.delete(namespace);\n }\n}\nfunction getImportPromise(module, namespace, language) {\n if (typeof module.importTranslation !== 'function') {\n throw Error(`Module ${namespace} does not export an importTranslation function`);\n }\n if (!language) {\n return Promise.resolve({});\n } else if (language.includes('-')) {\n language = language.replace('-', '_');\n }\n const importPromise = module.importTranslation(`./${language}.json`);\n if (!(importPromise instanceof Promise)) {\n throw Error(`Module ${namespace} exports an importTranslation function that does not return a promise. Did you forget to set require.context mode to 'lazy'?`);\n }\n return importPromise;\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvc2hlbGwvZXNtLWFwcC1zaGVsbC9zcmMvbG9jYWxlLnRzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uL3NyYy9sb2NhbGUudHM/NjI2NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMThuZXh0IGZyb20gJ2kxOG5leHQnO1xuaW1wb3J0IExhbmd1YWdlRGV0ZWN0b3IgZnJvbSAnaTE4bmV4dC1icm93c2VyLWxhbmd1YWdlZGV0ZWN0b3InO1xuaW1wb3J0IHsgaW5pdFJlYWN0STE4bmV4dCB9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgdHlwZSBFeHRlbnNpb25zQ29uZmlnU3RvcmUsXG4gIGdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZSxcbiAgZ2V0RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLFxuICBnZXRUcmFuc2xhdGlvbk92ZXJyaWRlcyxcbiAgaW1wb3J0RHluYW1pYyxcbiAgcmVnaXN0ZXJUcmFuc2xhdGlvbk5hbWVzcGFjZSxcbn0gZnJvbSAnQG9wZW5tcnMvZXNtLWZyYW1ld29yay9zcmMvaW50ZXJuYWwnO1xuaW1wb3J0IHsgbGFuZ3VhZ2VEZXRlY3Rpb25PcHRpb25zIH0gZnJvbSAnLi9sYW5ndWFnZS1kZXRlY3Rpb24nO1xuXG5yZWdpc3RlclRyYW5zbGF0aW9uTmFtZXNwYWNlKCdjb3JlJyk7XG5cbi8qKlxuICogRXh0ZW5zaW9uIG5hbWVzcGFjZXMgdGhhdCB3ZXJlIHJlYWQgd2hpbGUgdGhlaXIgZXh0ZW5zaW9uIHdhcyBub3QgbW91bnRlZCwgc28gdGhleSBhcmUgbWlzc2luZyBpdHNcbiAqIHRyYW5zbGF0aW9uIG92ZXJyaWRlcywgd2l0aCB0aGUgbGFuZ3VhZ2VzIHRoYXQgd2VyZSByZWFkLiBTZWUge0BsaW5rIGFwcGx5UGVuZGluZ0V4dGVuc2lvbk92ZXJyaWRlc30uXG4gKi9cbmNvbnN0IHBlbmRpbmdFeHRlbnNpb25PdmVycmlkZXMgPSBuZXcgTWFwPHN0cmluZywgeyBzbG90TmFtZTogc3RyaW5nOyBleHRlbnNpb25JZDogc3RyaW5nOyBsYW5ndWFnZXM6IFNldDxzdHJpbmc+IH0+KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEkxOG4oKSB7XG4gIGNvbnN0IGkxOG4gPSBpMThuZXh0LmRlZmF1bHQgfHwgaTE4bmV4dDtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ2kxOG5leHQnLCB7XG4gICAgdmFsdWU6IGkxOG4sXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gIH0pO1xuXG4gIGNvbnN0IGxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgaTE4bi5jaGFuZ2VMYW5ndWFnZSgpLmNhdGNoKChlKSA9PiBjb25zb2xlLmVycm9yKCdpMThuZXh0IGZhaWxlZCB0byByZS1kZXRlY3QgbGFuZ3VhZ2UnLCBlKSk7XG4gIH0pO1xuXG4gIGxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHtcbiAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnbGFuZyddLFxuICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gIH0pO1xuXG4gIGkxOG4ub24oJ2xhbmd1YWdlQ2hhbmdlZCcsICgpID0+IHtcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2V0QXR0cmlidXRlKCdkaXInLCBpMThuLmRpcigpKTtcbiAgfSk7XG5cbiAgZ2V0RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlKCkuc3Vic2NyaWJlKGFwcGx5UGVuZGluZ0V4dGVuc2lvbk92ZXJyaWRlcyk7XG5cbiAgcmV0dXJuIGkxOG5cbiAgICAudXNlKExhbmd1YWdlRGV0ZWN0b3IpXG4gICAgLnVzZTxpMThuZXh0LkJhY2tlbmRNb2R1bGU+KHtcbiAgICAgIHR5cGU6ICdiYWNrZW5kJyxcbiAgICAgIGluaXQoKSB7fSxcbiAgICAgIHJlYWQobGFuZ3VhZ2UsIG5hbWVzcGFjZSwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKG5hbWVzcGFjZSA9PT0gJ3RyYW5zbGF0aW9uJykge1xuICAgICAgICAgIGNhbGxiYWNrKEVycm9yKFwiY2FuJ3QgaGFuZGxlIHRyYW5zbGF0aW9uIG5hbWVzcGFjZVwiKSwgbnVsbCk7XG4gICAgICAgIH0gZWxzZSBpZiAobmFtZXNwYWNlID09PSB1bmRlZmluZWQgfHwgbGFuZ3VhZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNhbGxiYWNrKEVycm9yKCksIG51bGwpO1xuICAgICAgICB9IGVsc2UgaWYgKG5hbWVzcGFjZSA9PT0gJ2NvcmUnKSB7XG4gICAgICAgICAgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImxhenlcIiAqLyBgQG9wZW5tcnMvZXNtLXRyYW5zbGF0aW9ucy90cmFuc2xhdGlvbnMvJHtsYW5ndWFnZX0uanNvbmApLFxuICAgICAgICAgICAgZ2V0VHJhbnNsYXRpb25PdmVycmlkZXMobmFtZXNwYWNlKSxcbiAgICAgICAgICBdKVxuICAgICAgICAgICAgLnRoZW4oKFtqc29uLCBbb3ZlcnJpZGVzXV0pID0+IHtcbiAgICAgICAgICAgICAgbGV0IHRyYW5zbGF0aW9ucyA9IGpzb24/LmRlZmF1bHQgPz8ge307XG5cbiAgICAgICAgICAgICAgaWYgKGxhbmd1YWdlIGluIG92ZXJyaWRlcykge1xuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9ucyA9IG1lcmdlKHRyYW5zbGF0aW9ucywgb3ZlcnJpZGVzW2xhbmd1YWdlXSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCB0cmFuc2xhdGlvbnMpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyOiBFcnJvcikgPT4ge1xuICAgICAgICAgICAgICBjYWxsYmFjayhlcnIsIG51bGwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgW25zLCBzbG90TmFtZSwgZXh0ZW5zaW9uSWRdID0gbmFtZXNwYWNlLnNwbGl0KCdfX18nKTtcbiAgICAgICAgICBsZXQgZXh0ZW5zaW9uTW91bnRlZEF0UmVhZCA9IHRydWU7XG4gICAgICAgICAgaW1wb3J0RHluYW1pYyhucylcbiAgICAgICAgICAgIC50aGVuKChtb2R1bGUpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHNsb3ROYW1lICYmIGV4dGVuc2lvbklkKSB7XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uTW91bnRlZEF0UmVhZCA9IGdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZShcbiAgICAgICAgICAgICAgICAgIGdldEV4dGVuc2lvbnNDb25maWdTdG9yZSgpLmdldFN0YXRlKCksXG4gICAgICAgICAgICAgICAgICBzbG90TmFtZSxcbiAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbklkLFxuICAgICAgICAgICAgICAgICkubG9hZGVkO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsU2V0dGxlZChbXG4gICAgICAgICAgICAgICAgZ2V0SW1wb3J0UHJvbWlzZShtb2R1bGUsIG5zLCBsYW5ndWFnZSksXG4gICAgICAgICAgICAgICAgZ2V0VHJhbnNsYXRpb25PdmVycmlkZXMobnMsIHNsb3ROYW1lLCBleHRlbnNpb25JZCksXG4gICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKChbanNvblJlc3VsdCwgb3ZlcnJpZGVzUmVzdWx0XSkgPT4ge1xuICAgICAgICAgICAgICAvLyBJZiBpbXBvcnRUcmFuc2xhdGlvbiByZWplY3RzIChlLmcuLCBubyB0cmFuc2xhdGlvbiBmaWxlIGZvciB0aGlzIGxvY2FsZSksXG4gICAgICAgICAgICAgIC8vIGZhbGwgYmFjayB0byBlbXB0eSBzbyBjb25maWctcHJvdmlkZWQgb3ZlcnJpZGVzIGNhbiBzdGlsbCBiZSBhcHBsaWVkLlxuICAgICAgICAgICAgICBsZXQgdHJhbnNsYXRpb25zID0ganNvblJlc3VsdC5zdGF0dXMgPT09ICdmdWxmaWxsZWQnID8gKGpzb25SZXN1bHQudmFsdWUgPz8ge30pIDoge307XG4gICAgICAgICAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IG92ZXJyaWRlc1Jlc3VsdC5zdGF0dXMgPT09ICdmdWxmaWxsZWQnID8gb3ZlcnJpZGVzUmVzdWx0LnZhbHVlIDogW107XG5cbiAgICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSBhIHNsb3ROYW1lIGFuZCBleHRlbnNpb25JZCwgaXQgbWVhbnMgdGhhdCB3ZSdyZSBvbmx5IGxvYWRpbmcgdGhlIG5hbWVzcGFjZSBmb3IgdGhhdCBleHRlbnNpb25cbiAgICAgICAgICAgICAgLy8gaW4gdGhhdCBzbG90LCBidXQgd2UgX2Fsc29fIHByb2Nlc3MgdGhlIGJhc2UgdHJhbnNsYXRpb25zIGZvciB0aGUgbmFtZXNwYWNlIGFuZCBhbnkgdG9wLWxldmVsIGNvbmZpZyBvdmVycmlkZXNcbiAgICAgICAgICAgICAgLy8gc28gaGVyZSB3ZSBhbHNvIHByb3ZpZGUgdGhlIHRyYW5zbGF0aW9ucyBmb3IganVzdCB0aGUgbmFtZXNwYWNlIGJlZm9yZSBtZXJnaW5nIGV2ZXJ5dGhpbmcgdG9nZXRoZXJcbiAgICAgICAgICAgICAgaWYgKHNsb3ROYW1lICYmIGV4dGVuc2lvbklkKSB7XG4gICAgICAgICAgICAgICAgaWYgKG92ZXJyaWRlcy5sZW5ndGggPj0gMSAmJiBsYW5ndWFnZSBpbiBvdmVycmlkZXNbMF0pIHtcbiAgICAgICAgICAgICAgICAgIHdpbmRvdy5pMThuZXh0LmFkZFJlc291cmNlQnVuZGxlKFxuICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgbnMsXG4gICAgICAgICAgICAgICAgICAgIG1lcmdlKHRyYW5zbGF0aW9ucywgb3ZlcnJpZGVzWzBdW2xhbmd1YWdlXSksXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgd2luZG93LmkxOG5leHQuYWRkUmVzb3VyY2VCdW5kbGUobGFuZ3VhZ2UsIG5zLCB0cmFuc2xhdGlvbnMsIHRydWUsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0cmFuc2xhdGlvbnMgPSBtZXJnZSh0cmFuc2xhdGlvbnMsIC4uLm92ZXJyaWRlcy5maWx0ZXIoKG8pID0+IGxhbmd1YWdlIGluIG8pLm1hcCgobykgPT4gb1tsYW5ndWFnZV0pKTtcblxuICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCB0cmFuc2xhdGlvbnMpO1xuXG4gICAgICAgICAgICAgIGlmICghZXh0ZW5zaW9uTW91bnRlZEF0UmVhZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBlbmRpbmcgPSBwZW5kaW5nRXh0ZW5zaW9uT3ZlcnJpZGVzLmdldChuYW1lc3BhY2UpO1xuICAgICAgICAgICAgICAgIGlmIChwZW5kaW5nKSB7XG4gICAgICAgICAgICAgICAgICBwZW5kaW5nLmxhbmd1YWdlcy5hZGQobGFuZ3VhZ2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBwZW5kaW5nRXh0ZW5zaW9uT3ZlcnJpZGVzLnNldChuYW1lc3BhY2UsIHsgc2xvdE5hbWUsIGV4dGVuc2lvbklkLCBsYW5ndWFnZXM6IG5ldyBTZXQoW2xhbmd1YWdlXSkgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gVGhlIGV4dGVuc2lvbiBtYXkgaGF2ZSBtb3VudGVkIHdoaWxlIHRoZSBuYW1lc3BhY2Ugd2FzIGJlaW5nIHJlYWQuXG4gICAgICAgICAgICAgICAgYXBwbHlQZW5kaW5nRXh0ZW5zaW9uT3ZlcnJpZGVzKGdldEV4dGVuc2lvbnNDb25maWdTdG9yZSgpLmdldFN0YXRlKCkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlcnI6IEVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIGNhbGxiYWNrKGVyciwgbnVsbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KVxuICAgIC51c2UoaW5pdFJlYWN0STE4bmV4dClcbiAgICAuaW5pdCh7XG4gICAgICBkZXRlY3Rpb246IGxhbmd1YWdlRGV0ZWN0aW9uT3B0aW9ucyxcbiAgICAgIGZhbGxiYWNrTG5nOiAnZW4nLFxuICAgICAgbnNTZXBhcmF0b3I6IGZhbHNlLFxuICAgIH0pO1xufVxuXG4vKipcbiAqIEFuIGV4dGVuc2lvbidzIHRyYW5zbGF0aW9uIG92ZXJyaWRlcyBvbmx5IGV4aXN0IHdoaWxlIGl0IGlzIG1vdW50ZWQsIGJ1dCBpMThuZXh0IHJlYWRzIGEgbmFtZXNwYWNlXG4gKiBvbmNlIHBlciBsYW5ndWFnZSBhbmQgbmV2ZXIgYWdhaW4sIGUuZy4gd2hlbiBhIGxhbmd1YWdlIGNoYW5nZSByZS1yZWFkcyB0aGUgbmFtZXNwYWNlIG9mIGFuXG4gKiBleHRlbnNpb24gdGhhdCBoYXMgc2luY2UgdW5tb3VudGVkLiBUaGlzIG1lcmdlcyB0aGUgb3ZlcnJpZGVzIGludG8gZWFjaCBwZW5kaW5nIG5hbWVzcGFjZSdzIGxvYWRlZFxuICogYnVuZGxlcyBvbmNlIGl0cyBleHRlbnNpb24gaXMgbW91bnRlZCwgd2hpY2ggaGFwcGVucyBiZWZvcmUgaXQgcmVuZGVycy5cbiAqL1xuZnVuY3Rpb24gYXBwbHlQZW5kaW5nRXh0ZW5zaW9uT3ZlcnJpZGVzKHN0YXRlOiBFeHRlbnNpb25zQ29uZmlnU3RvcmUpIHtcbiAgaWYgKHBlbmRpbmdFeHRlbnNpb25PdmVycmlkZXMuc2l6ZSA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGZvciAoY29uc3QgW25hbWVzcGFjZSwgeyBzbG90TmFtZSwgZXh0ZW5zaW9uSWQsIGxhbmd1YWdlcyB9XSBvZiBwZW5kaW5nRXh0ZW5zaW9uT3ZlcnJpZGVzKSB7XG4gICAgY29uc3QgZXh0ZW5zaW9uQ29uZmlnID0gZ2V0RXh0ZW5zaW9uQ29uZmlnRnJvbVN0b3JlKHN0YXRlLCBzbG90TmFtZSwgZXh0ZW5zaW9uSWQpO1xuICAgIGlmICghZXh0ZW5zaW9uQ29uZmlnLmxvYWRlZCB8fCAhZXh0ZW5zaW9uQ29uZmlnLmNvbmZpZykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3Qgb3ZlcnJpZGVzID0gKGV4dGVuc2lvbkNvbmZpZy5jb25maWdbJ1RyYW5zbGF0aW9uIG92ZXJyaWRlcyddID8/IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcblxuICAgIGZvciAoY29uc3QgbGFuZ3VhZ2Ugb2YgbGFuZ3VhZ2VzKSB7XG4gICAgICBpZiAobGFuZ3VhZ2UgaW4gb3ZlcnJpZGVzKSB7XG4gICAgICAgIHdpbmRvdy5pMThuZXh0LmFkZFJlc291cmNlQnVuZGxlKGxhbmd1YWdlLCBuYW1lc3BhY2UsIG92ZXJyaWRlc1tsYW5ndWFnZV0sIHRydWUsIHRydWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBlbmRpbmdFeHRlbnNpb25PdmVycmlkZXMuZGVsZXRlKG5hbWVzcGFjZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SW1wb3J0UHJvbWlzZShcbiAgbW9kdWxlOiB7XG4gICAgaW1wb3J0VHJhbnNsYXRpb246IChsYW5ndWFnZTogc3RyaW5nKSA9PiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+O1xuICB9LFxuICBuYW1lc3BhY2U6IHN0cmluZyxcbiAgbGFuZ3VhZ2U6IHN0cmluZyxcbikge1xuICBpZiAodHlwZW9mIG1vZHVsZS5pbXBvcnRUcmFuc2xhdGlvbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IEVycm9yKGBNb2R1bGUgJHtuYW1lc3BhY2V9IGRvZXMgbm90IGV4cG9ydCBhbiBpbXBvcnRUcmFuc2xhdGlvbiBmdW5jdGlvbmApO1xuICB9XG5cbiAgaWYgKCFsYW5ndWFnZSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICB9IGVsc2UgaWYgKGxhbmd1YWdlLmluY2x1ZGVzKCctJykpIHtcbiAgICBsYW5ndWFnZSA9IGxhbmd1YWdlLnJlcGxhY2UoJy0nLCAnXycpO1xuICB9XG5cbiAgY29uc3QgaW1wb3J0UHJvbWlzZSA9IG1vZHVsZS5pbXBvcnRUcmFuc2xhdGlvbihgLi8ke2xhbmd1YWdlfS5qc29uYCk7XG5cbiAgaWYgKCEoaW1wb3J0UHJvbWlzZSBpbnN0YW5jZW9mIFByb21pc2UpKSB7XG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgTW9kdWxlICR7bmFtZXNwYWNlfSBleHBvcnRzIGFuIGltcG9ydFRyYW5zbGF0aW9uIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3QgcmV0dXJuIGEgcHJvbWlzZS4gRGlkIHlvdSBmb3JnZXQgdG8gc2V0IHJlcXVpcmUuY29udGV4dCBtb2RlIHRvICdsYXp5Jz9gLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gaW1wb3J0UHJvbWlzZTtcbn1cbiJdLCJuYW1lcyI6WyJpMThuZXh0IiwiTGFuZ3VhZ2VEZXRlY3RvciIsImluaXRSZWFjdEkxOG5leHQiLCJtZXJnZSIsImdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZSIsImdldEV4dGVuc2lvbnNDb25maWdTdG9yZSIsImdldFRyYW5zbGF0aW9uT3ZlcnJpZGVzIiwiaW1wb3J0RHluYW1pYyIsInJlZ2lzdGVyVHJhbnNsYXRpb25OYW1lc3BhY2UiLCJsYW5ndWFnZURldGVjdGlvbk9wdGlvbnMiLCJwZW5kaW5nRXh0ZW5zaW9uT3ZlcnJpZGVzIiwiTWFwIiwic2V0dXBJMThuIiwiaTE4biIsIk9iamVjdCIsIndpbmRvdyIsImxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVyIiwiZSIsImNvbnNvbGUiLCJkb2N1bWVudCIsImFwcGx5UGVuZGluZ0V4dGVuc2lvbk92ZXJyaWRlcyIsImxhbmd1YWdlIiwibmFtZXNwYWNlIiwiY2FsbGJhY2siLCJFcnJvciIsInVuZGVmaW5lZCIsIlByb21pc2UiLCJqc29uIiwib3ZlcnJpZGVzIiwidHJhbnNsYXRpb25zIiwiZXJyIiwibnMiLCJzbG90TmFtZSIsImV4dGVuc2lvbklkIiwiZXh0ZW5zaW9uTW91bnRlZEF0UmVhZCIsIm1vZHVsZSIsImdldEltcG9ydFByb21pc2UiLCJqc29uUmVzdWx0Iiwib3ZlcnJpZGVzUmVzdWx0IiwibyIsInBlbmRpbmciLCJTZXQiLCJzdGF0ZSIsImxhbmd1YWdlcyIsImV4dGVuc2lvbkNvbmZpZyIsImltcG9ydFByb21pc2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBbUM7QUFDNkI7QUFDZjtBQUNmO0FBUVc7QUFDbUI7QUFFaEVRLHFGQUE0QkEsQ0FBQztBQUU3Qjs7O0NBR0MsR0FDRCxNQUFNRSw0QkFBNEIsSUFBSUM7QUFFL0IsU0FBU0M7SUFDZCxNQUFNQyxPQUFPYixvQ0FBZSxJQUFJQSx3QkFBT0E7SUFDdkNjLE9BQU8sY0FBYyxDQUFDQyxRQUFRLFdBQVc7UUFDdkMsT0FBT0Y7UUFDUCxVQUFVO1FBQ1YsY0FBYztJQUNoQjtJQUVBLE1BQU1HLHlCQUF5QixJQUFJQyxpQkFBaUI7UUFDbERKLEtBQUssY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDSyxJQUFNQyxRQUFRLEtBQUssQ0FBQyx3Q0FBd0NEO0lBQzNGO0lBRUFGLHVCQUF1QixPQUFPLENBQUNJLFNBQVMsZUFBZSxFQUFFO1FBQ3ZELGlCQUFpQjtZQUFDO1NBQU87UUFDekIsWUFBWTtJQUNkO0lBRUFQLEtBQUssRUFBRSxDQUFDLG1CQUFtQjtRQUN6Qk8sU0FBUyxlQUFlLENB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\n//# sourceURL=webpack-internal:///./src/locale.ts\n\n}");
733
733
 
734
734
  },
735
735
  "./src/optionaldeps.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/055442ffb33ac9cf.js" as="script"><link rel="preload" href="/openmrs/spa/4afcde165187cf34.js" as="script"><link rel="preload" href="/openmrs/spa/676ef589eb5f276a.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/8f3676e9cd4dfc66.js" as="script"><link rel="preload" href="/openmrs/spa/4afcde165187cf34.js" as="script"><link rel="preload" href="/openmrs/spa/a8eb6366799b605a.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.5738-20261005\" ?? 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.5745-20261006\" ?? 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.5738\" : 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.5745\" : 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.5738\" : 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.5745\" : 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.5738\" : 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.5745\" : 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": "055442ffb33ac9cf","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": "6bc40354dd6636be","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": "676ef589eb5f276a",}[chunkId] + ".js"
658
+ return "" + {"default-framework_esm-framework_dist_internal_js": "8f3676e9cd4dfc66","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": "6bc40354dd6636be","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": "a8eb6366799b605a",}[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.5738", 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.5745", 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.5738",
3
+ "version": "10.0.1-pre.5745",
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.5738",
40
- "@openmrs/esm-styleguide": "10.0.1-pre.5738",
39
+ "@openmrs/esm-framework": "10.0.1-pre.5745",
40
+ "@openmrs/esm-styleguide": "10.0.1-pre.5745",
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,53 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+
3
+ type ExtensionsConfigState = { configs: Record<string, Record<string, { loaded: boolean; config: any }>> };
4
+
5
+ const extensionsConfigStore = vi.hoisted(() => {
6
+ let state: ExtensionsConfigState = { configs: {} };
7
+ const listeners = new Set<(state: ExtensionsConfigState) => void>();
8
+
9
+ return {
10
+ getState: () => state,
11
+ setState(next: ExtensionsConfigState) {
12
+ state = next;
13
+ listeners.forEach((listener) => listener(state));
14
+ },
15
+ subscribe(listener: (state: ExtensionsConfigState) => void) {
16
+ listeners.add(listener);
17
+ return () => listeners.delete(listener);
18
+ },
19
+ };
20
+ });
21
+
22
+ vi.mock('@openmrs/esm-framework/src/internal', () => ({
23
+ registerTranslationNamespace: () => {},
24
+ importDynamic: () => Promise.resolve({ importTranslation: () => Promise.resolve({ hello: 'Bonjour' }) }),
25
+ getExtensionsConfigStore: () => extensionsConfigStore,
26
+ getExtensionConfigFromStore: (state: ExtensionsConfigState, slotName: string, extensionId: string) =>
27
+ state.configs[slotName]?.[extensionId] ?? { loaded: false, config: null },
28
+ getTranslationOverrides: (_ns: string, slotName?: string) => Promise.resolve(slotName ? [{}, {}] : [{}]),
29
+ }));
30
+
31
+ const namespace = 'ext-module___barSlot___fooExt';
32
+
33
+ describe('setupI18n', () => {
34
+ it('applies an extension’s overrides when it mounts after its namespace was read', async () => {
35
+ document.documentElement.setAttribute('lang', 'fr');
36
+
37
+ const { setupI18n } = await import('./locale');
38
+ await setupI18n();
39
+ await window.i18next.loadNamespaces(namespace);
40
+
41
+ expect(window.i18next.getResource('fr', namespace, 'hello')).toBe('Bonjour');
42
+
43
+ extensionsConfigStore.setState({
44
+ configs: {
45
+ barSlot: {
46
+ fooExt: { loaded: true, config: { 'Translation overrides': { fr: { hello: 'Salut' } } } },
47
+ },
48
+ },
49
+ });
50
+
51
+ expect(window.i18next.getResource('fr', namespace, 'hello')).toBe('Salut');
52
+ });
53
+ });
package/src/locale.ts CHANGED
@@ -3,6 +3,9 @@ import LanguageDetector from 'i18next-browser-languagedetector';
3
3
  import { initReactI18next } from 'react-i18next';
4
4
  import { merge } from 'lodash-es';
5
5
  import {
6
+ type ExtensionsConfigStore,
7
+ getExtensionConfigFromStore,
8
+ getExtensionsConfigStore,
6
9
  getTranslationOverrides,
7
10
  importDynamic,
8
11
  registerTranslationNamespace,
@@ -11,6 +14,12 @@ import { languageDetectionOptions } from './language-detection';
11
14
 
12
15
  registerTranslationNamespace('core');
13
16
 
17
+ /**
18
+ * Extension namespaces that were read while their extension was not mounted, so they are missing its
19
+ * translation overrides, with the languages that were read. See {@link applyPendingExtensionOverrides}.
20
+ */
21
+ const pendingExtensionOverrides = new Map<string, { slotName: string; extensionId: string; languages: Set<string> }>();
22
+
14
23
  export function setupI18n() {
15
24
  const i18n = i18next.default || i18next;
16
25
  Object.defineProperty(window, 'i18next', {
@@ -32,6 +41,8 @@ export function setupI18n() {
32
41
  document.documentElement.setAttribute('dir', i18n.dir());
33
42
  });
34
43
 
44
+ getExtensionsConfigStore().subscribe(applyPendingExtensionOverrides);
45
+
35
46
  return i18n
36
47
  .use(LanguageDetector)
37
48
  .use<i18next.BackendModule>({
@@ -61,13 +72,22 @@ export function setupI18n() {
61
72
  });
62
73
  } else {
63
74
  const [ns, slotName, extensionId] = namespace.split('___');
75
+ let extensionMountedAtRead = true;
64
76
  importDynamic(ns)
65
- .then((module) =>
66
- Promise.allSettled([
77
+ .then((module) => {
78
+ if (slotName && extensionId) {
79
+ extensionMountedAtRead = getExtensionConfigFromStore(
80
+ getExtensionsConfigStore().getState(),
81
+ slotName,
82
+ extensionId,
83
+ ).loaded;
84
+ }
85
+
86
+ return Promise.allSettled([
67
87
  getImportPromise(module, ns, language),
68
88
  getTranslationOverrides(ns, slotName, extensionId),
69
- ]),
70
- )
89
+ ]);
90
+ })
71
91
  .then(([jsonResult, overridesResult]) => {
72
92
  // If importTranslation rejects (e.g., no translation file for this locale),
73
93
  // fall back to empty so config-provided overrides can still be applied.
@@ -94,6 +114,18 @@ export function setupI18n() {
94
114
  translations = merge(translations, ...overrides.filter((o) => language in o).map((o) => o[language]));
95
115
 
96
116
  callback(null, translations);
117
+
118
+ if (!extensionMountedAtRead) {
119
+ const pending = pendingExtensionOverrides.get(namespace);
120
+ if (pending) {
121
+ pending.languages.add(language);
122
+ } else {
123
+ pendingExtensionOverrides.set(namespace, { slotName, extensionId, languages: new Set([language]) });
124
+ }
125
+
126
+ // The extension may have mounted while the namespace was being read.
127
+ applyPendingExtensionOverrides(getExtensionsConfigStore().getState());
128
+ }
97
129
  })
98
130
  .catch((err: Error) => {
99
131
  callback(err, null);
@@ -109,6 +141,35 @@ export function setupI18n() {
109
141
  });
110
142
  }
111
143
 
144
+ /**
145
+ * An extension's translation overrides only exist while it is mounted, but i18next reads a namespace
146
+ * once per language and never again, e.g. when a language change re-reads the namespace of an
147
+ * extension that has since unmounted. This merges the overrides into each pending namespace's loaded
148
+ * bundles once its extension is mounted, which happens before it renders.
149
+ */
150
+ function applyPendingExtensionOverrides(state: ExtensionsConfigStore) {
151
+ if (pendingExtensionOverrides.size === 0) {
152
+ return;
153
+ }
154
+
155
+ for (const [namespace, { slotName, extensionId, languages }] of pendingExtensionOverrides) {
156
+ const extensionConfig = getExtensionConfigFromStore(state, slotName, extensionId);
157
+ if (!extensionConfig.loaded || !extensionConfig.config) {
158
+ continue;
159
+ }
160
+
161
+ const overrides = (extensionConfig.config['Translation overrides'] ?? {}) as Record<string, Record<string, string>>;
162
+
163
+ for (const language of languages) {
164
+ if (language in overrides) {
165
+ window.i18next.addResourceBundle(language, namespace, overrides[language], true, true);
166
+ }
167
+ }
168
+
169
+ pendingExtensionOverrides.delete(namespace);
170
+ }
171
+ }
172
+
112
173
  function getImportPromise(
113
174
  module: {
114
175
  importTranslation: (language: string) => Promise<Record<string, string>>;