@openmrs/esm-app-shell 5.0.3-pre.896 → 5.0.3-pre.903

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.
Files changed (163) hide show
  1. package/.turbo/turbo-build.log +20 -20
  2. package/dist/6b8b363dc0a96a16.js +1 -0
  3. package/dist/{cb01c23bfcdf0335.js.map → 6b8b363dc0a96a16.js.map} +1 -1
  4. package/dist/c101023e872fc2c2.js +1 -0
  5. package/dist/c101023e872fc2c2.js.map +1 -0
  6. package/dist/index.html +1 -1
  7. package/dist/{openmrs.3f895010251852fe.js → openmrs.6f766ac5839d826b.js} +2 -2
  8. package/dist/{openmrs.3f895010251852fe.js.map → openmrs.6f766ac5839d826b.js.map} +1 -1
  9. package/dist/service-worker.js +1 -1
  10. package/lib/{e8ede5e69d47cce1.js → baaffa62af0ed155.js} +1 -1
  11. package/lib/esm-devtools-app/889.js +1 -1
  12. package/lib/esm-devtools-app/889.js.map +1 -1
  13. package/lib/esm-devtools-app/main.js +1 -1
  14. package/lib/esm-devtools-app/openmrs-esm-devtools-app.js +1 -1
  15. package/lib/esm-devtools-app/openmrs-esm-devtools-app.js.buildmanifest.json +5 -5
  16. package/lib/esm-devtools-app/routes.json +1 -1
  17. package/lib/esm-implementer-tools-app/102.js +1 -0
  18. package/lib/esm-implementer-tools-app/102.js.map +1 -0
  19. package/lib/esm-implementer-tools-app/139.js +2 -0
  20. package/lib/esm-implementer-tools-app/139.js.LICENSE.txt +9 -0
  21. package/lib/esm-implementer-tools-app/139.js.map +1 -0
  22. package/lib/esm-implementer-tools-app/199.js +1 -0
  23. package/lib/esm-implementer-tools-app/199.js.map +1 -0
  24. package/lib/esm-implementer-tools-app/242.js +1 -0
  25. package/lib/esm-implementer-tools-app/242.js.map +1 -0
  26. package/lib/esm-implementer-tools-app/246.js +1 -0
  27. package/lib/esm-implementer-tools-app/246.js.map +1 -0
  28. package/lib/esm-implementer-tools-app/319.js +1 -0
  29. package/lib/esm-implementer-tools-app/369.js +1 -0
  30. package/lib/esm-implementer-tools-app/369.js.map +1 -0
  31. package/lib/esm-implementer-tools-app/426.js +1 -0
  32. package/lib/esm-implementer-tools-app/426.js.map +1 -0
  33. package/lib/esm-implementer-tools-app/466.js +1 -0
  34. package/lib/esm-implementer-tools-app/466.js.map +1 -0
  35. package/lib/esm-implementer-tools-app/499.js +1 -0
  36. package/lib/esm-implementer-tools-app/499.js.map +1 -0
  37. package/lib/esm-implementer-tools-app/500.js +1 -0
  38. package/lib/esm-implementer-tools-app/500.js.map +1 -0
  39. package/lib/esm-implementer-tools-app/574.js +1 -0
  40. package/lib/esm-implementer-tools-app/587.js +1 -0
  41. package/lib/esm-implementer-tools-app/587.js.map +1 -0
  42. package/lib/esm-implementer-tools-app/600.js +2 -0
  43. package/lib/esm-implementer-tools-app/600.js.LICENSE.txt +14 -0
  44. package/lib/esm-implementer-tools-app/600.js.map +1 -0
  45. package/lib/esm-implementer-tools-app/620.js +2 -0
  46. package/lib/esm-implementer-tools-app/620.js.LICENSE.txt +38 -0
  47. package/lib/esm-implementer-tools-app/620.js.map +1 -0
  48. package/lib/esm-implementer-tools-app/625.js +1 -0
  49. package/lib/esm-implementer-tools-app/657.js +1 -0
  50. package/lib/esm-implementer-tools-app/735.js +2 -0
  51. package/lib/esm-implementer-tools-app/735.js.LICENSE.txt +9 -0
  52. package/lib/esm-implementer-tools-app/735.js.map +1 -0
  53. package/lib/esm-implementer-tools-app/757.js +1 -0
  54. package/lib/esm-implementer-tools-app/788.js +2 -0
  55. package/lib/esm-implementer-tools-app/788.js.LICENSE.txt +19 -0
  56. package/lib/esm-implementer-tools-app/788.js.map +1 -0
  57. package/lib/esm-implementer-tools-app/807.js +1 -0
  58. package/lib/esm-implementer-tools-app/807.js.map +1 -0
  59. package/lib/esm-implementer-tools-app/833.js +1 -0
  60. package/lib/esm-implementer-tools-app/889.js +2 -0
  61. package/lib/esm-implementer-tools-app/889.js.LICENSE.txt +5 -0
  62. package/lib/esm-implementer-tools-app/889.js.map +1 -0
  63. package/lib/esm-implementer-tools-app/895.js +1 -0
  64. package/lib/esm-implementer-tools-app/895.js.map +1 -0
  65. package/lib/esm-implementer-tools-app/main.js +1 -0
  66. package/lib/esm-implementer-tools-app/main.js.map +1 -0
  67. package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js +1 -0
  68. package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js.buildmanifest.json +712 -0
  69. package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js.map +1 -0
  70. package/lib/esm-implementer-tools-app/routes.json +1 -0
  71. package/lib/esm-login-app/642.js +1 -1
  72. package/lib/esm-login-app/642.js.map +1 -1
  73. package/lib/esm-login-app/889.js +1 -1
  74. package/lib/esm-login-app/889.js.map +1 -1
  75. package/lib/esm-login-app/main.js +1 -1
  76. package/lib/esm-login-app/openmrs-esm-login-app.js +1 -1
  77. package/lib/esm-login-app/openmrs-esm-login-app.js.buildmanifest.json +8 -8
  78. package/lib/esm-login-app/routes.json +1 -1
  79. package/lib/esm-offline-tools-app/1584c81d564cacde.svg +8 -0
  80. package/lib/esm-offline-tools-app/202.js +1 -0
  81. package/lib/esm-offline-tools-app/202.js.map +1 -0
  82. package/lib/esm-offline-tools-app/206.js +1 -0
  83. package/lib/esm-offline-tools-app/206.js.map +1 -0
  84. package/lib/esm-offline-tools-app/263.js +1 -0
  85. package/lib/esm-offline-tools-app/263.js.map +1 -0
  86. package/lib/esm-offline-tools-app/281.js +1 -0
  87. package/lib/esm-offline-tools-app/281.js.map +1 -0
  88. package/lib/esm-offline-tools-app/290.js +1 -0
  89. package/lib/esm-offline-tools-app/290.js.map +1 -0
  90. package/lib/esm-offline-tools-app/316.js +1 -0
  91. package/lib/esm-offline-tools-app/316.js.map +1 -0
  92. package/lib/esm-offline-tools-app/319.js +1 -0
  93. package/lib/esm-offline-tools-app/391.js +1 -0
  94. package/lib/esm-offline-tools-app/391.js.map +1 -0
  95. package/lib/esm-offline-tools-app/412.js +1 -0
  96. package/lib/esm-offline-tools-app/412.js.map +1 -0
  97. package/lib/esm-offline-tools-app/47.js +1 -0
  98. package/lib/esm-offline-tools-app/47.js.map +1 -0
  99. package/lib/esm-offline-tools-app/501.js +1 -0
  100. package/lib/esm-offline-tools-app/501.js.map +1 -0
  101. package/lib/esm-offline-tools-app/526.js +1 -0
  102. package/lib/esm-offline-tools-app/526.js.map +1 -0
  103. package/lib/esm-offline-tools-app/538.js +1 -0
  104. package/lib/esm-offline-tools-app/538.js.map +1 -0
  105. package/lib/esm-offline-tools-app/541.js +1 -0
  106. package/lib/esm-offline-tools-app/541.js.map +1 -0
  107. package/lib/esm-offline-tools-app/574.js +1 -0
  108. package/lib/esm-offline-tools-app/594.js +1 -0
  109. package/lib/esm-offline-tools-app/594.js.map +1 -0
  110. package/lib/esm-offline-tools-app/625.js +1 -0
  111. package/lib/esm-offline-tools-app/63.js +2 -0
  112. package/lib/esm-offline-tools-app/63.js.LICENSE.txt +32 -0
  113. package/lib/esm-offline-tools-app/63.js.map +1 -0
  114. package/lib/esm-offline-tools-app/697.js +2 -0
  115. package/lib/esm-offline-tools-app/697.js.LICENSE.txt +9 -0
  116. package/lib/esm-offline-tools-app/697.js.map +1 -0
  117. package/lib/esm-offline-tools-app/733.js +1 -0
  118. package/lib/esm-offline-tools-app/733.js.map +1 -0
  119. package/lib/esm-offline-tools-app/735.js +2 -0
  120. package/lib/esm-offline-tools-app/735.js.LICENSE.txt +9 -0
  121. package/lib/esm-offline-tools-app/735.js.map +1 -0
  122. package/lib/esm-offline-tools-app/752.js +1 -0
  123. package/lib/esm-offline-tools-app/752.js.map +1 -0
  124. package/lib/esm-offline-tools-app/757.js +1 -0
  125. package/lib/esm-offline-tools-app/78.js +1 -0
  126. package/lib/esm-offline-tools-app/78.js.map +1 -0
  127. package/lib/esm-offline-tools-app/788.js +2 -0
  128. package/lib/esm-offline-tools-app/788.js.LICENSE.txt +19 -0
  129. package/lib/esm-offline-tools-app/788.js.map +1 -0
  130. package/lib/esm-offline-tools-app/807.js +1 -0
  131. package/lib/esm-offline-tools-app/82.js +2 -0
  132. package/lib/esm-offline-tools-app/82.js.LICENSE.txt +5 -0
  133. package/lib/esm-offline-tools-app/82.js.map +1 -0
  134. package/lib/esm-offline-tools-app/833.js +1 -0
  135. package/lib/esm-offline-tools-app/889.js +2 -0
  136. package/lib/esm-offline-tools-app/889.js.LICENSE.txt +5 -0
  137. package/lib/esm-offline-tools-app/889.js.map +1 -0
  138. package/lib/esm-offline-tools-app/937.js +1 -0
  139. package/lib/esm-offline-tools-app/937.js.map +1 -0
  140. package/lib/esm-offline-tools-app/967.js +1 -0
  141. package/lib/esm-offline-tools-app/967.js.map +1 -0
  142. package/lib/esm-offline-tools-app/main.js +2 -0
  143. package/lib/esm-offline-tools-app/main.js.LICENSE.txt +5 -0
  144. package/lib/esm-offline-tools-app/main.js.map +1 -0
  145. package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js +1 -0
  146. package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js.buildmanifest.json +842 -0
  147. package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js.map +1 -0
  148. package/lib/esm-offline-tools-app/routes.json +1 -0
  149. package/lib/esm-primary-navigation-app/889.js +1 -1
  150. package/lib/esm-primary-navigation-app/889.js.map +1 -1
  151. package/lib/esm-primary-navigation-app/main.js +1 -1
  152. package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js +1 -1
  153. package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js.buildmanifest.json +5 -5
  154. package/lib/esm-primary-navigation-app/routes.json +1 -1
  155. package/lib/index.html +2 -2
  156. package/lib/openmrs.js +9 -9
  157. package/lib/service-worker.js +1 -1
  158. package/package.json +4 -4
  159. package/src/apps.ts +1 -0
  160. package/dist/730a55ccb9f08e82.js +0 -1
  161. package/dist/730a55ccb9f08e82.js.map +0 -1
  162. package/dist/cb01c23bfcdf0335.js +0 -1
  163. /package/dist/{openmrs.3f895010251852fe.js.LICENSE.txt → openmrs.6f766ac5839d826b.js.LICENSE.txt} +0 -0
package/lib/openmrs.js CHANGED
@@ -6626,7 +6626,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
6626
6626
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6627
6627
 
6628
6628
  "use strict";
