@openmrs/esm-app-shell 4.3.2-pre.678 → 4.3.2-pre.681
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +106 -101
- package/dist/8f8d23f5e4ad92b8.js +1 -0
- package/dist/{84759747c5ec9b83.js.map → 8f8d23f5e4ad92b8.js.map} +1 -1
- package/dist/index.html +1 -1
- package/dist/{openmrs.4d216ca793e8e302.js → openmrs.7f67a01dda216963.js} +2 -2
- package/dist/{openmrs.4d216ca793e8e302.js.map → openmrs.7f67a01dda216963.js.map} +1 -1
- package/dist/service-worker.js +1 -1
- package/lib/esm-devtools-app/68.js +1 -0
- package/lib/esm-devtools-app/68.js.map +1 -0
- package/lib/esm-devtools-app/735.js +2 -0
- package/lib/esm-devtools-app/735.js.LICENSE.txt +9 -0
- package/lib/esm-devtools-app/735.js.map +1 -0
- package/lib/esm-devtools-app/889.js +2 -0
- package/lib/esm-devtools-app/889.js.LICENSE.txt +3 -0
- package/lib/esm-devtools-app/889.js.map +1 -0
- package/lib/esm-devtools-app/988.js +1 -0
- package/lib/esm-devtools-app/988.js.map +1 -0
- package/lib/esm-devtools-app/main.js +1 -0
- package/lib/esm-devtools-app/main.js.map +1 -0
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.js +1 -0
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.js.buildmanifest.json +176 -0
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.js.map +1 -0
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.old +1 -0
- package/lib/esm-implementer-tools-app/102.js +1 -0
- package/lib/esm-implementer-tools-app/102.js.map +1 -0
- package/lib/esm-implementer-tools-app/139.js +2 -0
- package/lib/esm-implementer-tools-app/139.js.LICENSE.txt +9 -0
- package/lib/esm-implementer-tools-app/139.js.map +1 -0
- package/lib/esm-implementer-tools-app/242.js +1 -0
- package/lib/esm-implementer-tools-app/242.js.map +1 -0
- package/lib/esm-implementer-tools-app/246.js +1 -0
- package/lib/esm-implementer-tools-app/246.js.map +1 -0
- package/lib/esm-implementer-tools-app/305.js +1 -0
- package/lib/esm-implementer-tools-app/305.js.map +1 -0
- package/lib/esm-implementer-tools-app/319.js +1 -0
- package/lib/esm-implementer-tools-app/369.js +1 -0
- package/lib/esm-implementer-tools-app/369.js.map +1 -0
- package/lib/esm-implementer-tools-app/426.js +1 -0
- package/lib/esm-implementer-tools-app/426.js.map +1 -0
- package/lib/esm-implementer-tools-app/466.js +1 -0
- package/lib/esm-implementer-tools-app/466.js.map +1 -0
- package/lib/esm-implementer-tools-app/574.js +1 -0
- package/lib/esm-implementer-tools-app/587.js +1 -0
- package/lib/esm-implementer-tools-app/587.js.map +1 -0
- package/lib/esm-implementer-tools-app/600.js +2 -0
- package/lib/esm-implementer-tools-app/600.js.LICENSE.txt +14 -0
- package/lib/esm-implementer-tools-app/600.js.map +1 -0
- package/lib/esm-implementer-tools-app/620.js +2 -0
- package/lib/esm-implementer-tools-app/620.js.LICENSE.txt +38 -0
- package/lib/esm-implementer-tools-app/620.js.map +1 -0
- package/lib/esm-implementer-tools-app/696.js +1 -0
- package/lib/esm-implementer-tools-app/696.js.map +1 -0
- package/lib/esm-implementer-tools-app/735.js +2 -0
- package/lib/esm-implementer-tools-app/735.js.LICENSE.txt +9 -0
- package/lib/esm-implementer-tools-app/735.js.map +1 -0
- package/lib/esm-implementer-tools-app/788.js +2 -0
- package/lib/esm-implementer-tools-app/788.js.LICENSE.txt +19 -0
- package/lib/esm-implementer-tools-app/788.js.map +1 -0
- package/lib/esm-implementer-tools-app/807.js +1 -0
- package/lib/esm-implementer-tools-app/807.js.map +1 -0
- package/lib/esm-implementer-tools-app/889.js +2 -0
- package/lib/esm-implementer-tools-app/889.js.LICENSE.txt +3 -0
- package/lib/esm-implementer-tools-app/889.js.map +1 -0
- package/lib/esm-implementer-tools-app/895.js +1 -0
- package/lib/esm-implementer-tools-app/895.js.map +1 -0
- package/lib/esm-implementer-tools-app/main.js +1 -0
- package/lib/esm-implementer-tools-app/main.js.map +1 -0
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js +1 -0
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js.buildmanifest.json +597 -0
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js.map +1 -0
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.old +1 -0
- package/lib/esm-login-app/236.js +1 -0
- package/lib/esm-login-app/240.js +1 -0
- package/lib/esm-login-app/261.js +1 -0
- package/lib/esm-login-app/261.js.map +1 -0
- package/lib/esm-login-app/263.js +1 -0
- package/lib/esm-login-app/263.js.map +1 -0
- package/lib/esm-login-app/272.js +1 -0
- package/lib/esm-login-app/319.js +1 -0
- package/lib/esm-login-app/336.js +1 -0
- package/lib/esm-login-app/337.js +1 -0
- package/lib/esm-login-app/337.js.map +1 -0
- package/lib/esm-login-app/390.js +1 -0
- package/lib/esm-login-app/390.js.map +1 -0
- package/lib/esm-login-app/438.js +2 -0
- package/lib/esm-login-app/438.js.LICENSE.txt +9 -0
- package/lib/esm-login-app/438.js.map +1 -0
- package/lib/esm-login-app/539.js +1 -0
- package/lib/esm-login-app/574.js +1 -0
- package/lib/esm-login-app/610.js +1 -0
- package/lib/esm-login-app/610.js.map +1 -0
- package/lib/esm-login-app/611.js +1 -0
- package/lib/esm-login-app/611.js.map +1 -0
- package/lib/esm-login-app/63.js +2 -0
- package/lib/esm-login-app/63.js.LICENSE.txt +32 -0
- package/lib/esm-login-app/63.js.map +1 -0
- package/lib/esm-login-app/642.js +1 -0
- package/lib/esm-login-app/642.js.map +1 -0
- package/lib/esm-login-app/644.js +1 -0
- package/lib/esm-login-app/673.js +1 -0
- package/lib/esm-login-app/735.js +2 -0
- package/lib/esm-login-app/735.js.LICENSE.txt +9 -0
- package/lib/esm-login-app/735.js.map +1 -0
- package/lib/esm-login-app/737.js +2 -0
- package/lib/esm-login-app/737.js.LICENSE.txt +5 -0
- package/lib/esm-login-app/737.js.map +1 -0
- package/lib/esm-login-app/757.js +1 -0
- package/lib/esm-login-app/788.js +2 -0
- package/lib/esm-login-app/788.js.LICENSE.txt +19 -0
- package/lib/esm-login-app/788.js.map +1 -0
- package/lib/esm-login-app/829.js +1 -0
- package/lib/esm-login-app/829.js.map +1 -0
- package/lib/esm-login-app/889.js +2 -0
- package/lib/esm-login-app/889.js.LICENSE.txt +3 -0
- package/lib/esm-login-app/889.js.map +1 -0
- package/lib/esm-login-app/main.js +1 -0
- package/lib/esm-login-app/main.js.map +1 -0
- package/lib/esm-login-app/openmrs-esm-login-app.js +1 -0
- package/lib/esm-login-app/openmrs-esm-login-app.js.buildmanifest.json +680 -0
- package/lib/esm-login-app/openmrs-esm-login-app.js.map +1 -0
- package/lib/esm-login-app/openmrs-esm-login-app.old +1 -0
- package/lib/esm-offline-tools-app/1584c81d564cacde.svg +8 -0
- package/lib/esm-offline-tools-app/206.js +1 -0
- package/lib/esm-offline-tools-app/206.js.map +1 -0
- package/lib/esm-offline-tools-app/263.js +1 -0
- package/lib/esm-offline-tools-app/263.js.map +1 -0
- package/lib/esm-offline-tools-app/264.js +1 -0
- package/lib/esm-offline-tools-app/264.js.map +1 -0
- package/lib/esm-offline-tools-app/281.js +1 -0
- package/lib/esm-offline-tools-app/281.js.map +1 -0
- package/lib/esm-offline-tools-app/290.js +1 -0
- package/lib/esm-offline-tools-app/290.js.map +1 -0
- package/lib/esm-offline-tools-app/316.js +1 -0
- package/lib/esm-offline-tools-app/316.js.map +1 -0
- package/lib/esm-offline-tools-app/391.js +1 -0
- package/lib/esm-offline-tools-app/391.js.map +1 -0
- package/lib/esm-offline-tools-app/412.js +1 -0
- package/lib/esm-offline-tools-app/412.js.map +1 -0
- package/lib/esm-offline-tools-app/47.js +1 -0
- package/lib/esm-offline-tools-app/47.js.map +1 -0
- package/lib/esm-offline-tools-app/501.js +1 -0
- package/lib/esm-offline-tools-app/501.js.map +1 -0
- package/lib/esm-offline-tools-app/526.js +1 -0
- package/lib/esm-offline-tools-app/526.js.map +1 -0
- package/lib/esm-offline-tools-app/538.js +1 -0
- package/lib/esm-offline-tools-app/538.js.map +1 -0
- package/lib/esm-offline-tools-app/541.js +1 -0
- package/lib/esm-offline-tools-app/541.js.map +1 -0
- package/lib/esm-offline-tools-app/574.js +1 -0
- package/lib/esm-offline-tools-app/594.js +1 -0
- package/lib/esm-offline-tools-app/594.js.map +1 -0
- package/lib/esm-offline-tools-app/63.js +2 -0
- package/lib/esm-offline-tools-app/63.js.LICENSE.txt +32 -0
- package/lib/esm-offline-tools-app/63.js.map +1 -0
- package/lib/esm-offline-tools-app/697.js +2 -0
- package/lib/esm-offline-tools-app/697.js.LICENSE.txt +9 -0
- package/lib/esm-offline-tools-app/697.js.map +1 -0
- package/lib/esm-offline-tools-app/733.js +1 -0
- package/lib/esm-offline-tools-app/733.js.map +1 -0
- package/lib/esm-offline-tools-app/735.js +2 -0
- package/lib/esm-offline-tools-app/735.js.LICENSE.txt +9 -0
- package/lib/esm-offline-tools-app/735.js.map +1 -0
- package/lib/esm-offline-tools-app/752.js +1 -0
- package/lib/esm-offline-tools-app/752.js.map +1 -0
- package/lib/esm-offline-tools-app/757.js +1 -0
- package/lib/esm-offline-tools-app/78.js +1 -0
- package/lib/esm-offline-tools-app/78.js.map +1 -0
- package/lib/esm-offline-tools-app/788.js +2 -0
- package/lib/esm-offline-tools-app/788.js.LICENSE.txt +19 -0
- package/lib/esm-offline-tools-app/788.js.map +1 -0
- package/lib/esm-offline-tools-app/82.js +2 -0
- package/lib/esm-offline-tools-app/82.js.LICENSE.txt +5 -0
- package/lib/esm-offline-tools-app/82.js.map +1 -0
- package/lib/esm-offline-tools-app/889.js +2 -0
- package/lib/esm-offline-tools-app/889.js.LICENSE.txt +3 -0
- package/lib/esm-offline-tools-app/889.js.map +1 -0
- package/lib/esm-offline-tools-app/937.js +1 -0
- package/lib/esm-offline-tools-app/937.js.map +1 -0
- package/lib/esm-offline-tools-app/967.js +1 -0
- package/lib/esm-offline-tools-app/967.js.map +1 -0
- package/lib/esm-offline-tools-app/main.js +2 -0
- package/lib/esm-offline-tools-app/main.js.LICENSE.txt +5 -0
- package/lib/esm-offline-tools-app/main.js.map +1 -0
- package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js +1 -0
- package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js.buildmanifest.json +754 -0
- package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js.map +1 -0
- package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.old +1 -0
- package/lib/esm-primary-navigation-app/113.js +2 -0
- package/lib/esm-primary-navigation-app/113.js.LICENSE.txt +5 -0
- package/lib/esm-primary-navigation-app/113.js.map +1 -0
- package/lib/esm-primary-navigation-app/216.js +1 -0
- package/lib/esm-primary-navigation-app/216.js.map +1 -0
- package/lib/esm-primary-navigation-app/241.js +1 -0
- package/lib/esm-primary-navigation-app/241.js.map +1 -0
- package/lib/esm-primary-navigation-app/242.js +1 -0
- package/lib/esm-primary-navigation-app/242.js.map +1 -0
- package/lib/esm-primary-navigation-app/363.js +1 -0
- package/lib/esm-primary-navigation-app/363.js.map +1 -0
- package/lib/esm-primary-navigation-app/406.js +2 -0
- package/lib/esm-primary-navigation-app/406.js.LICENSE.txt +8 -0
- package/lib/esm-primary-navigation-app/406.js.map +1 -0
- package/lib/esm-primary-navigation-app/414.js +1 -0
- package/lib/esm-primary-navigation-app/414.js.map +1 -0
- package/lib/esm-primary-navigation-app/574.js +1 -0
- package/lib/esm-primary-navigation-app/631.js +1 -0
- package/lib/esm-primary-navigation-app/631.js.map +1 -0
- package/lib/esm-primary-navigation-app/710.js +1 -0
- package/lib/esm-primary-navigation-app/710.js.map +1 -0
- package/lib/esm-primary-navigation-app/716.js +1 -0
- package/lib/esm-primary-navigation-app/716.js.map +1 -0
- package/lib/esm-primary-navigation-app/735.js +2 -0
- package/lib/esm-primary-navigation-app/735.js.LICENSE.txt +9 -0
- package/lib/esm-primary-navigation-app/735.js.map +1 -0
- package/lib/esm-primary-navigation-app/743.js +1 -0
- package/lib/esm-primary-navigation-app/743.js.map +1 -0
- package/lib/esm-primary-navigation-app/757.js +1 -0
- package/lib/esm-primary-navigation-app/788.js +2 -0
- package/lib/esm-primary-navigation-app/788.js.LICENSE.txt +19 -0
- package/lib/esm-primary-navigation-app/788.js.map +1 -0
- package/lib/esm-primary-navigation-app/889.js +2 -0
- package/lib/esm-primary-navigation-app/889.js.LICENSE.txt +3 -0
- package/lib/esm-primary-navigation-app/889.js.map +1 -0
- package/lib/esm-primary-navigation-app/main.js +1 -0
- package/lib/esm-primary-navigation-app/main.js.map +1 -0
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js +1 -0
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js.buildmanifest.json +503 -0
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js.map +1 -0
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.old +1 -0
- package/lib/index.html +3 -0
- package/lib/openmrs.js +25 -25
- package/lib/service-worker.js +2 -2
- package/package.json +4 -4
- package/src/index.ejs +3 -0
- package/webpack.config.js +54 -1
- package/dist/84759747c5ec9b83.js +0 -1
- /package/dist/{openmrs.4d216ca793e8e302.js.LICENSE.txt → openmrs.7f67a01dda216963.js.LICENSE.txt} +0 -0
package/lib/openmrs.js
CHANGED
|
@@ -2601,7 +2601,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2601
2601
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2602
2602
|
|
|
2603
2603
|
"use strict";
|
|
2604
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ClickableTile\": () => (/* binding */ ClickableTile),\n/* harmony export */ \"ExpandableTile\": () => (/* binding */ ExpandableTile),\n/* harmony export */ \"SelectableTile\": () => (/* binding */ SelectableTile),\n/* harmony export */ \"Tile\": () => (/* binding */ Tile),\n/* harmony export */ \"TileAboveTheFoldContent\": () => (/* binding */ TileAboveTheFoldContent),\n/* harmony export */ \"TileBelowTheFoldContent\": () => (/* binding */ TileBelowTheFoldContent)\n/* harmony export */ });\n/* harmony import */ var _virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_virtual/_rollupPluginBabelHelpers.js */ \"../../../node_modules/@carbon/react/es/_virtual/_rollupPluginBabelHelpers.js\");\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 prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"../../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ \"../../../node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Link_Link_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Link/Link.js */ \"../../../node_modules/@carbon/react/es/components/Link/Link.js\");\n/* harmony import */ var _carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @carbon/icons-react */ \"../../../node_modules/@carbon/icons-react/es/generated/bucket-2.js\");\n/* harmony import */ var _prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../prop-types/deprecate.js */ \"../../../node_modules/@carbon/react/es/prop-types/deprecate.js\");\n/* harmony import */ var _tools_events_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../tools/events.js */ \"../../../node_modules/@carbon/react/es/tools/events.js\");\n/* harmony import */ var _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../internal/usePrefix.js */ \"../../../node_modules/@carbon/react/es/internal/usePrefix.js\");\n/* harmony import */ var _internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../internal/keyboard/match.js */ \"../../../node_modules/@carbon/react/es/internal/keyboard/match.js\");\n/* harmony import */ var _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../internal/keyboard/keys.js */ \"../../../node_modules/@carbon/react/es/internal/keyboard/keys.js\");\n/**\n * Copyright IBM Corp. 2016, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */ \n\n\n\n\n\n\n\n\n\n\nvar _CheckboxCheckedFille, _Checkbox, _ChevronDown;\nvar _excluded = [\n \"children\",\n \"className\",\n \"light\"\n], _excluded2 = [\n \"children\",\n \"href\",\n \"className\",\n \"handleClick\",\n \"handleKeyDown\",\n \"onClick\",\n \"onKeyDown\",\n \"clicked\",\n \"light\"\n], _excluded3 = [\n \"children\",\n \"id\",\n \"tabIndex\",\n \"value\",\n \"name\",\n \"title\",\n \"iconDescription\",\n \"className\",\n \"handleClick\",\n \"handleKeyDown\",\n \"onClick\",\n \"onChange\",\n \"onKeyDown\",\n \"light\",\n \"disabled\",\n \"selected\"\n], _excluded4 = [\n \"tabIndex\",\n \"className\",\n \"expanded\",\n \"tileMaxHeight\",\n \"tilePadding\",\n \"handleClick\",\n \"onKeyUp\",\n \"tileCollapsedIconText\",\n \"tileExpandedIconText\",\n \"tileCollapsedLabel\",\n \"tileExpandedLabel\",\n \"onBeforeClick\",\n \"light\"\n];\nvar Tile = /*#__PURE__*/ function(_Component) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(Tile, _Component);\n var _super = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(Tile);\n function Tile() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, Tile);\n return _super.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(Tile, [\n {\n key: \"render\",\n value: function render() {\n var prefix = this.context;\n var _this$props = this.props, children = _this$props.children, className = _this$props.className, light = _this$props.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props, _excluded);\n var tileClasses = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)({}, \"\".concat(prefix, \"--tile--light\"), light), className);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n className: tileClasses\n }, rest), children);\n }\n }\n ]);\n return Tile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"defaultProps\", {\n light: false\n});\nvar ClickableTile = /*#__PURE__*/ function(_Component2) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(ClickableTile, _Component2);\n var _super2 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(ClickableTile);\n function ClickableTile() {\n var _this;\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, ClickableTile);\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n _this = _super2.call.apply(_super2, [\n this\n ].concat(args));\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"state\", {});\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"handleClick\", function(evt) {\n evt.persist();\n _this.setState({\n clicked: !_this.state.clicked\n }, function() {\n var _this$props$handleCli, _this$props2, _this$props$onClick, _this$props3;\n // TODO: Remove handleClick prop when handleClick is deprecated\n ((_this$props$handleCli = (_this$props2 = _this.props).handleClick) === null || _this$props$handleCli === void 0 ? void 0 : _this$props$handleCli.call(_this$props2, evt)) || ((_this$props$onClick = (_this$props3 = _this.props).onClick) === null || _this$props$onClick === void 0 ? void 0 : _this$props$onClick.call(_this$props3, evt));\n });\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"handleKeyDown\", function(evt) {\n evt.persist();\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n _this.setState({\n clicked: !_this.state.clicked\n }, function() {\n var _this$props$handleKey, _this$props4;\n // TODO: Remove handleKeyDown prop when handleKeyDown is deprecated\n ((_this$props$handleKey = (_this$props4 = _this.props).handleKeyDown) === null || _this$props$handleKey === void 0 ? void 0 : _this$props$handleKey.call(_this$props4, evt)) || _this.props.onKeyDown(evt);\n });\n } else {\n var _this$props$handleKey2, _this$props5;\n // TODO: Remove handleKeyDown prop when handleKeyDown is deprecated\n ((_this$props$handleKey2 = (_this$props5 = _this.props).handleKeyDown) === null || _this$props$handleKey2 === void 0 ? void 0 : _this$props$handleKey2.call(_this$props5, evt)) || _this.props.onKeyDown(evt);\n }\n });\n return _this;\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(ClickableTile, [\n {\n key: \"render\",\n value: function render() {\n var _cx2;\n var prefix = this.context;\n var _this$props6 = this.props, children = _this$props6.children, href = _this$props6.href, className = _this$props6.className;\n _this$props6.handleClick;\n _this$props6.handleKeyDown;\n _this$props6.onClick;\n _this$props6.onKeyDown;\n _this$props6.clicked;\n var light = _this$props6.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props6, _excluded2);\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--clickable\"), (_cx2 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx2, \"\".concat(prefix, \"--tile--is-clicked\"), this.state.clicked), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx2, \"\".concat(prefix, \"--tile--light\"), light), _cx2), className);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Link_Link_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"], (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n href: href,\n className: classes\n }, rest, {\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown\n }), children);\n }\n }\n ], [\n {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, state) {\n var clicked = _ref.clicked;\n var prevClicked = state.prevClicked;\n return prevClicked === clicked ? null : {\n clicked: clicked,\n prevClicked: clicked\n };\n }\n }\n ]);\n return ClickableTile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * Deprecated in v11. Use 'onClick' instead.\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleClick prop for ClickableTile has been deprecated in favor of onClick. It will be removed in the next major release.\"),\n /**\n * Specify the function to run when the ClickableTile is interacted with via a keyboard\n */ handleKeyDown: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleKeyDown prop for ClickableTile has been deprecated in favor of onKeyDown. It will be removed in the next major release.\"),\n /**\n * The href for the link.\n */ href: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the function to run when the ClickableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the ClickableTile is interacted with via a keyboard\n */ onKeyDown: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * The rel property for the link.\n */ rel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"defaultProps\", {\n clicked: false,\n onClick: function onClick() {},\n onKeyDown: function onKeyDown() {},\n light: false\n});\nfunction SelectableTile(props) {\n var handleOnClick = function handleOnClick(evt) {\n evt.preventDefault();\n evt.persist();\n setIsSelected(!isSelected);\n clickHandler(evt);\n onChange(evt);\n } // TODO: rename to handleKeyDown when handleKeyDown prop is deprecated\n ;\n var handleOnKeyDown = function handleOnKeyDown(evt) {\n evt.persist();\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n evt.preventDefault();\n setIsSelected(!isSelected);\n onChange(evt);\n }\n keyDownHandler(evt);\n };\n var handleChange = function handleChange(event) {\n setIsSelected(event.target.checked);\n onChange(event);\n };\n var _cx3;\n var children = props.children, id = props.id, tabIndex = props.tabIndex, value = props.value, name = props.name, title = props.title;\n props.iconDescription;\n var className = props.className, handleClick = props.handleClick, handleKeyDown = props.handleKeyDown, onClick = props.onClick, onChange = props.onChange, onKeyDown = props.onKeyDown, light = props.light, disabled = props.disabled, selected = props.selected, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(props, _excluded3);\n var prefix = (0,_internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.usePrefix)(); // TODO: replace with onClick when handleClick prop is deprecated\n var clickHandler = handleClick || onClick; // TODO: replace with onKeyDown when handleKeyDown prop is deprecated\n var keyDownHandler = handleKeyDown || onKeyDown;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(selected), _useState2 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.slicedToArray)(_useState, 2), isSelected = _useState2[0], setIsSelected = _useState2[1];\n var input = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--selectable\"), (_cx3 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--is-selected\"), isSelected), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--light\"), light), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--disabled\"), disabled), _cx3), className);\n var inputClasses = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile-input\"), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)({}, \"\".concat(prefix, \"--tile-input--checked\"), isSelected)); // TODO: rename to handleClick when handleClick prop is deprecated\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n setIsSelected(selected);\n }, [\n selected\n ]);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n ref: input,\n tabIndex: -1,\n id: id,\n className: inputClasses,\n value: value,\n onChange: !disabled ? handleChange : null,\n type: \"checkbox\",\n disabled: disabled,\n name: name,\n title: title,\n checked: isSelected\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n htmlFor: id,\n className: classes // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n ,\n tabIndex: !disabled ? tabIndex : null\n }, rest, {\n onClick: !disabled ? handleOnClick : null,\n onKeyDown: !disabled ? handleOnKeyDown : null\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile__checkmark \").concat(prefix, \"--tile__checkmark--persistent\")\n }, isSelected ? _CheckboxCheckedFille || (_CheckboxCheckedFille = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.CheckboxCheckedFilled, null)) : _Checkbox || (_Checkbox = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.Checkbox, null))), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content\")\n }, children)));\n}\nSelectableTile.defaultProps = {\n value: \"value\",\n title: \"title\",\n selected: false,\n tabIndex: 0,\n light: false,\n onClick: function onClick() {},\n onChange: function onChange() {},\n onKeyDown: function onKeyDown() {}\n};\nSelectableTile.propTypes = {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * Specify whether the SelectableTile should be disabled\n */ disabled: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the function to run when the SelectableTile is clicked\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The `handleClick` prop for `SelectableTile` has been deprecated in favor of `onClick`. It will be removed in the next major release.\"),\n /**\n * Specify the function to run when the SelectableTile is interacted with via a keyboard\n */ handleKeyDown: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The `handleKeyDown` prop for `SelectableTile` has been deprecated in favor of `onKeyDown`. It will be removed in the next major release.\"),\n /**\n * The description of the checkmark icon.\n */ iconDescription: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().string), \"The `iconDescription` prop for `SelectableTile` is no longer needed and has \" + \"been deprecated. It will be removed in the next major release.\"),\n /**\n * The ID of the `<input>`.\n */ id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * The `name` of the `<input>`.\n */ name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The empty handler of the `<input>`.\n */ onChange: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the SelectableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the SelectableTile is interacted with via a keyboard\n */ onKeyDown: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * `true` to select this tile.\n */ selected: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the tab index of the wrapper element\n */ tabIndex: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n /**\n * The `title` of the `<input>`.\n */ title: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The value of the `<input>`.\n */ value: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([\n (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number)\n ]).isRequired\n};\nvar ExpandableTile = /*#__PURE__*/ function(_Component3) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(ExpandableTile, _Component3);\n var _super3 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(ExpandableTile);\n function ExpandableTile() {\n var _this2;\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, ExpandableTile);\n for(var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++){\n args[_key2] = arguments[_key2];\n }\n _this2 = _super3.call.apply(_super3, [\n this\n ].concat(args));\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"state\", {});\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"resizeObserver\", null);\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"componentDidMount\", function() {\n _this2.resizeObserver = new ResizeObserver(function(entries) {\n var _entries = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.slicedToArray)(entries, 1), aboveTheFold = _entries[0];\n _this2.setState({\n tileMaxHeight: aboveTheFold.contentRect.height\n });\n });\n if (_this2.tile) {\n var getStyle = window.getComputedStyle(_this2.tile, null);\n if (_this2.aboveTheFold) {\n _this2.resizeObserver.observe(_this2.aboveTheFold);\n _this2.setState({\n tileMaxHeight: _this2.aboveTheFold.getBoundingClientRect().height,\n tilePadding: parseInt(getStyle.getPropertyValue(\"padding-top\"), 10) + parseInt(getStyle.getPropertyValue(\"padding-bottom\"), 10)\n });\n }\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"componentDidUpdate\", function(prevProps) {\n if (prevProps.expanded !== _this2.props.expanded) {\n _this2.setMaxHeight();\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"setMaxHeight\", function() {\n if (_this2.state.expanded ? _this2.tileContent : _this2.aboveTheFold) {\n _this2.setState({\n tileMaxHeight: _this2.state.expanded ? _this2.tileContent.getBoundingClientRect().height : _this2.aboveTheFold.getBoundingClientRect().height\n });\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"handleClick\", function(evt) {\n if (!_this2.props.onBeforeClick(evt) || evt.target.tagName === \"INPUT\") {\n return;\n }\n evt.persist();\n _this2.setState({\n expanded: !_this2.state.expanded\n }, function() {\n var _this2$props$handleCl, _this2$props, _this2$props$onClick, _this2$props2;\n _this2.setMaxHeight(); // TODO: Remove handleClick prop when handleClick is deprecated\n ((_this2$props$handleCl = (_this2$props = _this2.props).handleClick) === null || _this2$props$handleCl === void 0 ? void 0 : _this2$props$handleCl.call(_this2$props, evt)) || ((_this2$props$onClick = (_this2$props2 = _this2.props).onClick) === null || _this2$props$onClick === void 0 ? void 0 : _this2$props$onClick.call(_this2$props2, evt));\n });\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"handleKeyUp\", function(evt) {\n if (evt.target !== _this2.tile) {\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n evt.preventDefault();\n }\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"getChildren\", function() {\n return react__WEBPACK_IMPORTED_MODULE_0___default().Children.toArray(_this2.props.children);\n });\n return _this2;\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(ExpandableTile, [\n {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n },\n {\n key: \"render\",\n value: function render() {\n var _cx5, _this3 = this;\n var _this$props7 = this.props, tabIndex = _this$props7.tabIndex, className = _this$props7.className;\n _this$props7.expanded;\n _this$props7.tileMaxHeight;\n _this$props7.tilePadding;\n _this$props7.handleClick;\n var onKeyUp = _this$props7.onKeyUp, tileCollapsedIconText = _this$props7.tileCollapsedIconText, tileExpandedIconText = _this$props7.tileExpandedIconText, tileCollapsedLabel = _this$props7.tileCollapsedLabel, tileExpandedLabel = _this$props7.tileExpandedLabel;\n _this$props7.onBeforeClick;\n var light = _this$props7.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props7, _excluded4);\n var prefix = this.context;\n var isExpanded = this.state.expanded;\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--expandable\"), (_cx5 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx5, \"\".concat(prefix, \"--tile--is-expanded\"), isExpanded), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx5, \"\".concat(prefix, \"--tile--light\"), light), _cx5), className);\n var tileStyle = {\n maxHeight: isExpanded ? null : this.state.tileMaxHeight + this.state.tilePadding\n };\n var childrenAsArray = this.getChildren();\n return(/*#__PURE__*/ // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n type: \"button\",\n ref: function ref(tile) {\n _this3.tile = tile;\n },\n style: tileStyle,\n className: classes,\n \"aria-expanded\": isExpanded,\n title: isExpanded ? tileExpandedIconText : tileCollapsedIconText\n }, rest, {\n onKeyUp: (0,_tools_events_js__WEBPACK_IMPORTED_MODULE_10__.composeEventHandlers)([\n onKeyUp,\n this.handleKeyUp\n ]),\n onClick: this.handleClick,\n tabIndex: tabIndex\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: function ref(tileContent) {\n _this3.tileContent = tileContent;\n }\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: function ref(aboveTheFold) {\n _this3.aboveTheFold = aboveTheFold;\n },\n className: \"\".concat(prefix, \"--tile-content\")\n }, childrenAsArray[0]), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"\".concat(prefix, \"--tile__chevron\")\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, isExpanded ? tileExpandedLabel : tileCollapsedLabel), _ChevronDown || (_ChevronDown = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.ChevronDown, null))), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"\".concat(prefix, \"--tile-content\")\n }, childrenAsArray[1]))));\n }\n }\n ], [\n {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref2, state) {\n var expanded = _ref2.expanded, tileMaxHeight = _ref2.tileMaxHeight, tilePadding = _ref2.tilePadding;\n var prevExpanded = state.prevExpanded, prevTileMaxHeight = state.prevTileMaxHeight, prevTilePadding = state.prevTilePadding, currentExpanded = state.expanded, currentTileMaxHeight = state.tileMaxHeight, currentTilePadding = state.tilePadding;\n var expandedChanged = prevExpanded !== expanded;\n var tileMaxHeightChanged = prevTileMaxHeight !== tileMaxHeight;\n var tilePaddingChanged = prevTilePadding !== tilePadding;\n return !expandedChanged && !tileMaxHeightChanged && !tilePaddingChanged ? null : {\n expanded: !expandedChanged ? currentExpanded : expanded,\n tileMaxHeight: !tileMaxHeightChanged ? currentTileMaxHeight : tileMaxHeight,\n tilePadding: !tilePaddingChanged ? currentTilePadding : tilePadding,\n prevExpanded: expanded,\n prevTileMaxHeight: tileMaxHeight,\n prevTilePadding: tilePadding\n };\n }\n }\n ]);\n return ExpandableTile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` if the tile is expanded.\n */ expanded: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Deprecated in v11. Use 'onClick' instead.\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleClick prop for ExpandableTile has been deprecated in favor of onClick. It will be removed in the next major release.\"),\n /**\n * An ID that can be provided to aria-labelledby\n */ id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * optional handler to decide whether to ignore a click. returns false if click should be ignored\n */ onBeforeClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the ExpandableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * optional handler to trigger a function when a key is pressed\n */ onKeyUp: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * The `tabindex` attribute.\n */ tabIndex: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n /**\n * The description of the \"collapsed\" icon that can be read by screen readers.\n */ tileCollapsedIconText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * When \"collapsed\", a label to appear next to the chevron (e.g., \"View more\").\n */ tileCollapsedLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The description of the \"expanded\" icon that can be read by screen readers.\n */ tileExpandedIconText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * When \"expanded\", a label to appear next to the chevron (e.g., \"View less\").\n */ tileExpandedLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"defaultProps\", {\n tabIndex: 0,\n expanded: false,\n tileMaxHeight: 0,\n tilePadding: 0,\n onBeforeClick: function onBeforeClick() {\n return true;\n },\n onClick: function onClick() {},\n tileCollapsedIconText: \"Interact to expand Tile\",\n tileExpandedIconText: \"Interact to collapse Tile\",\n light: false\n});\nvar TileAboveTheFoldContent = /*#__PURE__*/ function(_Component4) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(TileAboveTheFoldContent, _Component4);\n var _super4 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(TileAboveTheFoldContent);\n function TileAboveTheFoldContent() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, TileAboveTheFoldContent);\n return _super4.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(TileAboveTheFoldContent, [\n {\n key: \"render\",\n value: function render() {\n var prefix = this.context;\n var children = this.props.children;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content__above-the-fold\")\n }, children);\n }\n }\n ]);\n return TileAboveTheFoldContent;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileAboveTheFoldContent, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileAboveTheFoldContent, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\nvar TileBelowTheFoldContent = /*#__PURE__*/ function(_Component5) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(TileBelowTheFoldContent, _Component5);\n var _super5 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(TileBelowTheFoldContent);\n function TileBelowTheFoldContent() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, TileBelowTheFoldContent);\n return _super5.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(TileBelowTheFoldContent, [\n {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var prefix = this.context;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content__below-the-fold\")\n }, children);\n }\n }\n ]);\n return TileBelowTheFoldContent;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileBelowTheFoldContent, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileBelowTheFoldContent, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BjYXJib24vcmVhY3QvZXMvY29tcG9uZW50cy9UaWxlL1RpbGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Q0FLQyxHQUUrVztBQUNqUztBQUM1QztBQUNQO0FBQ087QUFDZ0Q7QUFDN0I7QUFDTztBQUNVO0FBQ1o7QUFDSTtBQUUvRCxJQUFJb0MsdUJBQXVCQyxXQUFXQztBQUV0QyxJQUFJQyxZQUFZO0lBQUM7SUFBWTtJQUFhO0NBQVEsRUFDOUNDLGFBQWE7SUFBQztJQUFZO0lBQVE7SUFBYTtJQUFlO0lBQWlCO0lBQVc7SUFBYTtJQUFXO0NBQVEsRUFDMUhDLGFBQWE7SUFBQztJQUFZO0lBQU07SUFBWTtJQUFTO0lBQVE7SUFBUztJQUFtQjtJQUFhO0lBQWU7SUFBaUI7SUFBVztJQUFZO0lBQWE7SUFBUztJQUFZO0NBQVcsRUFDMU1DLGFBQWE7SUFBQztJQUFZO0lBQWE7SUFBWTtJQUFpQjtJQUFlO0lBQWU7SUFBVztJQUF5QjtJQUF3QjtJQUFzQjtJQUFxQjtJQUFpQjtDQUFRO0FBQ3RPLElBQUlDLE9BQU8sV0FBVyxHQUFFLFNBQVVDLFVBQVUsRUFBRTtJQUM1QzNDLDhFQUFTQSxDQUFDMEMsTUFBTUM7SUFFaEIsSUFBSUMsU0FBUzFDLGlGQUFZQSxDQUFDd0M7SUFFMUIsU0FBU0EsT0FBTztRQUNkdEMsb0ZBQWVBLENBQUMsSUFBSSxFQUFFc0M7UUFFdEIsT0FBT0UsT0FBT0MsS0FBSyxDQUFDLElBQUksRUFBRUM7SUFDNUI7SUFFQXhDLGlGQUFZQSxDQUFDb0MsTUFBTTtRQUFDO1lBQ2xCSyxLQUFLO1lBQ0xDLE9BQU8sU0FBU0MsU0FBUztnQkFDdkIsSUFBSUMsU0FBUyxJQUFJLENBQUNDLE9BQU87Z0JBRXpCLElBQUlDLGNBQWMsSUFBSSxDQUFDQyxLQUFLLEVBQ3hCQyxXQUFXRixZQUFZRSxRQUFRLEVBQy9CQyxZQUFZSCxZQUFZRyxTQUFTLEVBQ2pDQyxRQUFRSixZQUFZSSxLQUFLLEVBQ3pCQyxPQUFPakQsNkZBQXdCQSxDQUFDNEMsYUFBYWQ7Z0JBRWpELElBQUlvQixjQUFjbkMsaURBQUVBLENBQUMsR0FBR29DLE1BQU0sQ0FBQ1QsUUFBUSxXQUFXeEMsb0ZBQWVBLENBQUMsQ0FBQyxHQUFHLEdBQUdpRCxNQUFNLENBQUNULFFBQVEsa0JBQWtCTSxRQUFRRDtnQkFDbEgsT0FBTyxXQUFXLEdBQUV0QywwREFBNEIsQ0FBQyxPQUFPTCxnRkFBUUEsQ0FBQztvQkFDL0QyQyxXQUFXRztnQkFDYixHQUFHRCxPQUFPSDtZQUNaO1FBQ0Y7S0FBRTtJQUVGLE9BQU9aO0FBQ1QsRUFBRXhCLDRDQUFTQTtBQUVYUixvRkFBZUEsQ0FBQ2dDLE1BQU0sYUFBYTtJQUNqQzs7R0FFQyxHQUNEWSxVQUFVaEMsd0RBQWM7SUFFeEI7O0dBRUMsR0FDRGlDLFdBQVdqQywwREFBZ0I7SUFFM0I7OztHQUdDLEdBQ0RrQyxPQUFPbEMsd0RBQWM7QUFDdkI7QUFFQVosb0ZBQWVBLENBQUNnQyxNQUFNLGVBQWVaLGlFQUFhQTtBQUVsRHBCLG9GQUFlQSxDQUFDZ0MsTUFBTSxnQkFBZ0I7SUFDcENjLE9BQU8sS0FBSztBQUNkO0FBRUEsSUFBSVEsZ0JBQWdCLFdBQVcsR0FBRSxTQUFVQyxXQUFXLEVBQUU7SUFDdERqRSw4RUFBU0EsQ0FBQ2dFLGVBQWVDO0lBRXpCLElBQUlDLFVBQVVoRSxpRkFBWUEsQ0FBQzhEO0lBRTNCLFNBQVNBLGdCQUFnQjtRQUN2QixJQUFJRztRQUVKL0Qsb0ZBQWVBLENBQUMsSUFBSSxFQUFFNEQ7UUFFdEIsSUFBSyxJQUFJSSxPQUFPdEIsVUFBVXVCLE1BQU0sRUFBRUMsT0FBTyxJQUFJQyxNQUFNSCxPQUFPSSxPQUFPLEdBQUdBLE9BQU9KLE1BQU1JLE9BQVE7WUFDdkZGLElBQUksQ0FBQ0UsS0FBSyxHQUFHMUIsU0FBUyxDQUFDMEIsS0FBSztRQUM5QjtRQUVBTCxRQUFRRCxRQUFRTyxJQUFJLENBQUM1QixLQUFLLENBQUNxQixTQUFTO1lBQUMsSUFBSTtTQUFDLENBQUNQLE1BQU0sQ0FBQ1c7UUFFbEQ1RCxvRkFBZUEsQ0FBQ0ksMkZBQXNCQSxDQUFDcUQsUUFBUSxTQUFTLENBQUM7UUFFekR6RCxvRkFBZUEsQ0FBQ0ksMkZBQXNCQSxDQUFDcUQsUUFBUSxlQUFlLFNBQVVPLEdBQUcsRUFBRTtZQUMzRUEsSUFBSUMsT0FBTztZQUVYUixNQUFNUyxRQUFRLENBQUM7Z0JBQ2JDLFNBQVMsQ0FBQ1YsTUFBTVcsS0FBSyxDQUFDRCxPQUFPO1lBQy9CLEdBQUcsV0FBWTtnQkFDYixJQUFJRSx1QkFBdUJDLGNBQWNDLHFCQUFxQkM7Z0JBRTlELCtEQUErRDtnQkFDOUQsRUFBQ0gsd0JBQXdCLENBQUNDLGVBQWViLE1BQU1kLEtBQUssRUFBRThCLFdBQVcsTUFBTSxJQUFJLElBQUlKLDBCQUEwQixLQUFLLElBQUksS0FBSyxJQUFJQSxzQkFBc0JOLElBQUksQ0FBQ08sY0FBY04sSUFBSSxLQUFNLEVBQUNPLHNCQUFzQixDQUFDQyxlQUFlZixNQUFNZCxLQUFLLEVBQUUrQixPQUFPLE1BQU0sSUFBSSxJQUFJSCx3QkFBd0IsS0FBSyxJQUFJLEtBQUssSUFBSUEsb0JBQW9CUixJQUFJLENBQUNTLGNBQWNSLElBQUk7WUFDL1U7UUFDRjtRQUVBaEUsb0ZBQWVBLENBQUNJLDJGQUFzQkEsQ0FBQ3FELFFBQVEsaUJBQWlCLFNBQVVPLEdBQUcsRUFBRTtZQUM3RUEsSUFBSUMsT0FBTztZQUVYLElBQUkzQyxvRUFBT0EsQ0FBQzBDLEtBQUs7Z0JBQUN6Qyw2REFBS0E7Z0JBQUVDLDZEQUFLQTthQUFDLEdBQUc7Z0JBQ2hDaUMsTUFBTVMsUUFBUSxDQUFDO29CQUNiQyxTQUFTLENBQUNWLE1BQU1XLEtBQUssQ0FBQ0QsT0FBTztnQkFDL0IsR0FBRyxXQUFZO29CQUNiLElBQUlRLHVCQUF1QkM7b0JBRTNCLG1FQUFtRTtvQkFDbEUsRUFBQ0Qsd0JBQXdCLENBQUNDLGVBQWVuQixNQUFNZCxLQUFLLEVBQUVrQyxhQUFhLE1BQU0sSUFBSSxJQUFJRiwwQkFBMEIsS0FBSyxJQUFJLEtBQUssSUFBSUEsc0JBQXNCWixJQUFJLENBQUNhLGNBQWNaLElBQUksS0FBS1AsTUFBTWQsS0FBSyxDQUFDbUMsU0FBUyxDQUFDZDtnQkFDeE07WUFDRixPQUFPO2dCQUNMLElBQUllLHdCQUF3QkM7Z0JBRTVCLG1FQUFtRTtnQkFDbEUsRUFBQ0QseUJBQXlCLENBQUNDLGVBQWV2QixNQUFNZCxLQUFLLEVBQUVrQyxhQUFhLE1BQU0sSUFBSSxJQUFJRSwyQkFBMkIsS0FBSyxJQUFJLEtBQUssSUFBSUEsdUJBQXVCaEIsSUFBSSxDQUFDaUIsY0FBY2hCLElBQUksS0FBS1AsTUFBTWQsS0FBSyxDQUFDbUMsU0FBUyxDQUFDZDtZQUMzTSxDQUFDO1FBQ0g7UUFFQSxPQUFPUDtJQUNUO0lBRUE3RCxpRkFBWUEsQ0FBQzBELGVBQWU7UUFBQztZQUMzQmpCLEtBQUs7WUFDTEMsT0FBTyxTQUFTQyxTQUFTO2dCQUN2QixJQUFJMEM7Z0JBRUosSUFBSXpDLFNBQVMsSUFBSSxDQUFDQyxPQUFPO2dCQUV6QixJQUFJeUMsZUFBZSxJQUFJLENBQUN2QyxLQUFLLEVBQ3pCQyxXQUFXc0MsYUFBYXRDLFFBQVEsRUFDaEN1QyxPQUFPRCxhQUFhQyxJQUFJLEVBQ3hCdEMsWUFBWXFDLGFBQWFyQyxTQUFTO2dCQUNsQ3FDLGFBQWFULFdBQVc7Z0JBQ3hCUyxhQUFhTCxhQUFhO2dCQUMxQkssYUFBYVIsT0FBTztnQkFDcEJRLGFBQWFKLFNBQVM7Z0JBQ3RCSSxhQUFhZixPQUFPO2dCQUNwQixJQUFJckIsUUFBUW9DLGFBQWFwQyxLQUFLLEVBQzlCQyxPQUFPakQsNkZBQXdCQSxDQUFDb0YsY0FBY3JEO2dCQUVsRCxJQUFJdUQsVUFBVXZFLGlEQUFFQSxDQUFDLEdBQUdvQyxNQUFNLENBQUNULFFBQVEsV0FBVyxHQUFHUyxNQUFNLENBQUNULFFBQVEsc0JBQXVCeUMsQ0FBQUEsT0FBTyxDQUFDLEdBQUdqRixvRkFBZUEsQ0FBQ2lGLE1BQU0sR0FBR2hDLE1BQU0sQ0FBQ1QsUUFBUSx1QkFBdUIsSUFBSSxDQUFDNEIsS0FBSyxDQUFDRCxPQUFPLEdBQUduRSxvRkFBZUEsQ0FBQ2lGLE1BQU0sR0FBR2hDLE1BQU0sQ0FBQ1QsUUFBUSxrQkFBa0JNLFFBQVFtQyxJQUFJLEdBQUdwQztnQkFDL1AsT0FBTyxXQUFXLEdBQUV0QywwREFBNEIsQ0FBQ08scURBQUlBLEVBQUVaLGdGQUFRQSxDQUFDO29CQUM5RGlGLE1BQU1BO29CQUNOdEMsV0FBV3VDO2dCQUNiLEdBQUdyQyxNQUFNO29CQUNQMkIsU0FBUyxJQUFJLENBQUNELFdBQVc7b0JBQ3pCSyxXQUFXLElBQUksQ0FBQ0QsYUFBYTtnQkFDL0IsSUFBSWpDO1lBQ047UUFDRjtLQUFFLEVBQUU7UUFBQztZQUNIUCxLQUFLO1lBQ0xDLE9BQ0EsU0FBUytDLHlCQUF5QkMsSUFBSSxFQUFFbEIsS0FBSyxFQUFFO2dCQUM3QyxJQUFJRCxVQUFVbUIsS0FBS25CLE9BQU87Z0JBQzFCLElBQUlvQixjQUFjbkIsTUFBTW1CLFdBQVc7Z0JBQ25DLE9BQU9BLGdCQUFnQnBCLFVBQVUsSUFBSSxHQUFHO29CQUN0Q0EsU0FBU0E7b0JBQ1RvQixhQUFhcEI7Z0JBQ2YsQ0FBQztZQUNIO1FBQ0Y7S0FBRTtJQUVGLE9BQU9iO0FBQ1QsRUFBRTlDLDRDQUFTQTtBQUVYUixvRkFBZUEsQ0FBQ3NELGVBQWUsYUFBYTtJQUMxQzs7R0FFQyxHQUNEVixVQUFVaEMsd0RBQWM7SUFFeEI7O0dBRUMsR0FDRGlDLFdBQVdqQywwREFBZ0I7SUFFM0I7O0dBRUMsR0FDRDZELGFBQWF2RCxvRUFBU0EsQ0FBQ04sd0RBQWMsRUFBRTtJQUV2Qzs7R0FFQyxHQUNEaUUsZUFBZTNELG9FQUFTQSxDQUFDTix3REFBYyxFQUFFO0lBRXpDOztHQUVDLEdBQ0R1RSxNQUFNdkUsMERBQWdCO0lBRXRCOzs7R0FHQyxHQUNEa0MsT0FBT2xDLHdEQUFjO0lBRXJCOztHQUVDLEdBQ0Q4RCxTQUFTOUQsd0RBQWM7SUFFdkI7O0dBRUMsR0FDRGtFLFdBQVdsRSx3REFBYztJQUV6Qjs7R0FFQyxHQUNENkUsS0FBSzdFLDBEQUFnQjtBQUN2QjtBQUVBWixvRkFBZUEsQ0FBQ3NELGVBQWUsZUFBZWxDLGlFQUFhQTtBQUUzRHBCLG9GQUFlQSxDQUFDc0QsZUFBZSxnQkFBZ0I7SUFDN0NhLFNBQVMsS0FBSztJQUNkTyxTQUFTLFNBQVNBLFVBQVUsQ0FBQztJQUM3QkksV0FBVyxTQUFTQSxZQUFZLENBQUM7SUFDakNoQyxPQUFPLEtBQUs7QUFDZDtBQUVBLFNBQVM0QyxlQUFlL0MsS0FBSyxFQUFFO1FBb0NwQmdELGdCQUFULFNBQVNBLGNBQWMzQixHQUFHLEVBQUU7UUFDMUJBLElBQUk0QixjQUFjO1FBQ2xCNUIsSUFBSUMsT0FBTztRQUNYNEIsY0FBYyxDQUFDQztRQUNmQyxhQUFhL0I7UUFDYmdDLFNBQVNoQztJQUNYLEVBQUUsc0VBQXNFOztRQUcvRGlDLGtCQUFULFNBQVNBLGdCQUFnQmpDLEdBQUcsRUFBRTtRQUM1QkEsSUFBSUMsT0FBTztRQUVYLElBQUkzQyxvRUFBT0EsQ0FBQzBDLEtBQUs7WUFBQ3pDLDZEQUFLQTtZQUFFQyw2REFBS0E7U0FBQyxHQUFHO1lBQ2hDd0MsSUFBSTRCLGNBQWM7WUFDbEJDLGNBQWMsQ0FBQ0M7WUFDZkUsU0FBU2hDO1FBQ1gsQ0FBQztRQUVEa0MsZUFBZWxDO0lBQ2pCO1FBRVNtQyxlQUFULFNBQVNBLGFBQWFDLEtBQUssRUFBRTtRQUMzQlAsY0FBY08sTUFBTUMsTUFBTSxDQUFDQyxPQUFPO1FBQ2xDTixTQUFTSTtJQUNYO0lBM0RBLElBQUlHO0lBRUosSUFBSTNELFdBQVdELE1BQU1DLFFBQVEsRUFDekI0RCxLQUFLN0QsTUFBTTZELEVBQUUsRUFDYkMsV0FBVzlELE1BQU04RCxRQUFRLEVBQ3pCbkUsUUFBUUssTUFBTUwsS0FBSyxFQUNuQm9FLE9BQU8vRCxNQUFNK0QsSUFBSSxFQUNqQkMsUUFBUWhFLE1BQU1nRSxLQUFLO0lBQ25CaEUsTUFBTWlFLGVBQWU7SUFDckIsSUFBSS9ELFlBQVlGLE1BQU1FLFNBQVMsRUFDL0I0QixjQUFjOUIsTUFBTThCLFdBQVcsRUFDL0JJLGdCQUFnQmxDLE1BQU1rQyxhQUFhLEVBQ25DSCxVQUFVL0IsTUFBTStCLE9BQU8sRUFDdkJzQixXQUFXckQsTUFBTXFELFFBQVEsRUFDekJsQixZQUFZbkMsTUFBTW1DLFNBQVMsRUFDM0JoQyxRQUFRSCxNQUFNRyxLQUFLLEVBQ25CK0QsV0FBV2xFLE1BQU1rRSxRQUFRLEVBQ3pCQyxXQUFXbkUsTUFBTW1FLFFBQVEsRUFDekIvRCxPQUFPakQsNkZBQXdCQSxDQUFDNkMsT0FBT2I7SUFFM0MsSUFBSVUsU0FBU25CLGlFQUFTQSxJQUFJLGlFQUFpRTtJQUUzRixJQUFJMEUsZUFBZXRCLGVBQWVDLFNBQVMscUVBQXFFO0lBRWhILElBQUl3QixpQkFBaUJyQixpQkFBaUJDO0lBRXRDLElBQUlpQyxZQUFZdEcsK0NBQVFBLENBQUNxRyxXQUNyQkUsYUFBYTFHLG1GQUFjQSxDQUFDeUcsV0FBVyxJQUN2Q2pCLGFBQWFrQixVQUFVLENBQUMsRUFBRSxFQUMxQm5CLGdCQUFnQm1CLFVBQVUsQ0FBQyxFQUFFO0lBRWpDLElBQUlDLFFBQVF2Ryw2Q0FBTUEsQ0FBQyxJQUFJO0lBQ3ZCLElBQUkwRSxVQUFVdkUsaURBQUVBLENBQUMsR0FBR29DLE1BQU0sQ0FBQ1QsUUFBUSxXQUFXLEdBQUdTLE1BQU0sQ0FBQ1QsUUFBUSx1QkFBd0IrRCxDQUFBQSxPQUFPLENBQUMsR0FBR3ZHLG9GQUFlQSxDQUFDdUcsTUFBTSxHQUFHdEQsTUFBTSxDQUFDVCxRQUFRLHdCQUF3QnNELGFBQWE5RixvRkFBZUEsQ0FBQ3VHLE1BQU0sR0FBR3RELE1BQU0sQ0FBQ1QsUUFBUSxrQkFBa0JNLFFBQVE5QyxvRkFBZUEsQ0FBQ3VHLE1BQU0sR0FBR3RELE1BQU0sQ0FBQ1QsUUFBUSxxQkFBcUJxRSxXQUFXTixJQUFJLEdBQUcxRDtJQUNqVSxJQUFJcUUsZUFBZXJHLGlEQUFFQSxDQUFDLEdBQUdvQyxNQUFNLENBQUNULFFBQVEsaUJBQWlCeEMsb0ZBQWVBLENBQUMsQ0FBQyxHQUFHLEdBQUdpRCxNQUFNLENBQUNULFFBQVEsMEJBQTBCc0QsY0FBYyxrRUFBa0U7SUE0QnpNbkYsZ0RBQVNBLENBQUMsV0FBWTtRQUNwQmtGLGNBQWNpQjtJQUNoQixHQUFHO1FBQUNBO0tBQVM7SUFDYixPQUFPLFdBQVcsR0FBRXZHLDBEQUE0QixDQUFDQSx1REFBdUIsRUFBRSxJQUFJLEVBQUUsV0FBVyxHQUFFQSwwREFBNEIsQ0FBQyxTQUFTO1FBQ2pJNkcsS0FBS0g7UUFDTFIsVUFBVSxDQUFDO1FBQ1hELElBQUlBO1FBQ0ozRCxXQUFXcUU7UUFDWDVFLE9BQU9BO1FBQ1AwRCxVQUFVLENBQUNhLFdBQVdWLGVBQWUsSUFBSTtRQUN6Q2tCLE1BQU07UUFDTlIsVUFBVUE7UUFDVkgsTUFBTUE7UUFDTkMsT0FBT0E7UUFDUEwsU0FBU1I7SUFDWCxJQUFJLFdBQVcsR0FBRXZGLDBEQUE0QixDQUFDLFNBQVNMLGdGQUFRQSxDQUFDO1FBQzlEb0gsU0FBU2Q7UUFDVDNELFdBQVd1QyxRQUFRLCtEQUErRDs7UUFFbEZxQixVQUFVLENBQUNJLFdBQVdKLFdBQVcsSUFBSTtJQUN2QyxHQUFHMUQsTUFBTTtRQUNQMkIsU0FBUyxDQUFDbUMsV0FBV2xCLGdCQUFnQixJQUFJO1FBQ3pDYixXQUFXLENBQUMrQixXQUFXWixrQkFBa0IsSUFBSTtJQUMvQyxJQUFJLFdBQVcsR0FBRTFGLDBEQUE0QixDQUFDLFFBQVE7UUFDcERzQyxXQUFXLEdBQUdJLE1BQU0sQ0FBQ1QsUUFBUSxzQkFBc0JTLE1BQU0sQ0FBQ1QsUUFBUTtJQUNwRSxHQUFHc0QsYUFBYXJFLHlCQUEwQkEsQ0FBQUEsd0JBQXdCLFdBQVcsR0FBRWxCLDBEQUE0QixDQUFDUSxzRUFBcUJBLEVBQUUsSUFBSSxLQUFLVyxhQUFjQSxDQUFBQSxZQUFZLFdBQVcsR0FBRW5CLDBEQUE0QixDQUFDUyx5REFBUUEsRUFBRSxJQUFJLEVBQUUsR0FBRyxXQUFXLEdBQUVULDBEQUE0QixDQUFDLFFBQVE7UUFDblJzQyxXQUFXLEdBQUdJLE1BQU0sQ0FBQ1QsUUFBUTtJQUMvQixHQUFHSTtBQUNMO0FBQ0E4QyxlQUFlNkIsWUFBWSxHQUFHO0lBQzVCakYsT0FBTztJQUNQcUUsT0FBTztJQUNQRyxVQUFVLEtBQUs7SUFDZkwsVUFBVTtJQUNWM0QsT0FBTyxLQUFLO0lBQ1o0QixTQUFTLFNBQVNBLFVBQVUsQ0FBQztJQUM3QnNCLFVBQVUsU0FBU0EsV0FBVyxDQUFDO0lBQy9CbEIsV0FBVyxTQUFTQSxZQUFZLENBQUM7QUFDbkM7QUFDQVksZUFBZThCLFNBQVMsR0FBRztJQUN6Qjs7R0FFQyxHQUNENUUsVUFBVWhDLHdEQUFjO0lBRXhCOztHQUVDLEdBQ0RpQyxXQUFXakMsMERBQWdCO0lBRTNCOztHQUVDLEdBQ0RpRyxVQUFVakcsd0RBQWM7SUFFeEI7O0dBRUMsR0FDRDZELGFBQWF2RCxvRUFBU0EsQ0FBQ04sd0RBQWMsRUFBRTtJQUV2Qzs7R0FFQyxHQUNEaUUsZUFBZTNELG9FQUFTQSxDQUFDTix3REFBYyxFQUFFO0lBRXpDOztHQUVDLEdBQ0RnRyxpQkFBaUIxRixvRUFBU0EsQ0FBQ04sMERBQWdCLEVBQUUsaUZBQWlGO0lBRTlIOztHQUVDLEdBQ0Q0RixJQUFJNUYsMERBQWdCO0lBRXBCOzs7R0FHQyxHQUNEa0MsT0FBT2xDLHdEQUFjO0lBRXJCOztHQUVDLEdBQ0Q4RixNQUFNOUYsMERBQWdCO0lBRXRCOztHQUVDLEdBQ0RvRixVQUFVcEYsd0RBQWM7SUFFeEI7O0dBRUMsR0FDRDhELFNBQVM5RCx3REFBYztJQUV2Qjs7R0FFQyxHQUNEa0UsV0FBV2xFLHdEQUFjO0lBRXpCOztHQUVDLEdBQ0RrRyxVQUFVbEcsd0RBQWM7SUFFeEI7O0dBRUMsR0FDRDZGLFVBQVU3RiwwREFBZ0I7SUFFMUI7O0dBRUMsR0FDRCtGLE9BQU8vRiwwREFBZ0I7SUFFdkI7O0dBRUMsR0FDRDBCLE9BQU8xQiwyREFBbUIsQ0FBQztRQUFDQSwwREFBZ0I7UUFBRUEsMERBQWdCO0tBQUMsRUFBRStHLFVBQVU7QUFDN0U7QUFDQSxJQUFJQyxpQkFBaUIsV0FBVyxHQUFFLFNBQVVDLFdBQVcsRUFBRTtJQUN2RHZJLDhFQUFTQSxDQUFDc0ksZ0JBQWdCQztJQUUxQixJQUFJQyxVQUFVdEksaUZBQVlBLENBQUNvSTtJQUUzQixTQUFTQSxpQkFBaUI7UUFDeEIsSUFBSUc7UUFFSnJJLG9GQUFlQSxDQUFDLElBQUksRUFBRWtJO1FBRXRCLElBQUssSUFBSUksUUFBUTVGLFVBQVV1QixNQUFNLEVBQUVDLE9BQU8sSUFBSUMsTUFBTW1FLFFBQVFDLFFBQVEsR0FBR0EsUUFBUUQsT0FBT0MsUUFBUztZQUM3RnJFLElBQUksQ0FBQ3FFLE1BQU0sR0FBRzdGLFNBQVMsQ0FBQzZGLE1BQU07UUFDaEM7UUFFQUYsU0FBU0QsUUFBUS9ELElBQUksQ0FBQzVCLEtBQUssQ0FBQzJGLFNBQVM7WUFBQyxJQUFJO1NBQUMsQ0FBQzdFLE1BQU0sQ0FBQ1c7UUFFbkQ1RCxvRkFBZUEsQ0FBQ0ksMkZBQXNCQSxDQUFDMkgsU0FBUyxTQUFTLENBQUM7UUFFMUQvSCxvRkFBZUEsQ0FBQ0ksMkZBQXNCQSxDQUFDMkgsU0FBUyxrQkFBa0IsSUFBSTtRQUV0RS9ILG9GQUFlQSxDQUFDSSwyRkFBc0JBLENBQUMySCxTQUFTLHFCQUFxQixXQUFZO1lBQy9FQSxPQUFPRyxjQUFjLEdBQUcsSUFBSUMsZUFBZSxTQUFVQyxPQUFPLEVBQUU7Z0JBQzVELElBQUlDLFdBQVcvSCxtRkFBY0EsQ0FBQzhILFNBQVMsSUFDbkNFLGVBQWVELFFBQVEsQ0FBQyxFQUFFO2dCQUU5Qk4sT0FBTzdELFFBQVEsQ0FBQztvQkFDZHFFLGVBQWVELGFBQWFFLFdBQVcsQ0FBQ0MsTUFBTTtnQkFDaEQ7WUFDRjtZQUVBLElBQUlWLE9BQU9XLElBQUksRUFBRTtnQkFDZixJQUFJQyxXQUFXQyxPQUFPQyxnQkFBZ0IsQ0FBQ2QsT0FBT1csSUFBSSxFQUFFLElBQUk7Z0JBRXhELElBQUlYLE9BQU9PLFlBQVksRUFBRTtvQkFDdkJQLE9BQU9HLGNBQWMsQ0FBQ1ksT0FBTyxDQUFDZixPQUFPTyxZQUFZO29CQUVqRFAsT0FBTzdELFFBQVEsQ0FBQzt3QkFDZHFFLGVBQWVSLE9BQU9PLFlBQVksQ0FBQ1MscUJBQXFCLEdBQUdOLE1BQU07d0JBQ2pFTyxhQUFhQyxTQUFTTixTQUFTTyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsTUFBTUQsU0FBU04sU0FBU08sZ0JBQWdCLENBQUMsbUJBQW1CO29CQUM5SDtnQkFDRixDQUFDO1lBQ0gsQ0FBQztRQUNIO1FBRUFsSixvRkFBZUEsQ0FBQ0ksMkZBQXNCQSxDQUFDMkgsU0FBUyxzQkFBc0IsU0FBVW9CLFNBQVMsRUFBRTtZQUN6RixJQUFJQSxVQUFVQyxRQUFRLEtBQUtyQixPQUFPcEYsS0FBSyxDQUFDeUcsUUFBUSxFQUFFO2dCQUNoRHJCLE9BQU9zQixZQUFZO1lBQ3JCLENBQUM7UUFDSDtRQUVBckosb0ZBQWVBLENBQUNJLDJGQUFzQkEsQ0FBQzJILFNBQVMsZ0JBQWdCLFdBQVk7WUFDMUUsSUFBSUEsT0FBTzNELEtBQUssQ0FBQ2dGLFFBQVEsR0FBR3JCLE9BQU91QixXQUFXLEdBQUd2QixPQUFPTyxZQUFZLEVBQUU7Z0JBQ3BFUCxPQUFPN0QsUUFBUSxDQUFDO29CQUNkcUUsZUFBZVIsT0FBTzNELEtBQUssQ0FBQ2dGLFFBQVEsR0FBR3JCLE9BQU91QixXQUFXLENBQUNQLHFCQUFxQixHQUFHTixNQUFNLEdBQUdWLE9BQU9PLFlBQVksQ0FBQ1MscUJBQXFCLEdBQUdOLE1BQU07Z0JBQy9JO1lBQ0YsQ0FBQztRQUNIO1FBRUF6SSxvRkFBZUEsQ0FBQ0ksMkZBQXNCQSxDQUFDMkgsU0FBUyxlQUFlLFNBQVUvRCxHQUFHLEVBQUU7WUFDNUUsSUFBSSxDQUFDK0QsT0FBT3BGLEtBQUssQ0FBQzRHLGFBQWEsQ0FBQ3ZGLFFBQVFBLElBQUlxQyxNQUFNLENBQUNtRCxPQUFPLEtBQUssU0FBUztnQkFDdEU7WUFDRixDQUFDO1lBRUR4RixJQUFJQyxPQUFPO1lBRVg4RCxPQUFPN0QsUUFBUSxDQUFDO2dCQUNka0YsVUFBVSxDQUFDckIsT0FBTzNELEtBQUssQ0FBQ2dGLFFBQVE7WUFDbEMsR0FBRyxXQUFZO2dCQUNiLElBQUlLLHVCQUF1QkMsY0FBY0Msc0JBQXNCQztnQkFFL0Q3QixPQUFPc0IsWUFBWSxJQUFJLCtEQUErRDtnQkFHckYsRUFBQ0ksd0JBQXdCLENBQUNDLGVBQWUzQixPQUFPcEYsS0FBSyxFQUFFOEIsV0FBVyxNQUFNLElBQUksSUFBSWdGLDBCQUEwQixLQUFLLElBQUksS0FBSyxJQUFJQSxzQkFBc0IxRixJQUFJLENBQUMyRixjQUFjMUYsSUFBSSxLQUFNLEVBQUMyRix1QkFBdUIsQ0FBQ0MsZ0JBQWdCN0IsT0FBT3BGLEtBQUssRUFBRStCLE9BQU8sTUFBTSxJQUFJLElBQUlpRix5QkFBeUIsS0FBSyxJQUFJLEtBQUssSUFBSUEscUJBQXFCNUYsSUFBSSxDQUFDNkYsZUFBZTVGLElBQUk7WUFDdFY7UUFDRjtRQUVBaEUsb0ZBQWVBLENBQUNJLDJGQUFzQkEsQ0FBQzJILFNBQVMsZUFBZSxTQUFVL0QsR0FBRyxFQUFFO1lBQzVFLElBQUlBLElBQUlxQyxNQUFNLEtBQUswQixPQUFPVyxJQUFJLEVBQUU7Z0JBQzlCLElBQUlwSCxvRUFBT0EsQ0FBQzBDLEtBQUs7b0JBQUN6Qyw2REFBS0E7b0JBQUVDLDZEQUFLQTtpQkFBQyxHQUFHO29CQUNoQ3dDLElBQUk0QixjQUFjO2dCQUNwQixDQUFDO1lBQ0gsQ0FBQztRQUNIO1FBRUE1RixvRkFBZUEsQ0FBQ0ksMkZBQXNCQSxDQUFDMkgsU0FBUyxlQUFlLFdBQVk7WUFDekUsT0FBT3hILDZEQUErQixDQUFDd0gsT0FBT3BGLEtBQUssQ0FBQ0MsUUFBUTtRQUM5RDtRQUVBLE9BQU9tRjtJQUNUO0lBRUFuSSxpRkFBWUEsQ0FBQ2dJLGdCQUFnQjtRQUFDO1lBQzVCdkYsS0FBSztZQUNMQyxPQUFPLFNBQVN5SCx1QkFBdUI7Z0JBQ3JDLElBQUksSUFBSSxDQUFDN0IsY0FBYyxFQUFFO29CQUN2QixJQUFJLENBQUNBLGNBQWMsQ0FBQzhCLFVBQVU7Z0JBQ2hDLENBQUM7WUFDSDtRQUNGO1FBQUc7WUFDRDNILEtBQUs7WUFDTEMsT0FBTyxTQUFTQyxTQUFTO2dCQUN2QixJQUFJMEgsTUFDQUMsU0FBUyxJQUFJO2dCQUVqQixJQUFJQyxlQUFlLElBQUksQ0FBQ3hILEtBQUssRUFDekI4RCxXQUFXMEQsYUFBYTFELFFBQVEsRUFDaEM1RCxZQUFZc0gsYUFBYXRILFNBQVM7Z0JBQ2xDc0gsYUFBYWYsUUFBUTtnQkFDckJlLGFBQWE1QixhQUFhO2dCQUMxQjRCLGFBQWFuQixXQUFXO2dCQUN4Qm1CLGFBQWExRixXQUFXO2dCQUN4QixJQUFJMkYsVUFBVUQsYUFBYUMsT0FBTyxFQUNsQ0Msd0JBQXdCRixhQUFhRSxxQkFBcUIsRUFDMURDLHVCQUF1QkgsYUFBYUcsb0JBQW9CLEVBQ3hEQyxxQkFBcUJKLGFBQWFJLGtCQUFrQixFQUNwREMsb0JBQW9CTCxhQUFhSyxpQkFBaUI7Z0JBQ2xETCxhQUFhWixhQUFhO2dCQUMxQixJQUFJekcsUUFBUXFILGFBQWFySCxLQUFLLEVBQzlCQyxPQUFPakQsNkZBQXdCQSxDQUFDcUssY0FBY3BJO2dCQUVsRCxJQUFJUyxTQUFTLElBQUksQ0FBQ0MsT0FBTztnQkFDekIsSUFBSWdJLGFBQWEsSUFBSSxDQUFDckcsS0FBSyxDQUFDZ0YsUUFBUTtnQkFDcEMsSUFBSWhFLFVBQVV2RSxpREFBRUEsQ0FBQyxHQUFHb0MsTUFBTSxDQUFDVCxRQUFRLFdBQVcsR0FBR1MsTUFBTSxDQUFDVCxRQUFRLHVCQUF3QnlILENBQUFBLE9BQU8sQ0FBQyxHQUFHakssb0ZBQWVBLENBQUNpSyxNQUFNLEdBQUdoSCxNQUFNLENBQUNULFFBQVEsd0JBQXdCaUksYUFBYXpLLG9GQUFlQSxDQUFDaUssTUFBTSxHQUFHaEgsTUFBTSxDQUFDVCxRQUFRLGtCQUFrQk0sUUFBUW1ILElBQUksR0FBR3BIO2dCQUN6UCxJQUFJNkgsWUFBWTtvQkFDZEMsV0FBV0YsYUFBYSxJQUFJLEdBQUcsSUFBSSxDQUFDckcsS0FBSyxDQUFDbUUsYUFBYSxHQUFHLElBQUksQ0FBQ25FLEtBQUssQ0FBQzRFLFdBQVc7Z0JBQ2xGO2dCQUNBLElBQUk0QixrQkFBa0IsSUFBSSxDQUFDQyxXQUFXO2dCQUN0QyxPQUNFLFdBQVcsR0FDWCx5R0FBeUc7Z0JBQ3pHdEssMERBQTRCLENBQUMsVUFBVUwsZ0ZBQVFBLENBQUM7b0JBQzlDbUgsTUFBTTtvQkFDTkQsS0FBSyxTQUFTQSxJQUFJc0IsSUFBSSxFQUFFO3dCQUN0QndCLE9BQU94QixJQUFJLEdBQUdBO29CQUNoQjtvQkFDQW9DLE9BQU9KO29CQUNQN0gsV0FBV3VDO29CQUNYLGlCQUFpQnFGO29CQUNqQjlELE9BQU84RCxhQUFhSCx1QkFBdUJELHFCQUFxQjtnQkFDbEUsR0FBR3RILE1BQU07b0JBQ1BxSCxTQUFTakosdUVBQW9CQSxDQUFDO3dCQUFDaUo7d0JBQVMsSUFBSSxDQUFDVyxXQUFXO3FCQUFDO29CQUN6RHJHLFNBQVMsSUFBSSxDQUFDRCxXQUFXO29CQUN6QmdDLFVBQVVBO2dCQUNaLElBQUksV0FBVyxHQUFFbEcsMERBQTRCLENBQUMsT0FBTztvQkFDbkQ2RyxLQUFLLFNBQVNBLElBQUlrQyxXQUFXLEVBQUU7d0JBQzdCWSxPQUFPWixXQUFXLEdBQUdBO29CQUN2QjtnQkFDRixHQUFHLFdBQVcsR0FBRS9JLDBEQUE0QixDQUFDLE9BQU87b0JBQ2xENkcsS0FBSyxTQUFTQSxJQUFJa0IsWUFBWSxFQUFFO3dCQUM5QjRCLE9BQU81QixZQUFZLEdBQUdBO29CQUN4QjtvQkFDQXpGLFdBQVcsR0FBR0ksTUFBTSxDQUFDVCxRQUFRO2dCQUMvQixHQUFHb0ksZUFBZSxDQUFDLEVBQUUsR0FBRyxXQUFXLEdBQUVySywwREFBNEIsQ0FBQyxPQUFPO29CQUN2RXNDLFdBQVcsR0FBR0ksTUFBTSxDQUFDVCxRQUFRO2dCQUMvQixHQUFHLFdBQVcsR0FBRWpDLDBEQUE0QixDQUFDLFFBQVEsSUFBSSxFQUFFa0ssYUFBYUQsb0JBQW9CRCxrQkFBa0IsR0FBRzVJLGdCQUFpQkEsQ0FBQUEsZUFBZSxXQUFXLEdBQUVwQiwwREFBNEIsQ0FBQ1UsNERBQVdBLEVBQUUsSUFBSSxLQUFLLFdBQVcsR0FBRVYsMERBQTRCLENBQUMsT0FBTztvQkFDaFFzQyxXQUFXLEdBQUdJLE1BQU0sQ0FBQ1QsUUFBUTtnQkFDL0IsR0FBR29JLGVBQWUsQ0FBQyxFQUFFO1lBRXpCO1FBQ0Y7S0FBRSxFQUFFO1FBQUM7WUFDSHZJLEtBQUs7WUFDTEMsT0FBTyxTQUFTK0MseUJBQ2hCMkYsS0FBSyxFQUFFNUcsS0FBSyxFQUFFO2dCQUNaLElBQUlnRixXQUFXNEIsTUFBTTVCLFFBQVEsRUFDekJiLGdCQUFnQnlDLE1BQU16QyxhQUFhLEVBQ25DUyxjQUFjZ0MsTUFBTWhDLFdBQVc7Z0JBQ25DLElBQUlpQyxlQUFlN0csTUFBTTZHLFlBQVksRUFDakNDLG9CQUFvQjlHLE1BQU04RyxpQkFBaUIsRUFDM0NDLGtCQUFrQi9HLE1BQU0rRyxlQUFlLEVBQ3ZDQyxrQkFBa0JoSCxNQUFNZ0YsUUFBUSxFQUNoQ2lDLHVCQUF1QmpILE1BQU1tRSxhQUFhLEVBQzFDK0MscUJBQXFCbEgsTUFBTTRFLFdBQVc7Z0JBQzFDLElBQUl1QyxrQkFBa0JOLGlCQUFpQjdCO2dCQUN2QyxJQUFJb0MsdUJBQXVCTixzQkFBc0IzQztnQkFDakQsSUFBSWtELHFCQUFxQk4sb0JBQW9CbkM7Z0JBQzdDLE9BQU8sQ0FBQ3VDLG1CQUFtQixDQUFDQyx3QkFBd0IsQ0FBQ0MscUJBQXFCLElBQUksR0FBRztvQkFDL0VyQyxVQUFVLENBQUNtQyxrQkFBa0JILGtCQUFrQmhDLFFBQVE7b0JBQ3ZEYixlQUFlLENBQUNpRCx1QkFBdUJILHVCQUF1QjlDLGFBQWE7b0JBQzNFUyxhQUFhLENBQUN5QyxxQkFBcUJILHFCQUFxQnRDLFdBQVc7b0JBQ25FaUMsY0FBYzdCO29CQUNkOEIsbUJBQW1CM0M7b0JBQ25CNEMsaUJBQWlCbkM7Z0JBQ25CLENBQUM7WUFDSDtRQUNGO0tBQUU7SUFFRixPQUFPcEI7QUFDVCxFQUFFcEgsNENBQVNBO0FBRVhSLG9GQUFlQSxDQUFDNEgsZ0JBQWdCLGFBQWE7SUFDM0M7O0dBRUMsR0FDRGhGLFVBQVVoQyx3REFBYztJQUV4Qjs7R0FFQyxHQUNEaUMsV0FBV2pDLDBEQUFnQjtJQUUzQjs7R0FFQyxHQUNEd0ksVUFBVXhJLHdEQUFjO0lBRXhCOztHQUVDLEdBQ0Q2RCxhQUFhdkQsb0VBQVNBLENBQUNOLHdEQUFjLEVBQUU7SUFFdkM7O0dBRUMsR0FDRDRGLElBQUk1RiwwREFBZ0I7SUFFcEI7OztHQUdDLEdBQ0RrQyxPQUFPbEMsd0RBQWM7SUFFckI7O0dBRUMsR0FDRDJJLGVBQWUzSSx3REFBYztJQUU3Qjs7SUFFRSxHQUNGOEQsU0FBUzlELHdEQUFjO0lBRXZCOztHQUVDLEdBQ0R3SixTQUFTeEosd0RBQWM7SUFFdkI7O0dBRUMsR0FDRDZGLFVBQVU3RiwwREFBZ0I7SUFFMUI7O0dBRUMsR0FDRHlKLHVCQUF1QnpKLDBEQUFnQjtJQUV2Qzs7R0FFQyxHQUNEMkosb0JBQW9CM0osMERBQWdCO0lBRXBDOztHQUVDLEdBQ0QwSixzQkFBc0IxSiwwREFBZ0I7SUFFdEM7O0dBRUMsR0FDRDRKLG1CQUFtQjVKLDBEQUFnQjtBQUNyQztBQUVBWixvRkFBZUEsQ0FBQzRILGdCQUFnQixlQUFleEcsaUVBQWFBO0FBRTVEcEIsb0ZBQWVBLENBQUM0SCxnQkFBZ0IsZ0JBQWdCO0lBQzlDbkIsVUFBVTtJQUNWMkMsVUFBVSxLQUFLO0lBQ2ZiLGVBQWU7SUFDZlMsYUFBYTtJQUNiTyxlQUFlLFNBQVNBLGdCQUFnQjtRQUN0QyxPQUFPLElBQUk7SUFDYjtJQUNBN0UsU0FBUyxTQUFTQSxVQUFVLENBQUM7SUFDN0IyRix1QkFBdUI7SUFDdkJDLHNCQUFzQjtJQUN0QnhILE9BQU8sS0FBSztBQUNkO0FBRUEsSUFBSTRJLDBCQUEwQixXQUFXLEdBQUUsU0FBVUMsV0FBVyxFQUFFO0lBQ2hFck0sOEVBQVNBLENBQUNvTSx5QkFBeUJDO0lBRW5DLElBQUlDLFVBQVVwTSxpRkFBWUEsQ0FBQ2tNO0lBRTNCLFNBQVNBLDBCQUEwQjtRQUNqQ2hNLG9GQUFlQSxDQUFDLElBQUksRUFBRWdNO1FBRXRCLE9BQU9FLFFBQVF6SixLQUFLLENBQUMsSUFBSSxFQUFFQztJQUM3QjtJQUVBeEMsaUZBQVlBLENBQUM4TCx5QkFBeUI7UUFBQztZQUNyQ3JKLEtBQUs7WUFDTEMsT0FBTyxTQUFTQyxTQUFTO2dCQUN2QixJQUFJQyxTQUFTLElBQUksQ0FBQ0MsT0FBTztnQkFDekIsSUFBSUcsV0FBVyxJQUFJLENBQUNELEtBQUssQ0FBQ0MsUUFBUTtnQkFDbEMsT0FBTyxXQUFXLEdBQUVyQywwREFBNEIsQ0FBQyxRQUFRO29CQUN2RHNDLFdBQVcsR0FBR0ksTUFBTSxDQUFDVCxRQUFRO2dCQUMvQixHQUFHSTtZQUNMO1FBQ0Y7S0FBRTtJQUVGLE9BQU84STtBQUNULEVBQUVsTCw0Q0FBU0E7QUFFWFIsb0ZBQWVBLENBQUMwTCx5QkFBeUIsYUFBYTtJQUNwRDs7R0FFQyxHQUNEOUksVUFBVWhDLHdEQUFjO0FBQzFCO0FBRUFaLG9GQUFlQSxDQUFDMEwseUJBQXlCLGVBQWV0SyxpRUFBYUE7QUFFckUsSUFBSXlLLDBCQUEwQixXQUFXLEdBQUUsU0FBVUMsV0FBVyxFQUFFO0lBQ2hFeE0sOEVBQVNBLENBQUN1TSx5QkFBeUJDO0lBRW5DLElBQUlDLFVBQVV2TSxpRkFBWUEsQ0FBQ3FNO0lBRTNCLFNBQVNBLDBCQUEwQjtRQUNqQ25NLG9GQUFlQSxDQUFDLElBQUksRUFBRW1NO1FBRXRCLE9BQU9FLFFBQVE1SixLQUFLLENBQUMsSUFBSSxFQUFFQztJQUM3QjtJQUVBeEMsaUZBQVlBLENBQUNpTSx5QkFBeUI7UUFBQztZQUNyQ3hKLEtBQUs7WUFDTEMsT0FBTyxTQUFTQyxTQUFTO2dCQUN2QixJQUFJSyxXQUFXLElBQUksQ0FBQ0QsS0FBSyxDQUFDQyxRQUFRO2dCQUNsQyxJQUFJSixTQUFTLElBQUksQ0FBQ0MsT0FBTztnQkFDekIsT0FBTyxXQUFXLEdBQUVsQywwREFBNEIsQ0FBQyxRQUFRO29CQUN2RHNDLFdBQVcsR0FBR0ksTUFBTSxDQUFDVCxRQUFRO2dCQUMvQixHQUFHSTtZQUNMO1FBQ0Y7S0FBRTtJQUVGLE9BQU9pSjtBQUNULEVBQUVyTCw0Q0FBU0E7QUFFWFIsb0ZBQWVBLENBQUM2TCx5QkFBeUIsYUFBYTtJQUNwRDs7R0FFQyxHQUNEakosVUFBVWhDLHdEQUFjO0FBQzFCO0FBRUFaLG9GQUFlQSxDQUFDNkwseUJBQXlCLGVBQWV6SyxpRUFBYUE7QUFFNEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY2FyYm9uL3JlYWN0L2VzL2NvbXBvbmVudHMvVGlsZS9UaWxlLmpzPzBjYTYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMTYsIDIwMjJcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUtMi4wIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuaW1wb3J0IHsgaW5oZXJpdHMgYXMgX2luaGVyaXRzLCBjcmVhdGVTdXBlciBhcyBfY3JlYXRlU3VwZXIsIGNsYXNzQ2FsbENoZWNrIGFzIF9jbGFzc0NhbGxDaGVjaywgY3JlYXRlQ2xhc3MgYXMgX2NyZWF0ZUNsYXNzLCBvYmplY3RXaXRob3V0UHJvcGVydGllcyBhcyBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMsIGRlZmluZVByb3BlcnR5IGFzIF9kZWZpbmVQcm9wZXJ0eSwgZXh0ZW5kcyBhcyBfZXh0ZW5kcywgYXNzZXJ0VGhpc0luaXRpYWxpemVkIGFzIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQsIHNsaWNlZFRvQXJyYXkgYXMgX3NsaWNlZFRvQXJyYXkgfSBmcm9tICcuLi8uLi9fdmlydHVhbC9fcm9sbHVwUGx1Z2luQmFiZWxIZWxwZXJzLmpzJztcbmltcG9ydCBSZWFjdF9fZGVmYXVsdCwgeyBDb21wb25lbnQsIHVzZVN0YXRlLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY3ggZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgTGluayBmcm9tICcuLi9MaW5rL0xpbmsuanMnO1xuaW1wb3J0IHsgQ2hlY2tib3hDaGVja2VkRmlsbGVkLCBDaGVja2JveCwgQ2hldnJvbkRvd24gfSBmcm9tICdAY2FyYm9uL2ljb25zLXJlYWN0JztcbmltcG9ydCBkZXByZWNhdGUgZnJvbSAnLi4vLi4vcHJvcC10eXBlcy9kZXByZWNhdGUuanMnO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tICcuLi8uLi90b29scy9ldmVudHMuanMnO1xuaW1wb3J0IHsgUHJlZml4Q29udGV4dCwgdXNlUHJlZml4IH0gZnJvbSAnLi4vLi4vaW50ZXJuYWwvdXNlUHJlZml4LmpzJztcbmltcG9ydCB7IG1hdGNoZXMgfSBmcm9tICcuLi8uLi9pbnRlcm5hbC9rZXlib2FyZC9tYXRjaC5qcyc7XG5pbXBvcnQgeyBFbnRlciwgU3BhY2UgfSBmcm9tICcuLi8uLi9pbnRlcm5hbC9rZXlib2FyZC9rZXlzLmpzJztcblxudmFyIF9DaGVja2JveENoZWNrZWRGaWxsZSwgX0NoZWNrYm94LCBfQ2hldnJvbkRvd247XG5cbnZhciBfZXhjbHVkZWQgPSBbXCJjaGlsZHJlblwiLCBcImNsYXNzTmFtZVwiLCBcImxpZ2h0XCJdLFxuICAgIF9leGNsdWRlZDIgPSBbXCJjaGlsZHJlblwiLCBcImhyZWZcIiwgXCJjbGFzc05hbWVcIiwgXCJoYW5kbGVDbGlja1wiLCBcImhhbmRsZUtleURvd25cIiwgXCJvbkNsaWNrXCIsIFwib25LZXlEb3duXCIsIFwiY2xpY2tlZFwiLCBcImxpZ2h0XCJdLFxuICAgIF9leGNsdWRlZDMgPSBbXCJjaGlsZHJlblwiLCBcImlkXCIsIFwidGFiSW5kZXhcIiwgXCJ2YWx1ZVwiLCBcIm5hbWVcIiwgXCJ0aXRsZVwiLCBcImljb25EZXNjcmlwdGlvblwiLCBcImNsYXNzTmFtZVwiLCBcImhhbmRsZUNsaWNrXCIsIFwiaGFuZGxlS2V5RG93blwiLCBcIm9uQ2xpY2tcIiwgXCJvbkNoYW5nZVwiLCBcIm9uS2V5RG93blwiLCBcImxpZ2h0XCIsIFwiZGlzYWJsZWRcIiwgXCJzZWxlY3RlZFwiXSxcbiAgICBfZXhjbHVkZWQ0ID0gW1widGFiSW5kZXhcIiwgXCJjbGFzc05hbWVcIiwgXCJleHBhbmRlZFwiLCBcInRpbGVNYXhIZWlnaHRcIiwgXCJ0aWxlUGFkZGluZ1wiLCBcImhhbmRsZUNsaWNrXCIsIFwib25LZXlVcFwiLCBcInRpbGVDb2xsYXBzZWRJY29uVGV4dFwiLCBcInRpbGVFeHBhbmRlZEljb25UZXh0XCIsIFwidGlsZUNvbGxhcHNlZExhYmVsXCIsIFwidGlsZUV4cGFuZGVkTGFiZWxcIiwgXCJvbkJlZm9yZUNsaWNrXCIsIFwibGlnaHRcIl07XG52YXIgVGlsZSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoVGlsZSwgX0NvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihUaWxlKTtcblxuICBmdW5jdGlvbiBUaWxlKCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUaWxlKTtcblxuICAgIHJldHVybiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhUaWxlLCBbe1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIHByZWZpeCA9IHRoaXMuY29udGV4dDtcblxuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBjaGlsZHJlbiA9IF90aGlzJHByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF90aGlzJHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICBsaWdodCA9IF90aGlzJHByb3BzLmxpZ2h0LFxuICAgICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3RoaXMkcHJvcHMsIF9leGNsdWRlZCk7XG5cbiAgICAgIHZhciB0aWxlQ2xhc3NlcyA9IGN4KFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGVcIiksIF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tbGlnaHRcIiksIGxpZ2h0KSwgY2xhc3NOYW1lKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgICAgIGNsYXNzTmFtZTogdGlsZUNsYXNzZXNcbiAgICAgIH0sIHJlc3QpLCBjaGlsZHJlbik7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFRpbGU7XG59KENvbXBvbmVudCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShUaWxlLCBcInByb3BUeXBlc1wiLCB7XG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgbm9kZXMuXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgbmFtZXMuXG4gICAqL1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIGB0cnVlYCB0byB1c2UgdGhlIGxpZ2h0IHZlcnNpb24uIEZvciB1c2Ugb24gJHVpLTAxIGJhY2tncm91bmRzIG9ubHkuXG4gICAqIERvbid0IHVzZSB0aGlzIHRvIG1ha2UgdGlsZSBiYWNrZ3JvdW5kIGNvbG9yIHNhbWUgYXMgY29udGFpbmVyIGJhY2tncm91bmQgY29sb3IuXG4gICAqL1xuICBsaWdodDogUHJvcFR5cGVzLmJvb2xcbn0pO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZSwgXCJjb250ZXh0VHlwZVwiLCBQcmVmaXhDb250ZXh0KTtcblxuX2RlZmluZVByb3BlcnR5KFRpbGUsIFwiZGVmYXVsdFByb3BzXCIsIHtcbiAgbGlnaHQ6IGZhbHNlXG59KTtcblxudmFyIENsaWNrYWJsZVRpbGUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9Db21wb25lbnQyKSB7XG4gIF9pbmhlcml0cyhDbGlja2FibGVUaWxlLCBfQ29tcG9uZW50Mik7XG5cbiAgdmFyIF9zdXBlcjIgPSBfY3JlYXRlU3VwZXIoQ2xpY2thYmxlVGlsZSk7XG5cbiAgZnVuY3Rpb24gQ2xpY2thYmxlVGlsZSgpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ2xpY2thYmxlVGlsZSk7XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgX3RoaXMgPSBfc3VwZXIyLmNhbGwuYXBwbHkoX3N1cGVyMiwgW3RoaXNdLmNvbmNhdChhcmdzKSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwic3RhdGVcIiwge30pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImhhbmRsZUNsaWNrXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgIGV2dC5wZXJzaXN0KCk7XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgY2xpY2tlZDogIV90aGlzLnN0YXRlLmNsaWNrZWRcbiAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzJHByb3BzJGhhbmRsZUNsaSwgX3RoaXMkcHJvcHMyLCBfdGhpcyRwcm9wcyRvbkNsaWNrLCBfdGhpcyRwcm9wczM7XG5cbiAgICAgICAgLy8gVE9ETzogUmVtb3ZlIGhhbmRsZUNsaWNrIHByb3Agd2hlbiBoYW5kbGVDbGljayBpcyBkZXByZWNhdGVkXG4gICAgICAgICgoX3RoaXMkcHJvcHMkaGFuZGxlQ2xpID0gKF90aGlzJHByb3BzMiA9IF90aGlzLnByb3BzKS5oYW5kbGVDbGljaykgPT09IG51bGwgfHwgX3RoaXMkcHJvcHMkaGFuZGxlQ2xpID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpcyRwcm9wcyRoYW5kbGVDbGkuY2FsbChfdGhpcyRwcm9wczIsIGV2dCkpIHx8ICgoX3RoaXMkcHJvcHMkb25DbGljayA9IChfdGhpcyRwcm9wczMgPSBfdGhpcy5wcm9wcykub25DbGljaykgPT09IG51bGwgfHwgX3RoaXMkcHJvcHMkb25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkcHJvcHMkb25DbGljay5jYWxsKF90aGlzJHByb3BzMywgZXZ0KSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJoYW5kbGVLZXlEb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgIGV2dC5wZXJzaXN0KCk7XG5cbiAgICAgIGlmIChtYXRjaGVzKGV2dCwgW0VudGVyLCBTcGFjZV0pKSB7XG4gICAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBjbGlja2VkOiAhX3RoaXMuc3RhdGUuY2xpY2tlZFxuICAgICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdmFyIF90aGlzJHByb3BzJGhhbmRsZUtleSwgX3RoaXMkcHJvcHM0O1xuXG4gICAgICAgICAgLy8gVE9ETzogUmVtb3ZlIGhhbmRsZUtleURvd24gcHJvcCB3aGVuIGhhbmRsZUtleURvd24gaXMgZGVwcmVjYXRlZFxuICAgICAgICAgICgoX3RoaXMkcHJvcHMkaGFuZGxlS2V5ID0gKF90aGlzJHByb3BzNCA9IF90aGlzLnByb3BzKS5oYW5kbGVLZXlEb3duKSA9PT0gbnVsbCB8fCBfdGhpcyRwcm9wcyRoYW5kbGVLZXkgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJHByb3BzJGhhbmRsZUtleS5jYWxsKF90aGlzJHByb3BzNCwgZXZ0KSkgfHwgX3RoaXMucHJvcHMub25LZXlEb3duKGV2dCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIF90aGlzJHByb3BzJGhhbmRsZUtleTIsIF90aGlzJHByb3BzNTtcblxuICAgICAgICAvLyBUT0RPOiBSZW1vdmUgaGFuZGxlS2V5RG93biBwcm9wIHdoZW4gaGFuZGxlS2V5RG93biBpcyBkZXByZWNhdGVkXG4gICAgICAgICgoX3RoaXMkcHJvcHMkaGFuZGxlS2V5MiA9IChfdGhpcyRwcm9wczUgPSBfdGhpcy5wcm9wcykuaGFuZGxlS2V5RG93bikgPT09IG51bGwgfHwgX3RoaXMkcHJvcHMkaGFuZGxlS2V5MiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkcHJvcHMkaGFuZGxlS2V5Mi5jYWxsKF90aGlzJHByb3BzNSwgZXZ0KSkgfHwgX3RoaXMucHJvcHMub25LZXlEb3duKGV2dCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQ2xpY2thYmxlVGlsZSwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfY3gyO1xuXG4gICAgICB2YXIgcHJlZml4ID0gdGhpcy5jb250ZXh0O1xuXG4gICAgICB2YXIgX3RoaXMkcHJvcHM2ID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBjaGlsZHJlbiA9IF90aGlzJHByb3BzNi5jaGlsZHJlbixcbiAgICAgICAgICBocmVmID0gX3RoaXMkcHJvcHM2LmhyZWYsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkcHJvcHM2LmNsYXNzTmFtZTtcbiAgICAgICAgICBfdGhpcyRwcm9wczYuaGFuZGxlQ2xpY2s7XG4gICAgICAgICAgX3RoaXMkcHJvcHM2LmhhbmRsZUtleURvd247XG4gICAgICAgICAgX3RoaXMkcHJvcHM2Lm9uQ2xpY2s7XG4gICAgICAgICAgX3RoaXMkcHJvcHM2Lm9uS2V5RG93bjtcbiAgICAgICAgICBfdGhpcyRwcm9wczYuY2xpY2tlZDtcbiAgICAgICAgICB2YXIgbGlnaHQgPSBfdGhpcyRwcm9wczYubGlnaHQsXG4gICAgICAgICAgcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfdGhpcyRwcm9wczYsIF9leGNsdWRlZDIpO1xuXG4gICAgICB2YXIgY2xhc3NlcyA9IGN4KFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGVcIiksIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWNsaWNrYWJsZVwiKSwgKF9jeDIgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jeDIsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWlzLWNsaWNrZWRcIiksIHRoaXMuc3RhdGUuY2xpY2tlZCksIF9kZWZpbmVQcm9wZXJ0eShfY3gyLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1saWdodFwiKSwgbGlnaHQpLCBfY3gyKSwgY2xhc3NOYW1lKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChMaW5rLCBfZXh0ZW5kcyh7XG4gICAgICAgIGhyZWY6IGhyZWYsXG4gICAgICAgIGNsYXNzTmFtZTogY2xhc3Nlc1xuICAgICAgfSwgcmVzdCwge1xuICAgICAgICBvbkNsaWNrOiB0aGlzLmhhbmRsZUNsaWNrLFxuICAgICAgICBvbktleURvd246IHRoaXMuaGFuZGxlS2V5RG93blxuICAgICAgfSksIGNoaWxkcmVuKTtcbiAgICB9XG4gIH1dLCBbe1xuICAgIGtleTogXCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNcIixcbiAgICB2YWx1ZTogLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L3Byb3AtdHlwZXNcbiAgICBmdW5jdGlvbiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoX3JlZiwgc3RhdGUpIHtcbiAgICAgIHZhciBjbGlja2VkID0gX3JlZi5jbGlja2VkO1xuICAgICAgdmFyIHByZXZDbGlja2VkID0gc3RhdGUucHJldkNsaWNrZWQ7XG4gICAgICByZXR1cm4gcHJldkNsaWNrZWQgPT09IGNsaWNrZWQgPyBudWxsIDoge1xuICAgICAgICBjbGlja2VkOiBjbGlja2VkLFxuICAgICAgICBwcmV2Q2xpY2tlZDogY2xpY2tlZFxuICAgICAgfTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQ2xpY2thYmxlVGlsZTtcbn0oQ29tcG9uZW50KTtcblxuX2RlZmluZVByb3BlcnR5KENsaWNrYWJsZVRpbGUsIFwicHJvcFR5cGVzXCIsIHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBub2Rlcy5cbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBuYW1lcy5cbiAgICovXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogRGVwcmVjYXRlZCBpbiB2MTEuIFVzZSAnb25DbGljaycgaW5zdGVhZC5cbiAgICovXG4gIGhhbmRsZUNsaWNrOiBkZXByZWNhdGUoUHJvcFR5cGVzLmZ1bmMsICdUaGUgaGFuZGxlQ2xpY2sgcHJvcCBmb3IgQ2xpY2thYmxlVGlsZSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mIG9uQ2xpY2suIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLicpLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSBmdW5jdGlvbiB0byBydW4gd2hlbiB0aGUgQ2xpY2thYmxlVGlsZSBpcyBpbnRlcmFjdGVkIHdpdGggdmlhIGEga2V5Ym9hcmRcbiAgICovXG4gIGhhbmRsZUtleURvd246IGRlcHJlY2F0ZShQcm9wVHlwZXMuZnVuYywgJ1RoZSBoYW5kbGVLZXlEb3duIHByb3AgZm9yIENsaWNrYWJsZVRpbGUgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBvbktleURvd24uIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLicpLFxuXG4gIC8qKlxuICAgKiBUaGUgaHJlZiBmb3IgdGhlIGxpbmsuXG4gICAqL1xuICBocmVmOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgdG8gdXNlIHRoZSBsaWdodCB2ZXJzaW9uLiBGb3IgdXNlIG9uICR1aS0wMSBiYWNrZ3JvdW5kcyBvbmx5LlxuICAgKiBEb24ndCB1c2UgdGhpcyB0byBtYWtlIHRpbGUgYmFja2dyb3VuZCBjb2xvciBzYW1lIGFzIGNvbnRhaW5lciBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgKi9cbiAgbGlnaHQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSBmdW5jdGlvbiB0byBydW4gd2hlbiB0aGUgQ2xpY2thYmxlVGlsZSBpcyBjbGlja2VkXG4gICAqL1xuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIENsaWNrYWJsZVRpbGUgaXMgaW50ZXJhY3RlZCB3aXRoIHZpYSBhIGtleWJvYXJkXG4gICAqL1xuICBvbktleURvd246IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBUaGUgcmVsIHByb3BlcnR5IGZvciB0aGUgbGluay5cbiAgICovXG4gIHJlbDogUHJvcFR5cGVzLnN0cmluZ1xufSk7XG5cbl9kZWZpbmVQcm9wZXJ0eShDbGlja2FibGVUaWxlLCBcImNvbnRleHRUeXBlXCIsIFByZWZpeENvbnRleHQpO1xuXG5fZGVmaW5lUHJvcGVydHkoQ2xpY2thYmxlVGlsZSwgXCJkZWZhdWx0UHJvcHNcIiwge1xuICBjbGlja2VkOiBmYWxzZSxcbiAgb25DbGljazogZnVuY3Rpb24gb25DbGljaygpIHt9LFxuICBvbktleURvd246IGZ1bmN0aW9uIG9uS2V5RG93bigpIHt9LFxuICBsaWdodDogZmFsc2Vcbn0pO1xuXG5mdW5jdGlvbiBTZWxlY3RhYmxlVGlsZShwcm9wcykge1xuICB2YXIgX2N4MztcblxuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgIGlkID0gcHJvcHMuaWQsXG4gICAgICB0YWJJbmRleCA9IHByb3BzLnRhYkluZGV4LFxuICAgICAgdmFsdWUgPSBwcm9wcy52YWx1ZSxcbiAgICAgIG5hbWUgPSBwcm9wcy5uYW1lLFxuICAgICAgdGl0bGUgPSBwcm9wcy50aXRsZTtcbiAgICAgIHByb3BzLmljb25EZXNjcmlwdGlvbjtcbiAgICAgIHZhciBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsXG4gICAgICBoYW5kbGVDbGljayA9IHByb3BzLmhhbmRsZUNsaWNrLFxuICAgICAgaGFuZGxlS2V5RG93biA9IHByb3BzLmhhbmRsZUtleURvd24sXG4gICAgICBvbkNsaWNrID0gcHJvcHMub25DbGljayxcbiAgICAgIG9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2UsXG4gICAgICBvbktleURvd24gPSBwcm9wcy5vbktleURvd24sXG4gICAgICBsaWdodCA9IHByb3BzLmxpZ2h0LFxuICAgICAgZGlzYWJsZWQgPSBwcm9wcy5kaXNhYmxlZCxcbiAgICAgIHNlbGVjdGVkID0gcHJvcHMuc2VsZWN0ZWQsXG4gICAgICByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHByb3BzLCBfZXhjbHVkZWQzKTtcblxuICB2YXIgcHJlZml4ID0gdXNlUHJlZml4KCk7IC8vIFRPRE86IHJlcGxhY2Ugd2l0aCBvbkNsaWNrIHdoZW4gaGFuZGxlQ2xpY2sgcHJvcCBpcyBkZXByZWNhdGVkXG5cbiAgdmFyIGNsaWNrSGFuZGxlciA9IGhhbmRsZUNsaWNrIHx8IG9uQ2xpY2s7IC8vIFRPRE86IHJlcGxhY2Ugd2l0aCBvbktleURvd24gd2hlbiBoYW5kbGVLZXlEb3duIHByb3AgaXMgZGVwcmVjYXRlZFxuXG4gIHZhciBrZXlEb3duSGFuZGxlciA9IGhhbmRsZUtleURvd24gfHwgb25LZXlEb3duO1xuXG4gIHZhciBfdXNlU3RhdGUgPSB1c2VTdGF0ZShzZWxlY3RlZCksXG4gICAgICBfdXNlU3RhdGUyID0gX3NsaWNlZFRvQXJyYXkoX3VzZVN0YXRlLCAyKSxcbiAgICAgIGlzU2VsZWN0ZWQgPSBfdXNlU3RhdGUyWzBdLFxuICAgICAgc2V0SXNTZWxlY3RlZCA9IF91c2VTdGF0ZTJbMV07XG5cbiAgdmFyIGlucHV0ID0gdXNlUmVmKG51bGwpO1xuICB2YXIgY2xhc3NlcyA9IGN4KFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGVcIiksIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLXNlbGVjdGFibGVcIiksIChfY3gzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY3gzLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1pcy1zZWxlY3RlZFwiKSwgaXNTZWxlY3RlZCksIF9kZWZpbmVQcm9wZXJ0eShfY3gzLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1saWdodFwiKSwgbGlnaHQpLCBfZGVmaW5lUHJvcGVydHkoX2N4MywgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tZGlzYWJsZWRcIiksIGRpc2FibGVkKSwgX2N4MyksIGNsYXNzTmFtZSk7XG4gIHZhciBpbnB1dENsYXNzZXMgPSBjeChcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLWlucHV0XCIpLCBfZGVmaW5lUHJvcGVydHkoe30sIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtaW5wdXQtLWNoZWNrZWRcIiksIGlzU2VsZWN0ZWQpKTsgLy8gVE9ETzogcmVuYW1lIHRvIGhhbmRsZUNsaWNrIHdoZW4gaGFuZGxlQ2xpY2sgcHJvcCBpcyBkZXByZWNhdGVkXG5cbiAgZnVuY3Rpb24gaGFuZGxlT25DbGljayhldnQpIHtcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldnQucGVyc2lzdCgpO1xuICAgIHNldElzU2VsZWN0ZWQoIWlzU2VsZWN0ZWQpO1xuICAgIGNsaWNrSGFuZGxlcihldnQpO1xuICAgIG9uQ2hhbmdlKGV2dCk7XG4gIH0gLy8gVE9ETzogcmVuYW1lIHRvIGhhbmRsZUtleURvd24gd2hlbiBoYW5kbGVLZXlEb3duIHByb3AgaXMgZGVwcmVjYXRlZFxuXG5cbiAgZnVuY3Rpb24gaGFuZGxlT25LZXlEb3duKGV2dCkge1xuICAgIGV2dC5wZXJzaXN0KCk7XG5cbiAgICBpZiAobWF0Y2hlcyhldnQsIFtFbnRlciwgU3BhY2VdKSkge1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBzZXRJc1NlbGVjdGVkKCFpc1NlbGVjdGVkKTtcbiAgICAgIG9uQ2hhbmdlKGV2dCk7XG4gICAgfVxuXG4gICAga2V5RG93bkhhbmRsZXIoZXZ0KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShldmVudCkge1xuICAgIHNldElzU2VsZWN0ZWQoZXZlbnQudGFyZ2V0LmNoZWNrZWQpO1xuICAgIG9uQ2hhbmdlKGV2ZW50KTtcbiAgfVxuXG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgc2V0SXNTZWxlY3RlZChzZWxlY3RlZCk7XG4gIH0sIFtzZWxlY3RlZF0pO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoUmVhY3RfX2RlZmF1bHQuRnJhZ21lbnQsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge1xuICAgIHJlZjogaW5wdXQsXG4gICAgdGFiSW5kZXg6IC0xLFxuICAgIGlkOiBpZCxcbiAgICBjbGFzc05hbWU6IGlucHV0Q2xhc3NlcyxcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgb25DaGFuZ2U6ICFkaXNhYmxlZCA/IGhhbmRsZUNoYW5nZSA6IG51bGwsXG4gICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICBuYW1lOiBuYW1lLFxuICAgIHRpdGxlOiB0aXRsZSxcbiAgICBjaGVja2VkOiBpc1NlbGVjdGVkXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImxhYmVsXCIsIF9leHRlbmRzKHtcbiAgICBodG1sRm9yOiBpZCxcbiAgICBjbGFzc05hbWU6IGNsYXNzZXMgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzeC1hMTF5L25vLW5vbmludGVyYWN0aXZlLXRhYmluZGV4XG4gICAgLFxuICAgIHRhYkluZGV4OiAhZGlzYWJsZWQgPyB0YWJJbmRleCA6IG51bGxcbiAgfSwgcmVzdCwge1xuICAgIG9uQ2xpY2s6ICFkaXNhYmxlZCA/IGhhbmRsZU9uQ2xpY2sgOiBudWxsLFxuICAgIG9uS2V5RG93bjogIWRpc2FibGVkID8gaGFuZGxlT25LZXlEb3duIDogbnVsbFxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGVfX2NoZWNrbWFyayBcIikuY29uY2F0KHByZWZpeCwgXCItLXRpbGVfX2NoZWNrbWFyay0tcGVyc2lzdGVudFwiKVxuICB9LCBpc1NlbGVjdGVkID8gX0NoZWNrYm94Q2hlY2tlZEZpbGxlIHx8IChfQ2hlY2tib3hDaGVja2VkRmlsbGUgPSAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChDaGVja2JveENoZWNrZWRGaWxsZWQsIG51bGwpKSA6IF9DaGVja2JveCB8fCAoX0NoZWNrYm94ID0gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQ2hlY2tib3gsIG51bGwpKSksIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLWNvbnRlbnRcIilcbiAgfSwgY2hpbGRyZW4pKSk7XG59XG5TZWxlY3RhYmxlVGlsZS5kZWZhdWx0UHJvcHMgPSB7XG4gIHZhbHVlOiAndmFsdWUnLFxuICB0aXRsZTogJ3RpdGxlJyxcbiAgc2VsZWN0ZWQ6IGZhbHNlLFxuICB0YWJJbmRleDogMCxcbiAgbGlnaHQ6IGZhbHNlLFxuICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKCkge30sXG4gIG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZSgpIHt9LFxuICBvbktleURvd246IGZ1bmN0aW9uIG9uS2V5RG93bigpIHt9XG59O1xuU2VsZWN0YWJsZVRpbGUucHJvcFR5cGVzID0ge1xuICAvKipcbiAgICogVGhlIGNoaWxkIG5vZGVzLlxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIG5hbWVzLlxuICAgKi9cbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoZXRoZXIgdGhlIFNlbGVjdGFibGVUaWxlIHNob3VsZCBiZSBkaXNhYmxlZFxuICAgKi9cbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSBmdW5jdGlvbiB0byBydW4gd2hlbiB0aGUgU2VsZWN0YWJsZVRpbGUgaXMgY2xpY2tlZFxuICAgKi9cbiAgaGFuZGxlQ2xpY2s6IGRlcHJlY2F0ZShQcm9wVHlwZXMuZnVuYywgJ1RoZSBgaGFuZGxlQ2xpY2tgIHByb3AgZm9yIGBTZWxlY3RhYmxlVGlsZWAgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBgb25DbGlja2AuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLicpLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSBmdW5jdGlvbiB0byBydW4gd2hlbiB0aGUgU2VsZWN0YWJsZVRpbGUgaXMgaW50ZXJhY3RlZCB3aXRoIHZpYSBhIGtleWJvYXJkXG4gICAqL1xuICBoYW5kbGVLZXlEb3duOiBkZXByZWNhdGUoUHJvcFR5cGVzLmZ1bmMsICdUaGUgYGhhbmRsZUtleURvd25gIHByb3AgZm9yIGBTZWxlY3RhYmxlVGlsZWAgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBgb25LZXlEb3duYC4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJyksXG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgY2hlY2ttYXJrIGljb24uXG4gICAqL1xuICBpY29uRGVzY3JpcHRpb246IGRlcHJlY2F0ZShQcm9wVHlwZXMuc3RyaW5nLCAnVGhlIGBpY29uRGVzY3JpcHRpb25gIHByb3AgZm9yIGBTZWxlY3RhYmxlVGlsZWAgaXMgbm8gbG9uZ2VyIG5lZWRlZCBhbmQgaGFzICcgKyAnYmVlbiBkZXByZWNhdGVkLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4nKSxcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBgPGlucHV0PmAuXG4gICAqL1xuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogYHRydWVgIHRvIHVzZSB0aGUgbGlnaHQgdmVyc2lvbi4gRm9yIHVzZSBvbiAkdWktMDEgYmFja2dyb3VuZHMgb25seS5cbiAgICogRG9uJ3QgdXNlIHRoaXMgdG8gbWFrZSB0aWxlIGJhY2tncm91bmQgY29sb3Igc2FtZSBhcyBjb250YWluZXIgYmFja2dyb3VuZCBjb2xvci5cbiAgICovXG4gIGxpZ2h0OiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogVGhlIGBuYW1lYCBvZiB0aGUgYDxpbnB1dD5gLlxuICAgKi9cbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogVGhlIGVtcHR5IGhhbmRsZXIgb2YgdGhlIGA8aW5wdXQ+YC5cbiAgICovXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIFNlbGVjdGFibGVUaWxlIGlzIGNsaWNrZWRcbiAgICovXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSBmdW5jdGlvbiB0byBydW4gd2hlbiB0aGUgU2VsZWN0YWJsZVRpbGUgaXMgaW50ZXJhY3RlZCB3aXRoIHZpYSBhIGtleWJvYXJkXG4gICAqL1xuICBvbktleURvd246IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgdG8gc2VsZWN0IHRoaXMgdGlsZS5cbiAgICovXG4gIHNlbGVjdGVkOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgdGFiIGluZGV4IG9mIHRoZSB3cmFwcGVyIGVsZW1lbnRcbiAgICovXG4gIHRhYkluZGV4OiBQcm9wVHlwZXMubnVtYmVyLFxuXG4gIC8qKlxuICAgKiBUaGUgYHRpdGxlYCBvZiB0aGUgYDxpbnB1dD5gLlxuICAgKi9cbiAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgYDxpbnB1dD5gLlxuICAgKi9cbiAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKS5pc1JlcXVpcmVkXG59O1xudmFyIEV4cGFuZGFibGVUaWxlID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50Mykge1xuICBfaW5oZXJpdHMoRXhwYW5kYWJsZVRpbGUsIF9Db21wb25lbnQzKTtcblxuICB2YXIgX3N1cGVyMyA9IF9jcmVhdGVTdXBlcihFeHBhbmRhYmxlVGlsZSk7XG5cbiAgZnVuY3Rpb24gRXhwYW5kYWJsZVRpbGUoKSB7XG4gICAgdmFyIF90aGlzMjtcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBFeHBhbmRhYmxlVGlsZSk7XG5cbiAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjIpLCBfa2V5MiA9IDA7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgIGFyZ3NbX2tleTJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICB9XG5cbiAgICBfdGhpczIgPSBfc3VwZXIzLmNhbGwuYXBwbHkoX3N1cGVyMywgW3RoaXNdLmNvbmNhdChhcmdzKSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpczIpLCBcInN0YXRlXCIsIHt9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMiksIFwicmVzaXplT2JzZXJ2ZXJcIiwgbnVsbCk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpczIpLCBcImNvbXBvbmVudERpZE1vdW50XCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzMi5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihmdW5jdGlvbiAoZW50cmllcykge1xuICAgICAgICB2YXIgX2VudHJpZXMgPSBfc2xpY2VkVG9BcnJheShlbnRyaWVzLCAxKSxcbiAgICAgICAgICAgIGFib3ZlVGhlRm9sZCA9IF9lbnRyaWVzWzBdO1xuXG4gICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgdGlsZU1heEhlaWdodDogYWJvdmVUaGVGb2xkLmNvbnRlbnRSZWN0LmhlaWdodFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoX3RoaXMyLnRpbGUpIHtcbiAgICAgICAgdmFyIGdldFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoX3RoaXMyLnRpbGUsIG51bGwpO1xuXG4gICAgICAgIGlmIChfdGhpczIuYWJvdmVUaGVGb2xkKSB7XG4gICAgICAgICAgX3RoaXMyLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoX3RoaXMyLmFib3ZlVGhlRm9sZCk7XG5cbiAgICAgICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICAgICAgdGlsZU1heEhlaWdodDogX3RoaXMyLmFib3ZlVGhlRm9sZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQsXG4gICAgICAgICAgICB0aWxlUGFkZGluZzogcGFyc2VJbnQoZ2V0U3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy10b3AnKSwgMTApICsgcGFyc2VJbnQoZ2V0U3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy1ib3R0b20nKSwgMTApXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMiksIFwiY29tcG9uZW50RGlkVXBkYXRlXCIsIGZ1bmN0aW9uIChwcmV2UHJvcHMpIHtcbiAgICAgIGlmIChwcmV2UHJvcHMuZXhwYW5kZWQgIT09IF90aGlzMi5wcm9wcy5leHBhbmRlZCkge1xuICAgICAgICBfdGhpczIuc2V0TWF4SGVpZ2h0KCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpczIpLCBcInNldE1heEhlaWdodFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoX3RoaXMyLnN0YXRlLmV4cGFuZGVkID8gX3RoaXMyLnRpbGVDb250ZW50IDogX3RoaXMyLmFib3ZlVGhlRm9sZCkge1xuICAgICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICAgIHRpbGVNYXhIZWlnaHQ6IF90aGlzMi5zdGF0ZS5leHBhbmRlZCA/IF90aGlzMi50aWxlQ29udGVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgOiBfdGhpczIuYWJvdmVUaGVGb2xkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMiksIFwiaGFuZGxlQ2xpY2tcIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgaWYgKCFfdGhpczIucHJvcHMub25CZWZvcmVDbGljayhldnQpIHx8IGV2dC50YXJnZXQudGFnTmFtZSA9PT0gJ0lOUFVUJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGV2dC5wZXJzaXN0KCk7XG5cbiAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgIGV4cGFuZGVkOiAhX3RoaXMyLnN0YXRlLmV4cGFuZGVkXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpczIkcHJvcHMkaGFuZGxlQ2wsIF90aGlzMiRwcm9wcywgX3RoaXMyJHByb3BzJG9uQ2xpY2ssIF90aGlzMiRwcm9wczI7XG5cbiAgICAgICAgX3RoaXMyLnNldE1heEhlaWdodCgpOyAvLyBUT0RPOiBSZW1vdmUgaGFuZGxlQ2xpY2sgcHJvcCB3aGVuIGhhbmRsZUNsaWNrIGlzIGRlcHJlY2F0ZWRcblxuXG4gICAgICAgICgoX3RoaXMyJHByb3BzJGhhbmRsZUNsID0gKF90aGlzMiRwcm9wcyA9IF90aGlzMi5wcm9wcykuaGFuZGxlQ2xpY2spID09PSBudWxsIHx8IF90aGlzMiRwcm9wcyRoYW5kbGVDbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMyJHByb3BzJGhhbmRsZUNsLmNhbGwoX3RoaXMyJHByb3BzLCBldnQpKSB8fCAoKF90aGlzMiRwcm9wcyRvbkNsaWNrID0gKF90aGlzMiRwcm9wczIgPSBfdGhpczIucHJvcHMpLm9uQ2xpY2spID09PSBudWxsIHx8IF90aGlzMiRwcm9wcyRvbkNsaWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpczIkcHJvcHMkb25DbGljay5jYWxsKF90aGlzMiRwcm9wczIsIGV2dCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpczIpLCBcImhhbmRsZUtleVVwXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgIGlmIChldnQudGFyZ2V0ICE9PSBfdGhpczIudGlsZSkge1xuICAgICAgICBpZiAobWF0Y2hlcyhldnQsIFtFbnRlciwgU3BhY2VdKSkge1xuICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpczIpLCBcImdldENoaWxkcmVuXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBSZWFjdF9fZGVmYXVsdC5DaGlsZHJlbi50b0FycmF5KF90aGlzMi5wcm9wcy5jaGlsZHJlbik7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gX3RoaXMyO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEV4cGFuZGFibGVUaWxlLCBbe1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF9jeDUsXG4gICAgICAgICAgX3RoaXMzID0gdGhpcztcblxuICAgICAgdmFyIF90aGlzJHByb3BzNyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgdGFiSW5kZXggPSBfdGhpcyRwcm9wczcudGFiSW5kZXgsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkcHJvcHM3LmNsYXNzTmFtZTtcbiAgICAgICAgICBfdGhpcyRwcm9wczcuZXhwYW5kZWQ7XG4gICAgICAgICAgX3RoaXMkcHJvcHM3LnRpbGVNYXhIZWlnaHQ7XG4gICAgICAgICAgX3RoaXMkcHJvcHM3LnRpbGVQYWRkaW5nO1xuICAgICAgICAgIF90aGlzJHByb3BzNy5oYW5kbGVDbGljaztcbiAgICAgICAgICB2YXIgb25LZXlVcCA9IF90aGlzJHByb3BzNy5vbktleVVwLFxuICAgICAgICAgIHRpbGVDb2xsYXBzZWRJY29uVGV4dCA9IF90aGlzJHByb3BzNy50aWxlQ29sbGFwc2VkSWNvblRleHQsXG4gICAgICAgICAgdGlsZUV4cGFuZGVkSWNvblRleHQgPSBfdGhpcyRwcm9wczcudGlsZUV4cGFuZGVkSWNvblRleHQsXG4gICAgICAgICAgdGlsZUNvbGxhcHNlZExhYmVsID0gX3RoaXMkcHJvcHM3LnRpbGVDb2xsYXBzZWRMYWJlbCxcbiAgICAgICAgICB0aWxlRXhwYW5kZWRMYWJlbCA9IF90aGlzJHByb3BzNy50aWxlRXhwYW5kZWRMYWJlbDtcbiAgICAgICAgICBfdGhpcyRwcm9wczcub25CZWZvcmVDbGljaztcbiAgICAgICAgICB2YXIgbGlnaHQgPSBfdGhpcyRwcm9wczcubGlnaHQsXG4gICAgICAgICAgcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfdGhpcyRwcm9wczcsIF9leGNsdWRlZDQpO1xuXG4gICAgICB2YXIgcHJlZml4ID0gdGhpcy5jb250ZXh0O1xuICAgICAgdmFyIGlzRXhwYW5kZWQgPSB0aGlzLnN0YXRlLmV4cGFuZGVkO1xuICAgICAgdmFyIGNsYXNzZXMgPSBjeChcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlXCIpLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1leHBhbmRhYmxlXCIpLCAoX2N4NSA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2N4NSwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0taXMtZXhwYW5kZWRcIiksIGlzRXhwYW5kZWQpLCBfZGVmaW5lUHJvcGVydHkoX2N4NSwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tbGlnaHRcIiksIGxpZ2h0KSwgX2N4NSksIGNsYXNzTmFtZSk7XG4gICAgICB2YXIgdGlsZVN0eWxlID0ge1xuICAgICAgICBtYXhIZWlnaHQ6IGlzRXhwYW5kZWQgPyBudWxsIDogdGhpcy5zdGF0ZS50aWxlTWF4SGVpZ2h0ICsgdGhpcy5zdGF0ZS50aWxlUGFkZGluZ1xuICAgICAgfTtcbiAgICAgIHZhciBjaGlsZHJlbkFzQXJyYXkgPSB0aGlzLmdldENoaWxkcmVuKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAvKiNfX1BVUkVfXyovXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzLGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9uc1xuICAgICAgICBSZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIF9leHRlbmRzKHtcbiAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgIHJlZjogZnVuY3Rpb24gcmVmKHRpbGUpIHtcbiAgICAgICAgICAgIF90aGlzMy50aWxlID0gdGlsZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN0eWxlOiB0aWxlU3R5bGUsXG4gICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzLFxuICAgICAgICAgIFwiYXJpYS1leHBhbmRlZFwiOiBpc0V4cGFuZGVkLFxuICAgICAgICAgIHRpdGxlOiBpc0V4cGFuZGVkID8gdGlsZUV4cGFuZGVkSWNvblRleHQgOiB0aWxlQ29sbGFwc2VkSWNvblRleHRcbiAgICAgICAgfSwgcmVzdCwge1xuICAgICAgICAgIG9uS2V5VXA6IGNvbXBvc2VFdmVudEhhbmRsZXJzKFtvbktleVVwLCB0aGlzLmhhbmRsZUtleVVwXSksXG4gICAgICAgICAgb25DbGljazogdGhpcy5oYW5kbGVDbGljayxcbiAgICAgICAgICB0YWJJbmRleDogdGFiSW5kZXhcbiAgICAgICAgfSksIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICByZWY6IGZ1bmN0aW9uIHJlZih0aWxlQ29udGVudCkge1xuICAgICAgICAgICAgX3RoaXMzLnRpbGVDb250ZW50ID0gdGlsZUNvbnRlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgcmVmOiBmdW5jdGlvbiByZWYoYWJvdmVUaGVGb2xkKSB7XG4gICAgICAgICAgICBfdGhpczMuYWJvdmVUaGVGb2xkID0gYWJvdmVUaGVGb2xkO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLWNvbnRlbnRcIilcbiAgICAgICAgfSwgY2hpbGRyZW5Bc0FycmF5WzBdKSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZV9fY2hldnJvblwiKVxuICAgICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgbnVsbCwgaXNFeHBhbmRlZCA/IHRpbGVFeHBhbmRlZExhYmVsIDogdGlsZUNvbGxhcHNlZExhYmVsKSwgX0NoZXZyb25Eb3duIHx8IChfQ2hldnJvbkRvd24gPSAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChDaGV2cm9uRG93biwgbnVsbCkpKSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1jb250ZW50XCIpXG4gICAgICAgIH0sIGNoaWxkcmVuQXNBcnJheVsxXSkpKVxuICAgICAgKTtcbiAgICB9XG4gIH1dLCBbe1xuICAgIGtleTogXCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKCAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvcHJvcC10eXBlc1xuICAgIF9yZWYyLCBzdGF0ZSkge1xuICAgICAgdmFyIGV4cGFuZGVkID0gX3JlZjIuZXhwYW5kZWQsXG4gICAgICAgICAgdGlsZU1heEhlaWdodCA9IF9yZWYyLnRpbGVNYXhIZWlnaHQsXG4gICAgICAgICAgdGlsZVBhZGRpbmcgPSBfcmVmMi50aWxlUGFkZGluZztcbiAgICAgIHZhciBwcmV2RXhwYW5kZWQgPSBzdGF0ZS5wcmV2RXhwYW5kZWQsXG4gICAgICAgICAgcHJldlRpbGVNYXhIZWlnaHQgPSBzdGF0ZS5wcmV2VGlsZU1heEhlaWdodCxcbiAgICAgICAgICBwcmV2VGlsZVBhZGRpbmcgPSBzdGF0ZS5wcmV2VGlsZVBhZGRpbmcsXG4gICAgICAgICAgY3VycmVudEV4cGFuZGVkID0gc3RhdGUuZXhwYW5kZWQsXG4gICAgICAgICAgY3VycmVudFRpbGVNYXhIZWlnaHQgPSBzdGF0ZS50aWxlTWF4SGVpZ2h0LFxuICAgICAgICAgIGN1cnJlbnRUaWxlUGFkZGluZyA9IHN0YXRlLnRpbGVQYWRkaW5nO1xuICAgICAgdmFyIGV4cGFuZGVkQ2hhbmdlZCA9IHByZXZFeHBhbmRlZCAhPT0gZXhwYW5kZWQ7XG4gICAgICB2YXIgdGlsZU1heEhlaWdodENoYW5nZWQgPSBwcmV2VGlsZU1heEhlaWdodCAhPT0gdGlsZU1heEhlaWdodDtcbiAgICAgIHZhciB0aWxlUGFkZGluZ0NoYW5nZWQgPSBwcmV2VGlsZVBhZGRpbmcgIT09IHRpbGVQYWRkaW5nO1xuICAgICAgcmV0dXJuICFleHBhbmRlZENoYW5nZWQgJiYgIXRpbGVNYXhIZWlnaHRDaGFuZ2VkICYmICF0aWxlUGFkZGluZ0NoYW5nZWQgPyBudWxsIDoge1xuICAgICAgICBleHBhbmRlZDogIWV4cGFuZGVkQ2hhbmdlZCA/IGN1cnJlbnRFeHBhbmRlZCA6IGV4cGFuZGVkLFxuICAgICAgICB0aWxlTWF4SGVpZ2h0OiAhdGlsZU1heEhlaWdodENoYW5nZWQgPyBjdXJyZW50VGlsZU1heEhlaWdodCA6IHRpbGVNYXhIZWlnaHQsXG4gICAgICAgIHRpbGVQYWRkaW5nOiAhdGlsZVBhZGRpbmdDaGFuZ2VkID8gY3VycmVudFRpbGVQYWRkaW5nIDogdGlsZVBhZGRpbmcsXG4gICAgICAgIHByZXZFeHBhbmRlZDogZXhwYW5kZWQsXG4gICAgICAgIHByZXZUaWxlTWF4SGVpZ2h0OiB0aWxlTWF4SGVpZ2h0LFxuICAgICAgICBwcmV2VGlsZVBhZGRpbmc6IHRpbGVQYWRkaW5nXG4gICAgICB9O1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBFeHBhbmRhYmxlVGlsZTtcbn0oQ29tcG9uZW50KTtcblxuX2RlZmluZVByb3BlcnR5KEV4cGFuZGFibGVUaWxlLCBcInByb3BUeXBlc1wiLCB7XG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgbm9kZXMuXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgbmFtZXMuXG4gICAqL1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIGB0cnVlYCBpZiB0aGUgdGlsZSBpcyBleHBhbmRlZC5cbiAgICovXG4gIGV4cGFuZGVkOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogRGVwcmVjYXRlZCBpbiB2MTEuIFVzZSAnb25DbGljaycgaW5zdGVhZC5cbiAgICovXG4gIGhhbmRsZUNsaWNrOiBkZXByZWNhdGUoUHJvcFR5cGVzLmZ1bmMsICdUaGUgaGFuZGxlQ2xpY2sgcHJvcCBmb3IgRXhwYW5kYWJsZVRpbGUgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBvbkNsaWNrLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4nKSxcblxuICAvKipcbiAgICogQW4gSUQgdGhhdCBjYW4gYmUgcHJvdmlkZWQgdG8gYXJpYS1sYWJlbGxlZGJ5XG4gICAqL1xuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogYHRydWVgIHRvIHVzZSB0aGUgbGlnaHQgdmVyc2lvbi4gRm9yIHVzZSBvbiAkdWktMDEgYmFja2dyb3VuZHMgb25seS5cbiAgICogRG9uJ3QgdXNlIHRoaXMgdG8gbWFrZSB0aWxlIGJhY2tncm91bmQgY29sb3Igc2FtZSBhcyBjb250YWluZXIgYmFja2dyb3VuZCBjb2xvci5cbiAgICovXG4gIGxpZ2h0OiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogb3B0aW9uYWwgaGFuZGxlciB0byBkZWNpZGUgd2hldGhlciB0byBpZ25vcmUgYSBjbGljay4gcmV0dXJucyBmYWxzZSBpZiBjbGljayBzaG91bGQgYmUgaWdub3JlZFxuICAgKi9cbiAgb25CZWZvcmVDbGljazogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBFeHBhbmRhYmxlVGlsZSBpcyBjbGlja2VkXG4gICAgKi9cbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIG9wdGlvbmFsIGhhbmRsZXIgdG8gdHJpZ2dlciBhIGZ1bmN0aW9uIHdoZW4gYSBrZXkgaXMgcHJlc3NlZFxuICAgKi9cbiAgb25LZXlVcDogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIFRoZSBgdGFiaW5kZXhgIGF0dHJpYnV0ZS5cbiAgICovXG4gIHRhYkluZGV4OiBQcm9wVHlwZXMubnVtYmVyLFxuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIFwiY29sbGFwc2VkXCIgaWNvbiB0aGF0IGNhbiBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXJzLlxuICAgKi9cbiAgdGlsZUNvbGxhcHNlZEljb25UZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBXaGVuIFwiY29sbGFwc2VkXCIsIGEgbGFiZWwgdG8gYXBwZWFyIG5leHQgdG8gdGhlIGNoZXZyb24gKGUuZy4sIFwiVmlldyBtb3JlXCIpLlxuICAgKi9cbiAgdGlsZUNvbGxhcHNlZExhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIFwiZXhwYW5kZWRcIiBpY29uIHRoYXQgY2FuIGJlIHJlYWQgYnkgc2NyZWVuIHJlYWRlcnMuXG4gICAqL1xuICB0aWxlRXhwYW5kZWRJY29uVGV4dDogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogV2hlbiBcImV4cGFuZGVkXCIsIGEgbGFiZWwgdG8gYXBwZWFyIG5leHQgdG8gdGhlIGNoZXZyb24gKGUuZy4sIFwiVmlldyBsZXNzXCIpLlxuICAgKi9cbiAgdGlsZUV4cGFuZGVkTGFiZWw6IFByb3BUeXBlcy5zdHJpbmdcbn0pO1xuXG5fZGVmaW5lUHJvcGVydHkoRXhwYW5kYWJsZVRpbGUsIFwiY29udGV4dFR5cGVcIiwgUHJlZml4Q29udGV4dCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShFeHBhbmRhYmxlVGlsZSwgXCJkZWZhdWx0UHJvcHNcIiwge1xuICB0YWJJbmRleDogMCxcbiAgZXhwYW5kZWQ6IGZhbHNlLFxuICB0aWxlTWF4SGVpZ2h0OiAwLFxuICB0aWxlUGFkZGluZzogMCxcbiAgb25CZWZvcmVDbGljazogZnVuY3Rpb24gb25CZWZvcmVDbGljaygpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcbiAgb25DbGljazogZnVuY3Rpb24gb25DbGljaygpIHt9LFxuICB0aWxlQ29sbGFwc2VkSWNvblRleHQ6ICdJbnRlcmFjdCB0byBleHBhbmQgVGlsZScsXG4gIHRpbGVFeHBhbmRlZEljb25UZXh0OiAnSW50ZXJhY3QgdG8gY29sbGFwc2UgVGlsZScsXG4gIGxpZ2h0OiBmYWxzZVxufSk7XG5cbnZhciBUaWxlQWJvdmVUaGVGb2xkQ29udGVudCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0NvbXBvbmVudDQpIHtcbiAgX2luaGVyaXRzKFRpbGVBYm92ZVRoZUZvbGRDb250ZW50LCBfQ29tcG9uZW50NCk7XG5cbiAgdmFyIF9zdXBlcjQgPSBfY3JlYXRlU3VwZXIoVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQpO1xuXG4gIGZ1bmN0aW9uIFRpbGVBYm92ZVRoZUZvbGRDb250ZW50KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUaWxlQWJvdmVUaGVGb2xkQ29udGVudCk7XG5cbiAgICByZXR1cm4gX3N1cGVyNC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFRpbGVBYm92ZVRoZUZvbGRDb250ZW50LCBbe1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIHByZWZpeCA9IHRoaXMuY29udGV4dDtcbiAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMucHJvcHMuY2hpbGRyZW47XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLWNvbnRlbnRfX2Fib3ZlLXRoZS1mb2xkXCIpXG4gICAgICB9LCBjaGlsZHJlbik7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFRpbGVBYm92ZVRoZUZvbGRDb250ZW50O1xufShDb21wb25lbnQpO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQsIFwicHJvcFR5cGVzXCIsIHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBub2Rlcy5cbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZVxufSk7XG5cbl9kZWZpbmVQcm9wZXJ0eShUaWxlQWJvdmVUaGVGb2xkQ29udGVudCwgXCJjb250ZXh0VHlwZVwiLCBQcmVmaXhDb250ZXh0KTtcblxudmFyIFRpbGVCZWxvd1RoZUZvbGRDb250ZW50ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50NSkge1xuICBfaW5oZXJpdHMoVGlsZUJlbG93VGhlRm9sZENvbnRlbnQsIF9Db21wb25lbnQ1KTtcblxuICB2YXIgX3N1cGVyNSA9IF9jcmVhdGVTdXBlcihUaWxlQmVsb3dUaGVGb2xkQ29udGVudCk7XG5cbiAgZnVuY3Rpb24gVGlsZUJlbG93VGhlRm9sZENvbnRlbnQoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRpbGVCZWxvd1RoZUZvbGRDb250ZW50KTtcblxuICAgIHJldHVybiBfc3VwZXI1LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVGlsZUJlbG93VGhlRm9sZENvbnRlbnQsIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgICAgdmFyIHByZWZpeCA9IHRoaXMuY29udGV4dDtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtY29udGVudF9fYmVsb3ctdGhlLWZvbGRcIilcbiAgICAgIH0sIGNoaWxkcmVuKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gVGlsZUJlbG93VGhlRm9sZENvbnRlbnQ7XG59KENvbXBvbmVudCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShUaWxlQmVsb3dUaGVGb2xkQ29udGVudCwgXCJwcm9wVHlwZXNcIiwge1xuICAvKipcbiAgICogVGhlIGNoaWxkIG5vZGVzLlxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlXG59KTtcblxuX2RlZmluZVByb3BlcnR5KFRpbGVCZWxvd1RoZUZvbGRDb250ZW50LCBcImNvbnRleHRUeXBlXCIsIFByZWZpeENvbnRleHQpO1xuXG5leHBvcnQgeyBDbGlja2FibGVUaWxlLCBFeHBhbmRhYmxlVGlsZSwgU2VsZWN0YWJsZVRpbGUsIFRpbGUsIFRpbGVBYm92ZVRoZUZvbGRDb250ZW50LCBUaWxlQmVsb3dUaGVGb2xkQ29udGVudCB9O1xuIl0sIm5hbWVzIjpbImluaGVyaXRzIiwiX2luaGVyaXRzIiwiY3JlYXRlU3VwZXIiLCJfY3JlYXRlU3VwZXIiLCJjbGFzc0NhbGxDaGVjayIsIl9jbGFzc0NhbGxDaGVjayIsImNyZWF0ZUNsYXNzIiwiX2NyZWF0ZUNsYXNzIiwib2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9kZWZpbmVQcm9wZXJ0eSIsImV4dGVuZHMiLCJfZXh0ZW5kcyIsImFzc2VydFRoaXNJbml0aWFsaXplZCIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJzbGljZWRUb0FycmF5IiwiX3NsaWNlZFRvQXJyYXkiLCJSZWFjdF9fZGVmYXVsdCIsIkNvbXBvbmVudCIsInVzZVN0YXRlIiwidXNlUmVmIiwidXNlRWZmZWN0IiwiUHJvcFR5cGVzIiwiY3giLCJMaW5rIiwiQ2hlY2tib3hDaGVja2VkRmlsbGVkIiwiQ2hlY2tib3giLCJDaGV2cm9uRG93biIsImRlcHJlY2F0ZSIsImNvbXBvc2VFdmVudEhhbmRsZXJzIiwiUHJlZml4Q29udGV4dCIsInVzZVByZWZpeCIsIm1hdGNoZXMiLCJFbnRlciIsIlNwYWNlIiwiX0NoZWNrYm94Q2hlY2tlZEZpbGxlIiwiX0NoZWNrYm94IiwiX0NoZXZyb25Eb3duIiwiX2V4Y2x1ZGVkIiwiX2V4Y2x1ZGVkMiIsIl9leGNsdWRlZDMiLCJfZXhjbHVkZWQ0IiwiVGlsZSIsIl9Db21wb25lbnQiLCJfc3VwZXIiLCJhcHBseSIsImFyZ3VtZW50cyIsImtleSIsInZhbHVlIiwicmVuZGVyIiwicHJlZml4IiwiY29udGV4dCIsIl90aGlzJHByb3BzIiwicHJvcHMiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImxpZ2h0IiwicmVzdCIsInRpbGVDbGFzc2VzIiwiY29uY2F0IiwiY3JlYXRlRWxlbWVudCIsIm5vZGUiLCJzdHJpbmciLCJib29sIiwiQ2xpY2thYmxlVGlsZSIsIl9Db21wb25lbnQyIiwiX3N1cGVyMiIsIl90aGlzIiwiX2xlbiIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiZXZ0IiwicGVyc2lzdCIsInNldFN0YXRlIiwiY2xpY2tlZCIsInN0YXRlIiwiX3RoaXMkcHJvcHMkaGFuZGxlQ2xpIiwiX3RoaXMkcHJvcHMyIiwiX3RoaXMkcHJvcHMkb25DbGljayIsIl90aGlzJHByb3BzMyIsImhhbmRsZUNsaWNrIiwib25DbGljayIsIl90aGlzJHByb3BzJGhhbmRsZUtleSIsIl90aGlzJHByb3BzNCIsImhhbmRsZUtleURvd24iLCJvbktleURvd24iLCJfdGhpcyRwcm9wcyRoYW5kbGVLZXkyIiwiX3RoaXMkcHJvcHM1IiwiX2N4MiIsIl90aGlzJHByb3BzNiIsImhyZWYiLCJjbGFzc2VzIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwiX3JlZiIsInByZXZDbGlja2VkIiwiZnVuYyIsInJlbCIsIlNlbGVjdGFibGVUaWxlIiwiaGFuZGxlT25DbGljayIsInByZXZlbnREZWZhdWx0Iiwic2V0SXNTZWxlY3RlZCIsImlzU2VsZWN0ZWQiLCJjbGlja0hhbmRsZXIiLCJvbkNoYW5nZSIsImhhbmRsZU9uS2V5RG93biIsImtleURvd25IYW5kbGVyIiwiaGFuZGxlQ2hhbmdlIiwiZXZlbnQiLCJ0YXJnZXQiLCJjaGVja2VkIiwiX2N4MyIsImlkIiwidGFiSW5kZXgiLCJuYW1lIiwidGl0bGUiLCJpY29uRGVzY3JpcHRpb24iLCJkaXNhYmxlZCIsInNlbGVjdGVkIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImlucHV0IiwiaW5wdXRDbGFzc2VzIiwiRnJhZ21lbnQiLCJyZWYiLCJ0eXBlIiwiaHRtbEZvciIsImRlZmF1bHRQcm9wcyIsInByb3BUeXBlcyIsIm51bWJlciIsIm9uZU9mVHlwZSIsImlzUmVxdWlyZWQiLCJFeHBhbmRhYmxlVGlsZSIsIl9Db21wb25lbnQzIiwiX3N1cGVyMyIsIl90aGlzMiIsIl9sZW4yIiwiX2tleTIiLCJyZXNpemVPYnNlcnZlciIsIlJlc2l6ZU9ic2VydmVyIiwiZW50cmllcyIsIl9lbnRyaWVzIiwiYWJvdmVUaGVGb2xkIiwidGlsZU1heEhlaWdodCIsImNvbnRlbnRSZWN0IiwiaGVpZ2h0IiwidGlsZSIsImdldFN0eWxlIiwid2luZG93IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsIm9ic2VydmUiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0aWxlUGFkZGluZyIsInBhcnNlSW50IiwiZ2V0UHJvcGVydHlWYWx1ZSIsInByZXZQcm9wcyIsImV4cGFuZGVkIiwic2V0TWF4SGVpZ2h0IiwidGlsZUNvbnRlbnQiLCJvbkJlZm9yZUNsaWNrIiwidGFnTmFtZSIsIl90aGlzMiRwcm9wcyRoYW5kbGVDbCIsIl90aGlzMiRwcm9wcyIsIl90aGlzMiRwcm9wcyRvbkNsaWNrIiwiX3RoaXMyJHByb3BzMiIsIkNoaWxkcmVuIiwidG9BcnJheSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiZGlzY29ubmVjdCIsIl9jeDUiLCJfdGhpczMiLCJfdGhpcyRwcm9wczciLCJvbktleVVwIiwidGlsZUNvbGxhcHNlZEljb25UZXh0IiwidGlsZUV4cGFuZGVkSWNvblRleHQiLCJ0aWxlQ29sbGFwc2VkTGFiZWwiLCJ0aWxlRXhwYW5kZWRMYWJlbCIsImlzRXhwYW5kZWQiLCJ0aWxlU3R5bGUiLCJtYXhIZWlnaHQiLCJjaGlsZHJlbkFzQXJyYXkiLCJnZXRDaGlsZHJlbiIsInN0eWxlIiwiaGFuZGxlS2V5VXAiLCJfcmVmMiIsInByZXZFeHBhbmRlZCIsInByZXZUaWxlTWF4SGVpZ2h0IiwicHJldlRpbGVQYWRkaW5nIiwiY3VycmVudEV4cGFuZGVkIiwiY3VycmVudFRpbGVNYXhIZWlnaHQiLCJjdXJyZW50VGlsZVBhZGRpbmciLCJleHBhbmRlZENoYW5nZWQiLCJ0aWxlTWF4SGVpZ2h0Q2hhbmdlZCIsInRpbGVQYWRkaW5nQ2hhbmdlZCIsIlRpbGVBYm92ZVRoZUZvbGRDb250ZW50IiwiX0NvbXBvbmVudDQiLCJfc3VwZXI0IiwiVGlsZUJlbG93VGhlRm9sZENvbnRlbnQiLCJfQ29tcG9uZW50NSIsIl9zdXBlcjUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../../node_modules/@carbon/react/es/components/Tile/Tile.js\n");
|
|
2604
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ClickableTile\": () => (/* binding */ ClickableTile),\n/* harmony export */ \"ExpandableTile\": () => (/* binding */ ExpandableTile),\n/* harmony export */ \"SelectableTile\": () => (/* binding */ SelectableTile),\n/* harmony export */ \"Tile\": () => (/* binding */ Tile),\n/* harmony export */ \"TileAboveTheFoldContent\": () => (/* binding */ TileAboveTheFoldContent),\n/* harmony export */ \"TileBelowTheFoldContent\": () => (/* binding */ TileBelowTheFoldContent)\n/* harmony export */ });\n/* harmony import */ var _virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_virtual/_rollupPluginBabelHelpers.js */ \"../../../node_modules/@carbon/react/es/_virtual/_rollupPluginBabelHelpers.js\");\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 prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"../../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ \"../../../node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Link_Link_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Link/Link.js */ \"../../../node_modules/@carbon/react/es/components/Link/Link.js\");\n/* harmony import */ var _carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @carbon/icons-react */ \"../../../node_modules/@carbon/icons-react/es/generated/bucket-2.js\");\n/* harmony import */ var _prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../prop-types/deprecate.js */ \"../../../node_modules/@carbon/react/es/prop-types/deprecate.js\");\n/* harmony import */ var _tools_events_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../tools/events.js */ \"../../../node_modules/@carbon/react/es/tools/events.js\");\n/* harmony import */ var _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../internal/usePrefix.js */ \"../../../node_modules/@carbon/react/es/internal/usePrefix.js\");\n/* harmony import */ var _internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../internal/keyboard/match.js */ \"../../../node_modules/@carbon/react/es/internal/keyboard/match.js\");\n/* harmony import */ var _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../internal/keyboard/keys.js */ \"../../../node_modules/@carbon/react/es/internal/keyboard/keys.js\");\n/**\n * Copyright IBM Corp. 2016, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */ \n\n\n\n\n\n\n\n\n\n\nvar _CheckboxCheckedFille, _Checkbox, _ChevronDown;\nvar _excluded = [\n \"children\",\n \"className\",\n \"light\"\n], _excluded2 = [\n \"children\",\n \"href\",\n \"className\",\n \"handleClick\",\n \"handleKeyDown\",\n \"onClick\",\n \"onKeyDown\",\n \"clicked\",\n \"light\"\n], _excluded3 = [\n \"children\",\n \"id\",\n \"tabIndex\",\n \"value\",\n \"name\",\n \"title\",\n \"iconDescription\",\n \"className\",\n \"handleClick\",\n \"handleKeyDown\",\n \"onClick\",\n \"onChange\",\n \"onKeyDown\",\n \"light\",\n \"disabled\",\n \"selected\"\n], _excluded4 = [\n \"tabIndex\",\n \"className\",\n \"expanded\",\n \"tileMaxHeight\",\n \"tilePadding\",\n \"handleClick\",\n \"onKeyUp\",\n \"tileCollapsedIconText\",\n \"tileExpandedIconText\",\n \"tileCollapsedLabel\",\n \"tileExpandedLabel\",\n \"onBeforeClick\",\n \"light\"\n];\nvar Tile = /*#__PURE__*/ function(_Component) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(Tile, _Component);\n var _super = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(Tile);\n function Tile() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, Tile);\n return _super.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(Tile, [\n {\n key: \"render\",\n value: function render() {\n var prefix = this.context;\n var _this$props = this.props, children = _this$props.children, className = _this$props.className, light = _this$props.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props, _excluded);\n var tileClasses = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)({}, \"\".concat(prefix, \"--tile--light\"), light), className);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n className: tileClasses\n }, rest), children);\n }\n }\n ]);\n return Tile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"defaultProps\", {\n light: false\n});\nvar ClickableTile = /*#__PURE__*/ function(_Component2) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(ClickableTile, _Component2);\n var _super2 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(ClickableTile);\n function ClickableTile() {\n var _this;\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, ClickableTile);\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n _this = _super2.call.apply(_super2, [\n this\n ].concat(args));\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"state\", {});\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"handleClick\", function(evt) {\n evt.persist();\n _this.setState({\n clicked: !_this.state.clicked\n }, function() {\n var _this$props$handleCli, _this$props2, _this$props$onClick, _this$props3;\n (// TODO: Remove handleClick prop when handleClick is deprecated\n (_this$props$handleCli = (_this$props2 = _this.props).handleClick) === null || _this$props$handleCli === void 0 ? void 0 : _this$props$handleCli.call(_this$props2, evt)) || ((_this$props$onClick = (_this$props3 = _this.props).onClick) === null || _this$props$onClick === void 0 ? void 0 : _this$props$onClick.call(_this$props3, evt));\n });\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"handleKeyDown\", function(evt) {\n evt.persist();\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n _this.setState({\n clicked: !_this.state.clicked\n }, function() {\n var _this$props$handleKey, _this$props4;\n (// TODO: Remove handleKeyDown prop when handleKeyDown is deprecated\n (_this$props$handleKey = (_this$props4 = _this.props).handleKeyDown) === null || _this$props$handleKey === void 0 ? void 0 : _this$props$handleKey.call(_this$props4, evt)) || _this.props.onKeyDown(evt);\n });\n } else {\n var _this$props$handleKey2, _this$props5;\n // TODO: Remove handleKeyDown prop when handleKeyDown is deprecated\n ((_this$props$handleKey2 = (_this$props5 = _this.props).handleKeyDown) === null || _this$props$handleKey2 === void 0 ? void 0 : _this$props$handleKey2.call(_this$props5, evt)) || _this.props.onKeyDown(evt);\n }\n });\n return _this;\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(ClickableTile, [\n {\n key: \"render\",\n value: function render() {\n var _cx2;\n var prefix = this.context;\n var _this$props6 = this.props, children = _this$props6.children, href = _this$props6.href, className = _this$props6.className;\n _this$props6.handleClick;\n _this$props6.handleKeyDown;\n _this$props6.onClick;\n _this$props6.onKeyDown;\n _this$props6.clicked;\n var light = _this$props6.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props6, _excluded2);\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--clickable\"), (_cx2 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx2, \"\".concat(prefix, \"--tile--is-clicked\"), this.state.clicked), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx2, \"\".concat(prefix, \"--tile--light\"), light), _cx2), className);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Link_Link_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"], (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n href: href,\n className: classes\n }, rest, {\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown\n }), children);\n }\n }\n ], [\n {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, state) {\n var clicked = _ref.clicked;\n var prevClicked = state.prevClicked;\n return prevClicked === clicked ? null : {\n clicked: clicked,\n prevClicked: clicked\n };\n }\n }\n ]);\n return ClickableTile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * Deprecated in v11. Use 'onClick' instead.\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleClick prop for ClickableTile has been deprecated in favor of onClick. It will be removed in the next major release.\"),\n /**\n * Specify the function to run when the ClickableTile is interacted with via a keyboard\n */ handleKeyDown: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleKeyDown prop for ClickableTile has been deprecated in favor of onKeyDown. It will be removed in the next major release.\"),\n /**\n * The href for the link.\n */ href: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the function to run when the ClickableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the ClickableTile is interacted with via a keyboard\n */ onKeyDown: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * The rel property for the link.\n */ rel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"defaultProps\", {\n clicked: false,\n onClick: function onClick() {},\n onKeyDown: function onKeyDown() {},\n light: false\n});\nfunction SelectableTile(props) {\n var handleOnClick = function handleOnClick(evt) {\n evt.preventDefault();\n evt.persist();\n setIsSelected(!isSelected);\n clickHandler(evt);\n onChange(evt);\n } // TODO: rename to handleKeyDown when handleKeyDown prop is deprecated\n ;\n var handleOnKeyDown = function handleOnKeyDown(evt) {\n evt.persist();\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n evt.preventDefault();\n setIsSelected(!isSelected);\n onChange(evt);\n }\n keyDownHandler(evt);\n };\n var handleChange = function handleChange(event) {\n setIsSelected(event.target.checked);\n onChange(event);\n };\n var _cx3;\n var children = props.children, id = props.id, tabIndex = props.tabIndex, value = props.value, name = props.name, title = props.title;\n props.iconDescription;\n var className = props.className, handleClick = props.handleClick, handleKeyDown = props.handleKeyDown, onClick = props.onClick, onChange = props.onChange, onKeyDown = props.onKeyDown, light = props.light, disabled = props.disabled, selected = props.selected, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(props, _excluded3);\n var prefix = (0,_internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.usePrefix)(); // TODO: replace with onClick when handleClick prop is deprecated\n var clickHandler = handleClick || onClick; // TODO: replace with onKeyDown when handleKeyDown prop is deprecated\n var keyDownHandler = handleKeyDown || onKeyDown;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(selected), _useState2 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.slicedToArray)(_useState, 2), isSelected = _useState2[0], setIsSelected = _useState2[1];\n var input = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--selectable\"), (_cx3 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--is-selected\"), isSelected), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--light\"), light), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--disabled\"), disabled), _cx3), className);\n var inputClasses = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile-input\"), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)({}, \"\".concat(prefix, \"--tile-input--checked\"), isSelected)); // TODO: rename to handleClick when handleClick prop is deprecated\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n setIsSelected(selected);\n }, [\n selected\n ]);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n ref: input,\n tabIndex: -1,\n id: id,\n className: inputClasses,\n value: value,\n onChange: !disabled ? handleChange : null,\n type: \"checkbox\",\n disabled: disabled,\n name: name,\n title: title,\n checked: isSelected\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n htmlFor: id,\n className: classes // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n ,\n tabIndex: !disabled ? tabIndex : null\n }, rest, {\n onClick: !disabled ? handleOnClick : null,\n onKeyDown: !disabled ? handleOnKeyDown : null\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile__checkmark \").concat(prefix, \"--tile__checkmark--persistent\")\n }, isSelected ? _CheckboxCheckedFille || (_CheckboxCheckedFille = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.CheckboxCheckedFilled, null)) : _Checkbox || (_Checkbox = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.Checkbox, null))), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content\")\n }, children)));\n}\nSelectableTile.defaultProps = {\n value: \"value\",\n title: \"title\",\n selected: false,\n tabIndex: 0,\n light: false,\n onClick: function onClick() {},\n onChange: function onChange() {},\n onKeyDown: function onKeyDown() {}\n};\nSelectableTile.propTypes = {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * Specify whether the SelectableTile should be disabled\n */ disabled: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the function to run when the SelectableTile is clicked\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The `handleClick` prop for `SelectableTile` has been deprecated in favor of `onClick`. It will be removed in the next major release.\"),\n /**\n * Specify the function to run when the SelectableTile is interacted with via a keyboard\n */ handleKeyDown: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The `handleKeyDown` prop for `SelectableTile` has been deprecated in favor of `onKeyDown`. It will be removed in the next major release.\"),\n /**\n * The description of the checkmark icon.\n */ iconDescription: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().string), \"The `iconDescription` prop for `SelectableTile` is no longer needed and has \" + \"been deprecated. It will be removed in the next major release.\"),\n /**\n * The ID of the `<input>`.\n */ id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * The `name` of the `<input>`.\n */ name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The empty handler of the `<input>`.\n */ onChange: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the SelectableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the SelectableTile is interacted with via a keyboard\n */ onKeyDown: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * `true` to select this tile.\n */ selected: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the tab index of the wrapper element\n */ tabIndex: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n /**\n * The `title` of the `<input>`.\n */ title: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The value of the `<input>`.\n */ value: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([\n (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number)\n ]).isRequired\n};\nvar ExpandableTile = /*#__PURE__*/ function(_Component3) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(ExpandableTile, _Component3);\n var _super3 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(ExpandableTile);\n function ExpandableTile() {\n var _this2;\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, ExpandableTile);\n for(var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++){\n args[_key2] = arguments[_key2];\n }\n _this2 = _super3.call.apply(_super3, [\n this\n ].concat(args));\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"state\", {});\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"resizeObserver\", null);\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"componentDidMount\", function() {\n _this2.resizeObserver = new ResizeObserver(function(entries) {\n var _entries = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.slicedToArray)(entries, 1), aboveTheFold = _entries[0];\n _this2.setState({\n tileMaxHeight: aboveTheFold.contentRect.height\n });\n });\n if (_this2.tile) {\n var getStyle = window.getComputedStyle(_this2.tile, null);\n if (_this2.aboveTheFold) {\n _this2.resizeObserver.observe(_this2.aboveTheFold);\n _this2.setState({\n tileMaxHeight: _this2.aboveTheFold.getBoundingClientRect().height,\n tilePadding: parseInt(getStyle.getPropertyValue(\"padding-top\"), 10) + parseInt(getStyle.getPropertyValue(\"padding-bottom\"), 10)\n });\n }\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"componentDidUpdate\", function(prevProps) {\n if (prevProps.expanded !== _this2.props.expanded) {\n _this2.setMaxHeight();\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"setMaxHeight\", function() {\n if (_this2.state.expanded ? _this2.tileContent : _this2.aboveTheFold) {\n _this2.setState({\n tileMaxHeight: _this2.state.expanded ? _this2.tileContent.getBoundingClientRect().height : _this2.aboveTheFold.getBoundingClientRect().height\n });\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"handleClick\", function(evt) {\n if (!_this2.props.onBeforeClick(evt) || evt.target.tagName === \"INPUT\") {\n return;\n }\n evt.persist();\n _this2.setState({\n expanded: !_this2.state.expanded\n }, function() {\n var _this2$props$handleCl, _this2$props, _this2$props$onClick, _this2$props2;\n _this2.setMaxHeight(); // TODO: Remove handleClick prop when handleClick is deprecated\n ((_this2$props$handleCl = (_this2$props = _this2.props).handleClick) === null || _this2$props$handleCl === void 0 ? void 0 : _this2$props$handleCl.call(_this2$props, evt)) || ((_this2$props$onClick = (_this2$props2 = _this2.props).onClick) === null || _this2$props$onClick === void 0 ? void 0 : _this2$props$onClick.call(_this2$props2, evt));\n });\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"handleKeyUp\", function(evt) {\n if (evt.target !== _this2.tile) {\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n evt.preventDefault();\n }\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"getChildren\", function() {\n return react__WEBPACK_IMPORTED_MODULE_0___default().Children.toArray(_this2.props.children);\n });\n return _this2;\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(ExpandableTile, [\n {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n },\n {\n key: \"render\",\n value: function render() {\n var _cx5, _this3 = this;\n var _this$props7 = this.props, tabIndex = _this$props7.tabIndex, className = _this$props7.className;\n _this$props7.expanded;\n _this$props7.tileMaxHeight;\n _this$props7.tilePadding;\n _this$props7.handleClick;\n var onKeyUp = _this$props7.onKeyUp, tileCollapsedIconText = _this$props7.tileCollapsedIconText, tileExpandedIconText = _this$props7.tileExpandedIconText, tileCollapsedLabel = _this$props7.tileCollapsedLabel, tileExpandedLabel = _this$props7.tileExpandedLabel;\n _this$props7.onBeforeClick;\n var light = _this$props7.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props7, _excluded4);\n var prefix = this.context;\n var isExpanded = this.state.expanded;\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--expandable\"), (_cx5 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx5, \"\".concat(prefix, \"--tile--is-expanded\"), isExpanded), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx5, \"\".concat(prefix, \"--tile--light\"), light), _cx5), className);\n var tileStyle = {\n maxHeight: isExpanded ? null : this.state.tileMaxHeight + this.state.tilePadding\n };\n var childrenAsArray = this.getChildren();\n return(/*#__PURE__*/ // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n type: \"button\",\n ref: function ref(tile) {\n _this3.tile = tile;\n },\n style: tileStyle,\n className: classes,\n \"aria-expanded\": isExpanded,\n title: isExpanded ? tileExpandedIconText : tileCollapsedIconText\n }, rest, {\n onKeyUp: (0,_tools_events_js__WEBPACK_IMPORTED_MODULE_10__.composeEventHandlers)([\n onKeyUp,\n this.handleKeyUp\n ]),\n onClick: this.handleClick,\n tabIndex: tabIndex\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: function ref(tileContent) {\n _this3.tileContent = tileContent;\n }\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: function ref(aboveTheFold) {\n _this3.aboveTheFold = aboveTheFold;\n },\n className: \"\".concat(prefix, \"--tile-content\")\n }, childrenAsArray[0]), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"\".concat(prefix, \"--tile__chevron\")\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, isExpanded ? tileExpandedLabel : tileCollapsedLabel), _ChevronDown || (_ChevronDown = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.ChevronDown, null))), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"\".concat(prefix, \"--tile-content\")\n }, childrenAsArray[1]))));\n }\n }\n ], [\n {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref2, state) {\n var expanded = _ref2.expanded, tileMaxHeight = _ref2.tileMaxHeight, tilePadding = _ref2.tilePadding;\n var prevExpanded = state.prevExpanded, prevTileMaxHeight = state.prevTileMaxHeight, prevTilePadding = state.prevTilePadding, currentExpanded = state.expanded, currentTileMaxHeight = state.tileMaxHeight, currentTilePadding = state.tilePadding;\n var expandedChanged = prevExpanded !== expanded;\n var tileMaxHeightChanged = prevTileMaxHeight !== tileMaxHeight;\n var tilePaddingChanged = prevTilePadding !== tilePadding;\n return !expandedChanged && !tileMaxHeightChanged && !tilePaddingChanged ? null : {\n expanded: !expandedChanged ? currentExpanded : expanded,\n tileMaxHeight: !tileMaxHeightChanged ? currentTileMaxHeight : tileMaxHeight,\n tilePadding: !tilePaddingChanged ? currentTilePadding : tilePadding,\n prevExpanded: expanded,\n prevTileMaxHeight: tileMaxHeight,\n prevTilePadding: tilePadding\n };\n }\n }\n ]);\n return ExpandableTile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` if the tile is expanded.\n */ expanded: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Deprecated in v11. Use 'onClick' instead.\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleClick prop for ExpandableTile has been deprecated in favor of onClick. It will be removed in the next major release.\"),\n /**\n * An ID that can be provided to aria-labelledby\n */ id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * optional handler to decide whether to ignore a click. returns false if click should be ignored\n */ onBeforeClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the ExpandableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * optional handler to trigger a function when a key is pressed\n */ onKeyUp: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * The `tabindex` attribute.\n */ tabIndex: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n /**\n * The description of the \"collapsed\" icon that can be read by screen readers.\n */ tileCollapsedIconText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * When \"collapsed\", a label to appear next to the chevron (e.g., \"View more\").\n */ tileCollapsedLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The description of the \"expanded\" icon that can be read by screen readers.\n */ tileExpandedIconText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * When \"expanded\", a label to appear next to the chevron (e.g., \"View less\").\n */ tileExpandedLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"defaultProps\", {\n tabIndex: 0,\n expanded: false,\n tileMaxHeight: 0,\n tilePadding: 0,\n onBeforeClick: function onBeforeClick() {\n return true;\n },\n onClick: function onClick() {},\n tileCollapsedIconText: \"Interact to expand Tile\",\n tileExpandedIconText: \"Interact to collapse Tile\",\n light: false\n});\nvar TileAboveTheFoldContent = /*#__PURE__*/ function(_Component4) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(TileAboveTheFoldContent, _Component4);\n var _super4 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(TileAboveTheFoldContent);\n function TileAboveTheFoldContent() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, TileAboveTheFoldContent);\n return _super4.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(TileAboveTheFoldContent, [\n {\n key: \"render\",\n value: function render() {\n var prefix = this.context;\n var children = this.props.children;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content__above-the-fold\")\n }, children);\n }\n }\n ]);\n return TileAboveTheFoldContent;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileAboveTheFoldContent, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileAboveTheFoldContent, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\nvar TileBelowTheFoldContent = /*#__PURE__*/ function(_Component5) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(TileBelowTheFoldContent, _Component5);\n var _super5 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(TileBelowTheFoldContent);\n function TileBelowTheFoldContent() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, TileBelowTheFoldContent);\n return _super5.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(TileBelowTheFoldContent, [\n {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var prefix = this.context;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content__below-the-fold\")\n }, children);\n }\n }\n ]);\n return TileBelowTheFoldContent;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileBelowTheFoldContent, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileBelowTheFoldContent, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BjYXJib24vcmVhY3QvZXMvY29tcG9uZW50cy9UaWxlL1RpbGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Q0FLQyxHQUUrVztBQUNqUztBQUM1QztBQUNQO0FBQ087QUFDZ0Q7QUFDN0I7QUFDTztBQUNVO0FBQ1o7QUFDSTtBQUUvRCxJQUFJb0MsdUJBQXVCQyxXQUFXQztBQUV0QyxJQUFJQyxZQUFZO0lBQUM7SUFBWTtJQUFhO0NBQVEsRUFDOUNDLGFBQWE7SUFBQztJQUFZO0lBQVE7SUFBYTtJQUFlO0lBQWlCO0lBQVc7SUFBYTtJQUFXO0NBQVEsRUFDMUhDLGFBQWE7SUFBQztJQUFZO0lBQU07SUFBWTtJQUFTO0lBQVE7SUFBUztJQUFtQjtJQUFhO0lBQWU7SUFBaUI7SUFBVztJQUFZO0lBQWE7SUFBUztJQUFZO0NBQVcsRUFDMU1DLGFBQWE7SUFBQztJQUFZO0lBQWE7SUFBWTtJQUFpQjtJQUFlO0lBQWU7SUFBVztJQUF5QjtJQUF3QjtJQUFzQjtJQUFxQjtJQUFpQjtDQUFRO0FBQ3RPLElBQUlDLE9BQU8sV0FBVyxHQUFFLFNBQVVDLFVBQVUsRUFBRTtJQUM1QzNDLDhFQUFTQSxDQUFDMEMsTUFBTUM7SUFFaEIsSUFBSUMsU0FBUzFDLGlGQUFZQSxDQUFDd0M7SUFFMUIsU0FBU0EsT0FBTztRQUNkdEMsb0ZBQWVBLENBQUMsSUFBSSxFQUFFc0M7UUFFdEIsT0FBT0UsT0FBT0MsS0FBSyxDQUFDLElBQUksRUFBRUM7SUFDNUI7SUFFQXhDLGlGQUFZQSxDQUFDb0MsTUFBTTtRQUFDO1lBQ2xCSyxLQUFLO1lBQ0xDLE9BQU8sU0FBU0MsU0FBUztnQkFDdkIsSUFBSUMsU0FBUyxJQUFJLENBQUNDLE9BQU87Z0JBRXpCLElBQUlDLGNBQWMsSUFBSSxDQUFDQyxLQUFLLEVBQ3hCQyxXQUFXRixZQUFZRSxRQUFRLEVBQy9CQyxZQUFZSCxZQUFZRyxTQUFTLEVBQ2pDQyxRQUFR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QUM2TCx5QkFBeUIsZUFBZXpLLGlFQUFhQTtBQUU0QyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BjYXJib24vcmVhY3QvZXMvY29tcG9uZW50cy9UaWxlL1RpbGUuanM/MGNhNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCBJQk0gQ29ycC4gMjAxNiwgMjAyMlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZS0yLjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pbXBvcnQgeyBpbmhlcml0cyBhcyBfaW5oZXJpdHMsIGNyZWF0ZVN1cGVyIGFzIF9jcmVhdGVTdXBlciwgY2xhc3NDYWxsQ2hlY2sgYXMgX2NsYXNzQ2FsbENoZWNrLCBjcmVhdGVDbGFzcyBhcyBfY3JlYXRlQ2xhc3MsIG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGFzIF9vYmplY3RXaXRob3V0UHJvcGVydGllcywgZGVmaW5lUHJvcGVydHkgYXMgX2RlZmluZVByb3BlcnR5LCBleHRlbmRzIGFzIF9leHRlbmRzLCBhc3NlcnRUaGlzSW5pdGlhbGl6ZWQgYXMgX2Fzc2VydFRoaXNJbml0aWFsaXplZCwgc2xpY2VkVG9BcnJheSBhcyBfc2xpY2VkVG9BcnJheSB9IGZyb20gJy4uLy4uL192aXJ0dWFsL19yb2xsdXBQbHVnaW5CYWJlbEhlbHBlcnMuanMnO1xuaW1wb3J0IFJlYWN0X19kZWZhdWx0LCB7IENvbXBvbmVudCwgdXNlU3RhdGUsIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjeCBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBMaW5rIGZyb20gJy4uL0xpbmsvTGluay5qcyc7XG5pbXBvcnQgeyBDaGVja2JveENoZWNrZWRGaWxsZWQsIENoZWNrYm94LCBDaGV2cm9uRG93biB9IGZyb20gJ0BjYXJib24vaWNvbnMtcmVhY3QnO1xuaW1wb3J0IGRlcHJlY2F0ZSBmcm9tICcuLi8uLi9wcm9wLXR5cGVzL2RlcHJlY2F0ZS5qcyc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJy4uLy4uL3Rvb2xzL2V2ZW50cy5qcyc7XG5pbXBvcnQgeyBQcmVmaXhDb250ZXh0LCB1c2VQcmVmaXggfSBmcm9tICcuLi8uLi9pbnRlcm5hbC91c2VQcmVmaXguanMnO1xuaW1wb3J0IHsgbWF0Y2hlcyB9IGZyb20gJy4uLy4uL2ludGVybmFsL2tleWJvYXJkL21hdGNoLmpzJztcbmltcG9ydCB7IEVudGVyLCBTcGFjZSB9IGZyb20gJy4uLy4uL2ludGVybmFsL2tleWJvYXJkL2tleXMuanMnO1xuXG52YXIgX0NoZWNrYm94Q2hlY2tlZEZpbGxlLCBfQ2hlY2tib3gsIF9DaGV2cm9uRG93bjtcblxudmFyIF9leGNsdWRlZCA9IFtcImNoaWxkcmVuXCIsIFwiY2xhc3NOYW1lXCIsIFwibGlnaHRcIl0sXG4gICAgX2V4Y2x1ZGVkMiA9IFtcImNoaWxkcmVuXCIsIFwiaHJlZlwiLCBcImNsYXNzTmFtZVwiLCBcImhhbmRsZUNsaWNrXCIsIFwiaGFuZGxlS2V5RG93blwiLCBcIm9uQ2xpY2tcIiwgXCJvbktleURvd25cIiwgXCJjbGlja2VkXCIsIFwibGlnaHRcIl0sXG4gICAgX2V4Y2x1ZGVkMyA9IFtcImNoaWxkcmVuXCIsIFwiaWRcIiwgXCJ0YWJJbmRleFwiLCBcInZhbHVlXCIsIFwibmFtZVwiLCBcInRpdGxlXCIsIFwiaWNvbkRlc2NyaXB0aW9uXCIsIFwiY2xhc3NOYW1lXCIsIFwiaGFuZGxlQ2xpY2tcIiwgXCJoYW5kbGVLZXlEb3duXCIsIFwib25DbGlja1wiLCBcIm9uQ2hhbmdlXCIsIFwib25LZXlEb3duXCIsIFwibGlnaHRcIiwgXCJkaXNhYmxlZFwiLCBcInNlbGVjdGVkXCJdLFxuICAgIF9leGNsdWRlZDQgPSBbXCJ0YWJJbmRleFwiLCBcImNsYXNzTmFtZVwiLCBcImV4cGFuZGVkXCIsIFwidGlsZU1heEhlaWdodFwiLCBcInRpbGVQYWRkaW5nXCIsIFwiaGFuZGxlQ2xpY2tcIiwgXCJvbktleVVwXCIsIFwidGlsZUNvbGxhcHNlZEljb25UZXh0XCIsIFwidGlsZUV4cGFuZGVkSWNvblRleHRcIiwgXCJ0aWxlQ29sbGFwc2VkTGFiZWxcIiwgXCJ0aWxlRXhwYW5kZWRMYWJlbFwiLCBcIm9uQmVmb3JlQ2xpY2tcIiwgXCJsaWdodFwiXTtcbnZhciBUaWxlID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhUaWxlLCBfQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFRpbGUpO1xuXG4gIGZ1bmN0aW9uIFRpbGUoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRpbGUpO1xuXG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFRpbGUsIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgcHJlZml4ID0gdGhpcy5jb250ZXh0O1xuXG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIGNoaWxkcmVuID0gX3RoaXMkcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgIGxpZ2h0ID0gX3RoaXMkcHJvcHMubGlnaHQsXG4gICAgICAgICAgcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfdGhpcyRwcm9wcywgX2V4Y2x1ZGVkKTtcblxuICAgICAgdmFyIHRpbGVDbGFzc2VzID0gY3goXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZVwiKSwgX2RlZmluZVByb3BlcnR5KHt9LCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1saWdodFwiKSwgbGlnaHQpLCBjbGFzc05hbWUpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIF9leHRlbmRzKHtcbiAgICAgICAgY2xhc3NOYW1lOiB0aWxlQ2xhc3Nlc1xuICAgICAgfSwgcmVzdCksIGNoaWxkcmVuKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gVGlsZTtcbn0oQ29tcG9uZW50KTtcblxuX2RlZmluZVByb3BlcnR5KFRpbGUsIFwicHJvcFR5cGVzXCIsIHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBub2Rlcy5cbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBuYW1lcy5cbiAgICovXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogYHRydWVgIHRvIHVzZSB0aGUgbGlnaHQgdmVyc2lvbi4gRm9yIHVzZSBvbiAkdWktMDEgYmFja2dyb3VuZHMgb25seS5cbiAgICogRG9uJ3QgdXNlIHRoaXMgdG8gbWFrZSB0aWxlIGJhY2tncm91bmQgY29sb3Igc2FtZSBhcyBjb250YWluZXIgYmFja2dyb3VuZCBjb2xvci5cbiAgICovXG4gIGxpZ2h0OiBQcm9wVHlwZXMuYm9vbFxufSk7XG5cbl9kZWZpbmVQcm9wZXJ0eShUaWxlLCBcImNvbnRleHRUeXBlXCIsIFByZWZpeENvbnRleHQpO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZSwgXCJkZWZhdWx0UHJvcHNcIiwge1xuICBsaWdodDogZmFsc2Vcbn0pO1xuXG52YXIgQ2xpY2thYmxlVGlsZSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0NvbXBvbmVudDIpIHtcbiAgX2luaGVyaXRzKENsaWNrYWJsZVRpbGUsIF9Db21wb25lbnQyKTtcblxuICB2YXIgX3N1cGVyMiA9IF9jcmVhdGVTdXBlcihDbGlja2FibGVUaWxlKTtcblxuICBmdW5jdGlvbiBDbGlja2FibGVUaWxlKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDbGlja2FibGVUaWxlKTtcblxuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICBfdGhpcyA9IF9zdXBlcjIuY2FsbC5hcHBseShfc3VwZXIyLCBbdGhpc10uY29uY2F0KGFyZ3MpKTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJzdGF0ZVwiLCB7fSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiaGFuZGxlQ2xpY2tcIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgZXZ0LnBlcnNpc3QoKTtcblxuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICBjbGlja2VkOiAhX3RoaXMuc3RhdGUuY2xpY2tlZFxuICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMkcHJvcHMkaGFuZGxlQ2xpLCBfdGhpcyRwcm9wczIsIF90aGlzJHByb3BzJG9uQ2xpY2ssIF90aGlzJHByb3BzMztcblxuICAgICAgICAvLyBUT0RPOiBSZW1vdmUgaGFuZGxlQ2xpY2sgcHJvcCB3aGVuIGhhbmRsZUNsaWNrIGlzIGRlcHJlY2F0ZWRcbiAgICAgICAgKChfdGhpcyRwcm9wcyRoYW5kbGVDbGkgPSAoX3RoaXMkcHJvcHMyID0gX3RoaXMucHJvcHMpLmhhbmRsZUNsaWNrKSA9PT0gbnVsbCB8fCBfdGhpcyRwcm9wcyRoYW5kbGVDbGkgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJHByb3BzJGhhbmRsZUNsaS5jYWxsKF90aGlzJHByb3BzMiwgZXZ0KSkgfHwgKChfdGhpcyRwcm9wcyRvbkNsaWNrID0gKF90aGlzJHByb3BzMyA9IF90aGlzLnByb3BzKS5vbkNsaWNrKSA9PT0gbnVsbCB8fCBfdGhpcyRwcm9wcyRvbkNsaWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpcyRwcm9wcyRvbkNsaWNrLmNhbGwoX3RoaXMkcHJvcHMzLCBldnQpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcImhhbmRsZUtleURvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgZXZ0LnBlcnNpc3QoKTtcblxuICAgICAgaWYgKG1hdGNoZXMoZXZ0LCBbRW50ZXIsIFNwYWNlXSkpIHtcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGNsaWNrZWQ6ICFfdGhpcy5zdGF0ZS5jbGlja2VkXG4gICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB2YXIgX3RoaXMkcHJvcHMkaGFuZGxlS2V5LCBfdGhpcyRwcm9wczQ7XG5cbiAgICAgICAgICAvLyBUT0RPOiBSZW1vdmUgaGFuZGxlS2V5RG93biBwcm9wIHdoZW4gaGFuZGxlS2V5RG93biBpcyBkZXByZWNhdGVkXG4gICAgICAgICAgKChfdGhpcyRwcm9wcyRoYW5kbGVLZXkgPSAoX3RoaXMkcHJvcHM0ID0gX3RoaXMucHJvcHMpLmhhbmRsZUtleURvd24pID09PSBudWxsIHx8IF90aGlzJHByb3BzJGhhbmRsZUtleSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkcHJvcHMkaGFuZGxlS2V5LmNhbGwoX3RoaXMkcHJvcHM0LCBldnQpKSB8fCBfdGhpcy5wcm9wcy5vbktleURvd24oZXZ0KTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgX3RoaXMkcHJvcHMkaGFuZGxlS2V5MiwgX3RoaXMkcHJvcHM1O1xuXG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBoYW5kbGVLZXlEb3duIHByb3Agd2hlbiBoYW5kbGVLZXlEb3duIGlzIGRlcHJlY2F0ZWRcbiAgICAgICAgKChfdGhpcyRwcm9wcyRoYW5kbGVLZXkyID0gKF90aGlzJHByb3BzNSA9IF90aGlzLnByb3BzKS5oYW5kbGVLZXlEb3duKSA9PT0gbnVsbCB8fCBfdGhpcyRwcm9wcyRoYW5kbGVLZXkyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpcyRwcm9wcyRoYW5kbGVLZXkyLmNhbGwoX3RoaXMkcHJvcHM1LCBldnQpKSB8fCBfdGhpcy5wcm9wcy5vbktleURvd24oZXZ0KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhDbGlja2FibGVUaWxlLCBbe1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF9jeDI7XG5cbiAgICAgIHZhciBwcmVmaXggPSB0aGlzLmNvbnRleHQ7XG5cbiAgICAgIHZhciBfdGhpcyRwcm9wczYgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIGNoaWxkcmVuID0gX3RoaXMkcHJvcHM2LmNoaWxkcmVuLFxuICAgICAgICAgIGhyZWYgPSBfdGhpcyRwcm9wczYuaHJlZixcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wczYuY2xhc3NOYW1lO1xuICAgICAgICAgIF90aGlzJHByb3BzNi5oYW5kbGVDbGljaztcbiAgICAgICAgICBfdGhpcyRwcm9wczYuaGFuZGxlS2V5RG93bjtcbiAgICAgICAgICBfdGhpcyRwcm9wczYub25DbGljaztcbiAgICAgICAgICBfdGhpcyRwcm9wczYub25LZXlEb3duO1xuICAgICAgICAgIF90aGlzJHByb3BzNi5jbGlja2VkO1xuICAgICAgICAgIHZhciBsaWdodCA9IF90aGlzJHByb3BzNi5saWdodCxcbiAgICAgICAgICByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF90aGlzJHByb3BzNiwgX2V4Y2x1ZGVkMik7XG5cbiAgICAgIHZhciBjbGFzc2VzID0gY3goXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZVwiKSwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tY2xpY2thYmxlXCIpLCAoX2N4MiA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2N4MiwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0taXMtY2xpY2tlZFwiKSwgdGhpcy5zdGF0ZS5jbGlja2VkKSwgX2RlZmluZVByb3BlcnR5KF9jeDIsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWxpZ2h0XCIpLCBsaWdodCksIF9jeDIpLCBjbGFzc05hbWUpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KExpbmssIF9leHRlbmRzKHtcbiAgICAgICAgaHJlZjogaHJlZixcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzXG4gICAgICB9LCByZXN0LCB7XG4gICAgICAgIG9uQ2xpY2s6IHRoaXMuaGFuZGxlQ2xpY2ssXG4gICAgICAgIG9uS2V5RG93bjogdGhpcy5oYW5kbGVLZXlEb3duXG4gICAgICB9KSwgY2hpbGRyZW4pO1xuICAgIH1cbiAgfV0sIFt7XG4gICAga2V5OiBcImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc1wiLFxuICAgIHZhbHVlOiAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvcHJvcC10eXBlc1xuICAgIGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhfcmVmLCBzdGF0ZSkge1xuICAgICAgdmFyIGNsaWNrZWQgPSBfcmVmLmNsaWNrZWQ7XG4gICAgICB2YXIgcHJldkNsaWNrZWQgPSBzdGF0ZS5wcmV2Q2xpY2tlZDtcbiAgICAgIHJldHVybiBwcmV2Q2xpY2tlZCA9PT0gY2xpY2tlZCA/IG51bGwgOiB7XG4gICAgICAgIGNsaWNrZWQ6IGNsaWNrZWQsXG4gICAgICAgIHByZXZDbGlja2VkOiBjbGlja2VkXG4gICAgICB9O1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDbGlja2FibGVUaWxlO1xufShDb21wb25lbnQpO1xuXG5fZGVmaW5lUHJvcGVydHkoQ2xpY2thYmxlVGlsZSwgXCJwcm9wVHlwZXNcIiwge1xuICAvKipcbiAgICogVGhlIGNoaWxkIG5vZGVzLlxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIG5hbWVzLlxuICAgKi9cbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBEZXByZWNhdGVkIGluIHYxMS4gVXNlICdvbkNsaWNrJyBpbnN0ZWFkLlxuICAgKi9cbiAgaGFuZGxlQ2xpY2s6IGRlcHJlY2F0ZShQcm9wVHlwZXMuZnVuYywgJ1RoZSBoYW5kbGVDbGljayBwcm9wIGZvciBDbGlja2FibGVUaWxlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Ygb25DbGljay4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJyksXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBDbGlja2FibGVUaWxlIGlzIGludGVyYWN0ZWQgd2l0aCB2aWEgYSBrZXlib2FyZFxuICAgKi9cbiAgaGFuZGxlS2V5RG93bjogZGVwcmVjYXRlKFByb3BUeXBlcy5mdW5jLCAnVGhlIGhhbmRsZUtleURvd24gcHJvcCBmb3IgQ2xpY2thYmxlVGlsZSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mIG9uS2V5RG93bi4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJyksXG5cbiAgLyoqXG4gICAqIFRoZSBocmVmIGZvciB0aGUgbGluay5cbiAgICovXG4gIGhyZWY6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIGB0cnVlYCB0byB1c2UgdGhlIGxpZ2h0IHZlcnNpb24uIEZvciB1c2Ugb24gJHVpLTAxIGJhY2tncm91bmRzIG9ubHkuXG4gICAqIERvbid0IHVzZSB0aGlzIHRvIG1ha2UgdGlsZSBiYWNrZ3JvdW5kIGNvbG9yIHNhbWUgYXMgY29udGFpbmVyIGJhY2tncm91bmQgY29sb3IuXG4gICAqL1xuICBsaWdodDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBDbGlja2FibGVUaWxlIGlzIGNsaWNrZWRcbiAgICovXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSBmdW5jdGlvbiB0byBydW4gd2hlbiB0aGUgQ2xpY2thYmxlVGlsZSBpcyBpbnRlcmFjdGVkIHdpdGggdmlhIGEga2V5Ym9hcmRcbiAgICovXG4gIG9uS2V5RG93bjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIFRoZSByZWwgcHJvcGVydHkgZm9yIHRoZSBsaW5rLlxuICAgKi9cbiAgcmVsOiBQcm9wVHlwZXMuc3RyaW5nXG59KTtcblxuX2RlZmluZVByb3BlcnR5KENsaWNrYWJsZVRpbGUsIFwiY29udGV4dFR5cGVcIiwgUHJlZml4Q29udGV4dCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShDbGlja2FibGVUaWxlLCBcImRlZmF1bHRQcm9wc1wiLCB7XG4gIGNsaWNrZWQ6IGZhbHNlLFxuICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKCkge30sXG4gIG9uS2V5RG93bjogZnVuY3Rpb24gb25LZXlEb3duKCkge30sXG4gIGxpZ2h0OiBmYWxzZVxufSk7XG5cbmZ1bmN0aW9uIFNlbGVjdGFibGVUaWxlKHByb3BzKSB7XG4gIHZhciBfY3gzO1xuXG4gIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgaWQgPSBwcm9wcy5pZCxcbiAgICAgIHRhYkluZGV4ID0gcHJvcHMudGFiSW5kZXgsXG4gICAgICB2YWx1ZSA9IHByb3BzLnZhbHVlLFxuICAgICAgbmFtZSA9IHByb3BzLm5hbWUsXG4gICAgICB0aXRsZSA9IHByb3BzLnRpdGxlO1xuICAgICAgcHJvcHMuaWNvbkRlc2NyaXB0aW9uO1xuICAgICAgdmFyIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgIGhhbmRsZUNsaWNrID0gcHJvcHMuaGFuZGxlQ2xpY2ssXG4gICAgICBoYW5kbGVLZXlEb3duID0gcHJvcHMuaGFuZGxlS2V5RG93bixcbiAgICAgIG9uQ2xpY2sgPSBwcm9wcy5vbkNsaWNrLFxuICAgICAgb25DaGFuZ2UgPSBwcm9wcy5vbkNoYW5nZSxcbiAgICAgIG9uS2V5RG93biA9IHByb3BzLm9uS2V5RG93bixcbiAgICAgIGxpZ2h0ID0gcHJvcHMubGlnaHQsXG4gICAgICBkaXNhYmxlZCA9IHByb3BzLmRpc2FibGVkLFxuICAgICAgc2VsZWN0ZWQgPSBwcm9wcy5zZWxlY3RlZCxcbiAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMocHJvcHMsIF9leGNsdWRlZDMpO1xuXG4gIHZhciBwcmVmaXggPSB1c2VQcmVmaXgoKTsgLy8gVE9ETzogcmVwbGFjZSB3aXRoIG9uQ2xpY2sgd2hlbiBoYW5kbGVDbGljayBwcm9wIGlzIGRlcHJlY2F0ZWRcblxuICB2YXIgY2xpY2tIYW5kbGVyID0gaGFuZGxlQ2xpY2sgfHwgb25DbGljazsgLy8gVE9ETzogcmVwbGFjZSB3aXRoIG9uS2V5RG93biB3aGVuIGhhbmRsZUtleURvd24gcHJvcCBpcyBkZXByZWNhdGVkXG5cbiAgdmFyIGtleURvd25IYW5kbGVyID0gaGFuZGxlS2V5RG93biB8fCBvbktleURvd247XG5cbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKHNlbGVjdGVkKSxcbiAgICAgIF91c2VTdGF0ZTIgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGUsIDIpLFxuICAgICAgaXNTZWxlY3RlZCA9IF91c2VTdGF0ZTJbMF0sXG4gICAgICBzZXRJc1NlbGVjdGVkID0gX3VzZVN0YXRlMlsxXTtcblxuICB2YXIgaW5wdXQgPSB1c2VSZWYobnVsbCk7XG4gIHZhciBjbGFzc2VzID0gY3goXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZVwiKSwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tc2VsZWN0YWJsZVwiKSwgKF9jeDMgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jeDMsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWlzLXNlbGVjdGVkXCIpLCBpc1NlbGVjdGVkKSwgX2RlZmluZVByb3BlcnR5KF9jeDMsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWxpZ2h0XCIpLCBsaWdodCksIF9kZWZpbmVQcm9wZXJ0eShfY3gzLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1kaXNhYmxlZFwiKSwgZGlzYWJsZWQpLCBfY3gzKSwgY2xhc3NOYW1lKTtcbiAgdmFyIGlucHV0Q2xhc3NlcyA9IGN4KFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtaW5wdXRcIiksIF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1pbnB1dC0tY2hlY2tlZFwiKSwgaXNTZWxlY3RlZCkpOyAvLyBUT0RPOiByZW5hbWUgdG8gaGFuZGxlQ2xpY2sgd2hlbiBoYW5kbGVDbGljayBwcm9wIGlzIGRlcHJlY2F0ZWRcblxuICBmdW5jdGlvbiBoYW5kbGVPbkNsaWNrKGV2dCkge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5wZXJzaXN0KCk7XG4gICAgc2V0SXNTZWxlY3RlZCghaXNTZWxlY3RlZCk7XG4gICAgY2xpY2tIYW5kbGVyKGV2dCk7XG4gICAgb25DaGFuZ2UoZXZ0KTtcbiAgfSAvLyBUT0RPOiByZW5hbWUgdG8gaGFuZGxlS2V5RG93biB3aGVuIGhhbmRsZUtleURvd24gcHJvcCBpcyBkZXByZWNhdGVkXG5cblxuICBmdW5jdGlvbiBoYW5kbGVPbktleURvd24oZXZ0KSB7XG4gICAgZXZ0LnBlcnNpc3QoKTtcblxuICAgIGlmIChtYXRjaGVzKGV2dCwgW0VudGVyLCBTcGFjZV0pKSB7XG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHNldElzU2VsZWN0ZWQoIWlzU2VsZWN0ZWQpO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9XG5cbiAgICBrZXlEb3duSGFuZGxlcihldnQpO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XG4gICAgc2V0SXNTZWxlY3RlZChldmVudC50YXJnZXQuY2hlY2tlZCk7XG4gICAgb25DaGFuZ2UoZXZlbnQpO1xuICB9XG5cbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBzZXRJc1NlbGVjdGVkKHNlbGVjdGVkKTtcbiAgfSwgW3NlbGVjdGVkXSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChSZWFjdF9fZGVmYXVsdC5GcmFnbWVudCwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7XG4gICAgcmVmOiBpbnB1dCxcbiAgICB0YWJJbmRleDogLTEsXG4gICAgaWQ6IGlkLFxuICAgIGNsYXNzTmFtZTogaW5wdXRDbGFzc2VzLFxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBvbkNoYW5nZTogIWRpc2FibGVkID8gaGFuZGxlQ2hhbmdlIDogbnVsbCxcbiAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgIG5hbWU6IG5hbWUsXG4gICAgdGl0bGU6IHRpdGxlLFxuICAgIGNoZWNrZWQ6IGlzU2VsZWN0ZWRcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwibGFiZWxcIiwgX2V4dGVuZHMoe1xuICAgIGh0bWxGb3I6IGlkLFxuICAgIGNsYXNzTmFtZTogY2xhc3NlcyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganN4LWExMXkvbm8tbm9uaW50ZXJhY3RpdmUtdGFiaW5kZXhcbiAgICAsXG4gICAgdGFiSW5kZXg6ICFkaXNhYmxlZCA/IHRhYkluZGV4IDogbnVsbFxuICB9LCByZXN0LCB7XG4gICAgb25DbGljazogIWRpc2FibGVkID8gaGFuZGxlT25DbGljayA6IG51bGwsXG4gICAgb25LZXlEb3duOiAhZGlzYWJsZWQgPyBoYW5kbGVPbktleURvd24gOiBudWxsXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZV9fY2hlY2ttYXJrIFwiKS5jb25jYXQocHJlZml4LCBcIi0tdGlsZV9fY2hlY2ttYXJrLS1wZXJzaXN0ZW50XCIpXG4gIH0sIGlzU2VsZWN0ZWQgPyBfQ2hlY2tib3hDaGVja2VkRmlsbGUgfHwgKF9DaGVja2JveENoZWNrZWRGaWxsZSA9IC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KENoZWNrYm94Q2hlY2tlZEZpbGxlZCwgbnVsbCkpIDogX0NoZWNrYm94IHx8IChfQ2hlY2tib3ggPSAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChDaGVja2JveCwgbnVsbCkpKSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtY29udGVudFwiKVxuICB9LCBjaGlsZHJlbikpKTtcbn1cblNlbGVjdGFibGVUaWxlLmRlZmF1bHRQcm9wcyA9IHtcbiAgdmFsdWU6ICd2YWx1ZScsXG4gIHRpdGxlOiAndGl0bGUnLFxuICBzZWxlY3RlZDogZmFsc2UsXG4gIHRhYkluZGV4OiAwLFxuICBsaWdodDogZmFsc2UsXG4gIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7fSxcbiAgb25DaGFuZ2U6IGZ1bmN0aW9uIG9uQ2hhbmdlKCkge30sXG4gIG9uS2V5RG93bjogZnVuY3Rpb24gb25LZXlEb3duKCkge31cbn07XG5TZWxlY3RhYmxlVGlsZS5wcm9wVHlwZXMgPSB7XG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgbm9kZXMuXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgbmFtZXMuXG4gICAqL1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgd2hldGhlciB0aGUgU2VsZWN0YWJsZVRpbGUgc2hvdWxkIGJlIGRpc2FibGVkXG4gICAqL1xuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBTZWxlY3RhYmxlVGlsZSBpcyBjbGlja2VkXG4gICAqL1xuICBoYW5kbGVDbGljazogZGVwcmVjYXRlKFByb3BUeXBlcy5mdW5jLCAnVGhlIGBoYW5kbGVDbGlja2AgcHJvcCBmb3IgYFNlbGVjdGFibGVUaWxlYCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGBvbkNsaWNrYC4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJyksXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBTZWxlY3RhYmxlVGlsZSBpcyBpbnRlcmFjdGVkIHdpdGggdmlhIGEga2V5Ym9hcmRcbiAgICovXG4gIGhhbmRsZUtleURvd246IGRlcHJlY2F0ZShQcm9wVHlwZXMuZnVuYywgJ1RoZSBgaGFuZGxlS2V5RG93bmAgcHJvcCBmb3IgYFNlbGVjdGFibGVUaWxlYCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGBvbktleURvd25gLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4nKSxcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBjaGVja21hcmsgaWNvbi5cbiAgICovXG4gIGljb25EZXNjcmlwdGlvbjogZGVwcmVjYXRlKFByb3BUeXBlcy5zdHJpbmcsICdUaGUgYGljb25EZXNjcmlwdGlvbmAgcHJvcCBmb3IgYFNlbGVjdGFibGVUaWxlYCBpcyBubyBsb25nZXIgbmVlZGVkIGFuZCBoYXMgJyArICdiZWVuIGRlcHJlY2F0ZWQuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLicpLFxuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGA8aW5wdXQ+YC5cbiAgICovXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgdG8gdXNlIHRoZSBsaWdodCB2ZXJzaW9uLiBGb3IgdXNlIG9uICR1aS0wMSBiYWNrZ3JvdW5kcyBvbmx5LlxuICAgKiBEb24ndCB1c2UgdGhpcyB0byBtYWtlIHRpbGUgYmFja2dyb3VuZCBjb2xvciBzYW1lIGFzIGNvbnRhaW5lciBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgKi9cbiAgbGlnaHQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBUaGUgYG5hbWVgIG9mIHRoZSBgPGlucHV0PmAuXG4gICAqL1xuICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBUaGUgZW1wdHkgaGFuZGxlciBvZiB0aGUgYDxpbnB1dD5gLlxuICAgKi9cbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSBmdW5jdGlvbiB0byBydW4gd2hlbiB0aGUgU2VsZWN0YWJsZVRpbGUgaXMgY2xpY2tlZFxuICAgKi9cbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBTZWxlY3RhYmxlVGlsZSBpcyBpbnRlcmFjdGVkIHdpdGggdmlhIGEga2V5Ym9hcmRcbiAgICovXG4gIG9uS2V5RG93bjogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIGB0cnVlYCB0byBzZWxlY3QgdGhpcyB0aWxlLlxuICAgKi9cbiAgc2VsZWN0ZWQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSB0YWIgaW5kZXggb2YgdGhlIHdyYXBwZXIgZWxlbWVudFxuICAgKi9cbiAgdGFiSW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG5cbiAgLyoqXG4gICAqIFRoZSBgdGl0bGVgIG9mIHRoZSBgPGlucHV0PmAuXG4gICAqL1xuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBgPGlucHV0PmAuXG4gICAqL1xuICB2YWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLmlzUmVxdWlyZWRcbn07XG52YXIgRXhwYW5kYWJsZVRpbGUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9Db21wb25lbnQzKSB7XG4gIF9pbmhlcml0cyhFeHBhbmRhYmxlVGlsZSwgX0NvbXBvbmVudDMpO1xuXG4gIHZhciBfc3VwZXIzID0gX2NyZWF0ZVN1cGVyKEV4cGFuZGFibGVUaWxlKTtcblxuICBmdW5jdGlvbiBFeHBhbmRhYmxlVGlsZSgpIHtcbiAgICB2YXIgX3RoaXMyO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEV4cGFuZGFibGVUaWxlKTtcblxuICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgYXJnc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgIH1cblxuICAgIF90aGlzMiA9IF9zdXBlcjMuY2FsbC5hcHBseShfc3VwZXIzLCBbdGhpc10uY29uY2F0KGFyZ3MpKTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMiksIFwic3RhdGVcIiwge30pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJyZXNpemVPYnNlcnZlclwiLCBudWxsKTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMiksIFwiY29tcG9uZW50RGlkTW91bnRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgX3RoaXMyLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKGZ1bmN0aW9uIChlbnRyaWVzKSB7XG4gICAgICAgIHZhciBfZW50cmllcyA9IF9zbGljZWRUb0FycmF5KGVudHJpZXMsIDEpLFxuICAgICAgICAgICAgYWJvdmVUaGVGb2xkID0gX2VudHJpZXNbMF07XG5cbiAgICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgICB0aWxlTWF4SGVpZ2h0OiBhYm92ZVRoZUZvbGQuY29udGVudFJlY3QuaGVpZ2h0XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChfdGhpczIudGlsZSkge1xuICAgICAgICB2YXIgZ2V0U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShfdGhpczIudGlsZSwgbnVsbCk7XG5cbiAgICAgICAgaWYgKF90aGlzMi5hYm92ZVRoZUZvbGQpIHtcbiAgICAgICAgICBfdGhpczIucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShfdGhpczIuYWJvdmVUaGVGb2xkKTtcblxuICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgICB0aWxlTWF4SGVpZ2h0OiBfdGhpczIuYWJvdmVUaGVGb2xkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCxcbiAgICAgICAgICAgIHRpbGVQYWRkaW5nOiBwYXJzZUludChnZXRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLXRvcCcpLCAxMCkgKyBwYXJzZUludChnZXRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWJvdHRvbScpLCAxMClcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJjb21wb25lbnREaWRVcGRhdGVcIiwgZnVuY3Rpb24gKHByZXZQcm9wcykge1xuICAgICAgaWYgKHByZXZQcm9wcy5leHBhbmRlZCAhPT0gX3RoaXMyLnByb3BzLmV4cGFuZGVkKSB7XG4gICAgICAgIF90aGlzMi5zZXRNYXhIZWlnaHQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMiksIFwic2V0TWF4SGVpZ2h0XCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChfdGhpczIuc3RhdGUuZXhwYW5kZWQgPyBfdGhpczIudGlsZUNvbnRlbnQgOiBfdGhpczIuYWJvdmVUaGVGb2xkKSB7XG4gICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgdGlsZU1heEhlaWdodDogX3RoaXMyLnN0YXRlLmV4cGFuZGVkID8gX3RoaXMyLnRpbGVDb250ZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCA6IF90aGlzMi5hYm92ZVRoZUZvbGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJoYW5kbGVDbGlja1wiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICBpZiAoIV90aGlzMi5wcm9wcy5vbkJlZm9yZUNsaWNrKGV2dCkgfHwgZXZ0LnRhcmdldC50YWdOYW1lID09PSAnSU5QVVQnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZXZ0LnBlcnNpc3QoKTtcblxuICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgZXhwYW5kZWQ6ICFfdGhpczIuc3RhdGUuZXhwYW5kZWRcbiAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzMiRwcm9wcyRoYW5kbGVDbCwgX3RoaXMyJHByb3BzLCBfdGhpczIkcHJvcHMkb25DbGljaywgX3RoaXMyJHByb3BzMjtcblxuICAgICAgICBfdGhpczIuc2V0TWF4SGVpZ2h0KCk7IC8vIFRPRE86IFJlbW92ZSBoYW5kbGVDbGljayBwcm9wIHdoZW4gaGFuZGxlQ2xpY2sgaXMgZGVwcmVjYXRlZFxuXG5cbiAgICAgICAgKChfdGhpczIkcHJvcHMkaGFuZGxlQ2wgPSAoX3RoaXMyJHByb3BzID0gX3RoaXMyLnByb3BzKS5oYW5kbGVDbGljaykgPT09IG51bGwgfHwgX3RoaXMyJHByb3BzJGhhbmRsZUNsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpczIkcHJvcHMkaGFuZGxlQ2wuY2FsbChfdGhpczIkcHJvcHMsIGV2dCkpIHx8ICgoX3RoaXMyJHByb3BzJG9uQ2xpY2sgPSAoX3RoaXMyJHByb3BzMiA9IF90aGlzMi5wcm9wcykub25DbGljaykgPT09IG51bGwgfHwgX3RoaXMyJHByb3BzJG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzMiRwcm9wcyRvbkNsaWNrLmNhbGwoX3RoaXMyJHByb3BzMiwgZXZ0KSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMiksIFwiaGFuZGxlS2V5VXBcIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgaWYgKGV2dC50YXJnZXQgIT09IF90aGlzMi50aWxlKSB7XG4gICAgICAgIGlmIChtYXRjaGVzKGV2dCwgW0VudGVyLCBTcGFjZV0pKSB7XG4gICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzMiksIFwiZ2V0Q2hpbGRyZW5cIiwgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIFJlYWN0X19kZWZhdWx0LkNoaWxkcmVuLnRvQXJyYXkoX3RoaXMyLnByb3BzLmNoaWxkcmVuKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBfdGhpczI7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoRXhwYW5kYWJsZVRpbGUsIFt7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgaWYgKHRoaXMucmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX2N4NSxcbiAgICAgICAgICBfdGhpczMgPSB0aGlzO1xuXG4gICAgICB2YXIgX3RoaXMkcHJvcHM3ID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICB0YWJJbmRleCA9IF90aGlzJHByb3BzNy50YWJJbmRleCxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wczcuY2xhc3NOYW1lO1xuICAgICAgICAgIF90aGlzJHByb3BzNy5leHBhbmRlZDtcbiAgICAgICAgICBfdGhpcyRwcm9wczcudGlsZU1heEhlaWdodDtcbiAgICAgICAgICBfdGhpcyRwcm9wczcudGlsZVBhZGRpbmc7XG4gICAgICAgICAgX3RoaXMkcHJvcHM3LmhhbmRsZUNsaWNrO1xuICAgICAgICAgIHZhciBvbktleVVwID0gX3RoaXMkcHJvcHM3Lm9uS2V5VXAsXG4gICAgICAgICAgdGlsZUNvbGxhcHNlZEljb25UZXh0ID0gX3RoaXMkcHJvcHM3LnRpbGVDb2xsYXBzZWRJY29uVGV4dCxcbiAgICAgICAgICB0aWxlRXhwYW5kZWRJY29uVGV4dCA9IF90aGlzJHByb3BzNy50aWxlRXhwYW5kZWRJY29uVGV4dCxcbiAgICAgICAgICB0aWxlQ29sbGFwc2VkTGFiZWwgPSBfdGhpcyRwcm9wczcudGlsZUNvbGxhcHNlZExhYmVsLFxuICAgICAgICAgIHRpbGVFeHBhbmRlZExhYmVsID0gX3RoaXMkcHJvcHM3LnRpbGVFeHBhbmRlZExhYmVsO1xuICAgICAgICAgIF90aGlzJHByb3BzNy5vbkJlZm9yZUNsaWNrO1xuICAgICAgICAgIHZhciBsaWdodCA9IF90aGlzJHByb3BzNy5saWdodCxcbiAgICAgICAgICByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF90aGlzJHByb3BzNywgX2V4Y2x1ZGVkNCk7XG5cbiAgICAgIHZhciBwcmVmaXggPSB0aGlzLmNvbnRleHQ7XG4gICAgICB2YXIgaXNFeHBhbmRlZCA9IHRoaXMuc3RhdGUuZXhwYW5kZWQ7XG4gICAgICB2YXIgY2xhc3NlcyA9IGN4KFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGVcIiksIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWV4cGFuZGFibGVcIiksIChfY3g1ID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY3g1LCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1pcy1leHBhbmRlZFwiKSwgaXNFeHBhbmRlZCksIF9kZWZpbmVQcm9wZXJ0eShfY3g1LCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1saWdodFwiKSwgbGlnaHQpLCBfY3g1KSwgY2xhc3NOYW1lKTtcbiAgICAgIHZhciB0aWxlU3R5bGUgPSB7XG4gICAgICAgIG1heEhlaWdodDogaXNFeHBhbmRlZCA/IG51bGwgOiB0aGlzLnN0YXRlLnRpbGVNYXhIZWlnaHQgKyB0aGlzLnN0YXRlLnRpbGVQYWRkaW5nXG4gICAgICB9O1xuICAgICAgdmFyIGNoaWxkcmVuQXNBcnJheSA9IHRoaXMuZ2V0Q2hpbGRyZW4oKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIC8qI19fUFVSRV9fKi9cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMsanN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zXG4gICAgICAgIFJlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwgX2V4dGVuZHMoe1xuICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgcmVmOiBmdW5jdGlvbiByZWYodGlsZSkge1xuICAgICAgICAgICAgX3RoaXMzLnRpbGUgPSB0aWxlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc3R5bGU6IHRpbGVTdHlsZSxcbiAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMsXG4gICAgICAgICAgXCJhcmlhLWV4cGFuZGVkXCI6IGlzRXhwYW5kZWQsXG4gICAgICAgICAgdGl0bGU6IGlzRXhwYW5kZWQgPyB0aWxlRXhwYW5kZWRJY29uVGV4dCA6IHRpbGVDb2xsYXBzZWRJY29uVGV4dFxuICAgICAgICB9LCByZXN0LCB7XG4gICAgICAgICAgb25LZXlVcDogY29tcG9zZUV2ZW50SGFuZGxlcnMoW29uS2V5VXAsIHRoaXMuaGFuZGxlS2V5VXBdKSxcbiAgICAgICAgICBvbkNsaWNrOiB0aGlzLmhhbmRsZUNsaWNrLFxuICAgICAgICAgIHRhYkluZGV4OiB0YWJJbmRleFxuICAgICAgICB9KSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIHJlZjogZnVuY3Rpb24gcmVmKHRpbGVDb250ZW50KSB7XG4gICAgICAgICAgICBfdGhpczMudGlsZUNvbnRlbnQgPSB0aWxlQ29udGVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICByZWY6IGZ1bmN0aW9uIHJlZihhYm92ZVRoZUZvbGQpIHtcbiAgICAgICAgICAgIF90aGlzMy5hYm92ZVRoZUZvbGQgPSBhYm92ZVRoZUZvbGQ7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtY29udGVudFwiKVxuICAgICAgICB9LCBjaGlsZHJlbkFzQXJyYXlbMF0pLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlX19jaGV2cm9uXCIpXG4gICAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLCBpc0V4cGFuZGVkID8gdGlsZUV4cGFuZGVkTGFiZWwgOiB0aWxlQ29sbGFwc2VkTGFiZWwpLCBfQ2hldnJvbkRvd24gfHwgKF9DaGV2cm9uRG93biA9IC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KENoZXZyb25Eb3duLCBudWxsKSkpLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLWNvbnRlbnRcIilcbiAgICAgICAgfSwgY2hpbGRyZW5Bc0FycmF5WzFdKSkpXG4gICAgICApO1xuICAgIH1cbiAgfV0sIFt7XG4gICAga2V5OiBcImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9wcm9wLXR5cGVzXG4gICAgX3JlZjIsIHN0YXRlKSB7XG4gICAgICB2YXIgZXhwYW5kZWQgPSBfcmVmMi5leHBhbmRlZCxcbiAgICAgICAgICB0aWxlTWF4SGVpZ2h0ID0gX3JlZjIudGlsZU1heEhlaWdodCxcbiAgICAgICAgICB0aWxlUGFkZGluZyA9IF9yZWYyLnRpbGVQYWRkaW5nO1xuICAgICAgdmFyIHByZXZFeHBhbmRlZCA9IHN0YXRlLnByZXZFeHBhbmRlZCxcbiAgICAgICAgICBwcmV2VGlsZU1heEhlaWdodCA9IHN0YXRlLnByZXZUaWxlTWF4SGVpZ2h0LFxuICAgICAgICAgIHByZXZUaWxlUGFkZGluZyA9IHN0YXRlLnByZXZUaWxlUGFkZGluZyxcbiAgICAgICAgICBjdXJyZW50RXhwYW5kZWQgPSBzdGF0ZS5leHBhbmRlZCxcbiAgICAgICAgICBjdXJyZW50VGlsZU1heEhlaWdodCA9IHN0YXRlLnRpbGVNYXhIZWlnaHQsXG4gICAgICAgICAgY3VycmVudFRpbGVQYWRkaW5nID0gc3RhdGUudGlsZVBhZGRpbmc7XG4gICAgICB2YXIgZXhwYW5kZWRDaGFuZ2VkID0gcHJldkV4cGFuZGVkICE9PSBleHBhbmRlZDtcbiAgICAgIHZhciB0aWxlTWF4SGVpZ2h0Q2hhbmdlZCA9IHByZXZUaWxlTWF4SGVpZ2h0ICE9PSB0aWxlTWF4SGVpZ2h0O1xuICAgICAgdmFyIHRpbGVQYWRkaW5nQ2hhbmdlZCA9IHByZXZUaWxlUGFkZGluZyAhPT0gdGlsZVBhZGRpbmc7XG4gICAgICByZXR1cm4gIWV4cGFuZGVkQ2hhbmdlZCAmJiAhdGlsZU1heEhlaWdodENoYW5nZWQgJiYgIXRpbGVQYWRkaW5nQ2hhbmdlZCA/IG51bGwgOiB7XG4gICAgICAgIGV4cGFuZGVkOiAhZXhwYW5kZWRDaGFuZ2VkID8gY3VycmVudEV4cGFuZGVkIDogZXhwYW5kZWQsXG4gICAgICAgIHRpbGVNYXhIZWlnaHQ6ICF0aWxlTWF4SGVpZ2h0Q2hhbmdlZCA/IGN1cnJlbnRUaWxlTWF4SGVpZ2h0IDogdGlsZU1heEhlaWdodCxcbiAgICAgICAgdGlsZVBhZGRpbmc6ICF0aWxlUGFkZGluZ0NoYW5nZWQgPyBjdXJyZW50VGlsZVBhZGRpbmcgOiB0aWxlUGFkZGluZyxcbiAgICAgICAgcHJldkV4cGFuZGVkOiBleHBhbmRlZCxcbiAgICAgICAgcHJldlRpbGVNYXhIZWlnaHQ6IHRpbGVNYXhIZWlnaHQsXG4gICAgICAgIHByZXZUaWxlUGFkZGluZzogdGlsZVBhZGRpbmdcbiAgICAgIH07XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEV4cGFuZGFibGVUaWxlO1xufShDb21wb25lbnQpO1xuXG5fZGVmaW5lUHJvcGVydHkoRXhwYW5kYWJsZVRpbGUsIFwicHJvcFR5cGVzXCIsIHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBub2Rlcy5cbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBuYW1lcy5cbiAgICovXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogYHRydWVgIGlmIHRoZSB0aWxlIGlzIGV4cGFuZGVkLlxuICAgKi9cbiAgZXhwYW5kZWQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBEZXByZWNhdGVkIGluIHYxMS4gVXNlICdvbkNsaWNrJyBpbnN0ZWFkLlxuICAgKi9cbiAgaGFuZGxlQ2xpY2s6IGRlcHJlY2F0ZShQcm9wVHlwZXMuZnVuYywgJ1RoZSBoYW5kbGVDbGljayBwcm9wIGZvciBFeHBhbmRhYmxlVGlsZSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mIG9uQ2xpY2suIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLicpLFxuXG4gIC8qKlxuICAgKiBBbiBJRCB0aGF0IGNhbiBiZSBwcm92aWRlZCB0byBhcmlhLWxhYmVsbGVkYnlcbiAgICovXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgdG8gdXNlIHRoZSBsaWdodCB2ZXJzaW9uLiBGb3IgdXNlIG9uICR1aS0wMSBiYWNrZ3JvdW5kcyBvbmx5LlxuICAgKiBEb24ndCB1c2UgdGhpcyB0byBtYWtlIHRpbGUgYmFja2dyb3VuZCBjb2xvciBzYW1lIGFzIGNvbnRhaW5lciBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgKi9cbiAgbGlnaHQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8qKlxuICAgKiBvcHRpb25hbCBoYW5kbGVyIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGlnbm9yZSBhIGNsaWNrLiByZXR1cm5zIGZhbHNlIGlmIGNsaWNrIHNob3VsZCBiZSBpZ25vcmVkXG4gICAqL1xuICBvbkJlZm9yZUNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIEV4cGFuZGFibGVUaWxlIGlzIGNsaWNrZWRcbiAgICAqL1xuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogb3B0aW9uYWwgaGFuZGxlciB0byB0cmlnZ2VyIGEgZnVuY3Rpb24gd2hlbiBhIGtleSBpcyBwcmVzc2VkXG4gICAqL1xuICBvbktleVVwOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogVGhlIGB0YWJpbmRleGAgYXR0cmlidXRlLlxuICAgKi9cbiAgdGFiSW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgXCJjb2xsYXBzZWRcIiBpY29uIHRoYXQgY2FuIGJlIHJlYWQgYnkgc2NyZWVuIHJlYWRlcnMuXG4gICAqL1xuICB0aWxlQ29sbGFwc2VkSWNvblRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIFdoZW4gXCJjb2xsYXBzZWRcIiwgYSBsYWJlbCB0byBhcHBlYXIgbmV4dCB0byB0aGUgY2hldnJvbiAoZS5nLiwgXCJWaWV3IG1vcmVcIikuXG4gICAqL1xuICB0aWxlQ29sbGFwc2VkTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgXCJleHBhbmRlZFwiIGljb24gdGhhdCBjYW4gYmUgcmVhZCBieSBzY3JlZW4gcmVhZGVycy5cbiAgICovXG4gIHRpbGVFeHBhbmRlZEljb25UZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBXaGVuIFwiZXhwYW5kZWRcIiwgYSBsYWJlbCB0byBhcHBlYXIgbmV4dCB0byB0aGUgY2hldnJvbiAoZS5nLiwgXCJWaWV3IGxlc3NcIikuXG4gICAqL1xuICB0aWxlRXhwYW5kZWRMYWJlbDogUHJvcFR5cGVzLnN0cmluZ1xufSk7XG5cbl9kZWZpbmVQcm9wZXJ0eShFeHBhbmRhYmxlVGlsZSwgXCJjb250ZXh0VHlwZVwiLCBQcmVmaXhDb250ZXh0KTtcblxuX2RlZmluZVByb3BlcnR5KEV4cGFuZGFibGVUaWxlLCBcImRlZmF1bHRQcm9wc1wiLCB7XG4gIHRhYkluZGV4OiAwLFxuICBleHBhbmRlZDogZmFsc2UsXG4gIHRpbGVNYXhIZWlnaHQ6IDAsXG4gIHRpbGVQYWRkaW5nOiAwLFxuICBvbkJlZm9yZUNsaWNrOiBmdW5jdGlvbiBvbkJlZm9yZUNsaWNrKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9LFxuICBvbkNsaWNrOiBmdW5jdGlvbiBvbkNsaWNrKCkge30sXG4gIHRpbGVDb2xsYXBzZWRJY29uVGV4dDogJ0ludGVyYWN0IHRvIGV4cGFuZCBUaWxlJyxcbiAgdGlsZUV4cGFuZGVkSWNvblRleHQ6ICdJbnRlcmFjdCB0byBjb2xsYXBzZSBUaWxlJyxcbiAgbGlnaHQ6IGZhbHNlXG59KTtcblxudmFyIFRpbGVBYm92ZVRoZUZvbGRDb250ZW50ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50NCkge1xuICBfaW5oZXJpdHMoVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQsIF9Db21wb25lbnQ0KTtcblxuICB2YXIgX3N1cGVyNCA9IF9jcmVhdGVTdXBlcihUaWxlQWJvdmVUaGVGb2xkQ29udGVudCk7XG5cbiAgZnVuY3Rpb24gVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRpbGVBYm92ZVRoZUZvbGRDb250ZW50KTtcblxuICAgIHJldHVybiBfc3VwZXI0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQsIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgcHJlZml4ID0gdGhpcy5jb250ZXh0O1xuICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtY29udGVudF9fYWJvdmUtdGhlLWZvbGRcIilcbiAgICAgIH0sIGNoaWxkcmVuKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQ7XG59KENvbXBvbmVudCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShUaWxlQWJvdmVUaGVGb2xkQ29udGVudCwgXCJwcm9wVHlwZXNcIiwge1xuICAvKipcbiAgICogVGhlIGNoaWxkIG5vZGVzLlxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlXG59KTtcblxuX2RlZmluZVByb3BlcnR5KFRpbGVBYm92ZVRoZUZvbGRDb250ZW50LCBcImNvbnRleHRUeXBlXCIsIFByZWZpeENvbnRleHQpO1xuXG52YXIgVGlsZUJlbG93VGhlRm9sZENvbnRlbnQgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9Db21wb25lbnQ1KSB7XG4gIF9pbmhlcml0cyhUaWxlQmVsb3dUaGVGb2xkQ29udGVudCwgX0NvbXBvbmVudDUpO1xuXG4gIHZhciBfc3VwZXI1ID0gX2NyZWF0ZVN1cGVyKFRpbGVCZWxvd1RoZUZvbGRDb250ZW50KTtcblxuICBmdW5jdGlvbiBUaWxlQmVsb3dUaGVGb2xkQ29udGVudCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVGlsZUJlbG93VGhlRm9sZENvbnRlbnQpO1xuXG4gICAgcmV0dXJuIF9zdXBlcjUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhUaWxlQmVsb3dUaGVGb2xkQ29udGVudCwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMucHJvcHMuY2hpbGRyZW47XG4gICAgICB2YXIgcHJlZml4ID0gdGhpcy5jb250ZXh0O1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1jb250ZW50X19iZWxvdy10aGUtZm9sZFwiKVxuICAgICAgfSwgY2hpbGRyZW4pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUaWxlQmVsb3dUaGVGb2xkQ29udGVudDtcbn0oQ29tcG9uZW50KTtcblxuX2RlZmluZVByb3BlcnR5KFRpbGVCZWxvd1RoZUZvbGRDb250ZW50LCBcInByb3BUeXBlc1wiLCB7XG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgbm9kZXMuXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGVcbn0pO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZUJlbG93VGhlRm9sZENvbnRlbnQsIFwiY29udGV4dFR5cGVcIiwgUHJlZml4Q29udGV4dCk7XG5cbmV4cG9ydCB7IENsaWNrYWJsZVRpbGUsIEV4cGFuZGFibGVUaWxlLCBTZWxlY3RhYmxlVGlsZSwgVGlsZSwgVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQsIFRpbGVCZWxvd1RoZUZvbGRDb250ZW50IH07XG4iXSwibmFtZXMiOlsiaW5oZXJpdHMiLCJfaW5oZXJpdHMiLCJjcmVhdGVTdXBlciIsIl9jcmVhdGVTdXBlciIsImNsYXNzQ2FsbENoZWNrIiwiX2NsYXNzQ2FsbENoZWNrIiwiY3JlYXRlQ2xhc3MiLCJfY3JlYXRlQ2xhc3MiLCJvYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX2RlZmluZVByb3BlcnR5IiwiZXh0ZW5kcyIsIl9leHRlbmRzIiwiYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsInNsaWNlZFRvQXJyYXkiLCJfc2xpY2VkVG9BcnJheSIsIlJlYWN0X19kZWZhdWx0IiwiQ29tcG9uZW50IiwidXNlU3RhdGUiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJQcm9wVHlwZXMiLCJjeCIsIkxpbmsiLCJDaGVja2JveENoZWNrZWRGaWxsZWQiLCJDaGVja2JveCIsIkNoZXZyb25Eb3duIiwiZGVwcmVjYXRlIiwiY29tcG9zZUV2ZW50SGFuZGxlcnMiLCJQcmVmaXhDb250ZXh0IiwidXNlUHJlZml4IiwibWF0Y2hlcyIsIkVudGVyIiwiU3BhY2UiLCJfQ2hlY2tib3hDaGVja2VkRmlsbGUiLCJfQ2hlY2tib3giLCJfQ2hldnJvbkRvd24iLCJfZXhjbHVkZWQiLCJfZXhjbHVkZWQyIiwiX2V4Y2x1ZGVkMyIsIl9leGNsdWRlZDQiLCJUaWxlIiwiX0NvbXBvbmVudCIsIl9zdXBlciIsImFwcGx5IiwiYXJndW1lbnRzIiwia2V5IiwidmFsdWUiLCJyZW5kZXIiLCJwcmVmaXgiLCJjb250ZXh0IiwiX3RoaXMkcHJvcHMiLCJwcm9wcyIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwibGlnaHQiLCJyZXN0IiwidGlsZUNsYXNzZXMiLCJjb25jYXQiLCJjcmVhdGVFbGVtZW50Iiwibm9kZSIsInN0cmluZyIsImJvb2wiLCJDbGlja2FibGVUaWxlIiwiX0NvbXBvbmVudDIiLCJfc3VwZXIyIiwiX3RoaXMiLCJfbGVuIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJldnQiLCJwZXJzaXN0Iiwic2V0U3RhdGUiLCJjbGlja2VkIiwic3RhdGUiLCJfdGhpcyRwcm9wcyRoYW5kbGVDbGkiLCJfdGhpcyRwcm9wczIiLCJfdGhpcyRwcm9wcyRvbkNsaWNrIiwiX3RoaXMkcHJvcHMzIiwiaGFuZGxlQ2xpY2siLCJvbkNsaWNrIiwiX3RoaXMkcHJvcHMkaGFuZGxlS2V5IiwiX3RoaXMkcHJvcHM0IiwiaGFuZGxlS2V5RG93biIsIm9uS2V5RG93biIsIl90aGlzJHByb3BzJGhhbmRsZUtleTIiLCJfdGhpcyRwcm9wczUiLCJfY3gyIiwiX3RoaXMkcHJvcHM2IiwiaHJlZiIsImNsYXNzZXMiLCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLCJfcmVmIiwicHJldkNsaWNrZWQiLCJmdW5jIiwicmVsIiwiU2VsZWN0YWJsZVRpbGUiLCJoYW5kbGVPbkNsaWNrIiwicHJldmVudERlZmF1bHQiLCJzZXRJc1NlbGVjdGVkIiwiaXNTZWxlY3RlZCIsImNsaWNrSGFuZGxlciIsIm9uQ2hhbmdlIiwiaGFuZGxlT25LZXlEb3duIiwia2V5RG93bkhhbmRsZXIiLCJoYW5kbGVDaGFuZ2UiLCJldmVudCIsInRhcmdldCIsImNoZWNrZWQiLCJfY3gzIiwiaWQiLCJ0YWJJbmRleCIsIm5hbWUiLCJ0aXRsZSIsImljb25EZXNjcmlwdGlvbiIsImRpc2FibGVkIiwic2VsZWN0ZWQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiaW5wdXQiLCJpbnB1dENsYXNzZXMiLCJGcmFnbWVudCIsInJlZiIsInR5cGUiLCJodG1sRm9yIiwiZGVmYXVsdFByb3BzIiwicHJvcFR5cGVzIiwibnVtYmVyIiwib25lT2ZUeXBlIiwiaXNSZXF1aXJlZCIsIkV4cGFuZGFibGVUaWxlIiwiX0NvbXBvbmVudDMiLCJfc3VwZXIzIiwiX3RoaXMyIiwiX2xlbjIiLCJfa2V5MiIsInJlc2l6ZU9ic2VydmVyIiwiUmVzaXplT2JzZXJ2ZXIiLCJlbnRyaWVzIiwiX2VudHJpZXMiLCJhYm92ZVRoZUZvbGQiLCJ0aWxlTWF4SGVpZ2h0IiwiY29udGVudFJlY3QiLCJoZWlnaHQiLCJ0aWxlIiwiZ2V0U3R5bGUiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwib2JzZXJ2ZSIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInRpbGVQYWRkaW5nIiwicGFyc2VJbnQiLCJnZXRQcm9wZXJ0eVZhbHVlIiwicHJldlByb3BzIiwiZXhwYW5kZWQiLCJzZXRNYXhIZWlnaHQiLCJ0aWxlQ29udGVudCIsIm9uQmVmb3JlQ2xpY2siLCJ0YWdOYW1lIiwiX3RoaXMyJHByb3BzJGhhbmRsZUNsIiwiX3RoaXMyJHByb3BzIiwiX3RoaXMyJHByb3BzJG9uQ2xpY2siLCJfdGhpczIkcHJvcHMyIiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJkaXNjb25uZWN0IiwiX2N4NSIsIl90aGlzMyIsIl90aGlzJHByb3BzNyIsIm9uS2V5VXAiLCJ0aWxlQ29sbGFwc2VkSWNvblRleHQiLCJ0aWxlRXhwYW5kZWRJY29uVGV4dCIsInRpbGVDb2xsYXBzZWRMYWJlbCIsInRpbGVFeHBhbmRlZExhYmVsIiwiaXNFeHBhbmRlZCIsInRpbGVTdHlsZSIsIm1heEhlaWdodCIsImNoaWxkcmVuQXNBcnJheSIsImdldENoaWxkcmVuIiwic3R5bGUiLCJoYW5kbGVLZXlVcCIsIl9yZWYyIiwicHJldkV4cGFuZGVkIiwicHJldlRpbGVNYXhIZWlnaHQiLCJwcmV2VGlsZVBhZGRpbmciLCJjdXJyZW50RXhwYW5kZWQiLCJjdXJyZW50VGlsZU1heEhlaWdodCIsImN1cnJlbnRUaWxlUGFkZGluZyIsImV4cGFuZGVkQ2hhbmdlZCIsInRpbGVNYXhIZWlnaHRDaGFuZ2VkIiwidGlsZVBhZGRpbmdDaGFuZ2VkIiwiVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQiLCJfQ29tcG9uZW50NCIsIl9zdXBlcjQiLCJUaWxlQmVsb3dUaGVGb2xkQ29udGVudCIsIl9Db21wb25lbnQ1IiwiX3N1cGVyNSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../../node_modules/@carbon/react/es/components/Tile/Tile.js\n");
|
|
2605
2605
|
|
|
2606
2606
|
/***/ }),
|
|
2607
2607
|
|
|
@@ -6306,17 +6306,6 @@ eval("module.exports = function() {\n var selection = document.getSelection()
|
|
|
6306
6306
|
|
|
6307
6307
|
/***/ }),
|
|
6308
6308
|
|
|
6309
|
-
/***/ "../../../node_modules/unistore/dist/unistore.es.js":
|
|
6310
|
-
/*!**********************************************************!*\
|
|
6311
|
-
!*** ../../../node_modules/unistore/dist/unistore.es.js ***!
|
|
6312
|
-
\**********************************************************/
|
|
6313
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6314
|
-
|
|
6315
|
-
"use strict";
|
|
6316
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction n(n, t) {\n for(var r in t)n[r] = t[r];\n return n;\n}\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(t) {\n var u = function u(n) {\n for(var _$t = [], u = 0; u < r.length; u++)r[u] === n ? n = null : _$t.push(r[u]);\n r = _$t;\n };\n var e = function e(u, e, f) {\n t = e ? u : n(n({}, t), u);\n for(var i = r, o = 0; o < i.length; o++)i[o](t, f);\n };\n var r = [];\n return t = t || {}, {\n action: function action(n) {\n var r = function r(t) {\n e(t, !1, n);\n };\n return function() {\n for(var u = arguments, e = [\n t\n ], f = 0; f < arguments.length; f++)e.push(u[f]);\n var i = n.apply(this, e);\n if (null != i) return i.then ? i.then(r) : r(i);\n };\n },\n setState: e,\n subscribe: function subscribe(n) {\n return r.push(n), function() {\n u(n);\n };\n },\n unsubscribe: u,\n getState: function getState() {\n return t;\n }\n };\n} //# sourceMappingURL=unistore.es.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3VuaXN0b3JlL2Rpc3QvdW5pc3RvcmUuZXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLFNBQVNBLEVBQUVBLENBQUMsRUFBQ0MsQ0FBQyxFQUFDO0lBQUMsSUFBSSxJQUFJQyxLQUFLRCxFQUFFRCxDQUFDLENBQUNFLEVBQUUsR0FBQ0QsQ0FBQyxDQUFDQyxFQUFFO0lBQUMsT0FBT0Y7QUFBQztBQUFDLDZCQUFlLG9DQUFTQyxDQUFDLEVBQUM7UUFBbUJFLElBQVQsU0FBU0EsRUFBRUgsQ0FBQyxFQUFDO1FBQUMsSUFBSSxJQUFJQyxNQUFFLEVBQUUsRUFBQ0UsSUFBRSxHQUFFQSxJQUFFRCxFQUFFRSxNQUFNLEVBQUNELElBQUlELENBQUMsQ0FBQ0MsRUFBRSxLQUFHSCxJQUFFQSxJQUFFLElBQUksR0FBQ0MsSUFBRUksSUFBSSxDQUFDSCxDQUFDLENBQUNDLEVBQUUsQ0FBQztRQUFDRCxJQUFFRDtJQUFDO1FBQVVLLElBQVQsU0FBU0EsRUFBRUgsQ0FBQyxFQUFDRyxDQUFDLEVBQUNDLENBQUMsRUFBQztRQUFDTixJQUFFSyxJQUFFSCxJQUFFSCxFQUFFQSxFQUFFLENBQUMsR0FBRUMsSUFBR0UsRUFBRTtRQUFDLElBQUksSUFBSUssSUFBRU4sR0FBRU8sSUFBRSxHQUFFQSxJQUFFRCxFQUFFSixNQUFNLEVBQUNLLElBQUlELENBQUMsQ0FBQ0MsRUFBRSxDQUFDUixHQUFFTTtJQUFFO0lBQXJLLElBQUlMLElBQUUsRUFBRTtJQUE4SixPQUFPRCxJQUFFQSxLQUFHLENBQUMsR0FBRTtRQUFDUyxRQUFPLFNBQVBBLE9BQWdCVixDQUFDLEVBQUM7Z0JBQVVFLElBQVQsU0FBU0EsRUFBRUQsQ0FBQyxFQUFDO2dCQUFDSyxFQUFFTCxHQUFFLENBQUMsR0FBRUQ7WUFBRTtZQUFDLE9BQU8sV0FBVTtnQkFBQyxJQUFJLElBQUlHLElBQUVRLFdBQVVMLElBQUU7b0JBQUNMO2lCQUFFLEVBQUNNLElBQUUsR0FBRUEsSUFBRUksVUFBVVAsTUFBTSxFQUFDRyxJQUFJRCxFQUFFRCxJQUFJLENBQUNGLENBQUMsQ0FBQ0ksRUFBRTtnQkFBRSxJQUFJQyxJQUFFUixFQUFFWSxLQUFLLENBQUMsSUFBSSxFQUFDTjtnQkFBRyxJQUFHLElBQUksSUFBRUUsR0FBRSxPQUFPQSxFQUFFSyxJQUFJLEdBQUNMLEVBQUVLLElBQUksQ0FBQ1gsS0FBR0EsRUFBRU0sRUFBRTtZQUFBO1FBQUM7UUFBRU0sVUFBU1I7UUFBRVMsV0FBVSxTQUFWQSxVQUFtQmYsQ0FBQyxFQUFDO1lBQUMsT0FBT0UsRUFBRUcsSUFBSSxDQUFDTCxJQUFHLFdBQVU7Z0JBQUNHLEVBQUVIO1lBQUUsQ0FBQztRQUFBO1FBQUVnQixhQUFZYjtRQUFFYyxVQUFTLFNBQVRBLFdBQW1CO1lBQUMsT0FBT2hCO1FBQUM7SUFBQyxDQUFDO0FBQUEsQ0FBQyxDQUNuakIsdUNBQXVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdW5pc3RvcmUvZGlzdC91bmlzdG9yZS5lcy5qcz9kYWFlIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIG4obix0KXtmb3IodmFyIHIgaW4gdCluW3JdPXRbcl07cmV0dXJuIG59ZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24odCl7dmFyIHI9W107ZnVuY3Rpb24gdShuKXtmb3IodmFyIHQ9W10sdT0wO3U8ci5sZW5ndGg7dSsrKXJbdV09PT1uP249bnVsbDp0LnB1c2goclt1XSk7cj10fWZ1bmN0aW9uIGUodSxlLGYpe3Q9ZT91Om4obih7fSx0KSx1KTtmb3IodmFyIGk9cixvPTA7bzxpLmxlbmd0aDtvKyspaVtvXSh0LGYpfXJldHVybiB0PXR8fHt9LHthY3Rpb246ZnVuY3Rpb24obil7ZnVuY3Rpb24gcih0KXtlKHQsITEsbil9cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB1PWFyZ3VtZW50cyxlPVt0XSxmPTA7Zjxhcmd1bWVudHMubGVuZ3RoO2YrKyllLnB1c2godVtmXSk7dmFyIGk9bi5hcHBseSh0aGlzLGUpO2lmKG51bGwhPWkpcmV0dXJuIGkudGhlbj9pLnRoZW4ocik6cihpKX19LHNldFN0YXRlOmUsc3Vic2NyaWJlOmZ1bmN0aW9uKG4pe3JldHVybiByLnB1c2gobiksZnVuY3Rpb24oKXt1KG4pfX0sdW5zdWJzY3JpYmU6dSxnZXRTdGF0ZTpmdW5jdGlvbigpe3JldHVybiB0fX19XG4vLyMgc291cmNlTWFwcGluZ1VSTD11bmlzdG9yZS5lcy5qcy5tYXBcbiJdLCJuYW1lcyI6WyJuIiwidCIsInIiLCJ1IiwibGVuZ3RoIiwicHVzaCIsImUiLCJmIiwiaSIsIm8iLCJhY3Rpb24iLCJhcmd1bWVudHMiLCJhcHBseSIsInRoZW4iLCJzZXRTdGF0ZSIsInN1YnNjcmliZSIsInVuc3Vic2NyaWJlIiwiZ2V0U3RhdGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../../node_modules/unistore/dist/unistore.es.js\n");
|
|
6317
|
-
|
|
6318
|
-
/***/ }),
|
|
6319
|
-
|
|
6320
6309
|
/***/ "../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js":
|
|
6321
6310
|
/*!*****************************************************************************************************!*\
|
|
6322
6311
|
!*** ../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js ***!
|
|
@@ -6455,7 +6444,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
6455
6444
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6456
6445
|
|
|
6457
6446
|
"use strict";
|
|
6458
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"OpenmrsFetchError\": () => (/* binding */ OpenmrsFetchError),\n/* harmony export */ \"fhirBaseUrl\": () => (/* binding */ fhirBaseUrl),\n/* harmony export */ \"makeUrl\": () => (/* binding */ makeUrl),\n/* harmony export */ \"openmrsFetch\": () => (/* binding */ openmrsFetch),\n/* harmony export */ \"openmrsObservableFetch\": () => (/* binding */ openmrsObservableFetch),\n/* harmony export */ \"restBaseUrl\": () => (/* binding */ restBaseUrl),\n/* harmony export */ \"sessionEndpoint\": () => (/* binding */ sessionEndpoint)\n/* harmony export */ });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"webpack/sharing/consume/default/rxjs/rxjs\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash-es/isPlainObject */ \"../../../node_modules/lodash-es/isPlainObject.js\");\n/* harmony import */ var _openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-config */ \"../../framework/esm-config/src/index.ts\");\n/** @module @category API */ function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [\n null\n ];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n return _assertThisInitialized(self);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nvar _typeof = function(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n};\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived), result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nvar __generator = undefined && undefined.__generator || function(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\nvar restBaseUrl = \"/ws/rest/v1/\";\nvar fhirBaseUrl = \"/ws/fhir2/R4\";\nvar sessionEndpoint = \"\".concat(restBaseUrl, \"session\");\n/**\n * Append `path` to the OpenMRS SPA base.\n *\n * #### Example\n *\n * ```ts\n * makeUrl('/foo/bar');\n * // => '/openmrs/foo/bar'\n * ```\n */ function makeUrl(path) {\n return window.openmrsBase + path;\n}\n/**\n * The openmrsFetch function is a wrapper around the\n * [browser's built-in fetch function](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch),\n * with extra handling for OpenMRS-specific API behaviors, such as\n * request headers, authentication, authorization, and the API urls.\n *\n * @param path A string url to make the request to. Note that the\n * openmrs base url (by default `/openmrs`) will be automatically\n * prepended to the URL, so there is no need to include it.\n * @param fetchInit A [fetch init object](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Syntax).\n * Note that the `body` property does not need to be `JSON.stringify()`ed\n * because openmrsFetch will do that for you.\n * @returns A [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)\n * that resolves with a [Response object](https://developer.mozilla.org/en-US/docs/Web/API/Response).\n * Note that the openmrs version of the Response object has already\n * downloaded the HTTP response body as json, and has an additional\n * `data` property with the HTTP response json as a javascript object.\n *\n * #### Example\n * ```js\n * import { openmrsFetch } from '@openmrs/esm-api'\n * const abortController = new AbortController();\n * openmrsFetch('/ws/rest/v1/session', {signal: abortController.signal})\n * .then(response => {\n * console.log(response.data.authenticated)\n * })\n * .catch(err => {\n * console.error(err.status);\n * })\n * abortController.abort();\n * openmrsFetch('/ws/rest/v1/session', {\n * method: 'POST',\n * body: {\n * username: 'hi',\n * password: 'there',\n * }\n * })\n * ```\n *\n * #### Cancellation\n *\n * To cancel a network request, use an\n * [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort).\n * It is best practice to cancel your network requests when the user\n * navigates away from a page while the request is pending request, to\n * free up memory and network resources and to prevent race conditions.\n *\n * @category API\n */ function openmrsFetch(path) {\n var fetchInit = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (typeof path !== \"string\") {\n throw Error(\"The first argument to @openmrs/api's openmrsFetch function must be a url string\");\n }\n if (typeof fetchInit !== \"object\") {\n throw Error(\"The second argument to @openmrs/api's openmrsFetch function must be a plain object.\");\n }\n // @ts-ignore\n if (!window.openmrsBase) {\n throw Error(\"@openmrs/api is running in a browser that doesn't have window.openmrsBase, which is provided by openmrs-module-spa's HTML file.\");\n }\n // ensure path starts with /\n if (path[0] !== \"/\") {\n path = \"/\" + path;\n }\n // Prefix the url with the openmrs spa base\n var url = makeUrl(path);\n // We're going to need some headers\n if (!fetchInit.headers) {\n fetchInit.headers = {};\n }\n /* Automatically stringify javascript objects being sent in the\n * request body.\n */ if ((0,lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(fetchInit.body)) {\n fetchInit.body = JSON.stringify(fetchInit.body);\n }\n /* Add a request header to tell the server to respond with json,\n * since frontend code almost always wants json and the OpenMRS\n * server won't give you json unless you explicitly ask for it.\n * If a different Accept header is preferred, pass it into the fetchInit.\n * If no Accept header is desired, pass it in explicitly as null.\n */ if (typeof fetchInit.headers.Accept === \"undefined\") {\n fetchInit.headers.Accept = \"application/json\";\n }\n if (fetchInit.headers.Accept === null) {\n delete fetchInit.headers.Accept;\n }\n /* This tells the OpenMRS REST API not to return a WWW-Authenticate\n * header. Returning that header is useful when using the API, but\n * not from a UI.\n */ if (path.startsWith(restBaseUrl) && typeof fetchInit.headers[\"Disable-WWW-Authenticate\"] === \"undefined\") {\n fetchInit.headers[\"Disable-WWW-Authenticate\"] = \"true\";\n }\n if (path.startsWith(fhirBaseUrl)) {\n var urlUrl = new URL(url, window.location.toString());\n if (!urlUrl.searchParams.has(\"_summary\")) {\n urlUrl.searchParams.set(\"_summary\", \"data\");\n url = urlUrl.toString();\n }\n }\n /* We capture the stacktrace before making the request, so that if an error occurs we can\n * log a full stacktrace that includes the code that made the request and handled the response\n * Otherwise, we could run into situations where the stacktrace doesn't even show which code\n * called @openmrs/api.\n */ var requestStacktrace = Error();\n return window.fetch(url, fetchInit).then(function() {\n var _ref = _asyncToGenerator(function(r) {\n var response, redirectAuthFailure;\n return __generator(this, function(_state) {\n switch(_state.label){\n case 0:\n response = r;\n if (!response.ok) return [\n 3,\n 1\n ];\n if (response.status === 204) {\n /* HTTP 204 - No Content\n * We should not try to download the empty response as json. Instead,\n * we return null since there is no response body.\n */ response.data = null;\n return [\n 2,\n response\n ];\n } else {\n // HTTP 200s - The request succeeded\n return [\n 2,\n response.text().then(function(responseText) {\n try {\n if (responseText) {\n response.data = JSON.parse(responseText);\n }\n } catch (err) {\n // Server didn't respond with json\n }\n return response;\n })\n ];\n }\n return [\n 3,\n 3\n ];\n case 1:\n return [\n 4,\n (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)(\"@openmrs/esm-api\")\n ];\n case 2:\n redirectAuthFailure = _state.sent().redirectAuthFailure;\n if (url === makeUrl(sessionEndpoint) && response.status === 403 || redirectAuthFailure.enabled && redirectAuthFailure.errors.includes(response.status)) {\n (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.navigate)({\n to: redirectAuthFailure.url\n });\n /* We sometimes don't really want this promise to resolve since there's no response data,\n * nor do we want it to reject because that would trigger error handling. We instead\n * want it to remain in pending status while the navigation occurs.\n */ return [\n 2,\n redirectAuthFailure.resolvePromise ? Promise.resolve() : new Promise(function() {})\n ];\n } else {\n // Attempt to download a response body, if it has one\n return [\n 2,\n response.text().then(function(responseText) {\n var responseBody = responseText;\n try {\n responseBody = JSON.parse(responseText);\n } catch (err) {\n // Server didn't respond with json, so just go with the response text string\n }\n /* Make the fetch promise go into \"rejected\" status, with the best\n * possible stacktrace and error message.\n */ throw new OpenmrsFetchError(url, response, responseBody, requestStacktrace);\n }, function(err) {\n /* We weren't able to download a response body for this error.\n * Time to just give the best possible stacktrace and error message.\n */ throw new OpenmrsFetchError(url, response, null, requestStacktrace);\n })\n ];\n }\n _state.label = 3;\n case 3:\n return [\n 2\n ];\n }\n });\n });\n return function(r) {\n return _ref.apply(this, arguments);\n };\n }());\n}\n/**\n * The openmrsObservableFetch function is a wrapper around openmrsFetch\n * that returns an [Observable](https://rxjs-dev.firebaseapp.com/guide/observable)\n * instead of a promise. It exists in case using an Observable is\n * preferred or more convenient than a promise.\n *\n * @param url See [[openmrsFetch]]\n * @param fetchInit See [[openmrsFetch]]\n * @returns An Observable that produces exactly one Response object.\n * The response object is exactly the same as for [[openmrsFetch]].\n *\n * #### Example\n *\n * ```js\n * import { openmrsObservableFetch } from '@openmrs/esm-api'\n * const subscription = openmrsObservableFetch('/ws/rest/v1/session').subscribe(\n * response => console.log(response.data),\n * err => {throw err},\n * () => console.log('finished')\n * )\n * subscription.unsubscribe()\n * ```\n *\n * #### Cancellation\n *\n * To cancel the network request, simply call `subscription.unsubscribe();`\n *\n * @category API\n */ function openmrsObservableFetch(url) {\n var fetchInit = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (typeof fetchInit !== \"object\") {\n throw Error(\"The second argument to openmrsObservableFetch must be either omitted or an object\");\n }\n var abortController = new AbortController();\n fetchInit.signal = abortController.signal;\n return new rxjs__WEBPACK_IMPORTED_MODULE_0__.Observable(function(observer) {\n var hasResponse = false;\n openmrsFetch(url, fetchInit).then(function(response) {\n hasResponse = true;\n observer.next(response);\n observer.complete();\n }, function(err) {\n hasResponse = true;\n observer.error(err);\n });\n return function() {\n if (!hasResponse) {\n abortController.abort();\n }\n };\n });\n}\nvar OpenmrsFetchError = /*#__PURE__*/ function(Error1) {\n \"use strict\";\n _inherits(OpenmrsFetchError, Error1);\n var _super = _createSuper(OpenmrsFetchError);\n function OpenmrsFetchError(url, response, responseBody, requestStacktrace) {\n _classCallCheck(this, OpenmrsFetchError);\n var _this;\n _this = _super.call(this);\n _this.message = \"Server responded with \".concat(response.status, \" (\").concat(response.statusText, \") for url \").concat(url, \". Check err.responseBody or network tab in dev tools for more info\");\n requestStacktrace.message = _this.message;\n _this.responseBody = responseBody;\n _this.response = response;\n _this.stack = \"Stacktrace for outgoing request:\\n\".concat(requestStacktrace.stack, \"\\nStacktrace for incoming response:\\n\").concat(_this.stack);\n return _this;\n }\n return OpenmrsFetchError;\n}(_wrapNativeSuper(Error));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1hcGkvc3JjL29wZW5tcnMtZmV0Y2gudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQkFBMEIsR0FDMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFrQztBQUNrQjtBQUNNO0FBR25ELElBQU1JLGNBQWMsZUFBZTtBQUVuQyxJQUFNQyxjQUFjLGVBQWU7QUFFbkMsSUFBTUMsa0JBQWtCLEdBQWUsT0FBWkYsYUFBWSxXQUFTO0FBRXZEOzs7Ozs7Ozs7Q0FTQyxHQUNNLFNBQVNHLFFBQVFDLElBQVksRUFBRTtJQUNwQyxPQUFPQyxPQUFPQyxXQUFXLEdBQUdGO0FBQzlCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBZ0RDLEdBQ00sU0FBU0csYUFDZEgsSUFBWSxFQUVlO1FBRDNCSSxZQUFBQSxpRUFBeUIsQ0FBQyxDQUFDO0lBRTNCLElBQUksT0FBT0osU0FBUyxVQUFVO1FBQzVCLE1BQU1LLE1BQ0osbUZBQ0E7SUFDSixDQUFDO0lBRUQsSUFBSSxPQUFPRCxjQUFjLFVBQVU7UUFDakMsTUFBTUMsTUFDSix1RkFDQTtJQUNKLENBQUM7SUFFRCxhQUFhO0lBQ2IsSUFBSSxDQUFDSixPQUFPQyxXQUFXLEVBQUU7UUFDdkIsTUFBTUcsTUFDSixtSUFDQTtJQUNKLENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsSUFBSUwsSUFBSSxDQUFDLEVBQUUs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LEdBQUcseUJBQTZDNUIsT0FBcEJBLFNBQVNHLE1BQU0sRUFBQyxNQUFvQ3JCLE9BQWhDa0IsU0FBUzZCLFVBQVUsRUFBQyxjQUFnQixPQUFKL0MsS0FBSTtRQUNoR2Msa0JBQWtCZ0MsT0FBTyxHQUFHLE1BQUtBLE9BQU87UUFDeEMsTUFBS1osWUFBWSxHQUFHQTtRQUNwQixNQUFLaEIsUUFBUSxHQUFHQTtRQUNoQixNQUFLOEIsS0FBSyxHQUFHLHFDQUFvRyxPQUEvRGxDLGtCQUFrQmtDLEtBQUssRUFBQyx5Q0FBa0QsT0FBWCxNQUFLQSxLQUFLOzs7V0FabEhiO21CQUEwQnBDLFFBZ0J0QyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1hcGkvc3JjL29wZW5tcnMtZmV0Y2gudHM/ZGVhMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgQVBJICovXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCBpc1BsYWluT2JqZWN0IGZyb20gXCJsb2Rhc2gtZXMvaXNQbGFpbk9iamVjdFwiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnLCBuYXZpZ2F0ZSB9IGZyb20gXCJAb3Blbm1ycy9lc20tY29uZmlnXCI7XG5pbXBvcnQgeyBGZXRjaFJlc3BvbnNlIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IHJlc3RCYXNlVXJsID0gXCIvd3MvcmVzdC92MS9cIjtcblxuZXhwb3J0IGNvbnN0IGZoaXJCYXNlVXJsID0gXCIvd3MvZmhpcjIvUjRcIjtcblxuZXhwb3J0IGNvbnN0IHNlc3Npb25FbmRwb2ludCA9IGAke3Jlc3RCYXNlVXJsfXNlc3Npb25gO1xuXG4vKipcbiAqIEFwcGVuZCBgcGF0aGAgdG8gdGhlIE9wZW5NUlMgU1BBIGJhc2UuXG4gKlxuICogIyMjIyBFeGFtcGxlXG4gKlxuICogYGBgdHNcbiAqIG1ha2VVcmwoJy9mb28vYmFyJyk7XG4gKiAvLyA9PiAnL29wZW5tcnMvZm9vL2JhcidcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZVVybChwYXRoOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHdpbmRvdy5vcGVubXJzQmFzZSArIHBhdGg7XG59XG5cbi8qKlxuICogVGhlIG9wZW5tcnNGZXRjaCBmdW5jdGlvbiBpcyBhIHdyYXBwZXIgYXJvdW5kIHRoZVxuICogW2Jyb3dzZXIncyBidWlsdC1pbiBmZXRjaCBmdW5jdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0ZldGNoX0FQSS9Vc2luZ19GZXRjaCksXG4gKiB3aXRoIGV4dHJhIGhhbmRsaW5nIGZvciBPcGVuTVJTLXNwZWNpZmljIEFQSSBiZWhhdmlvcnMsIHN1Y2ggYXNcbiAqIHJlcXVlc3QgaGVhZGVycywgYXV0aGVudGljYXRpb24sIGF1dGhvcml6YXRpb24sIGFuZCB0aGUgQVBJIHVybHMuXG4gKlxuICogQHBhcmFtIHBhdGggQSBzdHJpbmcgdXJsIHRvIG1ha2UgdGhlIHJlcXVlc3QgdG8uIE5vdGUgdGhhdCB0aGVcbiAqICAgb3Blbm1ycyBiYXNlIHVybCAoYnkgZGVmYXVsdCBgL29wZW5tcnNgKSB3aWxsIGJlIGF1dG9tYXRpY2FsbHlcbiAqICAgcHJlcGVuZGVkIHRvIHRoZSBVUkwsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gaW5jbHVkZSBpdC5cbiAqIEBwYXJhbSBmZXRjaEluaXQgQSBbZmV0Y2ggaW5pdCBvYmplY3RdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlL2ZldGNoI1N5bnRheCkuXG4gKiAgIE5vdGUgdGhhdCB0aGUgYGJvZHlgIHByb3BlcnR5IGRvZXMgbm90IG5lZWQgdG8gYmUgYEpTT04uc3RyaW5naWZ5KClgZWRcbiAqICAgYmVjYXVzZSBvcGVubXJzRmV0Y2ggd2lsbCBkbyB0aGF0IGZvciB5b3UuXG4gKiBAcmV0dXJucyBBIFtQcm9taXNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9Qcm9taXNlKVxuICogICB0aGF0IHJlc29sdmVzIHdpdGggYSBbUmVzcG9uc2Ugb2JqZWN0XShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvUmVzcG9uc2UpLlxuICogICBOb3RlIHRoYXQgdGhlIG9wZW5tcnMgdmVyc2lvbiBvZiB0aGUgUmVzcG9uc2Ugb2JqZWN0IGhhcyBhbHJlYWR5XG4gKiAgIGRvd25sb2FkZWQgdGhlIEhUVFAgcmVzcG9uc2UgYm9keSBhcyBqc29uLCBhbmQgaGFzIGFuIGFkZGl0aW9uYWxcbiAqICAgYGRhdGFgIHByb3BlcnR5IHdpdGggdGhlIEhUVFAgcmVzcG9uc2UganNvbiBhcyBhIGphdmFzY3JpcHQgb2JqZWN0LlxuICpcbiAqICMjIyMgRXhhbXBsZVxuICogYGBganNcbiAqIGltcG9ydCB7IG9wZW5tcnNGZXRjaCB9IGZyb20gJ0BvcGVubXJzL2VzbS1hcGknXG4gKiBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gKiBvcGVubXJzRmV0Y2goJy93cy9yZXN0L3YxL3Nlc3Npb24nLCB7c2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsfSlcbiAqICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICogICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLmRhdGEuYXV0aGVudGljYXRlZClcbiAqICAgfSlcbiAqICAgLmNhdGNoKGVyciA9PiB7XG4gKiAgICAgY29uc29sZS5lcnJvcihlcnIuc3RhdHVzKTtcbiAqICAgfSlcbiAqIGFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICogb3Blbm1yc0ZldGNoKCcvd3MvcmVzdC92MS9zZXNzaW9uJywge1xuICogICBtZXRob2Q6ICdQT1NUJyxcbiAqICAgYm9keToge1xuICogICAgIHVzZXJuYW1lOiAnaGknLFxuICogICAgIHBhc3N3b3JkOiAndGhlcmUnLFxuICogICB9XG4gKiB9KVxuICogYGBgXG4gKlxuICogIyMjIyBDYW5jZWxsYXRpb25cbiAqXG4gKiBUbyBjYW5jZWwgYSBuZXR3b3JrIHJlcXVlc3QsIHVzZSBhblxuICogW0Fib3J0Q29udHJvbGxlcl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0Fib3J0Q29udHJvbGxlci9hYm9ydCkuXG4gKiBJdCBpcyBiZXN0IHByYWN0aWNlIHRvIGNhbmNlbCB5b3VyIG5ldHdvcmsgcmVxdWVzdHMgd2hlbiB0aGUgdXNlclxuICogbmF2aWdhdGVzIGF3YXkgZnJvbSBhIHBhZ2Ugd2hpbGUgdGhlIHJlcXVlc3QgaXMgcGVuZGluZyByZXF1ZXN0LCB0b1xuICogZnJlZSB1cCBtZW1vcnkgYW5kIG5ldHdvcmsgcmVzb3VyY2VzIGFuZCB0byBwcmV2ZW50IHJhY2UgY29uZGl0aW9ucy5cbiAqXG4gKiBAY2F0ZWdvcnkgQVBJXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvcGVubXJzRmV0Y2g8VCA9IGFueT4oXG4gIHBhdGg6IHN0cmluZyxcbiAgZmV0Y2hJbml0OiBGZXRjaENvbmZpZyA9IHt9XG4pOiBQcm9taXNlPEZldGNoUmVzcG9uc2U8VD4+IHtcbiAgaWYgKHR5cGVvZiBwYXRoICE9PSBcInN0cmluZ1wiKSB7XG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBcIlRoZSBmaXJzdCBhcmd1bWVudCB0byBAb3Blbm1ycy9hcGkncyBvcGVubXJzRmV0Y2ggZnVuY3Rpb24gbXVzdCBiZSBhIHVybCBzdHJpbmdcIlxuICAgICk7XG4gIH1cblxuICBpZiAodHlwZW9mIGZldGNoSW5pdCAhPT0gXCJvYmplY3RcIikge1xuICAgIHRocm93IEVycm9yKFxuICAgICAgXCJUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIEBvcGVubXJzL2FwaSdzIG9wZW5tcnNGZXRjaCBmdW5jdGlvbiBtdXN0IGJlIGEgcGxhaW4gb2JqZWN0LlwiXG4gICAgKTtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgaWYgKCF3aW5kb3cub3Blbm1yc0Jhc2UpIHtcbiAgICB0aHJvdyBFcnJvcihcbiAgICAgIFwiQG9wZW5tcnMvYXBpIGlzIHJ1bm5pbmcgaW4gYSBicm93c2VyIHRoYXQgZG9lc24ndCBoYXZlIHdpbmRvdy5vcGVubXJzQmFzZSwgd2hpY2ggaXMgcHJvdmlkZWQgYnkgb3Blbm1ycy1tb2R1bGUtc3BhJ3MgSFRNTCBmaWxlLlwiXG4gICAgKTtcbiAgfVxuXG4gIC8vIGVuc3VyZSBwYXRoIHN0YXJ0cyB3aXRoIC9cbiAgaWYgKHBhdGhbMF0gIT09IFwiL1wiKSB7XG4gICAgcGF0aCA9IFwiL1wiICsgcGF0aDtcbiAgfVxuXG4gIC8vIFByZWZpeCB0aGUgdXJsIHdpdGggdGhlIG9wZW5tcnMgc3BhIGJhc2VcbiAgbGV0IHVybDogc3RyaW5nID0gbWFrZVVybChwYXRoKTtcblxuICAvLyBXZSdyZSBnb2luZyB0byBuZWVkIHNvbWUgaGVhZGVyc1xuICBpZiAoIWZldGNoSW5pdC5oZWFkZXJzKSB7XG4gICAgZmV0Y2hJbml0LmhlYWRlcnMgPSB7fTtcbiAgfVxuXG4gIC8qIEF1dG9tYXRpY2FsbHkgc3RyaW5naWZ5IGphdmFzY3JpcHQgb2JqZWN0cyBiZWluZyBzZW50IGluIHRoZVxuICAgKiByZXF1ZXN0IGJvZHkuXG4gICAqL1xuICBpZiAoaXNQbGFpbk9iamVjdChmZXRjaEluaXQuYm9keSkpIHtcbiAgICBmZXRjaEluaXQuYm9keSA9IEpTT04uc3RyaW5naWZ5KGZldGNoSW5pdC5ib2R5KTtcbiAgfVxuXG4gIC8qIEFkZCBhIHJlcXVlc3QgaGVhZGVyIHRvIHRlbGwgdGhlIHNlcnZlciB0byByZXNwb25kIHdpdGgganNvbixcbiAgICogc2luY2UgZnJvbnRlbmQgY29kZSBhbG1vc3QgYWx3YXlzIHdhbnRzIGpzb24gYW5kIHRoZSBPcGVuTVJTXG4gICAqIHNlcnZlciB3b24ndCBnaXZlIHlvdSBqc29uIHVubGVzcyB5b3UgZXhwbGljaXRseSBhc2sgZm9yIGl0LlxuICAgKiBJZiBhIGRpZmZlcmVudCBBY2NlcHQgaGVhZGVyIGlzIHByZWZlcnJlZCwgcGFzcyBpdCBpbnRvIHRoZSBmZXRjaEluaXQuXG4gICAqIElmIG5vIEFjY2VwdCBoZWFkZXIgaXMgZGVzaXJlZCwgcGFzcyBpdCBpbiBleHBsaWNpdGx5IGFzIG51bGwuXG4gICAqL1xuICBpZiAodHlwZW9mIGZldGNoSW5pdC5oZWFkZXJzLkFjY2VwdCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGZldGNoSW5pdC5oZWFkZXJzLkFjY2VwdCA9IFwiYXBwbGljYXRpb24vanNvblwiO1xuICB9XG5cbiAgaWYgKGZldGNoSW5pdC5oZWFkZXJzLkFjY2VwdCA9PT0gbnVsbCkge1xuICAgIGRlbGV0ZSBmZXRjaEluaXQuaGVhZGVycy5BY2NlcHQ7XG4gIH1cblxuICAvKiBUaGlzIHRlbGxzIHRoZSBPcGVuTVJTIFJFU1QgQVBJIG5vdCB0byByZXR1cm4gYSBXV1ctQXV0aGVudGljYXRlXG4gICAqIGhlYWRlci4gUmV0dXJuaW5nIHRoYXQgaGVhZGVyIGlzIHVzZWZ1bCB3aGVuIHVzaW5nIHRoZSBBUEksIGJ1dFxuICAgKiBub3QgZnJvbSBhIFVJLlxuICAgKi9cbiAgaWYgKFxuICAgIHBhdGguc3RhcnRzV2l0aChyZXN0QmFzZVVybCkgJiZcbiAgICB0eXBlb2YgZmV0Y2hJbml0LmhlYWRlcnNbXCJEaXNhYmxlLVdXVy1BdXRoZW50aWNhdGVcIl0gPT09IFwidW5kZWZpbmVkXCJcbiAgKSB7XG4gICAgZmV0Y2hJbml0LmhlYWRlcnNbXCJEaXNhYmxlLVdXVy1BdXRoZW50aWNhdGVcIl0gPSBcInRydWVcIjtcbiAgfVxuXG4gIGlmIChwYXRoLnN0YXJ0c1dpdGgoZmhpckJhc2VVcmwpKSB7XG4gICAgY29uc3QgdXJsVXJsID0gbmV3IFVSTCh1cmwsIHdpbmRvdy5sb2NhdGlvbi50b1N0cmluZygpKTtcbiAgICBpZiAoIXVybFVybC5zZWFyY2hQYXJhbXMuaGFzKFwiX3N1bW1hcnlcIikpIHtcbiAgICAgIHVybFVybC5zZWFyY2hQYXJhbXMuc2V0KFwiX3N1bW1hcnlcIiwgXCJkYXRhXCIpO1xuICAgICAgdXJsID0gdXJsVXJsLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyogV2UgY2FwdHVyZSB0aGUgc3RhY2t0cmFjZSBiZWZvcmUgbWFraW5nIHRoZSByZXF1ZXN0LCBzbyB0aGF0IGlmIGFuIGVycm9yIG9jY3VycyB3ZSBjYW5cbiAgICogbG9nIGEgZnVsbCBzdGFja3RyYWNlIHRoYXQgaW5jbHVkZXMgdGhlIGNvZGUgdGhhdCBtYWRlIHRoZSByZXF1ZXN0IGFuZCBoYW5kbGVkIHRoZSByZXNwb25zZVxuICAgKiBPdGhlcndpc2UsIHdlIGNvdWxkIHJ1biBpbnRvIHNpdHVhdGlvbnMgd2hlcmUgdGhlIHN0YWNrdHJhY2UgZG9lc24ndCBldmVuIHNob3cgd2hpY2ggY29kZVxuICAgKiBjYWxsZWQgQG9wZW5tcnMvYXBpLlxuICAgKi9cbiAgY29uc3QgcmVxdWVzdFN0YWNrdHJhY2UgPSBFcnJvcigpO1xuXG4gIHJldHVybiB3aW5kb3cuZmV0Y2godXJsLCBmZXRjaEluaXQgYXMgUmVxdWVzdEluaXQpLnRoZW4oYXN5bmMgKHIpID0+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IHIgYXMgRmV0Y2hSZXNwb25zZTxUPjtcbiAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwNCkge1xuICAgICAgICAvKiBIVFRQIDIwNCAtIE5vIENvbnRlbnRcbiAgICAgICAgICogV2Ugc2hvdWxkIG5vdCB0cnkgdG8gZG93bmxvYWQgdGhlIGVtcHR5IHJlc3BvbnNlIGFzIGpzb24uIEluc3RlYWQsXG4gICAgICAgICAqIHdlIHJldHVybiBudWxsIHNpbmNlIHRoZXJlIGlzIG5vIHJlc3BvbnNlIGJvZHkuXG4gICAgICAgICAqL1xuICAgICAgICByZXNwb25zZS5kYXRhID0gbnVsbCBhcyB1bmtub3duIGFzIFQ7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEhUVFAgMjAwcyAtIFRoZSByZXF1ZXN0IHN1Y2NlZWRlZFxuICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oKHJlc3BvbnNlVGV4dCkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2VUZXh0KSB7XG4gICAgICAgICAgICAgIHJlc3BvbnNlLmRhdGEgPSBKU09OLnBhcnNlKHJlc3BvbnNlVGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAvLyBTZXJ2ZXIgZGlkbid0IHJlc3BvbmQgd2l0aCBqc29uXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8qIEhUVFAgcmVzcG9uc2Ugc3RhdHVzIGlzIG5vdCBpbiAyMDBzLiBVc3VhbGx5IHRoaXMgd2lsbCBtZWFuXG4gICAgICAgKiBlaXRoZXIgSFRUUCA0MDBzIChiYWQgcmVxdWVzdCBmcm9tIGJyb3dzZXIpIG9yIEhUVFAgNTAwcyAoc2VydmVyIGVycm9yKVxuICAgICAgICogT3VyIGdvYWwgaXMgdG8gY29tZSB1cCB3aXRoIGJlc3QgcG9zc2libGUgc3RhY2t0cmFjZSBhbmQgZXJyb3IgbWVzc2FnZVxuICAgICAgICogdG8gaGVscCBkZXZlbG9wZXJzIHVuZGVyc3RhbmQgdGhlIHByb2JsZW0gYW5kIGRlYnVnXG4gICAgICAgKi9cblxuICAgICAgLypcbiAgICAgICAqUmVkaXJlY3QgdG8gZ2l2ZW4gdXJsIHdoZW4gcmVkaXJlY3Qgb24gYXV0aCBmYWlsdXJlIGlzIGVuYWJsZWRcbiAgICAgICAqL1xuICAgICAgY29uc3QgeyByZWRpcmVjdEF1dGhGYWlsdXJlIH0gPSBhd2FpdCBnZXRDb25maWcoXCJAb3Blbm1ycy9lc20tYXBpXCIpO1xuXG4gICAgICBpZiAoXG4gICAgICAgICh1cmwgPT09IG1ha2VVcmwoc2Vzc2lvbkVuZHBvaW50KSAmJiByZXNwb25zZS5zdGF0dXMgPT09IDQwMykgfHxcbiAgICAgICAgKHJlZGlyZWN0QXV0aEZhaWx1cmUuZW5hYmxlZCAmJlxuICAgICAgICAgIHJlZGlyZWN0QXV0aEZhaWx1cmUuZXJyb3JzLmluY2x1ZGVzKHJlc3BvbnNlLnN0YXR1cykpXG4gICAgICApIHtcbiAgICAgICAgbmF2aWdhdGUoeyB0bzogcmVkaXJlY3RBdXRoRmFpbHVyZS51cmwgfSk7XG5cbiAgICAgICAgLyogV2Ugc29tZXRpbWVzIGRvbid0IHJlYWxseSB3YW50IHRoaXMgcHJvbWlzZSB0byByZXNvbHZlIHNpbmNlIHRoZXJlJ3Mgbm8gcmVzcG9uc2UgZGF0YSxcbiAgICAgICAgICogbm9yIGRvIHdlIHdhbnQgaXQgdG8gcmVqZWN0IGJlY2F1c2UgdGhhdCB3b3VsZCB0cmlnZ2VyIGVycm9yIGhhbmRsaW5nLiBXZSBpbnN0ZWFkXG4gICAgICAgICAqIHdhbnQgaXQgdG8gcmVtYWluIGluIHBlbmRpbmcgc3RhdHVzIHdoaWxlIHRoZSBuYXZpZ2F0aW9uIG9jY3Vycy5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiByZWRpcmVjdEF1dGhGYWlsdXJlLnJlc29sdmVQcm9taXNlXG4gICAgICAgICAgPyAoUHJvbWlzZS5yZXNvbHZlKCkgYXMgdW5rbm93biBhcyBQcm9taXNlPEZldGNoUmVzcG9uc2U+KVxuICAgICAgICAgIDogbmV3IFByb21pc2U8RmV0Y2hSZXNwb25zZT4oKCkgPT4ge30pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQXR0ZW1wdCB0byBkb3dubG9hZCBhIHJlc3BvbnNlIGJvZHksIGlmIGl0IGhhcyBvbmVcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKS50aGVuKFxuICAgICAgICAgIChyZXNwb25zZVRleHQpID0+IHtcbiAgICAgICAgICAgIGxldCByZXNwb25zZUJvZHkgPSByZXNwb25zZVRleHQ7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXNwb25zZUJvZHkgPSBKU09OLnBhcnNlKHJlc3BvbnNlVGV4dCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgLy8gU2VydmVyIGRpZG4ndCByZXNwb25kIHdpdGgganNvbiwgc28ganVzdCBnbyB3aXRoIHRoZSByZXNwb25zZSB0ZXh0IHN0cmluZ1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBNYWtlIHRoZSBmZXRjaCBwcm9taXNlIGdvIGludG8gXCJyZWplY3RlZFwiIHN0YXR1cywgd2l0aCB0aGUgYmVzdFxuICAgICAgICAgICAgICogcG9zc2libGUgc3RhY2t0cmFjZSBhbmQgZXJyb3IgbWVzc2FnZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhyb3cgbmV3IE9wZW5tcnNGZXRjaEVycm9yKFxuICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICByZXNwb25zZUJvZHksXG4gICAgICAgICAgICAgIHJlcXVlc3RTdGFja3RyYWNlXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgICAgLyogV2Ugd2VyZW4ndCBhYmxlIHRvIGRvd25sb2FkIGEgcmVzcG9uc2UgYm9keSBmb3IgdGhpcyBlcnJvci5cbiAgICAgICAgICAgICAqIFRpbWUgdG8ganVzdCBnaXZlIHRoZSBiZXN0IHBvc3NpYmxlIHN0YWNrdHJhY2UgYW5kIGVycm9yIG1lc3NhZ2UuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRocm93IG5ldyBPcGVubXJzRmV0Y2hFcnJvcih1cmwsIHJlc3BvbnNlLCBudWxsLCByZXF1ZXN0U3RhY2t0cmFjZSk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogVGhlIG9wZW5tcnNPYnNlcnZhYmxlRmV0Y2ggZnVuY3Rpb24gaXMgYSB3cmFwcGVyIGFyb3VuZCBvcGVubXJzRmV0Y2hcbiAqIHRoYXQgcmV0dXJucyBhbiBbT2JzZXJ2YWJsZV0oaHR0cHM6Ly9yeGpzLWRldi5maXJlYmFzZWFwcC5jb20vZ3VpZGUvb2JzZXJ2YWJsZSlcbiAqIGluc3RlYWQgb2YgYSBwcm9taXNlLiBJdCBleGlzdHMgaW4gY2FzZSB1c2luZyBhbiBPYnNlcnZhYmxlIGlzXG4gKiBwcmVmZXJyZWQgb3IgbW9yZSBjb252ZW5pZW50IHRoYW4gYSBwcm9taXNlLlxuICpcbiAqIEBwYXJhbSB1cmwgU2VlIFtbb3Blbm1yc0ZldGNoXV1cbiAqIEBwYXJhbSBmZXRjaEluaXQgU2VlIFtbb3Blbm1yc0ZldGNoXV1cbiAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBwcm9kdWNlcyBleGFjdGx5IG9uZSBSZXNwb25zZSBvYmplY3QuXG4gKiBUaGUgcmVzcG9uc2Ugb2JqZWN0IGlzIGV4YWN0bHkgdGhlIHNhbWUgYXMgZm9yIFtbb3Blbm1yc0ZldGNoXV0uXG4gKlxuICogIyMjIyBFeGFtcGxlXG4gKlxuICogYGBganNcbiAqIGltcG9ydCB7IG9wZW5tcnNPYnNlcnZhYmxlRmV0Y2ggfSBmcm9tICdAb3Blbm1ycy9lc20tYXBpJ1xuICogY29uc3Qgc3Vic2NyaXB0aW9uID0gb3Blbm1yc09ic2VydmFibGVGZXRjaCgnL3dzL3Jlc3QvdjEvc2Vzc2lvbicpLnN1YnNjcmliZShcbiAqICAgcmVzcG9uc2UgPT4gY29uc29sZS5sb2cocmVzcG9uc2UuZGF0YSksXG4gKiAgIGVyciA9PiB7dGhyb3cgZXJyfSxcbiAqICAgKCkgPT4gY29uc29sZS5sb2coJ2ZpbmlzaGVkJylcbiAqIClcbiAqIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gKiBgYGBcbiAqXG4gKiAjIyMjIENhbmNlbGxhdGlvblxuICpcbiAqIFRvIGNhbmNlbCB0aGUgbmV0d29yayByZXF1ZXN0LCBzaW1wbHkgY2FsbCBgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7YFxuICpcbiAqIEBjYXRlZ29yeSBBUElcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9wZW5tcnNPYnNlcnZhYmxlRmV0Y2g8VD4oXG4gIHVybDogc3RyaW5nLFxuICBmZXRjaEluaXQ6IEZldGNoQ29uZmlnID0ge31cbikge1xuICBpZiAodHlwZW9mIGZldGNoSW5pdCAhPT0gXCJvYmplY3RcIikge1xuICAgIHRocm93IEVycm9yKFxuICAgICAgXCJUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIG9wZW5tcnNPYnNlcnZhYmxlRmV0Y2ggbXVzdCBiZSBlaXRoZXIgb21pdHRlZCBvciBhbiBvYmplY3RcIlxuICAgICk7XG4gIH1cblxuICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgZmV0Y2hJbml0LnNpZ25hbCA9IGFib3J0Q29udHJvbGxlci5zaWduYWw7XG5cbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPEZldGNoUmVzcG9uc2U8VD4+KChvYnNlcnZlcikgPT4ge1xuICAgIGxldCBoYXNSZXNwb25zZSA9IGZhbHNlO1xuXG4gICAgb3Blbm1yc0ZldGNoKHVybCwgZmV0Y2hJbml0KS50aGVuKFxuICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGhhc1Jlc3BvbnNlID0gdHJ1ZTtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dChyZXNwb25zZSk7XG4gICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICB9LFxuICAgICAgKGVycikgPT4ge1xuICAgICAgICBoYXNSZXNwb25zZSA9IHRydWU7XG4gICAgICAgIG9ic2VydmVyLmVycm9yKGVycik7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoIWhhc1Jlc3BvbnNlKSB7XG4gICAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgICAgfVxuICAgIH07XG4gIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgT3Blbm1yc0ZldGNoRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHVybDogc3RyaW5nLFxuICAgIHJlc3BvbnNlOiBSZXNwb25zZSxcbiAgICByZXNwb25zZUJvZHk6IFJlc3BvbnNlQm9keSB8IG51bGwsXG4gICAgcmVxdWVzdFN0YWNrdHJhY2U6IEVycm9yXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5tZXNzYWdlID0gYFNlcnZlciByZXNwb25kZWQgd2l0aCAke3Jlc3BvbnNlLnN0YXR1c30gKCR7cmVzcG9uc2Uuc3RhdHVzVGV4dH0pIGZvciB1cmwgJHt1cmx9LiBDaGVjayBlcnIucmVzcG9uc2VCb2R5IG9yIG5ldHdvcmsgdGFiIGluIGRldiB0b29scyBmb3IgbW9yZSBpbmZvYDtcbiAgICByZXF1ZXN0U3RhY2t0cmFjZS5tZXNzYWdlID0gdGhpcy5tZXNzYWdlO1xuICAgIHRoaXMucmVzcG9uc2VCb2R5ID0gcmVzcG9uc2VCb2R5O1xuICAgIHRoaXMucmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICB0aGlzLnN0YWNrID0gYFN0YWNrdHJhY2UgZm9yIG91dGdvaW5nIHJlcXVlc3Q6XFxuJHtyZXF1ZXN0U3RhY2t0cmFjZS5zdGFja31cXG5TdGFja3RyYWNlIGZvciBpbmNvbWluZyByZXNwb25zZTpcXG4ke3RoaXMuc3RhY2t9YDtcbiAgfVxuICByZXNwb25zZTogUmVzcG9uc2U7XG4gIHJlc3BvbnNlQm9keTogc3RyaW5nIHwgRmV0Y2hSZXNwb25zZUpzb24gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZldGNoQ29uZmlnIGV4dGVuZHMgT21pdDxSZXF1ZXN0SW5pdCwgXCJib2R5XCIgfCBcImhlYWRlcnNcIj4ge1xuICBoZWFkZXJzPzogRmV0Y2hIZWFkZXJzO1xuICBib2R5PzogRmV0Y2hCb2R5IHwgc3RyaW5nO1xufVxuXG50eXBlIFJlc3BvbnNlQm9keSA9IHN0cmluZyB8IEZldGNoUmVzcG9uc2VKc29uO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZldGNoSGVhZGVycyB7XG4gIFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bGw7XG59XG5cbmludGVyZmFjZSBGZXRjaEJvZHkge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hSZXNwb25zZUpzb24ge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG4iXSwibmFtZXMiOlsiT2JzZXJ2YWJsZSIsImlzUGxhaW5PYmplY3QiLCJnZXRDb25maWciLCJuYXZpZ2F0ZSIsInJlc3RCYXNlVXJsIiwiZmhpckJhc2VVcmwiLCJzZXNzaW9uRW5kcG9pbnQiLCJtYWtlVXJsIiwicGF0aCIsIndpbmRvdyIsIm9wZW5tcnNCYXNlIiwib3Blbm1yc0ZldGNoIiwiZmV0Y2hJbml0IiwiRXJyb3IiLCJ1cmwiLCJoZWFkZXJzIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJBY2NlcHQiLCJzdGFydHNXaXRoIiwidXJsVXJsIiwiVVJMIiwibG9jYXRpb24iLCJ0b1N0cmluZyIsInNlYXJjaFBhcmFtcyIsImhhcyIsInNldCIsInJlcXVlc3RTdGFja3RyYWNlIiwiZmV0Y2giLCJ0aGVuIiwiciIsInJlc3BvbnNlIiwicmVkaXJlY3RBdXRoRmFpbHVyZSIsIm9rIiwic3RhdHVzIiwiZGF0YSIsInRleHQiLCJyZXNwb25zZVRleHQiLCJwYXJzZSIsImVyciIsImVuYWJsZWQiLCJlcnJvcnMiLCJpbmNsdWRlcyIsInRvIiwicmVzb2x2ZVByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlc3BvbnNlQm9keSIsIk9wZW5tcnNGZXRjaEVycm9yIiwib3Blbm1yc09ic2VydmFibGVGZXRjaCIsImFib3J0Q29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsInNpZ25hbCIsIm9ic2VydmVyIiwiaGFzUmVzcG9uc2UiLCJuZXh0IiwiY29tcGxldGUiLCJlcnJvciIsImFib3J0IiwibWVzc2FnZSIsInN0YXR1c1RleHQiLCJzdGFjayJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-api/src/openmrs-fetch.ts\n");
|
|
6447
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"OpenmrsFetchError\": () => (/* binding */ OpenmrsFetchError),\n/* harmony export */ \"fhirBaseUrl\": () => (/* binding */ fhirBaseUrl),\n/* harmony export */ \"makeUrl\": () => (/* binding */ makeUrl),\n/* harmony export */ \"openmrsFetch\": () => (/* binding */ openmrsFetch),\n/* harmony export */ \"openmrsObservableFetch\": () => (/* binding */ openmrsObservableFetch),\n/* harmony export */ \"restBaseUrl\": () => (/* binding */ restBaseUrl),\n/* harmony export */ \"sessionEndpoint\": () => (/* binding */ sessionEndpoint)\n/* harmony export */ });\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ \"webpack/sharing/consume/default/rxjs/rxjs\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash-es/isPlainObject */ \"../../../node_modules/lodash-es/isPlainObject.js\");\n/* harmony import */ var _openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-config */ \"../../framework/esm-config/src/index.ts\");\n/** @module @category API */ function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [\n null\n ];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n return _assertThisInitialized(self);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nvar _typeof = function(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n};\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived), result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nvar __generator = undefined && undefined.__generator || function(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\nvar restBaseUrl = \"/ws/rest/v1/\";\nvar fhirBaseUrl = \"/ws/fhir2/R4\";\nvar sessionEndpoint = \"\".concat(restBaseUrl, \"session\");\n/**\n * Append `path` to the OpenMRS SPA base.\n *\n * #### Example\n *\n * ```ts\n * makeUrl('/foo/bar');\n * // => '/openmrs/foo/bar'\n * ```\n */ function makeUrl(path) {\n return window.openmrsBase + path;\n}\n/**\n * The openmrsFetch function is a wrapper around the\n * [browser's built-in fetch function](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch),\n * with extra handling for OpenMRS-specific API behaviors, such as\n * request headers, authentication, authorization, and the API urls.\n *\n * @param path A string url to make the request to. Note that the\n * openmrs base url (by default `/openmrs`) will be automatically\n * prepended to the URL, so there is no need to include it.\n * @param fetchInit A [fetch init object](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Syntax).\n * Note that the `body` property does not need to be `JSON.stringify()`ed\n * because openmrsFetch will do that for you.\n * @returns A [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)\n * that resolves with a [Response object](https://developer.mozilla.org/en-US/docs/Web/API/Response).\n * Note that the openmrs version of the Response object has already\n * downloaded the HTTP response body as json, and has an additional\n * `data` property with the HTTP response json as a javascript object.\n *\n * #### Example\n * ```js\n * import { openmrsFetch } from '@openmrs/esm-api'\n * const abortController = new AbortController();\n * openmrsFetch('/ws/rest/v1/session', {signal: abortController.signal})\n * .then(response => {\n * console.log(response.data.authenticated)\n * })\n * .catch(err => {\n * console.error(err.status);\n * })\n * abortController.abort();\n * openmrsFetch('/ws/rest/v1/session', {\n * method: 'POST',\n * body: {\n * username: 'hi',\n * password: 'there',\n * }\n * })\n * ```\n *\n * #### Cancellation\n *\n * To cancel a network request, use an\n * [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort).\n * It is best practice to cancel your network requests when the user\n * navigates away from a page while the request is pending request, to\n * free up memory and network resources and to prevent race conditions.\n *\n * @category API\n */ function openmrsFetch(path) {\n var fetchInit = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (typeof path !== \"string\") {\n throw Error(\"The first argument to @openmrs/api's openmrsFetch function must be a url string\");\n }\n if (typeof fetchInit !== \"object\") {\n throw Error(\"The second argument to @openmrs/api's openmrsFetch function must be a plain object.\");\n }\n // @ts-ignore\n if (!window.openmrsBase) {\n throw Error(\"@openmrs/api is running in a browser that doesn't have window.openmrsBase, which is provided by openmrs-module-spa's HTML file.\");\n }\n // ensure path starts with /\n if (path[0] !== \"/\") {\n path = \"/\" + path;\n }\n // Prefix the url with the openmrs spa base\n var url = makeUrl(path);\n // We're going to need some headers\n if (!fetchInit.headers) {\n fetchInit.headers = {};\n }\n /* Automatically stringify javascript objects being sent in the\n * request body.\n */ if ((0,lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(fetchInit.body)) {\n fetchInit.body = JSON.stringify(fetchInit.body);\n }\n /* Add a request header to tell the server to respond with json,\n * since frontend code almost always wants json and the OpenMRS\n * server won't give you json unless you explicitly ask for it.\n * If a different Accept header is preferred, pass it into the fetchInit.\n * If no Accept header is desired, pass it in explicitly as null.\n */ if (typeof fetchInit.headers.Accept === \"undefined\") {\n fetchInit.headers.Accept = \"application/json\";\n }\n if (fetchInit.headers.Accept === null) {\n delete fetchInit.headers.Accept;\n }\n /* This tells the OpenMRS REST API not to return a WWW-Authenticate\n * header. Returning that header is useful when using the API, but\n * not from a UI.\n */ if (path.startsWith(restBaseUrl) && typeof fetchInit.headers[\"Disable-WWW-Authenticate\"] === \"undefined\") {\n fetchInit.headers[\"Disable-WWW-Authenticate\"] = \"true\";\n }\n if (path.startsWith(fhirBaseUrl)) {\n var urlUrl = new URL(url, window.location.toString());\n if (!urlUrl.searchParams.has(\"_summary\")) {\n urlUrl.searchParams.set(\"_summary\", \"data\");\n url = urlUrl.toString();\n }\n }\n /* We capture the stacktrace before making the request, so that if an error occurs we can\n * log a full stacktrace that includes the code that made the request and handled the response\n * Otherwise, we could run into situations where the stacktrace doesn't even show which code\n * called @openmrs/api.\n */ var requestStacktrace = Error();\n return window.fetch(url, fetchInit).then(function() {\n var _ref = _asyncToGenerator(function(r) {\n var response, redirectAuthFailure;\n return __generator(this, function(_state) {\n switch(_state.label){\n case 0:\n response = r;\n if (!response.ok) return [\n 3,\n 1\n ];\n if (response.status === 204) {\n /* HTTP 204 - No Content\n * We should not try to download the empty response as json. Instead,\n * we return null since there is no response body.\n */ response.data = null;\n return [\n 2,\n response\n ];\n } else {\n // HTTP 200s - The request succeeded\n return [\n 2,\n response.clone().text().then(function(responseText) {\n try {\n if (responseText) {\n response.data = JSON.parse(responseText);\n }\n } catch (err) {\n // Server didn't respond with json\n }\n return response;\n })\n ];\n }\n return [\n 3,\n 3\n ];\n case 1:\n return [\n 4,\n (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getConfig)(\"@openmrs/esm-api\")\n ];\n case 2:\n redirectAuthFailure = _state.sent().redirectAuthFailure;\n if (url === makeUrl(sessionEndpoint) && response.status === 403 || redirectAuthFailure.enabled && redirectAuthFailure.errors.includes(response.status)) {\n (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.navigate)({\n to: redirectAuthFailure.url\n });\n /* We sometimes don't really want this promise to resolve since there's no response data,\n * nor do we want it to reject because that would trigger error handling. We instead\n * want it to remain in pending status while the navigation occurs.\n */ return [\n 2,\n redirectAuthFailure.resolvePromise ? Promise.resolve() : new Promise(function() {})\n ];\n } else {\n // Attempt to download a response body, if it has one\n return [\n 2,\n response.clone().text().then(function(responseText) {\n var responseBody = responseText;\n try {\n responseBody = JSON.parse(responseText);\n } catch (err) {\n // Server didn't respond with json, so just go with the response text string\n }\n /* Make the fetch promise go into \"rejected\" status, with the best\n * possible stacktrace and error message.\n */ throw new OpenmrsFetchError(url, response, responseBody, requestStacktrace);\n }, function(err) {\n /* We weren't able to download a response body for this error.\n * Time to just give the best possible stacktrace and error message.\n */ throw new OpenmrsFetchError(url, response, null, requestStacktrace);\n })\n ];\n }\n _state.label = 3;\n case 3:\n return [\n 2\n ];\n }\n });\n });\n return function(r) {\n return _ref.apply(this, arguments);\n };\n }());\n}\n/**\n * The openmrsObservableFetch function is a wrapper around openmrsFetch\n * that returns an [Observable](https://rxjs-dev.firebaseapp.com/guide/observable)\n * instead of a promise. It exists in case using an Observable is\n * preferred or more convenient than a promise.\n *\n * @param url See [[openmrsFetch]]\n * @param fetchInit See [[openmrsFetch]]\n * @returns An Observable that produces exactly one Response object.\n * The response object is exactly the same as for [[openmrsFetch]].\n *\n * #### Example\n *\n * ```js\n * import { openmrsObservableFetch } from '@openmrs/esm-api'\n * const subscription = openmrsObservableFetch('/ws/rest/v1/session').subscribe(\n * response => console.log(response.data),\n * err => {throw err},\n * () => console.log('finished')\n * )\n * subscription.unsubscribe()\n * ```\n *\n * #### Cancellation\n *\n * To cancel the network request, simply call `subscription.unsubscribe();`\n *\n * @category API\n */ function openmrsObservableFetch(url) {\n var fetchInit = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n if (typeof fetchInit !== \"object\") {\n throw Error(\"The second argument to openmrsObservableFetch must be either omitted or an object\");\n }\n var abortController = new AbortController();\n fetchInit.signal = abortController.signal;\n return new rxjs__WEBPACK_IMPORTED_MODULE_0__.Observable(function(observer) {\n var hasResponse = false;\n openmrsFetch(url, fetchInit).then(function(response) {\n hasResponse = true;\n observer.next(response);\n observer.complete();\n }, function(err) {\n hasResponse = true;\n observer.error(err);\n });\n return function() {\n if (!hasResponse) {\n abortController.abort();\n }\n };\n });\n}\nvar OpenmrsFetchError = /*#__PURE__*/ function(Error1) {\n \"use strict\";\n _inherits(OpenmrsFetchError, Error1);\n var _super = _createSuper(OpenmrsFetchError);\n function OpenmrsFetchError(url, response, responseBody, requestStacktrace) {\n _classCallCheck(this, OpenmrsFetchError);\n var _this;\n _this = _super.call(this);\n _this.message = \"Server responded with \".concat(response.status, \" (\").concat(response.statusText, \") for url \").concat(url, \". Check err.responseBody or network tab in dev tools for more info\");\n requestStacktrace.message = _this.message;\n _this.responseBody = responseBody;\n _this.response = response;\n _this.stack = \"Stacktrace for outgoing request:\\n\".concat(requestStacktrace.stack, \"\\nStacktrace for incoming response:\\n\").concat(_this.stack);\n return _this;\n }\n return OpenmrsFetchError;\n}(_wrapNativeSuper(Error));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1hcGkvc3JjL29wZW5tcnMtZmV0Y2gudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQkFBMEIsR0FDMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFrQztBQUNrQjtBQUNNO0FBR25ELElBQU1JLGNBQWMsZUFBZTtBQUVuQyxJQUFNQyxjQUFjLGVBQWU7QUFFbkMsSUFBTUMsa0JBQWtCLEdBQWUsT0FBWkYsYUFBWSxXQUFTO0FBRXZEOzs7Ozs7Ozs7Q0FTQyxHQUNNLFNBQVNHLFFBQVFDLElBQVksRUFBRTtJQUNwQyxPQUFPQyxPQUFPQyxXQUFXLEdBQUdGO0FBQzlCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBZ0RDLEdBQ00sU0FBU0csYUFDZEgsSUFBWSxFQUVlO1FBRDNCSSxZQUFBQSxpRUFBeUIsQ0FBQyxDQUFDO0lBRTNCLElBQUksT0FBT0osU0FBUyxVQUFVO1FBQzVCLE1BQU1LLE1BQ0osbUZBQ0E7SUFDSixDQUFDO0lBRUQsSUFBSSxPQUFPRCxjQUFjLFVBQVU7UUFDakMsTUFBTUMsTUFDSix1RkFDQTtJQUNKLENBQUM7SUFFRCxhQUFhO0lBQ2IsSUFBSSxDQUFDSixPQUFPQyxXQUFXLEVBQUU7UUFDdkIsTUFBTUcsTUFDSixtSUFDQTtJQUNKLENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsSUFBSUwsSUFBSSxDQUFDLEVBQUUs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Ozs7UUFRVCxNQUFLVyxPQUFPLEdBQUcseUJBQTZDN0IsT0FBcEJBLFNBQVNHLE1BQU0sRUFBQyxNQUFvQ3JCLE9BQWhDa0IsU0FBUzhCLFVBQVUsRUFBQyxjQUFnQixPQUFKaEQsS0FBSTtRQUNoR2Msa0JBQWtCaUMsT0FBTyxHQUFHLE1BQUtBLE9BQU87UUFDeEMsTUFBS1osWUFBWSxHQUFHQTtRQUNwQixNQUFLakIsUUFBUSxHQUFHQTtRQUNoQixNQUFLK0IsS0FBSyxHQUFHLHFDQUFvRyxPQUEvRG5DLGtCQUFrQm1DLEtBQUssRUFBQyx5Q0FBa0QsT0FBWCxNQUFLQSxLQUFLOzs7V0FabEhiO21CQUEwQnJDLFFBZ0J0QyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1hcGkvc3JjL29wZW5tcnMtZmV0Y2gudHM/ZGVhMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgQVBJICovXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCBpc1BsYWluT2JqZWN0IGZyb20gXCJsb2Rhc2gtZXMvaXNQbGFpbk9iamVjdFwiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnLCBuYXZpZ2F0ZSB9IGZyb20gXCJAb3Blbm1ycy9lc20tY29uZmlnXCI7XG5pbXBvcnQgeyBGZXRjaFJlc3BvbnNlIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IHJlc3RCYXNlVXJsID0gXCIvd3MvcmVzdC92MS9cIjtcblxuZXhwb3J0IGNvbnN0IGZoaXJCYXNlVXJsID0gXCIvd3MvZmhpcjIvUjRcIjtcblxuZXhwb3J0IGNvbnN0IHNlc3Npb25FbmRwb2ludCA9IGAke3Jlc3RCYXNlVXJsfXNlc3Npb25gO1xuXG4vKipcbiAqIEFwcGVuZCBgcGF0aGAgdG8gdGhlIE9wZW5NUlMgU1BBIGJhc2UuXG4gKlxuICogIyMjIyBFeGFtcGxlXG4gKlxuICogYGBgdHNcbiAqIG1ha2VVcmwoJy9mb28vYmFyJyk7XG4gKiAvLyA9PiAnL29wZW5tcnMvZm9vL2JhcidcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZVVybChwYXRoOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHdpbmRvdy5vcGVubXJzQmFzZSArIHBhdGg7XG59XG5cbi8qKlxuICogVGhlIG9wZW5tcnNGZXRjaCBmdW5jdGlvbiBpcyBhIHdyYXBwZXIgYXJvdW5kIHRoZVxuICogW2Jyb3dzZXIncyBidWlsdC1pbiBmZXRjaCBmdW5jdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0ZldGNoX0FQSS9Vc2luZ19GZXRjaCksXG4gKiB3aXRoIGV4dHJhIGhhbmRsaW5nIGZvciBPcGVuTVJTLXNwZWNpZmljIEFQSSBiZWhhdmlvcnMsIHN1Y2ggYXNcbiAqIHJlcXVlc3QgaGVhZGVycywgYXV0aGVudGljYXRpb24sIGF1dGhvcml6YXRpb24sIGFuZCB0aGUgQVBJIHVybHMuXG4gKlxuICogQHBhcmFtIHBhdGggQSBzdHJpbmcgdXJsIHRvIG1ha2UgdGhlIHJlcXVlc3QgdG8uIE5vdGUgdGhhdCB0aGVcbiAqICAgb3Blbm1ycyBiYXNlIHVybCAoYnkgZGVmYXVsdCBgL29wZW5tcnNgKSB3aWxsIGJlIGF1dG9tYXRpY2FsbHlcbiAqICAgcHJlcGVuZGVkIHRvIHRoZSBVUkwsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gaW5jbHVkZSBpdC5cbiAqIEBwYXJhbSBmZXRjaEluaXQgQSBbZmV0Y2ggaW5pdCBvYmplY3RdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlL2ZldGNoI1N5bnRheCkuXG4gKiAgIE5vdGUgdGhhdCB0aGUgYGJvZHlgIHByb3BlcnR5IGRvZXMgbm90IG5lZWQgdG8gYmUgYEpTT04uc3RyaW5naWZ5KClgZWRcbiAqICAgYmVjYXVzZSBvcGVubXJzRmV0Y2ggd2lsbCBkbyB0aGF0IGZvciB5b3UuXG4gKiBAcmV0dXJucyBBIFtQcm9taXNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9Qcm9taXNlKVxuICogICB0aGF0IHJlc29sdmVzIHdpdGggYSBbUmVzcG9uc2Ugb2JqZWN0XShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvUmVzcG9uc2UpLlxuICogICBOb3RlIHRoYXQgdGhlIG9wZW5tcnMgdmVyc2lvbiBvZiB0aGUgUmVzcG9uc2Ugb2JqZWN0IGhhcyBhbHJlYWR5XG4gKiAgIGRvd25sb2FkZWQgdGhlIEhUVFAgcmVzcG9uc2UgYm9keSBhcyBqc29uLCBhbmQgaGFzIGFuIGFkZGl0aW9uYWxcbiAqICAgYGRhdGFgIHByb3BlcnR5IHdpdGggdGhlIEhUVFAgcmVzcG9uc2UganNvbiBhcyBhIGphdmFzY3JpcHQgb2JqZWN0LlxuICpcbiAqICMjIyMgRXhhbXBsZVxuICogYGBganNcbiAqIGltcG9ydCB7IG9wZW5tcnNGZXRjaCB9IGZyb20gJ0BvcGVubXJzL2VzbS1hcGknXG4gKiBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gKiBvcGVubXJzRmV0Y2goJy93cy9yZXN0L3YxL3Nlc3Npb24nLCB7c2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsfSlcbiAqICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICogICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLmRhdGEuYXV0aGVudGljYXRlZClcbiAqICAgfSlcbiAqICAgLmNhdGNoKGVyciA9PiB7XG4gKiAgICAgY29uc29sZS5lcnJvcihlcnIuc3RhdHVzKTtcbiAqICAgfSlcbiAqIGFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICogb3Blbm1yc0ZldGNoKCcvd3MvcmVzdC92MS9zZXNzaW9uJywge1xuICogICBtZXRob2Q6ICdQT1NUJyxcbiAqICAgYm9keToge1xuICogICAgIHVzZXJuYW1lOiAnaGknLFxuICogICAgIHBhc3N3b3JkOiAndGhlcmUnLFxuICogICB9XG4gKiB9KVxuICogYGBgXG4gKlxuICogIyMjIyBDYW5jZWxsYXRpb25cbiAqXG4gKiBUbyBjYW5jZWwgYSBuZXR3b3JrIHJlcXVlc3QsIHVzZSBhblxuICogW0Fib3J0Q29udHJvbGxlcl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0Fib3J0Q29udHJvbGxlci9hYm9ydCkuXG4gKiBJdCBpcyBiZXN0IHByYWN0aWNlIHRvIGNhbmNlbCB5b3VyIG5ldHdvcmsgcmVxdWVzdHMgd2hlbiB0aGUgdXNlclxuICogbmF2aWdhdGVzIGF3YXkgZnJvbSBhIHBhZ2Ugd2hpbGUgdGhlIHJlcXVlc3QgaXMgcGVuZGluZyByZXF1ZXN0LCB0b1xuICogZnJlZSB1cCBtZW1vcnkgYW5kIG5ldHdvcmsgcmVzb3VyY2VzIGFuZCB0byBwcmV2ZW50IHJhY2UgY29uZGl0aW9ucy5cbiAqXG4gKiBAY2F0ZWdvcnkgQVBJXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvcGVubXJzRmV0Y2g8VCA9IGFueT4oXG4gIHBhdGg6IHN0cmluZyxcbiAgZmV0Y2hJbml0OiBGZXRjaENvbmZpZyA9IHt9XG4pOiBQcm9taXNlPEZldGNoUmVzcG9uc2U8VD4+IHtcbiAgaWYgKHR5cGVvZiBwYXRoICE9PSBcInN0cmluZ1wiKSB7XG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBcIlRoZSBmaXJzdCBhcmd1bWVudCB0byBAb3Blbm1ycy9hcGkncyBvcGVubXJzRmV0Y2ggZnVuY3Rpb24gbXVzdCBiZSBhIHVybCBzdHJpbmdcIlxuICAgICk7XG4gIH1cblxuICBpZiAodHlwZW9mIGZldGNoSW5pdCAhPT0gXCJvYmplY3RcIikge1xuICAgIHRocm93IEVycm9yKFxuICAgICAgXCJUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIEBvcGVubXJzL2FwaSdzIG9wZW5tcnNGZXRjaCBmdW5jdGlvbiBtdXN0IGJlIGEgcGxhaW4gb2JqZWN0LlwiXG4gICAgKTtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgaWYgKCF3aW5kb3cub3Blbm1yc0Jhc2UpIHtcbiAgICB0aHJvdyBFcnJvcihcbiAgICAgIFwiQG9wZW5tcnMvYXBpIGlzIHJ1bm5pbmcgaW4gYSBicm93c2VyIHRoYXQgZG9lc24ndCBoYXZlIHdpbmRvdy5vcGVubXJzQmFzZSwgd2hpY2ggaXMgcHJvdmlkZWQgYnkgb3Blbm1ycy1tb2R1bGUtc3BhJ3MgSFRNTCBmaWxlLlwiXG4gICAgKTtcbiAgfVxuXG4gIC8vIGVuc3VyZSBwYXRoIHN0YXJ0cyB3aXRoIC9cbiAgaWYgKHBhdGhbMF0gIT09IFwiL1wiKSB7XG4gICAgcGF0aCA9IFwiL1wiICsgcGF0aDtcbiAgfVxuXG4gIC8vIFByZWZpeCB0aGUgdXJsIHdpdGggdGhlIG9wZW5tcnMgc3BhIGJhc2VcbiAgbGV0IHVybDogc3RyaW5nID0gbWFrZVVybChwYXRoKTtcblxuICAvLyBXZSdyZSBnb2luZyB0byBuZWVkIHNvbWUgaGVhZGVyc1xuICBpZiAoIWZldGNoSW5pdC5oZWFkZXJzKSB7XG4gICAgZmV0Y2hJbml0LmhlYWRlcnMgPSB7fTtcbiAgfVxuXG4gIC8qIEF1dG9tYXRpY2FsbHkgc3RyaW5naWZ5IGphdmFzY3JpcHQgb2JqZWN0cyBiZWluZyBzZW50IGluIHRoZVxuICAgKiByZXF1ZXN0IGJvZHkuXG4gICAqL1xuICBpZiAoaXNQbGFpbk9iamVjdChmZXRjaEluaXQuYm9keSkpIHtcbiAgICBmZXRjaEluaXQuYm9keSA9IEpTT04uc3RyaW5naWZ5KGZldGNoSW5pdC5ib2R5KTtcbiAgfVxuXG4gIC8qIEFkZCBhIHJlcXVlc3QgaGVhZGVyIHRvIHRlbGwgdGhlIHNlcnZlciB0byByZXNwb25kIHdpdGgganNvbixcbiAgICogc2luY2UgZnJvbnRlbmQgY29kZSBhbG1vc3QgYWx3YXlzIHdhbnRzIGpzb24gYW5kIHRoZSBPcGVuTVJTXG4gICAqIHNlcnZlciB3b24ndCBnaXZlIHlvdSBqc29uIHVubGVzcyB5b3UgZXhwbGljaXRseSBhc2sgZm9yIGl0LlxuICAgKiBJZiBhIGRpZmZlcmVudCBBY2NlcHQgaGVhZGVyIGlzIHByZWZlcnJlZCwgcGFzcyBpdCBpbnRvIHRoZSBmZXRjaEluaXQuXG4gICAqIElmIG5vIEFjY2VwdCBoZWFkZXIgaXMgZGVzaXJlZCwgcGFzcyBpdCBpbiBleHBsaWNpdGx5IGFzIG51bGwuXG4gICAqL1xuICBpZiAodHlwZW9mIGZldGNoSW5pdC5oZWFkZXJzLkFjY2VwdCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGZldGNoSW5pdC5oZWFkZXJzLkFjY2VwdCA9IFwiYXBwbGljYXRpb24vanNvblwiO1xuICB9XG5cbiAgaWYgKGZldGNoSW5pdC5oZWFkZXJzLkFjY2VwdCA9PT0gbnVsbCkge1xuICAgIGRlbGV0ZSBmZXRjaEluaXQuaGVhZGVycy5BY2NlcHQ7XG4gIH1cblxuICAvKiBUaGlzIHRlbGxzIHRoZSBPcGVuTVJTIFJFU1QgQVBJIG5vdCB0byByZXR1cm4gYSBXV1ctQXV0aGVudGljYXRlXG4gICAqIGhlYWRlci4gUmV0dXJuaW5nIHRoYXQgaGVhZGVyIGlzIHVzZWZ1bCB3aGVuIHVzaW5nIHRoZSBBUEksIGJ1dFxuICAgKiBub3QgZnJvbSBhIFVJLlxuICAgKi9cbiAgaWYgKFxuICAgIHBhdGguc3RhcnRzV2l0aChyZXN0QmFzZVVybCkgJiZcbiAgICB0eXBlb2YgZmV0Y2hJbml0LmhlYWRlcnNbXCJEaXNhYmxlLVdXVy1BdXRoZW50aWNhdGVcIl0gPT09IFwidW5kZWZpbmVkXCJcbiAgKSB7XG4gICAgZmV0Y2hJbml0LmhlYWRlcnNbXCJEaXNhYmxlLVdXVy1BdXRoZW50aWNhdGVcIl0gPSBcInRydWVcIjtcbiAgfVxuXG4gIGlmIChwYXRoLnN0YXJ0c1dpdGgoZmhpckJhc2VVcmwpKSB7XG4gICAgY29uc3QgdXJsVXJsID0gbmV3IFVSTCh1cmwsIHdpbmRvdy5sb2NhdGlvbi50b1N0cmluZygpKTtcbiAgICBpZiAoIXVybFVybC5zZWFyY2hQYXJhbXMuaGFzKFwiX3N1bW1hcnlcIikpIHtcbiAgICAgIHVybFVybC5zZWFyY2hQYXJhbXMuc2V0KFwiX3N1bW1hcnlcIiwgXCJkYXRhXCIpO1xuICAgICAgdXJsID0gdXJsVXJsLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyogV2UgY2FwdHVyZSB0aGUgc3RhY2t0cmFjZSBiZWZvcmUgbWFraW5nIHRoZSByZXF1ZXN0LCBzbyB0aGF0IGlmIGFuIGVycm9yIG9jY3VycyB3ZSBjYW5cbiAgICogbG9nIGEgZnVsbCBzdGFja3RyYWNlIHRoYXQgaW5jbHVkZXMgdGhlIGNvZGUgdGhhdCBtYWRlIHRoZSByZXF1ZXN0IGFuZCBoYW5kbGVkIHRoZSByZXNwb25zZVxuICAgKiBPdGhlcndpc2UsIHdlIGNvdWxkIHJ1biBpbnRvIHNpdHVhdGlvbnMgd2hlcmUgdGhlIHN0YWNrdHJhY2UgZG9lc24ndCBldmVuIHNob3cgd2hpY2ggY29kZVxuICAgKiBjYWxsZWQgQG9wZW5tcnMvYXBpLlxuICAgKi9cbiAgY29uc3QgcmVxdWVzdFN0YWNrdHJhY2UgPSBFcnJvcigpO1xuXG4gIHJldHVybiB3aW5kb3cuZmV0Y2godXJsLCBmZXRjaEluaXQgYXMgUmVxdWVzdEluaXQpLnRoZW4oYXN5bmMgKHIpID0+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IHIgYXMgRmV0Y2hSZXNwb25zZTxUPjtcbiAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwNCkge1xuICAgICAgICAvKiBIVFRQIDIwNCAtIE5vIENvbnRlbnRcbiAgICAgICAgICogV2Ugc2hvdWxkIG5vdCB0cnkgdG8gZG93bmxvYWQgdGhlIGVtcHR5IHJlc3BvbnNlIGFzIGpzb24uIEluc3RlYWQsXG4gICAgICAgICAqIHdlIHJldHVybiBudWxsIHNpbmNlIHRoZXJlIGlzIG5vIHJlc3BvbnNlIGJvZHkuXG4gICAgICAgICAqL1xuICAgICAgICByZXNwb25zZS5kYXRhID0gbnVsbCBhcyB1bmtub3duIGFzIFQ7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEhUVFAgMjAwcyAtIFRoZSByZXF1ZXN0IHN1Y2NlZWRlZFxuICAgICAgICByZXR1cm4gcmVzcG9uc2VcbiAgICAgICAgICAuY2xvbmUoKVxuICAgICAgICAgIC50ZXh0KClcbiAgICAgICAgICAudGhlbigocmVzcG9uc2VUZXh0KSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAocmVzcG9uc2VUZXh0KSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuZGF0YSA9IEpTT04ucGFyc2UocmVzcG9uc2VUZXh0KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgIC8vIFNlcnZlciBkaWRuJ3QgcmVzcG9uZCB3aXRoIGpzb25cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLyogSFRUUCByZXNwb25zZSBzdGF0dXMgaXMgbm90IGluIDIwMHMuIFVzdWFsbHkgdGhpcyB3aWxsIG1lYW5cbiAgICAgICAqIGVpdGhlciBIVFRQIDQwMHMgKGJhZCByZXF1ZXN0IGZyb20gYnJvd3Nlcikgb3IgSFRUUCA1MDBzIChzZXJ2ZXIgZXJyb3IpXG4gICAgICAgKiBPdXIgZ29hbCBpcyB0byBjb21lIHVwIHdpdGggYmVzdCBwb3NzaWJsZSBzdGFja3RyYWNlIGFuZCBlcnJvciBtZXNzYWdlXG4gICAgICAgKiB0byBoZWxwIGRldmVsb3BlcnMgdW5kZXJzdGFuZCB0aGUgcHJvYmxlbSBhbmQgZGVidWdcbiAgICAgICAqL1xuXG4gICAgICAvKlxuICAgICAgICpSZWRpcmVjdCB0byBnaXZlbiB1cmwgd2hlbiByZWRpcmVjdCBvbiBhdXRoIGZhaWx1cmUgaXMgZW5hYmxlZFxuICAgICAgICovXG4gICAgICBjb25zdCB7IHJlZGlyZWN0QXV0aEZhaWx1cmUgfSA9IGF3YWl0IGdldENvbmZpZyhcIkBvcGVubXJzL2VzbS1hcGlcIik7XG5cbiAgICAgIGlmIChcbiAgICAgICAgKHVybCA9PT0gbWFrZVVybChzZXNzaW9uRW5kcG9pbnQpICYmIHJlc3BvbnNlLnN0YXR1cyA9PT0gNDAzKSB8fFxuICAgICAgICAocmVkaXJlY3RBdXRoRmFpbHVyZS5lbmFibGVkICYmXG4gICAgICAgICAgcmVkaXJlY3RBdXRoRmFpbHVyZS5lcnJvcnMuaW5jbHVkZXMocmVzcG9uc2Uuc3RhdHVzKSlcbiAgICAgICkge1xuICAgICAgICBuYXZpZ2F0ZSh7IHRvOiByZWRpcmVjdEF1dGhGYWlsdXJlLnVybCB9KTtcblxuICAgICAgICAvKiBXZSBzb21ldGltZXMgZG9uJ3QgcmVhbGx5IHdhbnQgdGhpcyBwcm9taXNlIHRvIHJlc29sdmUgc2luY2UgdGhlcmUncyBubyByZXNwb25zZSBkYXRhLFxuICAgICAgICAgKiBub3IgZG8gd2Ugd2FudCBpdCB0byByZWplY3QgYmVjYXVzZSB0aGF0IHdvdWxkIHRyaWdnZXIgZXJyb3IgaGFuZGxpbmcuIFdlIGluc3RlYWRcbiAgICAgICAgICogd2FudCBpdCB0byByZW1haW4gaW4gcGVuZGluZyBzdGF0dXMgd2hpbGUgdGhlIG5hdmlnYXRpb24gb2NjdXJzLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHJlZGlyZWN0QXV0aEZhaWx1cmUucmVzb2x2ZVByb21pc2VcbiAgICAgICAgICA/IChQcm9taXNlLnJlc29sdmUoKSBhcyB1bmtub3duIGFzIFByb21pc2U8RmV0Y2hSZXNwb25zZT4pXG4gICAgICAgICAgOiBuZXcgUHJvbWlzZTxGZXRjaFJlc3BvbnNlPigoKSA9PiB7fSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBdHRlbXB0IHRvIGRvd25sb2FkIGEgcmVzcG9uc2UgYm9keSwgaWYgaXQgaGFzIG9uZVxuICAgICAgICByZXR1cm4gcmVzcG9uc2VcbiAgICAgICAgICAuY2xvbmUoKVxuICAgICAgICAgIC50ZXh0KClcbiAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgIChyZXNwb25zZVRleHQpID0+IHtcbiAgICAgICAgICAgICAgbGV0IHJlc3BvbnNlQm9keSA9IHJlc3BvbnNlVGV4dDtcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXNwb25zZUJvZHkgPSBKU09OLnBhcnNlKHJlc3BvbnNlVGV4dCk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIFNlcnZlciBkaWRuJ3QgcmVzcG9uZCB3aXRoIGpzb24sIHNvIGp1c3QgZ28gd2l0aCB0aGUgcmVzcG9uc2UgdGV4dCBzdHJpbmdcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC8qIE1ha2UgdGhlIGZldGNoIHByb21pc2UgZ28gaW50byBcInJlamVjdGVkXCIgc3RhdHVzLCB3aXRoIHRoZSBiZXN0XG4gICAgICAgICAgICAgICAqIHBvc3NpYmxlIHN0YWNrdHJhY2UgYW5kIGVycm9yIG1lc3NhZ2UuXG4gICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgT3Blbm1yc0ZldGNoRXJyb3IoXG4gICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlQm9keSxcbiAgICAgICAgICAgICAgICByZXF1ZXN0U3RhY2t0cmFjZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgLyogV2Ugd2VyZW4ndCBhYmxlIHRvIGRvd25sb2FkIGEgcmVzcG9uc2UgYm9keSBmb3IgdGhpcyBlcnJvci5cbiAgICAgICAgICAgICAgICogVGltZSB0byBqdXN0IGdpdmUgdGhlIGJlc3QgcG9zc2libGUgc3RhY2t0cmFjZSBhbmQgZXJyb3IgbWVzc2FnZS5cbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIHRocm93IG5ldyBPcGVubXJzRmV0Y2hFcnJvcihcbiAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICByZXF1ZXN0U3RhY2t0cmFjZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBUaGUgb3Blbm1yc09ic2VydmFibGVGZXRjaCBmdW5jdGlvbiBpcyBhIHdyYXBwZXIgYXJvdW5kIG9wZW5tcnNGZXRjaFxuICogdGhhdCByZXR1cm5zIGFuIFtPYnNlcnZhYmxlXShodHRwczovL3J4anMtZGV2LmZpcmViYXNlYXBwLmNvbS9ndWlkZS9vYnNlcnZhYmxlKVxuICogaW5zdGVhZCBvZiBhIHByb21pc2UuIEl0IGV4aXN0cyBpbiBjYXNlIHVzaW5nIGFuIE9ic2VydmFibGUgaXNcbiAqIHByZWZlcnJlZCBvciBtb3JlIGNvbnZlbmllbnQgdGhhbiBhIHByb21pc2UuXG4gKlxuICogQHBhcmFtIHVybCBTZWUgW1tvcGVubXJzRmV0Y2hdXVxuICogQHBhcmFtIGZldGNoSW5pdCBTZWUgW1tvcGVubXJzRmV0Y2hdXVxuICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IHByb2R1Y2VzIGV4YWN0bHkgb25lIFJlc3BvbnNlIG9iamVjdC5cbiAqIFRoZSByZXNwb25zZSBvYmplY3QgaXMgZXhhY3RseSB0aGUgc2FtZSBhcyBmb3IgW1tvcGVubXJzRmV0Y2hdXS5cbiAqXG4gKiAjIyMjIEV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogaW1wb3J0IHsgb3Blbm1yc09ic2VydmFibGVGZXRjaCB9IGZyb20gJ0BvcGVubXJzL2VzbS1hcGknXG4gKiBjb25zdCBzdWJzY3JpcHRpb24gPSBvcGVubXJzT2JzZXJ2YWJsZUZldGNoKCcvd3MvcmVzdC92MS9zZXNzaW9uJykuc3Vic2NyaWJlKFxuICogICByZXNwb25zZSA9PiBjb25zb2xlLmxvZyhyZXNwb25zZS5kYXRhKSxcbiAqICAgZXJyID0+IHt0aHJvdyBlcnJ9LFxuICogICAoKSA9PiBjb25zb2xlLmxvZygnZmluaXNoZWQnKVxuICogKVxuICogc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAqIGBgYFxuICpcbiAqICMjIyMgQ2FuY2VsbGF0aW9uXG4gKlxuICogVG8gY2FuY2VsIHRoZSBuZXR3b3JrIHJlcXVlc3QsIHNpbXBseSBjYWxsIGBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtgXG4gKlxuICogQGNhdGVnb3J5IEFQSVxuICovXG5leHBvcnQgZnVuY3Rpb24gb3Blbm1yc09ic2VydmFibGVGZXRjaDxUPihcbiAgdXJsOiBzdHJpbmcsXG4gIGZldGNoSW5pdDogRmV0Y2hDb25maWcgPSB7fVxuKSB7XG4gIGlmICh0eXBlb2YgZmV0Y2hJbml0ICE9PSBcIm9iamVjdFwiKSB7XG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBcIlRoZSBzZWNvbmQgYXJndW1lbnQgdG8gb3Blbm1yc09ic2VydmFibGVGZXRjaCBtdXN0IGJlIGVpdGhlciBvbWl0dGVkIG9yIGFuIG9iamVjdFwiXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcblxuICBmZXRjaEluaXQuc2lnbmFsID0gYWJvcnRDb250cm9sbGVyLnNpZ25hbDtcblxuICByZXR1cm4gbmV3IE9ic2VydmFibGU8RmV0Y2hSZXNwb25zZTxUPj4oKG9ic2VydmVyKSA9PiB7XG4gICAgbGV0IGhhc1Jlc3BvbnNlID0gZmFsc2U7XG5cbiAgICBvcGVubXJzRmV0Y2godXJsLCBmZXRjaEluaXQpLnRoZW4oXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaGFzUmVzcG9uc2UgPSB0cnVlO1xuICAgICAgICBvYnNlcnZlci5uZXh0KHJlc3BvbnNlKTtcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgIH0sXG4gICAgICAoZXJyKSA9PiB7XG4gICAgICAgIGhhc1Jlc3BvbnNlID0gdHJ1ZTtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmICghaGFzUmVzcG9uc2UpIHtcbiAgICAgICAgYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBPcGVubXJzRmV0Y2hFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgcmVzcG9uc2U6IFJlc3BvbnNlLFxuICAgIHJlc3BvbnNlQm9keTogUmVzcG9uc2VCb2R5IHwgbnVsbCxcbiAgICByZXF1ZXN0U3RhY2t0cmFjZTogRXJyb3JcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLm1lc3NhZ2UgPSBgU2VydmVyIHJlc3BvbmRlZCB3aXRoICR7cmVzcG9uc2Uuc3RhdHVzfSAoJHtyZXNwb25zZS5zdGF0dXNUZXh0fSkgZm9yIHVybCAke3VybH0uIENoZWNrIGVyci5yZXNwb25zZUJvZHkgb3IgbmV0d29yayB0YWIgaW4gZGV2IHRvb2xzIGZvciBtb3JlIGluZm9gO1xuICAgIHJlcXVlc3RTdGFja3RyYWNlLm1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2U7XG4gICAgdGhpcy5yZXNwb25zZUJvZHkgPSByZXNwb25zZUJvZHk7XG4gICAgdGhpcy5yZXNwb25zZSA9IHJlc3BvbnNlO1xuICAgIHRoaXMuc3RhY2sgPSBgU3RhY2t0cmFjZSBmb3Igb3V0Z29pbmcgcmVxdWVzdDpcXG4ke3JlcXVlc3RTdGFja3RyYWNlLnN0YWNrfVxcblN0YWNrdHJhY2UgZm9yIGluY29taW5nIHJlc3BvbnNlOlxcbiR7dGhpcy5zdGFja31gO1xuICB9XG4gIHJlc3BvbnNlOiBSZXNwb25zZTtcbiAgcmVzcG9uc2VCb2R5OiBzdHJpbmcgfCBGZXRjaFJlc3BvbnNlSnNvbiB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hDb25maWcgZXh0ZW5kcyBPbWl0PFJlcXVlc3RJbml0LCBcImJvZHlcIiB8IFwiaGVhZGVyc1wiPiB7XG4gIGhlYWRlcnM/OiBGZXRjaEhlYWRlcnM7XG4gIGJvZHk/OiBGZXRjaEJvZHkgfCBzdHJpbmc7XG59XG5cbnR5cGUgUmVzcG9uc2VCb2R5ID0gc3RyaW5nIHwgRmV0Y2hSZXNwb25zZUpzb247XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hIZWFkZXJzIHtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVsbDtcbn1cblxuaW50ZXJmYWNlIEZldGNoQm9keSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZXRjaFJlc3BvbnNlSnNvbiB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbiJdLCJuYW1lcyI6WyJPYnNlcnZhYmxlIiwiaXNQbGFpbk9iamVjdCIsImdldENvbmZpZyIsIm5hdmlnYXRlIiwicmVzdEJhc2VVcmwiLCJmaGlyQmFzZVVybCIsInNlc3Npb25FbmRwb2ludCIsIm1ha2VVcmwiLCJwYXRoIiwid2luZG93Iiwib3Blbm1yc0Jhc2UiLCJvcGVubXJzRmV0Y2giLCJmZXRjaEluaXQiLCJFcnJvciIsInVybCIsImhlYWRlcnMiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsIkFjY2VwdCIsInN0YXJ0c1dpdGgiLCJ1cmxVcmwiLCJVUkwiLCJsb2NhdGlvbiIsInRvU3RyaW5nIiwic2VhcmNoUGFyYW1zIiwiaGFzIiwic2V0IiwicmVxdWVzdFN0YWNrdHJhY2UiLCJmZXRjaCIsInRoZW4iLCJyIiwicmVzcG9uc2UiLCJyZWRpcmVjdEF1dGhGYWlsdXJlIiwib2siLCJzdGF0dXMiLCJkYXRhIiwiY2xvbmUiLCJ0ZXh0IiwicmVzcG9uc2VUZXh0IiwicGFyc2UiLCJlcnIiLCJlbmFibGVkIiwiZXJyb3JzIiwiaW5jbHVkZXMiLCJ0byIsInJlc29sdmVQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZXNwb25zZUJvZHkiLCJPcGVubXJzRmV0Y2hFcnJvciIsIm9wZW5tcnNPYnNlcnZhYmxlRmV0Y2giLCJhYm9ydENvbnRyb2xsZXIiLCJBYm9ydENvbnRyb2xsZXIiLCJzaWduYWwiLCJvYnNlcnZlciIsImhhc1Jlc3BvbnNlIiwibmV4dCIsImNvbXBsZXRlIiwiZXJyb3IiLCJhYm9ydCIsIm1lc3NhZ2UiLCJzdGF0dXNUZXh0Iiwic3RhY2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-api/src/openmrs-fetch.ts\n");
|
|
6459
6448
|
|
|
6460
6449
|
/***/ }),
|
|
6461
6450
|
|
|
@@ -6499,7 +6488,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
6499
6488
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6500
6489
|
|
|
6501
6490
|
"use strict";
|
|
6502
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"clearCurrentUser\": () => (/* binding */ clearCurrentUser),\n/* harmony export */ \"getCurrentUser\": () => (/* binding */ getCurrentUser),\n/* harmony export */ \"getLoggedInUser\": () => (/* binding */ getLoggedInUser),\n/* harmony export */ \"getSessionLocation\": () => (/* binding */ getSessionLocation),\n/* harmony export */ \"getSessionStore\": () => (/* binding */ getSessionStore),\n/* harmony export */ \"refetchCurrentUser\": () => (/* binding */ refetchCurrentUser),\n/* harmony export */ \"setSessionLocation\": () => (/* binding */ setSessionLocation),\n/* harmony export */ \"userHasAccess\": () => (/* binding */ userHasAccess)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_error_handling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-error-handling */ \"../../framework/esm-error-handling/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/* harmony import */ var lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash-es/isUndefined */ \"../../../node_modules/lodash-es/isUndefined.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"webpack/sharing/consume/default/rxjs/rxjs\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _openmrs_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../openmrs-fetch */ \"../../framework/esm-api/src/openmrs-fetch.ts\");\n/** @module @category API */ function 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 _asyncToGenerator(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}\nvar __generator = undefined && undefined.__generator || function(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\n\n\nvar sessionStore = (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_1__.createGlobalStore)(\"session\", {\n loaded: false,\n session: null\n});\nvar lastFetchTimeMillis = 0;\nfunction getCurrentUser() {\n var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {\n includeAuthStatus: true\n };\n if (lastFetchTimeMillis < Date.now() - 1000 * 60 || !sessionStore.getState().loaded) {\n refetchCurrentUser();\n }\n return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(function(subscriber) {\n var handler = function(state) {\n if (state.loaded) {\n if (opts.includeAuthStatus) {\n subscriber.next(state.session);\n } else {\n var ref;\n subscriber.next((ref = state.session) === null || ref === void 0 ? void 0 : ref.user);\n }\n }\n };\n handler(sessionStore.getState());\n // The observable subscribe function should return an unsubscribe function,\n // which happens to be exactly what Unistore `subscribe` returns.\n return sessionStore.subscribe(handler);\n });\n}\n\nfunction getSessionStore() {\n if (lastFetchTimeMillis < Date.now() - 1000 * 60 || !sessionStore.getState().loaded) {\n refetchCurrentUser();\n }\n return sessionStore;\n}\nfunction setUserLanguage(data) {\n var ref, ref1;\n var ref2;\n var locale = (ref2 = data === null || data === void 0 ? void 0 : (ref = data.user) === null || ref === void 0 ? void 0 : (ref1 = ref.userProperties) === null || ref1 === void 0 ? void 0 : ref1.defaultLocale) !== null && ref2 !== void 0 ? ref2 : data.locale;\n var htmlLang = document.documentElement.getAttribute(\"lang\");\n if (locale !== htmlLang) {\n document.documentElement.setAttribute(\"lang\", locale);\n }\n}\nfunction userHasPrivilege(requiredPrivilege, user) {\n if (typeof requiredPrivilege === \"string\") {\n return !(0,lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(user.privileges.find(function(p) {\n return requiredPrivilege === p.display;\n }));\n } else if (Array.isArray(requiredPrivilege)) {\n return requiredPrivilege.every(function(rp) {\n return !(0,lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(user.privileges.find(function(p) {\n return rp === p.display;\n }));\n });\n } else if (!(0,lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(requiredPrivilege)) {\n console.error('Could not understand privileges \"'.concat(requiredPrivilege, '\"'));\n }\n return true;\n}\nfunction isSuperUser(user) {\n return !(0,lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(user.roles.find(function(role) {\n return role.display === \"System Developer\";\n }));\n}\n/**\n * The `refetchCurrentUser` function causes a network request to redownload\n * the user. All subscribers to the current user will be notified of the\n * new users once the new version of the user object is downloaded.\n *\n * @returns The same observable as returned by [[getCurrentUser]].\n *\n * #### Example\n * ```js\n * import { refetchCurrentUser } from '@openmrs/esm-api'\n * refetchCurrentUser()\n * ```\n */ function refetchCurrentUser() {\n return new Promise(function(resolve, reject) {\n lastFetchTimeMillis = Date.now();\n (0,_openmrs_fetch__WEBPACK_IMPORTED_MODULE_3__.openmrsFetch)(_openmrs_fetch__WEBPACK_IMPORTED_MODULE_3__.sessionEndpoint).then(function(res) {\n if (typeof (res === null || res === void 0 ? void 0 : res.data) === \"object\") {\n setUserLanguage(res.data);\n resolve(res.data);\n sessionStore.setState({\n loaded: true,\n session: res.data\n });\n } else {\n reject();\n return Promise.reject();\n }\n }).catch(function(err) {\n (0,_openmrs_esm_error_handling__WEBPACK_IMPORTED_MODULE_0__.reportError)(\"Failed to fetch new session information: \".concat(err));\n reject(err);\n return {\n sessionId: \"\",\n authenticated: false\n };\n });\n });\n}\nfunction clearCurrentUser() {\n sessionStore.setState({\n loaded: true,\n session: {\n authenticated: false,\n sessionId: \"\"\n }\n });\n}\nfunction userHasAccess(requiredPrivilege, user) {\n if (user === undefined) {\n // if the user hasn't been loaded, then return false iff there is a required privilege\n return Boolean(requiredPrivilege);\n }\n if (!Boolean(requiredPrivilege)) {\n // if user exists but no requiredPrivilege is defined\n return true;\n }\n return userHasPrivilege(requiredPrivilege, user) || isSuperUser(user);\n}\nfunction getLoggedInUser() {\n var user;\n var unsubscribe;\n return new Promise(function(res, rej) {\n var handler = function(state) {\n if (state.loaded && state.session.user) {\n user = state.session.user;\n res(state.session.user);\n unsubscribe && unsubscribe();\n }\n };\n handler(sessionStore.getState());\n if (!user) {\n unsubscribe = sessionStore.subscribe(handler);\n }\n });\n}\nfunction getSessionLocation() {\n return new Promise(function(res, rej) {\n var sub = getCurrentUser().subscribe(function(session) {\n res(session.sessionLocation);\n }, rej);\n sub.unsubscribe();\n });\n}\nfunction setSessionLocation(locationUuid, abortController) {\n return _setSessionLocation.apply(this, arguments);\n}\nfunction _setSessionLocation() {\n _setSessionLocation = _asyncToGenerator(function(locationUuid, abortController) {\n return __generator(this, function(_state) {\n switch(_state.label){\n case 0:\n return [\n 4,\n (0,_openmrs_fetch__WEBPACK_IMPORTED_MODULE_3__.openmrsFetch)(_openmrs_fetch__WEBPACK_IMPORTED_MODULE_3__.sessionEndpoint, {\n method: \"POST\",\n body: {\n sessionLocation: locationUuid\n },\n headers: {\n \"Content-Type\": \"application/json\"\n },\n signal: abortController.signal\n })\n ];\n case 1:\n _state.sent();\n return [\n 4,\n refetchCurrentUser()\n ];\n case 2:\n _state.sent();\n return [\n 2\n ];\n }\n });\n });\n return _setSessionLocation.apply(this, arguments);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1hcGkvc3JjL3NoYXJlZC1hcGktb2JqZWN0cy9jdXJyZW50LXVzZXIudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQkFBMEIsR0FDMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBMEQ7QUFDSDtBQUNQO0FBQ2Q7QUFDK0I7QUFxQmpFLElBQU1NLGVBQWVMLHFFQUFpQkEsQ0FBZSxXQUFXO0lBQzlETSxRQUFRLEtBQUs7SUFDYkMsU0FBUyxJQUFJO0FBQ2Y7QUFDQSxJQUFJQyxzQkFBc0I7QUE2QzFCLFNBQVNDLGlCQUU2QjtRQURwQ0MsT0FBQUEsaUVBQU87UUFBRUMsbUJBQW1CLElBQUk7SUFBQyxDQUFDO0lBRWxDLElBQ0VILHNCQUFzQkksS0FBS0MsR0FBRyxLQUFLLE9BQU8sTUFDMUMsQ0FBQ1IsYUFBYVMsUUFBUSxHQUFHUixNQUFNLEVBQy9CO1FBQ0FTO0lBQ0YsQ0FBQztJQUVELE9BQU8sSUFBSWIsNENBQVVBLENBQUMsU0FBQ2MsWUFBZTtRQUNwQyxJQUFNQyxVQUFVLFNBQUNDLE9BQVU7WUFDekIsSUFBSUEsTUFBTVosTUFBTSxFQUFFO2dCQUNoQixJQUFJSSxLQUFLQyxpQkFBaUIsRUFBRTtvQkFDMUJLLFdBQVdHLElBQUksQ0FBQ0QsTUFBTVgsT0FBTztnQkFDL0IsT0FBTzt3QkFDV1c7b0JBQWhCRixXQUFXRyxJQUFJLENBQUNELENBQUFBLE1BQUFBLE1BQU1YLE9BQU8sY0FBYlcsaUJBQUFBLEtBQUFBLElBQUFBLElBQWVFLElBQUk7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDO1FBQ0g7UUFDQUgsUUFBUVosYUFBYVMsUUFBUTtRQUM3QiwyRUFBMkU7UUFDM0UsaUVBQWlFO1FBQ2pFLE9BQU9ULGFBQWFn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Q21FLFFBQVE7NEJBQ1JDLE1BQU07Z0NBQUVMLGlCQUFpQkU7NEJBQWE7NEJBQ3RDSSxTQUFTO2dDQUNQLGdCQUFnQjs0QkFDbEI7NEJBQ0FDLFFBQVFKLGdCQUFnQkksTUFBTTt3QkFDaEM7OztvQkFQQTtvQkFTQTs7d0JBQU0zRDs7O29CQUFOOzs7Ozs7SUFDRjtXQWRzQnFEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLWFwaS9zcmMvc2hhcmVkLWFwaS1vYmplY3RzL2N1cnJlbnQtdXNlci50cz9iZDkxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBBUEkgKi9cbmltcG9ydCB7IHJlcG9ydEVycm9yIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1lcnJvci1oYW5kbGluZ1wiO1xuaW1wb3J0IHsgY3JlYXRlR2xvYmFsU3RvcmUgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLXN0YXRlXCI7XG5pbXBvcnQgaXNVbmRlZmluZWQgZnJvbSBcImxvZGFzaC1lcy9pc1VuZGVmaW5lZFwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBvcGVubXJzRmV0Y2gsIHNlc3Npb25FbmRwb2ludCB9IGZyb20gXCIuLi9vcGVubXJzLWZldGNoXCI7XG5pbXBvcnQgdHlwZSB7XG4gIExvZ2dlZEluVXNlcixcbiAgU2Vzc2lvbkxvY2F0aW9uLFxuICBQcml2aWxlZ2UsXG4gIFJvbGUsXG4gIFNlc3Npb24sXG59IGZyb20gXCIuLi90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBTZXNzaW9uU3RvcmUgPSBMb2FkZWRTZXNzaW9uU3RvcmUgfCBVbmxvYWRlZFNlc3Npb25TdG9yZTtcblxuZXhwb3J0IHR5cGUgTG9hZGVkU2Vzc2lvblN0b3JlID0ge1xuICBsb2FkZWQ6IHRydWU7XG4gIHNlc3Npb246IFNlc3Npb247XG59O1xuXG5leHBvcnQgdHlwZSBVbmxvYWRlZFNlc3Npb25TdG9yZSA9IHtcbiAgbG9hZGVkOiBmYWxzZTtcbiAgc2Vzc2lvbjogbnVsbDtcbn07XG5cbmNvbnN0IHNlc3Npb25TdG9yZSA9IGNyZWF0ZUdsb2JhbFN0b3JlPFNlc3Npb25TdG9yZT4oXCJzZXNzaW9uXCIsIHtcbiAgbG9hZGVkOiBmYWxzZSxcbiAgc2Vzc2lvbjogbnVsbCxcbn0pO1xubGV0IGxhc3RGZXRjaFRpbWVNaWxsaXMgPSAwO1xuXG4vKipcbiAqIFRoZSBnZXRDdXJyZW50VXNlciBmdW5jdGlvbiByZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCBwcm9kdWNlc1xuICogKip6ZXJvIG9yIG1vcmUgdmFsdWVzLCBvdmVyIHRpbWUqKi4gSXQgd2lsbCBwcm9kdWNlIHplcm8gdmFsdWVzXG4gKiBieSBkZWZhdWx0IGlmIHRoZSB1c2VyIGlzIG5vdCBsb2dnZWQgaW4uIEFuZCBpdCB3aWxsIHByb3ZpZGUgYVxuICogZmlyc3QgdmFsdWUgd2hlbiB0aGUgbG9nZ2VkIGluIHVzZXIgaXMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXG4gKiBTdWJzZXF1ZW50IHZhbHVlcyB3aWxsIGJlIHByb2R1Y2VkIHdoZW5ldmVyIHRoZSB1c2VyIG9iamVjdCBpc1xuICogdXBkYXRlZC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyBBbiBvYmplY3Qgd2l0aCBgaW5jbHVkZUF1dGhTdGF0dXNgIGJvb2xlYW5cbiAqICAgcHJvcGVydHkgdGhhdCBkZWZhdWx0cyB0byBgZmFsc2VgLiBXaGVuIGBpbmNsdWRlQXV0aFN0YXR1c2AgaXMgc2V0XG4gKiAgIHRvIGB0cnVlYCwgdGhlIGVudGlyZSByZXNwb25zZSBvYmplY3QgZnJvbSB0aGUgQVBJIHdpbGwgYmUgcHJvdmlkZWQuXG4gKiAgIFdoZW4gYGluY2x1ZGVBdXRoU3RhdHVzYCBpcyBzZXQgdG8gYGZhbHNlYCwgb25seSB0aGUgYHVzZXJgIHByb3BlcnR5XG4gKiAgIG9mIHRoZSByZXNwb25zZSBvYmplY3Qgd2lsbCBiZSBwcm92aWRlZC5cbiAqXG4gKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgcHJvZHVjZXMgemVybyBvciBtb3JlIHZhbHVlcyAoYXNcbiAqICAgZGVzY3JpYmVkIGFib3ZlKS4gVGhlIHZhbHVlcyBwcm9kdWNlZCB3aWxsIGJlIGEgdXNlciBvYmplY3QgKGlmXG4gKiAgIGBpbmNsdWRlQXV0aFN0YXR1c2AgaXMgc2V0IHRvIGBmYWxzZWApIG9yIGFuIG9iamVjdCB3aXRoIGEgc2Vzc2lvblxuICogICBhbmQgYXV0aGVudGljYXRlZCBwcm9wZXJ0eSAoaWYgYGluY2x1ZGVBdXRoU3RhdHVzYCBpcyBzZXQgdG8gYHRydWVgKS5cbiAqXG4gKiAjIyMjIEV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogaW1wb3J0IHsgZ2V0Q3VycmVudFVzZXIgfSBmcm9tICdAb3Blbm1ycy9lc20tYXBpJ1xuICogY29uc3Qgc3Vic2NyaXB0aW9uID0gZ2V0Q3VycmVudFVzZXIoKS5zdWJzY3JpYmUoXG4gKiAgIHVzZXIgPT4gY29uc29sZS5sb2codXNlcilcbiAqIClcbiAqIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gKiBnZXRDdXJyZW50VXNlcih7aW5jbHVkZUF1dGhTdGF0dXM6IHRydWV9KS5zdWJzY3JpYmUoXG4gKiAgIGRhdGEgPT4gY29uc29sZS5sb2coZGF0YS5hdXRoZW50aWNhdGVkKVxuICogKVxuICogYGBgXG4gKlxuICogIyMjIyBCZSBzdXJlIHRvIHVuc3Vic2NyaWJlIHdoZW4geW91ciBjb21wb25lbnQgdW5tb3VudHNcbiAqXG4gKiBPdGhlcndpc2UgeW91ciBjb2RlIHdpbGwgY29udGludWUgZ2V0dGluZyB1cGRhdGVzIHRvIHRoZSB1c2VyIG9iamVjdFxuICogZXZlbiBhZnRlciB0aGUgVUkgY29tcG9uZW50IGlzIGdvbmUgZnJvbSB0aGUgc2NyZWVuLiBUaGlzIGlzIGEgbWVtb3J5XG4gKiBsZWFrIGFuZCBzb3VyY2Ugb2YgYnVncy5cbiAqL1xuZnVuY3Rpb24gZ2V0Q3VycmVudFVzZXIoKTogT2JzZXJ2YWJsZTxTZXNzaW9uPjtcbmZ1bmN0aW9uIGdldEN1cnJlbnRVc2VyKG9wdHM6IHsgaW5jbHVkZUF1dGhTdGF0dXM6IHRydWUgfSk6IE9ic2VydmFibGU8U2Vzc2lvbj47XG5mdW5jdGlvbiBnZXRDdXJyZW50VXNlcihvcHRzOiB7XG4gIGluY2x1ZGVBdXRoU3RhdHVzOiBmYWxzZTtcbn0pOiBPYnNlcnZhYmxlPExvZ2dlZEluVXNlcj47XG5mdW5jdGlvbiBnZXRDdXJyZW50VXNlcihcbiAgb3B0cyA9IHsgaW5jbHVkZUF1dGhTdGF0dXM6IHRydWUgfVxuKTogT2JzZXJ2YWJsZTxTZXNzaW9uIHwgTG9nZ2VkSW5Vc2VyPiB7XG4gIGlmIChcbiAgICBsYXN0RmV0Y2hUaW1lTWlsbGlzIDwgRGF0ZS5ub3coKSAtIDEwMDAgKiA2MCB8fFxuICAgICFzZXNzaW9uU3RvcmUuZ2V0U3RhdGUoKS5sb2FkZWRcbiAgKSB7XG4gICAgcmVmZXRjaEN1cnJlbnRVc2VyKCk7XG4gIH1cblxuICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICBjb25zdCBoYW5kbGVyID0gKHN0YXRlKSA9PiB7XG4gICAgICBpZiAoc3RhdGUubG9hZGVkKSB7XG4gICAgICAgIGlmIChvcHRzLmluY2x1ZGVBdXRoU3RhdHVzKSB7XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHN0YXRlLnNlc3Npb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN1YnNjcmliZXIubmV4dChzdGF0ZS5zZXNzaW9uPy51c2VyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgaGFuZGxlcihzZXNzaW9uU3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgLy8gVGhlIG9ic2VydmFibGUgc3Vic2NyaWJlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYW4gdW5zdWJzY3JpYmUgZnVuY3Rpb24sXG4gICAgLy8gd2hpY2ggaGFwcGVucyB0byBiZSBleGFjdGx5IHdoYXQgVW5pc3RvcmUgYHN1YnNjcmliZWAgcmV0dXJucy5cbiAgICByZXR1cm4gc2Vzc2lvblN0b3JlLnN1YnNjcmliZShoYW5kbGVyKTtcbiAgfSk7XG59XG5cbmV4cG9ydCB7IGdldEN1cnJlbnRVc2VyIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXNzaW9uU3RvcmUoKSB7XG4gIGlmIChcbiAgICBsYXN0RmV0Y2hUaW1lTWlsbGlzIDwgRGF0ZS5ub3coKSAtIDEwMDAgKiA2MCB8fFxuICAgICFzZXNzaW9uU3RvcmUuZ2V0U3RhdGUoKS5sb2FkZWRcbiAgKSB7XG4gICAgcmVmZXRjaEN1cnJlbnRVc2VyKCk7XG4gIH1cblxuICByZXR1cm4gc2Vzc2lvblN0b3JlO1xufVxuXG5mdW5jdGlvbiBzZXRVc2VyTGFuZ3VhZ2UoZGF0YTogU2Vzc2lvbikge1xuICBjb25zdCBsb2NhbGUgPSBkYXRhPy51c2VyPy51c2VyUHJvcGVydGllcz8uZGVmYXVsdExvY2FsZSA/PyBkYXRhLmxvY2FsZTtcbiAgY29uc3QgaHRtbExhbmcgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKFwibGFuZ1wiKTtcblxuICBpZiAobG9jYWxlICE9PSBodG1sTGFuZykge1xuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJsYW5nXCIsIGxvY2FsZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdXNlckhhc1ByaXZpbGVnZShcbiAgcmVxdWlyZWRQcml2aWxlZ2U6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICB1c2VyOiB7IHByaXZpbGVnZXM6IEFycmF5PFByaXZpbGVnZT4gfVxuKSB7XG4gIGlmICh0eXBlb2YgcmVxdWlyZWRQcml2aWxlZ2UgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gIWlzVW5kZWZpbmVkKFxuICAgICAgdXNlci5wcml2aWxlZ2VzLmZpbmQoKHApID0+IHJlcXVpcmVkUHJpdmlsZWdlID09PSBwLmRpc3BsYXkpXG4gICAgKTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlcXVpcmVkUHJpdmlsZWdlKSkge1xuICAgIHJldHVybiByZXF1aXJlZFByaXZpbGVnZS5ldmVyeShcbiAgICAgIChycCkgPT4gIWlzVW5kZWZpbmVkKHVzZXIucHJpdmlsZWdlcy5maW5kKChwKSA9PiBycCA9PT0gcC5kaXNwbGF5KSlcbiAgICApO1xuICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChyZXF1aXJlZFByaXZpbGVnZSkpIHtcbiAgICBjb25zb2xlLmVycm9yKGBDb3VsZCBub3QgdW5kZXJzdGFuZCBwcml2aWxlZ2VzIFwiJHtyZXF1aXJlZFByaXZpbGVnZX1cImApO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGlzU3VwZXJVc2VyKHVzZXI6IHsgcm9sZXM6IEFycmF5PFJvbGU+IH0pIHtcbiAgcmV0dXJuICFpc1VuZGVmaW5lZChcbiAgICB1c2VyLnJvbGVzLmZpbmQoKHJvbGUpID0+IHJvbGUuZGlzcGxheSA9PT0gXCJTeXN0ZW0gRGV2ZWxvcGVyXCIpXG4gICk7XG59XG5cbi8qKlxuICogVGhlIGByZWZldGNoQ3VycmVudFVzZXJgIGZ1bmN0aW9uIGNhdXNlcyBhIG5ldHdvcmsgcmVxdWVzdCB0byByZWRvd25sb2FkXG4gKiB0aGUgdXNlci4gQWxsIHN1YnNjcmliZXJzIHRvIHRoZSBjdXJyZW50IHVzZXIgd2lsbCBiZSBub3RpZmllZCBvZiB0aGVcbiAqIG5ldyB1c2VycyBvbmNlIHRoZSBuZXcgdmVyc2lvbiBvZiB0aGUgdXNlciBvYmplY3QgaXMgZG93bmxvYWRlZC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgc2FtZSBvYnNlcnZhYmxlIGFzIHJldHVybmVkIGJ5IFtbZ2V0Q3VycmVudFVzZXJdXS5cbiAqXG4gKiAjIyMjIEV4YW1wbGVcbiAqIGBgYGpzXG4gKiBpbXBvcnQgeyByZWZldGNoQ3VycmVudFVzZXIgfSBmcm9tICdAb3Blbm1ycy9lc20tYXBpJ1xuICogcmVmZXRjaEN1cnJlbnRVc2VyKClcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVmZXRjaEN1cnJlbnRVc2VyKCkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGxhc3RGZXRjaFRpbWVNaWxsaXMgPSBEYXRlLm5vdygpO1xuICAgIG9wZW5tcnNGZXRjaChzZXNzaW9uRW5kcG9pbnQpXG4gICAgICAudGhlbigocmVzKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzPy5kYXRhID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgc2V0VXNlckxhbmd1YWdlKHJlcy5kYXRhKTtcbiAgICAgICAgICByZXNvbHZlKHJlcy5kYXRhKTtcbiAgICAgICAgICBzZXNzaW9uU3RvcmUuc2V0U3RhdGUoeyBsb2FkZWQ6IHRydWUsIHNlc3Npb246IHJlcy5kYXRhIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgcmVwb3J0RXJyb3IoYEZhaWxlZCB0byBmZXRjaCBuZXcgc2Vzc2lvbiBpbmZvcm1hdGlvbjogJHtlcnJ9YCk7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNlc3Npb25JZDogXCJcIixcbiAgICAgICAgICBhdXRoZW50aWNhdGVkOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQ3VycmVudFVzZXIoKSB7XG4gIHNlc3Npb25TdG9yZS5zZXRTdGF0ZSh7XG4gICAgbG9hZGVkOiB0cnVlLFxuICAgIHNlc3Npb246IHsgYXV0aGVudGljYXRlZDogZmFsc2UsIHNlc3Npb25JZDogXCJcIiB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZXJIYXNBY2Nlc3MoXG4gIHJlcXVpcmVkUHJpdmlsZWdlOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgdXNlcjogeyBwcml2aWxlZ2VzOiBBcnJheTxQcml2aWxlZ2U+OyByb2xlczogQXJyYXk8Um9sZT4gfVxuKSB7XG4gIGlmICh1c2VyID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBpZiB0aGUgdXNlciBoYXNuJ3QgYmVlbiBsb2FkZWQsIHRoZW4gcmV0dXJuIGZhbHNlIGlmZiB0aGVyZSBpcyBhIHJlcXVpcmVkIHByaXZpbGVnZVxuICAgIHJldHVybiBCb29sZWFuKHJlcXVpcmVkUHJpdmlsZWdlKTtcbiAgfVxuXG4gIGlmICghQm9vbGVhbihyZXF1aXJlZFByaXZpbGVnZSkpIHtcbiAgICAvLyBpZiB1c2VyIGV4aXN0cyBidXQgbm8gcmVxdWlyZWRQcml2aWxlZ2UgaXMgZGVmaW5lZFxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHVzZXJIYXNQcml2aWxlZ2UocmVxdWlyZWRQcml2aWxlZ2UsIHVzZXIpIHx8IGlzU3VwZXJVc2VyKHVzZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9nZ2VkSW5Vc2VyKCkge1xuICBsZXQgdXNlcjtcbiAgbGV0IHVuc3Vic2NyaWJlO1xuICByZXR1cm4gbmV3IFByb21pc2U8TG9nZ2VkSW5Vc2VyPigocmVzLCByZWopID0+IHtcbiAgICBjb25zdCBoYW5kbGVyID0gKHN0YXRlOiBTZXNzaW9uU3RvcmUpID0+IHtcbiAgICAgIGlmIChzdGF0ZS5sb2FkZWQgJiYgc3RhdGUuc2Vzc2lvbi51c2VyKSB7XG4gICAgICAgIHVzZXIgPSBzdGF0ZS5zZXNzaW9uLnVzZXI7XG4gICAgICAgIHJlcyhzdGF0ZS5zZXNzaW9uLnVzZXIpO1xuICAgICAgICB1bnN1YnNjcmliZSAmJiB1bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH07XG4gICAgaGFuZGxlcihzZXNzaW9uU3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgaWYgKCF1c2VyKSB7XG4gICAgICB1bnN1YnNjcmliZSA9IHNlc3Npb25TdG9yZS5zdWJzY3JpYmUoaGFuZGxlcik7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlc3Npb25Mb2NhdGlvbigpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPFNlc3Npb25Mb2NhdGlvbiB8IHVuZGVmaW5lZD4oKHJlcywgcmVqKSA9PiB7XG4gICAgY29uc3Qgc3ViID0gZ2V0Q3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKHNlc3Npb24pID0+IHtcbiAgICAgIHJlcyhzZXNzaW9uLnNlc3Npb25Mb2NhdGlvbik7XG4gICAgfSwgcmVqKTtcbiAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRTZXNzaW9uTG9jYXRpb24oXG4gIGxvY2F0aW9uVXVpZDogc3RyaW5nLFxuICBhYm9ydENvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlclxuKTogUHJvbWlzZTxhbnk+IHtcbiAgYXdhaXQgb3Blbm1yc0ZldGNoKHNlc3Npb25FbmRwb2ludCwge1xuICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgYm9keTogeyBzZXNzaW9uTG9jYXRpb246IGxvY2F0aW9uVXVpZCB9LFxuICAgIGhlYWRlcnM6IHtcbiAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgIH0sXG4gICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICB9KTtcblxuICBhd2FpdCByZWZldGNoQ3VycmVudFVzZXIoKTtcbn1cbiJdLCJuYW1lcyI6WyJyZXBvcnRFcnJvciIsImNyZWF0ZUdsb2JhbFN0b3JlIiwiaXNVbmRlZmluZWQiLCJPYnNlcnZhYmxlIiwib3Blbm1yc0ZldGNoIiwic2Vzc2lvbkVuZHBvaW50Iiwic2Vzc2lvblN0b3JlIiwibG9hZGVkIiwic2Vzc2lvbiIsImxhc3RGZXRjaFRpbWVNaWxsaXMiLCJnZXRDdXJyZW50VXNlciIsIm9wdHMiLCJpbmNsdWRlQXV0aFN0YXR1cyIsIkRhdGUiLCJub3ciLCJnZXRTdGF0ZSIsInJlZmV0Y2hDdXJyZW50VXNlciIsInN1YnNjcmliZXIiLCJoYW5kbGVyIiwic3RhdGUiLCJuZXh0IiwidXNlciIsInN1YnNjcmliZSIsImdldFNlc3Npb25TdG9yZSIsInNldFVzZXJMYW5ndWFnZSIsImRhdGEiLCJsb2NhbGUiLCJ1c2VyUHJvcGVydGllcyIsImRlZmF1bHRMb2NhbGUiLCJodG1sTGFuZyIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiZ2V0QXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwidXNlckhhc1ByaXZpbGVnZSIsInJlcXVpcmVkUHJpdmlsZWdlIiwicHJpdmlsZWdlcyIsImZpbmQiLCJwIiwiZGlzcGxheSIsIkFycmF5IiwiaXNBcnJheSIsImV2ZXJ5IiwicnAiLCJjb25zb2xlIiwiZXJyb3IiLCJpc1N1cGVyVXNlciIsInJvbGVzIiwicm9sZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwidGhlbiIsInJlcyIsInNldFN0YXRlIiwiY2F0Y2giLCJlcnIiLCJzZXNzaW9uSWQiLCJhdXRoZW50aWNhdGVkIiwiY2xlYXJDdXJyZW50VXNlciIsInVzZXJIYXNBY2Nlc3MiLCJ1bmRlZmluZWQiLCJCb29sZWFuIiwiZ2V0TG9nZ2VkSW5Vc2VyIiwidW5zdWJzY3JpYmUiLCJyZWoiLCJnZXRTZXNzaW9uTG9jYXRpb24iLCJzdWIiLCJzZXNzaW9uTG9jYXRpb24iLCJzZXRTZXNzaW9uTG9jYXRpb24iLCJsb2NhdGlvblV1aWQiLCJhYm9ydENvbnRyb2xsZXIiLCJtZXRob2QiLCJib2R5IiwiaGVhZGVycyIsInNpZ25hbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-api/src/shared-api-objects/current-user.ts\n");
|
|
6491
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"clearCurrentUser\": () => (/* binding */ clearCurrentUser),\n/* harmony export */ \"getCurrentUser\": () => (/* binding */ getCurrentUser),\n/* harmony export */ \"getLoggedInUser\": () => (/* binding */ getLoggedInUser),\n/* harmony export */ \"getSessionLocation\": () => (/* binding */ getSessionLocation),\n/* harmony export */ \"getSessionStore\": () => (/* binding */ getSessionStore),\n/* harmony export */ \"refetchCurrentUser\": () => (/* binding */ refetchCurrentUser),\n/* harmony export */ \"setSessionLocation\": () => (/* binding */ setSessionLocation),\n/* harmony export */ \"userHasAccess\": () => (/* binding */ userHasAccess)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_error_handling__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-error-handling */ \"../../framework/esm-error-handling/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/* harmony import */ var lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash-es/isUndefined */ \"../../../node_modules/lodash-es/isUndefined.js\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ \"webpack/sharing/consume/default/rxjs/rxjs\");\n/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _openmrs_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../openmrs-fetch */ \"../../framework/esm-api/src/openmrs-fetch.ts\");\n/** @module @category API */ function 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 _asyncToGenerator(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}\nvar __generator = undefined && undefined.__generator || function(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\n\n\nvar sessionStore = (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_1__.createGlobalStore)(\"session\", {\n loaded: false,\n session: null\n});\nvar lastFetchTimeMillis = 0;\nfunction getCurrentUser() {\n var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {\n includeAuthStatus: true\n };\n if (lastFetchTimeMillis < Date.now() - 1000 * 60 || !sessionStore.getState().loaded) {\n refetchCurrentUser();\n }\n return new rxjs__WEBPACK_IMPORTED_MODULE_2__.Observable(function(subscriber) {\n var handler = function(state) {\n if (state.loaded) {\n if (opts.includeAuthStatus) {\n subscriber.next(state.session);\n } else {\n var ref;\n subscriber.next((ref = state.session) === null || ref === void 0 ? void 0 : ref.user);\n }\n }\n };\n handler(sessionStore.getState());\n // The observable subscribe function should return an unsubscribe function,\n // which happens to be exactly what `subscribe` returns.\n return sessionStore.subscribe(handler);\n });\n}\n\nfunction getSessionStore() {\n if (lastFetchTimeMillis < Date.now() - 1000 * 60 || !sessionStore.getState().loaded) {\n refetchCurrentUser();\n }\n return sessionStore;\n}\nfunction setUserLanguage(data) {\n var ref, ref1;\n var ref2;\n var locale = (ref2 = data === null || data === void 0 ? void 0 : (ref = data.user) === null || ref === void 0 ? void 0 : (ref1 = ref.userProperties) === null || ref1 === void 0 ? void 0 : ref1.defaultLocale) !== null && ref2 !== void 0 ? ref2 : data.locale;\n var htmlLang = document.documentElement.getAttribute(\"lang\");\n if (locale !== htmlLang) {\n document.documentElement.setAttribute(\"lang\", locale);\n }\n}\nfunction userHasPrivilege(requiredPrivilege, user) {\n if (typeof requiredPrivilege === \"string\") {\n return !(0,lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(user.privileges.find(function(p) {\n return requiredPrivilege === p.display;\n }));\n } else if (Array.isArray(requiredPrivilege)) {\n return requiredPrivilege.every(function(rp) {\n return !(0,lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(user.privileges.find(function(p) {\n return rp === p.display;\n }));\n });\n } else if (!(0,lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(requiredPrivilege)) {\n console.error('Could not understand privileges \"'.concat(requiredPrivilege, '\"'));\n }\n return true;\n}\nfunction isSuperUser(user) {\n return !(0,lodash_es_isUndefined__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(user.roles.find(function(role) {\n return role.display === \"System Developer\";\n }));\n}\n/**\n * The `refetchCurrentUser` function causes a network request to redownload\n * the user. All subscribers to the current user will be notified of the\n * new users once the new version of the user object is downloaded.\n *\n * @returns The same observable as returned by [[getCurrentUser]].\n *\n * #### Example\n * ```js\n * import { refetchCurrentUser } from '@openmrs/esm-api'\n * refetchCurrentUser()\n * ```\n */ function refetchCurrentUser() {\n return new Promise(function(resolve, reject) {\n lastFetchTimeMillis = Date.now();\n (0,_openmrs_fetch__WEBPACK_IMPORTED_MODULE_3__.openmrsFetch)(_openmrs_fetch__WEBPACK_IMPORTED_MODULE_3__.sessionEndpoint).then(function(res) {\n if (typeof (res === null || res === void 0 ? void 0 : res.data) === \"object\") {\n setUserLanguage(res.data);\n resolve(res.data);\n sessionStore.setState({\n loaded: true,\n session: res.data\n });\n } else {\n reject();\n return Promise.reject();\n }\n }).catch(function(err) {\n (0,_openmrs_esm_error_handling__WEBPACK_IMPORTED_MODULE_0__.reportError)(\"Failed to fetch new session information: \".concat(err));\n reject(err);\n return {\n sessionId: \"\",\n authenticated: false\n };\n });\n });\n}\nfunction clearCurrentUser() {\n sessionStore.setState({\n loaded: true,\n session: {\n authenticated: false,\n sessionId: \"\"\n }\n });\n}\nfunction userHasAccess(requiredPrivilege, user) {\n if (user === undefined) {\n // if the user hasn't been loaded, then return false iff there is a required privilege\n return Boolean(requiredPrivilege);\n }\n if (!Boolean(requiredPrivilege)) {\n // if user exists but no requiredPrivilege is defined\n return true;\n }\n return userHasPrivilege(requiredPrivilege, user) || isSuperUser(user);\n}\nfunction getLoggedInUser() {\n var user;\n var unsubscribe;\n return new Promise(function(res, rej) {\n var handler = function(state) {\n if (state.loaded && state.session.user) {\n user = state.session.user;\n res(state.session.user);\n unsubscribe && unsubscribe();\n }\n };\n handler(sessionStore.getState());\n if (!user) {\n unsubscribe = sessionStore.subscribe(handler);\n }\n });\n}\nfunction getSessionLocation() {\n return new Promise(function(res, rej) {\n var sub = getCurrentUser().subscribe(function(session) {\n res(session.sessionLocation);\n }, rej);\n sub.unsubscribe();\n });\n}\nfunction setSessionLocation(locationUuid, abortController) {\n return _setSessionLocation.apply(this, arguments);\n}\nfunction _setSessionLocation() {\n _setSessionLocation = _asyncToGenerator(function(locationUuid, abortController) {\n return __generator(this, function(_state) {\n switch(_state.label){\n case 0:\n return [\n 4,\n (0,_openmrs_fetch__WEBPACK_IMPORTED_MODULE_3__.openmrsFetch)(_openmrs_fetch__WEBPACK_IMPORTED_MODULE_3__.sessionEndpoint, {\n method: \"POST\",\n body: {\n sessionLocation: locationUuid\n },\n headers: {\n \"Content-Type\": \"application/json\"\n },\n signal: abortController.signal\n })\n ];\n case 1:\n _state.sent();\n return [\n 4,\n refetchCurrentUser()\n ];\n case 2:\n _state.sent();\n return [\n 2\n ];\n }\n });\n });\n return _setSessionLocation.apply(this, arguments);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1hcGkvc3JjL3NoYXJlZC1hcGktb2JqZWN0cy9jdXJyZW50LXVzZXIudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQkFBMEIsR0FDMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBMEQ7QUFDSDtBQUNQO0FBQ2Q7QUFDK0I7QUFxQmpFLElBQU1NLGVBQWVMLHFFQUFpQkEsQ0FBZSxXQUFXO0lBQzlETSxRQUFRLEtBQUs7SUFDYkMsU0FBUyxJQUFJO0FBQ2Y7QUFDQSxJQUFJQyxzQkFBc0I7QUE2QzFCLFNBQVNDLGlCQUU2QjtRQURwQ0MsT0FBQUEsaUVBQU87UUFBRUMsbUJBQW1CLElBQUk7SUFBQyxDQUFDO0lBRWxDLElBQ0VILHNCQUFzQkksS0FBS0MsR0FBRyxLQUFLLE9BQU8sTUFDMUMsQ0FBQ1IsYUFBYVMsUUFBUSxHQUFHUixNQUFNLEVBQy9CO1FBQ0FTO0lBQ0YsQ0FBQztJQUVELE9BQU8sSUFBSWIsNENBQVVBLENBQUMsU0FBQ2MsWUFBZTtRQUNwQyxJQUFNQyxVQUFVLFNBQUNDLE9BQVU7WUFDekIsSUFBSUEsTUFBTVosTUFBTSxFQUFFO2dCQUNoQixJQUFJSSxLQUFLQyxpQkFBaUIsRUFBRTtvQkFDMUJLLFdBQVdHLElBQUksQ0FBQ0QsTUFBTVgsT0FBTztnQkFDL0IsT0FBTzt3QkFDV1c7b0JBQWhCRixXQUFXRyxJQUFJLENBQUNELENBQUFBLE1BQUFBLE1BQU1YLE9BQU8sY0FBYlcsaUJBQUFBLEtBQUFBLElBQUFBLElBQWVFLElBQUk7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDO1FBQ0g7UUFDQUgsUUFBUVosYUFBYVMsUUFBUTtRQUM3QiwyRUFBMkU7UUFDM0Usd0RBQXdEO1FBQ3hELE9BQU9ULGFBQWFn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Q21FLFFBQVE7NEJBQ1JDLE1BQU07Z0NBQUVMLGlCQUFpQkU7NEJBQWE7NEJBQ3RDSSxTQUFTO2dDQUNQLGdCQUFnQjs0QkFDbEI7NEJBQ0FDLFFBQVFKLGdCQUFnQkksTUFBTTt3QkFDaEM7OztvQkFQQTtvQkFTQTs7d0JBQU0zRDs7O29CQUFOOzs7Ozs7SUFDRjtXQWRzQnFEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLWFwaS9zcmMvc2hhcmVkLWFwaS1vYmplY3RzL2N1cnJlbnQtdXNlci50cz9iZDkxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBBUEkgKi9cbmltcG9ydCB7IHJlcG9ydEVycm9yIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1lcnJvci1oYW5kbGluZ1wiO1xuaW1wb3J0IHsgY3JlYXRlR2xvYmFsU3RvcmUgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLXN0YXRlXCI7XG5pbXBvcnQgaXNVbmRlZmluZWQgZnJvbSBcImxvZGFzaC1lcy9pc1VuZGVmaW5lZFwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBvcGVubXJzRmV0Y2gsIHNlc3Npb25FbmRwb2ludCB9IGZyb20gXCIuLi9vcGVubXJzLWZldGNoXCI7XG5pbXBvcnQgdHlwZSB7XG4gIExvZ2dlZEluVXNlcixcbiAgU2Vzc2lvbkxvY2F0aW9uLFxuICBQcml2aWxlZ2UsXG4gIFJvbGUsXG4gIFNlc3Npb24sXG59IGZyb20gXCIuLi90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBTZXNzaW9uU3RvcmUgPSBMb2FkZWRTZXNzaW9uU3RvcmUgfCBVbmxvYWRlZFNlc3Npb25TdG9yZTtcblxuZXhwb3J0IHR5cGUgTG9hZGVkU2Vzc2lvblN0b3JlID0ge1xuICBsb2FkZWQ6IHRydWU7XG4gIHNlc3Npb246IFNlc3Npb247XG59O1xuXG5leHBvcnQgdHlwZSBVbmxvYWRlZFNlc3Npb25TdG9yZSA9IHtcbiAgbG9hZGVkOiBmYWxzZTtcbiAgc2Vzc2lvbjogbnVsbDtcbn07XG5cbmNvbnN0IHNlc3Npb25TdG9yZSA9IGNyZWF0ZUdsb2JhbFN0b3JlPFNlc3Npb25TdG9yZT4oXCJzZXNzaW9uXCIsIHtcbiAgbG9hZGVkOiBmYWxzZSxcbiAgc2Vzc2lvbjogbnVsbCxcbn0pO1xubGV0IGxhc3RGZXRjaFRpbWVNaWxsaXMgPSAwO1xuXG4vKipcbiAqIFRoZSBnZXRDdXJyZW50VXNlciBmdW5jdGlvbiByZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCBwcm9kdWNlc1xuICogKip6ZXJvIG9yIG1vcmUgdmFsdWVzLCBvdmVyIHRpbWUqKi4gSXQgd2lsbCBwcm9kdWNlIHplcm8gdmFsdWVzXG4gKiBieSBkZWZhdWx0IGlmIHRoZSB1c2VyIGlzIG5vdCBsb2dnZWQgaW4uIEFuZCBpdCB3aWxsIHByb3ZpZGUgYVxuICogZmlyc3QgdmFsdWUgd2hlbiB0aGUgbG9nZ2VkIGluIHVzZXIgaXMgZmV0Y2hlZCBmcm9tIHRoZSBzZXJ2ZXIuXG4gKiBTdWJzZXF1ZW50IHZhbHVlcyB3aWxsIGJlIHByb2R1Y2VkIHdoZW5ldmVyIHRoZSB1c2VyIG9iamVjdCBpc1xuICogdXBkYXRlZC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyBBbiBvYmplY3Qgd2l0aCBgaW5jbHVkZUF1dGhTdGF0dXNgIGJvb2xlYW5cbiAqICAgcHJvcGVydHkgdGhhdCBkZWZhdWx0cyB0byBgZmFsc2VgLiBXaGVuIGBpbmNsdWRlQXV0aFN0YXR1c2AgaXMgc2V0XG4gKiAgIHRvIGB0cnVlYCwgdGhlIGVudGlyZSByZXNwb25zZSBvYmplY3QgZnJvbSB0aGUgQVBJIHdpbGwgYmUgcHJvdmlkZWQuXG4gKiAgIFdoZW4gYGluY2x1ZGVBdXRoU3RhdHVzYCBpcyBzZXQgdG8gYGZhbHNlYCwgb25seSB0aGUgYHVzZXJgIHByb3BlcnR5XG4gKiAgIG9mIHRoZSByZXNwb25zZSBvYmplY3Qgd2lsbCBiZSBwcm92aWRlZC5cbiAqXG4gKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgcHJvZHVjZXMgemVybyBvciBtb3JlIHZhbHVlcyAoYXNcbiAqICAgZGVzY3JpYmVkIGFib3ZlKS4gVGhlIHZhbHVlcyBwcm9kdWNlZCB3aWxsIGJlIGEgdXNlciBvYmplY3QgKGlmXG4gKiAgIGBpbmNsdWRlQXV0aFN0YXR1c2AgaXMgc2V0IHRvIGBmYWxzZWApIG9yIGFuIG9iamVjdCB3aXRoIGEgc2Vzc2lvblxuICogICBhbmQgYXV0aGVudGljYXRlZCBwcm9wZXJ0eSAoaWYgYGluY2x1ZGVBdXRoU3RhdHVzYCBpcyBzZXQgdG8gYHRydWVgKS5cbiAqXG4gKiAjIyMjIEV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogaW1wb3J0IHsgZ2V0Q3VycmVudFVzZXIgfSBmcm9tICdAb3Blbm1ycy9lc20tYXBpJ1xuICogY29uc3Qgc3Vic2NyaXB0aW9uID0gZ2V0Q3VycmVudFVzZXIoKS5zdWJzY3JpYmUoXG4gKiAgIHVzZXIgPT4gY29uc29sZS5sb2codXNlcilcbiAqIClcbiAqIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gKiBnZXRDdXJyZW50VXNlcih7aW5jbHVkZUF1dGhTdGF0dXM6IHRydWV9KS5zdWJzY3JpYmUoXG4gKiAgIGRhdGEgPT4gY29uc29sZS5sb2coZGF0YS5hdXRoZW50aWNhdGVkKVxuICogKVxuICogYGBgXG4gKlxuICogIyMjIyBCZSBzdXJlIHRvIHVuc3Vic2NyaWJlIHdoZW4geW91ciBjb21wb25lbnQgdW5tb3VudHNcbiAqXG4gKiBPdGhlcndpc2UgeW91ciBjb2RlIHdpbGwgY29udGludWUgZ2V0dGluZyB1cGRhdGVzIHRvIHRoZSB1c2VyIG9iamVjdFxuICogZXZlbiBhZnRlciB0aGUgVUkgY29tcG9uZW50IGlzIGdvbmUgZnJvbSB0aGUgc2NyZWVuLiBUaGlzIGlzIGEgbWVtb3J5XG4gKiBsZWFrIGFuZCBzb3VyY2Ugb2YgYnVncy5cbiAqL1xuZnVuY3Rpb24gZ2V0Q3VycmVudFVzZXIoKTogT2JzZXJ2YWJsZTxTZXNzaW9uPjtcbmZ1bmN0aW9uIGdldEN1cnJlbnRVc2VyKG9wdHM6IHsgaW5jbHVkZUF1dGhTdGF0dXM6IHRydWUgfSk6IE9ic2VydmFibGU8U2Vzc2lvbj47XG5mdW5jdGlvbiBnZXRDdXJyZW50VXNlcihvcHRzOiB7XG4gIGluY2x1ZGVBdXRoU3RhdHVzOiBmYWxzZTtcbn0pOiBPYnNlcnZhYmxlPExvZ2dlZEluVXNlcj47XG5mdW5jdGlvbiBnZXRDdXJyZW50VXNlcihcbiAgb3B0cyA9IHsgaW5jbHVkZUF1dGhTdGF0dXM6IHRydWUgfVxuKTogT2JzZXJ2YWJsZTxTZXNzaW9uIHwgTG9nZ2VkSW5Vc2VyPiB7XG4gIGlmIChcbiAgICBsYXN0RmV0Y2hUaW1lTWlsbGlzIDwgRGF0ZS5ub3coKSAtIDEwMDAgKiA2MCB8fFxuICAgICFzZXNzaW9uU3RvcmUuZ2V0U3RhdGUoKS5sb2FkZWRcbiAgKSB7XG4gICAgcmVmZXRjaEN1cnJlbnRVc2VyKCk7XG4gIH1cblxuICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICBjb25zdCBoYW5kbGVyID0gKHN0YXRlKSA9PiB7XG4gICAgICBpZiAoc3RhdGUubG9hZGVkKSB7XG4gICAgICAgIGlmIChvcHRzLmluY2x1ZGVBdXRoU3RhdHVzKSB7XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHN0YXRlLnNlc3Npb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN1YnNjcmliZXIubmV4dChzdGF0ZS5zZXNzaW9uPy51c2VyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgaGFuZGxlcihzZXNzaW9uU3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgLy8gVGhlIG9ic2VydmFibGUgc3Vic2NyaWJlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYW4gdW5zdWJzY3JpYmUgZnVuY3Rpb24sXG4gICAgLy8gd2hpY2ggaGFwcGVucyB0byBiZSBleGFjdGx5IHdoYXQgYHN1YnNjcmliZWAgcmV0dXJucy5cbiAgICByZXR1cm4gc2Vzc2lvblN0b3JlLnN1YnNjcmliZShoYW5kbGVyKTtcbiAgfSk7XG59XG5cbmV4cG9ydCB7IGdldEN1cnJlbnRVc2VyIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXNzaW9uU3RvcmUoKSB7XG4gIGlmIChcbiAgICBsYXN0RmV0Y2hUaW1lTWlsbGlzIDwgRGF0ZS5ub3coKSAtIDEwMDAgKiA2MCB8fFxuICAgICFzZXNzaW9uU3RvcmUuZ2V0U3RhdGUoKS5sb2FkZWRcbiAgKSB7XG4gICAgcmVmZXRjaEN1cnJlbnRVc2VyKCk7XG4gIH1cblxuICByZXR1cm4gc2Vzc2lvblN0b3JlO1xufVxuXG5mdW5jdGlvbiBzZXRVc2VyTGFuZ3VhZ2UoZGF0YTogU2Vzc2lvbikge1xuICBjb25zdCBsb2NhbGUgPSBkYXRhPy51c2VyPy51c2VyUHJvcGVydGllcz8uZGVmYXVsdExvY2FsZSA/PyBkYXRhLmxvY2FsZTtcbiAgY29uc3QgaHRtbExhbmcgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKFwibGFuZ1wiKTtcblxuICBpZiAobG9jYWxlICE9PSBodG1sTGFuZykge1xuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJsYW5nXCIsIGxvY2FsZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdXNlckhhc1ByaXZpbGVnZShcbiAgcmVxdWlyZWRQcml2aWxlZ2U6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICB1c2VyOiB7IHByaXZpbGVnZXM6IEFycmF5PFByaXZpbGVnZT4gfVxuKSB7XG4gIGlmICh0eXBlb2YgcmVxdWlyZWRQcml2aWxlZ2UgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gIWlzVW5kZWZpbmVkKFxuICAgICAgdXNlci5wcml2aWxlZ2VzLmZpbmQoKHApID0+IHJlcXVpcmVkUHJpdmlsZWdlID09PSBwLmRpc3BsYXkpXG4gICAgKTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlcXVpcmVkUHJpdmlsZWdlKSkge1xuICAgIHJldHVybiByZXF1aXJlZFByaXZpbGVnZS5ldmVyeShcbiAgICAgIChycCkgPT4gIWlzVW5kZWZpbmVkKHVzZXIucHJpdmlsZWdlcy5maW5kKChwKSA9PiBycCA9PT0gcC5kaXNwbGF5KSlcbiAgICApO1xuICB9IGVsc2UgaWYgKCFpc1VuZGVmaW5lZChyZXF1aXJlZFByaXZpbGVnZSkpIHtcbiAgICBjb25zb2xlLmVycm9yKGBDb3VsZCBub3QgdW5kZXJzdGFuZCBwcml2aWxlZ2VzIFwiJHtyZXF1aXJlZFByaXZpbGVnZX1cImApO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGlzU3VwZXJVc2VyKHVzZXI6IHsgcm9sZXM6IEFycmF5PFJvbGU+IH0pIHtcbiAgcmV0dXJuICFpc1VuZGVmaW5lZChcbiAgICB1c2VyLnJvbGVzLmZpbmQoKHJvbGUpID0+IHJvbGUuZGlzcGxheSA9PT0gXCJTeXN0ZW0gRGV2ZWxvcGVyXCIpXG4gICk7XG59XG5cbi8qKlxuICogVGhlIGByZWZldGNoQ3VycmVudFVzZXJgIGZ1bmN0aW9uIGNhdXNlcyBhIG5ldHdvcmsgcmVxdWVzdCB0byByZWRvd25sb2FkXG4gKiB0aGUgdXNlci4gQWxsIHN1YnNjcmliZXJzIHRvIHRoZSBjdXJyZW50IHVzZXIgd2lsbCBiZSBub3RpZmllZCBvZiB0aGVcbiAqIG5ldyB1c2VycyBvbmNlIHRoZSBuZXcgdmVyc2lvbiBvZiB0aGUgdXNlciBvYmplY3QgaXMgZG93bmxvYWRlZC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgc2FtZSBvYnNlcnZhYmxlIGFzIHJldHVybmVkIGJ5IFtbZ2V0Q3VycmVudFVzZXJdXS5cbiAqXG4gKiAjIyMjIEV4YW1wbGVcbiAqIGBgYGpzXG4gKiBpbXBvcnQgeyByZWZldGNoQ3VycmVudFVzZXIgfSBmcm9tICdAb3Blbm1ycy9lc20tYXBpJ1xuICogcmVmZXRjaEN1cnJlbnRVc2VyKClcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVmZXRjaEN1cnJlbnRVc2VyKCkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGxhc3RGZXRjaFRpbWVNaWxsaXMgPSBEYXRlLm5vdygpO1xuICAgIG9wZW5tcnNGZXRjaChzZXNzaW9uRW5kcG9pbnQpXG4gICAgICAudGhlbigocmVzKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzPy5kYXRhID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgc2V0VXNlckxhbmd1YWdlKHJlcy5kYXRhKTtcbiAgICAgICAgICByZXNvbHZlKHJlcy5kYXRhKTtcbiAgICAgICAgICBzZXNzaW9uU3RvcmUuc2V0U3RhdGUoeyBsb2FkZWQ6IHRydWUsIHNlc3Npb246IHJlcy5kYXRhIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgcmVwb3J0RXJyb3IoYEZhaWxlZCB0byBmZXRjaCBuZXcgc2Vzc2lvbiBpbmZvcm1hdGlvbjogJHtlcnJ9YCk7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNlc3Npb25JZDogXCJcIixcbiAgICAgICAgICBhdXRoZW50aWNhdGVkOiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQ3VycmVudFVzZXIoKSB7XG4gIHNlc3Npb25TdG9yZS5zZXRTdGF0ZSh7XG4gICAgbG9hZGVkOiB0cnVlLFxuICAgIHNlc3Npb246IHsgYXV0aGVudGljYXRlZDogZmFsc2UsIHNlc3Npb25JZDogXCJcIiB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZXJIYXNBY2Nlc3MoXG4gIHJlcXVpcmVkUHJpdmlsZWdlOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgdXNlcjogeyBwcml2aWxlZ2VzOiBBcnJheTxQcml2aWxlZ2U+OyByb2xlczogQXJyYXk8Um9sZT4gfVxuKSB7XG4gIGlmICh1c2VyID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBpZiB0aGUgdXNlciBoYXNuJ3QgYmVlbiBsb2FkZWQsIHRoZW4gcmV0dXJuIGZhbHNlIGlmZiB0aGVyZSBpcyBhIHJlcXVpcmVkIHByaXZpbGVnZVxuICAgIHJldHVybiBCb29sZWFuKHJlcXVpcmVkUHJpdmlsZWdlKTtcbiAgfVxuXG4gIGlmICghQm9vbGVhbihyZXF1aXJlZFByaXZpbGVnZSkpIHtcbiAgICAvLyBpZiB1c2VyIGV4aXN0cyBidXQgbm8gcmVxdWlyZWRQcml2aWxlZ2UgaXMgZGVmaW5lZFxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHVzZXJIYXNQcml2aWxlZ2UocmVxdWlyZWRQcml2aWxlZ2UsIHVzZXIpIHx8IGlzU3VwZXJVc2VyKHVzZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9nZ2VkSW5Vc2VyKCkge1xuICBsZXQgdXNlcjtcbiAgbGV0IHVuc3Vic2NyaWJlO1xuICByZXR1cm4gbmV3IFByb21pc2U8TG9nZ2VkSW5Vc2VyPigocmVzLCByZWopID0+IHtcbiAgICBjb25zdCBoYW5kbGVyID0gKHN0YXRlOiBTZXNzaW9uU3RvcmUpID0+IHtcbiAgICAgIGlmIChzdGF0ZS5sb2FkZWQgJiYgc3RhdGUuc2Vzc2lvbi51c2VyKSB7XG4gICAgICAgIHVzZXIgPSBzdGF0ZS5zZXNzaW9uLnVzZXI7XG4gICAgICAgIHJlcyhzdGF0ZS5zZXNzaW9uLnVzZXIpO1xuICAgICAgICB1bnN1YnNjcmliZSAmJiB1bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH07XG4gICAgaGFuZGxlcihzZXNzaW9uU3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgaWYgKCF1c2VyKSB7XG4gICAgICB1bnN1YnNjcmliZSA9IHNlc3Npb25TdG9yZS5zdWJzY3JpYmUoaGFuZGxlcik7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlc3Npb25Mb2NhdGlvbigpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPFNlc3Npb25Mb2NhdGlvbiB8IHVuZGVmaW5lZD4oKHJlcywgcmVqKSA9PiB7XG4gICAgY29uc3Qgc3ViID0gZ2V0Q3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKHNlc3Npb24pID0+IHtcbiAgICAgIHJlcyhzZXNzaW9uLnNlc3Npb25Mb2NhdGlvbik7XG4gICAgfSwgcmVqKTtcbiAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRTZXNzaW9uTG9jYXRpb24oXG4gIGxvY2F0aW9uVXVpZDogc3RyaW5nLFxuICBhYm9ydENvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlclxuKTogUHJvbWlzZTxhbnk+IHtcbiAgYXdhaXQgb3Blbm1yc0ZldGNoKHNlc3Npb25FbmRwb2ludCwge1xuICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgYm9keTogeyBzZXNzaW9uTG9jYXRpb246IGxvY2F0aW9uVXVpZCB9LFxuICAgIGhlYWRlcnM6IHtcbiAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgIH0sXG4gICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICB9KTtcblxuICBhd2FpdCByZWZldGNoQ3VycmVudFVzZXIoKTtcbn1cbiJdLCJuYW1lcyI6WyJyZXBvcnRFcnJvciIsImNyZWF0ZUdsb2JhbFN0b3JlIiwiaXNVbmRlZmluZWQiLCJPYnNlcnZhYmxlIiwib3Blbm1yc0ZldGNoIiwic2Vzc2lvbkVuZHBvaW50Iiwic2Vzc2lvblN0b3JlIiwibG9hZGVkIiwic2Vzc2lvbiIsImxhc3RGZXRjaFRpbWVNaWxsaXMiLCJnZXRDdXJyZW50VXNlciIsIm9wdHMiLCJpbmNsdWRlQXV0aFN0YXR1cyIsIkRhdGUiLCJub3ciLCJnZXRTdGF0ZSIsInJlZmV0Y2hDdXJyZW50VXNlciIsInN1YnNjcmliZXIiLCJoYW5kbGVyIiwic3RhdGUiLCJuZXh0IiwidXNlciIsInN1YnNjcmliZSIsImdldFNlc3Npb25TdG9yZSIsInNldFVzZXJMYW5ndWFnZSIsImRhdGEiLCJsb2NhbGUiLCJ1c2VyUHJvcGVydGllcyIsImRlZmF1bHRMb2NhbGUiLCJodG1sTGFuZyIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiZ2V0QXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwidXNlckhhc1ByaXZpbGVnZSIsInJlcXVpcmVkUHJpdmlsZWdlIiwicHJpdmlsZWdlcyIsImZpbmQiLCJwIiwiZGlzcGxheSIsIkFycmF5IiwiaXNBcnJheSIsImV2ZXJ5IiwicnAiLCJjb25zb2xlIiwiZXJyb3IiLCJpc1N1cGVyVXNlciIsInJvbGVzIiwicm9sZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwidGhlbiIsInJlcyIsInNldFN0YXRlIiwiY2F0Y2giLCJlcnIiLCJzZXNzaW9uSWQiLCJhdXRoZW50aWNhdGVkIiwiY2xlYXJDdXJyZW50VXNlciIsInVzZXJIYXNBY2Nlc3MiLCJ1bmRlZmluZWQiLCJCb29sZWFuIiwiZ2V0TG9nZ2VkSW5Vc2VyIiwidW5zdWJzY3JpYmUiLCJyZWoiLCJnZXRTZXNzaW9uTG9jYXRpb24iLCJzdWIiLCJzZXNzaW9uTG9jYXRpb24iLCJzZXRTZXNzaW9uTG9jYXRpb24iLCJsb2NhdGlvblV1aWQiLCJhYm9ydENvbnRyb2xsZXIiLCJtZXRob2QiLCJib2R5IiwiaGVhZGVycyIsInNpZ25hbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-api/src/shared-api-objects/current-user.ts\n");
|
|
6503
6492
|
|
|
6504
6493
|
/***/ }),
|
|
6505
6494
|
|
|
@@ -6774,7 +6763,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
6774
6763
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6775
6764
|
|
|
6776
6765
|
"use strict";
|
|
6777
|
-
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 _arrayLikeToArray(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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _defineProperty(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 _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _iterableToArrayLimit(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 _nonIterableRest() {\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 _nonIterableSpread() {\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 _objectSpread(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 _defineProperty(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 _objectSpreadProps(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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(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 _arrayLikeToArray(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 _value = _slicedToArray(_step.value, 2), slotName = _value[0], slot = _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 ref = _slicedToArray(extensionId.split(\"#\"), 1), extensionName = ref[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 = extensionInternalStore.action(function(state, extensionRegistration) {\n state.extensions[extensionRegistration.name] = _objectSpreadProps(_objectSpread({}, extensionRegistration), {\n instances: []\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 _objectSpreadProps(_objectSpread({}, state), {\n slots: _objectSpreadProps(_objectSpread({}, state.slots), _defineProperty({}, slotName, _objectSpreadProps(_objectSpread({}, createNewExtensionSlotInfo(slotName)), {\n attachedIds: [\n extensionId\n ]\n })))\n });\n } else {\n return _objectSpreadProps(_objectSpread({}, state), {\n slots: _objectSpreadProps(_objectSpread({}, state.slots), _defineProperty({}, slotName, _objectSpreadProps(_objectSpread({}, existingSlot), {\n attachedIds: _toConsumableArray(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 _objectSpreadProps(_objectSpread({}, state), {\n slots: _objectSpreadProps(_objectSpread({}, state.slots), _defineProperty({}, extensionSlotName, _objectSpreadProps(_objectSpread({}, 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 _objectSpreadProps(_objectSpread({}, state), {\n slots: _objectSpreadProps(_objectSpread({}, state.slots), _defineProperty({}, extensionSlotName, _objectSpreadProps(_objectSpread({}, 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 ref = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionConfigFromStore)(extensionConfigStoreState, slotName, id), extensionConfig = ref.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 ref1;\n var ref2;\n var requiredPrivileges = (ref2 = extensionConfig === null || extensionConfig === void 0 ? void 0 : (ref1 = extensionConfig[\"Display conditions\"]) === null || ref1 === void 0 ? void 0 : ref1.privileges) !== null && ref2 !== void 0 ? ref2 : extension.privileges;\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 ref3;\n user = (ref3 = (0,_openmrs_esm_api__WEBPACK_IMPORTED_MODULE_0__.getSessionStore)().getState().session) === null || ref3 === void 0 ? void 0 : ref3.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 online: extension.online,\n offline: extension.offline\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 ref = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionSlotConfig)(slotName), slotConfig = ref.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 _toConsumableArray(attachedIds).concat(_toConsumableArray(addedIds)).filter(function(id) {\n return !removedIds.includes(id);\n }).sort(function(idA, idB) {\n var ref, ref1;\n var ai = getOrder(idA, idOrder, (ref = extensions[getExtensionNameFromId(idA)]) === null || ref === void 0 ? void 0 : ref.order, attachedIds);\n var bi = getOrder(idB, idOrder, (ref1 = extensions[getExtensionNameFromId(idB)]) === null || ref1 === void 0 ? void 0 : ref1.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 = extensionInternalStore.action(function(state, moduleName, slotName) {\n var ref;\n var existingModuleName = (ref = state.slots[slotName]) === null || ref === void 0 ? void 0 : ref.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 _objectSpreadProps(_objectSpread({}, state), {\n slots: _objectSpreadProps(_objectSpread({}, state.slots), _defineProperty({}, slotName, _objectSpreadProps(_objectSpread({}, state.slots[slotName]), {\n moduleName: moduleName\n })))\n });\n }\n var slot = createNewExtensionSlotInfo(slotName, moduleName);\n return _objectSpreadProps(_objectSpread({}, state), {\n slots: _objectSpreadProps(_objectSpread({}, state.slots), _defineProperty({}, slotName, slot))\n });\n});\n/**\n * @internal\n * Just for testing.\n */ var reset = extensionStore.action(function() {\n return {\n slots: {},\n extensions: {}\n };\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1leHRlbnNpb25zL3NyYy9leHRlbnNpb25zLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0NBQWdDLEdBQ2hDOzs7Ozs7O0NBT0MsR0FFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBZ0Y7QUFVbkQ7QUFDVztBQUNRO0FBT3JDO0FBT007QUFFakIsSUFBTWEseUJBQXlCSiw0REFBeUJBO0FBQ3hELElBQU1LLGlCQUFpQkgseURBQWlCQTtBQUN4QyxJQUFNSSxtQkFBbUJULGlGQUE0QkE7QUFDckQsSUFBTVUsd0JBQXdCYiw2RUFBd0JBO0FBRXRELGdDQUFnQztBQUNoQyxTQUFTYywyQkFDUEMsYUFBcUMsRUFDckNDLG9CQUErQyxFQUMvQ0gscUJBQTRDLEVBQzVDO0lBQ0EsSUFBTUksUUFBNEMsQ0FBQztRQUM5Qzs7UUFBTCxRQUFLLFlBQXdCQyxPQUFPQyxPQUFPLENBQUNKLGNBQWNFLEtBQUssc0JBQTFELHdHQUE2RDtZQUE3RCw2Q0FBS0csc0JBQVVDO1lBQ2xCLElBQU0sU0FBYW5CLG9GQUErQkEsQ0FDaERjLHNCQUNBSyxLQUFLRSxJQUFJLEVBRkhEO1lBSVIsSUFBTUUscUJBQXFCQyxrQ0FDekJMLFVBQ0FMLGVBQ0FPLFFBQ0FUO1lBRUZJLEtBQUssQ0FBQ0csU0FBUyxHQUFHO2dCQUFFTSxZQUFZTCxLQUFLSyxVQUFVO2dCQUFFRixvQkFBQUE7WUFBbUI7UUFDdEU7O1FBWks7UUFBQTs7O2lCQUFBO2dCQUFBOzs7Z0JBQUE7c0JBQUE7Ozs7SUFhTCxJQUFJLENBQUNwQiw2REFBT0EsQ0FBQ08sZUFBZWdCLFFBQVEsR0FBR1YsS0FBSyxFQUFFQSxRQUFRO1FBQ3BETixlQUFlaUIsUUFBUSxDQUFDO1lBQUVYLE9BQUFBO1FBQU07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QUNIdkIsT0FBTyxxQ0FDRnVCLE1BQU12QixLQUFLLEdBQ2Qsb0JBQUNHLFVBQVdDOztBQUdsQixHQUFHO0FBRUg7OztDQUdDLEdBQ00sSUFBTWlGLFFBQW9CM0YsZUFBZWlDLE1BQU0sQ0FBQyxXQUFNO0lBQzNELE9BQU87UUFDTDNCLE9BQU8sQ0FBQztRQUNSd0IsWUFBWSxDQUFDO0lBQ2Y7QUFDRixHQUFHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLWV4dGVuc2lvbnMvc3JjL2V4dGVuc2lvbnMudHM/NzU5YSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgRXh0ZW5zaW9uICovXG4vKlxuICogV2UgaGF2ZSB0aGUgZm9sbG93aW5nIGV4dGVuc2lvbiBtb2RlczpcbiAqXG4gKiAtIGF0dGFjaGVkIChzZXQgdmlhIGNvZGUgaW4gZm9ybSBvZjogYXR0YWNoLCBkZXRhY2gsIC4uLilcbiAqIC0gY29uZmlndXJlZCAoc2V0IHZpYSBjb25maWd1cmF0aW9uIGluIGZvcm0gb2Y6IGFkZGVkLCByZW1vdmVkLCAuLi4pXG4gKiAtIGFzc2lnbmVkIChjb21wdXRlZCBmcm9tIGF0dGFjaGVkIGFuZCBjb25maWd1cmVkKVxuICogLSBjb25uZWN0ZWQgKGNvbXB1dGVkIGZyb20gYXNzaWduZWQgdXNpbmcgY29ubmVjdGl2aXR5IGFuZCBvbmxpbmUgLyBvZmZsaW5lKVxuICovXG5cbmltcG9ydCB7IGdldFNlc3Npb25TdG9yZSwgTG9nZ2VkSW5Vc2VyLCB1c2VySGFzQWNjZXNzIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1hcGlcIjtcbmltcG9ydCB7XG4gIEV4dGVuc2lvbnNDb25maWdTdG9yZSxcbiAgRXh0ZW5zaW9uU2xvdENvbmZpZ09iamVjdCxcbiAgRXh0ZW5zaW9uU2xvdHNDb25maWdTdG9yZSxcbiAgZ2V0RXh0ZW5zaW9uQ29uZmlnRnJvbVN0b3JlLFxuICBnZXRFeHRlbnNpb25zQ29uZmlnU3RvcmUsXG4gIGdldEV4dGVuc2lvblNsb3RDb25maWcsXG4gIGdldEV4dGVuc2lvblNsb3RDb25maWdGcm9tU3RvcmUsXG4gIGdldEV4dGVuc2lvblNsb3RzQ29uZmlnU3RvcmUsXG59IGZyb20gXCJAb3Blbm1ycy9lc20tY29uZmlnXCI7XG5pbXBvcnQgaXNFcXVhbCBmcm9tIFwibG9kYXNoLWVzL2lzRXF1YWxcIjtcbmltcG9ydCBpc1VuZGVmaW5lZCBmcm9tIFwibG9kYXNoLWVzL2lzVW5kZWZpbmVkXCI7XG5pbXBvcnQge1xuICBnZXRFeHRlbnNpb25JbnRlcm5hbFN0b3JlLFxuICBFeHRlbnNpb25TbG90U3RhdGUsXG4gIEFzc2lnbmVkRXh0ZW5zaW9uLFxuICBjaGVja1N0YXR1c0ZvcixcbiAgQ29ubmVjdGVkRXh0ZW5zaW9uLFxufSBmcm9tIFwiLlwiO1xuaW1wb3J0IHtcbiAgRXh0ZW5zaW9uUmVnaXN0cmF0aW9uLFxuICBFeHRlbnNpb25TbG90SW5mbyxcbiAgRXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSxcbiAgZ2V0RXh0ZW5zaW9uU3RvcmUsXG4gIHVwZGF0ZUludGVybmFsRXh0ZW5zaW9uU3RvcmUsXG59IGZyb20gXCIuL3N0b3JlXCI7XG5cbmNvbnN0IGV4dGVuc2lvbkludGVybmFsU3RvcmUgPSBnZXRFeHRlbnNpb25JbnRlcm5hbFN0b3JlKCk7XG5jb25zdCBleHRlbnNpb25TdG9yZSA9IGdldEV4dGVuc2lvblN0b3JlKCk7XG5jb25zdCBzbG90c0NvbmZpZ1N0b3JlID0gZ2V0RXh0ZW5zaW9uU2xvdHNDb25maWdTdG9yZSgpO1xuY29uc3QgZXh0ZW5zaW9uc0NvbmZpZ1N0b3JlID0gZ2V0RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlKCk7XG5cbi8vIEtlZXAgdGhlIG91dHB1dCBzdG9yZSB1cGRhdGVkXG5mdW5jdGlvbiB1cGRhdGVFeHRlbnNpb25PdXRwdXRTdG9yZShcbiAgaW50ZXJuYWxTdGF0ZTogRXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSxcbiAgZXh0ZW5zaW9uU2xvdENvbmZpZ3M6IEV4dGVuc2lvblNsb3RzQ29uZmlnU3RvcmUsXG4gIGV4dGVuc2lvbnNDb25maWdTdG9yZTogRXh0ZW5zaW9uc0NvbmZpZ1N0b3JlXG4pIHtcbiAgY29uc3Qgc2xvdHM6IFJlY29yZDxzdHJpbmcsIEV4dGVuc2lvblNsb3RTdGF0ZT4gPSB7fTtcbiAgZm9yIChsZXQgW3Nsb3ROYW1lLCBzbG90XSBvZiBPYmplY3QuZW50cmllcyhpbnRlcm5hbFN0YXRlLnNsb3RzKSkge1xuICAgIGNvbnN0IHsgY29uZmlnIH0gPSBnZXRFeHRlbnNpb25TbG90Q29uZmlnRnJvbVN0b3JlKFxuICAgICAgZXh0ZW5zaW9uU2xvdENvbmZpZ3MsXG4gICAgICBzbG90Lm5hbWVcbiAgICApO1xuICAgIGNvbnN0IGFzc2lnbmVkRXh0ZW5zaW9ucyA9IGdldEFzc2lnbmVkRXh0ZW5zaW9uc0Zyb21TbG90RGF0YShcbiAgICAgIHNsb3ROYW1lLFxuICAgICAgaW50ZXJuYWxTdGF0ZSxcbiAgICAgIGNvbmZpZyxcbiAgICAgIGV4dGVuc2lvbnNDb25maWdTdG9yZVxuICAgICk7XG4gICAgc2xvdHNbc2xvdE5hbWVdID0geyBtb2R1bGVOYW1lOiBzbG90Lm1vZHVsZU5hbWUsIGFzc2lnbmVkRXh0ZW5zaW9ucyB9O1xuICB9XG4gIGlmICghaXNFcXVhbChleHRlbnNpb25TdG9yZS5nZXRTdGF0ZSgpLnNsb3RzLCBzbG90cykpIHtcbiAgICBleHRlbnNpb25TdG9yZS5zZXRTdGF0ZSh7IHNsb3RzIH0pO1xuICB9XG59XG5cbmV4dGVuc2lvbkludGVybmFsU3RvcmUuc3Vic2NyaWJlKChpbnRlcm5hbFN0b3JlKSA9PiB7XG4gIHVwZGF0ZUV4dGVuc2lvbk91dHB1dFN0b3JlKFxuICAgIGludGVybmFsU3RvcmUsXG4gICAgc2xvdHNDb25maWdTdG9yZS5nZXRTdGF0ZSgpLFxuICAgIGV4dGVuc2lvbnNDb25maWdTdG9yZS5nZXRTdGF0ZSgpXG4gICk7XG59KTtcblxuc2xvdHNDb25maWdTdG9yZS5zdWJzY3JpYmUoKHNsb3RDb25maWdzKSA9PiB7XG4gIHVwZGF0ZUV4dGVuc2lvbk91dHB1dFN0b3JlKFxuICAgIGV4dGVuc2lvbkludGVybmFsU3RvcmUuZ2V0U3RhdGUoKSxcbiAgICBzbG90Q29uZmlncyxcbiAgICBleHRlbnNpb25zQ29uZmlnU3RvcmUuZ2V0U3RhdGUoKVxuICApO1xufSk7XG5cbmV4dGVuc2lvbnNDb25maWdTdG9yZS5zdWJzY3JpYmUoKGV4dGVuc2lvbkNvbmZpZ3MpID0+IHtcbiAgdXBkYXRlRXh0ZW5zaW9uT3V0cHV0U3RvcmUoXG4gICAgZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5nZXRTdGF0ZSgpLFxuICAgIHNsb3RzQ29uZmlnU3RvcmUuZ2V0U3RhdGUoKSxcbiAgICBleHRlbnNpb25Db25maWdzXG4gICk7XG59KTtcblxuZnVuY3Rpb24gY3JlYXRlTmV3RXh0ZW5zaW9uU2xvdEluZm8oXG4gIHNsb3ROYW1lOiBzdHJpbmcsXG4gIG1vZHVsZU5hbWU/OiBzdHJpbmdcbik6IEV4dGVuc2lvblNsb3RJbmZvIHtcbiAgcmV0dXJuIHtcbiAgICBtb2R1bGVOYW1lLFxuICAgIG5hbWU6IHNsb3ROYW1lLFxuICAgIGF0dGFjaGVkSWRzOiBbXSxcbiAgICBjb25maWc6IG51bGwsXG4gIH07XG59XG5cbi8qKlxuICogR2l2ZW4gYW4gZXh0ZW5zaW9uIElELCB3aGljaCBpcyBhIHN0cmluZyB1bmlxdWVseSBpZGVudGlmeWluZ1xuICogYW4gaW5zdGFuY2Ugb2YgYW4gZXh0ZW5zaW9uIHdpdGhpbiBhbiBleHRlbnNpb24gc2xvdCwgdGhpc1xuICogcmV0dXJucyB0aGUgZXh0ZW5zaW9uIG5hbWUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGpzXG4gKiBnZXRFeHRlbnNpb25OYW1lRnJvbUlkKFwiZm9vI2JhclwiKVxuICogIC0tPiBcImZvb1wiXG4gKiBnZXRFeHRlbnNpb25OYW1lRnJvbUlkKFwiYmF6XCIpXG4gKiAgLS0+IFwiYmF6XCJcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChleHRlbnNpb25JZDogc3RyaW5nKSB7XG4gIGNvbnN0IFtleHRlbnNpb25OYW1lXSA9IGV4dGVuc2lvbklkLnNwbGl0KFwiI1wiKTtcbiAgcmV0dXJuIGV4dGVuc2lvbk5hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlbnNpb25SZWdpc3RyYXRpb25Gcm9tKFxuICBzdGF0ZTogRXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSxcbiAgZXh0ZW5zaW9uSWQ6IHN0cmluZ1xuKTogRXh0ZW5zaW9uUmVnaXN0cmF0aW9uIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbmFtZSA9IGdldEV4dGVuc2lvbk5hbWVGcm9tSWQoZXh0ZW5zaW9uSWQpO1xuICByZXR1cm4gc3RhdGUuZXh0ZW5zaW9uc1tuYW1lXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVuc2lvblJlZ2lzdHJhdGlvbihcbiAgZXh0ZW5zaW9uSWQ6IHN0cmluZ1xuKTogRXh0ZW5zaW9uUmVnaXN0cmF0aW9uIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3RhdGUgPSBleHRlbnNpb25JbnRlcm5hbFN0b3JlLmdldFN0YXRlKCk7XG4gIHJldHVybiBnZXRFeHRlbnNpb25SZWdpc3RyYXRpb25Gcm9tKHN0YXRlLCBleHRlbnNpb25JZCk7XG59XG5cbi8qKlxuICogRXh0ZW5zaW9ucyBtdXN0IGJlIHJlZ2lzdGVyZWQgaW4gb3JkZXIgdG8gYmUgcmVuZGVyZWQuXG4gKiBUaGlzIGlzIGhhbmRsZWQgYnkgdGhlIGFwcCBzaGVsbCwgd2hlbiBleHRlbnNpb25zIGFyZSBwcm92aWRlZFxuICogdmlhIHRoZSBgc2V0dXBPcGVuTVJTYCByZXR1cm4gb2JqZWN0LlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RlckV4dGVuc2lvbjogKFxuICBleHRlbnNpb25SZWdpc3RyYXRpb246IEV4dGVuc2lvblJlZ2lzdHJhdGlvblxuKSA9PiB2b2lkID0gZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5hY3Rpb24oXG4gIChzdGF0ZSwgZXh0ZW5zaW9uUmVnaXN0cmF0aW9uOiBFeHRlbnNpb25SZWdpc3RyYXRpb24pID0+IHtcbiAgICBzdGF0ZS5leHRlbnNpb25zW2V4dGVuc2lvblJlZ2lzdHJhdGlvbi5uYW1lXSA9IHtcbiAgICAgIC4uLmV4dGVuc2lvblJlZ2lzdHJhdGlvbixcbiAgICAgIGluc3RhbmNlczogW10sXG4gICAgfTtcbiAgfVxuKTtcblxuLyoqXG4gKiBBdHRhY2ggYW4gZXh0ZW5zaW9uIHRvIGFuIGV4dGVuc2lvbiBzbG90LlxuICpcbiAqIFRoaXMgd2lsbCBjYXVzZSB0aGUgZXh0ZW5zaW9uIHRvIGJlIHJlbmRlcmVkIGludG8gdGhlIHNwZWNpZmllZFxuICogZXh0ZW5zaW9uIHNsb3QsIHVubGVzcyBpdCBpcyByZW1vdmVkIGJ5IGNvbmZpZ3VyYXRpb24uIFVzaW5nXG4gKiBgYXR0YWNoYCBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzcGVjaWZ5aW5nIHRoZSBgc2xvdGAgb3IgYHNsb3RzYFxuICogaW4gdGhlIGV4dGVuc2lvbiBkZWNsYXJhdGlvbi5cbiAqXG4gKiBJdCBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gY3JlYXRpbmcgYSBzbG90IGludG8gd2hpY2hcbiAqIHlvdSB3YW50IHRvIHJlbmRlciBhbiBleGlzdGluZyBleHRlbnNpb24uIFRoaXMgZW5hYmxlcyB5b3VcbiAqIHRvIGRvIHNvIHdpdGhvdXQgbW9kaWZ5aW5nIHRoZSBleHRlbnNpb24ncyBkZWNsYXJhdGlvbiwgd2hpY2hcbiAqIG1heSBiZSBpbXByYWN0aWNhbCBvciBpbmFwcHJvcHJpYXRlLCBmb3IgZXhhbXBsZSBpZiB5b3UgYXJlXG4gKiB3cml0aW5nIGEgbW9kdWxlIGZvciBhIHNwZWNpZmljIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIEBwYXJhbSBzbG90TmFtZSBhIG5hbWUgdW5pcXVlbHkgaWRlbnRpZnlpbmcgdGhlIHNsb3RcbiAqIEBwYXJhbSBleHRlbnNpb25JZCBhbiBleHRlbnNpb24gbmFtZSwgd2l0aCBhbiBvcHRpb25hbCAjLXN1ZmZpeFxuICogICAgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbSBvdGhlciBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgZXh0ZW5zaW9uXG4gKiAgICBhdHRhY2hlZCB0byB0aGUgc2FtZSBzbG90LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXR0YWNoKHNsb3ROYW1lOiBzdHJpbmcsIGV4dGVuc2lvbklkOiBzdHJpbmcpIHtcbiAgdXBkYXRlSW50ZXJuYWxFeHRlbnNpb25TdG9yZSgoc3RhdGUpID0+IHtcbiAgICBjb25zdCBleGlzdGluZ1Nsb3QgPSBzdGF0ZS5zbG90c1tzbG90TmFtZV07XG5cbiAgICBpZiAoIWV4aXN0aW5nU2xvdCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNsb3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgICAgW3Nsb3ROYW1lXToge1xuICAgICAgICAgICAgLi4uY3JlYXRlTmV3RXh0ZW5zaW9uU2xvdEluZm8oc2xvdE5hbWUpLFxuICAgICAgICAgICAgYXR0YWNoZWRJZHM6IFtleHRlbnNpb25JZF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzbG90czoge1xuICAgICAgICAgIC4uLnN0YXRlLnNsb3RzLFxuICAgICAgICAgIFtzbG90TmFtZV06IHtcbiAgICAgICAgICAgIC4uLmV4aXN0aW5nU2xvdCxcbiAgICAgICAgICAgIGF0dGFjaGVkSWRzOiBbLi4uZXhpc3RpbmdTbG90LmF0dGFjaGVkSWRzLCBleHRlbnNpb25JZF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbn1cblxuLyoqIEF2b2lkIHVzaW5nIHRoaXMuIEV4dGVuc2lvbiBhdHRhY2htZW50cyBzaG91bGQgYmUgY29uc2lkZXJlZCBkZWNsYXJhdGl2ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXRhY2goZXh0ZW5zaW9uU2xvdE5hbWU6IHN0cmluZywgZXh0ZW5zaW9uSWQ6IHN0cmluZykge1xuICB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlKChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nU2xvdCA9IHN0YXRlLnNsb3RzW2V4dGVuc2lvblNsb3ROYW1lXTtcblxuICAgIGlmIChleGlzdGluZ1Nsb3QgJiYgZXhpc3RpbmdTbG90LmF0dGFjaGVkSWRzLmluY2x1ZGVzKGV4dGVuc2lvbklkKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNsb3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgICAgW2V4dGVuc2lvblNsb3ROYW1lXToge1xuICAgICAgICAgICAgLi4uZXhpc3RpbmdTbG90LFxuICAgICAgICAgICAgYXR0YWNoZWRJZHM6IGV4aXN0aW5nU2xvdC5hdHRhY2hlZElkcy5maWx0ZXIoXG4gICAgICAgICAgICAgIChpZCkgPT4gaWQgIT09IGV4dGVuc2lvbklkXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqIEF2b2lkIHVzaW5nIHRoaXMuIEV4dGVuc2lvbiBhdHRhY2htZW50cyBzaG91bGQgYmUgY29uc2lkZXJlZCBkZWNsYXJhdGl2ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXRhY2hBbGwoZXh0ZW5zaW9uU2xvdE5hbWU6IHN0cmluZykge1xuICB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlKChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nU2xvdCA9IHN0YXRlLnNsb3RzW2V4dGVuc2lvblNsb3ROYW1lXTtcblxuICAgIGlmIChleGlzdGluZ1Nsb3QpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzbG90czoge1xuICAgICAgICAgIC4uLnN0YXRlLnNsb3RzLFxuICAgICAgICAgIFtleHRlbnNpb25TbG90TmFtZV06IHtcbiAgICAgICAgICAgIC4uLmV4aXN0aW5nU2xvdCxcbiAgICAgICAgICAgIGF0dGFjaGVkSWRzOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IGFuIG9yZGVyIGluZGV4IGZvciB0aGUgZXh0ZW5zaW9uLiBUaGlzIHdpbGxcbiAqIGNvbWUgZnJvbSBlaXRoZXIgaXRzIGNvbmZpZ3VyZWQgb3JkZXIsIGl0cyByZWdpc3RlcmVkIG9yZGVyXG4gKiBwYXJhbWV0ZXIsIG9yIHRoZSBvcmRlciBpbiB3aGljaCBpdCBoYXBwZW5lZCB0byBiZSBhdHRhY2hlZC5cbiAqL1xuZnVuY3Rpb24gZ2V0T3JkZXIoXG4gIGV4dGVuc2lvbklkOiBzdHJpbmcsXG4gIGNvbmZpZ3VyZWRPcmRlcjogQXJyYXk8c3RyaW5nPixcbiAgcmVnaXN0ZXJlZE9yZGVySW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgYXR0YWNoZWRPcmRlcjogQXJyYXk8c3RyaW5nPlxuKSB7XG4gIGNvbnN0IGNvbmZpZ3VyZWRJbmRleCA9IGNvbmZpZ3VyZWRPcmRlci5pbmRleE9mKGV4dGVuc2lvbklkKTtcbiAgaWYgKGNvbmZpZ3VyZWRJbmRleCAhPT0gLTEpIHtcbiAgICByZXR1cm4gY29uZmlndXJlZEluZGV4O1xuICB9IGVsc2UgaWYgKHJlZ2lzdGVyZWRPcmRlckluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAvLyBleHRlbnNpb25zIHRoYXQgZG9uJ3QgaGF2ZSBhIGNvbmZpZ3VyZWQgb3JkZXIgc2hvdWxkIGFwcGVhciBhZnRlciB0aG9zZSB0aGF0IGRvXG4gICAgcmV0dXJuIDEwMDAgKyByZWdpc3RlcmVkT3JkZXJJbmRleDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBhc3NpZ25lZEluZGV4ID0gYXR0YWNoZWRPcmRlci5pbmRleE9mKGV4dGVuc2lvbklkKTtcbiAgICBpZiAoYXNzaWduZWRJbmRleCAhPT0gLTEpIHtcbiAgICAgIC8vIGV4dGVuc2lvbnMgdGhhdCBoYXZlIG5laXRoZXIgYSBjb25maWd1cmVkIG5vciByZWdpc3RlcmVkIG9yZGVyIHNob3VsZCBhcHBlYXJcbiAgICAgIC8vIGFmdGVyIGFsbCBvdGhlcnNcbiAgICAgIHJldHVybiAyMDAwICsgYXNzaWduZWRJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEZpbHRlcnMgYSBsaXN0IG9mIGV4dGVuc2lvbnMgYWNjb3JkaW5nIHRvIHdoZXRoZXIgdGhleSBzdXBwb3J0IHRoZVxuICogY3VycmVudCBjb25uZWN0aXZpdHkgc3RhdHVzLlxuICpcbiAqIEBwYXJhbSBhc3NpZ25lZEV4dGVuc2lvbnMgVGhlIGxpc3Qgb2YgZXh0ZW5zaW9ucyB0byBmaWx0ZXIuXG4gKiBAcGFyYW0gb25saW5lIFdoZXRoZXIgdGhlIGFwcCBpcyBjdXJyZW50bHkgb25saW5lLiBJZiBgbnVsbGAsIHVzZXMgYG5hdmlnYXRvci5vbkxpbmVgLlxuICogQHJldHVybnMgQSBsaXN0IG9mIGV4dGVuc2lvbnMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbm5lY3RlZEV4dGVuc2lvbnMoXG4gIGFzc2lnbmVkRXh0ZW5zaW9uczogQXJyYXk8QXNzaWduZWRFeHRlbnNpb24+LFxuICBvbmxpbmU6IGJvb2xlYW4gfCBudWxsID0gbnVsbFxuKTogQXJyYXk8Q29ubmVjdGVkRXh0ZW5zaW9uPiB7XG4gIGNvbnN0IGlzT25saW5lID0gb25saW5lID8/IG5hdmlnYXRvci5vbkxpbmU7XG4gIHJldHVybiBhc3NpZ25lZEV4dGVuc2lvbnMuZmlsdGVyKChlKSA9PlxuICAgIGNoZWNrU3RhdHVzRm9yKGlzT25saW5lLCBlLm9ubGluZSwgZS5vZmZsaW5lKVxuICApO1xufVxuXG5mdW5jdGlvbiBnZXRBc3NpZ25lZEV4dGVuc2lvbnNGcm9tU2xvdERhdGEoXG4gIHNsb3ROYW1lOiBzdHJpbmcsXG4gIGludGVybmFsU3RhdGU6IEV4dGVuc2lvbkludGVybmFsU3RvcmUsXG4gIGNvbmZpZzogRXh0ZW5zaW9uU2xvdENvbmZpZ09iamVjdCxcbiAgZXh0ZW5zaW9uQ29uZmlnU3RvcmVTdGF0ZTogRXh0ZW5zaW9uc0NvbmZpZ1N0b3JlXG4pOiBBcnJheTxBc3NpZ25lZEV4dGVuc2lvbj4ge1xuICBjb25zdCBhdHRhY2hlZElkcyA9IGludGVybmFsU3RhdGUuc2xvdHNbc2xvdE5hbWVdLmF0dGFjaGVkSWRzO1xuICBjb25zdCBhc3NpZ25lZElkcyA9IGNhbGN1bGF0ZUFzc2lnbmVkSWRzKGNvbmZpZywgYXR0YWNoZWRJZHMpO1xuICBjb25zdCBleHRlbnNpb25zOiBBcnJheTxBc3NpZ25lZEV4dGVuc2lvbj4gPSBbXTtcbiAgbGV0IHVzZXI6IExvZ2dlZEluVXNlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBmb3IgKGxldCBpZCBvZiBhc3NpZ25lZElkcykge1xuICAgIGNvbnN0IHsgY29uZmlnOiBleHRlbnNpb25Db25maWcgfSA9IGdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZShcbiAgICAgIGV4dGVuc2lvbkNvbmZpZ1N0b3JlU3RhdGUsXG4gICAgICBzbG90TmFtZSxcbiAgICAgIGlkXG4gICAgKTtcbiAgICBjb25zdCBuYW1lID0gZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChpZCk7XG4gICAgY29uc3QgZXh0ZW5zaW9uID0gaW50ZXJuYWxTdGF0ZS5leHRlbnNpb25zW25hbWVdO1xuICAgIC8vIGlmIHRoZSBleHRlbnNpb24gaGFzIG5vdCBiZWVuIHJlZ2lzdGVyZWQgeWV0LCBkbyBub3QgaW5jbHVkZSBpdFxuICAgIGlmIChleHRlbnNpb24pIHtcbiAgICAgIGNvbnN0IHJlcXVpcmVkUHJpdmlsZWdlcyA9XG4gICAgICAgIGV4dGVuc2lvbkNvbmZpZz8uW1wiRGlzcGxheSBjb25kaXRpb25zXCJdPy5wcml2aWxlZ2VzID8/XG4gICAgICAgIGV4dGVuc2lvbi5wcml2aWxlZ2VzO1xuICAgICAgaWYgKFxuICAgICAgICByZXF1aXJlZFByaXZpbGVnZXMgJiZcbiAgICAgICAgKHR5cGVvZiByZXF1aXJlZFByaXZpbGVnZXMgPT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAoQXJyYXkuaXNBcnJheShyZXF1aXJlZFByaXZpbGVnZXMpICYmIHJlcXVpcmVkUHJpdmlsZWdlcy5sZW5ndGggPiAwKSlcbiAgICAgICkge1xuICAgICAgICBpZiAoaXNVbmRlZmluZWQodXNlcikpIHtcbiAgICAgICAgICB1c2VyID0gZ2V0U2Vzc2lvblN0b3JlKCkuZ2V0U3RhdGUoKS5zZXNzaW9uPy51c2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF1c2VyKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXVzZXJIYXNBY2Nlc3MocmVxdWlyZWRQcml2aWxlZ2VzLCB1c2VyKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGV4dGVuc2lvbnMucHVzaCh7XG4gICAgICAgIGlkLFxuICAgICAgICBuYW1lLFxuICAgICAgICBtb2R1bGVOYW1lOiBleHRlbnNpb24ubW9kdWxlTmFtZSxcbiAgICAgICAgY29uZmlnOiBleHRlbnNpb25Db25maWcsXG4gICAgICAgIG1ldGE6IGV4dGVuc2lvbi5tZXRhLFxuICAgICAgICBvbmxpbmU6IGV4dGVuc2lvbi5vbmxpbmUsXG4gICAgICAgIG9mZmxpbmU6IGV4dGVuc2lvbi5vZmZsaW5lLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV4dGVuc2lvbnM7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgbGlzdCBvZiBleHRlbnNpb25zIGFzc2lnbmVkIHRvIGEgZ2l2ZW4gc2xvdFxuICpcbiAqIEBwYXJhbSBzbG90TmFtZSBUaGUgc2xvdCB0byBsb2FkIHRoZSBhc3NpZ25lZCBleHRlbnNpb25zIGZvclxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgZXh0ZW5zaW9ucyBhc3NpZ25lZCB0byB0aGUgbmFtZWQgc2xvdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXNzaWduZWRFeHRlbnNpb25zKFxuICBzbG90TmFtZTogc3RyaW5nXG4pOiBBcnJheTxBc3NpZ25lZEV4dGVuc2lvbj4ge1xuICBjb25zdCBpbnRlcm5hbFN0YXRlID0gZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5nZXRTdGF0ZSgpO1xuICBjb25zdCB7IGNvbmZpZzogc2xvdENvbmZpZyB9ID0gZ2V0RXh0ZW5zaW9uU2xvdENvbmZpZyhzbG90TmFtZSk7XG4gIGNvbnN0IGV4dGVuc2lvblN0b3JlU3RhdGUgPSBleHRlbnNpb25zQ29uZmlnU3RvcmUuZ2V0U3RhdGUoKTtcbiAgcmV0dXJuIGdldEFzc2lnbmVkRXh0ZW5zaW9uc0Zyb21TbG90RGF0YShcbiAgICBzbG90TmFtZSxcbiAgICBpbnRlcm5hbFN0YXRlLFxuICAgIHNsb3RDb25maWcsXG4gICAgZXh0ZW5zaW9uU3RvcmVTdGF0ZVxuICApO1xufVxuXG5mdW5jdGlvbiBjYWxjdWxhdGVBc3NpZ25lZElkcyhcbiAgY29uZmlnOiBFeHRlbnNpb25TbG90Q29uZmlnT2JqZWN0LFxuICBhdHRhY2hlZElkczogQXJyYXk8c3RyaW5nPlxuKSB7XG4gIGNvbnN0IGFkZGVkSWRzID0gY29uZmlnLmFkZCB8fCBbXTtcbiAgY29uc3QgcmVtb3ZlZElkcyA9IGNvbmZpZy5yZW1vdmUgfHwgW107XG4gIGNvbnN0IGlkT3JkZXIgPSBjb25maWcub3JkZXIgfHwgW107XG4gIGNvbnN0IHsgZXh0ZW5zaW9ucyB9ID0gZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5nZXRTdGF0ZSgpO1xuXG4gIHJldHVybiBbLi4uYXR0YWNoZWRJZHMsIC4uLmFkZGVkSWRzXVxuICAgIC5maWx0ZXIoKGlkKSA9PiAhcmVtb3ZlZElkcy5pbmNsdWRlcyhpZCkpXG4gICAgLnNvcnQoKGlkQSwgaWRCKSA9PiB7XG4gICAgICBjb25zdCBhaSA9IGdldE9yZGVyKFxuICAgICAgICBpZEEsXG4gICAgICAgIGlkT3JkZXIsXG4gICAgICAgIGV4dGVuc2lvbnNbZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChpZEEpXT8ub3JkZXIsXG4gICAgICAgIGF0dGFjaGVkSWRzXG4gICAgICApO1xuICAgICAgY29uc3QgYmkgPSBnZXRPcmRlcihcbiAgICAgICAgaWRCLFxuICAgICAgICBpZE9yZGVyLFxuICAgICAgICBleHRlbnNpb25zW2dldEV4dGVuc2lvbk5hbWVGcm9tSWQoaWRCKV0/Lm9yZGVyLFxuICAgICAgICBhdHRhY2hlZElkc1xuICAgICAgKTtcblxuICAgICAgaWYgKGJpID09PSAtMSkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9IGVsc2UgaWYgKGFpID09PSAtMSkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBhaSAtIGJpO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG4vKipcbiAqIFVzZWQgYnkgYnkgZXh0ZW5zaW9uIHNsb3RzIGF0IG1vdW50IHRpbWUuXG4gKlxuICogQHBhcmFtIG1vZHVsZU5hbWUgVGhlIG5hbWUgb2YgdGhlIG1vZHVsZSB0aGF0IGNvbnRhaW5zIHRoZSBleHRlbnNpb24gc2xvdFxuICogQHBhcmFtIHNsb3ROYW1lIFRoZSBleHRlbnNpb24gc2xvdCBuYW1lIHRoYXQgaXMgYWN0dWFsbHkgdXNlZFxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RlckV4dGVuc2lvblNsb3Q6IChcbiAgbW9kdWxlTmFtZTogc3RyaW5nLFxuICBzbG90TmFtZTogc3RyaW5nXG4pID0+IHZvaWQgPSBleHRlbnNpb25JbnRlcm5hbFN0b3JlLmFjdGlvbigoc3RhdGUsIG1vZHVsZU5hbWUsIHNsb3ROYW1lKSA9PiB7XG4gIGNvbnN0IGV4aXN0aW5nTW9kdWxlTmFtZSA9IHN0YXRlLnNsb3RzW3Nsb3ROYW1lXT8ubW9kdWxlTmFtZTtcbiAgaWYgKGV4aXN0aW5nTW9kdWxlTmFtZSAmJiBleGlzdGluZ01vZHVsZU5hbWUgIT0gbW9kdWxlTmFtZSkge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgIGBBbiBleHRlbnNpb24gc2xvdCB3aXRoIHRoZSBuYW1lICcke3Nsb3ROYW1lfScgYWxyZWFkeSBleGlzdHMuIFJlZnVzaW5nIHRvIHJlZ2lzdGVyIHRoZSBzYW1lIHNsb3QgbmFtZSB0d2ljZSAoaW4gXCJyZWdpc3RlckV4dGVuc2lvblNsb3RcIikuIFRoZSBleGlzdGluZyBvbmUgaXMgZnJvbSBtb2R1bGUgJHtleGlzdGluZ01vZHVsZU5hbWV9LmBcbiAgICApO1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuICBpZiAoZXhpc3RpbmdNb2R1bGVOYW1lICYmIGV4aXN0aW5nTW9kdWxlTmFtZSA9PSBtb2R1bGVOYW1lKSB7XG4gICAgLy8gUmUtcmVuZGVyaW5nIGFuIGV4aXN0aW5nIHNsb3RcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbiAgaWYgKHN0YXRlLnNsb3RzW3Nsb3ROYW1lXSkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHNsb3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLnNsb3RzLFxuICAgICAgICBbc2xvdE5hbWVdOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHNbc2xvdE5hbWVdLFxuICAgICAgICAgIG1vZHVsZU5hbWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbiAgY29uc3Qgc2xvdCA9IGNyZWF0ZU5ld0V4dGVuc2lvblNsb3RJbmZvKHNsb3ROYW1lLCBtb2R1bGVOYW1lKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBzbG90czoge1xuICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICBbc2xvdE5hbWVdOiBzbG90LFxuICAgIH0sXG4gIH07XG59KTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEp1c3QgZm9yIHRlc3RpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCByZXNldDogKCkgPT4gdm9pZCA9IGV4dGVuc2lvblN0b3JlLmFjdGlvbigoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgc2xvdHM6IHt9LFxuICAgIGV4dGVuc2lvbnM6IHt9LFxuICB9O1xufSk7XG4iXSwibmFtZXMiOlsiZ2V0U2Vzc2lvblN0b3JlIiwidXNlckhhc0FjY2VzcyIsImdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZSIsImdldEV4dGVuc2lvbnNDb25maWdTdG9yZSIsImdldEV4dGVuc2lvblNsb3RDb25maWciLCJnZXRFeHRlbnNpb25TbG90Q29uZmlnRnJvbVN0b3JlIiwiZ2V0RXh0ZW5zaW9uU2xvdHNDb25maWdTdG9yZSIsImlzRXF1YWwiLCJpc1VuZGVmaW5lZCIsImdldEV4dGVuc2lvbkludGVybmFsU3RvcmUiLCJjaGVja1N0YXR1c0ZvciIsImdldEV4dGVuc2lvblN0b3JlIiwidXBkYXRlSW50ZXJuYWxFeHRlbnNpb25TdG9yZSIsImV4dGVuc2lvbkludGVybmFsU3RvcmUiLCJleHRlbnNpb25TdG9yZSIsInNsb3RzQ29uZmlnU3RvcmUiLCJleHRlbnNpb25zQ29uZmlnU3RvcmUiLCJ1cGRhdGVFeHRlbnNpb25PdXRwdXRTdG9yZSIsImludGVybmFsU3RhdGUiLCJleHRlbnNpb25TbG90Q29uZmlncyIsInNsb3RzIiwiT2JqZWN0IiwiZW50cmllcyIsInNsb3ROYW1lIiwic2xvdCIsImNvbmZpZyIsIm5hbWUiLCJhc3NpZ25lZEV4dGVuc2lvbnMiLCJnZXRBc3NpZ25lZEV4dGVuc2lvbnNGcm9tU2xvdERhdGEiLCJtb2R1bGVOYW1lIiwiZ2V0U3RhdGUiLCJzZXRTdGF0ZSIsInN1YnNjcmliZSIsImludGVybmFsU3RvcmUiLCJzbG90Q29uZmlncyIsImV4dGVuc2lvbkNvbmZpZ3MiLCJjcmVhdGVOZXdFeHRlbnNpb25TbG90SW5mbyIsImF0dGFjaGVkSWRzIiwiZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZCIsImV4dGVuc2lvbklkIiwic3BsaXQiLCJleHRlbnNpb25OYW1lIiwiZ2V0RXh0ZW5zaW9uUmVnaXN0cmF0aW9uRnJvbSIsInN0YXRlIiwiZXh0ZW5zaW9ucyIsImdldEV4dGVuc2lvblJlZ2lzdHJhdGlvbiIsInJlZ2lzdGVyRXh0ZW5zaW9uIiwiYWN0aW9uIiwiZXh0ZW5zaW9uUmVnaXN0cmF0aW9uIiwiaW5zdGFuY2VzIiwiYXR0YWNoIiwiZXhpc3RpbmdTbG90IiwiZGV0YWNoIiwiZXh0ZW5zaW9uU2xvdE5hbWUiLCJpbmNsdWRlcyIsImZpbHRlciIsImlkIiwiZGV0YWNoQWxsIiwiZ2V0T3JkZXIiLCJjb25maWd1cmVkT3JkZXIiLCJyZWdpc3RlcmVkT3JkZXJJbmRleCIsImF0dGFjaGVkT3JkZXIiLCJjb25maWd1cmVkSW5kZXgiLCJpbmRleE9mIiwidW5kZWZpbmVkIiwiYXNzaWduZWRJbmRleCIsImdldENvbm5lY3RlZEV4dGVuc2lvbnMiLCJvbmxpbmUiLCJpc09ubGluZSIsIm5hdmlnYXRvciIsIm9uTGluZSIsImUiLCJvZmZsaW5lIiwiZXh0ZW5zaW9uQ29uZmlnU3RvcmVTdGF0ZSIsImFzc2lnbmVkSWRzIiwiY2FsY3VsYXRlQXNzaWduZWRJZHMiLCJ1c2VyIiwiZXh0ZW5zaW9uQ29uZmlnIiwiZXh0ZW5zaW9uIiwicmVxdWlyZWRQcml2aWxlZ2VzIiwicHJpdmlsZWdlcyIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsInNlc3Npb24iLCJwdXNoIiwibWV0YSIsImdldEFzc2lnbmVkRXh0ZW5zaW9ucyIsInNsb3RDb25maWciLCJleHRlbnNpb25TdG9yZVN0YXRlIiwiYWRkZWRJZHMiLCJhZGQiLCJyZW1vdmVkSWRzIiwicmVtb3ZlIiwiaWRPcmRlciIsIm9yZGVyIiwic29ydCIsImlkQSIsImlkQiIsImFpIiwiYmkiLCJyZWdpc3RlckV4dGVuc2lvblNsb3QiLCJleGlzdGluZ01vZHVsZU5hbWUiLCJjb25zb2xlIiwid2FybiIsInJlc2V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../framework/esm-extensions/src/extensions.ts\n");
|
|
6766
|
+
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 _arrayLikeToArray(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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _defineProperty(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 _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _iterableToArrayLimit(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 _nonIterableRest() {\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 _nonIterableSpread() {\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 _objectSpread(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 _defineProperty(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 _objectSpreadProps(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 _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(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 _arrayLikeToArray(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 _value = _slicedToArray(_step.value, 2), slotName = _value[0], slot = _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 ref = _slicedToArray(extensionId.split(\"#\"), 1), extensionName = ref[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] = _objectSpreadProps(_objectSpread({}, 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 _objectSpreadProps(_objectSpread({}, state), {\n slots: _objectSpreadProps(_objectSpread({}, state.slots), _defineProperty({}, slotName, _objectSpreadProps(_objectSpread({}, createNewExtensionSlotInfo(slotName)), {\n attachedIds: [\n extensionId\n ]\n })))\n });\n } else {\n return _objectSpreadProps(_objectSpread({}, state), {\n slots: _objectSpreadProps(_objectSpread({}, state.slots), _defineProperty({}, slotName, _objectSpreadProps(_objectSpread({}, existingSlot), {\n attachedIds: _toConsumableArray(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 _objectSpreadProps(_objectSpread({}, state), {\n slots: _objectSpreadProps(_objectSpread({}, state.slots), _defineProperty({}, extensionSlotName, _objectSpreadProps(_objectSpread({}, 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 _objectSpreadProps(_objectSpread({}, state), {\n slots: _objectSpreadProps(_objectSpread({}, state.slots), _defineProperty({}, extensionSlotName, _objectSpreadProps(_objectSpread({}, 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 ref = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionConfigFromStore)(extensionConfigStoreState, slotName, id), extensionConfig = ref.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 ref1;\n var ref2;\n var requiredPrivileges = (ref2 = extensionConfig === null || extensionConfig === void 0 ? void 0 : (ref1 = extensionConfig[\"Display conditions\"]) === null || ref1 === void 0 ? void 0 : ref1.privileges) !== null && ref2 !== void 0 ? ref2 : extension.privileges;\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 ref3;\n user = (ref3 = (0,_openmrs_esm_api__WEBPACK_IMPORTED_MODULE_0__.getSessionStore)().getState().session) === null || ref3 === void 0 ? void 0 : ref3.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 online: extension.online,\n offline: extension.offline\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 ref = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionSlotConfig)(slotName), slotConfig = ref.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 _toConsumableArray(attachedIds).concat(_toConsumableArray(addedIds)).filter(function(id) {\n return !removedIds.includes(id);\n }).sort(function(idA, idB) {\n var ref, ref1;\n var ai = getOrder(idA, idOrder, (ref = extensions[getExtensionNameFromId(idA)]) === null || ref === void 0 ? void 0 : ref.order, attachedIds);\n var bi = getOrder(idB, idOrder, (ref1 = extensions[getExtensionNameFromId(idB)]) === null || ref1 === void 0 ? void 0 : ref1.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 ref;\n var existingModuleName = (ref = state.slots[slotName]) === null || ref === void 0 ? void 0 : ref.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 _objectSpreadProps(_objectSpread({}, state), {\n slots: _objectSpreadProps(_objectSpread({}, state.slots), _defineProperty({}, slotName, _objectSpreadProps(_objectSpread({}, state.slots[slotName]), {\n moduleName: moduleName\n })))\n });\n }\n var slot = createNewExtensionSlotInfo(slotName, moduleName);\n return _objectSpreadProps(_objectSpread({}, state), {\n slots: _objectSpreadProps(_objectSpread({}, state.slots), _defineProperty({}, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1leHRlbnNpb25zL3NyYy9leHRlbnNpb25zLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0NBQWdDLEdBQ2hDOzs7Ozs7O0NBT0MsR0FFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBZ0Y7QUFVbkQ7QUFDVztBQUNRO0FBT3JDO0FBT007QUFFakIsSUFBTWEseUJBQXlCSiw0REFBeUJBO0FBQ3hELElBQU1LLGlCQUFpQkgseURBQWlCQTtBQUN4QyxJQUFNSSxtQkFBbUJULGlGQUE0QkE7QUFDckQsSUFBTVUsd0JBQXdCYiw2RUFBd0JBO0FBRXRELGdDQUFnQztBQUNoQyxTQUFTYywyQkFDUEMsYUFBcUMsRUFDckNDLG9CQUErQyxFQUMvQ0gscUJBQTRDLEVBQzVDO0lBQ0EsSUFBTUksUUFBNEMsQ0FBQztRQUM5Qzs7UUFBTCxRQUFLLFlBQXdCQyxPQUFPQyxPQUFPLENBQUNKLGNBQWNFLEtBQUssc0JBQTFELHdHQUE2RDtZQUE3RCw2Q0FBS0csc0JBQVVDO1lBQ2xCLElBQU0sU0FBYW5CLG9GQUErQkEsQ0FDaERjLHNCQUNBSyxLQUFLRSxJQUFJLEVBRkhEO1lBSVIsSUFBTUUscUJBQXFCQyxrQ0FDekJMLFVBQ0FMLGVBQ0FPLFFBQ0FUO1lBRUZJLEtBQUssQ0FBQ0csU0FBUyxHQUFHO2dCQUFFTSxZQUFZTCxLQUFLSyxVQUFVO2dCQUFFRixvQkFBQUE7WUFBbUI7UUFDdEU7O1FBWks7UUFBQTs7O2lCQUFBO2dCQUFBOzs7Z0JBQUE7c0JBQUE7Ozs7SUFhTCxJQUFJLENBQUNwQiw2REFBT0EsQ0FBQ08sZUFBZWdCLFFBQVEsR0FBR1YsS0FBSyxFQUFFQSxRQUFRO1FBQ3BETixlQUFlaUIsUUFBUSxDQUFDO1lBQUVYLE9BQUFBO1FBQU07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QVVNO1FBQ2xELE9BQU8scUNBQ0ZjO1lBQ0h2QixPQUFPLHFDQUNGdUIsTUFBTXZCLEtBQUssR0FDZCxvQkFBQ0csVUFBV0M7O0lBR2xCO0VBQUc7QUFFTDs7O0NBR0MsR0FDTSxJQUFNZ0YsUUFBb0I7V0FDL0IxRixlQUFlaUIsUUFBUSxDQUFDLFdBQU07UUFDNUIsT0FBTztZQUNMWCxPQUFPLENBQUM7WUFDUndCLFlBQVksQ0FBQztRQUNmO0lBQ0Y7RUFBRyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1leHRlbnNpb25zL3NyYy9leHRlbnNpb25zLnRzPzc1OWEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IEV4dGVuc2lvbiAqL1xuLypcbiAqIFdlIGhhdmUgdGhlIGZvbGxvd2luZyBleHRlbnNpb24gbW9kZXM6XG4gKlxuICogLSBhdHRhY2hlZCAoc2V0IHZpYSBjb2RlIGluIGZvcm0gb2Y6IGF0dGFjaCwgZGV0YWNoLCAuLi4pXG4gKiAtIGNvbmZpZ3VyZWQgKHNldCB2aWEgY29uZmlndXJhdGlvbiBpbiBmb3JtIG9mOiBhZGRlZCwgcmVtb3ZlZCwgLi4uKVxuICogLSBhc3NpZ25lZCAoY29tcHV0ZWQgZnJvbSBhdHRhY2hlZCBhbmQgY29uZmlndXJlZClcbiAqIC0gY29ubmVjdGVkIChjb21wdXRlZCBmcm9tIGFzc2lnbmVkIHVzaW5nIGNvbm5lY3Rpdml0eSBhbmQgb25saW5lIC8gb2ZmbGluZSlcbiAqL1xuXG5pbXBvcnQgeyBnZXRTZXNzaW9uU3RvcmUsIExvZ2dlZEluVXNlciwgdXNlckhhc0FjY2VzcyB9IGZyb20gXCJAb3Blbm1ycy9lc20tYXBpXCI7XG5pbXBvcnQge1xuICBFeHRlbnNpb25zQ29uZmlnU3RvcmUsXG4gIEV4dGVuc2lvblNsb3RDb25maWdPYmplY3QsXG4gIEV4dGVuc2lvblNsb3RzQ29uZmlnU3RvcmUsXG4gIGdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZSxcbiAgZ2V0RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLFxuICBnZXRFeHRlbnNpb25TbG90Q29uZmlnLFxuICBnZXRFeHRlbnNpb25TbG90Q29uZmlnRnJvbVN0b3JlLFxuICBnZXRFeHRlbnNpb25TbG90c0NvbmZpZ1N0b3JlLFxufSBmcm9tIFwiQG9wZW5tcnMvZXNtLWNvbmZpZ1wiO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSBcImxvZGFzaC1lcy9pc0VxdWFsXCI7XG5pbXBvcnQgaXNVbmRlZmluZWQgZnJvbSBcImxvZGFzaC1lcy9pc1VuZGVmaW5lZFwiO1xuaW1wb3J0IHtcbiAgZ2V0RXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSxcbiAgRXh0ZW5zaW9uU2xvdFN0YXRlLFxuICBBc3NpZ25lZEV4dGVuc2lvbixcbiAgY2hlY2tTdGF0dXNGb3IsXG4gIENvbm5lY3RlZEV4dGVuc2lvbixcbn0gZnJvbSBcIi5cIjtcbmltcG9ydCB7XG4gIEV4dGVuc2lvblJlZ2lzdHJhdGlvbixcbiAgRXh0ZW5zaW9uU2xvdEluZm8sXG4gIEV4dGVuc2lvbkludGVybmFsU3RvcmUsXG4gIGdldEV4dGVuc2lvblN0b3JlLFxuICB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlLFxufSBmcm9tIFwiLi9zdG9yZVwiO1xuXG5jb25zdCBleHRlbnNpb25JbnRlcm5hbFN0b3JlID0gZ2V0RXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSgpO1xuY29uc3QgZXh0ZW5zaW9uU3RvcmUgPSBnZXRFeHRlbnNpb25TdG9yZSgpO1xuY29uc3Qgc2xvdHNDb25maWdTdG9yZSA9IGdldEV4dGVuc2lvblNsb3RzQ29uZmlnU3RvcmUoKTtcbmNvbnN0IGV4dGVuc2lvbnNDb25maWdTdG9yZSA9IGdldEV4dGVuc2lvbnNDb25maWdTdG9yZSgpO1xuXG4vLyBLZWVwIHRoZSBvdXRwdXQgc3RvcmUgdXBkYXRlZFxuZnVuY3Rpb24gdXBkYXRlRXh0ZW5zaW9uT3V0cHV0U3RvcmUoXG4gIGludGVybmFsU3RhdGU6IEV4dGVuc2lvbkludGVybmFsU3RvcmUsXG4gIGV4dGVuc2lvblNsb3RDb25maWdzOiBFeHRlbnNpb25TbG90c0NvbmZpZ1N0b3JlLFxuICBleHRlbnNpb25zQ29uZmlnU3RvcmU6IEV4dGVuc2lvbnNDb25maWdTdG9yZVxuKSB7XG4gIGNvbnN0IHNsb3RzOiBSZWNvcmQ8c3RyaW5nLCBFeHRlbnNpb25TbG90U3RhdGU+ID0ge307XG4gIGZvciAobGV0IFtzbG90TmFtZSwgc2xvdF0gb2YgT2JqZWN0LmVudHJpZXMoaW50ZXJuYWxTdGF0ZS5zbG90cykpIHtcbiAgICBjb25zdCB7IGNvbmZpZyB9ID0gZ2V0RXh0ZW5zaW9uU2xvdENvbmZpZ0Zyb21TdG9yZShcbiAgICAgIGV4dGVuc2lvblNsb3RDb25maWdzLFxuICAgICAgc2xvdC5uYW1lXG4gICAgKTtcbiAgICBjb25zdCBhc3NpZ25lZEV4dGVuc2lvbnMgPSBnZXRBc3NpZ25lZEV4dGVuc2lvbnNGcm9tU2xvdERhdGEoXG4gICAgICBzbG90TmFtZSxcbiAgICAgIGludGVybmFsU3RhdGUsXG4gICAgICBjb25maWcsXG4gICAgICBleHRlbnNpb25zQ29uZmlnU3RvcmVcbiAgICApO1xuICAgIHNsb3RzW3Nsb3ROYW1lXSA9IHsgbW9kdWxlTmFtZTogc2xvdC5tb2R1bGVOYW1lLCBhc3NpZ25lZEV4dGVuc2lvbnMgfTtcbiAgfVxuICBpZiAoIWlzRXF1YWwoZXh0ZW5zaW9uU3RvcmUuZ2V0U3RhdGUoKS5zbG90cywgc2xvdHMpKSB7XG4gICAgZXh0ZW5zaW9uU3RvcmUuc2V0U3RhdGUoeyBzbG90cyB9KTtcbiAgfVxufVxuXG5leHRlbnNpb25JbnRlcm5hbFN0b3JlLnN1YnNjcmliZSgoaW50ZXJuYWxTdG9yZSkgPT4ge1xuICB1cGRhdGVFeHRlbnNpb25PdXRwdXRTdG9yZShcbiAgICBpbnRlcm5hbFN0b3JlLFxuICAgIHNsb3RzQ29uZmlnU3RvcmUuZ2V0U3RhdGUoKSxcbiAgICBleHRlbnNpb25zQ29uZmlnU3RvcmUuZ2V0U3RhdGUoKVxuICApO1xufSk7XG5cbnNsb3RzQ29uZmlnU3RvcmUuc3Vic2NyaWJlKChzbG90Q29uZmlncykgPT4ge1xuICB1cGRhdGVFeHRlbnNpb25PdXRwdXRTdG9yZShcbiAgICBleHRlbnNpb25JbnRlcm5hbFN0b3JlLmdldFN0YXRlKCksXG4gICAgc2xvdENvbmZpZ3MsXG4gICAgZXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLmdldFN0YXRlKClcbiAgKTtcbn0pO1xuXG5leHRlbnNpb25zQ29uZmlnU3RvcmUuc3Vic2NyaWJlKChleHRlbnNpb25Db25maWdzKSA9PiB7XG4gIHVwZGF0ZUV4dGVuc2lvbk91dHB1dFN0b3JlKFxuICAgIGV4dGVuc2lvbkludGVybmFsU3RvcmUuZ2V0U3RhdGUoKSxcbiAgICBzbG90c0NvbmZpZ1N0b3JlLmdldFN0YXRlKCksXG4gICAgZXh0ZW5zaW9uQ29uZmlnc1xuICApO1xufSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZU5ld0V4dGVuc2lvblNsb3RJbmZvKFxuICBzbG90TmFtZTogc3RyaW5nLFxuICBtb2R1bGVOYW1lPzogc3RyaW5nXG4pOiBFeHRlbnNpb25TbG90SW5mbyB7XG4gIHJldHVybiB7XG4gICAgbW9kdWxlTmFtZSxcbiAgICBuYW1lOiBzbG90TmFtZSxcbiAgICBhdHRhY2hlZElkczogW10sXG4gICAgY29uZmlnOiBudWxsLFxuICB9O1xufVxuXG4vKipcbiAqIEdpdmVuIGFuIGV4dGVuc2lvbiBJRCwgd2hpY2ggaXMgYSBzdHJpbmcgdW5pcXVlbHkgaWRlbnRpZnlpbmdcbiAqIGFuIGluc3RhbmNlIG9mIGFuIGV4dGVuc2lvbiB3aXRoaW4gYW4gZXh0ZW5zaW9uIHNsb3QsIHRoaXNcbiAqIHJldHVybnMgdGhlIGV4dGVuc2lvbiBuYW1lLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBqc1xuICogZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChcImZvbyNiYXJcIilcbiAqICAtLT4gXCJmb29cIlxuICogZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChcImJhelwiKVxuICogIC0tPiBcImJhelwiXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVuc2lvbk5hbWVGcm9tSWQoZXh0ZW5zaW9uSWQ6IHN0cmluZykge1xuICBjb25zdCBbZXh0ZW5zaW9uTmFtZV0gPSBleHRlbnNpb25JZC5zcGxpdChcIiNcIik7XG4gIHJldHVybiBleHRlbnNpb25OYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXh0ZW5zaW9uUmVnaXN0cmF0aW9uRnJvbShcbiAgc3RhdGU6IEV4dGVuc2lvbkludGVybmFsU3RvcmUsXG4gIGV4dGVuc2lvbklkOiBzdHJpbmdcbik6IEV4dGVuc2lvblJlZ2lzdHJhdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IG5hbWUgPSBnZXRFeHRlbnNpb25OYW1lRnJvbUlkKGV4dGVuc2lvbklkKTtcbiAgcmV0dXJuIHN0YXRlLmV4dGVuc2lvbnNbbmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHRlbnNpb25SZWdpc3RyYXRpb24oXG4gIGV4dGVuc2lvbklkOiBzdHJpbmdcbik6IEV4dGVuc2lvblJlZ2lzdHJhdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHN0YXRlID0gZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5nZXRTdGF0ZSgpO1xuICByZXR1cm4gZ2V0RXh0ZW5zaW9uUmVnaXN0cmF0aW9uRnJvbShzdGF0ZSwgZXh0ZW5zaW9uSWQpO1xufVxuXG4vKipcbiAqIEV4dGVuc2lvbnMgbXVzdCBiZSByZWdpc3RlcmVkIGluIG9yZGVyIHRvIGJlIHJlbmRlcmVkLlxuICogVGhpcyBpcyBoYW5kbGVkIGJ5IHRoZSBhcHAgc2hlbGwsIHdoZW4gZXh0ZW5zaW9ucyBhcmUgcHJvdmlkZWRcbiAqIHZpYSB0aGUgYHNldHVwT3Blbk1SU2AgcmV0dXJuIG9iamVjdC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJFeHRlbnNpb246IChcbiAgZXh0ZW5zaW9uUmVnaXN0cmF0aW9uOiBFeHRlbnNpb25SZWdpc3RyYXRpb25cbikgPT4gdm9pZCA9IChleHRlbnNpb25SZWdpc3RyYXRpb24pID0+XG4gIGV4dGVuc2lvbkludGVybmFsU3RvcmUuc2V0U3RhdGUoKHN0YXRlKSA9PiB7XG4gICAgc3RhdGUuZXh0ZW5zaW9uc1tleHRlbnNpb25SZWdpc3RyYXRpb24ubmFtZV0gPSB7XG4gICAgICAuLi5leHRlbnNpb25SZWdpc3RyYXRpb24sXG4gICAgICBpbnN0YW5jZXM6IFtdLFxuICAgIH07XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9KTtcblxuLyoqXG4gKiBBdHRhY2ggYW4gZXh0ZW5zaW9uIHRvIGFuIGV4dGVuc2lvbiBzbG90LlxuICpcbiAqIFRoaXMgd2lsbCBjYXVzZSB0aGUgZXh0ZW5zaW9uIHRvIGJlIHJlbmRlcmVkIGludG8gdGhlIHNwZWNpZmllZFxuICogZXh0ZW5zaW9uIHNsb3QsIHVubGVzcyBpdCBpcyByZW1vdmVkIGJ5IGNvbmZpZ3VyYXRpb24uIFVzaW5nXG4gKiBgYXR0YWNoYCBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzcGVjaWZ5aW5nIHRoZSBgc2xvdGAgb3IgYHNsb3RzYFxuICogaW4gdGhlIGV4dGVuc2lvbiBkZWNsYXJhdGlvbi5cbiAqXG4gKiBJdCBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gY3JlYXRpbmcgYSBzbG90IGludG8gd2hpY2hcbiAqIHlvdSB3YW50IHRvIHJlbmRlciBhbiBleGlzdGluZyBleHRlbnNpb24uIFRoaXMgZW5hYmxlcyB5b3VcbiAqIHRvIGRvIHNvIHdpdGhvdXQgbW9kaWZ5aW5nIHRoZSBleHRlbnNpb24ncyBkZWNsYXJhdGlvbiwgd2hpY2hcbiAqIG1heSBiZSBpbXByYWN0aWNhbCBvciBpbmFwcHJvcHJpYXRlLCBmb3IgZXhhbXBsZSBpZiB5b3UgYXJlXG4gKiB3cml0aW5nIGEgbW9kdWxlIGZvciBhIHNwZWNpZmljIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIEBwYXJhbSBzbG90TmFtZSBhIG5hbWUgdW5pcXVlbHkgaWRlbnRpZnlpbmcgdGhlIHNsb3RcbiAqIEBwYXJhbSBleHRlbnNpb25JZCBhbiBleHRlbnNpb24gbmFtZSwgd2l0aCBhbiBvcHRpb25hbCAjLXN1ZmZpeFxuICogICAgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbSBvdGhlciBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgZXh0ZW5zaW9uXG4gKiAgICBhdHRhY2hlZCB0byB0aGUgc2FtZSBzbG90LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXR0YWNoKHNsb3ROYW1lOiBzdHJpbmcsIGV4dGVuc2lvbklkOiBzdHJpbmcpIHtcbiAgdXBkYXRlSW50ZXJuYWxFeHRlbnNpb25TdG9yZSgoc3RhdGUpID0+IHtcbiAgICBjb25zdCBleGlzdGluZ1Nsb3QgPSBzdGF0ZS5zbG90c1tzbG90TmFtZV07XG5cbiAgICBpZiAoIWV4aXN0aW5nU2xvdCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNsb3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgICAgW3Nsb3ROYW1lXToge1xuICAgICAgICAgICAgLi4uY3JlYXRlTmV3RXh0ZW5zaW9uU2xvdEluZm8oc2xvdE5hbWUpLFxuICAgICAgICAgICAgYXR0YWNoZWRJZHM6IFtleHRlbnNpb25JZF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzbG90czoge1xuICAgICAgICAgIC4uLnN0YXRlLnNsb3RzLFxuICAgICAgICAgIFtzbG90TmFtZV06IHtcbiAgICAgICAgICAgIC4uLmV4aXN0aW5nU2xvdCxcbiAgICAgICAgICAgIGF0dGFjaGVkSWRzOiBbLi4uZXhpc3RpbmdTbG90LmF0dGFjaGVkSWRzLCBleHRlbnNpb25JZF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbn1cblxuLyoqIEF2b2lkIHVzaW5nIHRoaXMuIEV4dGVuc2lvbiBhdHRhY2htZW50cyBzaG91bGQgYmUgY29uc2lkZXJlZCBkZWNsYXJhdGl2ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXRhY2goZXh0ZW5zaW9uU2xvdE5hbWU6IHN0cmluZywgZXh0ZW5zaW9uSWQ6IHN0cmluZykge1xuICB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlKChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nU2xvdCA9IHN0YXRlLnNsb3RzW2V4dGVuc2lvblNsb3ROYW1lXTtcblxuICAgIGlmIChleGlzdGluZ1Nsb3QgJiYgZXhpc3RpbmdTbG90LmF0dGFjaGVkSWRzLmluY2x1ZGVzKGV4dGVuc2lvbklkKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNsb3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgICAgW2V4dGVuc2lvblNsb3ROYW1lXToge1xuICAgICAgICAgICAgLi4uZXhpc3RpbmdTbG90LFxuICAgICAgICAgICAgYXR0YWNoZWRJZHM6IGV4aXN0aW5nU2xvdC5hdHRhY2hlZElkcy5maWx0ZXIoXG4gICAgICAgICAgICAgIChpZCkgPT4gaWQgIT09IGV4dGVuc2lvbklkXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqIEF2b2lkIHVzaW5nIHRoaXMuIEV4dGVuc2lvbiBhdHRhY2htZW50cyBzaG91bGQgYmUgY29uc2lkZXJlZCBkZWNsYXJhdGl2ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXRhY2hBbGwoZXh0ZW5zaW9uU2xvdE5hbWU6IHN0cmluZykge1xuICB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlKChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nU2xvdCA9IHN0YXRlLnNsb3RzW2V4dGVuc2lvblNsb3ROYW1lXTtcblxuICAgIGlmIChleGlzdGluZ1Nsb3QpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzbG90czoge1xuICAgICAgICAgIC4uLnN0YXRlLnNsb3RzLFxuICAgICAgICAgIFtleHRlbnNpb25TbG90TmFtZV06IHtcbiAgICAgICAgICAgIC4uLmV4aXN0aW5nU2xvdCxcbiAgICAgICAgICAgIGF0dGFjaGVkSWRzOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IGFuIG9yZGVyIGluZGV4IGZvciB0aGUgZXh0ZW5zaW9uLiBUaGlzIHdpbGxcbiAqIGNvbWUgZnJvbSBlaXRoZXIgaXRzIGNvbmZpZ3VyZWQgb3JkZXIsIGl0cyByZWdpc3RlcmVkIG9yZGVyXG4gKiBwYXJhbWV0ZXIsIG9yIHRoZSBvcmRlciBpbiB3aGljaCBpdCBoYXBwZW5lZCB0byBiZSBhdHRhY2hlZC5cbiAqL1xuZnVuY3Rpb24gZ2V0T3JkZXIoXG4gIGV4dGVuc2lvbklkOiBzdHJpbmcsXG4gIGNvbmZpZ3VyZWRPcmRlcjogQXJyYXk8c3RyaW5nPixcbiAgcmVnaXN0ZXJlZE9yZGVySW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgYXR0YWNoZWRPcmRlcjogQXJyYXk8c3RyaW5nPlxuKSB7XG4gIGNvbnN0IGNvbmZpZ3VyZWRJbmRleCA9IGNvbmZpZ3VyZWRPcmRlci5pbmRleE9mKGV4dGVuc2lvbklkKTtcbiAgaWYgKGNvbmZpZ3VyZWRJbmRleCAhPT0gLTEpIHtcbiAgICByZXR1cm4gY29uZmlndXJlZEluZGV4O1xuICB9IGVsc2UgaWYgKHJlZ2lzdGVyZWRPcmRlckluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAvLyBleHRlbnNpb25zIHRoYXQgZG9uJ3QgaGF2ZSBhIGNvbmZpZ3VyZWQgb3JkZXIgc2hvdWxkIGFwcGVhciBhZnRlciB0aG9zZSB0aGF0IGRvXG4gICAgcmV0dXJuIDEwMDAgKyByZWdpc3RlcmVkT3JkZXJJbmRleDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBhc3NpZ25lZEluZGV4ID0gYXR0YWNoZWRPcmRlci5pbmRleE9mKGV4dGVuc2lvbklkKTtcbiAgICBpZiAoYXNzaWduZWRJbmRleCAhPT0gLTEpIHtcbiAgICAgIC8vIGV4dGVuc2lvbnMgdGhhdCBoYXZlIG5laXRoZXIgYSBjb25maWd1cmVkIG5vciByZWdpc3RlcmVkIG9yZGVyIHNob3VsZCBhcHBlYXJcbiAgICAgIC8vIGFmdGVyIGFsbCBvdGhlcnNcbiAgICAgIHJldHVybiAyMDAwICsgYXNzaWduZWRJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEZpbHRlcnMgYSBsaXN0IG9mIGV4dGVuc2lvbnMgYWNjb3JkaW5nIHRvIHdoZXRoZXIgdGhleSBzdXBwb3J0IHRoZVxuICogY3VycmVudCBjb25uZWN0aXZpdHkgc3RhdHVzLlxuICpcbiAqIEBwYXJhbSBhc3NpZ25lZEV4dGVuc2lvbnMgVGhlIGxpc3Qgb2YgZXh0ZW5zaW9ucyB0byBmaWx0ZXIuXG4gKiBAcGFyYW0gb25saW5lIFdoZXRoZXIgdGhlIGFwcCBpcyBjdXJyZW50bHkgb25saW5lLiBJZiBgbnVsbGAsIHVzZXMgYG5hdmlnYXRvci5vbkxpbmVgLlxuICogQHJldHVybnMgQSBsaXN0IG9mIGV4dGVuc2lvbnMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbm5lY3RlZEV4dGVuc2lvbnMoXG4gIGFzc2lnbmVkRXh0ZW5zaW9uczogQXJyYXk8QXNzaWduZWRFeHRlbnNpb24+LFxuICBvbmxpbmU6IGJvb2xlYW4gfCBudWxsID0gbnVsbFxuKTogQXJyYXk8Q29ubmVjdGVkRXh0ZW5zaW9uPiB7XG4gIGNvbnN0IGlzT25saW5lID0gb25saW5lID8/IG5hdmlnYXRvci5vbkxpbmU7XG4gIHJldHVybiBhc3NpZ25lZEV4dGVuc2lvbnMuZmlsdGVyKChlKSA9PlxuICAgIGNoZWNrU3RhdHVzRm9yKGlzT25saW5lLCBlLm9ubGluZSwgZS5vZmZsaW5lKVxuICApO1xufVxuXG5mdW5jdGlvbiBnZXRBc3NpZ25lZEV4dGVuc2lvbnNGcm9tU2xvdERhdGEoXG4gIHNsb3ROYW1lOiBzdHJpbmcsXG4gIGludGVybmFsU3RhdGU6IEV4dGVuc2lvbkludGVybmFsU3RvcmUsXG4gIGNvbmZpZzogRXh0ZW5zaW9uU2xvdENvbmZpZ09iamVjdCxcbiAgZXh0ZW5zaW9uQ29uZmlnU3RvcmVTdGF0ZTogRXh0ZW5zaW9uc0NvbmZpZ1N0b3JlXG4pOiBBcnJheTxBc3NpZ25lZEV4dGVuc2lvbj4ge1xuICBjb25zdCBhdHRhY2hlZElkcyA9IGludGVybmFsU3RhdGUuc2xvdHNbc2xvdE5hbWVdLmF0dGFjaGVkSWRzO1xuICBjb25zdCBhc3NpZ25lZElkcyA9IGNhbGN1bGF0ZUFzc2lnbmVkSWRzKGNvbmZpZywgYXR0YWNoZWRJZHMpO1xuICBjb25zdCBleHRlbnNpb25zOiBBcnJheTxBc3NpZ25lZEV4dGVuc2lvbj4gPSBbXTtcbiAgbGV0IHVzZXI6IExvZ2dlZEluVXNlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBmb3IgKGxldCBpZCBvZiBhc3NpZ25lZElkcykge1xuICAgIGNvbnN0IHsgY29uZmlnOiBleHRlbnNpb25Db25maWcgfSA9IGdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZShcbiAgICAgIGV4dGVuc2lvbkNvbmZpZ1N0b3JlU3RhdGUsXG4gICAgICBzbG90TmFtZSxcbiAgICAgIGlkXG4gICAgKTtcbiAgICBjb25zdCBuYW1lID0gZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChpZCk7XG4gICAgY29uc3QgZXh0ZW5zaW9uID0gaW50ZXJuYWxTdGF0ZS5leHRlbnNpb25zW25hbWVdO1xuICAgIC8vIGlmIHRoZSBleHRlbnNpb24gaGFzIG5vdCBiZWVuIHJlZ2lzdGVyZWQgeWV0LCBkbyBub3QgaW5jbHVkZSBpdFxuICAgIGlmIChleHRlbnNpb24pIHtcbiAgICAgIGNvbnN0IHJlcXVpcmVkUHJpdmlsZWdlcyA9XG4gICAgICAgIGV4dGVuc2lvbkNvbmZpZz8uW1wiRGlzcGxheSBjb25kaXRpb25zXCJdPy5wcml2aWxlZ2VzID8/XG4gICAgICAgIGV4dGVuc2lvbi5wcml2aWxlZ2VzO1xuICAgICAgaWYgKFxuICAgICAgICByZXF1aXJlZFByaXZpbGVnZXMgJiZcbiAgICAgICAgKHR5cGVvZiByZXF1aXJlZFByaXZpbGVnZXMgPT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAoQXJyYXkuaXNBcnJheShyZXF1aXJlZFByaXZpbGVnZXMpICYmIHJlcXVpcmVkUHJpdmlsZWdlcy5sZW5ndGggPiAwKSlcbiAgICAgICkge1xuICAgICAgICBpZiAoaXNVbmRlZmluZWQodXNlcikpIHtcbiAgICAgICAgICB1c2VyID0gZ2V0U2Vzc2lvblN0b3JlKCkuZ2V0U3RhdGUoKS5zZXNzaW9uPy51c2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF1c2VyKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXVzZXJIYXNBY2Nlc3MocmVxdWlyZWRQcml2aWxlZ2VzLCB1c2VyKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGV4dGVuc2lvbnMucHVzaCh7XG4gICAgICAgIGlkLFxuICAgICAgICBuYW1lLFxuICAgICAgICBtb2R1bGVOYW1lOiBleHRlbnNpb24ubW9kdWxlTmFtZSxcbiAgICAgICAgY29uZmlnOiBleHRlbnNpb25Db25maWcsXG4gICAgICAgIG1ldGE6IGV4dGVuc2lvbi5tZXRhLFxuICAgICAgICBvbmxpbmU6IGV4dGVuc2lvbi5vbmxpbmUsXG4gICAgICAgIG9mZmxpbmU6IGV4dGVuc2lvbi5vZmZsaW5lLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV4dGVuc2lvbnM7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgbGlzdCBvZiBleHRlbnNpb25zIGFzc2lnbmVkIHRvIGEgZ2l2ZW4gc2xvdFxuICpcbiAqIEBwYXJhbSBzbG90TmFtZSBUaGUgc2xvdCB0byBsb2FkIHRoZSBhc3NpZ25lZCBleHRlbnNpb25zIGZvclxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgZXh0ZW5zaW9ucyBhc3NpZ25lZCB0byB0aGUgbmFtZWQgc2xvdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXNzaWduZWRFeHRlbnNpb25zKFxuICBzbG90TmFtZTogc3RyaW5nXG4pOiBBcnJheTxBc3NpZ25lZEV4dGVuc2lvbj4ge1xuICBjb25zdCBpbnRlcm5hbFN0YXRlID0gZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5nZXRTdGF0ZSgpO1xuICBjb25zdCB7IGNvbmZpZzogc2xvdENvbmZpZyB9ID0gZ2V0RXh0ZW5zaW9uU2xvdENvbmZpZyhzbG90TmFtZSk7XG4gIGNvbnN0IGV4dGVuc2lvblN0b3JlU3RhdGUgPSBleHRlbnNpb25zQ29uZmlnU3RvcmUuZ2V0U3RhdGUoKTtcbiAgcmV0dXJuIGdldEFzc2lnbmVkRXh0ZW5zaW9uc0Zyb21TbG90RGF0YShcbiAgICBzbG90TmFtZSxcbiAgICBpbnRlcm5hbFN0YXRlLFxuICAgIHNsb3RDb25maWcsXG4gICAgZXh0ZW5zaW9uU3RvcmVTdGF0ZVxuICApO1xufVxuXG5mdW5jdGlvbiBjYWxjdWxhdGVBc3NpZ25lZElkcyhcbiAgY29uZmlnOiBFeHRlbnNpb25TbG90Q29uZmlnT2JqZWN0LFxuICBhdHRhY2hlZElkczogQXJyYXk8c3RyaW5nPlxuKSB7XG4gIGNvbnN0IGFkZGVkSWRzID0gY29uZmlnLmFkZCB8fCBbXTtcbiAgY29uc3QgcmVtb3ZlZElkcyA9IGNvbmZpZy5yZW1vdmUgfHwgW107XG4gIGNvbnN0IGlkT3JkZXIgPSBjb25maWcub3JkZXIgfHwgW107XG4gIGNvbnN0IHsgZXh0ZW5zaW9ucyB9ID0gZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5nZXRTdGF0ZSgpO1xuXG4gIHJldHVybiBbLi4uYXR0YWNoZWRJZHMsIC4uLmFkZGVkSWRzXVxuICAgIC5maWx0ZXIoKGlkKSA9PiAhcmVtb3ZlZElkcy5pbmNsdWRlcyhpZCkpXG4gICAgLnNvcnQoKGlkQSwgaWRCKSA9PiB7XG4gICAgICBjb25zdCBhaSA9IGdldE9yZGVyKFxuICAgICAgICBpZEEsXG4gICAgICAgIGlkT3JkZXIsXG4gICAgICAgIGV4dGVuc2lvbnNbZ2V0RXh0ZW5zaW9uTmFtZUZyb21JZChpZEEpXT8ub3JkZXIsXG4gICAgICAgIGF0dGFjaGVkSWRzXG4gICAgICApO1xuICAgICAgY29uc3QgYmkgPSBnZXRPcmRlcihcbiAgICAgICAgaWRCLFxuICAgICAgICBpZE9yZGVyLFxuICAgICAgICBleHRlbnNpb25zW2dldEV4dGVuc2lvbk5hbWVGcm9tSWQoaWRCKV0/Lm9yZGVyLFxuICAgICAgICBhdHRhY2hlZElkc1xuICAgICAgKTtcblxuICAgICAgaWYgKGJpID09PSAtMSkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgICB9IGVsc2UgaWYgKGFpID09PSAtMSkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBhaSAtIGJpO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG4vKipcbiAqIFVzZWQgYnkgYnkgZXh0ZW5zaW9uIHNsb3RzIGF0IG1vdW50IHRpbWUuXG4gKlxuICogQHBhcmFtIG1vZHVsZU5hbWUgVGhlIG5hbWUgb2YgdGhlIG1vZHVsZSB0aGF0IGNvbnRhaW5zIHRoZSBleHRlbnNpb24gc2xvdFxuICogQHBhcmFtIHNsb3ROYW1lIFRoZSBleHRlbnNpb24gc2xvdCBuYW1lIHRoYXQgaXMgYWN0dWFsbHkgdXNlZFxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RlckV4dGVuc2lvblNsb3Q6IChcbiAgbW9kdWxlTmFtZTogc3RyaW5nLFxuICBzbG90TmFtZTogc3RyaW5nXG4pID0+IHZvaWQgPSAobW9kdWxlTmFtZSwgc2xvdE5hbWUpID0+XG4gIGV4dGVuc2lvbkludGVybmFsU3RvcmUuc2V0U3RhdGUoKHN0YXRlKSA9PiB7XG4gICAgY29uc3QgZXhpc3RpbmdNb2R1bGVOYW1lID0gc3RhdGUuc2xvdHNbc2xvdE5hbWVdPy5tb2R1bGVOYW1lO1xuICAgIGlmIChleGlzdGluZ01vZHVsZU5hbWUgJiYgZXhpc3RpbmdNb2R1bGVOYW1lICE9IG1vZHVsZU5hbWUpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYEFuIGV4dGVuc2lvbiBzbG90IHdpdGggdGhlIG5hbWUgJyR7c2xvdE5hbWV9JyBhbHJlYWR5IGV4aXN0cy4gUmVmdXNpbmcgdG8gcmVnaXN0ZXIgdGhlIHNhbWUgc2xvdCBuYW1lIHR3aWNlIChpbiBcInJlZ2lzdGVyRXh0ZW5zaW9uU2xvdFwiKS4gVGhlIGV4aXN0aW5nIG9uZSBpcyBmcm9tIG1vZHVsZSAke2V4aXN0aW5nTW9kdWxlTmFtZX0uYFxuICAgICAgKTtcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gICAgaWYgKGV4aXN0aW5nTW9kdWxlTmFtZSAmJiBleGlzdGluZ01vZHVsZU5hbWUgPT0gbW9kdWxlTmFtZSkge1xuICAgICAgLy8gUmUtcmVuZGVyaW5nIGFuIGV4aXN0aW5nIHNsb3RcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gICAgaWYgKHN0YXRlLnNsb3RzW3Nsb3ROYW1lXSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHNsb3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuc2xvdHMsXG4gICAgICAgICAgW3Nsb3ROYW1lXToge1xuICAgICAgICAgICAgLi4uc3RhdGUuc2xvdHNbc2xvdE5hbWVdLFxuICAgICAgICAgICAgbW9kdWxlTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3Qgc2xvdCA9IGNyZWF0ZU5ld0V4dGVuc2lvblNsb3RJbmZvKHNsb3ROYW1lLCBtb2R1bGVOYW1lKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBzbG90czoge1xuICAgICAgICAuLi5zdGF0ZS5zbG90cyxcbiAgICAgICAgW3Nsb3ROYW1lXTogc2xvdCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBKdXN0IGZvciB0ZXN0aW5nLlxuICovXG5leHBvcnQgY29uc3QgcmVzZXQ6ICgpID0+IHZvaWQgPSAoKSA9PlxuICBleHRlbnNpb25TdG9yZS5zZXRTdGF0ZSgoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNsb3RzOiB7fSxcbiAgICAgIGV4dGVuc2lvbnM6IHt9LFxuICAgIH07XG4gIH0pO1xuIl0sIm5hbWVzIjpbImdldFNlc3Npb25TdG9yZSIsInVzZXJIYXNBY2Nlc3MiLCJnZXRFeHRlbnNpb25Db25maWdGcm9tU3RvcmUiLCJnZXRFeHRlbnNpb25zQ29uZmlnU3RvcmUiLCJnZXRFeHRlbnNpb25TbG90Q29uZmlnIiwiZ2V0RXh0ZW5zaW9uU2xvdENvbmZpZ0Zyb21TdG9yZSIsImdldEV4dGVuc2lvblNsb3RzQ29uZmlnU3RvcmUiLCJpc0VxdWFsIiwiaXNVbmRlZmluZWQiLCJnZXRFeHRlbnNpb25JbnRlcm5hbFN0b3JlIiwiY2hlY2tTdGF0dXNGb3IiLCJnZXRFeHRlbnNpb25TdG9yZSIsInVwZGF0ZUludGVybmFsRXh0ZW5zaW9uU3RvcmUiLCJleHRlbnNpb25JbnRlcm5hbFN0b3JlIiwiZXh0ZW5zaW9uU3RvcmUiLCJzbG90c0NvbmZpZ1N0b3JlIiwiZXh0ZW5zaW9uc0NvbmZpZ1N0b3JlIiwidXBkYXRlRXh0ZW5zaW9uT3V0cHV0U3RvcmUiLCJpbnRlcm5hbFN0YXRlIiwiZXh0ZW5zaW9uU2xvdENvbmZpZ3MiLCJzbG90cyIsIk9iamVjdCIsImVudHJpZXMiLCJzbG90TmFtZSIsInNsb3QiLCJjb25maWciLCJuYW1lIiwiYXNzaWduZWRFeHRlbnNpb25zIiwiZ2V0QXNzaWduZWRFeHRlbnNpb25zRnJvbVNsb3REYXRhIiwibW9kdWxlTmFtZSIsImdldFN0YXRlIiwic2V0U3RhdGUiLCJzdWJzY3JpYmUiLCJpbnRlcm5hbFN0b3JlIiwic2xvdENvbmZpZ3MiLCJleHRlbnNpb25Db25maWdzIiwiY3JlYXRlTmV3RXh0ZW5zaW9uU2xvdEluZm8iLCJhdHRhY2hlZElkcyIsImdldEV4dGVuc2lvbk5hbWVGcm9tSWQiLCJleHRlbnNpb25JZCIsInNwbGl0IiwiZXh0ZW5zaW9uTmFtZSIsImdldEV4dGVuc2lvblJlZ2lzdHJhdGlvbkZyb20iLCJzdGF0ZSIsImV4dGVuc2lvbnMiLCJnZXRFeHRlbnNpb25SZWdpc3RyYXRpb24iLCJyZWdpc3RlckV4dGVuc2lvbiIsImV4dGVuc2lvblJlZ2lzdHJhdGlvbiIsImluc3RhbmNlcyIsImF0dGFjaCIsImV4aXN0aW5nU2xvdCIsImRldGFjaCIsImV4dGVuc2lvblNsb3ROYW1lIiwiaW5jbHVkZXMiLCJmaWx0ZXIiLCJpZCIsImRldGFjaEFsbCIsImdldE9yZGVyIiwiY29uZmlndXJlZE9yZGVyIiwicmVnaXN0ZXJlZE9yZGVySW5kZXgiLCJhdHRhY2hlZE9yZGVyIiwiY29uZmlndXJlZEluZGV4IiwiaW5kZXhPZiIsInVuZGVmaW5lZCIsImFzc2lnbmVkSW5kZXgiLCJnZXRDb25uZWN0ZWRFeHRlbnNpb25zIiwib25saW5lIiwiaXNPbmxpbmUiLCJuYXZpZ2F0b3IiLCJvbkxpbmUiLCJlIiwib2ZmbGluZSIsImV4dGVuc2lvbkNvbmZpZ1N0b3JlU3RhdGUiLCJhc3NpZ25lZElkcyIsImNhbGN1bGF0ZUFzc2lnbmVkSWRzIiwidXNlciIsImV4dGVuc2lvbkNvbmZpZyIsImV4dGVuc2lvbiIsInJlcXVpcmVkUHJpdmlsZWdlcyIsInByaXZpbGVnZXMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJzZXNzaW9uIiwicHVzaCIsIm1ldGEiLCJnZXRBc3NpZ25lZEV4dGVuc2lvbnMiLCJzbG90Q29uZmlnIiwiZXh0ZW5zaW9uU3RvcmVTdGF0ZSIsImFkZGVkSWRzIiwiYWRkIiwicmVtb3ZlZElkcyIsInJlbW92ZSIsImlkT3JkZXIiLCJvcmRlciIsInNvcnQiLCJpZEEiLCJpZEIiLCJhaSIsImJpIiwicmVnaXN0ZXJFeHRlbnNpb25TbG90IiwiZXhpc3RpbmdNb2R1bGVOYW1lIiwiY29uc29sZSIsIndhcm4iLCJyZXNldCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-extensions/src/extensions.ts\n");
|
|
6778
6767
|
|
|
6779
6768
|
/***/ }),
|
|
6780
6769
|
|
|
@@ -6829,7 +6818,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
6829
6818
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6830
6819
|
|
|
6831
6820
|
"use strict";
|
|
6832
|
-
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](https://github.com/developit/unistore#store)\n * that modules can use to get information about the state of the\n * 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1leHRlbnNpb25zL3NyYy9zdG9yZS50cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxnQ0FBZ0MsR0FDUTtBQU1YO0FBQzBDO0FBb0Z2RSxJQUFNSSx5QkFBeUJGLHFFQUFpQkEsQ0FDOUMsc0JBQ0E7SUFDRUcsT0FBTyxDQUFDO0lBQ1JDLFlBQVksQ0FBQztBQUNmO0FBR0Y7Ozs7O0NBS0MsR0FDTSxJQUFNQyw0QkFBNEI7V0FDdkNKLGtFQUFjQSxDQUF5QixzQkFBc0I7UUFDM0RFLE9BQU8sQ0FBQztRQUNSQyxZQUFZLENBQUM7SUFDZjtFQUFHO0FBRUwsY0FBYyxHQUNQLFNBQVNFLDZCQUNkQyxPQUFrRSxFQUNsRTtJQUNBLElBQU1DLFFBQVFOLHVCQUF1Qk8sUUFBUTtJQUM3QyxJQUFNQyxXQUFXSCxRQUFRQztJQUV6QixJQUFJRSxhQUFhRixPQUFPO1FBQ3RCTix1QkFBdUJTLFFBQVEsQ0FBQ0Q7SUFDbEMsQ0FBQztBQUNILENBQUM7QUFFRDs7OztDQUlDLEdBQ00sSUFBTUUsb0JBQW9CO1dBQy9CWCxrRUFBY0EsQ0FBaUIsY0FBYztRQUMzQ0UsT0FBTyxDQUFDO0lBQ1Y7RUFBRztBQUVMOzs7O0NBSUMsR0FFRFUsMkJBQTJCWCx1QkFBdUJPLFFBQVE7QUFDMURQLHVCQUF1QlksU0FBUyxDQUFDRDtBQUVqQyxTQUFTQSwyQkFBMkJFLGNBQXNDLEVBQUU7SUFDMUUsSUFBTUMseUJBQTZELEVBQUU7UUFFaEU7O1FBQUwsUUFBSyxZQUFxQkMsT0FBT0MsTUFBTSxDQUFDSCxlQUFlWCxVQUFVLHNCQUE1RCx3R0FBK0Q7WUFBL0QsSUFBSWUsZ0JBQUo7Z0JBQ0U7O2dCQUFMLFFBQUssYUFBZ0JBLGNBQWNDLFNBQVMscUJBQXZDLDZHQUF5QztvQkFBekMsSUFBSUMsV0FBSjtvQkFDSEwsdUJBQXVCTSxJQUFJLENBQUM7d0JBQzFCQyxnQkFBZ0JGLFNBQVNFLGNBQWM7d0JBQ3ZDQyxxQkFBcUJMLGNBQWNNLFVBQVU7d0JBQzdDQyxVQUFVTCxTQUFTSyxRQUFRO3dCQUMzQkMsYUFBYU4sU0FBU08sRUFBRTtvQkFDMUI7Z0JBQ0Y7O2dCQVBLO2dCQUFBOzs7eUJBQUE7d0JBQUE7Ozt3QkFBQTs4QkFBQTs7OztRQVFQOztRQVRLO1FBQUE7OztpQkFBQTtnQkFBQTs7O2dCQUFBO3NCQUFBOzs7O0lBVUwsSUFDRSxDQUFDOUIsNkRBQU9BLENBQ05DLDhFQUE2QixHQUFHOEIsaUJBQWlCLEVBQ2pEYix5QkFFRjtRQUNBakIsOEVBQTZCLENBQUM7WUFDNUI4QixtQkFBbUJiO1FBQ3JCO0lBQ0YsQ0FBQztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLWV4dGVuc2lvbnMvc3JjL3N0b3JlLnRzP2UyMjkiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IEV4dGVuc2lvbiAqL1xuaW1wb3J0IGlzRXF1YWwgZnJvbSBcImxvZGFzaC1lcy9pc0VxdWFsXCI7XG5pbXBvcnQge1xuICBjb25maWdFeHRlbnNpb25TdG9yZSxcbiAgQ29uZmlnRXh0ZW5zaW9uU3RvcmVFbGVtZW50LFxuICBDb25maWdPYmplY3QsXG4gIEV4dGVuc2lvblNsb3RDb25maWdPYmplY3QsXG59IGZyb20gXCJAb3Blbm1ycy9lc20tY29uZmlnXCI7XG5pbXBvcnQgeyBjcmVhdGVHbG9iYWxTdG9yZSwgZ2V0R2xvYmFsU3RvcmUgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLXN0YXRlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uTWV0YSB7XG4gIFtfOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uUmVnaXN0cmF0aW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBsb2FkKCk6IFByb21pc2U8YW55PjtcbiAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICBtZXRhOiBFeHRlbnNpb25NZXRhO1xuICBvcmRlcj86IG51bWJlcjtcbiAgb25saW5lPzogYm9vbGVhbiB8IG9iamVjdDtcbiAgb2ZmbGluZT86IGJvb2xlYW4gfCBvYmplY3Q7XG4gIHByaXZpbGVnZXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25JbmZvIGV4dGVuZHMgRXh0ZW5zaW9uUmVnaXN0cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZXMgd2hlcmUgdGhlIGV4dGVuc2lvbiBoYXMgYmVlbiByZW5kZXJlZCB1c2luZyBgcmVuZGVyRXh0ZW5zaW9uYC5cbiAgICovXG4gIGluc3RhbmNlczogQXJyYXk8RXh0ZW5zaW9uSW5zdGFuY2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvbkluc3RhbmNlIHtcbiAgaWQ6IHN0cmluZztcbiAgc2xvdE5hbWU6IHN0cmluZztcbiAgc2xvdE1vZHVsZU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25JbnRlcm5hbFN0b3JlIHtcbiAgLyoqIFNsb3RzIGluZGV4ZWQgYnkgbmFtZSAqL1xuICBzbG90czogUmVjb3JkPHN0cmluZywgRXh0ZW5zaW9uU2xvdEluZm8+O1xuICAvKiogRXh0ZW5zaW9ucyBpbmRleGVkIGJ5IG5hbWUgKi9cbiAgZXh0ZW5zaW9uczogUmVjb3JkPHN0cmluZywgRXh0ZW5zaW9uSW5mbz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uU2xvdEluZm8ge1xuICAvKipcbiAgICogVGhlIG1vZHVsZSBpbiB3aGljaCB0aGUgZXh0ZW5zaW9uIHNsb3QgZXhpc3RzLiBVbmRlZmluZWQgaWYgdGhlIHNsb3RcbiAgICogaGFzbid0IGJlZW4gcmVnaXN0ZXJlZCB5ZXQgKGJ1dCBpdCBoYXMgYmVlbiBhdHRhY2hlZCBvciBhc3NpZ25lZCB0b1xuICAgKiBhbiBleHRlbnNpb24uXG4gICAqL1xuICBtb2R1bGVOYW1lPzogc3RyaW5nO1xuICAvKiogVGhlIG5hbWUgdW5kZXIgd2hpY2ggdGhlIGV4dGVuc2lvbiBzbG90IGhhcyBiZWVuIHJlZ2lzdGVyZWQuICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzZXQgb2YgZXh0ZW5zaW9uIElEcyB3aGljaCBoYXZlIGJlZW4gYXR0YWNoZWQgdG8gdGhpcyBzbG90IHVzaW5nIGBhdHRhY2hgLlxuICAgKiBIb3dldmVyLCBub3QgYWxsIG9mIHRoZXNlIGV4dGVuc2lvbiBJRHMgc2hvdWxkIGJlIHJlbmRlcmVkLlxuICAgKiBgYXNzaWduZWRJZHNgIGlzIHRoZSBzZXQgZGVmaW5pbmcgdGhvc2UuXG4gICAqL1xuICBhdHRhY2hlZElkczogQXJyYXk8c3RyaW5nPjtcbiAgLyoqIFRoZSBjb25maWd1cmF0aW9uIHByb3ZpZGVkIGZvciB0aGlzIHNsb3QuIGBudWxsYCBpZiBub3QgeWV0IGxvYWRlZC4gKi9cbiAgY29uZmlnOiBFeHRlbnNpb25TbG90Q29uZmlnT2JqZWN0IHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25TdG9yZSB7XG4gIHNsb3RzOiBSZWNvcmQ8c3RyaW5nLCBFeHRlbnNpb25TbG90U3RhdGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvblNsb3RTdGF0ZSB7XG4gIG1vZHVsZU5hbWU/OiBzdHJpbmc7XG4gIGFzc2lnbmVkRXh0ZW5zaW9uczogQXJyYXk8QXNzaWduZWRFeHRlbnNpb24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2lnbmVkRXh0ZW5zaW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBtb2R1bGVOYW1lOiBzdHJpbmc7XG4gIG1ldGE6IEV4dGVuc2lvbk1ldGE7XG4gIC8qKiBUaGUgZXh0ZW5zaW9uJ3MgY29uZmlnLiBOb3RlIHRoYXQgdGhpcyB3aWxsIGJlIGBudWxsYCB1bnRpbCB0aGUgc2xvdCBpcyBtb3VudGVkLiAqL1xuICBjb25maWc6IENvbmZpZ09iamVjdCB8IG51bGw7XG4gIG9ubGluZT86IGJvb2xlYW4gfCBvYmplY3Q7XG4gIG9mZmxpbmU/OiBib29sZWFuIHwgb2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RlZEV4dGVuc2lvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgbWV0YTogRXh0ZW5zaW9uTWV0YTtcbiAgLyoqIFRoZSBleHRlbnNpb24ncyBjb25maWcuIE5vdGUgdGhhdCB0aGlzIHdpbGwgYmUgYG51bGxgIHVudGlsIHRoZSBzbG90IGlzIG1vdW50ZWQuICovXG4gIGNvbmZpZzogQ29uZmlnT2JqZWN0IHwgbnVsbDtcbn1cblxuY29uc3QgZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSA9IGNyZWF0ZUdsb2JhbFN0b3JlPEV4dGVuc2lvbkludGVybmFsU3RvcmU+KFxuICBcImV4dGVuc2lvbnNJbnRlcm5hbFwiLFxuICB7XG4gICAgc2xvdHM6IHt9LFxuICAgIGV4dGVuc2lvbnM6IHt9LFxuICB9XG4pO1xuXG4vKipcbiAqIFRoaXMgZ2V0cyB0aGUgZXh0ZW5zaW9uIHN5c3RlbSdzIGludGVybmFsIHN0b3JlLiBJdCBpcyBzdWJqZWN0XG4gKiB0byBjaGFuZ2UgcmFkaWNhbGx5IGFuZCB3aXRob3V0IHdhcm5pbmcuIEl0IHNob3VsZCBub3QgYmUgdXNlZFxuICogb3V0c2lkZSBlc20tY29yZS5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgZ2V0RXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSA9ICgpID0+XG4gIGdldEdsb2JhbFN0b3JlPEV4dGVuc2lvbkludGVybmFsU3RvcmU+KFwiZXh0ZW5zaW9uc0ludGVybmFsXCIsIHtcbiAgICBzbG90czoge30sXG4gICAgZXh0ZW5zaW9uczoge30sXG4gIH0pO1xuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlSW50ZXJuYWxFeHRlbnNpb25TdG9yZShcbiAgdXBkYXRlcjogKHN0YXRlOiBFeHRlbnNpb25JbnRlcm5hbFN0b3JlKSA9PiBFeHRlbnNpb25JbnRlcm5hbFN0b3JlXG4pIHtcbiAgY29uc3Qgc3RhdGUgPSBleHRlbnNpb25JbnRlcm5hbFN0b3JlLmdldFN0YXRlKCk7XG4gIGNvbnN0IG5ld1N0YXRlID0gdXBkYXRlcihzdGF0ZSk7XG5cbiAgaWYgKG5ld1N0YXRlICE9PSBzdGF0ZSkge1xuICAgIGV4dGVuc2lvbkludGVybmFsU3RvcmUuc2V0U3RhdGUobmV3U3RhdGUpO1xuICB9XG59XG5cbi8qKlxuICogVGhpcyByZXR1cm5zIGEgW3N0b3JlXShodHRwczovL2dpdGh1Yi5jb20vZGV2ZWxvcGl0L3VuaXN0b3JlI3N0b3JlKVxuICogdGhhdCBtb2R1bGVzIGNhbiB1c2UgdG8gZ2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdGF0ZSBvZiB0aGVcbiAqIGV4dGVuc2lvbiBzeXN0ZW0uXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFeHRlbnNpb25TdG9yZSA9ICgpID0+XG4gIGdldEdsb2JhbFN0b3JlPEV4dGVuc2lvblN0b3JlPihcImV4dGVuc2lvbnNcIiwge1xuICAgIHNsb3RzOiB7fSxcbiAgfSk7XG5cbi8qKlxuICogZXNtLWNvbmZpZyBtYWludGFpbnMgaXRzIG93biBzdG9yZSBvZiB0aGUgZXh0ZW5zaW9uIGluZm9ybWF0aW9uIGl0IG5lZWRzXG4gKiB0byBnZW5lcmF0ZSBleHRlbnNpb24gY29uZmlncy4gV2Uga2VlcCBpdCB1cGRhdGVkIGJhc2VkIG9uIHdoYXQncyBpblxuICogYGV4dGVuc2lvblN0b3JlYC5cbiAqL1xuXG51cGRhdGVDb25maWdFeHRlbnNpb25TdG9yZShleHRlbnNpb25JbnRlcm5hbFN0b3JlLmdldFN0YXRlKCkpO1xuZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5zdWJzY3JpYmUodXBkYXRlQ29uZmlnRXh0ZW5zaW9uU3RvcmUpO1xuXG5mdW5jdGlvbiB1cGRhdGVDb25maWdFeHRlbnNpb25TdG9yZShleHRlbnNpb25TdGF0ZTogRXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSkge1xuICBjb25zdCBjb25maWdFeHRlbnNpb25SZWNvcmRzOiBBcnJheTxDb25maWdFeHRlbnNpb25TdG9yZUVsZW1lbnQ+ID0gW107XG5cbiAgZm9yIChsZXQgZXh0ZW5zaW9uSW5mbyBvZiBPYmplY3QudmFsdWVzKGV4dGVuc2lvblN0YXRlLmV4dGVuc2lvbnMpKSB7XG4gICAgZm9yIChsZXQgaW5zdGFuY2Ugb2YgZXh0ZW5zaW9uSW5mby5pbnN0YW5jZXMpIHtcbiAgICAgIGNvbmZpZ0V4dGVuc2lvblJlY29yZHMucHVzaCh7XG4gICAgICAgIHNsb3RNb2R1bGVOYW1lOiBpbnN0YW5jZS5zbG90TW9kdWxlTmFtZSxcbiAgICAgICAgZXh0ZW5zaW9uTW9kdWxlTmFtZTogZXh0ZW5zaW9uSW5mby5tb2R1bGVOYW1lLFxuICAgICAgICBzbG90TmFtZTogaW5zdGFuY2Uuc2xvdE5hbWUsXG4gICAgICAgIGV4dGVuc2lvbklkOiBpbnN0YW5jZS5pZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBpZiAoXG4gICAgIWlzRXF1YWwoXG4gICAgICBjb25maWdFeHRlbnNpb25TdG9yZS5nZXRTdGF0ZSgpLm1vdW50ZWRFeHRlbnNpb25zLFxuICAgICAgY29uZmlnRXh0ZW5zaW9uUmVjb3Jkc1xuICAgIClcbiAgKSB7XG4gICAgY29uZmlnRXh0ZW5zaW9uU3RvcmUuc2V0U3RhdGUoe1xuICAgICAgbW91bnRlZEV4dGVuc2lvbnM6IGNvbmZpZ0V4dGVuc2lvblJlY29yZHMsXG4gICAgfSk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJpc0VxdWFsIiwiY29uZmlnRXh0ZW5zaW9uU3RvcmUiLCJjcmVhdGVHbG9iYWxTdG9yZSIsImdldEdsb2JhbFN0b3JlIiwiZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSIsInNsb3RzIiwiZXh0ZW5zaW9ucyIsImdldEV4dGVuc2lvbkludGVybmFsU3RvcmUiLCJ1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlIiwidXBkYXRlciIsInN0YXRlIiwiZ2V0U3RhdGUiLCJuZXdTdGF0ZSIsInNldFN0YXRlIiwiZ2V0RXh0ZW5zaW9uU3RvcmUiLCJ1cGRhdGVDb25maWdFeHRlbnNpb25TdG9yZSIsInN1YnNjcmliZSIsImV4dGVuc2lvblN0YXRlIiwiY29uZmlnRXh0ZW5zaW9uUmVjb3JkcyIsIk9iamVjdCIsInZhbHVlcyIsImV4dGVuc2lvbkluZm8iLCJpbnN0YW5jZXMiLCJpbnN0YW5jZSIsInB1c2giLCJzbG90TW9kdWxlTmFtZSIsImV4dGVuc2lvbk1vZHVsZU5hbWUiLCJtb2R1bGVOYW1lIiwic2xvdE5hbWUiLCJleHRlbnNpb25JZCIsImlkIiwibW91bnRlZEV4dGVuc2lvbnMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-extensions/src/store.ts\n");
|
|
6821
|
+
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1leHRlbnNpb25zL3NyYy9zdG9yZS50cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxnQ0FBZ0MsR0FDUTtBQU1YO0FBQzBDO0FBb0Z2RSxJQUFNSSx5QkFBeUJGLHFFQUFpQkEsQ0FDOUMsc0JBQ0E7SUFDRUcsT0FBTyxDQUFDO0lBQ1JDLFlBQVksQ0FBQztBQUNmO0FBR0Y7Ozs7O0NBS0MsR0FDTSxJQUFNQyw0QkFBNEI7V0FDdkNKLGtFQUFjQSxDQUF5QixzQkFBc0I7UUFDM0RFLE9BQU8sQ0FBQztRQUNSQyxZQUFZLENBQUM7SUFDZjtFQUFHO0FBRUwsY0FBYyxHQUNQLFNBQVNFLDZCQUNkQyxPQUFrRSxFQUNsRTtJQUNBLElBQU1DLFFBQVFOLHVCQUF1Qk8sUUFBUTtJQUM3QyxJQUFNQyxXQUFXSCxRQUFRQztJQUV6QixJQUFJRSxhQUFhRixPQUFPO1FBQ3RCTix1QkFBdUJTLFFBQVEsQ0FBQ0Q7SUFDbEMsQ0FBQztBQUNILENBQUM7QUFFRDs7O0NBR0MsR0FDTSxJQUFNRSxvQkFBb0I7V0FDL0JYLGtFQUFjQSxDQUFpQixjQUFjO1FBQzNDRSxPQUFPLENBQUM7SUFDVjtFQUFHO0FBRUw7Ozs7Q0FJQyxHQUVEVSwyQkFBMkJYLHVCQUF1Qk8sUUFBUTtBQUMxRFAsdUJBQXVCWSxTQUFTLENBQUNEO0FBRWpDLFNBQVNBLDJCQUEyQkUsY0FBc0MsRUFBRTtJQUMxRSxJQUFNQyx5QkFBNkQsRUFBRTtRQUVoRTs7UUFBTCxRQUFLLFlBQXFCQyxPQUFPQyxNQUFNLENBQUNILGVBQWVYLFVBQVUsc0JBQTVELHdHQUErRDtZQUEvRCxJQUFJZSxnQkFBSjtnQkFDRTs7Z0JBQUwsUUFBSyxhQUFnQkEsY0FBY0MsU0FBUyxxQkFBdkMsNkdBQXlDO29CQUF6QyxJQUFJQyxXQUFKO29CQUNITCx1QkFBdUJNLElBQUksQ0FBQzt3QkFDMUJDLGdCQUFnQkYsU0FBU0UsY0FBYzt3QkFDdkNDLHFCQUFxQkwsY0FBY00sVUFBVTt3QkFDN0NDLFVBQVVMLFNBQVNLLFFBQVE7d0JBQzNCQyxhQUFhTixTQUFTTyxFQUFFO29CQUMxQjtnQkFDRjs7Z0JBUEs7Z0JBQUE7Ozt5QkFBQTt3QkFBQTs7O3dCQUFBOzhCQUFBOzs7O1FBUVA7O1FBVEs7UUFBQTs7O2lCQUFBO2dCQUFBOzs7Z0JBQUE7c0JBQUE7Ozs7SUFVTCxJQUNFLENBQUM5Qiw2REFBT0EsQ0FDTkMsOEVBQTZCLEdBQUc4QixpQkFBaUIsRUFDakRiLHlCQUVGO1FBQ0FqQiw4RUFBNkIsQ0FBQztZQUM1QjhCLG1CQUFtQmI7UUFDckI7SUFDRixDQUFDO0FBQ0giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tZXh0ZW5zaW9ucy9zcmMvc3RvcmUudHM/ZTIyOSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgRXh0ZW5zaW9uICovXG5pbXBvcnQgaXNFcXVhbCBmcm9tIFwibG9kYXNoLWVzL2lzRXF1YWxcIjtcbmltcG9ydCB7XG4gIGNvbmZpZ0V4dGVuc2lvblN0b3JlLFxuICBDb25maWdFeHRlbnNpb25TdG9yZUVsZW1lbnQsXG4gIENvbmZpZ09iamVjdCxcbiAgRXh0ZW5zaW9uU2xvdENvbmZpZ09iamVjdCxcbn0gZnJvbSBcIkBvcGVubXJzL2VzbS1jb25maWdcIjtcbmltcG9ydCB7IGNyZWF0ZUdsb2JhbFN0b3JlLCBnZXRHbG9iYWxTdG9yZSB9IGZyb20gXCJAb3Blbm1ycy9lc20tc3RhdGVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25NZXRhIHtcbiAgW186IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25SZWdpc3RyYXRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxvYWQoKTogUHJvbWlzZTxhbnk+O1xuICBtb2R1bGVOYW1lOiBzdHJpbmc7XG4gIG1ldGE6IEV4dGVuc2lvbk1ldGE7XG4gIG9yZGVyPzogbnVtYmVyO1xuICBvbmxpbmU/OiBib29sZWFuIHwgb2JqZWN0O1xuICBvZmZsaW5lPzogYm9vbGVhbiB8IG9iamVjdDtcbiAgcHJpdmlsZWdlcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvbkluZm8gZXh0ZW5kcyBFeHRlbnNpb25SZWdpc3RyYXRpb24ge1xuICAvKipcbiAgICogVGhlIGluc3RhbmNlcyB3aGVyZSB0aGUgZXh0ZW5zaW9uIGhhcyBiZWVuIHJlbmRlcmVkIHVzaW5nIGByZW5kZXJFeHRlbnNpb25gLlxuICAgKi9cbiAgaW5zdGFuY2VzOiBBcnJheTxFeHRlbnNpb25JbnN0YW5jZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uSW5zdGFuY2Uge1xuICBpZDogc3RyaW5nO1xuICBzbG90TmFtZTogc3RyaW5nO1xuICBzbG90TW9kdWxlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvbkludGVybmFsU3RvcmUge1xuICAvKiogU2xvdHMgaW5kZXhlZCBieSBuYW1lICovXG4gIHNsb3RzOiBSZWNvcmQ8c3RyaW5nLCBFeHRlbnNpb25TbG90SW5mbz47XG4gIC8qKiBFeHRlbnNpb25zIGluZGV4ZWQgYnkgbmFtZSAqL1xuICBleHRlbnNpb25zOiBSZWNvcmQ8c3RyaW5nLCBFeHRlbnNpb25JbmZvPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25TbG90SW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgbW9kdWxlIGluIHdoaWNoIHRoZSBleHRlbnNpb24gc2xvdCBleGlzdHMuIFVuZGVmaW5lZCBpZiB0aGUgc2xvdFxuICAgKiBoYXNuJ3QgYmVlbiByZWdpc3RlcmVkIHlldCAoYnV0IGl0IGhhcyBiZWVuIGF0dGFjaGVkIG9yIGFzc2lnbmVkIHRvXG4gICAqIGFuIGV4dGVuc2lvbi5cbiAgICovXG4gIG1vZHVsZU5hbWU/OiBzdHJpbmc7XG4gIC8qKiBUaGUgbmFtZSB1bmRlciB3aGljaCB0aGUgZXh0ZW5zaW9uIHNsb3QgaGFzIGJlZW4gcmVnaXN0ZXJlZC4gKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHNldCBvZiBleHRlbnNpb24gSURzIHdoaWNoIGhhdmUgYmVlbiBhdHRhY2hlZCB0byB0aGlzIHNsb3QgdXNpbmcgYGF0dGFjaGAuXG4gICAqIEhvd2V2ZXIsIG5vdCBhbGwgb2YgdGhlc2UgZXh0ZW5zaW9uIElEcyBzaG91bGQgYmUgcmVuZGVyZWQuXG4gICAqIGBhc3NpZ25lZElkc2AgaXMgdGhlIHNldCBkZWZpbmluZyB0aG9zZS5cbiAgICovXG4gIGF0dGFjaGVkSWRzOiBBcnJheTxzdHJpbmc+O1xuICAvKiogVGhlIGNvbmZpZ3VyYXRpb24gcHJvdmlkZWQgZm9yIHRoaXMgc2xvdC4gYG51bGxgIGlmIG5vdCB5ZXQgbG9hZGVkLiAqL1xuICBjb25maWc6IEV4dGVuc2lvblNsb3RDb25maWdPYmplY3QgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvblN0b3JlIHtcbiAgc2xvdHM6IFJlY29yZDxzdHJpbmcsIEV4dGVuc2lvblNsb3RTdGF0ZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uU2xvdFN0YXRlIHtcbiAgbW9kdWxlTmFtZT86IHN0cmluZztcbiAgYXNzaWduZWRFeHRlbnNpb25zOiBBcnJheTxBc3NpZ25lZEV4dGVuc2lvbj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzaWduZWRFeHRlbnNpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIG1vZHVsZU5hbWU6IHN0cmluZztcbiAgbWV0YTogRXh0ZW5zaW9uTWV0YTtcbiAgLyoqIFRoZSBleHRlbnNpb24ncyBjb25maWcuIE5vdGUgdGhhdCB0aGlzIHdpbGwgYmUgYG51bGxgIHVudGlsIHRoZSBzbG90IGlzIG1vdW50ZWQuICovXG4gIGNvbmZpZzogQ29uZmlnT2JqZWN0IHwgbnVsbDtcbiAgb25saW5lPzogYm9vbGVhbiB8IG9iamVjdDtcbiAgb2ZmbGluZT86IGJvb2xlYW4gfCBvYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGVkRXh0ZW5zaW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBtZXRhOiBFeHRlbnNpb25NZXRhO1xuICAvKiogVGhlIGV4dGVuc2lvbidzIGNvbmZpZy4gTm90ZSB0aGF0IHRoaXMgd2lsbCBiZSBgbnVsbGAgdW50aWwgdGhlIHNsb3QgaXMgbW91bnRlZC4gKi9cbiAgY29uZmlnOiBDb25maWdPYmplY3QgfCBudWxsO1xufVxuXG5jb25zdCBleHRlbnNpb25JbnRlcm5hbFN0b3JlID0gY3JlYXRlR2xvYmFsU3RvcmU8RXh0ZW5zaW9uSW50ZXJuYWxTdG9yZT4oXG4gIFwiZXh0ZW5zaW9uc0ludGVybmFsXCIsXG4gIHtcbiAgICBzbG90czoge30sXG4gICAgZXh0ZW5zaW9uczoge30sXG4gIH1cbik7XG5cbi8qKlxuICogVGhpcyBnZXRzIHRoZSBleHRlbnNpb24gc3lzdGVtJ3MgaW50ZXJuYWwgc3RvcmUuIEl0IGlzIHN1YmplY3RcbiAqIHRvIGNoYW5nZSByYWRpY2FsbHkgYW5kIHdpdGhvdXQgd2FybmluZy4gSXQgc2hvdWxkIG5vdCBiZSB1c2VkXG4gKiBvdXRzaWRlIGVzbS1jb3JlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFeHRlbnNpb25JbnRlcm5hbFN0b3JlID0gKCkgPT5cbiAgZ2V0R2xvYmFsU3RvcmU8RXh0ZW5zaW9uSW50ZXJuYWxTdG9yZT4oXCJleHRlbnNpb25zSW50ZXJuYWxcIiwge1xuICAgIHNsb3RzOiB7fSxcbiAgICBleHRlbnNpb25zOiB7fSxcbiAgfSk7XG5cbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVJbnRlcm5hbEV4dGVuc2lvblN0b3JlKFxuICB1cGRhdGVyOiAoc3RhdGU6IEV4dGVuc2lvbkludGVybmFsU3RvcmUpID0+IEV4dGVuc2lvbkludGVybmFsU3RvcmVcbikge1xuICBjb25zdCBzdGF0ZSA9IGV4dGVuc2lvbkludGVybmFsU3RvcmUuZ2V0U3RhdGUoKTtcbiAgY29uc3QgbmV3U3RhdGUgPSB1cGRhdGVyKHN0YXRlKTtcblxuICBpZiAobmV3U3RhdGUgIT09IHN0YXRlKSB7XG4gICAgZXh0ZW5zaW9uSW50ZXJuYWxTdG9yZS5zZXRTdGF0ZShuZXdTdGF0ZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIHJldHVybnMgYSBzdG9yZSB0aGF0IG1vZHVsZXMgY2FuIHVzZSB0byBnZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlXG4gKiBzdGF0ZSBvZiB0aGUgZXh0ZW5zaW9uIHN5c3RlbS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEV4dGVuc2lvblN0b3JlID0gKCkgPT5cbiAgZ2V0R2xvYmFsU3RvcmU8RXh0ZW5zaW9uU3RvcmU+KFwiZXh0ZW5zaW9uc1wiLCB7XG4gICAgc2xvdHM6IHt9LFxuICB9KTtcblxuLyoqXG4gKiBlc20tY29uZmlnIG1haW50YWlucyBpdHMgb3duIHN0b3JlIG9mIHRoZSBleHRlbnNpb24gaW5mb3JtYXRpb24gaXQgbmVlZHNcbiAqIHRvIGdlbmVyYXRlIGV4dGVuc2lvbiBjb25maWdzLiBXZSBrZWVwIGl0IHVwZGF0ZWQgYmFzZWQgb24gd2hhdCdzIGluXG4gKiBgZXh0ZW5zaW9uU3RvcmVgLlxuICovXG5cbnVwZGF0ZUNvbmZpZ0V4dGVuc2lvblN0b3JlKGV4dGVuc2lvbkludGVybmFsU3RvcmUuZ2V0U3RhdGUoKSk7XG5leHRlbnNpb25JbnRlcm5hbFN0b3JlLnN1YnNjcmliZSh1cGRhdGVDb25maWdFeHRlbnNpb25TdG9yZSk7XG5cbmZ1bmN0aW9uIHVwZGF0ZUNvbmZpZ0V4dGVuc2lvblN0b3JlKGV4dGVuc2lvblN0YXRlOiBFeHRlbnNpb25JbnRlcm5hbFN0b3JlKSB7XG4gIGNvbnN0IGNvbmZpZ0V4dGVuc2lvblJlY29yZHM6IEFycmF5PENvbmZpZ0V4dGVuc2lvblN0b3JlRWxlbWVudD4gPSBbXTtcblxuICBmb3IgKGxldCBleHRlbnNpb25JbmZvIG9mIE9iamVjdC52YWx1ZXMoZXh0ZW5zaW9uU3RhdGUuZXh0ZW5zaW9ucykpIHtcbiAgICBmb3IgKGxldCBpbnN0YW5jZSBvZiBleHRlbnNpb25JbmZvLmluc3RhbmNlcykge1xuICAgICAgY29uZmlnRXh0ZW5zaW9uUmVjb3Jkcy5wdXNoKHtcbiAgICAgICAgc2xvdE1vZHVsZU5hbWU6IGluc3RhbmNlLnNsb3RNb2R1bGVOYW1lLFxuICAgICAgICBleHRlbnNpb25Nb2R1bGVOYW1lOiBleHRlbnNpb25JbmZvLm1vZHVsZU5hbWUsXG4gICAgICAgIHNsb3ROYW1lOiBpbnN0YW5jZS5zbG90TmFtZSxcbiAgICAgICAgZXh0ZW5zaW9uSWQ6IGluc3RhbmNlLmlkLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGlmIChcbiAgICAhaXNFcXVhbChcbiAgICAgIGNvbmZpZ0V4dGVuc2lvblN0b3JlLmdldFN0YXRlKCkubW91bnRlZEV4dGVuc2lvbnMsXG4gICAgICBjb25maWdFeHRlbnNpb25SZWNvcmRzXG4gICAgKVxuICApIHtcbiAgICBjb25maWdFeHRlbnNpb25TdG9yZS5zZXRTdGF0ZSh7XG4gICAgICBtb3VudGVkRXh0ZW5zaW9uczogY29uZmlnRXh0ZW5zaW9uUmVjb3JkcyxcbiAgICB9KTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbImlzRXF1YWwiLCJjb25maWdFeHRlbnNpb25TdG9yZSIsImNyZWF0ZUdsb2JhbFN0b3JlIiwiZ2V0R2xvYmFsU3RvcmUiLCJleHRlbnNpb25JbnRlcm5hbFN0b3JlIiwic2xvdHMiLCJleHRlbnNpb25zIiwiZ2V0RXh0ZW5zaW9uSW50ZXJuYWxTdG9yZSIsInVwZGF0ZUludGVybmFsRXh0ZW5zaW9uU3RvcmUiLCJ1cGRhdGVyIiwic3RhdGUiLCJnZXRTdGF0ZSIsIm5ld1N0YXRlIiwic2V0U3RhdGUiLCJnZXRFeHRlbnNpb25TdG9yZSIsInVwZGF0ZUNvbmZpZ0V4dGVuc2lvblN0b3JlIiwic3Vic2NyaWJlIiwiZXh0ZW5zaW9uU3RhdGUiLCJjb25maWdFeHRlbnNpb25SZWNvcmRzIiwiT2JqZWN0IiwidmFsdWVzIiwiZXh0ZW5zaW9uSW5mbyIsImluc3RhbmNlcyIsImluc3RhbmNlIiwicHVzaCIsInNsb3RNb2R1bGVOYW1lIiwiZXh0ZW5zaW9uTW9kdWxlTmFtZSIsIm1vZHVsZU5hbWUiLCJzbG90TmFtZSIsImV4dGVuc2lvbklkIiwiaWQiLCJtb3VudGVkRXh0ZW5zaW9ucyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-extensions/src/store.ts\n");
|
|
6833
6822
|
|
|
6834
6823
|
/***/ }),
|
|
6835
6824
|
|
|
@@ -6873,7 +6862,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
6873
6862
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6874
6863
|
|
|
6875
6864
|
"use strict";
|
|
6876
|
-
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 */ });\nfunction setupPaths(config) {\n window.openmrsBase = config.apiUrl;\n window.spaBase = config.spaPath;\n window.spaEnv = config.env || \"production\";\n window.spaVersion = \"4.3.2-pre.
|
|
6865
|
+
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 */ });\nfunction setupPaths(config) {\n window.openmrsBase = config.apiUrl;\n window.spaBase = config.spaPath;\n window.spaEnv = config.env || \"production\";\n window.spaVersion = \"4.3.2-pre.681-20230427\";\n window.getOpenmrsSpaBase = function() {\n return \"\".concat(window.spaBase, \"/\");\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}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1nbG9iYWxzL3NyYy9nbG9iYWxzLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBRU8sU0FBU0EsV0FBV0MsTUFBaUIsRUFBRTtJQUM1Q0MsT0FBT0MsV0FBVyxHQUFHRixPQUFPRyxNQUFNO0lBQ2xDRixPQUFPRyxPQUFPLEdBQUdKLE9BQU9LLE9BQU87SUFDL0JKLE9BQU9LLE1BQU0sR0FBR04sT0FBT08sR0FBRyxJQUFJO0lBQzlCTixPQUFPTyxVQUFVLEdBQUdDLHdCQUF5QjtJQUM3Q1IsT0FBT1UsaUJBQWlCLEdBQUc7ZUFBTSxHQUFrQixPQUFmVixPQUFPRyxPQUFPLEVBQUM7O0FBQ3JELENBQUM7QUFFTSxTQUFTUSxhQUFhO0lBQzNCWCxPQUFPWSxRQUFRLEdBQUcsU0FBQ0MsUUFBd0I7UUFDekMsSUFBTUMsTUFBTWQsT0FBT2UsWUFBWTtRQUUvQixJQUFJRCxLQUFLO1lBQ1AsSUFBTUUsSUFBSUMsU0FBU0MsV0FBVztZQUM5QkYsRUFBRUcsVUFBVSxDQUFDTjtZQUNiQyxJQUFJTSxlQUFlO1lBQ25CTixJQUFJTyxRQUFRLENBQUNMO1lBQ2JDLFNBQVNLLFdBQVcsQ0FBQztZQUNyQlIsSUFBSU0sZUFBZTtRQUNyQixDQUFDO0lBQ0g7QUFDRixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLWdsb2JhbHMvc3JjL2dsb2JhbHMudHM/NDFiMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNwYUNvbmZpZyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cFBhdGhzKGNvbmZpZzogU3BhQ29uZmlnKSB7XG4gIHdpbmRvdy5vcGVubXJzQmFzZSA9IGNvbmZpZy5hcGlVcmw7XG4gIHdpbmRvdy5zcGFCYXNlID0gY29uZmlnLnNwYVBhdGg7XG4gIHdpbmRvdy5zcGFFbnYgPSBjb25maWcuZW52IHx8IFwicHJvZHVjdGlvblwiO1xuICB3aW5kb3cuc3BhVmVyc2lvbiA9IHByb2Nlc3MuZW52LkJVSUxEX1ZFUlNJT047XG4gIHdpbmRvdy5nZXRPcGVubXJzU3BhQmFzZSA9ICgpID0+IGAke3dpbmRvdy5zcGFCYXNlfS9gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBVdGlscygpIHtcbiAgd2luZG93LmNvcHlUZXh0ID0gKHNvdXJjZTogSFRNTEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG5cbiAgICBpZiAoc2VsKSB7XG4gICAgICBjb25zdCByID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgIHIuc2VsZWN0Tm9kZShzb3VyY2UpO1xuICAgICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgc2VsLmFkZFJhbmdlKHIpO1xuICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjb3B5XCIpO1xuICAgICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgIH1cbiAgfTtcbn1cbiJdLCJuYW1lcyI6WyJzZXR1cFBhdGhzIiwiY29uZmlnIiwid2luZG93Iiwib3Blbm1yc0Jhc2UiLCJhcGlVcmwiLCJzcGFCYXNlIiwic3BhUGF0aCIsInNwYUVudiIsImVudiIsInNwYVZlcnNpb24iLCJwcm9jZXNzIiwiQlVJTERfVkVSU0lPTiIsImdldE9wZW5tcnNTcGFCYXNlIiwic2V0dXBVdGlscyIsImNvcHlUZXh0Iiwic291cmNlIiwic2VsIiwiZ2V0U2VsZWN0aW9uIiwiciIsImRvY3VtZW50IiwiY3JlYXRlUmFuZ2UiLCJzZWxlY3ROb2RlIiwicmVtb3ZlQWxsUmFuZ2VzIiwiYWRkUmFuZ2UiLCJleGVjQ29tbWFuZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-globals/src/globals.ts\n");
|
|
6877
6866
|
|
|
6878
6867
|
/***/ }),
|
|
6879
6868
|
|
|
@@ -7071,7 +7060,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
7071
7060
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
7072
7061
|
|
|
7073
7062
|
"use strict";
|
|
7074
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ExtensionSlot\": () => (/* binding */ ExtensionSlot)\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 _ComponentContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ComponentContext */ \"../../framework/esm-react-utils/src/ComponentContext.ts\");\n/* harmony import */ var _Extension__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Extension */ \"../../framework/esm-react-utils/src/Extension.tsx\");\n/* harmony import */ var _useExtensionSlot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useExtensionSlot */ \"../../framework/esm-react-utils/src/useExtensionSlot.ts\");\nfunction _defineProperty(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 _extends() {\n _extends = Object.assign || function(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i];\n for(var key in source){\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectSpread(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 _defineProperty(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 _objectSpreadProps(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 _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for(i = 0; i < sourceSymbolKeys.length; i++){\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for(i = 0; i < sourceKeys.length; i++){\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\n\n\n\nfunction defaultSelect(extensions) {\n return extensions;\n}\n/**\n * An [extension slot](https://o3-dev.docs.openmrs.org/#/main/extensions).\n * A place with a name. Extensions that get connected to that name\n * will be rendered into this.\n *\n * @param props.name The name of the extension slot\n * @param props.select An optional function for filtering or otherwise modifying\n * the list of extensions that will be rendered.\n * @param props.state *Only works if no children are provided*. Passes data\n * through as props to the extensions that are mounted here. If `ExtensionSlot`\n * has children, you must pass the state through the `state` param of the\n * `Extension` component.\n * @param props.children There are two different ways to use `ExtensionSlot`\n * children.\n * - Passing a `ReactNode`, the \"normal\" way. The child must contain the component\n * `Extension`. Whatever is passed as the child will be rendered once per extension.\n * See the first example below.\n * - Passing a function, the \"render props\" way. The child must be a function\n * which takes a [[ConnectedExtension]] as argument and returns a `ReactNode`.\n * the resulting react node must contain the component `Extension`. It will\n * be run for each extension. See the second example below.\n *\n * @example\n * Passing a react node as children\n *\n * ```tsx\n * <ExtensionSlot name=\"Foo\">\n * <div style={{ width: 10rem }}>\n * <Extension />\n * </div>\n * </ExtensionSlot>\n * ```\n *\n * @example\n * Passing a function as children\n *\n * ```tsx\n * <ExtensionSlot name=\"Bar\">\n * {(extension) => (\n * <h1>{extension.name}</h1>\n * <div style={{ color: extension.meta.color }}>\n * <Extension />\n * </div>\n * )}\n * </ExtensionSlot>\n * ```\n *\n */ function ExtensionSlot(_param) {\n var extensionSlotName = _param.name, legacyExtensionSlotName = _param.extensionSlotName, _select = _param.select, select = _select === void 0 ? defaultSelect : _select, children = _param.children, state = _param.state, style = _param.style, divProps = _objectWithoutProperties(_param, [\n \"name\",\n \"extensionSlotName\",\n \"select\",\n \"children\",\n \"state\",\n \"style\"\n ]);\n if (children && state) {\n throw new Error(\"Both children and state have been provided. If children are provided, the state must be passed as a prop to the `Extension` component.\");\n }\n var name = extensionSlotName !== null && extensionSlotName !== void 0 ? extensionSlotName : legacyExtensionSlotName;\n var slotRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var ref = (0,_useExtensionSlot__WEBPACK_IMPORTED_MODULE_3__.useExtensionSlot)(name), extensions = ref.extensions, extensionSlotModuleName = ref.extensionSlotModuleName;\n var extensionsToRender = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n return select(extensions);\n }, [\n select,\n extensions\n ]);\n var extensionsFromChildrenFunction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n if (typeof children == \"function\" && !/*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().isValidElement(children)) {\n return extensionsToRender.map(function(extension) {\n return children(extension);\n });\n }\n }, [\n children,\n extensionsToRender\n ]);\n var ref1, ref2;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", _extends({\n ref: slotRef,\n \"data-extension-slot-name\": name,\n \"data-extension-slot-module-name\": extensionSlotModuleName,\n style: _objectSpreadProps(_objectSpread({}, style), {\n position: \"relative\"\n })\n }, divProps), name && extensionsToRender.map(function(extension, i) {\n /*#__PURE__*/ return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ComponentContext__WEBPACK_IMPORTED_MODULE_1__.ComponentContext.Provider, {\n key: extension.id,\n value: {\n moduleName: extensionSlotModuleName,\n extension: {\n extensionId: extension.id,\n extensionSlotName: name,\n extensionSlotModuleName: extensionSlotModuleName\n }\n }\n }, (ref2 = (ref1 = extensionsFromChildrenFunction === null || extensionsFromChildrenFunction === void 0 ? void 0 : extensionsFromChildrenFunction[i]) !== null && ref1 !== void 0 ? ref1 : typeof children != \"function\" ? children : null) !== null && ref2 !== void 0 ? ref2 : /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Extension__WEBPACK_IMPORTED_MODULE_2__.Extension, {\n state: state\n }));\n }));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvRXh0ZW5zaW9uU2xvdC50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUErQztBQUVPO0FBQ2Q7QUFDYztBQTRCdEQsU0FBU00sY0FBY0MsVUFBcUMsRUFBRTtJQUM1RCxPQUFPQTtBQUNUO0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBK0NDLEdBQ00sU0FBU0MsY0FBYyxRQVFQO1FBUHJCQyxvQkFENEIsT0FDNUJBLE1BQ0FDLDBCQUY0QixPQUU1QkEsNkJBRjRCLE9BRzVCRSxRQUFBQSw4QkFBU04seUJBQ1RPLFdBSjRCLE9BSTVCQSxVQUNBQyxRQUw0QixPQUs1QkEsT0FDQUMsUUFONEIsT0FNNUJBLE9BQ0dDLG9DQVB5QjtRQUM1QlA7UUFDQUM7UUFDQUU7UUFDQUM7UUFDQUM7UUFDQUM7O0lBR0EsSUFBSUYsWUFBWUMsT0FBTztRQUNyQixNQUFNLElBQUlHLE1BQ1IsMElBQ0E7SUFDSixDQUFDO0lBRUQsSUFBTVIsT0FBUUMsOEJBQUFBLCtCQUFBQSxvQkFBcUJDLHVCQUF1QjtJQUMxRCxJQUFNTyxVQUFVakIsNkNBQU1BLENBQUMsSUFBSTtJQUMzQixJQUFnREksTUFBQUEsbUVBQWdCQSxDQUFDSSxPQUF6REYsYUFBd0NGLElBQXhDRSxZQUFZWSwwQkFBNEJkLElBQTVCYztJQUVwQixJQUFNQyxxQkFBcUJsQiw4Q0FBT0EsQ0FDaEM7ZUFBTVUsT0FBT0w7T0FDYjtRQUFDSztRQUFRTDtLQUFXO0lBR3RCLElBQU1jLGlDQUFpQ25CLDhDQUFPQSxDQUFDLFdBQU07UUFDbkQsSUFBSSxPQUFPVyxZQUFZLGNBQWMsZUFBQ2IsMkRBQW9CLENBQUNhLFdBQVc7WUFDcEUsT0FBT08sbUJBQW1CRyxHQUFHLENBQUMsU0FBQ0M7dUJBQWNYLFNBQVNXOztRQUN4RCxDQUFDO0lBQ0gsR0FBRztRQUFDWDtRQUFVTztLQUFtQjtRQXVCdEJDLE1BQUFBO0lBckJYLHFCQUNFLDJEQUFDSTtRQUNDQyxLQUFLUjtRQUNMUyw0QkFBMEJsQjtRQUMxQm1CLG1DQUFpQ1Q7UUFDakNKLE9BQU8scUNBQUtBO1lBQU9jLFVBQVU7O09BQ3pCYixXQUVIUCxRQUNDVyxtQkFBbUJHLEdBQUcsQ0FBQyxTQUFDQyxXQUFXTTtzQkFDakMsa0VBQUMzQix3RUFBeUI7WUFDeEI2QixLQUFLUixVQUFVUyxFQUFFO1lBQ2pCQyxPQUFPO2dCQUNMQyxZQUFZaEI7Z0JBQ1pLLFdBQVc7b0JBQ1RZLGFBQWFaLFVBQVVTLEVBQUU7b0JBQ3pCdkIsbUJBQW1CRDtvQkFDbkJVLHlCQUFBQTtnQkFDRjtZQUNGO1dBRUNFLENBQUFBLE9BQUFBLENBQUFBLE9BQUFBLDJDQUFBQSw0Q0FBQUEsS0FBQUEsSUFBQUEsOEJBQWdDLENBQUNTLEVBQUUsY0FBbkNULGtCQUFBQSxPQUNFLE9BQU9SLFlBQVksYUFBYUEsV0FBVyxJQUFJLGNBRGpEUSxrQkFBQUEscUJBRUcsMkRBQUNqQixpREFBU0E7WUFBQ1UsT0FBT0E7VUFDbkI7O0FBS2YsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvRXh0ZW5zaW9uU2xvdC50c3g/MDBlYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBDb25uZWN0ZWRFeHRlbnNpb24gfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWV4dGVuc2lvbnNcIjtcbmltcG9ydCB7IENvbXBvbmVudENvbnRleHQgfSBmcm9tIFwiLi9Db21wb25lbnRDb250ZXh0XCI7XG5pbXBvcnQgeyBFeHRlbnNpb24gfSBmcm9tIFwiLi9FeHRlbnNpb25cIjtcbmltcG9ydCB7IHVzZUV4dGVuc2lvblNsb3QgfSBmcm9tIFwiLi91c2VFeHRlbnNpb25TbG90XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uU2xvdEJhc2VQcm9wcyB7XG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgbmFtZWAgKi9cbiAgZXh0ZW5zaW9uU2xvdE5hbWU/OiBzdHJpbmc7XG4gIHNlbGVjdD86IChleHRlbnNpb25zOiBBcnJheTxDb25uZWN0ZWRFeHRlbnNpb24+KSA9PiBBcnJheTxDb25uZWN0ZWRFeHRlbnNpb24+O1xuICBzdGF0ZT86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2xkRXh0ZW5zaW9uU2xvdEJhc2VQcm9wcyB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBAZGVwcmVjYXRlZCBVc2UgYG5hbWVgICovXG4gIGV4dGVuc2lvblNsb3ROYW1lOiBzdHJpbmc7XG4gIHNlbGVjdD86IChleHRlbnNpb25zOiBBcnJheTxDb25uZWN0ZWRFeHRlbnNpb24+KSA9PiBBcnJheTxDb25uZWN0ZWRFeHRlbnNpb24+O1xuICBzdGF0ZT86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmV4cG9ydCB0eXBlIEV4dGVuc2lvblNsb3RQcm9wcyA9IChcbiAgfCBPbGRFeHRlbnNpb25TbG90QmFzZVByb3BzXG4gIHwgRXh0ZW5zaW9uU2xvdEJhc2VQcm9wc1xuKSAmXG4gIE9taXQ8UmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+LCBcImNoaWxkcmVuXCI+ICYge1xuICAgIGNoaWxkcmVuPzpcbiAgICAgIHwgUmVhY3QuUmVhY3ROb2RlXG4gICAgICB8ICgoZXh0ZW5zaW9uOiBDb25uZWN0ZWRFeHRlbnNpb24pID0+IFJlYWN0LlJlYWN0Tm9kZSk7XG4gIH07XG5cbmZ1bmN0aW9uIGRlZmF1bHRTZWxlY3QoZXh0ZW5zaW9uczogQXJyYXk8Q29ubmVjdGVkRXh0ZW5zaW9uPikge1xuICByZXR1cm4gZXh0ZW5zaW9ucztcbn1cblxuLyoqXG4gKiBBbiBbZXh0ZW5zaW9uIHNsb3RdKGh0dHBzOi8vbzMtZGV2LmRvY3Mub3Blbm1ycy5vcmcvIy9tYWluL2V4dGVuc2lvbnMpLlxuICogQSBwbGFjZSB3aXRoIGEgbmFtZS4gRXh0ZW5zaW9ucyB0aGF0IGdldCBjb25uZWN0ZWQgdG8gdGhhdCBuYW1lXG4gKiB3aWxsIGJlIHJlbmRlcmVkIGludG8gdGhpcy5cbiAqXG4gKiBAcGFyYW0gcHJvcHMubmFtZSBUaGUgbmFtZSBvZiB0aGUgZXh0ZW5zaW9uIHNsb3RcbiAqIEBwYXJhbSBwcm9wcy5zZWxlY3QgQW4gb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGZpbHRlcmluZyBvciBvdGhlcndpc2UgbW9kaWZ5aW5nXG4gKiAgIHRoZSBsaXN0IG9mIGV4dGVuc2lvbnMgdGhhdCB3aWxsIGJlIHJlbmRlcmVkLlxuICogQHBhcmFtIHByb3BzLnN0YXRlICpPbmx5IHdvcmtzIGlmIG5vIGNoaWxkcmVuIGFyZSBwcm92aWRlZCouIFBhc3NlcyBkYXRhXG4gKiAgIHRocm91Z2ggYXMgcHJvcHMgdG8gdGhlIGV4dGVuc2lvbnMgdGhhdCBhcmUgbW91bnRlZCBoZXJlLiBJZiBgRXh0ZW5zaW9uU2xvdGBcbiAqICAgaGFzIGNoaWxkcmVuLCB5b3UgbXVzdCBwYXNzIHRoZSBzdGF0ZSB0aHJvdWdoIHRoZSBgc3RhdGVgIHBhcmFtIG9mIHRoZVxuICogICBgRXh0ZW5zaW9uYCBjb21wb25lbnQuXG4gKiBAcGFyYW0gcHJvcHMuY2hpbGRyZW4gVGhlcmUgYXJlIHR3byBkaWZmZXJlbnQgd2F5cyB0byB1c2UgYEV4dGVuc2lvblNsb3RgXG4gKiAgIGNoaWxkcmVuLlxuICogIC0gUGFzc2luZyBhIGBSZWFjdE5vZGVgLCB0aGUgXCJub3JtYWxcIiB3YXkuIFRoZSBjaGlsZCBtdXN0IGNvbnRhaW4gdGhlIGNvbXBvbmVudFxuICogICAgIGBFeHRlbnNpb25gLiBXaGF0ZXZlciBpcyBwYXNzZWQgYXMgdGhlIGNoaWxkIHdpbGwgYmUgcmVuZGVyZWQgb25jZSBwZXIgZXh0ZW5zaW9uLlxuICogICAgIFNlZSB0aGUgZmlyc3QgZXhhbXBsZSBiZWxvdy5cbiAqICAtIFBhc3NpbmcgYSBmdW5jdGlvbiwgdGhlIFwicmVuZGVyIHByb3BzXCIgd2F5LiBUaGUgY2hpbGQgbXVzdCBiZSBhIGZ1bmN0aW9uXG4gKiAgICAgd2hpY2ggdGFrZXMgYSBbW0Nvbm5lY3RlZEV4dGVuc2lvbl1dIGFzIGFyZ3VtZW50IGFuZCByZXR1cm5zIGEgYFJlYWN0Tm9kZWAuXG4gKiAgICAgdGhlIHJlc3VsdGluZyByZWFjdCBub2RlIG11c3QgY29udGFpbiB0aGUgY29tcG9uZW50IGBFeHRlbnNpb25gLiBJdCB3aWxsXG4gKiAgICAgYmUgcnVuIGZvciBlYWNoIGV4dGVuc2lvbi4gU2VlIHRoZSBzZWNvbmQgZXhhbXBsZSBiZWxvdy5cbiAqXG4gKiBAZXhhbXBsZVxuICogUGFzc2luZyBhIHJlYWN0IG5vZGUgYXMgY2hpbGRyZW5cbiAqXG4gKiBgYGB0c3hcbiAqIDxFeHRlbnNpb25TbG90IG5hbWU9XCJGb29cIj5cbiAqICAgPGRpdiBzdHlsZT17eyB3aWR0aDogMTByZW0gfX0+XG4gKiAgICAgPEV4dGVuc2lvbiAvPlxuICogICA8L2Rpdj5cbiAqIDwvRXh0ZW5zaW9uU2xvdD5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlXG4gKiBQYXNzaW5nIGEgZnVuY3Rpb24gYXMgY2hpbGRyZW5cbiAqXG4gKiBgYGB0c3hcbiAqIDxFeHRlbnNpb25TbG90IG5hbWU9XCJCYXJcIj5cbiAqICAgeyhleHRlbnNpb24pID0+IChcbiAqICAgICA8aDE+e2V4dGVuc2lvbi5uYW1lfTwvaDE+XG4gKiAgICAgPGRpdiBzdHlsZT17eyBjb2xvcjogZXh0ZW5zaW9uLm1ldGEuY29sb3IgfX0+XG4gKiAgICAgICA8RXh0ZW5zaW9uIC8+XG4gKiAgICAgPC9kaXY+XG4gKiAgICl9XG4gKiA8L0V4dGVuc2lvblNsb3Q+XG4gKiBgYGBcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFeHRlbnNpb25TbG90KHtcbiAgbmFtZTogZXh0ZW5zaW9uU2xvdE5hbWUsXG4gIGV4dGVuc2lvblNsb3ROYW1lOiBsZWdhY3lFeHRlbnNpb25TbG90TmFtZSxcbiAgc2VsZWN0ID0gZGVmYXVsdFNlbGVjdCxcbiAgY2hpbGRyZW4sXG4gIHN0YXRlLFxuICBzdHlsZSxcbiAgLi4uZGl2UHJvcHNcbn06IEV4dGVuc2lvblNsb3RQcm9wcykge1xuICBpZiAoY2hpbGRyZW4gJiYgc3RhdGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIkJvdGggY2hpbGRyZW4gYW5kIHN0YXRlIGhhdmUgYmVlbiBwcm92aWRlZC4gSWYgY2hpbGRyZW4gYXJlIHByb3ZpZGVkLCB0aGUgc3RhdGUgbXVzdCBiZSBwYXNzZWQgYXMgYSBwcm9wIHRvIHRoZSBgRXh0ZW5zaW9uYCBjb21wb25lbnQuXCJcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbmFtZSA9IChleHRlbnNpb25TbG90TmFtZSA/PyBsZWdhY3lFeHRlbnNpb25TbG90TmFtZSkgYXMgc3RyaW5nO1xuICBjb25zdCBzbG90UmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCB7IGV4dGVuc2lvbnMsIGV4dGVuc2lvblNsb3RNb2R1bGVOYW1lIH0gPSB1c2VFeHRlbnNpb25TbG90KG5hbWUpO1xuXG4gIGNvbnN0IGV4dGVuc2lvbnNUb1JlbmRlciA9IHVzZU1lbW8oXG4gICAgKCkgPT4gc2VsZWN0KGV4dGVuc2lvbnMpLFxuICAgIFtzZWxlY3QsIGV4dGVuc2lvbnNdXG4gICk7XG5cbiAgY29uc3QgZXh0ZW5zaW9uc0Zyb21DaGlsZHJlbkZ1bmN0aW9uID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PSBcImZ1bmN0aW9uXCIgJiYgIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSkge1xuICAgICAgcmV0dXJuIGV4dGVuc2lvbnNUb1JlbmRlci5tYXAoKGV4dGVuc2lvbikgPT4gY2hpbGRyZW4oZXh0ZW5zaW9uKSk7XG4gICAgfVxuICB9LCBbY2hpbGRyZW4sIGV4dGVuc2lvbnNUb1JlbmRlcl0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtzbG90UmVmfVxuICAgICAgZGF0YS1leHRlbnNpb24tc2xvdC1uYW1lPXtuYW1lfVxuICAgICAgZGF0YS1leHRlbnNpb24tc2xvdC1tb2R1bGUtbmFtZT17ZXh0ZW5zaW9uU2xvdE1vZHVsZU5hbWV9XG4gICAgICBzdHlsZT17eyAuLi5zdHlsZSwgcG9zaXRpb246IFwicmVsYXRpdmVcIiB9fVxuICAgICAgey4uLmRpdlByb3BzfVxuICAgID5cbiAgICAgIHtuYW1lICYmXG4gICAgICAgIGV4dGVuc2lvbnNUb1JlbmRlci5tYXAoKGV4dGVuc2lvbiwgaSkgPT4gKFxuICAgICAgICAgIDxDb21wb25lbnRDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgICAgICBrZXk9e2V4dGVuc2lvbi5pZH1cbiAgICAgICAgICAgIHZhbHVlPXt7XG4gICAgICAgICAgICAgIG1vZHVsZU5hbWU6IGV4dGVuc2lvblNsb3RNb2R1bGVOYW1lLCAvLyBtb2R1bGVOYW1lIGlzIG5vdCB1c2VkIGJ5IHRoZSByZWNlaXZpbmcgRXh0ZW5zaW9uXG4gICAgICAgICAgICAgIGV4dGVuc2lvbjoge1xuICAgICAgICAgICAgICAgIGV4dGVuc2lvbklkOiBleHRlbnNpb24uaWQsXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uU2xvdE5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uU2xvdE1vZHVsZU5hbWUsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtleHRlbnNpb25zRnJvbUNoaWxkcmVuRnVuY3Rpb24/LltpXSA/P1xuICAgICAgICAgICAgICAodHlwZW9mIGNoaWxkcmVuICE9IFwiZnVuY3Rpb25cIiA/IGNoaWxkcmVuIDogbnVsbCkgPz8gKFxuICAgICAgICAgICAgICAgIDxFeHRlbnNpb24gc3RhdGU9e3N0YXRlfSAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgIDwvQ29tcG9uZW50Q29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgKSl9XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VSZWYiLCJ1c2VNZW1vIiwiQ29tcG9uZW50Q29udGV4dCIsIkV4dGVuc2lvbiIsInVzZUV4dGVuc2lvblNsb3QiLCJkZWZhdWx0U2VsZWN0IiwiZXh0ZW5zaW9ucyIsIkV4dGVuc2lvblNsb3QiLCJuYW1lIiwiZXh0ZW5zaW9uU2xvdE5hbWUiLCJsZWdhY3lFeHRlbnNpb25TbG90TmFtZSIsInNlbGVjdCIsImNoaWxkcmVuIiwic3RhdGUiLCJzdHlsZSIsImRpdlByb3BzIiwiRXJyb3IiLCJzbG90UmVmIiwiZXh0ZW5zaW9uU2xvdE1vZHVsZU5hbWUiLCJleHRlbnNpb25zVG9SZW5kZXIiLCJleHRlbnNpb25zRnJvbUNoaWxkcmVuRnVuY3Rpb24iLCJpc1ZhbGlkRWxlbWVudCIsIm1hcCIsImV4dGVuc2lvbiIsImRpdiIsInJlZiIsImRhdGEtZXh0ZW5zaW9uLXNsb3QtbmFtZSIsImRhdGEtZXh0ZW5zaW9uLXNsb3QtbW9kdWxlLW5hbWUiLCJwb3NpdGlvbiIsImkiLCJQcm92aWRlciIsImtleSIsImlkIiwidmFsdWUiLCJtb2R1bGVOYW1lIiwiZXh0ZW5zaW9uSWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/src/ExtensionSlot.tsx\n");
|
|
7063
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ExtensionSlot\": () => (/* binding */ ExtensionSlot)\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 _ComponentContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ComponentContext */ \"../../framework/esm-react-utils/src/ComponentContext.ts\");\n/* harmony import */ var _Extension__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Extension */ \"../../framework/esm-react-utils/src/Extension.tsx\");\n/* harmony import */ var _useExtensionSlot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useExtensionSlot */ \"../../framework/esm-react-utils/src/useExtensionSlot.ts\");\nfunction _defineProperty(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 _extends() {\n _extends = Object.assign || function(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i];\n for(var key in source){\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectSpread(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 _defineProperty(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 _objectSpreadProps(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 _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for(i = 0; i < sourceSymbolKeys.length; i++){\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for(i = 0; i < sourceKeys.length; i++){\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\n\n\n\nfunction defaultSelect(extensions) {\n return extensions;\n}\n/**\n * An [extension slot](https://o3-dev.docs.openmrs.org/#/main/extensions).\n * A place with a name. Extensions that get connected to that name\n * will be rendered into this.\n *\n * @param props.name The name of the extension slot\n * @param props.select An optional function for filtering or otherwise modifying\n * the list of extensions that will be rendered.\n * @param props.state *Only works if no children are provided*. Passes data\n * through as props to the extensions that are mounted here. If `ExtensionSlot`\n * has children, you must pass the state through the `state` param of the\n * `Extension` component.\n * @param props.children There are two different ways to use `ExtensionSlot`\n * children.\n * - Passing a `ReactNode`, the \"normal\" way. The child must contain the component\n * `Extension`. Whatever is passed as the child will be rendered once per extension.\n * See the first example below.\n * - Passing a function, the \"render props\" way. The child must be a function\n * which takes a [[ConnectedExtension]] as argument and returns a `ReactNode`.\n * the resulting react node must contain the component `Extension`. It will\n * be run for each extension. See the second example below.\n *\n * @example\n * Passing a react node as children\n *\n * ```tsx\n * <ExtensionSlot name=\"Foo\">\n * <div style={{ width: 10rem }}>\n * <Extension />\n * </div>\n * </ExtensionSlot>\n * ```\n *\n * @example\n * Passing a function as children\n *\n * ```tsx\n * <ExtensionSlot name=\"Bar\">\n * {(extension) => (\n * <h1>{extension.name}</h1>\n * <div style={{ color: extension.meta.color }}>\n * <Extension />\n * </div>\n * )}\n * </ExtensionSlot>\n * ```\n *\n */ function ExtensionSlot(_param) {\n var extensionSlotName = _param.name, legacyExtensionSlotName = _param.extensionSlotName, _select = _param.select, select = _select === void 0 ? defaultSelect : _select, children = _param.children, state = _param.state, style = _param.style, divProps = _objectWithoutProperties(_param, [\n \"name\",\n \"extensionSlotName\",\n \"select\",\n \"children\",\n \"state\",\n \"style\"\n ]);\n if (children && state) {\n throw new Error(\"Both children and state have been provided. If children are provided, the state must be passed as a prop to the `Extension` component.\");\n }\n var name = extensionSlotName !== null && extensionSlotName !== void 0 ? extensionSlotName : legacyExtensionSlotName;\n var slotRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var ref = (0,_useExtensionSlot__WEBPACK_IMPORTED_MODULE_3__.useExtensionSlot)(name), extensions = ref.extensions, extensionSlotModuleName = ref.extensionSlotModuleName;\n var extensionsToRender = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n return select(extensions);\n }, [\n select,\n extensions\n ]);\n var extensionsFromChildrenFunction = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n if (typeof children == \"function\" && !/*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().isValidElement(children)) {\n return extensionsToRender.map(function(extension) {\n return children(extension);\n });\n }\n }, [\n children,\n extensionsToRender\n ]);\n var ref1, ref2;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", _extends({\n ref: slotRef,\n \"data-extension-slot-name\": name,\n \"data-extension-slot-module-name\": extensionSlotModuleName,\n style: _objectSpreadProps(_objectSpread({}, style), {\n position: \"relative\"\n })\n }, divProps), name && extensionsToRender.map(function(extension, i) {\n /*#__PURE__*/ return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ComponentContext__WEBPACK_IMPORTED_MODULE_1__.ComponentContext.Provider, {\n key: extension.id,\n value: {\n moduleName: extensionSlotModuleName,\n extension: {\n extensionId: extension.id,\n extensionSlotName: name,\n extensionSlotModuleName: extensionSlotModuleName\n }\n }\n }, (ref2 = (ref1 = extensionsFromChildrenFunction === null || extensionsFromChildrenFunction === void 0 ? void 0 : extensionsFromChildrenFunction[i]) !== null && ref1 !== void 0 ? ref1 : typeof children != \"function\" ? children : null) !== null && ref2 !== void 0 ? ref2 : /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Extension__WEBPACK_IMPORTED_MODULE_2__.Extension, {\n state: state\n }));\n }));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvRXh0ZW5zaW9uU2xvdC50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUErQztBQUVPO0FBQ2Q7QUFDYztBQTRCdEQsU0FBU00sY0FBY0MsVUFBcUMsRUFBRTtJQUM1RCxPQUFPQTtBQUNUO0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBK0NDLEdBQ00sU0FBU0MsY0FBYyxRQVFQO1FBUHJCQyxvQkFENEIsT0FDNUJBLE1BQ0FDLDBCQUY0QixPQUU1QkEsNkJBRjRCLE9BRzVCRSxRQUFBQSw4QkFBU04seUJBQ1RPLFdBSjRCLE9BSTVCQSxVQUNBQyxRQUw0QixPQUs1QkEsT0FDQUMsUUFONEIsT0FNNUJBLE9BQ0dDLG9DQVB5QjtRQUM1QlA7UUFDQUM7UUFDQUU7UUFDQUM7UUFDQUM7UUFDQUM7O0lBR0EsSUFBSUYsWUFBWUMsT0FBTztRQUNyQixNQUFNLElBQUlHLE1BQ1IsMElBQ0E7SUFDSixDQUFDO0lBRUQsSUFBTVIsT0FBUUMsOEJBQUFBLCtCQUFBQSxvQkFBcUJDLHVCQUF1QjtJQUMxRCxJQUFNTyxVQUFVakIsNkNBQU1BLENBQUMsSUFBSTtJQUMzQixJQUFnREksTUFBQUEsbUVBQWdCQSxDQUFDSSxPQUF6REYsYUFBd0NGLElBQXhDRSxZQUFZWSwwQkFBNEJkLElBQTVCYztJQUVwQixJQUFNQyxxQkFBcUJsQiw4Q0FBT0EsQ0FDaEM7ZUFBTVUsT0FBT0w7T0FDYjtRQUFDSztRQUFRTDtLQUFXO0lBR3RCLElBQU1jLGlDQUFpQ25CLDhDQUFPQSxDQUFDLFdBQU07UUFDbkQsSUFBSSxPQUFPVyxZQUFZLGNBQWMsZUFBQ2IsMkRBQW9CLENBQUNhLFdBQVc7WUFDcEUsT0FBT08sbUJBQW1CRyxHQUFHLENBQUMsU0FBQ0M7dUJBQWNYLFNBQVNXOztRQUN4RCxDQUFDO0lBQ0gsR0FBRztRQUFDWDtRQUFVTztLQUFtQjtRQXVCdEJDLE1BQUFBO0lBckJYLHFCQUNFLDJEQUFDSTtRQUNDQyxLQUFLUjtRQUNMUyw0QkFBMEJsQjtRQUMxQm1CLG1DQUFpQ1Q7UUFDakNKLE9BQU8scUNBQUtBO1lBQU9jLFVBQVU7O09BQ3pCYixXQUVIUCxRQUNDVyxtQkFBbUJHLEdBQUcsQ0FBQyxTQUFDQyxXQUFXTTtzQkFDakMsa0VBQUMzQix3RUFBeUI7WUFDeEI2QixLQUFLUixVQUFVUyxFQUFFO1lBQ2pCQyxPQUFPO2dCQUNMQyxZQUFZaEI7Z0JBQ1pLLFdBQVc7b0JBQ1RZLGFBQWFaLFVBQVVTLEVBQUU7b0JBQ3pCdkIsbUJBQW1CRDtvQkFDbkJVLHlCQUFBQTtnQkFDRjtZQUNGO1dBRUNFLENBQUFBLE9BQUFBLENBQUFBLE9BQUFBLDJDQUFBQSw0Q0FBQUEsS0FBQUEsSUFBQUEsOEJBQWdDLENBQUNTLEVBQUUsY0FBbkNULGtCQUFBQSxPQUNFLE9BQU9SLFlBQVksYUFBYUEsV0FBVyxJQUFJLGNBRGpEUSxrQkFBQUEscUJBRUcsMkRBQUNqQixpREFBU0E7WUFBQ1UsT0FBT0E7VUFDbkI7O0FBS2YsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvRXh0ZW5zaW9uU2xvdC50c3g/MDBlYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IENvbm5lY3RlZEV4dGVuc2lvbiB9IGZyb20gXCJAb3Blbm1ycy9lc20tZXh0ZW5zaW9uc1wiO1xuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dCB9IGZyb20gXCIuL0NvbXBvbmVudENvbnRleHRcIjtcbmltcG9ydCB7IEV4dGVuc2lvbiB9IGZyb20gXCIuL0V4dGVuc2lvblwiO1xuaW1wb3J0IHsgdXNlRXh0ZW5zaW9uU2xvdCB9IGZyb20gXCIuL3VzZUV4dGVuc2lvblNsb3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25TbG90QmFzZVByb3BzIHtcbiAgbmFtZTogc3RyaW5nO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBuYW1lYCAqL1xuICBleHRlbnNpb25TbG90TmFtZT86IHN0cmluZztcbiAgc2VsZWN0PzogKGV4dGVuc2lvbnM6IEFycmF5PENvbm5lY3RlZEV4dGVuc2lvbj4pID0+IEFycmF5PENvbm5lY3RlZEV4dGVuc2lvbj47XG4gIHN0YXRlPzogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbGRFeHRlbnNpb25TbG90QmFzZVByb3BzIHtcbiAgbmFtZT86IHN0cmluZztcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgbmFtZWAgKi9cbiAgZXh0ZW5zaW9uU2xvdE5hbWU6IHN0cmluZztcbiAgc2VsZWN0PzogKGV4dGVuc2lvbnM6IEFycmF5PENvbm5lY3RlZEV4dGVuc2lvbj4pID0+IEFycmF5PENvbm5lY3RlZEV4dGVuc2lvbj47XG4gIHN0YXRlPzogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuZXhwb3J0IHR5cGUgRXh0ZW5zaW9uU2xvdFByb3BzID0gKFxuICB8IE9sZEV4dGVuc2lvblNsb3RCYXNlUHJvcHNcbiAgfCBFeHRlbnNpb25TbG90QmFzZVByb3BzXG4pICZcbiAgT21pdDxSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4sIFwiY2hpbGRyZW5cIj4gJiB7XG4gICAgY2hpbGRyZW4/OlxuICAgICAgfCBSZWFjdC5SZWFjdE5vZGVcbiAgICAgIHwgKChleHRlbnNpb246IENvbm5lY3RlZEV4dGVuc2lvbikgPT4gUmVhY3QuUmVhY3ROb2RlKTtcbiAgfTtcblxuZnVuY3Rpb24gZGVmYXVsdFNlbGVjdChleHRlbnNpb25zOiBBcnJheTxDb25uZWN0ZWRFeHRlbnNpb24+KSB7XG4gIHJldHVybiBleHRlbnNpb25zO1xufVxuXG4vKipcbiAqIEFuIFtleHRlbnNpb24gc2xvdF0oaHR0cHM6Ly9vMy1kZXYuZG9jcy5vcGVubXJzLm9yZy8jL21haW4vZXh0ZW5zaW9ucykuXG4gKiBBIHBsYWNlIHdpdGggYSBuYW1lLiBFeHRlbnNpb25zIHRoYXQgZ2V0IGNvbm5lY3RlZCB0byB0aGF0IG5hbWVcbiAqIHdpbGwgYmUgcmVuZGVyZWQgaW50byB0aGlzLlxuICpcbiAqIEBwYXJhbSBwcm9wcy5uYW1lIFRoZSBuYW1lIG9mIHRoZSBleHRlbnNpb24gc2xvdFxuICogQHBhcmFtIHByb3BzLnNlbGVjdCBBbiBvcHRpb25hbCBmdW5jdGlvbiBmb3IgZmlsdGVyaW5nIG9yIG90aGVyd2lzZSBtb2RpZnlpbmdcbiAqICAgdGhlIGxpc3Qgb2YgZXh0ZW5zaW9ucyB0aGF0IHdpbGwgYmUgcmVuZGVyZWQuXG4gKiBAcGFyYW0gcHJvcHMuc3RhdGUgKk9ubHkgd29ya3MgaWYgbm8gY2hpbGRyZW4gYXJlIHByb3ZpZGVkKi4gUGFzc2VzIGRhdGFcbiAqICAgdGhyb3VnaCBhcyBwcm9wcyB0byB0aGUgZXh0ZW5zaW9ucyB0aGF0IGFyZSBtb3VudGVkIGhlcmUuIElmIGBFeHRlbnNpb25TbG90YFxuICogICBoYXMgY2hpbGRyZW4sIHlvdSBtdXN0IHBhc3MgdGhlIHN0YXRlIHRocm91Z2ggdGhlIGBzdGF0ZWAgcGFyYW0gb2YgdGhlXG4gKiAgIGBFeHRlbnNpb25gIGNvbXBvbmVudC5cbiAqIEBwYXJhbSBwcm9wcy5jaGlsZHJlbiBUaGVyZSBhcmUgdHdvIGRpZmZlcmVudCB3YXlzIHRvIHVzZSBgRXh0ZW5zaW9uU2xvdGBcbiAqICAgY2hpbGRyZW4uXG4gKiAgLSBQYXNzaW5nIGEgYFJlYWN0Tm9kZWAsIHRoZSBcIm5vcm1hbFwiIHdheS4gVGhlIGNoaWxkIG11c3QgY29udGFpbiB0aGUgY29tcG9uZW50XG4gKiAgICAgYEV4dGVuc2lvbmAuIFdoYXRldmVyIGlzIHBhc3NlZCBhcyB0aGUgY2hpbGQgd2lsbCBiZSByZW5kZXJlZCBvbmNlIHBlciBleHRlbnNpb24uXG4gKiAgICAgU2VlIHRoZSBmaXJzdCBleGFtcGxlIGJlbG93LlxuICogIC0gUGFzc2luZyBhIGZ1bmN0aW9uLCB0aGUgXCJyZW5kZXIgcHJvcHNcIiB3YXkuIFRoZSBjaGlsZCBtdXN0IGJlIGEgZnVuY3Rpb25cbiAqICAgICB3aGljaCB0YWtlcyBhIFtbQ29ubmVjdGVkRXh0ZW5zaW9uXV0gYXMgYXJndW1lbnQgYW5kIHJldHVybnMgYSBgUmVhY3ROb2RlYC5cbiAqICAgICB0aGUgcmVzdWx0aW5nIHJlYWN0IG5vZGUgbXVzdCBjb250YWluIHRoZSBjb21wb25lbnQgYEV4dGVuc2lvbmAuIEl0IHdpbGxcbiAqICAgICBiZSBydW4gZm9yIGVhY2ggZXh0ZW5zaW9uLiBTZWUgdGhlIHNlY29uZCBleGFtcGxlIGJlbG93LlxuICpcbiAqIEBleGFtcGxlXG4gKiBQYXNzaW5nIGEgcmVhY3Qgbm9kZSBhcyBjaGlsZHJlblxuICpcbiAqIGBgYHRzeFxuICogPEV4dGVuc2lvblNsb3QgbmFtZT1cIkZvb1wiPlxuICogICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiAxMHJlbSB9fT5cbiAqICAgICA8RXh0ZW5zaW9uIC8+XG4gKiAgIDwvZGl2PlxuICogPC9FeHRlbnNpb25TbG90PlxuICogYGBgXG4gKlxuICogQGV4YW1wbGVcbiAqIFBhc3NpbmcgYSBmdW5jdGlvbiBhcyBjaGlsZHJlblxuICpcbiAqIGBgYHRzeFxuICogPEV4dGVuc2lvblNsb3QgbmFtZT1cIkJhclwiPlxuICogICB7KGV4dGVuc2lvbikgPT4gKFxuICogICAgIDxoMT57ZXh0ZW5zaW9uLm5hbWV9PC9oMT5cbiAqICAgICA8ZGl2IHN0eWxlPXt7IGNvbG9yOiBleHRlbnNpb24ubWV0YS5jb2xvciB9fT5cbiAqICAgICAgIDxFeHRlbnNpb24gLz5cbiAqICAgICA8L2Rpdj5cbiAqICAgKX1cbiAqIDwvRXh0ZW5zaW9uU2xvdD5cbiAqIGBgYFxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEV4dGVuc2lvblNsb3Qoe1xuICBuYW1lOiBleHRlbnNpb25TbG90TmFtZSxcbiAgZXh0ZW5zaW9uU2xvdE5hbWU6IGxlZ2FjeUV4dGVuc2lvblNsb3ROYW1lLFxuICBzZWxlY3QgPSBkZWZhdWx0U2VsZWN0LFxuICBjaGlsZHJlbixcbiAgc3RhdGUsXG4gIHN0eWxlLFxuICAuLi5kaXZQcm9wc1xufTogRXh0ZW5zaW9uU2xvdFByb3BzKSB7XG4gIGlmIChjaGlsZHJlbiAmJiBzdGF0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiQm90aCBjaGlsZHJlbiBhbmQgc3RhdGUgaGF2ZSBiZWVuIHByb3ZpZGVkLiBJZiBjaGlsZHJlbiBhcmUgcHJvdmlkZWQsIHRoZSBzdGF0ZSBtdXN0IGJlIHBhc3NlZCBhcyBhIHByb3AgdG8gdGhlIGBFeHRlbnNpb25gIGNvbXBvbmVudC5cIlxuICAgICk7XG4gIH1cblxuICBjb25zdCBuYW1lID0gKGV4dGVuc2lvblNsb3ROYW1lID8/IGxlZ2FjeUV4dGVuc2lvblNsb3ROYW1lKSBhcyBzdHJpbmc7XG4gIGNvbnN0IHNsb3RSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHsgZXh0ZW5zaW9ucywgZXh0ZW5zaW9uU2xvdE1vZHVsZU5hbWUgfSA9IHVzZUV4dGVuc2lvblNsb3QobmFtZSk7XG5cbiAgY29uc3QgZXh0ZW5zaW9uc1RvUmVuZGVyID0gdXNlTWVtbyhcbiAgICAoKSA9PiBzZWxlY3QoZXh0ZW5zaW9ucyksXG4gICAgW3NlbGVjdCwgZXh0ZW5zaW9uc11cbiAgKTtcblxuICBjb25zdCBleHRlbnNpb25zRnJvbUNoaWxkcmVuRnVuY3Rpb24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAodHlwZW9mIGNoaWxkcmVuID09IFwiZnVuY3Rpb25cIiAmJiAhUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pKSB7XG4gICAgICByZXR1cm4gZXh0ZW5zaW9uc1RvUmVuZGVyLm1hcCgoZXh0ZW5zaW9uKSA9PiBjaGlsZHJlbihleHRlbnNpb24pKTtcbiAgICB9XG4gIH0sIFtjaGlsZHJlbiwgZXh0ZW5zaW9uc1RvUmVuZGVyXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e3Nsb3RSZWZ9XG4gICAgICBkYXRhLWV4dGVuc2lvbi1zbG90LW5hbWU9e25hbWV9XG4gICAgICBkYXRhLWV4dGVuc2lvbi1zbG90LW1vZHVsZS1uYW1lPXtleHRlbnNpb25TbG90TW9kdWxlTmFtZX1cbiAgICAgIHN0eWxlPXt7IC4uLnN0eWxlLCBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiIH19XG4gICAgICB7Li4uZGl2UHJvcHN9XG4gICAgPlxuICAgICAge25hbWUgJiZcbiAgICAgICAgZXh0ZW5zaW9uc1RvUmVuZGVyLm1hcCgoZXh0ZW5zaW9uLCBpKSA9PiAoXG4gICAgICAgICAgPENvbXBvbmVudENvbnRleHQuUHJvdmlkZXJcbiAgICAgICAgICAgIGtleT17ZXh0ZW5zaW9uLmlkfVxuICAgICAgICAgICAgdmFsdWU9e3tcbiAgICAgICAgICAgICAgbW9kdWxlTmFtZTogZXh0ZW5zaW9uU2xvdE1vZHVsZU5hbWUsIC8vIG1vZHVsZU5hbWUgaXMgbm90IHVzZWQgYnkgdGhlIHJlY2VpdmluZyBFeHRlbnNpb25cbiAgICAgICAgICAgICAgZXh0ZW5zaW9uOiB7XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uSWQ6IGV4dGVuc2lvbi5pZCxcbiAgICAgICAgICAgICAgICBleHRlbnNpb25TbG90TmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICBleHRlbnNpb25TbG90TW9kdWxlTmFtZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2V4dGVuc2lvbnNGcm9tQ2hpbGRyZW5GdW5jdGlvbj8uW2ldID8/XG4gICAgICAgICAgICAgICh0eXBlb2YgY2hpbGRyZW4gIT0gXCJmdW5jdGlvblwiID8gY2hpbGRyZW4gOiBudWxsKSA/PyAoXG4gICAgICAgICAgICAgICAgPEV4dGVuc2lvbiBzdGF0ZT17c3RhdGV9IC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Db21wb25lbnRDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZVJlZiIsInVzZU1lbW8iLCJDb21wb25lbnRDb250ZXh0IiwiRXh0ZW5zaW9uIiwidXNlRXh0ZW5zaW9uU2xvdCIsImRlZmF1bHRTZWxlY3QiLCJleHRlbnNpb25zIiwiRXh0ZW5zaW9uU2xvdCIsIm5hbWUiLCJleHRlbnNpb25TbG90TmFtZSIsImxlZ2FjeUV4dGVuc2lvblNsb3ROYW1lIiwic2VsZWN0IiwiY2hpbGRyZW4iLCJzdGF0ZSIsInN0eWxlIiwiZGl2UHJvcHMiLCJFcnJvciIsInNsb3RSZWYiLCJleHRlbnNpb25TbG90TW9kdWxlTmFtZSIsImV4dGVuc2lvbnNUb1JlbmRlciIsImV4dGVuc2lvbnNGcm9tQ2hpbGRyZW5GdW5jdGlvbiIsImlzVmFsaWRFbGVtZW50IiwibWFwIiwiZXh0ZW5zaW9uIiwiZGl2IiwicmVmIiwiZGF0YS1leHRlbnNpb24tc2xvdC1uYW1lIiwiZGF0YS1leHRlbnNpb24tc2xvdC1tb2R1bGUtbmFtZSIsInBvc2l0aW9uIiwiaSIsIlByb3ZpZGVyIiwia2V5IiwiaWQiLCJ2YWx1ZSIsIm1vZHVsZU5hbWUiLCJleHRlbnNpb25JZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/src/ExtensionSlot.tsx\n");
|
|
7075
7064
|
|
|
7076
7065
|
/***/ }),
|
|
7077
7066
|
|
|
@@ -7093,7 +7082,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
7093
7082
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
7094
7083
|
|
|
7095
7084
|
"use strict";
|
|
7096
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"createUseStore\": () => (/* binding */ createUseStore)\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/** @module @category Store */ function _arrayLikeToArray(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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _defineProperty(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 _iterableToArrayLimit(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 _nonIterableRest() {\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 _objectSpread(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 _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(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 _arrayLikeToArray(o, minLen);\n}\n\nfunction bindActions(store, actions) {\n if (typeof actions == \"function\") {\n actions = actions(store);\n }\n var bound = {};\n for(var i in actions)
|
|
7085
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"createUseStore\": () => (/* binding */ createUseStore)\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/** @module @category Store */ function _arrayLikeToArray(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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _defineProperty(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 _iterableToArrayLimit(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 _nonIterableRest() {\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 _objectSpread(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 _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(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 _arrayLikeToArray(o, minLen);\n}\n\nfunction bindActions(store, actions) {\n var _loop = function(i) {\n bound[i] = function() {\n var args = _arguments;\n store.setState(function(state) {\n var _args = [\n state\n ];\n for(var i1 = 0; i1 < args.length; i1++){\n _args.push(args[i1]);\n }\n return actions[i](_args);\n });\n };\n };\n var _arguments = arguments;\n if (typeof actions == \"function\") {\n actions = actions(store);\n }\n var bound = {};\n for(var i in actions)_loop(i);\n return bound;\n}\n/** Avoid this; generally prefer to have clients use `useStore(yourStore)` */ function createUseStore(store) {\n var useStore = function useStore(actions) {\n var ref = _slicedToArray((0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(store.getState()), 2), state = ref[0], set = ref[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n return store.subscribe(function(state) {\n return set(state);\n });\n }, []);\n var boundActions = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n return actions ? bindActions(store, actions) : {};\n }, [\n actions\n ]);\n return _objectSpread({}, state, boundActions);\n };\n return useStore;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvY3JlYXRlVXNlU3RvcmUudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNEJBQTRCLEdBQzVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFxRDtBQU1yRCxTQUFTRyxZQUFlQyxLQUFrQixFQUFFQyxPQUFnQixFQUFnQjs0QkFPbkQ7UUFDckJDLEtBQUssQ0FBQ0MsRUFBRSxHQUFHLFdBQU07WUFDZixJQUFNQztZQUNOSixNQUFNSyxRQUFRLENBQUMsU0FBQ0MsT0FBVTtnQkFDeEIsSUFBSUMsUUFBUTtvQkFBQ0Q7aUJBQU07Z0JBQ25CLElBQUssSUFBSUgsS0FBSSxHQUFHQSxLQUFJQyxLQUFLSSxNQUFNLEVBQUVMLEtBQUs7b0JBQ3BDSSxNQUFNRSxJQUFJLENBQUNMLElBQUksQ0FBQ0QsR0FBRTtnQkFDcEI7Z0JBRUEsT0FBT0YsT0FBTyxDQUFDRSxFQUFFLENBQUNJO1lBQ3BCO1FBQ0Y7SUFDRjs7SUFsQkEsSUFBSSxPQUFPTixXQUFXLFlBQVk7UUFDaENBLFVBQVVBLFFBQVFEO0lBQ3BCLENBQUM7SUFFRCxJQUFNRSxRQUFRLENBQUM7SUFFZixJQUFLLElBQUlDLEtBQUtGO0lBY2QsT0FBT0M7QUFDVDtBQUVBLDJFQUEyRSxHQUNwRSxTQUFTUSxlQUFrQlYsS0FBa0IsRUFBRTtRQUkzQ1csV0FBVCxTQUFTQSxTQUFTVixPQUFpQixFQUFFO1FBQ25DLElBQXFCSCxxQkFBQUEsK0NBQVFBLENBQUNFLE1BQU1ZLFFBQVEsU0FBckNOLFFBQWNSLFFBQVBlLE1BQU9mO1FBQ3JCRixnREFBU0EsQ0FBQzttQkFBTUksTUFBTWMsU0FBUyxDQUFDLFNBQUNSO3VCQUFVTyxJQUFJUDs7V0FBUyxFQUFFO1FBQzFELElBQUlTLGVBQTZCbEIsOENBQU9BLENBQ3RDO21CQUFPSSxVQUFVRixZQUFZQyxPQUFPQyxXQUFXLENBQUMsQ0FBQztXQUNqRDtZQUFDQTtTQUFRO1FBR1gsT0FBTyxrQkFBS0ssT0FBVVM7SUFDeEI7SUFFQSxPQUFPSjtBQUNULENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvc3JjL2NyZWF0ZVVzZVN0b3JlLnRzP2UyNzUiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IFN0b3JlICovXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFN0b3JlQXBpIH0gZnJvbSBcInp1c3RhbmRcIjtcblxuZXhwb3J0IHR5cGUgQWN0aW9ucyA9IEZ1bmN0aW9uIHwgeyBba2V5OiBzdHJpbmddOiBGdW5jdGlvbiB9O1xuZXhwb3J0IHR5cGUgQm91bmRBY3Rpb25zID0geyBba2V5OiBzdHJpbmddOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQgfTtcblxuZnVuY3Rpb24gYmluZEFjdGlvbnM8VD4oc3RvcmU6IFN0b3JlQXBpPFQ+LCBhY3Rpb25zOiBBY3Rpb25zKTogQm91bmRBY3Rpb25zIHtcbiAgaWYgKHR5cGVvZiBhY3Rpb25zID09IFwiZnVuY3Rpb25cIikge1xuICAgIGFjdGlvbnMgPSBhY3Rpb25zKHN0b3JlKTtcbiAgfVxuXG4gIGNvbnN0IGJvdW5kID0ge307XG5cbiAgZm9yIChsZXQgaSBpbiBhY3Rpb25zKSB7XG4gICAgYm91bmRbaV0gPSAoKSA9PiB7XG4gICAgICBjb25zdCBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgc3RvcmUuc2V0U3RhdGUoKHN0YXRlKSA9PiB7XG4gICAgICAgIGxldCBfYXJncyA9IFtzdGF0ZV07XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIF9hcmdzLnB1c2goYXJnc1tpXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWN0aW9uc1tpXShfYXJncyk7XG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGJvdW5kO1xufVxuXG4vKiogQXZvaWQgdGhpczsgZ2VuZXJhbGx5IHByZWZlciB0byBoYXZlIGNsaWVudHMgdXNlIGB1c2VTdG9yZSh5b3VyU3RvcmUpYCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVzZVN0b3JlPFQ+KHN0b3JlOiBTdG9yZUFwaTxUPikge1xuICBmdW5jdGlvbiB1c2VTdG9yZSgpOiBUO1xuICBmdW5jdGlvbiB1c2VTdG9yZShhY3Rpb25zOiBBY3Rpb25zKTogVCAmIEJvdW5kQWN0aW9ucztcbiAgZnVuY3Rpb24gdXNlU3RvcmUoYWN0aW9ucz86IEFjdGlvbnMpOiBUICYgQm91bmRBY3Rpb25zO1xuICBmdW5jdGlvbiB1c2VTdG9yZShhY3Rpb25zPzogQWN0aW9ucykge1xuICAgIGNvbnN0IFtzdGF0ZSwgc2V0XSA9IHVzZVN0YXRlKHN0b3JlLmdldFN0YXRlKCkpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiBzdG9yZS5zdWJzY3JpYmUoKHN0YXRlKSA9PiBzZXQoc3RhdGUpKSwgW10pO1xuICAgIGxldCBib3VuZEFjdGlvbnM6IEJvdW5kQWN0aW9ucyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoYWN0aW9ucyA/IGJpbmRBY3Rpb25zKHN0b3JlLCBhY3Rpb25zKSA6IHt9KSxcbiAgICAgIFthY3Rpb25zXVxuICAgICk7XG5cbiAgICByZXR1cm4geyAuLi5zdGF0ZSwgLi4uYm91bmRBY3Rpb25zIH07XG4gIH1cblxuICByZXR1cm4gdXNlU3RvcmU7XG59XG4iXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiYmluZEFjdGlvbnMiLCJzdG9yZSIsImFjdGlvbnMiLCJib3VuZCIsImkiLCJhcmdzIiwic2V0U3RhdGUiLCJzdGF0ZSIsIl9hcmdzIiwibGVuZ3RoIiwicHVzaCIsImNyZWF0ZVVzZVN0b3JlIiwidXNlU3RvcmUiLCJnZXRTdGF0ZSIsInNldCIsInN1YnNjcmliZSIsImJvdW5kQWN0aW9ucyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/src/createUseStore.ts\n");
|
|
7097
7086
|
|
|
7098
7087
|
/***/ }),
|
|
7099
7088
|
|
|
@@ -7181,7 +7170,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
7181
7170
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
7182
7171
|
|
|
7183
7172
|
"use strict";
|
|
7184
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"useConfig\": () => (/* binding */ useConfig)\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_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @openmrs/esm-config */ \"../../framework/esm-config/src/index.ts\");\n/* harmony import */ var _ComponentContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ComponentContext */ \"../../framework/esm-react-utils/src/ComponentContext.ts\");\n/* harmony import */ var lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash-es/isEqual */ \"../../../node_modules/lodash-es/isEqual.js\");\n/** @module @category Config */ function _arrayLikeToArray(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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _defineProperty(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 _iterableToArrayLimit(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 _nonIterableRest() {\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 _objectSpread(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 _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(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 _arrayLikeToArray(o, minLen);\n}\n\n\n\n\nvar promises = {};\nvar errorMessage = 'No ComponentContext has been provided. This should come from \"openmrsComponentDecorator\".\\nUsually this is already applied when using \"getAsyncLifecycle\" or \"getSyncLifecycle\".';\nfunction readInitialConfig(store) {\n return function() {\n var state = store.getState();\n if (state.loaded && state.config) {\n return state.config;\n }\n return null;\n };\n}\nfunction readInitialExtensionConfig(store, extension) {\n if (extension) {\n return function() {\n var state = store.getState();\n var extConfig = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionConfigFromStore)(state, extension.extensionSlotName, extension.extensionId);\n if (extConfig.loaded && extConfig.config) {\n return extConfig.config;\n }\n };\n }\n return null;\n}\nfunction createConfigPromise(store) {\n return new Promise(function(resolve) {\n var unsubscribe = store.subscribe(function(state) {\n if (state.loaded && state.config) {\n resolve(state.config);\n unsubscribe();\n }\n });\n });\n}\nfunction createExtensionConfigPromise(store, extension) {\n return new Promise(function(resolve) {\n var unsubscribe = store.subscribe(function(state) {\n var extConfig = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionConfigFromStore)(state, extension.extensionSlotName, extension.extensionId);\n if (extConfig.loaded && extConfig.config) {\n resolve(extConfig.config);\n unsubscribe();\n }\n });\n });\n}\nfunction useConfigStore(store) {\n var ref = _slicedToArray((0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(readInitialConfig(store)), 2), state = ref[0], setState = ref[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n return store === null || store === void 0 ? void 0 : store.subscribe(function(state) {\n if (state.loaded && state.config) {\n setState(state.config);\n }\n });\n }, [\n store\n ]);\n return state;\n}\nfunction useExtensionConfigStore(store, extension) {\n var ref = _slicedToArray((0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(readInitialExtensionConfig(store, extension)), 2), config = ref[0], setConfig = ref[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n if (extension) {\n return store.subscribe(function(state) {\n var extConfig = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionConfigFromStore)(state, extension.extensionSlotName, extension.extensionId);\n if (extConfig.loaded && extConfig.config && !(0,lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(extConfig.config, config)) {\n setConfig(extConfig.config);\n }\n });\n }\n }, [\n store,\n extension,\n config\n ]);\n return config;\n}\nfunction useExtensionConfig(extension) {\n var store = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionsConfigStore, []);\n var state = useExtensionConfigStore(store, extension);\n if (!state && extension) {\n var cacheId = \"\".concat(extension.extensionSlotName, \"-\").concat(extension.extensionId);\n if (!promises[cacheId] && store) {\n promises[cacheId] = createExtensionConfigPromise(store, extension);\n }\n // React will prevent the client component from rendering until the promise resolves\n throw promises[cacheId];\n }\n return state || {};\n}\nfunction useNormalConfig(moduleName) {\n var store = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n return (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getConfigStore)(moduleName);\n }, [\n moduleName\n ]);\n var cacheId = moduleName;\n var state = useConfigStore(store);\n if (!state) {\n if (!promises[cacheId]) {\n promises[cacheId] = createConfigPromise(store);\n }\n // React will prevent the client component from rendering until the promise resolves\n throw promises[cacheId];\n }\n return state;\n}\n/**\n * Use this React Hook to obtain your module's configuration.\n */ function useConfig() {\n // This hook uses the config of the MF defining the component.\n // If the component is used in an extension slot then the slot\n // may override (part of) its configuration.\n var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_ComponentContext__WEBPACK_IMPORTED_MODULE_2__.ComponentContext), moduleName = ref.moduleName, extension = ref.extension;\n if (!moduleName && !extension) {\n throw Error(errorMessage);\n }\n var normalConfig = useNormalConfig(moduleName);\n var extensionConfig = useExtensionConfig(extension);\n var config = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n return _objectSpread({}, normalConfig, extensionConfig);\n }, [\n normalConfig,\n extensionConfig\n ]);\n return config;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvdXNlQ29uZmlnLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDZCQUE2QixHQUM3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBaUU7QUFRcEM7QUFDd0M7QUFFN0I7QUFFeEMsSUFBTVMsV0FBa0QsQ0FBQztBQUN6RCxJQUFNQyxlQUFnQjtBQUd0QixTQUFTQyxrQkFBa0JDLEtBQXlCLEVBQUU7SUFDcEQsT0FBTyxXQUFNO1FBQ1gsSUFBTUMsUUFBUUQsTUFBTUUsUUFBUTtRQUU1QixJQUFJRCxNQUFNRSxNQUFNLElBQUlGLE1BQU1HLE1BQU0sRUFBRTtZQUNoQyxPQUFPSCxNQUFNRyxNQUFNO1FBQ3JCLENBQUM7UUFFRCxPQUFPLElBQUk7SUFDYjtBQUNGO0FBRUEsU0FBU0MsMkJBQ1BMLEtBQW1DLEVBQ25DTSxTQUFvQyxFQUNwQztJQUNBLElBQUlBLFdBQVc7UUFDYixPQUFPLFdBQU07WUFDWCxJQUFNTCxRQUFRRCxNQUFNRSxRQUFRO1lBQzVCLElBQU1LLFlBQVliLGdGQUEyQkEsQ0FDM0NPLE9BQ0FLLFVBQVVFLGlCQUFpQixFQUMzQkYsVUFBVUcsV0FBVztZQUV2QixJQUFJRixVQUFVSixNQUFNLElBQUlJLFVBQVVILE1BQU0sRUFBRTtnQkFDeEMsT0FBT0csVUFBVUgsTUFBTTtZQUN6QixDQUFDO1FBQ0g7SUFDRixDQUFDO0lBQ0QsT0FBTyxJQUFJO0FBQ2I7QUFFQSxTQUFTTSxvQkFBb0JWLEtBQXlCLEVBQUU7SUFDdEQsT0FBTyxJQUFJVyxRQUFzQixTQUFDQyxTQUFZO1FBQzVDLElBQU1DLGNBQWNiLE1BQU1jLFNBQVMsQ0FBQyxTQUFDYixPQUFVO1lBQzdDLElBQUlBLE1BQU1FLE1BQU0sSUFBSUYsTUFBTUcsTUFBTSxFQUFFO2dCQUNoQ1EsUUFBUVgsTUFBTUcsTUFBTTtnQkFD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Q0FBQztJQUVELE9BQU9wQjtBQUNUO0FBRUE7O0NBRUMsR0FDTSxTQUFTdUIsWUFFWjtJQUNGLDhEQUE4RDtJQUM5RCw4REFBOEQ7SUFDOUQsNENBQTRDO0lBQzVDLElBQWtDcEMsTUFBQUEsaURBQVVBLENBQUNPLCtEQUFnQkEsR0FBckQ0QixhQUEwQm5DLElBQTFCbUMsWUFBWWpCLFlBQWNsQixJQUFka0I7SUFFcEIsSUFBSSxDQUFDaUIsY0FBYyxDQUFDakIsV0FBVztRQUM3QixNQUFNbUIsTUFBTTNCLGNBQWM7SUFDNUIsQ0FBQztJQUVELElBQU00QixlQUFlSixnQkFBZ0JDO0lBQ3JDLElBQU1JLGtCQUFrQlAsbUJBQW1CZDtJQUMzQyxJQUFNRixTQUFTZCw4Q0FBT0EsQ0FDcEI7ZUFBTyxrQkFDRm9DLGNBQ0FDO09BRUw7UUFBQ0Q7UUFBY0M7S0FBZ0I7SUFHakMsT0FBT3ZCO0FBQ1QsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvdXNlQ29uZmlnLnRzPzFkMWYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IENvbmZpZyAqL1xuaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtcbiAgZ2V0Q29uZmlnU3RvcmUsXG4gIGdldEV4dGVuc2lvbnNDb25maWdTdG9yZSxcbiAgQ29uZmlnU3RvcmUsXG4gIENvbmZpZ09iamVjdCxcbiAgRXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLFxuICBnZXRFeHRlbnNpb25Db25maWdGcm9tU3RvcmUsXG59IGZyb20gXCJAb3Blbm1ycy9lc20tY29uZmlnXCI7XG5pbXBvcnQgeyBDb21wb25lbnRDb250ZXh0LCBFeHRlbnNpb25EYXRhIH0gZnJvbSBcIi4vQ29tcG9uZW50Q29udGV4dFwiO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tIFwidW5pc3RvcmVcIjtcbmltcG9ydCBpc0VxdWFsIGZyb20gXCJsb2Rhc2gtZXMvaXNFcXVhbFwiO1xuXG5jb25zdCBwcm9taXNlczogUmVjb3JkPHN0cmluZywgUHJvbWlzZTxDb25maWdPYmplY3Q+PiA9IHt9O1xuY29uc3QgZXJyb3JNZXNzYWdlID0gYE5vIENvbXBvbmVudENvbnRleHQgaGFzIGJlZW4gcHJvdmlkZWQuIFRoaXMgc2hvdWxkIGNvbWUgZnJvbSBcIm9wZW5tcnNDb21wb25lbnREZWNvcmF0b3JcIi5cblVzdWFsbHkgdGhpcyBpcyBhbHJlYWR5IGFwcGxpZWQgd2hlbiB1c2luZyBcImdldEFzeW5jTGlmZWN5Y2xlXCIgb3IgXCJnZXRTeW5jTGlmZWN5Y2xlXCIuYDtcblxuZnVuY3Rpb24gcmVhZEluaXRpYWxDb25maWcoc3RvcmU6IFN0b3JlPENvbmZpZ1N0b3JlPikge1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gc3RvcmUuZ2V0U3RhdGUoKTtcblxuICAgIGlmIChzdGF0ZS5sb2FkZWQgJiYgc3RhdGUuY29uZmlnKSB7XG4gICAgICByZXR1cm4gc3RhdGUuY29uZmlnO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9O1xufVxuXG5mdW5jdGlvbiByZWFkSW5pdGlhbEV4dGVuc2lvbkNvbmZpZyhcbiAgc3RvcmU6IFN0b3JlPEV4dGVuc2lvbnNDb25maWdTdG9yZT4sXG4gIGV4dGVuc2lvbjogRXh0ZW5zaW9uRGF0YSB8IHVuZGVmaW5lZFxuKSB7XG4gIGlmIChleHRlbnNpb24pIHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpO1xuICAgICAgY29uc3QgZXh0Q29uZmlnID0gZ2V0RXh0ZW5zaW9uQ29uZmlnRnJvbVN0b3JlKFxuICAgICAgICBzdGF0ZSxcbiAgICAgICAgZXh0ZW5zaW9uLmV4dGVuc2lvblNsb3ROYW1lLFxuICAgICAgICBleHRlbnNpb24uZXh0ZW5zaW9uSWRcbiAgICAgICk7XG4gICAgICBpZiAoZXh0Q29uZmlnLmxvYWRlZCAmJiBleHRDb25maWcuY29uZmlnKSB7XG4gICAgICAgIHJldHVybiBleHRDb25maWcuY29uZmlnO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbmZpZ1Byb21pc2Uoc3RvcmU6IFN0b3JlPENvbmZpZ1N0b3JlPikge1xuICByZXR1cm4gbmV3IFByb21pc2U8Q29uZmlnT2JqZWN0PigocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gc3RvcmUuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgaWYgKHN0YXRlLmxvYWRlZCAmJiBzdGF0ZS5jb25maWcpIHtcbiAgICAgICAgcmVzb2x2ZShzdGF0ZS5jb25maWcpO1xuICAgICAgICB1bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRXh0ZW5zaW9uQ29uZmlnUHJvbWlzZShcbiAgc3RvcmU6IFN0b3JlPEV4dGVuc2lvbnNDb25maWdTdG9yZT4sXG4gIGV4dGVuc2lvbjogRXh0ZW5zaW9uRGF0YVxuKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxDb25maWdPYmplY3Q+KChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgdW5zdWJzY3JpYmUgPSBzdG9yZS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICBjb25zdCBleHRDb25maWcgPSBnZXRFeHRlbnNpb25Db25maWdGcm9tU3RvcmUoXG4gICAgICAgIHN0YXRlLFxuICAgICAgICBleHRlbnNpb24uZXh0ZW5zaW9uU2xvdE5hbWUsXG4gICAgICAgIGV4dGVuc2lvbi5leHRlbnNpb25JZFxuICAgICAgKTtcbiAgICAgIGlmIChleHRDb25maWcubG9hZGVkICYmIGV4dENvbmZpZy5jb25maWcpIHtcbiAgICAgICAgcmVzb2x2ZShleHRDb25maWcuY29uZmlnKTtcbiAgICAgICAgdW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHVzZUNvbmZpZ1N0b3JlKHN0b3JlOiBTdG9yZTxDb25maWdTdG9yZT4pIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZShyZWFkSW5pdGlhbENvbmZpZyhzdG9yZSkpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIHN0b3JlPy5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICBpZiAoc3RhdGUubG9hZGVkICYmIHN0YXRlLmNvbmZpZykge1xuICAgICAgICBzZXRTdGF0ZShzdGF0ZS5jb25maWcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbc3RvcmVdKTtcblxuICByZXR1cm4gc3RhdGU7XG59XG5cbmZ1bmN0aW9uIHVzZUV4dGVuc2lvbkNvbmZpZ1N0b3JlKFxuICBzdG9yZTogU3RvcmU8RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlPixcbiAgZXh0ZW5zaW9uOiBFeHRlbnNpb25EYXRhIHwgdW5kZWZpbmVkXG4pIHtcbiAgY29uc3QgW2NvbmZpZywgc2V0Q29uZmlnXSA9IHVzZVN0YXRlPENvbmZpZ09iamVjdCB8IG51bGw+KFxuICAgIHJlYWRJbml0aWFsRXh0ZW5zaW9uQ29uZmlnKHN0b3JlLCBleHRlbnNpb24pXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZXh0ZW5zaW9uKSB7XG4gICAgICByZXR1cm4gc3RvcmUuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgICBjb25zdCBleHRDb25maWcgPSBnZXRFeHRlbnNpb25Db25maWdGcm9tU3RvcmUoXG4gICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgZXh0ZW5zaW9uLmV4dGVuc2lvblNsb3ROYW1lLFxuICAgICAgICAgIGV4dGVuc2lvbi5leHRlbnNpb25JZFxuICAgICAgICApO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXh0Q29uZmlnLmxvYWRlZCAmJlxuICAgICAgICAgIGV4dENvbmZpZy5jb25maWcgJiZcbiAgICAgICAgICAhaXNFcXVhbChleHRDb25maWcuY29uZmlnLCBjb25maWcpXG4gICAgICAgICkge1xuICAgICAgICAgIHNldENvbmZpZyhleHRDb25maWcuY29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbc3RvcmUsIGV4dGVuc2lvbiwgY29uZmlnXSk7XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cblxuZnVuY3Rpb24gdXNlRXh0ZW5zaW9uQ29uZmlnKGV4dGVuc2lvbjogRXh0ZW5zaW9uRGF0YSB8IHVuZGVmaW5lZCkge1xuICBjb25zdCBzdG9yZSA9IHVzZU1lbW8oZ2V0RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLCBbXSk7XG4gIGNvbnN0IHN0YXRlID0gdXNlRXh0ZW5zaW9uQ29uZmlnU3RvcmUoc3RvcmUsIGV4dGVuc2lvbik7XG5cbiAgaWYgKCFzdGF0ZSAmJiBleHRlbnNpb24pIHtcbiAgICBjb25zdCBjYWNoZUlkID0gYCR7ZXh0ZW5zaW9uLmV4dGVuc2lvblNsb3ROYW1lfS0ke2V4dGVuc2lvbi5leHRlbnNpb25JZH1gO1xuXG4gICAgaWYgKCFwcm9taXNlc1tjYWNoZUlkXSAmJiBzdG9yZSkge1xuICAgICAgcHJvbWlzZXNbY2FjaGVJZF0gPSBjcmVhdGVFeHRlbnNpb25Db25maWdQcm9taXNlKHN0b3JlLCBleHRlbnNpb24pO1xuICAgIH1cblxuICAgIC8vIFJlYWN0IHdpbGwgcHJldmVudCB0aGUgY2xpZW50IGNvbXBvbmVudCBmcm9tIHJlbmRlcmluZyB1bnRpbCB0aGUgcHJvbWlzZSByZXNvbHZlc1xuICAgIHRocm93IHByb21pc2VzW2NhY2hlSWRdO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlIHx8IHt9O1xufVxuXG5mdW5jdGlvbiB1c2VOb3JtYWxDb25maWcobW9kdWxlTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHN0b3JlID0gdXNlTWVtbygoKSA9PiBnZXRDb25maWdTdG9yZShtb2R1bGVOYW1lKSwgW21vZHVsZU5hbWVdKTtcbiAgY29uc3QgY2FjaGVJZCA9IG1vZHVsZU5hbWU7XG4gIGNvbnN0IHN0YXRlID0gdXNlQ29uZmlnU3RvcmUoc3RvcmUpO1xuXG4gIGlmICghc3RhdGUpIHtcbiAgICBpZiAoIXByb21pc2VzW2NhY2hlSWRdKSB7XG4gICAgICBwcm9taXNlc1tjYWNoZUlkXSA9IGNyZWF0ZUNvbmZpZ1Byb21pc2Uoc3RvcmUpO1xuICAgIH1cblxuICAgIC8vIFJlYWN0IHdpbGwgcHJldmVudCB0aGUgY2xpZW50IGNvbXBvbmVudCBmcm9tIHJlbmRlcmluZyB1bnRpbCB0aGUgcHJvbWlzZSByZXNvbHZlc1xuICAgIHRocm93IHByb21pc2VzW2NhY2hlSWRdO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufVxuXG4vKipcbiAqIFVzZSB0aGlzIFJlYWN0IEhvb2sgdG8gb2J0YWluIHlvdXIgbW9kdWxlJ3MgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNvbmZpZzxcbiAgVCA9IE9taXQ8Q29uZmlnT2JqZWN0LCBcIkRpc3BsYXkgY29uZGl0aW9uc1wiIHwgXCJUcmFuc2xhdGlvbiBvdmVycmlkZXNcIj5cbj4oKSB7XG4gIC8vIFRoaXMgaG9vayB1c2VzIHRoZSBjb25maWcgb2YgdGhlIE1GIGRlZmluaW5nIHRoZSBjb21wb25lbnQuXG4gIC8vIElmIHRoZSBjb21wb25lbnQgaXMgdXNlZCBpbiBhbiBleHRlbnNpb24gc2xvdCB0aGVuIHRoZSBzbG90XG4gIC8vIG1heSBvdmVycmlkZSAocGFydCBvZikgaXRzIGNvbmZpZ3VyYXRpb24uXG4gIGNvbnN0IHsgbW9kdWxlTmFtZSwgZXh0ZW5zaW9uIH0gPSB1c2VDb250ZXh0KENvbXBvbmVudENvbnRleHQpO1xuXG4gIGlmICghbW9kdWxlTmFtZSAmJiAhZXh0ZW5zaW9uKSB7XG4gICAgdGhyb3cgRXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgfVxuXG4gIGNvbnN0IG5vcm1hbENvbmZpZyA9IHVzZU5vcm1hbENvbmZpZyhtb2R1bGVOYW1lKTtcbiAgY29uc3QgZXh0ZW5zaW9uQ29uZmlnID0gdXNlRXh0ZW5zaW9uQ29uZmlnKGV4dGVuc2lvbik7XG4gIGNvbnN0IGNvbmZpZyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIC4uLm5vcm1hbENvbmZpZyxcbiAgICAgIC4uLmV4dGVuc2lvbkNvbmZpZyxcbiAgICB9KSxcbiAgICBbbm9ybWFsQ29uZmlnLCBleHRlbnNpb25Db25maWddXG4gICk7XG5cbiAgcmV0dXJuIGNvbmZpZyBhcyBUO1xufVxuIl0sIm5hbWVzIjpbInVzZUNvbnRleHQiLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlU3RhdGUiLCJnZXRDb25maWdTdG9yZSIsImdldEV4dGVuc2lvbnNDb25maWdTdG9yZSIsImdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZSIsIkNvbXBvbmVudENvbnRleHQiLCJpc0VxdWFsIiwicHJvbWlzZXMiLCJlcnJvck1lc3NhZ2UiLCJyZWFkSW5pdGlhbENvbmZpZyIsInN0b3JlIiwic3RhdGUiLCJnZXRTdGF0ZSIsImxvYWRlZCIsImNvbmZpZyIsInJlYWRJbml0aWFsRXh0ZW5zaW9uQ29uZmlnIiwiZXh0ZW5zaW9uIiwiZXh0Q29uZmlnIiwiZXh0ZW5zaW9uU2xvdE5hbWUiLCJleHRlbnNpb25JZCIsImNyZWF0ZUNvbmZpZ1Byb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInVuc3Vic2NyaWJlIiwic3Vic2NyaWJlIiwiY3JlYXRlRXh0ZW5zaW9uQ29uZmlnUHJvbWlzZSIsInVzZUNvbmZpZ1N0b3JlIiwic2V0U3RhdGUiLCJ1c2VFeHRlbnNpb25Db25maWdTdG9yZSIsInNldENvbmZpZyIsInVzZUV4dGVuc2lvbkNvbmZpZyIsImNhY2hlSWQiLCJ1c2VOb3JtYWxDb25maWciLCJtb2R1bGVOYW1lIiwidXNlQ29uZmlnIiwiRXJyb3IiLCJub3JtYWxDb25maWciLCJleHRlbnNpb25Db25maWciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/src/useConfig.ts\n");
|
|
7173
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"useConfig\": () => (/* binding */ useConfig)\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_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_3__ = __webpack_require__(/*! lodash-es/isEqual */ \"../../../node_modules/lodash-es/isEqual.js\");\n/* harmony import */ var _ComponentContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ComponentContext */ \"../../framework/esm-react-utils/src/ComponentContext.ts\");\n/** @module @category Config */ function _arrayLikeToArray(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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _defineProperty(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 _iterableToArrayLimit(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 _nonIterableRest() {\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 _objectSpread(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 _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(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 _arrayLikeToArray(o, minLen);\n}\n\n\n\n\nvar promises = {};\nvar errorMessage = 'No ComponentContext has been provided. This should come from \"openmrsComponentDecorator\".\\nUsually this is already applied when using \"getAsyncLifecycle\" or \"getSyncLifecycle\".';\nfunction readInitialConfig(store) {\n return function() {\n var state = store.getState();\n if (state.loaded && state.config) {\n return state.config;\n }\n return null;\n };\n}\nfunction readInitialExtensionConfig(store, extension) {\n if (extension) {\n return function() {\n var state = store.getState();\n var extConfig = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionConfigFromStore)(state, extension.extensionSlotName, extension.extensionId);\n if (extConfig.loaded && extConfig.config) {\n return extConfig.config;\n }\n };\n }\n return null;\n}\nfunction createConfigPromise(store) {\n return new Promise(function(resolve) {\n var unsubscribe = store.subscribe(function(state) {\n if (state.loaded && state.config) {\n resolve(state.config);\n unsubscribe();\n }\n });\n });\n}\nfunction createExtensionConfigPromise(store, extension) {\n return new Promise(function(resolve) {\n var unsubscribe = store.subscribe(function(state) {\n var extConfig = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionConfigFromStore)(state, extension.extensionSlotName, extension.extensionId);\n if (extConfig.loaded && extConfig.config) {\n resolve(extConfig.config);\n unsubscribe();\n }\n });\n });\n}\nfunction useConfigStore(store) {\n var ref = _slicedToArray((0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(readInitialConfig(store)), 2), state = ref[0], setState = ref[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n return store === null || store === void 0 ? void 0 : store.subscribe(function(state) {\n if (state.loaded && state.config) {\n setState(state.config);\n }\n });\n }, [\n store\n ]);\n return state;\n}\nfunction useExtensionConfigStore(store, extension) {\n var ref = _slicedToArray((0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(readInitialExtensionConfig(store, extension)), 2), config = ref[0], setConfig = ref[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n if (extension) {\n return store.subscribe(function(state) {\n var extConfig = (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionConfigFromStore)(state, extension.extensionSlotName, extension.extensionId);\n if (extConfig.loaded && extConfig.config && !(0,lodash_es_isEqual__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(extConfig.config, config)) {\n setConfig(extConfig.config);\n }\n });\n }\n }, [\n store,\n extension,\n config\n ]);\n return config;\n}\nfunction useExtensionConfig(extension) {\n var store = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getExtensionsConfigStore, []);\n var state = useExtensionConfigStore(store, extension);\n if (!state && extension) {\n var cacheId = \"\".concat(extension.extensionSlotName, \"-\").concat(extension.extensionId);\n if (!promises[cacheId] && store) {\n promises[cacheId] = createExtensionConfigPromise(store, extension);\n }\n // React will prevent the client component from rendering until the promise resolves\n throw promises[cacheId];\n }\n return state || {};\n}\nfunction useNormalConfig(moduleName) {\n var store = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n return (0,_openmrs_esm_config__WEBPACK_IMPORTED_MODULE_1__.getConfigStore)(moduleName);\n }, [\n moduleName\n ]);\n var cacheId = moduleName;\n var state = useConfigStore(store);\n if (!state) {\n if (!promises[cacheId]) {\n promises[cacheId] = createConfigPromise(store);\n }\n // React will prevent the client component from rendering until the promise resolves\n throw promises[cacheId];\n }\n return state;\n}\n/**\n * Use this React Hook to obtain your module's configuration.\n */ function useConfig() {\n // This hook uses the config of the MF defining the component.\n // If the component is used in an extension slot then the slot\n // may override (part of) its configuration.\n var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_ComponentContext__WEBPACK_IMPORTED_MODULE_2__.ComponentContext), moduleName = ref.moduleName, extension = ref.extension;\n if (!moduleName && !extension) {\n throw Error(errorMessage);\n }\n var normalConfig = useNormalConfig(moduleName);\n var extensionConfig = useExtensionConfig(extension);\n var config = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(function() {\n return _objectSpread({}, normalConfig, extensionConfig);\n }, [\n normalConfig,\n extensionConfig\n ]);\n return config;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvdXNlQ29uZmlnLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDZCQUE2QixHQUM3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBaUU7QUFRcEM7QUFFVztBQUM2QjtBQUVyRSxJQUFNUyxXQUFrRCxDQUFDO0FBQ3pELElBQU1DLGVBQWdCO0FBR3RCLFNBQVNDLGtCQUFrQkMsS0FBNEIsRUFBRTtJQUN2RCxPQUFPLFdBQU07UUFDWCxJQUFNQyxRQUFRRCxNQUFNRSxRQUFRO1FBRTVCLElBQUlELE1BQU1FLE1BQU0sSUFBSUYsTUFBTUcsTUFBTSxFQUFFO1lBQ2hDLE9BQU9ILE1BQU1HLE1BQU07UUFDckIsQ0FBQztRQUVELE9BQU8sSUFBSTtJQUNiO0FBQ0Y7QUFFQSxTQUFTQywyQkFDUEwsS0FBc0MsRUFDdENNLFNBQW9DLEVBQ3BDO0lBQ0EsSUFBSUEsV0FBVztRQUNiLE9BQU8sV0FBTTtZQUNYLElBQU1MLFFBQVFELE1BQU1FLFFBQVE7WUFDNUIsSUFBTUssWUFBWWIsZ0ZBQTJCQSxDQUMzQ08sT0FDQUssVUFBVUUsaUJBQWlCLEVBQzNCRixVQUFVRyxXQUFXO1lBRXZCLElBQUlGLFVBQVVKLE1BQU0sSUFBSUksVUFBVUgsTUFBTSxFQUFFO2dCQUN4QyxPQUFPRyxVQUFVSCxNQUFNO1lBQ3pCLENBQUM7UUFDSDtJQUNGLENBQUM7SUFDRCxPQUFPLElBQUk7QUFDYjtBQUVBLFNBQVNNLG9CQUFvQlYsS0FBNEIsRUFBRTtJQUN6RCxPQUFPLElBQUlXLFFBQXNCLFNBQUNDLFNBQVk7UUFDNUMsSUFBTUMsY0FBY2IsTUFBTWMsU0FBUyxDQUFDLFNBQUNiLE9BQVU7WUFDN0MsSUFBSUEsTUFBTUUsTUFBTSxJQUFJRixNQUFNRyxNQUFNLEVBQUU7Z0JBQ2hDUSxRQUFRWCxNQUFNRyxNQUFNO2dCQUNw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QUFDO0lBRUQsT0FBT3BCO0FBQ1Q7QUFFQTs7Q0FFQyxHQUNNLFNBQVN1QixZQUVaO0lBQ0YsOERBQThEO0lBQzlELDhEQUE4RDtJQUM5RCw0Q0FBNEM7SUFDNUMsSUFBa0NwQyxNQUFBQSxpREFBVUEsQ0FBQ1EsK0RBQWdCQSxHQUFyRDJCLGFBQTBCbkMsSUFBMUJtQyxZQUFZakIsWUFBY2xCLElBQWRrQjtJQUVwQixJQUFJLENBQUNpQixjQUFjLENBQUNqQixXQUFXO1FBQzdCLE1BQU1tQixNQUFNM0IsY0FBYztJQUM1QixDQUFDO0lBRUQsSUFBTTRCLGVBQWVKLGdCQUFnQkM7SUFDckMsSUFBTUksa0JBQWtCUCxtQkFBbUJkO0lBQzNDLElBQU1GLFNBQVNkLDhDQUFPQSxDQUNwQjtlQUFPLGtCQUNGb0MsY0FDQUM7T0FFTDtRQUFDRDtRQUFjQztLQUFnQjtJQUdqQyxPQUFPdkI7QUFDVCxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLXJlYWN0LXV0aWxzL3NyYy91c2VDb25maWcudHM/MWQxZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgQ29uZmlnICovXG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge1xuICBnZXRDb25maWdTdG9yZSxcbiAgZ2V0RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLFxuICBDb25maWdTdG9yZSxcbiAgQ29uZmlnT2JqZWN0LFxuICBFeHRlbnNpb25zQ29uZmlnU3RvcmUsXG4gIGdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZSxcbn0gZnJvbSBcIkBvcGVubXJzL2VzbS1jb25maWdcIjtcbmltcG9ydCB0eXBlIHsgU3RvcmVBcGkgfSBmcm9tIFwienVzdGFuZFwiO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSBcImxvZGFzaC1lcy9pc0VxdWFsXCI7XG5pbXBvcnQgeyBDb21wb25lbnRDb250ZXh0LCBFeHRlbnNpb25EYXRhIH0gZnJvbSBcIi4vQ29tcG9uZW50Q29udGV4dFwiO1xuXG5jb25zdCBwcm9taXNlczogUmVjb3JkPHN0cmluZywgUHJvbWlzZTxDb25maWdPYmplY3Q+PiA9IHt9O1xuY29uc3QgZXJyb3JNZXNzYWdlID0gYE5vIENvbXBvbmVudENvbnRleHQgaGFzIGJlZW4gcHJvdmlkZWQuIFRoaXMgc2hvdWxkIGNvbWUgZnJvbSBcIm9wZW5tcnNDb21wb25lbnREZWNvcmF0b3JcIi5cblVzdWFsbHkgdGhpcyBpcyBhbHJlYWR5IGFwcGxpZWQgd2hlbiB1c2luZyBcImdldEFzeW5jTGlmZWN5Y2xlXCIgb3IgXCJnZXRTeW5jTGlmZWN5Y2xlXCIuYDtcblxuZnVuY3Rpb24gcmVhZEluaXRpYWxDb25maWcoc3RvcmU6IFN0b3JlQXBpPENvbmZpZ1N0b3JlPikge1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gc3RvcmUuZ2V0U3RhdGUoKTtcblxuICAgIGlmIChzdGF0ZS5sb2FkZWQgJiYgc3RhdGUuY29uZmlnKSB7XG4gICAgICByZXR1cm4gc3RhdGUuY29uZmlnO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9O1xufVxuXG5mdW5jdGlvbiByZWFkSW5pdGlhbEV4dGVuc2lvbkNvbmZpZyhcbiAgc3RvcmU6IFN0b3JlQXBpPEV4dGVuc2lvbnNDb25maWdTdG9yZT4sXG4gIGV4dGVuc2lvbjogRXh0ZW5zaW9uRGF0YSB8IHVuZGVmaW5lZFxuKSB7XG4gIGlmIChleHRlbnNpb24pIHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpO1xuICAgICAgY29uc3QgZXh0Q29uZmlnID0gZ2V0RXh0ZW5zaW9uQ29uZmlnRnJvbVN0b3JlKFxuICAgICAgICBzdGF0ZSxcbiAgICAgICAgZXh0ZW5zaW9uLmV4dGVuc2lvblNsb3ROYW1lLFxuICAgICAgICBleHRlbnNpb24uZXh0ZW5zaW9uSWRcbiAgICAgICk7XG4gICAgICBpZiAoZXh0Q29uZmlnLmxvYWRlZCAmJiBleHRDb25maWcuY29uZmlnKSB7XG4gICAgICAgIHJldHVybiBleHRDb25maWcuY29uZmlnO1xuICAgICAgfVxuICAgIH07XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbmZpZ1Byb21pc2Uoc3RvcmU6IFN0b3JlQXBpPENvbmZpZ1N0b3JlPikge1xuICByZXR1cm4gbmV3IFByb21pc2U8Q29uZmlnT2JqZWN0PigocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gc3RvcmUuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgaWYgKHN0YXRlLmxvYWRlZCAmJiBzdGF0ZS5jb25maWcpIHtcbiAgICAgICAgcmVzb2x2ZShzdGF0ZS5jb25maWcpO1xuICAgICAgICB1bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRXh0ZW5zaW9uQ29uZmlnUHJvbWlzZShcbiAgc3RvcmU6IFN0b3JlQXBpPEV4dGVuc2lvbnNDb25maWdTdG9yZT4sXG4gIGV4dGVuc2lvbjogRXh0ZW5zaW9uRGF0YVxuKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxDb25maWdPYmplY3Q+KChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgdW5zdWJzY3JpYmUgPSBzdG9yZS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICBjb25zdCBleHRDb25maWcgPSBnZXRFeHRlbnNpb25Db25maWdGcm9tU3RvcmUoXG4gICAgICAgIHN0YXRlLFxuICAgICAgICBleHRlbnNpb24uZXh0ZW5zaW9uU2xvdE5hbWUsXG4gICAgICAgIGV4dGVuc2lvbi5leHRlbnNpb25JZFxuICAgICAgKTtcbiAgICAgIGlmIChleHRDb25maWcubG9hZGVkICYmIGV4dENvbmZpZy5jb25maWcpIHtcbiAgICAgICAgcmVzb2x2ZShleHRDb25maWcuY29uZmlnKTtcbiAgICAgICAgdW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHVzZUNvbmZpZ1N0b3JlKHN0b3JlOiBTdG9yZUFwaTxDb25maWdTdG9yZT4pIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZShyZWFkSW5pdGlhbENvbmZpZyhzdG9yZSkpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIHN0b3JlPy5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICBpZiAoc3RhdGUubG9hZGVkICYmIHN0YXRlLmNvbmZpZykge1xuICAgICAgICBzZXRTdGF0ZShzdGF0ZS5jb25maWcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbc3RvcmVdKTtcblxuICByZXR1cm4gc3RhdGU7XG59XG5cbmZ1bmN0aW9uIHVzZUV4dGVuc2lvbkNvbmZpZ1N0b3JlKFxuICBzdG9yZTogU3RvcmVBcGk8RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlPixcbiAgZXh0ZW5zaW9uOiBFeHRlbnNpb25EYXRhIHwgdW5kZWZpbmVkXG4pIHtcbiAgY29uc3QgW2NvbmZpZywgc2V0Q29uZmlnXSA9IHVzZVN0YXRlPENvbmZpZ09iamVjdCB8IG51bGw+KFxuICAgIHJlYWRJbml0aWFsRXh0ZW5zaW9uQ29uZmlnKHN0b3JlLCBleHRlbnNpb24pXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZXh0ZW5zaW9uKSB7XG4gICAgICByZXR1cm4gc3RvcmUuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgICBjb25zdCBleHRDb25maWcgPSBnZXRFeHRlbnNpb25Db25maWdGcm9tU3RvcmUoXG4gICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgZXh0ZW5zaW9uLmV4dGVuc2lvblNsb3ROYW1lLFxuICAgICAgICAgIGV4dGVuc2lvbi5leHRlbnNpb25JZFxuICAgICAgICApO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXh0Q29uZmlnLmxvYWRlZCAmJlxuICAgICAgICAgIGV4dENvbmZpZy5jb25maWcgJiZcbiAgICAgICAgICAhaXNFcXVhbChleHRDb25maWcuY29uZmlnLCBjb25maWcpXG4gICAgICAgICkge1xuICAgICAgICAgIHNldENvbmZpZyhleHRDb25maWcuY29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbc3RvcmUsIGV4dGVuc2lvbiwgY29uZmlnXSk7XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cblxuZnVuY3Rpb24gdXNlRXh0ZW5zaW9uQ29uZmlnKGV4dGVuc2lvbjogRXh0ZW5zaW9uRGF0YSB8IHVuZGVmaW5lZCkge1xuICBjb25zdCBzdG9yZSA9IHVzZU1lbW8oZ2V0RXh0ZW5zaW9uc0NvbmZpZ1N0b3JlLCBbXSk7XG4gIGNvbnN0IHN0YXRlID0gdXNlRXh0ZW5zaW9uQ29uZmlnU3RvcmUoc3RvcmUsIGV4dGVuc2lvbik7XG5cbiAgaWYgKCFzdGF0ZSAmJiBleHRlbnNpb24pIHtcbiAgICBjb25zdCBjYWNoZUlkID0gYCR7ZXh0ZW5zaW9uLmV4dGVuc2lvblNsb3ROYW1lfS0ke2V4dGVuc2lvbi5leHRlbnNpb25JZH1gO1xuXG4gICAgaWYgKCFwcm9taXNlc1tjYWNoZUlkXSAmJiBzdG9yZSkge1xuICAgICAgcHJvbWlzZXNbY2FjaGVJZF0gPSBjcmVhdGVFeHRlbnNpb25Db25maWdQcm9taXNlKHN0b3JlLCBleHRlbnNpb24pO1xuICAgIH1cblxuICAgIC8vIFJlYWN0IHdpbGwgcHJldmVudCB0aGUgY2xpZW50IGNvbXBvbmVudCBmcm9tIHJlbmRlcmluZyB1bnRpbCB0aGUgcHJvbWlzZSByZXNvbHZlc1xuICAgIHRocm93IHByb21pc2VzW2NhY2hlSWRdO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlIHx8IHt9O1xufVxuXG5mdW5jdGlvbiB1c2VOb3JtYWxDb25maWcobW9kdWxlTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHN0b3JlID0gdXNlTWVtbygoKSA9PiBnZXRDb25maWdTdG9yZShtb2R1bGVOYW1lKSwgW21vZHVsZU5hbWVdKTtcbiAgY29uc3QgY2FjaGVJZCA9IG1vZHVsZU5hbWU7XG4gIGNvbnN0IHN0YXRlID0gdXNlQ29uZmlnU3RvcmUoc3RvcmUpO1xuXG4gIGlmICghc3RhdGUpIHtcbiAgICBpZiAoIXByb21pc2VzW2NhY2hlSWRdKSB7XG4gICAgICBwcm9taXNlc1tjYWNoZUlkXSA9IGNyZWF0ZUNvbmZpZ1Byb21pc2Uoc3RvcmUpO1xuICAgIH1cblxuICAgIC8vIFJlYWN0IHdpbGwgcHJldmVudCB0aGUgY2xpZW50IGNvbXBvbmVudCBmcm9tIHJlbmRlcmluZyB1bnRpbCB0aGUgcHJvbWlzZSByZXNvbHZlc1xuICAgIHRocm93IHByb21pc2VzW2NhY2hlSWRdO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufVxuXG4vKipcbiAqIFVzZSB0aGlzIFJlYWN0IEhvb2sgdG8gb2J0YWluIHlvdXIgbW9kdWxlJ3MgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNvbmZpZzxcbiAgVCA9IE9taXQ8Q29uZmlnT2JqZWN0LCBcIkRpc3BsYXkgY29uZGl0aW9uc1wiIHwgXCJUcmFuc2xhdGlvbiBvdmVycmlkZXNcIj5cbj4oKSB7XG4gIC8vIFRoaXMgaG9vayB1c2VzIHRoZSBjb25maWcgb2YgdGhlIE1GIGRlZmluaW5nIHRoZSBjb21wb25lbnQuXG4gIC8vIElmIHRoZSBjb21wb25lbnQgaXMgdXNlZCBpbiBhbiBleHRlbnNpb24gc2xvdCB0aGVuIHRoZSBzbG90XG4gIC8vIG1heSBvdmVycmlkZSAocGFydCBvZikgaXRzIGNvbmZpZ3VyYXRpb24uXG4gIGNvbnN0IHsgbW9kdWxlTmFtZSwgZXh0ZW5zaW9uIH0gPSB1c2VDb250ZXh0KENvbXBvbmVudENvbnRleHQpO1xuXG4gIGlmICghbW9kdWxlTmFtZSAmJiAhZXh0ZW5zaW9uKSB7XG4gICAgdGhyb3cgRXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgfVxuXG4gIGNvbnN0IG5vcm1hbENvbmZpZyA9IHVzZU5vcm1hbENvbmZpZyhtb2R1bGVOYW1lKTtcbiAgY29uc3QgZXh0ZW5zaW9uQ29uZmlnID0gdXNlRXh0ZW5zaW9uQ29uZmlnKGV4dGVuc2lvbik7XG4gIGNvbnN0IGNvbmZpZyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIC4uLm5vcm1hbENvbmZpZyxcbiAgICAgIC4uLmV4dGVuc2lvbkNvbmZpZyxcbiAgICB9KSxcbiAgICBbbm9ybWFsQ29uZmlnLCBleHRlbnNpb25Db25maWddXG4gICk7XG5cbiAgcmV0dXJuIGNvbmZpZyBhcyBUO1xufVxuIl0sIm5hbWVzIjpbInVzZUNvbnRleHQiLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlU3RhdGUiLCJnZXRDb25maWdTdG9yZSIsImdldEV4dGVuc2lvbnNDb25maWdTdG9yZSIsImdldEV4dGVuc2lvbkNvbmZpZ0Zyb21TdG9yZSIsImlzRXF1YWwiLCJDb21wb25lbnRDb250ZXh0IiwicHJvbWlzZXMiLCJlcnJvck1lc3NhZ2UiLCJyZWFkSW5pdGlhbENvbmZpZyIsInN0b3JlIiwic3RhdGUiLCJnZXRTdGF0ZSIsImxvYWRlZCIsImNvbmZpZyIsInJlYWRJbml0aWFsRXh0ZW5zaW9uQ29uZmlnIiwiZXh0ZW5zaW9uIiwiZXh0Q29uZmlnIiwiZXh0ZW5zaW9uU2xvdE5hbWUiLCJleHRlbnNpb25JZCIsImNyZWF0ZUNvbmZpZ1Byb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInVuc3Vic2NyaWJlIiwic3Vic2NyaWJlIiwiY3JlYXRlRXh0ZW5zaW9uQ29uZmlnUHJvbWlzZSIsInVzZUNvbmZpZ1N0b3JlIiwic2V0U3RhdGUiLCJ1c2VFeHRlbnNpb25Db25maWdTdG9yZSIsInNldENvbmZpZyIsInVzZUV4dGVuc2lvbkNvbmZpZyIsImNhY2hlSWQiLCJ1c2VOb3JtYWxDb25maWciLCJtb2R1bGVOYW1lIiwidXNlQ29uZmlnIiwiRXJyb3IiLCJub3JtYWxDb25maWciLCJleHRlbnNpb25Db25maWciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/src/useConfig.ts\n");
|
|
7185
7174
|
|
|
7186
7175
|
/***/ }),
|
|
7187
7176
|
|
|
@@ -7335,7 +7324,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
7335
7324
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
7336
7325
|
|
|
7337
7326
|
"use strict";
|
|
7338
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"useStore\": () => (/* binding */ useStore),\n/* harmony export */ \"useStoreWithActions\": () => (/* binding */ useStoreWithActions)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-state */ \"../../framework/esm-state/src/index.ts\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/** @module @category Store */ function _arrayLikeToArray(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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _defineProperty(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 _iterableToArrayLimit(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 _nonIterableRest() {\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 _objectSpread(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 _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(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 _arrayLikeToArray(o, minLen);\n}\n\n\nfunction bindActions(store, actions) {\n if (typeof actions == \"function\") {\n actions = actions(store);\n }\n var bound = {};\n for(var i in actions)
|
|
7327
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"useStore\": () => (/* binding */ useStore),\n/* harmony export */ \"useStoreWithActions\": () => (/* binding */ useStoreWithActions)\n/* harmony export */ });\n/* harmony import */ var _openmrs_esm_state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @openmrs/esm-state */ \"../../framework/esm-state/src/index.ts\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/** @module @category Store */ function _arrayLikeToArray(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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _defineProperty(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 _iterableToArrayLimit(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 _nonIterableRest() {\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 _objectSpread(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 _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(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 _arrayLikeToArray(o, minLen);\n}\n\n\nfunction bindActions(store, actions) {\n var _loop = function(i) {\n bound[i] = function() {\n var args = _arguments;\n store.setState(function(state) {\n var _args = [\n state\n ];\n for(var i1 = 0; i1 < args.length; i1++){\n _args.push(args[i1]);\n }\n return actions[i](_args);\n });\n };\n };\n var _arguments = arguments;\n if (typeof actions == \"function\") {\n actions = actions(store);\n }\n var bound = {};\n for(var i in actions)_loop(i);\n return bound;\n}\nvar defaultSelectFunction = function(x) {\n return x;\n};\nfunction useStore(store) {\n var select = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : defaultSelectFunction, actions = arguments.length > 2 ? arguments[2] : void 0;\n var ref = _slicedToArray((0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(function() {\n return select(store.getState());\n }), 2), state = ref[0], setState = ref[1];\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function() {\n return (0,_openmrs_esm_state__WEBPACK_IMPORTED_MODULE_0__.subscribeTo)(store, select, setState);\n }, [\n store,\n select\n ]);\n var boundActions = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function() {\n return actions ? bindActions(store, actions) : {};\n }, [\n store,\n actions\n ]);\n return _objectSpread({}, state, boundActions);\n}\nfunction useStoreWithActions(store, actions) {\n return useStore(store, defaultSelectFunction, actions);\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9zcmMvdXNlU3RvcmUudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSw0QkFBNEIsR0FDNUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQWlEO0FBQ0k7QUFJckQsU0FBU0ksWUFBZUMsS0FBa0IsRUFBRUMsT0FBZ0IsRUFBZ0I7NEJBT25EO1FBQ3JCQyxLQUFLLENBQUNDLEVBQUUsR0FBRyxXQUFNO1lBQ2YsSUFBTUM7WUFDTkosTUFBTUssUUFBUSxDQUFDLFNBQUNDLE9BQVU7Z0JBQ3hCLElBQUlDLFFBQVE7b0JBQUNEO2lCQUFNO2dCQUNuQixJQUFLLElBQUlILEtBQUksR0FBR0EsS0FBSUMsS0FBS0ksTUFBTSxFQUFFTCxLQUFLO29CQUNwQ0ksTUFBTUUsSUFBSSxDQUFDTCxJQUFJLENBQUNELEdBQUU7Z0JBQ3BCO2dCQUVBLE9BQU9GLE9BQU8sQ0FBQ0UsRUFBRSxDQUFDSTtZQUNwQjtRQUNGO0lBQ0Y7O0lBbEJBLElBQUksT0FBT04sV0FBVyxZQUFZO1FBQ2hDQSxVQUFVQSxRQUFRRDtJQUNwQixDQUFDO0lBRUQsSUFBTUUsUUFBUSxDQUFDO0lBRWYsSUFBSyxJQUFJQyxLQUFLRjtJQWNkLE9BQU9DO0FBQ1Q7QUFFQSxJQUFNUSx3QkFBd0IsU0FBQ0M7V0FBTUE7O0FBY3JDLFNBQVNDLFNBQ1BaLEtBQWtCLEVBR2xCO1FBRkFhLFNBQUFBLGlFQUEwQkgscUJBQXFCLEVBQy9DVDtJQUVBLElBQTBCSCxxQkFBQUEsK0NBQVFBLENBQUk7ZUFBTWUsT0FBT2IsTUFBTWMsUUFBUTtZQUExRFIsUUFBbUJSLFFBQVpPLFdBQVlQO0lBQzFCRixnREFBU0EsQ0FBQztlQUFNRCwrREFBV0EsQ0FBQ0ssT0FBT2EsUUFBUVI7T0FBVztRQUFDTDtRQUFPYTtLQUFPO0lBRXJFLElBQUlFLGVBQTZCbEIsOENBQU9BLENBQ3RDO2VBQU9JLFVBQVVGLFlBQVlDLE9BQU9DLFdBQVcsQ0FBQyxDQUFDO09BQ2pEO1FBQUNEO1FBQU9DO0tBQVE7SUFHbEIsT0FBTyxrQkFBS0ssT0FBVVM7QUFDeEI7QUFFQSxTQUFTQyxvQkFDUGhCLEtBQWtCLEVBQ2xCQyxPQUFnQixFQUNFO0lBQ2xCLE9BQU9XLFNBQVNaLE9BQU9VLHVCQUF1QlQ7QUFDaEQ7QUFFeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvc3JjL3VzZVN0b3JlLnRzPzk2NDQiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IFN0b3JlICovXG5pbXBvcnQgeyBzdWJzY3JpYmVUbyB9IGZyb20gXCJAb3Blbm1ycy9lc20tc3RhdGVcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgU3RvcmVBcGkgfSBmcm9tIFwienVzdGFuZFwiO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb25zLCBCb3VuZEFjdGlvbnMgfSBmcm9tIFwiLi9jcmVhdGVVc2VTdG9yZVwiO1xuXG5mdW5jdGlvbiBiaW5kQWN0aW9uczxUPihzdG9yZTogU3RvcmVBcGk8VD4sIGFjdGlvbnM6IEFjdGlvbnMpOiBCb3VuZEFjdGlvbnMge1xuICBpZiAodHlwZW9mIGFjdGlvbnMgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgYWN0aW9ucyA9IGFjdGlvbnMoc3RvcmUpO1xuICB9XG5cbiAgY29uc3QgYm91bmQgPSB7fTtcblxuICBmb3IgKGxldCBpIGluIGFjdGlvbnMpIHtcbiAgICBib3VuZFtpXSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICBzdG9yZS5zZXRTdGF0ZSgoc3RhdGUpID0+IHtcbiAgICAgICAgbGV0IF9hcmdzID0gW3N0YXRlXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgX2FyZ3MucHVzaChhcmdzW2ldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhY3Rpb25zW2ldKF9hcmdzKTtcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gYm91bmQ7XG59XG5cbmNvbnN0IGRlZmF1bHRTZWxlY3RGdW5jdGlvbiA9ICh4KSA9PiB4O1xuXG5mdW5jdGlvbiB1c2VTdG9yZTxULCBVPihzdG9yZTogU3RvcmVBcGk8VD4pOiBUO1xuZnVuY3Rpb24gdXNlU3RvcmU8VCwgVT4oc3RvcmU6IFN0b3JlQXBpPFQ+LCBzZWxlY3Q6IChzdGF0ZTogVCkgPT4gVSk6IFU7XG5mdW5jdGlvbiB1c2VTdG9yZTxULCBVPihcbiAgc3RvcmU6IFN0b3JlQXBpPFQ+LFxuICBzZWxlY3Q6IHVuZGVmaW5lZCxcbiAgYWN0aW9uczogQWN0aW9uc1xuKTogVCAmIEJvdW5kQWN0aW9ucztcbmZ1bmN0aW9uIHVzZVN0b3JlPFQsIFU+KFxuICBzdG9yZTogU3RvcmVBcGk8VD4sXG4gIHNlbGVjdDogKHN0YXRlOiBUKSA9PiBVLFxuICBhY3Rpb25zOiBBY3Rpb25zXG4pOiBVICYgQm91bmRBY3Rpb25zO1xuZnVuY3Rpb24gdXNlU3RvcmU8VCwgVT4oXG4gIHN0b3JlOiBTdG9yZUFwaTxUPixcbiAgc2VsZWN0OiAoc3RhdGU6IFQpID0+IFUgPSBkZWZhdWx0U2VsZWN0RnVuY3Rpb24sXG4gIGFjdGlvbnM/OiBBY3Rpb25zXG4pIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSB1c2VTdGF0ZTxVPigoKSA9PiBzZWxlY3Qoc3RvcmUuZ2V0U3RhdGUoKSkpO1xuICB1c2VFZmZlY3QoKCkgPT4gc3Vic2NyaWJlVG8oc3RvcmUsIHNlbGVjdCwgc2V0U3RhdGUpLCBbc3RvcmUsIHNlbGVjdF0pO1xuXG4gIGxldCBib3VuZEFjdGlvbnM6IEJvdW5kQWN0aW9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKGFjdGlvbnMgPyBiaW5kQWN0aW9ucyhzdG9yZSwgYWN0aW9ucykgOiB7fSksXG4gICAgW3N0b3JlLCBhY3Rpb25zXVxuICApO1xuXG4gIHJldHVybiB7IC4uLnN0YXRlLCAuLi5ib3VuZEFjdGlvbnMgfTtcbn1cblxuZnVuY3Rpb24gdXNlU3RvcmVXaXRoQWN0aW9uczxUPihcbiAgc3RvcmU6IFN0b3JlQXBpPFQ+LFxuICBhY3Rpb25zOiBBY3Rpb25zXG4pOiBUICYgQm91bmRBY3Rpb25zIHtcbiAgcmV0dXJuIHVzZVN0b3JlKHN0b3JlLCBkZWZhdWx0U2VsZWN0RnVuY3Rpb24sIGFjdGlvbnMpO1xufVxuXG5leHBvcnQgeyB1c2VTdG9yZSwgdXNlU3RvcmVXaXRoQWN0aW9ucyB9O1xuIl0sIm5hbWVzIjpbInN1YnNjcmliZVRvIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiYmluZEFjdGlvbnMiLCJzdG9yZSIsImFjdGlvbnMiLCJib3VuZCIsImkiLCJhcmdzIiwic2V0U3RhdGUiLCJzdGF0ZSIsIl9hcmdzIiwibGVuZ3RoIiwicHVzaCIsImRlZmF1bHRTZWxlY3RGdW5jdGlvbiIsIngiLCJ1c2VTdG9yZSIsInNlbGVjdCIsImdldFN0YXRlIiwiYm91bmRBY3Rpb25zIiwidXNlU3RvcmVXaXRoQWN0aW9ucyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/src/useStore.ts\n");
|
|
7339
7328
|
|
|
7340
7329
|
/***/ }),
|
|
7341
7330
|
|
|
@@ -7390,7 +7379,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
7390
7379
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
7391
7380
|
|
|
7392
7381
|
"use strict";
|
|
7393
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"createAppState\": () => (/* binding */ createAppState),\n/* harmony export */ \"createGlobalStore\": () => (/* binding */ createGlobalStore),\n/* harmony export */ \"getAppState\": () => (/* binding */ getAppState),\n/* harmony export */ \"getGlobalStore\": () => (/* binding */ getGlobalStore),\n/* harmony export */ \"subscribeTo\": () => (/* binding */ subscribeTo)\n/* harmony export */ });\n/* harmony import */ var
|
|
7382
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"createAppState\": () => (/* binding */ createAppState),\n/* harmony export */ \"createGlobalStore\": () => (/* binding */ createGlobalStore),\n/* harmony export */ \"getAppState\": () => (/* binding */ getAppState),\n/* harmony export */ \"getGlobalStore\": () => (/* binding */ getGlobalStore),\n/* harmony export */ \"subscribeTo\": () => (/* binding */ subscribeTo)\n/* harmony export */ });\n/* harmony import */ var zustand_vanilla__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zustand/vanilla */ \"../../../node_modules/zustand/esm/vanilla.mjs\");\n/** @module @category Store */ \nvar availableStores = {};\n/**\n * Creates a Zustand store.\n *\n * @param name A name by which the store can be looked up later.\n * Must be unique across the entire application.\n * @param initialState An object which will be the initial state of the store.\n * @returns The newly created store.\n */ function createGlobalStore(name, initialState) {\n var available = availableStores[name];\n if (available) {\n if (available.active) {\n console.error(\"Cannot override an existing store. Make sure that stores are only created once.\");\n } else {\n available.value.setState(initialState, true);\n }\n available.active = true;\n return available.value;\n } else {\n var store = (0,zustand_vanilla__WEBPACK_IMPORTED_MODULE_0__.createStore)()(function() {\n return initialState;\n });\n availableStores[name] = {\n value: store,\n active: true\n };\n return store;\n }\n}\n/**\n * Returns the existing store named `name`,\n * or creates a new store named `name` if none exists.\n *\n * @param name The name of the store to look up.\n * @param fallbackState The initial value of the new store if no store named `name` exists.\n * @returns The found or newly created store.\n */ function getGlobalStore(name, fallbackState) {\n var available = availableStores[name];\n if (!available) {\n var store = (0,zustand_vanilla__WEBPACK_IMPORTED_MODULE_0__.createStore)()(function() {\n return fallbackState !== null && fallbackState !== void 0 ? fallbackState : {};\n });\n availableStores[name] = {\n value: store,\n active: false\n };\n return store;\n }\n return available.value;\n}\n/**\n * @internal\n */ function createAppState(initialState) {\n return createGlobalStore(\"app\", initialState);\n}\n/**\n * @returns The [store](https://github.com/developit/unistore#store) named `app`.\n */ function getAppState() {\n return getGlobalStore(\"app\", {});\n}\nfunction subscribeTo(store, select, handle) {\n var previous = select(store.getState());\n return store.subscribe(function(state) {\n var current = select(state);\n if (current !== previous) {\n previous = current;\n handle(current);\n }\n });\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1zdGF0ZS9zcmMvc3RhdGUudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsNEJBQTRCLEdBQzRCO0FBT3hELElBQU1DLGtCQUErQyxDQUFDO0FBRXREOzs7Ozs7O0NBT0MsR0FDTSxTQUFTQyxrQkFDZEMsSUFBWSxFQUNaQyxZQUFlLEVBQ0Y7SUFDYixJQUFNQyxZQUFZSixlQUFlLENBQUNFLEtBQUs7SUFFdkMsSUFBSUUsV0FBVztRQUNiLElBQUlBLFVBQVVDLE1BQU0sRUFBRTtZQUNwQkMsUUFBUUMsS0FBSyxDQUNYO1FBRUosT0FBTztZQUNMSCxVQUFVSSxLQUFLLENBQUNDLFFBQVEsQ0FBQ04sY0FBYyxJQUFJO1FBQzdDLENBQUM7UUFFREMsVUFBVUMsTUFBTSxHQUFHLElBQUk7UUFDdkIsT0FBT0QsVUFBVUksS0FBSztJQUN4QixPQUFPO1FBQ0wsSUFBTUUsUUFBUVgsNERBQVdBLEdBQU07bUJBQU1JOztRQUVyQ0gsZUFBZSxDQUFDRSxLQUFLLEdBQUc7WUFDdEJNLE9BQU9FO1lBQ1BMLFFBQVEsSUFBSTtRQUNkO1FBRUEsT0FBT0s7SUFDVCxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7O0NBT0MsR0FDTSxTQUFTQyxlQUNkVCxJQUFZLEVBQ1pVLGFBQWlCLEVBQ0o7SUFDYixJQUFNUixZQUFZSixlQUFlLENBQUNFLEtBQUs7SUFFdkMsSUFBSSxDQUFDRSxXQUFXO1FBQ2QsSUFBTU0sUUFBUVgsNERBQVdBLEdBQU07bUJBQU1hLDBCQUFBQSwyQkFBQUEsZ0JBQWtCLENBQUMsQ0FBa0I7O1FBQzFFWixlQUFlLENBQUNFLEtBQUssR0FBRztZQUN0Qk0sT0FBT0U7WUFDUEwsUUFBUSxLQUFLO1FBQ2Y7UUFDQSxPQUFPSztJQUNULENBQUM7SUFFRCxPQUFPTixVQUFVSSxLQUFLO0FBQ3hCLENBQUM7QUFJRDs7Q0FFQyxHQUNNLFNBQVNLLGVBQWVWLFlBQXNCLEVBQUU7SUFDckQsT0FBT0Ysa0JBQWtCLE9BQU9FO0FBQ2xDLENBQUM7QUFFRDs7Q0FFQyxHQUNNLFNBQVNXLGNBQWM7SUFDNUIsT0FBT0gsZUFBeUIsT0FBTyxDQUFDO0FBQzFDLENBQUM7QUFFTSxTQUFTSSxZQUNkTCxLQUFrQixFQUNsQk0sTUFBdUIsRUFDdkJDLE1BQTZCLEVBQzdCO0lBQ0EsSUFBSUMsV0FBV0YsT0FBT04sTUFBTVMsUUFBUTtJQUVwQyxPQUFPVCxNQUFNVSxTQUFTLENBQUMsU0FBQ0MsT0FBVTtRQUNoQyxJQUFNQyxVQUFVTixPQUFPSztRQUV2QixJQUFJQyxZQUFZSixVQUFVO1lBQ3hCQSxXQUFXSTtZQUNYTCxPQUFPSztRQUNULENBQUM7SUFDSDtBQUNGLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tc3RhdGUvc3JjL3N0YXRlLnRzP2U5MmYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IFN0b3JlICovXG5pbXBvcnQgeyBjcmVhdGVTdG9yZSwgU3RvcmVBcGkgfSBmcm9tIFwienVzdGFuZC92YW5pbGxhXCI7XG5cbmludGVyZmFjZSBTdG9yZUVudGl0eSB7XG4gIHZhbHVlOiBTdG9yZUFwaTx1bmtub3duPjtcbiAgYWN0aXZlOiBib29sZWFuO1xufVxuXG5jb25zdCBhdmFpbGFibGVTdG9yZXM6IFJlY29yZDxzdHJpbmcsIFN0b3JlRW50aXR5PiA9IHt9O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBadXN0YW5kIHN0b3JlLlxuICpcbiAqIEBwYXJhbSBuYW1lIEEgbmFtZSBieSB3aGljaCB0aGUgc3RvcmUgY2FuIGJlIGxvb2tlZCB1cCBsYXRlci5cbiAqICAgIE11c3QgYmUgdW5pcXVlIGFjcm9zcyB0aGUgZW50aXJlIGFwcGxpY2F0aW9uLlxuICogQHBhcmFtIGluaXRpYWxTdGF0ZSBBbiBvYmplY3Qgd2hpY2ggd2lsbCBiZSB0aGUgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgc3RvcmUuXG4gKiBAcmV0dXJucyBUaGUgbmV3bHkgY3JlYXRlZCBzdG9yZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUdsb2JhbFN0b3JlPFQ+KFxuICBuYW1lOiBzdHJpbmcsXG4gIGluaXRpYWxTdGF0ZTogVFxuKTogU3RvcmVBcGk8VD4ge1xuICBjb25zdCBhdmFpbGFibGUgPSBhdmFpbGFibGVTdG9yZXNbbmFtZV07XG5cbiAgaWYgKGF2YWlsYWJsZSkge1xuICAgIGlmIChhdmFpbGFibGUuYWN0aXZlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBcIkNhbm5vdCBvdmVycmlkZSBhbiBleGlzdGluZyBzdG9yZS4gTWFrZSBzdXJlIHRoYXQgc3RvcmVzIGFyZSBvbmx5IGNyZWF0ZWQgb25jZS5cIlxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXZhaWxhYmxlLnZhbHVlLnNldFN0YXRlKGluaXRpYWxTdGF0ZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgYXZhaWxhYmxlLmFjdGl2ZSA9IHRydWU7XG4gICAgcmV0dXJuIGF2YWlsYWJsZS52YWx1ZSBhcyBTdG9yZUFwaTxUPjtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzdG9yZSA9IGNyZWF0ZVN0b3JlPFQ+KCkoKCkgPT4gaW5pdGlhbFN0YXRlKTtcblxuICAgIGF2YWlsYWJsZVN0b3Jlc1tuYW1lXSA9IHtcbiAgICAgIHZhbHVlOiBzdG9yZSxcbiAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHN0b3JlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZXhpc3Rpbmcgc3RvcmUgbmFtZWQgYG5hbWVgLFxuICogb3IgY3JlYXRlcyBhIG5ldyBzdG9yZSBuYW1lZCBgbmFtZWAgaWYgbm9uZSBleGlzdHMuXG4gKlxuICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHN0b3JlIHRvIGxvb2sgdXAuXG4gKiBAcGFyYW0gZmFsbGJhY2tTdGF0ZSBUaGUgaW5pdGlhbCB2YWx1ZSBvZiB0aGUgbmV3IHN0b3JlIGlmIG5vIHN0b3JlIG5hbWVkIGBuYW1lYCBleGlzdHMuXG4gKiBAcmV0dXJucyBUaGUgZm91bmQgb3IgbmV3bHkgY3JlYXRlZCBzdG9yZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEdsb2JhbFN0b3JlPFQ+KFxuICBuYW1lOiBzdHJpbmcsXG4gIGZhbGxiYWNrU3RhdGU/OiBUXG4pOiBTdG9yZUFwaTxUPiB7XG4gIGNvbnN0IGF2YWlsYWJsZSA9IGF2YWlsYWJsZVN0b3Jlc1tuYW1lXTtcblxuICBpZiAoIWF2YWlsYWJsZSkge1xuICAgIGNvbnN0IHN0b3JlID0gY3JlYXRlU3RvcmU8VD4oKSgoKSA9PiBmYWxsYmFja1N0YXRlID8/ICh7fSBhcyB1bmtub3duIGFzIFQpKTtcbiAgICBhdmFpbGFibGVTdG9yZXNbbmFtZV0gPSB7XG4gICAgICB2YWx1ZTogc3RvcmUsXG4gICAgICBhY3RpdmU6IGZhbHNlLFxuICAgIH07XG4gICAgcmV0dXJuIHN0b3JlO1xuICB9XG5cbiAgcmV0dXJuIGF2YWlsYWJsZS52YWx1ZSBhcyBTdG9yZUFwaTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBTdGF0ZSB7fVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXBwU3RhdGUoaW5pdGlhbFN0YXRlOiBBcHBTdGF0ZSkge1xuICByZXR1cm4gY3JlYXRlR2xvYmFsU3RvcmUoXCJhcHBcIiwgaW5pdGlhbFN0YXRlKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyBUaGUgW3N0b3JlXShodHRwczovL2dpdGh1Yi5jb20vZGV2ZWxvcGl0L3VuaXN0b3JlI3N0b3JlKSBuYW1lZCBgYXBwYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcFN0YXRlKCkge1xuICByZXR1cm4gZ2V0R2xvYmFsU3RvcmU8QXBwU3RhdGU+KFwiYXBwXCIsIHt9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YnNjcmliZVRvPFQsIFU+KFxuICBzdG9yZTogU3RvcmVBcGk8VD4sXG4gIHNlbGVjdDogKHN0YXRlOiBUKSA9PiBVLFxuICBoYW5kbGU6IChzdWJTdGF0ZTogVSkgPT4gdm9pZFxuKSB7XG4gIGxldCBwcmV2aW91cyA9IHNlbGVjdChzdG9yZS5nZXRTdGF0ZSgpKTtcblxuICByZXR1cm4gc3RvcmUuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBzZWxlY3Qoc3RhdGUpO1xuXG4gICAgaWYgKGN1cnJlbnQgIT09IHByZXZpb3VzKSB7XG4gICAgICBwcmV2aW91cyA9IGN1cnJlbnQ7XG4gICAgICBoYW5kbGUoY3VycmVudCk7XG4gICAgfVxuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVTdG9yZSIsImF2YWlsYWJsZVN0b3JlcyIsImNyZWF0ZUdsb2JhbFN0b3JlIiwibmFtZSIsImluaXRpYWxTdGF0ZSIsImF2YWlsYWJsZSIsImFjdGl2ZSIsImNvbnNvbGUiLCJlcnJvciIsInZhbHVlIiwic2V0U3RhdGUiLCJzdG9yZSIsImdldEdsb2JhbFN0b3JlIiwiZmFsbGJhY2tTdGF0ZSIsImNyZWF0ZUFwcFN0YXRlIiwiZ2V0QXBwU3RhdGUiLCJzdWJzY3JpYmVUbyIsInNlbGVjdCIsImhhbmRsZSIsInByZXZpb3VzIiwiZ2V0U3RhdGUiLCJzdWJzY3JpYmUiLCJzdGF0ZSIsImN1cnJlbnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-state/src/state.ts\n");
|
|
7394
7383
|
|
|
7395
7384
|
/***/ }),
|
|
7396
7385
|
|
|
@@ -10099,6 +10088,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
10099
10088
|
|
|
10100
10089
|
/***/ }),
|
|
10101
10090
|
|
|
10091
|
+
/***/ "../../../node_modules/zustand/esm/vanilla.mjs":
|
|
10092
|
+
/*!*****************************************************!*\
|
|
10093
|
+
!*** ../../../node_modules/zustand/esm/vanilla.mjs ***!
|
|
10094
|
+
\*****************************************************/
|
|
10095
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
10096
|
+
|
|
10097
|
+
"use strict";
|
|
10098
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"createStore\": () => (/* binding */ createStore),\n/* harmony export */ \"default\": () => (/* binding */ vanilla)\n/* harmony export */ });\nconst createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\") ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => {\n if (true) {\n console.warn(\n \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n );\n }\n listeners.clear();\n };\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n if (true) {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n );\n }\n return createStore(createState);\n};\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3p1c3RhbmQvZXNtL3ZhbmlsbGEubWpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3R0FBd0c7QUFDeEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUEwRDtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sSUFBMEQ7QUFDaEU7QUFDQSx1RUFBdUUsY0FBYztBQUNyRjtBQUNBO0FBQ0E7QUFDQTs7QUFFMkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uLy4uL25vZGVfbW9kdWxlcy96dXN0YW5kL2VzbS92YW5pbGxhLm1qcz9mNjZkIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNyZWF0ZVN0b3JlSW1wbCA9IChjcmVhdGVTdGF0ZSkgPT4ge1xuICBsZXQgc3RhdGU7XG4gIGNvbnN0IGxpc3RlbmVycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7XG4gIGNvbnN0IHNldFN0YXRlID0gKHBhcnRpYWwsIHJlcGxhY2UpID0+IHtcbiAgICBjb25zdCBuZXh0U3RhdGUgPSB0eXBlb2YgcGFydGlhbCA9PT0gXCJmdW5jdGlvblwiID8gcGFydGlhbChzdGF0ZSkgOiBwYXJ0aWFsO1xuICAgIGlmICghT2JqZWN0LmlzKG5leHRTdGF0ZSwgc3RhdGUpKSB7XG4gICAgICBjb25zdCBwcmV2aW91c1N0YXRlID0gc3RhdGU7XG4gICAgICBzdGF0ZSA9IChyZXBsYWNlICE9IG51bGwgPyByZXBsYWNlIDogdHlwZW9mIG5leHRTdGF0ZSAhPT0gXCJvYmplY3RcIikgPyBuZXh0U3RhdGUgOiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgbmV4dFN0YXRlKTtcbiAgICAgIGxpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4gbGlzdGVuZXIoc3RhdGUsIHByZXZpb3VzU3RhdGUpKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IGdldFN0YXRlID0gKCkgPT4gc3RhdGU7XG4gIGNvbnN0IHN1YnNjcmliZSA9IChsaXN0ZW5lcikgPT4ge1xuICAgIGxpc3RlbmVycy5hZGQobGlzdGVuZXIpO1xuICAgIHJldHVybiAoKSA9PiBsaXN0ZW5lcnMuZGVsZXRlKGxpc3RlbmVyKTtcbiAgfTtcbiAgY29uc3QgZGVzdHJveSA9ICgpID0+IHtcbiAgICBpZiAoKGltcG9ydC5tZXRhLmVudiAmJiBpbXBvcnQubWV0YS5lbnYuTU9ERSkgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIFwiW0RFUFJFQ0FURURdIFRoZSBgZGVzdHJveWAgbWV0aG9kIHdpbGwgYmUgdW5zdXBwb3J0ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gSW5zdGVhZCB1c2UgdW5zdWJzY3JpYmUgZnVuY3Rpb24gcmV0dXJuZWQgYnkgc3Vic2NyaWJlLiBFdmVyeXRoaW5nIHdpbGwgYmUgZ2FyYmFnZS1jb2xsZWN0ZWQgaWYgc3RvcmUgaXMgZ2FyYmFnZS1jb2xsZWN0ZWQuXCJcbiAgICAgICk7XG4gICAgfVxuICAgIGxpc3RlbmVycy5jbGVhcigpO1xuICB9O1xuICBjb25zdCBhcGkgPSB7IHNldFN0YXRlLCBnZXRTdGF0ZSwgc3Vic2NyaWJlLCBkZXN0cm95IH07XG4gIHN0YXRlID0gY3JlYXRlU3RhdGUoc2V0U3RhdGUsIGdldFN0YXRlLCBhcGkpO1xuICByZXR1cm4gYXBpO1xufTtcbmNvbnN0IGNyZWF0ZVN0b3JlID0gKGNyZWF0ZVN0YXRlKSA9PiBjcmVhdGVTdGF0ZSA/IGNyZWF0ZVN0b3JlSW1wbChjcmVhdGVTdGF0ZSkgOiBjcmVhdGVTdG9yZUltcGw7XG52YXIgdmFuaWxsYSA9IChjcmVhdGVTdGF0ZSkgPT4ge1xuICBpZiAoKGltcG9ydC5tZXRhLmVudiAmJiBpbXBvcnQubWV0YS5lbnYuTU9ERSkgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgXCJbREVQUkVDQVRFRF0gRGVmYXVsdCBleHBvcnQgaXMgZGVwcmVjYXRlZC4gSW5zdGVhZCB1c2UgaW1wb3J0IHsgY3JlYXRlU3RvcmUgfSBmcm9tICd6dXN0YW5kL3ZhbmlsbGEnLlwiXG4gICAgKTtcbiAgfVxuICByZXR1cm4gY3JlYXRlU3RvcmUoY3JlYXRlU3RhdGUpO1xufTtcblxuZXhwb3J0IHsgY3JlYXRlU3RvcmUsIHZhbmlsbGEgYXMgZGVmYXVsdCB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../../node_modules/zustand/esm/vanilla.mjs\n");
|
|
10099
|
+
|
|
10100
|
+
/***/ }),
|
|
10101
|
+
|
|
10102
10102
|
/***/ "../../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
|
|
10103
10103
|
/*!****************************************************************************!*\
|
|
10104
10104
|
!*** ../../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
|
|
@@ -11919,8 +11919,8 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
11919
11919
|
/******/ var promises = [];
|
|
11920
11920
|
/******/ switch(name) {
|
|
11921
11921
|
/******/ case "default": {
|
|
11922
|
-
/******/ register("@openmrs/esm-framework/src/internal", "4.3.2-pre.
|
|
11923
|
-
/******/ register("@openmrs/esm-framework", "4.3.2-pre.
|
|
11922
|
+
/******/ register("@openmrs/esm-framework/src/internal", "4.3.2-pre.681", () => (() => (__webpack_require__(/*! ../../framework/esm-framework/src/internal.ts */ "../../framework/esm-framework/src/internal.ts"))), 1);
|
|
11923
|
+
/******/ register("@openmrs/esm-framework", "4.3.2-pre.681", () => (() => (__webpack_require__(/*! ../../framework/esm-framework/src/index.ts */ "../../framework/esm-framework/src/index.ts"))), 1);
|
|
11924
11924
|
/******/ register("dayjs", "1.11.5", () => (() => (__webpack_require__(/*! ../../../node_modules/dayjs/dayjs.min.js */ "../../../node_modules/dayjs/dayjs.min.js"))), 1);
|
|
11925
11925
|
/******/ register("i18next", "19.9.2", () => (() => (__webpack_require__(/*! ../../../node_modules/i18next/dist/esm/i18next.js */ "../../../node_modules/i18next/dist/esm/i18next.js"))), 1);
|
|
11926
11926
|
/******/ register("react-dom", "18.2.0", () => (() => (__webpack_require__(/*! ../../../node_modules/react-dom/index.js */ "../../../node_modules/react-dom/index.js"))), 1);
|
|
@@ -12082,7 +12082,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
12082
12082
|
/******/ "webpack/sharing/consume/default/i18next/i18next": () => (loadSingletonVersionCheckFallback("default", "i18next", [1,19,6,0], () => (() => (__webpack_require__(/*! i18next */ "../../../node_modules/i18next/dist/esm/i18next.js"))))),
|
|
12083
12083
|
/******/ "webpack/sharing/consume/default/react-i18next/react-i18next": () => (loadSingletonVersionCheckFallback("default", "react-i18next", [1,11,7,0], () => (() => (__webpack_require__(/*! react-i18next */ "../../../node_modules/react-i18next/dist/es/index.js"))))),
|
|
12084
12084
|
/******/ "webpack/sharing/consume/default/dayjs/dayjs": () => (loadSingletonVersionCheckFallback("default", "dayjs", [1,1,10,4], () => (() => (__webpack_require__(/*! dayjs */ "../../../node_modules/dayjs/dayjs.min.js"))))),
|
|
12085
|
-
/******/ "webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework": () => (loadSingletonVersionCheckFallback("default", "@openmrs/esm-framework", [7,4,3,2,,"pre",
|
|
12085
|
+
/******/ "webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework": () => (loadSingletonVersionCheckFallback("default", "@openmrs/esm-framework", [7,4,3,2,,"pre",681], () => (() => (__webpack_require__(/*! @openmrs/esm-framework */ "../../framework/esm-framework/src/index.ts")))))
|
|
12086
12086
|
/******/ };
|
|
12087
12087
|
/******/ var initialConsumes = ["webpack/sharing/consume/default/@openmrs/esm-framework/src/internal/@openmrs/esm-framework/src/internal","webpack/sharing/consume/default/rxjs/rxjs","webpack/sharing/consume/default/react/react","webpack/sharing/consume/default/react-dom/react-dom","webpack/sharing/consume/default/i18next/i18next","webpack/sharing/consume/default/react-i18next/react-i18next","webpack/sharing/consume/default/dayjs/dayjs","webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework"];
|
|
12088
12088
|
/******/ initialConsumes.forEach((id) => {
|