@openmrs/esm-app-shell 8.0.1-pre.3766 → 8.0.1-pre.3775
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 +21 -22
- package/dist/{fc17630a0091f00c.js → 085e24dcbf3e22c7.js} +1 -1
- package/dist/085e24dcbf3e22c7.js.map +1 -0
- package/dist/{fc8d244f843ee5c1.js → 7cdacf445d9e2d99.js} +1 -1
- package/dist/{fc8d244f843ee5c1.js.map → 7cdacf445d9e2d99.js.map} +1 -1
- package/dist/{03ac84e33d0ec9e4.js → cbb7033938a633b6.js} +1 -1
- package/dist/{03ac84e33d0ec9e4.js.map → cbb7033938a633b6.js.map} +1 -1
- package/dist/index.html +1 -1
- package/dist/{openmrs.6cb9dd6cdc866521.js → openmrs.d4b6b48d1e102aea.js} +1 -1
- package/dist/{openmrs.6cb9dd6cdc866521.js.map → openmrs.d4b6b48d1e102aea.js.map} +1 -1
- package/dist/service-worker.js +1 -1
- package/lib/{ca904c676f2dfa25.js → 13c28a7bdbd87be8.js} +1 -1
- package/lib/{b5b6c10709675932.js → 21a2883f11672f5f.js} +2 -2
- package/lib/{786faf64e267b8b2.js → 9b60f191959e10e2.js} +1 -1
- package/lib/esm-devtools-app/460.js +1 -1
- package/lib/esm-devtools-app/460.js.map +1 -1
- package/lib/esm-devtools-app/main.js +1 -1
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.js +1 -1
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.js.buildmanifest.json +5 -5
- package/lib/esm-devtools-app/routes.json +1 -1
- package/lib/esm-implementer-tools-app/1119.js +1 -0
- package/lib/esm-implementer-tools-app/1197.js +1 -0
- package/lib/esm-implementer-tools-app/1405.js +1 -0
- package/lib/esm-implementer-tools-app/1405.js.map +1 -0
- package/lib/esm-implementer-tools-app/1915.js +1 -0
- package/lib/esm-implementer-tools-app/1915.js.map +1 -0
- package/lib/esm-implementer-tools-app/2146.js +1 -0
- package/lib/esm-implementer-tools-app/2369.js +2 -0
- package/lib/esm-implementer-tools-app/2369.js.LICENSE.txt +19 -0
- package/lib/esm-implementer-tools-app/2369.js.map +1 -0
- package/lib/esm-implementer-tools-app/2690.js +1 -0
- package/lib/esm-implementer-tools-app/3099.js +1 -0
- package/lib/esm-implementer-tools-app/3185.js +2 -0
- package/lib/esm-implementer-tools-app/3185.js.map +1 -0
- package/lib/esm-implementer-tools-app/3584.js +1 -0
- package/lib/esm-implementer-tools-app/3709.js +1 -0
- package/lib/esm-implementer-tools-app/3709.js.map +1 -0
- package/lib/esm-implementer-tools-app/4055.js +1 -0
- package/lib/esm-implementer-tools-app/4132.js +1 -0
- package/lib/esm-implementer-tools-app/4300.js +1 -0
- package/lib/esm-implementer-tools-app/4335.js +1 -0
- package/lib/esm-implementer-tools-app/439.js +1 -0
- package/lib/esm-implementer-tools-app/4618.js +1 -0
- package/lib/esm-implementer-tools-app/4652.js +1 -0
- package/lib/esm-implementer-tools-app/4944.js +1 -0
- package/lib/esm-implementer-tools-app/5173.js +1 -0
- package/lib/esm-implementer-tools-app/523.js +2 -0
- package/lib/esm-implementer-tools-app/523.js.map +1 -0
- package/lib/esm-implementer-tools-app/5241.js +1 -0
- package/lib/esm-implementer-tools-app/5442.js +1 -0
- package/lib/esm-implementer-tools-app/5444.js +1 -0
- package/lib/esm-implementer-tools-app/5444.js.map +1 -0
- package/lib/esm-implementer-tools-app/5460.js +1 -0
- package/lib/esm-implementer-tools-app/5460.js.map +1 -0
- package/lib/esm-implementer-tools-app/5554.js +2 -0
- package/lib/{esm-help-menu-app/431.js.LICENSE.txt → esm-implementer-tools-app/5554.js.LICENSE.txt} +0 -10
- package/lib/esm-implementer-tools-app/5554.js.map +1 -0
- package/lib/esm-implementer-tools-app/5563.js +1 -0
- package/lib/esm-implementer-tools-app/5563.js.map +1 -0
- package/lib/esm-implementer-tools-app/5623.js +2 -0
- package/lib/esm-implementer-tools-app/5623.js.map +1 -0
- package/lib/esm-implementer-tools-app/5661.js +1 -0
- package/lib/esm-implementer-tools-app/5770.js +2 -0
- package/lib/esm-implementer-tools-app/5770.js.map +1 -0
- package/lib/esm-implementer-tools-app/5839.js +2 -0
- package/lib/esm-implementer-tools-app/5839.js.LICENSE.txt +13 -0
- package/lib/esm-implementer-tools-app/5839.js.map +1 -0
- package/lib/esm-implementer-tools-app/6022.js +1 -0
- package/lib/esm-implementer-tools-app/6090.js +2 -0
- package/lib/esm-implementer-tools-app/6090.js.LICENSE.txt +9 -0
- package/lib/esm-implementer-tools-app/6090.js.map +1 -0
- package/lib/esm-implementer-tools-app/6132.js +1 -0
- package/lib/esm-implementer-tools-app/6132.js.map +1 -0
- package/lib/esm-implementer-tools-app/6269.js +2 -0
- package/lib/esm-implementer-tools-app/6269.js.LICENSE.txt +9 -0
- package/lib/esm-implementer-tools-app/6269.js.map +1 -0
- package/lib/esm-implementer-tools-app/6326.js +2 -0
- package/lib/esm-implementer-tools-app/6326.js.map +1 -0
- package/lib/esm-implementer-tools-app/6468.js +1 -0
- package/lib/esm-implementer-tools-app/6589.js +1 -0
- package/lib/esm-implementer-tools-app/6679.js +1 -0
- package/lib/esm-implementer-tools-app/6840.js +1 -0
- package/lib/esm-implementer-tools-app/6859.js +1 -0
- package/lib/esm-implementer-tools-app/7097.js +1 -0
- package/lib/esm-implementer-tools-app/7159.js +1 -0
- package/lib/esm-implementer-tools-app/723.js +1 -0
- package/lib/esm-implementer-tools-app/7617.js +1 -0
- package/lib/esm-implementer-tools-app/795.js +1 -0
- package/lib/esm-implementer-tools-app/8163.js +1 -0
- package/lib/esm-implementer-tools-app/8349.js +1 -0
- package/lib/esm-implementer-tools-app/8371.js +1 -0
- package/lib/esm-implementer-tools-app/8611.js +1 -0
- package/lib/esm-implementer-tools-app/8611.js.map +1 -0
- package/lib/esm-implementer-tools-app/8618.js +1 -0
- package/lib/esm-implementer-tools-app/8650.js +1 -0
- package/lib/esm-implementer-tools-app/8650.js.map +1 -0
- package/lib/esm-implementer-tools-app/890.js +1 -0
- package/lib/esm-implementer-tools-app/8995.js +2 -0
- package/lib/esm-implementer-tools-app/8995.js.LICENSE.txt +5 -0
- package/lib/esm-implementer-tools-app/8995.js.map +1 -0
- package/lib/esm-implementer-tools-app/8e7b152564424838.js +1 -0
- package/lib/esm-implementer-tools-app/9214.js +1 -0
- package/lib/esm-implementer-tools-app/9361.js +2 -0
- package/lib/esm-implementer-tools-app/9361.js.LICENSE.txt +9 -0
- package/lib/esm-implementer-tools-app/9361.js.map +1 -0
- package/lib/esm-implementer-tools-app/939.js +1 -0
- package/lib/{esm-help-menu-app → esm-implementer-tools-app}/939.js.map +1 -1
- package/lib/esm-implementer-tools-app/9538.js +1 -0
- package/lib/esm-implementer-tools-app/9569.js +1 -0
- package/lib/esm-implementer-tools-app/986.js +1 -0
- package/lib/esm-implementer-tools-app/9879.js +1 -0
- package/lib/esm-implementer-tools-app/9895.js +1 -0
- package/lib/esm-implementer-tools-app/9900.js +1 -0
- package/lib/esm-implementer-tools-app/9913.js +1 -0
- package/lib/esm-implementer-tools-app/main.js +1 -0
- package/lib/esm-implementer-tools-app/main.js.map +1 -0
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js +1 -0
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js.buildmanifest.json +1653 -0
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js.map +1 -0
- package/lib/esm-implementer-tools-app/routes.json +1 -0
- 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/esm-primary-navigation-app/5460.js +1 -1
- package/lib/esm-primary-navigation-app/5460.js.map +1 -1
- package/lib/esm-primary-navigation-app/main.js +1 -1
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js +1 -1
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js.buildmanifest.json +5 -5
- package/lib/esm-primary-navigation-app/routes.json +1 -1
- package/lib/index.html +2 -2
- package/lib/openmrs.js +10 -12
- package/lib/service-worker.js +1 -1
- package/package.json +3 -3
- package/src/ui/index.ts +1 -16
- package/dist/f33e1a600fdb8c9c.js +0 -1
- package/dist/f33e1a600fdb8c9c.js.map +0 -1
- package/dist/fc17630a0091f00c.js.map +0 -1
- package/lib/03273b38835a8c3c.js +0 -22
- package/lib/esm-help-menu-app/185.js +0 -2
- package/lib/esm-help-menu-app/185.js.map +0 -1
- package/lib/esm-help-menu-app/300.js +0 -1
- package/lib/esm-help-menu-app/322.js +0 -1
- package/lib/esm-help-menu-app/322.js.map +0 -1
- package/lib/esm-help-menu-app/326.js +0 -2
- package/lib/esm-help-menu-app/326.js.map +0 -1
- package/lib/esm-help-menu-app/431.js +0 -2
- package/lib/esm-help-menu-app/431.js.map +0 -1
- package/lib/esm-help-menu-app/460.js +0 -1
- package/lib/esm-help-menu-app/460.js.map +0 -1
- package/lib/esm-help-menu-app/555.js +0 -1
- package/lib/esm-help-menu-app/555.js.map +0 -1
- package/lib/esm-help-menu-app/611.js +0 -2
- package/lib/esm-help-menu-app/611.js.map +0 -1
- package/lib/esm-help-menu-app/623.js +0 -2
- package/lib/esm-help-menu-app/623.js.map +0 -1
- package/lib/esm-help-menu-app/7.js +0 -1
- package/lib/esm-help-menu-app/7.js.map +0 -1
- package/lib/esm-help-menu-app/76.js +0 -1
- package/lib/esm-help-menu-app/76.js.map +0 -1
- package/lib/esm-help-menu-app/770.js +0 -2
- package/lib/esm-help-menu-app/770.js.map +0 -1
- package/lib/esm-help-menu-app/802.js +0 -1
- package/lib/esm-help-menu-app/802.js.map +0 -1
- package/lib/esm-help-menu-app/90.js +0 -1
- package/lib/esm-help-menu-app/90.js.map +0 -1
- package/lib/esm-help-menu-app/939.js +0 -1
- package/lib/esm-help-menu-app/main.js +0 -1
- package/lib/esm-help-menu-app/main.js.map +0 -1
- package/lib/esm-help-menu-app/openmrs-esm-help-menu-app.js +0 -1
- package/lib/esm-help-menu-app/openmrs-esm-help-menu-app.js.buildmanifest.json +0 -486
- package/lib/esm-help-menu-app/openmrs-esm-help-menu-app.js.map +0 -1
- package/lib/esm-help-menu-app/routes.json +0 -1
- /package/lib/{esm-help-menu-app/185.js.LICENSE.txt → esm-implementer-tools-app/3185.js.LICENSE.txt} +0 -0
- /package/lib/{esm-help-menu-app/611.js.LICENSE.txt → esm-implementer-tools-app/523.js.LICENSE.txt} +0 -0
- /package/lib/{esm-help-menu-app/623.js.LICENSE.txt → esm-implementer-tools-app/5623.js.LICENSE.txt} +0 -0
- /package/lib/{esm-help-menu-app/770.js.LICENSE.txt → esm-implementer-tools-app/5770.js.LICENSE.txt} +0 -0
- /package/lib/{esm-help-menu-app/326.js.LICENSE.txt → esm-implementer-tools-app/6326.js.LICENSE.txt} +0 -0
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* or disable the default devtool with "devtool: false".
|
|
8
8
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
9
9
|
*/
|
|
10
|
-
(self["webpackChunk_openmrs_esm_app_shell"] = self["webpackChunk_openmrs_esm_app_shell"] || []).push([["
|
|
10
|
+
(self["webpackChunk_openmrs_esm_app_shell"] = self["webpackChunk_openmrs_esm_app_shell"] || []).push([["webpack_sharing_consume_default_carbon_react_carbon_react-webpack_sharing_consume_default_swr-044a6a"],{
|
|
11
11
|
|
|
12
12
|
/***/ "../../framework/esm-api/dist/config-schema.js":
|
|
13
13
|
/*!*****************************************************!*\
|
|
@@ -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 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");
|
|
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_sharing_consume_default_swr-044a6a\"), __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
|
|
|
@@ -277,7 +277,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
277
277
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
278
278
|
|
|
279
279
|
"use strict";
|
|
280
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ appName: () => (/* binding */ appName),\n/* harmony export */ getCoreExtensions: () => (/* binding */ getCoreExtensions)\n/* harmony export */ });\
|
|
280
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ appName: () => (/* binding */ appName),\n/* harmony export */ getCoreExtensions: () => (/* binding */ getCoreExtensions)\n/* harmony export */ });\nvar appName = '@openmrs/esm-app-shell';\nfunction getCoreExtensions() {\n return [];\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdWkvaW5kZXgudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxJQUFNQSxVQUFVLHlCQUF5QjtBQUV6QyxTQUFTQztJQUNkLE9BQU8sRUFBRTtBQUNYIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uL3NyYy91aS9pbmRleC50cz85YmJhIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBhcHBOYW1lID0gJ0BvcGVubXJzL2VzbS1hcHAtc2hlbGwnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29yZUV4dGVuc2lvbnMoKSB7XG4gIHJldHVybiBbXTtcbn1cbiJdLCJuYW1lcyI6WyJhcHBOYW1lIiwiZ2V0Q29yZUV4dGVuc2lvbnMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/index.ts\n");
|
|
281
281
|
|
|
282
282
|
/***/ })
|
|
283
283
|
|
|
@@ -625,7 +625,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
625
625
|
\*************************************************************/
|
|
626
626
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
627
627
|
|
|
628
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LeftNavMenu: () => (/* binding */ LeftNavMenu)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _carbon_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @carbon/react */ \"webpack/sharing/consume/default/@carbon/react/@carbon/react\");\n/* harmony import */ var _carbon_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_carbon_react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-react-utils */ \"../../framework/esm-react-utils/dist/index.js\");\n/* harmony import */ var _openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @openmrs/esm-translations */ \"../../framework/esm-translations/dist/index.js\");\n/* harmony import */ var _left_nav_module_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./left-nav.module.scss */ \"../../framework/esm-styleguide/src/left-nav/left-nav.module.scss\");\n/** @module @category UI */ function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\n\n\n\n\n\n/**\n * This component renders the left nav in desktop mode. It's also used to render the same\n * nav when the hamburger menu is clicked on in tablet mode. See side-menu-panel.component.tsx\n *\n * Use of this component by anything other than <SideMenuPanel> (where isChildOfHeader == false)\n * is deprecated; it simply renders nothing.\n */ var LeftNavMenu = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().forwardRef(function(props, ref) {\n var _useLeftNavStore = (0,_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.useLeftNavStore)(), slotName = _useLeftNavStore.slotName, basePath = _useLeftNavStore.basePath, componentContext = _useLeftNavStore.componentContext, state = _useLeftNavStore.state;\n var _window_location;\n var currentPath = (_window_location = window.location) !== null && _window_location !== void 0 ? _window_location : {\n pathname: ''\n };\n var navMenuItems = (0,_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.useAssignedExtensions)(slotName !== null && slotName !== void 0 ? slotName : '');\n if (props.isChildOfHeader && slotName && navMenuItems.length > 0) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_react__WEBPACK_IMPORTED_MODULE_1__.SideNav, _object_spread({\n \"aria-label\": (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_3__.getCoreTranslation)('leftNavigation', 'Left navigation'),\n className: _left_nav_module_scss__WEBPACK_IMPORTED_MODULE_4__[\"default\"].leftNav,\n expanded: true,\n ref: ref\n }, props), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.ExtensionSlot, {\n name: \"global-nav-menu-slot\"\n }), slotName ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.RenderIfValueIsTruthy, {\n value: componentContext,\n fallback: /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.ExtensionSlot, {\n name: slotName,\n state: _object_spread({\n basePath: basePath,\n currentPath: currentPath\n }, state)\n })\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.ComponentContext.Provider, {\n value: componentContext\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.ExtensionSlot, {\n name: slotName,\n state: _object_spread({\n basePath: basePath,\n currentPath: currentPath\n }, state)\n }))) : null);\n } else {\n return null;\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL3NyYy9sZWZ0LW5hdi9pbmRleC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSx5QkFBeUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQztBQUNpQztBQU96QjtBQUM2QjtBQUNuQjtBQWM1Qzs7Ozs7O0NBTUMsR0FDTSxJQUFNUyw0QkFBY1QsdURBQWdCLENBQWdDLFNBQUNXLE9BQU9DO0lBQ2pGLElBQXdETixtQkFBQUEseUVBQWVBLElBQS9ETyxXQUFnRFAsaUJBQWhETyxVQUFVQyxXQUFzQ1IsaUJBQXRDUSxVQUFVQyxtQkFBNEJULGlCQUE1QlMsa0JBQWtCQyxRQUFVVixpQkFBVlU7UUFDMUJDO0lBQXBCLElBQU1DLGNBQWNELENBQUFBLG1CQUFBQSxPQUFPRSxRQUFRLGNBQWZGLDhCQUFBQSxtQkFBbUI7UUFBRUcsVUFBVTtJQUFHO0lBQ3RELElBQU1DLGVBQWVoQiwrRUFBcUJBLENBQUNRLHFCQUFBQSxzQkFBQUEsV0FBWTtJQUV2RCxJQUFJRixNQUFNVyxlQUFlLElBQUlULFlBQVlRLGFBQWFFLE1BQU0sR0FBRyxHQUFHO1FBQ2hFLHFCQUNFLDJEQUFDdEIsa0RBQU9BO1lBQ051QixjQUFZakIsNkVBQWtCQSxDQUFDLGtCQUFrQjtZQUNqRGtCLFdBQVdqQiw2REFBTUEsQ0FBQ2tCLE9BQU87WUFDekJDLFVBQUFBO1lBQ0FmLEtBQUtBO1dBQ0RELHNCQUVKLDJEQUFDUixtRUFBYUE7WUFBQ3lCLE1BQUs7WUFDbkJmLHlCQUNDLDJEQUFDVCwyRUFBcUJBO1lBQ3BCeUIsT0FBT2Q7WUFDUGUsd0JBQVUsMkRBQUMzQixtRUFBYUE7Z0JBQUN5QixNQUFNZjtnQkFBVUcsT0FBTztvQkFBRUYsVUFBQUE7b0JBQVVJLGFBQUFBO21CQUFnQkY7O3lCQUU1RSwyREFBQ2Qsc0VBQWdCQSxDQUFDNkIsUUFBUTtZQUFDRixPQUFPZDt5QkFDaEMsMkRBQUNaLG1FQUFhQTtZQUFDeUIsTUFBTWY7WUFBVUcsT0FBTztnQkFBRUYsVUFBQUE7Z0JBQVVJLGFBQUFBO2VBQWdCRjtlQUdwRTtJQUdWLE9BQU87UUFDTCxPQUFPO0lBQ1Q7QUFDRixHQUFHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLXN0eWxlZ3VpZGUvc3JjL2xlZnQtbmF2L2luZGV4LnRzeD9jM2U0Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBVSSAqL1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFNpZGVOYXYsIHR5cGUgU2lkZU5hdlByb3BzIH0gZnJvbSAnQGNhcmJvbi9yZWFjdCc7XG5pbXBvcnQge1xuICBDb21wb25lbnRDb250ZXh0LFxuICBFeHRlbnNpb25TbG90LFxuICBSZW5kZXJJZlZhbHVlSXNUcnV0aHksXG4gIHVzZUFzc2lnbmVkRXh0ZW5zaW9ucyxcbiAgdXNlTGVmdE5hdlN0b3JlLFxufSBmcm9tICdAb3Blbm1ycy9lc20tcmVhY3QtdXRpbHMnO1xuaW1wb3J0IHsgZ2V0Q29yZVRyYW5zbGF0aW9uIH0gZnJvbSAnQG9wZW5tcnMvZXNtLXRyYW5zbGF0aW9ucyc7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4vbGVmdC1uYXYubW9kdWxlLnNjc3MnO1xuXG4vKipcbiAqIEV4dGVuZGVkIHByb3BzIGZvciB0aGUgTGVmdE5hdk1lbnUgY29tcG9uZW50XG4gKi9cbmludGVyZmFjZSBMZWZ0TmF2TWVudVByb3BzIGV4dGVuZHMgU2lkZU5hdlByb3BzIHtcbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyBpZiB0aGlzIGNvbXBvbmVudCBpcyBhIGNoaWxkIG9mIHRoZSBoZWFkZXIgY29tcG9uZW50LlxuICAgKiBXaGVuIHRydWUsIHRoZSBjb21wb25lbnQgcmVuZGVycyB0aGUgbGVmdCBuYXYgbWVudS5cbiAgICogV2hlbiBmYWxzZSwgaXQgcmVuZGVycyBhbiBlbXB0eSBmcmFnbWVudC5cbiAgICovXG4gIGlzQ2hpbGRPZkhlYWRlcj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgcmVuZGVycyB0aGUgbGVmdCBuYXYgaW4gZGVza3RvcCBtb2RlLiBJdCdzIGFsc28gdXNlZCB0byByZW5kZXIgdGhlIHNhbWVcbiAqIG5hdiB3aGVuIHRoZSBoYW1idXJnZXIgbWVudSBpcyBjbGlja2VkIG9uIGluIHRhYmxldCBtb2RlLiBTZWUgc2lkZS1tZW51LXBhbmVsLmNvbXBvbmVudC50c3hcbiAqXG4gKiBVc2Ugb2YgdGhpcyBjb21wb25lbnQgYnkgYW55dGhpbmcgb3RoZXIgdGhhbiA8U2lkZU1lbnVQYW5lbD4gKHdoZXJlIGlzQ2hpbGRPZkhlYWRlciA9PSBmYWxzZSlcbiAqIGlzIGRlcHJlY2F0ZWQ7IGl0IHNpbXBseSByZW5kZXJzIG5vdGhpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBMZWZ0TmF2TWVudSA9IFJlYWN0LmZvcndhcmRSZWY8SFRNTEVsZW1lbnQsIExlZnROYXZNZW51UHJvcHM+KChwcm9wcywgcmVmKSA9PiB7XG4gIGNvbnN0IHsgc2xvdE5hbWUsIGJhc2VQYXRoLCBjb21wb25lbnRDb250ZXh0LCBzdGF0ZSB9ID0gdXNlTGVmdE5hdlN0b3JlKCk7XG4gIGNvbnN0IGN1cnJlbnRQYXRoID0gd2luZG93LmxvY2F0aW9uID8/IHsgcGF0aG5hbWU6ICcnIH07XG4gIGNvbnN0IG5hdk1lbnVJdGVtcyA9IHVzZUFzc2lnbmVkRXh0ZW5zaW9ucyhzbG90TmFtZSA/PyAnJyk7XG5cbiAgaWYgKHByb3BzLmlzQ2hpbGRPZkhlYWRlciAmJiBzbG90TmFtZSAmJiBuYXZNZW51SXRlbXMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiAoXG4gICAgICA8U2lkZU5hdlxuICAgICAgICBhcmlhLWxhYmVsPXtnZXRDb3JlVHJhbnNsYXRpb24oJ2xlZnROYXZpZ2F0aW9uJywgJ0xlZnQgbmF2aWdhdGlvbicpfVxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5sZWZ0TmF2fVxuICAgICAgICBleHBhbmRlZFxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgPlxuICAgICAgICA8RXh0ZW5zaW9uU2xvdCBuYW1lPVwiZ2xvYmFsLW5hdi1tZW51LXNsb3RcIiAvPlxuICAgICAgICB7c2xvdE5hbWUgPyAoXG4gICAgICAgICAgPFJlbmRlcklmVmFsdWVJc1RydXRoeVxuICAgICAgICAgICAgdmFsdWU9e2NvbXBvbmVudENvbnRleHR9XG4gICAgICAgICAgICBmYWxsYmFjaz17PEV4dGVuc2lvblNsb3QgbmFtZT17c2xvdE5hbWV9IHN0YXRlPXt7IGJhc2VQYXRoLCBjdXJyZW50UGF0aCwgLi4uc3RhdGUgfX0gLz59XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENvbXBvbmVudENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbXBvbmVudENvbnRleHQhfT5cbiAgICAgICAgICAgICAgPEV4dGVuc2lvblNsb3QgbmFtZT17c2xvdE5hbWV9IHN0YXRlPXt7IGJhc2VQYXRoLCBjdXJyZW50UGF0aCwgLi4uc3RhdGUgfX0gLz5cbiAgICAgICAgICAgIDwvQ29tcG9uZW50Q29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICA8L1JlbmRlcklmVmFsdWVJc1RydXRoeT5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1NpZGVOYXY+XG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJTaWRlTmF2IiwiQ29tcG9uZW50Q29udGV4dCIsIkV4dGVuc2lvblNsb3QiLCJSZW5kZXJJZlZhbHVlSXNUcnV0aHkiLCJ1c2VBc3NpZ25lZEV4dGVuc2lvbnMiLCJ1c2VMZWZ0TmF2U3RvcmUiLCJnZXRDb3JlVHJhbnNsYXRpb24iLCJzdHlsZXMiLCJMZWZ0TmF2TWVudSIsImZvcndhcmRSZWYiLCJwcm9wcyIsInJlZiIsInNsb3ROYW1lIiwiYmFzZVBhdGgiLCJjb21wb25lbnRDb250ZXh0Iiwic3RhdGUiLCJ3aW5kb3ciLCJjdXJyZW50UGF0aCIsImxvY2F0aW9uIiwicGF0aG5hbWUiLCJuYXZNZW51SXRlbXMiLCJpc0NoaWxkT2ZIZWFkZXIiLCJsZW5ndGgiLCJhcmlhLWxhYmVsIiwiY2xhc3NOYW1lIiwibGVmdE5hdiIsImV4cGFuZGVkIiwibmFtZSIsInZhbHVlIiwiZmFsbGJhY2siLCJQcm92aWRlciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/src/left-nav/index.tsx\n");
|
|
628
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LeftNavMenu: () => (/* binding */ LeftNavMenu)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _carbon_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @carbon/react */ \"webpack/sharing/consume/default/@carbon/react/@carbon/react\");\n/* harmony import */ var _carbon_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_carbon_react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-react-utils */ \"../../framework/esm-react-utils/dist/index.js\");\n/* harmony import */ var _openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @openmrs/esm-translations */ \"../../framework/esm-translations/dist/index.js\");\n/* harmony import */ var _left_nav_module_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./left-nav.module.scss */ \"../../framework/esm-styleguide/src/left-nav/left-nav.module.scss\");\n/** @module @category UI */ function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction _object_without_properties(source, excluded) {\n if (source == null) return {};\n var target = _object_without_properties_loose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for(i = 0; i < sourceSymbolKeys.length; i++){\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _object_without_properties_loose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for(i = 0; i < sourceKeys.length; i++){\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\n\n\n\n\n/**\n * This component renders the left nav in desktop mode. It's also used to render the same\n * nav when the hamburger menu is clicked on in tablet mode. See side-menu-panel.component.tsx\n *\n * Use of this component by anything other than <SideMenuPanel> (where isChildOfHeader == false)\n * is deprecated; it simply renders nothing.\n */ var LeftNavMenu = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().forwardRef(function(props, ref) {\n var _useLeftNavStore = (0,_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.useLeftNavStore)(), slotName = _useLeftNavStore.slotName, basePath = _useLeftNavStore.basePath, componentContext = _useLeftNavStore.componentContext, state = _useLeftNavStore.state;\n var _window_location;\n var currentPath = (_window_location = window.location) !== null && _window_location !== void 0 ? _window_location : {\n pathname: ''\n };\n var navMenuItems = (0,_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.useAssignedExtensions)(slotName !== null && slotName !== void 0 ? slotName : '');\n var inert = props.inert, restProps = _object_without_properties(props, [\n \"inert\"\n ]);\n if (props.isChildOfHeader && slotName && navMenuItems.length > 0) {\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_react__WEBPACK_IMPORTED_MODULE_1__.SideNav, _object_spread({\n \"aria-label\": (0,_openmrs_esm_translations__WEBPACK_IMPORTED_MODULE_3__.getCoreTranslation)('leftNavigation', 'Left navigation'),\n className: _left_nav_module_scss__WEBPACK_IMPORTED_MODULE_4__[\"default\"].leftNav,\n expanded: true,\n isFixedNav: true,\n inert: typeof inert === 'boolean' ? inert : undefined,\n ref: ref\n }, restProps), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.ExtensionSlot, {\n name: \"global-nav-menu-slot\"\n }), slotName ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.RenderIfValueIsTruthy, {\n value: componentContext,\n fallback: /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.ExtensionSlot, {\n name: slotName,\n state: _object_spread({\n basePath: basePath,\n currentPath: currentPath\n }, state)\n })\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.ComponentContext.Provider, {\n value: componentContext\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_openmrs_esm_react_utils__WEBPACK_IMPORTED_MODULE_2__.ExtensionSlot, {\n name: slotName,\n state: _object_spread({\n basePath: basePath,\n currentPath: currentPath\n }, state)\n }))) : null);\n } else {\n return null;\n }\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL3NyYy9sZWZ0LW5hdi9pbmRleC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSx5QkFBeUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQztBQUNpQztBQU96QjtBQUM2QjtBQUNuQjtBQWM1Qzs7Ozs7O0NBTUMsR0FDTSxJQUFNUyw0QkFBY1QsdURBQWdCLENBQWdDLFNBQUNXLE9BQU9DO0lBQ2pGLElBQXdETixtQkFBQUEseUVBQWVBLElBQS9ETyxXQUFnRFAsaUJBQWhETyxVQUFVQyxXQUFzQ1IsaUJBQXRDUSxVQUFVQyxtQkFBNEJULGlCQUE1QlMsa0JBQWtCQyxRQUFVVixpQkFBVlU7UUFDMUJDO0lBQXBCLElBQU1DLGNBQWNELENBQUFBLG1CQUFBQSxPQUFPRSxRQUFRLGNBQWZGLDhCQUFBQSxtQkFBbUI7UUFBRUcsVUFBVTtJQUFHO0lBQ3RELElBQU1DLGVBQWVoQiwrRUFBcUJBLENBQUNRLHFCQUFBQSxzQkFBQUEsV0FBWTtJQUN2RCxJQUFNLFFBQTBCRixNQUF4QlcsT0FBVUMsdUNBQWNaO1FBQXhCVzs7SUFFUixJQUFJWCxNQUFNYSxlQUFlLElBQUlYLFlBQVlRLGFBQWFJLE1BQU0sR0FBRyxHQUFHO1FBQ2hFLHFCQUNFLDJEQUFDeEIsa0RBQU9BO1lBQ055QixjQUFZbkIsNkVBQWtCQSxDQUFDLGtCQUFrQjtZQUNqRG9CLFdBQVduQiw2REFBTUEsQ0FBQ29CLE9BQU87WUFDekJDLFVBQUFBO1lBQ0FDLFlBQUFBO1lBQ0FSLE9BQU8sT0FBT0EsVUFBVSxZQUFZQSxRQUFRUztZQUM1Q25CLEtBQUtBO1dBQ0RXLDBCQUVKLDJEQUFDcEIsbUVBQWFBO1lBQUM2QixNQUFLO1lBQ25CbkIseUJBQ0MsMkRBQUNULDJFQUFxQkE7WUFDcEI2QixPQUFPbEI7WUFDUG1CLHdCQUFVLDJEQUFDL0IsbUVBQWFBO2dCQUFDNkIsTUFBTW5CO2dCQUFVRyxPQUFPO29CQUFFRixVQUFBQTtvQkFBVUksYUFBQUE7bUJBQWdCRjs7eUJBRTVFLDJEQUFDZCxzRUFBZ0JBLENBQUNpQyxRQUFRO1lBQUNGLE9BQU9sQjt5QkFDaEMsMkRBQUNaLG1FQUFhQTtZQUFDNkIsTUFBTW5CO1lBQVVHLE9BQU87Z0JBQUVGLFVBQUFBO2dCQUFVSSxhQUFBQTtlQUFnQkY7ZUFHcEU7SUFHVixPQUFPO1FBQ0wsT0FBTztJQUNUO0FBQ0YsR0FBRyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL3NyYy9sZWZ0LW5hdi9pbmRleC50c3g/YzNlNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgVUkgKi9cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTaWRlTmF2LCB0eXBlIFNpZGVOYXZQcm9wcyB9IGZyb20gJ0BjYXJib24vcmVhY3QnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50Q29udGV4dCxcbiAgRXh0ZW5zaW9uU2xvdCxcbiAgUmVuZGVySWZWYWx1ZUlzVHJ1dGh5LFxuICB1c2VBc3NpZ25lZEV4dGVuc2lvbnMsXG4gIHVzZUxlZnROYXZTdG9yZSxcbn0gZnJvbSAnQG9wZW5tcnMvZXNtLXJlYWN0LXV0aWxzJztcbmltcG9ydCB7IGdldENvcmVUcmFuc2xhdGlvbiB9IGZyb20gJ0BvcGVubXJzL2VzbS10cmFuc2xhdGlvbnMnO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuL2xlZnQtbmF2Lm1vZHVsZS5zY3NzJztcblxuLyoqXG4gKiBFeHRlbmRlZCBwcm9wcyBmb3IgdGhlIExlZnROYXZNZW51IGNvbXBvbmVudFxuICovXG5pbnRlcmZhY2UgTGVmdE5hdk1lbnVQcm9wcyBleHRlbmRzIFNpZGVOYXZQcm9wcyB7XG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgaWYgdGhpcyBjb21wb25lbnQgaXMgYSBjaGlsZCBvZiB0aGUgaGVhZGVyIGNvbXBvbmVudC5cbiAgICogV2hlbiB0cnVlLCB0aGUgY29tcG9uZW50IHJlbmRlcnMgdGhlIGxlZnQgbmF2IG1lbnUuXG4gICAqIFdoZW4gZmFsc2UsIGl0IHJlbmRlcnMgYW4gZW1wdHkgZnJhZ21lbnQuXG4gICAqL1xuICBpc0NoaWxkT2ZIZWFkZXI/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IHJlbmRlcnMgdGhlIGxlZnQgbmF2IGluIGRlc2t0b3AgbW9kZS4gSXQncyBhbHNvIHVzZWQgdG8gcmVuZGVyIHRoZSBzYW1lXG4gKiBuYXYgd2hlbiB0aGUgaGFtYnVyZ2VyIG1lbnUgaXMgY2xpY2tlZCBvbiBpbiB0YWJsZXQgbW9kZS4gU2VlIHNpZGUtbWVudS1wYW5lbC5jb21wb25lbnQudHN4XG4gKlxuICogVXNlIG9mIHRoaXMgY29tcG9uZW50IGJ5IGFueXRoaW5nIG90aGVyIHRoYW4gPFNpZGVNZW51UGFuZWw+ICh3aGVyZSBpc0NoaWxkT2ZIZWFkZXIgPT0gZmFsc2UpXG4gKiBpcyBkZXByZWNhdGVkOyBpdCBzaW1wbHkgcmVuZGVycyBub3RoaW5nLlxuICovXG5leHBvcnQgY29uc3QgTGVmdE5hdk1lbnUgPSBSZWFjdC5mb3J3YXJkUmVmPEhUTUxFbGVtZW50LCBMZWZ0TmF2TWVudVByb3BzPigocHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCB7IHNsb3ROYW1lLCBiYXNlUGF0aCwgY29tcG9uZW50Q29udGV4dCwgc3RhdGUgfSA9IHVzZUxlZnROYXZTdG9yZSgpO1xuICBjb25zdCBjdXJyZW50UGF0aCA9IHdpbmRvdy5sb2NhdGlvbiA/PyB7IHBhdGhuYW1lOiAnJyB9O1xuICBjb25zdCBuYXZNZW51SXRlbXMgPSB1c2VBc3NpZ25lZEV4dGVuc2lvbnMoc2xvdE5hbWUgPz8gJycpO1xuICBjb25zdCB7IGluZXJ0LCAuLi5yZXN0UHJvcHMgfSA9IHByb3BzO1xuXG4gIGlmIChwcm9wcy5pc0NoaWxkT2ZIZWFkZXIgJiYgc2xvdE5hbWUgJiYgbmF2TWVudUl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNpZGVOYXZcbiAgICAgICAgYXJpYS1sYWJlbD17Z2V0Q29yZVRyYW5zbGF0aW9uKCdsZWZ0TmF2aWdhdGlvbicsICdMZWZ0IG5hdmlnYXRpb24nKX1cbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMubGVmdE5hdn1cbiAgICAgICAgZXhwYW5kZWRcbiAgICAgICAgaXNGaXhlZE5hdlxuICAgICAgICBpbmVydD17dHlwZW9mIGluZXJ0ID09PSAnYm9vbGVhbicgPyBpbmVydCA6IHVuZGVmaW5lZH1cbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHsuLi5yZXN0UHJvcHN9XG4gICAgICA+XG4gICAgICAgIDxFeHRlbnNpb25TbG90IG5hbWU9XCJnbG9iYWwtbmF2LW1lbnUtc2xvdFwiIC8+XG4gICAgICAgIHtzbG90TmFtZSA/IChcbiAgICAgICAgICA8UmVuZGVySWZWYWx1ZUlzVHJ1dGh5XG4gICAgICAgICAgICB2YWx1ZT17Y29tcG9uZW50Q29udGV4dH1cbiAgICAgICAgICAgIGZhbGxiYWNrPXs8RXh0ZW5zaW9uU2xvdCBuYW1lPXtzbG90TmFtZX0gc3RhdGU9e3sgYmFzZVBhdGgsIGN1cnJlbnRQYXRoLCAuLi5zdGF0ZSB9fSAvPn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q29tcG9uZW50Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29tcG9uZW50Q29udGV4dCF9PlxuICAgICAgICAgICAgICA8RXh0ZW5zaW9uU2xvdCBuYW1lPXtzbG90TmFtZX0gc3RhdGU9e3sgYmFzZVBhdGgsIGN1cnJlbnRQYXRoLCAuLi5zdGF0ZSB9fSAvPlxuICAgICAgICAgICAgPC9Db21wb25lbnRDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgIDwvUmVuZGVySWZWYWx1ZUlzVHJ1dGh5PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU2lkZU5hdj5cbiAgICApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlNpZGVOYXYiLCJDb21wb25lbnRDb250ZXh0IiwiRXh0ZW5zaW9uU2xvdCIsIlJlbmRlcklmVmFsdWVJc1RydXRoeSIsInVzZUFzc2lnbmVkRXh0ZW5zaW9ucyIsInVzZUxlZnROYXZTdG9yZSIsImdldENvcmVUcmFuc2xhdGlvbiIsInN0eWxlcyIsIkxlZnROYXZNZW51IiwiZm9yd2FyZFJlZiIsInByb3BzIiwicmVmIiwic2xvdE5hbWUiLCJiYXNlUGF0aCIsImNvbXBvbmVudENvbnRleHQiLCJzdGF0ZSIsIndpbmRvdyIsImN1cnJlbnRQYXRoIiwibG9jYXRpb24iLCJwYXRobmFtZSIsIm5hdk1lbnVJdGVtcyIsImluZXJ0IiwicmVzdFByb3BzIiwiaXNDaGlsZE9mSGVhZGVyIiwibGVuZ3RoIiwiYXJpYS1sYWJlbCIsImNsYXNzTmFtZSIsImxlZnROYXYiLCJleHBhbmRlZCIsImlzRml4ZWROYXYiLCJ1bmRlZmluZWQiLCJuYW1lIiwidmFsdWUiLCJmYWxsYmFjayIsIlByb3ZpZGVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/src/left-nav/index.tsx\n");
|
|
629
629
|
|
|
630
630
|
/***/ }),
|
|
631
631
|
|