6629
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ attach: () => (/* binding */ attach),\n/* harmony export */ detach: () => (/* binding */ detach),\n/* harmony export */ detachAll: () => (/* binding */ detachAll),\n/* harmony export */ getAssignedExtensions: () => (/* binding */ getAssignedExtensions),\n/* harmony export */ getConnectedExtensions: () => (/* binding */ getConnectedExtensions),\n/* harmony export */ getExtensionNameFromId: () => (/* binding */ getExtensionNameFromId),\n/* harmony export */ getExtensionRegistration: () => (/* binding */ getExtensionRegistration),\n/* harmony export */ getExtensionRegistrationFrom: () => (/* binding */ getExtensionRegistrationFrom),\n/* harmony export */ registerExtension: () => (/* binding */ registerExtension),\n/* harmony export */ registerExtensionSlot: () => (/* binding */ registerExtensionSlot),\n/* harmony export */ reset: () => (/* binding */ reset)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-api */ \"../../framework/esm-api/src/index.ts\");\n/* harmony import */ var _openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-config */ \"../../framework/esm-config/src/index.ts\");\n/* harmony import */ var lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash-es/isEqual */ \"../../../node_modules/lodash-es/isEqual.js\");\n/* harmony import */ var lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash-es/isUndefined */ \"../../../node_modules/lodash-es/isUndefined.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! . */ \"../../framework/esm-extensions/src/index.ts\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./store */ \"../../framework/esm-extensions/src/store.ts\");\n/** @module @category Extension */ /*\n * We have the following extension modes:\n *\n * - attached (set via code in form of: attach, detach, ...)\n * - configured (set via configuration in form of: added, removed, ...)\n * - assigned (computed from attached and configured)\n * - connected (computed from assigned using connectivity and online / offline)\n */ function _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 _array_without_holes(arr) {\n if (Array.isArray(arr)) return _array_like_to_array(arr);\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(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\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 _non_iterable_spread() {\n throw new TypeError(\"Invalid attempt to spread 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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\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 _to_consumable_array(arr) {\n return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();\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}\n\n\n\n\n\n\nvar extensionInternalStore = (0,___WEBPACK_IMPORTED_MODULE_2__.getExtensionInternalStore)();\nvar extensionStore = (0,_store__WEBPACK_IMPORTED_MODULE_3__.getExtensionStore)();\nvar slotsConfigStore = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionSlotsConfigStore)();\nvar extensionsConfigStore = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionsConfigStore)();\n// Keep the output store updated\nfunction updateExtensionOutputStore(internalState, extensionSlotConfigs, extensionsConfigStore) {\n var slots = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = Object.entries(internalState.slots)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var _step_value = _sliced_to_array(_step.value, 2), slotName = _step_value[0], slot = _step_value[1];\n var config = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionSlotConfigFromStore)(extensionSlotConfigs, slot.name).config;\n var assignedExtensions = getAssignedExtensionsFromSlotData(slotName, internalState, config, extensionsConfigStore);\n slots[slotName] = {\n moduleName: slot.moduleName,\n assignedExtensions: assignedExtensions\n };\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (!(0,lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(extensionStore.getState().slots, slots)) {\n extensionStore.setState({\n slots: slots\n });\n }\n}\nextensionInternalStore.subscribe(function(internalStore) {\n updateExtensionOutputStore(internalStore, slotsConfigStore.getState(), extensionsConfigStore.getState());\n});\nslotsConfigStore.subscribe(function(slotConfigs) {\n updateExtensionOutputStore(extensionInternalStore.getState(), slotConfigs, extensionsConfigStore.getState());\n});\nextensionsConfigStore.subscribe(function(extensionConfigs) {\n updateExtensionOutputStore(extensionInternalStore.getState(), slotsConfigStore.getState(), extensionConfigs);\n});\nfunction createNewExtensionSlotInfo(slotName, moduleName) {\n return {\n moduleName: moduleName,\n name: slotName,\n attachedIds: [],\n config: null\n };\n}\n/**\n * Given an extension ID, which is a string uniquely identifying\n * an instance of an extension within an extension slot, this\n * returns the extension name.\n *\n * @example\n * ```js\n * getExtensionNameFromId(\"foo#bar\")\n * --> \"foo\"\n * getExtensionNameFromId(\"baz\")\n * --> \"baz\"\n * ```\n */ function getExtensionNameFromId(extensionId) {\n var _extensionId_split = _sliced_to_array(extensionId.split(\"#\"), 1), extensionName = _extensionId_split[0];\n return extensionName;\n}\nfunction getExtensionRegistrationFrom(state, extensionId) {\n var name = getExtensionNameFromId(extensionId);\n return state.extensions[name];\n}\nfunction getExtensionRegistration(extensionId) {\n var state = extensionInternalStore.getState();\n return getExtensionRegistrationFrom(state, extensionId);\n}\n/**\n * Extensions must be registered in order to be rendered.\n * This is handled by the app shell, when extensions are provided\n * via the `setupOpenMRS` return object.\n * @internal\n */ var registerExtension = function(extensionRegistration) {\n return extensionInternalStore.setState(function(state) {\n state.extensions[extensionRegistration.name] = _object_spread_props(_object_spread({}, extensionRegistration), {\n instances: []\n });\n return state;\n });\n};\n/**\n * Attach an extension to an extension slot.\n *\n * This will cause the extension to be rendered into the specified\n * extension slot, unless it is removed by configuration. Using\n * `attach` is an alternative to specifying the `slot` or `slots`\n * in the extension declaration.\n *\n * It is particularly useful when creating a slot into which\n * you want to render an existing extension. This enables you\n * to do so without modifying the extension's declaration, which\n * may be impractical or inappropriate, for example if you are\n * writing a module for a specific implementation.\n *\n * @param slotName a name uniquely identifying the slot\n * @param extensionId an extension name, with an optional #-suffix\n * to distinguish it from other instances of the same extension\n * attached to the same slot.\n */ function attach(slotName, extensionId) {\n (0,_store__WEBPACK_IMPORTED_MODULE_3__.updateInternalExtensionStore)(function(state) {\n var existingSlot = state.slots[slotName];\n if (!existingSlot) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, _object_spread_props(_object_spread({}, createNewExtensionSlotInfo(slotName)), {\n attachedIds: [\n extensionId\n ]\n })))\n });\n } else {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, _object_spread_props(_object_spread({}, existingSlot), {\n attachedIds: _to_consumable_array(existingSlot.attachedIds).concat([\n extensionId\n ])\n })))\n });\n }\n });\n}\n/** Avoid using this. Extension attachments should be considered declarative. */ function detach(extensionSlotName, extensionId) {\n (0,_store__WEBPACK_IMPORTED_MODULE_3__.updateInternalExtensionStore)(function(state) {\n var existingSlot = state.slots[extensionSlotName];\n if (existingSlot && existingSlot.attachedIds.includes(extensionId)) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, extensionSlotName, _object_spread_props(_object_spread({}, existingSlot), {\n attachedIds: existingSlot.attachedIds.filter(function(id) {\n return id !== extensionId;\n })\n })))\n });\n } else {\n return state;\n }\n });\n}\n/** Avoid using this. Extension attachments should be considered declarative. */ function detachAll(extensionSlotName) {\n (0,_store__WEBPACK_IMPORTED_MODULE_3__.updateInternalExtensionStore)(function(state) {\n var existingSlot = state.slots[extensionSlotName];\n if (existingSlot) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, extensionSlotName, _object_spread_props(_object_spread({}, existingSlot), {\n attachedIds: []\n })))\n });\n } else {\n return state;\n }\n });\n}\n/**\n * Get an order index for the extension. This will\n * come from either its configured order, its registered order\n * parameter, or the order in which it happened to be attached.\n */ function getOrder(extensionId, configuredOrder, registeredOrderIndex, attachedOrder) {\n var configuredIndex = configuredOrder.indexOf(extensionId);\n if (configuredIndex !== -1) {\n return configuredIndex;\n } else if (registeredOrderIndex !== undefined) {\n // extensions that don't have a configured order should appear after those that do\n return 1000 + registeredOrderIndex;\n } else {\n var assignedIndex = attachedOrder.indexOf(extensionId);\n if (assignedIndex !== -1) {\n // extensions that have neither a configured nor registered order should appear\n // after all others\n return 2000 + assignedIndex;\n } else {\n return -1;\n }\n }\n}\n/**\n * Filters a list of extensions according to whether they support the\n * current connectivity status.\n *\n * @param assignedExtensions The list of extensions to filter.\n * @param online Whether the app is currently online. If `null`, uses `navigator.onLine`.\n * @returns A list of extensions that should be rendered\n */ function getConnectedExtensions(assignedExtensions) {\n var online = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;\n var isOnline = online !== null && online !== void 0 ? online : navigator.onLine;\n return assignedExtensions.filter(function(e) {\n return (0,___WEBPACK_IMPORTED_MODULE_2__.checkStatusFor)(isOnline, e.online, e.offline);\n });\n}\nfunction getAssignedExtensionsFromSlotData(slotName, internalState, config, extensionConfigStoreState) {\n var attachedIds = internalState.slots[slotName].attachedIds;\n var assignedIds = calculateAssignedIds(config, attachedIds);\n var extensions = [];\n var user = undefined;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = assignedIds[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var id = _step.value;\n var _getExtensionConfigFromStore = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionConfigFromStore)(extensionConfigStoreState, slotName, id), extensionConfig = _getExtensionConfigFromStore.config;\n var name = getExtensionNameFromId(id);\n var extension = internalState.extensions[name];\n // if the extension has not been registered yet, do not include it\n if (extension) {\n var _extensionConfig_Displayconditions;\n var _extensionConfig_Displayconditions_privileges, _ref;\n var requiredPrivileges = (_ref = (_extensionConfig_Displayconditions_privileges = extensionConfig === null || extensionConfig === void 0 ? void 0 : (_extensionConfig_Displayconditions = extensionConfig[\"Display conditions\"]) === null || _extensionConfig_Displayconditions === void 0 ? void 0 : _extensionConfig_Displayconditions.privileges) !== null && _extensionConfig_Displayconditions_privileges !== void 0 ? _extensionConfig_Displayconditions_privileges : extension.privileges) !== null && _ref !== void 0 ? _ref : [];\n if (requiredPrivileges && (typeof requiredPrivileges === \"string\" || Array.isArray(requiredPrivileges) && requiredPrivileges.length > 0)) {\n if ((0,lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(user)) {\n var _getSessionStore_getState_session;\n user = (_getSessionStore_getState_session = (0,_openmrs_esm_api__WEBPACK_IMPORTED_MODULE_0__.getSessionStore)().getState().session) === null || _getSessionStore_getState_session === void 0 ? void 0 : _getSessionStore_getState_session.user;\n }\n if (!user) {\n continue;\n }\n if (!(0,_openmrs_esm_api__WEBPACK_IMPORTED_MODULE_0__.userHasAccess)(requiredPrivileges, user)) {\n continue;\n }\n }\n extensions.push({\n id: id,\n name: name,\n moduleName: extension.moduleName,\n config: extensionConfig,\n meta: extension.meta\n });\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return extensions;\n}\n/**\n * Gets the list of extensions assigned to a given slot\n *\n * @param slotName The slot to load the assigned extensions for\n * @returns An array of extensions assigned to the named slot\n */ function getAssignedExtensions(slotName) {\n var internalState = extensionInternalStore.getState();\n var _getExtensionSlotConfig = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionSlotConfig)(slotName), slotConfig = _getExtensionSlotConfig.config;\n var extensionStoreState = extensionsConfigStore.getState();\n return getAssignedExtensionsFromSlotData(slotName, internalState, slotConfig, extensionStoreState);\n}\nfunction calculateAssignedIds(config, attachedIds) {\n var addedIds = config.add || [];\n var removedIds = config.remove || [];\n var idOrder = config.order || [];\n var extensions = extensionInternalStore.getState().extensions;\n return _to_consumable_array(attachedIds).concat(_to_consumable_array(addedIds)).filter(function(id) {\n return !removedIds.includes(id);\n }).sort(function(idA, idB) {\n var _extensions_getExtensionNameFromId, _extensions_getExtensionNameFromId1;\n var ai = getOrder(idA, idOrder, (_extensions_getExtensionNameFromId = extensions[getExtensionNameFromId(idA)]) === null || _extensions_getExtensionNameFromId === void 0 ? void 0 : _extensions_getExtensionNameFromId.order, attachedIds);\n var bi = getOrder(idB, idOrder, (_extensions_getExtensionNameFromId1 = extensions[getExtensionNameFromId(idB)]) === null || _extensions_getExtensionNameFromId1 === void 0 ? void 0 : _extensions_getExtensionNameFromId1.order, attachedIds);\n if (bi === -1) {\n return -1;\n } else if (ai === -1) {\n return 1;\n } else {\n return ai - bi;\n }\n });\n}\n/**\n * Used by by extension slots at mount time.\n *\n * @param moduleName The name of the module that contains the extension slot\n * @param slotName The extension slot name that is actually used\n * @internal\n */ var registerExtensionSlot = function(moduleName, slotName) {\n return extensionInternalStore.setState(function(state) {\n var _state_slots_slotName;\n var existingModuleName = (_state_slots_slotName = state.slots[slotName]) === null || _state_slots_slotName === void 0 ? void 0 : _state_slots_slotName.moduleName;\n if (existingModuleName && existingModuleName != moduleName) {\n console.warn(\"An extension slot with the name '\".concat(slotName, '\\' already exists. Refusing to register the same slot name twice (in \"registerExtensionSlot\"). The existing one is from module ').concat(existingModuleName, \".\"));\n return state;\n }\n if (existingModuleName && existingModuleName == moduleName) {\n // Re-rendering an existing slot\n return state;\n }\n if (state.slots[slotName]) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, _object_spread_props(_object_spread({}, state.slots[slotName]), {\n moduleName: moduleName\n })))\n });\n }\n var slot = createNewExtensionSlotInfo(slotName, moduleName);\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, slot))\n });\n });\n};\n/**\n * @internal\n * Just for testing.\n */ var reset = function() {\n return extensionStore.setState(function() {\n return {\n slots: {},\n extensions: {}\n };\n });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1leHRlbnNpb25zL3NyYy9leHRlbnNpb25zLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0NBQWdDLEdBQ2hDOzs7Ozs7O0NBT0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRStFO0FBVW5EO0FBQ1c7QUFDUTtBQU9yQztBQU9NO0FBRWpCLElBQU1hLHlCQUF5QkosNERBQXlCQTtBQUN4RCxJQUFNSyxpQkFBaUJILHlEQUFpQkE7QUFDeEMsSUFBTUksbUJBQW1CVCxpRkFBNEJBO0FBQ3JELElBQU1VLHdCQUF3QmIsNkVBQXdCQTtBQUV0RCxnQ0FBZ0M7QUFDaEMsU0FBU2MsMkJBQ1BDLGFBQXFDLEVBQ3JDQyxvQkFBK0MsRUFDL0NILHFCQUE0QyxFQUM1QztJQUNBLElBQU1JLFFBQTRDLENBQUM7UUFDOUM7O1FBQUwsUUFBSyxZQUF3QkMsT0FBT0MsT0FBTyxDQUFDSixjQUFjRSxLQUFLLHNCQUExRCx3R0FBNkQ7WUFBN0Qsb0RBQUtHLDJCQUFVQztZQUNsQixJQUFNLFNBQWFuQixvRkFBK0JBLENBQ2hEYyxzQkFDQUssS0FBS0UsSUFBSSxFQUZIRDtZQUlSLElBQU1FLHFCQUFxQkMsa0NBQ3pCTCxVQUNBTCxlQUNBTyxRQUNBVDtZQUVGSSxLQUFLLENBQUNHLFNBQVMsR0FBRztnQkFBRU0sWUFBWUwsS0FBS0ssVUFBVTtnQkFBRUYsb0JBQUFBO1lBQW1CO1FBQ3RFOztRQVpLO1FBQUE7OztpQkFBQTtnQkFBQTs7O2dCQUFBO3NCQUFBOzs7O0lBYUwsSUFBSSxDQUFDcEIsNkRBQU9BLENBQUNPLGVBQWVnQixRQUFRLEdBQUdWLEtBQUssRUFBRUEsUUFBUTtRQUNwRE4sZUFBZWlCLFFBQVEsQ0FBQztZQUFFWCxPQUFBQTtRQUFNO0lBQ2xDLENB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QVVNO1FBQ2xELE9BQU8sd0NBQ0ZjO1lBQ0h2QixPQUFPLHdDQUNGdUIsTUFBTXZCLEtBQUssR0FDZCxxQkFBQ0csVUFBV0M7O0lBR2xCO0VBQUc7QUFFTDs7O0NBR0MsR0FDTSxJQUFNZ0YsUUFBb0I7V0FDL0IxRixlQUFlaUIsUUFBUSxDQUFDLFdBQU07UUFDNUIsT0FBTztZQUNMWCxPQUFPLENBQUM7WUFDUndCLFlBQVksQ0FBQztRQUNmO0lBQ0Y7RUFBRyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1leHRlbnNpb25zL3NyYy9leHRlbnNpb25zLnRzPzc1OWEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IEV4dGVuc2lvbiAqL1xuLypcbiAqIFdlIGhhdmUgdGhlIGZvbGxvd2luZyBleHRlbnNpb24gbW9kZXM6XG4gKlxuICogLSBhdHRhY2hlZCAoc2V0IHZpYSBjb2RlIGluIGZvcm0gb2Y6IGF0dGFjaCwgZGV0YWNoLCAuLi4pXG4gKiAtIGNvbmZpZ3VyZWQgKHNldCB2aWEgY29uZmlndXJhdGlvbiBpbiBmb3JtIG9mOiBhZGRlZCwgcmVtb3ZlZCwgLi4uKVxuICogLSBhc3NpZ25lZCAoY29tcHV0ZWQgZnJvbSBhdHRhY2hlZCBhbmQgY29uZmlndXJlZClcbiAqIC0gY29ubmVjdGVkIChjb21wdXRlZCBmcm9tIGFzc2lnbmVkIHVzaW5nIGNvbm5lY3Rpdml0eSBhbmQgb25saW5lIC8gb2ZmbGluZSlcbiAqL1xuXG5pbXBvcnQgeyBnZXRTZXNzaW9uU3RvcmUsIExvZ2dlZEluVXNlciwgdXNlckhhc0FjY2VzcyB9IGZyb20gXCJAb3Blbm1ycy9lc20tYXBpXCI7XG5pbXBvcnQge1xuICBFeHRlbnNpb25zQ29uZmlnU3RvcmUsXG4gIEV4dGVuc2lvblNsb3RDb25maWdPYmplY3QsXG4gIEV4dGVuc2lvblNsb3RzQ29uZmlnU3RvcmUsXG4gIGdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZSxcbiAgZ2V0RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLFxuICBnZXRFeHRlbnNpb25TbG90Q29uZmlnLFxuICBnZXRFeHRlbnNpb25TbG90Q29uZmlnRnJvbVN0b3JlLFxuICBnZXRFeHRlbnNpb25TbG90c0NvbmZpZ1N0b3JlLFxufSBmcm9tIFwiQG9wZW5tcnMvZXNtLWNvbmZpZ1wiO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSBcImxvZGFzaC1lcy9pc0VxdWFsXCI7XG5pbXBvcnQgaXNVbmRlZmluZWQgZnJvbSBcImxvZGFzaC1lcy9pc1VuZGVmaW5lZFwiO1xuaW1wb3J0IHtcbiAgZ2V0RXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSxcbiAgRXh0ZW5zaW9uU2xvdFN0YXRlLFxuICBBc3NpZ25lZEV4dGVuc2lvbixcbiAgY2hlY2tTdGF0dXNGb3IsXG4gIENvbm5lY3RlZEV4dGVuc2lvbixcbn0gZnJvbSBcIi5cIjtcbmltcG9ydCB7XG4gIEV4dGVuc2lvblJlZ2lzdHJhdGlvbixcbiAgRXh0ZW5zaW9uU2xvdEluZm8sXG4gIEV4dGVuc2lvbkludGVybmFsU3RvcmUsXG4gIGdldEV4dGVuc2lvblN0b3JlLFxuICB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlLFxufSBmcm9tIFwiLi9zdG9yZVwiO1xuXG5jb25zdCBleHRlbnNpb25JbnRlcm5hbFN0b3JlID0gZ2V0RXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSgpO1xuY29uc3QgZXh0ZW5zaW9uU3RvcmUgPSBnZXRFeHRlbnNpb25TdG9yZSgpO1xuY29uc3Qgc2xvdHNDb25maWdTdG9yZSA9IGdldEV4dGVuc2lvblNsb3RzQ29uZmlnU3RvcmUoKTtcbmNvbnN0IGV4dGVuc2lvbnNDb25maWdTdG9yZSA9IGdldEV4dGVuc2lvbnNDb25maWdTdG9yZSgpO1xuXG4vLyBLZWVwIHRoZSBvdXRwdXQgc3RvcmUgdXBkYXRlZFxuZnVuY3Rpb24gdXBkYXRlRXh0ZW5zaW9uT3V0cHV0U3RvcmUoXG4gIGludGVybmFsU3RhdGU6IEV4dGVuc2lvbkludGVybmFsU3RvcmUsXG4gIGV4dGVuc2lvblNsb3RDb25maWdzOiBFeHRlbnNpb25TbG90c0NvbmZpZ1N0b3JlLFxuICBleHRlbnNpb25zQ29uZmlnU3RvcmU6IEV4dGVuc2lvbnNDb25maWdTdG9yZVxuKSB7XG4gIGNvbnN0IHNsb3RzOiBSZWNvcmQ8c3RyaW5nLCBFeHRlbnNpb25TbG90U3RhdGU+ID0ge307XG4gIGZvciAobGV0IFtzbG90TmFtZSwgc2xvdF0gb2YgT2JqZWN0LmVudHJpZXMoaW50ZXJuYWxTdGF0ZS5zbG90cykpIHtcbiAgICBjb25zdCB7IGNvbmZpZyB9ID0gZ2V0RXh0ZW5zaW9uU2xvdENvbmZpZ0Zyb21TdG9yZShcbiAgICAgIGV4dGVuc2lvblNsb3RDb25maWdzLFxuICAgICAgc2xvdC5uYW1lXG4gICAgKTtcbiAgICBjb25zdCBhc3NpZ25lZEV4dGVuc2lvbnMgPSBnZXRBc3NpZ25lZEV4dGVuc2lvbnNGcm9tU2xvdERhdGEoXG4gICAgICBzbG90TmFtZSxcbiAgICAgIGludGVybmFsU3RhdGUsXG4gICAgICBjb25maWcsXG4gICAgICBleHRlbnNpb25zQ29uZmlnU3RvcmVcbiAgICApO1xuICAgIHNsb3RzW3Nsb3ROYW1lXSA9IHsgbW9kdWxlTmFtZTogc2xvdC5tb2R1bGVOYW1lLCBhc3NpZ25lZEV4dGVuc2lvbnMgfTtcbiAgfVxuICBpZiAoIWlzRXF1YWwoZXh0ZW5zaW9uU3RvcmUuZ2V0U3RhdGUoKS5zbG90cywgc2xvdHMpKSB7XG4gICAgZXh0ZW5zaW9uU3RvcmUuc2V0U3RhdGUoeyBzbG90cyB9KTtcbiAgfVxufVxuXG5leHRlbnNpb25JbnRlcm5hbFN0b3JlLnN1YnNjcmliZSgoaW50ZXJuYWxTdG9yZSkgPT4ge1xuICB1cGRhdGVFeHRlbnNpb25PdXRwdXRTdG9yZShcbiAgICBpbnRlcm5hbFN0b3JlLFxuICAgIHNsb3RzQ29uZmlnU3RvcmUuZ2V0U3RhdGUoKSxcbiAgICBleHRlbnNpb25zQ29uZmlnU3RvcmUuZ2V0U3RhdGUoKVxuICApO1xufSk7XG5cbnNsb3RzQ29uZmlnU3RvcmUuc3Vic2NyaWJlKChzbG90Q29uZmlncykgPT4ge1xuICB1cGRhdGVFeHRlbnNpb25PdXRwdXRTdG9yZShcbiAgICBleHRlbnNpb25JbnRlcm5hbFN0b3JlLmdldFN0YXRlKCksXG4gICAgc2xvdENvbmZpZ3MsXG4gICAgZXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLmdldFN0YXRlKClcbiAgKTtcbn0pO1xuXG5leHRlbnNpb25zQ29uZmlnU3RvcmUuc3Vic2NyaWJlKChleHRlbnNpb25Db25maWdzKSA9PiB7XG4gIHVwZGF0ZUV4dGVuc2lvbk91dHB1dFN0b3JlKFxuICAgIGV4dGVuc2lvbkludGVybmFsU3RvcmUuZ2V0U3RhdGUoKSxcbiAgICBzbG90c0NvbmZpZ1N0b3JlLmdldFN0YXRlKCksXG4gICAgZXh0ZW5zaW9uQ29uZmlnc1xuICApO1xufSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZU5ld0V4dGVuc2lvblNsb3RJbmZvKFxuICBzbG90TmFtZTogc3RyaW5nLFxuICBtb2R1bGVOYW1lPzogc3RyaW5nXG4pOiBFeHRlbnNpb25TbG90SW5mbyB7XG4gIHJldHVybiB7XG4gICAgbW9kdWxlTmFtZSxcbiAgICBuYW1lOiBzbG90TmFtZSxcbiAgICBhdHRhY2hlZElkczogW10sXG4gICAgY29uZmlnOiBudWxsLFxuICB9O1xufVxuXG4vKipcbiAqIEdpdmVuIGFuIGV4dGVuc2lvbiBJRCwgd2hpY2ggaXMgYSBzdHJpbmcgdW5pcXVlbHkgaWRlbnRpZnlpbmdcbiAqIGFuIGluc3RhbmNlIG9mIGFuIGV4dGVuc2lvbiB3aXRoaW4gYW4gZXh0ZW5zaW9uIHNsb3QsIHRoaXNcbiAqIHJldHVybnMgdGhlIGV4dGVuc2lvbiBuYW1lLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBqc1xuICogZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChcImZvbyNiYXJcIilcbiAqICAtLT4gXCJmb29cIlxuICogZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChcImJhelwiKVxuICogIC0tPiBcImJhelwiXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVuc2lvbk5hbWVGcm9tSWQoZXh0ZW5zaW9uSWQ6IHN0cmluZykge1xuICBjb25zdCBbZXh0ZW5zaW9uTmFtZV0gPSBleHRlbnNpb25JZC5zcGxpdChcIiNcIik7XG4gIHJldHVybiBleHRlbnNpb25OYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXh0ZW5zaW9uUmVnaXN0cmF0aW9uRnJvbShcbiAgc3RhdGU6IEV4dGVuc2lvbkludGVybmFsU3RvcmUsXG4gIGV4dGVuc2lvbklkOiBzdHJpbmdcbik6IEV4dGVuc2lvblJlZ2lzdHJhdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG5hbWUgPSBnZXRFeHRlbnNpb25OYW1lRnJvbUlkKGV4dGVuc2lvbklkKTtcbiAgcmV0dXJuIHN0YXRlLmV4dGVuc2lvbnNbbmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlbnNpb25SZWdpc3RyYXRpb24oXG4gIGV4dGVuc2lvbklkOiBzdHJpbmdcbik6IEV4dGVuc2lvblJlZ2lzdHJhdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHN0YXRlID0gZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5nZXRTdGF0ZSgpO1xuICByZXR1cm4gZ2V0RXh0ZW5zaW9uUmVnaXN0cmF0aW9uRnJvbShzdGF0ZSwgZXh0ZW5zaW9uSWQpO1xufVxuXG4vKipcbiAqIEV4dGVuc2lvbnMgbXVzdCBiZSByZWdpc3RlcmVkIGluIG9yZGVyIHRvIGJlIHJlbmRlcmVkLlxuICogVGhpcyBpcyBoYW5kbGVkIGJ5IHRoZSBhcHAgc2hlbGwsIHdoZW4gZXh0ZW5zaW9ucyBhcmUgcHJvdmlkZWRcbiAqIHZpYSB0aGUgYHNldHVwT3Blbk1SU2AgcmV0dXJuIG9iamVjdC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJFeHRlbnNpb246IChcbiAgZXh0ZW5zaW9uUmVnaXN0cmF0aW9uOiBFeHRlbnNpb25SZWdpc3RyYXRpb25cbikgPT4gdm9pZCA9IChleHRlbnNpb25SZWdpc3RyYXRpb24pID0+XG4gIGV4dGVuc2lvbkludGVybmFsU3RvcmUuc2V0U3RhdGUoKHN0YXRlKSA9PiB7XG4gICAgc3RhdGUuZXh0ZW5zaW9uc1tleHRlbnNpb25SZWdpc3RyYXRpb24ubmFtZV0gPSB7XG4gICAgICAuLi5leHRlbnNpb25SZWdpc3RyYXRpb24sXG4gICAgICBpbnN0YW5jZXM6IFtdLFxuICAgIH07XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9KTtcblxuLyoqXG4gKiBBdHRhY2ggYW4gZXh0ZW5zaW9uIHRvIGFuIGV4dGVuc2lvbiBzbG90LlxuICpcbiAqIFRoaXMgd2lsbCBjYXVzZSB0aGUgZXh0ZW5zaW9uIHRvIGJlIHJlbmRlcmVkIGludG8gdGhlIHNwZWNpZmllZFxuICogZXh0ZW5zaW9uIHNsb3QsIHVubGVzcyBpdCBpcyByZW1vdmVkIGJ5IGNvbmZpZ3VyYXRpb24uIFVzaW5nXG4gKiBgYXR0YWNoYCBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzcGVjaWZ5aW5nIHRoZSBgc2xvdGAgb3IgYHNsb3RzYFxuICogaW4gdGhlIGV4dGVuc2lvbiBkZWNsYXJhdGlvbi5cbiAqXG4gKiBJdCBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gY3JlYXRpbmcgYSBzbG90IGludG8gd2hpY2hcbiAqIHlvdSB3YW50IHRvIHJlbmRlciBhbiBleGlzdGluZyBleHRlbnNpb24uIFRoaXMgZW5hYmxlcyB5b3VcbiAqIHRvIGRvIHNvIHdpdGhvdXQgbW9kaWZ5aW5nIHRoZSBleHRlbnNpb24ncyBkZWNsYXJhdGlvbiwgd2hpY2hcbiAqIG1heSBiZSBpbXByYWN0aWNhbCBvciBpbmFwcHJvcHJpYXRlLCBmb3IgZXhhbXBsZSBpZiB5b3UgYXJlXG4gKiB3cml0aW5nIGEgbW9kdWxlIGZvciBhIHNwZWNpZmljIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIEBwYXJhbSBzbG90TmFtZSBhIG5hbWUgdW5pcXVlbHkgaWRlbnRpZnlpbmcgdGhlIHNsb3RcbiAqIEBwYXJhbSBleHRlbnNpb25JZCBhbiBleHRlbnNpb24gbmFtZSwgd2l0aCBhbiBvcHRpb25hbCAjLXN1ZmZpeFxuICogICAgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbSBvdGhlciBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgZXh0ZW5zaW9uXG4gKiAgICBhdHRhY2hlZCB0byB0aGUgc2FtZSBzbG90LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXR0YWNoKHNsb3ROYW1lOiBzdHJpbmcsIGV4dGVuc2lvbklkOiBzdHJpbmcpIHtcbiAgdXBkYXRlSW50ZXJuYWxFeHRlbnNpb25TdG9yZSgoc3RhdGUpID0+IHtcbiAgICBjb25zdCBleGlzdGluZ1Nsb3QgPSBzdGF0ZS5zbG90c1tzbG90TmFtZV07XG5cbiAgICBpZiAoIWV4aXN0aW5nU2xvdCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNsb3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgICAgW3Nsb3ROYW1lXToge1xuICAgICAgICAgICAgLi4uY3JlYXRlTmV3RXh0ZW5zaW9uU2xvdEluZm8oc2xvdE5hbWUpLFxuICAgICAgICAgICAgYXR0YWNoZWRJZHM6IFtleHRlbnNpb25JZF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzbG90czoge1xuICAgICAgICAgIC4uLnN0YXRlLnNsb3RzLFxuICAgICAgICAgIFtzbG90TmFtZV06IHtcbiAgICAgICAgICAgIC4uLmV4aXN0aW5nU2xvdCxcbiAgICAgICAgICAgIGF0dGFjaGVkSWRzOiBbLi4uZXhpc3RpbmdTbG90LmF0dGFjaGVkSWRzLCBleHRlbnNpb25JZF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbn1cblxuLyoqIEF2b2lkIHVzaW5nIHRoaXMuIEV4dGVuc2lvbiBhdHRhY2htZW50cyBzaG91bGQgYmUgY29uc2lkZXJlZCBkZWNsYXJhdGl2ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXRhY2goZXh0ZW5zaW9uU2xvdE5hbWU6IHN0cmluZywgZXh0ZW5zaW9uSWQ6IHN0cmluZykge1xuICB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlKChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nU2xvdCA9IHN0YXRlLnNsb3RzW2V4dGVuc2lvblNsb3ROYW1lXTtcblxuICAgIGlmIChleGlzdGluZ1Nsb3QgJiYgZXhpc3RpbmdTbG90LmF0dGFjaGVkSWRzLmluY2x1ZGVzKGV4dGVuc2lvbklkKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNsb3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgICAgW2V4dGVuc2lvblNsb3ROYW1lXToge1xuICAgICAgICAgICAgLi4uZXhpc3RpbmdTbG90LFxuICAgICAgICAgICAgYXR0YWNoZWRJZHM6IGV4aXN0aW5nU2xvdC5hdHRhY2hlZElkcy5maWx0ZXIoXG4gICAgICAgICAgICAgIChpZCkgPT4gaWQgIT09IGV4dGVuc2lvbklkXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqIEF2b2lkIHVzaW5nIHRoaXMuIEV4dGVuc2lvbiBhdHRhY2htZW50cyBzaG91bGQgYmUgY29uc2lkZXJlZCBkZWNsYXJhdGl2ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXRhY2hBbGwoZXh0ZW5zaW9uU2xvdE5hbWU6IHN0cmluZykge1xuICB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlKChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nU2xvdCA9IHN0YXRlLnNsb3RzW2V4dGVuc2lvblNsb3ROYW1lXTtcblxuICAgIGlmIChleGlzdGluZ1Nsb3QpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzbG90czoge1xuICAgICAgICAgIC4uLnN0YXRlLnNsb3RzLFxuICAgICAgICAgIFtleHRlbnNpb25TbG90TmFtZV06IHtcbiAgICAgICAgICAgIC4uLmV4aXN0aW5nU2xvdCxcbiAgICAgICAgICAgIGF0dGFjaGVkSWRzOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IGFuIG9yZGVyIGluZGV4IGZvciB0aGUgZXh0ZW5zaW9uLiBUaGlzIHdpbGxcbiAqIGNvbWUgZnJvbSBlaXRoZXIgaXRzIGNvbmZpZ3VyZWQgb3JkZXIsIGl0cyByZWdpc3RlcmVkIG9yZGVyXG4gKiBwYXJhbWV0ZXIsIG9yIHRoZSBvcmRlciBpbiB3aGljaCBpdCBoYXBwZW5lZCB0byBiZSBhdHRhY2hlZC5cbiAqL1xuZnVuY3Rpb24gZ2V0T3JkZXIoXG4gIGV4dGVuc2lvbklkOiBzdHJpbmcsXG4gIGNvbmZpZ3VyZWRPcmRlcjogQXJyYXk8c3RyaW5nPixcbiAgcmVnaXN0ZXJlZE9yZGVySW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgYXR0YWNoZWRPcmRlcjogQXJyYXk8c3RyaW5nPlxuKSB7XG4gIGNvbnN0IGNvbmZpZ3VyZWRJbmRleCA9IGNvbmZpZ3VyZWRPcmRlci5pbmRleE9mKGV4dGVuc2lvbklkKTtcbiAgaWYgKGNvbmZpZ3VyZWRJbmRleCAhPT0gLTEpIHtcbiAgICByZXR1cm4gY29uZmlndXJlZEluZGV4O1xuICB9IGVsc2UgaWYgKHJlZ2lzdGVyZWRPcmRlckluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAvLyBleHRlbnNpb25zIHRoYXQgZG9uJ3QgaGF2ZSBhIGNvbmZpZ3VyZWQgb3JkZXIgc2hvdWxkIGFwcGVhciBhZnRlciB0aG9zZSB0aGF0IGRvXG4gICAgcmV0dXJuIDEwMDAgKyByZWdpc3RlcmVkT3JkZXJJbmRleDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBhc3NpZ25lZEluZGV4ID0gYXR0YWNoZWRPcmRlci5pbmRleE9mKGV4dGVuc2lvbklkKTtcbiAgICBpZiAoYXNzaWduZWRJbmRleCAhPT0gLTEpIHtcbiAgICAgIC8vIGV4dGVuc2lvbnMgdGhhdCBoYXZlIG5laXRoZXIgYSBjb25maWd1cmVkIG5vciByZWdpc3RlcmVkIG9yZGVyIHNob3VsZCBhcHBlYXJcbiAgICAgIC8vIGFmdGVyIGFsbCBvdGhlcnNcbiAgICAgIHJldHVybiAyMDAwICsgYXNzaWduZWRJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEZpbHRlcnMgYSBsaXN0IG9mIGV4dGVuc2lvbnMgYWNjb3JkaW5nIHRvIHdoZXRoZXIgdGhleSBzdXBwb3J0IHRoZVxuICogY3VycmVudCBjb25uZWN0aXZpdHkgc3RhdHVzLlxuICpcbiAqIEBwYXJhbSBhc3NpZ25lZEV4dGVuc2lvbnMgVGhlIGxpc3Qgb2YgZXh0ZW5zaW9ucyB0byBmaWx0ZXIuXG4gKiBAcGFyYW0gb25saW5lIFdoZXRoZXIgdGhlIGFwcCBpcyBjdXJyZW50bHkgb25saW5lLiBJZiBgbnVsbGAsIHVzZXMgYG5hdmlnYXRvci5vbkxpbmVgLlxuICogQHJldHVybnMgQSBsaXN0IG9mIGV4dGVuc2lvbnMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbm5lY3RlZEV4dGVuc2lvbnMoXG4gIGFzc2lnbmVkRXh0ZW5zaW9uczogQXJyYXk8QXNzaWduZWRFeHRlbnNpb24+LFxuICBvbmxpbmU6IGJvb2xlYW4gfCBudWxsID0gbnVsbFxuKTogQXJyYXk8Q29ubmVjdGVkRXh0ZW5zaW9uPiB7XG4gIGNvbnN0IGlzT25saW5lID0gb25saW5lID8/IG5hdmlnYXRvci5vbkxpbmU7XG4gIHJldHVybiBhc3NpZ25lZEV4dGVuc2lvbnMuZmlsdGVyKChlKSA9PlxuICAgIGNoZWNrU3RhdHVzRm9yKGlzT25saW5lLCBlLm9ubGluZSwgZS5vZmZsaW5lKVxuICApO1xufVxuXG5mdW5jdGlvbiBnZXRBc3NpZ25lZEV4dGVuc2lvbnNGcm9tU2xvdERhdGEoXG4gIHNsb3ROYW1lOiBzdHJpbmcsXG4gIGludGVybmFsU3RhdGU6IEV4dGVuc2lvbkludGVybmFsU3RvcmUsXG4gIGNvbmZpZzogRXh0ZW5zaW9uU2xvdENvbmZpZ09iamVjdCxcbiAgZXh0ZW5zaW9uQ29uZmlnU3RvcmVTdGF0ZTogRXh0ZW5zaW9uc0NvbmZpZ1N0b3JlXG4pOiBBcnJheTxBc3NpZ25lZEV4dGVuc2lvbj4ge1xuICBjb25zdCBhdHRhY2hlZElkcyA9IGludGVybmFsU3RhdGUuc2xvdHNbc2xvdE5hbWVdLmF0dGFjaGVkSWRzO1xuICBjb25zdCBhc3NpZ25lZElkcyA9IGNhbGN1bGF0ZUFzc2lnbmVkSWRzKGNvbmZpZywgYXR0YWNoZWRJZHMpO1xuICBjb25zdCBleHRlbnNpb25zOiBBcnJheTxBc3NpZ25lZEV4dGVuc2lvbj4gPSBbXTtcbiAgbGV0IHVzZXI6IExvZ2dlZEluVXNlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBmb3IgKGxldCBpZCBvZiBhc3NpZ25lZElkcykge1xuICAgIGNvbnN0IHsgY29uZmlnOiBleHRlbnNpb25Db25maWcgfSA9IGdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZShcbiAgICAgIGV4dGVuc2lvbkNvbmZpZ1N0b3JlU3RhdGUsXG4gICAgICBzbG90TmFtZSxcbiAgICAgIGlkXG4gICAgKTtcbiAgICBjb25zdCBuYW1lID0gZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChpZCk7XG4gICAgY29uc3QgZXh0ZW5zaW9uID0gaW50ZXJuYWxTdGF0ZS5leHRlbnNpb25zW25hbWVdO1xuXG4gICAgLy8gaWYgdGhlIGV4dGVuc2lvbiBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZCB5ZXQsIGRvIG5vdCBpbmNsdWRlIGl0XG4gICAgaWYgKGV4dGVuc2lvbikge1xuICAgICAgY29uc3QgcmVxdWlyZWRQcml2aWxlZ2VzID1cbiAgICAgICAgZXh0ZW5zaW9uQ29uZmlnPy5bXCJEaXNwbGF5IGNvbmRpdGlvbnNcIl0/LnByaXZpbGVnZXMgPz9cbiAgICAgICAgZXh0ZW5zaW9uLnByaXZpbGVnZXMgPz9cbiAgICAgICAgW107XG4gICAgICBpZiAoXG4gICAgICAgIHJlcXVpcmVkUHJpdmlsZWdlcyAmJlxuICAgICAgICAodHlwZW9mIHJlcXVpcmVkUHJpdmlsZWdlcyA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICAgIChBcnJheS5pc0FycmF5KHJlcXVpcmVkUHJpdmlsZWdlcykgJiYgcmVxdWlyZWRQcml2aWxlZ2VzLmxlbmd0aCA+IDApKVxuICAgICAgKSB7XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZCh1c2VyKSkge1xuICAgICAgICAgIHVzZXIgPSBnZXRTZXNzaW9uU3RvcmUoKS5nZXRTdGF0ZSgpLnNlc3Npb24/LnVzZXI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXVzZXIpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdXNlckhhc0FjY2VzcyhyZXF1aXJlZFByaXZpbGVnZXMsIHVzZXIpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZXh0ZW5zaW9ucy5wdXNoKHtcbiAgICAgICAgaWQsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIG1vZHVsZU5hbWU6IGV4dGVuc2lvbi5tb2R1bGVOYW1lLFxuICAgICAgICBjb25maWc6IGV4dGVuc2lvbkNvbmZpZyxcbiAgICAgICAgbWV0YTogZXh0ZW5zaW9uLm1ldGEsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXh0ZW5zaW9ucztcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBsaXN0IG9mIGV4dGVuc2lvbnMgYXNzaWduZWQgdG8gYSBnaXZlbiBzbG90XG4gKlxuICogQHBhcmFtIHNsb3ROYW1lIFRoZSBzbG90IHRvIGxvYWQgdGhlIGFzc2lnbmVkIGV4dGVuc2lvbnMgZm9yXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBleHRlbnNpb25zIGFzc2lnbmVkIHRvIHRoZSBuYW1lZCBzbG90XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBc3NpZ25lZEV4dGVuc2lvbnMoXG4gIHNsb3ROYW1lOiBzdHJpbmdcbik6IEFycmF5PEFzc2lnbmVkRXh0ZW5zaW9uPiB7XG4gIGNvbnN0IGludGVybmFsU3RhdGUgPSBleHRlbnNpb25JbnRlcm5hbFN0b3JlLmdldFN0YXRlKCk7XG4gIGNvbnN0IHsgY29uZmlnOiBzbG90Q29uZmlnIH0gPSBnZXRFeHRlbnNpb25TbG90Q29uZmlnKHNsb3ROYW1lKTtcbiAgY29uc3QgZXh0ZW5zaW9uU3RvcmVTdGF0ZSA9IGV4dGVuc2lvbnNDb25maWdTdG9yZS5nZXRTdGF0ZSgpO1xuICByZXR1cm4gZ2V0QXNzaWduZWRFeHRlbnNpb25zRnJvbVNsb3REYXRhKFxuICAgIHNsb3ROYW1lLFxuICAgIGludGVybmFsU3RhdGUsXG4gICAgc2xvdENvbmZpZyxcbiAgICBleHRlbnNpb25TdG9yZVN0YXRlXG4gICk7XG59XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUFzc2lnbmVkSWRzKFxuICBjb25maWc6IEV4dGVuc2lvblNsb3RDb25maWdPYmplY3QsXG4gIGF0dGFjaGVkSWRzOiBBcnJheTxzdHJpbmc+XG4pIHtcbiAgY29uc3QgYWRkZWRJZHMgPSBjb25maWcuYWRkIHx8IFtdO1xuICBjb25zdCByZW1vdmVkSWRzID0gY29uZmlnLnJlbW92ZSB8fCBbXTtcbiAgY29uc3QgaWRPcmRlciA9IGNvbmZpZy5vcmRlciB8fCBbXTtcbiAgY29uc3QgeyBleHRlbnNpb25zIH0gPSBleHRlbnNpb25JbnRlcm5hbFN0b3JlLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIFsuLi5hdHRhY2hlZElkcywgLi4uYWRkZWRJZHNdXG4gICAgLmZpbHRlcigoaWQpID0+ICFyZW1vdmVkSWRzLmluY2x1ZGVzKGlkKSlcbiAgICAuc29ydCgoaWRBLCBpZEIpID0+IHtcbiAgICAgIGNvbnN0IGFpID0gZ2V0T3JkZXIoXG4gICAgICAgIGlkQSxcbiAgICAgICAgaWRPcmRlcixcbiAgICAgICAgZXh0ZW5zaW9uc1tnZXRFeHRlbnNpb25OYW1lRnJvbUlkKGlkQSldPy5vcmRlcixcbiAgICAgICAgYXR0YWNoZWRJZHNcbiAgICAgICk7XG4gICAgICBjb25zdCBiaSA9IGdldE9yZGVyKFxuICAgICAgICBpZEIsXG4gICAgICAgIGlkT3JkZXIsXG4gICAgICAgIGV4dGVuc2lvbnNbZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChpZEIpXT8ub3JkZXIsXG4gICAgICAgIGF0dGFjaGVkSWRzXG4gICAgICApO1xuXG4gICAgICBpZiAoYmkgPT09IC0xKSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH0gZWxzZSBpZiAoYWkgPT09IC0xKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGFpIC0gYmk7XG4gICAgICB9XG4gICAgfSk7XG59XG5cbi8qKlxuICogVXNlZCBieSBieSBleHRlbnNpb24gc2xvdHMgYXQgbW91bnQgdGltZS5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlTmFtZSBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlIHRoYXQgY29udGFpbnMgdGhlIGV4dGVuc2lvbiBzbG90XG4gKiBAcGFyYW0gc2xvdE5hbWUgVGhlIGV4dGVuc2lvbiBzbG90IG5hbWUgdGhhdCBpcyBhY3R1YWxseSB1c2VkXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyRXh0ZW5zaW9uU2xvdDogKFxuICBtb2R1bGVOYW1lOiBzdHJpbmcsXG4gIHNsb3ROYW1lOiBzdHJpbmdcbikgPT4gdm9pZCA9IChtb2R1bGVOYW1lLCBzbG90TmFtZSkgPT5cbiAgZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5zZXRTdGF0ZSgoc3RhdGUpID0+IHtcbiAgICBjb25zdCBleGlzdGluZ01vZHVsZU5hbWUgPSBzdGF0ZS5zbG90c1tzbG90TmFtZV0/Lm1vZHVsZU5hbWU7XG4gICAgaWYgKGV4aXN0aW5nTW9kdWxlTmFtZSAmJiBleGlzdGluZ01vZHVsZU5hbWUgIT0gbW9kdWxlTmFtZSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgQW4gZXh0ZW5zaW9uIHNsb3Qgd2l0aCB0aGUgbmFtZSAnJHtzbG90TmFtZX0nIGFscmVhZHkgZXhpc3RzLiBSZWZ1c2luZyB0byByZWdpc3RlciB0aGUgc2FtZSBzbG90IG5hbWUgdHdpY2UgKGluIFwicmVnaXN0ZXJFeHRlbnNpb25TbG90XCIpLiBUaGUgZXhpc3Rpbmcgb25lIGlzIGZyb20gbW9kdWxlICR7ZXhpc3RpbmdNb2R1bGVOYW1lfS5gXG4gICAgICApO1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgICBpZiAoZXhpc3RpbmdNb2R1bGVOYW1lICYmIGV4aXN0aW5nTW9kdWxlTmFtZSA9PSBtb2R1bGVOYW1lKSB7XG4gICAgICAvLyBSZS1yZW5kZXJpbmcgYW4gZXhpc3Rpbmcgc2xvdFxuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgICBpZiAoc3RhdGUuc2xvdHNbc2xvdE5hbWVdKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2xvdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5zbG90cyxcbiAgICAgICAgICBbc2xvdE5hbWVdOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5zbG90c1tzbG90TmFtZV0sXG4gICAgICAgICAgICBtb2R1bGVOYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBzbG90ID0gY3JlYXRlTmV3RXh0ZW5zaW9uU2xvdEluZm8oc2xvdE5hbWUsIG1vZHVsZU5hbWUpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHNsb3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLnNsb3RzLFxuICAgICAgICBbc2xvdE5hbWVdOiBzbG90LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEp1c3QgZm9yIHRlc3RpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCByZXNldDogKCkgPT4gdm9pZCA9ICgpID0+XG4gIGV4dGVuc2lvblN0b3JlLnNldFN0YXRlKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2xvdHM6IHt9LFxuICAgICAgZXh0ZW5zaW9uczoge30sXG4gICAgfTtcbiAgfSk7XG4iXSwibmFtZXMiOlsiZ2V0U2Vzc2lvblN0b3JlIiwidXNlckhhc0FjY2VzcyIsImdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZSIsImdldEV4dGVuc2lvbnNDb25maWdTdG9yZSIsImdldEV4dGVuc2lvblNsb3RDb25maWciLCJnZXRFeHRlbnNpb25TbG90Q29uZmlnRnJvbVN0b3JlIiwiZ2V0RXh0ZW5zaW9uU2xvdHNDb25maWdTdG9yZSIsImlzRXF1YWwiLCJpc1VuZGVmaW5lZCIsImdldEV4dGVuc2lvbkludGVybmFsU3RvcmUiLCJjaGVja1N0YXR1c0ZvciIsImdldEV4dGVuc2lvblN0b3JlIiwidXBkYXRlSW50ZXJuYWxFeHRlbnNpb25TdG9yZSIsImV4dGVuc2lvbkludGVybmFsU3RvcmUiLCJleHRlbnNpb25TdG9yZSIsInNsb3RzQ29uZmlnU3RvcmUiLCJleHRlbnNpb25zQ29uZmlnU3RvcmUiLCJ1cGRhdGVFeHRlbnNpb25PdXRwdXRTdG9yZSIsImludGVybmFsU3RhdGUiLCJleHRlbnNpb25TbG90Q29uZmlncyIsInNsb3RzIiwiT2JqZWN0IiwiZW50cmllcyIsInNsb3ROYW1lIiwic2xvdCIsImNvbmZpZyIsIm5hbWUiLCJhc3NpZ25lZEV4dGVuc2lvbnMiLCJnZXRBc3NpZ25lZEV4dGVuc2lvbnNGcm9tU2xvdERhdGEiLCJtb2R1bGVOYW1lIiwiZ2V0U3RhdGUiLCJzZXRTdGF0ZSIsInN1YnNjcmliZSIsImludGVybmFsU3RvcmUiLCJzbG90Q29uZmlncyIsImV4dGVuc2lvbkNvbmZpZ3MiLCJjcmVhdGVOZXdFeHRlbnNpb25TbG90SW5mbyIsImF0dGFjaGVkSWRzIiwiZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZCIsImV4dGVuc2lvbklkIiwic3BsaXQiLCJleHRlbnNpb25OYW1lIiwiZ2V0RXh0ZW5zaW9uUmVnaXN0cmF0aW9uRnJvbSIsInN0YXRlIiwiZXh0ZW5zaW9ucyIsImdldEV4dGVuc2lvblJlZ2lzdHJhdGlvbiIsInJlZ2lzdGVyRXh0ZW5zaW9uIiwiZXh0ZW5zaW9uUmVnaXN0cmF0aW9uIiwiaW5zdGFuY2VzIiwiYXR0YWNoIiwiZXhpc3RpbmdTbG90IiwiZGV0YWNoIiwiZXh0ZW5zaW9uU2xvdE5hbWUiLCJpbmNsdWRlcyIsImZpbHRlciIsImlkIiwiZGV0YWNoQWxsIiwiZ2V0T3JkZXIiLCJjb25maWd1cmVkT3JkZXIiLCJyZWdpc3RlcmVkT3JkZXJJbmRleCIsImF0dGFjaGVkT3JkZXIiLCJjb25maWd1cmVkSW5kZXgiLCJpbmRleE9mIiwidW5kZWZpbmVkIiwiYXNzaWduZWRJbmRleCIsImdldENvbm5lY3RlZEV4dGVuc2lvbnMiLCJvbmxpbmUiLCJpc09ubGluZSIsIm5hdmlnYXRvciIsIm9uTGluZSIsImUiLCJvZmZsaW5lIiwiZXh0ZW5zaW9uQ29uZmlnU3RvcmVTdGF0ZSIsImFzc2lnbmVkSWRzIiwiY2FsY3VsYXRlQXNzaWduZWRJZHMiLCJ1c2VyIiwiZXh0ZW5zaW9uQ29uZmlnIiwiZXh0ZW5zaW9uIiwicmVxdWlyZWRQcml2aWxlZ2VzIiwicHJpdmlsZWdlcyIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsInNlc3Npb24iLCJwdXNoIiwibWV0YSIsImdldEFzc2lnbmVkRXh0ZW5zaW9ucyIsInNsb3RDb25maWciLCJleHRlbnNpb25TdG9yZVN0YXRlIiwiYWRkZWRJZHMiLCJhZGQiLCJyZW1vdmVkSWRzIiwicmVtb3ZlIiwiaWRPcmRlciIsIm9yZGVyIiwic29ydCIsImlkQSIsImlkQiIsImFpIiwiYmkiLCJyZWdpc3RlckV4dGVuc2lvblNsb3QiLCJleGlzdGluZ01vZHVsZU5hbWUiLCJjb25zb2xlIiwid2FybiIsInJlc2V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../framework/esm-extensions/src/extensions.ts\n");
6629
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ attach: () => (/* binding */ attach),\n/* harmony export */ detach: () => (/* binding */ detach),\n/* harmony export */ detachAll: () => (/* binding */ detachAll),\n/* harmony export */ getAssignedExtensions: () => (/* binding */ getAssignedExtensions),\n/* harmony export */ getConnectedExtensions: () => (/* binding */ getConnectedExtensions),\n/* harmony export */ getExtensionNameFromId: () => (/* binding */ getExtensionNameFromId),\n/* harmony export */ getExtensionRegistration: () => (/* binding */ getExtensionRegistration),\n/* harmony export */ getExtensionRegistrationFrom: () => (/* binding */ getExtensionRegistrationFrom),\n/* harmony export */ registerExtension: () => (/* binding */ registerExtension),\n/* harmony export */ registerExtensionSlot: () => (/* binding */ registerExtensionSlot),\n/* harmony export */ reset: () => (/* binding */ reset)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-api */ \"../../framework/esm-api/src/index.ts\");\n/* harmony import */ var _openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-config */ \"../../framework/esm-config/src/index.ts\");\n/* harmony import */ var _openmrs_esm_feature_flags__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-feature-flags */ \"../../framework/esm-feature-flags/src/index.ts\");\n/* harmony import */ var lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash-es/isEqual */ \"../../../node_modules/lodash-es/isEqual.js\");\n/* harmony import */ var lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash-es/isUndefined */ \"../../../node_modules/lodash-es/isUndefined.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! . */ \"../../framework/esm-extensions/src/index.ts\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./store */ \"../../framework/esm-extensions/src/store.ts\");\n/** @module @category Extension */ /*\n * We have the following extension modes:\n *\n * - attached (set via code in form of: attach, detach, ...)\n * - configured (set via configuration in form of: added, removed, ...)\n * - assigned (computed from attached and configured)\n * - connected (computed from assigned using connectivity and online / offline)\n */ function _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 _array_without_holes(arr) {\n if (Array.isArray(arr)) return _array_like_to_array(arr);\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(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\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 _non_iterable_spread() {\n throw new TypeError(\"Invalid attempt to spread 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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\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 _to_consumable_array(arr) {\n return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();\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}\n\n\n\n\n\n\n\nvar extensionInternalStore = (0,___WEBPACK_IMPORTED_MODULE_3__.getExtensionInternalStore)();\nvar extensionStore = (0,_store__WEBPACK_IMPORTED_MODULE_4__.getExtensionStore)();\nvar slotsConfigStore = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionSlotsConfigStore)();\nvar extensionsConfigStore = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionsConfigStore)();\n// Keep the output store updated\nfunction updateExtensionOutputStore(internalState, extensionSlotConfigs, extensionsConfigStore) {\n var slots = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = Object.entries(internalState.slots)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var _step_value = _sliced_to_array(_step.value, 2), slotName = _step_value[0], slot = _step_value[1];\n var config = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionSlotConfigFromStore)(extensionSlotConfigs, slot.name).config;\n var assignedExtensions = getAssignedExtensionsFromSlotData(slotName, internalState, config, extensionsConfigStore);\n slots[slotName] = {\n moduleName: slot.moduleName,\n assignedExtensions: assignedExtensions\n };\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (!(0,lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(extensionStore.getState().slots, slots)) {\n extensionStore.setState({\n slots: slots\n });\n }\n}\nextensionInternalStore.subscribe(function(internalStore) {\n updateExtensionOutputStore(internalStore, slotsConfigStore.getState(), extensionsConfigStore.getState());\n});\nslotsConfigStore.subscribe(function(slotConfigs) {\n updateExtensionOutputStore(extensionInternalStore.getState(), slotConfigs, extensionsConfigStore.getState());\n});\nextensionsConfigStore.subscribe(function(extensionConfigs) {\n updateExtensionOutputStore(extensionInternalStore.getState(), slotsConfigStore.getState(), extensionConfigs);\n});\nfunction createNewExtensionSlotInfo(slotName, moduleName) {\n return {\n moduleName: moduleName,\n name: slotName,\n attachedIds: [],\n config: null\n };\n}\n/**\n * Given an extension ID, which is a string uniquely identifying\n * an instance of an extension within an extension slot, this\n * returns the extension name.\n *\n * @example\n * ```js\n * getExtensionNameFromId(\"foo#bar\")\n * --> \"foo\"\n * getExtensionNameFromId(\"baz\")\n * --> \"baz\"\n * ```\n */ function getExtensionNameFromId(extensionId) {\n var _extensionId_split = _sliced_to_array(extensionId.split(\"#\"), 1), extensionName = _extensionId_split[0];\n return extensionName;\n}\nfunction getExtensionRegistrationFrom(state, extensionId) {\n var name = getExtensionNameFromId(extensionId);\n return state.extensions[name];\n}\nfunction getExtensionRegistration(extensionId) {\n var state = extensionInternalStore.getState();\n return getExtensionRegistrationFrom(state, extensionId);\n}\n/**\n * Extensions must be registered in order to be rendered.\n * This is handled by the app shell, when extensions are provided\n * via the `setupOpenMRS` return object.\n * @internal\n */ var registerExtension = function(extensionRegistration) {\n return extensionInternalStore.setState(function(state) {\n state.extensions[extensionRegistration.name] = _object_spread_props(_object_spread({}, extensionRegistration), {\n instances: []\n });\n return state;\n });\n};\n/**\n * Attach an extension to an extension slot.\n *\n * This will cause the extension to be rendered into the specified\n * extension slot, unless it is removed by configuration. Using\n * `attach` is an alternative to specifying the `slot` or `slots`\n * in the extension declaration.\n *\n * It is particularly useful when creating a slot into which\n * you want to render an existing extension. This enables you\n * to do so without modifying the extension's declaration, which\n * may be impractical or inappropriate, for example if you are\n * writing a module for a specific implementation.\n *\n * @param slotName a name uniquely identifying the slot\n * @param extensionId an extension name, with an optional #-suffix\n * to distinguish it from other instances of the same extension\n * attached to the same slot.\n */ function attach(slotName, extensionId) {\n (0,_store__WEBPACK_IMPORTED_MODULE_4__.updateInternalExtensionStore)(function(state) {\n var existingSlot = state.slots[slotName];\n if (!existingSlot) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, _object_spread_props(_object_spread({}, createNewExtensionSlotInfo(slotName)), {\n attachedIds: [\n extensionId\n ]\n })))\n });\n } else {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, _object_spread_props(_object_spread({}, existingSlot), {\n attachedIds: _to_consumable_array(existingSlot.attachedIds).concat([\n extensionId\n ])\n })))\n });\n }\n });\n}\n/** Avoid using this. Extension attachments should be considered declarative. */ function detach(extensionSlotName, extensionId) {\n (0,_store__WEBPACK_IMPORTED_MODULE_4__.updateInternalExtensionStore)(function(state) {\n var existingSlot = state.slots[extensionSlotName];\n if (existingSlot && existingSlot.attachedIds.includes(extensionId)) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, extensionSlotName, _object_spread_props(_object_spread({}, existingSlot), {\n attachedIds: existingSlot.attachedIds.filter(function(id) {\n return id !== extensionId;\n })\n })))\n });\n } else {\n return state;\n }\n });\n}\n/** Avoid using this. Extension attachments should be considered declarative. */ function detachAll(extensionSlotName) {\n (0,_store__WEBPACK_IMPORTED_MODULE_4__.updateInternalExtensionStore)(function(state) {\n var existingSlot = state.slots[extensionSlotName];\n if (existingSlot) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, extensionSlotName, _object_spread_props(_object_spread({}, existingSlot), {\n attachedIds: []\n })))\n });\n } else {\n return state;\n }\n });\n}\n/**\n * Get an order index for the extension. This will\n * come from either its configured order, its registered order\n * parameter, or the order in which it happened to be attached.\n */ function getOrder(extensionId, configuredOrder, registeredOrderIndex, attachedOrder) {\n var configuredIndex = configuredOrder.indexOf(extensionId);\n if (configuredIndex !== -1) {\n return configuredIndex;\n } else if (registeredOrderIndex !== undefined) {\n // extensions that don't have a configured order should appear after those that do\n return 1000 + registeredOrderIndex;\n } else {\n var assignedIndex = attachedOrder.indexOf(extensionId);\n if (assignedIndex !== -1) {\n // extensions that have neither a configured nor registered order should appear\n // after all others\n return 2000 + assignedIndex;\n } else {\n return -1;\n }\n }\n}\n/**\n * Filters a list of extensions according to whether they support the\n * current connectivity status.\n *\n * @param assignedExtensions The list of extensions to filter.\n * @param online Whether the app is currently online. If `null`, uses `navigator.onLine`.\n * @param enabledFeatureFlags The names of all enabled feature flags. If `null`, looks\n * up the feature flags using the feature flags API.\n * @returns A list of extensions that should be rendered\n */ function getConnectedExtensions(assignedExtensions) {\n var online = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, enabledFeatureFlags = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;\n var isOnline = online !== null && online !== void 0 ? online : navigator.onLine;\n var featureFlags = enabledFeatureFlags !== null && enabledFeatureFlags !== void 0 ? enabledFeatureFlags : Object.entries(_openmrs_esm_feature_flags__WEBPACK_IMPORTED_MODULE_2__.featureFlagsStore.getState().flags).filter(function(param) {\n var _param = _sliced_to_array(param, 2), enabled = _param[1].enabled;\n return enabled;\n }).map(function(param) {\n var _param = _sliced_to_array(param, 1), name = _param[0];\n return name;\n });\n return assignedExtensions.filter(function(e) {\n return (0,___WEBPACK_IMPORTED_MODULE_3__.checkStatusFor)(isOnline, e.online, e.offline);\n }).filter(function(e) {\n return e.featureFlag === undefined || (featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.includes(e.featureFlag));\n });\n}\nfunction getAssignedExtensionsFromSlotData(slotName, internalState, config, extensionConfigStoreState) {\n var attachedIds = internalState.slots[slotName].attachedIds;\n var assignedIds = calculateAssignedIds(config, attachedIds);\n var extensions = [];\n var user = undefined;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = assignedIds[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var id = _step.value;\n var _getExtensionConfigFromStore = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionConfigFromStore)(extensionConfigStoreState, slotName, id), extensionConfig = _getExtensionConfigFromStore.config;\n var name = getExtensionNameFromId(id);\n var extension = internalState.extensions[name];\n // if the extension has not been registered yet, do not include it\n if (extension) {\n var _extensionConfig_Displayconditions;\n var _extensionConfig_Displayconditions_privileges, _ref;\n var requiredPrivileges = (_ref = (_extensionConfig_Displayconditions_privileges = extensionConfig === null || extensionConfig === void 0 ? void 0 : (_extensionConfig_Displayconditions = extensionConfig[\"Display conditions\"]) === null || _extensionConfig_Displayconditions === void 0 ? void 0 : _extensionConfig_Displayconditions.privileges) !== null && _extensionConfig_Displayconditions_privileges !== void 0 ? _extensionConfig_Displayconditions_privileges : extension.privileges) !== null && _ref !== void 0 ? _ref : [];\n if (requiredPrivileges && (typeof requiredPrivileges === \"string\" || Array.isArray(requiredPrivileges) && requiredPrivileges.length > 0)) {\n if ((0,lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(user)) {\n var _getSessionStore_getState_session;\n user = (_getSessionStore_getState_session = (0,_openmrs_esm_api__WEBPACK_IMPORTED_MODULE_0__.getSessionStore)().getState().session) === null || _getSessionStore_getState_session === void 0 ? void 0 : _getSessionStore_getState_session.user;\n }\n if (!user) {\n continue;\n }\n if (!(0,_openmrs_esm_api__WEBPACK_IMPORTED_MODULE_0__.userHasAccess)(requiredPrivileges, user)) {\n continue;\n }\n }\n extensions.push({\n id: id,\n name: name,\n moduleName: extension.moduleName,\n config: extensionConfig,\n featureFlag: extension.featureFlag,\n meta: extension.meta\n });\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return extensions;\n}\n/**\n * Gets the list of extensions assigned to a given slot\n *\n * @param slotName The slot to load the assigned extensions for\n * @returns An array of extensions assigned to the named slot\n */ function getAssignedExtensions(slotName) {\n var internalState = extensionInternalStore.getState();\n var _getExtensionSlotConfig = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionSlotConfig)(slotName), slotConfig = _getExtensionSlotConfig.config;\n var extensionStoreState = extensionsConfigStore.getState();\n return getAssignedExtensionsFromSlotData(slotName, internalState, slotConfig, extensionStoreState);\n}\nfunction calculateAssignedIds(config, attachedIds) {\n var addedIds = config.add || [];\n var removedIds = config.remove || [];\n var idOrder = config.order || [];\n var extensions = extensionInternalStore.getState().extensions;\n return _to_consumable_array(attachedIds).concat(_to_consumable_array(addedIds)).filter(function(id) {\n return !removedIds.includes(id);\n }).sort(function(idA, idB) {\n var _extensions_getExtensionNameFromId, _extensions_getExtensionNameFromId1;\n var ai = getOrder(idA, idOrder, (_extensions_getExtensionNameFromId = extensions[getExtensionNameFromId(idA)]) === null || _extensions_getExtensionNameFromId === void 0 ? void 0 : _extensions_getExtensionNameFromId.order, attachedIds);\n var bi = getOrder(idB, idOrder, (_extensions_getExtensionNameFromId1 = extensions[getExtensionNameFromId(idB)]) === null || _extensions_getExtensionNameFromId1 === void 0 ? void 0 : _extensions_getExtensionNameFromId1.order, attachedIds);\n if (bi === -1) {\n return -1;\n } else if (ai === -1) {\n return 1;\n } else {\n return ai - bi;\n }\n });\n}\n/**\n * Used by by extension slots at mount time.\n *\n * @param moduleName The name of the module that contains the extension slot\n * @param slotName The extension slot name that is actually used\n * @internal\n */ var registerExtensionSlot = function(moduleName, slotName) {\n return extensionInternalStore.setState(function(state) {\n var _state_slots_slotName;\n var existingModuleName = (_state_slots_slotName = state.slots[slotName]) === null || _state_slots_slotName === void 0 ? void 0 : _state_slots_slotName.moduleName;\n if (existingModuleName && existingModuleName != moduleName) {\n console.warn(\"An extension slot with the name '\".concat(slotName, '\\' already exists. Refusing to register the same slot name twice (in \"registerExtensionSlot\"). The existing one is from module ').concat(existingModuleName, \".\"));\n return state;\n }\n if (existingModuleName && existingModuleName == moduleName) {\n // Re-rendering an existing slot\n return state;\n }\n if (state.slots[slotName]) {\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, _object_spread_props(_object_spread({}, state.slots[slotName]), {\n moduleName: moduleName\n })))\n });\n }\n var slot = createNewExtensionSlotInfo(slotName, moduleName);\n return _object_spread_props(_object_spread({}, state), {\n slots: _object_spread_props(_object_spread({}, state.slots), _define_property({}, slotName, slot))\n });\n });\n};\n/**\n * @internal\n * Just for testing.\n */ var reset = function() {\n return extensionStore.setState(function() {\n return {\n slots: {},\n extensions: {}\n };\n });\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1leHRlbnNpb25zL3NyYy9leHRlbnNpb25zLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdDQUFnQyxHQUNoQzs7Ozs7OztDQU9DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUrRTtBQVVuRDtBQUNrQztBQUN2QjtBQUNRO0FBT3JDO0FBT007QUFFakIsSUFBTWMseUJBQXlCSiw0REFBeUJBO0FBQ3hELElBQU1LLGlCQUFpQkgseURBQWlCQTtBQUN4QyxJQUFNSSxtQkFBbUJWLGlGQUE0QkE7QUFDckQsSUFBTVcsd0JBQXdCZCw2RUFBd0JBO0FBRXRELGdDQUFnQztBQUNoQyxTQUFTZSwyQkFDUEMsYUFBcUMsRUFDckNDLG9CQUErQyxFQUMvQ0gscUJBQTRDLEVBQzVDO0lBQ0EsSUFBTUksUUFBNEMsQ0FBQztRQUM5Qzs7UUFBTCxRQUFLLFlBQXdCQyxPQUFPQyxPQUFPLENBQUNKLGNBQWNFLEtBQUssc0JBQTFELHdHQUE2RDtZQUE3RCxvREFBS0csMkJBQVVDO1lBQ2xCLElBQU0sU0FBYXBCLG9GQUErQkEsQ0FDaERlLHNCQUNBSyxLQUFLRSxJQUFJLEVBRkhEO1lBSVIsSUFBTUUscUJBQXFCQyxrQ0FDekJMLFVBQ0FMLGVBQ0FPLFFBQ0FUO1lBRUZJLEtBQUssQ0FBQ0csU0FBUyxHQUFHO2dCQUFFTSxZQUFZTCxLQUFLSyxVQUFVO2dCQUFFRixvQkFBQUE7WUFBbUI7UUFDdEU7O1FBWks7UUFBQTs7O2lCQUFBO2dCQUFBOzs7Z0JBQUE7c0JBQUE7Ozs7SUFhTCxJQUFJLENBQUNwQiw2REFBT0EsQ0FBQ08sZUFBZWdCLFFBQVEsR0FBR1YsS0FBSyxFQUFFQSxRQUFRO1FBQ3BETixlQUFlaUIsUUFBUSxDQUFDO1lBQUVYLE9BQUFBO1FBQU07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UUMsSUFBSSxDQUNWLG9DQUE2S0YsT0FBeklwRixVQUFTLG1JQUFtSixPQUFuQm9GLG9CQUFtQjtZQUVsTSxPQUFPaEU7UUFDVCxDQUFDO1FBQ0QsSUFBSWdFLHNCQUFzQkEsc0JBQXNCOUUsWUFBWTtZQUMxRCxnQ0FBZ0M7WUFDaEMsT0FBT2M7UUFDVCxDQUFDO1FBQ0QsSUFBSUEsTUFBTXZCLEtBQUssQ0FBQ0csU0FBUyxFQUFFO1lBQ3pCLE9BQU8sd0NBQ0ZvQjtnQkFDSHZCLE9BQU8sd0NBQ0Z1QixNQUFNdkIsS0FBSyxHQUNkLHFCQUFDRyxVQUFXLHdDQUNQb0IsTUFBTXZCLEtBQUssQ0FBQ0csU0FBUztvQkFDeEJNLFlBQUFBOzs7UUFJUixDQUFDO1FBQ0QsSUFBTUwsT0FBT1ksMkJBQTJCYixVQUFVTTtRQUNsRCxPQUFPLHdDQUNGYztZQUNIdkIsT0FBTyx3Q0FDRnVCLE1BQU12QixLQUFLLEdBQ2QscUJBQUNHLFVBQVdDOztJQUdsQjtFQUFHO0FBRUw7OztDQUdDLEdBQ00sSUFBTXNGLFFBQW9CO1dBQy9CaEcsZUFBZWlCLFFBQVEsQ0FBQyxXQUFNO1FBQzVCLE9BQU87WUFDTFgsT0FBTyxDQUFDO1lBQ1J3QixZQUFZLENBQUM7UUFDZjtJQUNGO0VBQUciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tZXh0ZW5zaW9ucy9zcmMvZXh0ZW5zaW9ucy50cz83NTlhIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBFeHRlbnNpb24gKi9cbi8qXG4gKiBXZSBoYXZlIHRoZSBmb2xsb3dpbmcgZXh0ZW5zaW9uIG1vZGVzOlxuICpcbiAqIC0gYXR0YWNoZWQgKHNldCB2aWEgY29kZSBpbiBmb3JtIG9mOiBhdHRhY2gsIGRldGFjaCwgLi4uKVxuICogLSBjb25maWd1cmVkIChzZXQgdmlhIGNvbmZpZ3VyYXRpb24gaW4gZm9ybSBvZjogYWRkZWQsIHJlbW92ZWQsIC4uLilcbiAqIC0gYXNzaWduZWQgKGNvbXB1dGVkIGZyb20gYXR0YWNoZWQgYW5kIGNvbmZpZ3VyZWQpXG4gKiAtIGNvbm5lY3RlZCAoY29tcHV0ZWQgZnJvbSBhc3NpZ25lZCB1c2luZyBjb25uZWN0aXZpdHkgYW5kIG9ubGluZSAvIG9mZmxpbmUpXG4gKi9cblxuaW1wb3J0IHsgZ2V0U2Vzc2lvblN0b3JlLCBMb2dnZWRJblVzZXIsIHVzZXJIYXNBY2Nlc3MgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWFwaVwiO1xuaW1wb3J0IHtcbiAgRXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLFxuICBFeHRlbnNpb25TbG90Q29uZmlnT2JqZWN0LFxuICBFeHRlbnNpb25TbG90c0NvbmZpZ1N0b3JlLFxuICBnZXRFeHRlbnNpb25Db25maWdGcm9tU3RvcmUsXG4gIGdldEV4dGVuc2lvbnNDb25maWdTdG9yZSxcbiAgZ2V0RXh0ZW5zaW9uU2xvdENvbmZpZyxcbiAgZ2V0RXh0ZW5zaW9uU2xvdENvbmZpZ0Zyb21TdG9yZSxcbiAgZ2V0RXh0ZW5zaW9uU2xvdHNDb25maWdTdG9yZSxcbn0gZnJvbSBcIkBvcGVubXJzL2VzbS1jb25maWdcIjtcbmltcG9ydCB7IGZlYXR1cmVGbGFnc1N0b3JlIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1mZWF0dXJlLWZsYWdzXCI7XG5pbXBvcnQgaXNFcXVhbCBmcm9tIFwibG9kYXNoLWVzL2lzRXF1YWxcIjtcbmltcG9ydCBpc1VuZGVmaW5lZCBmcm9tIFwibG9kYXNoLWVzL2lzVW5kZWZpbmVkXCI7XG5pbXBvcnQge1xuICBnZXRFeHRlbnNpb25JbnRlcm5hbFN0b3JlLFxuICBFeHRlbnNpb25TbG90U3RhdGUsXG4gIEFzc2lnbmVkRXh0ZW5zaW9uLFxuICBjaGVja1N0YXR1c0ZvcixcbiAgQ29ubmVjdGVkRXh0ZW5zaW9uLFxufSBmcm9tIFwiLlwiO1xuaW1wb3J0IHtcbiAgRXh0ZW5zaW9uUmVnaXN0cmF0aW9uLFxuICBFeHRlbnNpb25TbG90SW5mbyxcbiAgRXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSxcbiAgZ2V0RXh0ZW5zaW9uU3RvcmUsXG4gIHVwZGF0ZUludGVybmFsRXh0ZW5zaW9uU3RvcmUsXG59IGZyb20gXCIuL3N0b3JlXCI7XG5cbmNvbnN0IGV4dGVuc2lvbkludGVybmFsU3RvcmUgPSBnZXRFeHRlbnNpb25JbnRlcm5hbFN0b3JlKCk7XG5jb25zdCBleHRlbnNpb25TdG9yZSA9IGdldEV4dGVuc2lvblN0b3JlKCk7XG5jb25zdCBzbG90c0NvbmZpZ1N0b3JlID0gZ2V0RXh0ZW5zaW9uU2xvdHNDb25maWdTdG9yZSgpO1xuY29uc3QgZXh0ZW5zaW9uc0NvbmZpZ1N0b3JlID0gZ2V0RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlKCk7XG5cbi8vIEtlZXAgdGhlIG91dHB1dCBzdG9yZSB1cGRhdGVkXG5mdW5jdGlvbiB1cGRhdGVFeHRlbnNpb25PdXRwdXRTdG9yZShcbiAgaW50ZXJuYWxTdGF0ZTogRXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSxcbiAgZXh0ZW5zaW9uU2xvdENvbmZpZ3M6IEV4dGVuc2lvblNsb3RzQ29uZmlnU3RvcmUsXG4gIGV4dGVuc2lvbnNDb25maWdTdG9yZTogRXh0ZW5zaW9uc0NvbmZpZ1N0b3JlXG4pIHtcbiAgY29uc3Qgc2xvdHM6IFJlY29yZDxzdHJpbmcsIEV4dGVuc2lvblNsb3RTdGF0ZT4gPSB7fTtcbiAgZm9yIChsZXQgW3Nsb3ROYW1lLCBzbG90XSBvZiBPYmplY3QuZW50cmllcyhpbnRlcm5hbFN0YXRlLnNsb3RzKSkge1xuICAgIGNvbnN0IHsgY29uZmlnIH0gPSBnZXRFeHRlbnNpb25TbG90Q29uZmlnRnJvbVN0b3JlKFxuICAgICAgZXh0ZW5zaW9uU2xvdENvbmZpZ3MsXG4gICAgICBzbG90Lm5hbWVcbiAgICApO1xuICAgIGNvbnN0IGFzc2lnbmVkRXh0ZW5zaW9ucyA9IGdldEFzc2lnbmVkRXh0ZW5zaW9uc0Zyb21TbG90RGF0YShcbiAgICAgIHNsb3ROYW1lLFxuICAgICAgaW50ZXJuYWxTdGF0ZSxcbiAgICAgIGNvbmZpZyxcbiAgICAgIGV4dGVuc2lvbnNDb25maWdTdG9yZVxuICAgICk7XG4gICAgc2xvdHNbc2xvdE5hbWVdID0geyBtb2R1bGVOYW1lOiBzbG90Lm1vZHVsZU5hbWUsIGFzc2lnbmVkRXh0ZW5zaW9ucyB9O1xuICB9XG4gIGlmICghaXNFcXVhbChleHRlbnNpb25TdG9yZS5nZXRTdGF0ZSgpLnNsb3RzLCBzbG90cykpIHtcbiAgICBleHRlbnNpb25TdG9yZS5zZXRTdGF0ZSh7IHNsb3RzIH0pO1xuICB9XG59XG5cbmV4dGVuc2lvbkludGVybmFsU3RvcmUuc3Vic2NyaWJlKChpbnRlcm5hbFN0b3JlKSA9PiB7XG4gIHVwZGF0ZUV4dGVuc2lvbk91dHB1dFN0b3JlKFxuICAgIGludGVybmFsU3RvcmUsXG4gICAgc2xvdHNDb25maWdTdG9yZS5nZXRTdGF0ZSgpLFxuICAgIGV4dGVuc2lvbnNDb25maWdTdG9yZS5nZXRTdGF0ZSgpXG4gICk7XG59KTtcblxuc2xvdHNDb25maWdTdG9yZS5zdWJzY3JpYmUoKHNsb3RDb25maWdzKSA9PiB7XG4gIHVwZGF0ZUV4dGVuc2lvbk91dHB1dFN0b3JlKFxuICAgIGV4dGVuc2lvbkludGVybmFsU3RvcmUuZ2V0U3RhdGUoKSxcbiAgICBzbG90Q29uZmlncyxcbiAgICBleHRlbnNpb25zQ29uZmlnU3RvcmUuZ2V0U3RhdGUoKVxuICApO1xufSk7XG5cbmV4dGVuc2lvbnNDb25maWdTdG9yZS5zdWJzY3JpYmUoKGV4dGVuc2lvbkNvbmZpZ3MpID0+IHtcbiAgdXBkYXRlRXh0ZW5zaW9uT3V0cHV0U3RvcmUoXG4gICAgZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5nZXRTdGF0ZSgpLFxuICAgIHNsb3RzQ29uZmlnU3RvcmUuZ2V0U3RhdGUoKSxcbiAgICBleHRlbnNpb25Db25maWdzXG4gICk7XG59KTtcblxuZnVuY3Rpb24gY3JlYXRlTmV3RXh0ZW5zaW9uU2xvdEluZm8oXG4gIHNsb3ROYW1lOiBzdHJpbmcsXG4gIG1vZHVsZU5hbWU/OiBzdHJpbmdcbik6IEV4dGVuc2lvblNsb3RJbmZvIHtcbiAgcmV0dXJuIHtcbiAgICBtb2R1bGVOYW1lLFxuICAgIG5hbWU6IHNsb3ROYW1lLFxuICAgIGF0dGFjaGVkSWRzOiBbXSxcbiAgICBjb25maWc6IG51bGwsXG4gIH07XG59XG5cbi8qKlxuICogR2l2ZW4gYW4gZXh0ZW5zaW9uIElELCB3aGljaCBpcyBhIHN0cmluZyB1bmlxdWVseSBpZGVudGlmeWluZ1xuICogYW4gaW5zdGFuY2Ugb2YgYW4gZXh0ZW5zaW9uIHdpdGhpbiBhbiBleHRlbnNpb24gc2xvdCwgdGhpc1xuICogcmV0dXJucyB0aGUgZXh0ZW5zaW9uIG5hbWUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGpzXG4gKiBnZXRFeHRlbnNpb25OYW1lRnJvbUlkKFwiZm9vI2JhclwiKVxuICogIC0tPiBcImZvb1wiXG4gKiBnZXRFeHRlbnNpb25OYW1lRnJvbUlkKFwiYmF6XCIpXG4gKiAgLS0+IFwiYmF6XCJcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChleHRlbnNpb25JZDogc3RyaW5nKSB7XG4gIGNvbnN0IFtleHRlbnNpb25OYW1lXSA9IGV4dGVuc2lvbklkLnNwbGl0KFwiI1wiKTtcbiAgcmV0dXJuIGV4dGVuc2lvbk5hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlbnNpb25SZWdpc3RyYXRpb25Gcm9tKFxuICBzdGF0ZTogRXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSxcbiAgZXh0ZW5zaW9uSWQ6IHN0cmluZ1xuKTogRXh0ZW5zaW9uUmVnaXN0cmF0aW9uIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbmFtZSA9IGdldEV4dGVuc2lvbk5hbWVGcm9tSWQoZXh0ZW5zaW9uSWQpO1xuICByZXR1cm4gc3RhdGUuZXh0ZW5zaW9uc1tuYW1lXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVuc2lvblJlZ2lzdHJhdGlvbihcbiAgZXh0ZW5zaW9uSWQ6IHN0cmluZ1xuKTogRXh0ZW5zaW9uUmVnaXN0cmF0aW9uIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3RhdGUgPSBleHRlbnNpb25JbnRlcm5hbFN0b3JlLmdldFN0YXRlKCk7XG4gIHJldHVybiBnZXRFeHRlbnNpb25SZWdpc3RyYXRpb25Gcm9tKHN0YXRlLCBleHRlbnNpb25JZCk7XG59XG5cbi8qKlxuICogRXh0ZW5zaW9ucyBtdXN0IGJlIHJlZ2lzdGVyZWQgaW4gb3JkZXIgdG8gYmUgcmVuZGVyZWQuXG4gKiBUaGlzIGlzIGhhbmRsZWQgYnkgdGhlIGFwcCBzaGVsbCwgd2hlbiBleHRlbnNpb25zIGFyZSBwcm92aWRlZFxuICogdmlhIHRoZSBgc2V0dXBPcGVuTVJTYCByZXR1cm4gb2JqZWN0LlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RlckV4dGVuc2lvbjogKFxuICBleHRlbnNpb25SZWdpc3RyYXRpb246IEV4dGVuc2lvblJlZ2lzdHJhdGlvblxuKSA9PiB2b2lkID0gKGV4dGVuc2lvblJlZ2lzdHJhdGlvbikgPT5cbiAgZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5zZXRTdGF0ZSgoc3RhdGUpID0+IHtcbiAgICBzdGF0ZS5leHRlbnNpb25zW2V4dGVuc2lvblJlZ2lzdHJhdGlvbi5uYW1lXSA9IHtcbiAgICAgIC4uLmV4dGVuc2lvblJlZ2lzdHJhdGlvbixcbiAgICAgIGluc3RhbmNlczogW10sXG4gICAgfTtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH0pO1xuXG4vKipcbiAqIEF0dGFjaCBhbiBleHRlbnNpb24gdG8gYW4gZXh0ZW5zaW9uIHNsb3QuXG4gKlxuICogVGhpcyB3aWxsIGNhdXNlIHRoZSBleHRlbnNpb24gdG8gYmUgcmVuZGVyZWQgaW50byB0aGUgc3BlY2lmaWVkXG4gKiBleHRlbnNpb24gc2xvdCwgdW5sZXNzIGl0IGlzIHJlbW92ZWQgYnkgY29uZmlndXJhdGlvbi4gVXNpbmdcbiAqIGBhdHRhY2hgIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNwZWNpZnlpbmcgdGhlIGBzbG90YCBvciBgc2xvdHNgXG4gKiBpbiB0aGUgZXh0ZW5zaW9uIGRlY2xhcmF0aW9uLlxuICpcbiAqIEl0IGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBjcmVhdGluZyBhIHNsb3QgaW50byB3aGljaFxuICogeW91IHdhbnQgdG8gcmVuZGVyIGFuIGV4aXN0aW5nIGV4dGVuc2lvbi4gVGhpcyBlbmFibGVzIHlvdVxuICogdG8gZG8gc28gd2l0aG91dCBtb2RpZnlpbmcgdGhlIGV4dGVuc2lvbidzIGRlY2xhcmF0aW9uLCB3aGljaFxuICogbWF5IGJlIGltcHJhY3RpY2FsIG9yIGluYXBwcm9wcmlhdGUsIGZvciBleGFtcGxlIGlmIHlvdSBhcmVcbiAqIHdyaXRpbmcgYSBtb2R1bGUgZm9yIGEgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24uXG4gKlxuICogQHBhcmFtIHNsb3ROYW1lIGEgbmFtZSB1bmlxdWVseSBpZGVudGlmeWluZyB0aGUgc2xvdFxuICogQHBhcmFtIGV4dGVuc2lvbklkIGFuIGV4dGVuc2lvbiBuYW1lLCB3aXRoIGFuIG9wdGlvbmFsICMtc3VmZml4XG4gKiAgICB0byBkaXN0aW5ndWlzaCBpdCBmcm9tIG90aGVyIGluc3RhbmNlcyBvZiB0aGUgc2FtZSBleHRlbnNpb25cbiAqICAgIGF0dGFjaGVkIHRvIHRoZSBzYW1lIHNsb3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdHRhY2goc2xvdE5hbWU6IHN0cmluZywgZXh0ZW5zaW9uSWQ6IHN0cmluZykge1xuICB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlKChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nU2xvdCA9IHN0YXRlLnNsb3RzW3Nsb3ROYW1lXTtcblxuICAgIGlmICghZXhpc3RpbmdTbG90KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2xvdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5zbG90cyxcbiAgICAgICAgICBbc2xvdE5hbWVdOiB7XG4gICAgICAgICAgICAuLi5jcmVhdGVOZXdFeHRlbnNpb25TbG90SW5mbyhzbG90TmFtZSksXG4gICAgICAgICAgICBhdHRhY2hlZElkczogW2V4dGVuc2lvbklkXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNsb3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgICAgW3Nsb3ROYW1lXToge1xuICAgICAgICAgICAgLi4uZXhpc3RpbmdTbG90LFxuICAgICAgICAgICAgYXR0YWNoZWRJZHM6IFsuLi5leGlzdGluZ1Nsb3QuYXR0YWNoZWRJZHMsIGV4dGVuc2lvbklkXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKiogQXZvaWQgdXNpbmcgdGhpcy4gRXh0ZW5zaW9uIGF0dGFjaG1lbnRzIHNob3VsZCBiZSBjb25zaWRlcmVkIGRlY2xhcmF0aXZlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGFjaChleHRlbnNpb25TbG90TmFtZTogc3RyaW5nLCBleHRlbnNpb25JZDogc3RyaW5nKSB7XG4gIHVwZGF0ZUludGVybmFsRXh0ZW5zaW9uU3RvcmUoKHN0YXRlKSA9PiB7XG4gICAgY29uc3QgZXhpc3RpbmdTbG90ID0gc3RhdGUuc2xvdHNbZXh0ZW5zaW9uU2xvdE5hbWVdO1xuXG4gICAgaWYgKGV4aXN0aW5nU2xvdCAmJiBleGlzdGluZ1Nsb3QuYXR0YWNoZWRJZHMuaW5jbHVkZXMoZXh0ZW5zaW9uSWQpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2xvdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5zbG90cyxcbiAgICAgICAgICBbZXh0ZW5zaW9uU2xvdE5hbWVdOiB7XG4gICAgICAgICAgICAuLi5leGlzdGluZ1Nsb3QsXG4gICAgICAgICAgICBhdHRhY2hlZElkczogZXhpc3RpbmdTbG90LmF0dGFjaGVkSWRzLmZpbHRlcihcbiAgICAgICAgICAgICAgKGlkKSA9PiBpZCAhPT0gZXh0ZW5zaW9uSWRcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKiogQXZvaWQgdXNpbmcgdGhpcy4gRXh0ZW5zaW9uIGF0dGFjaG1lbnRzIHNob3VsZCBiZSBjb25zaWRlcmVkIGRlY2xhcmF0aXZlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGFjaEFsbChleHRlbnNpb25TbG90TmFtZTogc3RyaW5nKSB7XG4gIHVwZGF0ZUludGVybmFsRXh0ZW5zaW9uU3RvcmUoKHN0YXRlKSA9PiB7XG4gICAgY29uc3QgZXhpc3RpbmdTbG90ID0gc3RhdGUuc2xvdHNbZXh0ZW5zaW9uU2xvdE5hbWVdO1xuXG4gICAgaWYgKGV4aXN0aW5nU2xvdCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNsb3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgICAgW2V4dGVuc2lvblNsb3ROYW1lXToge1xuICAgICAgICAgICAgLi4uZXhpc3RpbmdTbG90LFxuICAgICAgICAgICAgYXR0YWNoZWRJZHM6IFtdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgYW4gb3JkZXIgaW5kZXggZm9yIHRoZSBleHRlbnNpb24uIFRoaXMgd2lsbFxuICogY29tZSBmcm9tIGVpdGhlciBpdHMgY29uZmlndXJlZCBvcmRlciwgaXRzIHJlZ2lzdGVyZWQgb3JkZXJcbiAqIHBhcmFtZXRlciwgb3IgdGhlIG9yZGVyIGluIHdoaWNoIGl0IGhhcHBlbmVkIHRvIGJlIGF0dGFjaGVkLlxuICovXG5mdW5jdGlvbiBnZXRPcmRlcihcbiAgZXh0ZW5zaW9uSWQ6IHN0cmluZyxcbiAgY29uZmlndXJlZE9yZGVyOiBBcnJheTxzdHJpbmc+LFxuICByZWdpc3RlcmVkT3JkZXJJbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBhdHRhY2hlZE9yZGVyOiBBcnJheTxzdHJpbmc+XG4pIHtcbiAgY29uc3QgY29uZmlndXJlZEluZGV4ID0gY29uZmlndXJlZE9yZGVyLmluZGV4T2YoZXh0ZW5zaW9uSWQpO1xuICBpZiAoY29uZmlndXJlZEluZGV4ICE9PSAtMSkge1xuICAgIHJldHVybiBjb25maWd1cmVkSW5kZXg7XG4gIH0gZWxzZSBpZiAocmVnaXN0ZXJlZE9yZGVySW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIGV4dGVuc2lvbnMgdGhhdCBkb24ndCBoYXZlIGEgY29uZmlndXJlZCBvcmRlciBzaG91bGQgYXBwZWFyIGFmdGVyIHRob3NlIHRoYXQgZG9cbiAgICByZXR1cm4gMTAwMCArIHJlZ2lzdGVyZWRPcmRlckluZGV4O1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGFzc2lnbmVkSW5kZXggPSBhdHRhY2hlZE9yZGVyLmluZGV4T2YoZXh0ZW5zaW9uSWQpO1xuICAgIGlmIChhc3NpZ25lZEluZGV4ICE9PSAtMSkge1xuICAgICAgLy8gZXh0ZW5zaW9ucyB0aGF0IGhhdmUgbmVpdGhlciBhIGNvbmZpZ3VyZWQgbm9yIHJlZ2lzdGVyZWQgb3JkZXIgc2hvdWxkIGFwcGVhclxuICAgICAgLy8gYWZ0ZXIgYWxsIG90aGVyc1xuICAgICAgcmV0dXJuIDIwMDAgKyBhc3NpZ25lZEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRmlsdGVycyBhIGxpc3Qgb2YgZXh0ZW5zaW9ucyBhY2NvcmRpbmcgdG8gd2hldGhlciB0aGV5IHN1cHBvcnQgdGhlXG4gKiBjdXJyZW50IGNvbm5lY3Rpdml0eSBzdGF0dXMuXG4gKlxuICogQHBhcmFtIGFzc2lnbmVkRXh0ZW5zaW9ucyBUaGUgbGlzdCBvZiBleHRlbnNpb25zIHRvIGZpbHRlci5cbiAqIEBwYXJhbSBvbmxpbmUgV2hldGhlciB0aGUgYXBwIGlzIGN1cnJlbnRseSBvbmxpbmUuIElmIGBudWxsYCwgdXNlcyBgbmF2aWdhdG9yLm9uTGluZWAuXG4gKiBAcGFyYW0gZW5hYmxlZEZlYXR1cmVGbGFncyBUaGUgbmFtZXMgb2YgYWxsIGVuYWJsZWQgZmVhdHVyZSBmbGFncy4gSWYgYG51bGxgLCBsb29rc1xuICogICAgdXAgdGhlIGZlYXR1cmUgZmxhZ3MgdXNpbmcgdGhlIGZlYXR1cmUgZmxhZ3MgQVBJLlxuICogQHJldHVybnMgQSBsaXN0IG9mIGV4dGVuc2lvbnMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbm5lY3RlZEV4dGVuc2lvbnMoXG4gIGFzc2lnbmVkRXh0ZW5zaW9uczogQXJyYXk8QXNzaWduZWRFeHRlbnNpb24+LFxuICBvbmxpbmU6IGJvb2xlYW4gfCBudWxsID0gbnVsbCxcbiAgZW5hYmxlZEZlYXR1cmVGbGFnczogQXJyYXk8c3RyaW5nPiB8IG51bGwgPSBudWxsXG4pOiBBcnJheTxDb25uZWN0ZWRFeHRlbnNpb24+IHtcbiAgY29uc3QgaXNPbmxpbmUgPSBvbmxpbmUgPz8gbmF2aWdhdG9yLm9uTGluZTtcbiAgY29uc3QgZmVhdHVyZUZsYWdzID1cbiAgICBlbmFibGVkRmVhdHVyZUZsYWdzID8/XG4gICAgT2JqZWN0LmVudHJpZXMoZmVhdHVyZUZsYWdzU3RvcmUuZ2V0U3RhdGUoKS5mbGFncylcbiAgICAgIC5maWx0ZXIoKFssIHsgZW5hYmxlZCB9XSkgPT4gZW5hYmxlZClcbiAgICAgIC5tYXAoKFtuYW1lXSkgPT4gbmFtZSk7XG4gIHJldHVybiBhc3NpZ25lZEV4dGVuc2lvbnNcbiAgICAuZmlsdGVyKChlKSA9PiBjaGVja1N0YXR1c0Zvcihpc09ubGluZSwgZS5vbmxpbmUsIGUub2ZmbGluZSkpXG4gICAgLmZpbHRlcihcbiAgICAgIChlKSA9PlxuICAgICAgICBlLmZlYXR1cmVGbGFnID09PSB1bmRlZmluZWQgfHwgZmVhdHVyZUZsYWdzPy5pbmNsdWRlcyhlLmZlYXR1cmVGbGFnKVxuICAgICk7XG59XG5cbmZ1bmN0aW9uIGdldEFzc2lnbmVkRXh0ZW5zaW9uc0Zyb21TbG90RGF0YShcbiAgc2xvdE5hbWU6IHN0cmluZyxcbiAgaW50ZXJuYWxTdGF0ZTogRXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSxcbiAgY29uZmlnOiBFeHRlbnNpb25TbG90Q29uZmlnT2JqZWN0LFxuICBleHRlbnNpb25Db25maWdTdG9yZVN0YXRlOiBFeHRlbnNpb25zQ29uZmlnU3RvcmVcbik6IEFycmF5PEFzc2lnbmVkRXh0ZW5zaW9uPiB7XG4gIGNvbnN0IGF0dGFjaGVkSWRzID0gaW50ZXJuYWxTdGF0ZS5zbG90c1tzbG90TmFtZV0uYXR0YWNoZWRJZHM7XG4gIGNvbnN0IGFzc2lnbmVkSWRzID0gY2FsY3VsYXRlQXNzaWduZWRJZHMoY29uZmlnLCBhdHRhY2hlZElkcyk7XG4gIGNvbnN0IGV4dGVuc2lvbnM6IEFycmF5PEFzc2lnbmVkRXh0ZW5zaW9uPiA9IFtdO1xuICBsZXQgdXNlcjogTG9nZ2VkSW5Vc2VyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIGZvciAobGV0IGlkIG9mIGFzc2lnbmVkSWRzKSB7XG4gICAgY29uc3QgeyBjb25maWc6IGV4dGVuc2lvbkNvbmZpZyB9ID0gZ2V0RXh0ZW5zaW9uQ29uZmlnRnJvbVN0b3JlKFxuICAgICAgZXh0ZW5zaW9uQ29uZmlnU3RvcmVTdGF0ZSxcbiAgICAgIHNsb3ROYW1lLFxuICAgICAgaWRcbiAgICApO1xuICAgIGNvbnN0IG5hbWUgPSBnZXRFeHRlbnNpb25OYW1lRnJvbUlkKGlkKTtcbiAgICBjb25zdCBleHRlbnNpb24gPSBpbnRlcm5hbFN0YXRlLmV4dGVuc2lvbnNbbmFtZV07XG5cbiAgICAvLyBpZiB0aGUgZXh0ZW5zaW9uIGhhcyBub3QgYmVlbiByZWdpc3RlcmVkIHlldCwgZG8gbm90IGluY2x1ZGUgaXRcbiAgICBpZiAoZXh0ZW5zaW9uKSB7XG4gICAgICBjb25zdCByZXF1aXJlZFByaXZpbGVnZXMgPVxuICAgICAgICBleHRlbnNpb25Db25maWc/LltcIkRpc3BsYXkgY29uZGl0aW9uc1wiXT8ucHJpdmlsZWdlcyA/P1xuICAgICAgICBleHRlbnNpb24ucHJpdmlsZWdlcyA/P1xuICAgICAgICBbXTtcbiAgICAgIGlmIChcbiAgICAgICAgcmVxdWlyZWRQcml2aWxlZ2VzICYmXG4gICAgICAgICh0eXBlb2YgcmVxdWlyZWRQcml2aWxlZ2VzID09PSBcInN0cmluZ1wiIHx8XG4gICAgICAgICAgKEFycmF5LmlzQXJyYXkocmVxdWlyZWRQcml2aWxlZ2VzKSAmJiByZXF1aXJlZFByaXZpbGVnZXMubGVuZ3RoID4gMCkpXG4gICAgICApIHtcbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHVzZXIpKSB7XG4gICAgICAgICAgdXNlciA9IGdldFNlc3Npb25TdG9yZSgpLmdldFN0YXRlKCkuc2Vzc2lvbj8udXNlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdXNlcikge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF1c2VySGFzQWNjZXNzKHJlcXVpcmVkUHJpdmlsZWdlcywgdXNlcikpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBleHRlbnNpb25zLnB1c2goe1xuICAgICAgICBpZCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgbW9kdWxlTmFtZTogZXh0ZW5zaW9uLm1vZHVsZU5hbWUsXG4gICAgICAgIGNvbmZpZzogZXh0ZW5zaW9uQ29uZmlnLFxuICAgICAgICBmZWF0dXJlRmxhZzogZXh0ZW5zaW9uLmZlYXR1cmVGbGFnLFxuICAgICAgICBtZXRhOiBleHRlbnNpb24ubWV0YSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBleHRlbnNpb25zO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGxpc3Qgb2YgZXh0ZW5zaW9ucyBhc3NpZ25lZCB0byBhIGdpdmVuIHNsb3RcbiAqXG4gKiBAcGFyYW0gc2xvdE5hbWUgVGhlIHNsb3QgdG8gbG9hZCB0aGUgYXNzaWduZWQgZXh0ZW5zaW9ucyBmb3JcbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGV4dGVuc2lvbnMgYXNzaWduZWQgdG8gdGhlIG5hbWVkIHNsb3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFzc2lnbmVkRXh0ZW5zaW9ucyhcbiAgc2xvdE5hbWU6IHN0cmluZ1xuKTogQXJyYXk8QXNzaWduZWRFeHRlbnNpb24+IHtcbiAgY29uc3QgaW50ZXJuYWxTdGF0ZSA9IGV4dGVuc2lvbkludGVybmFsU3RvcmUuZ2V0U3RhdGUoKTtcbiAgY29uc3QgeyBjb25maWc6IHNsb3RDb25maWcgfSA9IGdldEV4dGVuc2lvblNsb3RDb25maWcoc2xvdE5hbWUpO1xuICBjb25zdCBleHRlbnNpb25TdG9yZVN0YXRlID0gZXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLmdldFN0YXRlKCk7XG4gIHJldHVybiBnZXRBc3NpZ25lZEV4dGVuc2lvbnNGcm9tU2xvdERhdGEoXG4gICAgc2xvdE5hbWUsXG4gICAgaW50ZXJuYWxTdGF0ZSxcbiAgICBzbG90Q29uZmlnLFxuICAgIGV4dGVuc2lvblN0b3JlU3RhdGVcbiAgKTtcbn1cblxuZnVuY3Rpb24gY2FsY3VsYXRlQXNzaWduZWRJZHMoXG4gIGNvbmZpZzogRXh0ZW5zaW9uU2xvdENvbmZpZ09iamVjdCxcbiAgYXR0YWNoZWRJZHM6IEFycmF5PHN0cmluZz5cbikge1xuICBjb25zdCBhZGRlZElkcyA9IGNvbmZpZy5hZGQgfHwgW107XG4gIGNvbnN0IHJlbW92ZWRJZHMgPSBjb25maWcucmVtb3ZlIHx8IFtdO1xuICBjb25zdCBpZE9yZGVyID0gY29uZmlnLm9yZGVyIHx8IFtdO1xuICBjb25zdCB7IGV4dGVuc2lvbnMgfSA9IGV4dGVuc2lvbkludGVybmFsU3RvcmUuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gWy4uLmF0dGFjaGVkSWRzLCAuLi5hZGRlZElkc11cbiAgICAuZmlsdGVyKChpZCkgPT4gIXJlbW92ZWRJZHMuaW5jbHVkZXMoaWQpKVxuICAgIC5zb3J0KChpZEEsIGlkQikgPT4ge1xuICAgICAgY29uc3QgYWkgPSBnZXRPcmRlcihcbiAgICAgICAgaWRBLFxuICAgICAgICBpZE9yZGVyLFxuICAgICAgICBleHRlbnNpb25zW2dldEV4dGVuc2lvbk5hbWVGcm9tSWQoaWRBKV0/Lm9yZGVyLFxuICAgICAgICBhdHRhY2hlZElkc1xuICAgICAgKTtcbiAgICAgIGNvbnN0IGJpID0gZ2V0T3JkZXIoXG4gICAgICAgIGlkQixcbiAgICAgICAgaWRPcmRlcixcbiAgICAgICAgZXh0ZW5zaW9uc1tnZXRFeHRlbnNpb25OYW1lRnJvbUlkKGlkQildPy5vcmRlcixcbiAgICAgICAgYXR0YWNoZWRJZHNcbiAgICAgICk7XG5cbiAgICAgIGlmIChiaSA9PT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfSBlbHNlIGlmIChhaSA9PT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYWkgLSBiaTtcbiAgICAgIH1cbiAgICB9KTtcbn1cblxuLyoqXG4gKiBVc2VkIGJ5IGJ5IGV4dGVuc2lvbiBzbG90cyBhdCBtb3VudCB0aW1lLlxuICpcbiAqIEBwYXJhbSBtb2R1bGVOYW1lIFRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgdGhhdCBjb250YWlucyB0aGUgZXh0ZW5zaW9uIHNsb3RcbiAqIEBwYXJhbSBzbG90TmFtZSBUaGUgZXh0ZW5zaW9uIHNsb3QgbmFtZSB0aGF0IGlzIGFjdHVhbGx5IHVzZWRcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJFeHRlbnNpb25TbG90OiAoXG4gIG1vZHVsZU5hbWU6IHN0cmluZyxcbiAgc2xvdE5hbWU6IHN0cmluZ1xuKSA9PiB2b2lkID0gKG1vZHVsZU5hbWUsIHNsb3ROYW1lKSA9PlxuICBleHRlbnNpb25JbnRlcm5hbFN0b3JlLnNldFN0YXRlKChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nTW9kdWxlTmFtZSA9IHN0YXRlLnNsb3RzW3Nsb3ROYW1lXT8ubW9kdWxlTmFtZTtcbiAgICBpZiAoZXhpc3RpbmdNb2R1bGVOYW1lICYmIGV4aXN0aW5nTW9kdWxlTmFtZSAhPSBtb2R1bGVOYW1lKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBBbiBleHRlbnNpb24gc2xvdCB3aXRoIHRoZSBuYW1lICcke3Nsb3ROYW1lfScgYWxyZWFkeSBleGlzdHMuIFJlZnVzaW5nIHRvIHJlZ2lzdGVyIHRoZSBzYW1lIHNsb3QgbmFtZSB0d2ljZSAoaW4gXCJyZWdpc3RlckV4dGVuc2lvblNsb3RcIikuIFRoZSBleGlzdGluZyBvbmUgaXMgZnJvbSBtb2R1bGUgJHtleGlzdGluZ01vZHVsZU5hbWV9LmBcbiAgICAgICk7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICAgIGlmIChleGlzdGluZ01vZHVsZU5hbWUgJiYgZXhpc3RpbmdNb2R1bGVOYW1lID09IG1vZHVsZU5hbWUpIHtcbiAgICAgIC8vIFJlLXJlbmRlcmluZyBhbiBleGlzdGluZyBzbG90XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICAgIGlmIChzdGF0ZS5zbG90c1tzbG90TmFtZV0pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzbG90czoge1xuICAgICAgICAgIC4uLnN0YXRlLnNsb3RzLFxuICAgICAgICAgIFtzbG90TmFtZV06IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLnNsb3RzW3Nsb3ROYW1lXSxcbiAgICAgICAgICAgIG1vZHVsZU5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHNsb3QgPSBjcmVhdGVOZXdFeHRlbnNpb25TbG90SW5mbyhzbG90TmFtZSwgbW9kdWxlTmFtZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgc2xvdHM6IHtcbiAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgIFtzbG90TmFtZV06IHNsb3QsXG4gICAgICB9LFxuICAgIH07XG4gIH0pO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogSnVzdCBmb3IgdGVzdGluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlc2V0OiAoKSA9PiB2b2lkID0gKCkgPT5cbiAgZXh0ZW5zaW9uU3RvcmUuc2V0U3RhdGUoKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBzbG90czoge30sXG4gICAgICBleHRlbnNpb25zOiB7fSxcbiAgICB9O1xuICB9KTtcbiJdLCJuYW1lcyI6WyJnZXRTZXNzaW9uU3RvcmUiLCJ1c2VySGFzQWNjZXNzIiwiZ2V0RXh0ZW5zaW9uQ29uZmlnRnJvbVN0b3JlIiwiZ2V0RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlIiwiZ2V0RXh0ZW5zaW9uU2xvdENvbmZpZyIsImdldEV4dGVuc2lvblNsb3RDb25maWdGcm9tU3RvcmUiLCJnZXRFeHRlbnNpb25TbG90c0NvbmZpZ1N0b3JlIiwiZmVhdHVyZUZsYWdzU3RvcmUiLCJpc0VxdWFsIiwiaXNVbmRlZmluZWQiLCJnZXRFeHRlbnNpb25JbnRlcm5hbFN0b3JlIiwiY2hlY2tTdGF0dXNGb3IiLCJnZXRFeHRlbnNpb25TdG9yZSIsInVwZGF0ZUludGVybmFsRXh0ZW5zaW9uU3RvcmUiLCJleHRlbnNpb25JbnRlcm5hbFN0b3JlIiwiZXh0ZW5zaW9uU3RvcmUiLCJzbG90c0NvbmZpZ1N0b3JlIiwiZXh0ZW5zaW9uc0NvbmZpZ1N0b3JlIiwidXBkYXRlRXh0ZW5zaW9uT3V0cHV0U3RvcmUiLCJpbnRlcm5hbFN0YXRlIiwiZXh0ZW5zaW9uU2xvdENvbmZpZ3MiLCJzbG90cyIsIk9iamVjdCIsImVudHJpZXMiLCJzbG90TmFtZSIsInNsb3QiLCJjb25maWciLCJuYW1lIiwiYXNzaWduZWRFeHRlbnNpb25zIiwiZ2V0QXNzaWduZWRFeHRlbnNpb25zRnJvbVNsb3REYXRhIiwibW9kdWxlTmFtZSIsImdldFN0YXRlIiwic2V0U3RhdGUiLCJzdWJzY3JpYmUiLCJpbnRlcm5hbFN0b3JlIiwic2xvdENvbmZpZ3MiLCJleHRlbnNpb25Db25maWdzIiwiY3JlYXRlTmV3RXh0ZW5zaW9uU2xvdEluZm8iLCJhdHRhY2hlZElkcyIsImdldEV4dGVuc2lvbk5hbWVGcm9tSWQiLCJleHRlbnNpb25JZCIsInNwbGl0IiwiZXh0ZW5zaW9uTmFtZSIsImdldEV4dGVuc2lvblJlZ2lzdHJhdGlvbkZyb20iLCJzdGF0ZSIsImV4dGVuc2lvbnMiLCJnZXRFeHRlbnNpb25SZWdpc3RyYXRpb24iLCJyZWdpc3RlckV4dGVuc2lvbiIsImV4dGVuc2lvblJlZ2lzdHJhdGlvbiIsImluc3RhbmNlcyIsImF0dGFjaCIsImV4aXN0aW5nU2xvdCIsImRldGFjaCIsImV4dGVuc2lvblNsb3ROYW1lIiwiaW5jbHVkZXMiLCJmaWx0ZXIiLCJpZCIsImRldGFjaEFsbCIsImdldE9yZGVyIiwiY29uZmlndXJlZE9yZGVyIiwicmVnaXN0ZXJlZE9yZGVySW5kZXgiLCJhdHRhY2hlZE9yZGVyIiwiY29uZmlndXJlZEluZGV4IiwiaW5kZXhPZiIsInVuZGVmaW5lZCIsImFzc2lnbmVkSW5kZXgiLCJnZXRDb25uZWN0ZWRFeHRlbnNpb25zIiwib25saW5lIiwiZW5hYmxlZEZlYXR1cmVGbGFncyIsImlzT25saW5lIiwibmF2aWdhdG9yIiwib25MaW5lIiwiZmVhdHVyZUZsYWdzIiwiZmxhZ3MiLCJlbmFibGVkIiwibWFwIiwiZSIsIm9mZmxpbmUiLCJmZWF0dXJlRmxhZyIsImV4dGVuc2lvbkNvbmZpZ1N0b3JlU3RhdGUiLCJhc3NpZ25lZElkcyIsImNhbGN1bGF0ZUFzc2lnbmVkSWRzIiwidXNlciIsImV4dGVuc2lvbkNvbmZpZyIsImV4dGVuc2lvbiIsInJlcXVpcmVkUHJpdmlsZWdlcyIsInByaXZpbGVnZXMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJzZXNzaW9uIiwicHVzaCIsIm1ldGEiLCJnZXRBc3NpZ25lZEV4dGVuc2lvbnMiLCJzbG90Q29uZmlnIiwiZXh0ZW5zaW9uU3RvcmVTdGF0ZSIsImFkZGVkSWRzIiwiYWRkIiwicmVtb3ZlZElkcyIsInJlbW92ZSIsImlkT3JkZXIiLCJvcmRlciIsInNvcnQiLCJpZEEiLCJpZEIiLCJhaSIsImJpIiwicmVnaXN0ZXJFeHRlbnNpb25TbG90IiwiZXhpc3RpbmdNb2R1bGVOYW1lIiwiY29uc29sZSIsIndhcm4iLCJyZXNldCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-extensions/src/extensions.ts\n");
6630
6630
 
