@openmrs/esm-app-shell 10.0.1-pre.5240 → 10.0.1-pre.5252
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +3 -3
- package/dist/5670764bda3f540f.js +1 -0
- package/dist/5670764bda3f540f.js.map +1 -0
- package/dist/index.html +1 -1
- package/dist/{openmrs.34f536fc33d5a81b.js → openmrs.8cc427b94b8387a8.js} +4 -4
- package/dist/{openmrs.34f536fc33d5a81b.js.map → openmrs.8cc427b94b8387a8.js.map} +1 -1
- package/lib/{68c49afd03fc3ec3.js → d7fe6274b73bb046.js} +5 -5
- package/lib/openmrs.js +6 -6
- package/package.json +3 -3
- package/dist/2813e2b87d0a8209.js +0 -1
- package/dist/2813e2b87d0a8209.js.map +0 -1
|
@@ -5620,7 +5620,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
5620
5620
|
},
|
|
5621
5621
|
"../../framework/esm-dynamic-loading/dist/import-maps.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
5622
5622
|
"use strict";
|
|
5623
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n addImportMapOverride: () => (addImportMapOverride),\n enableImportMapOverride: () => (enableImportMapOverride),\n getCurrentPageMap: () => (getCurrentPageMap),\n getImportMapDefaultMap: () => (getImportMapDefaultMap),\n getImportMapDisabledOverrides: () => (getImportMapDisabledOverrides),\n getImportMapNextPageMap: () => (getImportMapNextPageMap),\n getImportMapOverrideMap: () => (getImportMapOverrideMap),\n isImportMapOverrideDisabled: () => (isImportMapOverrideDisabled),\n removeImportMapOverride: () => (removeImportMapOverride),\n resetImportMapOverrides: () => (resetImportMapOverrides),\n setupImportMapOverrides: () => (setupImportMapOverrides)\n});\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction _ts_generator(thisArg, body) {\n var f, y, t, _ = {\n label: 0,\n sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n }, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype), d = Object.defineProperty;\n return d(g, \"next\", {\n value: verb(0)\n }), d(g, \"throw\", {\n value: verb(1)\n }), d(g, \"return\", {\n value: verb(2)\n }), typeof Symbol === \"function\" && d(g, Symbol.iterator, {\n value: function() {\n return this;\n }\n }), g;\n function verb(n) {\n return function(v) {\n return step([\n n,\n v\n ]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while(g && (g = 0, op[0] && (_ = 0)), _)try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [\n op[0] & 2,\n t.value\n ];\n switch(op[0]){\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [\n 0\n ];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [\n 6,\n e\n ];\n y = 0;\n } finally{\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\n/** @module @category Import Map */ var OVERRIDE_PREFIX = 'import-map-override:';\nvar DISABLED_KEY = 'import-map-overrides-disabled';\nvar CHANGE_EVENT = 'import-map-overrides:change';\n// Set by setupImportMapOverrides(); controls whether override functionality is active.\nvar devMode = false;\n// Snapshot of overrides at setup time (matches import-map-overrides library behavior:\n// getCurrentPageMap returns the overrides as they were when the page loaded).\nvar initialOverrideSnapshot = null;\n/**\n * Reads all `<script type=\"systemjs-importmap\">` tags from the DOM and merges\n * them into a single {@link ImportMap}. Tags with a `src` attribute are fetched;\n * inline tags have their `textContent` parsed as JSON.\n */ function readBaseMap() {\n return _async_to_generator(function() {\n var scripts, maps, i, script, response, _, e;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n scripts = document.querySelectorAll('script[type=\"systemjs-importmap\"]');\n maps = [];\n i = 0;\n _state.label = 1;\n case 1:\n if (!(i < scripts.length)) return [\n 3,\n 9\n ];\n script = scripts[i];\n _state.label = 2;\n case 2:\n _state.trys.push([\n 2,\n 7,\n ,\n 8\n ]);\n if (!script.src) return [\n 3,\n 5\n ];\n return [\n 4,\n fetch(script.src)\n ];\n case 3:\n response = _state.sent();\n _ = maps.push;\n return [\n 4,\n response.json()\n ];\n case 4:\n _.apply(maps, [\n _state.sent()\n ]);\n return [\n 3,\n 6\n ];\n case 5:\n if (script.textContent) {\n maps.push(JSON.parse(script.textContent));\n }\n _state.label = 6;\n case 6:\n return [\n 3,\n 8\n ];\n case 7:\n e = _state.sent();\n console.warn(\"[import-maps] Failed to parse import map from script tag at index \".concat(i), e);\n return [\n 3,\n 8\n ];\n case 8:\n i++;\n return [\n 3,\n 1\n ];\n case 9:\n return [\n 2,\n mergeMaps(maps)\n ];\n }\n });\n })();\n}\nfunction mergeMaps(maps) {\n var merged = {\n imports: {}\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = maps[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var map = _step.value;\n if (map === null || map === void 0 ? void 0 : map.imports) {\n Object.assign(merged.imports, map.imports);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return merged;\n}\n/** Returns all `import-map-override:*` entries from localStorage as an {@link ImportMap}. */ function readOverrideMap() {\n var imports = {};\n try {\n var disabled = getImportMapDisabledOverrides();\n for(var i = 0; i < localStorage.length; i++){\n var key = localStorage.key(i);\n if (key === null || key === void 0 ? void 0 : key.startsWith(OVERRIDE_PREFIX)) {\n var moduleName = key.slice(OVERRIDE_PREFIX.length);\n if (!disabled.includes(moduleName)) {\n var url = localStorage.getItem(key);\n if (url) {\n imports[moduleName] = url;\n }\n }\n }\n }\n } catch (e) {\n console.warn('[import-maps] Failed to read import-map overrides from localStorage', e);\n }\n return {\n imports: imports\n };\n}\n/**\n * Returns the import map for the current page. In dev mode, this merges\n * the base map with the override snapshot captured at page load.\n */ function getCurrentPageMap() {\n return _async_to_generator(function() {\n var base, overrides;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n return [\n 4,\n readBaseMap()\n ];\n case 1:\n base = _state.sent();\n if (!devMode) {\n return [\n 2,\n base\n ];\n }\n overrides = initialOverrideSnapshot !== null && initialOverrideSnapshot !== void 0 ? initialOverrideSnapshot : readOverrideMap();\n return [\n 2,\n mergeMaps([\n base,\n overrides\n ])\n ];\n }\n });\n })();\n}\n/**\n * Returns the base import map from the DOM without any overrides applied.\n */ function getImportMapDefaultMap() {\n return _async_to_generator(function() {\n return _ts_generator(this, function(_state) {\n return [\n 2,\n readBaseMap()\n ];\n });\n })();\n}\n/**\n * Returns what the import map will look like on the next page load, including\n * any overrides that have been added/removed since the page loaded.\n * In production, this is the same as the base map.\n */ function getImportMapNextPageMap() {\n return _async_to_generator(function() {\n var base;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n if (!devMode) {\n return [\n 2,\n readBaseMap()\n ];\n }\n return [\n 4,\n readBaseMap()\n ];\n case 1:\n base = _state.sent();\n return [\n 2,\n mergeMaps([\n base,\n readOverrideMap()\n ])\n ];\n }\n });\n })();\n}\n/**\n * Returns the current override map. In production, returns empty imports.\n * @param includeDisabled If true, includes disabled overrides.\n */ function getImportMapOverrideMap(includeDisabled) {\n if (!devMode) {\n return {\n imports: {}\n };\n }\n if (includeDisabled) {\n var imports = {};\n for(var i = 0; i < localStorage.length; i++){\n var key = localStorage.key(i);\n if (key === null || key === void 0 ? void 0 : key.startsWith(OVERRIDE_PREFIX)) {\n var url = localStorage.getItem(key);\n if (url) {\n imports[key.slice(OVERRIDE_PREFIX.length)] = url;\n }\n }\n }\n return {\n imports: imports\n };\n }\n return readOverrideMap();\n}\n/**\n * Returns the list of module names whose overrides are disabled.\n * In production, returns an empty array.\n */ function getImportMapDisabledOverrides() {\n if (!devMode) {\n return [];\n }\n try {\n var raw = localStorage.getItem(DISABLED_KEY);\n if (raw) {\n var parsed = JSON.parse(raw);\n if (Array.isArray(parsed)) {\n return parsed;\n }\n }\n } catch (unused) {\n // ignore malformed data\n }\n return [];\n}\n/**\n * Returns whether the given module's override is disabled.\n * In production, returns false.\n */ function isImportMapOverrideDisabled(moduleName) {\n if (!devMode) {\n return false;\n }\n return getImportMapDisabledOverrides().includes(moduleName);\n}\n/**\n * Adds an import map override. In production, this is a no-op.\n */ function addImportMapOverride(name, url) {\n if (!devMode) {\n console.warn('[Security] Import map overrides are disabled in production mode.');\n return;\n }\n try {\n localStorage.setItem(OVERRIDE_PREFIX + name, url);\n window.dispatchEvent(new CustomEvent(CHANGE_EVENT));\n } catch (e) {\n console.warn('[import-maps] Failed to write import-map override to localStorage', e);\n }\n}\n/**\n * Removes an import map override. In production, this is a no-op.\n */ function removeImportMapOverride(name) {\n if (!devMode) {\n console.warn('[Security] Import map overrides are disabled in production mode.');\n return;\n }\n try {\n localStorage.removeItem(OVERRIDE_PREFIX + name);\n var disabled = getImportMapDisabledOverrides().filter(function(n) {\n return n !== name;\n });\n if (disabled.length > 0) {\n localStorage.setItem(DISABLED_KEY, JSON.stringify(disabled));\n } else {\n localStorage.removeItem(DISABLED_KEY);\n }\n window.dispatchEvent(new CustomEvent(CHANGE_EVENT));\n } catch (e) {\n console.warn('[import-maps] Failed to update import-map overrides in localStorage', e);\n }\n}\n/**\n * Clears all import map overrides. In production, this is a no-op.\n */ function resetImportMapOverrides() {\n if (!devMode) {\n console.warn('[Security] Import map overrides are disabled in production mode.');\n return;\n }\n try {\n var keysToRemove = [];\n for(var i = 0; i < localStorage.length; i++){\n var key = localStorage.key(i);\n if (key === null || key === void 0 ? void 0 : key.startsWith(OVERRIDE_PREFIX)) {\n keysToRemove.push(key);\n }\n }\n keysToRemove.forEach(function(key) {\n return localStorage.removeItem(key);\n });\n localStorage.removeItem(DISABLED_KEY);\n window.dispatchEvent(new CustomEvent(CHANGE_EVENT));\n } catch (e) {\n console.warn('[import-maps] Failed to clear import-map overrides from localStorage', e);\n }\n}\n/**\n * Re-enables a previously disabled import map override. In production, this is a no-op.\n */ function enableImportMapOverride(name) {\n if (!devMode) {\n console.warn('[Security] Import map overrides are disabled in production mode.');\n return;\n }\n try {\n var disabled = getImportMapDisabledOverrides().filter(function(n) {\n return n !== name;\n });\n if (disabled.length > 0) {\n localStorage.setItem(DISABLED_KEY, JSON.stringify(disabled));\n } else {\n localStorage.removeItem(DISABLED_KEY);\n }\n window.dispatchEvent(new CustomEvent(CHANGE_EVENT));\n } catch (e) {\n console.warn('[import-maps] Failed to update import-map overrides in localStorage', e);\n }\n}\n/**\n * Initializes the import map override system with mode-aware behavior.\n *\n * In production (`window.spaEnv !== 'development'`), mutation functions are\n * no-ops and localStorage overrides are never consulted. In development, the\n * full override workflow is available.\n *\n * Must be called before any code that depends on the import map functions.\n */ var initialized = false;\nfunction setupImportMapOverrides() {\n if (initialized) {\n return;\n }\n initialized = true;\n devMode = window.spaEnv === 'development';\n if (devMode) {\n initialOverrideSnapshot = readOverrideMap();\n }\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyIS9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9wYWNrYWdlcy9mcmFtZXdvcmsvZXNtLWR5bmFtaWMtbG9hZGluZy9kaXN0L2ltcG9ydC1tYXBzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLWR5bmFtaWMtbG9hZGluZy9kaXN0L2ltcG9ydC1tYXBzLmpzP2I2ZTIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IEltcG9ydCBNYXAgKi8gY29uc3QgT1ZFUlJJREVfUFJFRklYID0gJ2ltcG9ydC1tYXAtb3ZlcnJpZGU6JztcbmNvbnN0IERJU0FCTEVEX0tFWSA9ICdpbXBvcnQtbWFwLW92ZXJyaWRlcy1kaXNhYmxlZCc7XG5jb25zdCBDSEFOR0VfRVZFTlQgPSAnaW1wb3J0LW1hcC1vdmVycmlkZXM6Y2hhbmdlJztcbi8vIFNldCBieSBzZXR1cEltcG9ydE1hcE92ZXJyaWRlcygpOyBjb250cm9scyB3aGV0aGVyIG92ZXJyaWRlIGZ1bmN0aW9uYWxpdHkgaXMgYWN0aXZlLlxubGV0IGRldk1vZGUgPSBmYWxzZTtcbi8vIFNuYXBzaG90IG9mIG92ZXJyaWRlcyBhdCBzZXR1cCB0aW1lIChtYXRjaGVzIGltcG9ydC1tYXAtb3ZlcnJpZGVzIGxpYnJhcnkgYmVoYXZpb3I6XG4vLyBnZXRDdXJyZW50UGFnZU1hcCByZXR1cm5zIHRoZSBvdmVycmlkZXMgYXMgdGhleSB3ZXJlIHdoZW4gdGhlIHBhZ2UgbG9hZGVkKS5cbmxldCBpbml0aWFsT3ZlcnJpZGVTbmFwc2hvdCA9IG51bGw7XG4vKipcbiAqIFJlYWRzIGFsbCBgPHNjcmlwdCB0eXBlPVwic3lzdGVtanMtaW1wb3J0bWFwXCI+YCB0YWdzIGZyb20gdGhlIERPTSBhbmQgbWVyZ2VzXG4gKiB0aGVtIGludG8gYSBzaW5nbGUge0BsaW5rIEltcG9ydE1hcH0uIFRhZ3Mgd2l0aCBhIGBzcmNgIGF0dHJpYnV0ZSBhcmUgZmV0Y2hlZDtcbiAqIGlubGluZSB0YWdzIGhhdmUgdGhlaXIgYHRleHRDb250ZW50YCBwYXJzZWQgYXMgSlNPTi5cbiAqLyBhc3luYyBmdW5jdGlvbiByZWFkQmFzZU1hcCgpIHtcbiAgICBjb25zdCBzY3JpcHRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc2NyaXB0W3R5cGU9XCJzeXN0ZW1qcy1pbXBvcnRtYXBcIl0nKTtcbiAgICBjb25zdCBtYXBzID0gW107XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyBpKyspe1xuICAgICAgICBjb25zdCBzY3JpcHQgPSBzY3JpcHRzW2ldO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHNjcmlwdC5zcmMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHNjcmlwdC5zcmMpO1xuICAgICAgICAgICAgICAgIG1hcHMucHVzaChhd2FpdCByZXNwb25zZS5qc29uKCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzY3JpcHQudGV4dENvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICBtYXBzLnB1c2goSlNPTi5wYXJzZShzY3JpcHQudGV4dENvbnRlbnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBbaW1wb3J0LW1hcHNdIEZhaWxlZCB0byBwYXJzZSBpbXBvcnQgbWFwIGZyb20gc2NyaXB0IHRhZyBhdCBpbmRleCAke2l9YCwgZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1lcmdlTWFwcyhtYXBzKTtcbn1cbmZ1bmN0aW9uIG1lcmdlTWFwcyhtYXBzKSB7XG4gICAgY29uc3QgbWVyZ2VkID0ge1xuICAgICAgICBpbXBvcnRzOiB7fVxuICAgIH07XG4gICAgZm9yIChjb25zdCBtYXAgb2YgbWFwcyl7XG4gICAgICAgIGlmIChtYXA/LmltcG9ydHMpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24obWVyZ2VkLmltcG9ydHMsIG1hcC5pbXBvcnRzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VkO1xufVxuLyoqIFJldHVybnMgYWxsIGBpbXBvcnQtbWFwLW92ZXJyaWRlOipgIGVudHJpZXMgZnJvbSBsb2NhbFN0b3JhZ2UgYXMgYW4ge0BsaW5rIEltcG9ydE1hcH0uICovIGZ1bmN0aW9uIHJlYWRPdmVycmlkZU1hcCgpIHtcbiAgICBjb25zdCBpbXBvcnRzID0ge307XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGlzYWJsZWQgPSBnZXRJbXBvcnRNYXBEaXNhYmxlZE92ZXJyaWRlcygpO1xuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgbG9jYWxTdG9yYWdlLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGxvY2FsU3RvcmFnZS5rZXkoaSk7XG4gICAgICAgICAgICBpZiAoa2V5Py5zdGFydHNXaXRoKE9WRVJSSURFX1BSRUZJWCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb2R1bGVOYW1lID0ga2V5LnNsaWNlKE9WRVJSSURFX1BSRUZJWC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIGlmICghZGlzYWJsZWQuaW5jbHVkZXMobW9kdWxlTmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVybCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0c1ttb2R1bGVOYW1lXSA9IHVybDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdbaW1wb3J0LW1hcHNdIEZhaWxlZCB0byByZWFkIGltcG9ydC1tYXAgb3ZlcnJpZGVzIGZyb20gbG9jYWxTdG9yYWdlJywgZSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGltcG9ydHNcbiAgICB9O1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBpbXBvcnQgbWFwIGZvciB0aGUgY3VycmVudCBwYWdlLiBJbiBkZXYgbW9kZSwgdGhpcyBtZXJnZXNcbiAqIHRoZSBiYXNlIG1hcCB3aXRoIHRoZSBvdmVycmlkZSBzbmFwc2hvdCBjYXB0dXJlZCBhdCBwYWdlIGxvYWQuXG4gKi8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEN1cnJlbnRQYWdlTWFwKCkge1xuICAgIGNvbnN0IGJhc2UgPSBhd2FpdCByZWFkQmFzZU1hcCgpO1xuICAgIGlmICghZGV2TW9kZSkge1xuICAgICAgICByZXR1cm4gYmFzZTtcbiAgICB9XG4gICAgY29uc3Qgb3ZlcnJpZGVzID0gaW5pdGlhbE92ZXJyaWRlU25hcHNob3QgPz8gcmVhZE92ZXJyaWRlTWFwKCk7XG4gICAgcmV0dXJuIG1lcmdlTWFwcyhbXG4gICAgICAgIGJhc2UsXG4gICAgICAgIG92ZXJyaWRlc1xuICAgIF0pO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIGltcG9ydCBtYXAgZnJvbSB0aGUgRE9NIHdpdGhvdXQgYW55IG92ZXJyaWRlcyBhcHBsaWVkLlxuICovIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRJbXBvcnRNYXBEZWZhdWx0TWFwKCkge1xuICAgIHJldHVybiByZWFkQmFzZU1hcCgpO1xufVxuLyoqXG4gKiBSZXR1cm5zIHdoYXQgdGhlIGltcG9ydCBtYXAgd2lsbCBsb29rIGxpa2Ugb24gdGhlIG5leHQgcGFnZSBsb2FkLCBpbmNsdWRpbmdcbiAqIGFueSBvdmVycmlkZXMgdGhhdCBoYXZlIGJlZW4gYWRkZWQvcmVtb3ZlZCBzaW5jZSB0aGUgcGFnZSBsb2FkZWQuXG4gKiBJbiBwcm9kdWN0aW9uLCB0aGlzIGlzIHRoZSBzYW1lIGFzIHRoZSBiYXNlIG1hcC5cbiAqLyBleHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0SW1wb3J0TWFwTmV4dFBhZ2VNYXAoKSB7XG4gICAgaWYgKCFkZXZNb2RlKSB7XG4gICAgICAgIHJldHVybiByZWFkQmFzZU1hcCgpO1xuICAgIH1cbiAgICBjb25zdCBiYXNlID0gYXdhaXQgcmVhZEJhc2VNYXAoKTtcbiAgICByZXR1cm4gbWVyZ2VNYXBzKFtcbiAgICAgICAgYmFzZSxcbiAgICAgICAgcmVhZE92ZXJyaWRlTWFwKClcbiAgICBdKTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgY3VycmVudCBvdmVycmlkZSBtYXAuIEluIHByb2R1Y3Rpb24sIHJldHVybnMgZW1wdHkgaW1wb3J0cy5cbiAqIEBwYXJhbSBpbmNsdWRlRGlzYWJsZWQgSWYgdHJ1ZSwgaW5jbHVkZXMgZGlzYWJsZWQgb3ZlcnJpZGVzLlxuICovIGV4cG9ydCBmdW5jdGlvbiBnZXRJbXBvcnRNYXBPdmVycmlkZU1hcChpbmNsdWRlRGlzYWJsZWQpIHtcbiAgICBpZiAoIWRldk1vZGUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGltcG9ydHM6IHt9XG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmIChpbmNsdWRlRGlzYWJsZWQpIHtcbiAgICAgICAgY29uc3QgaW1wb3J0cyA9IHt9O1xuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgbG9jYWxTdG9yYWdlLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGxvY2FsU3RvcmFnZS5rZXkoaSk7XG4gICAgICAgICAgICBpZiAoa2V5Py5zdGFydHNXaXRoKE9WRVJSSURFX1BSRUZJWCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgICAgICAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgaW1wb3J0c1trZXkuc2xpY2UoT1ZFUlJJREVfUFJFRklYLmxlbmd0aCldID0gdXJsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaW1wb3J0c1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gcmVhZE92ZXJyaWRlTWFwKCk7XG59XG4vKipcbiAqIFJldHVybnMgdGhlIGxpc3Qgb2YgbW9kdWxlIG5hbWVzIHdob3NlIG92ZXJyaWRlcyBhcmUgZGlzYWJsZWQuXG4gKiBJbiBwcm9kdWN0aW9uLCByZXR1cm5zIGFuIGVtcHR5IGFycmF5LlxuICovIGV4cG9ydCBmdW5jdGlvbiBnZXRJbXBvcnRNYXBEaXNhYmxlZE92ZXJyaWRlcygpIHtcbiAgICBpZiAoIWRldk1vZGUpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBjb25zdCByYXcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShESVNBQkxFRF9LRVkpO1xuICAgICAgICBpZiAocmF3KSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHJhdyk7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJzZWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggIHtcbiAgICAvLyBpZ25vcmUgbWFsZm9ybWVkIGRhdGFcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xufVxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIG1vZHVsZSdzIG92ZXJyaWRlIGlzIGRpc2FibGVkLlxuICogSW4gcHJvZHVjdGlvbiwgcmV0dXJucyBmYWxzZS5cbiAqLyBleHBvcnQgZnVuY3Rpb24gaXNJbXBvcnRNYXBPdmVycmlkZURpc2FibGVkKG1vZHVsZU5hbWUpIHtcbiAgICBpZiAoIWRldk1vZGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0SW1wb3J0TWFwRGlzYWJsZWRPdmVycmlkZXMoKS5pbmNsdWRlcyhtb2R1bGVOYW1lKTtcbn1cbi8qKlxuICogQWRkcyBhbiBpbXBvcnQgbWFwIG92ZXJyaWRlLiBJbiBwcm9kdWN0aW9uLCB0aGlzIGlzIGEgbm8tb3AuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGFkZEltcG9ydE1hcE92ZXJyaWRlKG5hbWUsIHVybCkge1xuICAgIGlmICghZGV2TW9kZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tTZWN1cml0eV0gSW1wb3J0IG1hcCBvdmVycmlkZXMgYXJlIGRpc2FibGVkIGluIHByb2R1Y3Rpb24gbW9kZS4nKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShPVkVSUklERV9QUkVGSVggKyBuYW1lLCB1cmwpO1xuICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoQ0hBTkdFX0VWRU5UKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tpbXBvcnQtbWFwc10gRmFpbGVkIHRvIHdyaXRlIGltcG9ydC1tYXAgb3ZlcnJpZGUgdG8gbG9jYWxTdG9yYWdlJywgZSk7XG4gICAgfVxufVxuLyoqXG4gKiBSZW1vdmVzIGFuIGltcG9ydCBtYXAgb3ZlcnJpZGUuIEluIHByb2R1Y3Rpb24sIHRoaXMgaXMgYSBuby1vcC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gcmVtb3ZlSW1wb3J0TWFwT3ZlcnJpZGUobmFtZSkge1xuICAgIGlmICghZGV2TW9kZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tTZWN1cml0eV0gSW1wb3J0IG1hcCBvdmVycmlkZXMgYXJlIGRpc2FibGVkIGluIHByb2R1Y3Rpb24gbW9kZS4nKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShPVkVSUklERV9QUkVGSVggKyBuYW1lKTtcbiAgICAgICAgY29uc3QgZGlzYWJsZWQgPSBnZXRJbXBvcnRNYXBEaXNhYmxlZE92ZXJyaWRlcygpLmZpbHRlcigobik9Pm4gIT09IG5hbWUpO1xuICAgICAgICBpZiAoZGlzYWJsZWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oRElTQUJMRURfS0VZLCBKU09OLnN0cmluZ2lmeShkaXNhYmxlZCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oRElTQUJMRURfS0VZKTtcbiAgICAgICAgfVxuICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoQ0hBTkdFX0VWRU5UKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tpbXBvcnQtbWFwc10gRmFpbGVkIHRvIHVwZGF0ZSBpbXBvcnQtbWFwIG92ZXJyaWRlcyBpbiBsb2NhbFN0b3JhZ2UnLCBlKTtcbiAgICB9XG59XG4vKipcbiAqIENsZWFycyBhbGwgaW1wb3J0IG1hcCBvdmVycmlkZXMuIEluIHByb2R1Y3Rpb24sIHRoaXMgaXMgYSBuby1vcC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gcmVzZXRJbXBvcnRNYXBPdmVycmlkZXMoKSB7XG4gICAgaWYgKCFkZXZNb2RlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignW1NlY3VyaXR5XSBJbXBvcnQgbWFwIG92ZXJyaWRlcyBhcmUgZGlzYWJsZWQgaW4gcHJvZHVjdGlvbiBtb2RlLicpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGtleXNUb1JlbW92ZSA9IFtdO1xuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgbG9jYWxTdG9yYWdlLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGxvY2FsU3RvcmFnZS5rZXkoaSk7XG4gICAgICAgICAgICBpZiAoa2V5Py5zdGFydHNXaXRoKE9WRVJSSURFX1BSRUZJWCkpIHtcbiAgICAgICAgICAgICAgICBrZXlzVG9SZW1vdmUucHVzaChrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGtleXNUb1JlbW92ZS5mb3JFYWNoKChrZXkpPT5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oRElTQUJMRURfS0VZKTtcbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KENIQU5HRV9FVkVOVCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdbaW1wb3J0LW1hcHNdIEZhaWxlZCB0byBjbGVhciBpbXBvcnQtbWFwIG92ZXJyaWRlcyBmcm9tIGxvY2FsU3RvcmFnZScsIGUpO1xuICAgIH1cbn1cbi8qKlxuICogUmUtZW5hYmxlcyBhIHByZXZpb3VzbHkgZGlzYWJsZWQgaW1wb3J0IG1hcCBvdmVycmlkZS4gSW4gcHJvZHVjdGlvbiwgdGhpcyBpcyBhIG5vLW9wLlxuICovIGV4cG9ydCBmdW5jdGlvbiBlbmFibGVJbXBvcnRNYXBPdmVycmlkZShuYW1lKSB7XG4gICAgaWYgKCFkZXZNb2RlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignW1NlY3VyaXR5XSBJbXBvcnQgbWFwIG92ZXJyaWRlcyBhcmUgZGlzYWJsZWQgaW4gcHJvZHVjdGlvbiBtb2RlLicpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRpc2FibGVkID0gZ2V0SW1wb3J0TWFwRGlzYWJsZWRPdmVycmlkZXMoKS5maWx0ZXIoKG4pPT5uICE9PSBuYW1lKTtcbiAgICAgICAgaWYgKGRpc2FibGVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKERJU0FCTEVEX0tFWSwgSlNPTi5zdHJpbmdpZnkoZGlzYWJsZWQpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKERJU0FCTEVEX0tFWSk7XG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KENIQU5HRV9FVkVOVCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdbaW1wb3J0LW1hcHNdIEZhaWxlZCB0byB1cGRhdGUgaW1wb3J0LW1hcCBvdmVycmlkZXMgaW4gbG9jYWxTdG9yYWdlJywgZSk7XG4gICAgfVxufVxuLyoqXG4gKiBJbml0aWFsaXplcyB0aGUgaW1wb3J0IG1hcCBvdmVycmlkZSBzeXN0ZW0gd2l0aCBtb2RlLWF3YXJlIGJlaGF2aW9yLlxuICpcbiAqIEluIHByb2R1Y3Rpb24gKGB3aW5kb3cuc3BhRW52ICE9PSAnZGV2ZWxvcG1lbnQnYCksIG11dGF0aW9uIGZ1bmN0aW9ucyBhcmVcbiAqIG5vLW9wcyBhbmQgbG9jYWxTdG9yYWdlIG92ZXJyaWRlcyBhcmUgbmV2ZXIgY29uc3VsdGVkLiBJbiBkZXZlbG9wbWVudCwgdGhlXG4gKiBmdWxsIG92ZXJyaWRlIHdvcmtmbG93IGlzIGF2YWlsYWJsZS5cbiAqXG4gKiBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgYW55IGNvZGUgdGhhdCBkZXBlbmRzIG9uIHRoZSBpbXBvcnQgbWFwIGZ1bmN0aW9ucy5cbiAqLyBsZXQgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEltcG9ydE1hcE92ZXJyaWRlcygpIHtcbiAgICBpZiAoaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpbml0aWFsaXplZCA9IHRydWU7XG4gICAgZGV2TW9kZSA9IHdpbmRvdy5zcGFFbnYgPT09ICdkZXZlbG9wbWVudCc7XG4gICAgaWYgKGRldk1vZGUpIHtcbiAgICAgICAgaW5pdGlhbE92ZXJyaWRlU25hcHNob3QgPSByZWFkT3ZlcnJpZGVNYXAoKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsiT1ZFUlJJREVfUFJFRklYIiwiRElTQUJMRURfS0VZIiwiQ0hBTkdFX0VWRU5UIiwiZGV2TW9kZSIsImluaXRpYWxPdmVycmlkZVNuYXBzaG90IiwicmVhZEJhc2VNYXAiLCJzY3JpcHRzIiwibWFwcyIsImkiLCJzY3JpcHQiLCJyZXNwb25zZSIsImUiLCJkb2N1bWVudCIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJtZXJnZU1hcHMiLCJtZXJnZWQiLCJfaXRlcmF0b3JFcnJvciIsIm1hcCIsIk9iamVjdCIsInJlYWRPdmVycmlkZU1hcCIsImltcG9ydHMiLCJkaXNhYmxlZCIsImdldEltcG9ydE1hcERpc2FibGVkT3ZlcnJpZGVzIiwibG9jYWxTdG9yYWdlIiwia2V5IiwibW9kdWxlTmFtZSIsInVybCIsImdldEN1cnJlbnRQYWdlTWFwIiwiYmFzZSIsIm92ZXJyaWRlcyIsImdldEltcG9ydE1hcERlZmF1bHRNYXAiLCJnZXRJbXBvcnRNYXBOZXh0UGFnZU1hcCIsImdldEltcG9ydE1hcE92ZXJyaWRlTWFwIiwiaW5jbHVkZURpc2FibGVkIiwicmF3IiwicGFyc2VkIiwiQXJyYXkiLCJpc0ltcG9ydE1hcE92ZXJyaWRlRGlzYWJsZWQiLCJhZGRJbXBvcnRNYXBPdmVycmlkZSIsIm5hbWUiLCJ3aW5kb3ciLCJDdXN0b21FdmVudCIsInJlbW92ZUltcG9ydE1hcE92ZXJyaWRlIiwibiIsInJlc2V0SW1wb3J0TWFwT3ZlcnJpZGVzIiwia2V5c1RvUmVtb3ZlIiwiZW5hYmxlSW1wb3J0TWFwT3ZlcnJpZGUiLCJpbml0aWFsaXplZCIsInNldHVwSW1wb3J0TWFwT3ZlcnJpZGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQWlDLEdBQUcsSUFB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\n//# sourceURL=webpack-internal:///../../framework/esm-dynamic-loading/dist/import-maps.js\n\n}");
|
|
5623
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n addImportMapOverride: () => (addImportMapOverride),\n enableImportMapOverride: () => (enableImportMapOverride),\n getCurrentPageMap: () => (getCurrentPageMap),\n getImportMapDefaultMap: () => (getImportMapDefaultMap),\n getImportMapDisabledOverrides: () => (getImportMapDisabledOverrides),\n getImportMapNextPageMap: () => (getImportMapNextPageMap),\n getImportMapOverrideMap: () => (getImportMapOverrideMap),\n isImportMapOverrideDisabled: () => (isImportMapOverrideDisabled),\n removeImportMapOverride: () => (removeImportMapOverride),\n resetImportMapOverrides: () => (resetImportMapOverrides),\n setupImportMapOverrides: () => (setupImportMapOverrides)\n});\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction _ts_generator(thisArg, body) {\n var f, y, t, _ = {\n label: 0,\n sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n }, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype), d = Object.defineProperty;\n return d(g, \"next\", {\n value: verb(0)\n }), d(g, \"throw\", {\n value: verb(1)\n }), d(g, \"return\", {\n value: verb(2)\n }), typeof Symbol === \"function\" && d(g, Symbol.iterator, {\n value: function() {\n return this;\n }\n }), g;\n function verb(n) {\n return function(v) {\n return step([\n n,\n v\n ]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while(g && (g = 0, op[0] && (_ = 0)), _)try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [\n op[0] & 2,\n t.value\n ];\n switch(op[0]){\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [\n 0\n ];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [\n 6,\n e\n ];\n y = 0;\n } finally{\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\n/** @module @category Import Map */ var OVERRIDE_PREFIX = 'import-map-override:';\nvar DISABLED_KEY = 'import-map-overrides-disabled';\nvar CHANGE_EVENT = 'import-map-overrides:change';\n// Set by setupImportMapOverrides(); controls whether override functionality is active.\nvar devMode = false;\n// Snapshot of overrides at setup time (matches import-map-overrides library behavior:\n// getCurrentPageMap returns the overrides as they were when the page loaded).\nvar initialOverrideSnapshot = null;\n// Memoizes the base map so that the import map is fetched at most once per page load.\nvar baseMapPromise = null;\n/**\n * Reads all `<script type=\"systemjs-importmap\">` tags from the DOM and merges\n * them into a single {@link ImportMap}. Tags with a `src` attribute are fetched;\n * inline tags have their `textContent` parsed as JSON.\n *\n * A read in which every tag was parsed successfully is cached and reused by all later\n * callers. A read that lost one or more tags to an error is returned as-is but not cached, so\n * that a transient network failure doesn't leave the page with a permanently incomplete map.\n */ function readBaseMap() {\n return _async_to_generator(function() {\n return _ts_generator(this, function(_state) {\n baseMapPromise !== null && baseMapPromise !== void 0 ? baseMapPromise : baseMapPromise = loadBaseMap().then(function(param) {\n var map = param.map, complete = param.complete;\n if (!complete) {\n baseMapPromise = null;\n }\n return map;\n });\n return [\n 2,\n baseMapPromise\n ];\n });\n })();\n}\nfunction loadBaseMap() {\n return _async_to_generator(function() {\n var scripts, maps, complete, i, script, response, _, e;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n scripts = document.querySelectorAll('script[type=\"systemjs-importmap\"]');\n maps = [];\n complete = true;\n i = 0;\n _state.label = 1;\n case 1:\n if (!(i < scripts.length)) return [\n 3,\n 9\n ];\n script = scripts[i];\n _state.label = 2;\n case 2:\n _state.trys.push([\n 2,\n 7,\n ,\n 8\n ]);\n if (!script.src) return [\n 3,\n 5\n ];\n return [\n 4,\n fetch(script.src)\n ];\n case 3:\n response = _state.sent();\n if (!response.ok) {\n throw new Error(\"Request for \".concat(script.src, \" returned \").concat(response.status, \" \").concat(response.statusText));\n }\n _ = maps.push;\n return [\n 4,\n response.json()\n ];\n case 4:\n _.apply(maps, [\n _state.sent()\n ]);\n return [\n 3,\n 6\n ];\n case 5:\n if (script.textContent) {\n maps.push(JSON.parse(script.textContent));\n }\n _state.label = 6;\n case 6:\n return [\n 3,\n 8\n ];\n case 7:\n e = _state.sent();\n complete = false;\n console.warn(\"[import-maps] Failed to parse import map from script tag at index \".concat(i), e);\n return [\n 3,\n 8\n ];\n case 8:\n i++;\n return [\n 3,\n 1\n ];\n case 9:\n return [\n 2,\n {\n map: mergeMaps(maps),\n complete: complete\n }\n ];\n }\n });\n })();\n}\nfunction mergeMaps(maps) {\n var merged = {\n imports: {}\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = maps[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var map = _step.value;\n if (map === null || map === void 0 ? void 0 : map.imports) {\n Object.assign(merged.imports, map.imports);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return merged;\n}\n/** Returns all `import-map-override:*` entries from localStorage as an {@link ImportMap}. */ function readOverrideMap() {\n var imports = {};\n try {\n var disabled = getImportMapDisabledOverrides();\n for(var i = 0; i < localStorage.length; i++){\n var key = localStorage.key(i);\n if (key === null || key === void 0 ? void 0 : key.startsWith(OVERRIDE_PREFIX)) {\n var moduleName = key.slice(OVERRIDE_PREFIX.length);\n if (!disabled.includes(moduleName)) {\n var url = localStorage.getItem(key);\n if (url) {\n imports[moduleName] = url;\n }\n }\n }\n }\n } catch (e) {\n console.warn('[import-maps] Failed to read import-map overrides from localStorage', e);\n }\n return {\n imports: imports\n };\n}\n/**\n * Returns the import map for the current page. In dev mode, this merges\n * the base map with the override snapshot captured at page load.\n */ function getCurrentPageMap() {\n return _async_to_generator(function() {\n var base, overrides;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n return [\n 4,\n readBaseMap()\n ];\n case 1:\n base = _state.sent();\n if (!devMode) {\n return [\n 2,\n base\n ];\n }\n overrides = initialOverrideSnapshot !== null && initialOverrideSnapshot !== void 0 ? initialOverrideSnapshot : readOverrideMap();\n return [\n 2,\n mergeMaps([\n base,\n overrides\n ])\n ];\n }\n });\n })();\n}\n/**\n * Returns the base import map from the DOM without any overrides applied.\n */ function getImportMapDefaultMap() {\n return _async_to_generator(function() {\n return _ts_generator(this, function(_state) {\n return [\n 2,\n readBaseMap()\n ];\n });\n })();\n}\n/**\n * Returns what the import map will look like on the next page load, including\n * any overrides that have been added/removed since the page loaded.\n * In production, this is the same as the base map.\n */ function getImportMapNextPageMap() {\n return _async_to_generator(function() {\n var base;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n if (!devMode) {\n return [\n 2,\n readBaseMap()\n ];\n }\n return [\n 4,\n readBaseMap()\n ];\n case 1:\n base = _state.sent();\n return [\n 2,\n mergeMaps([\n base,\n readOverrideMap()\n ])\n ];\n }\n });\n })();\n}\n/**\n * Returns the current override map. In production, returns empty imports.\n * @param includeDisabled If true, includes disabled overrides.\n */ function getImportMapOverrideMap(includeDisabled) {\n if (!devMode) {\n return {\n imports: {}\n };\n }\n if (includeDisabled) {\n var imports = {};\n for(var i = 0; i < localStorage.length; i++){\n var key = localStorage.key(i);\n if (key === null || key === void 0 ? void 0 : key.startsWith(OVERRIDE_PREFIX)) {\n var url = localStorage.getItem(key);\n if (url) {\n imports[key.slice(OVERRIDE_PREFIX.length)] = url;\n }\n }\n }\n return {\n imports: imports\n };\n }\n return readOverrideMap();\n}\n/**\n * Returns the list of module names whose overrides are disabled.\n * In production, returns an empty array.\n */ function getImportMapDisabledOverrides() {\n if (!devMode) {\n return [];\n }\n try {\n var raw = localStorage.getItem(DISABLED_KEY);\n if (raw) {\n var parsed = JSON.parse(raw);\n if (Array.isArray(parsed)) {\n return parsed;\n }\n }\n } catch (unused) {\n // ignore malformed data\n }\n return [];\n}\n/**\n * Returns whether the given module's override is disabled.\n * In production, returns false.\n */ function isImportMapOverrideDisabled(moduleName) {\n if (!devMode) {\n return false;\n }\n return getImportMapDisabledOverrides().includes(moduleName);\n}\n/**\n * Adds an import map override. In production, this is a no-op.\n */ function addImportMapOverride(name, url) {\n if (!devMode) {\n console.warn('[Security] Import map overrides are disabled in production mode.');\n return;\n }\n try {\n localStorage.setItem(OVERRIDE_PREFIX + name, url);\n window.dispatchEvent(new CustomEvent(CHANGE_EVENT));\n } catch (e) {\n console.warn('[import-maps] Failed to write import-map override to localStorage', e);\n }\n}\n/**\n * Removes an import map override. In production, this is a no-op.\n */ function removeImportMapOverride(name) {\n if (!devMode) {\n console.warn('[Security] Import map overrides are disabled in production mode.');\n return;\n }\n try {\n localStorage.removeItem(OVERRIDE_PREFIX + name);\n var disabled = getImportMapDisabledOverrides().filter(function(n) {\n return n !== name;\n });\n if (disabled.length > 0) {\n localStorage.setItem(DISABLED_KEY, JSON.stringify(disabled));\n } else {\n localStorage.removeItem(DISABLED_KEY);\n }\n window.dispatchEvent(new CustomEvent(CHANGE_EVENT));\n } catch (e) {\n console.warn('[import-maps] Failed to update import-map overrides in localStorage', e);\n }\n}\n/**\n * Clears all import map overrides. In production, this is a no-op.\n */ function resetImportMapOverrides() {\n if (!devMode) {\n console.warn('[Security] Import map overrides are disabled in production mode.');\n return;\n }\n try {\n var keysToRemove = [];\n for(var i = 0; i < localStorage.length; i++){\n var key = localStorage.key(i);\n if (key === null || key === void 0 ? void 0 : key.startsWith(OVERRIDE_PREFIX)) {\n keysToRemove.push(key);\n }\n }\n keysToRemove.forEach(function(key) {\n return localStorage.removeItem(key);\n });\n localStorage.removeItem(DISABLED_KEY);\n window.dispatchEvent(new CustomEvent(CHANGE_EVENT));\n } catch (e) {\n console.warn('[import-maps] Failed to clear import-map overrides from localStorage', e);\n }\n}\n/**\n * Re-enables a previously disabled import map override. In production, this is a no-op.\n */ function enableImportMapOverride(name) {\n if (!devMode) {\n console.warn('[Security] Import map overrides are disabled in production mode.');\n return;\n }\n try {\n var disabled = getImportMapDisabledOverrides().filter(function(n) {\n return n !== name;\n });\n if (disabled.length > 0) {\n localStorage.setItem(DISABLED_KEY, JSON.stringify(disabled));\n } else {\n localStorage.removeItem(DISABLED_KEY);\n }\n window.dispatchEvent(new CustomEvent(CHANGE_EVENT));\n } catch (e) {\n console.warn('[import-maps] Failed to update import-map overrides in localStorage', e);\n }\n}\n/**\n * Initializes the import map override system with mode-aware behavior.\n *\n * In production (`window.spaEnv !== 'development'`), mutation functions are\n * no-ops and localStorage overrides are never consulted. In development, the\n * full override workflow is available.\n *\n * Must be called before any code that depends on the import map functions.\n */ var initialized = false;\nfunction setupImportMapOverrides() {\n if (initialized) {\n return;\n }\n initialized = true;\n devMode = window.spaEnv === 'development';\n if (devMode) {\n initialOverrideSnapshot = readOverrideMap();\n }\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyIS9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9wYWNrYWdlcy9mcmFtZXdvcmsvZXNtLWR5bmFtaWMtbG9hZGluZy9kaXN0L2ltcG9ydC1tYXBzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLWR5bmFtaWMtbG9hZGluZy9kaXN0L2ltcG9ydC1tYXBzLmpzP2I2ZTIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IEltcG9ydCBNYXAgKi8gY29uc3QgT1ZFUlJJREVfUFJFRklYID0gJ2ltcG9ydC1tYXAtb3ZlcnJpZGU6JztcbmNvbnN0IERJU0FCTEVEX0tFWSA9ICdpbXBvcnQtbWFwLW92ZXJyaWRlcy1kaXNhYmxlZCc7XG5jb25zdCBDSEFOR0VfRVZFTlQgPSAnaW1wb3J0LW1hcC1vdmVycmlkZXM6Y2hhbmdlJztcbi8vIFNldCBieSBzZXR1cEltcG9ydE1hcE92ZXJyaWRlcygpOyBjb250cm9scyB3aGV0aGVyIG92ZXJyaWRlIGZ1bmN0aW9uYWxpdHkgaXMgYWN0aXZlLlxubGV0IGRldk1vZGUgPSBmYWxzZTtcbi8vIFNuYXBzaG90IG9mIG92ZXJyaWRlcyBhdCBzZXR1cCB0aW1lIChtYXRjaGVzIGltcG9ydC1tYXAtb3ZlcnJpZGVzIGxpYnJhcnkgYmVoYXZpb3I6XG4vLyBnZXRDdXJyZW50UGFnZU1hcCByZXR1cm5zIHRoZSBvdmVycmlkZXMgYXMgdGhleSB3ZXJlIHdoZW4gdGhlIHBhZ2UgbG9hZGVkKS5cbmxldCBpbml0aWFsT3ZlcnJpZGVTbmFwc2hvdCA9IG51bGw7XG4vLyBNZW1vaXplcyB0aGUgYmFzZSBtYXAgc28gdGhhdCB0aGUgaW1wb3J0IG1hcCBpcyBmZXRjaGVkIGF0IG1vc3Qgb25jZSBwZXIgcGFnZSBsb2FkLlxubGV0IGJhc2VNYXBQcm9taXNlID0gbnVsbDtcbi8qKlxuICogUmVhZHMgYWxsIGA8c2NyaXB0IHR5cGU9XCJzeXN0ZW1qcy1pbXBvcnRtYXBcIj5gIHRhZ3MgZnJvbSB0aGUgRE9NIGFuZCBtZXJnZXNcbiAqIHRoZW0gaW50byBhIHNpbmdsZSB7QGxpbmsgSW1wb3J0TWFwfS4gVGFncyB3aXRoIGEgYHNyY2AgYXR0cmlidXRlIGFyZSBmZXRjaGVkO1xuICogaW5saW5lIHRhZ3MgaGF2ZSB0aGVpciBgdGV4dENvbnRlbnRgIHBhcnNlZCBhcyBKU09OLlxuICpcbiAqIEEgcmVhZCBpbiB3aGljaCBldmVyeSB0YWcgd2FzIHBhcnNlZCBzdWNjZXNzZnVsbHkgaXMgY2FjaGVkIGFuZCByZXVzZWQgYnkgYWxsIGxhdGVyXG4gKiBjYWxsZXJzLiBBIHJlYWQgdGhhdCBsb3N0IG9uZSBvciBtb3JlIHRhZ3MgdG8gYW4gZXJyb3IgaXMgcmV0dXJuZWQgYXMtaXMgYnV0IG5vdCBjYWNoZWQsIHNvXG4gKiB0aGF0IGEgdHJhbnNpZW50IG5ldHdvcmsgZmFpbHVyZSBkb2Vzbid0IGxlYXZlIHRoZSBwYWdlIHdpdGggYSBwZXJtYW5lbnRseSBpbmNvbXBsZXRlIG1hcC5cbiAqLyBhc3luYyBmdW5jdGlvbiByZWFkQmFzZU1hcCgpIHtcbiAgICBiYXNlTWFwUHJvbWlzZSA/PyAoYmFzZU1hcFByb21pc2UgPSBsb2FkQmFzZU1hcCgpLnRoZW4oKHsgbWFwLCBjb21wbGV0ZSB9KT0+e1xuICAgICAgICBpZiAoIWNvbXBsZXRlKSB7XG4gICAgICAgICAgICBiYXNlTWFwUHJvbWlzZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9KSk7XG4gICAgcmV0dXJuIGJhc2VNYXBQcm9taXNlO1xufVxuYXN5bmMgZnVuY3Rpb24gbG9hZEJhc2VNYXAoKSB7XG4gICAgY29uc3Qgc2NyaXB0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NjcmlwdFt0eXBlPVwic3lzdGVtanMtaW1wb3J0bWFwXCJdJyk7XG4gICAgY29uc3QgbWFwcyA9IFtdO1xuICAgIGxldCBjb21wbGV0ZSA9IHRydWU7XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyBpKyspe1xuICAgICAgICBjb25zdCBzY3JpcHQgPSBzY3JpcHRzW2ldO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHNjcmlwdC5zcmMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHNjcmlwdC5zcmMpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZXF1ZXN0IGZvciAke3NjcmlwdC5zcmN9IHJldHVybmVkICR7cmVzcG9uc2Uuc3RhdHVzfSAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1hcHMucHVzaChhd2FpdCByZXNwb25zZS5qc29uKCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzY3JpcHQudGV4dENvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICBtYXBzLnB1c2goSlNPTi5wYXJzZShzY3JpcHQudGV4dENvbnRlbnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29tcGxldGUgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgW2ltcG9ydC1tYXBzXSBGYWlsZWQgdG8gcGFyc2UgaW1wb3J0IG1hcCBmcm9tIHNjcmlwdCB0YWcgYXQgaW5kZXggJHtpfWAsIGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG1hcDogbWVyZ2VNYXBzKG1hcHMpLFxuICAgICAgICBjb21wbGV0ZVxuICAgIH07XG59XG5mdW5jdGlvbiBtZXJnZU1hcHMobWFwcykge1xuICAgIGNvbnN0IG1lcmdlZCA9IHtcbiAgICAgICAgaW1wb3J0czoge31cbiAgICB9O1xuICAgIGZvciAoY29uc3QgbWFwIG9mIG1hcHMpe1xuICAgICAgICBpZiAobWFwPy5pbXBvcnRzKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKG1lcmdlZC5pbXBvcnRzLCBtYXAuaW1wb3J0cyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1lcmdlZDtcbn1cbi8qKiBSZXR1cm5zIGFsbCBgaW1wb3J0LW1hcC1vdmVycmlkZToqYCBlbnRyaWVzIGZyb20gbG9jYWxTdG9yYWdlIGFzIGFuIHtAbGluayBJbXBvcnRNYXB9LiAqLyBmdW5jdGlvbiByZWFkT3ZlcnJpZGVNYXAoKSB7XG4gICAgY29uc3QgaW1wb3J0cyA9IHt9O1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRpc2FibGVkID0gZ2V0SW1wb3J0TWFwRGlzYWJsZWRPdmVycmlkZXMoKTtcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGxvY2FsU3RvcmFnZS5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBsb2NhbFN0b3JhZ2Uua2V5KGkpO1xuICAgICAgICAgICAgaWYgKGtleT8uc3RhcnRzV2l0aChPVkVSUklERV9QUkVGSVgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IGtleS5zbGljZShPVkVSUklERV9QUkVGSVgubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRpc2FibGVkLmluY2x1ZGVzKG1vZHVsZU5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydHNbbW9kdWxlTmFtZV0gPSB1cmw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignW2ltcG9ydC1tYXBzXSBGYWlsZWQgdG8gcmVhZCBpbXBvcnQtbWFwIG92ZXJyaWRlcyBmcm9tIGxvY2FsU3RvcmFnZScsIGUpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBpbXBvcnRzXG4gICAgfTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgaW1wb3J0IG1hcCBmb3IgdGhlIGN1cnJlbnQgcGFnZS4gSW4gZGV2IG1vZGUsIHRoaXMgbWVyZ2VzXG4gKiB0aGUgYmFzZSBtYXAgd2l0aCB0aGUgb3ZlcnJpZGUgc25hcHNob3QgY2FwdHVyZWQgYXQgcGFnZSBsb2FkLlxuICovIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDdXJyZW50UGFnZU1hcCgpIHtcbiAgICBjb25zdCBiYXNlID0gYXdhaXQgcmVhZEJhc2VNYXAoKTtcbiAgICBpZiAoIWRldk1vZGUpIHtcbiAgICAgICAgcmV0dXJuIGJhc2U7XG4gICAgfVxuICAgIGNvbnN0IG92ZXJyaWRlcyA9IGluaXRpYWxPdmVycmlkZVNuYXBzaG90ID8/IHJlYWRPdmVycmlkZU1hcCgpO1xuICAgIHJldHVybiBtZXJnZU1hcHMoW1xuICAgICAgICBiYXNlLFxuICAgICAgICBvdmVycmlkZXNcbiAgICBdKTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgYmFzZSBpbXBvcnQgbWFwIGZyb20gdGhlIERPTSB3aXRob3V0IGFueSBvdmVycmlkZXMgYXBwbGllZC5cbiAqLyBleHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0SW1wb3J0TWFwRGVmYXVsdE1hcCgpIHtcbiAgICByZXR1cm4gcmVhZEJhc2VNYXAoKTtcbn1cbi8qKlxuICogUmV0dXJucyB3aGF0IHRoZSBpbXBvcnQgbWFwIHdpbGwgbG9vayBsaWtlIG9uIHRoZSBuZXh0IHBhZ2UgbG9hZCwgaW5jbHVkaW5nXG4gKiBhbnkgb3ZlcnJpZGVzIHRoYXQgaGF2ZSBiZWVuIGFkZGVkL3JlbW92ZWQgc2luY2UgdGhlIHBhZ2UgbG9hZGVkLlxuICogSW4gcHJvZHVjdGlvbiwgdGhpcyBpcyB0aGUgc2FtZSBhcyB0aGUgYmFzZSBtYXAuXG4gKi8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEltcG9ydE1hcE5leHRQYWdlTWFwKCkge1xuICAgIGlmICghZGV2TW9kZSkge1xuICAgICAgICByZXR1cm4gcmVhZEJhc2VNYXAoKTtcbiAgICB9XG4gICAgY29uc3QgYmFzZSA9IGF3YWl0IHJlYWRCYXNlTWFwKCk7XG4gICAgcmV0dXJuIG1lcmdlTWFwcyhbXG4gICAgICAgIGJhc2UsXG4gICAgICAgIHJlYWRPdmVycmlkZU1hcCgpXG4gICAgXSk7XG59XG4vKipcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgb3ZlcnJpZGUgbWFwLiBJbiBwcm9kdWN0aW9uLCByZXR1cm5zIGVtcHR5IGltcG9ydHMuXG4gKiBAcGFyYW0gaW5jbHVkZURpc2FibGVkIElmIHRydWUsIGluY2x1ZGVzIGRpc2FibGVkIG92ZXJyaWRlcy5cbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0SW1wb3J0TWFwT3ZlcnJpZGVNYXAoaW5jbHVkZURpc2FibGVkKSB7XG4gICAgaWYgKCFkZXZNb2RlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpbXBvcnRzOiB7fVxuICAgICAgICB9O1xuICAgIH1cbiAgICBpZiAoaW5jbHVkZURpc2FibGVkKSB7XG4gICAgICAgIGNvbnN0IGltcG9ydHMgPSB7fTtcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGxvY2FsU3RvcmFnZS5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBsb2NhbFN0b3JhZ2Uua2V5KGkpO1xuICAgICAgICAgICAgaWYgKGtleT8uc3RhcnRzV2l0aChPVkVSUklERV9QUkVGSVgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICAgICAgICAgICAgICBpZiAodXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIGltcG9ydHNba2V5LnNsaWNlKE9WRVJSSURFX1BSRUZJWC5sZW5ndGgpXSA9IHVybDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGltcG9ydHNcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHJlYWRPdmVycmlkZU1hcCgpO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBsaXN0IG9mIG1vZHVsZSBuYW1lcyB3aG9zZSBvdmVycmlkZXMgYXJlIGRpc2FibGVkLlxuICogSW4gcHJvZHVjdGlvbiwgcmV0dXJucyBhbiBlbXB0eSBhcnJheS5cbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0SW1wb3J0TWFwRGlzYWJsZWRPdmVycmlkZXMoKSB7XG4gICAgaWYgKCFkZXZNb2RlKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmF3ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oRElTQUJMRURfS0VZKTtcbiAgICAgICAgaWYgKHJhdykge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShyYXcpO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocGFyc2VkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGNhdGNoICB7XG4gICAgLy8gaWdub3JlIG1hbGZvcm1lZCBkYXRhXG4gICAgfVxuICAgIHJldHVybiBbXTtcbn1cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBtb2R1bGUncyBvdmVycmlkZSBpcyBkaXNhYmxlZC5cbiAqIEluIHByb2R1Y3Rpb24sIHJldHVybnMgZmFsc2UuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGlzSW1wb3J0TWFwT3ZlcnJpZGVEaXNhYmxlZChtb2R1bGVOYW1lKSB7XG4gICAgaWYgKCFkZXZNb2RlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGdldEltcG9ydE1hcERpc2FibGVkT3ZlcnJpZGVzKCkuaW5jbHVkZXMobW9kdWxlTmFtZSk7XG59XG4vKipcbiAqIEFkZHMgYW4gaW1wb3J0IG1hcCBvdmVycmlkZS4gSW4gcHJvZHVjdGlvbiwgdGhpcyBpcyBhIG5vLW9wLlxuICovIGV4cG9ydCBmdW5jdGlvbiBhZGRJbXBvcnRNYXBPdmVycmlkZShuYW1lLCB1cmwpIHtcbiAgICBpZiAoIWRldk1vZGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdbU2VjdXJpdHldIEltcG9ydCBtYXAgb3ZlcnJpZGVzIGFyZSBkaXNhYmxlZCBpbiBwcm9kdWN0aW9uIG1vZGUuJyk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oT1ZFUlJJREVfUFJFRklYICsgbmFtZSwgdXJsKTtcbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KENIQU5HRV9FVkVOVCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdbaW1wb3J0LW1hcHNdIEZhaWxlZCB0byB3cml0ZSBpbXBvcnQtbWFwIG92ZXJyaWRlIHRvIGxvY2FsU3RvcmFnZScsIGUpO1xuICAgIH1cbn1cbi8qKlxuICogUmVtb3ZlcyBhbiBpbXBvcnQgbWFwIG92ZXJyaWRlLiBJbiBwcm9kdWN0aW9uLCB0aGlzIGlzIGEgbm8tb3AuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUltcG9ydE1hcE92ZXJyaWRlKG5hbWUpIHtcbiAgICBpZiAoIWRldk1vZGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdbU2VjdXJpdHldIEltcG9ydCBtYXAgb3ZlcnJpZGVzIGFyZSBkaXNhYmxlZCBpbiBwcm9kdWN0aW9uIG1vZGUuJyk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oT1ZFUlJJREVfUFJFRklYICsgbmFtZSk7XG4gICAgICAgIGNvbnN0IGRpc2FibGVkID0gZ2V0SW1wb3J0TWFwRGlzYWJsZWRPdmVycmlkZXMoKS5maWx0ZXIoKG4pPT5uICE9PSBuYW1lKTtcbiAgICAgICAgaWYgKGRpc2FibGVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKERJU0FCTEVEX0tFWSwgSlNPTi5zdHJpbmdpZnkoZGlzYWJsZWQpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKERJU0FCTEVEX0tFWSk7XG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KENIQU5HRV9FVkVOVCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdbaW1wb3J0LW1hcHNdIEZhaWxlZCB0byB1cGRhdGUgaW1wb3J0LW1hcCBvdmVycmlkZXMgaW4gbG9jYWxTdG9yYWdlJywgZSk7XG4gICAgfVxufVxuLyoqXG4gKiBDbGVhcnMgYWxsIGltcG9ydCBtYXAgb3ZlcnJpZGVzLiBJbiBwcm9kdWN0aW9uLCB0aGlzIGlzIGEgbm8tb3AuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHJlc2V0SW1wb3J0TWFwT3ZlcnJpZGVzKCkge1xuICAgIGlmICghZGV2TW9kZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tTZWN1cml0eV0gSW1wb3J0IG1hcCBvdmVycmlkZXMgYXJlIGRpc2FibGVkIGluIHByb2R1Y3Rpb24gbW9kZS4nKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBjb25zdCBrZXlzVG9SZW1vdmUgPSBbXTtcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGxvY2FsU3RvcmFnZS5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBsb2NhbFN0b3JhZ2Uua2V5KGkpO1xuICAgICAgICAgICAgaWYgKGtleT8uc3RhcnRzV2l0aChPVkVSUklERV9QUkVGSVgpKSB7XG4gICAgICAgICAgICAgICAga2V5c1RvUmVtb3ZlLnB1c2goa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBrZXlzVG9SZW1vdmUuZm9yRWFjaCgoa2V5KT0+bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KSk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKERJU0FCTEVEX0tFWSk7XG4gICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChDSEFOR0VfRVZFTlQpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignW2ltcG9ydC1tYXBzXSBGYWlsZWQgdG8gY2xlYXIgaW1wb3J0LW1hcCBvdmVycmlkZXMgZnJvbSBsb2NhbFN0b3JhZ2UnLCBlKTtcbiAgICB9XG59XG4vKipcbiAqIFJlLWVuYWJsZXMgYSBwcmV2aW91c2x5IGRpc2FibGVkIGltcG9ydCBtYXAgb3ZlcnJpZGUuIEluIHByb2R1Y3Rpb24sIHRoaXMgaXMgYSBuby1vcC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gZW5hYmxlSW1wb3J0TWFwT3ZlcnJpZGUobmFtZSkge1xuICAgIGlmICghZGV2TW9kZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tTZWN1cml0eV0gSW1wb3J0IG1hcCBvdmVycmlkZXMgYXJlIGRpc2FibGVkIGluIHByb2R1Y3Rpb24gbW9kZS4nKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBjb25zdCBkaXNhYmxlZCA9IGdldEltcG9ydE1hcERpc2FibGVkT3ZlcnJpZGVzKCkuZmlsdGVyKChuKT0+biAhPT0gbmFtZSk7XG4gICAgICAgIGlmIChkaXNhYmxlZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShESVNBQkxFRF9LRVksIEpTT04uc3RyaW5naWZ5KGRpc2FibGVkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShESVNBQkxFRF9LRVkpO1xuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChDSEFOR0VfRVZFTlQpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignW2ltcG9ydC1tYXBzXSBGYWlsZWQgdG8gdXBkYXRlIGltcG9ydC1tYXAgb3ZlcnJpZGVzIGluIGxvY2FsU3RvcmFnZScsIGUpO1xuICAgIH1cbn1cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIGltcG9ydCBtYXAgb3ZlcnJpZGUgc3lzdGVtIHdpdGggbW9kZS1hd2FyZSBiZWhhdmlvci5cbiAqXG4gKiBJbiBwcm9kdWN0aW9uIChgd2luZG93LnNwYUVudiAhPT0gJ2RldmVsb3BtZW50J2ApLCBtdXRhdGlvbiBmdW5jdGlvbnMgYXJlXG4gKiBuby1vcHMgYW5kIGxvY2FsU3RvcmFnZSBvdmVycmlkZXMgYXJlIG5ldmVyIGNvbnN1bHRlZC4gSW4gZGV2ZWxvcG1lbnQsIHRoZVxuICogZnVsbCBvdmVycmlkZSB3b3JrZmxvdyBpcyBhdmFpbGFibGUuXG4gKlxuICogTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueSBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgaW1wb3J0IG1hcCBmdW5jdGlvbnMuXG4gKi8gbGV0IGluaXRpYWxpemVkID0gZmFsc2U7XG5leHBvcnQgZnVuY3Rpb24gc2V0dXBJbXBvcnRNYXBPdmVycmlkZXMoKSB7XG4gICAgaWYgKGluaXRpYWxpemVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIGRldk1vZGUgPSB3aW5kb3cuc3BhRW52ID09PSAnZGV2ZWxvcG1lbnQnO1xuICAgIGlmIChkZXZNb2RlKSB7XG4gICAgICAgIGluaXRpYWxPdmVycmlkZVNuYXBzaG90ID0gcmVhZE92ZXJyaWRlTWFwKCk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIk9WRVJSSURFX1BSRUZJWCIsIkRJU0FCTEVEX0tFWSIsIkNIQU5HRV9FVkVOVCIsImRldk1vZGUiLCJpbml0aWFsT3ZlcnJpZGVTbmFwc2hvdCIsImJhc2VNYXBQcm9taXNlIiwicmVhZEJhc2VNYXAiLCJsb2FkQmFzZU1hcCIsIm1hcCIsImNvbXBsZXRlIiwic2NyaXB0cyIsIm1hcHMiLCJpIiwic2NyaXB0IiwicmVzcG9uc2UiLCJlIiwiZG9jdW1lbnQiLCJmZXRjaCIsIkVycm9yIiwiSlNPTiIsImNvbnNvbGUiLCJtZXJnZU1hcHMiLCJtZXJnZWQiLCJfaXRlcmF0b3JFcnJvciIsIk9iamVjdCIsInJlYWRPdmVycmlkZU1hcCIsImltcG9ydHMiLCJkaXNhYmxlZCIsImdldEltcG9ydE1hcERpc2FibGVkT3ZlcnJpZGVzIiwibG9jYWxTdG9yYWdlIiwia2V5IiwibW9kdWxlTmFtZSIsInVybCIsImdldEN1cnJlbnRQYWdlTWFwIiwiYmFzZSIsIm92ZXJyaWRlcyIsImdldEltcG9ydE1hcERlZmF1bHRNYXAiLCJnZXRJbXBvcnRNYXBOZXh0UGFnZU1hcCIsImdldEltcG9ydE1hcE92ZXJyaWRlTWFwIiwiaW5jbHVkZURpc2FibGVkIiwicmF3IiwicGFyc2VkIiwiQXJyYXkiLCJpc0ltcG9ydE1hcE92ZXJyaWRlRGlzYWJsZWQiLCJhZGRJbXBvcnRNYXBPdmVycmlkZSIsIm5hbWUiLCJ3aW5kb3ciLCJDdXN0b21FdmVudCIsInJlbW92ZUltcG9ydE1hcE92ZXJyaWRlIiwibiIsInJlc2V0SW1wb3J0TWFwT3ZlcnJpZGVzIiwia2V5c1RvUmVtb3ZlIiwiZW5hYmxlSW1wb3J0TWFwT3ZlcnJpZGUiLCJpbml0aWFsaXplZCIsInNldHVwSW1wb3J0TWFwT3ZlcnJpZGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQWlDLEdBQUcsSUFBTUEsa0JBQWtCO0FBQzVELElBQU1DLGVBQWU7QUFDckIsSUFBTUMsZUFBZTtBQUNyQix1RkFBdUY7QUFDdkYsSUFBSUMsVUFBVTtBQUNkLHNGQUFzRjtBQUN0Riw4RUFBOEU7QUFDOUUsSUFBSUMsMEJBQTBCO0FBQzlCLHNGQUFzRjtBQUN0RixJQUFJQyxpQkFBaUI7QUFDckI7Ozs7Ozs7O0NBUUMsR0FBRyxTQUFlQzs7O1lBQ2ZELDJCQUFBQSw0QkFBQUEsaUJBQW1CQSxpQkFBaUJFLGNBQWMsSUFBSSxDQUFDO29CQUFHQyxZQUFBQSxLQUFLQyxpQkFBQUE7Z0JBQzNELElBQUksQ0FBQ0EsVUFBVTtvQkFDWEosaUJBQWlCO2dCQUNyQjtnQkFDQSxPQUFPRztZQUNYO1lBQ0E7O2dCQUFPSDs7O0lBQ1g7O0FBQ0EsU0FBZUU7O1lBQ0xHLFNBQ0FDLE1BQ0ZGLFVBQ0lHLEdBQ0VDLFFBR1FDLGFBUUxDOzs7O29CQWZQTCxVQUFVTSxTQUFTLGdCQUFnQixDQUFDO29CQUNwQ0w7b0JBQ0ZGLFdBQVc7b0JBQ1BHLElBQUk7Ozt5QkFBR0EsQ0FBQUEsSUFBSUYsUUFBUSxNQUFLOzs7O29CQUN0QkcsU0FBU0gsT0FBTyxDQUFDRSxFQUFFOzs7Ozs7Ozs7eUJBRWpCQyxPQUFPLEdBQUcsRUFBVkE7Ozs7b0JBQ2lCOzt3QkFBTUksTUFBTUosT0FBTyxHQUFHOzs7b0JBQWpDQyxXQUFXO29CQUNqQixJQUFJLENBQUNBLFNBQVMsRUFBRSxFQUFFO3dCQUNkLE1BQU0sSUFBSUksTUFBTyxlQUFxQ0osT0FBdkJELE9BQU8sR0FBRyxFQUFDLGNBQStCQyxPQUFuQkEsU0FBUyxNQUFNLEVBQUMsS0FBdUIsT0FBcEJBLFNBQVMsVUFBVTtvQkFDaEc7d0JBQ0FILEtBQUssSUFBSTtvQkFBQzs7d0JBQU1HLFNBQVMsSUFBSTs7O29CQUE3QkgsUUFBQUE7d0JBQVU7Ozs7Ozs7b0JBQ1AsSUFBSUUsT0FBTyxXQUFXLEVBQUU7d0JBQzNCRixLQUFLLElBQUksQ0FBQ1EsS0FBSyxLQUFLLENBQUNOLE9BQU8sV0FBVztvQkFDM0M7Ozs7Ozs7O29CQUNLRTtvQkFDTE4sV0FBVztvQkFDWFcsUUFBUSxJQUFJLENBQUUscUVBQXNFLE9BQUZSLElBQUtHOzs7Ozs7b0JBZDVESDs7Ozs7O29CQWlCbkM7O3dCQUFPOzRCQUNILEtBQUtTLFVBQVVWOzRCQUNmRixVQUFBQTt3QkFDSjs7OztJQUNKOztBQUNBLFNBQVNZLFVBQVVWLElBQUk7SUFDbkIsSUFBTVcsU0FBUztRQUNYLFNBQVMsQ0FBQztJQUNkO1FBQ0tDLGtDQUFBQSwyQkFBQUE7O1FBQUwsUUFBS0EsWUFBYVoseUJBQWJZLFNBQUFBLDZCQUFBQSxRQUFBQSx5QkFBQUEsaUNBQWtCO1lBQWxCQSxJQUFNZixNQUFOZTtZQUNELElBQUlmLGdCQUFBQSwwQkFBQUEsSUFBSyxPQUFPLEVBQUU7Z0JBQ2RnQixPQUFPLE1BQU0sQ0FBQ0YsT0FBTyxPQUFPLEVBQUVkLElBQUksT0FBTztZQUM3QztRQUNKOztRQUpLZTtRQUFBQTs7O2lCQUFBQSw2QkFBQUE7Z0JBQUFBOzs7Z0JBQUFBO3NCQUFBQTs7OztJQUtMLE9BQU9EO0FBQ1g7QUFDQSwyRkFBMkYsR0FBRyxTQUFTRztJQUNuRyxJQUFNQyxVQUFVLENBQUM7SUFDakIsSUFBSTtRQUNBLElBQU1DLFdBQVdDO1FBQ2pCLElBQUksSUFBSWhCLElBQUksR0FBR0EsSUFBSWlCLGFBQWEsTUFBTSxFQUFFakIsSUFBSTtZQUN4QyxJQUFNa0IsTUFBTUQsYUFBYSxHQUFHLENBQUNqQjtZQUM3QixJQUFJa0IsZ0JBQUFBLDBCQUFBQSxJQUFLLFVBQVUsQ0FBQzlCLGtCQUFrQjtnQkFDbEMsSUFBTStCLGFBQWFELElBQUksS0FBSyxDQUFDOUIsZ0JBQWdCLE1BQU07Z0JBQ25ELElBQUksQ0FBQzJCLFNBQVMsUUFBUSxDQUFDSSxhQUFhO29CQUNoQyxJQUFNQyxNQUFNSCxhQUFhLE9BQU8sQ0FBQ0M7b0JBQ2pDLElBQUlFLEtBQUs7d0JBQ0xOLE9BQU8sQ0FBQ0ssV0FBVyxHQUFHQztvQkFDMUI7Z0JBQ0o7WUFDSjtRQUNKO0lBQ0osRUFBRSxPQUFPakIsR0FBRztRQUNSSyxRQUFRLElBQUksQ0FBQyx1RUFBdUVMO0lBQ3hGO0lBQ0EsT0FBTztRQUNIVyxTQUFBQTtJQUNKO0FBQ0o7QUFDQTs7O0NBR0MsR0FBVSxTQUFlTzs7WUFDaEJDLE1BSUFDOzs7O29CQUpPOzt3QkFBTTdCOzs7b0JBQWI0QixPQUFPO29CQUNiLElBQUksQ0FBQy9CLFNBQVM7d0JBQ1Y7OzRCQUFPK0I7O29CQUNYO29CQUNNQyxZQUFZL0Isb0NBQUFBLHFDQUFBQSwwQkFBMkJxQjtvQkFDN0M7O3dCQUFPSjs0QkFDSGE7NEJBQ0FDOzs7OztJQUVSOztBQUNBOztDQUVDLEdBQVUsU0FBZUM7OztZQUN0Qjs7Z0JBQU85Qjs7O0lBQ1g7O0FBQ0E7Ozs7Q0FJQyxHQUFVLFNBQWUrQjs7WUFJaEJIOzs7O29CQUhOLElBQUksQ0FBQy9CLFNBQVM7d0JBQ1Y7OzRCQUFPRzs7b0JBQ1g7b0JBQ2E7O3dCQUFNQTs7O29CQUFiNEIsT0FBTztvQkFDYjs7d0JBQU9iOzRCQUNIYTs0QkFDQVQ7Ozs7O0lBRVI7O0FBQ0E7OztDQUdDLEdBQVUsU0FBU2Esd0JBQXdCQyxlQUFlO0lBQ3ZELElBQUksQ0FBQ3BDLFNBQVM7UUFDVixPQUFPO1lBQ0gsU0FBUyxDQUFDO1FBQ2Q7SUFDSjtJQUNBLElBQUlvQyxpQkFBaUI7UUFDakIsSUFBTWIsVUFBVSxDQUFDO1FBQ2pCLElBQUksSUFBSWQsSUFBSSxHQUFHQSxJQUFJaUIsYUFBYSxNQUFNLEVBQUVqQixJQUFJO1lBQ3hDLElBQU1rQixNQUFNRCxhQUFhLEdBQUcsQ0FBQ2pCO1lBQzdCLElBQUlrQixnQkFBQUEsMEJBQUFBLElBQUssVUFBVSxDQUFDOUIsa0JBQWtCO2dCQUNsQyxJQUFNZ0MsTUFBTUgsYUFBYSxPQUFPLENBQUNDO2dCQUNqQyxJQUFJRSxLQUFLO29CQUNMTixPQUFPLENBQUNJLElBQUksS0FBSyxDQUFDOUIsZ0JBQWdCLE1BQU0sRUFBRSxHQUFHZ0M7Z0JBQ2pEO1lBQ0o7UUFDSjtRQUNBLE9BQU87WUFDSE4sU0FBQUE7UUFDSjtJQUNKO0lBQ0EsT0FBT0Q7QUFDWDtBQUNBOzs7Q0FHQyxHQUFVLFNBQVNHO0lBQ2hCLElBQUksQ0FBQ3pCLFNBQVM7UUFDVixPQUFPLEVBQUU7SUFDYjtJQUNBLElBQUk7UUFDQSxJQUFNcUMsTUFBTVgsYUFBYSxPQUFPLENBQUM1QjtRQUNqQyxJQUFJdUMsS0FBSztZQUNMLElBQU1DLFNBQVN0QixLQUFLLEtBQUssQ0FBQ3FCO1lBQzFCLElBQUlFLE1BQU0sT0FBTyxDQUFDRCxTQUFTO2dCQUN2QixPQUFPQTtZQUNYO1FBQ0o7SUFDSixFQUFFLGVBQU87SUFDVCx3QkFBd0I7SUFDeEI7SUFDQSxPQUFPLEVBQUU7QUFDYjtBQUNBOzs7Q0FHQyxHQUFVLFNBQVNFLDRCQUE0QlosVUFBVTtJQUN0RCxJQUFJLENBQUM1QixTQUFTO1FBQ1YsT0FBTztJQUNYO0lBQ0EsT0FBT3lCLGdDQUFnQyxRQUFRLENBQUNHO0FBQ3BEO0FBQ0E7O0NBRUMsR0FBVSxTQUFTYSxxQkFBcUJDLElBQUksRUFBRWIsR0FBRztJQUM5QyxJQUFJLENBQUM3QixTQUFTO1FBQ1ZpQixRQUFRLElBQUksQ0FBQztRQUNiO0lBQ0o7SUFDQSxJQUFJO1FBQ0FTLGFBQWEsT0FBTyxDQUFDN0Isa0JBQWtCNkMsTUFBTWI7UUFDN0NjLE9BQU8sYUFBYSxDQUFDLElBQUlDLFlBQVk3QztJQUN6QyxFQUFFLE9BQU9hLEdBQUc7UUFDUkssUUFBUSxJQUFJLENBQUMscUVBQXFFTDtJQUN0RjtBQUNKO0FBQ0E7O0NBRUMsR0FBVSxTQUFTaUMsd0JBQXdCSCxJQUFJO0lBQzVDLElBQUksQ0FBQzFDLFNBQVM7UUFDVmlCLFFBQVEsSUFBSSxDQUFDO1FBQ2I7SUFDSjtJQUNBLElBQUk7UUFDQVMsYUFBYSxVQUFVLENBQUM3QixrQkFBa0I2QztRQUMxQyxJQUFNbEIsV0FBV0MsZ0NBQWdDLE1BQU0sQ0FBQyxTQUFDcUI7bUJBQUlBLE1BQU1KOztRQUNuRSxJQUFJbEIsU0FBUyxNQUFNLEdBQUcsR0FBRztZQUNyQkUsYUFBYSxPQUFPLENBQUM1QixjQUFja0IsS0FBSyxTQUFTLENBQUNRO1FBQ3RELE9BQU87WUFDSEUsYUFBYSxVQUFVLENBQUM1QjtRQUM1QjtRQUNBNkMsT0FBTyxhQUFhLENBQUMsSUFBSUMsWUFBWTdDO0lBQ3pDLEVBQUUsT0FBT2EsR0FBRztRQUNSSyxRQUFRLElBQUksQ0FBQyx1RUFBdUVMO0lBQ3hGO0FBQ0o7QUFDQTs7Q0FFQyxHQUFVLFNBQVNtQztJQUNoQixJQUFJLENBQUMvQyxTQUFTO1FBQ1ZpQixRQUFRLElBQUksQ0FBQztRQUNiO0lBQ0o7SUFDQSxJQUFJO1FBQ0EsSUFBTStCLGVBQWUsRUFBRTtRQUN2QixJQUFJLElBQUl2QyxJQUFJLEdBQUdBLElBQUlpQixhQUFhLE1BQU0sRUFBRWpCLElBQUk7WUFDeEMsSUFBTWtCLE1BQU1ELGFBQWEsR0FBRyxDQUFDakI7WUFDN0IsSUFBSWtCLGdCQUFBQSwwQkFBQUEsSUFBSyxVQUFVLENBQUM5QixrQkFBa0I7Z0JBQ2xDbUQsYUFBYSxJQUFJLENBQUNyQjtZQUN0QjtRQUNKO1FBQ0FxQixhQUFhLE9BQU8sQ0FBQyxTQUFDckI7bUJBQU1ELGFBQWEsVUFBVSxDQUFDQzs7UUFDcERELGFBQWEsVUFBVSxDQUFDNUI7UUFDeEI2QyxPQUFPLGFBQWEsQ0FBQyxJQUFJQyxZQUFZN0M7SUFDekMsRUFBRSxPQUFPYSxHQUFHO1FBQ1JLLFFBQVEsSUFBSSxDQUFDLHdFQUF3RUw7SUFDekY7QUFDSjtBQUNBOztDQUVDLEdBQVUsU0FBU3FDLHdCQUF3QlAsSUFBSTtJQUM1QyxJQUFJLENBQUMxQyxTQUFTO1FBQ1ZpQixRQUFRLElBQUksQ0FBQztRQUNiO0lBQ0o7SUFDQSxJQUFJO1FBQ0EsSUFBTU8sV0FBV0MsZ0NBQWdDLE1BQU0sQ0FBQyxTQUFDcUI7bUJBQUlBLE1BQU1KOztRQUNuRSxJQUFJbEIsU0FBUyxNQUFNLEdBQUcsR0FBRztZQUNyQkUsYUFBYSxPQUFPLENBQUM1QixjQUFja0IsS0FBSyxTQUFTLENBQUNRO1FBQ3RELE9BQU87WUFDSEUsYUFBYSxVQUFVLENBQUM1QjtRQUM1QjtRQUNBNkMsT0FBTyxhQUFhLENBQUMsSUFBSUMsWUFBWTdDO0lBQ3pDLEVBQUUsT0FBT2EsR0FBRztRQUNSSyxRQUFRLElBQUksQ0FBQyx1RUFBdUVMO0lBQ3hGO0FBQ0o7QUFDQTs7Ozs7Ozs7Q0FRQyxHQUFHLElBQUlzQyxjQUFjO0FBQ2YsU0FBU0M7SUFDWixJQUFJRCxhQUFhO1FBQ2I7SUFDSjtJQUNBQSxjQUFjO0lBQ2RsRCxVQUFVMkMsT0FBTyxNQUFNLEtBQUs7SUFDNUIsSUFBSTNDLFNBQVM7UUFDVEMsMEJBQTBCcUI7SUFDOUI7QUFDSiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-dynamic-loading/dist/import-maps.js\n\n}");
|
|
5624
5624
|
|
|
5625
5625
|
},
|
|
5626
5626
|
"../../framework/esm-dynamic-loading/dist/index.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
@@ -5630,7 +5630,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
5630
5630
|
},
|
|
5631
5631
|
"../../framework/esm-dynamic-loading/dist/route-maps.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
5632
5632
|
"use strict";
|
|
5633
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n addRouteMapOverride: () => (addRouteMapOverride),\n getCurrentRouteMap: () => (getCurrentRouteMap),\n getRouteMapDefaultMap: () => (getRouteMapDefaultMap),\n getRouteMapNextPageMap: () => (getRouteMapNextPageMap),\n getRouteMapOverrideMap: () => (getRouteMapOverrideMap),\n removeRouteMapOverride: () => (removeRouteMapOverride),\n resetRouteMapOverrides: () => (resetRouteMapOverrides),\n setupRouteMapOverrides: () => (setupRouteMapOverrides)\n});\n/* import */ var _openmrs_esm_globals__rspack_import_0 = __webpack_require__(\"../../framework/esm-globals/dist/index.js\");\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nfunction _ts_generator(thisArg, body) {\n var f, y, t, _ = {\n label: 0,\n sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n }, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype), d = Object.defineProperty;\n return d(g, \"next\", {\n value: verb(0)\n }), d(g, \"throw\", {\n value: verb(1)\n }), d(g, \"return\", {\n value: verb(2)\n }), typeof Symbol === \"function\" && d(g, Symbol.iterator, {\n value: function() {\n return this;\n }\n }), g;\n function verb(n) {\n return function(v) {\n return step([\n n,\n v\n ]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while(g && (g = 0, op[0] && (_ = 0)), _)try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [\n op[0] & 2,\n t.value\n ];\n switch(op[0]){\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [\n 0\n ];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [\n 6,\n e\n ];\n y = 0;\n } finally{\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\n/** @module @category Route Map */ \nvar OVERRIDE_PREFIX = 'openmrs-routes:';\nvar CHANGE_EVENT = 'openmrs-routes:change';\n// Set by setupRouteMapOverrides(); controls whether override functionality is active.\nvar devMode = false;\n// Snapshot of overrides at setup time (mirrors the import-map-overrides pattern:\n// getCurrentRouteMap returns the overrides as they were when the page loaded).\nvar initialOverrideSnapshot = null;\n/**\n * Reads all `<script type=\"openmrs-routes\">` tags from the DOM and merges\n * them into a single {@link OpenmrsRoutes} object. Tags with a `src` attribute\n * are fetched; inline tags have their `textContent` parsed as JSON.\n */ function readBaseMap() {\n return _async_to_generator(function() {\n var scripts, maps, i, script, parsed, response, e;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n scripts = document.querySelectorAll(\"script[type='openmrs-routes']\");\n maps = [];\n i = 0;\n _state.label = 1;\n case 1:\n if (!(i < scripts.length)) return [\n 3,\n 9\n ];\n script = scripts[i];\n _state.label = 2;\n case 2:\n _state.trys.push([\n 2,\n 7,\n ,\n 8\n ]);\n parsed = void 0;\n if (!script.src) return [\n 3,\n 5\n ];\n return [\n 4,\n fetch(script.src)\n ];\n case 3:\n response = _state.sent();\n return [\n 4,\n response.json()\n ];\n case 4:\n parsed = _state.sent();\n return [\n 3,\n 6\n ];\n case 5:\n if (script.textContent) {\n parsed = JSON.parse(script.textContent);\n }\n _state.label = 6;\n case 6:\n if (parsed && (0,_openmrs_esm_globals__rspack_import_0.isOpenmrsRoutes)(parsed)) {\n maps.push(parsed);\n }\n return [\n 3,\n 8\n ];\n case 7:\n e = _state.sent();\n console.warn(\"[route-maps] Failed to parse routes from script tag at index \".concat(i), e);\n return [\n 3,\n 8\n ];\n case 8:\n i++;\n return [\n 3,\n 1\n ];\n case 9:\n return [\n 2,\n mergeRouteMaps(maps)\n ];\n }\n });\n })();\n}\nfunction mergeRouteMaps(maps) {\n var merged = {\n routes: {}\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = maps[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var map = _step.value;\n if (map && (typeof map === \"undefined\" ? \"undefined\" : _type_of(map)) === 'object' && !Array.isArray(map)) {\n Object.assign(merged.routes, map.routes);\n if (merged.version === undefined && map.version !== undefined) {\n merged.version = map.version;\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return merged;\n}\n/**\n * Reads all `openmrs-routes:*` entries from localStorage as an {@link OpenmrsRoutes}.\n * This is async because URL-valued overrides need to be fetched.\n */ function readOverrideMap() {\n return _async_to_generator(function() {\n var result, entries, i, key, raw, settled, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, entry, e;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n result = {\n version: undefined,\n routes: {}\n };\n _state.label = 1;\n case 1:\n _state.trys.push([\n 1,\n 3,\n ,\n 4\n ]);\n entries = [];\n for(i = 0; i < localStorage.length; i++){\n key = localStorage.key(i);\n if (key === null || key === void 0 ? void 0 : key.startsWith(OVERRIDE_PREFIX)) {\n raw = localStorage.getItem(key);\n if (raw) {\n entries.push({\n moduleName: key.slice(OVERRIDE_PREFIX.length),\n raw: raw\n });\n }\n }\n }\n return [\n 4,\n Promise.allSettled(entries.map(function(param) {\n var moduleName = param.moduleName, raw = param.raw;\n return _async_to_generator(function() {\n var parsed, response, fetched;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n parsed = JSON.parse(raw);\n if ((0,_openmrs_esm_globals__rspack_import_0.isOpenmrsAppRoutes)(parsed)) {\n return [\n 2,\n {\n moduleName: moduleName,\n routes: parsed\n }\n ];\n }\n if (!(typeof parsed === 'string' && parsed.startsWith('http'))) return [\n 3,\n 3\n ];\n return [\n 4,\n fetch(parsed)\n ];\n case 1:\n response = _state.sent();\n return [\n 4,\n response.json()\n ];\n case 2:\n fetched = _state.sent();\n if ((0,_openmrs_esm_globals__rspack_import_0.isOpenmrsAppRoutes)(fetched)) {\n return [\n 2,\n {\n moduleName: moduleName,\n routes: fetched\n }\n ];\n }\n throw new Error(\"\".concat(parsed, \" did not resolve to a valid OpenmrsAppRoutes object\"));\n case 3:\n throw new Error(\"Override for \".concat(moduleName, \" is neither a valid routes object nor a URL\"));\n }\n });\n })();\n }))\n ];\n case 2:\n settled = _state.sent();\n _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(_iterator = settled[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n entry = _step.value;\n if (entry.status === 'fulfilled') {\n result['routes'][entry.value.moduleName] = entry.value.routes;\n } else {\n console.warn('[route-maps] Failed to load route override', entry.reason);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return [\n 3,\n 4\n ];\n case 3:\n e = _state.sent();\n console.warn('[route-maps] Failed to read route overrides from localStorage', e);\n return [\n 3,\n 4\n ];\n case 4:\n return [\n 2,\n result\n ];\n }\n });\n })();\n}\n/**\n * Returns the route map for the current page. In dev mode, this merges\n * the base map with the override snapshot captured at page load.\n */ function getCurrentRouteMap() {\n return _async_to_generator(function() {\n var base, overrides, _tmp;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n return [\n 4,\n readBaseMap()\n ];\n case 1:\n base = _state.sent();\n if (!devMode) {\n return [\n 2,\n base\n ];\n }\n if (!(initialOverrideSnapshot !== null && initialOverrideSnapshot !== void 0)) return [\n 3,\n 2\n ];\n _tmp = initialOverrideSnapshot;\n return [\n 3,\n 4\n ];\n case 2:\n return [\n 4,\n readOverrideMap()\n ];\n case 3:\n _tmp = _state.sent();\n _state.label = 4;\n case 4:\n overrides = _tmp;\n return [\n 2,\n mergeRouteMaps([\n base,\n overrides\n ])\n ];\n }\n });\n })();\n}\n/**\n * Returns the base route map from the DOM without any overrides applied.\n */ function getRouteMapDefaultMap() {\n return _async_to_generator(function() {\n return _ts_generator(this, function(_state) {\n return [\n 2,\n readBaseMap()\n ];\n });\n })();\n}\n/**\n * Returns what the route map will look like on the next page load, including\n * any overrides that have been added/removed since the page loaded.\n * In production, this is the same as the base map.\n */ function getRouteMapNextPageMap() {\n return _async_to_generator(function() {\n var base, _tmp;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n if (!devMode) {\n return [\n 2,\n readBaseMap()\n ];\n }\n return [\n 4,\n readBaseMap()\n ];\n case 1:\n base = _state.sent();\n _tmp = [\n base\n ];\n return [\n 4,\n readOverrideMap()\n ];\n case 2:\n return [\n 2,\n mergeRouteMaps.apply(void 0, [\n _tmp.concat([\n _state.sent()\n ])\n ])\n ];\n }\n });\n })();\n}\n/**\n * Returns the current raw override entries from localStorage.\n * In production, returns an empty object.\n */ function getRouteMapOverrideMap() {\n if (!devMode) {\n return {};\n }\n var result = {};\n try {\n for(var i = 0; i < localStorage.length; i++){\n var key = localStorage.key(i);\n if (key === null || key === void 0 ? void 0 : key.startsWith(OVERRIDE_PREFIX)) {\n var value = localStorage.getItem(key);\n if (value) {\n result[key.slice(OVERRIDE_PREFIX.length)] = value;\n }\n }\n }\n } catch (e) {\n console.warn('[route-maps] Failed to read route overrides from localStorage', e);\n }\n return result;\n}\n/**\n * Adds a route override. In production, this is a no-op.\n * The app must be reloaded for overrides to take effect.\n *\n * @param moduleName The name of the module the routes are for\n * @param routes Either an {@link OpenmrsAppRoutes} object, a string that represents a JSON\n * version of an {@link OpenmrsAppRoutes} object, or a string or URL that resolves to a\n * JSON document that represents an {@link OpenmrsAppRoutes} object\n */ function addRouteMapOverride(moduleName, routes) {\n if (!devMode) {\n console.warn('[Security] Route overrides are disabled outside development mode.');\n return;\n }\n try {\n if (typeof routes === 'string') {\n if (routes.startsWith('http')) {\n localStorage.setItem(OVERRIDE_PREFIX + moduleName, JSON.stringify(routes));\n } else {\n var maybeRoutes = JSON.parse(routes);\n if ((0,_openmrs_esm_globals__rspack_import_0.isOpenmrsAppRoutes)(maybeRoutes)) {\n localStorage.setItem(OVERRIDE_PREFIX + moduleName, JSON.stringify(maybeRoutes));\n } else {\n console.error(\"The supplied routes for \".concat(moduleName, \" is not a valid OpenmrsAppRoutes object\"), routes);\n return;\n }\n }\n } else if (_instanceof(routes, URL)) {\n localStorage.setItem(OVERRIDE_PREFIX + moduleName, JSON.stringify(routes.toString()));\n } else if ((0,_openmrs_esm_globals__rspack_import_0.isOpenmrsAppRoutes)(routes)) {\n localStorage.setItem(OVERRIDE_PREFIX + moduleName, JSON.stringify(routes));\n } else {\n console.error(\"Override for \".concat(moduleName, \" is not in a valid format. Expected either a Javascript Object, a JSON string of a Javascript object, or a URL\"), routes);\n return;\n }\n window.dispatchEvent(new CustomEvent(CHANGE_EVENT));\n } catch (e) {\n console.warn('[route-maps] Failed to write route override to localStorage', e);\n }\n}\n/**\n * Removes a route override. In production, this is a no-op.\n * The app must be reloaded for the removal to take effect.\n *\n * @param moduleName The module to remove the overrides for\n */ function removeRouteMapOverride(moduleName) {\n if (!devMode) {\n console.warn('[Security] Route overrides are disabled outside development mode.');\n return;\n }\n try {\n localStorage.removeItem(OVERRIDE_PREFIX + moduleName);\n window.dispatchEvent(new CustomEvent(CHANGE_EVENT));\n } catch (e) {\n console.warn('[route-maps] Failed to remove route override from localStorage', e);\n }\n}\n/**\n * Clears all route overrides. In production, this is a no-op.\n * The app must be reloaded for the removal to take effect.\n */ function resetRouteMapOverrides() {\n if (!devMode) {\n console.warn('[Security] Route overrides are disabled outside development mode.');\n return;\n }\n try {\n var keysToRemove = [];\n for(var i = 0; i < localStorage.length; i++){\n var key = localStorage.key(i);\n if (key === null || key === void 0 ? void 0 : key.startsWith(OVERRIDE_PREFIX)) {\n keysToRemove.push(key);\n }\n }\n keysToRemove.forEach(function(key) {\n return localStorage.removeItem(key);\n });\n window.dispatchEvent(new CustomEvent(CHANGE_EVENT));\n } catch (e) {\n console.warn('[route-maps] Failed to clear route overrides from localStorage', e);\n }\n}\n/**\n * Initializes the route map override system with mode-aware behavior.\n *\n * In production (`window.spaEnv !== 'development'`), mutation functions are\n * no-ops and localStorage overrides are never consulted. In development, the\n * full override workflow is available.\n *\n * Must be called before any code that depends on the route map functions.\n */ var setupPromise = null;\nfunction setupRouteMapOverrides() {\n if (setupPromise) {\n return setupPromise;\n }\n devMode = window.spaEnv === 'development';\n if (devMode) {\n setupPromise = readOverrideMap().then(function(snapshot) {\n initialOverrideSnapshot = snapshot;\n });\n } else {\n setupPromise = Promise.resolve();\n }\n return setupPromise;\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyIS9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9wYWNrYWdlcy9mcmFtZXdvcmsvZXNtLWR5bmFtaWMtbG9hZGluZy9kaXN0L3JvdXRlLW1hcHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tZHluYW1pYy1sb2FkaW5nL2Rpc3Qvcm91dGUtbWFwcy5qcz83MzQxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBSb3V0ZSBNYXAgKi8gaW1wb3J0IHsgaXNPcGVubXJzQXBwUm91dGVzLCBpc09wZW5tcnNSb3V0ZXMgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWdsb2JhbHNcIjtcbmNvbnN0IE9WRVJSSURFX1BSRUZJWCA9ICdvcGVubXJzLXJvdXRlczonO1xuY29uc3QgQ0hBTkdFX0VWRU5UID0gJ29wZW5tcnMtcm91dGVzOmNoYW5nZSc7XG4vLyBTZXQgYnkgc2V0dXBSb3V0ZU1hcE92ZXJyaWRlcygpOyBjb250cm9scyB3aGV0aGVyIG92ZXJyaWRlIGZ1bmN0aW9uYWxpdHkgaXMgYWN0aXZlLlxubGV0IGRldk1vZGUgPSBmYWxzZTtcbi8vIFNuYXBzaG90IG9mIG92ZXJyaWRlcyBhdCBzZXR1cCB0aW1lIChtaXJyb3JzIHRoZSBpbXBvcnQtbWFwLW92ZXJyaWRlcyBwYXR0ZXJuOlxuLy8gZ2V0Q3VycmVudFJvdXRlTWFwIHJldHVybnMgdGhlIG92ZXJyaWRlcyBhcyB0aGV5IHdlcmUgd2hlbiB0aGUgcGFnZSBsb2FkZWQpLlxubGV0IGluaXRpYWxPdmVycmlkZVNuYXBzaG90ID0gbnVsbDtcbi8qKlxuICogUmVhZHMgYWxsIGA8c2NyaXB0IHR5cGU9XCJvcGVubXJzLXJvdXRlc1wiPmAgdGFncyBmcm9tIHRoZSBET00gYW5kIG1lcmdlc1xuICogdGhlbSBpbnRvIGEgc2luZ2xlIHtAbGluayBPcGVubXJzUm91dGVzfSBvYmplY3QuIFRhZ3Mgd2l0aCBhIGBzcmNgIGF0dHJpYnV0ZVxuICogYXJlIGZldGNoZWQ7IGlubGluZSB0YWdzIGhhdmUgdGhlaXIgYHRleHRDb250ZW50YCBwYXJzZWQgYXMgSlNPTi5cbiAqLyBhc3luYyBmdW5jdGlvbiByZWFkQmFzZU1hcCgpIHtcbiAgICBjb25zdCBzY3JpcHRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInNjcmlwdFt0eXBlPSdvcGVubXJzLXJvdXRlcyddXCIpO1xuICAgIGNvbnN0IG1hcHMgPSBbXTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGNvbnN0IHNjcmlwdCA9IHNjcmlwdHNbaV07XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkO1xuICAgICAgICAgICAgaWYgKHNjcmlwdC5zcmMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHNjcmlwdC5zcmMpO1xuICAgICAgICAgICAgICAgIHBhcnNlZCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2NyaXB0LnRleHRDb250ZW50KSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkID0gSlNPTi5wYXJzZShzY3JpcHQudGV4dENvbnRlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnNlZCAmJiBpc09wZW5tcnNSb3V0ZXMocGFyc2VkKSkge1xuICAgICAgICAgICAgICAgIG1hcHMucHVzaChwYXJzZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFtyb3V0ZS1tYXBzXSBGYWlsZWQgdG8gcGFyc2Ugcm91dGVzIGZyb20gc2NyaXB0IHRhZyBhdCBpbmRleCAke2l9YCwgZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1lcmdlUm91dGVNYXBzKG1hcHMpO1xufVxuZnVuY3Rpb24gbWVyZ2VSb3V0ZU1hcHMobWFwcykge1xuICAgIGNvbnN0IG1lcmdlZCA9IHtcbiAgICAgICAgcm91dGVzOiB7fVxuICAgIH07XG4gICAgZm9yIChjb25zdCBtYXAgb2YgbWFwcyl7XG4gICAgICAgIGlmIChtYXAgJiYgdHlwZW9mIG1hcCA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkobWFwKSkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihtZXJnZWQucm91dGVzLCBtYXAucm91dGVzKTtcbiAgICAgICAgICAgIGlmIChtZXJnZWQudmVyc2lvbiA9PT0gdW5kZWZpbmVkICYmIG1hcC52ZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBtZXJnZWQudmVyc2lvbiA9IG1hcC52ZXJzaW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtZXJnZWQ7XG59XG4vKipcbiAqIFJlYWRzIGFsbCBgb3Blbm1ycy1yb3V0ZXM6KmAgZW50cmllcyBmcm9tIGxvY2FsU3RvcmFnZSBhcyBhbiB7QGxpbmsgT3Blbm1yc1JvdXRlc30uXG4gKiBUaGlzIGlzIGFzeW5jIGJlY2F1c2UgVVJMLXZhbHVlZCBvdmVycmlkZXMgbmVlZCB0byBiZSBmZXRjaGVkLlxuICovIGFzeW5jIGZ1bmN0aW9uIHJlYWRPdmVycmlkZU1hcCgpIHtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIHZlcnNpb246IHVuZGVmaW5lZCxcbiAgICAgICAgcm91dGVzOiB7fVxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IFtdO1xuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgbG9jYWxTdG9yYWdlLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGxvY2FsU3RvcmFnZS5rZXkoaSk7XG4gICAgICAgICAgICBpZiAoa2V5Py5zdGFydHNXaXRoKE9WRVJSSURFX1BSRUZJWCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByYXcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgICAgICAgICAgIGlmIChyYXcpIHtcbiAgICAgICAgICAgICAgICAgICAgZW50cmllcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZU5hbWU6IGtleS5zbGljZShPVkVSUklERV9QUkVGSVgubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJhd1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2V0dGxlZCA9IGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChlbnRyaWVzLm1hcChhc3luYyAoeyBtb2R1bGVOYW1lLCByYXcgfSk9PntcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmF3KTtcbiAgICAgICAgICAgIGlmIChpc09wZW5tcnNBcHBSb3V0ZXMocGFyc2VkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlczogcGFyc2VkXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgcGFyc2VkID09PSAnc3RyaW5nJyAmJiBwYXJzZWQuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChwYXJzZWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZldGNoZWQgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzT3Blbm1yc0FwcFJvdXRlcyhmZXRjaGVkKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlczogZmV0Y2hlZFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7cGFyc2VkfSBkaWQgbm90IHJlc29sdmUgdG8gYSB2YWxpZCBPcGVubXJzQXBwUm91dGVzIG9iamVjdGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBPdmVycmlkZSBmb3IgJHttb2R1bGVOYW1lfSBpcyBuZWl0aGVyIGEgdmFsaWQgcm91dGVzIG9iamVjdCBub3IgYSBVUkxgKTtcbiAgICAgICAgfSkpO1xuICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHNldHRsZWQpe1xuICAgICAgICAgICAgaWYgKGVudHJ5LnN0YXR1cyA9PT0gJ2Z1bGZpbGxlZCcpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRbJ3JvdXRlcyddW2VudHJ5LnZhbHVlLm1vZHVsZU5hbWVdID0gZW50cnkudmFsdWUucm91dGVzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tyb3V0ZS1tYXBzXSBGYWlsZWQgdG8gbG9hZCByb3V0ZSBvdmVycmlkZScsIGVudHJ5LnJlYXNvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignW3JvdXRlLW1hcHNdIEZhaWxlZCB0byByZWFkIHJvdXRlIG92ZXJyaWRlcyBmcm9tIGxvY2FsU3RvcmFnZScsIGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSByb3V0ZSBtYXAgZm9yIHRoZSBjdXJyZW50IHBhZ2UuIEluIGRldiBtb2RlLCB0aGlzIG1lcmdlc1xuICogdGhlIGJhc2UgbWFwIHdpdGggdGhlIG92ZXJyaWRlIHNuYXBzaG90IGNhcHR1cmVkIGF0IHBhZ2UgbG9hZC5cbiAqLyBleHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Q3VycmVudFJvdXRlTWFwKCkge1xuICAgIGNvbnN0IGJhc2UgPSBhd2FpdCByZWFkQmFzZU1hcCgpO1xuICAgIGlmICghZGV2TW9kZSkge1xuICAgICAgICByZXR1cm4gYmFzZTtcbiAgICB9XG4gICAgY29uc3Qgb3ZlcnJpZGVzID0gaW5pdGlhbE92ZXJyaWRlU25hcHNob3QgPz8gYXdhaXQgcmVhZE92ZXJyaWRlTWFwKCk7XG4gICAgcmV0dXJuIG1lcmdlUm91dGVNYXBzKFtcbiAgICAgICAgYmFzZSxcbiAgICAgICAgb3ZlcnJpZGVzXG4gICAgXSk7XG59XG4vKipcbiAqIFJldHVybnMgdGhlIGJhc2Ugcm91dGUgbWFwIGZyb20gdGhlIERPTSB3aXRob3V0IGFueSBvdmVycmlkZXMgYXBwbGllZC5cbiAqLyBleHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Um91dGVNYXBEZWZhdWx0TWFwKCkge1xuICAgIHJldHVybiByZWFkQmFzZU1hcCgpO1xufVxuLyoqXG4gKiBSZXR1cm5zIHdoYXQgdGhlIHJvdXRlIG1hcCB3aWxsIGxvb2sgbGlrZSBvbiB0aGUgbmV4dCBwYWdlIGxvYWQsIGluY2x1ZGluZ1xuICogYW55IG92ZXJyaWRlcyB0aGF0IGhhdmUgYmVlbiBhZGRlZC9yZW1vdmVkIHNpbmNlIHRoZSBwYWdlIGxvYWRlZC5cbiAqIEluIHByb2R1Y3Rpb24sIHRoaXMgaXMgdGhlIHNhbWUgYXMgdGhlIGJhc2UgbWFwLlxuICovIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSb3V0ZU1hcE5leHRQYWdlTWFwKCkge1xuICAgIGlmICghZGV2TW9kZSkge1xuICAgICAgICByZXR1cm4gcmVhZEJhc2VNYXAoKTtcbiAgICB9XG4gICAgY29uc3QgYmFzZSA9IGF3YWl0IHJlYWRCYXNlTWFwKCk7XG4gICAgcmV0dXJuIG1lcmdlUm91dGVNYXBzKFtcbiAgICAgICAgYmFzZSxcbiAgICAgICAgYXdhaXQgcmVhZE92ZXJyaWRlTWFwKClcbiAgICBdKTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgY3VycmVudCByYXcgb3ZlcnJpZGUgZW50cmllcyBmcm9tIGxvY2FsU3RvcmFnZS5cbiAqIEluIHByb2R1Y3Rpb24sIHJldHVybnMgYW4gZW1wdHkgb2JqZWN0LlxuICovIGV4cG9ydCBmdW5jdGlvbiBnZXRSb3V0ZU1hcE92ZXJyaWRlTWFwKCkge1xuICAgIGlmICghZGV2TW9kZSkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIHRyeSB7XG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBsb2NhbFN0b3JhZ2UubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gbG9jYWxTdG9yYWdlLmtleShpKTtcbiAgICAgICAgICAgIGlmIChrZXk/LnN0YXJ0c1dpdGgoT1ZFUlJJREVfUFJFRklYKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleS5zbGljZShPVkVSUklERV9QUkVGSVgubGVuZ3RoKV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignW3JvdXRlLW1hcHNdIEZhaWxlZCB0byByZWFkIHJvdXRlIG92ZXJyaWRlcyBmcm9tIGxvY2FsU3RvcmFnZScsIGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuLyoqXG4gKiBBZGRzIGEgcm91dGUgb3ZlcnJpZGUuIEluIHByb2R1Y3Rpb24sIHRoaXMgaXMgYSBuby1vcC5cbiAqIFRoZSBhcHAgbXVzdCBiZSByZWxvYWRlZCBmb3Igb3ZlcnJpZGVzIHRvIHRha2UgZWZmZWN0LlxuICpcbiAqIEBwYXJhbSBtb2R1bGVOYW1lIFRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgdGhlIHJvdXRlcyBhcmUgZm9yXG4gKiBAcGFyYW0gcm91dGVzIEVpdGhlciBhbiB7QGxpbmsgT3Blbm1yc0FwcFJvdXRlc30gb2JqZWN0LCBhIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgYSBKU09OXG4gKiAgdmVyc2lvbiBvZiBhbiB7QGxpbmsgT3Blbm1yc0FwcFJvdXRlc30gb2JqZWN0LCBvciBhIHN0cmluZyBvciBVUkwgdGhhdCByZXNvbHZlcyB0byBhXG4gKiAgSlNPTiBkb2N1bWVudCB0aGF0IHJlcHJlc2VudHMgYW4ge0BsaW5rIE9wZW5tcnNBcHBSb3V0ZXN9IG9iamVjdFxuICovIGV4cG9ydCBmdW5jdGlvbiBhZGRSb3V0ZU1hcE92ZXJyaWRlKG1vZHVsZU5hbWUsIHJvdXRlcykge1xuICAgIGlmICghZGV2TW9kZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tTZWN1cml0eV0gUm91dGUgb3ZlcnJpZGVzIGFyZSBkaXNhYmxlZCBvdXRzaWRlIGRldmVsb3BtZW50IG1vZGUuJyk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiByb3V0ZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAocm91dGVzLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKE9WRVJSSURFX1BSRUZJWCArIG1vZHVsZU5hbWUsIEpTT04uc3RyaW5naWZ5KHJvdXRlcykpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXliZVJvdXRlcyA9IEpTT04ucGFyc2Uocm91dGVzKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNPcGVubXJzQXBwUm91dGVzKG1heWJlUm91dGVzKSkge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShPVkVSUklERV9QUkVGSVggKyBtb2R1bGVOYW1lLCBKU09OLnN0cmluZ2lmeShtYXliZVJvdXRlcykpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFRoZSBzdXBwbGllZCByb3V0ZXMgZm9yICR7bW9kdWxlTmFtZX0gaXMgbm90IGEgdmFsaWQgT3Blbm1yc0FwcFJvdXRlcyBvYmplY3RgLCByb3V0ZXMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHJvdXRlcyBpbnN0YW5jZW9mIFVSTCkge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oT1ZFUlJJREVfUFJFRklYICsgbW9kdWxlTmFtZSwgSlNPTi5zdHJpbmdpZnkocm91dGVzLnRvU3RyaW5nKCkpKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc09wZW5tcnNBcHBSb3V0ZXMocm91dGVzKSkge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oT1ZFUlJJREVfUFJFRklYICsgbW9kdWxlTmFtZSwgSlNPTi5zdHJpbmdpZnkocm91dGVzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBPdmVycmlkZSBmb3IgJHttb2R1bGVOYW1lfSBpcyBub3QgaW4gYSB2YWxpZCBmb3JtYXQuIEV4cGVjdGVkIGVpdGhlciBhIEphdmFzY3JpcHQgT2JqZWN0LCBhIEpTT04gc3RyaW5nIG9mIGEgSmF2YXNjcmlwdCBvYmplY3QsIG9yIGEgVVJMYCwgcm91dGVzKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoQ0hBTkdFX0VWRU5UKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tyb3V0ZS1tYXBzXSBGYWlsZWQgdG8gd3JpdGUgcm91dGUgb3ZlcnJpZGUgdG8gbG9jYWxTdG9yYWdlJywgZSk7XG4gICAgfVxufVxuLyoqXG4gKiBSZW1vdmVzIGEgcm91dGUgb3ZlcnJpZGUuIEluIHByb2R1Y3Rpb24sIHRoaXMgaXMgYSBuby1vcC5cbiAqIFRoZSBhcHAgbXVzdCBiZSByZWxvYWRlZCBmb3IgdGhlIHJlbW92YWwgdG8gdGFrZSBlZmZlY3QuXG4gKlxuICogQHBhcmFtIG1vZHVsZU5hbWUgVGhlIG1vZHVsZSB0byByZW1vdmUgdGhlIG92ZXJyaWRlcyBmb3JcbiAqLyBleHBvcnQgZnVuY3Rpb24gcmVtb3ZlUm91dGVNYXBPdmVycmlkZShtb2R1bGVOYW1lKSB7XG4gICAgaWYgKCFkZXZNb2RlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignW1NlY3VyaXR5XSBSb3V0ZSBvdmVycmlkZXMgYXJlIGRpc2FibGVkIG91dHNpZGUgZGV2ZWxvcG1lbnQgbW9kZS4nKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShPVkVSUklERV9QUkVGSVggKyBtb2R1bGVOYW1lKTtcbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KENIQU5HRV9FVkVOVCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdbcm91dGUtbWFwc10gRmFpbGVkIHRvIHJlbW92ZSByb3V0ZSBvdmVycmlkZSBmcm9tIGxvY2FsU3RvcmFnZScsIGUpO1xuICAgIH1cbn1cbi8qKlxuICogQ2xlYXJzIGFsbCByb3V0ZSBvdmVycmlkZXMuIEluIHByb2R1Y3Rpb24sIHRoaXMgaXMgYSBuby1vcC5cbiAqIFRoZSBhcHAgbXVzdCBiZSByZWxvYWRlZCBmb3IgdGhlIHJlbW92YWwgdG8gdGFrZSBlZmZlY3QuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHJlc2V0Um91dGVNYXBPdmVycmlkZXMoKSB7XG4gICAgaWYgKCFkZXZNb2RlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignW1NlY3VyaXR5XSBSb3V0ZSBvdmVycmlkZXMgYXJlIGRpc2FibGVkIG91dHNpZGUgZGV2ZWxvcG1lbnQgbW9kZS4nKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBjb25zdCBrZXlzVG9SZW1vdmUgPSBbXTtcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGxvY2FsU3RvcmFnZS5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBsb2NhbFN0b3JhZ2Uua2V5KGkpO1xuICAgICAgICAgICAgaWYgKGtleT8uc3RhcnRzV2l0aChPVkVSUklERV9QUkVGSVgpKSB7XG4gICAgICAgICAgICAgICAga2V5c1RvUmVtb3ZlLnB1c2goa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBrZXlzVG9SZW1vdmUuZm9yRWFjaCgoa2V5KT0+bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KSk7XG4gICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChDSEFOR0VfRVZFTlQpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignW3JvdXRlLW1hcHNdIEZhaWxlZCB0byBjbGVhciByb3V0ZSBvdmVycmlkZXMgZnJvbSBsb2NhbFN0b3JhZ2UnLCBlKTtcbiAgICB9XG59XG4vKipcbiAqIEluaXRpYWxpemVzIHRoZSByb3V0ZSBtYXAgb3ZlcnJpZGUgc3lzdGVtIHdpdGggbW9kZS1hd2FyZSBiZWhhdmlvci5cbiAqXG4gKiBJbiBwcm9kdWN0aW9uIChgd2luZG93LnNwYUVudiAhPT0gJ2RldmVsb3BtZW50J2ApLCBtdXRhdGlvbiBmdW5jdGlvbnMgYXJlXG4gKiBuby1vcHMgYW5kIGxvY2FsU3RvcmFnZSBvdmVycmlkZXMgYXJlIG5ldmVyIGNvbnN1bHRlZC4gSW4gZGV2ZWxvcG1lbnQsIHRoZVxuICogZnVsbCBvdmVycmlkZSB3b3JrZmxvdyBpcyBhdmFpbGFibGUuXG4gKlxuICogTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueSBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgcm91dGUgbWFwIGZ1bmN0aW9ucy5cbiAqLyBsZXQgc2V0dXBQcm9taXNlID0gbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBzZXR1cFJvdXRlTWFwT3ZlcnJpZGVzKCkge1xuICAgIGlmIChzZXR1cFByb21pc2UpIHtcbiAgICAgICAgcmV0dXJuIHNldHVwUHJvbWlzZTtcbiAgICB9XG4gICAgZGV2TW9kZSA9IHdpbmRvdy5zcGFFbnYgPT09ICdkZXZlbG9wbWVudCc7XG4gICAgaWYgKGRldk1vZGUpIHtcbiAgICAgICAgc2V0dXBQcm9taXNlID0gcmVhZE92ZXJyaWRlTWFwKCkudGhlbigoc25hcHNob3QpPT57XG4gICAgICAgICAgICBpbml0aWFsT3ZlcnJpZGVTbmFwc2hvdCA9IHNuYXBzaG90O1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzZXR1cFByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG4gICAgcmV0dXJuIHNldHVwUHJvbWlzZTtcbn1cbiJdLCJuYW1lcyI6WyJpc09wZW5tcnNBcHBSb3V0ZXMiLCJpc09wZW5tcnNSb3V0ZXMiLCJPVkVSUklERV9QUkVGSVgiLCJDSEFOR0VfRVZFTlQiLCJkZXZNb2RlIiwiaW5pdGlhbE92ZXJyaWRlU25hcHNob3QiLCJyZWFkQmFzZU1hcCIsInNjcmlwdHMiLCJtYXBzIiwiaSIsInNjcmlwdCIsInBhcnNlZCIsInJlc3BvbnNlIiwiZSIsImRvY3VtZW50IiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIm1lcmdlUm91dGVNYXBzIiwibWVyZ2VkIiwiX2l0ZXJhdG9yRXJyb3IiLCJtYXAiLCJfdHlwZV9vZiIsIkFycmF5IiwiT2JqZWN0IiwidW5kZWZpbmVkIiwicmVhZE92ZXJyaWRlTWFwIiwicmVzdWx0IiwiZW50cmllcyIsImtleSIsInJhdyIsInNldHRsZWQiLCJlbnRyeSIsImxvY2FsU3RvcmFnZSIsIlByb21pc2UiLCJtb2R1bGVOYW1lIiwiZmV0Y2hlZCIsIkVycm9yIiwiZ2V0Q3VycmVudFJvdXRlTWFwIiwiYmFzZSIsIm92ZXJyaWRlcyIsImdldFJvdXRlTWFwRGVmYXVsdE1hcCIsImdldFJvdXRlTWFwTmV4dFBhZ2VNYXAiLCJnZXRSb3V0ZU1hcE92ZXJyaWRlTWFwIiwidmFsdWUiLCJhZGRSb3V0ZU1hcE92ZXJyaWRlIiwicm91dGVzIiwibWF5YmVSb3V0ZXMiLCJfaW5zdGFuY2VvZiIsIlVSTCIsIndpbmRvdyIsIkN1c3RvbUV2ZW50IiwicmVtb3ZlUm91dGVNYXBPdmVycmlkZSIsInJlc2V0Um91dGVNYXBPdmVycmlkZXMiLCJrZXlzVG9SZW1vdmUiLCJzZXR1cFByb21pc2UiLCJzZXR1cFJvdXRlTWFwT3ZlcnJpZGVzIiwic25hcHNob3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnQ0FBZ0MsR0FBOEU7QUFDOUcsSUFBTUUsa0JBQWtCO0FBQ3hCLElBQU1DLGVBQWU7QUFDckIsc0ZBQXNGO0FBQ3RGLElBQUlDLFVBQVU7QUFDZCxpRkFBaUY7QUFDakYsK0VBQStFO0FBQy9FLElBQUlDLDBCQUEwQjtBQUM5Qjs7OztDQUlDLEdBQUcsU0FBZUM7O1lBQ1RDLFNBQ0FDLE1BQ0VDLEdBQ0VDLFFBRUVDLFFBRU1DLFVBUUxDOzs7O29CQWZQTixVQUFVTyxTQUFTLGdCQUFnQixDQUFDO29CQUNwQ047b0JBQ0VDLElBQUk7Ozt5QkFBR0EsQ0FBQUEsSUFBSUYsUUFBUSxNQUFLOzs7O29CQUN0QkcsU0FBU0gsT0FBTyxDQUFDRSxFQUFFOzs7Ozs7Ozs7b0JBRWpCRSxTQUFBQSxLQUFBQTt5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\n//# sourceURL=webpack-internal:///../../framework/esm-dynamic-loading/dist/route-maps.js\n\n}");
|
|
5633
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n addRouteMapOverride: () => (addRouteMapOverride),\n getCurrentRouteMap: () => (getCurrentRouteMap),\n getRouteMapDefaultMap: () => (getRouteMapDefaultMap),\n getRouteMapNextPageMap: () => (getRouteMapNextPageMap),\n getRouteMapOverrideMap: () => (getRouteMapOverrideMap),\n removeRouteMapOverride: () => (removeRouteMapOverride),\n resetRouteMapOverrides: () => (resetRouteMapOverrides),\n setupRouteMapOverrides: () => (setupRouteMapOverrides)\n});\n/* import */ var _openmrs_esm_globals__rspack_import_0 = __webpack_require__(\"../../framework/esm-globals/dist/index.js\");\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nfunction _ts_generator(thisArg, body) {\n var f, y, t, _ = {\n label: 0,\n sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n }, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype), d = Object.defineProperty;\n return d(g, \"next\", {\n value: verb(0)\n }), d(g, \"throw\", {\n value: verb(1)\n }), d(g, \"return\", {\n value: verb(2)\n }), typeof Symbol === \"function\" && d(g, Symbol.iterator, {\n value: function() {\n return this;\n }\n }), g;\n function verb(n) {\n return function(v) {\n return step([\n n,\n v\n ]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while(g && (g = 0, op[0] && (_ = 0)), _)try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [\n op[0] & 2,\n t.value\n ];\n switch(op[0]){\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [\n 0\n ];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [\n 6,\n e\n ];\n y = 0;\n } finally{\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\n/** @module @category Route Map */ \nvar OVERRIDE_PREFIX = 'openmrs-routes:';\nvar CHANGE_EVENT = 'openmrs-routes:change';\n// Set by setupRouteMapOverrides(); controls whether override functionality is active.\nvar devMode = false;\n// Snapshot of overrides at setup time (mirrors the import-map-overrides pattern:\n// getCurrentRouteMap returns the overrides as they were when the page loaded).\nvar initialOverrideSnapshot = null;\n// Memoizes the base map so that the routes registry is fetched at most once per page load.\nvar baseMapPromise = null;\n/**\n * Reads all `<script type=\"openmrs-routes\">` tags from the DOM and merges\n * them into a single {@link OpenmrsRoutes} object. Tags with a `src` attribute\n * are fetched; inline tags have their `textContent` parsed as JSON.\n *\n * A read in which no tag threw is cached and reused by all later callers. A read that lost a\n * tag to an error is returned as-is but not cached, so that a transient network failure doesn't\n * leave the page with a permanently incomplete map. A tag that loads but fails validation is\n * dropped without invalidating the cache, since re-reading it would only fail the same way.\n */ function readBaseMap() {\n return _async_to_generator(function() {\n return _ts_generator(this, function(_state) {\n baseMapPromise !== null && baseMapPromise !== void 0 ? baseMapPromise : baseMapPromise = loadBaseMap().then(function(param) {\n var map = param.map, complete = param.complete;\n if (!complete) {\n baseMapPromise = null;\n }\n return map;\n });\n return [\n 2,\n baseMapPromise\n ];\n });\n })();\n}\nfunction loadBaseMap() {\n return _async_to_generator(function() {\n var scripts, maps, complete, i, script, parsed, response, e;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n scripts = document.querySelectorAll(\"script[type='openmrs-routes']\");\n maps = [];\n complete = true;\n i = 0;\n _state.label = 1;\n case 1:\n if (!(i < scripts.length)) return [\n 3,\n 9\n ];\n script = scripts[i];\n _state.label = 2;\n case 2:\n _state.trys.push([\n 2,\n 7,\n ,\n 8\n ]);\n parsed = void 0;\n if (!script.src) return [\n 3,\n 5\n ];\n return [\n 4,\n fetch(script.src)\n ];\n case 3:\n response = _state.sent();\n if (!response.ok) {\n throw new Error(\"Request for \".concat(script.src, \" returned \").concat(response.status, \" \").concat(response.statusText));\n }\n return [\n 4,\n response.json()\n ];\n case 4:\n parsed = _state.sent();\n return [\n 3,\n 6\n ];\n case 5:\n if (script.textContent) {\n parsed = JSON.parse(script.textContent);\n }\n _state.label = 6;\n case 6:\n if (parsed && (0,_openmrs_esm_globals__rspack_import_0.isOpenmrsRoutes)(parsed)) {\n maps.push(parsed);\n }\n return [\n 3,\n 8\n ];\n case 7:\n e = _state.sent();\n complete = false;\n console.warn(\"[route-maps] Failed to parse routes from script tag at index \".concat(i), e);\n return [\n 3,\n 8\n ];\n case 8:\n i++;\n return [\n 3,\n 1\n ];\n case 9:\n return [\n 2,\n {\n map: mergeRouteMaps(maps),\n complete: complete\n }\n ];\n }\n });\n })();\n}\nfunction mergeRouteMaps(maps) {\n var merged = {\n routes: {}\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = maps[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var map = _step.value;\n if (map && (typeof map === \"undefined\" ? \"undefined\" : _type_of(map)) === 'object' && !Array.isArray(map)) {\n Object.assign(merged.routes, map.routes);\n if (merged.version === undefined && map.version !== undefined) {\n merged.version = map.version;\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return merged;\n}\n/**\n * Reads all `openmrs-routes:*` entries from localStorage as an {@link OpenmrsRoutes}.\n * This is async because URL-valued overrides need to be fetched.\n */ function readOverrideMap() {\n return _async_to_generator(function() {\n var result, entries, i, key, raw, settled, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, entry, e;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n result = {\n version: undefined,\n routes: {}\n };\n _state.label = 1;\n case 1:\n _state.trys.push([\n 1,\n 3,\n ,\n 4\n ]);\n entries = [];\n for(i = 0; i < localStorage.length; i++){\n key = localStorage.key(i);\n if (key === null || key === void 0 ? void 0 : key.startsWith(OVERRIDE_PREFIX)) {\n raw = localStorage.getItem(key);\n if (raw) {\n entries.push({\n moduleName: key.slice(OVERRIDE_PREFIX.length),\n raw: raw\n });\n }\n }\n }\n return [\n 4,\n Promise.allSettled(entries.map(function(param) {\n var moduleName = param.moduleName, raw = param.raw;\n return _async_to_generator(function() {\n var parsed, response, fetched;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n parsed = JSON.parse(raw);\n if ((0,_openmrs_esm_globals__rspack_import_0.isOpenmrsAppRoutes)(parsed)) {\n return [\n 2,\n {\n moduleName: moduleName,\n routes: parsed\n }\n ];\n }\n if (!(typeof parsed === 'string' && parsed.startsWith('http'))) return [\n 3,\n 3\n ];\n return [\n 4,\n fetch(parsed)\n ];\n case 1:\n response = _state.sent();\n return [\n 4,\n response.json()\n ];\n case 2:\n fetched = _state.sent();\n if ((0,_openmrs_esm_globals__rspack_import_0.isOpenmrsAppRoutes)(fetched)) {\n return [\n 2,\n {\n moduleName: moduleName,\n routes: fetched\n }\n ];\n }\n throw new Error(\"\".concat(parsed, \" did not resolve to a valid OpenmrsAppRoutes object\"));\n case 3:\n throw new Error(\"Override for \".concat(moduleName, \" is neither a valid routes object nor a URL\"));\n }\n });\n })();\n }))\n ];\n case 2:\n settled = _state.sent();\n _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(_iterator = settled[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n entry = _step.value;\n if (entry.status === 'fulfilled') {\n result['routes'][entry.value.moduleName] = entry.value.routes;\n } else {\n console.warn('[route-maps] Failed to load route override', entry.reason);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return [\n 3,\n 4\n ];\n case 3:\n e = _state.sent();\n console.warn('[route-maps] Failed to read route overrides from localStorage', e);\n return [\n 3,\n 4\n ];\n case 4:\n return [\n 2,\n result\n ];\n }\n });\n })();\n}\n/**\n * Returns the route map for the current page. In dev mode, this merges\n * the base map with the override snapshot captured at page load.\n */ function getCurrentRouteMap() {\n return _async_to_generator(function() {\n var base, overrides, _tmp;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n return [\n 4,\n readBaseMap()\n ];\n case 1:\n base = _state.sent();\n if (!devMode) {\n return [\n 2,\n base\n ];\n }\n if (!(initialOverrideSnapshot !== null && initialOverrideSnapshot !== void 0)) return [\n 3,\n 2\n ];\n _tmp = initialOverrideSnapshot;\n return [\n 3,\n 4\n ];\n case 2:\n return [\n 4,\n readOverrideMap()\n ];\n case 3:\n _tmp = _state.sent();\n _state.label = 4;\n case 4:\n overrides = _tmp;\n return [\n 2,\n mergeRouteMaps([\n base,\n overrides\n ])\n ];\n }\n });\n })();\n}\n/**\n * Returns the base route map from the DOM without any overrides applied.\n */ function getRouteMapDefaultMap() {\n return _async_to_generator(function() {\n return _ts_generator(this, function(_state) {\n return [\n 2,\n readBaseMap()\n ];\n });\n })();\n}\n/**\n * Returns what the route map will look like on the next page load, including\n * any overrides that have been added/removed since the page loaded.\n * In production, this is the same as the base map.\n */ function getRouteMapNextPageMap() {\n return _async_to_generator(function() {\n var base, _tmp;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n if (!devMode) {\n return [\n 2,\n readBaseMap()\n ];\n }\n return [\n 4,\n readBaseMap()\n ];\n case 1:\n base = _state.sent();\n _tmp = [\n base\n ];\n return [\n 4,\n readOverrideMap()\n ];\n case 2:\n return [\n 2,\n mergeRouteMaps.apply(void 0, [\n _tmp.concat([\n _state.sent()\n ])\n ])\n ];\n }\n });\n })();\n}\n/**\n * Returns the current raw override entries from localStorage.\n * In production, returns an empty object.\n */ function getRouteMapOverrideMap() {\n if (!devMode) {\n return {};\n }\n var result = {};\n try {\n for(var i = 0; i < localStorage.length; i++){\n var key = localStorage.key(i);\n if (key === null || key === void 0 ? void 0 : key.startsWith(OVERRIDE_PREFIX)) {\n var value = localStorage.getItem(key);\n if (value) {\n result[key.slice(OVERRIDE_PREFIX.length)] = value;\n }\n }\n }\n } catch (e) {\n console.warn('[route-maps] Failed to read route overrides from localStorage', e);\n }\n return result;\n}\n/**\n * Adds a route override. In production, this is a no-op.\n * The app must be reloaded for overrides to take effect.\n *\n * @param moduleName The name of the module the routes are for\n * @param routes Either an {@link OpenmrsAppRoutes} object, a string that represents a JSON\n * version of an {@link OpenmrsAppRoutes} object, or a string or URL that resolves to a\n * JSON document that represents an {@link OpenmrsAppRoutes} object\n */ function addRouteMapOverride(moduleName, routes) {\n if (!devMode) {\n console.warn('[Security] Route overrides are disabled outside development mode.');\n return;\n }\n try {\n if (typeof routes === 'string') {\n if (routes.startsWith('http')) {\n localStorage.setItem(OVERRIDE_PREFIX + moduleName, JSON.stringify(routes));\n } else {\n var maybeRoutes = JSON.parse(routes);\n if ((0,_openmrs_esm_globals__rspack_import_0.isOpenmrsAppRoutes)(maybeRoutes)) {\n localStorage.setItem(OVERRIDE_PREFIX + moduleName, JSON.stringify(maybeRoutes));\n } else {\n console.error(\"The supplied routes for \".concat(moduleName, \" is not a valid OpenmrsAppRoutes object\"), routes);\n return;\n }\n }\n } else if (_instanceof(routes, URL)) {\n localStorage.setItem(OVERRIDE_PREFIX + moduleName, JSON.stringify(routes.toString()));\n } else if ((0,_openmrs_esm_globals__rspack_import_0.isOpenmrsAppRoutes)(routes)) {\n localStorage.setItem(OVERRIDE_PREFIX + moduleName, JSON.stringify(routes));\n } else {\n console.error(\"Override for \".concat(moduleName, \" is not in a valid format. Expected either a Javascript Object, a JSON string of a Javascript object, or a URL\"), routes);\n return;\n }\n window.dispatchEvent(new CustomEvent(CHANGE_EVENT));\n } catch (e) {\n console.warn('[route-maps] Failed to write route override to localStorage', e);\n }\n}\n/**\n * Removes a route override. In production, this is a no-op.\n * The app must be reloaded for the removal to take effect.\n *\n * @param moduleName The module to remove the overrides for\n */ function removeRouteMapOverride(moduleName) {\n if (!devMode) {\n console.warn('[Security] Route overrides are disabled outside development mode.');\n return;\n }\n try {\n localStorage.removeItem(OVERRIDE_PREFIX + moduleName);\n window.dispatchEvent(new CustomEvent(CHANGE_EVENT));\n } catch (e) {\n console.warn('[route-maps] Failed to remove route override from localStorage', e);\n }\n}\n/**\n * Clears all route overrides. In production, this is a no-op.\n * The app must be reloaded for the removal to take effect.\n */ function resetRouteMapOverrides() {\n if (!devMode) {\n console.warn('[Security] Route overrides are disabled outside development mode.');\n return;\n }\n try {\n var keysToRemove = [];\n for(var i = 0; i < localStorage.length; i++){\n var key = localStorage.key(i);\n if (key === null || key === void 0 ? void 0 : key.startsWith(OVERRIDE_PREFIX)) {\n keysToRemove.push(key);\n }\n }\n keysToRemove.forEach(function(key) {\n return localStorage.removeItem(key);\n });\n window.dispatchEvent(new CustomEvent(CHANGE_EVENT));\n } catch (e) {\n console.warn('[route-maps] Failed to clear route overrides from localStorage', e);\n }\n}\n/**\n * Initializes the route map override system with mode-aware behavior.\n *\n * In production (`window.spaEnv !== 'development'`), mutation functions are\n * no-ops and localStorage overrides are never consulted. In development, the\n * full override workflow is available.\n *\n * Must be called before any code that depends on the route map functions.\n */ var setupPromise = null;\nfunction setupRouteMapOverrides() {\n if (setupPromise) {\n return setupPromise;\n }\n devMode = window.spaEnv === 'development';\n if (devMode) {\n setupPromise = readOverrideMap().then(function(snapshot) {\n initialOverrideSnapshot = snapshot;\n });\n } else {\n setupPromise = Promise.resolve();\n }\n return setupPromise;\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyIS9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9wYWNrYWdlcy9mcmFtZXdvcmsvZXNtLWR5bmFtaWMtbG9hZGluZy9kaXN0L3JvdXRlLW1hcHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tZHluYW1pYy1sb2FkaW5nL2Rpc3Qvcm91dGUtbWFwcy5qcz83MzQxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBSb3V0ZSBNYXAgKi8gaW1wb3J0IHsgaXNPcGVubXJzQXBwUm91dGVzLCBpc09wZW5tcnNSb3V0ZXMgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWdsb2JhbHNcIjtcbmNvbnN0IE9WRVJSSURFX1BSRUZJWCA9ICdvcGVubXJzLXJvdXRlczonO1xuY29uc3QgQ0hBTkdFX0VWRU5UID0gJ29wZW5tcnMtcm91dGVzOmNoYW5nZSc7XG4vLyBTZXQgYnkgc2V0dXBSb3V0ZU1hcE92ZXJyaWRlcygpOyBjb250cm9scyB3aGV0aGVyIG92ZXJyaWRlIGZ1bmN0aW9uYWxpdHkgaXMgYWN0aXZlLlxubGV0IGRldk1vZGUgPSBmYWxzZTtcbi8vIFNuYXBzaG90IG9mIG92ZXJyaWRlcyBhdCBzZXR1cCB0aW1lIChtaXJyb3JzIHRoZSBpbXBvcnQtbWFwLW92ZXJyaWRlcyBwYXR0ZXJuOlxuLy8gZ2V0Q3VycmVudFJvdXRlTWFwIHJldHVybnMgdGhlIG92ZXJyaWRlcyBhcyB0aGV5IHdlcmUgd2hlbiB0aGUgcGFnZSBsb2FkZWQpLlxubGV0IGluaXRpYWxPdmVycmlkZVNuYXBzaG90ID0gbnVsbDtcbi8vIE1lbW9pemVzIHRoZSBiYXNlIG1hcCBzbyB0aGF0IHRoZSByb3V0ZXMgcmVnaXN0cnkgaXMgZmV0Y2hlZCBhdCBtb3N0IG9uY2UgcGVyIHBhZ2UgbG9hZC5cbmxldCBiYXNlTWFwUHJvbWlzZSA9IG51bGw7XG4vKipcbiAqIFJlYWRzIGFsbCBgPHNjcmlwdCB0eXBlPVwib3Blbm1ycy1yb3V0ZXNcIj5gIHRhZ3MgZnJvbSB0aGUgRE9NIGFuZCBtZXJnZXNcbiAqIHRoZW0gaW50byBhIHNpbmdsZSB7QGxpbmsgT3Blbm1yc1JvdXRlc30gb2JqZWN0LiBUYWdzIHdpdGggYSBgc3JjYCBhdHRyaWJ1dGVcbiAqIGFyZSBmZXRjaGVkOyBpbmxpbmUgdGFncyBoYXZlIHRoZWlyIGB0ZXh0Q29udGVudGAgcGFyc2VkIGFzIEpTT04uXG4gKlxuICogQSByZWFkIGluIHdoaWNoIG5vIHRhZyB0aHJldyBpcyBjYWNoZWQgYW5kIHJldXNlZCBieSBhbGwgbGF0ZXIgY2FsbGVycy4gQSByZWFkIHRoYXQgbG9zdCBhXG4gKiB0YWcgdG8gYW4gZXJyb3IgaXMgcmV0dXJuZWQgYXMtaXMgYnV0IG5vdCBjYWNoZWQsIHNvIHRoYXQgYSB0cmFuc2llbnQgbmV0d29yayBmYWlsdXJlIGRvZXNuJ3RcbiAqIGxlYXZlIHRoZSBwYWdlIHdpdGggYSBwZXJtYW5lbnRseSBpbmNvbXBsZXRlIG1hcC4gQSB0YWcgdGhhdCBsb2FkcyBidXQgZmFpbHMgdmFsaWRhdGlvbiBpc1xuICogZHJvcHBlZCB3aXRob3V0IGludmFsaWRhdGluZyB0aGUgY2FjaGUsIHNpbmNlIHJlLXJlYWRpbmcgaXQgd291bGQgb25seSBmYWlsIHRoZSBzYW1lIHdheS5cbiAqLyBhc3luYyBmdW5jdGlvbiByZWFkQmFzZU1hcCgpIHtcbiAgICBiYXNlTWFwUHJvbWlzZSA/PyAoYmFzZU1hcFByb21pc2UgPSBsb2FkQmFzZU1hcCgpLnRoZW4oKHsgbWFwLCBjb21wbGV0ZSB9KT0+e1xuICAgICAgICBpZiAoIWNvbXBsZXRlKSB7XG4gICAgICAgICAgICBiYXNlTWFwUHJvbWlzZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9KSk7XG4gICAgcmV0dXJuIGJhc2VNYXBQcm9taXNlO1xufVxuYXN5bmMgZnVuY3Rpb24gbG9hZEJhc2VNYXAoKSB7XG4gICAgY29uc3Qgc2NyaXB0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJzY3JpcHRbdHlwZT0nb3Blbm1ycy1yb3V0ZXMnXVwiKTtcbiAgICBjb25zdCBtYXBzID0gW107XG4gICAgbGV0IGNvbXBsZXRlID0gdHJ1ZTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGNvbnN0IHNjcmlwdCA9IHNjcmlwdHNbaV07XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkO1xuICAgICAgICAgICAgaWYgKHNjcmlwdC5zcmMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHNjcmlwdC5zcmMpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZXF1ZXN0IGZvciAke3NjcmlwdC5zcmN9IHJldHVybmVkICR7cmVzcG9uc2Uuc3RhdHVzfSAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBhcnNlZCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2NyaXB0LnRleHRDb250ZW50KSB7XG4gICAgICAgICAgICAgICAgcGFyc2VkID0gSlNPTi5wYXJzZShzY3JpcHQudGV4dENvbnRlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnNlZCAmJiBpc09wZW5tcnNSb3V0ZXMocGFyc2VkKSkge1xuICAgICAgICAgICAgICAgIG1hcHMucHVzaChwYXJzZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb21wbGV0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBbcm91dGUtbWFwc10gRmFpbGVkIHRvIHBhcnNlIHJvdXRlcyBmcm9tIHNjcmlwdCB0YWcgYXQgaW5kZXggJHtpfWAsIGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG1hcDogbWVyZ2VSb3V0ZU1hcHMobWFwcyksXG4gICAgICAgIGNvbXBsZXRlXG4gICAgfTtcbn1cbmZ1bmN0aW9uIG1lcmdlUm91dGVNYXBzKG1hcHMpIHtcbiAgICBjb25zdCBtZXJnZWQgPSB7XG4gICAgICAgIHJvdXRlczoge31cbiAgICB9O1xuICAgIGZvciAoY29uc3QgbWFwIG9mIG1hcHMpe1xuICAgICAgICBpZiAobWFwICYmIHR5cGVvZiBtYXAgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KG1hcCkpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24obWVyZ2VkLnJvdXRlcywgbWFwLnJvdXRlcyk7XG4gICAgICAgICAgICBpZiAobWVyZ2VkLnZlcnNpb24gPT09IHVuZGVmaW5lZCAmJiBtYXAudmVyc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgbWVyZ2VkLnZlcnNpb24gPSBtYXAudmVyc2lvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VkO1xufVxuLyoqXG4gKiBSZWFkcyBhbGwgYG9wZW5tcnMtcm91dGVzOipgIGVudHJpZXMgZnJvbSBsb2NhbFN0b3JhZ2UgYXMgYW4ge0BsaW5rIE9wZW5tcnNSb3V0ZXN9LlxuICogVGhpcyBpcyBhc3luYyBiZWNhdXNlIFVSTC12YWx1ZWQgb3ZlcnJpZGVzIG5lZWQgdG8gYmUgZmV0Y2hlZC5cbiAqLyBhc3luYyBmdW5jdGlvbiByZWFkT3ZlcnJpZGVNYXAoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICB2ZXJzaW9uOiB1bmRlZmluZWQsXG4gICAgICAgIHJvdXRlczoge31cbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGVudHJpZXMgPSBbXTtcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGxvY2FsU3RvcmFnZS5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBsb2NhbFN0b3JhZ2Uua2V5KGkpO1xuICAgICAgICAgICAgaWYgKGtleT8uc3RhcnRzV2l0aChPVkVSUklERV9QUkVGSVgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmF3ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICAgICAgICAgICAgICBpZiAocmF3KSB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJpZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVOYW1lOiBrZXkuc2xpY2UoT1ZFUlJJREVfUFJFRklYLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgICAgICAgICByYXdcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNldHRsZWQgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoZW50cmllcy5tYXAoYXN5bmMgKHsgbW9kdWxlTmFtZSwgcmF3IH0pPT57XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHJhdyk7XG4gICAgICAgICAgICBpZiAoaXNPcGVubXJzQXBwUm91dGVzKHBhcnNlZCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBtb2R1bGVOYW1lLFxuICAgICAgICAgICAgICAgICAgICByb3V0ZXM6IHBhcnNlZFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHBhcnNlZCA9PT0gJ3N0cmluZycgJiYgcGFyc2VkLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2gocGFyc2VkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmZXRjaGVkID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgICAgICAgICAgIGlmIChpc09wZW5tcnNBcHBSb3V0ZXMoZmV0Y2hlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXM6IGZldGNoZWRcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3BhcnNlZH0gZGlkIG5vdCByZXNvbHZlIHRvIGEgdmFsaWQgT3Blbm1yc0FwcFJvdXRlcyBvYmplY3RgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgT3ZlcnJpZGUgZm9yICR7bW9kdWxlTmFtZX0gaXMgbmVpdGhlciBhIHZhbGlkIHJvdXRlcyBvYmplY3Qgbm9yIGEgVVJMYCk7XG4gICAgICAgIH0pKTtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBzZXR0bGVkKXtcbiAgICAgICAgICAgIGlmIChlbnRyeS5zdGF0dXMgPT09ICdmdWxmaWxsZWQnKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0Wydyb3V0ZXMnXVtlbnRyeS52YWx1ZS5tb2R1bGVOYW1lXSA9IGVudHJ5LnZhbHVlLnJvdXRlcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdbcm91dGUtbWFwc10gRmFpbGVkIHRvIGxvYWQgcm91dGUgb3ZlcnJpZGUnLCBlbnRyeS5yZWFzb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tyb3V0ZS1tYXBzXSBGYWlsZWQgdG8gcmVhZCByb3V0ZSBvdmVycmlkZXMgZnJvbSBsb2NhbFN0b3JhZ2UnLCBlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgcm91dGUgbWFwIGZvciB0aGUgY3VycmVudCBwYWdlLiBJbiBkZXYgbW9kZSwgdGhpcyBtZXJnZXNcbiAqIHRoZSBiYXNlIG1hcCB3aXRoIHRoZSBvdmVycmlkZSBzbmFwc2hvdCBjYXB0dXJlZCBhdCBwYWdlIGxvYWQuXG4gKi8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEN1cnJlbnRSb3V0ZU1hcCgpIHtcbiAgICBjb25zdCBiYXNlID0gYXdhaXQgcmVhZEJhc2VNYXAoKTtcbiAgICBpZiAoIWRldk1vZGUpIHtcbiAgICAgICAgcmV0dXJuIGJhc2U7XG4gICAgfVxuICAgIGNvbnN0IG92ZXJyaWRlcyA9IGluaXRpYWxPdmVycmlkZVNuYXBzaG90ID8/IGF3YWl0IHJlYWRPdmVycmlkZU1hcCgpO1xuICAgIHJldHVybiBtZXJnZVJvdXRlTWFwcyhbXG4gICAgICAgIGJhc2UsXG4gICAgICAgIG92ZXJyaWRlc1xuICAgIF0pO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIHJvdXRlIG1hcCBmcm9tIHRoZSBET00gd2l0aG91dCBhbnkgb3ZlcnJpZGVzIGFwcGxpZWQuXG4gKi8gZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFJvdXRlTWFwRGVmYXVsdE1hcCgpIHtcbiAgICByZXR1cm4gcmVhZEJhc2VNYXAoKTtcbn1cbi8qKlxuICogUmV0dXJucyB3aGF0IHRoZSByb3V0ZSBtYXAgd2lsbCBsb29rIGxpa2Ugb24gdGhlIG5leHQgcGFnZSBsb2FkLCBpbmNsdWRpbmdcbiAqIGFueSBvdmVycmlkZXMgdGhhdCBoYXZlIGJlZW4gYWRkZWQvcmVtb3ZlZCBzaW5jZSB0aGUgcGFnZSBsb2FkZWQuXG4gKiBJbiBwcm9kdWN0aW9uLCB0aGlzIGlzIHRoZSBzYW1lIGFzIHRoZSBiYXNlIG1hcC5cbiAqLyBleHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Um91dGVNYXBOZXh0UGFnZU1hcCgpIHtcbiAgICBpZiAoIWRldk1vZGUpIHtcbiAgICAgICAgcmV0dXJuIHJlYWRCYXNlTWFwKCk7XG4gICAgfVxuICAgIGNvbnN0IGJhc2UgPSBhd2FpdCByZWFkQmFzZU1hcCgpO1xuICAgIHJldHVybiBtZXJnZVJvdXRlTWFwcyhbXG4gICAgICAgIGJhc2UsXG4gICAgICAgIGF3YWl0IHJlYWRPdmVycmlkZU1hcCgpXG4gICAgXSk7XG59XG4vKipcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgcmF3IG92ZXJyaWRlIGVudHJpZXMgZnJvbSBsb2NhbFN0b3JhZ2UuXG4gKiBJbiBwcm9kdWN0aW9uLCByZXR1cm5zIGFuIGVtcHR5IG9iamVjdC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0Um91dGVNYXBPdmVycmlkZU1hcCgpIHtcbiAgICBpZiAoIWRldk1vZGUpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICB0cnkge1xuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgbG9jYWxTdG9yYWdlLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGxvY2FsU3RvcmFnZS5rZXkoaSk7XG4gICAgICAgICAgICBpZiAoa2V5Py5zdGFydHNXaXRoKE9WRVJSSURFX1BSRUZJWCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXkuc2xpY2UoT1ZFUlJJREVfUFJFRklYLmxlbmd0aCldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tyb3V0ZS1tYXBzXSBGYWlsZWQgdG8gcmVhZCByb3V0ZSBvdmVycmlkZXMgZnJvbSBsb2NhbFN0b3JhZ2UnLCBlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbi8qKlxuICogQWRkcyBhIHJvdXRlIG92ZXJyaWRlLiBJbiBwcm9kdWN0aW9uLCB0aGlzIGlzIGEgbm8tb3AuXG4gKiBUaGUgYXBwIG11c3QgYmUgcmVsb2FkZWQgZm9yIG92ZXJyaWRlcyB0byB0YWtlIGVmZmVjdC5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlTmFtZSBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlIHRoZSByb3V0ZXMgYXJlIGZvclxuICogQHBhcmFtIHJvdXRlcyBFaXRoZXIgYW4ge0BsaW5rIE9wZW5tcnNBcHBSb3V0ZXN9IG9iamVjdCwgYSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIGEgSlNPTlxuICogIHZlcnNpb24gb2YgYW4ge0BsaW5rIE9wZW5tcnNBcHBSb3V0ZXN9IG9iamVjdCwgb3IgYSBzdHJpbmcgb3IgVVJMIHRoYXQgcmVzb2x2ZXMgdG8gYVxuICogIEpTT04gZG9jdW1lbnQgdGhhdCByZXByZXNlbnRzIGFuIHtAbGluayBPcGVubXJzQXBwUm91dGVzfSBvYmplY3RcbiAqLyBleHBvcnQgZnVuY3Rpb24gYWRkUm91dGVNYXBPdmVycmlkZShtb2R1bGVOYW1lLCByb3V0ZXMpIHtcbiAgICBpZiAoIWRldk1vZGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdbU2VjdXJpdHldIFJvdXRlIG92ZXJyaWRlcyBhcmUgZGlzYWJsZWQgb3V0c2lkZSBkZXZlbG9wbWVudCBtb2RlLicpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2Ygcm91dGVzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKHJvdXRlcy5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShPVkVSUklERV9QUkVGSVggKyBtb2R1bGVOYW1lLCBKU09OLnN0cmluZ2lmeShyb3V0ZXMpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF5YmVSb3V0ZXMgPSBKU09OLnBhcnNlKHJvdXRlcyk7XG4gICAgICAgICAgICAgICAgaWYgKGlzT3Blbm1yc0FwcFJvdXRlcyhtYXliZVJvdXRlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oT1ZFUlJJREVfUFJFRklYICsgbW9kdWxlTmFtZSwgSlNPTi5zdHJpbmdpZnkobWF5YmVSb3V0ZXMpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBUaGUgc3VwcGxpZWQgcm91dGVzIGZvciAke21vZHVsZU5hbWV9IGlzIG5vdCBhIHZhbGlkIE9wZW5tcnNBcHBSb3V0ZXMgb2JqZWN0YCwgcm91dGVzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChyb3V0ZXMgaW5zdGFuY2VvZiBVUkwpIHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKE9WRVJSSURFX1BSRUZJWCArIG1vZHVsZU5hbWUsIEpTT04uc3RyaW5naWZ5KHJvdXRlcy50b1N0cmluZygpKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNPcGVubXJzQXBwUm91dGVzKHJvdXRlcykpIHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKE9WRVJSSURFX1BSRUZJWCArIG1vZHVsZU5hbWUsIEpTT04uc3RyaW5naWZ5KHJvdXRlcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgT3ZlcnJpZGUgZm9yICR7bW9kdWxlTmFtZX0gaXMgbm90IGluIGEgdmFsaWQgZm9ybWF0LiBFeHBlY3RlZCBlaXRoZXIgYSBKYXZhc2NyaXB0IE9iamVjdCwgYSBKU09OIHN0cmluZyBvZiBhIEphdmFzY3JpcHQgb2JqZWN0LCBvciBhIFVSTGAsIHJvdXRlcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KENIQU5HRV9FVkVOVCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdbcm91dGUtbWFwc10gRmFpbGVkIHRvIHdyaXRlIHJvdXRlIG92ZXJyaWRlIHRvIGxvY2FsU3RvcmFnZScsIGUpO1xuICAgIH1cbn1cbi8qKlxuICogUmVtb3ZlcyBhIHJvdXRlIG92ZXJyaWRlLiBJbiBwcm9kdWN0aW9uLCB0aGlzIGlzIGEgbm8tb3AuXG4gKiBUaGUgYXBwIG11c3QgYmUgcmVsb2FkZWQgZm9yIHRoZSByZW1vdmFsIHRvIHRha2UgZWZmZWN0LlxuICpcbiAqIEBwYXJhbSBtb2R1bGVOYW1lIFRoZSBtb2R1bGUgdG8gcmVtb3ZlIHRoZSBvdmVycmlkZXMgZm9yXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVJvdXRlTWFwT3ZlcnJpZGUobW9kdWxlTmFtZSkge1xuICAgIGlmICghZGV2TW9kZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tTZWN1cml0eV0gUm91dGUgb3ZlcnJpZGVzIGFyZSBkaXNhYmxlZCBvdXRzaWRlIGRldmVsb3BtZW50IG1vZGUuJyk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oT1ZFUlJJREVfUFJFRklYICsgbW9kdWxlTmFtZSk7XG4gICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChDSEFOR0VfRVZFTlQpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignW3JvdXRlLW1hcHNdIEZhaWxlZCB0byByZW1vdmUgcm91dGUgb3ZlcnJpZGUgZnJvbSBsb2NhbFN0b3JhZ2UnLCBlKTtcbiAgICB9XG59XG4vKipcbiAqIENsZWFycyBhbGwgcm91dGUgb3ZlcnJpZGVzLiBJbiBwcm9kdWN0aW9uLCB0aGlzIGlzIGEgbm8tb3AuXG4gKiBUaGUgYXBwIG11c3QgYmUgcmVsb2FkZWQgZm9yIHRoZSByZW1vdmFsIHRvIHRha2UgZWZmZWN0LlxuICovIGV4cG9ydCBmdW5jdGlvbiByZXNldFJvdXRlTWFwT3ZlcnJpZGVzKCkge1xuICAgIGlmICghZGV2TW9kZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tTZWN1cml0eV0gUm91dGUgb3ZlcnJpZGVzIGFyZSBkaXNhYmxlZCBvdXRzaWRlIGRldmVsb3BtZW50IG1vZGUuJyk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3Qga2V5c1RvUmVtb3ZlID0gW107XG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBsb2NhbFN0b3JhZ2UubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gbG9jYWxTdG9yYWdlLmtleShpKTtcbiAgICAgICAgICAgIGlmIChrZXk/LnN0YXJ0c1dpdGgoT1ZFUlJJREVfUFJFRklYKSkge1xuICAgICAgICAgICAgICAgIGtleXNUb1JlbW92ZS5wdXNoKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAga2V5c1RvUmVtb3ZlLmZvckVhY2goKGtleSk9PmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSkpO1xuICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoQ0hBTkdFX0VWRU5UKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1tyb3V0ZS1tYXBzXSBGYWlsZWQgdG8gY2xlYXIgcm91dGUgb3ZlcnJpZGVzIGZyb20gbG9jYWxTdG9yYWdlJywgZSk7XG4gICAgfVxufVxuLyoqXG4gKiBJbml0aWFsaXplcyB0aGUgcm91dGUgbWFwIG92ZXJyaWRlIHN5c3RlbSB3aXRoIG1vZGUtYXdhcmUgYmVoYXZpb3IuXG4gKlxuICogSW4gcHJvZHVjdGlvbiAoYHdpbmRvdy5zcGFFbnYgIT09ICdkZXZlbG9wbWVudCdgKSwgbXV0YXRpb24gZnVuY3Rpb25zIGFyZVxuICogbm8tb3BzIGFuZCBsb2NhbFN0b3JhZ2Ugb3ZlcnJpZGVzIGFyZSBuZXZlciBjb25zdWx0ZWQuIEluIGRldmVsb3BtZW50LCB0aGVcbiAqIGZ1bGwgb3ZlcnJpZGUgd29ya2Zsb3cgaXMgYXZhaWxhYmxlLlxuICpcbiAqIE11c3QgYmUgY2FsbGVkIGJlZm9yZSBhbnkgY29kZSB0aGF0IGRlcGVuZHMgb24gdGhlIHJvdXRlIG1hcCBmdW5jdGlvbnMuXG4gKi8gbGV0IHNldHVwUHJvbWlzZSA9IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gc2V0dXBSb3V0ZU1hcE92ZXJyaWRlcygpIHtcbiAgICBpZiAoc2V0dXBQcm9taXNlKSB7XG4gICAgICAgIHJldHVybiBzZXR1cFByb21pc2U7XG4gICAgfVxuICAgIGRldk1vZGUgPSB3aW5kb3cuc3BhRW52ID09PSAnZGV2ZWxvcG1lbnQnO1xuICAgIGlmIChkZXZNb2RlKSB7XG4gICAgICAgIHNldHVwUHJvbWlzZSA9IHJlYWRPdmVycmlkZU1hcCgpLnRoZW4oKHNuYXBzaG90KT0+e1xuICAgICAgICAgICAgaW5pdGlhbE92ZXJyaWRlU25hcHNob3QgPSBzbmFwc2hvdDtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgc2V0dXBQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJldHVybiBzZXR1cFByb21pc2U7XG59XG4iXSwibmFtZXMiOlsiaXNPcGVubXJzQXBwUm91dGVzIiwiaXNPcGVubXJzUm91dGVzIiwiT1ZFUlJJREVfUFJFRklYIiwiQ0hBTkdFX0VWRU5UIiwiZGV2TW9kZSIsImluaXRpYWxPdmVycmlkZVNuYXBzaG90IiwiYmFzZU1hcFByb21pc2UiLCJyZWFkQmFzZU1hcCIsImxvYWRCYXNlTWFwIiwibWFwIiwiY29tcGxldGUiLCJzY3JpcHRzIiwibWFwcyIsImkiLCJzY3JpcHQiLCJwYXJzZWQiLCJyZXNwb25zZSIsImUiLCJkb2N1bWVudCIsImZldGNoIiwiRXJyb3IiLCJKU09OIiwiY29uc29sZSIsIm1lcmdlUm91dGVNYXBzIiwibWVyZ2VkIiwiX2l0ZXJhdG9yRXJyb3IiLCJfdHlwZV9vZiIsIkFycmF5IiwiT2JqZWN0IiwidW5kZWZpbmVkIiwicmVhZE92ZXJyaWRlTWFwIiwicmVzdWx0IiwiZW50cmllcyIsImtleSIsInJhdyIsInNldHRsZWQiLCJlbnRyeSIsImxvY2FsU3RvcmFnZSIsIlByb21pc2UiLCJtb2R1bGVOYW1lIiwiZmV0Y2hlZCIsImdldEN1cnJlbnRSb3V0ZU1hcCIsImJhc2UiLCJvdmVycmlkZXMiLCJnZXRSb3V0ZU1hcERlZmF1bHRNYXAiLCJnZXRSb3V0ZU1hcE5leHRQYWdlTWFwIiwiZ2V0Um91dGVNYXBPdmVycmlkZU1hcCIsInZhbHVlIiwiYWRkUm91dGVNYXBPdmVycmlkZSIsInJvdXRlcyIsIm1heWJlUm91dGVzIiwiX2luc3RhbmNlb2YiLCJVUkwiLCJ3aW5kb3ciLCJDdXN0b21FdmVudCIsInJlbW92ZVJvdXRlTWFwT3ZlcnJpZGUiLCJyZXNldFJvdXRlTWFwT3ZlcnJpZGVzIiwia2V5c1RvUmVtb3ZlIiwic2V0dXBQcm9taXNlIiwic2V0dXBSb3V0ZU1hcE92ZXJyaWRlcyIsInNuYXBzaG90Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0NBQWdDLEdBQThFO0FBQzlHLElBQU1FLGtCQUFrQjtBQUN4QixJQUFNQyxlQUFlO0FBQ3JCLHNGQUFzRjtBQUN0RixJQUFJQyxVQUFVO0FBQ2QsaUZBQWlGO0FBQ2pGLCtFQUErRTtBQUMvRSxJQUFJQywwQkFBMEI7QUFDOUIsMkZBQTJGO0FBQzNGLElBQUlDLGlCQUFpQjtBQUNyQjs7Ozs7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\n//# sourceURL=webpack-internal:///../../framework/esm-dynamic-loading/dist/route-maps.js\n\n}");
|
|
5634
5634
|
|
|
5635
5635
|
},
|
|
5636
5636
|
"../../framework/esm-emr-api/dist/attachments.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
@@ -5725,7 +5725,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
5725
5725
|
},
|
|
5726
5726
|
"../../framework/esm-emr-api/dist/visit-utils.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
5727
5727
|
"use strict";
|
|
5728
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n VisitMode: () => (VisitMode),\n VisitStatus: () => (VisitStatus),\n defaultVisitCustomRepresentation: () => (defaultVisitCustomRepresentation),\n getStartedVisit: () => (getStartedVisit),\n getVisitStore: () => (getVisitStore),\n getVisitsForPatient: () => (getVisitsForPatient),\n saveVisit: () => (saveVisit),\n setCurrentVisit: () => (setCurrentVisit),\n updateVisit: () => (updateVisit)\n});\n/* import */ var _openmrs_esm_api__rspack_import_0 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var _openmrs_esm_state__rspack_import_1 = __webpack_require__(\"../../framework/esm-state/dist/index.js\");\n/* import */ var rxjs__rspack_import_2 = __webpack_require__(\"webpack/sharing/consume/default/rxjs/rxjs\");\n/* import */ var rxjs__rspack_import_2_default = /*#__PURE__*/__webpack_require__.n(rxjs__rspack_import_2);\n/** @module @category API */ \n\n\nvar VisitMode = /*#__PURE__*/ function(VisitMode) {\n VisitMode[\"NEWVISIT\"] = \"startVisit\";\n VisitMode[\"EDITVISIT\"] = \"editVisit\";\n VisitMode[\"LOADING\"] = \"loadingVisit\";\n return VisitMode;\n}({});\nvar VisitStatus = /*#__PURE__*/ function(VisitStatus) {\n VisitStatus[\"NOTSTARTED\"] = \"notStarted\";\n VisitStatus[\"ONGOING\"] = \"ongoing\";\n return VisitStatus;\n}({});\n/**\n * The default custom representation string for fetching visit data from the REST API.\n * This representation includes comprehensive visit details such as encounters, patient,\n * visit type, attributes, and location information.\n */ var defaultVisitCustomRepresentation = 'custom:(uuid,display,voided,indication,startDatetime,stopDatetime,' + 'encounters:(uuid,display,encounterDatetime,' + 'form:(uuid,name),location:ref,' + 'encounterType:ref,' + 'encounterProviders:(uuid,display,' + 'provider:(uuid,display))),' + 'patient:(uuid,display),' + 'visitType:(uuid,name,display),' + 'attributes:(uuid,display,attributeType:(name,datatypeClassname,uuid),value),' + 'location:(uuid,name,display))';\nvar initialState = getVisitSessionStorage() || {\n patientUuid: null,\n manuallySetVisitUuid: null,\n mutateVisitCallbacks: {}\n};\n/**\n * Returns the global visit store that manages the current visit state. The store\n * contains information about the current patient's visit and provides methods\n * for subscribing to visit state changes.\n *\n * @returns The global visit store instance.\n *\n * @example\n * ```ts\n * import { getVisitStore } from '@openmrs/esm-framework';\n * const store = getVisitStore();\n * const unsubscribe = store.subscribe((state) => {\n * console.log('Current patient:', state.patientUuid);\n * });\n * ```\n */ function getVisitStore() {\n return (0,_openmrs_esm_state__rspack_import_1.getGlobalStore)('visit', initialState);\n}\n/**\n * Sets the current visit for a patient in the global visit store. This is used\n * to manually specify which visit should be considered \"active\" for the given patient.\n *\n * @param patientUuid The UUID of the patient.\n * @param visitUuid The UUID of the visit to set as the current visit.\n *\n * @example\n * ```ts\n * import { setCurrentVisit } from '@openmrs/esm-framework';\n * setCurrentVisit('patient-uuid', 'visit-uuid');\n * ```\n *\n * @deprecated \"current visit\" is not well defined outside of the patient chart.\n * Use `visitContext` in the patient chart instead.\n */ function setCurrentVisit(patientUuid, visitUuid) {\n getVisitStore().setState({\n patientUuid: patientUuid,\n manuallySetVisitUuid: visitUuid\n });\n}\ngetVisitStore().subscribe(function(state) {\n setVisitSessionStorage(state);\n});\nfunction setVisitSessionStorage(value) {\n sessionStorage.setItem('openmrs:visitStoreState', JSON.stringify(value));\n}\nfunction getVisitSessionStorage() {\n try {\n return JSON.parse(sessionStorage.getItem('openmrs:visitStoreState') || 'null');\n } catch (e) {\n return null;\n }\n}\n/**\n * Creates a new visit by sending a POST request to the OpenMRS REST API.\n *\n * @param payload The visit data to create, including patient UUID, visit type,\n * start datetime, and other visit attributes.\n * @param abortController An AbortController to allow cancellation of the request.\n * @returns A Promise that resolves with the FetchResponse containing the created Visit.\n *\n * @example\n * ```ts\n * import { saveVisit } from '@openmrs/esm-framework';\n * const abortController = new AbortController();\n * const response = await saveVisit({\n * patient: 'patient-uuid',\n * visitType: 'visit-type-uuid',\n * startDatetime: new Date().toISOString()\n * }, abortController);\n * ```\n */ function saveVisit(payload, abortController) {\n return (0,_openmrs_esm_api__rspack_import_0.openmrsFetch)(\"\".concat(_openmrs_esm_api__rspack_import_0.restBaseUrl, \"/visit\"), {\n signal: abortController.signal,\n method: 'POST',\n headers: {\n 'Content-type': 'application/json'\n },\n body: payload\n });\n}\n/**\n * Updates an existing visit by sending a POST request to the OpenMRS REST API.\n *\n * @param uuid The UUID of the visit to update.\n * @param payload The visit data to update, such as stop datetime or attributes.\n * @param abortController An AbortController to allow cancellation of the request.\n * @returns A Promise that resolves with the FetchResponse containing the updated Visit.\n *\n * @example\n * ```ts\n * import { updateVisit } from '@openmrs/esm-framework';\n * const abortController = new AbortController();\n * const response = await updateVisit('visit-uuid', {\n * stopDatetime: new Date().toISOString()\n * }, abortController);\n * ```\n */ function updateVisit(uuid, payload, abortController) {\n return (0,_openmrs_esm_api__rspack_import_0.openmrsFetch)(\"\".concat(_openmrs_esm_api__rspack_import_0.restBaseUrl, \"/visit/\").concat(uuid), {\n signal: abortController.signal,\n method: 'POST',\n headers: {\n 'Content-type': 'application/json'\n },\n body: payload\n });\n}\n/**\n * @deprecated Use the `useVisit` hook instead.\n */ function getVisitsForPatient(patientUuid, abortController, v) {\n var custom = v !== null && v !== void 0 ? v : defaultVisitCustomRepresentation;\n return (0,_openmrs_esm_api__rspack_import_0.openmrsFetch)(\"\".concat(_openmrs_esm_api__rspack_import_0.restBaseUrl, \"/visit?patient=\").concat(patientUuid, \"&v=\").concat(custom), {\n signal: abortController.signal,\n method: 'GET',\n headers: {\n 'Content-type': 'application/json'\n }\n });\n}\n/** @deprecated */ var getStartedVisit = new rxjs__rspack_import_2.BehaviorSubject(null);\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyIS9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9wYWNrYWdlcy9mcmFtZXdvcmsvZXNtLWVtci1hcGkvZGlzdC92aXNpdC11dGlscy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1lbXItYXBpL2Rpc3QvdmlzaXQtdXRpbHMuanM/ZGNkNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgQVBJICovIGltcG9ydCB7IG9wZW5tcnNGZXRjaCwgcmVzdEJhc2VVcmwgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWFwaVwiO1xuaW1wb3J0IHsgZ2V0R2xvYmFsU3RvcmUgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLXN0YXRlXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuZXhwb3J0IHZhciBWaXNpdE1vZGUgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFZpc2l0TW9kZSkge1xuICAgIFZpc2l0TW9kZVtcIk5FV1ZJU0lUXCJdID0gXCJzdGFydFZpc2l0XCI7XG4gICAgVmlzaXRNb2RlW1wiRURJVFZJU0lUXCJdID0gXCJlZGl0VmlzaXRcIjtcbiAgICBWaXNpdE1vZGVbXCJMT0FESU5HXCJdID0gXCJsb2FkaW5nVmlzaXRcIjtcbiAgICByZXR1cm4gVmlzaXRNb2RlO1xufSh7fSk7XG5leHBvcnQgdmFyIFZpc2l0U3RhdHVzID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihWaXNpdFN0YXR1cykge1xuICAgIFZpc2l0U3RhdHVzW1wiTk9UU1RBUlRFRFwiXSA9IFwibm90U3RhcnRlZFwiO1xuICAgIFZpc2l0U3RhdHVzW1wiT05HT0lOR1wiXSA9IFwib25nb2luZ1wiO1xuICAgIHJldHVybiBWaXNpdFN0YXR1cztcbn0oe30pO1xuLyoqXG4gKiBUaGUgZGVmYXVsdCBjdXN0b20gcmVwcmVzZW50YXRpb24gc3RyaW5nIGZvciBmZXRjaGluZyB2aXNpdCBkYXRhIGZyb20gdGhlIFJFU1QgQVBJLlxuICogVGhpcyByZXByZXNlbnRhdGlvbiBpbmNsdWRlcyBjb21wcmVoZW5zaXZlIHZpc2l0IGRldGFpbHMgc3VjaCBhcyBlbmNvdW50ZXJzLCBwYXRpZW50LFxuICogdmlzaXQgdHlwZSwgYXR0cmlidXRlcywgYW5kIGxvY2F0aW9uIGluZm9ybWF0aW9uLlxuICovIGV4cG9ydCBjb25zdCBkZWZhdWx0VmlzaXRDdXN0b21SZXByZXNlbnRhdGlvbiA9ICdjdXN0b206KHV1aWQsZGlzcGxheSx2b2lkZWQsaW5kaWNhdGlvbixzdGFydERhdGV0aW1lLHN0b3BEYXRldGltZSwnICsgJ2VuY291bnRlcnM6KHV1aWQsZGlzcGxheSxlbmNvdW50ZXJEYXRldGltZSwnICsgJ2Zvcm06KHV1aWQsbmFtZSksbG9jYXRpb246cmVmLCcgKyAnZW5jb3VudGVyVHlwZTpyZWYsJyArICdlbmNvdW50ZXJQcm92aWRlcnM6KHV1aWQsZGlzcGxheSwnICsgJ3Byb3ZpZGVyOih1dWlkLGRpc3BsYXkpKSksJyArICdwYXRpZW50Oih1dWlkLGRpc3BsYXkpLCcgKyAndmlzaXRUeXBlOih1dWlkLG5hbWUsZGlzcGxheSksJyArICdhdHRyaWJ1dGVzOih1dWlkLGRpc3BsYXksYXR0cmlidXRlVHlwZToobmFtZSxkYXRhdHlwZUNsYXNzbmFtZSx1dWlkKSx2YWx1ZSksJyArICdsb2NhdGlvbjoodXVpZCxuYW1lLGRpc3BsYXkpKSc7XG5jb25zdCBpbml0aWFsU3RhdGUgPSBnZXRWaXNpdFNlc3Npb25TdG9yYWdlKCkgfHwge1xuICAgIHBhdGllbnRVdWlkOiBudWxsLFxuICAgIG1hbnVhbGx5U2V0VmlzaXRVdWlkOiBudWxsLFxuICAgIG11dGF0ZVZpc2l0Q2FsbGJhY2tzOiB7fVxufTtcbi8qKlxuICogUmV0dXJucyB0aGUgZ2xvYmFsIHZpc2l0IHN0b3JlIHRoYXQgbWFuYWdlcyB0aGUgY3VycmVudCB2aXNpdCBzdGF0ZS4gVGhlIHN0b3JlXG4gKiBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBwYXRpZW50J3MgdmlzaXQgYW5kIHByb3ZpZGVzIG1ldGhvZHNcbiAqIGZvciBzdWJzY3JpYmluZyB0byB2aXNpdCBzdGF0ZSBjaGFuZ2VzLlxuICpcbiAqIEByZXR1cm5zIFRoZSBnbG9iYWwgdmlzaXQgc3RvcmUgaW5zdGFuY2UuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBnZXRWaXNpdFN0b3JlIH0gZnJvbSAnQG9wZW5tcnMvZXNtLWZyYW1ld29yayc7XG4gKiBjb25zdCBzdG9yZSA9IGdldFZpc2l0U3RvcmUoKTtcbiAqIGNvbnN0IHVuc3Vic2NyaWJlID0gc3RvcmUuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICogICBjb25zb2xlLmxvZygnQ3VycmVudCBwYXRpZW50OicsIHN0YXRlLnBhdGllbnRVdWlkKTtcbiAqIH0pO1xuICogYGBgXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldFZpc2l0U3RvcmUoKSB7XG4gICAgcmV0dXJuIGdldEdsb2JhbFN0b3JlKCd2aXNpdCcsIGluaXRpYWxTdGF0ZSk7XG59XG4vKipcbiAqIFNldHMgdGhlIGN1cnJlbnQgdmlzaXQgZm9yIGEgcGF0aWVudCBpbiB0aGUgZ2xvYmFsIHZpc2l0IHN0b3JlLiBUaGlzIGlzIHVzZWRcbiAqIHRvIG1hbnVhbGx5IHNwZWNpZnkgd2hpY2ggdmlzaXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgXCJhY3RpdmVcIiBmb3IgdGhlIGdpdmVuIHBhdGllbnQuXG4gKlxuICogQHBhcmFtIHBhdGllbnRVdWlkIFRoZSBVVUlEIG9mIHRoZSBwYXRpZW50LlxuICogQHBhcmFtIHZpc2l0VXVpZCBUaGUgVVVJRCBvZiB0aGUgdmlzaXQgdG8gc2V0IGFzIHRoZSBjdXJyZW50IHZpc2l0LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgc2V0Q3VycmVudFZpc2l0IH0gZnJvbSAnQG9wZW5tcnMvZXNtLWZyYW1ld29yayc7XG4gKiBzZXRDdXJyZW50VmlzaXQoJ3BhdGllbnQtdXVpZCcsICd2aXNpdC11dWlkJyk7XG4gKiBgYGBcbiAqXG4gKiBAZGVwcmVjYXRlZCBcImN1cnJlbnQgdmlzaXRcIiBpcyBub3Qgd2VsbCBkZWZpbmVkIG91dHNpZGUgb2YgdGhlIHBhdGllbnQgY2hhcnQuXG4gKiBVc2UgYHZpc2l0Q29udGV4dGAgaW4gdGhlIHBhdGllbnQgY2hhcnQgaW5zdGVhZC5cbiAqLyBleHBvcnQgZnVuY3Rpb24gc2V0Q3VycmVudFZpc2l0KHBhdGllbnRVdWlkLCB2aXNpdFV1aWQpIHtcbiAgICBnZXRWaXNpdFN0b3JlKCkuc2V0U3RhdGUoe1xuICAgICAgICBwYXRpZW50VXVpZCxcbiAgICAgICAgbWFudWFsbHlTZXRWaXNpdFV1aWQ6IHZpc2l0VXVpZFxuICAgIH0pO1xufVxuZ2V0VmlzaXRTdG9yZSgpLnN1YnNjcmliZSgoc3RhdGUpPT57XG4gICAgc2V0VmlzaXRTZXNzaW9uU3RvcmFnZShzdGF0ZSk7XG59KTtcbmZ1bmN0aW9uIHNldFZpc2l0U2Vzc2lvblN0b3JhZ2UodmFsdWUpIHtcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdvcGVubXJzOnZpc2l0U3RvcmVTdGF0ZScsIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG59XG5mdW5jdGlvbiBnZXRWaXNpdFNlc3Npb25TdG9yYWdlKCkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ29wZW5tcnM6dmlzaXRTdG9yZVN0YXRlJykgfHwgJ251bGwnKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyB2aXNpdCBieSBzZW5kaW5nIGEgUE9TVCByZXF1ZXN0IHRvIHRoZSBPcGVuTVJTIFJFU1QgQVBJLlxuICpcbiAqIEBwYXJhbSBwYXlsb2FkIFRoZSB2aXNpdCBkYXRhIHRvIGNyZWF0ZSwgaW5jbHVkaW5nIHBhdGllbnQgVVVJRCwgdmlzaXQgdHlwZSxcbiAqICAgc3RhcnQgZGF0ZXRpbWUsIGFuZCBvdGhlciB2aXNpdCBhdHRyaWJ1dGVzLlxuICogQHBhcmFtIGFib3J0Q29udHJvbGxlciBBbiBBYm9ydENvbnRyb2xsZXIgdG8gYWxsb3cgY2FuY2VsbGF0aW9uIG9mIHRoZSByZXF1ZXN0LlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgRmV0Y2hSZXNwb25zZSBjb250YWluaW5nIHRoZSBjcmVhdGVkIFZpc2l0LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgc2F2ZVZpc2l0IH0gZnJvbSAnQG9wZW5tcnMvZXNtLWZyYW1ld29yayc7XG4gKiBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gKiBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNhdmVWaXNpdCh7XG4gKiAgIHBhdGllbnQ6ICdwYXRpZW50LXV1aWQnLFxuICogICB2aXNpdFR5cGU6ICd2aXNpdC10eXBlLXV1aWQnLFxuICogICBzdGFydERhdGV0aW1lOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAqIH0sIGFib3J0Q29udHJvbGxlcik7XG4gKiBgYGBcbiAqLyBleHBvcnQgZnVuY3Rpb24gc2F2ZVZpc2l0KHBheWxvYWQsIGFib3J0Q29udHJvbGxlcikge1xuICAgIHJldHVybiBvcGVubXJzRmV0Y2goYCR7cmVzdEJhc2VVcmx9L3Zpc2l0YCwge1xuICAgICAgICBzaWduYWw6IGFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQ29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIH0sXG4gICAgICAgIGJvZHk6IHBheWxvYWRcbiAgICB9KTtcbn1cbi8qKlxuICogVXBkYXRlcyBhbiBleGlzdGluZyB2aXNpdCBieSBzZW5kaW5nIGEgUE9TVCByZXF1ZXN0IHRvIHRoZSBPcGVuTVJTIFJFU1QgQVBJLlxuICpcbiAqIEBwYXJhbSB1dWlkIFRoZSBVVUlEIG9mIHRoZSB2aXNpdCB0byB1cGRhdGUuXG4gKiBAcGFyYW0gcGF5bG9hZCBUaGUgdmlzaXQgZGF0YSB0byB1cGRhdGUsIHN1Y2ggYXMgc3RvcCBkYXRldGltZSBvciBhdHRyaWJ1dGVzLlxuICogQHBhcmFtIGFib3J0Q29udHJvbGxlciBBbiBBYm9ydENvbnRyb2xsZXIgdG8gYWxsb3cgY2FuY2VsbGF0aW9uIG9mIHRoZSByZXF1ZXN0LlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgRmV0Y2hSZXNwb25zZSBjb250YWluaW5nIHRoZSB1cGRhdGVkIFZpc2l0LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgdXBkYXRlVmlzaXQgfSBmcm9tICdAb3Blbm1ycy9lc20tZnJhbWV3b3JrJztcbiAqIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAqIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdXBkYXRlVmlzaXQoJ3Zpc2l0LXV1aWQnLCB7XG4gKiAgIHN0b3BEYXRldGltZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG4gKiB9LCBhYm9ydENvbnRyb2xsZXIpO1xuICogYGBgXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVZpc2l0KHV1aWQsIHBheWxvYWQsIGFib3J0Q29udHJvbGxlcikge1xuICAgIHJldHVybiBvcGVubXJzRmV0Y2goYCR7cmVzdEJhc2VVcmx9L3Zpc2l0LyR7dXVpZH1gLCB7XG4gICAgICAgIHNpZ25hbDogYWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogcGF5bG9hZFxuICAgIH0pO1xufVxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGhlIGB1c2VWaXNpdGAgaG9vayBpbnN0ZWFkLlxuICovIGV4cG9ydCBmdW5jdGlvbiBnZXRWaXNpdHNGb3JQYXRpZW50KHBhdGllbnRVdWlkLCBhYm9ydENvbnRyb2xsZXIsIHYpIHtcbiAgICBjb25zdCBjdXN0b20gPSB2ID8/IGRlZmF1bHRWaXNpdEN1c3RvbVJlcHJlc2VudGF0aW9uO1xuICAgIHJldHVybiBvcGVubXJzRmV0Y2goYCR7cmVzdEJhc2VVcmx9L3Zpc2l0P3BhdGllbnQ9JHtwYXRpZW50VXVpZH0mdj0ke2N1c3RvbX1gLCB7XG4gICAgICAgIHNpZ25hbDogYWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICB9XG4gICAgfSk7XG59XG4vKiogQGRlcHJlY2F0ZWQgKi8gZXhwb3J0IGNvbnN0IGdldFN0YXJ0ZWRWaXNpdCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4iXSwibmFtZXMiOlsib3Blbm1yc0ZldGNoIiwicmVzdEJhc2VVcmwiLCJnZXRHbG9iYWxTdG9yZSIsIkJlaGF2aW9yU3ViamVjdCIsIlZpc2l0TW9kZSIsIlZpc2l0U3RhdHVzIiwiZGVmYXVsdFZpc2l0Q3VzdG9tUmVwcmVzZW50YXRpb24iLCJpbml0aWFsU3RhdGUiLCJnZXRWaXNpdFNlc3Npb25TdG9yYWdlIiwiZ2V0VmlzaXRTdG9yZSIsInNldEN1cnJlbnRWaXNpdCIsInBhdGllbnRVdWlkIiwidmlzaXRVdWlkIiwic3RhdGUiLCJzZXRWaXNpdFNlc3Npb25TdG9yYWdlIiwidmFsdWUiLCJzZXNzaW9uU3RvcmFnZSIsIkpTT04iLCJlIiwic2F2ZVZpc2l0IiwicGF5bG9hZCIsImFib3J0Q29udHJvbGxlciIsInVwZGF0ZVZpc2l0IiwidXVpZCIsImdldFZpc2l0c0ZvclBhdGllbnQiLCJ2IiwiY3VzdG9tIiwiZ2V0U3RhcnRlZFZpc2l0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMEJBQTBCLEdBQWdFO0FBQ3RDO0FBQ2I7QUFDaEMsSUFBSUksWUFBWSxXQUFXLEdBQUcsU0FBU0EsU0FBUztJQUNuREEsU0FBUyxDQUFDLFdBQVcsR0FBRztJQUN4QkEsU0FBUyxDQUFDLFlBQVksR0FBRztJQUN6QkEsU0FBUyxDQUFDLFVBQVUsR0FBRztJQUN2QixPQUFPQTtBQUNYLEVBQUUsQ0FBQyxHQUFHO0FBQ0MsSUFBSUMsY0FBYyxXQUFXLEdBQUcsU0FBU0EsV0FBVztJQUN2REEsV0FBVyxDQUFDLGFBQWEsR0FBRztJQUM1QkEsV0FBVyxDQUFDLFVBQVUsR0FBRztJQUN6QixPQUFPQTtBQUNYLEVBQUUsQ0FBQyxHQUFHO0FBQ047Ozs7Q0FJQyxHQUFVLElBQU1DLG1DQUFtQyx1RUFBdUUsZ0RBQWdELG1DQUFtQyx1QkFBdUIsc0NBQXNDLCtCQUErQiw0QkFBNEIsbUNBQW1DLGlGQUFpRixnQ0FBZ0M7QUFDMWQsSUFBTUMsZUFBZUMsNEJBQTRCO0lBQzdDLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsc0JBQXNCLENBQUM7QUFDM0I7QUFDQTs7Ozs7Ozs7Ozs7Ozs7O0NBZUMsR0FBVSxTQUFTQztJQUNoQixPQUFPUCxzREFBY0EsQ0FBQyxTQUFTSztBQUNuQztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Q0FlQyxHQUFVLFNBQVNHLGdCQUFnQkMsV0FBVyxFQUFFQyxTQUFTO0lBQ3RESCxnQkFBZ0IsUUFBUSxDQUFDO1FBQ3JCRSxhQUFBQTtRQUNBLHNCQUFzQkM7SUFDMUI7QUFDSjtBQUNBSCxnQkFBZ0IsU0FBUyxDQUFDLFNBQUNJO0lBQ3ZCQyx1QkFBdUJEO0FBQzNCO0FBQ0EsU0FBU0MsdUJBQXVCQyxLQUFLO0lBQ2pDQyxlQUFlLE9BQU8sQ0FBQywyQkFBMkJDLEtBQUssU0FBUyxDQUFDRjtBQUNyRTtBQUNBLFNBQVNQO0lBQ0wsSUFBSTtRQUNBLE9BQU9TLEtBQUssS0FBSyxDQUFDRCxlQUFlLE9BQU8sQ0FBQyw4QkFBOEI7SUFDM0UsRUFBRSxPQUFPRSxHQUFHO1FBQ1IsT0FBTztJQUNYO0FBQ0o7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBa0JDLEdBQVUsU0FBU0MsVUFBVUMsT0FBTyxFQUFFQyxlQUFlO0lBQ2xELE9BQU9yQixrREFBWUEsQ0FBRSxHQUFjLE9BQVpDLDZDQUFXQSxFQUFDLFdBQVM7UUFDeEMsUUFBUW9CLGdCQUFnQixNQUFNO1FBQzlCLFFBQVE7UUFDUixTQUFTO1lBQ0wsZ0JBQWdCO1FBQ3BCO1FBQ0EsTUFBTUQ7SUFDVjtBQUNKO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FnQkMsR0FBVSxTQUFTRSxZQUFZQyxJQUFJLEVBQUVILE9BQU8sRUFBRUMsZUFBZTtJQUMxRCxPQUFPckIsa0RBQVlBLENBQUUsR0FBdUJ1QixPQUFyQnRCLDZDQUFXQSxFQUFDLFdBQWMsT0FBTHNCLE9BQVE7UUFDaEQsUUFBUUYsZ0JBQWdCLE1BQU07UUFDOUIsUUFBUTtRQUNSLFNBQVM7WUFDTCxnQkFBZ0I7UUFDcEI7UUFDQSxNQUFNRDtJQUNWO0FBQ0o7QUFDQTs7Q0FFQyxHQUFVLFNBQVNJLG9CQUFvQmIsV0FBVyxFQUFFVSxlQUFlLEVBQUVJLENBQUM7SUFDbkUsSUFBTUMsU0FBU0QsY0FBQUEsZUFBQUEsSUFBS25CO0lBQ3BCLE9BQU9OLGtEQUFZQSxDQUFFLEdBQStCVyxPQUE3QlYsNkNBQVdBLEVBQUMsbUJBQWtDeUIsT0FBakJmLGFBQVksT0FBWSxPQUFQZSxTQUFVO1FBQzNFLFFBQVFMLGdCQUFnQixNQUFNO1FBQzlCLFFBQVE7UUFDUixTQUFTO1lBQ0wsZ0JBQWdCO1FBQ3BCO0lBQ0o7QUFDSjtBQUNBLGdCQUFnQixHQUFVLElBQU1NLGtCQUFrQixJQUFJeEIscUNBQWVBLENBQUMsTUFBTSJ9\n//# sourceURL=webpack-internal:///../../framework/esm-emr-api/dist/visit-utils.js\n\n}");
|
|
5728
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n VisitMode: () => (VisitMode),\n VisitStatus: () => (VisitStatus),\n defaultVisitCustomRepresentation: () => (defaultVisitCustomRepresentation),\n getStartedVisit: () => (getStartedVisit),\n getVisitStore: () => (getVisitStore),\n getVisitsForPatient: () => (getVisitsForPatient),\n saveVisit: () => (saveVisit),\n setCurrentVisit: () => (setCurrentVisit),\n updateVisit: () => (updateVisit)\n});\n/* import */ var _openmrs_esm_api__rspack_import_0 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var _openmrs_esm_state__rspack_import_1 = __webpack_require__(\"../../framework/esm-state/dist/index.js\");\n/* import */ var rxjs__rspack_import_2 = __webpack_require__(\"webpack/sharing/consume/default/rxjs/rxjs\");\n/* import */ var rxjs__rspack_import_2_default = /*#__PURE__*/__webpack_require__.n(rxjs__rspack_import_2);\n/** @module @category API */ \n\n\nvar VisitMode = /*#__PURE__*/ function(VisitMode) {\n VisitMode[\"NEWVISIT\"] = \"startVisit\";\n VisitMode[\"EDITVISIT\"] = \"editVisit\";\n VisitMode[\"LOADING\"] = \"loadingVisit\";\n return VisitMode;\n}({});\nvar VisitStatus = /*#__PURE__*/ function(VisitStatus) {\n VisitStatus[\"NOTSTARTED\"] = \"notStarted\";\n VisitStatus[\"ONGOING\"] = \"ongoing\";\n return VisitStatus;\n}({});\n/**\n * The default custom representation string for fetching visit data from the REST API.\n * This representation includes comprehensive visit details such as encounters, patient,\n * visit type, attributes, and location information.\n */ var defaultVisitCustomRepresentation = 'custom:(uuid,display,voided,indication,startDatetime,stopDatetime,' + 'encounters:(uuid,display,encounterDatetime,' + 'form:(uuid,name),location:ref,' + 'encounterType:ref,' + 'encounterProviders:(uuid,display,' + 'provider:(uuid,display))),' + 'patient:(uuid,display),' + 'visitType:(uuid,name,display),' + 'attributes:(uuid,display,attributeType:(name,datatypeClassname,uuid),value),' + 'location:(uuid,name,display))';\nvar initialState = getVisitSessionStorage() || {\n patientUuid: null,\n manuallySetVisitUuid: null\n};\n/**\n * Returns the global visit store that manages the current visit state. The store\n * contains information about the current patient's visit and provides methods\n * for subscribing to visit state changes.\n *\n * @returns The global visit store instance.\n *\n * @example\n * ```ts\n * import { getVisitStore } from '@openmrs/esm-framework';\n * const store = getVisitStore();\n * const unsubscribe = store.subscribe((state) => {\n * console.log('Current patient:', state.patientUuid);\n * });\n * ```\n */ function getVisitStore() {\n return (0,_openmrs_esm_state__rspack_import_1.getGlobalStore)('visit', initialState);\n}\n/**\n * Sets the current visit for a patient in the global visit store. This is used\n * to manually specify which visit should be considered \"active\" for the given patient.\n *\n * @param patientUuid The UUID of the patient.\n * @param visitUuid The UUID of the visit to set as the current visit.\n *\n * @example\n * ```ts\n * import { setCurrentVisit } from '@openmrs/esm-framework';\n * setCurrentVisit('patient-uuid', 'visit-uuid');\n * ```\n *\n * @deprecated \"current visit\" is not well defined outside of the patient chart.\n * Use `visitContext` in the patient chart instead.\n */ function setCurrentVisit(patientUuid, visitUuid) {\n getVisitStore().setState({\n patientUuid: patientUuid,\n manuallySetVisitUuid: visitUuid\n });\n}\ngetVisitStore().subscribe(function(state) {\n setVisitSessionStorage(state);\n});\nfunction setVisitSessionStorage(value) {\n sessionStorage.setItem('openmrs:visitStoreState', JSON.stringify(value));\n}\nfunction getVisitSessionStorage() {\n try {\n return JSON.parse(sessionStorage.getItem('openmrs:visitStoreState') || 'null');\n } catch (e) {\n return null;\n }\n}\n/**\n * Creates a new visit by sending a POST request to the OpenMRS REST API.\n *\n * @param payload The visit data to create, including patient UUID, visit type,\n * start datetime, and other visit attributes.\n * @param abortController An AbortController to allow cancellation of the request.\n * @returns A Promise that resolves with the FetchResponse containing the created Visit.\n *\n * @example\n * ```ts\n * import { saveVisit } from '@openmrs/esm-framework';\n * const abortController = new AbortController();\n * const response = await saveVisit({\n * patient: 'patient-uuid',\n * visitType: 'visit-type-uuid',\n * startDatetime: new Date().toISOString()\n * }, abortController);\n * ```\n */ function saveVisit(payload, abortController) {\n return (0,_openmrs_esm_api__rspack_import_0.openmrsFetch)(\"\".concat(_openmrs_esm_api__rspack_import_0.restBaseUrl, \"/visit\"), {\n signal: abortController.signal,\n method: 'POST',\n headers: {\n 'Content-type': 'application/json'\n },\n body: payload\n });\n}\n/**\n * Updates an existing visit by sending a POST request to the OpenMRS REST API.\n *\n * @param uuid The UUID of the visit to update.\n * @param payload The visit data to update, such as stop datetime or attributes.\n * @param abortController An AbortController to allow cancellation of the request.\n * @returns A Promise that resolves with the FetchResponse containing the updated Visit.\n *\n * @example\n * ```ts\n * import { updateVisit } from '@openmrs/esm-framework';\n * const abortController = new AbortController();\n * const response = await updateVisit('visit-uuid', {\n * stopDatetime: new Date().toISOString()\n * }, abortController);\n * ```\n */ function updateVisit(uuid, payload, abortController) {\n return (0,_openmrs_esm_api__rspack_import_0.openmrsFetch)(\"\".concat(_openmrs_esm_api__rspack_import_0.restBaseUrl, \"/visit/\").concat(uuid), {\n signal: abortController.signal,\n method: 'POST',\n headers: {\n 'Content-type': 'application/json'\n },\n body: payload\n });\n}\n/**\n * @deprecated Use the `useVisit` hook instead.\n */ function getVisitsForPatient(patientUuid, abortController, v) {\n var custom = v !== null && v !== void 0 ? v : defaultVisitCustomRepresentation;\n return (0,_openmrs_esm_api__rspack_import_0.openmrsFetch)(\"\".concat(_openmrs_esm_api__rspack_import_0.restBaseUrl, \"/visit?patient=\").concat(patientUuid, \"&v=\").concat(custom), {\n signal: abortController.signal,\n method: 'GET',\n headers: {\n 'Content-type': 'application/json'\n }\n });\n}\n/** @deprecated */ var getStartedVisit = new rxjs__rspack_import_2.BehaviorSubject(null);\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyIS9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9wYWNrYWdlcy9mcmFtZXdvcmsvZXNtLWVtci1hcGkvZGlzdC92aXNpdC11dGlscy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1lbXItYXBpL2Rpc3QvdmlzaXQtdXRpbHMuanM/ZGNkNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgQVBJICovIGltcG9ydCB7IG9wZW5tcnNGZXRjaCwgcmVzdEJhc2VVcmwgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWFwaVwiO1xuaW1wb3J0IHsgZ2V0R2xvYmFsU3RvcmUgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLXN0YXRlXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuZXhwb3J0IHZhciBWaXNpdE1vZGUgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFZpc2l0TW9kZSkge1xuICAgIFZpc2l0TW9kZVtcIk5FV1ZJU0lUXCJdID0gXCJzdGFydFZpc2l0XCI7XG4gICAgVmlzaXRNb2RlW1wiRURJVFZJU0lUXCJdID0gXCJlZGl0VmlzaXRcIjtcbiAgICBWaXNpdE1vZGVbXCJMT0FESU5HXCJdID0gXCJsb2FkaW5nVmlzaXRcIjtcbiAgICByZXR1cm4gVmlzaXRNb2RlO1xufSh7fSk7XG5leHBvcnQgdmFyIFZpc2l0U3RhdHVzID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihWaXNpdFN0YXR1cykge1xuICAgIFZpc2l0U3RhdHVzW1wiTk9UU1RBUlRFRFwiXSA9IFwibm90U3RhcnRlZFwiO1xuICAgIFZpc2l0U3RhdHVzW1wiT05HT0lOR1wiXSA9IFwib25nb2luZ1wiO1xuICAgIHJldHVybiBWaXNpdFN0YXR1cztcbn0oe30pO1xuLyoqXG4gKiBUaGUgZGVmYXVsdCBjdXN0b20gcmVwcmVzZW50YXRpb24gc3RyaW5nIGZvciBmZXRjaGluZyB2aXNpdCBkYXRhIGZyb20gdGhlIFJFU1QgQVBJLlxuICogVGhpcyByZXByZXNlbnRhdGlvbiBpbmNsdWRlcyBjb21wcmVoZW5zaXZlIHZpc2l0IGRldGFpbHMgc3VjaCBhcyBlbmNvdW50ZXJzLCBwYXRpZW50LFxuICogdmlzaXQgdHlwZSwgYXR0cmlidXRlcywgYW5kIGxvY2F0aW9uIGluZm9ybWF0aW9uLlxuICovIGV4cG9ydCBjb25zdCBkZWZhdWx0VmlzaXRDdXN0b21SZXByZXNlbnRhdGlvbiA9ICdjdXN0b206KHV1aWQsZGlzcGxheSx2b2lkZWQsaW5kaWNhdGlvbixzdGFydERhdGV0aW1lLHN0b3BEYXRldGltZSwnICsgJ2VuY291bnRlcnM6KHV1aWQsZGlzcGxheSxlbmNvdW50ZXJEYXRldGltZSwnICsgJ2Zvcm06KHV1aWQsbmFtZSksbG9jYXRpb246cmVmLCcgKyAnZW5jb3VudGVyVHlwZTpyZWYsJyArICdlbmNvdW50ZXJQcm92aWRlcnM6KHV1aWQsZGlzcGxheSwnICsgJ3Byb3ZpZGVyOih1dWlkLGRpc3BsYXkpKSksJyArICdwYXRpZW50Oih1dWlkLGRpc3BsYXkpLCcgKyAndmlzaXRUeXBlOih1dWlkLG5hbWUsZGlzcGxheSksJyArICdhdHRyaWJ1dGVzOih1dWlkLGRpc3BsYXksYXR0cmlidXRlVHlwZToobmFtZSxkYXRhdHlwZUNsYXNzbmFtZSx1dWlkKSx2YWx1ZSksJyArICdsb2NhdGlvbjoodXVpZCxuYW1lLGRpc3BsYXkpKSc7XG5jb25zdCBpbml0aWFsU3RhdGUgPSBnZXRWaXNpdFNlc3Npb25TdG9yYWdlKCkgfHwge1xuICAgIHBhdGllbnRVdWlkOiBudWxsLFxuICAgIG1hbnVhbGx5U2V0VmlzaXRVdWlkOiBudWxsXG59O1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBnbG9iYWwgdmlzaXQgc3RvcmUgdGhhdCBtYW5hZ2VzIHRoZSBjdXJyZW50IHZpc2l0IHN0YXRlLiBUaGUgc3RvcmVcbiAqIGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHBhdGllbnQncyB2aXNpdCBhbmQgcHJvdmlkZXMgbWV0aG9kc1xuICogZm9yIHN1YnNjcmliaW5nIHRvIHZpc2l0IHN0YXRlIGNoYW5nZXMuXG4gKlxuICogQHJldHVybnMgVGhlIGdsb2JhbCB2aXNpdCBzdG9yZSBpbnN0YW5jZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IGdldFZpc2l0U3RvcmUgfSBmcm9tICdAb3Blbm1ycy9lc20tZnJhbWV3b3JrJztcbiAqIGNvbnN0IHN0b3JlID0gZ2V0VmlzaXRTdG9yZSgpO1xuICogY29uc3QgdW5zdWJzY3JpYmUgPSBzdG9yZS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKCdDdXJyZW50IHBhdGllbnQ6Jywgc3RhdGUucGF0aWVudFV1aWQpO1xuICogfSk7XG4gKiBgYGBcbiAqLyBleHBvcnQgZnVuY3Rpb24gZ2V0VmlzaXRTdG9yZSgpIHtcbiAgICByZXR1cm4gZ2V0R2xvYmFsU3RvcmUoJ3Zpc2l0JywgaW5pdGlhbFN0YXRlKTtcbn1cbi8qKlxuICogU2V0cyB0aGUgY3VycmVudCB2aXNpdCBmb3IgYSBwYXRpZW50IGluIHRoZSBnbG9iYWwgdmlzaXQgc3RvcmUuIFRoaXMgaXMgdXNlZFxuICogdG8gbWFudWFsbHkgc3BlY2lmeSB3aGljaCB2aXNpdCBzaG91bGQgYmUgY29uc2lkZXJlZCBcImFjdGl2ZVwiIGZvciB0aGUgZ2l2ZW4gcGF0aWVudC5cbiAqXG4gKiBAcGFyYW0gcGF0aWVudFV1aWQgVGhlIFVVSUQgb2YgdGhlIHBhdGllbnQuXG4gKiBAcGFyYW0gdmlzaXRVdWlkIFRoZSBVVUlEIG9mIHRoZSB2aXNpdCB0byBzZXQgYXMgdGhlIGN1cnJlbnQgdmlzaXQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBzZXRDdXJyZW50VmlzaXQgfSBmcm9tICdAb3Blbm1ycy9lc20tZnJhbWV3b3JrJztcbiAqIHNldEN1cnJlbnRWaXNpdCgncGF0aWVudC11dWlkJywgJ3Zpc2l0LXV1aWQnKTtcbiAqIGBgYFxuICpcbiAqIEBkZXByZWNhdGVkIFwiY3VycmVudCB2aXNpdFwiIGlzIG5vdCB3ZWxsIGRlZmluZWQgb3V0c2lkZSBvZiB0aGUgcGF0aWVudCBjaGFydC5cbiAqIFVzZSBgdmlzaXRDb250ZXh0YCBpbiB0aGUgcGF0aWVudCBjaGFydCBpbnN0ZWFkLlxuICovIGV4cG9ydCBmdW5jdGlvbiBzZXRDdXJyZW50VmlzaXQocGF0aWVudFV1aWQsIHZpc2l0VXVpZCkge1xuICAgIGdldFZpc2l0U3RvcmUoKS5zZXRTdGF0ZSh7XG4gICAgICAgIHBhdGllbnRVdWlkLFxuICAgICAgICBtYW51YWxseVNldFZpc2l0VXVpZDogdmlzaXRVdWlkXG4gICAgfSk7XG59XG5nZXRWaXNpdFN0b3JlKCkuc3Vic2NyaWJlKChzdGF0ZSk9PntcbiAgICBzZXRWaXNpdFNlc3Npb25TdG9yYWdlKHN0YXRlKTtcbn0pO1xuZnVuY3Rpb24gc2V0VmlzaXRTZXNzaW9uU3RvcmFnZSh2YWx1ZSkge1xuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ29wZW5tcnM6dmlzaXRTdG9yZVN0YXRlJywgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbn1cbmZ1bmN0aW9uIGdldFZpc2l0U2Vzc2lvblN0b3JhZ2UoKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnb3Blbm1yczp2aXNpdFN0b3JlU3RhdGUnKSB8fCAnbnVsbCcpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IHZpc2l0IGJ5IHNlbmRpbmcgYSBQT1NUIHJlcXVlc3QgdG8gdGhlIE9wZW5NUlMgUkVTVCBBUEkuXG4gKlxuICogQHBhcmFtIHBheWxvYWQgVGhlIHZpc2l0IGRhdGEgdG8gY3JlYXRlLCBpbmNsdWRpbmcgcGF0aWVudCBVVUlELCB2aXNpdCB0eXBlLFxuICogICBzdGFydCBkYXRldGltZSwgYW5kIG90aGVyIHZpc2l0IGF0dHJpYnV0ZXMuXG4gKiBAcGFyYW0gYWJvcnRDb250cm9sbGVyIEFuIEFib3J0Q29udHJvbGxlciB0byBhbGxvdyBjYW5jZWxsYXRpb24gb2YgdGhlIHJlcXVlc3QuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBGZXRjaFJlc3BvbnNlIGNvbnRhaW5pbmcgdGhlIGNyZWF0ZWQgVmlzaXQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBzYXZlVmlzaXQgfSBmcm9tICdAb3Blbm1ycy9lc20tZnJhbWV3b3JrJztcbiAqIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAqIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc2F2ZVZpc2l0KHtcbiAqICAgcGF0aWVudDogJ3BhdGllbnQtdXVpZCcsXG4gKiAgIHZpc2l0VHlwZTogJ3Zpc2l0LXR5cGUtdXVpZCcsXG4gKiAgIHN0YXJ0RGF0ZXRpbWU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICogfSwgYWJvcnRDb250cm9sbGVyKTtcbiAqIGBgYFxuICovIGV4cG9ydCBmdW5jdGlvbiBzYXZlVmlzaXQocGF5bG9hZCwgYWJvcnRDb250cm9sbGVyKSB7XG4gICAgcmV0dXJuIG9wZW5tcnNGZXRjaChgJHtyZXN0QmFzZVVybH0vdmlzaXRgLCB7XG4gICAgICAgIHNpZ25hbDogYWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdDb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogcGF5bG9hZFxuICAgIH0pO1xufVxuLyoqXG4gKiBVcGRhdGVzIGFuIGV4aXN0aW5nIHZpc2l0IGJ5IHNlbmRpbmcgYSBQT1NUIHJlcXVlc3QgdG8gdGhlIE9wZW5NUlMgUkVTVCBBUEkuXG4gKlxuICogQHBhcmFtIHV1aWQgVGhlIFVVSUQgb2YgdGhlIHZpc2l0IHRvIHVwZGF0ZS5cbiAqIEBwYXJhbSBwYXlsb2FkIFRoZSB2aXNpdCBkYXRhIHRvIHVwZGF0ZSwgc3VjaCBhcyBzdG9wIGRhdGV0aW1lIG9yIGF0dHJpYnV0ZXMuXG4gKiBAcGFyYW0gYWJvcnRDb250cm9sbGVyIEFuIEFib3J0Q29udHJvbGxlciB0byBhbGxvdyBjYW5jZWxsYXRpb24gb2YgdGhlIHJlcXVlc3QuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBGZXRjaFJlc3BvbnNlIGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgVmlzaXQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyB1cGRhdGVWaXNpdCB9IGZyb20gJ0BvcGVubXJzL2VzbS1mcmFtZXdvcmsnO1xuICogY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICogY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB1cGRhdGVWaXNpdCgndmlzaXQtdXVpZCcsIHtcbiAqICAgc3RvcERhdGV0aW1lOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAqIH0sIGFib3J0Q29udHJvbGxlcik7XG4gKiBgYGBcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXBkYXRlVmlzaXQodXVpZCwgcGF5bG9hZCwgYWJvcnRDb250cm9sbGVyKSB7XG4gICAgcmV0dXJuIG9wZW5tcnNGZXRjaChgJHtyZXN0QmFzZVVybH0vdmlzaXQvJHt1dWlkfWAsIHtcbiAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICB9LFxuICAgICAgICBib2R5OiBwYXlsb2FkXG4gICAgfSk7XG59XG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0aGUgYHVzZVZpc2l0YCBob29rIGluc3RlYWQuXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGdldFZpc2l0c0ZvclBhdGllbnQocGF0aWVudFV1aWQsIGFib3J0Q29udHJvbGxlciwgdikge1xuICAgIGNvbnN0IGN1c3RvbSA9IHYgPz8gZGVmYXVsdFZpc2l0Q3VzdG9tUmVwcmVzZW50YXRpb247XG4gICAgcmV0dXJuIG9wZW5tcnNGZXRjaChgJHtyZXN0QmFzZVVybH0vdmlzaXQ/cGF0aWVudD0ke3BhdGllbnRVdWlkfSZ2PSR7Y3VzdG9tfWAsIHtcbiAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQ29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgIH1cbiAgICB9KTtcbn1cbi8qKiBAZGVwcmVjYXRlZCAqLyBleHBvcnQgY29uc3QgZ2V0U3RhcnRlZFZpc2l0ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiJdLCJuYW1lcyI6WyJvcGVubXJzRmV0Y2giLCJyZXN0QmFzZVVybCIsImdldEdsb2JhbFN0b3JlIiwiQmVoYXZpb3JTdWJqZWN0IiwiVmlzaXRNb2RlIiwiVmlzaXRTdGF0dXMiLCJkZWZhdWx0VmlzaXRDdXN0b21SZXByZXNlbnRhdGlvbiIsImluaXRpYWxTdGF0ZSIsImdldFZpc2l0U2Vzc2lvblN0b3JhZ2UiLCJnZXRWaXNpdFN0b3JlIiwic2V0Q3VycmVudFZpc2l0IiwicGF0aWVudFV1aWQiLCJ2aXNpdFV1aWQiLCJzdGF0ZSIsInNldFZpc2l0U2Vzc2lvblN0b3JhZ2UiLCJ2YWx1ZSIsInNlc3Npb25TdG9yYWdlIiwiSlNPTiIsImUiLCJzYXZlVmlzaXQiLCJwYXlsb2FkIiwiYWJvcnRDb250cm9sbGVyIiwidXBkYXRlVmlzaXQiLCJ1dWlkIiwiZ2V0VmlzaXRzRm9yUGF0aWVudCIsInYiLCJjdXN0b20iLCJnZXRTdGFydGVkVmlzaXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQkFBMEIsR0FBZ0U7QUFDdEM7QUFDYjtBQUNoQyxJQUFJSSxZQUFZLFdBQVcsR0FBRyxTQUFTQSxTQUFTO0lBQ25EQSxTQUFTLENBQUMsV0FBVyxHQUFHO0lBQ3hCQSxTQUFTLENBQUMsWUFBWSxHQUFHO0lBQ3pCQSxTQUFTLENBQUMsVUFBVSxHQUFHO0lBQ3ZCLE9BQU9BO0FBQ1gsRUFBRSxDQUFDLEdBQUc7QUFDQyxJQUFJQyxjQUFjLFdBQVcsR0FBRyxTQUFTQSxXQUFXO0lBQ3ZEQSxXQUFXLENBQUMsYUFBYSxHQUFHO0lBQzVCQSxXQUFXLENBQUMsVUFBVSxHQUFHO0lBQ3pCLE9BQU9BO0FBQ1gsRUFBRSxDQUFDLEdBQUc7QUFDTjs7OztDQUlDLEdBQVUsSUFBTUMsbUNBQW1DLHVFQUF1RSxnREFBZ0QsbUNBQW1DLHVCQUF1QixzQ0FBc0MsK0JBQStCLDRCQUE0QixtQ0FBbUMsaUZBQWlGLGdDQUFnQztBQUMxZCxJQUFNQyxlQUFlQyw0QkFBNEI7SUFDN0MsYUFBYTtJQUNiLHNCQUFzQjtBQUMxQjtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Q0FlQyxHQUFVLFNBQVNDO0lBQ2hCLE9BQU9QLHNEQUFjQSxDQUFDLFNBQVNLO0FBQ25DO0FBQ0E7Ozs7Ozs7Ozs7Ozs7OztDQWVDLEdBQVUsU0FBU0csZ0JBQWdCQyxXQUFXLEVBQUVDLFNBQVM7SUFDdERILGdCQUFnQixRQUFRLENBQUM7UUFDckJFLGFBQUFBO1FBQ0Esc0JBQXNCQztJQUMxQjtBQUNKO0FBQ0FILGdCQUFnQixTQUFTLENBQUMsU0FBQ0k7SUFDdkJDLHVCQUF1QkQ7QUFDM0I7QUFDQSxTQUFTQyx1QkFBdUJDLEtBQUs7SUFDakNDLGVBQWUsT0FBTyxDQUFDLDJCQUEyQkMsS0FBSyxTQUFTLENBQUNGO0FBQ3JFO0FBQ0EsU0FBU1A7SUFDTCxJQUFJO1FBQ0EsT0FBT1MsS0FBSyxLQUFLLENBQUNELGVBQWUsT0FBTyxDQUFDLDhCQUE4QjtJQUMzRSxFQUFFLE9BQU9FLEdBQUc7UUFDUixPQUFPO0lBQ1g7QUFDSjtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQkMsR0FBVSxTQUFTQyxVQUFVQyxPQUFPLEVBQUVDLGVBQWU7SUFDbEQsT0FBT3JCLGtEQUFZQSxDQUFFLEdBQWMsT0FBWkMsNkNBQVdBLEVBQUMsV0FBUztRQUN4QyxRQUFRb0IsZ0JBQWdCLE1BQU07UUFDOUIsUUFBUTtRQUNSLFNBQVM7WUFDTCxnQkFBZ0I7UUFDcEI7UUFDQSxNQUFNRDtJQUNWO0FBQ0o7QUFDQTs7Ozs7Ozs7Ozs7Ozs7OztDQWdCQyxHQUFVLFNBQVNFLFlBQVlDLElBQUksRUFBRUgsT0FBTyxFQUFFQyxlQUFlO0lBQzFELE9BQU9yQixrREFBWUEsQ0FBRSxHQUF1QnVCLE9BQXJCdEIsNkNBQVdBLEVBQUMsV0FBYyxPQUFMc0IsT0FBUTtRQUNoRCxRQUFRRixnQkFBZ0IsTUFBTTtRQUM5QixRQUFRO1FBQ1IsU0FBUztZQUNMLGdCQUFnQjtRQUNwQjtRQUNBLE1BQU1EO0lBQ1Y7QUFDSjtBQUNBOztDQUVDLEdBQVUsU0FBU0ksb0JBQW9CYixXQUFXLEVBQUVVLGVBQWUsRUFBRUksQ0FBQztJQUNuRSxJQUFNQyxTQUFTRCxjQUFBQSxlQUFBQSxJQUFLbkI7SUFDcEIsT0FBT04sa0RBQVlBLENBQUUsR0FBK0JXLE9BQTdCViw2Q0FBV0EsRUFBQyxtQkFBa0N5QixPQUFqQmYsYUFBWSxPQUFZLE9BQVBlLFNBQVU7UUFDM0UsUUFBUUwsZ0JBQWdCLE1BQU07UUFDOUIsUUFBUTtRQUNSLFNBQVM7WUFDTCxnQkFBZ0I7UUFDcEI7SUFDSjtBQUNKO0FBQ0EsZ0JBQWdCLEdBQVUsSUFBTU0sa0JBQWtCLElBQUl4QixxQ0FBZUEsQ0FBQyxNQUFNIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-emr-api/dist/visit-utils.js\n\n}");
|
|
5729
5729
|
|
|
5730
5730
|
},
|
|
5731
5731
|
"../../framework/esm-error-handling/dist/index.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
@@ -6160,12 +6160,12 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
6160
6160
|
},
|
|
6161
6161
|
"../../framework/esm-react-utils/dist/useVisit.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
6162
6162
|
"use strict";
|
|
6163
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useVisit: () => (useVisit)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"../../../node_modules/swr/dist/core/index.mjs\");\n/* import */ var dayjs__rspack_import_2 = __webpack_require__(\"webpack/sharing/consume/default/dayjs/dayjs\");\n/* import */ var dayjs__rspack_import_2_default = /*#__PURE__*/__webpack_require__.n(dayjs__rspack_import_2);\n/* import */ var dayjs_plugin_isToday_js__rspack_import_3 = __webpack_require__(\"../../../node_modules/dayjs/plugin/isToday.js\");\n/* import */ var _openmrs_esm_api__rspack_import_4 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var _openmrs_esm_emr_api__rspack_import_5 = __webpack_require__(\"../../framework/esm-emr-api/dist/index.js\");\n/* import */ var _useVisitContextStore_js__rspack_import_6 = __webpack_require__(\"../../framework/esm-react-utils/dist/useVisitContextStore.js\");\n/** @module @category API */ \n\n\n\n\n\n\ndayjs__rspack_import_2_default().extend(dayjs_plugin_isToday_js__rspack_import_3);\n/**\n * This React hook returns visit information if the patient UUID is not null. There are\n * potentially two relevant visits at a time: \"active\" and \"current\".\n *\n * The active visit is the most recent visit without an end date. The presence of an active\n * visit generally means that the patient is in the facility.\n *\n * The current visit is the active visit, unless a retrospective visit has been selected.\n * If there is no active visit and no selected retrospective visit, then there is no\n * current visit. If there is no active visit but there is a retrospective visit, then\n * the retrospective visit is the current visit. `currentVisitIsRetrospective` tells you\n * whether the current visit is a retrospective visit.\n *\n * The active visit and current visit require two separate API calls. `error` contains\n * the error from either one, if there is an error. `isValidating` is true if either\n * API call is in progress. `mutate` refreshes the data from both API calls.\n *\n * @param patientUuid Unique patient identifier `string`\n * @param representation The custom representation of the visit\n */ function useVisit(patientUuid) {\n var representation = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : _openmrs_esm_emr_api__rspack_import_5.defaultVisitCustomRepresentation;\n var _useVisitContextStore = (0,_useVisitContextStore_js__rspack_import_6.useVisitContextStore)(), visitStorePatientUuid = _useVisitContextStore.patientUuid, manuallySetVisitUuid = _useVisitContextStore.manuallySetVisitUuid, setVisitContext = _useVisitContextStore.setVisitContext;\n // Ignore the visit store data if it is not for this patient\n var retrospectiveVisitUuid = patientUuid && visitStorePatientUuid == patientUuid ? manuallySetVisitUuid : null;\n var activeVisitUrlSuffix = \"?patient=\".concat(patientUuid, \"&v=\").concat(representation, \"&includeInactive=false\");\n var retrospectiveVisitUrlSuffix = \"/\".concat(retrospectiveVisitUuid, \"?v=\").concat(representation);\n var _useSWR = (0,swr__rspack_import_1[\"default\"])(patientUuid ? \"\".concat(_openmrs_esm_api__rspack_import_4.restBaseUrl, \"/visit\").concat(activeVisitUrlSuffix) : null, _openmrs_esm_api__rspack_import_4.openmrsFetch), activeData = _useSWR.data, activeError = _useSWR.error, activeMutate = _useSWR.mutate, activeIsValidating = _useSWR.isValidating;\n var _useSWR1 = (0,swr__rspack_import_1[\"default\"])(patientUuid && retrospectiveVisitUuid ? \"\".concat(_openmrs_esm_api__rspack_import_4.restBaseUrl, \"/visit\").concat(retrospectiveVisitUrlSuffix) : null, _openmrs_esm_api__rspack_import_4.openmrsFetch), retroData = _useSWR1.data, retroError = _useSWR1.error, retroMutate = _useSWR1.mutate, retroIsValidating = _useSWR1.isValidating;\n var activeVisit = (0,react__rspack_import_0.useMemo)(function() {\n var _ref;\n return (_ref = activeData === null || activeData === void 0 ? void 0 : activeData.data.results.find(function(visit) {\n return visit.stopDatetime === null;\n })) !== null && _ref !== void 0 ? _ref : null;\n }, [\n activeData\n ]);\n var currentVisit = (0,react__rspack_import_0.useMemo)(function() {\n return retrospectiveVisitUuid && retroData ? retroData.data : null;\n }, [\n retroData,\n retrospectiveVisitUuid\n ]);\n var previousCurrentVisit = (0,react__rspack_import_0.useRef)(null);\n (0,react__rspack_import_0.useEffect)(function() {\n // if an active visit is created for the visit store patient and they have no visit in context, set the context to the active visit\n if (!activeIsValidating && activeVisit && visitStorePatientUuid === patientUuid && manuallySetVisitUuid === null) {\n setVisitContext(activeVisit);\n }\n if (!retroIsValidating) {\n // if the current visit happened to be active but it just got ended (inactive), remove the\n // visit from context\n if (previousCurrentVisit.current && currentVisit && previousCurrentVisit.current.uuid === currentVisit.uuid && !previousCurrentVisit.current.stopDatetime && currentVisit.stopDatetime) {\n setVisitContext(null);\n }\n previousCurrentVisit.current = currentVisit;\n }\n }, [\n currentVisit,\n manuallySetVisitUuid,\n activeVisit,\n activeIsValidating,\n retroIsValidating,\n visitStorePatientUuid\n ]);\n var mutateVisit = (0,react__rspack_import_0.useCallback)(function() {\n activeMutate();\n retroMutate();\n }, [\n activeMutate,\n retroMutate\n ]);\n (0,_useVisitContextStore_js__rspack_import_6.useVisitContextStore)(mutateVisit);\n var waitingForData = Boolean(!activeData || retrospectiveVisitUuid && !retroData);\n var hasRelevantError = Boolean(retrospectiveVisitUuid ? retroError : activeError);\n var isLoading = waitingForData && !hasRelevantError;\n return {\n error: activeError || retroError,\n mutate: mutateVisit,\n isValidating: activeIsValidating || retroIsValidating,\n activeVisit: activeVisit,\n currentVisit: currentVisit,\n currentVisitIsRetrospective: Boolean(retrospectiveVisitUuid),\n isLoading: isLoading\n };\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyIS9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9wYWNrYWdlcy9mcmFtZXdvcmsvZXNtLXJlYWN0LXV0aWxzL2Rpc3QvdXNlVmlzaXQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvZGlzdC91c2VWaXNpdC5qcz9iZWIwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBBUEkgKi8gaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdXNlU1dSIGZyb20gXCJzd3JcIjtcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCBpc1RvZGF5IGZyb20gXCJkYXlqcy9wbHVnaW4vaXNUb2RheS5qc1wiO1xuaW1wb3J0IHsgb3Blbm1yc0ZldGNoLCByZXN0QmFzZVVybCB9IGZyb20gXCJAb3Blbm1ycy9lc20tYXBpXCI7XG5pbXBvcnQgeyBkZWZhdWx0VmlzaXRDdXN0b21SZXByZXNlbnRhdGlvbiB9IGZyb20gXCJAb3Blbm1ycy9lc20tZW1yLWFwaVwiO1xuaW1wb3J0IHsgdXNlVmlzaXRDb250ZXh0U3RvcmUgfSBmcm9tIFwiLi91c2VWaXNpdENvbnRleHRTdG9yZS5qc1wiO1xuZGF5anMuZXh0ZW5kKGlzVG9kYXkpO1xuLyoqXG4gKiBUaGlzIFJlYWN0IGhvb2sgcmV0dXJucyB2aXNpdCBpbmZvcm1hdGlvbiBpZiB0aGUgcGF0aWVudCBVVUlEIGlzIG5vdCBudWxsLiBUaGVyZSBhcmVcbiAqIHBvdGVudGlhbGx5IHR3byByZWxldmFudCB2aXNpdHMgYXQgYSB0aW1lOiBcImFjdGl2ZVwiIGFuZCBcImN1cnJlbnRcIi5cbiAqXG4gKiBUaGUgYWN0aXZlIHZpc2l0IGlzIHRoZSBtb3N0IHJlY2VudCB2aXNpdCB3aXRob3V0IGFuIGVuZCBkYXRlLiBUaGUgcHJlc2VuY2Ugb2YgYW4gYWN0aXZlXG4gKiB2aXNpdCBnZW5lcmFsbHkgbWVhbnMgdGhhdCB0aGUgcGF0aWVudCBpcyBpbiB0aGUgZmFjaWxpdHkuXG4gKlxuICogVGhlIGN1cnJlbnQgdmlzaXQgaXMgdGhlIGFjdGl2ZSB2aXNpdCwgdW5sZXNzIGEgcmV0cm9zcGVjdGl2ZSB2aXNpdCBoYXMgYmVlbiBzZWxlY3RlZC5cbiAqIElmIHRoZXJlIGlzIG5vIGFjdGl2ZSB2aXNpdCBhbmQgbm8gc2VsZWN0ZWQgcmV0cm9zcGVjdGl2ZSB2aXNpdCwgdGhlbiB0aGVyZSBpcyBub1xuICogY3VycmVudCB2aXNpdC4gSWYgdGhlcmUgaXMgbm8gYWN0aXZlIHZpc2l0IGJ1dCB0aGVyZSBpcyBhIHJldHJvc3BlY3RpdmUgdmlzaXQsIHRoZW5cbiAqIHRoZSByZXRyb3NwZWN0aXZlIHZpc2l0IGlzIHRoZSBjdXJyZW50IHZpc2l0LiBgY3VycmVudFZpc2l0SXNSZXRyb3NwZWN0aXZlYCB0ZWxscyB5b3VcbiAqIHdoZXRoZXIgdGhlIGN1cnJlbnQgdmlzaXQgaXMgYSByZXRyb3NwZWN0aXZlIHZpc2l0LlxuICpcbiAqIFRoZSBhY3RpdmUgdmlzaXQgYW5kIGN1cnJlbnQgdmlzaXQgcmVxdWlyZSB0d28gc2VwYXJhdGUgQVBJIGNhbGxzLiBgZXJyb3JgIGNvbnRhaW5zXG4gKiB0aGUgZXJyb3IgZnJvbSBlaXRoZXIgb25lLCBpZiB0aGVyZSBpcyBhbiBlcnJvci4gYGlzVmFsaWRhdGluZ2AgaXMgdHJ1ZSBpZiBlaXRoZXJcbiAqIEFQSSBjYWxsIGlzIGluIHByb2dyZXNzLiBgbXV0YXRlYCByZWZyZXNoZXMgdGhlIGRhdGEgZnJvbSBib3RoIEFQSSBjYWxscy5cbiAqXG4gKiBAcGFyYW0gcGF0aWVudFV1aWQgVW5pcXVlIHBhdGllbnQgaWRlbnRpZmllciBgc3RyaW5nYFxuICogQHBhcmFtIHJlcHJlc2VudGF0aW9uIFRoZSBjdXN0b20gcmVwcmVzZW50YXRpb24gb2YgdGhlIHZpc2l0XG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVZpc2l0KHBhdGllbnRVdWlkLCByZXByZXNlbnRhdGlvbiA9IGRlZmF1bHRWaXNpdEN1c3RvbVJlcHJlc2VudGF0aW9uKSB7XG4gICAgY29uc3QgeyBwYXRpZW50VXVpZDogdmlzaXRTdG9yZVBhdGllbnRVdWlkLCBtYW51YWxseVNldFZpc2l0VXVpZCwgc2V0VmlzaXRDb250ZXh0IH0gPSB1c2VWaXNpdENvbnRleHRTdG9yZSgpO1xuICAgIC8vIElnbm9yZSB0aGUgdmlzaXQgc3RvcmUgZGF0YSBpZiBpdCBpcyBub3QgZm9yIHRoaXMgcGF0aWVudFxuICAgIGNvbnN0IHJldHJvc3BlY3RpdmVWaXNpdFV1aWQgPSBwYXRpZW50VXVpZCAmJiB2aXNpdFN0b3JlUGF0aWVudFV1aWQgPT0gcGF0aWVudFV1aWQgPyBtYW51YWxseVNldFZpc2l0VXVpZCA6IG51bGw7XG4gICAgY29uc3QgYWN0aXZlVmlzaXRVcmxTdWZmaXggPSBgP3BhdGllbnQ9JHtwYXRpZW50VXVpZH0mdj0ke3JlcHJlc2VudGF0aW9ufSZpbmNsdWRlSW5hY3RpdmU9ZmFsc2VgO1xuICAgIGNvbnN0IHJldHJvc3BlY3RpdmVWaXNpdFVybFN1ZmZpeCA9IGAvJHtyZXRyb3NwZWN0aXZlVmlzaXRVdWlkfT92PSR7cmVwcmVzZW50YXRpb259YDtcbiAgICBjb25zdCB7IGRhdGE6IGFjdGl2ZURhdGEsIGVycm9yOiBhY3RpdmVFcnJvciwgbXV0YXRlOiBhY3RpdmVNdXRhdGUsIGlzVmFsaWRhdGluZzogYWN0aXZlSXNWYWxpZGF0aW5nIH0gPSB1c2VTV1IocGF0aWVudFV1aWQgPyBgJHtyZXN0QmFzZVVybH0vdmlzaXQke2FjdGl2ZVZpc2l0VXJsU3VmZml4fWAgOiBudWxsLCBvcGVubXJzRmV0Y2gpO1xuICAgIGNvbnN0IHsgZGF0YTogcmV0cm9EYXRhLCBlcnJvcjogcmV0cm9FcnJvciwgbXV0YXRlOiByZXRyb011dGF0ZSwgaXNWYWxpZGF0aW5nOiByZXRyb0lzVmFsaWRhdGluZyB9ID0gdXNlU1dSKHBhdGllbnRVdWlkICYmIHJldHJvc3BlY3RpdmVWaXNpdFV1aWQgPyBgJHtyZXN0QmFzZVVybH0vdmlzaXQke3JldHJvc3BlY3RpdmVWaXNpdFVybFN1ZmZpeH1gIDogbnVsbCwgb3Blbm1yc0ZldGNoKTtcbiAgICBjb25zdCBhY3RpdmVWaXNpdCA9IHVzZU1lbW8oKCk9PmFjdGl2ZURhdGE/LmRhdGEucmVzdWx0cy5maW5kKCh2aXNpdCk9PnZpc2l0LnN0b3BEYXRldGltZSA9PT0gbnVsbCkgPz8gbnVsbCwgW1xuICAgICAgICBhY3RpdmVEYXRhXG4gICAgXSk7XG4gICAgY29uc3QgY3VycmVudFZpc2l0ID0gdXNlTWVtbygoKT0+cmV0cm9zcGVjdGl2ZVZpc2l0VXVpZCAmJiByZXRyb0RhdGEgPyByZXRyb0RhdGEuZGF0YSA6IG51bGwsIFtcbiAgICAgICAgcmV0cm9EYXRhLFxuICAgICAgICByZXRyb3NwZWN0aXZlVmlzaXRVdWlkXG4gICAgXSk7XG4gICAgY29uc3QgcHJldmlvdXNDdXJyZW50VmlzaXQgPSB1c2VSZWYobnVsbCk7XG4gICAgdXNlRWZmZWN0KCgpPT57XG4gICAgICAgIC8vIGlmIGFuIGFjdGl2ZSB2aXNpdCBpcyBjcmVhdGVkIGZvciB0aGUgdmlzaXQgc3RvcmUgcGF0aWVudCBhbmQgdGhleSBoYXZlIG5vIHZpc2l0IGluIGNvbnRleHQsIHNldCB0aGUgY29udGV4dCB0byB0aGUgYWN0aXZlIHZpc2l0XG4gICAgICAgIGlmICghYWN0aXZlSXNWYWxpZGF0aW5nICYmIGFjdGl2ZVZpc2l0ICYmIHZpc2l0U3RvcmVQYXRpZW50VXVpZCA9PT0gcGF0aWVudFV1aWQgJiYgbWFudWFsbHlTZXRWaXNpdFV1aWQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHNldFZpc2l0Q29udGV4dChhY3RpdmVWaXNpdCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyZXRyb0lzVmFsaWRhdGluZykge1xuICAgICAgICAgICAgLy8gaWYgdGhlIGN1cnJlbnQgdmlzaXQgaGFwcGVuZWQgdG8gYmUgYWN0aXZlIGJ1dCBpdCBqdXN0IGdvdCBlbmRlZCAoaW5hY3RpdmUpLCByZW1vdmUgdGhlXG4gICAgICAgICAgICAvLyB2aXNpdCBmcm9tIGNvbnRleHRcbiAgICAgICAgICAgIGlmIChwcmV2aW91c0N1cnJlbnRWaXNpdC5jdXJyZW50ICYmIGN1cnJlbnRWaXNpdCAmJiBwcmV2aW91c0N1cnJlbnRWaXNpdC5jdXJyZW50LnV1aWQgPT09IGN1cnJlbnRWaXNpdC51dWlkICYmICFwcmV2aW91c0N1cnJlbnRWaXNpdC5jdXJyZW50LnN0b3BEYXRldGltZSAmJiBjdXJyZW50VmlzaXQuc3RvcERhdGV0aW1lKSB7XG4gICAgICAgICAgICAgICAgc2V0VmlzaXRDb250ZXh0KG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcHJldmlvdXNDdXJyZW50VmlzaXQuY3VycmVudCA9IGN1cnJlbnRWaXNpdDtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgY3VycmVudFZpc2l0LFxuICAgICAgICBtYW51YWxseVNldFZpc2l0VXVpZCxcbiAgICAgICAgYWN0aXZlVmlzaXQsXG4gICAgICAgIGFjdGl2ZUlzVmFsaWRhdGluZyxcbiAgICAgICAgcmV0cm9Jc1ZhbGlkYXRpbmcsXG4gICAgICAgIHZpc2l0U3RvcmVQYXRpZW50VXVpZFxuICAgIF0pO1xuICAgIGNvbnN0IG11dGF0ZVZpc2l0ID0gdXNlQ2FsbGJhY2soKCk9PntcbiAgICAgICAgYWN0aXZlTXV0YXRlKCk7XG4gICAgICAgIHJldHJvTXV0YXRlKCk7XG4gICAgfSwgW1xuICAgICAgICBhY3RpdmVNdXRhdGUsXG4gICAgICAgIHJldHJvTXV0YXRlXG4gICAgXSk7XG4gICAgdXNlVmlzaXRDb250ZXh0U3RvcmUobXV0YXRlVmlzaXQpO1xuICAgIGNvbnN0IHdhaXRpbmdGb3JEYXRhID0gQm9vbGVhbighYWN0aXZlRGF0YSB8fCByZXRyb3NwZWN0aXZlVmlzaXRVdWlkICYmICFyZXRyb0RhdGEpO1xuICAgIGNvbnN0IGhhc1JlbGV2YW50RXJyb3IgPSBCb29sZWFuKHJldHJvc3BlY3RpdmVWaXNpdFV1aWQgPyByZXRyb0Vycm9yIDogYWN0aXZlRXJyb3IpO1xuICAgIGNvbnN0IGlzTG9hZGluZyA9IHdhaXRpbmdGb3JEYXRhICYmICFoYXNSZWxldmFudEVycm9yO1xuICAgIHJldHVybiB7XG4gICAgICAgIGVycm9yOiBhY3RpdmVFcnJvciB8fCByZXRyb0Vycm9yLFxuICAgICAgICBtdXRhdGU6IG11dGF0ZVZpc2l0LFxuICAgICAgICBpc1ZhbGlkYXRpbmc6IGFjdGl2ZUlzVmFsaWRhdGluZyB8fCByZXRyb0lzVmFsaWRhdGluZyxcbiAgICAgICAgYWN0aXZlVmlzaXQsXG4gICAgICAgIGN1cnJlbnRWaXNpdCxcbiAgICAgICAgY3VycmVudFZpc2l0SXNSZXRyb3NwZWN0aXZlOiBCb29sZWFuKHJldHJvc3BlY3RpdmVWaXNpdFV1aWQpLFxuICAgICAgICBpc0xvYWRpbmdcbiAgICB9O1xufVxuIl0sIm5hbWVzIjpbInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVNXUiIsImRheWpzIiwiaXNUb2RheSIsIm9wZW5tcnNGZXRjaCIsInJlc3RCYXNlVXJsIiwiZGVmYXVsdFZpc2l0Q3VzdG9tUmVwcmVzZW50YXRpb24iLCJ1c2VWaXNpdENvbnRleHRTdG9yZSIsInVzZVZpc2l0IiwicGF0aWVudFV1aWQiLCJyZXByZXNlbnRhdGlvbiIsIl91c2VWaXNpdENvbnRleHRTdG9yZSIsInZpc2l0U3RvcmVQYXRpZW50VXVpZCIsIm1hbnVhbGx5U2V0VmlzaXRVdWlkIiwic2V0VmlzaXRDb250ZXh0IiwicmV0cm9zcGVjdGl2ZVZpc2l0VXVpZCIsImFjdGl2ZVZpc2l0VXJsU3VmZml4IiwicmV0cm9zcGVjdGl2ZVZpc2l0VXJsU3VmZml4IiwiX3VzZVNXUiIsImFjdGl2ZURhdGEiLCJhY3RpdmVFcnJvciIsImFjdGl2ZU11dGF0ZSIsImFjdGl2ZUlzVmFsaWRhdGluZyIsIl91c2VTV1IxIiwicmV0cm9EYXRhIiwicmV0cm9FcnJvciIsInJldHJvTXV0YXRlIiwicmV0cm9Jc1ZhbGlkYXRpbmciLCJhY3RpdmVWaXNpdCIsInZpc2l0IiwiY3VycmVudFZpc2l0IiwicHJldmlvdXNDdXJyZW50VmlzaXQiLCJtdXRhdGVWaXNpdCIsIndhaXRpbmdGb3JEYXRhIiwiQm9vbGVhbiIsImhhc1JlbGV2YW50RXJyb3IiLCJpc0xvYWRpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQkFBMEIsR0FBbUU7QUFDcEU7QUFDQztBQUNvQjtBQUNlO0FBQ1c7QUFDUDtBQUNqRUssdUNBQVksQ0FBQ0Msd0NBQU9BO0FBQ3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBbUJDLEdBQVUsU0FBU0ssU0FBU0MsV0FBVztRQUFFQyxpQkFBQUEsaUVBQWlCSixzRUFBZ0NBO0lBQ3ZGLElBQXNGSyx3QkFBQUEsa0VBQW9CQSxJQUFyRkMsd0JBQWlFRCxzQkFBOUUsYUFBb0NFLHVCQUEwQ0Ysc0JBQTFDRSxzQkFBc0JDLGtCQUFvQkgsc0JBQXBCRztJQUNsRSw0REFBNEQ7SUFDNUQsSUFBTUMseUJBQXlCTixlQUFlRyx5QkFBeUJILGNBQWNJLHVCQUF1QjtJQUM1RyxJQUFNRyx1QkFBd0IsWUFBNEJOLE9BQWpCRCxhQUFZLE9BQW9CLE9BQWZDLGdCQUFlO0lBQ3pFLElBQU1PLDhCQUErQixJQUErQlAsT0FBNUJLLHdCQUF1QixPQUFvQixPQUFmTDtJQUNwRSxJQUF5R1EsVUFBQUEsbUNBQU1BLENBQUNULGNBQWUsR0FBc0JPLE9BQXBCWCw2Q0FBV0EsRUFBQyxVQUE2QixPQUFyQlcsd0JBQXlCLE1BQU1aLDhDQUFZQSxHQUFsTGUsYUFBMkZELFFBQWpHLE1BQXlCRSxjQUF3RUYsUUFBL0UsT0FBNEJHLGVBQW1ESCxRQUEzRCxRQUFvQ0kscUJBQXVCSixRQUFyQztJQUNwRSxJQUFxR0ssV0FBQUEsbUNBQU1BLENBQUNkLGVBQWVNLHlCQUEwQixHQUFzQkUsT0FBcEJaLDZDQUFXQSxFQUFDLFVBQW9DLE9BQTVCWSwrQkFBZ0MsTUFBTWIsOENBQVlBLEdBQS9Nb0IsWUFBdUZELFNBQTdGLE1BQXdCRSxhQUFxRUYsU0FBNUUsT0FBMkJHLGNBQWlESCxTQUF6RCxRQUFtQ0ksb0JBQXNCSixTQUFwQztJQUNqRSxJQUFNSyxjQUFjN0Isa0NBQU9BLENBQUM7O3VCQUFJb0IsdUJBQUFBLGlDQUFBQSxXQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQUNVO21CQUFRQSxNQUFNLFlBQVksS0FBSztpREFBUztPQUFNO1FBQ3pHVjtLQUNIO0lBQ0QsSUFBTVcsZUFBZS9CLGtDQUFPQSxDQUFDO2VBQUlnQiwwQkFBMEJTLFlBQVlBLFVBQVUsSUFBSSxHQUFHO09BQU07UUFDMUZBO1FBQ0FUO0tBQ0g7SUFDRCxJQUFNZ0IsdUJBQXVCL0IsaUNBQU1BLENBQUM7SUFDcENGLG9DQUFTQSxDQUFDO1FBQ04sbUlBQW1JO1FBQ25JLElBQUksQ0FBQ3dCLHNCQUFzQk0sZUFBZWhCLDBCQUEwQkgsZUFBZUkseUJBQXlCLE1BQU07WUFDOUdDLGdCQUFnQmM7UUFDcEI7UUFDQSxJQUFJLENBQUNELG1CQUFtQjtZQUNwQiwwRkFBMEY7WUFDMUYscUJBQXFCO1lBQ3JCLElBQUlJLHFCQUFxQixPQUFPLElBQUlELGdCQUFnQkMscUJBQXFCLE9BQU8sQ0FBQyxJQUFJLEtBQUtELGFBQWEsSUFBSSxJQUFJLENBQUNDLHFCQUFxQixPQUFPLENBQUMsWUFBWSxJQUFJRCxhQUFhLFlBQVksRUFBRTtnQkFDcExoQixnQkFBZ0I7WUFDcEI7WUFDQWlCLHFCQUFxQixPQUFPLEdBQUdEO1FBQ25DO0lBQ0osR0FBRztRQUNDQTtRQUNBakI7UUFDQWU7UUFDQU47UUFDQUs7UUFDQWY7S0FDSDtJQUNELElBQU1vQixjQUFjbkMsc0NBQVdBLENBQUM7UUFDNUJ3QjtRQUNBSztJQUNKLEdBQUc7UUFDQ0w7UUFDQUs7S0FDSDtJQUNEbkIsa0VBQW9CQSxDQUFDeUI7SUFDckIsSUFBTUMsaUJBQWlCQyxRQUFRLENBQUNmLGNBQWNKLDBCQUEwQixDQUFDUztJQUN6RSxJQUFNVyxtQkFBbUJELFFBQVFuQix5QkFBeUJVLGFBQWFMO0lBQ3ZFLElBQU1nQixZQUFZSCxrQkFBa0IsQ0FBQ0U7SUFDckMsT0FBTztRQUNILE9BQU9mLGVBQWVLO1FBQ3RCLFFBQVFPO1FBQ1IsY0FBY1Ysc0JBQXNCSztRQUNwQ0MsYUFBQUE7UUFDQUUsY0FBQUE7UUFDQSw2QkFBNkJJLFFBQVFuQjtRQUNyQ3FCLFdBQUFBO0lBQ0o7QUFDSiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/useVisit.js\n\n}");
|
|
6163
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useVisit: () => (useVisit)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"../../../node_modules/swr/dist/core/index.mjs\");\n/* import */ var dayjs__rspack_import_2 = __webpack_require__(\"webpack/sharing/consume/default/dayjs/dayjs\");\n/* import */ var dayjs__rspack_import_2_default = /*#__PURE__*/__webpack_require__.n(dayjs__rspack_import_2);\n/* import */ var dayjs_plugin_isToday_js__rspack_import_3 = __webpack_require__(\"../../../node_modules/dayjs/plugin/isToday.js\");\n/* import */ var _openmrs_esm_api__rspack_import_4 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var _openmrs_esm_emr_api__rspack_import_5 = __webpack_require__(\"../../framework/esm-emr-api/dist/index.js\");\n/* import */ var _useVisitContextStore_js__rspack_import_6 = __webpack_require__(\"../../framework/esm-react-utils/dist/useVisitContextStore.js\");\n/** @module @category API */ \n\n\n\n\n\n\ndayjs__rspack_import_2_default().extend(dayjs_plugin_isToday_js__rspack_import_3);\n/**\n * This React hook returns visit information if the patient UUID is not null. There are\n * potentially two relevant visits at a time: \"active\" and \"current\".\n *\n * The active visit is the most recent visit without an end date. The presence of an active\n * visit generally means that the patient is in the facility.\n *\n * The current visit is the active visit, unless a retrospective visit has been selected.\n * If there is no active visit and no selected retrospective visit, then there is no\n * current visit. If there is no active visit but there is a retrospective visit, then\n * the retrospective visit is the current visit. `currentVisitIsRetrospective` tells you\n * whether the current visit is a retrospective visit.\n *\n * The active visit and current visit require two separate API calls. `error` contains\n * the error from either one, if there is an error. `isValidating` is true if either\n * API call is in progress. `mutate` refreshes the data from both API calls.\n *\n * @param patientUuid Unique patient identifier `string`\n * @param representation The custom representation of the visit\n */ function useVisit(patientUuid) {\n var representation = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : _openmrs_esm_emr_api__rspack_import_5.defaultVisitCustomRepresentation;\n // The callback we register has to exist before we read the store, but the mutate functions\n // it calls come from SWR calls that are keyed off what the store holds. Registering a stable\n // indirection through a ref breaks that cycle, so the store is read once per hook rather than\n // once to get the key and again to register.\n var mutateVisitRef = (0,react__rspack_import_0.useRef)(undefined);\n var registeredMutateVisit = (0,react__rspack_import_0.useCallback)(function() {\n var _mutateVisitRef_current;\n return (_mutateVisitRef_current = mutateVisitRef.current) === null || _mutateVisitRef_current === void 0 ? void 0 : _mutateVisitRef_current.call(mutateVisitRef);\n }, []);\n var _useVisitContextStore = (0,_useVisitContextStore_js__rspack_import_6.useVisitContextStore)(registeredMutateVisit), visitStorePatientUuid = _useVisitContextStore.patientUuid, manuallySetVisitUuid = _useVisitContextStore.manuallySetVisitUuid, setVisitContext = _useVisitContextStore.setVisitContext;\n // Ignore the visit store data if it is not for this patient\n var retrospectiveVisitUuid = patientUuid && visitStorePatientUuid == patientUuid ? manuallySetVisitUuid : null;\n var activeVisitUrlSuffix = \"?patient=\".concat(patientUuid, \"&v=\").concat(representation, \"&includeInactive=false\");\n var retrospectiveVisitUrlSuffix = \"/\".concat(retrospectiveVisitUuid, \"?v=\").concat(representation);\n var _useSWR = (0,swr__rspack_import_1[\"default\"])(patientUuid ? \"\".concat(_openmrs_esm_api__rspack_import_4.restBaseUrl, \"/visit\").concat(activeVisitUrlSuffix) : null, _openmrs_esm_api__rspack_import_4.openmrsFetch), activeData = _useSWR.data, activeError = _useSWR.error, activeMutate = _useSWR.mutate, activeIsValidating = _useSWR.isValidating;\n var _useSWR1 = (0,swr__rspack_import_1[\"default\"])(patientUuid && retrospectiveVisitUuid ? \"\".concat(_openmrs_esm_api__rspack_import_4.restBaseUrl, \"/visit\").concat(retrospectiveVisitUrlSuffix) : null, _openmrs_esm_api__rspack_import_4.openmrsFetch), retroData = _useSWR1.data, retroError = _useSWR1.error, retroMutate = _useSWR1.mutate, retroIsValidating = _useSWR1.isValidating;\n var activeVisit = (0,react__rspack_import_0.useMemo)(function() {\n var _ref;\n return (_ref = activeData === null || activeData === void 0 ? void 0 : activeData.data.results.find(function(visit) {\n return visit.stopDatetime === null;\n })) !== null && _ref !== void 0 ? _ref : null;\n }, [\n activeData\n ]);\n var currentVisit = (0,react__rspack_import_0.useMemo)(function() {\n return retrospectiveVisitUuid && retroData ? retroData.data : null;\n }, [\n retroData,\n retrospectiveVisitUuid\n ]);\n var previousCurrentVisit = (0,react__rspack_import_0.useRef)(null);\n (0,react__rspack_import_0.useEffect)(function() {\n // if an active visit is created for the visit store patient and they have no visit in context, set the context to the active visit\n if (!activeIsValidating && activeVisit && visitStorePatientUuid === patientUuid && manuallySetVisitUuid === null) {\n setVisitContext(activeVisit);\n }\n if (!retroIsValidating) {\n // if the current visit happened to be active but it just got ended (inactive), remove the\n // visit from context\n if (previousCurrentVisit.current && currentVisit && previousCurrentVisit.current.uuid === currentVisit.uuid && !previousCurrentVisit.current.stopDatetime && currentVisit.stopDatetime) {\n setVisitContext(null);\n }\n previousCurrentVisit.current = currentVisit;\n }\n }, [\n currentVisit,\n manuallySetVisitUuid,\n activeVisit,\n activeIsValidating,\n retroIsValidating,\n visitStorePatientUuid\n ]);\n var mutateVisit = (0,react__rspack_import_0.useCallback)(function() {\n activeMutate();\n retroMutate();\n }, [\n activeMutate,\n retroMutate\n ]);\n (0,react__rspack_import_0.useEffect)(function() {\n mutateVisitRef.current = mutateVisit;\n }, [\n mutateVisit\n ]);\n var waitingForData = Boolean(!activeData || retrospectiveVisitUuid && !retroData);\n var hasRelevantError = Boolean(retrospectiveVisitUuid ? retroError : activeError);\n var isLoading = waitingForData && !hasRelevantError;\n return {\n error: activeError || retroError,\n mutate: mutateVisit,\n isValidating: activeIsValidating || retroIsValidating,\n activeVisit: activeVisit,\n currentVisit: currentVisit,\n currentVisitIsRetrospective: Boolean(retrospectiveVisitUuid),\n isLoading: isLoading\n };\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyIS9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9wYWNrYWdlcy9mcmFtZXdvcmsvZXNtLXJlYWN0LXV0aWxzL2Rpc3QvdXNlVmlzaXQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvZGlzdC91c2VWaXNpdC5qcz9iZWIwIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBBUEkgKi8gaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdXNlU1dSIGZyb20gXCJzd3JcIjtcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCBpc1RvZGF5IGZyb20gXCJkYXlqcy9wbHVnaW4vaXNUb2RheS5qc1wiO1xuaW1wb3J0IHsgb3Blbm1yc0ZldGNoLCByZXN0QmFzZVVybCB9IGZyb20gXCJAb3Blbm1ycy9lc20tYXBpXCI7XG5pbXBvcnQgeyBkZWZhdWx0VmlzaXRDdXN0b21SZXByZXNlbnRhdGlvbiB9IGZyb20gXCJAb3Blbm1ycy9lc20tZW1yLWFwaVwiO1xuaW1wb3J0IHsgdXNlVmlzaXRDb250ZXh0U3RvcmUgfSBmcm9tIFwiLi91c2VWaXNpdENvbnRleHRTdG9yZS5qc1wiO1xuZGF5anMuZXh0ZW5kKGlzVG9kYXkpO1xuLyoqXG4gKiBUaGlzIFJlYWN0IGhvb2sgcmV0dXJucyB2aXNpdCBpbmZvcm1hdGlvbiBpZiB0aGUgcGF0aWVudCBVVUlEIGlzIG5vdCBudWxsLiBUaGVyZSBhcmVcbiAqIHBvdGVudGlhbGx5IHR3byByZWxldmFudCB2aXNpdHMgYXQgYSB0aW1lOiBcImFjdGl2ZVwiIGFuZCBcImN1cnJlbnRcIi5cbiAqXG4gKiBUaGUgYWN0aXZlIHZpc2l0IGlzIHRoZSBtb3N0IHJlY2VudCB2aXNpdCB3aXRob3V0IGFuIGVuZCBkYXRlLiBUaGUgcHJlc2VuY2Ugb2YgYW4gYWN0aXZlXG4gKiB2aXNpdCBnZW5lcmFsbHkgbWVhbnMgdGhhdCB0aGUgcGF0aWVudCBpcyBpbiB0aGUgZmFjaWxpdHkuXG4gKlxuICogVGhlIGN1cnJlbnQgdmlzaXQgaXMgdGhlIGFjdGl2ZSB2aXNpdCwgdW5sZXNzIGEgcmV0cm9zcGVjdGl2ZSB2aXNpdCBoYXMgYmVlbiBzZWxlY3RlZC5cbiAqIElmIHRoZXJlIGlzIG5vIGFjdGl2ZSB2aXNpdCBhbmQgbm8gc2VsZWN0ZWQgcmV0cm9zcGVjdGl2ZSB2aXNpdCwgdGhlbiB0aGVyZSBpcyBub1xuICogY3VycmVudCB2aXNpdC4gSWYgdGhlcmUgaXMgbm8gYWN0aXZlIHZpc2l0IGJ1dCB0aGVyZSBpcyBhIHJldHJvc3BlY3RpdmUgdmlzaXQsIHRoZW5cbiAqIHRoZSByZXRyb3NwZWN0aXZlIHZpc2l0IGlzIHRoZSBjdXJyZW50IHZpc2l0LiBgY3VycmVudFZpc2l0SXNSZXRyb3NwZWN0aXZlYCB0ZWxscyB5b3VcbiAqIHdoZXRoZXIgdGhlIGN1cnJlbnQgdmlzaXQgaXMgYSByZXRyb3NwZWN0aXZlIHZpc2l0LlxuICpcbiAqIFRoZSBhY3RpdmUgdmlzaXQgYW5kIGN1cnJlbnQgdmlzaXQgcmVxdWlyZSB0d28gc2VwYXJhdGUgQVBJIGNhbGxzLiBgZXJyb3JgIGNvbnRhaW5zXG4gKiB0aGUgZXJyb3IgZnJvbSBlaXRoZXIgb25lLCBpZiB0aGVyZSBpcyBhbiBlcnJvci4gYGlzVmFsaWRhdGluZ2AgaXMgdHJ1ZSBpZiBlaXRoZXJcbiAqIEFQSSBjYWxsIGlzIGluIHByb2dyZXNzLiBgbXV0YXRlYCByZWZyZXNoZXMgdGhlIGRhdGEgZnJvbSBib3RoIEFQSSBjYWxscy5cbiAqXG4gKiBAcGFyYW0gcGF0aWVudFV1aWQgVW5pcXVlIHBhdGllbnQgaWRlbnRpZmllciBgc3RyaW5nYFxuICogQHBhcmFtIHJlcHJlc2VudGF0aW9uIFRoZSBjdXN0b20gcmVwcmVzZW50YXRpb24gb2YgdGhlIHZpc2l0XG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVZpc2l0KHBhdGllbnRVdWlkLCByZXByZXNlbnRhdGlvbiA9IGRlZmF1bHRWaXNpdEN1c3RvbVJlcHJlc2VudGF0aW9uKSB7XG4gICAgLy8gVGhlIGNhbGxiYWNrIHdlIHJlZ2lzdGVyIGhhcyB0byBleGlzdCBiZWZvcmUgd2UgcmVhZCB0aGUgc3RvcmUsIGJ1dCB0aGUgbXV0YXRlIGZ1bmN0aW9uc1xuICAgIC8vIGl0IGNhbGxzIGNvbWUgZnJvbSBTV1IgY2FsbHMgdGhhdCBhcmUga2V5ZWQgb2ZmIHdoYXQgdGhlIHN0b3JlIGhvbGRzLiBSZWdpc3RlcmluZyBhIHN0YWJsZVxuICAgIC8vIGluZGlyZWN0aW9uIHRocm91Z2ggYSByZWYgYnJlYWtzIHRoYXQgY3ljbGUsIHNvIHRoZSBzdG9yZSBpcyByZWFkIG9uY2UgcGVyIGhvb2sgcmF0aGVyIHRoYW5cbiAgICAvLyBvbmNlIHRvIGdldCB0aGUga2V5IGFuZCBhZ2FpbiB0byByZWdpc3Rlci5cbiAgICBjb25zdCBtdXRhdGVWaXNpdFJlZiA9IHVzZVJlZih1bmRlZmluZWQpO1xuICAgIGNvbnN0IHJlZ2lzdGVyZWRNdXRhdGVWaXNpdCA9IHVzZUNhbGxiYWNrKCgpPT5tdXRhdGVWaXNpdFJlZi5jdXJyZW50Py4oKSwgW10pO1xuICAgIGNvbnN0IHsgcGF0aWVudFV1aWQ6IHZpc2l0U3RvcmVQYXRpZW50VXVpZCwgbWFudWFsbHlTZXRWaXNpdFV1aWQsIHNldFZpc2l0Q29udGV4dCB9ID0gdXNlVmlzaXRDb250ZXh0U3RvcmUocmVnaXN0ZXJlZE11dGF0ZVZpc2l0KTtcbiAgICAvLyBJZ25vcmUgdGhlIHZpc2l0IHN0b3JlIGRhdGEgaWYgaXQgaXMgbm90IGZvciB0aGlzIHBhdGllbnRcbiAgICBjb25zdCByZXRyb3NwZWN0aXZlVmlzaXRVdWlkID0gcGF0aWVudFV1aWQgJiYgdmlzaXRTdG9yZVBhdGllbnRVdWlkID09IHBhdGllbnRVdWlkID8gbWFudWFsbHlTZXRWaXNpdFV1aWQgOiBudWxsO1xuICAgIGNvbnN0IGFjdGl2ZVZpc2l0VXJsU3VmZml4ID0gYD9wYXRpZW50PSR7cGF0aWVudFV1aWR9JnY9JHtyZXByZXNlbnRhdGlvbn0maW5jbHVkZUluYWN0aXZlPWZhbHNlYDtcbiAgICBjb25zdCByZXRyb3NwZWN0aXZlVmlzaXRVcmxTdWZmaXggPSBgLyR7cmV0cm9zcGVjdGl2ZVZpc2l0VXVpZH0/dj0ke3JlcHJlc2VudGF0aW9ufWA7XG4gICAgY29uc3QgeyBkYXRhOiBhY3RpdmVEYXRhLCBlcnJvcjogYWN0aXZlRXJyb3IsIG11dGF0ZTogYWN0aXZlTXV0YXRlLCBpc1ZhbGlkYXRpbmc6IGFjdGl2ZUlzVmFsaWRhdGluZyB9ID0gdXNlU1dSKHBhdGllbnRVdWlkID8gYCR7cmVzdEJhc2VVcmx9L3Zpc2l0JHthY3RpdmVWaXNpdFVybFN1ZmZpeH1gIDogbnVsbCwgb3Blbm1yc0ZldGNoKTtcbiAgICBjb25zdCB7IGRhdGE6IHJldHJvRGF0YSwgZXJyb3I6IHJldHJvRXJyb3IsIG11dGF0ZTogcmV0cm9NdXRhdGUsIGlzVmFsaWRhdGluZzogcmV0cm9Jc1ZhbGlkYXRpbmcgfSA9IHVzZVNXUihwYXRpZW50VXVpZCAmJiByZXRyb3NwZWN0aXZlVmlzaXRVdWlkID8gYCR7cmVzdEJhc2VVcmx9L3Zpc2l0JHtyZXRyb3NwZWN0aXZlVmlzaXRVcmxTdWZmaXh9YCA6IG51bGwsIG9wZW5tcnNGZXRjaCk7XG4gICAgY29uc3QgYWN0aXZlVmlzaXQgPSB1c2VNZW1vKCgpPT5hY3RpdmVEYXRhPy5kYXRhLnJlc3VsdHMuZmluZCgodmlzaXQpPT52aXNpdC5zdG9wRGF0ZXRpbWUgPT09IG51bGwpID8/IG51bGwsIFtcbiAgICAgICAgYWN0aXZlRGF0YVxuICAgIF0pO1xuICAgIGNvbnN0IGN1cnJlbnRWaXNpdCA9IHVzZU1lbW8oKCk9PnJldHJvc3BlY3RpdmVWaXNpdFV1aWQgJiYgcmV0cm9EYXRhID8gcmV0cm9EYXRhLmRhdGEgOiBudWxsLCBbXG4gICAgICAgIHJldHJvRGF0YSxcbiAgICAgICAgcmV0cm9zcGVjdGl2ZVZpc2l0VXVpZFxuICAgIF0pO1xuICAgIGNvbnN0IHByZXZpb3VzQ3VycmVudFZpc2l0ID0gdXNlUmVmKG51bGwpO1xuICAgIHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICAvLyBpZiBhbiBhY3RpdmUgdmlzaXQgaXMgY3JlYXRlZCBmb3IgdGhlIHZpc2l0IHN0b3JlIHBhdGllbnQgYW5kIHRoZXkgaGF2ZSBubyB2aXNpdCBpbiBjb250ZXh0LCBzZXQgdGhlIGNvbnRleHQgdG8gdGhlIGFjdGl2ZSB2aXNpdFxuICAgICAgICBpZiAoIWFjdGl2ZUlzVmFsaWRhdGluZyAmJiBhY3RpdmVWaXNpdCAmJiB2aXNpdFN0b3JlUGF0aWVudFV1aWQgPT09IHBhdGllbnRVdWlkICYmIG1hbnVhbGx5U2V0VmlzaXRVdWlkID09PSBudWxsKSB7XG4gICAgICAgICAgICBzZXRWaXNpdENvbnRleHQoYWN0aXZlVmlzaXQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcmV0cm9Jc1ZhbGlkYXRpbmcpIHtcbiAgICAgICAgICAgIC8vIGlmIHRoZSBjdXJyZW50IHZpc2l0IGhhcHBlbmVkIHRvIGJlIGFjdGl2ZSBidXQgaXQganVzdCBnb3QgZW5kZWQgKGluYWN0aXZlKSwgcmVtb3ZlIHRoZVxuICAgICAgICAgICAgLy8gdmlzaXQgZnJvbSBjb250ZXh0XG4gICAgICAgICAgICBpZiAocHJldmlvdXNDdXJyZW50VmlzaXQuY3VycmVudCAmJiBjdXJyZW50VmlzaXQgJiYgcHJldmlvdXNDdXJyZW50VmlzaXQuY3VycmVudC51dWlkID09PSBjdXJyZW50VmlzaXQudXVpZCAmJiAhcHJldmlvdXNDdXJyZW50VmlzaXQuY3VycmVudC5zdG9wRGF0ZXRpbWUgJiYgY3VycmVudFZpc2l0LnN0b3BEYXRldGltZSkge1xuICAgICAgICAgICAgICAgIHNldFZpc2l0Q29udGV4dChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByZXZpb3VzQ3VycmVudFZpc2l0LmN1cnJlbnQgPSBjdXJyZW50VmlzaXQ7XG4gICAgICAgIH1cbiAgICB9LCBbXG4gICAgICAgIGN1cnJlbnRWaXNpdCxcbiAgICAgICAgbWFudWFsbHlTZXRWaXNpdFV1aWQsXG4gICAgICAgIGFjdGl2ZVZpc2l0LFxuICAgICAgICBhY3RpdmVJc1ZhbGlkYXRpbmcsXG4gICAgICAgIHJldHJvSXNWYWxpZGF0aW5nLFxuICAgICAgICB2aXNpdFN0b3JlUGF0aWVudFV1aWRcbiAgICBdKTtcbiAgICBjb25zdCBtdXRhdGVWaXNpdCA9IHVzZUNhbGxiYWNrKCgpPT57XG4gICAgICAgIGFjdGl2ZU11dGF0ZSgpO1xuICAgICAgICByZXRyb011dGF0ZSgpO1xuICAgIH0sIFtcbiAgICAgICAgYWN0aXZlTXV0YXRlLFxuICAgICAgICByZXRyb011dGF0ZVxuICAgIF0pO1xuICAgIHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBtdXRhdGVWaXNpdFJlZi5jdXJyZW50ID0gbXV0YXRlVmlzaXQ7XG4gICAgfSwgW1xuICAgICAgICBtdXRhdGVWaXNpdFxuICAgIF0pO1xuICAgIGNvbnN0IHdhaXRpbmdGb3JEYXRhID0gQm9vbGVhbighYWN0aXZlRGF0YSB8fCByZXRyb3NwZWN0aXZlVmlzaXRVdWlkICYmICFyZXRyb0RhdGEpO1xuICAgIGNvbnN0IGhhc1JlbGV2YW50RXJyb3IgPSBCb29sZWFuKHJldHJvc3BlY3RpdmVWaXNpdFV1aWQgPyByZXRyb0Vycm9yIDogYWN0aXZlRXJyb3IpO1xuICAgIGNvbnN0IGlzTG9hZGluZyA9IHdhaXRpbmdGb3JEYXRhICYmICFoYXNSZWxldmFudEVycm9yO1xuICAgIHJldHVybiB7XG4gICAgICAgIGVycm9yOiBhY3RpdmVFcnJvciB8fCByZXRyb0Vycm9yLFxuICAgICAgICBtdXRhdGU6IG11dGF0ZVZpc2l0LFxuICAgICAgICBpc1ZhbGlkYXRpbmc6IGFjdGl2ZUlzVmFsaWRhdGluZyB8fCByZXRyb0lzVmFsaWRhdGluZyxcbiAgICAgICAgYWN0aXZlVmlzaXQsXG4gICAgICAgIGN1cnJlbnRWaXNpdCxcbiAgICAgICAgY3VycmVudFZpc2l0SXNSZXRyb3NwZWN0aXZlOiBCb29sZWFuKHJldHJvc3BlY3RpdmVWaXNpdFV1aWQpLFxuICAgICAgICBpc0xvYWRpbmdcbiAgICB9O1xufVxuIl0sIm5hbWVzIjpbInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVNXUiIsImRheWpzIiwiaXNUb2RheSIsIm9wZW5tcnNGZXRjaCIsInJlc3RCYXNlVXJsIiwiZGVmYXVsdFZpc2l0Q3VzdG9tUmVwcmVzZW50YXRpb24iLCJ1c2VWaXNpdENvbnRleHRTdG9yZSIsInVzZVZpc2l0IiwicGF0aWVudFV1aWQiLCJyZXByZXNlbnRhdGlvbiIsIm11dGF0ZVZpc2l0UmVmIiwidW5kZWZpbmVkIiwicmVnaXN0ZXJlZE11dGF0ZVZpc2l0IiwiX3VzZVZpc2l0Q29udGV4dFN0b3JlIiwidmlzaXRTdG9yZVBhdGllbnRVdWlkIiwibWFudWFsbHlTZXRWaXNpdFV1aWQiLCJzZXRWaXNpdENvbnRleHQiLCJyZXRyb3NwZWN0aXZlVmlzaXRVdWlkIiwiYWN0aXZlVmlzaXRVcmxTdWZmaXgiLCJyZXRyb3NwZWN0aXZlVmlzaXRVcmxTdWZmaXgiLCJfdXNlU1dSIiwiYWN0aXZlRGF0YSIsImFjdGl2ZUVycm9yIiwiYWN0aXZlTXV0YXRlIiwiYWN0aXZlSXNWYWxpZGF0aW5nIiwiX3VzZVNXUjEiLCJyZXRyb0RhdGEiLCJyZXRyb0Vycm9yIiwicmV0cm9NdXRhdGUiLCJyZXRyb0lzVmFsaWRhdGluZyIsImFjdGl2ZVZpc2l0IiwidmlzaXQiLCJjdXJyZW50VmlzaXQiLCJwcmV2aW91c0N1cnJlbnRWaXNpdCIsIm11dGF0ZVZpc2l0Iiwid2FpdGluZ0ZvckRhdGEiLCJCb29sZWFuIiwiaGFzUmVsZXZhbnRFcnJvciIsImlzTG9hZGluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLDBCQUEwQixHQUFtRTtBQUNwRTtB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\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/useVisit.js\n\n}");
|
|
6164
6164
|
|
|
6165
6165
|
},
|
|
6166
6166
|
"../../framework/esm-react-utils/dist/useVisitContextStore.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
6167
6167
|
"use strict";
|
|
6168
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useVisitContextStore: () => (useVisitContextStore)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var _openmrs_esm_emr_api__rspack_import_1 = __webpack_require__(\"../../framework/esm-emr-api/dist/index.js\");\n/* import */ var _useStore_js__rspack_import_2 = __webpack_require__(\"../../framework/esm-react-utils/dist/useStore.js\");\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\n\n\n\nvar visitContextStoreActions = {\n setVisitContext: function setVisitContext(_, newSelectedVisit) {\n var _newSelectedVisit_patient;\n if (newSelectedVisit == null) {\n return {\n manuallySetVisitUuid: null\n };\n }\n return {\n manuallySetVisitUuid: newSelectedVisit.uuid,\n patientUuid: (_newSelectedVisit_patient = newSelectedVisit.patient) === null || _newSelectedVisit_patient === void 0 ? void 0 : _newSelectedVisit_patient.uuid\n };\n },\n mutateVisit: function mutateVisit(currState) {\n var _currState_mutateVisitCallbacks;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = Object.values((_currState_mutateVisitCallbacks = currState.mutateVisitCallbacks) !== null && _currState_mutateVisitCallbacks !== void 0 ? _currState_mutateVisitCallbacks : {})[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var mutateCallback = _step.value;\n mutateCallback();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return {};\n }\n};\n/**\n * A hook to return the visit context store and corresponding actions.\n * @param mutateVisitCallback An optional mutate callback to register. If provided, the\n * store action's `mutateVisit` function will invoke this callback (along with any other\n * callbacks also registered into the store)\n * @returns\n */ function useVisitContextStore(mutateVisitCallback) {\n var id = (0,react__rspack_import_0.useId)();\n (0,react__rspack_import_0.useEffect)(function() {\n var visitStore = (0,_openmrs_esm_emr_api__rspack_import_1.getVisitStore)();\n // register the callback if it exists\n if (mutateVisitCallback) {\n visitStore.setState({\n mutateVisitCallbacks: _object_spread_props(_object_spread({}, visitStore.getState().mutateVisitCallbacks), _define_property({}, id, mutateVisitCallback))\n });\n }\n // deregister the callback on unmount, if it exists\n return function() {\n if (mutateVisitCallback) {\n var mutateVisitCallbacks = _object_spread({}, visitStore.getState().mutateVisitCallbacks);\n delete mutateVisitCallbacks[id];\n visitStore.setState({\n mutateVisitCallbacks: mutateVisitCallbacks\n });\n }\n };\n }, [\n id,\n mutateVisitCallback\n ]);\n return (0,_useStore_js__rspack_import_2.useStoreWithActions)((0,_openmrs_esm_emr_api__rspack_import_1.getVisitStore)(), visitContextStoreActions);\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyIS9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9wYWNrYWdlcy9mcmFtZXdvcmsvZXNtLXJlYWN0LXV0aWxzL2Rpc3QvdXNlVmlzaXRDb250ZXh0U3RvcmUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvZGlzdC91c2VWaXNpdENvbnRleHRTdG9yZS5qcz82ODFlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlSWQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGdldFZpc2l0U3RvcmUgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWVtci1hcGlcIjtcbmltcG9ydCB7IHVzZVN0b3JlV2l0aEFjdGlvbnMgfSBmcm9tIFwiLi91c2VTdG9yZS5qc1wiO1xuY29uc3QgdmlzaXRDb250ZXh0U3RvcmVBY3Rpb25zID0ge1xuICAgIHNldFZpc2l0Q29udGV4dCAoXywgbmV3U2VsZWN0ZWRWaXNpdCkge1xuICAgICAgICBpZiAobmV3U2VsZWN0ZWRWaXNpdCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG1hbnVhbGx5U2V0VmlzaXRVdWlkOiBudWxsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtYW51YWxseVNldFZpc2l0VXVpZDogbmV3U2VsZWN0ZWRWaXNpdC51dWlkLFxuICAgICAgICAgICAgcGF0aWVudFV1aWQ6IG5ld1NlbGVjdGVkVmlzaXQucGF0aWVudD8udXVpZFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgbXV0YXRlVmlzaXQgKGN1cnJTdGF0ZSkge1xuICAgICAgICBmb3IgKGNvbnN0IG11dGF0ZUNhbGxiYWNrIG9mIE9iamVjdC52YWx1ZXMoY3VyclN0YXRlLm11dGF0ZVZpc2l0Q2FsbGJhY2tzID8/IHt9KSl7XG4gICAgICAgICAgICBtdXRhdGVDYWxsYmFjaygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG59O1xuLyoqXG4gKiBBIGhvb2sgdG8gcmV0dXJuIHRoZSB2aXNpdCBjb250ZXh0IHN0b3JlIGFuZCBjb3JyZXNwb25kaW5nIGFjdGlvbnMuXG4gKiBAcGFyYW0gbXV0YXRlVmlzaXRDYWxsYmFjayBBbiBvcHRpb25hbCBtdXRhdGUgY2FsbGJhY2sgdG8gcmVnaXN0ZXIuIElmIHByb3ZpZGVkLCB0aGVcbiAqIHN0b3JlIGFjdGlvbidzIGBtdXRhdGVWaXNpdGAgZnVuY3Rpb24gd2lsbCBpbnZva2UgdGhpcyBjYWxsYmFjayAoYWxvbmcgd2l0aCBhbnkgb3RoZXJcbiAqIGNhbGxiYWNrcyBhbHNvIHJlZ2lzdGVyZWQgaW50byB0aGUgc3RvcmUpXG4gKiBAcmV0dXJuc1xuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VWaXNpdENvbnRleHRTdG9yZShtdXRhdGVWaXNpdENhbGxiYWNrKSB7XG4gICAgY29uc3QgaWQgPSB1c2VJZCgpO1xuICAgIHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCB2aXNpdFN0b3JlID0gZ2V0VmlzaXRTdG9yZSgpO1xuICAgICAgICAvLyByZWdpc3RlciB0aGUgY2FsbGJhY2sgaWYgaXQgZXhpc3RzXG4gICAgICAgIGlmIChtdXRhdGVWaXNpdENhbGxiYWNrKSB7XG4gICAgICAgICAgICB2aXNpdFN0b3JlLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICBtdXRhdGVWaXNpdENhbGxiYWNrczoge1xuICAgICAgICAgICAgICAgICAgICAuLi52aXNpdFN0b3JlLmdldFN0YXRlKCkubXV0YXRlVmlzaXRDYWxsYmFja3MsXG4gICAgICAgICAgICAgICAgICAgIFtpZF06IG11dGF0ZVZpc2l0Q2FsbGJhY2tcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBkZXJlZ2lzdGVyIHRoZSBjYWxsYmFjayBvbiB1bm1vdW50LCBpZiBpdCBleGlzdHNcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBpZiAobXV0YXRlVmlzaXRDYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG11dGF0ZVZpc2l0Q2FsbGJhY2tzID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi52aXNpdFN0b3JlLmdldFN0YXRlKCkubXV0YXRlVmlzaXRDYWxsYmFja3NcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBtdXRhdGVWaXNpdENhbGxiYWNrc1tpZF07XG4gICAgICAgICAgICAgICAgdmlzaXRTdG9yZS5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIG11dGF0ZVZpc2l0Q2FsbGJhY2tzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBpZCxcbiAgICAgICAgbXV0YXRlVmlzaXRDYWxsYmFja1xuICAgIF0pO1xuICAgIHJldHVybiB1c2VTdG9yZVdpdGhBY3Rpb25zKGdldFZpc2l0U3RvcmUoKSwgdmlzaXRDb250ZXh0U3RvcmVBY3Rpb25zKTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VJZCIsImdldFZpc2l0U3RvcmUiLCJ1c2VTdG9yZVdpdGhBY3Rpb25zIiwidmlzaXRDb250ZXh0U3RvcmVBY3Rpb25zIiwic2V0VmlzaXRDb250ZXh0IiwiXyIsIm5ld1NlbGVjdGVkVmlzaXQiLCJfbmV3U2VsZWN0ZWRWaXNpdF9wYXRpZW50IiwibXV0YXRlVmlzaXQiLCJjdXJyU3RhdGUiLCJfY3VyclN0YXRlX211dGF0ZVZpc2l0Q2FsbGJhY2tzIiwiX2l0ZXJhdG9yRXJyb3IiLCJPYmplY3QiLCJtdXRhdGVDYWxsYmFjayIsInVzZVZpc2l0Q29udGV4dFN0b3JlIiwibXV0YXRlVmlzaXRDYWxsYmFjayIsImlkIiwidmlzaXRTdG9yZSIsIm11dGF0ZVZpc2l0Q2FsbGJhY2tzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBeUM7QUFDWTtBQUNEO0FBQ3BELElBQU1JLDJCQUEyQjtJQUM3QkMsaUJBQUFBLFNBQUFBLGdCQUFpQkMsQ0FBQyxFQUFFQyxnQkFBZ0I7WUFRZkM7UUFQakIsSUFBSUQsb0JBQW9CLE1BQU07WUFDMUIsT0FBTztnQkFDSCxzQkFBc0I7WUFDMUI7UUFDSjtRQUNBLE9BQU87WUFDSCxzQkFBc0JBLGlCQUFpQixJQUFJO1lBQzNDLFdBQVcsR0FBRUMsNEJBQUFBLGlCQUFpQixPQUFPLGNBQXhCQSxnREFBQUEsMEJBQTBCLElBQUk7UUFDL0M7SUFDSjtJQUNBQyxhQUFBQSxTQUFBQSxZQUFhQyxTQUFTO1lBQ3lCQztZQUF0Q0Msa0NBQUFBLDJCQUFBQTs7WUFBTCxRQUFLQSxZQUF3QkMsT0FBTyxNQUFNLEVBQUNGLGtDQUFBQSxVQUFVLG9CQUFvQixjQUE5QkEsNkNBQUFBLGtDQUFrQyxDQUFDLHVCQUF6RUMsU0FBQUEsNkJBQUFBLFFBQUFBLHlCQUFBQSxpQ0FBNEU7Z0JBQTVFQSxJQUFNRSxpQkFBTkY7Z0JBQ0RFO1lBQ0o7O1lBRktGO1lBQUFBOzs7cUJBQUFBLDZCQUFBQTtvQkFBQUE7OztvQkFBQUE7MEJBQUFBOzs7O1FBR0wsT0FBTyxDQUFDO0lBQ1o7QUFDSjtBQUNBOzs7Ozs7Q0FNQyxHQUFVLFNBQVNHLHFCQUFxQkMsbUJBQW1CO0lBQ3hELElBQU1DLEtBQUtoQixnQ0FBS0E7SUFDaEJELG9DQUFTQSxDQUFDO1FBQ04sSUFBTWtCLGFBQWFoQix1REFBYUE7UUFDaEMscUNBQXFDO1FBQ3JDLElBQUljLHFCQUFxQjtZQUNyQkUsV0FBVyxRQUFRLENBQUM7Z0JBQ2hCLHNCQUFzQix3Q0FDZkEsV0FBVyxRQUFRLEdBQUcsb0JBQW9CLEdBQzdDLHFCQUFDRCxJQUFLRDtZQUVkO1FBQ0o7UUFDQSxtREFBbUQ7UUFDbkQsT0FBTztZQUNILElBQUlBLHFCQUFxQjtnQkFDckIsSUFBTUcsdUJBQXVCLG1CQUN0QkQsV0FBVyxRQUFRLEdBQUcsb0JBQW9CO2dCQUVqRCxPQUFPQyxvQkFBb0IsQ0FBQ0YsR0FBRztnQkFDL0JDLFdBQVcsUUFBUSxDQUFDO29CQUNoQkMsc0JBQUFBO2dCQUNKO1lBQ0o7UUFDSjtJQUNKLEdBQUc7UUFDQ0Y7UUFDQUQ7S0FDSDtJQUNELE9BQU9iLHFEQUFtQkEsQ0FBQ0QsdURBQWFBLElBQUlFO0FBQ2hEIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/useVisitContextStore.js\n\n}");
|
|
6168
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useVisitContextStore: () => (useVisitContextStore)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var _openmrs_esm_emr_api__rspack_import_1 = __webpack_require__(\"../../framework/esm-emr-api/dist/index.js\");\n/* import */ var _useStore_js__rspack_import_2 = __webpack_require__(\"../../framework/esm-react-utils/dist/useStore.js\");\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\n\n\n\n/**\n * The mutate callbacks to invoke when visit data changes, keyed by the `useId()` of the\n * component that registered each one.\n */ var mutateVisitCallbacks = new Map();\n/**\n * Invokes every registered mutate callback, revalidating visit data across the application.\n *\n * Iterates over a copy so that a callback which registers or unregisters another does not\n * disturb the traversal.\n */ function mutateVisit() {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = Array.from(mutateVisitCallbacks.values())[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var mutateCallback = _step.value;\n mutateCallback();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nvar visitContextStoreActions = {\n setVisitContext: function setVisitContext(_, newSelectedVisit) {\n var _newSelectedVisit_patient;\n if (newSelectedVisit == null) {\n return {\n manuallySetVisitUuid: null\n };\n }\n return {\n manuallySetVisitUuid: newSelectedVisit.uuid,\n patientUuid: (_newSelectedVisit_patient = newSelectedVisit.patient) === null || _newSelectedVisit_patient === void 0 ? void 0 : _newSelectedVisit_patient.uuid\n };\n }\n};\n/**\n * A hook to return the visit context store and corresponding actions.\n *\n * @param mutateVisitCallback An optional mutate callback to register. If provided, the\n * returned `mutateVisit` function will invoke this callback (along with any other\n * callbacks registered by other components). Pass a callback with a stable identity;\n * one that changes on every render re-registers on every render.\n * @returns\n */ function useVisitContextStore(mutateVisitCallback) {\n var id = (0,react__rspack_import_0.useId)();\n (0,react__rspack_import_0.useEffect)(function() {\n if (!mutateVisitCallback) {\n return;\n }\n mutateVisitCallbacks.set(id, mutateVisitCallback);\n return function() {\n mutateVisitCallbacks.delete(id);\n };\n }, [\n id,\n mutateVisitCallback\n ]);\n var visitContextStore = (0,_useStore_js__rspack_import_2.useStoreWithActions)((0,_openmrs_esm_emr_api__rspack_import_1.getVisitStore)(), visitContextStoreActions);\n return _object_spread_props(_object_spread({}, visitContextStore), {\n mutateVisit: mutateVisit\n });\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyIS9ob21lL3J1bm5lci93b3JrL29wZW5tcnMtZXNtLWNvcmUvb3Blbm1ycy1lc20tY29yZS9wYWNrYWdlcy9mcmFtZXdvcmsvZXNtLXJlYWN0LXV0aWxzL2Rpc3QvdXNlVmlzaXRDb250ZXh0U3RvcmUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvZGlzdC91c2VWaXNpdENvbnRleHRTdG9yZS5qcz82ODFlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlSWQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGdldFZpc2l0U3RvcmUgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWVtci1hcGlcIjtcbmltcG9ydCB7IHVzZVN0b3JlV2l0aEFjdGlvbnMgfSBmcm9tIFwiLi91c2VTdG9yZS5qc1wiO1xuLyoqXG4gKiBUaGUgbXV0YXRlIGNhbGxiYWNrcyB0byBpbnZva2Ugd2hlbiB2aXNpdCBkYXRhIGNoYW5nZXMsIGtleWVkIGJ5IHRoZSBgdXNlSWQoKWAgb2YgdGhlXG4gKiBjb21wb25lbnQgdGhhdCByZWdpc3RlcmVkIGVhY2ggb25lLlxuICovIGNvbnN0IG11dGF0ZVZpc2l0Q2FsbGJhY2tzID0gbmV3IE1hcCgpO1xuLyoqXG4gKiBJbnZva2VzIGV2ZXJ5IHJlZ2lzdGVyZWQgbXV0YXRlIGNhbGxiYWNrLCByZXZhbGlkYXRpbmcgdmlzaXQgZGF0YSBhY3Jvc3MgdGhlIGFwcGxpY2F0aW9uLlxuICpcbiAqIEl0ZXJhdGVzIG92ZXIgYSBjb3B5IHNvIHRoYXQgYSBjYWxsYmFjayB3aGljaCByZWdpc3RlcnMgb3IgdW5yZWdpc3RlcnMgYW5vdGhlciBkb2VzIG5vdFxuICogZGlzdHVyYiB0aGUgdHJhdmVyc2FsLlxuICovIGZ1bmN0aW9uIG11dGF0ZVZpc2l0KCkge1xuICAgIGZvciAoY29uc3QgbXV0YXRlQ2FsbGJhY2sgb2YgQXJyYXkuZnJvbShtdXRhdGVWaXNpdENhbGxiYWNrcy52YWx1ZXMoKSkpe1xuICAgICAgICBtdXRhdGVDYWxsYmFjaygpO1xuICAgIH1cbn1cbmNvbnN0IHZpc2l0Q29udGV4dFN0b3JlQWN0aW9ucyA9IHtcbiAgICBzZXRWaXNpdENvbnRleHQgKF8sIG5ld1NlbGVjdGVkVmlzaXQpIHtcbiAgICAgICAgaWYgKG5ld1NlbGVjdGVkVmlzaXQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBtYW51YWxseVNldFZpc2l0VXVpZDogbnVsbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWFudWFsbHlTZXRWaXNpdFV1aWQ6IG5ld1NlbGVjdGVkVmlzaXQudXVpZCxcbiAgICAgICAgICAgIHBhdGllbnRVdWlkOiBuZXdTZWxlY3RlZFZpc2l0LnBhdGllbnQ/LnV1aWRcbiAgICAgICAgfTtcbiAgICB9XG59O1xuLyoqXG4gKiBBIGhvb2sgdG8gcmV0dXJuIHRoZSB2aXNpdCBjb250ZXh0IHN0b3JlIGFuZCBjb3JyZXNwb25kaW5nIGFjdGlvbnMuXG4gKlxuICogQHBhcmFtIG11dGF0ZVZpc2l0Q2FsbGJhY2sgQW4gb3B0aW9uYWwgbXV0YXRlIGNhbGxiYWNrIHRvIHJlZ2lzdGVyLiBJZiBwcm92aWRlZCwgdGhlXG4gKiByZXR1cm5lZCBgbXV0YXRlVmlzaXRgIGZ1bmN0aW9uIHdpbGwgaW52b2tlIHRoaXMgY2FsbGJhY2sgKGFsb25nIHdpdGggYW55IG90aGVyXG4gKiBjYWxsYmFja3MgcmVnaXN0ZXJlZCBieSBvdGhlciBjb21wb25lbnRzKS4gUGFzcyBhIGNhbGxiYWNrIHdpdGggYSBzdGFibGUgaWRlbnRpdHk7XG4gKiBvbmUgdGhhdCBjaGFuZ2VzIG9uIGV2ZXJ5IHJlbmRlciByZS1yZWdpc3RlcnMgb24gZXZlcnkgcmVuZGVyLlxuICogQHJldHVybnNcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlVmlzaXRDb250ZXh0U3RvcmUobXV0YXRlVmlzaXRDYWxsYmFjaykge1xuICAgIGNvbnN0IGlkID0gdXNlSWQoKTtcbiAgICB1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgaWYgKCFtdXRhdGVWaXNpdENhbGxiYWNrKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbXV0YXRlVmlzaXRDYWxsYmFja3Muc2V0KGlkLCBtdXRhdGVWaXNpdENhbGxiYWNrKTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBtdXRhdGVWaXNpdENhbGxiYWNrcy5kZWxldGUoaWQpO1xuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgaWQsXG4gICAgICAgIG11dGF0ZVZpc2l0Q2FsbGJhY2tcbiAgICBdKTtcbiAgICBjb25zdCB2aXNpdENvbnRleHRTdG9yZSA9IHVzZVN0b3JlV2l0aEFjdGlvbnMoZ2V0VmlzaXRTdG9yZSgpLCB2aXNpdENvbnRleHRTdG9yZUFjdGlvbnMpO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLnZpc2l0Q29udGV4dFN0b3JlLFxuICAgICAgICBtdXRhdGVWaXNpdFxuICAgIH07XG59XG4iXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlSWQiLCJnZXRWaXNpdFN0b3JlIiwidXNlU3RvcmVXaXRoQWN0aW9ucyIsIm11dGF0ZVZpc2l0Q2FsbGJhY2tzIiwiTWFwIiwibXV0YXRlVmlzaXQiLCJfaXRlcmF0b3JFcnJvciIsIkFycmF5IiwibXV0YXRlQ2FsbGJhY2siLCJ2aXNpdENvbnRleHRTdG9yZUFjdGlvbnMiLCJzZXRWaXNpdENvbnRleHQiLCJfIiwibmV3U2VsZWN0ZWRWaXNpdCIsIl9uZXdTZWxlY3RlZFZpc2l0X3BhdGllbnQiLCJ1c2VWaXNpdENvbnRleHRTdG9yZSIsIm11dGF0ZVZpc2l0Q2FsbGJhY2siLCJpZCIsInZpc2l0Q29udGV4dFN0b3JlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBeUM7QUFDWTtBQUNEO0FBQ3BEOzs7Q0FHQyxHQUFHLElBQU1JLHVCQUF1QixJQUFJQztBQUNyQzs7Ozs7Q0FLQyxHQUFHLFNBQVNDO1FBQ0pDLGtDQUFBQSwyQkFBQUE7O1FBQUwsUUFBS0EsWUFBd0JDLE1BQU0sSUFBSSxDQUFDSixxQkFBcUIsTUFBTSx3QkFBOURHLFNBQUFBLDZCQUFBQSxRQUFBQSx5QkFBQUEsaUNBQWtFO1lBQWxFQSxJQUFNRSxpQkFBTkY7WUFDREU7UUFDSjs7UUFGS0Y7UUFBQUE7OztpQkFBQUEsNkJBQUFBO2dCQUFBQTs7O2dCQUFBQTtzQkFBQUE7Ozs7QUFHVDtBQUNBLElBQU1HLDJCQUEyQjtJQUM3QkMsaUJBQUFBLFNBQUFBLGdCQUFpQkMsQ0FBQyxFQUFFQyxnQkFBZ0I7WUFRZkM7UUFQakIsSUFBSUQsb0JBQW9CLE1BQU07WUFDMUIsT0FBTztnQkFDSCxzQkFBc0I7WUFDMUI7UUFDSjtRQUNBLE9BQU87WUFDSCxzQkFBc0JBLGlCQUFpQixJQUFJO1lBQzNDLFdBQVcsR0FBRUMsNEJBQUFBLGlCQUFpQixPQUFPLGNBQXhCQSxnREFBQUEsMEJBQTBCLElBQUk7UUFDL0M7SUFDSjtBQUNKO0FBQ0E7Ozs7Ozs7O0NBUUMsR0FBVSxTQUFTQyxxQkFBcUJDLG1CQUFtQjtJQUN4RCxJQUFNQyxLQUFLaEIsZ0NBQUtBO0lBQ2hCRCxvQ0FBU0EsQ0FBQztRQUNOLElBQUksQ0FBQ2dCLHFCQUFxQjtZQUN0QjtRQUNKO1FBQ0FaLHFCQUFxQixHQUFHLENBQUNhLElBQUlEO1FBQzdCLE9BQU87WUFDSFoscUJBQXFCLE1BQU0sQ0FBQ2E7UUFDaEM7SUFDSixHQUFHO1FBQ0NBO1FBQ0FEO0tBQ0g7SUFDRCxJQUFNRSxvQkFBb0JmLHFEQUFtQkEsQ0FBQ0QsdURBQWFBLElBQUlRO0lBQy9ELE9BQU8sd0NBQ0FRO1FBQ0haLGFBQUFBOztBQUVSIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/useVisitContextStore.js\n\n}");
|
|
6169
6169
|
|
|
6170
6170
|
},
|
|
6171
6171
|
"../../framework/esm-react-utils/dist/useVisitTypes.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|