@openmrs/esm-app-shell 8.0.1-pre.3685 → 8.0.1-pre.3686
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 +10 -10
- package/dist/{1bf7ecd11f989685.js → c788fd9bb2a531f7.js} +1 -1
- package/dist/c788fd9bb2a531f7.js.map +1 -0
- package/dist/{7bf8910d89df368d.js → f13202973cf5b97e.js} +1 -1
- package/dist/f13202973cf5b97e.js.map +1 -0
- package/dist/index.html +1 -1
- package/dist/{openmrs.d20ff0b5be635cc2.js → openmrs.6520fcddabc48071.js} +1 -1
- package/dist/{openmrs.d20ff0b5be635cc2.js.map → openmrs.6520fcddabc48071.js.map} +1 -1
- package/dist/service-worker.js +1 -1
- package/lib/{2a436175965ebe79.js → 384a796f47e35a8f.js} +1 -1
- package/lib/{29cdc80c03f5264a.js → 6a9c5fd4f020e5dc.js} +1 -1
- package/lib/esm-devtools-app/180.js +2 -0
- package/lib/esm-devtools-app/180.js.map +1 -0
- package/lib/esm-devtools-app/185.js +2 -0
- package/lib/esm-devtools-app/185.js.map +1 -0
- package/lib/esm-devtools-app/300.js +1 -0
- package/lib/esm-devtools-app/326.js +2 -0
- package/lib/esm-devtools-app/326.js.map +1 -0
- package/lib/esm-devtools-app/460.js +1 -0
- package/lib/esm-devtools-app/460.js.map +1 -0
- package/lib/esm-devtools-app/523.js +2 -0
- package/lib/{esm-primary-navigation-app → esm-devtools-app}/523.js.map +1 -1
- package/lib/esm-devtools-app/623.js +2 -0
- package/lib/esm-devtools-app/623.js.map +1 -0
- package/lib/esm-devtools-app/723.js +2 -0
- package/lib/{esm-primary-navigation-app/7798.js.LICENSE.txt → esm-devtools-app/723.js.LICENSE.txt} +11 -0
- package/lib/esm-devtools-app/723.js.map +1 -0
- package/lib/esm-devtools-app/770.js +2 -0
- package/lib/esm-devtools-app/770.js.map +1 -0
- package/lib/esm-devtools-app/907.js +1 -0
- package/lib/esm-devtools-app/907.js.map +1 -0
- package/lib/esm-devtools-app/929.js +1 -0
- package/lib/esm-devtools-app/929.js.map +1 -0
- package/lib/esm-devtools-app/939.js +1 -0
- package/lib/{esm-primary-navigation-app → esm-devtools-app}/939.js.map +1 -1
- package/lib/esm-devtools-app/main.js +1 -0
- package/lib/esm-devtools-app/main.js.map +1 -0
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.js +1 -0
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.js.buildmanifest.json +469 -0
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.js.map +1 -0
- package/lib/esm-devtools-app/routes.json +1 -0
- package/lib/esm-help-menu-app/460.js +1 -1
- package/lib/esm-help-menu-app/460.js.map +1 -1
- package/lib/esm-help-menu-app/main.js +1 -1
- package/lib/esm-help-menu-app/openmrs-esm-help-menu-app.js +1 -1
- package/lib/esm-help-menu-app/openmrs-esm-help-menu-app.js.buildmanifest.json +5 -5
- package/lib/esm-help-menu-app/routes.json +1 -1
- package/lib/esm-implementer-tools-app/5460.js +1 -1
- package/lib/esm-implementer-tools-app/5460.js.map +1 -1
- package/lib/esm-implementer-tools-app/main.js +1 -1
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js +1 -1
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js.buildmanifest.json +5 -5
- package/lib/esm-implementer-tools-app/routes.json +1 -1
- package/lib/esm-login-app/14.js +1 -1
- package/lib/esm-login-app/14.js.map +1 -1
- package/lib/esm-login-app/main.js +1 -1
- package/lib/esm-login-app/openmrs-esm-login-app.js +1 -1
- package/lib/esm-login-app/openmrs-esm-login-app.js.buildmanifest.json +5 -5
- package/lib/esm-login-app/routes.json +1 -1
- package/lib/esm-offline-tools-app/5460.js +1 -1
- package/lib/esm-offline-tools-app/5460.js.map +1 -1
- package/lib/esm-offline-tools-app/main.js +1 -1
- package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js +1 -1
- package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js.buildmanifest.json +5 -5
- package/lib/esm-offline-tools-app/routes.json +1 -1
- package/lib/index.html +2 -2
- package/lib/openmrs.js +6 -6
- package/lib/service-worker.js +1 -1
- package/package.json +3 -3
- package/src/run.ts +5 -7
- package/dist/1bf7ecd11f989685.js.map +0 -1
- package/dist/7bf8910d89df368d.js.map +0 -1
- package/lib/esm-primary-navigation-app/1119.js +0 -1
- package/lib/esm-primary-navigation-app/1197.js +0 -1
- package/lib/esm-primary-navigation-app/1296.js +0 -1
- package/lib/esm-primary-navigation-app/1296.js.map +0 -1
- package/lib/esm-primary-navigation-app/2106.js +0 -1
- package/lib/esm-primary-navigation-app/2106.js.map +0 -1
- package/lib/esm-primary-navigation-app/2146.js +0 -1
- package/lib/esm-primary-navigation-app/2267.js +0 -1
- package/lib/esm-primary-navigation-app/2267.js.map +0 -1
- package/lib/esm-primary-navigation-app/2690.js +0 -1
- package/lib/esm-primary-navigation-app/2727.js +0 -2
- package/lib/esm-primary-navigation-app/2727.js.map +0 -1
- package/lib/esm-primary-navigation-app/3099.js +0 -1
- package/lib/esm-primary-navigation-app/3584.js +0 -1
- package/lib/esm-primary-navigation-app/4055.js +0 -1
- package/lib/esm-primary-navigation-app/4132.js +0 -1
- package/lib/esm-primary-navigation-app/4300.js +0 -1
- package/lib/esm-primary-navigation-app/4335.js +0 -1
- package/lib/esm-primary-navigation-app/439.js +0 -1
- package/lib/esm-primary-navigation-app/4618.js +0 -1
- package/lib/esm-primary-navigation-app/4652.js +0 -1
- package/lib/esm-primary-navigation-app/4740.js +0 -2
- package/lib/esm-primary-navigation-app/4740.js.map +0 -1
- package/lib/esm-primary-navigation-app/4944.js +0 -1
- package/lib/esm-primary-navigation-app/5173.js +0 -1
- package/lib/esm-primary-navigation-app/523.js +0 -2
- package/lib/esm-primary-navigation-app/5241.js +0 -1
- package/lib/esm-primary-navigation-app/5442.js +0 -1
- package/lib/esm-primary-navigation-app/5460.js +0 -1
- package/lib/esm-primary-navigation-app/5460.js.map +0 -1
- package/lib/esm-primary-navigation-app/5623.js +0 -2
- package/lib/esm-primary-navigation-app/5623.js.map +0 -1
- package/lib/esm-primary-navigation-app/5661.js +0 -1
- package/lib/esm-primary-navigation-app/5770.js +0 -2
- package/lib/esm-primary-navigation-app/5770.js.map +0 -1
- package/lib/esm-primary-navigation-app/6022.js +0 -1
- package/lib/esm-primary-navigation-app/6326.js +0 -2
- package/lib/esm-primary-navigation-app/6326.js.map +0 -1
- package/lib/esm-primary-navigation-app/6408.js +0 -2
- package/lib/esm-primary-navigation-app/6408.js.LICENSE.txt +0 -32
- package/lib/esm-primary-navigation-app/6408.js.map +0 -1
- package/lib/esm-primary-navigation-app/6468.js +0 -1
- package/lib/esm-primary-navigation-app/6537.js +0 -2
- package/lib/esm-primary-navigation-app/6537.js.LICENSE.txt +0 -5
- package/lib/esm-primary-navigation-app/6537.js.map +0 -1
- package/lib/esm-primary-navigation-app/6589.js +0 -1
- package/lib/esm-primary-navigation-app/6679.js +0 -1
- package/lib/esm-primary-navigation-app/6840.js +0 -1
- package/lib/esm-primary-navigation-app/6859.js +0 -1
- package/lib/esm-primary-navigation-app/7097.js +0 -1
- package/lib/esm-primary-navigation-app/7159.js +0 -1
- package/lib/esm-primary-navigation-app/723.js +0 -1
- package/lib/esm-primary-navigation-app/7617.js +0 -1
- package/lib/esm-primary-navigation-app/7798.js +0 -2
- package/lib/esm-primary-navigation-app/7798.js.map +0 -1
- package/lib/esm-primary-navigation-app/795.js +0 -1
- package/lib/esm-primary-navigation-app/8163.js +0 -1
- package/lib/esm-primary-navigation-app/8349.js +0 -1
- package/lib/esm-primary-navigation-app/8371.js +0 -1
- package/lib/esm-primary-navigation-app/8412.js +0 -1
- package/lib/esm-primary-navigation-app/8412.js.map +0 -1
- package/lib/esm-primary-navigation-app/8618.js +0 -1
- package/lib/esm-primary-navigation-app/890.js +0 -1
- package/lib/esm-primary-navigation-app/9214.js +0 -1
- package/lib/esm-primary-navigation-app/939.js +0 -1
- package/lib/esm-primary-navigation-app/9538.js +0 -1
- package/lib/esm-primary-navigation-app/9569.js +0 -1
- package/lib/esm-primary-navigation-app/986.js +0 -1
- package/lib/esm-primary-navigation-app/9879.js +0 -1
- package/lib/esm-primary-navigation-app/9895.js +0 -1
- package/lib/esm-primary-navigation-app/9900.js +0 -1
- package/lib/esm-primary-navigation-app/9913.js +0 -1
- package/lib/esm-primary-navigation-app/main.js +0 -2
- package/lib/esm-primary-navigation-app/main.js.LICENSE.txt +0 -5
- package/lib/esm-primary-navigation-app/main.js.map +0 -1
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js +0 -1
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js.buildmanifest.json +0 -1431
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js.map +0 -1
- package/lib/esm-primary-navigation-app/routes.json +0 -1
- /package/lib/{esm-primary-navigation-app/2727.js.LICENSE.txt → esm-devtools-app/180.js.LICENSE.txt} +0 -0
- /package/lib/{esm-primary-navigation-app/4740.js.LICENSE.txt → esm-devtools-app/185.js.LICENSE.txt} +0 -0
- /package/lib/{esm-primary-navigation-app/6326.js.LICENSE.txt → esm-devtools-app/326.js.LICENSE.txt} +0 -0
- /package/lib/{esm-primary-navigation-app → esm-devtools-app}/523.js.LICENSE.txt +0 -0
- /package/lib/{esm-primary-navigation-app/5623.js.LICENSE.txt → esm-devtools-app/623.js.LICENSE.txt} +0 -0
- /package/lib/{esm-primary-navigation-app/5770.js.LICENSE.txt → esm-devtools-app/770.js.LICENSE.txt} +0 -0
|
@@ -266,7 +266,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ope
|
|
|
266
266
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
267
267
|
|
|
268
268
|
"use strict";
|
|
269
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ run: () => (/* binding */ run)\n/* harmony export */ });\n/* harmony import */ var single_spa__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! single-spa */ \"webpack/sharing/consume/default/single-spa/single-spa\");\n/* harmony import */ var single_spa__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(single_spa__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-framework/src/internal */ \"webpack/sharing/consume/default/@openmrs/esm-framework/src/internal/@openmrs/esm-framework/src/internal\");\n/* harmony import */ var _openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./locale */ \"./src/locale.ts\");\n/* harmony import */ var _routing_events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./routing-events */ \"./src/routing-events.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./events */ \"./src/events.ts\");\n/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ui */ \"./src/ui/index.ts\");\n/* harmony import */ var _core_config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./core-config */ \"./src/core-config.ts\");\nfunction _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];\n return arr2;\n}\nfunction _array_with_holes(arr) {\n if (Array.isArray(arr)) return arr;\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 _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 _iterable_to_array_limit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally{\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally{\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _non_iterable_rest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\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 _sliced_to_array(arr, i) {\n return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();\n}\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\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);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() {\n return this;\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\n\n\n\n\n\n\n// @internal\n// used to track when the window.installedModules global is finalised\n// so we can pre-load all modules\nvar REGISTRATION_PROMISES = Symbol('openmrs_registration_promises');\n/**\n * Sets up the frontend modules (apps). Uses the defined export\n * from the root modules of the apps. This is done by reading the\n * list of apps from the routes.registry.json file, which serves\n * as the registry of all apps in the application.\n */ function setupApps() {\n return _async_to_generator(function() {\n var scriptTags, promises, i, _loop, localStorage1, i1, routes, modules, registrationPromises;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n scriptTags = document.querySelectorAll(\"script[type='openmrs-routes']\");\n promises = [];\n for(i = 0; i < scriptTags.length; i++){\n promises.push(function(scriptTag) {\n return _async_to_generator(function() {\n var routes, e, _scriptTag_src;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n routes = undefined;\n _state.label = 1;\n case 1:\n _state.trys.push([\n 1,\n 5,\n ,\n 6\n ]);\n if (!scriptTag.textContent) return [\n 3,\n 2\n ];\n routes = JSON.parse(scriptTag.textContent);\n return [\n 3,\n 4\n ];\n case 2:\n if (!scriptTag.src) return [\n 3,\n 4\n ];\n return [\n 4,\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.openmrsFetch)(scriptTag.src)\n ];\n case 3:\n routes = _state.sent().data;\n _state.label = 4;\n case 4:\n return [\n 3,\n 6\n ];\n case 5:\n e = _state.sent();\n console.error(\"Caught error while loading routes from \".concat((_scriptTag_src = scriptTag.src) !== null && _scriptTag_src !== void 0 ? _scriptTag_src : 'JSON script tag content'), e);\n return [\n 2,\n {}\n ];\n case 6:\n return [\n 2,\n Promise.resolve(routes !== null && routes !== void 0 ? routes : {})\n ];\n }\n });\n })();\n }(scriptTags.item(i)));\n }\n if ((0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.canAccessStorage)()) {\n _loop = function(i1) {\n var key = localStorage1.key(i1);\n if (key === null || key === void 0 ? void 0 : key.startsWith(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix)) {\n var localOverride = localStorage1.getItem(key);\n if (localOverride) {\n try {\n var maybeOpenmrsRoutes = JSON.parse(localOverride);\n if ((0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.isOpenmrsAppRoutes)(maybeOpenmrsRoutes)) {\n promises.push(Promise.resolve(_define_property({}, key.slice(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix.length), maybeOpenmrsRoutes)));\n } else if (typeof maybeOpenmrsRoutes === 'string' && maybeOpenmrsRoutes.startsWith('http')) {\n promises.push((0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.openmrsFetch)(maybeOpenmrsRoutes).then(function(response) {\n if ((0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.isOpenmrsAppRoutes)(response.data)) {\n return Promise.resolve(_define_property({}, key.slice(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix.length), response.data));\n }\n return Promise.reject(\"\".concat(maybeOpenmrsRoutes, \" did not resolve to a valid OpenmrsAppRoutes JSON object\"));\n }).catch(function(reason) {\n console.warn(\"Failed to fetch route overrides for \".concat(key.slice(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix.length)), reason);\n // still fail the promise\n throw reason;\n }));\n } else {\n console.warn(\"Route override for \".concat(key.slice(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix.length), \" could not be handled as it was neither a JSON object nor a URL string\"), localOverride);\n }\n } catch (e) {\n console.error(\"Error parsing local route override for \".concat(key), e);\n }\n }\n }\n };\n // load routes overrides from localStorage if any\n localStorage1 = window.localStorage;\n for(i1 = 0; i1 < localStorage1.length; i1++)_loop(i1);\n }\n return [\n 4,\n Promise.allSettled(promises)\n ];\n case 1:\n routes = _state.sent().filter(function(p) {\n return p.status === 'fulfilled';\n }).map(function(p) {\n return p.value;\n }).filter(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.isOpenmrsRoutes).reduce(function(accumulatedRoutes, routes) {\n return _object_spread({}, accumulatedRoutes, routes);\n }, {});\n modules = [];\n registrationPromises = Object.entries(routes).map(function(param) {\n var _param = _sliced_to_array(param, 2), module = _param[0], routes = _param[1];\n return _async_to_generator(function() {\n return _ts_generator(this, function(_state) {\n modules.push([\n module,\n routes\n ]);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.registerApp)(module, routes);\n return [\n 2\n ];\n });\n })();\n });\n window[REGISTRATION_PROMISES] = Promise.all(registrationPromises);\n window.installedModules = modules;\n return [\n 2\n ];\n }\n });\n })();\n}\n/**\n * Loads the provided configurations and sets them in the system.\n */ function loadConfigs(configs) {\n return _async_to_generator(function() {\n var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, config;\n return _ts_generator(this, function(_state) {\n _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(_iterator = configs[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n config = _step.value;\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.provide)(config.value, config.name);\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 2\n ];\n });\n })();\n}\n/**\n * Invoked when the connectivity is changed.\n */ function connectivityChanged() {\n if (!window.offlineEnabled) {\n return;\n }\n var online = navigator.onLine;\n // NB We do not wait for this to be done; it is simply scheduled\n (0,single_spa__WEBPACK_IMPORTED_MODULE_0__.triggerAppChange)();\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.dispatchConnectivityChanged)(online);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.showToast)({\n critical: true,\n description: \"Connection: \".concat(online ? 'online' : 'offline'),\n title: 'App',\n kind: online ? 'success' : 'warning'\n });\n}\n/**\n * Runs the shell by importing the translations and starting single SPA.\n */ function runShell() {\n return _async_to_generator(function() {\n return _ts_generator(this, function(_state) {\n return [\n 2,\n (0,_locale__WEBPACK_IMPORTED_MODULE_2__.setupI18n)().catch(function(err) {\n return console.error(\"Failed to initialize translations\", err);\n }).then(function() {\n return _async_to_generator(function() {\n var preferredCalendar, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, entry;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n return [\n 4,\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.getConfig)('@openmrs/esm-styleguide')\n ];\n case 1:\n preferredCalendar = _state.sent().preferredCalendar;\n _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(_iterator = Object.entries(preferredCalendar)[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n entry = _step.value;\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.registerDefaultCalendar)(entry[0], entry[1]);\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 2\n ];\n }\n });\n })();\n }).then(function() {\n return (0,single_spa__WEBPACK_IMPORTED_MODULE_0__.start)();\n })\n ];\n });\n })();\n}\nfunction handleInitFailure(e) {\n console.error(e);\n renderFatalErrorPage(e);\n}\nfunction renderFatalErrorPage(e) {\n var template = document.querySelector('#app-error');\n if (template) {\n var fragment = template.content.cloneNode(true);\n var messageContainer = fragment.querySelector('[data-var=\"message\"]');\n if (messageContainer) {\n messageContainer.textContent = (e === null || e === void 0 ? void 0 : e.message) || 'No additional information available.';\n }\n if (localStorage.getItem('openmrs:devtools') && Object.keys(localStorage).some(function(k) {\n return k.startsWith('import-map-override:');\n })) {\n var appErrorActionButtons = fragment === null || fragment === void 0 ? void 0 : fragment.querySelector('#buttons');\n if (appErrorActionButtons) {\n var clearDevOverridesButton = document.createElement('button');\n clearDevOverridesButton.className = 'cds--btn';\n clearDevOverridesButton.innerHTML = 'Clear dev overrides';\n clearDevOverridesButton.onclick = clearDevOverrides;\n appErrorActionButtons.appendChild(clearDevOverridesButton);\n }\n }\n document.body.appendChild(fragment);\n }\n}\nfunction clearDevOverrides() {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = Object.keys(localStorage)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var key = _step.value;\n if (key.startsWith('import-map-override:') && ![\n 'import-map-override:react',\n 'import-map-override:react-dom'\n ].includes(key)) {\n localStorage.removeItem(key);\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 location.reload();\n}\nfunction createConfigLoader(configUrls) {\n var loadingConfigs = Promise.all(configUrls.map(function(configUrl) {\n var interpolatedUrl = (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.interpolateUrl)(configUrl);\n return fetch(interpolatedUrl).then(function(res) {\n return res.json();\n }).then(function(config) {\n return {\n name: configUrl,\n value: config\n };\n }).catch(function(err) {\n console.error('Loading the config from \"'.concat(configUrl, '\" failed.'), err);\n return {\n name: configUrl,\n value: {}\n };\n });\n }));\n return function() {\n return loadingConfigs.then(loadConfigs);\n };\n}\nfunction showNotifications() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.renderInlineNotifications)(document.querySelector('.omrs-inline-notifications-container'));\n return;\n}\nfunction showActionableNotifications() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.renderActionableNotifications)(document.querySelector('.omrs-actionable-notifications-container'));\n}\nfunction showToasts() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.renderToasts)(document.querySelector('.omrs-toasts-container'));\n}\nfunction showWorkspacesAndActionMenu() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.renderWorkspaceWindowsAndMenu)(document.querySelector('#omrs-workspaces-container'));\n}\nfunction showSnackbars() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.renderSnackbars)(document.querySelector('.omrs-snackbars-container'));\n}\nfunction showModals() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.setupModals)(document.querySelector('.omrs-modals-container'));\n}\nfunction showLoadingSpinner() {\n return (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.renderLoadingSpinner)(document.body);\n}\n/**\n * Registers the extensions coming from the app shell itself.\n */ function registerCoreExtensions() {\n var extensions = (0,_ui__WEBPACK_IMPORTED_MODULE_5__.getCoreExtensions)();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = extensions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var extension = _step.value;\n // FIXME This \"core extensions\" concept should likely be retired\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.tryRegisterExtension)(_ui__WEBPACK_IMPORTED_MODULE_5__.appName, extension);\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}\nfunction setupOffline() {\n return _async_to_generator(function() {\n var error;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n _state.trys.push([\n 0,\n 3,\n ,\n 4\n ]);\n return [\n 4,\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.registerOmrsServiceWorker)(\"\".concat(window.getOpenmrsSpaBase(), \"service-worker.js\"))\n ];\n case 1:\n _state.sent();\n return [\n 4,\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.activateOfflineCapability)()\n ];\n case 2:\n _state.sent();\n setupOfflineStaticDependencyPrecaching();\n return [\n 3,\n 4\n ];\n case 3:\n error = _state.sent();\n console.error('Error while setting up offline mode.', error);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.showNotification)({\n kind: 'error',\n title: 'Offline Setup Error',\n description: error.message\n });\n return [\n 3,\n 4\n ];\n case 4:\n return [\n 2\n ];\n }\n });\n })();\n}\nfunction setupOfflineStaticDependencyPrecaching() {\n var precacheDelay = 1000 * 60 * 5;\n var lastPrecache = null;\n subscribeOnlineAndLoginChange(function(online, hasLoggedInUser) {\n var hasExceededPrecacheDelay = !lastPrecache || new Date().getTime() - lastPrecache.getTime() > precacheDelay;\n if (hasLoggedInUser && online && hasExceededPrecacheDelay) {\n lastPrecache = new Date();\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.dispatchPrecacheStaticDependencies)();\n }\n });\n}\nfunction subscribeOnlineAndLoginChange(cb) {\n var isOnline = false;\n var hasLoggedInUser = false;\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.getCurrentUser)({\n includeAuthStatus: false\n }).subscribe(function(user) {\n hasLoggedInUser = !!user;\n cb(isOnline, hasLoggedInUser);\n });\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.subscribeConnectivity)(function(param) {\n var online = param.online;\n isOnline = online;\n cb(online, hasLoggedInUser);\n });\n}\nfunction precacheGlobalStaticDependencies() {\n return _async_to_generator(function() {\n var sessionPathUrl;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n return [\n 4,\n precacheImportMap()\n ];\n case 1:\n _state.sent();\n // By default, cache the session endpoint.\n // This ensures that a lot of user/session related functions also work offline.\n sessionPathUrl = new URL(\"\".concat(window.openmrsBase).concat(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.restBaseUrl, \"/session\"), window.location.origin).href;\n return [\n 4,\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.messageOmrsServiceWorker)({\n type: 'registerDynamicRoute',\n url: sessionPathUrl,\n strategy: 'network-first'\n })\n ];\n case 2:\n _state.sent();\n return [\n 4,\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.openmrsFetch)(\"\".concat(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.restBaseUrl, \"/session\")).catch(function(e) {\n return console.warn('Failed to precache the user session data from the app shell. MFs depending on this data may run into problems while offline.', e);\n })\n ];\n case 3:\n _state.sent();\n return [\n 2\n ];\n }\n });\n })();\n}\nfunction precacheImportMap() {\n return _async_to_generator(function() {\n var importMap;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n return [\n 4,\n window.importMapOverrides.getCurrentPageMap()\n ];\n case 1:\n importMap = _state.sent();\n return [\n 4,\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.messageOmrsServiceWorker)({\n type: 'onImportMapChanged',\n importMap: importMap\n })\n ];\n case 2:\n _state.sent();\n return [\n 2\n ];\n }\n });\n })();\n}\nfunction registerOfflineHandlers() {\n window.addEventListener('offline', connectivityChanged);\n window.addEventListener('online', connectivityChanged);\n}\nfunction setupOfflineCssClasses() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.subscribeConnectivity)(function(param) {\n var online = param.online;\n var body = document.querySelector('body');\n if (online) {\n body.classList.remove('omrs-offline');\n } else {\n body.classList.add('omrs-offline');\n }\n });\n}\nfunction run(configUrls) {\n var offlineEnabled = window.offlineEnabled;\n var closeLoading = showLoadingSpinner();\n var provideConfigs = createConfigLoader(configUrls);\n return Promise.all(/*! import() */[__webpack_require__.e(\"vendors-node_modules_dayjs_plugin_isToday_js-node_modules_path-to-regexp_dist_es2015_index_js-c97e30\"), __webpack_require__.e(\"webpack_sharing_consume_default_react_react\"), __webpack_require__.e(\"webpack_sharing_consume_default_react-dom_react-dom\"), __webpack_require__.e(\"webpack_sharing_consume_default_carbon_react_carbon_react\"), __webpack_require__.e(\"webpack_sharing_consume_default_swr__internal_swr__internal-framework_esm-react-utils_dist_Ex-f1e01a\"), __webpack_require__.e(\"framework_esm-styleguide_src_index_ts\")]).then(__webpack_require__.bind(__webpack_require__, /*! @openmrs/esm-styleguide/src/index */ \"../../framework/esm-styleguide/src/index.ts\")).then(function() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.integrateBreakpoints)();\n showToasts();\n showModals();\n showNotifications();\n showActionableNotifications();\n showSnackbars();\n showWorkspacesAndActionMenu();\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.subscribeNotificationShown)(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.showNotification);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.subscribeActionableNotificationShown)(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.showActionableNotification);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.subscribeToastShown)(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.showToast);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.subscribeSnackbarShown)(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.showSnackbar);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.subscribePrecacheStaticDependencies)(precacheGlobalStaticDependencies);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.setupApiModule)();\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.setupHistory)();\n registerCoreExtensions();\n (0,_core_config__WEBPACK_IMPORTED_MODULE_6__.setupCoreConfig)();\n return setupApps().then(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.finishRegisteringAllApps).then(offlineEnabled ? setupOfflineCssClasses : undefined).then(offlineEnabled ? registerOfflineHandlers : undefined).then(provideConfigs).then(runShell).catch(handleInitFailure).then(closeLoading).then(offlineEnabled ? setupOffline : undefined).then(function() {\n // intentionally not returned so that processing the \"started\" event doesn't block\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.fireOpenmrsEvent)('started');\n });\n });\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LElBQU13QyxpQkFBaUJ0RCxtQkFBbUJDO0lBRTFDLE9BQU8sOHNCQUEyQyxDQUFDL0QsSUFBSSxDQUFDO1FBQ3REckUseUZBQW9CQTtRQUNwQjZJO1FBQ0FHO1FBQ0FMO1FBQ0FDO1FBQ0FHO1FBQ0FEO1FBQ0FuSCwrRkFBMEJBLENBQUNMLGlGQUFnQkE7UUFDM0NHLHlHQUFvQ0EsQ0FBQ0osMkZBQTBCQTtRQUMvRFMsd0ZBQW1CQSxDQUFDTiwwRUFBU0E7UUFDN0JLLDJGQUFzQkEsQ0FBQ04sNkVBQVlBO1FBQ25DSyx3R0FBbUNBLENBQUN3STtRQUNwQ2xKLG1GQUFjQTtRQUNkQyxpRkFBWUE7UUFDWitIO1FBQ0EvRyw2REFBZUE7UUFFZixPQUFPRyxZQUNKK0IsSUFBSSxDQUFDekUseUZBQXdCQSxFQUM3QnlFLElBQUksQ0FBQ3lCLGlCQUFpQnFGLHlCQUF5Qi9ILFdBQy9DaUIsSUFBSSxDQUFDeUIsaUJBQWlCbUYsMEJBQTBCN0gsV0FDaERpQixJQUFJLENBQUNvSCxnQkFDTHBILElBQUksQ0FBQ2lDLFVBQ0w5QixLQUFLLENBQUNrQyxtQkFDTnJDLElBQUksQ0FBQ21ILGNBQ0xuSCxJQUFJLENBQUN5QixpQkFBaUJ1RCxlQUFlakcsV0FDckNpQixJQUFJLENBQUM7WUFDSixrRkFBa0Y7WUFDbEZ4RSxxRkFBZ0JBLENBQUM7UUFDbkI7SUFDSjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uL3NyYy9ydW4udHM/YmMyNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdGFydCwgdHJpZ2dlckFwcENoYW5nZSB9IGZyb20gJ3NpbmdsZS1zcGEnO1xuaW1wb3J0IHsgdHlwZSBDYWxlbmRhcklkZW50aWZpZXIgfSBmcm9tICdAaW50ZXJuYXRpb25hbGl6ZWQvZGF0ZSc7XG5pbXBvcnQge1xuICBhY3RpdmF0ZU9mZmxpbmVDYXBhYmlsaXR5LFxuICBjYW5BY2Nlc3NTdG9yYWdlLFxuICBkaXNwYXRjaENvbm5lY3Rpdml0eUNoYW5nZWQsXG4gIGRpc3BhdGNoUHJlY2FjaGVTdGF0aWNEZXBlbmRlbmNpZXMsXG4gIHR5cGUgRXh0ZW5zaW9uRGVmaW5pdGlvbixcbiAgZmluaXNoUmVnaXN0ZXJpbmdBbGxBcHBzLFxuICBmaXJlT3Blbm1yc0V2ZW50LFxuICBnZXRDb25maWcsXG4gIGdldEN1cnJlbnRVc2VyLFxuICBpbnRlZ3JhdGVCcmVha3BvaW50cyxcbiAgaW50ZXJwb2xhdGVVcmwsXG4gIGlzT3Blbm1yc0FwcFJvdXRlcyxcbiAgaXNPcGVubXJzUm91dGVzLFxuICBsb2NhbFN0b3JhZ2VSb3V0ZXNQcmVmaXgsXG4gIG1lc3NhZ2VPbXJzU2VydmljZVdvcmtlcixcbiAgb3Blbm1yc0ZldGNoLFxuICBwcm92aWRlLFxuICByZWdpc3RlckFwcCxcbiAgcmVnaXN0ZXJEZWZhdWx0Q2FsZW5kYXIsXG4gIHJlZ2lzdGVyT21yc1NlcnZpY2VXb3JrZXIsXG4gIHJlbmRlckFjdGlvbmFibGVOb3RpZmljYXRpb25zLFxuICByZW5kZXJJbmxpbmVOb3RpZmljYXRpb25zLFxuICByZW5kZXJMb2FkaW5nU3Bpbm5lcixcbiAgcmVuZGVyU25hY2tiYXJzLFxuICByZW5kZXJUb2FzdHMsXG4gIHJlbmRlcldvcmtzcGFjZVdpbmRvd3NBbmRNZW51LFxuICByZXN0QmFzZVVybCxcbiAgc2V0dXBBcGlNb2R1bGUsXG4gIHNldHVwSGlzdG9yeSxcbiAgc2V0dXBNb2RhbHMsXG4gIHNob3dBY3Rpb25hYmxlTm90aWZpY2F0aW9uLFxuICBzaG93Tm90aWZpY2F0aW9uLFxuICBzaG93U25hY2tiYXIsXG4gIHNob3dUb2FzdCxcbiAgc3Vic2NyaWJlQWN0aW9uYWJsZU5vdGlmaWNhdGlvblNob3duLFxuICBzdWJzY3JpYmVDb25uZWN0aXZpdHksXG4gIHN1YnNjcmliZU5vdGlmaWNhdGlvblNob3duLFxuICBzdWJzY3JpYmVQcmVjYWNoZVN0YXRpY0RlcGVuZGVuY2llcyxcbiAgc3Vic2NyaWJlU25hY2tiYXJTaG93bixcbiAgc3Vic2NyaWJlVG9hc3RTaG93bixcbiAgdHJ5UmVnaXN0ZXJFeHRlbnNpb24sXG4gIHR5cGUgQ29uZmlnLFxuICB0eXBlIE9wZW5tcnNBcHBSb3V0ZXMsXG4gIHR5cGUgT3Blbm1yc1JvdXRlcyxcbiAgdHlwZSBTdHlsZWd1aWRlQ29uZmlnT2JqZWN0LFxufSBmcm9tICdAb3Blbm1ycy9lc20tZnJhbWV3b3JrL3NyYy9pbnRlcm5hbCc7XG5pbXBvcnQgeyBzZXR1cEkxOG4gfSBmcm9tICcuL2xvY2FsZSc7XG5pbXBvcnQgJy4vcm91dGluZy1ldmVudHMnO1xuaW1wb3J0ICcuL2V2ZW50cyc7XG5pbXBvcnQgeyBhcHBOYW1lLCBnZXRDb3JlRXh0ZW5zaW9ucyB9IGZyb20gJy4vdWknO1xuaW1wb3J0IHsgc2V0dXBDb3JlQ29uZmlnIH0gZnJvbSAnLi9jb3JlLWNvbmZpZyc7XG5cbi8vIEBpbnRlcm5hbFxuLy8gdXNlZCB0byB0cmFjayB3aGVuIHRoZSB3aW5kb3cuaW5zdGFsbGVkTW9kdWxlcyBnbG9iYWwgaXMgZmluYWxpc2VkXG4vLyBzbyB3ZSBjYW4gcHJlLWxvYWQgYWxsIG1vZHVsZXNcbmNvbnN0IFJFR0lTVFJBVElPTl9QUk9NSVNFUyA9IFN5bWJvbCgnb3Blbm1yc19yZWdpc3RyYXRpb25fcHJvbWlzZXMnKTtcblxuLyoqXG4gKiBTZXRzIHVwIHRoZSBmcm9udGVuZCBtb2R1bGVzIChhcHBzKS4gVXNlcyB0aGUgZGVmaW5lZCBleHBvcnRcbiAqIGZyb20gdGhlIHJvb3QgbW9kdWxlcyBvZiB0aGUgYXBwcy4gVGhpcyBpcyBkb25lIGJ5IHJlYWRpbmcgdGhlXG4gKiBsaXN0IG9mIGFwcHMgZnJvbSB0aGUgcm91dGVzLnJlZ2lzdHJ5Lmpzb24gZmlsZSwgd2hpY2ggc2VydmVzXG4gKiBhcyB0aGUgcmVnaXN0cnkgb2YgYWxsIGFwcHMgaW4gdGhlIGFwcGxpY2F0aW9uLlxuICovXG5hc3luYyBmdW5jdGlvbiBzZXR1cEFwcHMoKSB7XG4gIGNvbnN0IHNjcmlwdFRhZ3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxTY3JpcHRFbGVtZW50PihcInNjcmlwdFt0eXBlPSdvcGVubXJzLXJvdXRlcyddXCIpO1xuXG4gIGNvbnN0IHByb21pc2VzOiBBcnJheTxQcm9taXNlPE9wZW5tcnNSb3V0ZXM+PiA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHNjcmlwdFRhZ3MubGVuZ3RoOyBpKyspIHtcbiAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgKGFzeW5jIChzY3JpcHRUYWcpID0+IHtcbiAgICAgICAgbGV0IHJvdXRlczogT3Blbm1yc1JvdXRlcyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAoc2NyaXB0VGFnLnRleHRDb250ZW50KSB7XG4gICAgICAgICAgICByb3V0ZXMgPSBKU09OLnBhcnNlKHNjcmlwdFRhZy50ZXh0Q29udGVudCkgYXMgT3Blbm1yc1JvdXRlcztcbiAgICAgICAgICB9IGVsc2UgaWYgKHNjcmlwdFRhZy5zcmMpIHtcbiAgICAgICAgICAgIHJvdXRlcyA9IChhd2FpdCBvcGVubXJzRmV0Y2g8T3Blbm1yc1JvdXRlcz4oc2NyaXB0VGFnLnNyYykpLmRhdGE7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgQ2F1Z2h0IGVycm9yIHdoaWxlIGxvYWRpbmcgcm91dGVzIGZyb20gJHtzY3JpcHRUYWcuc3JjID8/ICdKU09OIHNjcmlwdCB0YWcgY29udGVudCd9YCwgZSk7XG5cbiAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJvdXRlcyA/PyB7fSk7XG4gICAgICB9KShzY3JpcHRUYWdzLml0ZW0oaSkpLFxuICAgICk7XG4gIH1cblxuICBpZiAoY2FuQWNjZXNzU3RvcmFnZSgpKSB7XG4gICAgLy8gbG9hZCByb3V0ZXMgb3ZlcnJpZGVzIGZyb20gbG9jYWxTdG9yYWdlIGlmIGFueVxuICAgIGNvbnN0IGxvY2FsU3RvcmFnZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2U7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsb2NhbFN0b3JhZ2UubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGtleSA9IGxvY2FsU3RvcmFnZS5rZXkoaSk7XG4gICAgICBpZiAoa2V5Py5zdGFydHNXaXRoKGxvY2FsU3RvcmFnZVJvdXRlc1ByZWZpeCkpIHtcbiAgICAgICAgY29uc3QgbG9jYWxPdmVycmlkZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICAgIGlmIChsb2NhbE92ZXJyaWRlKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IG1heWJlT3Blbm1yc1JvdXRlcyA9IEpTT04ucGFyc2UobG9jYWxPdmVycmlkZSk7XG4gICAgICAgICAgICBpZiAoaXNPcGVubXJzQXBwUm91dGVzKG1heWJlT3Blbm1yc1JvdXRlcykpIHtcbiAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgICBQcm9taXNlLnJlc29sdmU8T3Blbm1yc1JvdXRlcz4oe1xuICAgICAgICAgICAgICAgICAgW2tleS5zbGljZShsb2NhbFN0b3JhZ2VSb3V0ZXNQcmVmaXgubGVuZ3RoKV06IG1heWJlT3Blbm1yc1JvdXRlcyxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG1heWJlT3Blbm1yc1JvdXRlcyA9PT0gJ3N0cmluZycgJiYgbWF5YmVPcGVubXJzUm91dGVzLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgIG9wZW5tcnNGZXRjaDxPcGVubXJzQXBwUm91dGVzPihtYXliZU9wZW5tcnNSb3V0ZXMpXG4gICAgICAgICAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT3Blbm1yc0FwcFJvdXRlcyhyZXNwb25zZS5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgW2tleS5zbGljZShsb2NhbFN0b3JhZ2VSb3V0ZXNQcmVmaXgubGVuZ3RoKV06IHJlc3BvbnNlLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXG4gICAgICAgICAgICAgICAgICAgICAgYCR7bWF5YmVPcGVubXJzUm91dGVzfSBkaWQgbm90IHJlc29sdmUgdG8gYSB2YWxpZCBPcGVubXJzQXBwUm91dGVzIEpTT04gb2JqZWN0YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAuY2F0Y2goKHJlYXNvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICAgICAgYEZhaWxlZCB0byBmZXRjaCByb3V0ZSBvdmVycmlkZXMgZm9yICR7a2V5LnNsaWNlKGxvY2FsU3RvcmFnZVJvdXRlc1ByZWZpeC5sZW5ndGgpfWAsXG4gICAgICAgICAgICAgICAgICAgICAgcmVhc29uLFxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIHN0aWxsIGZhaWwgdGhlIHByb21pc2VcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVhc29uO1xuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgYFJvdXRlIG92ZXJyaWRlIGZvciAke2tleS5zbGljZShcbiAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZVJvdXRlc1ByZWZpeC5sZW5ndGgsXG4gICAgICAgICAgICAgICAgKX0gY291bGQgbm90IGJlIGhhbmRsZWQgYXMgaXQgd2FzIG5laXRoZXIgYSBKU09OIG9iamVjdCBub3IgYSBVUkwgc3RyaW5nYCxcbiAgICAgICAgICAgICAgICBsb2NhbE92ZXJyaWRlLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIHBhcnNpbmcgbG9jYWwgcm91dGUgb3ZlcnJpZGUgZm9yICR7a2V5fWAsIGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJvdXRlczogT3Blbm1yc1JvdXRlcyA9IChhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQocHJvbWlzZXMpKVxuICAgIC5maWx0ZXIoKHApID0+IHAuc3RhdHVzID09PSAnZnVsZmlsbGVkJylcbiAgICAubWFwKChwKSA9PiAocCBhcyBQcm9taXNlRnVsZmlsbGVkUmVzdWx0PE9wZW5tcnNSb3V0ZXM+KS52YWx1ZSlcbiAgICAuZmlsdGVyKGlzT3Blbm1yc1JvdXRlcylcbiAgICAucmVkdWNlKFxuICAgICAgKGFjY3VtdWxhdGVkUm91dGVzLCByb3V0ZXMpID0+ICh7XG4gICAgICAgIC4uLmFjY3VtdWxhdGVkUm91dGVzLFxuICAgICAgICAuLi5yb3V0ZXMsXG4gICAgICB9KSxcbiAgICAgIHt9LFxuICAgICk7XG5cbiAgY29uc3QgbW9kdWxlczogdHlwZW9mIHdpbmRvdy5pbnN0YWxsZWRNb2R1bGVzID0gW107XG4gIGNvbnN0IHJlZ2lzdHJhdGlvblByb21pc2VzID0gT2JqZWN0LmVudHJpZXMocm91dGVzKS5tYXAoYXN5bmMgKFttb2R1bGUsIHJvdXRlc10pID0+IHtcbiAgICBtb2R1bGVzLnB1c2goW21vZHVsZSwgcm91dGVzXSk7XG4gICAgcmVnaXN0ZXJBcHAobW9kdWxlLCByb3V0ZXMpO1xuICB9KTtcblxuICB3aW5kb3dbUkVHSVNUUkFUSU9OX1BST01JU0VTXSA9IFByb21pc2UuYWxsKHJlZ2lzdHJhdGlvblByb21pc2VzKTtcbiAgd2luZG93Lmluc3RhbGxlZE1vZHVsZXMgPSBtb2R1bGVzO1xufVxuXG4vKipcbiAqIExvYWRzIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9ucyBhbmQgc2V0cyB0aGVtIGluIHRoZSBzeXN0ZW0uXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvYWRDb25maWdzKGNvbmZpZ3M6IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogQ29uZmlnIH0+KSB7XG4gIGZvciAoY29uc3QgY29uZmlnIG9mIGNvbmZpZ3MpIHtcbiAgICBwcm92aWRlKGNvbmZpZy52YWx1ZSwgY29uZmlnLm5hbWUpO1xuICB9XG59XG5cbi8qKlxuICogSW52b2tlZCB3aGVuIHRoZSBjb25uZWN0aXZpdHkgaXMgY2hhbmdlZC5cbiAqL1xuZnVuY3Rpb24gY29ubmVjdGl2aXR5Q2hhbmdlZCgpIHtcbiAgaWYgKCF3aW5kb3cub2ZmbGluZUVuYWJsZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBvbmxpbmUgPSBuYXZpZ2F0b3Iub25MaW5lO1xuICAvLyBOQiBXZSBkbyBub3Qgd2FpdCBmb3IgdGhpcyB0byBiZSBkb25lOyBpdCBpcyBzaW1wbHkgc2NoZWR1bGVkXG4gIHRyaWdnZXJBcHBDaGFuZ2UoKTtcblxuICBkaXNwYXRjaENvbm5lY3Rpdml0eUNoYW5nZWQob25saW5lKTtcbiAgc2hvd1RvYXN0KHtcbiAgICBjcml0aWNhbDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogYENvbm5lY3Rpb246ICR7b25saW5lID8gJ29ubGluZScgOiAnb2ZmbGluZSd9YCxcbiAgICB0aXRsZTogJ0FwcCcsXG4gICAga2luZDogb25saW5lID8gJ3N1Y2Nlc3MnIDogJ3dhcm5pbmcnLFxuICB9KTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSBzaGVsbCBieSBpbXBvcnRpbmcgdGhlIHRyYW5zbGF0aW9ucyBhbmQgc3RhcnRpbmcgc2luZ2xlIFNQQS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcnVuU2hlbGwoKSB7XG4gIHJldHVybiBzZXR1cEkxOG4oKVxuICAgIC5jYXRjaCgoZXJyKSA9PiBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gaW5pdGlhbGl6ZSB0cmFuc2xhdGlvbnNgLCBlcnIpKVxuICAgIC50aGVuKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcHJlZmVycmVkQ2FsZW5kYXIgfSA9IGF3YWl0IGdldENvbmZpZzxTdHlsZWd1aWRlQ29uZmlnT2JqZWN0PignQG9wZW5tcnMvZXNtLXN0eWxlZ3VpZGUnKTtcblxuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBPYmplY3QuZW50cmllcyhwcmVmZXJyZWRDYWxlbmRhcikpIHtcbiAgICAgICAgcmVnaXN0ZXJEZWZhdWx0Q2FsZW5kYXIoZW50cnlbMF0sIGVudHJ5WzFdIGFzIENhbGVuZGFySWRlbnRpZmllcik7XG4gICAgICB9XG4gICAgfSlcbiAgICAudGhlbigoKSA9PiBzdGFydCgpKTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlSW5pdEZhaWx1cmUoZTogRXJyb3IpIHtcbiAgY29uc29sZS5lcnJvcihlKTtcbiAgcmVuZGVyRmF0YWxFcnJvclBhZ2UoZSk7XG59XG5cbmZ1bmN0aW9uIHJlbmRlckZhdGFsRXJyb3JQYWdlKGU/OiBFcnJvcikge1xuICBjb25zdCB0ZW1wbGF0ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTFRlbXBsYXRlRWxlbWVudD4oJyNhcHAtZXJyb3InKTtcblxuICBpZiAodGVtcGxhdGUpIHtcbiAgICBjb25zdCBmcmFnbWVudCA9IHRlbXBsYXRlLmNvbnRlbnQuY2xvbmVOb2RlKHRydWUpIGFzIERvY3VtZW50RnJhZ21lbnQ7XG4gICAgY29uc3QgbWVzc2FnZUNvbnRhaW5lciA9IGZyYWdtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXZhcj1cIm1lc3NhZ2VcIl0nKTtcblxuICAgIGlmIChtZXNzYWdlQ29udGFpbmVyKSB7XG4gICAgICBtZXNzYWdlQ29udGFpbmVyLnRleHRDb250ZW50ID0gZT8ubWVzc2FnZSB8fCAnTm8gYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhdmFpbGFibGUuJztcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnb3Blbm1yczpkZXZ0b29scycpICYmXG4gICAgICBPYmplY3Qua2V5cyhsb2NhbFN0b3JhZ2UpLnNvbWUoKGspID0+IGsuc3RhcnRzV2l0aCgnaW1wb3J0LW1hcC1vdmVycmlkZTonKSlcbiAgICApIHtcbiAgICAgIGNvbnN0IGFwcEVycm9yQWN0aW9uQnV0dG9ucyA9IGZyYWdtZW50Py5xdWVyeVNlbGVjdG9yKCcjYnV0dG9ucycpO1xuICAgICAgaWYgKGFwcEVycm9yQWN0aW9uQnV0dG9ucykge1xuICAgICAgICBjb25zdCBjbGVhckRldk92ZXJyaWRlc0J1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xuICAgICAgICBjbGVhckRldk92ZXJyaWRlc0J1dHRvbi5jbGFzc05hbWUgPSAnY2RzLS1idG4nO1xuICAgICAgICBjbGVhckRldk92ZXJyaWRlc0J1dHRvbi5pbm5lckhUTUwgPSAnQ2xlYXIgZGV2IG92ZXJyaWRlcyc7XG4gICAgICAgIGNsZWFyRGV2T3ZlcnJpZGVzQnV0dG9uLm9uY2xpY2sgPSBjbGVhckRldk92ZXJyaWRlcztcbiAgICAgICAgYXBwRXJyb3JBY3Rpb25CdXR0b25zLmFwcGVuZENoaWxkKGNsZWFyRGV2T3ZlcnJpZGVzQnV0dG9uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYWdtZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjbGVhckRldk92ZXJyaWRlcygpIHtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobG9jYWxTdG9yYWdlKSkge1xuICAgIGlmIChcbiAgICAgIGtleS5zdGFydHNXaXRoKCdpbXBvcnQtbWFwLW92ZXJyaWRlOicpICYmXG4gICAgICAhWydpbXBvcnQtbWFwLW92ZXJyaWRlOnJlYWN0JywgJ2ltcG9ydC1tYXAtb3ZlcnJpZGU6cmVhY3QtZG9tJ10uaW5jbHVkZXMoa2V5KVxuICAgICkge1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICB9XG4gIH1cbiAgbG9jYXRpb24ucmVsb2FkKCk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbmZpZ0xvYWRlcihjb25maWdVcmxzOiBBcnJheTxzdHJpbmc+KSB7XG4gIGNvbnN0IGxvYWRpbmdDb25maWdzID0gUHJvbWlzZS5hbGwoXG4gICAgY29uZmlnVXJscy5tYXAoKGNvbmZpZ1VybCkgPT4ge1xuICAgICAgY29uc3QgaW50ZXJwb2xhdGVkVXJsID0gaW50ZXJwb2xhdGVVcmwoY29uZmlnVXJsKTtcbiAgICAgIHJldHVybiBmZXRjaChpbnRlcnBvbGF0ZWRVcmwpXG4gICAgICAgIC50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG4gICAgICAgIC50aGVuKChjb25maWcpID0+ICh7XG4gICAgICAgICAgbmFtZTogY29uZmlnVXJsLFxuICAgICAgICAgIHZhbHVlOiBjb25maWcsXG4gICAgICAgIH0pKVxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYExvYWRpbmcgdGhlIGNvbmZpZyBmcm9tIFwiJHtjb25maWdVcmx9XCIgZmFpbGVkLmAsIGVycik7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IGNvbmZpZ1VybCxcbiAgICAgICAgICAgIHZhbHVlOiB7fSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9KSxcbiAgKTtcbiAgcmV0dXJuICgpID0+IGxvYWRpbmdDb25maWdzLnRoZW4obG9hZENvbmZpZ3MpO1xufVxuXG5mdW5jdGlvbiBzaG93Tm90aWZpY2F0aW9ucygpIHtcbiAgcmVuZGVySW5saW5lTm90aWZpY2F0aW9ucyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcub21ycy1pbmxpbmUtbm90aWZpY2F0aW9ucy1jb250YWluZXInKSk7XG4gIHJldHVybjtcbn1cblxuZnVuY3Rpb24gc2hvd0FjdGlvbmFibGVOb3RpZmljYXRpb25zKCkge1xuICByZW5kZXJBY3Rpb25hYmxlTm90aWZpY2F0aW9ucyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcub21ycy1hY3Rpb25hYmxlLW5vdGlmaWNhdGlvbnMtY29udGFpbmVyJykpO1xufVxuXG5mdW5jdGlvbiBzaG93VG9hc3RzKCkge1xuICByZW5kZXJUb2FzdHMoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm9tcnMtdG9hc3RzLWNvbnRhaW5lcicpKTtcbn1cblxuZnVuY3Rpb24gc2hvd1dvcmtzcGFjZXNBbmRBY3Rpb25NZW51KCkge1xuICByZW5kZXJXb3Jrc3BhY2VXaW5kb3dzQW5kTWVudShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjb21ycy13b3Jrc3BhY2VzLWNvbnRhaW5lcicpKTtcbn1cblxuZnVuY3Rpb24gc2hvd1NuYWNrYmFycygpIHtcbiAgcmVuZGVyU25hY2tiYXJzKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vbXJzLXNuYWNrYmFycy1jb250YWluZXInKSk7XG59XG5cbmZ1bmN0aW9uIHNob3dNb2RhbHMoKSB7XG4gIHNldHVwTW9kYWxzKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vbXJzLW1vZGFscy1jb250YWluZXInKSk7XG59XG5cbmZ1bmN0aW9uIHNob3dMb2FkaW5nU3Bpbm5lcigpIHtcbiAgcmV0dXJuIHJlbmRlckxvYWRpbmdTcGlubmVyKGRvY3VtZW50LmJvZHkpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGUgZXh0ZW5zaW9ucyBjb21pbmcgZnJvbSB0aGUgYXBwIHNoZWxsIGl0c2VsZi5cbiAqL1xuZnVuY3Rpb24gcmVnaXN0ZXJDb3JlRXh0ZW5zaW9ucygpIHtcbiAgY29uc3QgZXh0ZW5zaW9ucyA9IGdldENvcmVFeHRlbnNpb25zKCk7XG4gIGZvciAoY29uc3QgZXh0ZW5zaW9uIG9mIGV4dGVuc2lvbnMpIHtcbiAgICAvLyBGSVhNRSBUaGlzIFwiY29yZSBleHRlbnNpb25zXCIgY29uY2VwdCBzaG91bGQgbGlrZWx5IGJlIHJldGlyZWRcbiAgICB0cnlSZWdpc3RlckV4dGVuc2lvbihhcHBOYW1lLCBleHRlbnNpb24gYXMgdW5rbm93biBhcyBFeHRlbnNpb25EZWZpbml0aW9uKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBzZXR1cE9mZmxpbmUoKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgcmVnaXN0ZXJPbXJzU2VydmljZVdvcmtlcihgJHt3aW5kb3cuZ2V0T3Blbm1yc1NwYUJhc2UoKX1zZXJ2aWNlLXdvcmtlci5qc2ApO1xuICAgIGF3YWl0IGFjdGl2YXRlT2ZmbGluZUNhcGFiaWxpdHkoKTtcbiAgICBzZXR1cE9mZmxpbmVTdGF0aWNEZXBlbmRlbmN5UHJlY2FjaGluZygpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHdoaWxlIHNldHRpbmcgdXAgb2ZmbGluZSBtb2RlLicsIGVycm9yKTtcbiAgICBzaG93Tm90aWZpY2F0aW9uKHtcbiAgICAgIGtpbmQ6ICdlcnJvcicsXG4gICAgICB0aXRsZTogJ09mZmxpbmUgU2V0dXAgRXJyb3InLFxuICAgICAgZGVzY3JpcHRpb246IGVycm9yLm1lc3NhZ2UsXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0dXBPZmZsaW5lU3RhdGljRGVwZW5kZW5jeVByZWNhY2hpbmcoKSB7XG4gIGNvbnN0IHByZWNhY2hlRGVsYXkgPSAxMDAwICogNjAgKiA1O1xuICBsZXQgbGFzdFByZWNhY2hlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgc3Vic2NyaWJlT25saW5lQW5kTG9naW5DaGFuZ2UoKG9ubGluZSwgaGFzTG9nZ2VkSW5Vc2VyKSA9PiB7XG4gICAgY29uc3QgaGFzRXhjZWVkZWRQcmVjYWNoZURlbGF5ID0gIWxhc3RQcmVjYWNoZSB8fCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIGxhc3RQcmVjYWNoZS5nZXRUaW1lKCkgPiBwcmVjYWNoZURlbGF5O1xuXG4gICAgaWYgKGhhc0xvZ2dlZEluVXNlciAmJiBvbmxpbmUgJiYgaGFzRXhjZWVkZWRQcmVjYWNoZURlbGF5KSB7XG4gICAgICBsYXN0UHJlY2FjaGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgZGlzcGF0Y2hQcmVjYWNoZVN0YXRpY0RlcGVuZGVuY2llcygpO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHN1YnNjcmliZU9ubGluZUFuZExvZ2luQ2hhbmdlKGNiOiAob25saW5lOiBib29sZWFuLCBoYXNMb2dnZWRJblVzZXI6IGJvb2xlYW4pID0+IHZvaWQpIHtcbiAgbGV0IGlzT25saW5lID0gZmFsc2U7XG4gIGxldCBoYXNMb2dnZWRJblVzZXIgPSBmYWxzZTtcblxuICBnZXRDdXJyZW50VXNlcih7IGluY2x1ZGVBdXRoU3RhdHVzOiBmYWxzZSB9KS5zdWJzY3JpYmUoKHVzZXIpID0+IHtcbiAgICBoYXNMb2dnZWRJblVzZXIgPSAhIXVzZXI7XG4gICAgY2IoaXNPbmxpbmUsIGhhc0xvZ2dlZEluVXNlcik7XG4gIH0pO1xuXG4gIHN1YnNjcmliZUNvbm5lY3Rpdml0eSgoeyBvbmxpbmUgfSkgPT4ge1xuICAgIGlzT25saW5lID0gb25saW5lO1xuICAgIGNiKG9ubGluZSwgaGFzTG9nZ2VkSW5Vc2VyKTtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHByZWNhY2hlR2xvYmFsU3RhdGljRGVwZW5kZW5jaWVzKCkge1xuICBhd2FpdCBwcmVjYWNoZUltcG9ydE1hcCgpO1xuXG4gIC8vIEJ5IGRlZmF1bHQsIGNhY2hlIHRoZSBzZXNzaW9uIGVuZHBvaW50LlxuICAvLyBUaGlzIGVuc3VyZXMgdGhhdCBhIGxvdCBvZiB1c2VyL3Nlc3Npb24gcmVsYXRlZCBmdW5jdGlvbnMgYWxzbyB3b3JrIG9mZmxpbmUuXG4gIGNvbnN0IHNlc3Npb25QYXRoVXJsID0gbmV3IFVSTChgJHt3aW5kb3cub3Blbm1yc0Jhc2V9JHtyZXN0QmFzZVVybH0vc2Vzc2lvbmAsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pLmhyZWY7XG5cbiAgYXdhaXQgbWVzc2FnZU9tcnNTZXJ2aWNlV29ya2VyKHtcbiAgICB0eXBlOiAncmVnaXN0ZXJEeW5hbWljUm91dGUnLFxuICAgIHVybDogc2Vzc2lvblBhdGhVcmwsXG4gICAgc3RyYXRlZ3k6ICduZXR3b3JrLWZpcnN0JyxcbiAgfSk7XG5cbiAgYXdhaXQgb3Blbm1yc0ZldGNoKGAke3Jlc3RCYXNlVXJsfS9zZXNzaW9uYCkuY2F0Y2goKGUpID0+XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgJ0ZhaWxlZCB0byBwcmVjYWNoZSB0aGUgdXNlciBzZXNzaW9uIGRhdGEgZnJvbSB0aGUgYXBwIHNoZWxsLiBNRnMgZGVwZW5kaW5nIG9uIHRoaXMgZGF0YSBtYXkgcnVuIGludG8gcHJvYmxlbXMgd2hpbGUgb2ZmbGluZS4nLFxuICAgICAgZSxcbiAgICApLFxuICApO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwcmVjYWNoZUltcG9ydE1hcCgpIHtcbiAgY29uc3QgaW1wb3J0TWFwID0gYXdhaXQgd2luZG93LmltcG9ydE1hcE92ZXJyaWRlcy5nZXRDdXJyZW50UGFnZU1hcCgpO1xuICBhd2FpdCBtZXNzYWdlT21yc1NlcnZpY2VXb3JrZXIoe1xuICAgIHR5cGU6ICdvbkltcG9ydE1hcENoYW5nZWQnLFxuICAgIGltcG9ydE1hcCxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyT2ZmbGluZUhhbmRsZXJzKCkge1xuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb2ZmbGluZScsIGNvbm5lY3Rpdml0eUNoYW5nZWQpO1xuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb25saW5lJywgY29ubmVjdGl2aXR5Q2hhbmdlZCk7XG59XG5cbmZ1bmN0aW9uIHNldHVwT2ZmbGluZUNzc0NsYXNzZXMoKSB7XG4gIHN1YnNjcmliZUNvbm5lY3Rpdml0eSgoeyBvbmxpbmUgfSkgPT4ge1xuICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykhO1xuICAgIGlmIChvbmxpbmUpIHtcbiAgICAgIGJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnb21ycy1vZmZsaW5lJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJvZHkuY2xhc3NMaXN0LmFkZCgnb21ycy1vZmZsaW5lJyk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihjb25maWdVcmxzOiBBcnJheTxzdHJpbmc+KSB7XG4gIGNvbnN0IG9mZmxpbmVFbmFibGVkID0gd2luZG93Lm9mZmxpbmVFbmFibGVkO1xuICBjb25zdCBjbG9zZUxvYWRpbmcgPSBzaG93TG9hZGluZ1NwaW5uZXIoKTtcbiAgY29uc3QgcHJvdmlkZUNvbmZpZ3MgPSBjcmVhdGVDb25maWdMb2FkZXIoY29uZmlnVXJscyk7XG5cbiAgcmV0dXJuIGltcG9ydCgnQG9wZW5tcnMvZXNtLXN0eWxlZ3VpZGUvc3JjL2luZGV4JykudGhlbigoKSA9PiB7XG4gICAgaW50ZWdyYXRlQnJlYWtwb2ludHMoKTtcbiAgICBzaG93VG9hc3RzKCk7XG4gICAgc2hvd01vZGFscygpO1xuICAgIHNob3dOb3RpZmljYXRpb25zKCk7XG4gICAgc2hvd0FjdGlvbmFibGVOb3RpZmljYXRpb25zKCk7XG4gICAgc2hvd1NuYWNrYmFycygpO1xuICAgIHNob3dXb3Jrc3BhY2VzQW5kQWN0aW9uTWVudSgpO1xuICAgIHN1YnNjcmliZU5vdGlmaWNhdGlvblNob3duKHNob3dOb3RpZmljYXRpb24pO1xuICAgIHN1YnNjcmliZUFjdGlvbmFibGVOb3RpZmljYXRpb25TaG93bihzaG93QWN0aW9uYWJsZU5vdGlmaWNhdGlvbik7XG4gICAgc3Vic2NyaWJlVG9hc3RTaG93bihzaG93VG9hc3QpO1xuICAgIHN1YnNjcmliZVNuYWNrYmFyU2hvd24oc2hvd1NuYWNrYmFyKTtcbiAgICBzdWJzY3JpYmVQcmVjYWNoZVN0YXRpY0RlcGVuZGVuY2llcyhwcmVjYWNoZUdsb2JhbFN0YXRpY0RlcGVuZGVuY2llcyk7XG4gICAgc2V0dXBBcGlNb2R1bGUoKTtcbiAgICBzZXR1cEhpc3RvcnkoKTtcbiAgICByZWdpc3RlckNvcmVFeHRlbnNpb25zKCk7XG4gICAgc2V0dXBDb3JlQ29uZmlnKCk7XG5cbiAgICByZXR1cm4gc2V0dXBBcHBzKClcbiAgICAgIC50aGVuKGZpbmlzaFJlZ2lzdGVyaW5nQWxsQXBwcylcbiAgICAgIC50aGVuKG9mZmxpbmVFbmFibGVkID8gc2V0dXBPZmZsaW5lQ3NzQ2xhc3NlcyA6IHVuZGVmaW5lZClcbiAgICAgIC50aGVuKG9mZmxpbmVFbmFibGVkID8gcmVnaXN0ZXJPZmZsaW5lSGFuZGxlcnMgOiB1bmRlZmluZWQpXG4gICAgICAudGhlbihwcm92aWRlQ29uZmlncylcbiAgICAgIC50aGVuKHJ1blNoZWxsKVxuICAgICAgLmNhdGNoKGhhbmRsZUluaXRGYWlsdXJlKVxuICAgICAgLnRoZW4oY2xvc2VMb2FkaW5nKVxuICAgICAgLnRoZW4ob2ZmbGluZUVuYWJsZWQgPyBzZXR1cE9mZmxpbmUgOiB1bmRlZmluZWQpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIC8vIGludGVudGlvbmFsbHkgbm90IHJldHVybmVkIHNvIHRoYXQgcHJvY2Vzc2luZyB0aGUgXCJzdGFydGVkXCIgZXZlbnQgZG9lc24ndCBibG9ja1xuICAgICAgICBmaXJlT3Blbm1yc0V2ZW50KCdzdGFydGVkJyk7XG4gICAgICB9KTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsic3RhcnQiLCJ0cmlnZ2VyQXBwQ2hhbmdlIiwiYWN0aXZhdGVPZmZsaW5lQ2FwYWJpbGl0eSIsImNhbkFjY2Vzc1N0b3JhZ2UiLCJkaXNwYXRjaENvbm5lY3Rpdml0eUNoYW5nZWQiLCJkaXNwYXRjaFByZWNhY2hlU3RhdGljRGVwZW5kZW5jaWVzIiwiZmluaXNoUmVnaXN0ZXJpbmdBbGxBcHBzIiwiZmlyZU9wZW5tcnNFdmVudCIsImdldENvbmZpZyIsImdldEN1cnJlbnRVc2VyIiwiaW50ZWdyYXRlQnJlYWtwb2ludHMiLCJpbnRlcnBvbGF0ZVVybCIsImlzT3Blbm1yc0FwcFJvdXRlcyIsImlzT3Blbm1yc1JvdXRlcyIsImxvY2FsU3RvcmFnZVJvdXRlc1ByZWZpeCIsIm1lc3NhZ2VPbXJzU2VydmljZVdvcmtlciIsIm9wZW5tcnNGZXRjaCIsInByb3ZpZGUiLCJyZWdpc3RlckFwcCIsInJlZ2lzdGVyRGVmYXVsdENhbGVuZGFyIiwicmVnaXN0ZXJPbXJzU2VydmljZVdvcmtlciIsInJlbmRlckFjdGlvbmFibGVOb3RpZmljYXRpb25zIiwicmVuZGVySW5saW5lTm90aWZpY2F0aW9ucyIsInJlbmRlckxvYWRpbmdTcGlubmVyIiwicmVuZGVyU25hY2tiYXJzIiwicmVuZGVyVG9hc3RzIiwicmVuZGVyV29ya3NwYWNlV2luZG93c0FuZE1lbnUiLCJyZXN0QmFzZVVybCIsInNldHVwQXBpTW9kdWxlIiwic2V0dXBIaXN0b3J5Iiwic2V0dXBNb2RhbHMiLCJzaG93QWN0aW9uYWJsZU5vdGlmaWNhdGlvbiIsInNob3dOb3RpZmljYXRpb24iLCJzaG93U25hY2tiYXIiLCJzaG93VG9hc3QiLCJzdWJzY3JpYmVBY3Rpb25hYmxlTm90aWZpY2F0aW9uU2hvd24iLCJzdWJzY3JpYmVDb25uZWN0aXZpdHkiLCJzdWJzY3JpYmVOb3RpZmljYXRpb25TaG93biIsInN1YnNjcmliZVByZWNhY2hlU3RhdGljRGVwZW5kZW5jaWVzIiwic3Vic2NyaWJlU25hY2tiYXJTaG93biIsInN1YnNjcmliZVRvYXN0U2hvd24iLCJ0cnlSZWdpc3RlckV4dGVuc2lvbiIsInNldHVwSTE4biIsImFwcE5hbWUiLCJnZXRDb3JlRXh0ZW5zaW9ucyIsInNldHVwQ29yZUNvbmZpZyIsIlJFR0lTVFJBVElPTl9QUk9NSVNFUyIsIlN5bWJvbCIsInNldHVwQXBwcyIsInNjcmlwdFRhZ3MiLCJwcm9taXNlcyIsImkiLCJsb2NhbFN0b3JhZ2UiLCJyb3V0ZXMiLCJtb2R1bGVzIiwicmVnaXN0cmF0aW9uUHJvbWlzZXMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsZW5ndGgiLCJwdXNoIiwic2NyaXB0VGFnIiwiZSIsInVuZGVmaW5lZCIsInRleHRDb250ZW50IiwiSlNPTiIsInBhcnNlIiwic3JjIiwiZGF0YSIsImNvbnNvbGUiLCJlcnJvciIsIlByb21pc2UiLCJyZXNvbHZlIiwiaXRlbSIsImtleSIsInN0YXJ0c1dpdGgiLCJsb2NhbE92ZXJyaWRlIiwiZ2V0SXRlbSIsIm1heWJlT3Blbm1yc1JvdXRlcyIsInNsaWNlIiwidGhlbiIsInJlc3BvbnNlIiwicmVqZWN0IiwiY2F0Y2giLCJyZWFzb24iLCJ3YXJuIiwid2luZG93IiwiYWxsU2V0dGxlZCIsImZpbHRlciIsInAiLCJzdGF0dXMiLCJtYXAiLCJ2YWx1ZSIsInJlZHVjZSIsImFjY3VtdWxhdGVkUm91dGVzIiwiT2JqZWN0IiwiZW50cmllcyIsIm1vZHVsZSIsImFsbCIsImluc3RhbGxlZE1vZHVsZXMiLCJsb2FkQ29uZmlncyIsImNvbmZpZ3MiLCJjb25maWciLCJuYW1lIiwiY29ubmVjdGl2aXR5Q2hhbmdlZCIsIm9mZmxpbmVFbmFibGVkIiwib25saW5lIiwibmF2aWdhdG9yIiwib25MaW5lIiwiY3JpdGljYWwiLCJkZXNjcmlwdGlvbiIsInRpdGxlIiwia2luZCIsInJ1blNoZWxsIiwiZXJyIiwicHJlZmVycmVkQ2FsZW5kYXIiLCJlbnRyeSIsImhhbmRsZUluaXRGYWlsdXJlIiwicmVuZGVyRmF0YWxFcnJvclBhZ2UiLCJ0ZW1wbGF0ZSIsInF1ZXJ5U2VsZWN0b3IiLCJmcmFnbWVudCIsImNvbnRlbnQiLCJjbG9uZU5vZGUiLCJtZXNzYWdlQ29udGFpbmVyIiwibWVzc2FnZSIsImtleXMiLCJzb21lIiwiayIsImFwcEVycm9yQWN0aW9uQnV0dG9ucyIsImNsZWFyRGV2T3ZlcnJpZGVzQnV0dG9uIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImlubmVySFRNTCIsIm9uY2xpY2siLCJjbGVhckRldk92ZXJyaWRlcyIsImFwcGVuZENoaWxkIiwiYm9keSIsImluY2x1ZGVzIiwicmVtb3ZlSXRlbSIsImxvY2F0aW9uIiwicmVsb2FkIiwiY3JlYXRlQ29uZmlnTG9hZGVyIiwiY29uZmlnVXJscyIsImxvYWRpbmdDb25maWdzIiwiY29uZmlnVXJsIiwiaW50ZXJwb2xhdGVkVXJsIiwiZmV0Y2giLCJyZXMiLCJqc29uIiwic2hvd05vdGlmaWNhdGlvbnMiLCJzaG93QWN0aW9uYWJsZU5vdGlmaWNhdGlvbnMiLCJzaG93VG9hc3RzIiwic2hvd1dvcmtzcGFjZXNBbmRBY3Rpb25NZW51Iiwic2hvd1NuYWNrYmFycyIsInNob3dNb2RhbHMiLCJzaG93TG9hZGluZ1NwaW5uZXIiLCJyZWdpc3RlckNvcmVFeHRlbnNpb25zIiwiZXh0ZW5zaW9ucyIsImV4dGVuc2lvbiIsInNldHVwT2ZmbGluZSIsImdldE9wZW5tcnNTcGFCYXNlIiwic2V0dXBPZmZsaW5lU3RhdGljRGVwZW5kZW5jeVByZWNhY2hpbmciLCJwcmVjYWNoZURlbGF5IiwibGFzdFByZWNhY2hlIiwic3Vic2NyaWJlT25saW5lQW5kTG9naW5DaGFuZ2UiLCJoYXNMb2dnZWRJblVzZXIiLCJoYXNFeGNlZWRlZFByZWNhY2hlRGVsYXkiLCJEYXRlIiwiZ2V0VGltZSIsImNiIiwiaXNPbmxpbmUiLCJpbmNsdWRlQXV0aFN0YXR1cyIsInN1YnNjcmliZSIsInVzZXIiLCJwcmVjYWNoZUdsb2JhbFN0YXRpY0RlcGVuZGVuY2llcyIsInNlc3Npb25QYXRoVXJsIiwicHJlY2FjaGVJbXBvcnRNYXAiLCJVUkwiLCJvcGVubXJzQmFzZSIsIm9yaWdpbiIsImhyZWYiLCJ0eXBlIiwidXJsIiwic3RyYXRlZ3kiLCJpbXBvcnRNYXAiLCJpbXBvcnRNYXBPdmVycmlkZXMiLCJnZXRDdXJyZW50UGFnZU1hcCIsInJlZ2lzdGVyT2ZmbGluZUhhbmRsZXJzIiwiYWRkRXZlbnRMaXN0ZW5lciIsInNldHVwT2ZmbGluZUNzc0NsYXNzZXMiLCJjbGFzc0xpc3QiLCJyZW1vdmUiLCJhZGQiLCJydW4iLCJjbG9zZUxvYWRpbmciLCJwcm92aWRlQ29uZmlncyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/run.ts\n");
|
|
269
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ run: () => (/* binding */ run)\n/* harmony export */ });\n/* harmony import */ var single_spa__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! single-spa */ \"webpack/sharing/consume/default/single-spa/single-spa\");\n/* harmony import */ var single_spa__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(single_spa__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-framework/src/internal */ \"webpack/sharing/consume/default/@openmrs/esm-framework/src/internal/@openmrs/esm-framework/src/internal\");\n/* harmony import */ var _openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _locale__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./locale */ \"./src/locale.ts\");\n/* harmony import */ var _routing_events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./routing-events */ \"./src/routing-events.ts\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./events */ \"./src/events.ts\");\n/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ui */ \"./src/ui/index.ts\");\n/* harmony import */ var _core_config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./core-config */ \"./src/core-config.ts\");\nfunction _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];\n return arr2;\n}\nfunction _array_with_holes(arr) {\n if (Array.isArray(arr)) return arr;\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 _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 _iterable_to_array_limit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally{\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally{\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _non_iterable_rest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\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 _sliced_to_array(arr, i) {\n return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();\n}\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\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);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() {\n return this;\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\n\n\n\n\n\n\n// @internal\n// used to track when the window.installedModules global is finalised\n// so we can pre-load all modules\nvar REGISTRATION_PROMISES = Symbol('openmrs_registration_promises');\n/**\n * Sets up the frontend modules (apps). Uses the defined export\n * from the root modules of the apps. This is done by reading the\n * list of apps from the routes.registry.json file, which serves\n * as the registry of all apps in the application.\n */ function setupApps() {\n return _async_to_generator(function() {\n var scriptTags, promises, i, _loop, localStorage1, i1, routes, modules, registrationPromises;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n scriptTags = document.querySelectorAll(\"script[type='openmrs-routes']\");\n promises = [];\n for(i = 0; i < scriptTags.length; i++){\n promises.push(function(scriptTag) {\n return _async_to_generator(function() {\n var routes, e, _scriptTag_src;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n routes = undefined;\n _state.label = 1;\n case 1:\n _state.trys.push([\n 1,\n 5,\n ,\n 6\n ]);\n if (!scriptTag.textContent) return [\n 3,\n 2\n ];\n routes = JSON.parse(scriptTag.textContent);\n return [\n 3,\n 4\n ];\n case 2:\n if (!scriptTag.src) return [\n 3,\n 4\n ];\n return [\n 4,\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.openmrsFetch)(scriptTag.src)\n ];\n case 3:\n routes = _state.sent().data;\n _state.label = 4;\n case 4:\n return [\n 3,\n 6\n ];\n case 5:\n e = _state.sent();\n console.error(\"Caught error while loading routes from \".concat((_scriptTag_src = scriptTag.src) !== null && _scriptTag_src !== void 0 ? _scriptTag_src : 'JSON script tag content'), e);\n return [\n 2,\n {}\n ];\n case 6:\n return [\n 2,\n Promise.resolve(routes !== null && routes !== void 0 ? routes : {})\n ];\n }\n });\n })();\n }(scriptTags.item(i)));\n }\n if ((0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.canAccessStorage)()) {\n _loop = function(i1) {\n var key = localStorage1.key(i1);\n if (key === null || key === void 0 ? void 0 : key.startsWith(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix)) {\n var localOverride = localStorage1.getItem(key);\n if (localOverride) {\n try {\n var maybeOpenmrsRoutes = JSON.parse(localOverride);\n if ((0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.isOpenmrsAppRoutes)(maybeOpenmrsRoutes)) {\n promises.push(Promise.resolve(_define_property({}, key.slice(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix.length), maybeOpenmrsRoutes)));\n } else if (typeof maybeOpenmrsRoutes === 'string' && maybeOpenmrsRoutes.startsWith('http')) {\n promises.push((0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.openmrsFetch)(maybeOpenmrsRoutes).then(function(response) {\n if ((0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.isOpenmrsAppRoutes)(response.data)) {\n return Promise.resolve(_define_property({}, key.slice(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix.length), response.data));\n }\n return Promise.reject(\"\".concat(maybeOpenmrsRoutes, \" did not resolve to a valid OpenmrsAppRoutes JSON object\"));\n }).catch(function(reason) {\n console.warn(\"Failed to fetch route overrides for \".concat(key.slice(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix.length)), reason);\n // still fail the promise\n throw reason;\n }));\n } else {\n console.warn(\"Route override for \".concat(key.slice(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix.length), \" could not be handled as it was neither a JSON object nor a URL string\"), localOverride);\n }\n } catch (e) {\n console.error(\"Error parsing local route override for \".concat(key), e);\n }\n }\n }\n };\n // load routes overrides from localStorage if any\n localStorage1 = window.localStorage;\n for(i1 = 0; i1 < localStorage1.length; i1++)_loop(i1);\n }\n return [\n 4,\n Promise.allSettled(promises)\n ];\n case 1:\n routes = _state.sent().filter(function(p) {\n return p.status === 'fulfilled';\n }).map(function(p) {\n return p.value;\n }).filter(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.isOpenmrsRoutes).reduce(function(accumulatedRoutes, routes) {\n return _object_spread({}, accumulatedRoutes, routes);\n }, {});\n modules = [];\n registrationPromises = Object.entries(routes).map(function(param) {\n var _param = _sliced_to_array(param, 2), module = _param[0], routes = _param[1];\n return _async_to_generator(function() {\n return _ts_generator(this, function(_state) {\n modules.push([\n module,\n routes\n ]);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.registerApp)(module, routes);\n return [\n 2\n ];\n });\n })();\n });\n window[REGISTRATION_PROMISES] = Promise.all(registrationPromises);\n window.installedModules = modules;\n return [\n 2\n ];\n }\n });\n })();\n}\n/**\n * Loads the provided configurations and sets them in the system.\n */ function loadConfigs(configs) {\n return _async_to_generator(function() {\n var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, config;\n return _ts_generator(this, function(_state) {\n _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(_iterator = configs[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n config = _step.value;\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.provide)(config.value, config.name);\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 2\n ];\n });\n })();\n}\n/**\n * Invoked when the connectivity is changed.\n */ function connectivityChanged() {\n if (!window.offlineEnabled) {\n return;\n }\n var online = navigator.onLine;\n // NB We do not wait for this to be done; it is simply scheduled\n (0,single_spa__WEBPACK_IMPORTED_MODULE_0__.triggerAppChange)();\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.dispatchConnectivityChanged)(online);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.showToast)({\n critical: true,\n description: \"Connection: \".concat(online ? 'online' : 'offline'),\n title: 'App',\n kind: online ? 'success' : 'warning'\n });\n}\n/**\n * Runs the shell by importing the translations and starting single SPA.\n */ function runShell() {\n return _async_to_generator(function() {\n return _ts_generator(this, function(_state) {\n return [\n 2,\n (0,_locale__WEBPACK_IMPORTED_MODULE_2__.setupI18n)().catch(function(err) {\n return console.error(\"Failed to initialize translations\", err);\n }).then(function() {\n return _async_to_generator(function() {\n var preferredCalendar, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, entry;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n return [\n 4,\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.getConfig)('@openmrs/esm-styleguide')\n ];\n case 1:\n preferredCalendar = _state.sent().preferredCalendar;\n _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(_iterator = Object.entries(preferredCalendar)[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n entry = _step.value;\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.registerDefaultCalendar)(entry[0], entry[1]);\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 2\n ];\n }\n });\n })();\n }).then(function() {\n return (0,single_spa__WEBPACK_IMPORTED_MODULE_0__.start)();\n })\n ];\n });\n })();\n}\nfunction handleInitFailure(e) {\n console.error(e);\n renderFatalErrorPage(e);\n}\nfunction renderFatalErrorPage(e) {\n var template = document.querySelector('#app-error');\n if (template) {\n var fragment = template.content.cloneNode(true);\n var messageContainer = fragment.querySelector('[data-var=\"message\"]');\n if (messageContainer) {\n messageContainer.textContent = (e === null || e === void 0 ? void 0 : e.message) || 'No additional information available.';\n }\n if (localStorage.getItem('openmrs:devtools') && Object.keys(localStorage).some(function(k) {\n return k.startsWith('import-map-override:');\n })) {\n var appErrorActionButtons = fragment === null || fragment === void 0 ? void 0 : fragment.querySelector('#buttons');\n if (appErrorActionButtons) {\n var clearDevOverridesButton = document.createElement('button');\n clearDevOverridesButton.className = 'cds--btn';\n clearDevOverridesButton.innerHTML = 'Clear dev overrides';\n clearDevOverridesButton.onclick = clearDevOverrides;\n appErrorActionButtons.appendChild(clearDevOverridesButton);\n }\n }\n document.body.appendChild(fragment);\n }\n}\nfunction clearDevOverrides() {\n var keysToRemove = Object.keys(localStorage).filter(function(key) {\n return key.startsWith('import-map-override:') && ![\n 'import-map-override:react',\n 'import-map-override:react-dom'\n ].includes(key);\n });\n keysToRemove.forEach(function(key) {\n return localStorage.removeItem(key);\n });\n location.reload();\n}\nfunction createConfigLoader(configUrls) {\n var loadingConfigs = Promise.all(configUrls.map(function(configUrl) {\n var interpolatedUrl = (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.interpolateUrl)(configUrl);\n return fetch(interpolatedUrl).then(function(res) {\n return res.json();\n }).then(function(config) {\n return {\n name: configUrl,\n value: config\n };\n }).catch(function(err) {\n console.error('Loading the config from \"'.concat(configUrl, '\" failed.'), err);\n return {\n name: configUrl,\n value: {}\n };\n });\n }));\n return function() {\n return loadingConfigs.then(loadConfigs);\n };\n}\nfunction showNotifications() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.renderInlineNotifications)(document.querySelector('.omrs-inline-notifications-container'));\n return;\n}\nfunction showActionableNotifications() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.renderActionableNotifications)(document.querySelector('.omrs-actionable-notifications-container'));\n}\nfunction showToasts() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.renderToasts)(document.querySelector('.omrs-toasts-container'));\n}\nfunction showWorkspacesAndActionMenu() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.renderWorkspaceWindowsAndMenu)(document.querySelector('#omrs-workspaces-container'));\n}\nfunction showSnackbars() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.renderSnackbars)(document.querySelector('.omrs-snackbars-container'));\n}\nfunction showModals() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.setupModals)(document.querySelector('.omrs-modals-container'));\n}\nfunction showLoadingSpinner() {\n return (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.renderLoadingSpinner)(document.body);\n}\n/**\n * Registers the extensions coming from the app shell itself.\n */ function registerCoreExtensions() {\n var extensions = (0,_ui__WEBPACK_IMPORTED_MODULE_5__.getCoreExtensions)();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = extensions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var extension = _step.value;\n // FIXME This \"core extensions\" concept should likely be retired\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.tryRegisterExtension)(_ui__WEBPACK_IMPORTED_MODULE_5__.appName, extension);\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}\nfunction setupOffline() {\n return _async_to_generator(function() {\n var error;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n _state.trys.push([\n 0,\n 3,\n ,\n 4\n ]);\n return [\n 4,\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.registerOmrsServiceWorker)(\"\".concat(window.getOpenmrsSpaBase(), \"service-worker.js\"))\n ];\n case 1:\n _state.sent();\n return [\n 4,\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.activateOfflineCapability)()\n ];\n case 2:\n _state.sent();\n setupOfflineStaticDependencyPrecaching();\n return [\n 3,\n 4\n ];\n case 3:\n error = _state.sent();\n console.error('Error while setting up offline mode.', error);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.showNotification)({\n kind: 'error',\n title: 'Offline Setup Error',\n description: error.message\n });\n return [\n 3,\n 4\n ];\n case 4:\n return [\n 2\n ];\n }\n });\n })();\n}\nfunction setupOfflineStaticDependencyPrecaching() {\n var precacheDelay = 1000 * 60 * 5;\n var lastPrecache = null;\n subscribeOnlineAndLoginChange(function(online, hasLoggedInUser) {\n var hasExceededPrecacheDelay = !lastPrecache || new Date().getTime() - lastPrecache.getTime() > precacheDelay;\n if (hasLoggedInUser && online && hasExceededPrecacheDelay) {\n lastPrecache = new Date();\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.dispatchPrecacheStaticDependencies)();\n }\n });\n}\nfunction subscribeOnlineAndLoginChange(cb) {\n var isOnline = false;\n var hasLoggedInUser = false;\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.getCurrentUser)({\n includeAuthStatus: false\n }).subscribe(function(user) {\n hasLoggedInUser = !!user;\n cb(isOnline, hasLoggedInUser);\n });\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.subscribeConnectivity)(function(param) {\n var online = param.online;\n isOnline = online;\n cb(online, hasLoggedInUser);\n });\n}\nfunction precacheGlobalStaticDependencies() {\n return _async_to_generator(function() {\n var sessionPathUrl;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n return [\n 4,\n precacheImportMap()\n ];\n case 1:\n _state.sent();\n // By default, cache the session endpoint.\n // This ensures that a lot of user/session related functions also work offline.\n sessionPathUrl = new URL(\"\".concat(window.openmrsBase).concat(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.restBaseUrl, \"/session\"), window.location.origin).href;\n return [\n 4,\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.messageOmrsServiceWorker)({\n type: 'registerDynamicRoute',\n url: sessionPathUrl,\n strategy: 'network-first'\n })\n ];\n case 2:\n _state.sent();\n return [\n 4,\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.openmrsFetch)(\"\".concat(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.restBaseUrl, \"/session\")).catch(function(e) {\n return console.warn('Failed to precache the user session data from the app shell. MFs depending on this data may run into problems while offline.', e);\n })\n ];\n case 3:\n _state.sent();\n return [\n 2\n ];\n }\n });\n })();\n}\nfunction precacheImportMap() {\n return _async_to_generator(function() {\n var importMap;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n return [\n 4,\n window.importMapOverrides.getCurrentPageMap()\n ];\n case 1:\n importMap = _state.sent();\n return [\n 4,\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.messageOmrsServiceWorker)({\n type: 'onImportMapChanged',\n importMap: importMap\n })\n ];\n case 2:\n _state.sent();\n return [\n 2\n ];\n }\n });\n })();\n}\nfunction registerOfflineHandlers() {\n window.addEventListener('offline', connectivityChanged);\n window.addEventListener('online', connectivityChanged);\n}\nfunction setupOfflineCssClasses() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.subscribeConnectivity)(function(param) {\n var online = param.online;\n var body = document.querySelector('body');\n if (online) {\n body.classList.remove('omrs-offline');\n } else {\n body.classList.add('omrs-offline');\n }\n });\n}\nfunction run(configUrls) {\n var offlineEnabled = window.offlineEnabled;\n var closeLoading = showLoadingSpinner();\n var provideConfigs = createConfigLoader(configUrls);\n return Promise.all(/*! import() */[__webpack_require__.e(\"vendors-node_modules_dayjs_plugin_isToday_js-node_modules_path-to-regexp_dist_es2015_index_js-c97e30\"), __webpack_require__.e(\"webpack_sharing_consume_default_react_react\"), __webpack_require__.e(\"webpack_sharing_consume_default_react-dom_react-dom\"), __webpack_require__.e(\"webpack_sharing_consume_default_carbon_react_carbon_react\"), __webpack_require__.e(\"webpack_sharing_consume_default_swr__internal_swr__internal-framework_esm-react-utils_dist_Ex-f1e01a\"), __webpack_require__.e(\"framework_esm-styleguide_src_index_ts\")]).then(__webpack_require__.bind(__webpack_require__, /*! @openmrs/esm-styleguide/src/index */ \"../../framework/esm-styleguide/src/index.ts\")).then(function() {\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.integrateBreakpoints)();\n showToasts();\n showModals();\n showNotifications();\n showActionableNotifications();\n showSnackbars();\n showWorkspacesAndActionMenu();\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.subscribeNotificationShown)(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.showNotification);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.subscribeActionableNotificationShown)(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.showActionableNotification);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.subscribeToastShown)(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.showToast);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.subscribeSnackbarShown)(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.showSnackbar);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.subscribePrecacheStaticDependencies)(precacheGlobalStaticDependencies);\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.setupApiModule)();\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.setupHistory)();\n registerCoreExtensions();\n (0,_core_config__WEBPACK_IMPORTED_MODULE_6__.setupCoreConfig)();\n return setupApps().then(_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.finishRegisteringAllApps).then(offlineEnabled ? setupOfflineCssClasses : undefined).then(offlineEnabled ? registerOfflineHandlers : undefined).then(provideConfigs).then(runShell).catch(handleInitFailure).then(closeLoading).then(offlineEnabled ? setupOffline : undefined).then(function() {\n // intentionally not returned so that processing the \"started\" event doesn't block\n (0,_openmrs_esm_framework_src_internal__WEBPACK_IMPORTED_MODULE_1__.fireOpenmrsEvent)('started');\n });\n });\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNqRSxJQUFJLENBQUM7UUFDdERyRSx5RkFBb0JBO1FBQ3BCK0k7UUFDQUc7UUFDQUw7UUFDQUM7UUFDQUc7UUFDQUQ7UUFDQXJILCtGQUEwQkEsQ0FBQ0wsaUZBQWdCQTtRQUMzQ0cseUdBQW9DQSxDQUFDSiwyRkFBMEJBO1FBQy9EUyx3RkFBbUJBLENBQUNOLDBFQUFTQTtRQUM3QkssMkZBQXNCQSxDQUFDTiw2RUFBWUE7UUFDbkNLLHdHQUFtQ0EsQ0FBQzBJO1FBQ3BDcEosbUZBQWNBO1FBQ2RDLGlGQUFZQTtRQUNaaUk7UUFDQWpILDZEQUFlQTtRQUVmLE9BQU9HLFlBQ0orQixJQUFJLENBQUN6RSx5RkFBd0JBLEVBQzdCeUUsSUFBSSxDQUFDeUIsaUJBQWlCdUYseUJBQXlCakksV0FDL0NpQixJQUFJLENBQUN5QixpQkFBaUJxRiwwQkFBMEIvSCxXQUNoRGlCLElBQUksQ0FBQ3NILGdCQUNMdEgsSUFBSSxDQUFDaUMsVUFDTDlCLEtBQUssQ0FBQ2tDLG1CQUNOckMsSUFBSSxDQUFDcUgsY0FDTHJILElBQUksQ0FBQ3lCLGlCQUFpQnlELGVBQWVuRyxXQUNyQ2lCLElBQUksQ0FBQztZQUNKLGtGQUFrRjtZQUNsRnhFLHFGQUFnQkEsQ0FBQztRQUNuQjtJQUNKO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4vc3JjL3J1bi50cz9iYzI2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0YXJ0LCB0cmlnZ2VyQXBwQ2hhbmdlIH0gZnJvbSAnc2luZ2xlLXNwYSc7XG5pbXBvcnQgeyB0eXBlIENhbGVuZGFySWRlbnRpZmllciB9IGZyb20gJ0BpbnRlcm5hdGlvbmFsaXplZC9kYXRlJztcbmltcG9ydCB7XG4gIGFjdGl2YXRlT2ZmbGluZUNhcGFiaWxpdHksXG4gIGNhbkFjY2Vzc1N0b3JhZ2UsXG4gIGRpc3BhdGNoQ29ubmVjdGl2aXR5Q2hhbmdlZCxcbiAgZGlzcGF0Y2hQcmVjYWNoZVN0YXRpY0RlcGVuZGVuY2llcyxcbiAgdHlwZSBFeHRlbnNpb25EZWZpbml0aW9uLFxuICBmaW5pc2hSZWdpc3RlcmluZ0FsbEFwcHMsXG4gIGZpcmVPcGVubXJzRXZlbnQsXG4gIGdldENvbmZpZyxcbiAgZ2V0Q3VycmVudFVzZXIsXG4gIGludGVncmF0ZUJyZWFrcG9pbnRzLFxuICBpbnRlcnBvbGF0ZVVybCxcbiAgaXNPcGVubXJzQXBwUm91dGVzLFxuICBpc09wZW5tcnNSb3V0ZXMsXG4gIGxvY2FsU3RvcmFnZVJvdXRlc1ByZWZpeCxcbiAgbWVzc2FnZU9tcnNTZXJ2aWNlV29ya2VyLFxuICBvcGVubXJzRmV0Y2gsXG4gIHByb3ZpZGUsXG4gIHJlZ2lzdGVyQXBwLFxuICByZWdpc3RlckRlZmF1bHRDYWxlbmRhcixcbiAgcmVnaXN0ZXJPbXJzU2VydmljZVdvcmtlcixcbiAgcmVuZGVyQWN0aW9uYWJsZU5vdGlmaWNhdGlvbnMsXG4gIHJlbmRlcklubGluZU5vdGlmaWNhdGlvbnMsXG4gIHJlbmRlckxvYWRpbmdTcGlubmVyLFxuICByZW5kZXJTbmFja2JhcnMsXG4gIHJlbmRlclRvYXN0cyxcbiAgcmVuZGVyV29ya3NwYWNlV2luZG93c0FuZE1lbnUsXG4gIHJlc3RCYXNlVXJsLFxuICBzZXR1cEFwaU1vZHVsZSxcbiAgc2V0dXBIaXN0b3J5LFxuICBzZXR1cE1vZGFscyxcbiAgc2hvd0FjdGlvbmFibGVOb3RpZmljYXRpb24sXG4gIHNob3dOb3RpZmljYXRpb24sXG4gIHNob3dTbmFja2JhcixcbiAgc2hvd1RvYXN0LFxuICBzdWJzY3JpYmVBY3Rpb25hYmxlTm90aWZpY2F0aW9uU2hvd24sXG4gIHN1YnNjcmliZUNvbm5lY3Rpdml0eSxcbiAgc3Vic2NyaWJlTm90aWZpY2F0aW9uU2hvd24sXG4gIHN1YnNjcmliZVByZWNhY2hlU3RhdGljRGVwZW5kZW5jaWVzLFxuICBzdWJzY3JpYmVTbmFja2JhclNob3duLFxuICBzdWJzY3JpYmVUb2FzdFNob3duLFxuICB0cnlSZWdpc3RlckV4dGVuc2lvbixcbiAgdHlwZSBDb25maWcsXG4gIHR5cGUgT3Blbm1yc0FwcFJvdXRlcyxcbiAgdHlwZSBPcGVubXJzUm91dGVzLFxuICB0eXBlIFN0eWxlZ3VpZGVDb25maWdPYmplY3QsXG59IGZyb20gJ0BvcGVubXJzL2VzbS1mcmFtZXdvcmsvc3JjL2ludGVybmFsJztcbmltcG9ydCB7IHNldHVwSTE4biB9IGZyb20gJy4vbG9jYWxlJztcbmltcG9ydCAnLi9yb3V0aW5nLWV2ZW50cyc7XG5pbXBvcnQgJy4vZXZlbnRzJztcbmltcG9ydCB7IGFwcE5hbWUsIGdldENvcmVFeHRlbnNpb25zIH0gZnJvbSAnLi91aSc7XG5pbXBvcnQgeyBzZXR1cENvcmVDb25maWcgfSBmcm9tICcuL2NvcmUtY29uZmlnJztcblxuLy8gQGludGVybmFsXG4vLyB1c2VkIHRvIHRyYWNrIHdoZW4gdGhlIHdpbmRvdy5pbnN0YWxsZWRNb2R1bGVzIGdsb2JhbCBpcyBmaW5hbGlzZWRcbi8vIHNvIHdlIGNhbiBwcmUtbG9hZCBhbGwgbW9kdWxlc1xuY29uc3QgUkVHSVNUUkFUSU9OX1BST01JU0VTID0gU3ltYm9sKCdvcGVubXJzX3JlZ2lzdHJhdGlvbl9wcm9taXNlcycpO1xuXG4vKipcbiAqIFNldHMgdXAgdGhlIGZyb250ZW5kIG1vZHVsZXMgKGFwcHMpLiBVc2VzIHRoZSBkZWZpbmVkIGV4cG9ydFxuICogZnJvbSB0aGUgcm9vdCBtb2R1bGVzIG9mIHRoZSBhcHBzLiBUaGlzIGlzIGRvbmUgYnkgcmVhZGluZyB0aGVcbiAqIGxpc3Qgb2YgYXBwcyBmcm9tIHRoZSByb3V0ZXMucmVnaXN0cnkuanNvbiBmaWxlLCB3aGljaCBzZXJ2ZXNcbiAqIGFzIHRoZSByZWdpc3RyeSBvZiBhbGwgYXBwcyBpbiB0aGUgYXBwbGljYXRpb24uXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHNldHVwQXBwcygpIHtcbiAgY29uc3Qgc2NyaXB0VGFncyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTFNjcmlwdEVsZW1lbnQ+KFwic2NyaXB0W3R5cGU9J29wZW5tcnMtcm91dGVzJ11cIik7XG5cbiAgY29uc3QgcHJvbWlzZXM6IEFycmF5PFByb21pc2U8T3Blbm1yc1JvdXRlcz4+ID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2NyaXB0VGFncy5sZW5ndGg7IGkrKykge1xuICAgIHByb21pc2VzLnB1c2goXG4gICAgICAoYXN5bmMgKHNjcmlwdFRhZykgPT4ge1xuICAgICAgICBsZXQgcm91dGVzOiBPcGVubXJzUm91dGVzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmIChzY3JpcHRUYWcudGV4dENvbnRlbnQpIHtcbiAgICAgICAgICAgIHJvdXRlcyA9IEpTT04ucGFyc2Uoc2NyaXB0VGFnLnRleHRDb250ZW50KSBhcyBPcGVubXJzUm91dGVzO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc2NyaXB0VGFnLnNyYykge1xuICAgICAgICAgICAgcm91dGVzID0gKGF3YWl0IG9wZW5tcnNGZXRjaDxPcGVubXJzUm91dGVzPihzY3JpcHRUYWcuc3JjKSkuZGF0YTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBDYXVnaHQgZXJyb3Igd2hpbGUgbG9hZGluZyByb3V0ZXMgZnJvbSAke3NjcmlwdFRhZy5zcmMgPz8gJ0pTT04gc2NyaXB0IHRhZyBjb250ZW50J31gLCBlKTtcblxuICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocm91dGVzID8/IHt9KTtcbiAgICAgIH0pKHNjcmlwdFRhZ3MuaXRlbShpKSksXG4gICAgKTtcbiAgfVxuXG4gIGlmIChjYW5BY2Nlc3NTdG9yYWdlKCkpIHtcbiAgICAvLyBsb2FkIHJvdXRlcyBvdmVycmlkZXMgZnJvbSBsb2NhbFN0b3JhZ2UgaWYgYW55XG4gICAgY29uc3QgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxvY2FsU3RvcmFnZS5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3Qga2V5ID0gbG9jYWxTdG9yYWdlLmtleShpKTtcbiAgICAgIGlmIChrZXk/LnN0YXJ0c1dpdGgobG9jYWxTdG9yYWdlUm91dGVzUHJlZml4KSkge1xuICAgICAgICBjb25zdCBsb2NhbE92ZXJyaWRlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICAgICAgaWYgKGxvY2FsT3ZlcnJpZGUpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbWF5YmVPcGVubXJzUm91dGVzID0gSlNPTi5wYXJzZShsb2NhbE92ZXJyaWRlKTtcbiAgICAgICAgICAgIGlmIChpc09wZW5tcnNBcHBSb3V0ZXMobWF5YmVPcGVubXJzUm91dGVzKSkge1xuICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZTxPcGVubXJzUm91dGVzPih7XG4gICAgICAgICAgICAgICAgICBba2V5LnNsaWNlKGxvY2FsU3RvcmFnZVJvdXRlc1ByZWZpeC5sZW5ndGgpXTogbWF5YmVPcGVubXJzUm91dGVzLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbWF5YmVPcGVubXJzUm91dGVzID09PSAnc3RyaW5nJyAmJiBtYXliZU9wZW5tcnNSb3V0ZXMuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICAgIHByb21pc2VzLnB1c2goXG4gICAgICAgICAgICAgICAgb3Blbm1yc0ZldGNoPE9wZW5tcnNBcHBSb3V0ZXM+KG1heWJlT3Blbm1yc1JvdXRlcylcbiAgICAgICAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPcGVubXJzQXBwUm91dGVzKHJlc3BvbnNlLmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBba2V5LnNsaWNlKGxvY2FsU3RvcmFnZVJvdXRlc1ByZWZpeC5sZW5ndGgpXTogcmVzcG9uc2UuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgICAgICAgICAgICAgICBgJHttYXliZU9wZW5tcnNSb3V0ZXN9IGRpZCBub3QgcmVzb2x2ZSB0byBhIHZhbGlkIE9wZW5tcnNBcHBSb3V0ZXMgSlNPTiBvYmplY3RgLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIC5jYXRjaCgocmVhc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIGZldGNoIHJvdXRlIG92ZXJyaWRlcyBmb3IgJHtrZXkuc2xpY2UobG9jYWxTdG9yYWdlUm91dGVzUHJlZml4Lmxlbmd0aCl9YCxcbiAgICAgICAgICAgICAgICAgICAgICByZWFzb24sXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gc3RpbGwgZmFpbCB0aGUgcHJvbWlzZVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZWFzb247XG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICBgUm91dGUgb3ZlcnJpZGUgZm9yICR7a2V5LnNsaWNlKFxuICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlUm91dGVzUHJlZml4Lmxlbmd0aCxcbiAgICAgICAgICAgICAgICApfSBjb3VsZCBub3QgYmUgaGFuZGxlZCBhcyBpdCB3YXMgbmVpdGhlciBhIEpTT04gb2JqZWN0IG5vciBhIFVSTCBzdHJpbmdgLFxuICAgICAgICAgICAgICAgIGxvY2FsT3ZlcnJpZGUsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgcGFyc2luZyBsb2NhbCByb3V0ZSBvdmVycmlkZSBmb3IgJHtrZXl9YCwgZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgcm91dGVzOiBPcGVubXJzUm91dGVzID0gKGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChwcm9taXNlcykpXG4gICAgLmZpbHRlcigocCkgPT4gcC5zdGF0dXMgPT09ICdmdWxmaWxsZWQnKVxuICAgIC5tYXAoKHApID0+IChwIGFzIFByb21pc2VGdWxmaWxsZWRSZXN1bHQ8T3Blbm1yc1JvdXRlcz4pLnZhbHVlKVxuICAgIC5maWx0ZXIoaXNPcGVubXJzUm91dGVzKVxuICAgIC5yZWR1Y2UoXG4gICAgICAoYWNjdW11bGF0ZWRSb3V0ZXMsIHJvdXRlcykgPT4gKHtcbiAgICAgICAgLi4uYWNjdW11bGF0ZWRSb3V0ZXMsXG4gICAgICAgIC4uLnJvdXRlcyxcbiAgICAgIH0pLFxuICAgICAge30sXG4gICAgKTtcblxuICBjb25zdCBtb2R1bGVzOiB0eXBlb2Ygd2luZG93Lmluc3RhbGxlZE1vZHVsZXMgPSBbXTtcbiAgY29uc3QgcmVnaXN0cmF0aW9uUHJvbWlzZXMgPSBPYmplY3QuZW50cmllcyhyb3V0ZXMpLm1hcChhc3luYyAoW21vZHVsZSwgcm91dGVzXSkgPT4ge1xuICAgIG1vZHVsZXMucHVzaChbbW9kdWxlLCByb3V0ZXNdKTtcbiAgICByZWdpc3RlckFwcChtb2R1bGUsIHJvdXRlcyk7XG4gIH0pO1xuXG4gIHdpbmRvd1tSRUdJU1RSQVRJT05fUFJPTUlTRVNdID0gUHJvbWlzZS5hbGwocmVnaXN0cmF0aW9uUHJvbWlzZXMpO1xuICB3aW5kb3cuaW5zdGFsbGVkTW9kdWxlcyA9IG1vZHVsZXM7XG59XG5cbi8qKlxuICogTG9hZHMgdGhlIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb25zIGFuZCBzZXRzIHRoZW0gaW4gdGhlIHN5c3RlbS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gbG9hZENvbmZpZ3MoY29uZmlnczogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBDb25maWcgfT4pIHtcbiAgZm9yIChjb25zdCBjb25maWcgb2YgY29uZmlncykge1xuICAgIHByb3ZpZGUoY29uZmlnLnZhbHVlLCBjb25maWcubmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbnZva2VkIHdoZW4gdGhlIGNvbm5lY3Rpdml0eSBpcyBjaGFuZ2VkLlxuICovXG5mdW5jdGlvbiBjb25uZWN0aXZpdHlDaGFuZ2VkKCkge1xuICBpZiAoIXdpbmRvdy5vZmZsaW5lRW5hYmxlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG9ubGluZSA9IG5hdmlnYXRvci5vbkxpbmU7XG4gIC8vIE5CIFdlIGRvIG5vdCB3YWl0IGZvciB0aGlzIHRvIGJlIGRvbmU7IGl0IGlzIHNpbXBseSBzY2hlZHVsZWRcbiAgdHJpZ2dlckFwcENoYW5nZSgpO1xuXG4gIGRpc3BhdGNoQ29ubmVjdGl2aXR5Q2hhbmdlZChvbmxpbmUpO1xuICBzaG93VG9hc3Qoe1xuICAgIGNyaXRpY2FsOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOiBgQ29ubmVjdGlvbjogJHtvbmxpbmUgPyAnb25saW5lJyA6ICdvZmZsaW5lJ31gLFxuICAgIHRpdGxlOiAnQXBwJyxcbiAgICBraW5kOiBvbmxpbmUgPyAnc3VjY2VzcycgOiAnd2FybmluZycsXG4gIH0pO1xufVxuXG4vKipcbiAqIFJ1bnMgdGhlIHNoZWxsIGJ5IGltcG9ydGluZyB0aGUgdHJhbnNsYXRpb25zIGFuZCBzdGFydGluZyBzaW5nbGUgU1BBLlxuICovXG5hc3luYyBmdW5jdGlvbiBydW5TaGVsbCgpIHtcbiAgcmV0dXJuIHNldHVwSTE4bigpXG4gICAgLmNhdGNoKChlcnIpID0+IGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBpbml0aWFsaXplIHRyYW5zbGF0aW9uc2AsIGVycikpXG4gICAgLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgeyBwcmVmZXJyZWRDYWxlbmRhciB9ID0gYXdhaXQgZ2V0Q29uZmlnPFN0eWxlZ3VpZGVDb25maWdPYmplY3Q+KCdAb3Blbm1ycy9lc20tc3R5bGVndWlkZScpO1xuXG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIE9iamVjdC5lbnRyaWVzKHByZWZlcnJlZENhbGVuZGFyKSkge1xuICAgICAgICByZWdpc3RlckRlZmF1bHRDYWxlbmRhcihlbnRyeVswXSwgZW50cnlbMV0gYXMgQ2FsZW5kYXJJZGVudGlmaWVyKTtcbiAgICAgIH1cbiAgICB9KVxuICAgIC50aGVuKCgpID0+IHN0YXJ0KCkpO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVJbml0RmFpbHVyZShlOiBFcnJvcikge1xuICBjb25zb2xlLmVycm9yKGUpO1xuICByZW5kZXJGYXRhbEVycm9yUGFnZShlKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyRmF0YWxFcnJvclBhZ2UoZT86IEVycm9yKSB7XG4gIGNvbnN0IHRlbXBsYXRlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MVGVtcGxhdGVFbGVtZW50PignI2FwcC1lcnJvcicpO1xuXG4gIGlmICh0ZW1wbGF0ZSkge1xuICAgIGNvbnN0IGZyYWdtZW50ID0gdGVtcGxhdGUuY29udGVudC5jbG9uZU5vZGUodHJ1ZSkgYXMgRG9jdW1lbnRGcmFnbWVudDtcbiAgICBjb25zdCBtZXNzYWdlQ29udGFpbmVyID0gZnJhZ21lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdmFyPVwibWVzc2FnZVwiXScpO1xuXG4gICAgaWYgKG1lc3NhZ2VDb250YWluZXIpIHtcbiAgICAgIG1lc3NhZ2VDb250YWluZXIudGV4dENvbnRlbnQgPSBlPy5tZXNzYWdlIHx8ICdObyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGF2YWlsYWJsZS4nO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdvcGVubXJzOmRldnRvb2xzJykgJiZcbiAgICAgIE9iamVjdC5rZXlzKGxvY2FsU3RvcmFnZSkuc29tZSgoaykgPT4gay5zdGFydHNXaXRoKCdpbXBvcnQtbWFwLW92ZXJyaWRlOicpKVxuICAgICkge1xuICAgICAgY29uc3QgYXBwRXJyb3JBY3Rpb25CdXR0b25zID0gZnJhZ21lbnQ/LnF1ZXJ5U2VsZWN0b3IoJyNidXR0b25zJyk7XG4gICAgICBpZiAoYXBwRXJyb3JBY3Rpb25CdXR0b25zKSB7XG4gICAgICAgIGNvbnN0IGNsZWFyRGV2T3ZlcnJpZGVzQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG4gICAgICAgIGNsZWFyRGV2T3ZlcnJpZGVzQnV0dG9uLmNsYXNzTmFtZSA9ICdjZHMtLWJ0bic7XG4gICAgICAgIGNsZWFyRGV2T3ZlcnJpZGVzQnV0dG9uLmlubmVySFRNTCA9ICdDbGVhciBkZXYgb3ZlcnJpZGVzJztcbiAgICAgICAgY2xlYXJEZXZPdmVycmlkZXNCdXR0b24ub25jbGljayA9IGNsZWFyRGV2T3ZlcnJpZGVzO1xuICAgICAgICBhcHBFcnJvckFjdGlvbkJ1dHRvbnMuYXBwZW5kQ2hpbGQoY2xlYXJEZXZPdmVycmlkZXNCdXR0b24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNsZWFyRGV2T3ZlcnJpZGVzKCkge1xuICBjb25zdCBrZXlzVG9SZW1vdmUgPSBPYmplY3Qua2V5cyhsb2NhbFN0b3JhZ2UpLmZpbHRlcihcbiAgICAoa2V5KSA9PlxuICAgICAga2V5LnN0YXJ0c1dpdGgoJ2ltcG9ydC1tYXAtb3ZlcnJpZGU6JykgJiZcbiAgICAgICFbJ2ltcG9ydC1tYXAtb3ZlcnJpZGU6cmVhY3QnLCAnaW1wb3J0LW1hcC1vdmVycmlkZTpyZWFjdC1kb20nXS5pbmNsdWRlcyhrZXkpLFxuICApO1xuICBrZXlzVG9SZW1vdmUuZm9yRWFjaCgoa2V5KSA9PiBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpKTtcbiAgbG9jYXRpb24ucmVsb2FkKCk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbmZpZ0xvYWRlcihjb25maWdVcmxzOiBBcnJheTxzdHJpbmc+KSB7XG4gIGNvbnN0IGxvYWRpbmdDb25maWdzID0gUHJvbWlzZS5hbGwoXG4gICAgY29uZmlnVXJscy5tYXAoKGNvbmZpZ1VybCkgPT4ge1xuICAgICAgY29uc3QgaW50ZXJwb2xhdGVkVXJsID0gaW50ZXJwb2xhdGVVcmwoY29uZmlnVXJsKTtcbiAgICAgIHJldHVybiBmZXRjaChpbnRlcnBvbGF0ZWRVcmwpXG4gICAgICAgIC50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG4gICAgICAgIC50aGVuKChjb25maWcpID0+ICh7XG4gICAgICAgICAgbmFtZTogY29uZmlnVXJsLFxuICAgICAgICAgIHZhbHVlOiBjb25maWcsXG4gICAgICAgIH0pKVxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYExvYWRpbmcgdGhlIGNvbmZpZyBmcm9tIFwiJHtjb25maWdVcmx9XCIgZmFpbGVkLmAsIGVycik7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IGNvbmZpZ1VybCxcbiAgICAgICAgICAgIHZhbHVlOiB7fSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9KSxcbiAgKTtcbiAgcmV0dXJuICgpID0+IGxvYWRpbmdDb25maWdzLnRoZW4obG9hZENvbmZpZ3MpO1xufVxuXG5mdW5jdGlvbiBzaG93Tm90aWZpY2F0aW9ucygpIHtcbiAgcmVuZGVySW5saW5lTm90aWZpY2F0aW9ucyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcub21ycy1pbmxpbmUtbm90aWZpY2F0aW9ucy1jb250YWluZXInKSk7XG4gIHJldHVybjtcbn1cblxuZnVuY3Rpb24gc2hvd0FjdGlvbmFibGVOb3RpZmljYXRpb25zKCkge1xuICByZW5kZXJBY3Rpb25hYmxlTm90aWZpY2F0aW9ucyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcub21ycy1hY3Rpb25hYmxlLW5vdGlmaWNhdGlvbnMtY29udGFpbmVyJykpO1xufVxuXG5mdW5jdGlvbiBzaG93VG9hc3RzKCkge1xuICByZW5kZXJUb2FzdHMoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm9tcnMtdG9hc3RzLWNvbnRhaW5lcicpKTtcbn1cblxuZnVuY3Rpb24gc2hvd1dvcmtzcGFjZXNBbmRBY3Rpb25NZW51KCkge1xuICByZW5kZXJXb3Jrc3BhY2VXaW5kb3dzQW5kTWVudShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjb21ycy13b3Jrc3BhY2VzLWNvbnRhaW5lcicpKTtcbn1cblxuZnVuY3Rpb24gc2hvd1NuYWNrYmFycygpIHtcbiAgcmVuZGVyU25hY2tiYXJzKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vbXJzLXNuYWNrYmFycy1jb250YWluZXInKSk7XG59XG5cbmZ1bmN0aW9uIHNob3dNb2RhbHMoKSB7XG4gIHNldHVwTW9kYWxzKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vbXJzLW1vZGFscy1jb250YWluZXInKSk7XG59XG5cbmZ1bmN0aW9uIHNob3dMb2FkaW5nU3Bpbm5lcigpIHtcbiAgcmV0dXJuIHJlbmRlckxvYWRpbmdTcGlubmVyKGRvY3VtZW50LmJvZHkpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGUgZXh0ZW5zaW9ucyBjb21pbmcgZnJvbSB0aGUgYXBwIHNoZWxsIGl0c2VsZi5cbiAqL1xuZnVuY3Rpb24gcmVnaXN0ZXJDb3JlRXh0ZW5zaW9ucygpIHtcbiAgY29uc3QgZXh0ZW5zaW9ucyA9IGdldENvcmVFeHRlbnNpb25zKCk7XG4gIGZvciAoY29uc3QgZXh0ZW5zaW9uIG9mIGV4dGVuc2lvbnMpIHtcbiAgICAvLyBGSVhNRSBUaGlzIFwiY29yZSBleHRlbnNpb25zXCIgY29uY2VwdCBzaG91bGQgbGlrZWx5IGJlIHJldGlyZWRcbiAgICB0cnlSZWdpc3RlckV4dGVuc2lvbihhcHBOYW1lLCBleHRlbnNpb24gYXMgdW5rbm93biBhcyBFeHRlbnNpb25EZWZpbml0aW9uKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBzZXR1cE9mZmxpbmUoKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgcmVnaXN0ZXJPbXJzU2VydmljZVdvcmtlcihgJHt3aW5kb3cuZ2V0T3Blbm1yc1NwYUJhc2UoKX1zZXJ2aWNlLXdvcmtlci5qc2ApO1xuICAgIGF3YWl0IGFjdGl2YXRlT2ZmbGluZUNhcGFiaWxpdHkoKTtcbiAgICBzZXR1cE9mZmxpbmVTdGF0aWNEZXBlbmRlbmN5UHJlY2FjaGluZygpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHdoaWxlIHNldHRpbmcgdXAgb2ZmbGluZSBtb2RlLicsIGVycm9yKTtcbiAgICBzaG93Tm90aWZpY2F0aW9uKHtcbiAgICAgIGtpbmQ6ICdlcnJvcicsXG4gICAgICB0aXRsZTogJ09mZmxpbmUgU2V0dXAgRXJyb3InLFxuICAgICAgZGVzY3JpcHRpb246IGVycm9yLm1lc3NhZ2UsXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0dXBPZmZsaW5lU3RhdGljRGVwZW5kZW5jeVByZWNhY2hpbmcoKSB7XG4gIGNvbnN0IHByZWNhY2hlRGVsYXkgPSAxMDAwICogNjAgKiA1O1xuICBsZXQgbGFzdFByZWNhY2hlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgc3Vic2NyaWJlT25saW5lQW5kTG9naW5DaGFuZ2UoKG9ubGluZSwgaGFzTG9nZ2VkSW5Vc2VyKSA9PiB7XG4gICAgY29uc3QgaGFzRXhjZWVkZWRQcmVjYWNoZURlbGF5ID0gIWxhc3RQcmVjYWNoZSB8fCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIGxhc3RQcmVjYWNoZS5nZXRUaW1lKCkgPiBwcmVjYWNoZURlbGF5O1xuXG4gICAgaWYgKGhhc0xvZ2dlZEluVXNlciAmJiBvbmxpbmUgJiYgaGFzRXhjZWVkZWRQcmVjYWNoZURlbGF5KSB7XG4gICAgICBsYXN0UHJlY2FjaGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgZGlzcGF0Y2hQcmVjYWNoZVN0YXRpY0RlcGVuZGVuY2llcygpO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHN1YnNjcmliZU9ubGluZUFuZExvZ2luQ2hhbmdlKGNiOiAob25saW5lOiBib29sZWFuLCBoYXNMb2dnZWRJblVzZXI6IGJvb2xlYW4pID0+IHZvaWQpIHtcbiAgbGV0IGlzT25saW5lID0gZmFsc2U7XG4gIGxldCBoYXNMb2dnZWRJblVzZXIgPSBmYWxzZTtcblxuICBnZXRDdXJyZW50VXNlcih7IGluY2x1ZGVBdXRoU3RhdHVzOiBmYWxzZSB9KS5zdWJzY3JpYmUoKHVzZXIpID0+IHtcbiAgICBoYXNMb2dnZWRJblVzZXIgPSAhIXVzZXI7XG4gICAgY2IoaXNPbmxpbmUsIGhhc0xvZ2dlZEluVXNlcik7XG4gIH0pO1xuXG4gIHN1YnNjcmliZUNvbm5lY3Rpdml0eSgoeyBvbmxpbmUgfSkgPT4ge1xuICAgIGlzT25saW5lID0gb25saW5lO1xuICAgIGNiKG9ubGluZSwgaGFzTG9nZ2VkSW5Vc2VyKTtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHByZWNhY2hlR2xvYmFsU3RhdGljRGVwZW5kZW5jaWVzKCkge1xuICBhd2FpdCBwcmVjYWNoZUltcG9ydE1hcCgpO1xuXG4gIC8vIEJ5IGRlZmF1bHQsIGNhY2hlIHRoZSBzZXNzaW9uIGVuZHBvaW50LlxuICAvLyBUaGlzIGVuc3VyZXMgdGhhdCBhIGxvdCBvZiB1c2VyL3Nlc3Npb24gcmVsYXRlZCBmdW5jdGlvbnMgYWxzbyB3b3JrIG9mZmxpbmUuXG4gIGNvbnN0IHNlc3Npb25QYXRoVXJsID0gbmV3IFVSTChgJHt3aW5kb3cub3Blbm1yc0Jhc2V9JHtyZXN0QmFzZVVybH0vc2Vzc2lvbmAsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pLmhyZWY7XG5cbiAgYXdhaXQgbWVzc2FnZU9tcnNTZXJ2aWNlV29ya2VyKHtcbiAgICB0eXBlOiAncmVnaXN0ZXJEeW5hbWljUm91dGUnLFxuICAgIHVybDogc2Vzc2lvblBhdGhVcmwsXG4gICAgc3RyYXRlZ3k6ICduZXR3b3JrLWZpcnN0JyxcbiAgfSk7XG5cbiAgYXdhaXQgb3Blbm1yc0ZldGNoKGAke3Jlc3RCYXNlVXJsfS9zZXNzaW9uYCkuY2F0Y2goKGUpID0+XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgJ0ZhaWxlZCB0byBwcmVjYWNoZSB0aGUgdXNlciBzZXNzaW9uIGRhdGEgZnJvbSB0aGUgYXBwIHNoZWxsLiBNRnMgZGVwZW5kaW5nIG9uIHRoaXMgZGF0YSBtYXkgcnVuIGludG8gcHJvYmxlbXMgd2hpbGUgb2ZmbGluZS4nLFxuICAgICAgZSxcbiAgICApLFxuICApO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwcmVjYWNoZUltcG9ydE1hcCgpIHtcbiAgY29uc3QgaW1wb3J0TWFwID0gYXdhaXQgd2luZG93LmltcG9ydE1hcE92ZXJyaWRlcy5nZXRDdXJyZW50UGFnZU1hcCgpO1xuICBhd2FpdCBtZXNzYWdlT21yc1NlcnZpY2VXb3JrZXIoe1xuICAgIHR5cGU6ICdvbkltcG9ydE1hcENoYW5nZWQnLFxuICAgIGltcG9ydE1hcCxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyT2ZmbGluZUhhbmRsZXJzKCkge1xuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb2ZmbGluZScsIGNvbm5lY3Rpdml0eUNoYW5nZWQpO1xuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb25saW5lJywgY29ubmVjdGl2aXR5Q2hhbmdlZCk7XG59XG5cbmZ1bmN0aW9uIHNldHVwT2ZmbGluZUNzc0NsYXNzZXMoKSB7XG4gIHN1YnNjcmliZUNvbm5lY3Rpdml0eSgoeyBvbmxpbmUgfSkgPT4ge1xuICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykhO1xuICAgIGlmIChvbmxpbmUpIHtcbiAgICAgIGJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnb21ycy1vZmZsaW5lJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJvZHkuY2xhc3NMaXN0LmFkZCgnb21ycy1vZmZsaW5lJyk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihjb25maWdVcmxzOiBBcnJheTxzdHJpbmc+KSB7XG4gIGNvbnN0IG9mZmxpbmVFbmFibGVkID0gd2luZG93Lm9mZmxpbmVFbmFibGVkO1xuICBjb25zdCBjbG9zZUxvYWRpbmcgPSBzaG93TG9hZGluZ1NwaW5uZXIoKTtcbiAgY29uc3QgcHJvdmlkZUNvbmZpZ3MgPSBjcmVhdGVDb25maWdMb2FkZXIoY29uZmlnVXJscyk7XG5cbiAgcmV0dXJuIGltcG9ydCgnQG9wZW5tcnMvZXNtLXN0eWxlZ3VpZGUvc3JjL2luZGV4JykudGhlbigoKSA9PiB7XG4gICAgaW50ZWdyYXRlQnJlYWtwb2ludHMoKTtcbiAgICBzaG93VG9hc3RzKCk7XG4gICAgc2hvd01vZGFscygpO1xuICAgIHNob3dOb3RpZmljYXRpb25zKCk7XG4gICAgc2hvd0FjdGlvbmFibGVOb3RpZmljYXRpb25zKCk7XG4gICAgc2hvd1NuYWNrYmFycygpO1xuICAgIHNob3dXb3Jrc3BhY2VzQW5kQWN0aW9uTWVudSgpO1xuICAgIHN1YnNjcmliZU5vdGlmaWNhdGlvblNob3duKHNob3dOb3RpZmljYXRpb24pO1xuICAgIHN1YnNjcmliZUFjdGlvbmFibGVOb3RpZmljYXRpb25TaG93bihzaG93QWN0aW9uYWJsZU5vdGlmaWNhdGlvbik7XG4gICAgc3Vic2NyaWJlVG9hc3RTaG93bihzaG93VG9hc3QpO1xuICAgIHN1YnNjcmliZVNuYWNrYmFyU2hvd24oc2hvd1NuYWNrYmFyKTtcbiAgICBzdWJzY3JpYmVQcmVjYWNoZVN0YXRpY0RlcGVuZGVuY2llcyhwcmVjYWNoZUdsb2JhbFN0YXRpY0RlcGVuZGVuY2llcyk7XG4gICAgc2V0dXBBcGlNb2R1bGUoKTtcbiAgICBzZXR1cEhpc3RvcnkoKTtcbiAgICByZWdpc3RlckNvcmVFeHRlbnNpb25zKCk7XG4gICAgc2V0dXBDb3JlQ29uZmlnKCk7XG5cbiAgICByZXR1cm4gc2V0dXBBcHBzKClcbiAgICAgIC50aGVuKGZpbmlzaFJlZ2lzdGVyaW5nQWxsQXBwcylcbiAgICAgIC50aGVuKG9mZmxpbmVFbmFibGVkID8gc2V0dXBPZmZsaW5lQ3NzQ2xhc3NlcyA6IHVuZGVmaW5lZClcbiAgICAgIC50aGVuKG9mZmxpbmVFbmFibGVkID8gcmVnaXN0ZXJPZmZsaW5lSGFuZGxlcnMgOiB1bmRlZmluZWQpXG4gICAgICAudGhlbihwcm92aWRlQ29uZmlncylcbiAgICAgIC50aGVuKHJ1blNoZWxsKVxuICAgICAgLmNhdGNoKGhhbmRsZUluaXRGYWlsdXJlKVxuICAgICAgLnRoZW4oY2xvc2VMb2FkaW5nKVxuICAgICAgLnRoZW4ob2ZmbGluZUVuYWJsZWQgPyBzZXR1cE9mZmxpbmUgOiB1bmRlZmluZWQpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIC8vIGludGVudGlvbmFsbHkgbm90IHJldHVybmVkIHNvIHRoYXQgcHJvY2Vzc2luZyB0aGUgXCJzdGFydGVkXCIgZXZlbnQgZG9lc24ndCBibG9ja1xuICAgICAgICBmaXJlT3Blbm1yc0V2ZW50KCdzdGFydGVkJyk7XG4gICAgICB9KTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsic3RhcnQiLCJ0cmlnZ2VyQXBwQ2hhbmdlIiwiYWN0aXZhdGVPZmZsaW5lQ2FwYWJpbGl0eSIsImNhbkFjY2Vzc1N0b3JhZ2UiLCJkaXNwYXRjaENvbm5lY3Rpdml0eUNoYW5nZWQiLCJkaXNwYXRjaFByZWNhY2hlU3RhdGljRGVwZW5kZW5jaWVzIiwiZmluaXNoUmVnaXN0ZXJpbmdBbGxBcHBzIiwiZmlyZU9wZW5tcnNFdmVudCIsImdldENvbmZpZyIsImdldEN1cnJlbnRVc2VyIiwiaW50ZWdyYXRlQnJlYWtwb2ludHMiLCJpbnRlcnBvbGF0ZVVybCIsImlzT3Blbm1yc0FwcFJvdXRlcyIsImlzT3Blbm1yc1JvdXRlcyIsImxvY2FsU3RvcmFnZVJvdXRlc1ByZWZpeCIsIm1lc3NhZ2VPbXJzU2VydmljZVdvcmtlciIsIm9wZW5tcnNGZXRjaCIsInByb3ZpZGUiLCJyZWdpc3RlckFwcCIsInJlZ2lzdGVyRGVmYXVsdENhbGVuZGFyIiwicmVnaXN0ZXJPbXJzU2VydmljZVdvcmtlciIsInJlbmRlckFjdGlvbmFibGVOb3RpZmljYXRpb25zIiwicmVuZGVySW5saW5lTm90aWZpY2F0aW9ucyIsInJlbmRlckxvYWRpbmdTcGlubmVyIiwicmVuZGVyU25hY2tiYXJzIiwicmVuZGVyVG9hc3RzIiwicmVuZGVyV29ya3NwYWNlV2luZG93c0FuZE1lbnUiLCJyZXN0QmFzZVVybCIsInNldHVwQXBpTW9kdWxlIiwic2V0dXBIaXN0b3J5Iiwic2V0dXBNb2RhbHMiLCJzaG93QWN0aW9uYWJsZU5vdGlmaWNhdGlvbiIsInNob3dOb3RpZmljYXRpb24iLCJzaG93U25hY2tiYXIiLCJzaG93VG9hc3QiLCJzdWJzY3JpYmVBY3Rpb25hYmxlTm90aWZpY2F0aW9uU2hvd24iLCJzdWJzY3JpYmVDb25uZWN0aXZpdHkiLCJzdWJzY3JpYmVOb3RpZmljYXRpb25TaG93biIsInN1YnNjcmliZVByZWNhY2hlU3RhdGljRGVwZW5kZW5jaWVzIiwic3Vic2NyaWJlU25hY2tiYXJTaG93biIsInN1YnNjcmliZVRvYXN0U2hvd24iLCJ0cnlSZWdpc3RlckV4dGVuc2lvbiIsInNldHVwSTE4biIsImFwcE5hbWUiLCJnZXRDb3JlRXh0ZW5zaW9ucyIsInNldHVwQ29yZUNvbmZpZyIsIlJFR0lTVFJBVElPTl9QUk9NSVNFUyIsIlN5bWJvbCIsInNldHVwQXBwcyIsInNjcmlwdFRhZ3MiLCJwcm9taXNlcyIsImkiLCJsb2NhbFN0b3JhZ2UiLCJyb3V0ZXMiLCJtb2R1bGVzIiwicmVnaXN0cmF0aW9uUHJvbWlzZXMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsZW5ndGgiLCJwdXNoIiwic2NyaXB0VGFnIiwiZSIsInVuZGVmaW5lZCIsInRleHRDb250ZW50IiwiSlNPTiIsInBhcnNlIiwic3JjIiwiZGF0YSIsImNvbnNvbGUiLCJlcnJvciIsIlByb21pc2UiLCJyZXNvbHZlIiwiaXRlbSIsImtleSIsInN0YXJ0c1dpdGgiLCJsb2NhbE92ZXJyaWRlIiwiZ2V0SXRlbSIsIm1heWJlT3Blbm1yc1JvdXRlcyIsInNsaWNlIiwidGhlbiIsInJlc3BvbnNlIiwicmVqZWN0IiwiY2F0Y2giLCJyZWFzb24iLCJ3YXJuIiwid2luZG93IiwiYWxsU2V0dGxlZCIsImZpbHRlciIsInAiLCJzdGF0dXMiLCJtYXAiLCJ2YWx1ZSIsInJlZHVjZSIsImFjY3VtdWxhdGVkUm91dGVzIiwiT2JqZWN0IiwiZW50cmllcyIsIm1vZHVsZSIsImFsbCIsImluc3RhbGxlZE1vZHVsZXMiLCJsb2FkQ29uZmlncyIsImNvbmZpZ3MiLCJjb25maWciLCJuYW1lIiwiY29ubmVjdGl2aXR5Q2hhbmdlZCIsIm9mZmxpbmVFbmFibGVkIiwib25saW5lIiwibmF2aWdhdG9yIiwib25MaW5lIiwiY3JpdGljYWwiLCJkZXNjcmlwdGlvbiIsInRpdGxlIiwia2luZCIsInJ1blNoZWxsIiwiZXJyIiwicHJlZmVycmVkQ2FsZW5kYXIiLCJlbnRyeSIsImhhbmRsZUluaXRGYWlsdXJlIiwicmVuZGVyRmF0YWxFcnJvclBhZ2UiLCJ0ZW1wbGF0ZSIsInF1ZXJ5U2VsZWN0b3IiLCJmcmFnbWVudCIsImNvbnRlbnQiLCJjbG9uZU5vZGUiLCJtZXNzYWdlQ29udGFpbmVyIiwibWVzc2FnZSIsImtleXMiLCJzb21lIiwiayIsImFwcEVycm9yQWN0aW9uQnV0dG9ucyIsImNsZWFyRGV2T3ZlcnJpZGVzQnV0dG9uIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImlubmVySFRNTCIsIm9uY2xpY2siLCJjbGVhckRldk92ZXJyaWRlcyIsImFwcGVuZENoaWxkIiwiYm9keSIsImtleXNUb1JlbW92ZSIsImluY2x1ZGVzIiwiZm9yRWFjaCIsInJlbW92ZUl0ZW0iLCJsb2NhdGlvbiIsInJlbG9hZCIsImNyZWF0ZUNvbmZpZ0xvYWRlciIsImNvbmZpZ1VybHMiLCJsb2FkaW5nQ29uZmlncyIsImNvbmZpZ1VybCIsImludGVycG9sYXRlZFVybCIsImZldGNoIiwicmVzIiwianNvbiIsInNob3dOb3RpZmljYXRpb25zIiwic2hvd0FjdGlvbmFibGVOb3RpZmljYXRpb25zIiwic2hvd1RvYXN0cyIsInNob3dXb3Jrc3BhY2VzQW5kQWN0aW9uTWVudSIsInNob3dTbmFja2JhcnMiLCJzaG93TW9kYWxzIiwic2hvd0xvYWRpbmdTcGlubmVyIiwicmVnaXN0ZXJDb3JlRXh0ZW5zaW9ucyIsImV4dGVuc2lvbnMiLCJleHRlbnNpb24iLCJzZXR1cE9mZmxpbmUiLCJnZXRPcGVubXJzU3BhQmFzZSIsInNldHVwT2ZmbGluZVN0YXRpY0RlcGVuZGVuY3lQcmVjYWNoaW5nIiwicHJlY2FjaGVEZWxheSIsImxhc3RQcmVjYWNoZSIsInN1YnNjcmliZU9ubGluZUFuZExvZ2luQ2hhbmdlIiwiaGFzTG9nZ2VkSW5Vc2VyIiwiaGFzRXhjZWVkZWRQcmVjYWNoZURlbGF5IiwiRGF0ZSIsImdldFRpbWUiLCJjYiIsImlzT25saW5lIiwiaW5jbHVkZUF1dGhTdGF0dXMiLCJzdWJzY3JpYmUiLCJ1c2VyIiwicHJlY2FjaGVHbG9iYWxTdGF0aWNEZXBlbmRlbmNpZXMiLCJzZXNzaW9uUGF0aFVybCIsInByZWNhY2hlSW1wb3J0TWFwIiwiVVJMIiwib3Blbm1yc0Jhc2UiLCJvcmlnaW4iLCJocmVmIiwidHlwZSIsInVybCIsInN0cmF0ZWd5IiwiaW1wb3J0TWFwIiwiaW1wb3J0TWFwT3ZlcnJpZGVzIiwiZ2V0Q3VycmVudFBhZ2VNYXAiLCJyZWdpc3Rlck9mZmxpbmVIYW5kbGVycyIsImFkZEV2ZW50TGlzdGVuZXIiLCJzZXR1cE9mZmxpbmVDc3NDbGFzc2VzIiwiY2xhc3NMaXN0IiwicmVtb3ZlIiwiYWRkIiwicnVuIiwiY2xvc2VMb2FkaW5nIiwicHJvdmlkZUNvbmZpZ3MiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/run.ts\n");
|
|
270
270
|
|
|
271
271
|
/***/ }),
|
|
272
272
|
|
|
@@ -135,7 +135,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
135
135
|
\*************************************************/
|
|
136
136
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
137
137
|
|
|
138
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addRoutesOverride: () => (/* binding */ addRoutesOverride),\n/* harmony export */ isOpenmrsAppRoutes: () => (/* binding */ isOpenmrsAppRoutes),\n/* harmony export */ isOpenmrsRoutes: () => (/* binding */ isOpenmrsRoutes),\n/* harmony export */ removeRoutesOverride: () => (/* binding */ removeRoutesOverride),\n/* harmony export */ resetAllRoutesOverrides: () => (/* binding */ resetAllRoutesOverrides)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-utils */ \"../../framework/esm-utils/dist/storage.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants.js */ \"../../framework/esm-routes/dist/constants.js\");\n/** @module @category Routes Utilities */ \n\nconst isEnabled = (0,_openmrs_esm_utils__WEBPACK_IMPORTED_MODULE_0__.canAccessStorage)();\n/**\n * Used to add a route override to local storage. These are read as the routes registry\n * is assembled, so the app must be reloaded for new overrides to take effect.\n *\n * @internal\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 addRoutesOverride(moduleName, routes) {\n if (!isEnabled) {\n return;\n }\n if (typeof routes === 'string') {\n if (routes.startsWith('http')) {\n return addRouteOverrideInternal(moduleName, routes);\n } else {\n try {\n const maybeRoutes = JSON.parse(routes);\n if (isOpenmrsAppRoutes(maybeRoutes)) {\n return addRouteOverrideInternal(moduleName, maybeRoutes);\n } else {\n console.error(`The supplied routes for ${moduleName} is not a valid OpenmrsAppRoutes object`, routes);\n }\n } catch (e) {\n console.error(`Could not add routes override for ${moduleName}: `, e);\n }\n }\n } else if (routes instanceof URL) {\n return addRouteOverrideInternal(moduleName, routes.toString());\n } else if (isOpenmrsAppRoutes(routes)) {\n return addRouteOverrideInternal(moduleName, routes);\n }\n console.error(`Override for ${moduleName} is not in a valid format. Expected either a Javascript Object, a JSON string of a Javascript object, or a URL`, routes);\n}\n/**\n * Used to remove an existing routes override from local storage. These are read as the routes registry\n * is assembled, so the app must be reloaded for removed override to be removed.\n *\n * @internal\n * @param moduleName The module to remove the overrides for\n */ function removeRoutesOverride(moduleName) {\n if (!isEnabled) {\n return;\n }\n const key = _constants_js__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix + moduleName;\n localStorage.removeItem(key);\n}\n/**\n * Used to remove all existing routes overrides from local storage. These are read as the routes registry\n * is assembled, so the app must be reloaded for the removed overrides to appear to be removed.\n *\n * @internal\n */ function resetAllRoutesOverrides() {\n if (!isEnabled) {\n return;\n }\n const localStorage1 = window.localStorage;\n for(let i = 0; i < localStorage1.length; i++){\n const key = localStorage1.key(i);\n if (key?.startsWith(_constants_js__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix)) {\n localStorage1.removeItem(key);\n }\n }\n}\nfunction addRouteOverrideInternal(moduleName, routes) {\n const key = _constants_js__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix + moduleName;\n localStorage.setItem(key, JSON.stringify(routes));\n}\n/**\n * Simple type-predicate to ensure that the value can be treated as an OpenmrsAppRoutes\n * object.\n *\n * @internal\n * @param routes the object to check to see if it is an OpenmrsAppRoutes object\n * @returns true if the routes value is an OpenmrsAppRoutes\n */ function isOpenmrsAppRoutes(routes) {\n if (routes && typeof routes === 'object') {\n const hasOwnProperty = Object.prototype.hasOwnProperty;\n // we cast maybeRoutes as OpenmrsAppRoutes mainly so we can refer to the properties it should\n // have without repeated casts\n const maybeRoutes = routes;\n if (hasOwnProperty.call(routes, 'pages')) {\n if (!Boolean(maybeRoutes.pages) || !Array.isArray(maybeRoutes.pages)) {\n return false;\n }\n }\n if (hasOwnProperty.call(routes, 'extensions')) {\n if (!Boolean(maybeRoutes.extensions) || !Array.isArray(maybeRoutes.extensions)) {\n return false;\n }\n }\n if (hasOwnProperty.call(routes, 'workspaces')) {\n if (!Boolean(maybeRoutes.workspaces) || !Array.isArray(maybeRoutes.workspaces)) {\n return false;\n }\n }\n if (hasOwnProperty.call(routes, 'modals')) {\n if (!Boolean(maybeRoutes.modals) || !Array.isArray(maybeRoutes.modals)) {\n return false;\n }\n }\n // Notice that we're essentially testing for things that cannot be treated as an OpenmrsAppRoutes\n // object. This is because a completely empty object is a valid OpenmrsAppRoutes object.\n return true;\n }\n return false;\n}\n/**\n * Simple type-predicate to ensure that the value can be treated as an OpenmrsRoutes\n * object.\n *\n * @internal\n * @param routes the object to check to see if it is an OpenmrsRoutes object\n * @returns true if the routes value is an OpenmrsRoutes\n */ function isOpenmrsRoutes(routes) {\n if (routes && typeof routes === 'object') {\n const maybeRoutes = routes;\n return Object.entries(maybeRoutes).every(([key, value])=>typeof key === 'string' && isOpenmrsAppRoutes(value));\n }\n return false;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1yb3V0ZXMvZGlzdC9yb3V0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLHVDQUF1QyxHQUF5RDtBQUN0QztBQUMxRCxNQUFNRSxZQUFZRixvRUFBZ0JBO0FBQ2xDOzs7Ozs7Ozs7Q0FTQyxHQUFVLFNBQVNHLGtCQUFrQkMsVUFBVSxFQUFFQyxNQUFNO0lBQ3BELElBQUksQ0FBQ0gsV0FBVztRQUNaO0lBQ0o7SUFDQSxJQUFJLE9BQU9HLFdBQVcsVUFBVTtRQUM1QixJQUFJQSxPQUFPQyxVQUFVLENBQUMsU0FBUztZQUMzQixPQUFPQyx5QkFBeUJILFlBQVlDO1FBQ2hELE9BQU87WUFDSCxJQUFJO2dCQUNBLE1BQU1HLGNBQWNDLEtBQUtDLEtBQUssQ0FBQ0w7Z0JBQy9CLElBQUlNLG1CQUFtQkgsY0FBYztvQkFDakMsT0FBT0QseUJBQXlCSCxZQUFZSTtnQkFDaEQsT0FBTztvQkFDSEksUUFBUUMsS0FBSyxDQUFDLENBQUMsd0JBQXdCLEVBQUVULFdBQVcsdUNBQXVDLENBQUMsRUFBRUM7Z0JBQ2xHO1lBQ0osRUFBRSxPQUFPUyxHQUFHO2dCQUNSRixRQUFRQyxLQUFLLENBQUMsQ0FBQyxrQ0FBa0MsRUFBRVQsV0FBVyxFQUFFLENBQUMsRUFBRVU7WUFDdkU7UUFDSjtJQUNKLE9BQU8sSUFBSVQsa0JBQWtCVSxLQUFLO1FBQzlCLE9BQU9SLHlCQUF5QkgsWUFBWUMsT0FBT1csUUFBUTtJQUMvRCxPQUFPLElBQUlMLG1CQUFtQk4sU0FBUztRQUNuQyxPQUFPRSx5QkFBeUJILFlBQVlDO0lBQ2hEO0lBQ0FPLFFBQVFDLEtBQUssQ0FBQyxDQUFDLGFBQWEsRUFBRVQsV0FBVyw4R0FBOEcsQ0FBQyxFQUFFQztBQUM5SjtBQUNBOzs7Ozs7Q0FNQyxHQUFVLFNBQVNZLHFCQUFxQmIsVUFBVTtJQUMvQyxJQUFJLENBQUNGLFdBQVc7UUFDWjtJQUNKO0lBQ0EsTUFBTWdCLE1BQU1qQixtRUFBd0JBLEdBQUdHO0lBQ3ZDZSxhQUFhQyxVQUFVLENBQUNGO0FBQzVCO0FBQ0E7Ozs7O0NBS0MsR0FBVSxTQUFTRztJQUNoQixJQUFJLENBQUNuQixXQUFXO1FBQ1o7SUFDSjtJQUNBLE1BQU1vQixnQkFBZ0JDLE9BQU9KLFlBQVk7SUFDekMsSUFBSSxJQUFJSyxJQUFJLEdBQUdBLElBQUlGLGNBQWNHLE1BQU0sRUFBRUQsSUFBSTtRQUN6QyxNQUFNTixNQUFNSSxjQUFjSixHQUFHLENBQUNNO1FBQzlCLElBQUlOLEtBQUtaLFdBQVdMLG1FQUF3QkEsR0FBRztZQUMzQ3FCLGNBQWNGLFVBQVUsQ0FBQ0Y7UUFDN0I7SUFDSjtBQUNKO0FBQ0EsU0FBU1gseUJBQXlCSCxVQUFVLEVBQUVDLE1BQU07SUFDaEQsTUFBTWEsTUFBTWpCLG1FQUF3QkEsR0FBR0c7SUFDdkNlLGFBQWFPLE9BQU8sQ0FBQ1IsS0FBS1QsS0FBS2tCLFNBQVMsQ0FBQ3RCO0FBQzdDO0FBQ0E7Ozs7Ozs7Q0FPQyxHQUFVLFNBQVNNLG1CQUFtQk4sTUFBTTtJQUN6QyxJQUFJQSxVQUFVLE9BQU9BLFdBQVcsVUFBVTtRQUN0QyxNQUFNdUIsaUJBQWlCQyxPQUFPQyxTQUFTLENBQUNGLGNBQWM7UUFDdEQsNkZBQTZGO1FBQzdGLDhCQUE4QjtRQUM5QixNQUFNcEIsY0FBY0g7UUFDcEIsSUFBSXVCLGVBQWVHLElBQUksQ0FBQzFCLFFBQVEsVUFBVTtZQUN0QyxJQUFJLENBQUMyQixRQUFReEIsWUFBWXlCLEtBQUssS0FBSyxDQUFDQyxNQUFNQyxPQUFPLENBQUMzQixZQUFZeUIsS0FBSyxHQUFHO2dCQUNsRSxPQUFPO1lBQ1g7UUFDSjtRQUNBLElBQUlMLGVBQWVHLElBQUksQ0FBQzFCLFFBQVEsZUFBZTtZQUMzQyxJQUFJLENBQUMyQixRQUFReEIsWUFBWTRCLFVBQVUsS0FBSyxDQUFDRixNQUFNQyxPQUFPLENBQUMzQixZQUFZNEIsVUFBVSxHQUFHO2dCQUM1RSxPQUFPO1lBQ1g7UUFDSjtRQUNBLElBQUlSLGVBQWVHLElBQUksQ0FBQzFCLFFBQVEsZUFBZTtZQUMzQyxJQUFJLENBQUMyQixRQUFReEIsWUFBWTZCLFVBQVUsS0FBSyxDQUFDSCxNQUFNQyxPQUFPLENBQUMzQixZQUFZNkIsVUFBVSxHQUFHO2dCQUM1RSxPQUFPO1lBQ1g7UUFDSjtRQUNBLElBQUlULGVBQWVHLElBQUksQ0FBQzFCLFFBQVEsV0FBVztZQUN2QyxJQUFJLENBQUMyQixRQUFReEIsWUFBWThCLE1BQU0sS0FBSyxDQUFDSixNQUFNQyxPQUFPLENBQUMzQixZQUFZOEIsTUFBTSxHQUFHO2dCQUNwRSxPQUFPO1lBQ1g7UUFDSjtRQUNBLGlHQUFpRztRQUNqRyx3RkFBd0Y7UUFDeEYsT0FBTztJQUNYO0lBQ0EsT0FBTztBQUNYO0FBQ0E7Ozs7Ozs7Q0FPQyxHQUFVLFNBQVNDLGdCQUFnQmxDLE1BQU07SUFDdEMsSUFBSUEsVUFBVSxPQUFPQSxXQUFXLFVBQVU7UUFDdEMsTUFBTUcsY0FBY0g7UUFDcEIsT0FBT3dCLE9BQU9XLE9BQU8sQ0FBQ2hDLGFBQWFpQyxLQUFLLENBQUMsQ0FBQyxDQUFDdkIsS0FBS3dCLE1BQU0sR0FBRyxPQUFPeEIsUUFBUSxZQUFZUCxtQkFBbUIrQjtJQUMzRztJQUNBLE9BQU87QUFDWCIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1yb3V0ZXMvZGlzdC9yb3V0ZXMuanM/NzVhZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgUm91dGVzIFV0aWxpdGllcyAqLyBpbXBvcnQgeyBjYW5BY2Nlc3NTdG9yYWdlIH0gZnJvbSBcIkBvcGVubXJzL2VzbS11dGlsc1wiO1xuaW1wb3J0IHsgbG9jYWxTdG9yYWdlUm91dGVzUHJlZml4IH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5jb25zdCBpc0VuYWJsZWQgPSBjYW5BY2Nlc3NTdG9yYWdlKCk7XG4vKipcbiAqIFVzZWQgdG8gYWRkIGEgcm91dGUgb3ZlcnJpZGUgdG8gbG9jYWwgc3RvcmFnZS4gVGhlc2UgYXJlIHJlYWQgYXMgdGhlIHJvdXRlcyByZWdpc3RyeVxuICogaXMgYXNzZW1ibGVkLCBzbyB0aGUgYXBwIG11c3QgYmUgcmVsb2FkZWQgZm9yIG5ldyBvdmVycmlkZXMgdG8gdGFrZSBlZmZlY3QuXG4gKlxuICogQGludGVybmFsXG4gKiBAcGFyYW0gbW9kdWxlTmFtZSBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlIHRoZSByb3V0ZXMgYXJlIGZvclxuICogQHBhcmFtIHJvdXRlcyBFaXRoZXIgYW4ge0BsaW5rIE9wZW5tcnNBcHBSb3V0ZXN9IG9iamVjdCwgYSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIGEgSlNPTlxuICogIHZlcnNpb24gb2YgYW4ge0BsaW5rIE9wZW5tcnNBcHBSb3V0ZXN9IG9iamVjdCBvciBhIHN0cmluZyBvciBVUkwgdGhhdCByZXNvbHZlcyB0byBhXG4gKiAgSlNPTiBkb2N1bWVudCB0aGF0IHJlcHJlc2VudHMgYW4ge0BsaW5rIE9wZW5tcnNBcHBSb3V0ZXN9IG9iamVjdFxuICovIGV4cG9ydCBmdW5jdGlvbiBhZGRSb3V0ZXNPdmVycmlkZShtb2R1bGVOYW1lLCByb3V0ZXMpIHtcbiAgICBpZiAoIWlzRW5hYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygcm91dGVzID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAocm91dGVzLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgcmV0dXJuIGFkZFJvdXRlT3ZlcnJpZGVJbnRlcm5hbChtb2R1bGVOYW1lLCByb3V0ZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXliZVJvdXRlcyA9IEpTT04ucGFyc2Uocm91dGVzKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNPcGVubXJzQXBwUm91dGVzKG1heWJlUm91dGVzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWRkUm91dGVPdmVycmlkZUludGVybmFsKG1vZHVsZU5hbWUsIG1heWJlUm91dGVzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBUaGUgc3VwcGxpZWQgcm91dGVzIGZvciAke21vZHVsZU5hbWV9IGlzIG5vdCBhIHZhbGlkIE9wZW5tcnNBcHBSb3V0ZXMgb2JqZWN0YCwgcm91dGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQ291bGQgbm90IGFkZCByb3V0ZXMgb3ZlcnJpZGUgZm9yICR7bW9kdWxlTmFtZX06IGAsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBlbHNlIGlmIChyb3V0ZXMgaW5zdGFuY2VvZiBVUkwpIHtcbiAgICAgICAgcmV0dXJuIGFkZFJvdXRlT3ZlcnJpZGVJbnRlcm5hbChtb2R1bGVOYW1lLCByb3V0ZXMudG9TdHJpbmcoKSk7XG4gICAgfSBlbHNlIGlmIChpc09wZW5tcnNBcHBSb3V0ZXMocm91dGVzKSkge1xuICAgICAgICByZXR1cm4gYWRkUm91dGVPdmVycmlkZUludGVybmFsKG1vZHVsZU5hbWUsIHJvdXRlcyk7XG4gICAgfVxuICAgIGNvbnNvbGUuZXJyb3IoYE92ZXJyaWRlIGZvciAke21vZHVsZU5hbWV9IGlzIG5vdCBpbiBhIHZhbGlkIGZvcm1hdC4gRXhwZWN0ZWQgZWl0aGVyIGEgSmF2YXNjcmlwdCBPYmplY3QsIGEgSlNPTiBzdHJpbmcgb2YgYSBKYXZhc2NyaXB0IG9iamVjdCwgb3IgYSBVUkxgLCByb3V0ZXMpO1xufVxuLyoqXG4gKiBVc2VkIHRvIHJlbW92ZSBhbiBleGlzdGluZyByb3V0ZXMgb3ZlcnJpZGUgZnJvbSBsb2NhbCBzdG9yYWdlLiBUaGVzZSBhcmUgcmVhZCBhcyB0aGUgcm91dGVzIHJlZ2lzdHJ5XG4gKiBpcyBhc3NlbWJsZWQsIHNvIHRoZSBhcHAgbXVzdCBiZSByZWxvYWRlZCBmb3IgcmVtb3ZlZCBvdmVycmlkZSB0byBiZSByZW1vdmVkLlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIG1vZHVsZU5hbWUgVGhlIG1vZHVsZSB0byByZW1vdmUgdGhlIG92ZXJyaWRlcyBmb3JcbiAqLyBleHBvcnQgZnVuY3Rpb24gcmVtb3ZlUm91dGVzT3ZlcnJpZGUobW9kdWxlTmFtZSkge1xuICAgIGlmICghaXNFbmFibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qga2V5ID0gbG9jYWxTdG9yYWdlUm91dGVzUHJlZml4ICsgbW9kdWxlTmFtZTtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xufVxuLyoqXG4gKiBVc2VkIHRvIHJlbW92ZSBhbGwgZXhpc3Rpbmcgcm91dGVzIG92ZXJyaWRlcyBmcm9tIGxvY2FsIHN0b3JhZ2UuIFRoZXNlIGFyZSByZWFkIGFzIHRoZSByb3V0ZXMgcmVnaXN0cnlcbiAqIGlzIGFzc2VtYmxlZCwgc28gdGhlIGFwcCBtdXN0IGJlIHJlbG9hZGVkIGZvciB0aGUgcmVtb3ZlZCBvdmVycmlkZXMgdG8gYXBwZWFyIHRvIGJlIHJlbW92ZWQuXG4gKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHJlc2V0QWxsUm91dGVzT3ZlcnJpZGVzKCkge1xuICAgIGlmICghaXNFbmFibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbG9jYWxTdG9yYWdlMSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2U7XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IGxvY2FsU3RvcmFnZTEubGVuZ3RoOyBpKyspe1xuICAgICAgICBjb25zdCBrZXkgPSBsb2NhbFN0b3JhZ2UxLmtleShpKTtcbiAgICAgICAgaWYgKGtleT8uc3RhcnRzV2l0aChsb2NhbFN0b3JhZ2VSb3V0ZXNQcmVmaXgpKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UxLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGFkZFJvdXRlT3ZlcnJpZGVJbnRlcm5hbChtb2R1bGVOYW1lLCByb3V0ZXMpIHtcbiAgICBjb25zdCBrZXkgPSBsb2NhbFN0b3JhZ2VSb3V0ZXNQcmVmaXggKyBtb2R1bGVOYW1lO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgSlNPTi5zdHJpbmdpZnkocm91dGVzKSk7XG59XG4vKipcbiAqIFNpbXBsZSB0eXBlLXByZWRpY2F0ZSB0byBlbnN1cmUgdGhhdCB0aGUgdmFsdWUgY2FuIGJlIHRyZWF0ZWQgYXMgYW4gT3Blbm1yc0FwcFJvdXRlc1xuICogb2JqZWN0LlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHJvdXRlcyB0aGUgb2JqZWN0IHRvIGNoZWNrIHRvIHNlZSBpZiBpdCBpcyBhbiBPcGVubXJzQXBwUm91dGVzIG9iamVjdFxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgcm91dGVzIHZhbHVlIGlzIGFuIE9wZW5tcnNBcHBSb3V0ZXNcbiAqLyBleHBvcnQgZnVuY3Rpb24gaXNPcGVubXJzQXBwUm91dGVzKHJvdXRlcykge1xuICAgIGlmIChyb3V0ZXMgJiYgdHlwZW9mIHJvdXRlcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3QgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuICAgICAgICAvLyB3ZSBjYXN0IG1heWJlUm91dGVzIGFzIE9wZW5tcnNBcHBSb3V0ZXMgbWFpbmx5IHNvIHdlIGNhbiByZWZlciB0byB0aGUgcHJvcGVydGllcyBpdCBzaG91bGRcbiAgICAgICAgLy8gaGF2ZSB3aXRob3V0IHJlcGVhdGVkIGNhc3RzXG4gICAgICAgIGNvbnN0IG1heWJlUm91dGVzID0gcm91dGVzO1xuICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChyb3V0ZXMsICdwYWdlcycpKSB7XG4gICAgICAgICAgICBpZiAoIUJvb2xlYW4obWF5YmVSb3V0ZXMucGFnZXMpIHx8ICFBcnJheS5pc0FycmF5KG1heWJlUm91dGVzLnBhZ2VzKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChyb3V0ZXMsICdleHRlbnNpb25zJykpIHtcbiAgICAgICAgICAgIGlmICghQm9vbGVhbihtYXliZVJvdXRlcy5leHRlbnNpb25zKSB8fCAhQXJyYXkuaXNBcnJheShtYXliZVJvdXRlcy5leHRlbnNpb25zKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChyb3V0ZXMsICd3b3Jrc3BhY2VzJykpIHtcbiAgICAgICAgICAgIGlmICghQm9vbGVhbihtYXliZVJvdXRlcy53b3Jrc3BhY2VzKSB8fCAhQXJyYXkuaXNBcnJheShtYXliZVJvdXRlcy53b3Jrc3BhY2VzKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChyb3V0ZXMsICdtb2RhbHMnKSkge1xuICAgICAgICAgICAgaWYgKCFCb29sZWFuKG1heWJlUm91dGVzLm1vZGFscykgfHwgIUFycmF5LmlzQXJyYXkobWF5YmVSb3V0ZXMubW9kYWxzKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBOb3RpY2UgdGhhdCB3ZSdyZSBlc3NlbnRpYWxseSB0ZXN0aW5nIGZvciB0aGluZ3MgdGhhdCBjYW5ub3QgYmUgdHJlYXRlZCBhcyBhbiBPcGVubXJzQXBwUm91dGVzXG4gICAgICAgIC8vIG9iamVjdC4gVGhpcyBpcyBiZWNhdXNlIGEgY29tcGxldGVseSBlbXB0eSBvYmplY3QgaXMgYSB2YWxpZCBPcGVubXJzQXBwUm91dGVzIG9iamVjdC5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbi8qKlxuICogU2ltcGxlIHR5cGUtcHJlZGljYXRlIHRvIGVuc3VyZSB0aGF0IHRoZSB2YWx1ZSBjYW4gYmUgdHJlYXRlZCBhcyBhbiBPcGVubXJzUm91dGVzXG4gKiBvYmplY3QuXG4gKlxuICogQGludGVybmFsXG4gKiBAcGFyYW0gcm91dGVzIHRoZSBvYmplY3QgdG8gY2hlY2sgdG8gc2VlIGlmIGl0IGlzIGFuIE9wZW5tcnNSb3V0ZXMgb2JqZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSByb3V0ZXMgdmFsdWUgaXMgYW4gT3Blbm1yc1JvdXRlc1xuICovIGV4cG9ydCBmdW5jdGlvbiBpc09wZW5tcnNSb3V0ZXMocm91dGVzKSB7XG4gICAgaWYgKHJvdXRlcyAmJiB0eXBlb2Ygcm91dGVzID09PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25zdCBtYXliZVJvdXRlcyA9IHJvdXRlcztcbiAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG1heWJlUm91dGVzKS5ldmVyeSgoW2tleSwgdmFsdWVdKT0+dHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiYgaXNPcGVubXJzQXBwUm91dGVzKHZhbHVlKSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbiJdLCJuYW1lcyI6WyJjYW5BY2Nlc3NTdG9yYWdlIiwibG9jYWxTdG9yYWdlUm91dGVzUHJlZml4IiwiaXNFbmFibGVkIiwiYWRkUm91dGVzT3ZlcnJpZGUiLCJtb2R1bGVOYW1lIiwicm91dGVzIiwic3RhcnRzV2l0aCIsImFkZFJvdXRlT3ZlcnJpZGVJbnRlcm5hbCIsIm1heWJlUm91dGVzIiwiSlNPTiIsInBhcnNlIiwiaXNPcGVubXJzQXBwUm91dGVzIiwiY29uc29sZSIsImVycm9yIiwiZSIsIlVSTCIsInRvU3RyaW5nIiwicmVtb3ZlUm91dGVzT3ZlcnJpZGUiLCJrZXkiLCJsb2NhbFN0b3JhZ2UiLCJyZW1vdmVJdGVtIiwicmVzZXRBbGxSb3V0ZXNPdmVycmlkZXMiLCJsb2NhbFN0b3JhZ2UxIiwid2luZG93IiwiaSIsImxlbmd0aCIsInNldEl0ZW0iLCJzdHJpbmdpZnkiLCJoYXNPd25Qcm9wZXJ0eSIsIk9iamVjdCIsInByb3RvdHlwZSIsImNhbGwiLCJCb29sZWFuIiwicGFnZXMiLCJBcnJheSIsImlzQXJyYXkiLCJleHRlbnNpb25zIiwid29ya3NwYWNlcyIsIm1vZGFscyIsImlzT3Blbm1yc1JvdXRlcyIsImVudHJpZXMiLCJldmVyeSIsInZhbHVlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../framework/esm-routes/dist/routes.js\n");
|
|
138
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addRoutesOverride: () => (/* binding */ addRoutesOverride),\n/* harmony export */ isOpenmrsAppRoutes: () => (/* binding */ isOpenmrsAppRoutes),\n/* harmony export */ isOpenmrsRoutes: () => (/* binding */ isOpenmrsRoutes),\n/* harmony export */ removeRoutesOverride: () => (/* binding */ removeRoutesOverride),\n/* harmony export */ resetAllRoutesOverrides: () => (/* binding */ resetAllRoutesOverrides)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-utils */ \"../../framework/esm-utils/dist/storage.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants.js */ \"../../framework/esm-routes/dist/constants.js\");\n/** @module @category Routes Utilities */ \n\nconst isEnabled = (0,_openmrs_esm_utils__WEBPACK_IMPORTED_MODULE_0__.canAccessStorage)();\n/**\n * Used to add a route override to local storage. These are read as the routes registry\n * is assembled, so the app must be reloaded for new overrides to take effect.\n *\n * @internal\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 addRoutesOverride(moduleName, routes) {\n if (!isEnabled) {\n return;\n }\n if (typeof routes === 'string') {\n if (routes.startsWith('http')) {\n return addRouteOverrideInternal(moduleName, routes);\n } else {\n try {\n const maybeRoutes = JSON.parse(routes);\n if (isOpenmrsAppRoutes(maybeRoutes)) {\n return addRouteOverrideInternal(moduleName, maybeRoutes);\n } else {\n console.error(`The supplied routes for ${moduleName} is not a valid OpenmrsAppRoutes object`, routes);\n }\n } catch (e) {\n console.error(`Could not add routes override for ${moduleName}: `, e);\n }\n }\n } else if (routes instanceof URL) {\n return addRouteOverrideInternal(moduleName, routes.toString());\n } else if (isOpenmrsAppRoutes(routes)) {\n return addRouteOverrideInternal(moduleName, routes);\n }\n console.error(`Override for ${moduleName} is not in a valid format. Expected either a Javascript Object, a JSON string of a Javascript object, or a URL`, routes);\n}\n/**\n * Used to remove an existing routes override from local storage. These are read as the routes registry\n * is assembled, so the app must be reloaded for removed override to be removed.\n *\n * @internal\n * @param moduleName The module to remove the overrides for\n */ function removeRoutesOverride(moduleName) {\n if (!isEnabled) {\n return;\n }\n const key = _constants_js__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix + moduleName;\n localStorage.removeItem(key);\n}\n/**\n * Used to remove all existing routes overrides from local storage. These are read as the routes registry\n * is assembled, so the app must be reloaded for the removed overrides to appear to be removed.\n *\n * @internal\n */ function resetAllRoutesOverrides() {\n if (!isEnabled) {\n return;\n }\n for (const key of Object.keys(localStorage)){\n if (key.startsWith(_constants_js__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix)) {\n localStorage.removeItem(key);\n }\n }\n}\nfunction addRouteOverrideInternal(moduleName, routes) {\n const key = _constants_js__WEBPACK_IMPORTED_MODULE_1__.localStorageRoutesPrefix + moduleName;\n localStorage.setItem(key, JSON.stringify(routes));\n}\n/**\n * Simple type-predicate to ensure that the value can be treated as an OpenmrsAppRoutes\n * object.\n *\n * @internal\n * @param routes the object to check to see if it is an OpenmrsAppRoutes object\n * @returns true if the routes value is an OpenmrsAppRoutes\n */ function isOpenmrsAppRoutes(routes) {\n if (routes && typeof routes === 'object') {\n const hasOwnProperty = Object.prototype.hasOwnProperty;\n // we cast maybeRoutes as OpenmrsAppRoutes mainly so we can refer to the properties it should\n // have without repeated casts\n const maybeRoutes = routes;\n if (hasOwnProperty.call(routes, 'pages')) {\n if (!Boolean(maybeRoutes.pages) || !Array.isArray(maybeRoutes.pages)) {\n return false;\n }\n }\n if (hasOwnProperty.call(routes, 'extensions')) {\n if (!Boolean(maybeRoutes.extensions) || !Array.isArray(maybeRoutes.extensions)) {\n return false;\n }\n }\n if (hasOwnProperty.call(routes, 'workspaces')) {\n if (!Boolean(maybeRoutes.workspaces) || !Array.isArray(maybeRoutes.workspaces)) {\n return false;\n }\n }\n if (hasOwnProperty.call(routes, 'modals')) {\n if (!Boolean(maybeRoutes.modals) || !Array.isArray(maybeRoutes.modals)) {\n return false;\n }\n }\n // Notice that we're essentially testing for things that cannot be treated as an OpenmrsAppRoutes\n // object. This is because a completely empty object is a valid OpenmrsAppRoutes object.\n return true;\n }\n return false;\n}\n/**\n * Simple type-predicate to ensure that the value can be treated as an OpenmrsRoutes\n * object.\n *\n * @internal\n * @param routes the object to check to see if it is an OpenmrsRoutes object\n * @returns true if the routes value is an OpenmrsRoutes\n */ function isOpenmrsRoutes(routes) {\n if (routes && typeof routes === 'object') {\n const maybeRoutes = routes;\n return Object.entries(maybeRoutes).every(([key, value])=>typeof key === 'string' && isOpenmrsAppRoutes(value));\n }\n return false;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1yb3V0ZXMvZGlzdC9yb3V0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLHVDQUF1QyxHQUF5RDtBQUN0QztBQUMxRCxNQUFNRSxZQUFZRixvRUFBZ0JBO0FBQ2xDOzs7Ozs7Ozs7Q0FTQyxHQUFVLFNBQVNHLGtCQUFrQkMsVUFBVSxFQUFFQyxNQUFNO0lBQ3BELElBQUksQ0FBQ0gsV0FBVztRQUNaO0lBQ0o7SUFDQSxJQUFJLE9BQU9HLFdBQVcsVUFBVTtRQUM1QixJQUFJQSxPQUFPQyxVQUFVLENBQUMsU0FBUztZQUMzQixPQUFPQyx5QkFBeUJILFlBQVlDO1FBQ2hELE9BQU87WUFDSCxJQUFJO2dCQUNBLE1BQU1HLGNBQWNDLEtBQUtDLEtBQUssQ0FBQ0w7Z0JBQy9CLElBQUlNLG1CQUFtQkgsY0FBYztvQkFDakMsT0FBT0QseUJBQXlCSCxZQUFZSTtnQkFDaEQsT0FBTztvQkFDSEksUUFBUUMsS0FBSyxDQUFDLENBQUMsd0JBQXdCLEVBQUVULFdBQVcsdUNBQXVDLENBQUMsRUFBRUM7Z0JBQ2xHO1lBQ0osRUFBRSxPQUFPUyxHQUFHO2dCQUNSRixRQUFRQyxLQUFLLENBQUMsQ0FBQyxrQ0FBa0MsRUFBRVQsV0FBVyxFQUFFLENBQUMsRUFBRVU7WUFDdkU7UUFDSjtJQUNKLE9BQU8sSUFBSVQsa0JBQWtCVSxLQUFLO1FBQzlCLE9BQU9SLHlCQUF5QkgsWUFBWUMsT0FBT1csUUFBUTtJQUMvRCxPQUFPLElBQUlMLG1CQUFtQk4sU0FBUztRQUNuQyxPQUFPRSx5QkFBeUJILFlBQVlDO0lBQ2hEO0lBQ0FPLFFBQVFDLEtBQUssQ0FBQyxDQUFDLGFBQWEsRUFBRVQsV0FBVyw4R0FBOEcsQ0FBQyxFQUFFQztBQUM5SjtBQUNBOzs7Ozs7Q0FNQyxHQUFVLFNBQVNZLHFCQUFxQmIsVUFBVTtJQUMvQyxJQUFJLENBQUNGLFdBQVc7UUFDWjtJQUNKO0lBQ0EsTUFBTWdCLE1BQU1qQixtRUFBd0JBLEdBQUdHO0lBQ3ZDZSxhQUFhQyxVQUFVLENBQUNGO0FBQzVCO0FBQ0E7Ozs7O0NBS0MsR0FBVSxTQUFTRztJQUNoQixJQUFJLENBQUNuQixXQUFXO1FBQ1o7SUFDSjtJQUNBLEtBQUssTUFBTWdCLE9BQU9JLE9BQU9DLElBQUksQ0FBQ0osY0FBYztRQUN4QyxJQUFJRCxJQUFJWixVQUFVLENBQUNMLG1FQUF3QkEsR0FBRztZQUMxQ2tCLGFBQWFDLFVBQVUsQ0FBQ0Y7UUFDNUI7SUFDSjtBQUNKO0FBQ0EsU0FBU1gseUJBQXlCSCxVQUFVLEVBQUVDLE1BQU07SUFDaEQsTUFBTWEsTUFBTWpCLG1FQUF3QkEsR0FBR0c7SUFDdkNlLGFBQWFLLE9BQU8sQ0FBQ04sS0FBS1QsS0FBS2dCLFNBQVMsQ0FBQ3BCO0FBQzdDO0FBQ0E7Ozs7Ozs7Q0FPQyxHQUFVLFNBQVNNLG1CQUFtQk4sTUFBTTtJQUN6QyxJQUFJQSxVQUFVLE9BQU9BLFdBQVcsVUFBVTtRQUN0QyxNQUFNcUIsaUJBQWlCSixPQUFPSyxTQUFTLENBQUNELGNBQWM7UUFDdEQsNkZBQTZGO1FBQzdGLDhCQUE4QjtRQUM5QixNQUFNbEIsY0FBY0g7UUFDcEIsSUFBSXFCLGVBQWVFLElBQUksQ0FBQ3ZCLFFBQVEsVUFBVTtZQUN0QyxJQUFJLENBQUN3QixRQUFRckIsWUFBWXNCLEtBQUssS0FBSyxDQUFDQyxNQUFNQyxPQUFPLENBQUN4QixZQUFZc0IsS0FBSyxHQUFHO2dCQUNsRSxPQUFPO1lBQ1g7UUFDSjtRQUNBLElBQUlKLGVBQWVFLElBQUksQ0FBQ3ZCLFFBQVEsZUFBZTtZQUMzQyxJQUFJLENBQUN3QixRQUFRckIsWUFBWXlCLFVBQVUsS0FBSyxDQUFDRixNQUFNQyxPQUFPLENBQUN4QixZQUFZeUIsVUFBVSxHQUFHO2dCQUM1RSxPQUFPO1lBQ1g7UUFDSjtRQUNBLElBQUlQLGVBQWVFLElBQUksQ0FBQ3ZCLFFBQVEsZUFBZTtZQUMzQyxJQUFJLENBQUN3QixRQUFRckIsWUFBWTBCLFVBQVUsS0FBSyxDQUFDSCxNQUFNQyxPQUFPLENBQUN4QixZQUFZMEIsVUFBVSxHQUFHO2dCQUM1RSxPQUFPO1lBQ1g7UUFDSjtRQUNBLElBQUlSLGVBQWVFLElBQUksQ0FBQ3ZCLFFBQVEsV0FBVztZQUN2QyxJQUFJLENBQUN3QixRQUFRckIsWUFBWTJCLE1BQU0sS0FBSyxDQUFDSixNQUFNQyxPQUFPLENBQUN4QixZQUFZMkIsTUFBTSxHQUFHO2dCQUNwRSxPQUFPO1lBQ1g7UUFDSjtRQUNBLGlHQUFpRztRQUNqRyx3RkFBd0Y7UUFDeEYsT0FBTztJQUNYO0lBQ0EsT0FBTztBQUNYO0FBQ0E7Ozs7Ozs7Q0FPQyxHQUFVLFNBQVNDLGdCQUFnQi9CLE1BQU07SUFDdEMsSUFBSUEsVUFBVSxPQUFPQSxXQUFXLFVBQVU7UUFDdEMsTUFBTUcsY0FBY0g7UUFDcEIsT0FBT2lCLE9BQU9lLE9BQU8sQ0FBQzdCLGFBQWE4QixLQUFLLENBQUMsQ0FBQyxDQUFDcEIsS0FBS3FCLE1BQU0sR0FBRyxPQUFPckIsUUFBUSxZQUFZUCxtQkFBbUI0QjtJQUMzRztJQUNBLE9BQU87QUFDWCIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1yb3V0ZXMvZGlzdC9yb3V0ZXMuanM/NzVhZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgUm91dGVzIFV0aWxpdGllcyAqLyBpbXBvcnQgeyBjYW5BY2Nlc3NTdG9yYWdlIH0gZnJvbSBcIkBvcGVubXJzL2VzbS11dGlsc1wiO1xuaW1wb3J0IHsgbG9jYWxTdG9yYWdlUm91dGVzUHJlZml4IH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5jb25zdCBpc0VuYWJsZWQgPSBjYW5BY2Nlc3NTdG9yYWdlKCk7XG4vKipcbiAqIFVzZWQgdG8gYWRkIGEgcm91dGUgb3ZlcnJpZGUgdG8gbG9jYWwgc3RvcmFnZS4gVGhlc2UgYXJlIHJlYWQgYXMgdGhlIHJvdXRlcyByZWdpc3RyeVxuICogaXMgYXNzZW1ibGVkLCBzbyB0aGUgYXBwIG11c3QgYmUgcmVsb2FkZWQgZm9yIG5ldyBvdmVycmlkZXMgdG8gdGFrZSBlZmZlY3QuXG4gKlxuICogQGludGVybmFsXG4gKiBAcGFyYW0gbW9kdWxlTmFtZSBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlIHRoZSByb3V0ZXMgYXJlIGZvclxuICogQHBhcmFtIHJvdXRlcyBFaXRoZXIgYW4ge0BsaW5rIE9wZW5tcnNBcHBSb3V0ZXN9IG9iamVjdCwgYSBzdHJpbmcgdGhhdCByZXByZXNlbnRzIGEgSlNPTlxuICogIHZlcnNpb24gb2YgYW4ge0BsaW5rIE9wZW5tcnNBcHBSb3V0ZXN9IG9iamVjdCBvciBhIHN0cmluZyBvciBVUkwgdGhhdCByZXNvbHZlcyB0byBhXG4gKiAgSlNPTiBkb2N1bWVudCB0aGF0IHJlcHJlc2VudHMgYW4ge0BsaW5rIE9wZW5tcnNBcHBSb3V0ZXN9IG9iamVjdFxuICovIGV4cG9ydCBmdW5jdGlvbiBhZGRSb3V0ZXNPdmVycmlkZShtb2R1bGVOYW1lLCByb3V0ZXMpIHtcbiAgICBpZiAoIWlzRW5hYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygcm91dGVzID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAocm91dGVzLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgcmV0dXJuIGFkZFJvdXRlT3ZlcnJpZGVJbnRlcm5hbChtb2R1bGVOYW1lLCByb3V0ZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXliZVJvdXRlcyA9IEpTT04ucGFyc2Uocm91dGVzKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNPcGVubXJzQXBwUm91dGVzKG1heWJlUm91dGVzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWRkUm91dGVPdmVycmlkZUludGVybmFsKG1vZHVsZU5hbWUsIG1heWJlUm91dGVzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBUaGUgc3VwcGxpZWQgcm91dGVzIGZvciAke21vZHVsZU5hbWV9IGlzIG5vdCBhIHZhbGlkIE9wZW5tcnNBcHBSb3V0ZXMgb2JqZWN0YCwgcm91dGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQ291bGQgbm90IGFkZCByb3V0ZXMgb3ZlcnJpZGUgZm9yICR7bW9kdWxlTmFtZX06IGAsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBlbHNlIGlmIChyb3V0ZXMgaW5zdGFuY2VvZiBVUkwpIHtcbiAgICAgICAgcmV0dXJuIGFkZFJvdXRlT3ZlcnJpZGVJbnRlcm5hbChtb2R1bGVOYW1lLCByb3V0ZXMudG9TdHJpbmcoKSk7XG4gICAgfSBlbHNlIGlmIChpc09wZW5tcnNBcHBSb3V0ZXMocm91dGVzKSkge1xuICAgICAgICByZXR1cm4gYWRkUm91dGVPdmVycmlkZUludGVybmFsKG1vZHVsZU5hbWUsIHJvdXRlcyk7XG4gICAgfVxuICAgIGNvbnNvbGUuZXJyb3IoYE92ZXJyaWRlIGZvciAke21vZHVsZU5hbWV9IGlzIG5vdCBpbiBhIHZhbGlkIGZvcm1hdC4gRXhwZWN0ZWQgZWl0aGVyIGEgSmF2YXNjcmlwdCBPYmplY3QsIGEgSlNPTiBzdHJpbmcgb2YgYSBKYXZhc2NyaXB0IG9iamVjdCwgb3IgYSBVUkxgLCByb3V0ZXMpO1xufVxuLyoqXG4gKiBVc2VkIHRvIHJlbW92ZSBhbiBleGlzdGluZyByb3V0ZXMgb3ZlcnJpZGUgZnJvbSBsb2NhbCBzdG9yYWdlLiBUaGVzZSBhcmUgcmVhZCBhcyB0aGUgcm91dGVzIHJlZ2lzdHJ5XG4gKiBpcyBhc3NlbWJsZWQsIHNvIHRoZSBhcHAgbXVzdCBiZSByZWxvYWRlZCBmb3IgcmVtb3ZlZCBvdmVycmlkZSB0byBiZSByZW1vdmVkLlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIG1vZHVsZU5hbWUgVGhlIG1vZHVsZSB0byByZW1vdmUgdGhlIG92ZXJyaWRlcyBmb3JcbiAqLyBleHBvcnQgZnVuY3Rpb24gcmVtb3ZlUm91dGVzT3ZlcnJpZGUobW9kdWxlTmFtZSkge1xuICAgIGlmICghaXNFbmFibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qga2V5ID0gbG9jYWxTdG9yYWdlUm91dGVzUHJlZml4ICsgbW9kdWxlTmFtZTtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xufVxuLyoqXG4gKiBVc2VkIHRvIHJlbW92ZSBhbGwgZXhpc3Rpbmcgcm91dGVzIG92ZXJyaWRlcyBmcm9tIGxvY2FsIHN0b3JhZ2UuIFRoZXNlIGFyZSByZWFkIGFzIHRoZSByb3V0ZXMgcmVnaXN0cnlcbiAqIGlzIGFzc2VtYmxlZCwgc28gdGhlIGFwcCBtdXN0IGJlIHJlbG9hZGVkIGZvciB0aGUgcmVtb3ZlZCBvdmVycmlkZXMgdG8gYXBwZWFyIHRvIGJlIHJlbW92ZWQuXG4gKlxuICogQGludGVybmFsXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHJlc2V0QWxsUm91dGVzT3ZlcnJpZGVzKCkge1xuICAgIGlmICghaXNFbmFibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobG9jYWxTdG9yYWdlKSl7XG4gICAgICAgIGlmIChrZXkuc3RhcnRzV2l0aChsb2NhbFN0b3JhZ2VSb3V0ZXNQcmVmaXgpKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gYWRkUm91dGVPdmVycmlkZUludGVybmFsKG1vZHVsZU5hbWUsIHJvdXRlcykge1xuICAgIGNvbnN0IGtleSA9IGxvY2FsU3RvcmFnZVJvdXRlc1ByZWZpeCArIG1vZHVsZU5hbWU7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeShyb3V0ZXMpKTtcbn1cbi8qKlxuICogU2ltcGxlIHR5cGUtcHJlZGljYXRlIHRvIGVuc3VyZSB0aGF0IHRoZSB2YWx1ZSBjYW4gYmUgdHJlYXRlZCBhcyBhbiBPcGVubXJzQXBwUm91dGVzXG4gKiBvYmplY3QuXG4gKlxuICogQGludGVybmFsXG4gKiBAcGFyYW0gcm91dGVzIHRoZSBvYmplY3QgdG8gY2hlY2sgdG8gc2VlIGlmIGl0IGlzIGFuIE9wZW5tcnNBcHBSb3V0ZXMgb2JqZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSByb3V0ZXMgdmFsdWUgaXMgYW4gT3Blbm1yc0FwcFJvdXRlc1xuICovIGV4cG9ydCBmdW5jdGlvbiBpc09wZW5tcnNBcHBSb3V0ZXMocm91dGVzKSB7XG4gICAgaWYgKHJvdXRlcyAmJiB0eXBlb2Ygcm91dGVzID09PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25zdCBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG4gICAgICAgIC8vIHdlIGNhc3QgbWF5YmVSb3V0ZXMgYXMgT3Blbm1yc0FwcFJvdXRlcyBtYWlubHkgc28gd2UgY2FuIHJlZmVyIHRvIHRoZSBwcm9wZXJ0aWVzIGl0IHNob3VsZFxuICAgICAgICAvLyBoYXZlIHdpdGhvdXQgcmVwZWF0ZWQgY2FzdHNcbiAgICAgICAgY29uc3QgbWF5YmVSb3V0ZXMgPSByb3V0ZXM7XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHJvdXRlcywgJ3BhZ2VzJykpIHtcbiAgICAgICAgICAgIGlmICghQm9vbGVhbihtYXliZVJvdXRlcy5wYWdlcykgfHwgIUFycmF5LmlzQXJyYXkobWF5YmVSb3V0ZXMucGFnZXMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHJvdXRlcywgJ2V4dGVuc2lvbnMnKSkge1xuICAgICAgICAgICAgaWYgKCFCb29sZWFuKG1heWJlUm91dGVzLmV4dGVuc2lvbnMpIHx8ICFBcnJheS5pc0FycmF5KG1heWJlUm91dGVzLmV4dGVuc2lvbnMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHJvdXRlcywgJ3dvcmtzcGFjZXMnKSkge1xuICAgICAgICAgICAgaWYgKCFCb29sZWFuKG1heWJlUm91dGVzLndvcmtzcGFjZXMpIHx8ICFBcnJheS5pc0FycmF5KG1heWJlUm91dGVzLndvcmtzcGFjZXMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHJvdXRlcywgJ21vZGFscycpKSB7XG4gICAgICAgICAgICBpZiAoIUJvb2xlYW4obWF5YmVSb3V0ZXMubW9kYWxzKSB8fCAhQXJyYXkuaXNBcnJheShtYXliZVJvdXRlcy5tb2RhbHMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIE5vdGljZSB0aGF0IHdlJ3JlIGVzc2VudGlhbGx5IHRlc3RpbmcgZm9yIHRoaW5ncyB0aGF0IGNhbm5vdCBiZSB0cmVhdGVkIGFzIGFuIE9wZW5tcnNBcHBSb3V0ZXNcbiAgICAgICAgLy8gb2JqZWN0LiBUaGlzIGlzIGJlY2F1c2UgYSBjb21wbGV0ZWx5IGVtcHR5IG9iamVjdCBpcyBhIHZhbGlkIE9wZW5tcnNBcHBSb3V0ZXMgb2JqZWN0LlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuLyoqXG4gKiBTaW1wbGUgdHlwZS1wcmVkaWNhdGUgdG8gZW5zdXJlIHRoYXQgdGhlIHZhbHVlIGNhbiBiZSB0cmVhdGVkIGFzIGFuIE9wZW5tcnNSb3V0ZXNcbiAqIG9iamVjdC5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSByb3V0ZXMgdGhlIG9iamVjdCB0byBjaGVjayB0byBzZWUgaWYgaXQgaXMgYW4gT3Blbm1yc1JvdXRlcyBvYmplY3RcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIHJvdXRlcyB2YWx1ZSBpcyBhbiBPcGVubXJzUm91dGVzXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIGlzT3Blbm1yc1JvdXRlcyhyb3V0ZXMpIHtcbiAgICBpZiAocm91dGVzICYmIHR5cGVvZiByb3V0ZXMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IG1heWJlUm91dGVzID0gcm91dGVzO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMobWF5YmVSb3V0ZXMpLmV2ZXJ5KChba2V5LCB2YWx1ZV0pPT50eXBlb2Yga2V5ID09PSAnc3RyaW5nJyAmJiBpc09wZW5tcnNBcHBSb3V0ZXModmFsdWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuIl0sIm5hbWVzIjpbImNhbkFjY2Vzc1N0b3JhZ2UiLCJsb2NhbFN0b3JhZ2VSb3V0ZXNQcmVmaXgiLCJpc0VuYWJsZWQiLCJhZGRSb3V0ZXNPdmVycmlkZSIsIm1vZHVsZU5hbWUiLCJyb3V0ZXMiLCJzdGFydHNXaXRoIiwiYWRkUm91dGVPdmVycmlkZUludGVybmFsIiwibWF5YmVSb3V0ZXMiLCJKU09OIiwicGFyc2UiLCJpc09wZW5tcnNBcHBSb3V0ZXMiLCJjb25zb2xlIiwiZXJyb3IiLCJlIiwiVVJMIiwidG9TdHJpbmciLCJyZW1vdmVSb3V0ZXNPdmVycmlkZSIsImtleSIsImxvY2FsU3RvcmFnZSIsInJlbW92ZUl0ZW0iLCJyZXNldEFsbFJvdXRlc092ZXJyaWRlcyIsIk9iamVjdCIsImtleXMiLCJzZXRJdGVtIiwic3RyaW5naWZ5IiwiaGFzT3duUHJvcGVydHkiLCJwcm90b3R5cGUiLCJjYWxsIiwiQm9vbGVhbiIsInBhZ2VzIiwiQXJyYXkiLCJpc0FycmF5IiwiZXh0ZW5zaW9ucyIsIndvcmtzcGFjZXMiLCJtb2RhbHMiLCJpc09wZW5tcnNSb3V0ZXMiLCJlbnRyaWVzIiwiZXZlcnkiLCJ2YWx1ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-routes/dist/routes.js\n");
|
|
139
139
|
|
|
140
140
|
/***/ }),
|
|
141
141
|
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! For license information please see 180.js.LICENSE.txt */
|
|
2
|
+
(globalThis.webpackChunk_openmrs_esm_devtools_app=globalThis.webpackChunk_openmrs_esm_devtools_app||[]).push([[180],{6626:e=>{"use strict";e.exports=function(e){var n=document.createElement("style");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},17578:(e,n,a)=>{"use strict";a.d(n,{A:()=>d});var t=a(41109),r=a.n(t),o=a(75248),l=a.n(o)()(r());l.push([e.id,".-esm-devtools__list__imoListContainer___gjiZa{margin:0 .75rem 0 .75rem;height:50vh}.-esm-devtools__list__imoTableHeaderActions___B\\+dMu{display:flex;align-items:center;justify-content:left}.-esm-devtools__list__imoTableHeaderActions___B\\+dMu>*+*{margin:0 .5rem}.-esm-devtools__list__imoSearchBox___2N5bD{width:auto;min-width:12rem;margin-right:.5rem}.-esm-devtools__list__imoTable___0rKk1{max-height:calc(50vh - 3rem - .75rem)}.-esm-devtools__list__imoStatus___4L5kQ{height:.75rem;width:.75rem;border-radius:.5rem;border:1px solid #161616;margin-top:.25rem;margin-right:.5rem}.-esm-devtools__list__imoNextOverride___HjH60{background-color:#520408}.-esm-devtools__list__imoNextOverrideText___VXr9S{color:#520408}.-esm-devtools__list__imoNextDefault___c6VOI{background-color:#684e00}.-esm-devtools__list__imoNextDefaultText___jGdWk{color:#684e00}.-esm-devtools__list__imoDisabledOverride___ChOOX{background-color:#82cfff}.-esm-devtools__list__imoDisabledOverrideText___kv9Uj{color:#82cfff}.-esm-devtools__list__imoCurrentOverride___y\\+1K\\+{background-color:#ff8389}.-esm-devtools__list__imoCurrentOverrideText___T-UvZ{color:#c21e25}.-esm-devtools__list__imoExternalOverride___0H2SO{background-color:#eb6200}.-esm-devtools__list__imoExternalOverrideText___Uqhyp{color:#eb6200}.-esm-devtools__list__imoDefaultModule___uyvgS{background-color:#b28600}","",{version:3,sources:["webpack://./src/devtools/import-map-list/list.scss","webpack://./../../../node_modules/@carbon/layout/scss/generated/_spacing.scss","webpack://./../../../node_modules/@carbon/colors/index.scss"],names:[],mappings:"AAIA,+CACE,wBAAA,CACA,WAAA,CAGF,qDACE,YAAA,CACA,kBAAA,CACA,oBAAA,CAEA,yDACE,cAAA,CAIJ,2CACE,UAAA,CACA,eAAA,CACA,kBCDW,CDIb,uCAEE,qCAAA,CAGF,wCACE,aCLW,CDMX,YCNW,CDOX,mBCZW,CDaX,wBAAA,CACA,iBCnBW,CDoBX,kBCfW,CDkBb,8CACE,wBE4DO,CFzDT,kDACE,aEwDO,CFrDT,6CACE,wBEiFU,CF9EZ,iDACE,aE6EU,CF1EZ,kDACE,wBEtBQ,CFyBV,sDACE,aE1BQ,CF6BV,mDACE,wBE+BO,CF5BT,qDACE,aE0Ja,CFvJf,kDACE,wBEIU,CFDZ,sDACE,aAAA,CAGF,+CACE,wBE+CU",sourcesContent:["@use '@carbon/colors';\n@use '@carbon/layout';\n@use '@carbon/type';\n\n.imoListContainer {\n margin: 0 layout.$spacing-04 0 layout.$spacing-04;\n height: 50vh;\n}\n\n.imoTableHeaderActions {\n display: flex;\n align-items: center;\n justify-content: left;\n\n > * + * {\n margin: 0 layout.$spacing-03;\n }\n}\n\n.imoSearchBox {\n width: auto;\n min-width: 12rem;\n margin-right: layout.$spacing-03;\n}\n\n.imoTable {\n // 50vh is the container size - size of the header\n max-height: calc(50vh - layout.$spacing-09 - layout.$spacing-04);\n}\n\n.imoStatus {\n height: layout.$spacing-04;\n width: layout.$spacing-04;\n border-radius: layout.$spacing-03;\n border: 1px solid colors.$gray-100;\n margin-top: layout.$spacing-02;\n margin-right: layout.$spacing-03;\n}\n\n.imoNextOverride {\n background-color: colors.$red-90;\n}\n\n.imoNextOverrideText {\n color: colors.$red-90;\n}\n\n.imoNextDefault {\n background-color: colors.$yellow-70;\n}\n\n.imoNextDefaultText {\n color: colors.$yellow-70;\n}\n\n.imoDisabledOverride {\n background-color: colors.$cyan-30;\n}\n\n.imoDisabledOverrideText {\n color: colors.$cyan-30;\n}\n\n.imoCurrentOverride {\n background-color: colors.$red-40;\n}\n\n.imoCurrentOverrideText {\n color: colors.$red-70-hover;\n}\n\n.imoExternalOverride {\n background-color: colors.$orange-50;\n}\n\n.imoExternalOverrideText {\n color: colors.$orange-50;\n}\n\n.imoDefaultModule {\n background-color: colors.$yellow-50;\n}\n","// Code generated by @carbon/layout. DO NOT EDIT.\n//\n// Copyright IBM Corp. 2018, 2023\n//\n// This source code is licensed under the Apache-2.0 license found in the\n// LICENSE file in the root directory of this source tree.\n//\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-01: 0.125rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-02: 0.25rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-03: 0.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-04: 0.75rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-05: 1rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-06: 1.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-07: 2rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-08: 2.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-09: 3rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-10: 4rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-11: 5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-12: 6rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-13: 10rem !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/layout\n$spacing: (\n spacing-01: $spacing-01,\n spacing-02: $spacing-02,\n spacing-03: $spacing-03,\n spacing-04: $spacing-04,\n spacing-05: $spacing-05,\n spacing-06: $spacing-06,\n spacing-07: $spacing-07,\n spacing-08: $spacing-08,\n spacing-09: $spacing-09,\n spacing-10: $spacing-10,\n spacing-11: $spacing-11,\n spacing-12: $spacing-12,\n spacing-13: $spacing-13,\n);\n","// Code generated by @carbon/colors. DO NOT EDIT.\n//\n// Copyright IBM Corp. 2018, 2023\n//\n// This source code is licensed under the Apache-2.0 license found in the\n// LICENSE file in the root directory of this source tree.\n//\n\n$black: #000000 !default;\n$white: #ffffff !default;\n\n$black-100: #000000 !default;\n$blue-10: #edf5ff !default;\n$blue-20: #d0e2ff !default;\n$blue-30: #a6c8ff !default;\n$blue-40: #78a9ff !default;\n$blue-50: #4589ff !default;\n$blue-60: #0f62fe !default;\n$blue-70: #0043ce !default;\n$blue-80: #002d9c !default;\n$blue-90: #001d6c !default;\n$blue-100: #001141 !default;\n$cool-gray-10: #f2f4f8 !default;\n$cool-gray-20: #dde1e6 !default;\n$cool-gray-30: #c1c7cd !default;\n$cool-gray-40: #a2a9b0 !default;\n$cool-gray-50: #878d96 !default;\n$cool-gray-60: #697077 !default;\n$cool-gray-70: #4d5358 !default;\n$cool-gray-80: #343a3f !default;\n$cool-gray-90: #21272a !default;\n$cool-gray-100: #121619 !default;\n$cyan-10: #e5f6ff !default;\n$cyan-20: #bae6ff !default;\n$cyan-30: #82cfff !default;\n$cyan-40: #33b1ff !default;\n$cyan-50: #1192e8 !default;\n$cyan-60: #0072c3 !default;\n$cyan-70: #00539a !default;\n$cyan-80: #003a6d !default;\n$cyan-90: #012749 !default;\n$cyan-100: #061727 !default;\n$gray-10: #f4f4f4 !default;\n$gray-20: #e0e0e0 !default;\n$gray-30: #c6c6c6 !default;\n$gray-40: #a8a8a8 !default;\n$gray-50: #8d8d8d !default;\n$gray-60: #6f6f6f !default;\n$gray-70: #525252 !default;\n$gray-80: #393939 !default;\n$gray-90: #262626 !default;\n$gray-100: #161616 !default;\n$green-10: #defbe6 !default;\n$green-20: #a7f0ba !default;\n$green-30: #6fdc8c !default;\n$green-40: #42be65 !default;\n$green-50: #24a148 !default;\n$green-60: #198038 !default;\n$green-70: #0e6027 !default;\n$green-80: #044317 !default;\n$green-90: #022d0d !default;\n$green-100: #071908 !default;\n$magenta-10: #fff0f7 !default;\n$magenta-20: #ffd6e8 !default;\n$magenta-30: #ffafd2 !default;\n$magenta-40: #ff7eb6 !default;\n$magenta-50: #ee5396 !default;\n$magenta-60: #d02670 !default;\n$magenta-70: #9f1853 !default;\n$magenta-80: #740937 !default;\n$magenta-90: #510224 !default;\n$magenta-100: #2a0a18 !default;\n$orange-10: #fff2e8 !default;\n$orange-20: #ffd9be !default;\n$orange-30: #ffb784 !default;\n$orange-40: #ff832b !default;\n$orange-50: #eb6200 !default;\n$orange-60: #ba4e00 !default;\n$orange-70: #8a3800 !default;\n$orange-80: #5e2900 !default;\n$orange-90: #3e1a00 !default;\n$orange-100: #231000 !default;\n$purple-10: #f6f2ff !default;\n$purple-20: #e8daff !default;\n$purple-30: #d4bbff !default;\n$purple-40: #be95ff !default;\n$purple-50: #a56eff !default;\n$purple-60: #8a3ffc !default;\n$purple-70: #6929c4 !default;\n$purple-80: #491d8b !default;\n$purple-90: #31135e !default;\n$purple-100: #1c0f30 !default;\n$red-10: #fff1f1 !default;\n$red-20: #ffd7d9 !default;\n$red-30: #ffb3b8 !default;\n$red-40: #ff8389 !default;\n$red-50: #fa4d56 !default;\n$red-60: #da1e28 !default;\n$red-70: #a2191f !default;\n$red-80: #750e13 !default;\n$red-90: #520408 !default;\n$red-100: #2d0709 !default;\n$teal-10: #d9fbfb !default;\n$teal-20: #9ef0f0 !default;\n$teal-30: #3ddbd9 !default;\n$teal-40: #08bdba !default;\n$teal-50: #009d9a !default;\n$teal-60: #007d79 !default;\n$teal-70: #005d5d !default;\n$teal-80: #004144 !default;\n$teal-90: #022b30 !default;\n$teal-100: #081a1c !default;\n$warm-gray-10: #f7f3f2 !default;\n$warm-gray-20: #e5e0df !default;\n$warm-gray-30: #cac5c4 !default;\n$warm-gray-40: #ada8a8 !default;\n$warm-gray-50: #8f8b8b !default;\n$warm-gray-60: #726e6e !default;\n$warm-gray-70: #565151 !default;\n$warm-gray-80: #3c3838 !default;\n$warm-gray-90: #272525 !default;\n$warm-gray-100: #171414 !default;\n$white-0: #ffffff !default;\n$yellow-10: #fcf4d6 !default;\n$yellow-20: #fddc69 !default;\n$yellow-30: #f1c21b !default;\n$yellow-40: #d2a106 !default;\n$yellow-50: #b28600 !default;\n$yellow-60: #8e6a00 !default;\n$yellow-70: #684e00 !default;\n$yellow-80: #483700 !default;\n$yellow-90: #302400 !default;\n$yellow-100: #1c1500 !default;\n\n$white-hover: #e8e8e8 !default;\n$black-hover: #212121 !default;\n$blue-10-hover: #dbebff !default;\n$blue-20-hover: #b8d3ff !default;\n$blue-30-hover: #8ab6ff !default;\n$blue-40-hover: #5c97ff !default;\n$blue-50-hover: #1f70ff !default;\n$blue-60-hover: #0050e6 !default;\n$blue-70-hover: #0053ff !default;\n$blue-80-hover: #0039c7 !default;\n$blue-90-hover: #00258a !default;\n$blue-100-hover: #001f75 !default;\n$cool-gray-10-hover: #e4e9f1 !default;\n$cool-gray-20-hover: #cdd3da !default;\n$cool-gray-30-hover: #adb5bd !default;\n$cool-gray-40-hover: #9199a1 !default;\n$cool-gray-50-hover: #757b85 !default;\n$cool-gray-60-hover: #585e64 !default;\n$cool-gray-70-hover: #5d646a !default;\n$cool-gray-80-hover: #434a51 !default;\n$cool-gray-90-hover: #2b3236 !default;\n$cool-gray-100-hover: #222a2f !default;\n$cyan-10-hover: #cceeff !default;\n$cyan-20-hover: #99daff !default;\n$cyan-30-hover: #57beff !default;\n$cyan-40-hover: #059fff !default;\n$cyan-50-hover: #0f7ec8 !default;\n$cyan-60-hover: #005fa3 !default;\n$cyan-70-hover: #0066bd !default;\n$cyan-80-hover: #00498a !default;\n$cyan-90-hover: #013360 !default;\n$cyan-100-hover: #0b2947 !default;\n$gray-10-hover: #e8e8e8 !default;\n$gray-20-hover: #d1d1d1 !default;\n$gray-30-hover: #b5b5b5 !default;\n$gray-40-hover: #999999 !default;\n$gray-50-hover: #7a7a7a !default;\n$gray-60-hover: #5e5e5e !default;\n$gray-70-hover: #636363 !default;\n$gray-80-hover: #474747 !default;\n$gray-90-hover: #333333 !default;\n$gray-100-hover: #292929 !default;\n$green-10-hover: #b6f6c8 !default;\n$green-20-hover: #74e792 !default;\n$green-30-hover: #36ce5e !default;\n$green-40-hover: #3bab5a !default;\n$green-50-hover: #208e3f !default;\n$green-60-hover: #166f31 !default;\n$green-70-hover: #11742f !default;\n$green-80-hover: #05521c !default;\n$green-90-hover: #033b11 !default;\n$green-100-hover: #0d300f !default;\n$magenta-10-hover: #ffe0ef !default;\n$magenta-20-hover: #ffbdda !default;\n$magenta-30-hover: #ff94c3 !default;\n$magenta-40-hover: #ff57a0 !default;\n$magenta-50-hover: #e3176f !default;\n$magenta-60-hover: #b0215f !default;\n$magenta-70-hover: #bf1d63 !default;\n$magenta-80-hover: #8e0b43 !default;\n$magenta-90-hover: #68032e !default;\n$magenta-100-hover: #53142f !default;\n$orange-10-hover: #ffe2cc !default;\n$orange-20-hover: #ffc69e !default;\n$orange-30-hover: #ff9d57 !default;\n$orange-40-hover: #fa6800 !default;\n$orange-50-hover: #cc5500 !default;\n$orange-60-hover: #9e4200 !default;\n$orange-70-hover: #a84400 !default;\n$orange-80-hover: #753300 !default;\n$orange-90-hover: #522200 !default;\n$orange-100-hover: #421e00 !default;\n$purple-10-hover: #ede5ff !default;\n$purple-20-hover: #dcc7ff !default;\n$purple-30-hover: #c5a3ff !default;\n$purple-40-hover: #ae7aff !default;\n$purple-50-hover: #9352ff !default;\n$purple-60-hover: #7822fb !default;\n$purple-70-hover: #7c3dd6 !default;\n$purple-80-hover: #5b24ad !default;\n$purple-90-hover: #40197b !default;\n$purple-100-hover: #341c59 !default;\n$red-10-hover: #ffe0e0 !default;\n$red-20-hover: #ffc2c5 !default;\n$red-30-hover: #ff99a0 !default;\n$red-40-hover: #ff6168 !default;\n$red-50-hover: #ee0713 !default;\n$red-60-hover: #b81922 !default;\n$red-70-hover: #c21e25 !default;\n$red-80-hover: #921118 !default;\n$red-90-hover: #66050a !default;\n$red-100-hover: #540d11 !default;\n$teal-10-hover: #acf6f6 !default;\n$teal-20-hover: #57e5e5 !default;\n$teal-30-hover: #25cac8 !default;\n$teal-40-hover: #07aba9 !default;\n$teal-50-hover: #008a87 !default;\n$teal-60-hover: #006b68 !default;\n$teal-70-hover: #007070 !default;\n$teal-80-hover: #005357 !default;\n$teal-90-hover: #033940 !default;\n$teal-100-hover: #0f3034 !default;\n$warm-gray-10-hover: #f0e8e6 !default;\n$warm-gray-20-hover: #d8d0cf !default;\n$warm-gray-30-hover: #b9b3b1 !default;\n$warm-gray-40-hover: #9c9696 !default;\n$warm-gray-50-hover: #7f7b7b !default;\n$warm-gray-60-hover: #605d5d !default;\n$warm-gray-70-hover: #696363 !default;\n$warm-gray-80-hover: #4c4848 !default;\n$warm-gray-90-hover: #343232 !default;\n$warm-gray-100-hover: #2c2626 !default;\n$yellow-10-hover: #f8e6a0 !default;\n$yellow-20-hover: #fccd27 !default;\n$yellow-30-hover: #ddb00e !default;\n$yellow-40-hover: #bc9005 !default;\n$yellow-50-hover: #9e7700 !default;\n$yellow-60-hover: #755800 !default;\n$yellow-70-hover: #806000 !default;\n$yellow-80-hover: #5c4600 !default;\n$yellow-90-hover: #3d2e00 !default;\n$yellow-100-hover: #332600 !default;\n\n/// Colors from the IBM Design Language\n/// @access public\n/// @group @carbon/colors\n$colors: (\n black: (\n 100: #000000,\n ),\n blue: (\n 10: #edf5ff,\n 20: #d0e2ff,\n 30: #a6c8ff,\n 40: #78a9ff,\n 50: #4589ff,\n 60: #0f62fe,\n 70: #0043ce,\n 80: #002d9c,\n 90: #001d6c,\n 100: #001141,\n ),\n cool-gray: (\n 10: #f2f4f8,\n 20: #dde1e6,\n 30: #c1c7cd,\n 40: #a2a9b0,\n 50: #878d96,\n 60: #697077,\n 70: #4d5358,\n 80: #343a3f,\n 90: #21272a,\n 100: #121619,\n ),\n cyan: (\n 10: #e5f6ff,\n 20: #bae6ff,\n 30: #82cfff,\n 40: #33b1ff,\n 50: #1192e8,\n 60: #0072c3,\n 70: #00539a,\n 80: #003a6d,\n 90: #012749,\n 100: #061727,\n ),\n gray: (\n 10: #f4f4f4,\n 20: #e0e0e0,\n 30: #c6c6c6,\n 40: #a8a8a8,\n 50: #8d8d8d,\n 60: #6f6f6f,\n 70: #525252,\n 80: #393939,\n 90: #262626,\n 100: #161616,\n ),\n green: (\n 10: #defbe6,\n 20: #a7f0ba,\n 30: #6fdc8c,\n 40: #42be65,\n 50: #24a148,\n 60: #198038,\n 70: #0e6027,\n 80: #044317,\n 90: #022d0d,\n 100: #071908,\n ),\n magenta: (\n 10: #fff0f7,\n 20: #ffd6e8,\n 30: #ffafd2,\n 40: #ff7eb6,\n 50: #ee5396,\n 60: #d02670,\n 70: #9f1853,\n 80: #740937,\n 90: #510224,\n 100: #2a0a18,\n ),\n orange: (\n 10: #fff2e8,\n 20: #ffd9be,\n 30: #ffb784,\n 40: #ff832b,\n 50: #eb6200,\n 60: #ba4e00,\n 70: #8a3800,\n 80: #5e2900,\n 90: #3e1a00,\n 100: #231000,\n ),\n purple: (\n 10: #f6f2ff,\n 20: #e8daff,\n 30: #d4bbff,\n 40: #be95ff,\n 50: #a56eff,\n 60: #8a3ffc,\n 70: #6929c4,\n 80: #491d8b,\n 90: #31135e,\n 100: #1c0f30,\n ),\n red: (\n 10: #fff1f1,\n 20: #ffd7d9,\n 30: #ffb3b8,\n 40: #ff8389,\n 50: #fa4d56,\n 60: #da1e28,\n 70: #a2191f,\n 80: #750e13,\n 90: #520408,\n 100: #2d0709,\n ),\n teal: (\n 10: #d9fbfb,\n 20: #9ef0f0,\n 30: #3ddbd9,\n 40: #08bdba,\n 50: #009d9a,\n 60: #007d79,\n 70: #005d5d,\n 80: #004144,\n 90: #022b30,\n 100: #081a1c,\n ),\n warm-gray: (\n 10: #f7f3f2,\n 20: #e5e0df,\n 30: #cac5c4,\n 40: #ada8a8,\n 50: #8f8b8b,\n 60: #726e6e,\n 70: #565151,\n 80: #3c3838,\n 90: #272525,\n 100: #171414,\n ),\n white: (\n 0: #ffffff,\n ),\n yellow: (\n 10: #fcf4d6,\n 20: #fddc69,\n 30: #f1c21b,\n 40: #d2a106,\n 50: #b28600,\n 60: #8e6a00,\n 70: #684e00,\n 80: #483700,\n 90: #302400,\n 100: #1c1500,\n ),\n) !default;\n"],sourceRoot:""}]),l.locals={imoListContainer:"-esm-devtools__list__imoListContainer___gjiZa",imoTableHeaderActions:"-esm-devtools__list__imoTableHeaderActions___B+dMu",imoSearchBox:"-esm-devtools__list__imoSearchBox___2N5bD",imoTable:"-esm-devtools__list__imoTable___0rKk1",imoStatus:"-esm-devtools__list__imoStatus___4L5kQ",imoNextOverride:"-esm-devtools__list__imoNextOverride___HjH60",imoNextOverrideText:"-esm-devtools__list__imoNextOverrideText___VXr9S",imoNextDefault:"-esm-devtools__list__imoNextDefault___c6VOI",imoNextDefaultText:"-esm-devtools__list__imoNextDefaultText___jGdWk",imoDisabledOverride:"-esm-devtools__list__imoDisabledOverride___ChOOX",imoDisabledOverrideText:"-esm-devtools__list__imoDisabledOverrideText___kv9Uj",imoCurrentOverride:"-esm-devtools__list__imoCurrentOverride___y+1K+",imoCurrentOverrideText:"-esm-devtools__list__imoCurrentOverrideText___T-UvZ",imoExternalOverride:"-esm-devtools__list__imoExternalOverride___0H2SO",imoExternalOverrideText:"-esm-devtools__list__imoExternalOverrideText___Uqhyp",imoDefaultModule:"-esm-devtools__list__imoDefaultModule___uyvgS"};const d=l},26180:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>de});var t=a(20796),r=a.n(t),o=a(55530),l=a.n(o),d=a(95315),u=a(94728),f=a(89925),c=a.n(f),i=a(14357),s=a(97478),p=a.n(s),g=a(27135),m=a.n(g),b=a(61301),$=a.n(b),v=a(49222),y=a.n(v),h=a(6626),_=a.n(h),A=a(88279),C=a.n(A),w=a(17578),E={};E.styleTagTransform=C(),E.setAttributes=y(),E.insert=$().bind(null,"head"),E.domAPI=m(),E.insertStyleElement=_(),p()(w.A,E);const x=w.A&&w.A.locals?w.A.locals:void 0;function O(e,n){(null==n||n>e.length)&&(n=e.length);for(var a=0,t=new Array(n);a<n;a++)t[a]=e[a];return t}function T(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function N(e){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{},t=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(a).filter((function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable})))),t.forEach((function(n){T(e,n,a[n])}))}return e}function k(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):function(e){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n.push.apply(n,a)}return n}(Object(n)).forEach((function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})),e}function D(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var t,r,o=[],l=!0,d=!1;try{for(a=a.call(e);!(l=(t=a.next()).done)&&(o.push(t.value),!n||o.length!==n);l=!0);}catch(e){d=!0,r=e}finally{try{l||null==a.return||a.return()}finally{if(d)throw r}}return o}}(e,n)||S(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function M(e){return function(e){if(Array.isArray(e))return O(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||S(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(e,n){if(e){if("string"==typeof e)return O(e,n);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(a):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?O(e,n):void 0}}var B={notOverriddenMap:{imports:{}},currentPageMap:{imports:{}},nextPageMap:{imports:{}},dialogModule:null,dialogExternalMap:null};function I(e,n){switch(n.type){case"set_default_map":return k(N({},e),{notOverriddenMap:n.notOverriddenMap});case"set_current_map":return k(N({},e),{currentPageMap:n.currentPageMap});case"set_next_map":return k(N({},e),{nextPageMap:n.nextPageMap});case"show_new_module_dialog":return k(N({},e),{dialogModule:{isNew:!0}});case"show_edit_module_dialog":return k(N({},e),{dialogModule:{module:n.module,isNew:!1}});case"hide_edit_module_dialog":return k(N({},e),{dialogModule:null});case"reset_all_overrides":return window.importMapOverrides.resetOverrides(),(0,i.resetAllRoutesOverrides)(),e}}var j=(0,t.forwardRef)((function(e,n){var a=(0,u.useTranslation)().t,o=D((0,t.useReducer)(I,B),2),f=o[0],s=o[1],p=(0,t.useRef)(),g=D((0,t.useState)(""),2),m=g[0],b=g[1],$=(0,i.useDebounce)(m);(0,t.useEffect)((function(){var e;window.importMapOverrides.getDefaultMap().then((function(e){return s({type:"set_default_map",notOverriddenMap:e})})),window.importMapOverrides.getCurrentPageMap().then((function(e){return s({type:"set_current_map",currentPageMap:e})})),null===(e=p.current)||void 0===e||e.focus();var n=function(e){return function(){return window.importMapOverrides.getNextPageMap().then((function(n){return e({type:"set_next_map",nextPageMap:n})}))}}(s);return window.addEventListener("import-map-overrides:change",n),function(){return window.removeEventListener("import-map-overrides:change",n)}}),[]),(0,t.useEffect)((function(){f.dialogModule&&(0,i.showModal)("importmap-override-modal",N({},f.dialogModule),(function(){s({type:"hide_edit_module_dialog"})}))}),[f.dialogModule]);var v=[],y=[],h=[],_=[],A=[],C=[],w=window.importMapOverrides.getOverrideMap(!0).imports,E=Object.keys(f.notOverriddenMap.imports),O=window.importMapOverrides.getDisabledOverrides(),T=M(new Set(M(E).concat(M(Object.keys(w)))));return T.sort(),c().filter($,T).map((function(e){var n=e.original,a={moduleName:n,defaultUrl:f.notOverriddenMap.imports[n],overrideUrl:w[n],disabled:O.includes(n),order:e.score};a.disabled?h.push(a):a.overrideUrl?f.currentPageMap.imports[n]===a.overrideUrl?v.push(a):y.push(a):f.currentPageMap.imports[n]===a.defaultUrl?_.push(a):f.nextPageMap.imports[n]===a.defaultUrl?C.push(a):A.push(k(N({},a),{overrideUrl:f.currentPageMap.imports[n]}))})),v.sort(P),_.sort(P),y.sort(P),_.sort(P),h.sort(P),A.sort(P),C.sort(P),r().createElement("div",{ref:n,className:x.imoListContainer},r().createElement("div",{className:x.imoTableHeaderActions},r().createElement(d.Search,{ref:p,id:"module-search",className:x.imoSearchBox,"aria-label":a("searchModules","Search modules"),placeholder:a("searchModules","Search modules"),onChange:function(e){return b(e.target.value)},labelText:"",size:"lg"}),r().createElement("div",null,r().createElement(d.Button,{kind:"primary",onClick:function(){return s({type:"show_new_module_dialog"})}},a("addNewModule","Add new module"))),r().createElement("div",null,r().createElement(d.Button,{kind:"secondary",onClick:function(){return s({type:"reset_all_overrides"})}},a("resetOverrides","Reset all overrides")))),r().createElement(d.TableContainer,{title:""},r().createElement(d.Table,{size:"lg",stickyHeader:!0,className:x.imoTable},r().createElement(d.TableHead,null,r().createElement(d.TableRow,null,r().createElement(d.TableHeader,null,a("moduleStatus","Module Status")),r().createElement(d.TableHeader,null,a("moduleName","Module Name")),r().createElement(d.TableHeader,null,a("domain","Domain")),r().createElement(d.TableHeader,null,a("filename","Filename")))),r().createElement(d.TableBody,{className:x.imoTableBody},y.map((function(e){return r().createElement(d.TableRow,{key:"".concat(e.moduleName,"-next-override"),role:"button",tabIndex:0,onClick:function(){return s({type:"show_edit_module_dialog",module:e})}},r().createElement(d.TableCell,null,r().createElement("div",{className:l()(x.imoStatus,x.imoNextOverride),role:"button",tabIndex:0,onClick:function(e){e.preventDefault(),window.location.reload()}}),r().createElement("div",{className:x.imoNextOverrideText},a("inlineOverride","Inline Override")),r().createElement("div",null)),r().createElement(d.TableCell,null,e.moduleName),r().createElement(d.TableCell,null,R(e)),r().createElement(d.TableCell,null,L(e)))})),C.map((function(e){return r().createElement(d.TableRow,{key:"".concat(e.moduleName,"-pending-refresh-default"),role:"button",tabIndex:0,onClick:function(){return s({type:"show_edit_module_dialog",module:e})}},r().createElement(d.TableCell,null,r().createElement("div",{className:l()(x.imoStatus,x.imoNextDefault),role:"button",tabIndex:0,onClick:function(e){e.preventDefault(),window.location.reload()}}),r().createElement("div",{className:x.imoNextDefaultText},a("default","Default")),r().createElement("div",null)),r().createElement(d.TableCell,null,e.moduleName),r().createElement(d.TableCell,null,R(e)),r().createElement(d.TableCell,null,L(e)))})),h.map((function(e){return r().createElement(d.TableRow,{key:"".concat(e.moduleName,"-disabled-override"),role:"button",tabIndex:0,onClick:function(){return s({type:"show_edit_module_dialog",module:e})}},r().createElement(d.TableCell,null,r().createElement("div",{className:l()(x.imoStatus,x.imoDisabledOverride)}),r().createElement("div",{className:x.imoDisabledOverrideText},a("overrideDisabled","Override Disabled"))),r().createElement(d.TableCell,null,e.moduleName),r().createElement(d.TableCell,null,R(e)),r().createElement(d.TableCell,null,L(e)))})),v.map((function(e){return r().createElement(d.TableRow,{key:"".concat(e.moduleName,"-current-override"),role:"button",tabIndex:0,onClick:function(){return s({type:"show_edit_module_dialog",module:e})}},r().createElement(d.TableCell,null,r().createElement("div",{className:l()(x.imoStatus,x.imoCurrentOverride)}),r().createElement("div",{className:x.imoCurrentOverrideText},a("inlineOverride","Inline Override"))),r().createElement(d.TableCell,null,e.moduleName),r().createElement(d.TableCell,null,R(e)),r().createElement(d.TableCell,null,L(e)))})),A.map((function(e){return r().createElement(d.TableRow,{key:"".concat(e.moduleName,"-external-override"),role:"button",tabIndex:0,onClick:function(){return s({type:"show_edit_module_dialog",module:e})}},r().createElement(d.TableCell,null,r().createElement("div",{className:l()(x.imoStatus,x.imoExternalOverride)}),r().createElement("div",{className:x.externalOverrideText},a("externalOverride","External Override"))),r().createElement(d.TableCell,null,e.moduleName),r().createElement(d.TableCell,null,R(e)),r().createElement(d.TableCell,null,L(e)))})),_.map((function(e){return r().createElement(d.TableRow,{key:"".concat(e.moduleName,"-default"),role:"button",tabIndex:0,onClick:function(){return s({type:"show_edit_module_dialog",module:e})}},r().createElement(d.TableCell,null,r().createElement("div",{className:l()(x.imoStatus,x.imoDefaultModule)}),r().createElement("div",null,a("default","Default"))),r().createElement(d.TableCell,null,e.moduleName),r().createElement(d.TableCell,null,R(e)),r().createElement(d.TableCell,null,L(e)))}))))))}));function P(e,n){return e.order-n.order}var U=document.querySelector("base")&&document.querySelector("base").href||location.origin+"/";function R(e){var n=F(e),a=W(n);return a?a.host:n}function L(e){var n=F(e),a=W(n);return a?a.pathname.slice(a.pathname.lastIndexOf("/")+1):n}function F(e){return e.overrideUrl||e.defaultUrl}function W(e){try{return new URL(e,U)}catch(e){return null}}const z=j;var H=a(85863),X={};X.styleTagTransform=C(),X.setAttributes=y(),X.insert=$().bind(null,"head"),X.domAPI=m(),X.insertStyleElement=_(),p()(H.A,X);const Y=H.A&&H.A.locals?H.A.locals:void 0;var q="import-map-overrides:change";function G(e){var n=e.toggleOverridden,a=(0,t.useRef)(null);return(0,t.useEffect)((function(){var e=function(){n(Z())};return window.addEventListener(q,e),function(){return window.removeEventListener(q,e)}}),[n]),r().createElement("div",{className:Y.importMap},r().createElement(z,{ref:a}))}function Z(){return Object.keys(window.importMapOverrides.getOverrideMap().imports).length>0}var J=a(19287),Q=a(91631),V={};V.styleTagTransform=C(),V.setAttributes=y(),V.insert=$().bind(null,"head"),V.domAPI=m(),V.insertStyleElement=_(),p()(Q.A,V);const K=Q.A&&Q.A.locals?Q.A.locals:void 0,ee=function(e){return r().createElement("div",{className:K.popup},r().createElement(G,{toggleOverridden:e.toggleOverridden}),r().createElement("div",{className:K.farRight},r().createElement(d.IconButton,{kind:"ghost",label:(0,J.getCoreTranslation)("close"),onClick:e.close,size:"sm"},r().createElement(J.CloseIcon,{size:16}))))};var ne=a(46694),ae={};ae.styleTagTransform=C(),ae.setAttributes=y(),ae.insert=$().bind(null,"head"),ae.domAPI=m(),ae.insertStyleElement=_(),p()(ne.A,ae);const te=ne.A&&ne.A.locals?ne.A.locals:void 0;function re(e,n){(null==n||n>e.length)&&(n=e.length);for(var a=0,t=new Array(n);a<n;a++)t[a]=e[a];return t}function oe(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var t,r,o=[],l=!0,d=!1;try{for(a=a.call(e);!(l=(t=a.next()).done)&&(o.push(t.value),!n||o.length!==n);l=!0);}catch(e){d=!0,r=e}finally{try{l||null==a.return||a.return()}finally{if(d)throw r}}return o}}(e,n)||function(e,n){if(e){if("string"==typeof e)return re(e,n);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(a):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?re(e,n):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var le=function(){return"development"===window.spaEnv||Boolean(localStorage.getItem("openmrs:devtools"))};function de(e){return le()?r().createElement(ue,e):null}function ue(e){var n,a,o,u=oe((0,t.useState)(!1),2),f=u[0],c=u[1],i=oe((0,t.useState)(Z),2),s=i[0],p=i[1],g=function(){return c((function(e){return!e}))};return r().createElement(r().Fragment,null,r().createElement(d.Button,{className:l()(te.devtoolsTriggerButton,(n={},a=te.overridden,o=s,a in n?Object.defineProperty(n,a,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[a]=o,n)),kind:"ghost",onClick:g,size:"md"},"{···}"),f&&r().createElement(ee,{close:g,toggleOverridden:function(e){return p(e)}}))}},27135:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var n=e.insertStyleElement(e);return{update:function(a){!function(e,n,a){var t="";a.supports&&(t+="@supports (".concat(a.supports,") {")),a.media&&(t+="@media ".concat(a.media," {"));var r=void 0!==a.layer;r&&(t+="@layer".concat(a.layer.length>0?" ".concat(a.layer):""," {")),t+=a.css,r&&(t+="}"),a.media&&(t+="}"),a.supports&&(t+="}");var o=a.sourceMap;o&&"undefined"!=typeof btoa&&(t+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),n.styleTagTransform(t,e,n.options)}(n,e,a)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)}}}},41109:e=>{"use strict";function n(e,n){(null==n||n>e.length)&&(n=e.length);for(var a=0,t=new Array(n);a<n;a++)t[a]=e[a];return t}e.exports=function(e){var a,t,r=(t=4,function(e){if(Array.isArray(e))return e}(a=e)||function(e,n){var a=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=a){var t,r,o=[],l=!0,d=!1;try{for(a=a.call(e);!(l=(t=a.next()).done)&&(o.push(t.value),!n||o.length!==n);l=!0);}catch(e){d=!0,r=e}finally{try{l||null==a.return||a.return()}finally{if(d)throw r}}return o}}(a,t)||function(e,a){if(e){if("string"==typeof e)return n(e,a);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?n(e,a):void 0}}(a,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=r[1],l=r[3];if(!l)return o;if("function"==typeof btoa){var d=btoa(unescape(encodeURIComponent(JSON.stringify(l)))),u="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(d),f="/*# ".concat(u," */"),c=l.sources.map((function(e){return"/*# sourceURL=".concat(l.sourceRoot||"").concat(e," */")}));return[o].concat(c).concat([f]).join("\n")}return[o].join("\n")}},46694:(e,n,a)=>{"use strict";a.d(n,{A:()=>d});var t=a(41109),r=a.n(t),o=a(75248),l=a.n(o)()(r());l.push([e.id,".-esm-devtools__devtools-styles__devtoolsTriggerButton___Pa-R4{z-index:7900;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);border-radius:.25rem;bottom:4rem;color:#161616;cursor:pointer;right:.5rem;position:fixed;height:2.5rem;width:2.5rem;padding-inline:0 !important;display:flex;align-items:center;justify-content:center}.-esm-devtools__devtools-styles__devtoolsTriggerButton___Pa-R4:hover{color:#0f62fe !important}.-esm-devtools__devtools-styles__overridden___vBCr9{background-color:#da1e28;color:#fff}","",{version:3,sources:["webpack://./src/devtools/devtools.styles.scss","webpack://./../../../node_modules/@carbon/colors/index.scss","webpack://./../../../node_modules/@carbon/layout/scss/generated/_spacing.scss"],names:[],mappings:"AAGA,+DACE,YAAA,CACA,eCIM,CDHN,iEACE,CAEF,oBEOW,CFLX,WE6CW,CF5CX,aCuCS,CDtCT,cAAA,CACA,WEOW,CFNX,cAAA,CACA,aE8BW,CF7BX,YE6BW,CF5BX,2BAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,qEACE,wBAAA,CAIJ,oDACE,wBCoEO,CDnEP,UCrBM",sourcesContent:["@use '@carbon/colors';\n@use '@carbon/layout';\n\n.devtoolsTriggerButton {\n z-index: 7900;\n background: colors.$white;\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.1),\n 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n border-radius: layout.$spacing-02;\n // this is to account for the position of the help menu button\n bottom: layout.$spacing-10;\n color: colors.$gray-100;\n cursor: pointer;\n right: layout.$spacing-03;\n position: fixed;\n height: layout.$spacing-08;\n width: layout.$spacing-08;\n padding-inline: 0 !important;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover {\n color: colors.$blue-60 !important;\n }\n}\n\n.overridden {\n background-color: colors.$red-60;\n color: colors.$white;\n}\n","// Code generated by @carbon/colors. DO NOT EDIT.\n//\n// Copyright IBM Corp. 2018, 2023\n//\n// This source code is licensed under the Apache-2.0 license found in the\n// LICENSE file in the root directory of this source tree.\n//\n\n$black: #000000 !default;\n$white: #ffffff !default;\n\n$black-100: #000000 !default;\n$blue-10: #edf5ff !default;\n$blue-20: #d0e2ff !default;\n$blue-30: #a6c8ff !default;\n$blue-40: #78a9ff !default;\n$blue-50: #4589ff !default;\n$blue-60: #0f62fe !default;\n$blue-70: #0043ce !default;\n$blue-80: #002d9c !default;\n$blue-90: #001d6c !default;\n$blue-100: #001141 !default;\n$cool-gray-10: #f2f4f8 !default;\n$cool-gray-20: #dde1e6 !default;\n$cool-gray-30: #c1c7cd !default;\n$cool-gray-40: #a2a9b0 !default;\n$cool-gray-50: #878d96 !default;\n$cool-gray-60: #697077 !default;\n$cool-gray-70: #4d5358 !default;\n$cool-gray-80: #343a3f !default;\n$cool-gray-90: #21272a !default;\n$cool-gray-100: #121619 !default;\n$cyan-10: #e5f6ff !default;\n$cyan-20: #bae6ff !default;\n$cyan-30: #82cfff !default;\n$cyan-40: #33b1ff !default;\n$cyan-50: #1192e8 !default;\n$cyan-60: #0072c3 !default;\n$cyan-70: #00539a !default;\n$cyan-80: #003a6d !default;\n$cyan-90: #012749 !default;\n$cyan-100: #061727 !default;\n$gray-10: #f4f4f4 !default;\n$gray-20: #e0e0e0 !default;\n$gray-30: #c6c6c6 !default;\n$gray-40: #a8a8a8 !default;\n$gray-50: #8d8d8d !default;\n$gray-60: #6f6f6f !default;\n$gray-70: #525252 !default;\n$gray-80: #393939 !default;\n$gray-90: #262626 !default;\n$gray-100: #161616 !default;\n$green-10: #defbe6 !default;\n$green-20: #a7f0ba !default;\n$green-30: #6fdc8c !default;\n$green-40: #42be65 !default;\n$green-50: #24a148 !default;\n$green-60: #198038 !default;\n$green-70: #0e6027 !default;\n$green-80: #044317 !default;\n$green-90: #022d0d !default;\n$green-100: #071908 !default;\n$magenta-10: #fff0f7 !default;\n$magenta-20: #ffd6e8 !default;\n$magenta-30: #ffafd2 !default;\n$magenta-40: #ff7eb6 !default;\n$magenta-50: #ee5396 !default;\n$magenta-60: #d02670 !default;\n$magenta-70: #9f1853 !default;\n$magenta-80: #740937 !default;\n$magenta-90: #510224 !default;\n$magenta-100: #2a0a18 !default;\n$orange-10: #fff2e8 !default;\n$orange-20: #ffd9be !default;\n$orange-30: #ffb784 !default;\n$orange-40: #ff832b !default;\n$orange-50: #eb6200 !default;\n$orange-60: #ba4e00 !default;\n$orange-70: #8a3800 !default;\n$orange-80: #5e2900 !default;\n$orange-90: #3e1a00 !default;\n$orange-100: #231000 !default;\n$purple-10: #f6f2ff !default;\n$purple-20: #e8daff !default;\n$purple-30: #d4bbff !default;\n$purple-40: #be95ff !default;\n$purple-50: #a56eff !default;\n$purple-60: #8a3ffc !default;\n$purple-70: #6929c4 !default;\n$purple-80: #491d8b !default;\n$purple-90: #31135e !default;\n$purple-100: #1c0f30 !default;\n$red-10: #fff1f1 !default;\n$red-20: #ffd7d9 !default;\n$red-30: #ffb3b8 !default;\n$red-40: #ff8389 !default;\n$red-50: #fa4d56 !default;\n$red-60: #da1e28 !default;\n$red-70: #a2191f !default;\n$red-80: #750e13 !default;\n$red-90: #520408 !default;\n$red-100: #2d0709 !default;\n$teal-10: #d9fbfb !default;\n$teal-20: #9ef0f0 !default;\n$teal-30: #3ddbd9 !default;\n$teal-40: #08bdba !default;\n$teal-50: #009d9a !default;\n$teal-60: #007d79 !default;\n$teal-70: #005d5d !default;\n$teal-80: #004144 !default;\n$teal-90: #022b30 !default;\n$teal-100: #081a1c !default;\n$warm-gray-10: #f7f3f2 !default;\n$warm-gray-20: #e5e0df !default;\n$warm-gray-30: #cac5c4 !default;\n$warm-gray-40: #ada8a8 !default;\n$warm-gray-50: #8f8b8b !default;\n$warm-gray-60: #726e6e !default;\n$warm-gray-70: #565151 !default;\n$warm-gray-80: #3c3838 !default;\n$warm-gray-90: #272525 !default;\n$warm-gray-100: #171414 !default;\n$white-0: #ffffff !default;\n$yellow-10: #fcf4d6 !default;\n$yellow-20: #fddc69 !default;\n$yellow-30: #f1c21b !default;\n$yellow-40: #d2a106 !default;\n$yellow-50: #b28600 !default;\n$yellow-60: #8e6a00 !default;\n$yellow-70: #684e00 !default;\n$yellow-80: #483700 !default;\n$yellow-90: #302400 !default;\n$yellow-100: #1c1500 !default;\n\n$white-hover: #e8e8e8 !default;\n$black-hover: #212121 !default;\n$blue-10-hover: #dbebff !default;\n$blue-20-hover: #b8d3ff !default;\n$blue-30-hover: #8ab6ff !default;\n$blue-40-hover: #5c97ff !default;\n$blue-50-hover: #1f70ff !default;\n$blue-60-hover: #0050e6 !default;\n$blue-70-hover: #0053ff !default;\n$blue-80-hover: #0039c7 !default;\n$blue-90-hover: #00258a !default;\n$blue-100-hover: #001f75 !default;\n$cool-gray-10-hover: #e4e9f1 !default;\n$cool-gray-20-hover: #cdd3da !default;\n$cool-gray-30-hover: #adb5bd !default;\n$cool-gray-40-hover: #9199a1 !default;\n$cool-gray-50-hover: #757b85 !default;\n$cool-gray-60-hover: #585e64 !default;\n$cool-gray-70-hover: #5d646a !default;\n$cool-gray-80-hover: #434a51 !default;\n$cool-gray-90-hover: #2b3236 !default;\n$cool-gray-100-hover: #222a2f !default;\n$cyan-10-hover: #cceeff !default;\n$cyan-20-hover: #99daff !default;\n$cyan-30-hover: #57beff !default;\n$cyan-40-hover: #059fff !default;\n$cyan-50-hover: #0f7ec8 !default;\n$cyan-60-hover: #005fa3 !default;\n$cyan-70-hover: #0066bd !default;\n$cyan-80-hover: #00498a !default;\n$cyan-90-hover: #013360 !default;\n$cyan-100-hover: #0b2947 !default;\n$gray-10-hover: #e8e8e8 !default;\n$gray-20-hover: #d1d1d1 !default;\n$gray-30-hover: #b5b5b5 !default;\n$gray-40-hover: #999999 !default;\n$gray-50-hover: #7a7a7a !default;\n$gray-60-hover: #5e5e5e !default;\n$gray-70-hover: #636363 !default;\n$gray-80-hover: #474747 !default;\n$gray-90-hover: #333333 !default;\n$gray-100-hover: #292929 !default;\n$green-10-hover: #b6f6c8 !default;\n$green-20-hover: #74e792 !default;\n$green-30-hover: #36ce5e !default;\n$green-40-hover: #3bab5a !default;\n$green-50-hover: #208e3f !default;\n$green-60-hover: #166f31 !default;\n$green-70-hover: #11742f !default;\n$green-80-hover: #05521c !default;\n$green-90-hover: #033b11 !default;\n$green-100-hover: #0d300f !default;\n$magenta-10-hover: #ffe0ef !default;\n$magenta-20-hover: #ffbdda !default;\n$magenta-30-hover: #ff94c3 !default;\n$magenta-40-hover: #ff57a0 !default;\n$magenta-50-hover: #e3176f !default;\n$magenta-60-hover: #b0215f !default;\n$magenta-70-hover: #bf1d63 !default;\n$magenta-80-hover: #8e0b43 !default;\n$magenta-90-hover: #68032e !default;\n$magenta-100-hover: #53142f !default;\n$orange-10-hover: #ffe2cc !default;\n$orange-20-hover: #ffc69e !default;\n$orange-30-hover: #ff9d57 !default;\n$orange-40-hover: #fa6800 !default;\n$orange-50-hover: #cc5500 !default;\n$orange-60-hover: #9e4200 !default;\n$orange-70-hover: #a84400 !default;\n$orange-80-hover: #753300 !default;\n$orange-90-hover: #522200 !default;\n$orange-100-hover: #421e00 !default;\n$purple-10-hover: #ede5ff !default;\n$purple-20-hover: #dcc7ff !default;\n$purple-30-hover: #c5a3ff !default;\n$purple-40-hover: #ae7aff !default;\n$purple-50-hover: #9352ff !default;\n$purple-60-hover: #7822fb !default;\n$purple-70-hover: #7c3dd6 !default;\n$purple-80-hover: #5b24ad !default;\n$purple-90-hover: #40197b !default;\n$purple-100-hover: #341c59 !default;\n$red-10-hover: #ffe0e0 !default;\n$red-20-hover: #ffc2c5 !default;\n$red-30-hover: #ff99a0 !default;\n$red-40-hover: #ff6168 !default;\n$red-50-hover: #ee0713 !default;\n$red-60-hover: #b81922 !default;\n$red-70-hover: #c21e25 !default;\n$red-80-hover: #921118 !default;\n$red-90-hover: #66050a !default;\n$red-100-hover: #540d11 !default;\n$teal-10-hover: #acf6f6 !default;\n$teal-20-hover: #57e5e5 !default;\n$teal-30-hover: #25cac8 !default;\n$teal-40-hover: #07aba9 !default;\n$teal-50-hover: #008a87 !default;\n$teal-60-hover: #006b68 !default;\n$teal-70-hover: #007070 !default;\n$teal-80-hover: #005357 !default;\n$teal-90-hover: #033940 !default;\n$teal-100-hover: #0f3034 !default;\n$warm-gray-10-hover: #f0e8e6 !default;\n$warm-gray-20-hover: #d8d0cf !default;\n$warm-gray-30-hover: #b9b3b1 !default;\n$warm-gray-40-hover: #9c9696 !default;\n$warm-gray-50-hover: #7f7b7b !default;\n$warm-gray-60-hover: #605d5d !default;\n$warm-gray-70-hover: #696363 !default;\n$warm-gray-80-hover: #4c4848 !default;\n$warm-gray-90-hover: #343232 !default;\n$warm-gray-100-hover: #2c2626 !default;\n$yellow-10-hover: #f8e6a0 !default;\n$yellow-20-hover: #fccd27 !default;\n$yellow-30-hover: #ddb00e !default;\n$yellow-40-hover: #bc9005 !default;\n$yellow-50-hover: #9e7700 !default;\n$yellow-60-hover: #755800 !default;\n$yellow-70-hover: #806000 !default;\n$yellow-80-hover: #5c4600 !default;\n$yellow-90-hover: #3d2e00 !default;\n$yellow-100-hover: #332600 !default;\n\n/// Colors from the IBM Design Language\n/// @access public\n/// @group @carbon/colors\n$colors: (\n black: (\n 100: #000000,\n ),\n blue: (\n 10: #edf5ff,\n 20: #d0e2ff,\n 30: #a6c8ff,\n 40: #78a9ff,\n 50: #4589ff,\n 60: #0f62fe,\n 70: #0043ce,\n 80: #002d9c,\n 90: #001d6c,\n 100: #001141,\n ),\n cool-gray: (\n 10: #f2f4f8,\n 20: #dde1e6,\n 30: #c1c7cd,\n 40: #a2a9b0,\n 50: #878d96,\n 60: #697077,\n 70: #4d5358,\n 80: #343a3f,\n 90: #21272a,\n 100: #121619,\n ),\n cyan: (\n 10: #e5f6ff,\n 20: #bae6ff,\n 30: #82cfff,\n 40: #33b1ff,\n 50: #1192e8,\n 60: #0072c3,\n 70: #00539a,\n 80: #003a6d,\n 90: #012749,\n 100: #061727,\n ),\n gray: (\n 10: #f4f4f4,\n 20: #e0e0e0,\n 30: #c6c6c6,\n 40: #a8a8a8,\n 50: #8d8d8d,\n 60: #6f6f6f,\n 70: #525252,\n 80: #393939,\n 90: #262626,\n 100: #161616,\n ),\n green: (\n 10: #defbe6,\n 20: #a7f0ba,\n 30: #6fdc8c,\n 40: #42be65,\n 50: #24a148,\n 60: #198038,\n 70: #0e6027,\n 80: #044317,\n 90: #022d0d,\n 100: #071908,\n ),\n magenta: (\n 10: #fff0f7,\n 20: #ffd6e8,\n 30: #ffafd2,\n 40: #ff7eb6,\n 50: #ee5396,\n 60: #d02670,\n 70: #9f1853,\n 80: #740937,\n 90: #510224,\n 100: #2a0a18,\n ),\n orange: (\n 10: #fff2e8,\n 20: #ffd9be,\n 30: #ffb784,\n 40: #ff832b,\n 50: #eb6200,\n 60: #ba4e00,\n 70: #8a3800,\n 80: #5e2900,\n 90: #3e1a00,\n 100: #231000,\n ),\n purple: (\n 10: #f6f2ff,\n 20: #e8daff,\n 30: #d4bbff,\n 40: #be95ff,\n 50: #a56eff,\n 60: #8a3ffc,\n 70: #6929c4,\n 80: #491d8b,\n 90: #31135e,\n 100: #1c0f30,\n ),\n red: (\n 10: #fff1f1,\n 20: #ffd7d9,\n 30: #ffb3b8,\n 40: #ff8389,\n 50: #fa4d56,\n 60: #da1e28,\n 70: #a2191f,\n 80: #750e13,\n 90: #520408,\n 100: #2d0709,\n ),\n teal: (\n 10: #d9fbfb,\n 20: #9ef0f0,\n 30: #3ddbd9,\n 40: #08bdba,\n 50: #009d9a,\n 60: #007d79,\n 70: #005d5d,\n 80: #004144,\n 90: #022b30,\n 100: #081a1c,\n ),\n warm-gray: (\n 10: #f7f3f2,\n 20: #e5e0df,\n 30: #cac5c4,\n 40: #ada8a8,\n 50: #8f8b8b,\n 60: #726e6e,\n 70: #565151,\n 80: #3c3838,\n 90: #272525,\n 100: #171414,\n ),\n white: (\n 0: #ffffff,\n ),\n yellow: (\n 10: #fcf4d6,\n 20: #fddc69,\n 30: #f1c21b,\n 40: #d2a106,\n 50: #b28600,\n 60: #8e6a00,\n 70: #684e00,\n 80: #483700,\n 90: #302400,\n 100: #1c1500,\n ),\n) !default;\n","// Code generated by @carbon/layout. DO NOT EDIT.\n//\n// Copyright IBM Corp. 2018, 2023\n//\n// This source code is licensed under the Apache-2.0 license found in the\n// LICENSE file in the root directory of this source tree.\n//\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-01: 0.125rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-02: 0.25rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-03: 0.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-04: 0.75rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-05: 1rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-06: 1.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-07: 2rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-08: 2.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-09: 3rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-10: 4rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-11: 5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-12: 6rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-13: 10rem !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/layout\n$spacing: (\n spacing-01: $spacing-01,\n spacing-02: $spacing-02,\n spacing-03: $spacing-03,\n spacing-04: $spacing-04,\n spacing-05: $spacing-05,\n spacing-06: $spacing-06,\n spacing-07: $spacing-07,\n spacing-08: $spacing-08,\n spacing-09: $spacing-09,\n spacing-10: $spacing-10,\n spacing-11: $spacing-11,\n spacing-12: $spacing-12,\n spacing-13: $spacing-13,\n);\n"],sourceRoot:""}]),l.locals={devtoolsTriggerButton:"-esm-devtools__devtools-styles__devtoolsTriggerButton___Pa-R4",overridden:"-esm-devtools__devtools-styles__overridden___vBCr9"};const d=l},49222:(e,n,a)=>{"use strict";e.exports=function(e){var n=a.nc;n&&e.setAttribute("nonce",n)}},55530:(e,n)=>{var a;!function(){"use strict";var t={}.hasOwnProperty;function r(){for(var e="",n=0;n<arguments.length;n++){var a=arguments[n];a&&(e=l(e,o(a)))}return e}function o(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return r.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var n="";for(var a in e)t.call(e,a)&&e[a]&&(n=l(n,a));return n}function l(e,n){return n?e?e+" "+n:e+n:e}e.exports?(r.default=r,e.exports=r):void 0===(a=function(){return r}.apply(n,[]))||(e.exports=a)}()},61301:e=>{"use strict";var n={};e.exports=function(e,a){var t=function(e){if(void 0===n[e]){var a=document.querySelector(e);if(window.HTMLIFrameElement&&a instanceof window.HTMLIFrameElement)try{a=a.contentDocument.head}catch(e){a=null}n[e]=a}return n[e]}(e);if(!t)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");t.appendChild(a)}},75248:e=>{"use strict";e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var a=e(n);return n[2]?"@media ".concat(n[2]," {").concat(a,"}"):a})).join("")},n.i=function(e,a,t){"string"==typeof e&&(e=[[null,e,""]]);var r={};if(t)for(var o=0;o<this.length;o++){var l=this[o][0];null!=l&&(r[l]=!0)}for(var d=0;d<e.length;d++){var u=[].concat(e[d]);t&&r[u[0]]||(a&&(u[2]?u[2]="".concat(a," and ").concat(u[2]):u[2]=a),n.push(u))}},n}},85863:(e,n,a)=>{"use strict";a.d(n,{A:()=>d});var t=a(41109),r=a.n(t),o=a(75248),l=a.n(o)()(r());l.push([e.id,".-esm-devtools__import-map-styles__importMap___ICDeA {\n width: 100%;\n margin-top: 12px;\n}\n","",{version:3,sources:["webpack://./src/devtools/import-map.styles.css"],names:[],mappings:"AAAA;EACE,WAAW;EACX,gBAAgB;AAClB",sourcesContent:[".importMap {\n width: 100%;\n margin-top: 12px;\n}\n"],sourceRoot:""}]),l.locals={importMap:"-esm-devtools__import-map-styles__importMap___ICDeA"};const d=l},88279:e=>{"use strict";e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}},89925:e=>{var n;n={},e.exports=n,n.simpleFilter=function(e,a){return a.filter((function(a){return n.test(e,a)}))},n.test=function(e,a){return null!==n.match(e,a)},n.match=function(e,n,a){a=a||{};var t,r=0,o=[],l=n.length,d=0,u=0,f=a.pre||"",c=a.post||"",i=a.caseSensitive&&n||n.toLowerCase();e=a.caseSensitive&&e||e.toLowerCase();for(var s=0;s<l;s++)t=n[s],i[s]===e[r]?(t=f+t+c,r+=1,u+=1+u):u=0,d+=u,o[o.length]=t;return r===e.length?(d=i===e?1/0:d,{rendered:o.join(""),score:d}):null},n.filter=function(e,a,t){return a&&0!==a.length?"string"!=typeof e?a:(t=t||{},a.reduce((function(a,r,o,l){var d=r;t.extract&&(d=t.extract(r));var u=n.match(e,d,t);return null!=u&&(a[a.length]={string:u.rendered,score:u.score,index:o,original:r}),a}),[]).sort((function(e,n){return n.score-e.score||e.index-n.index}))):[]}},91631:(e,n,a)=>{"use strict";a.d(n,{A:()=>d});var t=a(41109),r=a.n(t),o=a(75248),l=a.n(o)()(r());l.push([e.id,":root{--brand-01: #005d5d;--brand-02: #004144;--brand-03: #007d79;--bottom-nav-height: 4rem;--workspace-header-height: 3rem;--tablet-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--bottom-nav-height));--desktop-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--workspace-header-height))}.-esm-devtools__devtools-popup-styles__popup___Y1Ssz{position:fixed;bottom:0;left:0;width:100%;height:50%;z-index:8000;background-color:#e0e0e0;border-top:2px solid #161616;color:#161616;box-sizing:border-box}.-esm-devtools__devtools-popup-styles__tabs___9zC9E{width:100%}.-esm-devtools__devtools-popup-styles__tabList___Y076U{position:fixed;height:4rem;width:100%;z-index:1000;background-color:#000}.-esm-devtools__devtools-popup-styles__tabPanels___Ek7tJ{padding:1.5rem}.-esm-devtools__devtools-popup-styles__farRight___upQZM{position:absolute;right:.75rem;top:.75rem;display:flex;z-index:1000}","",{version:3,sources:["webpack://./../../framework/esm-styleguide/src/_vars.scss","webpack://./src/devtools/devtools-popup.styles.scss","webpack://./../../../node_modules/@carbon/layout/scss/generated/_spacing.scss"],names:[],mappings:"AAsDA,MACE,mBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,+BAAA,CACA,oGAAA,CACA,2GAAA,CC1DF,qDACE,cAAA,CACA,QAAA,CACA,MAAA,CACA,UAAA,CACA,UAAA,CACA,YAAA,CACA,wBDNM,CCON,4BAAA,CACA,aAAA,CACA,qBAAA,CAGF,oDACE,UAAA,CAGF,uDACE,cAAA,CACA,WCkCW,CDjCX,UAAA,CACA,YAAA,CACA,qBAAA,CAGF,yDACE,cCOW,CDJb,wDACE,iBAAA,CACA,YCRW,CDSX,UCTW,CDUX,YAAA,CACA,YAAA",sourcesContent:["@use '@carbon/layout';\n\n$ui-01: #f4f4f4;\n$ui-02: #ffffff;\n$ui-03: #e0e0e0;\n$ui-04: #8d8d8d;\n$ui-05: #161616;\n$text-02: #525252;\n$text-03: #a8a8a8;\n$ui-background: #ffffff;\n$color-gray-30: #c6c6c6;\n$color-gray-70: #525252;\n$color-gray-100: #161616;\n$color-blue-60-2: #0f62fe;\n$color-blue-10: #edf5ff;\n$color-yellow-50: #feecae;\n$carbon--red-50: #fa4d56;\n$inverse-link: #78a9ff;\n$support-02: #24a148;\n$inverse-support-03: #f1c21b;\n$warning-background: #fff8e1;\n$openmrs-background-grey: #f4f4f4;\n$danger: #da1e28;\n$interactive-01: #0f62fe;\n$field-01: #f4f4f4;\n$grey-2: #e0e0e0;\n$labeldropdown: #c6c6c6;\n\n$brand-primary-10: #d9fbfb;\n$brand-primary-20: #9ef0f0;\n$brand-primary-30: #3ddbd9;\n$brand-primary-40: #08bdba;\n$brand-primary-50: #009d9a;\n\n/* 60,70 and 80 are already declared as brand-01, 02 and 03 respectively */\n\n$brand-primary-90: #022b30;\n$brand-primary-100: #081a1c;\n\n@mixin brand-01($property) {\n #{$property}: #005d5d;\n #{$property}: var(--brand-01);\n}\n\n@mixin brand-02($property) {\n #{$property}: #004144;\n #{$property}: var(--brand-02);\n}\n\n@mixin brand-03($property) {\n #{$property}: #007d79;\n #{$property}: var(--brand-03);\n}\n\n:root {\n --brand-01: #005d5d;\n --brand-02: #004144;\n --brand-03: #007d79;\n --bottom-nav-height: #{layout.$spacing-10};\n --workspace-header-height: #{layout.$spacing-09};\n --tablet-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--bottom-nav-height));\n --desktop-workspace-window-height: calc(100vh - var(--omrs-navbar-height) - var(--workspace-header-height));\n}\n\n$breakpoint-phone-min: 0px;\n$breakpoint-phone-max: 600px;\n$breakpoint-tablet-min: 601px;\n$breakpoint-tablet-max: 1023px;\n$breakpoint-small-desktop-min: 1024px;\n$breakpoint-small-desktop-max: 1439px;\n$breakpoint-large-desktop-min: 1440px;\n$breakpoint-large-desktop-max: 99999999px;\n\n/* These color variables will be removed in a future release */\n$brand-teal-01: #007d79;\n$brand-01: #005d5d;\n$brand-02: #004144;\n","@use '@carbon/layout';\n@use '@openmrs/esm-styleguide/src/vars' as *;\n\n.popup {\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 50%;\n z-index: 8000;\n background-color: $ui-03;\n border-top: 2px solid $ui-05;\n color: $color-gray-100;\n box-sizing: border-box;\n}\n\n.tabs {\n width: 100%;\n}\n\n.tabList {\n position: fixed;\n height: layout.$spacing-10;\n width: 100%;\n z-index: 1000;\n background-color: black;\n}\n\n.tabPanels {\n padding: layout.$spacing-06;\n}\n\n.farRight {\n position: absolute;\n right: layout.$spacing-04;\n top: layout.$spacing-04;\n display: flex;\n z-index: 1000;\n}\n","// Code generated by @carbon/layout. DO NOT EDIT.\n//\n// Copyright IBM Corp. 2018, 2023\n//\n// This source code is licensed under the Apache-2.0 license found in the\n// LICENSE file in the root directory of this source tree.\n//\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-01: 0.125rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-02: 0.25rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-03: 0.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-04: 0.75rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-05: 1rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-06: 1.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-07: 2rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-08: 2.5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-09: 3rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-10: 4rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-11: 5rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-12: 6rem !default;\n\n/// @type Number\n/// @access public\n/// @group @carbon/layout\n$spacing-13: 10rem !default;\n\n/// @type Map\n/// @access public\n/// @group @carbon/layout\n$spacing: (\n spacing-01: $spacing-01,\n spacing-02: $spacing-02,\n spacing-03: $spacing-03,\n spacing-04: $spacing-04,\n spacing-05: $spacing-05,\n spacing-06: $spacing-06,\n spacing-07: $spacing-07,\n spacing-08: $spacing-08,\n spacing-09: $spacing-09,\n spacing-10: $spacing-10,\n spacing-11: $spacing-11,\n spacing-12: $spacing-12,\n spacing-13: $spacing-13,\n);\n"],sourceRoot:""}]),l.locals={popup:"-esm-devtools__devtools-popup-styles__popup___Y1Ssz",tabs:"-esm-devtools__devtools-popup-styles__tabs___9zC9E",tabList:"-esm-devtools__devtools-popup-styles__tabList___Y076U",tabPanels:"-esm-devtools__devtools-popup-styles__tabPanels___Ek7tJ",farRight:"-esm-devtools__devtools-popup-styles__farRight___upQZM"};const d=l},97478:e=>{"use strict";var n=[];function a(e){for(var a=-1,t=0;t<n.length;t++)if(n[t].identifier===e){a=t;break}return a}function t(e,t){for(var o={},l=[],d=0;d<e.length;d++){var u=e[d],f=t.base?u[0]+t.base:u[0],c=o[f]||0,i="".concat(f," ").concat(c);o[f]=c+1;var s=a(i),p={css:u[1],media:u[2],sourceMap:u[3],supports:u[4],layer:u[5]};if(-1!==s)n[s].references++,n[s].updater(p);else{var g=r(p,t);t.byIndex=d,n.splice(d,0,{identifier:i,updater:g,references:1})}l.push(i)}return l}function r(e,n){var a=n.domAPI(n);return a.update(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap&&n.supports===e.supports&&n.layer===e.layer)return;a.update(e=n)}else a.remove()}}e.exports=function(e,r){var o=t(e=e||[],r=r||{});return function(e){e=e||[];for(var l=0;l<o.length;l++){var d=a(o[l]);n[d].references--}for(var u=t(e,r),f=0;f<o.length;f++){var c=a(o[f]);0===n[c].references&&(n[c].updater(),n.splice(c,1))}o=u}}}}]);
|