6631
6631
  /***/ }),
6632
6632
 
@@ -6681,7 +6681,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
6681
6681
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6682
6682
 
6683
6683
  "use strict";
6684
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getExtensionInternalStore: () => (/* binding */ getExtensionInternalStore),\n/* harmony export */ getExtensionStore: () => (/* binding */ getExtensionStore),\n/* harmony export */ updateInternalExtensionStore: () => (/* binding */ updateInternalExtensionStore)\n/* harmony export */ });\n/* harmony import */ var lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash-es/isEqual */ \"../../../node_modules/lodash-es/isEqual.js\");\n/* harmony import */ var _openmrs_esm_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-config */ \"../../framework/esm-config/src/index.ts\");\n/* harmony import */ var _openmrs_esm_state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-state */ \"../../framework/esm-state/src/index.ts\");\n/** @module @category Extension */ \n\n\nvar extensionInternalStore = (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_1__.createGlobalStore)(\"extensionsInternal\", {\n slots: {},\n extensions: {}\n});\n/**\n * This gets the extension system's internal store. It is subject\n * to change radically and without warning. It should not be used\n * outside esm-core.\n * @internal\n */ var getExtensionInternalStore = function() {\n return (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_1__.getGlobalStore)(\"extensionsInternal\", {\n slots: {},\n extensions: {}\n });\n};\n/** @internal */ function updateInternalExtensionStore(updater) {\n var state = extensionInternalStore.getState();\n var newState = updater(state);\n if (newState !== state) {\n extensionInternalStore.setState(newState);\n }\n}\n/**\n * This returns a store that modules can use to get information about the\n * state of the extension system.\n */ var getExtensionStore = function() {\n return (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_1__.getGlobalStore)(\"extensions\", {\n slots: {}\n });\n};\n/**\n * esm-config maintains its own store of the extension information it needs\n * to generate extension configs. We keep it updated based on what's in\n * `extensionStore`.\n */ updateConfigExtensionStore(extensionInternalStore.getState());\nextensionInternalStore.subscribe(updateConfigExtensionStore);\nfunction updateConfigExtensionStore(extensionState) {\n var configExtensionRecords = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = Object.values(extensionState.extensions)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var extensionInfo = _step.value;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;\n try {\n for(var _iterator1 = extensionInfo.instances[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){\n var instance = _step1.value;\n configExtensionRecords.push({\n slotModuleName: instance.slotModuleName,\n extensionModuleName: extensionInfo.moduleName,\n slotName: instance.slotName,\n extensionId: instance.id\n });\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally{\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (!(0,lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_0__.configExtensionStore.getState().mountedExtensions, configExtensionRecords)) {\n _openmrs_esm_config__WEBPACK_IMPORTED_MODULE_0__.configExtensionStore.setState({\n mountedExtensions: configExtensionRecords\n });\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1leHRlbnNpb25zL3NyYy9zdG9yZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxnQ0FBZ0MsR0FDUTtBQU1YO0FBQzBDO0FBcUZ2RSxJQUFNSSx5QkFBeUJGLHFFQUFpQkEsQ0FDOUMsc0JBQ0E7SUFDRUcsT0FBTyxDQUFDO0lBQ1JDLFlBQVksQ0FBQztBQUNmO0FBR0Y7Ozs7O0NBS0MsR0FDTSxJQUFNQyw0QkFBNEI7V0FDdkNKLGtFQUFjQSxDQUF5QixzQkFBc0I7UUFDM0RFLE9BQU8sQ0FBQztRQUNSQyxZQUFZLENBQUM7SUFDZjtFQUFHO0FBRUwsY0FBYyxHQUNQLFNBQVNFLDZCQUNkQyxPQUFrRSxFQUNsRTtJQUNBLElBQU1DLFFBQVFOLHVCQUF1Qk8sUUFBUTtJQUM3QyxJQUFNQyxXQUFXSCxRQUFRQztJQUV6QixJQUFJRSxhQUFhRixPQUFPO1FBQ3RCTix1QkFBdUJTLFFBQVEsQ0FBQ0Q7SUFDbEMsQ0FBQztBQUNILENBQUM7QUFFRDs7O0NBR0MsR0FDTSxJQUFNRSxvQkFBb0I7V0FDL0JYLGtFQUFjQSxDQUFpQixjQUFjO1FBQzNDRSxPQUFPLENBQUM7SUFDVjtFQUFHO0FBRUw7Ozs7Q0FJQyxHQUVEVSwyQkFBMkJYLHVCQUF1Qk8sUUFBUTtBQUMxRFAsdUJBQXVCWSxTQUFTLENBQUNEO0FBRWpDLFNBQVNBLDJCQUEyQkUsY0FBc0MsRUFBRTtJQUMxRSxJQUFNQyx5QkFBNkQsRUFBRTtRQUVoRTs7UUFBTCxRQUFLLFlBQXFCQyxPQUFPQyxNQUFNLENBQUNILGVBQWVYLFVBQVUsc0JBQTVELHdHQUErRDtZQUEvRCxJQUFJZSxnQkFBSjtnQkFDRTs7Z0JBQUwsUUFBSyxhQUFnQkEsY0FBY0MsU0FBUyxxQkFBdkMsNkdBQXlDO29CQUF6QyxJQUFJQyxXQUFKO29CQUNITCx1QkFBdUJNLElBQUksQ0FBQzt3QkFDMUJDLGdCQUFnQkYsU0FBU0UsY0FBYzt3QkFDdkNDLHFCQUFxQkwsY0FBY00sVUFBVTt3QkFDN0NDLFVBQVVMLFNBQVNLLFFBQVE7d0JBQzNCQyxhQUFhTixTQUFTTyxFQUFFO29CQUMxQjtnQkFDRjs7Z0JBUEs7Z0JBQUE7Ozt5QkFBQTt3QkFBQTs7O3dCQUFBOzhCQUFBOzs7O1FBUVA7O1FBVEs7UUFBQTs7O2lCQUFBO2dCQUFBOzs7Z0JBQUE7c0JBQUE7Ozs7SUFVTCxJQUNFLENBQUM5Qiw2REFBT0EsQ0FDTkMscUVBQW9CQSxDQUFDVSxRQUFRLEdBQUdvQixpQkFBaUIsRUFDakRiLHlCQUVGO1FBQ0FqQixxRUFBb0JBLENBQUNZLFFBQVEsQ0FBQztZQUM1QmtCLG1CQUFtQmI7UUFDckI7SUFDRixDQUFDO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tZXh0ZW5zaW9ucy9zcmMvc3RvcmUudHM/ZTIyOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgRXh0ZW5zaW9uICovXG5pbXBvcnQgaXNFcXVhbCBmcm9tIFwibG9kYXNoLWVzL2lzRXF1YWxcIjtcbmltcG9ydCB7XG4gIGNvbmZpZ0V4dGVuc2lvblN0b3JlLFxuICBDb25maWdFeHRlbnNpb25TdG9yZUVsZW1lbnQsXG4gIENvbmZpZ09iamVjdCxcbiAgRXh0ZW5zaW9uU2xvdENvbmZpZ09iamVjdCxcbn0gZnJvbSBcIkBvcGVubXJzL2VzbS1jb25maWdcIjtcbmltcG9ydCB7IGNyZWF0ZUdsb2JhbFN0b3JlLCBnZXRHbG9iYWxTdG9yZSB9IGZyb20gXCJAb3Blbm1ycy9lc20tc3RhdGVcIjtcbmltcG9ydCB0eXBlIHsgTGlmZUN5Y2xlcyB9IGZyb20gXCJzaW5nbGUtc3BhXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uTWV0YSB7XG4gIFtfOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uUmVnaXN0cmF0aW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBsb2FkKCk6IFByb21pc2U8eyBkZWZhdWx0PzogTGlmZUN5Y2xlcyB9ICYgTGlmZUN5Y2xlcz47XG4gIG1vZHVsZU5hbWU6IHN0cmluZztcbiAgbWV0YTogRXh0ZW5zaW9uTWV0YTtcbiAgb3JkZXI/OiBudW1iZXI7XG4gIG9ubGluZT86IGJvb2xlYW47XG4gIG9mZmxpbmU/OiBib29sZWFuO1xuICBwcml2aWxlZ2VzPzogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25JbmZvIGV4dGVuZHMgRXh0ZW5zaW9uUmVnaXN0cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZXMgd2hlcmUgdGhlIGV4dGVuc2lvbiBoYXMgYmVlbiByZW5kZXJlZCB1c2luZyBgcmVuZGVyRXh0ZW5zaW9uYC5cbiAgICovXG4gIGluc3RhbmNlczogQXJyYXk8RXh0ZW5zaW9uSW5zdGFuY2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvbkluc3RhbmNlIHtcbiAgaWQ6IHN0cmluZztcbiAgc2xvdE5hbWU6IHN0cmluZztcbiAgc2xvdE1vZHVsZU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25JbnRlcm5hbFN0b3JlIHtcbiAgLyoqIFNsb3RzIGluZGV4ZWQgYnkgbmFtZSAqL1xuICBzbG90czogUmVjb3JkPHN0cmluZywgRXh0ZW5zaW9uU2xvdEluZm8+O1xuICAvKiogRXh0ZW5zaW9ucyBpbmRleGVkIGJ5IG5hbWUgKi9cbiAgZXh0ZW5zaW9uczogUmVjb3JkPHN0cmluZywgRXh0ZW5zaW9uSW5mbz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uU2xvdEluZm8ge1xuICAvKipcbiAgICogVGhlIG1vZHVsZSBpbiB3aGljaCB0aGUgZXh0ZW5zaW9uIHNsb3QgZXhpc3RzLiBVbmRlZmluZWQgaWYgdGhlIHNsb3RcbiAgICogaGFzbid0IGJlZW4gcmVnaXN0ZXJlZCB5ZXQgKGJ1dCBpdCBoYXMgYmVlbiBhdHRhY2hlZCBvciBhc3NpZ25lZCB0b1xuICAgKiBhbiBleHRlbnNpb24uXG4gICAqL1xuICBtb2R1bGVOYW1lPzogc3RyaW5nO1xuICAvKiogVGhlIG5hbWUgdW5kZXIgd2hpY2ggdGhlIGV4dGVuc2lvbiBzbG90IGhhcyBiZWVuIHJlZ2lzdGVyZWQuICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzZXQgb2YgZXh0ZW5zaW9uIElEcyB3aGljaCBoYXZlIGJlZW4gYXR0YWNoZWQgdG8gdGhpcyBzbG90IHVzaW5nIGBhdHRhY2hgLlxuICAgKiBIb3dldmVyLCBub3QgYWxsIG9mIHRoZXNlIGV4dGVuc2lvbiBJRHMgc2hvdWxkIGJlIHJlbmRlcmVkLlxuICAgKiBgYXNzaWduZWRJZHNgIGlzIHRoZSBzZXQgZGVmaW5pbmcgdGhvc2UuXG4gICAqL1xuICBhdHRhY2hlZElkczogQXJyYXk8c3RyaW5nPjtcbiAgLyoqIFRoZSBjb25maWd1cmF0aW9uIHByb3ZpZGVkIGZvciB0aGlzIHNsb3QuIGBudWxsYCBpZiBub3QgeWV0IGxvYWRlZC4gKi9cbiAgY29uZmlnOiBFeHRlbnNpb25TbG90Q29uZmlnT2JqZWN0IHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25TdG9yZSB7XG4gIHNsb3RzOiBSZWNvcmQ8c3RyaW5nLCBFeHRlbnNpb25TbG90U3RhdGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvblNsb3RTdGF0ZSB7XG4gIG1vZHVsZU5hbWU/OiBzdHJpbmc7XG4gIGFzc2lnbmVkRXh0ZW5zaW9uczogQXJyYXk8QXNzaWduZWRFeHRlbnNpb24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2lnbmVkRXh0ZW5zaW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBtb2R1bGVOYW1lOiBzdHJpbmc7XG4gIG1ldGE6IEV4dGVuc2lvbk1ldGE7XG4gIC8qKiBUaGUgZXh0ZW5zaW9uJ3MgY29uZmlnLiBOb3RlIHRoYXQgdGhpcyB3aWxsIGJlIGBudWxsYCB1bnRpbCB0aGUgc2xvdCBpcyBtb3VudGVkLiAqL1xuICBjb25maWc6IENvbmZpZ09iamVjdCB8IG51bGw7XG4gIG9ubGluZT86IGJvb2xlYW4gfCBvYmplY3Q7XG4gIG9mZmxpbmU/OiBib29sZWFuIHwgb2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RlZEV4dGVuc2lvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgbWV0YTogRXh0ZW5zaW9uTWV0YTtcbiAgLyoqIFRoZSBleHRlbnNpb24ncyBjb25maWcuIE5vdGUgdGhhdCB0aGlzIHdpbGwgYmUgYG51bGxgIHVudGlsIHRoZSBzbG90IGlzIG1vdW50ZWQuICovXG4gIGNvbmZpZzogQ29uZmlnT2JqZWN0IHwgbnVsbDtcbn1cblxuY29uc3QgZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSA9IGNyZWF0ZUdsb2JhbFN0b3JlPEV4dGVuc2lvbkludGVybmFsU3RvcmU+KFxuICBcImV4dGVuc2lvbnNJbnRlcm5hbFwiLFxuICB7XG4gICAgc2xvdHM6IHt9LFxuICAgIGV4dGVuc2lvbnM6IHt9LFxuICB9XG4pO1xuXG4vKipcbiAqIFRoaXMgZ2V0cyB0aGUgZXh0ZW5zaW9uIHN5c3RlbSdzIGludGVybmFsIHN0b3JlLiBJdCBpcyBzdWJqZWN0XG4gKiB0byBjaGFuZ2UgcmFkaWNhbGx5IGFuZCB3aXRob3V0IHdhcm5pbmcuIEl0IHNob3VsZCBub3QgYmUgdXNlZFxuICogb3V0c2lkZSBlc20tY29yZS5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgZ2V0RXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSA9ICgpID0+XG4gIGdldEdsb2JhbFN0b3JlPEV4dGVuc2lvbkludGVybmFsU3RvcmU+KFwiZXh0ZW5zaW9uc0ludGVybmFsXCIsIHtcbiAgICBzbG90czoge30sXG4gICAgZXh0ZW5zaW9uczoge30sXG4gIH0pO1xuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlSW50ZXJuYWxFeHRlbnNpb25TdG9yZShcbiAgdXBkYXRlcjogKHN0YXRlOiBFeHRlbnNpb25JbnRlcm5hbFN0b3JlKSA9PiBFeHRlbnNpb25JbnRlcm5hbFN0b3JlXG4pIHtcbiAgY29uc3Qgc3RhdGUgPSBleHRlbnNpb25JbnRlcm5hbFN0b3JlLmdldFN0YXRlKCk7XG4gIGNvbnN0IG5ld1N0YXRlID0gdXBkYXRlcihzdGF0ZSk7XG5cbiAgaWYgKG5ld1N0YXRlICE9PSBzdGF0ZSkge1xuICAgIGV4dGVuc2lvbkludGVybmFsU3RvcmUuc2V0U3RhdGUobmV3U3RhdGUpO1xuICB9XG59XG5cbi8qKlxuICogVGhpcyByZXR1cm5zIGEgc3RvcmUgdGhhdCBtb2R1bGVzIGNhbiB1c2UgdG8gZ2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZVxuICogc3RhdGUgb2YgdGhlIGV4dGVuc2lvbiBzeXN0ZW0uXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFeHRlbnNpb25TdG9yZSA9ICgpID0+XG4gIGdldEdsb2JhbFN0b3JlPEV4dGVuc2lvblN0b3JlPihcImV4dGVuc2lvbnNcIiwge1xuICAgIHNsb3RzOiB7fSxcbiAgfSk7XG5cbi8qKlxuICogZXNtLWNvbmZpZyBtYWludGFpbnMgaXRzIG93biBzdG9yZSBvZiB0aGUgZXh0ZW5zaW9uIGluZm9ybWF0aW9uIGl0IG5lZWRzXG4gKiB0byBnZW5lcmF0ZSBleHRlbnNpb24gY29uZmlncy4gV2Uga2VlcCBpdCB1cGRhdGVkIGJhc2VkIG9uIHdoYXQncyBpblxuICogYGV4dGVuc2lvblN0b3JlYC5cbiAqL1xuXG51cGRhdGVDb25maWdFeHRlbnNpb25TdG9yZShleHRlbnNpb25JbnRlcm5hbFN0b3JlLmdldFN0YXRlKCkpO1xuZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5zdWJzY3JpYmUodXBkYXRlQ29uZmlnRXh0ZW5zaW9uU3RvcmUpO1xuXG5mdW5jdGlvbiB1cGRhdGVDb25maWdFeHRlbnNpb25TdG9yZShleHRlbnNpb25TdGF0ZTogRXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSkge1xuICBjb25zdCBjb25maWdFeHRlbnNpb25SZWNvcmRzOiBBcnJheTxDb25maWdFeHRlbnNpb25TdG9yZUVsZW1lbnQ+ID0gW107XG5cbiAgZm9yIChsZXQgZXh0ZW5zaW9uSW5mbyBvZiBPYmplY3QudmFsdWVzKGV4dGVuc2lvblN0YXRlLmV4dGVuc2lvbnMpKSB7XG4gICAgZm9yIChsZXQgaW5zdGFuY2Ugb2YgZXh0ZW5zaW9uSW5mby5pbnN0YW5jZXMpIHtcbiAgICAgIGNvbmZpZ0V4dGVuc2lvblJlY29yZHMucHVzaCh7XG4gICAgICAgIHNsb3RNb2R1bGVOYW1lOiBpbnN0YW5jZS5zbG90TW9kdWxlTmFtZSxcbiAgICAgICAgZXh0ZW5zaW9uTW9kdWxlTmFtZTogZXh0ZW5zaW9uSW5mby5tb2R1bGVOYW1lLFxuICAgICAgICBzbG90TmFtZTogaW5zdGFuY2Uuc2xvdE5hbWUsXG4gICAgICAgIGV4dGVuc2lvbklkOiBpbnN0YW5jZS5pZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBpZiAoXG4gICAgIWlzRXF1YWwoXG4gICAgICBjb25maWdFeHRlbnNpb25TdG9yZS5nZXRTdGF0ZSgpLm1vdW50ZWRFeHRlbnNpb25zLFxuICAgICAgY29uZmlnRXh0ZW5zaW9uUmVjb3Jkc1xuICAgIClcbiAgKSB7XG4gICAgY29uZmlnRXh0ZW5zaW9uU3RvcmUuc2V0U3RhdGUoe1xuICAgICAgbW91bnRlZEV4dGVuc2lvbnM6IGNvbmZpZ0V4dGVuc2lvblJlY29yZHMsXG4gICAgfSk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJpc0VxdWFsIiwiY29uZmlnRXh0ZW5zaW9uU3RvcmUiLCJjcmVhdGVHbG9iYWxTdG9yZSIsImdldEdsb2JhbFN0b3JlIiwiZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSIsInNsb3RzIiwiZXh0ZW5zaW9ucyIsImdldEV4dGVuc2lvbkludGVybmFsU3RvcmUiLCJ1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlIiwidXBkYXRlciIsInN0YXRlIiwiZ2V0U3RhdGUiLCJuZXdTdGF0ZSIsInNldFN0YXRlIiwiZ2V0RXh0ZW5zaW9uU3RvcmUiLCJ1cGRhdGVDb25maWdFeHRlbnNpb25TdG9yZSIsInN1YnNjcmliZSIsImV4dGVuc2lvblN0YXRlIiwiY29uZmlnRXh0ZW5zaW9uUmVjb3JkcyIsIk9iamVjdCIsInZhbHVlcyIsImV4dGVuc2lvbkluZm8iLCJpbnN0YW5jZXMiLCJpbnN0YW5jZSIsInB1c2giLCJzbG90TW9kdWxlTmFtZSIsImV4dGVuc2lvbk1vZHVsZU5hbWUiLCJtb2R1bGVOYW1lIiwic2xvdE5hbWUiLCJleHRlbnNpb25JZCIsImlkIiwibW91bnRlZEV4dGVuc2lvbnMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-extensions/src/store.ts\n");
6684
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getExtensionInternalStore: () => (/* binding */ getExtensionInternalStore),\n/* harmony export */ getExtensionStore: () => (/* binding */ getExtensionStore),\n/* harmony export */ updateInternalExtensionStore: () => (/* binding */ updateInternalExtensionStore)\n/* harmony export */ });\n/* harmony import */ var lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash-es/isEqual */ \"../../../node_modules/lodash-es/isEqual.js\");\n/* harmony import */ var _openmrs_esm_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-config */ \"../../framework/esm-config/src/index.ts\");\n/* harmony import */ var _openmrs_esm_state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-state */ \"../../framework/esm-state/src/index.ts\");\n/** @module @category Extension */ \n\n\nvar extensionInternalStore = (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_1__.createGlobalStore)(\"extensionsInternal\", {\n slots: {},\n extensions: {}\n});\n/**\n * This gets the extension system's internal store. It is subject\n * to change radically and without warning. It should not be used\n * outside esm-core.\n * @internal\n */ var getExtensionInternalStore = function() {\n return (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_1__.getGlobalStore)(\"extensionsInternal\", {\n slots: {},\n extensions: {}\n });\n};\n/** @internal */ function updateInternalExtensionStore(updater) {\n var state = extensionInternalStore.getState();\n var newState = updater(state);\n if (newState !== state) {\n extensionInternalStore.setState(newState);\n }\n}\n/**\n * This returns a store that modules can use to get information about the\n * state of the extension system.\n */ var getExtensionStore = function() {\n return (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_1__.getGlobalStore)(\"extensions\", {\n slots: {}\n });\n};\n/**\n * esm-config maintains its own store of the extension information it needs\n * to generate extension configs. We keep it updated based on what's in\n * `extensionStore`.\n */ updateConfigExtensionStore(extensionInternalStore.getState());\nextensionInternalStore.subscribe(updateConfigExtensionStore);\nfunction updateConfigExtensionStore(extensionState) {\n var configExtensionRecords = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = Object.values(extensionState.extensions)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var extensionInfo = _step.value;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;\n try {\n for(var _iterator1 = extensionInfo.instances[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){\n var instance = _step1.value;\n configExtensionRecords.push({\n slotModuleName: instance.slotModuleName,\n extensionModuleName: extensionInfo.moduleName,\n slotName: instance.slotName,\n extensionId: instance.id\n });\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally{\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (!(0,lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_0__.configExtensionStore.getState().mountedExtensions, configExtensionRecords)) {\n _openmrs_esm_config__WEBPACK_IMPORTED_MODULE_0__.configExtensionStore.setState({\n mountedExtensions: configExtensionRecords\n });\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1leHRlbnNpb25zL3NyYy9zdG9yZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxnQ0FBZ0MsR0FDUTtBQU1YO0FBQzBDO0FBdUZ2RSxJQUFNSSx5QkFBeUJGLHFFQUFpQkEsQ0FDOUMsc0JBQ0E7SUFDRUcsT0FBTyxDQUFDO0lBQ1JDLFlBQVksQ0FBQztBQUNmO0FBR0Y7Ozs7O0NBS0MsR0FDTSxJQUFNQyw0QkFBNEI7V0FDdkNKLGtFQUFjQSxDQUF5QixzQkFBc0I7UUFDM0RFLE9BQU8sQ0FBQztRQUNSQyxZQUFZLENBQUM7SUFDZjtFQUFHO0FBRUwsY0FBYyxHQUNQLFNBQVNFLDZCQUNkQyxPQUFrRSxFQUNsRTtJQUNBLElBQU1DLFFBQVFOLHVCQUF1Qk8sUUFBUTtJQUM3QyxJQUFNQyxXQUFXSCxRQUFRQztJQUV6QixJQUFJRSxhQUFhRixPQUFPO1FBQ3RCTix1QkFBdUJTLFFBQVEsQ0FBQ0Q7SUFDbEMsQ0FBQztBQUNILENBQUM7QUFFRDs7O0NBR0MsR0FDTSxJQUFNRSxvQkFBb0I7V0FDL0JYLGtFQUFjQSxDQUFpQixjQUFjO1FBQzNDRSxPQUFPLENBQUM7SUFDVjtFQUFHO0FBRUw7Ozs7Q0FJQyxHQUVEVSwyQkFBMkJYLHVCQUF1Qk8sUUFBUTtBQUMxRFAsdUJBQXVCWSxTQUFTLENBQUNEO0FBRWpDLFNBQVNBLDJCQUEyQkUsY0FBc0MsRUFBRTtJQUMxRSxJQUFNQyx5QkFBNkQsRUFBRTtRQUVoRTs7UUFBTCxRQUFLLFlBQXFCQyxPQUFPQyxNQUFNLENBQUNILGVBQWVYLFVBQVUsc0JBQTVELHdHQUErRDtZQUEvRCxJQUFJZSxnQkFBSjtnQkFDRTs7Z0JBQUwsUUFBSyxhQUFnQkEsY0FBY0MsU0FBUyxxQkFBdkMsNkdBQXlDO29CQUF6QyxJQUFJQyxXQUFKO29CQUNITCx1QkFBdUJNLElBQUksQ0FBQzt3QkFDMUJDLGdCQUFnQkYsU0FBU0UsY0FBYzt3QkFDdkNDLHFCQUFxQkwsY0FBY00sVUFBVTt3QkFDN0NDLFVBQVVMLFNBQVNLLFFBQVE7d0JBQzNCQyxhQUFhTixTQUFTTyxFQUFFO29CQUMxQjtnQkFDRjs7Z0JBUEs7Z0JBQUE7Ozt5QkFBQTt3QkFBQTs7O3dCQUFBOzhCQUFBOzs7O1FBUVA7O1FBVEs7UUFBQTs7O2lCQUFBO2dCQUFBOzs7Z0JBQUE7c0JBQUE7Ozs7SUFVTCxJQUNFLENBQUM5Qiw2REFBT0EsQ0FDTkMscUVBQW9CQSxDQUFDVSxRQUFRLEdBQUdvQixpQkFBaUIsRUFDakRiLHlCQUVGO1FBQ0FqQixxRUFBb0JBLENBQUNZLFFBQVEsQ0FBQztZQUM1QmtCLG1CQUFtQmI7UUFDckI7SUFDRixDQUFDO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tZXh0ZW5zaW9ucy9zcmMvc3RvcmUudHM/ZTIyOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgRXh0ZW5zaW9uICovXG5pbXBvcnQgaXNFcXVhbCBmcm9tIFwibG9kYXNoLWVzL2lzRXF1YWxcIjtcbmltcG9ydCB7XG4gIGNvbmZpZ0V4dGVuc2lvblN0b3JlLFxuICBDb25maWdFeHRlbnNpb25TdG9yZUVsZW1lbnQsXG4gIENvbmZpZ09iamVjdCxcbiAgRXh0ZW5zaW9uU2xvdENvbmZpZ09iamVjdCxcbn0gZnJvbSBcIkBvcGVubXJzL2VzbS1jb25maWdcIjtcbmltcG9ydCB7IGNyZWF0ZUdsb2JhbFN0b3JlLCBnZXRHbG9iYWxTdG9yZSB9IGZyb20gXCJAb3Blbm1ycy9lc20tc3RhdGVcIjtcbmltcG9ydCB0eXBlIHsgTGlmZUN5Y2xlcyB9IGZyb20gXCJzaW5nbGUtc3BhXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uTWV0YSB7XG4gIFtfOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uUmVnaXN0cmF0aW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBsb2FkKCk6IFByb21pc2U8eyBkZWZhdWx0PzogTGlmZUN5Y2xlcyB9ICYgTGlmZUN5Y2xlcz47XG4gIG1vZHVsZU5hbWU6IHN0cmluZztcbiAgbWV0YTogRXh0ZW5zaW9uTWV0YTtcbiAgb3JkZXI/OiBudW1iZXI7XG4gIG9ubGluZT86IGJvb2xlYW47XG4gIG9mZmxpbmU/OiBib29sZWFuO1xuICBwcml2aWxlZ2VzPzogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPjtcbiAgZmVhdHVyZUZsYWc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uSW5mbyBleHRlbmRzIEV4dGVuc2lvblJlZ2lzdHJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgaW5zdGFuY2VzIHdoZXJlIHRoZSBleHRlbnNpb24gaGFzIGJlZW4gcmVuZGVyZWQgdXNpbmcgYHJlbmRlckV4dGVuc2lvbmAuXG4gICAqL1xuICBpbnN0YW5jZXM6IEFycmF5PEV4dGVuc2lvbkluc3RhbmNlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25JbnN0YW5jZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHNsb3ROYW1lOiBzdHJpbmc7XG4gIHNsb3RNb2R1bGVOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSB7XG4gIC8qKiBTbG90cyBpbmRleGVkIGJ5IG5hbWUgKi9cbiAgc2xvdHM6IFJlY29yZDxzdHJpbmcsIEV4dGVuc2lvblNsb3RJbmZvPjtcbiAgLyoqIEV4dGVuc2lvbnMgaW5kZXhlZCBieSBuYW1lICovXG4gIGV4dGVuc2lvbnM6IFJlY29yZDxzdHJpbmcsIEV4dGVuc2lvbkluZm8+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvblNsb3RJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBtb2R1bGUgaW4gd2hpY2ggdGhlIGV4dGVuc2lvbiBzbG90IGV4aXN0cy4gVW5kZWZpbmVkIGlmIHRoZSBzbG90XG4gICAqIGhhc24ndCBiZWVuIHJlZ2lzdGVyZWQgeWV0IChidXQgaXQgaGFzIGJlZW4gYXR0YWNoZWQgb3IgYXNzaWduZWQgdG9cbiAgICogYW4gZXh0ZW5zaW9uLlxuICAgKi9cbiAgbW9kdWxlTmFtZT86IHN0cmluZztcbiAgLyoqIFRoZSBuYW1lIHVuZGVyIHdoaWNoIHRoZSBleHRlbnNpb24gc2xvdCBoYXMgYmVlbiByZWdpc3RlcmVkLiAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc2V0IG9mIGV4dGVuc2lvbiBJRHMgd2hpY2ggaGF2ZSBiZWVuIGF0dGFjaGVkIHRvIHRoaXMgc2xvdCB1c2luZyBgYXR0YWNoYC5cbiAgICogSG93ZXZlciwgbm90IGFsbCBvZiB0aGVzZSBleHRlbnNpb24gSURzIHNob3VsZCBiZSByZW5kZXJlZC5cbiAgICogYGFzc2lnbmVkSWRzYCBpcyB0aGUgc2V0IGRlZmluaW5nIHRob3NlLlxuICAgKi9cbiAgYXR0YWNoZWRJZHM6IEFycmF5PHN0cmluZz47XG4gIC8qKiBUaGUgY29uZmlndXJhdGlvbiBwcm92aWRlZCBmb3IgdGhpcyBzbG90LiBgbnVsbGAgaWYgbm90IHlldCBsb2FkZWQuICovXG4gIGNvbmZpZzogRXh0ZW5zaW9uU2xvdENvbmZpZ09iamVjdCB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uU3RvcmUge1xuICBzbG90czogUmVjb3JkPHN0cmluZywgRXh0ZW5zaW9uU2xvdFN0YXRlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25TbG90U3RhdGUge1xuICBtb2R1bGVOYW1lPzogc3RyaW5nO1xuICBhc3NpZ25lZEV4dGVuc2lvbnM6IEFycmF5PEFzc2lnbmVkRXh0ZW5zaW9uPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NpZ25lZEV4dGVuc2lvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICBtZXRhOiBFeHRlbnNpb25NZXRhO1xuICAvKiogVGhlIGV4dGVuc2lvbidzIGNvbmZpZy4gTm90ZSB0aGF0IHRoaXMgd2lsbCBiZSBgbnVsbGAgdW50aWwgdGhlIHNsb3QgaXMgbW91bnRlZC4gKi9cbiAgY29uZmlnOiBDb25maWdPYmplY3QgfCBudWxsO1xuICBvbmxpbmU/OiBib29sZWFuIHwgb2JqZWN0O1xuICBvZmZsaW5lPzogYm9vbGVhbiB8IG9iamVjdDtcbiAgZmVhdHVyZUZsYWc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGVkRXh0ZW5zaW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBtZXRhOiBFeHRlbnNpb25NZXRhO1xuICAvKiogVGhlIGV4dGVuc2lvbidzIGNvbmZpZy4gTm90ZSB0aGF0IHRoaXMgd2lsbCBiZSBgbnVsbGAgdW50aWwgdGhlIHNsb3QgaXMgbW91bnRlZC4gKi9cbiAgY29uZmlnOiBDb25maWdPYmplY3QgfCBudWxsO1xufVxuXG5jb25zdCBleHRlbnNpb25JbnRlcm5hbFN0b3JlID0gY3JlYXRlR2xvYmFsU3RvcmU8RXh0ZW5zaW9uSW50ZXJuYWxTdG9yZT4oXG4gIFwiZXh0ZW5zaW9uc0ludGVybmFsXCIsXG4gIHtcbiAgICBzbG90czoge30sXG4gICAgZXh0ZW5zaW9uczoge30sXG4gIH1cbik7XG5cbi8qKlxuICogVGhpcyBnZXRzIHRoZSBleHRlbnNpb24gc3lzdGVtJ3MgaW50ZXJuYWwgc3RvcmUuIEl0IGlzIHN1YmplY3RcbiAqIHRvIGNoYW5nZSByYWRpY2FsbHkgYW5kIHdpdGhvdXQgd2FybmluZy4gSXQgc2hvdWxkIG5vdCBiZSB1c2VkXG4gKiBvdXRzaWRlIGVzbS1jb3JlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFeHRlbnNpb25JbnRlcm5hbFN0b3JlID0gKCkgPT5cbiAgZ2V0R2xvYmFsU3RvcmU8RXh0ZW5zaW9uSW50ZXJuYWxTdG9yZT4oXCJleHRlbnNpb25zSW50ZXJuYWxcIiwge1xuICAgIHNsb3RzOiB7fSxcbiAgICBleHRlbnNpb25zOiB7fSxcbiAgfSk7XG5cbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlKFxuICB1cGRhdGVyOiAoc3RhdGU6IEV4dGVuc2lvbkludGVybmFsU3RvcmUpID0+IEV4dGVuc2lvbkludGVybmFsU3RvcmVcbikge1xuICBjb25zdCBzdGF0ZSA9IGV4dGVuc2lvbkludGVybmFsU3RvcmUuZ2V0U3RhdGUoKTtcbiAgY29uc3QgbmV3U3RhdGUgPSB1cGRhdGVyKHN0YXRlKTtcblxuICBpZiAobmV3U3RhdGUgIT09IHN0YXRlKSB7XG4gICAgZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5zZXRTdGF0ZShuZXdTdGF0ZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIHJldHVybnMgYSBzdG9yZSB0aGF0IG1vZHVsZXMgY2FuIHVzZSB0byBnZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlXG4gKiBzdGF0ZSBvZiB0aGUgZXh0ZW5zaW9uIHN5c3RlbS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEV4dGVuc2lvblN0b3JlID0gKCkgPT5cbiAgZ2V0R2xvYmFsU3RvcmU8RXh0ZW5zaW9uU3RvcmU+KFwiZXh0ZW5zaW9uc1wiLCB7XG4gICAgc2xvdHM6IHt9LFxuICB9KTtcblxuLyoqXG4gKiBlc20tY29uZmlnIG1haW50YWlucyBpdHMgb3duIHN0b3JlIG9mIHRoZSBleHRlbnNpb24gaW5mb3JtYXRpb24gaXQgbmVlZHNcbiAqIHRvIGdlbmVyYXRlIGV4dGVuc2lvbiBjb25maWdzLiBXZSBrZWVwIGl0IHVwZGF0ZWQgYmFzZWQgb24gd2hhdCdzIGluXG4gKiBgZXh0ZW5zaW9uU3RvcmVgLlxuICovXG5cbnVwZGF0ZUNvbmZpZ0V4dGVuc2lvblN0b3JlKGV4dGVuc2lvbkludGVybmFsU3RvcmUuZ2V0U3RhdGUoKSk7XG5leHRlbnNpb25JbnRlcm5hbFN0b3JlLnN1YnNjcmliZSh1cGRhdGVDb25maWdFeHRlbnNpb25TdG9yZSk7XG5cbmZ1bmN0aW9uIHVwZGF0ZUNvbmZpZ0V4dGVuc2lvblN0b3JlKGV4dGVuc2lvblN0YXRlOiBFeHRlbnNpb25JbnRlcm5hbFN0b3JlKSB7XG4gIGNvbnN0IGNvbmZpZ0V4dGVuc2lvblJlY29yZHM6IEFycmF5PENvbmZpZ0V4dGVuc2lvblN0b3JlRWxlbWVudD4gPSBbXTtcblxuICBmb3IgKGxldCBleHRlbnNpb25JbmZvIG9mIE9iamVjdC52YWx1ZXMoZXh0ZW5zaW9uU3RhdGUuZXh0ZW5zaW9ucykpIHtcbiAgICBmb3IgKGxldCBpbnN0YW5jZSBvZiBleHRlbnNpb25JbmZvLmluc3RhbmNlcykge1xuICAgICAgY29uZmlnRXh0ZW5zaW9uUmVjb3Jkcy5wdXNoKHtcbiAgICAgICAgc2xvdE1vZHVsZU5hbWU6IGluc3RhbmNlLnNsb3RNb2R1bGVOYW1lLFxuICAgICAgICBleHRlbnNpb25Nb2R1bGVOYW1lOiBleHRlbnNpb25JbmZvLm1vZHVsZU5hbWUsXG4gICAgICAgIHNsb3ROYW1lOiBpbnN0YW5jZS5zbG90TmFtZSxcbiAgICAgICAgZXh0ZW5zaW9uSWQ6IGluc3RhbmNlLmlkLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGlmIChcbiAgICAhaXNFcXVhbChcbiAgICAgIGNvbmZpZ0V4dGVuc2lvblN0b3JlLmdldFN0YXRlKCkubW91bnRlZEV4dGVuc2lvbnMsXG4gICAgICBjb25maWdFeHRlbnNpb25SZWNvcmRzXG4gICAgKVxuICApIHtcbiAgICBjb25maWdFeHRlbnNpb25TdG9yZS5zZXRTdGF0ZSh7XG4gICAgICBtb3VudGVkRXh0ZW5zaW9uczogY29uZmlnRXh0ZW5zaW9uUmVjb3JkcyxcbiAgICB9KTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbImlzRXF1YWwiLCJjb25maWdFeHRlbnNpb25TdG9yZSIsImNyZWF0ZUdsb2JhbFN0b3JlIiwiZ2V0R2xvYmFsU3RvcmUiLCJleHRlbnNpb25JbnRlcm5hbFN0b3JlIiwic2xvdHMiLCJleHRlbnNpb25zIiwiZ2V0RXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSIsInVwZGF0ZUludGVybmFsRXh0ZW5zaW9uU3RvcmUiLCJ1cGRhdGVyIiwic3RhdGUiLCJnZXRTdGF0ZSIsIm5ld1N0YXRlIiwic2V0U3RhdGUiLCJnZXRFeHRlbnNpb25TdG9yZSIsInVwZGF0ZUNvbmZpZ0V4dGVuc2lvblN0b3JlIiwic3Vic2NyaWJlIiwiZXh0ZW5zaW9uU3RhdGUiLCJjb25maWdFeHRlbnNpb25SZWNvcmRzIiwiT2JqZWN0IiwidmFsdWVzIiwiZXh0ZW5zaW9uSW5mbyIsImluc3RhbmNlcyIsImluc3RhbmNlIiwicHVzaCIsInNsb3RNb2R1bGVOYW1lIiwiZXh0ZW5zaW9uTW9kdWxlTmFtZSIsIm1vZHVsZU5hbWUiLCJzbG90TmFtZSIsImV4dGVuc2lvbklkIiwiaWQiLCJtb3VudGVkRXh0ZW5zaW9ucyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-extensions/src/store.ts\n");
6685
6685
 
6686
6686
  /***/ }),
6687
6687
 
@@ -6780,7 +6780,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
6780
6780
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6781
6781
 
6782
6782
  "use strict";
6783
- eval("__webpack_require__.r(__webpack_exports__);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1nbG9iYWxzL3NyYy90eXBlcy50cyIsIm1hcHBpbmdzIjoiO0FBOFBDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLWdsb2JhbHMvc3JjL3R5cGVzLnRzP2M3NDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBcHBsaWNhdGlvbiB9IGZyb20gXCJzaW5nbGUtc3BhXCI7XG5pbXBvcnQgdHlwZSB7IGkxOG4gfSBmcm9tIFwiaTE4bmV4dFwiO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGNvbnN0IF9fd2VicGFja19zaGFyZV9zY29wZXNfXzogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICBSZWNvcmQ8XG4gICAgICBzdHJpbmcsXG4gICAgICB7IGxvYWRlZD86IDE7IGdldDogKCkgPT4gUHJvbWlzZTx1bmtub3duPjsgZnJvbTogc3RyaW5nOyBlYWdlcjogYm9vbGVhbiB9XG4gICAgPlxuICA+O1xuXG4gIHZhciBfX3dlYnBhY2tfaW5pdF9zaGFyaW5nX186IChzY29wZTogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIC8qKlxuICAgICAqIEVhc2lseSBjb3BpZXMgYSB0ZXh0IGZyb20gYW4gZWxlbWVudC5cbiAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2UgZWxlbWVudCBjYXJyeWluZyB0aGUgdGV4dC5cbiAgICAgKi9cbiAgICBjb3B5VGV4dChzb3VyY2U6IEhUTUxFbGVtZW50KTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBPcGVuTVJTIFNQQSBiYXNlIHBhdGggd2l0aCBhIHRyYWlsaW5nIHNsYXNoLlxuICAgICAqL1xuICAgIGdldE9wZW5tcnNTcGFCYXNlKCk6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBTdGFydHMgdGhlIE9wZW5NUlMgU1BBIGFwcGxpY2F0aW9uLlxuICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciBydW5uaW5nLlxuICAgICAqL1xuICAgIGluaXRpYWxpemVTcGEoY29uZmlnOiBTcGFDb25maWcpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIEFQSSBiYXNlIHBhdGguXG4gICAgICovXG4gICAgb3Blbm1yc0Jhc2U6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBTUEEgYmFzZSBwYXRoLlxuICAgICAqL1xuICAgIHNwYUJhc2U6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBkZXRlcm1pbmVkIFNQQSBlbnZpcm9ubWVudC5cbiAgICAgKi9cbiAgICBzcGFFbnY6IFNwYUVudmlyb25tZW50O1xuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHB1Ymxpc2hlZCBTUEEgdmVyc2lvbi5cbiAgICAgKi9cbiAgICBzcGFWZXJzaW9uPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEdldHMgYSBzZXQgb2Ygb3B0aW9ucyBmcm9tIHRoZSBpbXBvcnQtbWFwLW92ZXJyaWRlcyBwYWNrYWdlLlxuICAgICAqL1xuICAgIGltcG9ydE1hcE92ZXJyaWRlczoge1xuICAgICAgZ2V0Q3VycmVudFBhZ2VNYXA6ICgpID0+IFByb21pc2U8SW1wb3J0TWFwPjtcbiAgICAgIGFkZE92ZXJyaWRlKG1vZHVsZU5hbWU6IHN0cmluZywgdXJsOiBzdHJpbmcpOiB2b2lkO1xuICAgICAgZ2V0T3ZlcnJpZGVNYXAoaW5jbHVkZURpc2FibGVkPzogYm9vbGVhbik6IEltcG9ydE1hcDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGluc3RhbGxlZCBtb2R1bGVzLCB3aGljaCBhcmUgdHVwbGVzIGNvbnNpc3Rpbmcgb2YgdGhlIG1vZHVsZSdzIG5hbWUgYW5kIGV4cG9ydHMuXG4gICAgICovXG4gICAgaW5zdGFsbGVkTW9kdWxlczogQXJyYXk8W3N0cmluZywgT3Blbm1yc0FwcFJvdXRlc10+O1xuICAgIC8qKlxuICAgICAqIFRoZSBpMThuZXh0IGluc3RhbmNlIGZvciB0aGUgYXBwLlxuICAgICAqL1xuICAgIGkxOG5leHQ6IGkxOG47XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgU3BhRW52aXJvbm1lbnQgPSBcInByb2R1Y3Rpb25cIiB8IFwiZGV2ZWxvcG1lbnRcIiB8IFwidGVzdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydE1hcCB7XG4gIGltcG9ydHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gcGFzc2VkIHRvIHRoZSBhcHAgc2hlbGwgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGFDb25maWcge1xuICAvKipcbiAgICogVGhlIGJhc2UgcGF0aCBvciBVUkwgZm9yIHRoZSBPcGVuTVJTIEFQSSAvIGVuZHBvaW50cy5cbiAgICovXG4gIGFwaVVybDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGJhc2UgcGF0aCBmb3IgdGhlIFNQQSByb290IHBhdGguXG4gICAqL1xuICBzcGFQYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgdG8gdXNlLlxuICAgKiBAZGVmYXVsdCBwcm9kdWN0aW9uXG4gICAqL1xuICBlbnY/OiBTcGFFbnZpcm9ubWVudDtcbiAgLyoqXG4gICAqIFVSTHMgb2YgY29uZmlndXJhdGlvbnMgdG8gbG9hZCBpbiB0aGUgc3lzdGVtLlxuICAgKi9cbiAgY29uZmlnVXJscz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBEZWZpbmVzIGlmIG9mZmxpbmUgc2hvdWxkIGJlIHN1cHBvcnRlZCBieSBpbnN0YWxsaW5nIGEgc2VydmljZSB3b3JrZXIuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIG9mZmxpbmU/OiBib29sZWFuO1xufVxuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgdHlwZSBSb3V0ZURlZmluaXRpb24gPSBSZWdFeHAgfCBzdHJpbmcgfCBib29sZWFuO1xuXG4vKiogQGludGVybmFsICovXG50eXBlIEFwcENvbXBvbmVudCA9IHtcbiAgYXBwTmFtZTogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBBIGRlZmluaXRpb24gb2YgYSBwYWdlIGV4dHJhY3RlZCBmcm9tIGFuIGFwcCdzIHJvdXRlcy5qc29uXG4gKi9cbmV4cG9ydCB0eXBlIFBhZ2VEZWZpbml0aW9uID0ge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudCBleHBvcnRlZCBieSB0aGlzIGZyb250ZW5kIG1vZHVsZS5cbiAgICovXG4gIGNvbXBvbmVudDogc3RyaW5nO1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb21wb25lbnQgcmVuZGVycyB3aGlsZSB0aGUgYnJvd3NlciBpcyBjb25uZWN0ZWQgdG8gdGhlIGludGVybmV0LiBJZiBmYWxzZSwgdGhpcyBwYWdlIHdpbGwgbmV2ZXIgcmVuZGVyIHdoaWxlIG9ubGluZS5cbiAgICovXG4gIG9ubGluZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCByZW5kZXJzIHdoaWxlIHRoZSBicm93c2VyIGlzIG5vdCBjb25uZWN0ZWQgdG8gdGhlIGludGVybmV0LiBJZiBmYWxzZSwgdGhpcyBwYWdlIHdpbGwgbmV2ZXIgcmVuZGVyIHdoaWxlIG9mZmxpbmUuXG4gICAqL1xuICBvZmZsaW5lPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIG9yZGVyIGluIHdoaWNoIHRoaXMgcGFnZSBpcyByZW5kZXJlZCBpbiB0aGUgYXBwLXNoZWxsLCB3aGljaCBpcyB1c2VmdWwgZm9yIHNpdHVhdGlvbnMgd2hlcmUgRE9NIG9yZGVyaW5nIG1hdHRlcnMuXG4gICAqL1xuICBvcmRlcj86IG51bWJlcjtcbn0gJiAoXG4gIHwge1xuICAgICAgLyoqXG4gICAgICAgKiBFaXRoZXIgYSBzdHJpbmcgb3IgYSBib29sZWFuLlxuICAgICAgICpcbiAgICAgICAqIElmIGEgc3RyaW5nIHZhbHVlLCB0aGlzIGlzIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCB0aGlzIHBhZ2Ugc2hvdWxkIGJlIHJlbmRlcmVkLiBGb3IgZXhhbXBsZSwgXFxcIm5hbWVcXFwiIHdpbGwgbWF0Y2ggd2hlbiB0aGUgY3VycmVudCBwYWdlIGlzICR7d2luZG93LnNwYUJhc2V9L25hbWUuXG4gICAgICAgKlxuICAgICAgICogSWYgYSBib29sZWFuLCB0aGlzIGVpdGhlciBpbmRpY2F0ZXMgdGhhdCB0aGUgY29tcG9uZW50IHNob3VsZCBhbHdheXMgYmUgcmVuZGVyZWQgb3Igc2hvdWxkIG5ldmVyIGJlIHJlbmRlcmVkLlxuICAgICAgICovXG4gICAgICByb3V0ZTogc3RyaW5nIHwgYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQSByZWd1bGFyIGV4cHJlc3Npb24gdXNlZCB0byBtYXRjaCBhZ2FpbnN0IHRoZSBjdXJyZW50IHJvdXRlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoaXMgcGFnZSBzaG91bGQgYmUgcmVuZGVyZWQuIE5vdGUgdGhhdCAke3dpbmRvdy5zcGFCYXNlfSB3aWxsIGJlIHJlbW92ZWQgYmVmb3JlIGF0dGVtcHRpbmcgdG8gbWF0Y2gsIHNvIHNldHRpbmcgdGhpcyB0byBcXFwiXm5hbWUuK1xcXCIgd2lsbCBtYXRjaCBhbnkgcm91dGUgdGhhdCBzdGFydHMgd2l0aCAke3dpbmRvdy5zcGFCYXNlfS9uYW1lLlxuICAgICAgICovXG4gICAgICByb3V0ZVJlZ2V4PzogbmV2ZXI7XG4gICAgfVxuICB8IHtcbiAgICAgIC8qKlxuICAgICAgICogRWl0aGVyIGEgc3RyaW5nIG9yIGEgYm9vbGVhbi5cbiAgICAgICAqXG4gICAgICAgKiBJZiBhIHN0cmluZyB2YWx1ZSwgdGhpcyBpcyB1c2VkIHRvIGluZGljYXRlIHRoYXQgdGhpcyBwYWdlIHNob3VsZCBiZSByZW5kZXJlZC4gRm9yIGV4YW1wbGUsIFxcXCJuYW1lXFxcIiB3aWxsIG1hdGNoIHdoZW4gdGhlIGN1cnJlbnQgcGFnZSBpcyAke3dpbmRvdy5zcGFCYXNlfS9uYW1lLlxuICAgICAgICpcbiAgICAgICAqIElmIGEgYm9vbGVhbiwgdGhpcyBlaXRoZXIgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbXBvbmVudCBzaG91bGQgYWx3YXlzIGJlIHJlbmRlcmVkIG9yIHNob3VsZCBuZXZlciBiZSByZW5kZXJlZC5cbiAgICAgICAqL1xuICAgICAgcm91dGU/OiBuZXZlcjtcbiAgICAgIC8qKlxuICAgICAgICogQSByZWd1bGFyIGV4cHJlc3Npb24gdXNlZCB0byBtYXRjaCBhZ2FpbnN0IHRoZSBjdXJyZW50IHJvdXRlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoaXMgcGFnZSBzaG91bGQgYmUgcmVuZGVyZWQuIE5vdGUgdGhhdCAke3dpbmRvdy5zcGFCYXNlfSB3aWxsIGJlIHJlbW92ZWQgYmVmb3JlIGF0dGVtcHRpbmcgdG8gbWF0Y2gsIHNvIHNldHRpbmcgdGhpcyB0byBcXFwiXm5hbWUuK1xcXCIgd2lsbCBtYXRjaCBhbnkgcm91dGUgdGhhdCBzdGFydHMgd2l0aCAke3dpbmRvdy5zcGFCYXNlfS9uYW1lLlxuICAgICAgICovXG4gICAgICByb3V0ZVJlZ2V4OiBzdHJpbmc7XG4gICAgfVxuKTtcblxuLyoqXG4gKiBBIGRlZmluaXRpb24gb2YgYSBwYWdlIGFmdGVyIHRoZSBhcHAgaGFzIGJlZW4gcmVnaXN0ZXJlZC5cbiAqL1xuZXhwb3J0IHR5cGUgUmVnaXN0ZXJlZFBhZ2VEZWZpbml0aW9uID0gT21pdDxQYWdlRGVmaW5pdGlvbiwgXCJvcmRlclwiPiAmXG4gIEFwcENvbXBvbmVudCAmIHsgb3JkZXI6IG51bWJlciB9O1xuXG4vKipcbiAqIEEgZGVmaW5pdGlvbiBvZiBhbiBleHRlbnNpb24gYXMgZXh0cmFjdGVkIGZyb20gYW4gYXBwJ3Mgcm91dGVzLmpzb25cbiAqL1xuZXhwb3J0IHR5cGUgRXh0ZW5zaW9uRGVmaW5pdGlvbiA9IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgZXh0ZW5zaW9uLiBUaGlzIGlzIHVzZWQgdG8gcmVmZXIgdG8gdGhlIGV4dGVuc2lvbiBpbiBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogSWYgc3VwcGxpZWQsIHRoZSBzbG90IHRoYXQgdGhpcyBleHRlbnNpb24gaXMgcmVuZGVyZWQgaW50byBieSBkZWZhdWx0LlxuICAgKi9cbiAgc2xvdD86IHN0cmluZztcbiAgLyoqXG4gICAqIElmIHN1cHBsaWVkLCB0aGUgc2xvdHMgdGhhdCB0aGlzIGV4dGVuc2lvbiBpcyByZW5kZXJlZCBpbnRvIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBzbG90cz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCByZW5kZXJzIHdoaWxlIHRoZSBicm93c2VyIGlzIGNvbm5lY3RlZCB0byB0aGUgaW50ZXJuZXQuIElmIGZhbHNlLCB0aGlzIHBhZ2Ugd2lsbCBuZXZlciByZW5kZXIgd2hpbGUgb25saW5lLlxuICAgKi9cbiAgb25saW5lPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY29tcG9uZW50IHJlbmRlcnMgd2hpbGUgdGhlIGJyb3dzZXIgaXMgbm90IGNvbm5lY3RlZCB0byB0aGUgaW50ZXJuZXQuIElmIGZhbHNlLCB0aGlzIHBhZ2Ugd2lsbCBuZXZlciByZW5kZXIgd2hpbGUgb2ZmbGluZS5cbiAgICovXG4gIG9mZmxpbmU/OiBib29sZWFuO1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhpcyBjb21wb25lbnQgcmVuZGVycyBpbiBpdHMgZGVmYXVsdCBleHRlbnNpb24gc2xvdC4gTm90ZSB0aGF0IHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gYnkgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIG9yZGVyPzogbnVtYmVyO1xuICAvKipcbiAgXG4gICAqL1xuICBwcml2aWxlZ2VzPzogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIE1ldGEgZGVzY3JpYmVzIGFueSBwcm9wZXJ0aWVzIHRoYXQgYXJlIHBhc3NlZCBkb3duIHRvIHRoZSBleHRlbnNpb24gd2hlbiBpdCBpcyBsb2FkZWRcbiAgICovXG4gIG1ldGE/OiB7XG4gICAgW2s6IHN0cmluZ106IHVua25vd247XG4gIH07XG59ICYgKFxuICB8IHtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudCBleHBvcnRlZCBieSB0aGlzIGZyb250ZW5kIG1vZHVsZS5cbiAgICAgICAqL1xuICAgICAgY29tcG9uZW50OiBzdHJpbmc7XG4gICAgICAvKipcbiAgICAgICAqIEBpbnRlcm5hbFxuICAgICAgICovXG4gICAgICBsb2FkPzogbmV2ZXI7XG4gICAgfVxuICB8IHtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudCBleHBvcnRlZCBieSB0aGlzIGZyb250ZW5kIG1vZHVsZS5cbiAgICAgICAqL1xuICAgICAgY29tcG9uZW50PzogbmV2ZXI7XG4gICAgICAvKipcbiAgICAgICAqIEBpbnRlcm5hbFxuICAgICAgICovXG4gICAgICBsb2FkOiBBcHBsaWNhdGlvbjtcbiAgICB9XG4pO1xuXG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIGRlc2NyaWJlcyB0aGUgZm9ybWF0IG9mIHRoZSByb3V0ZXMgcHJvdmlkZWQgYnkgYW4gYXBwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3Blbm1yc0FwcFJvdXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGlzIGZyb250ZW5kIG1vZHVsZS5cbiAgICovXG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgYmFja2VuZCBtb2R1bGVzIG5lY2Vzc2FyeSBmb3IgdGhpcyBmcm9udGVuZCBtb2R1bGUgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHJlcXVpcmVkIHZlcnNpb25zLlxuICAgKi9cbiAgYmFja2VuZERlcGVuZGVuY2llcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBhbGwgcGFnZXMgc3VwcG9ydGVkIGJ5IHRoaXMgZnJvbnRlbmQgbW9kdWxlLiBQYWdlcyBhcmUgYXV0b21hdGljYWxseSBtb3VudGVkIGJhc2VkIG9uIGEgcm91dGUuXG4gICAqL1xuICBwYWdlcz86IEFycmF5PFBhZ2VEZWZpbml0aW9uPjtcbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIGFsbCBleHRlbnNpb25zIHN1cHBvcnRlZCBieSB0aGlzIGZyb250ZW5kIG1vZHVsZS4gRXh0ZW5zaW9ucyBjYW4gYmUgbW91bnRlZCBpbiBleHRlbnNpb24gc2xvdHMsIGVpdGhlciB2aWEgZGVjbGFyYXRpb25zIGluIHRoaXMgZmlsZSBvciBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgZXh0ZW5zaW9ucz86IEFycmF5PEV4dGVuc2lvbkRlZmluaXRpb24+O1xufVxuXG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlcyBkZXNjcmliZXMgdGhlIGZvcm1hdCBvZiB0aGUgb3ZlcmFsbCByb3R1ZXMuanNvbiBsb2FkZWQgYnkgdGhlIGFwcCBzaGVsbC5cbiAqIEJhc2ljYWxseSwgdGhpcyBpcyB0aGUgc2FtZSBhcyB0aGUgYXBwIHJvdXRlcywgd2l0aCBlYWNoIHJvdXRlcyBkZWZpbml0aW9uIGtleWVkIGJ5IHRoZSBhcHAncyBuYW1lXG4gKi9cbmV4cG9ydCB0eXBlIE9wZW5tcnNSb3V0ZXMgPSBSZWNvcmQ8c3RyaW5nLCBPcGVubXJzQXBwUm91dGVzPjtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUxvYWRlcjxUID0gYW55PiB7XG4gICgpOiBQcm9taXNlPFQ+O1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-globals/src/types.ts\n");
6783
+ eval("__webpack_require__.r(__webpack_exports__);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1nbG9iYWxzL3NyYy90eXBlcy50cyIsIm1hcHBpbmdzIjoiO0FBa1FDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLWdsb2JhbHMvc3JjL3R5cGVzLnRzP2M3NDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBcHBsaWNhdGlvbiB9IGZyb20gXCJzaW5nbGUtc3BhXCI7XG5pbXBvcnQgdHlwZSB7IGkxOG4gfSBmcm9tIFwiaTE4bmV4dFwiO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGNvbnN0IF9fd2VicGFja19zaGFyZV9zY29wZXNfXzogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICBSZWNvcmQ8XG4gICAgICBzdHJpbmcsXG4gICAgICB7IGxvYWRlZD86IDE7IGdldDogKCkgPT4gUHJvbWlzZTx1bmtub3duPjsgZnJvbTogc3RyaW5nOyBlYWdlcjogYm9vbGVhbiB9XG4gICAgPlxuICA+O1xuXG4gIHZhciBfX3dlYnBhY2tfaW5pdF9zaGFyaW5nX186IChzY29wZTogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIC8qKlxuICAgICAqIEVhc2lseSBjb3BpZXMgYSB0ZXh0IGZyb20gYW4gZWxlbWVudC5cbiAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2UgZWxlbWVudCBjYXJyeWluZyB0aGUgdGV4dC5cbiAgICAgKi9cbiAgICBjb3B5VGV4dChzb3VyY2U6IEhUTUxFbGVtZW50KTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBPcGVuTVJTIFNQQSBiYXNlIHBhdGggd2l0aCBhIHRyYWlsaW5nIHNsYXNoLlxuICAgICAqL1xuICAgIGdldE9wZW5tcnNTcGFCYXNlKCk6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBTdGFydHMgdGhlIE9wZW5NUlMgU1BBIGFwcGxpY2F0aW9uLlxuICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciBydW5uaW5nLlxuICAgICAqL1xuICAgIGluaXRpYWxpemVTcGEoY29uZmlnOiBTcGFDb25maWcpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIEFQSSBiYXNlIHBhdGguXG4gICAgICovXG4gICAgb3Blbm1yc0Jhc2U6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBTUEEgYmFzZSBwYXRoLlxuICAgICAqL1xuICAgIHNwYUJhc2U6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBkZXRlcm1pbmVkIFNQQSBlbnZpcm9ubWVudC5cbiAgICAgKi9cbiAgICBzcGFFbnY6IFNwYUVudmlyb25tZW50O1xuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHB1Ymxpc2hlZCBTUEEgdmVyc2lvbi5cbiAgICAgKi9cbiAgICBzcGFWZXJzaW9uPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEdldHMgYSBzZXQgb2Ygb3B0aW9ucyBmcm9tIHRoZSBpbXBvcnQtbWFwLW92ZXJyaWRlcyBwYWNrYWdlLlxuICAgICAqL1xuICAgIGltcG9ydE1hcE92ZXJyaWRlczoge1xuICAgICAgZ2V0Q3VycmVudFBhZ2VNYXA6ICgpID0+IFByb21pc2U8SW1wb3J0TWFwPjtcbiAgICAgIGFkZE92ZXJyaWRlKG1vZHVsZU5hbWU6IHN0cmluZywgdXJsOiBzdHJpbmcpOiB2b2lkO1xuICAgICAgZ2V0T3ZlcnJpZGVNYXAoaW5jbHVkZURpc2FibGVkPzogYm9vbGVhbik6IEltcG9ydE1hcDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGluc3RhbGxlZCBtb2R1bGVzLCB3aGljaCBhcmUgdHVwbGVzIGNvbnNpc3Rpbmcgb2YgdGhlIG1vZHVsZSdzIG5hbWUgYW5kIGV4cG9ydHMuXG4gICAgICovXG4gICAgaW5zdGFsbGVkTW9kdWxlczogQXJyYXk8W3N0cmluZywgT3Blbm1yc0FwcFJvdXRlc10+O1xuICAgIC8qKlxuICAgICAqIFRoZSBpMThuZXh0IGluc3RhbmNlIGZvciB0aGUgYXBwLlxuICAgICAqL1xuICAgIGkxOG5leHQ6IGkxOG47XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgU3BhRW52aXJvbm1lbnQgPSBcInByb2R1Y3Rpb25cIiB8IFwiZGV2ZWxvcG1lbnRcIiB8IFwidGVzdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydE1hcCB7XG4gIGltcG9ydHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gcGFzc2VkIHRvIHRoZSBhcHAgc2hlbGwgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGFDb25maWcge1xuICAvKipcbiAgICogVGhlIGJhc2UgcGF0aCBvciBVUkwgZm9yIHRoZSBPcGVuTVJTIEFQSSAvIGVuZHBvaW50cy5cbiAgICovXG4gIGFwaVVybDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGJhc2UgcGF0aCBmb3IgdGhlIFNQQSByb290IHBhdGguXG4gICAqL1xuICBzcGFQYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgdG8gdXNlLlxuICAgKiBAZGVmYXVsdCBwcm9kdWN0aW9uXG4gICAqL1xuICBlbnY/OiBTcGFFbnZpcm9ubWVudDtcbiAgLyoqXG4gICAqIFVSTHMgb2YgY29uZmlndXJhdGlvbnMgdG8gbG9hZCBpbiB0aGUgc3lzdGVtLlxuICAgKi9cbiAgY29uZmlnVXJscz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBEZWZpbmVzIGlmIG9mZmxpbmUgc2hvdWxkIGJlIHN1cHBvcnRlZCBieSBpbnN0YWxsaW5nIGEgc2VydmljZSB3b3JrZXIuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIG9mZmxpbmU/OiBib29sZWFuO1xufVxuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgdHlwZSBSb3V0ZURlZmluaXRpb24gPSBSZWdFeHAgfCBzdHJpbmcgfCBib29sZWFuO1xuXG4vKiogQGludGVybmFsICovXG50eXBlIEFwcENvbXBvbmVudCA9IHtcbiAgYXBwTmFtZTogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBBIGRlZmluaXRpb24gb2YgYSBwYWdlIGV4dHJhY3RlZCBmcm9tIGFuIGFwcCdzIHJvdXRlcy5qc29uXG4gKi9cbmV4cG9ydCB0eXBlIFBhZ2VEZWZpbml0aW9uID0ge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudCBleHBvcnRlZCBieSB0aGlzIGZyb250ZW5kIG1vZHVsZS5cbiAgICovXG4gIGNvbXBvbmVudDogc3RyaW5nO1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb21wb25lbnQgcmVuZGVycyB3aGlsZSB0aGUgYnJvd3NlciBpcyBjb25uZWN0ZWQgdG8gdGhlIGludGVybmV0LiBJZiBmYWxzZSwgdGhpcyBwYWdlIHdpbGwgbmV2ZXIgcmVuZGVyIHdoaWxlIG9ubGluZS5cbiAgICovXG4gIG9ubGluZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCByZW5kZXJzIHdoaWxlIHRoZSBicm93c2VyIGlzIG5vdCBjb25uZWN0ZWQgdG8gdGhlIGludGVybmV0LiBJZiBmYWxzZSwgdGhpcyBwYWdlIHdpbGwgbmV2ZXIgcmVuZGVyIHdoaWxlIG9mZmxpbmUuXG4gICAqL1xuICBvZmZsaW5lPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIG9yZGVyIGluIHdoaWNoIHRoaXMgcGFnZSBpcyByZW5kZXJlZCBpbiB0aGUgYXBwLXNoZWxsLCB3aGljaCBpcyB1c2VmdWwgZm9yIHNpdHVhdGlvbnMgd2hlcmUgRE9NIG9yZGVyaW5nIG1hdHRlcnMuXG4gICAqL1xuICBvcmRlcj86IG51bWJlcjtcbn0gJiAoXG4gIHwge1xuICAgICAgLyoqXG4gICAgICAgKiBFaXRoZXIgYSBzdHJpbmcgb3IgYSBib29sZWFuLlxuICAgICAgICpcbiAgICAgICAqIElmIGEgc3RyaW5nIHZhbHVlLCB0aGlzIGlzIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCB0aGlzIHBhZ2Ugc2hvdWxkIGJlIHJlbmRlcmVkLiBGb3IgZXhhbXBsZSwgXFxcIm5hbWVcXFwiIHdpbGwgbWF0Y2ggd2hlbiB0aGUgY3VycmVudCBwYWdlIGlzICR7d2luZG93LnNwYUJhc2V9L25hbWUuXG4gICAgICAgKlxuICAgICAgICogSWYgYSBib29sZWFuLCB0aGlzIGVpdGhlciBpbmRpY2F0ZXMgdGhhdCB0aGUgY29tcG9uZW50IHNob3VsZCBhbHdheXMgYmUgcmVuZGVyZWQgb3Igc2hvdWxkIG5ldmVyIGJlIHJlbmRlcmVkLlxuICAgICAgICovXG4gICAgICByb3V0ZTogc3RyaW5nIHwgYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogQSByZWd1bGFyIGV4cHJlc3Npb24gdXNlZCB0byBtYXRjaCBhZ2FpbnN0IHRoZSBjdXJyZW50IHJvdXRlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoaXMgcGFnZSBzaG91bGQgYmUgcmVuZGVyZWQuIE5vdGUgdGhhdCAke3dpbmRvdy5zcGFCYXNlfSB3aWxsIGJlIHJlbW92ZWQgYmVmb3JlIGF0dGVtcHRpbmcgdG8gbWF0Y2gsIHNvIHNldHRpbmcgdGhpcyB0byBcXFwiXm5hbWUuK1xcXCIgd2lsbCBtYXRjaCBhbnkgcm91dGUgdGhhdCBzdGFydHMgd2l0aCAke3dpbmRvdy5zcGFCYXNlfS9uYW1lLlxuICAgICAgICovXG4gICAgICByb3V0ZVJlZ2V4PzogbmV2ZXI7XG4gICAgfVxuICB8IHtcbiAgICAgIC8qKlxuICAgICAgICogRWl0aGVyIGEgc3RyaW5nIG9yIGEgYm9vbGVhbi5cbiAgICAgICAqXG4gICAgICAgKiBJZiBhIHN0cmluZyB2YWx1ZSwgdGhpcyBpcyB1c2VkIHRvIGluZGljYXRlIHRoYXQgdGhpcyBwYWdlIHNob3VsZCBiZSByZW5kZXJlZC4gRm9yIGV4YW1wbGUsIFxcXCJuYW1lXFxcIiB3aWxsIG1hdGNoIHdoZW4gdGhlIGN1cnJlbnQgcGFnZSBpcyAke3dpbmRvdy5zcGFCYXNlfS9uYW1lLlxuICAgICAgICpcbiAgICAgICAqIElmIGEgYm9vbGVhbiwgdGhpcyBlaXRoZXIgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbXBvbmVudCBzaG91bGQgYWx3YXlzIGJlIHJlbmRlcmVkIG9yIHNob3VsZCBuZXZlciBiZSByZW5kZXJlZC5cbiAgICAgICAqL1xuICAgICAgcm91dGU/OiBuZXZlcjtcbiAgICAgIC8qKlxuICAgICAgICogQSByZWd1bGFyIGV4cHJlc3Npb24gdXNlZCB0byBtYXRjaCBhZ2FpbnN0IHRoZSBjdXJyZW50IHJvdXRlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoaXMgcGFnZSBzaG91bGQgYmUgcmVuZGVyZWQuIE5vdGUgdGhhdCAke3dpbmRvdy5zcGFCYXNlfSB3aWxsIGJlIHJlbW92ZWQgYmVmb3JlIGF0dGVtcHRpbmcgdG8gbWF0Y2gsIHNvIHNldHRpbmcgdGhpcyB0byBcXFwiXm5hbWUuK1xcXCIgd2lsbCBtYXRjaCBhbnkgcm91dGUgdGhhdCBzdGFydHMgd2l0aCAke3dpbmRvdy5zcGFCYXNlfS9uYW1lLlxuICAgICAgICovXG4gICAgICByb3V0ZVJlZ2V4OiBzdHJpbmc7XG4gICAgfVxuKTtcblxuLyoqXG4gKiBBIGRlZmluaXRpb24gb2YgYSBwYWdlIGFmdGVyIHRoZSBhcHAgaGFzIGJlZW4gcmVnaXN0ZXJlZC5cbiAqL1xuZXhwb3J0IHR5cGUgUmVnaXN0ZXJlZFBhZ2VEZWZpbml0aW9uID0gT21pdDxQYWdlRGVmaW5pdGlvbiwgXCJvcmRlclwiPiAmXG4gIEFwcENvbXBvbmVudCAmIHsgb3JkZXI6IG51bWJlciB9O1xuXG4vKipcbiAqIEEgZGVmaW5pdGlvbiBvZiBhbiBleHRlbnNpb24gYXMgZXh0cmFjdGVkIGZyb20gYW4gYXBwJ3Mgcm91dGVzLmpzb25cbiAqL1xuZXhwb3J0IHR5cGUgRXh0ZW5zaW9uRGVmaW5pdGlvbiA9IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgZXh0ZW5zaW9uLiBUaGlzIGlzIHVzZWQgdG8gcmVmZXIgdG8gdGhlIGV4dGVuc2lvbiBpbiBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogSWYgc3VwcGxpZWQsIHRoZSBzbG90IHRoYXQgdGhpcyBleHRlbnNpb24gaXMgcmVuZGVyZWQgaW50byBieSBkZWZhdWx0LlxuICAgKi9cbiAgc2xvdD86IHN0cmluZztcbiAgLyoqXG4gICAqIElmIHN1cHBsaWVkLCB0aGUgc2xvdHMgdGhhdCB0aGlzIGV4dGVuc2lvbiBpcyByZW5kZXJlZCBpbnRvIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBzbG90cz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCByZW5kZXJzIHdoaWxlIHRoZSBicm93c2VyIGlzIGNvbm5lY3RlZCB0byB0aGUgaW50ZXJuZXQuIElmIGZhbHNlLCB0aGlzIHBhZ2Ugd2lsbCBuZXZlciByZW5kZXIgd2hpbGUgb25saW5lLlxuICAgKi9cbiAgb25saW5lPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY29tcG9uZW50IHJlbmRlcnMgd2hpbGUgdGhlIGJyb3dzZXIgaXMgbm90IGNvbm5lY3RlZCB0byB0aGUgaW50ZXJuZXQuIElmIGZhbHNlLCB0aGlzIHBhZ2Ugd2lsbCBuZXZlciByZW5kZXIgd2hpbGUgb2ZmbGluZS5cbiAgICovXG4gIG9mZmxpbmU/OiBib29sZWFuO1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhpcyBjb21wb25lbnQgcmVuZGVycyBpbiBpdHMgZGVmYXVsdCBleHRlbnNpb24gc2xvdC4gTm90ZSB0aGF0IHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gYnkgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIG9yZGVyPzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIHVzZXIgbXVzdCBoYXZlIEFOWSBvZiB0aGVzZSBwcml2aWxlZ2VzIHRvIHNlZSB0aGlzIGV4dGVuc2lvbi5cbiAgICovXG4gIHByaXZpbGVnZXM/OiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+O1xuICAvKipcbiAgICogSWYgc3VwcGxpZWQsIHRoZSBleHRlbnNpb24gd2lsbCBvbmx5IGJlIHJlbmRlcmVkIHdoZW4gdGhpcyBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZC5cbiAgICovXG4gIGZlYXR1cmVGbGFnPzogc3RyaW5nO1xuICAvKipcbiAgICogTWV0YSBkZXNjcmliZXMgYW55IHByb3BlcnRpZXMgdGhhdCBhcmUgcGFzc2VkIGRvd24gdG8gdGhlIGV4dGVuc2lvbiB3aGVuIGl0IGlzIGxvYWRlZFxuICAgKi9cbiAgbWV0YT86IHtcbiAgICBbazogc3RyaW5nXTogdW5rbm93bjtcbiAgfTtcbn0gJiAoXG4gIHwge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50IGV4cG9ydGVkIGJ5IHRoaXMgZnJvbnRlbmQgbW9kdWxlLlxuICAgICAgICovXG4gICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogQGludGVybmFsXG4gICAgICAgKi9cbiAgICAgIGxvYWQ/OiBuZXZlcjtcbiAgICB9XG4gIHwge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50IGV4cG9ydGVkIGJ5IHRoaXMgZnJvbnRlbmQgbW9kdWxlLlxuICAgICAgICovXG4gICAgICBjb21wb25lbnQ/OiBuZXZlcjtcbiAgICAgIC8qKlxuICAgICAgICogQGludGVybmFsXG4gICAgICAgKi9cbiAgICAgIGxvYWQ6IEFwcGxpY2F0aW9uO1xuICAgIH1cbik7XG5cbi8qKlxuICogVGhpcyBpbnRlcmZhY2UgZGVzY3JpYmVzIHRoZSBmb3JtYXQgb2YgdGhlIHJvdXRlcyBwcm92aWRlZCBieSBhbiBhcHBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcGVubXJzQXBwUm91dGVzIHtcbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoaXMgZnJvbnRlbmQgbW9kdWxlLlxuICAgKi9cbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBiYWNrZW5kIG1vZHVsZXMgbmVjZXNzYXJ5IGZvciB0aGlzIGZyb250ZW5kIG1vZHVsZSBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgcmVxdWlyZWQgdmVyc2lvbnMuXG4gICAqL1xuICBiYWNrZW5kRGVwZW5kZW5jaWVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIGFsbCBwYWdlcyBzdXBwb3J0ZWQgYnkgdGhpcyBmcm9udGVuZCBtb2R1bGUuIFBhZ2VzIGFyZSBhdXRvbWF0aWNhbGx5IG1vdW50ZWQgYmFzZWQgb24gYSByb3V0ZS5cbiAgICovXG4gIHBhZ2VzPzogQXJyYXk8UGFnZURlZmluaXRpb24+O1xuICAvKipcbiAgICogQW4gYXJyYXkgb2YgYWxsIGV4dGVuc2lvbnMgc3VwcG9ydGVkIGJ5IHRoaXMgZnJvbnRlbmQgbW9kdWxlLiBFeHRlbnNpb25zIGNhbiBiZSBtb3VudGVkIGluIGV4dGVuc2lvbiBzbG90cywgZWl0aGVyIHZpYSBkZWNsYXJhdGlvbnMgaW4gdGhpcyBmaWxlIG9yIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBleHRlbnNpb25zPzogQXJyYXk8RXh0ZW5zaW9uRGVmaW5pdGlvbj47XG59XG5cbi8qKlxuICogVGhpcyBpbnRlcmZhY2VzIGRlc2NyaWJlcyB0aGUgZm9ybWF0IG9mIHRoZSBvdmVyYWxsIHJvdHVlcy5qc29uIGxvYWRlZCBieSB0aGUgYXBwIHNoZWxsLlxuICogQmFzaWNhbGx5LCB0aGlzIGlzIHRoZSBzYW1lIGFzIHRoZSBhcHAgcm91dGVzLCB3aXRoIGVhY2ggcm91dGVzIGRlZmluaXRpb24ga2V5ZWQgYnkgdGhlIGFwcCdzIG5hbWVcbiAqL1xuZXhwb3J0IHR5cGUgT3Blbm1yc1JvdXRlcyA9IFJlY29yZDxzdHJpbmcsIE9wZW5tcnNBcHBSb3V0ZXM+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlTG9hZGVyPFQgPSBhbnk+IHtcbiAgKCk6IFByb21pc2U8VD47XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-globals/src/types.ts\n");
6784
6784
 
6785
6785
  /***/ }),
6786
6786
 
@@ -7066,7 +7066,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
7066
7066
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7067
7067
 
7068
7068
  "use strict";
7069
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useConnectedExtensions: () => (/* binding */ useConnectedExtensions)\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 _openmrs_esm_extensions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-extensions */ \"../../framework/esm-extensions/src/index.ts\");\n/* harmony import */ var _useConnectivity__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./useConnectivity */ \"../../framework/esm-react-utils/src/useConnectivity.ts\");\n/* harmony import */ var _useAssignedExtensions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useAssignedExtensions */ \"../../framework/esm-react-utils/src/useAssignedExtensions.ts\");\n/** @module @category Extension */ \n\n\n\n/**\n * Gets the assigned extension for a given extension slot name.\n * Considers if offline or online.\n * @param slotName The name of the slot to get the assigned extensions for.\n */ function useConnectedExtensions(slotName) {\n var online = (0,_useConnectivity__WEBPACK_IMPORTED_MODULE_2__.useConnectivity)();\n var assignedExtensions = (0,_useAssignedExtensions__WEBPACK_IMPORTED_MODULE_3__.useAssignedExtensions)(slotName);\n var connectedExtensions = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n return (0,_openmrs_esm_extensions__WEBPACK_IMPORTED_MODULE_1__.getConnectedExtensions)(assignedExtensions, online);\n }, [\n assignedExtensions,\n online\n ]);\n return connectedExtensions;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvdXNlQ29ubmVjdGVkRXh0ZW5zaW9ucy50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxnQ0FBZ0MsR0FDQTtBQUlDO0FBQ21CO0FBQ1k7QUFFaEU7Ozs7Q0FJQyxHQUNNLFNBQVNJLHVCQUNkQyxRQUFnQixFQUNXO0lBQzNCLElBQU1DLFNBQVNKLGlFQUFlQTtJQUM5QixJQUFNSyxxQkFBcUJKLDZFQUFxQkEsQ0FBQ0U7SUFFakQsSUFBTUcsc0JBQXNCUiw4Q0FBT0EsQ0FBQyxXQUFNO1FBQ3hDLE9BQU9DLCtFQUFzQkEsQ0FBQ00sb0JBQW9CRDtJQUNwRCxHQUFHO1FBQUNDO1FBQW9CRDtLQUFPO0lBRS9CLE9BQU9FO0FBQ1QsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvdXNlQ29ubmVjdGVkRXh0ZW5zaW9ucy50cz9lYjQ4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBFeHRlbnNpb24gKi9cbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7XG4gIENvbm5lY3RlZEV4dGVuc2lvbixcbiAgZ2V0Q29ubmVjdGVkRXh0ZW5zaW9ucyxcbn0gZnJvbSBcIkBvcGVubXJzL2VzbS1leHRlbnNpb25zXCI7XG5pbXBvcnQgeyB1c2VDb25uZWN0aXZpdHkgfSBmcm9tIFwiLi91c2VDb25uZWN0aXZpdHlcIjtcbmltcG9ydCB7IHVzZUFzc2lnbmVkRXh0ZW5zaW9ucyB9IGZyb20gXCIuL3VzZUFzc2lnbmVkRXh0ZW5zaW9uc1wiO1xuXG4vKipcbiAqIEdldHMgdGhlIGFzc2lnbmVkIGV4dGVuc2lvbiBmb3IgYSBnaXZlbiBleHRlbnNpb24gc2xvdCBuYW1lLlxuICogQ29uc2lkZXJzIGlmIG9mZmxpbmUgb3Igb25saW5lLlxuICogQHBhcmFtIHNsb3ROYW1lIFRoZSBuYW1lIG9mIHRoZSBzbG90IHRvIGdldCB0aGUgYXNzaWduZWQgZXh0ZW5zaW9ucyBmb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDb25uZWN0ZWRFeHRlbnNpb25zKFxuICBzbG90TmFtZTogc3RyaW5nXG4pOiBBcnJheTxDb25uZWN0ZWRFeHRlbnNpb24+IHtcbiAgY29uc3Qgb25saW5lID0gdXNlQ29ubmVjdGl2aXR5KCk7XG4gIGNvbnN0IGFzc2lnbmVkRXh0ZW5zaW9ucyA9IHVzZUFzc2lnbmVkRXh0ZW5zaW9ucyhzbG90TmFtZSk7XG5cbiAgY29uc3QgY29ubmVjdGVkRXh0ZW5zaW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBnZXRDb25uZWN0ZWRFeHRlbnNpb25zKGFzc2lnbmVkRXh0ZW5zaW9ucywgb25saW5lKTtcbiAgfSwgW2Fzc2lnbmVkRXh0ZW5zaW9ucywgb25saW5lXSk7XG5cbiAgcmV0dXJuIGNvbm5lY3RlZEV4dGVuc2lvbnM7XG59XG4iXSwibmFtZXMiOlsidXNlTWVtbyIsImdldENvbm5lY3RlZEV4dGVuc2lvbnMiLCJ1c2VDb25uZWN0aXZpdHkiLCJ1c2VBc3NpZ25lZEV4dGVuc2lvbnMiLCJ1c2VDb25uZWN0ZWRFeHRlbnNpb25zIiwic2xvdE5hbWUiLCJvbmxpbmUiLCJhc3NpZ25lZEV4dGVuc2lvbnMiLCJjb25uZWN0ZWRFeHRlbnNpb25zIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/src/useConnectedExtensions.ts\n");
7069
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useConnectedExtensions: () => (/* binding */ useConnectedExtensions)\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 _openmrs_esm_extensions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-extensions */ \"../../framework/esm-extensions/src/index.ts\");\n/* harmony import */ var _useConnectivity__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./useConnectivity */ \"../../framework/esm-react-utils/src/useConnectivity.ts\");\n/* harmony import */ var _useAssignedExtensions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useAssignedExtensions */ \"../../framework/esm-react-utils/src/useAssignedExtensions.ts\");\n/* harmony import */ var _useStore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./useStore */ \"../../framework/esm-react-utils/src/useStore.ts\");\n/* harmony import */ var _openmrs_esm_feature_flags__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @openmrs/esm-feature-flags */ \"../../framework/esm-feature-flags/src/index.ts\");\n/** @module @category Extension */ function _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 _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 _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}\n\n\n\n\n\n\n/**\n * Gets the assigned extension for a given extension slot name.\n * Considers if offline or online, and what feature flags are enabled.\n * @param slotName The name of the slot to get the assigned extensions for.\n */ function useConnectedExtensions(slotName) {\n var online = (0,_useConnectivity__WEBPACK_IMPORTED_MODULE_2__.useConnectivity)();\n var assignedExtensions = (0,_useAssignedExtensions__WEBPACK_IMPORTED_MODULE_3__.useAssignedExtensions)(slotName);\n var featureFlagStore = (0,_useStore__WEBPACK_IMPORTED_MODULE_4__.useStore)(_openmrs_esm_feature_flags__WEBPACK_IMPORTED_MODULE_5__.featureFlagsStore);\n var enabledFeatureFlags = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n return Object.entries(featureFlagStore.flags).filter(function(param) {\n var _param = _sliced_to_array(param, 2), enabled = _param[1].enabled;\n return enabled;\n }).map(function(param) {\n var _param = _sliced_to_array(param, 1), name = _param[0];\n return name;\n });\n }, [\n featureFlagStore.flags\n ]);\n var connectedExtensions = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n return (0,_openmrs_esm_extensions__WEBPACK_IMPORTED_MODULE_1__.getConnectedExtensions)(assignedExtensions, online, enabledFeatureFlags);\n }, [\n assignedExtensions,\n online,\n enabledFeatureFlags\n ]);\n return connectedExtensions;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvdXNlQ29ubmVjdGVkRXh0ZW5zaW9ucy50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLGdDQUFnQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBO0FBSUM7QUFDbUI7QUFDWTtBQUMxQjtBQUN5QjtBQUUvRDs7OztDQUlDLEdBQ00sU0FBU00sdUJBQ2RDLFFBQWdCLEVBQ1c7SUFDM0IsSUFBTUMsU0FBU04saUVBQWVBO0lBQzlCLElBQU1PLHFCQUFxQk4sNkVBQXFCQSxDQUFDSTtJQUNqRCxJQUFNRyxtQkFBbUJOLG1EQUFRQSxDQUFDQyx5RUFBaUJBO0lBRW5ELElBQU1NLHNCQUFzQlgsOENBQU9BLENBQUMsV0FBTTtRQUN4QyxPQUFPWSxPQUFPQyxPQUFPLENBQUNILGlCQUFpQkksS0FBSyxFQUN6Q0MsTUFBTSxDQUFDO3FEQUFJLG9CQUFFQzttQkFBZUE7V0FDNUJDLEdBQUcsQ0FBQztxREFBRUM7bUJBQVVBOztJQUNyQixHQUFHO1FBQUNSLGlCQUFpQkksS0FBSztLQUFDO0lBRTNCLElBQU1LLHNCQUFzQm5CLDhDQUFPQSxDQUFDLFdBQU07UUFDeEMsT0FBT0MsK0VBQXNCQSxDQUMzQlEsb0JBQ0FELFFBQ0FHO0lBRUosR0FBRztRQUFDRjtRQUFvQkQ7UUFBUUc7S0FBb0I7SUFFcEQsT0FBT1E7QUFDVCxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLXJlYWN0LXV0aWxzL3NyYy91c2VDb25uZWN0ZWRFeHRlbnNpb25zLnRzP2ViNDgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IEV4dGVuc2lvbiAqL1xuaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtcbiAgQ29ubmVjdGVkRXh0ZW5zaW9uLFxuICBnZXRDb25uZWN0ZWRFeHRlbnNpb25zLFxufSBmcm9tIFwiQG9wZW5tcnMvZXNtLWV4dGVuc2lvbnNcIjtcbmltcG9ydCB7IHVzZUNvbm5lY3Rpdml0eSB9IGZyb20gXCIuL3VzZUNvbm5lY3Rpdml0eVwiO1xuaW1wb3J0IHsgdXNlQXNzaWduZWRFeHRlbnNpb25zIH0gZnJvbSBcIi4vdXNlQXNzaWduZWRFeHRlbnNpb25zXCI7XG5pbXBvcnQgeyB1c2VTdG9yZSB9IGZyb20gXCIuL3VzZVN0b3JlXCI7XG5pbXBvcnQgeyBmZWF0dXJlRmxhZ3NTdG9yZSB9IGZyb20gXCJAb3Blbm1ycy9lc20tZmVhdHVyZS1mbGFnc1wiO1xuXG4vKipcbiAqIEdldHMgdGhlIGFzc2lnbmVkIGV4dGVuc2lvbiBmb3IgYSBnaXZlbiBleHRlbnNpb24gc2xvdCBuYW1lLlxuICogQ29uc2lkZXJzIGlmIG9mZmxpbmUgb3Igb25saW5lLCBhbmQgd2hhdCBmZWF0dXJlIGZsYWdzIGFyZSBlbmFibGVkLlxuICogQHBhcmFtIHNsb3ROYW1lIFRoZSBuYW1lIG9mIHRoZSBzbG90IHRvIGdldCB0aGUgYXNzaWduZWQgZXh0ZW5zaW9ucyBmb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDb25uZWN0ZWRFeHRlbnNpb25zKFxuICBzbG90TmFtZTogc3RyaW5nXG4pOiBBcnJheTxDb25uZWN0ZWRFeHRlbnNpb24+IHtcbiAgY29uc3Qgb25saW5lID0gdXNlQ29ubmVjdGl2aXR5KCk7XG4gIGNvbnN0IGFzc2lnbmVkRXh0ZW5zaW9ucyA9IHVzZUFzc2lnbmVkRXh0ZW5zaW9ucyhzbG90TmFtZSk7XG4gIGNvbnN0IGZlYXR1cmVGbGFnU3RvcmUgPSB1c2VTdG9yZShmZWF0dXJlRmxhZ3NTdG9yZSk7XG5cbiAgY29uc3QgZW5hYmxlZEZlYXR1cmVGbGFncyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhmZWF0dXJlRmxhZ1N0b3JlLmZsYWdzKVxuICAgICAgLmZpbHRlcigoWywgeyBlbmFibGVkIH1dKSA9PiBlbmFibGVkKVxuICAgICAgLm1hcCgoW25hbWVdKSA9PiBuYW1lKTtcbiAgfSwgW2ZlYXR1cmVGbGFnU3RvcmUuZmxhZ3NdKTtcblxuICBjb25zdCBjb25uZWN0ZWRFeHRlbnNpb25zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGdldENvbm5lY3RlZEV4dGVuc2lvbnMoXG4gICAgICBhc3NpZ25lZEV4dGVuc2lvbnMsXG4gICAgICBvbmxpbmUsXG4gICAgICBlbmFibGVkRmVhdHVyZUZsYWdzXG4gICAgKTtcbiAgfSwgW2Fzc2lnbmVkRXh0ZW5zaW9ucywgb25saW5lLCBlbmFibGVkRmVhdHVyZUZsYWdzXSk7XG5cbiAgcmV0dXJuIGNvbm5lY3RlZEV4dGVuc2lvbnM7XG59XG4iXSwibmFtZXMiOlsidXNlTWVtbyIsImdldENvbm5lY3RlZEV4dGVuc2lvbnMiLCJ1c2VDb25uZWN0aXZpdHkiLCJ1c2VBc3NpZ25lZEV4dGVuc2lvbnMiLCJ1c2VTdG9yZSIsImZlYXR1cmVGbGFnc1N0b3JlIiwidXNlQ29ubmVjdGVkRXh0ZW5zaW9ucyIsInNsb3ROYW1lIiwib25saW5lIiwiYXNzaWduZWRFeHRlbnNpb25zIiwiZmVhdHVyZUZsYWdTdG9yZSIsImVuYWJsZWRGZWF0dXJlRmxhZ3MiLCJPYmplY3QiLCJlbnRyaWVzIiwiZmxhZ3MiLCJmaWx0ZXIiLCJlbmFibGVkIiwibWFwIiwibmFtZSIsImNvbm5lY3RlZEV4dGVuc2lvbnMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/src/useConnectedExtensions.ts\n");
7070
7070
 
7071
7071
  /***/ }),
7072
7072
 
@@ -7572,7 +7572,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
7572
7572
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7573
7573
 
7574
7574
  "use strict";
7575
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setupPaths: () => (/* binding */ setupPaths),\n/* harmony export */ setupUtils: () => (/* binding */ setupUtils)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_styleguide_dist_openmrs_esm_styleguide_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-styleguide/dist/openmrs-esm-styleguide.css */ \"../../framework/esm-styleguide/dist/openmrs-esm-styleguide.css\");\n/* harmony import */ var import_map_overrides__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! import-map-overrides */ \"../../../node_modules/import-map-overrides/dist/import-map-overrides.js\");\n/* harmony import */ var _openmrs_esm_framework__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-framework */ \"webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework\");\n/* harmony import */ var _openmrs_esm_framework__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_openmrs_esm_framework__WEBPACK_IMPORTED_MODULE_2__);\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction _ts_generator(thisArg, body) {\n var f, y, t, g, _ = {\n label: 0,\n sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n };\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, 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(_)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\nfunction setupPaths(config) {\n var error = false;\n if (!config.apiUrl) {\n console.error(\"initializeSpa() was called without supplying an apiUrl. This means that the application cannot communicate with the backend.\");\n error = true;\n }\n if (!config.spaPath) {\n console.error(\"initializeSpa() was called without supplying a spaPath. This means that the application cannot properly generate urls.\");\n error = true;\n }\n if (error) {\n throw new Error(\"One or more required properties in the basic configuration of the application was missing and the application cannot be rendered. Please see the browser console for details.\");\n }\n window.openmrsBase = config.apiUrl;\n window.spaBase = config.spaPath;\n window.spaEnv = config.env || \"production\";\n window.spaVersion = \"5.0.3-pre.896-20230713\";\n var spaBaseWithSlash = window.spaBase.endsWith(\"/\") ? window.spaBase : window.spaBase + \"/\";\n window.getOpenmrsSpaBase = function() {\n return spaBaseWithSlash;\n };\n}\nfunction setupUtils() {\n window.copyText = function(source) {\n var sel = window.getSelection();\n if (sel) {\n var r = document.createRange();\n r.selectNode(source);\n sel.removeAllRanges();\n sel.addRange(r);\n document.execCommand(\"copy\");\n sel.removeAllRanges();\n }\n };\n}\nfunction wireSpaPaths() {\n var baseElement = document.createElement(\"base\");\n var baseHref = window.getOpenmrsSpaBase();\n baseElement.href = baseHref;\n document.head.appendChild(baseElement);\n __webpack_require__.p = baseHref;\n}\n/**\n * Initializes the OpenMRS Frontend App Shell.\n * @param config The global configuration to apply.\n */ function initializeSpa(config) {\n setupUtils();\n setupPaths(config);\n wireSpaPaths();\n return Promise.resolve(__webpack_require__.I(\"default\")).then(/*#__PURE__*/ _async_to_generator(function() {\n var _config_configUrls, configUrls, _config_offline, offline, run;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n _config_configUrls = config.configUrls, configUrls = _config_configUrls === void 0 ? [] : _config_configUrls, _config_offline = config.offline, offline = _config_offline === void 0 ? true : _config_offline;\n return [\n 4,\n Promise.all(/*! import() */[__webpack_require__.e(\"vendors-node_modules_i18next-browser-languagedetector_dist_esm_i18nextBrowserLanguageDetector-215283\"), __webpack_require__.e(\"src_run_ts\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./run */ \"./src/run.ts\"))\n ];\n case 1:\n run = _state.sent().run;\n return [\n 2,\n run(configUrls, offline)\n ];\n }\n });\n }));\n}\nwindow.initializeSpa = initializeSpa;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvaW5kZXgudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFpRTtBQUNuQztBQUNFO0FBR3pCLFNBQVNBLFdBQVdDLE1BQWlCLEVBQUU7SUFDNUMsSUFBSUMsUUFBUSxLQUFLO0lBQ2pCLElBQUksQ0FBQ0QsT0FBT0UsTUFBTSxFQUFFO1FBQ2xCQyxRQUFRRixLQUFLLENBQ1g7UUFFRkEsUUFBUSxJQUFJO0lBQ2QsQ0FBQztJQUVELElBQUksQ0FBQ0QsT0FBT0ksT0FBTyxFQUFFO1FBQ25CRCxRQUFRRixLQUFLLENBQ1g7UUFFRkEsUUFBUSxJQUFJO0lBQ2QsQ0FBQztJQUVELElBQUlBLE9BQU87UUFDVCxNQUFNLElBQUlJLE1BQ1IsaUxBQ0E7SUFDSixDQUFDO0lBRURDLE9BQU9DLFdBQVcsR0FBR1AsT0FBT0UsTUFBTTtJQUNsQ0ksT0FBT0UsT0FBTyxHQUFHUixPQUFPSSxPQUFPO0lBQy9CRSxPQUFPRyxNQUFNLEdBQUdULE9BQU9VLEdBQUcsSUFBSTtJQUM5QkosT0FBT0ssVUFBVSxHQUFHQyx3QkFBeUI7SUFDN0MsSUFBTUUsbUJBQW1CUixPQUFPRSxPQUFPLENBQUNPLFFBQVEsQ0FBQyxPQUM3Q1QsT0FBT0UsT0FBTyxHQUNkRixPQUFPRSxPQUFPLEdBQUcsR0FBRztJQUN4QkYsT0FBT1UsaUJBQWlCLEdBQUc7ZUFBTUY7O0FBQ25DLENBQUM7QUFFTSxTQUFTRyxhQUFhO0lBQzNCWCxPQUFPWSxRQUFRLEdBQUcsU0FBQ0MsUUFBd0I7UUFDekMsSUFBTUMsTUFBTWQsT0FBT2UsWUFBWTtRQUUvQixJQUFJRCxLQUFLO1lBQ1AsSUFBTUUsSUFBSUMsU0FBU0MsV0FBVztZQUM5QkYsRUFBRUcsVUFBVSxDQUFDTjtZQUNiQyxJQUFJTSxlQUFlO1lBQ25CTixJQUFJTyxRQUFRLENBQUNMO1lBQ2JDLFNBQVNLLFdBQVcsQ0FBQztZQUNyQlIsSUFBSU0sZUFBZTtRQUNyQixDQUFDO0lBQ0g7QUFDRixDQUFDO0FBRUQsU0FBU0csZUFBZTtJQUN0QixJQUFNQyxjQUFjUCxTQUFTUSxhQUFhLENBQUM7SUFDM0MsSUFBTUMsV0FBVzFCLE9BQU9VLGlCQUFpQjtJQUN6Q2MsWUFBWUcsSUFBSSxHQUFHRDtJQUNuQlQsU0FBU1csSUFBSSxDQUFDQyxXQUFXLENBQUNMO0lBQzFCTSxxQkFBdUJBLEdBQUdKO0FBQzVCO0FBRUE7OztDQUdDLEdBQ0QsU0FBU0ssY0FBY3JDLE1BQWlCLEVBQUU7SUFDeENpQjtJQUNBbEIsV0FBV0M7SUFDWDZCO0lBQ0EsT0FBT1MsUUFBUUMsT0FBTyxDQUFDQyxxQkFBd0JBLENBQUMsWUFBWUMsSUFBSSxlQUFDLCtCQUFZO2dDQUNuRUMsNkJBQWlCQyxTQUNqQkM7Ozs7eUNBRG9DNUMsT0FBcEMwQyxZQUFBQSx3RkFBb0MxQyxPQUFuQjJDLFNBQUFBLHVDQUFVLElBQUk7b0JBQ3ZCOzt3QkFBTSxpUkFBZTs7O29CQUE3QkMsTUFBUSxjQUFSQTtvQkFDUjs7d0JBQU9BLElBQUlGLFlBQVlDOzs7O0lBQ3pCO0FBQ0Y7QUFFQXJDLE9BQU8rQixhQUFhLEdBQUdBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uL3NyYy9pbmRleC50cz9hZGEyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIkBvcGVubXJzL2VzbS1zdHlsZWd1aWRlL2Rpc3Qvb3Blbm1ycy1lc20tc3R5bGVndWlkZS5jc3NcIjtcbmltcG9ydCBcImltcG9ydC1tYXAtb3ZlcnJpZGVzXCI7XG5pbXBvcnQgXCJAb3Blbm1ycy9lc20tZnJhbWV3b3JrXCI7XG5pbXBvcnQgdHlwZSB7IFNwYUNvbmZpZyB9IGZyb20gXCJAb3Blbm1ycy9lc20tZnJhbWV3b3JrL3NyYy9pbnRlcm5hbFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBQYXRocyhjb25maWc6IFNwYUNvbmZpZykge1xuICBsZXQgZXJyb3IgPSBmYWxzZTtcbiAgaWYgKCFjb25maWcuYXBpVXJsKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgIFwiaW5pdGlhbGl6ZVNwYSgpIHdhcyBjYWxsZWQgd2l0aG91dCBzdXBwbHlpbmcgYW4gYXBpVXJsLiBUaGlzIG1lYW5zIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGNhbm5vdCBjb21tdW5pY2F0ZSB3aXRoIHRoZSBiYWNrZW5kLlwiXG4gICAgKTtcbiAgICBlcnJvciA9IHRydWU7XG4gIH1cblxuICBpZiAoIWNvbmZpZy5zcGFQYXRoKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgIFwiaW5pdGlhbGl6ZVNwYSgpIHdhcyBjYWxsZWQgd2l0aG91dCBzdXBwbHlpbmcgYSBzcGFQYXRoLiBUaGlzIG1lYW5zIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGNhbm5vdCBwcm9wZXJseSBnZW5lcmF0ZSB1cmxzLlwiXG4gICAgKTtcbiAgICBlcnJvciA9IHRydWU7XG4gIH1cblxuICBpZiAoZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIk9uZSBvciBtb3JlIHJlcXVpcmVkIHByb3BlcnRpZXMgaW4gdGhlIGJhc2ljIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uIHdhcyBtaXNzaW5nIGFuZCB0aGUgYXBwbGljYXRpb24gY2Fubm90IGJlIHJlbmRlcmVkLiBQbGVhc2Ugc2VlIHRoZSBicm93c2VyIGNvbnNvbGUgZm9yIGRldGFpbHMuXCJcbiAgICApO1xuICB9XG5cbiAgd2luZG93Lm9wZW5tcnNCYXNlID0gY29uZmlnLmFwaVVybDtcbiAgd2luZG93LnNwYUJhc2UgPSBjb25maWcuc3BhUGF0aDtcbiAgd2luZG93LnNwYUVudiA9IGNvbmZpZy5lbnYgfHwgXCJwcm9kdWN0aW9uXCI7XG4gIHdpbmRvdy5zcGFWZXJzaW9uID0gcHJvY2Vzcy5lbnYuQlVJTERfVkVSU0lPTjtcbiAgY29uc3Qgc3BhQmFzZVdpdGhTbGFzaCA9IHdpbmRvdy5zcGFCYXNlLmVuZHNXaXRoKFwiL1wiKVxuICAgID8gd2luZG93LnNwYUJhc2VcbiAgICA6IHdpbmRvdy5zcGFCYXNlICsgXCIvXCI7XG4gIHdpbmRvdy5nZXRPcGVubXJzU3BhQmFzZSA9ICgpID0+IHNwYUJhc2VXaXRoU2xhc2g7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cFV0aWxzKCkge1xuICB3aW5kb3cuY29weVRleHQgPSAoc291cmNlOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcblxuICAgIGlmIChzZWwpIHtcbiAgICAgIGNvbnN0IHIgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgci5zZWxlY3ROb2RlKHNvdXJjZSk7XG4gICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICBzZWwuYWRkUmFuZ2Uocik7XG4gICAgICBkb2N1bWVudC5leGVjQ29tbWFuZChcImNvcHlcIik7XG4gICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiB3aXJlU3BhUGF0aHMoKSB7XG4gIGNvbnN0IGJhc2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImJhc2VcIik7XG4gIGNvbnN0IGJhc2VIcmVmID0gd2luZG93LmdldE9wZW5tcnNTcGFCYXNlKCk7XG4gIGJhc2VFbGVtZW50LmhyZWYgPSBiYXNlSHJlZjtcbiAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChiYXNlRWxlbWVudCk7XG4gIF9fd2VicGFja19wdWJsaWNfcGF0aF9fID0gYmFzZUhyZWY7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIE9wZW5NUlMgRnJvbnRlbmQgQXBwIFNoZWxsLlxuICogQHBhcmFtIGNvbmZpZyBUaGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gdG8gYXBwbHkuXG4gKi9cbmZ1bmN0aW9uIGluaXRpYWxpemVTcGEoY29uZmlnOiBTcGFDb25maWcpIHtcbiAgc2V0dXBVdGlscygpO1xuICBzZXR1cFBhdGhzKGNvbmZpZyk7XG4gIHdpcmVTcGFQYXRocygpO1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKF9fd2VicGFja19pbml0X3NoYXJpbmdfXyhcImRlZmF1bHRcIikpLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29uZmlnVXJscyA9IFtdLCBvZmZsaW5lID0gdHJ1ZSB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHsgcnVuIH0gPSBhd2FpdCBpbXBvcnQoXCIuL3J1blwiKTtcbiAgICByZXR1cm4gcnVuKGNvbmZpZ1VybHMsIG9mZmxpbmUpO1xuICB9KTtcbn1cblxud2luZG93LmluaXRpYWxpemVTcGEgPSBpbml0aWFsaXplU3BhO1xuIl0sIm5hbWVzIjpbInNldHVwUGF0aHMiLCJjb25maWciLCJlcnJvciIsImFwaVVybCIsImNvbnNvbGUiLCJzcGFQYXRoIiwiRXJyb3IiLCJ3aW5kb3ciLCJvcGVubXJzQmFzZSIsInNwYUJhc2UiLCJzcGFFbnYiLCJlbnYiLCJzcGFWZXJzaW9uIiwicHJvY2VzcyIsIkJVSUxEX1ZFUlNJT04iLCJzcGFCYXNlV2l0aFNsYXNoIiwiZW5kc1dpdGgiLCJnZXRPcGVubXJzU3BhQmFzZSIsInNldHVwVXRpbHMiLCJjb3B5VGV4dCIsInNvdXJjZSIsInNlbCIsImdldFNlbGVjdGlvbiIsInIiLCJkb2N1bWVudCIsImNyZWF0ZVJhbmdlIiwic2VsZWN0Tm9kZSIsInJlbW92ZUFsbFJhbmdlcyIsImFkZFJhbmdlIiwiZXhlY0NvbW1hbmQiLCJ3aXJlU3BhUGF0aHMiLCJiYXNlRWxlbWVudCIsImNyZWF0ZUVsZW1lbnQiLCJiYXNlSHJlZiIsImhyZWYiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJfX3dlYnBhY2tfcHVibGljX3BhdGhfXyIsImluaXRpYWxpemVTcGEiLCJQcm9taXNlIiwicmVzb2x2ZSIsIl9fd2VicGFja19pbml0X3NoYXJpbmdfXyIsInRoZW4iLCJjb25maWdVcmxzIiwib2ZmbGluZSIsInJ1biJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/index.ts\n");
7575
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setupPaths: () => (/* binding */ setupPaths),\n/* harmony export */ setupUtils: () => (/* binding */ setupUtils)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_styleguide_dist_openmrs_esm_styleguide_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-styleguide/dist/openmrs-esm-styleguide.css */ \"../../framework/esm-styleguide/dist/openmrs-esm-styleguide.css\");\n/* harmony import */ var import_map_overrides__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! import-map-overrides */ \"../../../node_modules/import-map-overrides/dist/import-map-overrides.js\");\n/* harmony import */ var _openmrs_esm_framework__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @openmrs/esm-framework */ \"webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework\");\n/* harmony import */ var _openmrs_esm_framework__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_openmrs_esm_framework__WEBPACK_IMPORTED_MODULE_2__);\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction _ts_generator(thisArg, body) {\n var f, y, t, g, _ = {\n label: 0,\n sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n };\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, 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(_)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\nfunction setupPaths(config) {\n var error = false;\n if (!config.apiUrl) {\n console.error(\"initializeSpa() was called without supplying an apiUrl. This means that the application cannot communicate with the backend.\");\n error = true;\n }\n if (!config.spaPath) {\n console.error(\"initializeSpa() was called without supplying a spaPath. This means that the application cannot properly generate urls.\");\n error = true;\n }\n if (error) {\n throw new Error(\"One or more required properties in the basic configuration of the application was missing and the application cannot be rendered. Please see the browser console for details.\");\n }\n window.openmrsBase = config.apiUrl;\n window.spaBase = config.spaPath;\n window.spaEnv = config.env || \"production\";\n window.spaVersion = \"5.0.3-pre.903-20230718\";\n var spaBaseWithSlash = window.spaBase.endsWith(\"/\") ? window.spaBase : window.spaBase + \"/\";\n window.getOpenmrsSpaBase = function() {\n return spaBaseWithSlash;\n };\n}\nfunction setupUtils() {\n window.copyText = function(source) {\n var sel = window.getSelection();\n if (sel) {\n var r = document.createRange();\n r.selectNode(source);\n sel.removeAllRanges();\n sel.addRange(r);\n document.execCommand(\"copy\");\n sel.removeAllRanges();\n }\n };\n}\nfunction wireSpaPaths() {\n var baseElement = document.createElement(\"base\");\n var baseHref = window.getOpenmrsSpaBase();\n baseElement.href = baseHref;\n document.head.appendChild(baseElement);\n __webpack_require__.p = baseHref;\n}\n/**\n * Initializes the OpenMRS Frontend App Shell.\n * @param config The global configuration to apply.\n */ function initializeSpa(config) {\n setupUtils();\n setupPaths(config);\n wireSpaPaths();\n return Promise.resolve(__webpack_require__.I(\"default\")).then(/*#__PURE__*/ _async_to_generator(function() {\n var _config_configUrls, configUrls, _config_offline, offline, run;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n _config_configUrls = config.configUrls, configUrls = _config_configUrls === void 0 ? [] : _config_configUrls, _config_offline = config.offline, offline = _config_offline === void 0 ? true : _config_offline;\n return [\n 4,\n Promise.all(/*! import() */[__webpack_require__.e(\"vendors-node_modules_i18next-browser-languagedetector_dist_esm_i18nextBrowserLanguageDetector-215283\"), __webpack_require__.e(\"src_run_ts\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./run */ \"./src/run.ts\"))\n ];\n case 1:\n run = _state.sent().run;\n return [\n 2,\n run(configUrls, offline)\n ];\n }\n });\n }));\n}\nwindow.initializeSpa = initializeSpa;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvaW5kZXgudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFpRTtBQUNuQztBQUNFO0FBR3pCLFNBQVNBLFdBQVdDLE1BQWlCLEVBQUU7SUFDNUMsSUFBSUMsUUFBUSxLQUFLO0lBQ2pCLElBQUksQ0FBQ0QsT0FBT0UsTUFBTSxFQUFFO1FBQ2xCQyxRQUFRRixLQUFLLENBQ1g7UUFFRkEsUUFBUSxJQUFJO0lBQ2QsQ0FBQztJQUVELElBQUksQ0FBQ0QsT0FBT0ksT0FBTyxFQUFFO1FBQ25CRCxRQUFRRixLQUFLLENBQ1g7UUFFRkEsUUFBUSxJQUFJO0lBQ2QsQ0FBQztJQUVELElBQUlBLE9BQU87UUFDVCxNQUFNLElBQUlJLE1BQ1IsaUxBQ0E7SUFDSixDQUFDO0lBRURDLE9BQU9DLFdBQVcsR0FBR1AsT0FBT0UsTUFBTTtJQUNsQ0ksT0FBT0UsT0FBTyxHQUFHUixPQUFPSSxPQUFPO0lBQy9CRSxPQUFPRyxNQUFNLEdBQUdULE9BQU9VLEdBQUcsSUFBSTtJQUM5QkosT0FBT0ssVUFBVSxHQUFHQyx3QkFBeUI7SUFDN0MsSUFBTUUsbUJBQW1CUixPQUFPRSxPQUFPLENBQUNPLFFBQVEsQ0FBQyxPQUM3Q1QsT0FBT0UsT0FBTyxHQUNkRixPQUFPRSxPQUFPLEdBQUcsR0FBRztJQUN4QkYsT0FBT1UsaUJBQWlCLEdBQUc7ZUFBTUY7O0FBQ25DLENBQUM7QUFFTSxTQUFTRyxhQUFhO0lBQzNCWCxPQUFPWSxRQUFRLEdBQUcsU0FBQ0MsUUFBd0I7UUFDekMsSUFBTUMsTUFBTWQsT0FBT2UsWUFBWTtRQUUvQixJQUFJRCxLQUFLO1lBQ1AsSUFBTUUsSUFBSUMsU0FBU0MsV0FBVztZQUM5QkYsRUFBRUcsVUFBVSxDQUFDTjtZQUNiQyxJQUFJTSxlQUFlO1lBQ25CTixJQUFJTyxRQUFRLENBQUNMO1lBQ2JDLFNBQVNLLFdBQVcsQ0FBQztZQUNyQlIsSUFBSU0sZUFBZTtRQUNyQixDQUFDO0lBQ0g7QUFDRixDQUFDO0FBRUQsU0FBU0csZUFBZTtJQUN0QixJQUFNQyxjQUFjUCxTQUFTUSxhQUFhLENBQUM7SUFDM0MsSUFBTUMsV0FBVzFCLE9BQU9VLGlCQUFpQjtJQUN6Q2MsWUFBWUcsSUFBSSxHQUFHRDtJQUNuQlQsU0FBU1csSUFBSSxDQUFDQyxXQUFXLENBQUNMO0lBQzFCTSxxQkFBdUJBLEdBQUdKO0FBQzVCO0FBRUE7OztDQUdDLEdBQ0QsU0FBU0ssY0FBY3JDLE1BQWlCLEVBQUU7SUFDeENpQjtJQUNBbEIsV0FBV0M7SUFDWDZCO0lBQ0EsT0FBT1MsUUFBUUMsT0FBTyxDQUFDQyxxQkFBd0JBLENBQUMsWUFBWUMsSUFBSSxlQUFDLCtCQUFZO2dDQUNuRUMsNkJBQWlCQyxTQUNqQkM7Ozs7eUNBRG9DNUMsT0FBcEMwQyxZQUFBQSx3RkFBb0MxQyxPQUFuQjJDLFNBQUFBLHVDQUFVLElBQUk7b0JBQ3ZCOzt3QkFBTSxpUkFBZTs7O29CQUE3QkMsTUFBUSxjQUFSQTtvQkFDUjs7d0JBQU9BLElBQUlGLFlBQVlDOzs7O0lBQ3pCO0FBQ0Y7QUFFQXJDLE9BQU8rQixhQUFhLEdBQUdBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uL3NyYy9pbmRleC50cz9hZGEyIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIkBvcGVubXJzL2VzbS1zdHlsZWd1aWRlL2Rpc3Qvb3Blbm1ycy1lc20tc3R5bGVndWlkZS5jc3NcIjtcbmltcG9ydCBcImltcG9ydC1tYXAtb3ZlcnJpZGVzXCI7XG5pbXBvcnQgXCJAb3Blbm1ycy9lc20tZnJhbWV3b3JrXCI7XG5pbXBvcnQgdHlwZSB7IFNwYUNvbmZpZyB9IGZyb20gXCJAb3Blbm1ycy9lc20tZnJhbWV3b3JrL3NyYy9pbnRlcm5hbFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBQYXRocyhjb25maWc6IFNwYUNvbmZpZykge1xuICBsZXQgZXJyb3IgPSBmYWxzZTtcbiAgaWYgKCFjb25maWcuYXBpVXJsKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgIFwiaW5pdGlhbGl6ZVNwYSgpIHdhcyBjYWxsZWQgd2l0aG91dCBzdXBwbHlpbmcgYW4gYXBpVXJsLiBUaGlzIG1lYW5zIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGNhbm5vdCBjb21tdW5pY2F0ZSB3aXRoIHRoZSBiYWNrZW5kLlwiXG4gICAgKTtcbiAgICBlcnJvciA9IHRydWU7XG4gIH1cblxuICBpZiAoIWNvbmZpZy5zcGFQYXRoKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgIFwiaW5pdGlhbGl6ZVNwYSgpIHdhcyBjYWxsZWQgd2l0aG91dCBzdXBwbHlpbmcgYSBzcGFQYXRoLiBUaGlzIG1lYW5zIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGNhbm5vdCBwcm9wZXJseSBnZW5lcmF0ZSB1cmxzLlwiXG4gICAgKTtcbiAgICBlcnJvciA9IHRydWU7XG4gIH1cblxuICBpZiAoZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIk9uZSBvciBtb3JlIHJlcXVpcmVkIHByb3BlcnRpZXMgaW4gdGhlIGJhc2ljIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uIHdhcyBtaXNzaW5nIGFuZCB0aGUgYXBwbGljYXRpb24gY2Fubm90IGJlIHJlbmRlcmVkLiBQbGVhc2Ugc2VlIHRoZSBicm93c2VyIGNvbnNvbGUgZm9yIGRldGFpbHMuXCJcbiAgICApO1xuICB9XG5cbiAgd2luZG93Lm9wZW5tcnNCYXNlID0gY29uZmlnLmFwaVVybDtcbiAgd2luZG93LnNwYUJhc2UgPSBjb25maWcuc3BhUGF0aDtcbiAgd2luZG93LnNwYUVudiA9IGNvbmZpZy5lbnYgfHwgXCJwcm9kdWN0aW9uXCI7XG4gIHdpbmRvdy5zcGFWZXJzaW9uID0gcHJvY2Vzcy5lbnYuQlVJTERfVkVSU0lPTjtcbiAgY29uc3Qgc3BhQmFzZVdpdGhTbGFzaCA9IHdpbmRvdy5zcGFCYXNlLmVuZHNXaXRoKFwiL1wiKVxuICAgID8gd2luZG93LnNwYUJhc2VcbiAgICA6IHdpbmRvdy5zcGFCYXNlICsgXCIvXCI7XG4gIHdpbmRvdy5nZXRPcGVubXJzU3BhQmFzZSA9ICgpID0+IHNwYUJhc2VXaXRoU2xhc2g7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cFV0aWxzKCkge1xuICB3aW5kb3cuY29weVRleHQgPSAoc291cmNlOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcblxuICAgIGlmIChzZWwpIHtcbiAgICAgIGNvbnN0IHIgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgci5zZWxlY3ROb2RlKHNvdXJjZSk7XG4gICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICBzZWwuYWRkUmFuZ2Uocik7XG4gICAgICBkb2N1bWVudC5leGVjQ29tbWFuZChcImNvcHlcIik7XG4gICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiB3aXJlU3BhUGF0aHMoKSB7XG4gIGNvbnN0IGJhc2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImJhc2VcIik7XG4gIGNvbnN0IGJhc2VIcmVmID0gd2luZG93LmdldE9wZW5tcnNTcGFCYXNlKCk7XG4gIGJhc2VFbGVtZW50LmhyZWYgPSBiYXNlSHJlZjtcbiAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChiYXNlRWxlbWVudCk7XG4gIF9fd2VicGFja19wdWJsaWNfcGF0aF9fID0gYmFzZUhyZWY7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIE9wZW5NUlMgRnJvbnRlbmQgQXBwIFNoZWxsLlxuICogQHBhcmFtIGNvbmZpZyBUaGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gdG8gYXBwbHkuXG4gKi9cbmZ1bmN0aW9uIGluaXRpYWxpemVTcGEoY29uZmlnOiBTcGFDb25maWcpIHtcbiAgc2V0dXBVdGlscygpO1xuICBzZXR1cFBhdGhzKGNvbmZpZyk7XG4gIHdpcmVTcGFQYXRocygpO1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKF9fd2VicGFja19pbml0X3NoYXJpbmdfXyhcImRlZmF1bHRcIikpLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29uZmlnVXJscyA9IFtdLCBvZmZsaW5lID0gdHJ1ZSB9ID0gY29uZmlnO1xuICAgIGNvbnN0IHsgcnVuIH0gPSBhd2FpdCBpbXBvcnQoXCIuL3J1blwiKTtcbiAgICByZXR1cm4gcnVuKGNvbmZpZ1VybHMsIG9mZmxpbmUpO1xuICB9KTtcbn1cblxud2luZG93LmluaXRpYWxpemVTcGEgPSBpbml0aWFsaXplU3BhO1xuIl0sIm5hbWVzIjpbInNldHVwUGF0aHMiLCJjb25maWciLCJlcnJvciIsImFwaVVybCIsImNvbnNvbGUiLCJzcGFQYXRoIiwiRXJyb3IiLCJ3aW5kb3ciLCJvcGVubXJzQmFzZSIsInNwYUJhc2UiLCJzcGFFbnYiLCJlbnYiLCJzcGFWZXJzaW9uIiwicHJvY2VzcyIsIkJVSUxEX1ZFUlNJT04iLCJzcGFCYXNlV2l0aFNsYXNoIiwiZW5kc1dpdGgiLCJnZXRPcGVubXJzU3BhQmFzZSIsInNldHVwVXRpbHMiLCJjb3B5VGV4dCIsInNvdXJjZSIsInNlbCIsImdldFNlbGVjdGlvbiIsInIiLCJkb2N1bWVudCIsImNyZWF0ZVJhbmdlIiwic2VsZWN0Tm9kZSIsInJlbW92ZUFsbFJhbmdlcyIsImFkZFJhbmdlIiwiZXhlY0NvbW1hbmQiLCJ3aXJlU3BhUGF0aHMiLCJiYXNlRWxlbWVudCIsImNyZWF0ZUVsZW1lbnQiLCJiYXNlSHJlZiIsImhyZWYiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJfX3dlYnBhY2tfcHVibGljX3BhdGhfXyIsImluaXRpYWxpemVTcGEiLCJQcm9taXNlIiwicmVzb2x2ZSIsIl9fd2VicGFja19pbml0X3NoYXJpbmdfXyIsInRoZW4iLCJjb25maWdVcmxzIiwib2ZmbGluZSIsInJ1biJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/index.ts\n");
7576
7576
 
7577
7577
  /***/ }),
7578
7578
 
@@ -11251,7 +11251,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
11251
11251
  /******/ // This function allow to reference async chunks
11252
11252
  /******/ __webpack_require__.u = (chunkId) => {
11253
11253
  /******/ // return url for filenames based on template
11254
- /******/ return "" + {"vendors-node_modules_i18next-browser-languagedetector_dist_esm_i18nextBrowserLanguageDetector-215283":"c342c7c5bc2b4691","src_run_ts":"e8ede5e69d47cce1","src_ui_breadcrumbs_tsx":"5d0f5687619fbb31"}[chunkId] + ".js";
11254
+ /******/ return "" + {"vendors-node_modules_i18next-browser-languagedetector_dist_esm_i18nextBrowserLanguageDetector-215283":"c342c7c5bc2b4691","src_run_ts":"baaffa62af0ed155","src_ui_breadcrumbs_tsx":"5d0f5687619fbb31"}[chunkId] + ".js";
11255
11255
  /******/ };
11256
11256
  /******/ })();
11257
11257
  /******/
@@ -11379,8 +11379,8 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
11379
11379
  /******/ var promises = [];
11380
11380
  /******/ switch(name) {
11381
11381
  /******/ case "default": {
11382
- /******/ register("@openmrs/esm-framework/src/internal", "5.0.3-pre.896", () => (() => (__webpack_require__(/*! ../../framework/esm-framework/src/internal.ts */ "../../framework/esm-framework/src/internal.ts"))), 1);
11383
- /******/ register("@openmrs/esm-framework", "5.0.3-pre.896", () => (() => (__webpack_require__(/*! ../../framework/esm-framework/src/index.ts */ "../../framework/esm-framework/src/index.ts"))), 1);
11382
+ /******/ register("@openmrs/esm-framework/src/internal", "5.0.3-pre.903", () => (() => (__webpack_require__(/*! ../../framework/esm-framework/src/internal.ts */ "../../framework/esm-framework/src/internal.ts"))), 1);
11383
+ /******/ register("@openmrs/esm-framework", "5.0.3-pre.903", () => (() => (__webpack_require__(/*! ../../framework/esm-framework/src/index.ts */ "../../framework/esm-framework/src/index.ts"))), 1);
11384
11384
  /******/ register("dayjs", "1.11.5", () => (() => (__webpack_require__(/*! ../../../node_modules/dayjs/dayjs.min.js */ "../../../node_modules/dayjs/dayjs.min.js"))), 1);
11385
11385
  /******/ register("i18next", "19.9.2", () => (() => (__webpack_require__(/*! ../../../node_modules/i18next/dist/esm/i18next.js */ "../../../node_modules/i18next/dist/esm/i18next.js"))), 1);
11386
11386
  /******/ register("react-dom", "18.2.0", () => (() => (__webpack_require__(/*! ../../../node_modules/react-dom/index.js */ "../../../node_modules/react-dom/index.js"))), 1);
@@ -11540,7 +11540,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
11540
11540
  /******/ var installedModules = {};
11541
11541
  /******/ var moduleToHandlerMapping = {
11542
11542
  /******/ "webpack/sharing/consume/default/@openmrs/esm-framework/src/internal/@openmrs/esm-framework/src/internal": () => (loadSingletonFallback("default", "@openmrs/esm-framework/src/internal", () => (() => (__webpack_require__(/*! @openmrs/esm-framework/src/internal */ "../../framework/esm-framework/src/internal.ts"))))),
11543
- /******/ "webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework": () => (loadSingletonVersionCheckFallback("default", "@openmrs/esm-framework", [7,5,0,3,,"pre",896], () => (() => (__webpack_require__(/*! @openmrs/esm-framework */ "../../framework/esm-framework/src/index.ts"))))),
11543
+ /******/ "webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework": () => (loadSingletonVersionCheckFallback("default", "@openmrs/esm-framework", [7,5,0,3,,"pre",903], () => (() => (__webpack_require__(/*! @openmrs/esm-framework */ "../../framework/esm-framework/src/index.ts"))))),
11544
11544
  /******/ "webpack/sharing/consume/default/rxjs/rxjs": () => (loadSingletonVersionCheckFallback("default", "rxjs", [1,6,5,3], () => (() => (__webpack_require__(/*! rxjs */ "../../../node_modules/rxjs/_esm5/index.js"))))),
11545
11545
  /******/ "webpack/sharing/consume/default/single-spa/single-spa": () => (loadSingletonVersionCheckFallback("default", "single-spa", [1,5,9,2], () => (() => (__webpack_require__(/*! single-spa */ "../../../node_modules/single-spa/lib/esm/single-spa.min.js"))))),
11546
11546
  /******/ "webpack/sharing/consume/default/react/react": () => (loadSingletonVersionCheckFallback("default", "react", [1,18,1,0], () => (() => (__webpack_require__(/*! react */ "../../../node_modules/react/index.js"))))),