@openmrs/esm-app-shell 10.0.1-pre.5396 → 10.0.1-pre.5426
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +3 -3
- package/dist/00781fd40b42efd3.js +1 -0
- package/dist/00781fd40b42efd3.js.map +1 -0
- package/dist/3626ab9863946c7b.js +1 -0
- package/dist/3626ab9863946c7b.js.map +1 -0
- package/dist/3dc3febe66b7c3f7.js +1 -0
- package/dist/3dc3febe66b7c3f7.js.map +1 -0
- package/dist/418e84790d85e1d2.js +1 -0
- package/dist/418e84790d85e1d2.js.map +1 -0
- package/dist/{1be580fd6d356569.js → 4ad2f003cb40853a.js} +14 -14
- package/dist/4ad2f003cb40853a.js.map +1 -0
- package/dist/59811cc6672f3c5e.js +1 -0
- package/dist/59811cc6672f3c5e.js.map +1 -0
- package/dist/5df0e0969c582637.js +1 -0
- package/dist/5df0e0969c582637.js.map +1 -0
- package/dist/60b81b0c3de3dbcc.js +1 -0
- package/dist/60b81b0c3de3dbcc.js.map +1 -0
- package/dist/61b616c98ab0405a.js +1 -0
- package/dist/61b616c98ab0405a.js.map +1 -0
- package/dist/6cd82326717c86ed.js +1 -0
- package/dist/6cd82326717c86ed.js.map +1 -0
- package/dist/7b8e1045c7cdfdd7.js +1 -0
- package/dist/{f160604b54c3f05b.js.map → 7b8e1045c7cdfdd7.js.map} +1 -1
- package/dist/a3a573a33ba2d559.js +1 -0
- package/dist/a3a573a33ba2d559.js.map +1 -0
- package/dist/c1f558fe1c434557.js +1 -0
- package/dist/c1f558fe1c434557.js.map +1 -0
- package/dist/f3f7ba7a281d137f.js +1 -0
- package/dist/f3f7ba7a281d137f.js.map +1 -0
- package/dist/index.html +1 -1
- package/dist/{openmrs.5b864b07da1b282d.js → openmrs.49f931a3acf2932c.js} +8 -8
- package/dist/openmrs.49f931a3acf2932c.js.map +1 -0
- package/lib/0a393d2628c92699.js +8 -0
- package/lib/10b4ef27e2197006.js +8 -0
- package/lib/2c82de43c389188c.js +8 -0
- package/lib/343561ee0709af1f.js +8 -0
- package/lib/{b0d5eb958b4696a7.js → 46f6744c9bdc7ce1.js} +1 -1
- package/lib/5135ee43a98e1957.js +8 -0
- package/lib/851dcadf831a3e95.js +8 -0
- package/lib/91a6d7bbfee7d3e9.js +8 -0
- package/lib/9728df55a98ebbd2.js +20 -0
- package/lib/{5762bcfe6f67051d.js → 9adcb5d8a33aa9b2.js} +15 -34
- package/lib/cd15c92ac4bf8df8.js +16 -0
- package/lib/d4217550e793514c.js +8 -0
- package/lib/f7c61d1509f22b7f.js +8 -0
- package/lib/openmrs.js +7 -7
- package/package.json +4 -4
- package/rspack.config.js +11 -15
- package/src/run.ts +3 -0
- package/dist/1be580fd6d356569.js.map +0 -1
- package/dist/925b110214f0bbf7.js +0 -1
- package/dist/925b110214f0bbf7.js.map +0 -1
- package/dist/f160604b54c3f05b.js +0 -1
- package/dist/openmrs.5b864b07da1b282d.js.map +0 -1
- package/lib/1c5b49134c999eee.js +0 -8
|
@@ -298,10 +298,6 @@ eval("{\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, ob
|
|
|
298
298
|
"use strict";
|
|
299
299
|
eval("{\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvb3Blbm1ycy1lc20tY29yZS9vcGVubXJzLWVzbS1jb3JlL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qcz9jNmExIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50KSB7XG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpO1xuICAgIH1cbiAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gc3R5bGVUYWdUcmFuc2Zvcm07Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMifQ==\n//# sourceURL=webpack-internal:///../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\n\n}");
|
|
300
300
|
|
|
301
|
-
},
|
|
302
|
-
"../../../node_modules/client-only/index.js"() {
|
|
303
|
-
|
|
304
|
-
|
|
305
301
|
},
|
|
306
302
|
"../../../node_modules/css-loader/dist/runtime/api.js"(module) {
|
|
307
303
|
"use strict";
|
|
@@ -1715,7 +1711,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
1715
1711
|
},
|
|
1716
1712
|
"../../framework/esm-styleguide/dist/location-picker/location-picker.resource.js"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
1717
1713
|
"use strict";
|
|
1718
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useLocationByUuid: () => (useLocationByUuid),\n useLocations: () => (useLocations)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr_immutable__rspack_import_1 = __webpack_require__(\"../../../node_modules/swr/dist/immutable/index.mjs\");\n/* import */ var swr_infinite__rspack_import_2 = __webpack_require__(\"../../../node_modules/swr/dist/infinite/index.mjs\");\n/* import */ var _openmrs_esm_api__rspack_import_3 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var _openmrs_esm_react_utils__rspack_import_4 = __webpack_require__(\"../../framework/esm-react-utils/dist/index.js\");\n\n\n\n\n\n/**\n * A React hook that fetches a location by its UUID using the FHIR API.\n *\n * @param locationUuid Optional UUID of the location to fetch. If not provided,\n * the hook returns null for the location without making a request.\n * @returns An object containing the location data, loading state, and any error.\n *\n * @category API\n */ function useLocationByUuid(locationUuid) {\n const url = locationUuid ? `/ws/fhir2/R4/Location?_id=${locationUuid}` : null;\n const { data, error, isLoading } = (0,swr_immutable__rspack_import_1[\"default\"])(url, _openmrs_esm_api__rspack_import_3.openmrsFetch, {\n shouldRetryOnError (err) {\n if (err?.response?.status) {\n return err.response.status >= 500;\n }\n return false;\n }\n });\n return (0,react__rspack_import_0.useMemo)(()=>({\n location: data?.data?.entry ? data.data.entry[0] : null,\n error: url ? error : null,\n isLoading: url ? isLoading : false\n }), [\n data,\n isLoading,\n error,\n url\n ]);\n}\n/**\n * A React hook that fetches locations from the FHIR API with support for\n * pagination, filtering by tag, and searching by name. Uses SWR infinite\n * loading for efficient pagination.\n *\n * @param locationTag Optional tag to filter locations (e.g., 'Login Location').\n * @param count The number of locations to fetch per page. Defaults to 0 (no limit).\n * @param searchQuery Optional search string to filter locations by name.\n * @returns An object containing the locations array, loading states, pagination info, and any error.\n *\n * @category API\n */ function useLocations(locationTag, count = 0, searchQuery = '') {\n const debouncedSearchQuery = (0,_openmrs_esm_react_utils__rspack_import_4.useDebounce)(searchQuery);\n function constructUrl(page, prevPageData) {\n if (prevPageData) {\n const nextLink = prevPageData.data?.link?.find((link)=>link.relation === 'next');\n if (!nextLink) {\n return null;\n }\n const nextUrl = new URL(nextLink.url);\n // default for production\n if (nextUrl.origin === window.location.origin) {\n return nextLink.url;\n }\n // in development, the request should be funnelled through the local proxy\n return new URL(`${nextUrl.pathname}${nextUrl.search ? `?${nextUrl.search}` : ''}`, window.location.origin).toString();\n }\n let url = `${_openmrs_esm_api__rspack_import_3.fhirBaseUrl}/Location?`;\n let urlSearchParameters = new URLSearchParams();\n urlSearchParameters.append('_summary', 'data');\n if (count) {\n urlSearchParameters.append('_count', '' + count);\n }\n if (page) {\n urlSearchParameters.append('_getpagesoffset', '' + page * count);\n }\n if (locationTag) {\n urlSearchParameters.append('_tag', locationTag);\n }\n if (typeof debouncedSearchQuery === 'string' && debouncedSearchQuery !== '') {\n urlSearchParameters.append('name:contains', debouncedSearchQuery);\n }\n return url + urlSearchParameters.toString();\n }\n const { data, isLoading, isValidating, setSize, error } = (0,swr_infinite__rspack_import_2[\"default\"])(constructUrl, _openmrs_esm_api__rspack_import_3.openmrsFetch);\n const memoizedLocations = (0,react__rspack_import_0.useMemo)(()=>{\n return {\n locations: data?.length ? data?.flatMap((entries)=>entries?.data?.entry ?? []) : [],\n isLoading,\n totalResults: data?.[0]?.data?.total,\n hasMore: data?.length ? data?.[data.length - 1]?.data?.link?.some((link)=>link.relation === 'next') : false,\n loadingNewData: isValidating,\n error: error || null,\n setPage: setSize\n };\n }, [\n isLoading,\n data,\n isValidating,\n setSize,\n error\n ]);\n return memoizedLocations;\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL2Rpc3QvbG9jYXRpb24tcGlja2VyL2xvY2F0aW9uLXBpY2tlci5yZXNvdXJjZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL2Rpc3QvbG9jYXRpb24tcGlja2VyL2xvY2F0aW9uLXBpY2tlci5yZXNvdXJjZS5qcz82ZGE4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB1c2VTd3JJbW11dGFibGUgZnJvbSBcInN3ci9pbW11dGFibGVcIjtcbmltcG9ydCB1c2VTd3JJbmZpbml0ZSBmcm9tIFwic3dyL2luZmluaXRlXCI7XG5pbXBvcnQgeyBmaGlyQmFzZVVybCwgb3Blbm1yc0ZldGNoIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1hcGlcIjtcbmltcG9ydCB7IHVzZURlYm91bmNlIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1yZWFjdC11dGlsc1wiO1xuLyoqXG4gKiBBIFJlYWN0IGhvb2sgdGhhdCBmZXRjaGVzIGEgbG9jYXRpb24gYnkgaXRzIFVVSUQgdXNpbmcgdGhlIEZISVIgQVBJLlxuICpcbiAqIEBwYXJhbSBsb2NhdGlvblV1aWQgT3B0aW9uYWwgVVVJRCBvZiB0aGUgbG9jYXRpb24gdG8gZmV0Y2guIElmIG5vdCBwcm92aWRlZCxcbiAqICAgdGhlIGhvb2sgcmV0dXJucyBudWxsIGZvciB0aGUgbG9jYXRpb24gd2l0aG91dCBtYWtpbmcgYSByZXF1ZXN0LlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGxvY2F0aW9uIGRhdGEsIGxvYWRpbmcgc3RhdGUsIGFuZCBhbnkgZXJyb3IuXG4gKlxuICogQGNhdGVnb3J5IEFQSVxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VMb2NhdGlvbkJ5VXVpZChsb2NhdGlvblV1aWQpIHtcbiAgICBjb25zdCB1cmwgPSBsb2NhdGlvblV1aWQgPyBgL3dzL2ZoaXIyL1I0L0xvY2F0aW9uP19pZD0ke2xvY2F0aW9uVXVpZH1gIDogbnVsbDtcbiAgICBjb25zdCB7IGRhdGEsIGVycm9yLCBpc0xvYWRpbmcgfSA9IHVzZVN3ckltbXV0YWJsZSh1cmwsIG9wZW5tcnNGZXRjaCwge1xuICAgICAgICBzaG91bGRSZXRyeU9uRXJyb3IgKGVycikge1xuICAgICAgICAgICAgaWYgKGVycj8ucmVzcG9uc2U/LnN0YXR1cykge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcnIucmVzcG9uc2Uuc3RhdHVzID49IDUwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB1c2VNZW1vKCgpPT4oe1xuICAgICAgICAgICAgbG9jYXRpb246IGRhdGE/LmRhdGE/LmVudHJ5ID8gZGF0YS5kYXRhLmVudHJ5WzBdIDogbnVsbCxcbiAgICAgICAgICAgIGVycm9yOiB1cmwgPyBlcnJvciA6IG51bGwsXG4gICAgICAgICAgICBpc0xvYWRpbmc6IHVybCA/IGlzTG9hZGluZyA6IGZhbHNlXG4gICAgICAgIH0pLCBbXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGlzTG9hZGluZyxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIHVybFxuICAgIF0pO1xufVxuLyoqXG4gKiBBIFJlYWN0IGhvb2sgdGhhdCBmZXRjaGVzIGxvY2F0aW9ucyBmcm9tIHRoZSBGSElSIEFQSSB3aXRoIHN1cHBvcnQgZm9yXG4gKiBwYWdpbmF0aW9uLCBmaWx0ZXJpbmcgYnkgdGFnLCBhbmQgc2VhcmNoaW5nIGJ5IG5hbWUuIFVzZXMgU1dSIGluZmluaXRlXG4gKiBsb2FkaW5nIGZvciBlZmZpY2llbnQgcGFnaW5hdGlvbi5cbiAqXG4gKiBAcGFyYW0gbG9jYXRpb25UYWcgT3B0aW9uYWwgdGFnIHRvIGZpbHRlciBsb2NhdGlvbnMgKGUuZy4sICdMb2dpbiBMb2NhdGlvbicpLlxuICogQHBhcmFtIGNvdW50IFRoZSBudW1iZXIgb2YgbG9jYXRpb25zIHRvIGZldGNoIHBlciBwYWdlLiBEZWZhdWx0cyB0byAwIChubyBsaW1pdCkuXG4gKiBAcGFyYW0gc2VhcmNoUXVlcnkgT3B0aW9uYWwgc2VhcmNoIHN0cmluZyB0byBmaWx0ZXIgbG9jYXRpb25zIGJ5IG5hbWUuXG4gKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgbG9jYXRpb25zIGFycmF5LCBsb2FkaW5nIHN0YXRlcywgcGFnaW5hdGlvbiBpbmZvLCBhbmQgYW55IGVycm9yLlxuICpcbiAqIEBjYXRlZ29yeSBBUElcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlTG9jYXRpb25zKGxvY2F0aW9uVGFnLCBjb3VudCA9IDAsIHNlYXJjaFF1ZXJ5ID0gJycpIHtcbiAgICBjb25zdCBkZWJvdW5jZWRTZWFyY2hRdWVyeSA9IHVzZURlYm91bmNlKHNlYXJjaFF1ZXJ5KTtcbiAgICBmdW5jdGlvbiBjb25zdHJ1Y3RVcmwocGFnZSwgcHJldlBhZ2VEYXRhKSB7XG4gICAgICAgIGlmIChwcmV2UGFnZURhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRMaW5rID0gcHJldlBhZ2VEYXRhLmRhdGE/Lmxpbms/LmZpbmQoKGxpbmspPT5saW5rLnJlbGF0aW9uID09PSAnbmV4dCcpO1xuICAgICAgICAgICAgaWYgKCFuZXh0TGluaykge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbmV4dFVybCA9IG5ldyBVUkwobmV4dExpbmsudXJsKTtcbiAgICAgICAgICAgIC8vIGRlZmF1bHQgZm9yIHByb2R1Y3Rpb25cbiAgICAgICAgICAgIGlmIChuZXh0VXJsLm9yaWdpbiA9PT0gd2luZG93LmxvY2F0aW9uLm9yaWdpbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXh0TGluay51cmw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpbiBkZXZlbG9wbWVudCwgdGhlIHJlcXVlc3Qgc2hvdWxkIGJlIGZ1bm5lbGxlZCB0aHJvdWdoIHRoZSBsb2NhbCBwcm94eVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBVUkwoYCR7bmV4dFVybC5wYXRobmFtZX0ke25leHRVcmwuc2VhcmNoID8gYD8ke25leHRVcmwuc2VhcmNofWAgOiAnJ31gLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGxldCB1cmwgPSBgJHtmaGlyQmFzZVVybH0vTG9jYXRpb24/YDtcbiAgICAgICAgbGV0IHVybFNlYXJjaFBhcmFtZXRlcnMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgICAgIHVybFNlYXJjaFBhcmFtZXRlcnMuYXBwZW5kKCdfc3VtbWFyeScsICdkYXRhJyk7XG4gICAgICAgIGlmIChjb3VudCkge1xuICAgICAgICAgICAgdXJsU2VhcmNoUGFyYW1ldGVycy5hcHBlbmQoJ19jb3VudCcsICcnICsgY291bnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYWdlKSB7XG4gICAgICAgICAgICB1cmxTZWFyY2hQYXJhbWV0ZXJzLmFwcGVuZCgnX2dldHBhZ2Vzb2Zmc2V0JywgJycgKyBwYWdlICogY291bnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb2NhdGlvblRhZykge1xuICAgICAgICAgICAgdXJsU2VhcmNoUGFyYW1ldGVycy5hcHBlbmQoJ190YWcnLCBsb2NhdGlvblRhZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBkZWJvdW5jZWRTZWFyY2hRdWVyeSA9PT0gJ3N0cmluZycgJiYgZGVib3VuY2VkU2VhcmNoUXVlcnkgIT09ICcnKSB7XG4gICAgICAgICAgICB1cmxTZWFyY2hQYXJhbWV0ZXJzLmFwcGVuZCgnbmFtZTpjb250YWlucycsIGRlYm91bmNlZFNlYXJjaFF1ZXJ5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXJsICsgdXJsU2VhcmNoUGFyYW1ldGVycy50b1N0cmluZygpO1xuICAgIH1cbiAgICBjb25zdCB7IGRhdGEsIGlzTG9hZGluZywgaXNWYWxpZGF0aW5nLCBzZXRTaXplLCBlcnJvciB9ID0gdXNlU3dySW5maW5pdGUoY29uc3RydWN0VXJsLCBvcGVubXJzRmV0Y2gpO1xuICAgIGNvbnN0IG1lbW9pemVkTG9jYXRpb25zID0gdXNlTWVtbygoKT0+e1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbG9jYXRpb25zOiBkYXRhPy5sZW5ndGggPyBkYXRhPy5mbGF0TWFwKChlbnRyaWVzKT0+ZW50cmllcz8uZGF0YT8uZW50cnkgPz8gW10pIDogW10sXG4gICAgICAgICAgICBpc0xvYWRpbmcsXG4gICAgICAgICAgICB0b3RhbFJlc3VsdHM6IGRhdGE/LlswXT8uZGF0YT8udG90YWwsXG4gICAgICAgICAgICBoYXNNb3JlOiBkYXRhPy5sZW5ndGggPyBkYXRhPy5bZGF0YS5sZW5ndGggLSAxXT8uZGF0YT8ubGluaz8uc29tZSgobGluayk9PmxpbmsucmVsYXRpb24gPT09ICduZXh0JykgOiBmYWxzZSxcbiAgICAgICAgICAgIGxvYWRpbmdOZXdEYXRhOiBpc1ZhbGlkYXRpbmcsXG4gICAgICAgICAgICBlcnJvcjogZXJyb3IgfHwgbnVsbCxcbiAgICAgICAgICAgIHNldFBhZ2U6IHNldFNpemVcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIGlzTG9hZGluZyxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgaXNWYWxpZGF0aW5nLFxuICAgICAgICBzZXRTaXplLFxuICAgICAgICBlcnJvclxuICAgIF0pO1xuICAgIHJldHVybiBtZW1vaXplZExvY2F0aW9ucztcbn1cbiJdLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlU3dySW1tdXRhYmxlIiwidXNlU3dySW5maW5pdGUiLCJmaGlyQmFzZVVybCIsIm9wZW5tcnNGZXRjaCIsInVzZURlYm91bmNlIiwidXNlTG9jYXRpb25CeVV1aWQiLCJsb2NhdGlvblV1aWQiLCJ1cmwiLCJkYXRhIiwiZXJyb3IiLCJpc0xvYWRpbmciLCJlcnIiLCJ1c2VMb2NhdGlvbnMiLCJsb2NhdGlvblRhZyIsImNvdW50Iiwic2VhcmNoUXVlcnkiLCJkZWJvdW5jZWRTZWFyY2hRdWVyeSIsImNvbnN0cnVjdFVybCIsInBhZ2UiLCJwcmV2UGFnZURhdGEiLCJuZXh0TGluayIsImxpbmsiLCJuZXh0VXJsIiwiVVJMIiwid2luZG93IiwidXJsU2VhcmNoUGFyYW1ldGVycyIsIlVSTFNlYXJjaFBhcmFtcyIsImlzVmFsaWRhdGluZyIsInNldFNpemUiLCJtZW1vaXplZExvY2F0aW9ucyIsImVudHJpZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQWdDO0FBQ1k7QUFDRjtBQUNtQjtBQUNOO0FBQ3ZEOzs7Ozs7OztDQVFDLEdBQVUsU0FBU00sa0JBQWtCQyxZQUFZO0lBQzlDLE1BQU1DLE1BQU1ELGVBQWUsQ0FBQywwQkFBMEIsRUFBRUEsY0FBYyxHQUFHO0lBQ3pFLE1BQU0sRUFBRUUsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLFNBQVMsRUFBRSxHQUFHViw2Q0FBZUEsQ0FBQ08sS0FBS0osOENBQVlBLEVBQUU7UUFDbEUsb0JBQW9CUSxHQUFHO1lBQ25CLElBQUlBLEtBQUssVUFBVSxRQUFRO2dCQUN2QixPQUFPQSxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUk7WUFDbEM7WUFDQSxPQUFPO1FBQ1g7SUFDSjtJQUNBLE9BQU9aLGtDQUFPQSxDQUFDLElBQUs7WUFDWixVQUFVUyxNQUFNLE1BQU0sUUFBUUEsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRztZQUNuRCxPQUFPRCxNQUFNRSxRQUFRO1lBQ3JCLFdBQVdGLE1BQU1HLFlBQVk7UUFDakMsSUFBSTtRQUNKRjtRQUNBRTtRQUNBRDtRQUNBRjtLQUNIO0FBQ0w7QUFDQTs7Ozs7Ozs7Ozs7Q0FXQyxHQUFVLFNBQVNLLGFBQWFDLFdBQVcsRUFBRUMsUUFBUSxDQUFDLEVBQUVDLGNBQWMsRUFBRTtJQUNyRSxNQUFNQyx1QkFBdUJaLHlEQUFXQSxDQUFDVztJQUN6QyxTQUFTRSxhQUFhQyxJQUFJLEVBQUVDLFlBQVk7UUFDcEMsSUFBSUEsY0FBYztZQUNkLE1BQU1DLFdBQVdELGFBQWEsSUFBSSxFQUFFLE1BQU0sS0FBSyxDQUFDRSxPQUFPQSxLQUFLLFFBQVEsS0FBSztZQUN6RSxJQUFJLENBQUNELFVBQVU7Z0JBQ1gsT0FBTztZQUNYO1lBQ0EsTUFBTUUsVUFBVSxJQUFJQyxJQUFJSCxTQUFTLEdBQUc7WUFDcEMseUJBQXlCO1lBQ3pCLElBQUlFLFFBQVEsTUFBTSxLQUFLRSxPQUFPLFFBQVEsQ0FBQyxNQUFNLEVBQUU7Z0JBQzNDLE9BQU9KLFNBQVMsR0FBRztZQUN2QjtZQUNBLDBFQUEwRTtZQUMxRSxPQUFPLElBQUlHLElBQUksR0FBR0QsUUFBUSxRQUFRLEdBQUdBLFFBQVEsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFQSxRQUFRLE1BQU0sRUFBRSxHQUFHLElBQUksRUFBRUUsT0FBTyxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVE7UUFDdkg7UUFDQSxJQUFJakIsTUFBTSxHQUFHTCw2Q0FBV0EsQ0FBQyxVQUFVLENBQUM7UUFDcEMsSUFBSXVCLHNCQUFzQixJQUFJQztRQUM5QkQsb0JBQW9CLE1BQU0sQ0FBQyxZQUFZO1FBQ3ZDLElBQUlYLE9BQU87WUFDUFcsb0JBQW9CLE1BQU0sQ0FBQyxVQUFVLEtBQUtYO1FBQzlDO1FBQ0EsSUFBSUksTUFBTTtZQUNOTyxvQkFBb0IsTUFBTSxDQUFDLG1CQUFtQixLQUFLUCxPQUFPSjtRQUM5RDtRQUNBLElBQUlELGFBQWE7WUFDYlksb0JBQW9CLE1BQU0sQ0FBQyxRQUFRWjtRQUN2QztRQUNBLElBQUksT0FBT0cseUJBQXlCLFlBQVlBLHlCQUF5QixJQUFJO1lBQ3pFUyxvQkFBb0IsTUFBTSxDQUFDLGlCQUFpQlQ7UUFDaEQ7UUFDQSxPQUFPVCxNQUFNa0Isb0JBQW9CLFFBQVE7SUFDN0M7SUFDQSxNQUFNLEVBQUVqQixJQUFJLEVBQUVFLFNBQVMsRUFBRWlCLFlBQVksRUFBRUMsT0FBTyxFQUFFbkIsS0FBSyxFQUFFLEdBQUdSLDRDQUFjQSxDQUFDZ0IsY0FBY2QsOENBQVlBO0lBQ25HLE1BQU0wQixvQkFBb0I5QixrQ0FBT0EsQ0FBQztRQUM5QixPQUFPO1lBQ0gsV0FBV1MsTUFBTSxTQUFTQSxNQUFNLFFBQVEsQ0FBQ3NCLFVBQVVBLFNBQVMsTUFBTSxTQUFTLEVBQUUsSUFBSSxFQUFFO1lBQ25GcEI7WUFDQSxjQUFjRixNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU07WUFDL0IsU0FBU0EsTUFBTSxTQUFTQSxNQUFNLENBQUNBLEtBQUssTUFBTSxHQUFHLEVBQUUsRUFBRSxNQUFNLE1BQU0sS0FBSyxDQUFDYSxPQUFPQSxLQUFLLFFBQVEsS0FBSyxVQUFVO1lBQ3RHLGdCQUFnQk07WUFDaEIsT0FBT2xCLFNBQVM7WUFDaEIsU0FBU21CO1FBQ2I7SUFDSixHQUFHO1FBQ0NsQjtRQUNBRjtRQUNBbUI7UUFDQUM7UUFDQW5CO0tBQ0g7SUFDRCxPQUFPb0I7QUFDWCJ9\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/dist/location-picker/location-picker.resource.js\n\n}");
|
|
1714
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useLocationByUuid: () => (useLocationByUuid),\n useLocations: () => (useLocations)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr_immutable__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/swr/immutable/swr/immutable\");\n/* import */ var swr_immutable__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(swr_immutable__rspack_import_1);\n/* import */ var swr_infinite__rspack_import_2 = __webpack_require__(\"webpack/sharing/consume/default/swr/infinite/swr/infinite\");\n/* import */ var swr_infinite__rspack_import_2_default = /*#__PURE__*/__webpack_require__.n(swr_infinite__rspack_import_2);\n/* import */ var _openmrs_esm_api__rspack_import_3 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var _openmrs_esm_react_utils__rspack_import_4 = __webpack_require__(\"../../framework/esm-react-utils/dist/index.js\");\n\n\n\n\n\n/**\n * A React hook that fetches a location by its UUID using the FHIR API.\n *\n * @param locationUuid Optional UUID of the location to fetch. If not provided,\n * the hook returns null for the location without making a request.\n * @returns An object containing the location data, loading state, and any error.\n *\n * @category API\n */ function useLocationByUuid(locationUuid) {\n const url = locationUuid ? `/ws/fhir2/R4/Location?_id=${locationUuid}` : null;\n const { data, error, isLoading } = swr_immutable__rspack_import_1_default()(url, _openmrs_esm_api__rspack_import_3.openmrsFetch, {\n shouldRetryOnError (err) {\n if (err?.response?.status) {\n return err.response.status >= 500;\n }\n return false;\n }\n });\n return (0,react__rspack_import_0.useMemo)(()=>({\n location: data?.data?.entry ? data.data.entry[0] : null,\n error: url ? error : null,\n isLoading: url ? isLoading : false\n }), [\n data,\n isLoading,\n error,\n url\n ]);\n}\n/**\n * A React hook that fetches locations from the FHIR API with support for\n * pagination, filtering by tag, and searching by name. Uses SWR infinite\n * loading for efficient pagination.\n *\n * @param locationTag Optional tag to filter locations (e.g., 'Login Location').\n * @param count The number of locations to fetch per page. Defaults to 0 (no limit).\n * @param searchQuery Optional search string to filter locations by name.\n * @returns An object containing the locations array, loading states, pagination info, and any error.\n *\n * @category API\n */ function useLocations(locationTag, count = 0, searchQuery = '') {\n const debouncedSearchQuery = (0,_openmrs_esm_react_utils__rspack_import_4.useDebounce)(searchQuery);\n function constructUrl(page, prevPageData) {\n if (prevPageData) {\n const nextLink = prevPageData.data?.link?.find((link)=>link.relation === 'next');\n if (!nextLink) {\n return null;\n }\n const nextUrl = new URL(nextLink.url);\n // default for production\n if (nextUrl.origin === window.location.origin) {\n return nextLink.url;\n }\n // in development, the request should be funnelled through the local proxy\n return new URL(`${nextUrl.pathname}${nextUrl.search ? `?${nextUrl.search}` : ''}`, window.location.origin).toString();\n }\n let url = `${_openmrs_esm_api__rspack_import_3.fhirBaseUrl}/Location?`;\n let urlSearchParameters = new URLSearchParams();\n urlSearchParameters.append('_summary', 'data');\n if (count) {\n urlSearchParameters.append('_count', '' + count);\n }\n if (page) {\n urlSearchParameters.append('_getpagesoffset', '' + page * count);\n }\n if (locationTag) {\n urlSearchParameters.append('_tag', locationTag);\n }\n if (typeof debouncedSearchQuery === 'string' && debouncedSearchQuery !== '') {\n urlSearchParameters.append('name:contains', debouncedSearchQuery);\n }\n return url + urlSearchParameters.toString();\n }\n const { data, isLoading, isValidating, setSize, error } = swr_infinite__rspack_import_2_default()(constructUrl, _openmrs_esm_api__rspack_import_3.openmrsFetch);\n const memoizedLocations = (0,react__rspack_import_0.useMemo)(()=>{\n return {\n locations: data?.length ? data?.flatMap((entries)=>entries?.data?.entry ?? []) : [],\n isLoading,\n totalResults: data?.[0]?.data?.total,\n hasMore: data?.length ? data?.[data.length - 1]?.data?.link?.some((link)=>link.relation === 'next') : false,\n loadingNewData: isValidating,\n error: error || null,\n setPage: setSize\n };\n }, [\n isLoading,\n data,\n isValidating,\n setSize,\n error\n ]);\n return memoizedLocations;\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL2Rpc3QvbG9jYXRpb24tcGlja2VyL2xvY2F0aW9uLXBpY2tlci5yZXNvdXJjZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL2Rpc3QvbG9jYXRpb24tcGlja2VyL2xvY2F0aW9uLXBpY2tlci5yZXNvdXJjZS5qcz82ZGE4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB1c2VTd3JJbW11dGFibGUgZnJvbSBcInN3ci9pbW11dGFibGVcIjtcbmltcG9ydCB1c2VTd3JJbmZpbml0ZSBmcm9tIFwic3dyL2luZmluaXRlXCI7XG5pbXBvcnQgeyBmaGlyQmFzZVVybCwgb3Blbm1yc0ZldGNoIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1hcGlcIjtcbmltcG9ydCB7IHVzZURlYm91bmNlIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1yZWFjdC11dGlsc1wiO1xuLyoqXG4gKiBBIFJlYWN0IGhvb2sgdGhhdCBmZXRjaGVzIGEgbG9jYXRpb24gYnkgaXRzIFVVSUQgdXNpbmcgdGhlIEZISVIgQVBJLlxuICpcbiAqIEBwYXJhbSBsb2NhdGlvblV1aWQgT3B0aW9uYWwgVVVJRCBvZiB0aGUgbG9jYXRpb24gdG8gZmV0Y2guIElmIG5vdCBwcm92aWRlZCxcbiAqICAgdGhlIGhvb2sgcmV0dXJucyBudWxsIGZvciB0aGUgbG9jYXRpb24gd2l0aG91dCBtYWtpbmcgYSByZXF1ZXN0LlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGxvY2F0aW9uIGRhdGEsIGxvYWRpbmcgc3RhdGUsIGFuZCBhbnkgZXJyb3IuXG4gKlxuICogQGNhdGVnb3J5IEFQSVxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VMb2NhdGlvbkJ5VXVpZChsb2NhdGlvblV1aWQpIHtcbiAgICBjb25zdCB1cmwgPSBsb2NhdGlvblV1aWQgPyBgL3dzL2ZoaXIyL1I0L0xvY2F0aW9uP19pZD0ke2xvY2F0aW9uVXVpZH1gIDogbnVsbDtcbiAgICBjb25zdCB7IGRhdGEsIGVycm9yLCBpc0xvYWRpbmcgfSA9IHVzZVN3ckltbXV0YWJsZSh1cmwsIG9wZW5tcnNGZXRjaCwge1xuICAgICAgICBzaG91bGRSZXRyeU9uRXJyb3IgKGVycikge1xuICAgICAgICAgICAgaWYgKGVycj8ucmVzcG9uc2U/LnN0YXR1cykge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcnIucmVzcG9uc2Uuc3RhdHVzID49IDUwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB1c2VNZW1vKCgpPT4oe1xuICAgICAgICAgICAgbG9jYXRpb246IGRhdGE/LmRhdGE/LmVudHJ5ID8gZGF0YS5kYXRhLmVudHJ5WzBdIDogbnVsbCxcbiAgICAgICAgICAgIGVycm9yOiB1cmwgPyBlcnJvciA6IG51bGwsXG4gICAgICAgICAgICBpc0xvYWRpbmc6IHVybCA/IGlzTG9hZGluZyA6IGZhbHNlXG4gICAgICAgIH0pLCBbXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGlzTG9hZGluZyxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIHVybFxuICAgIF0pO1xufVxuLyoqXG4gKiBBIFJlYWN0IGhvb2sgdGhhdCBmZXRjaGVzIGxvY2F0aW9ucyBmcm9tIHRoZSBGSElSIEFQSSB3aXRoIHN1cHBvcnQgZm9yXG4gKiBwYWdpbmF0aW9uLCBmaWx0ZXJpbmcgYnkgdGFnLCBhbmQgc2VhcmNoaW5nIGJ5IG5hbWUuIFVzZXMgU1dSIGluZmluaXRlXG4gKiBsb2FkaW5nIGZvciBlZmZpY2llbnQgcGFnaW5hdGlvbi5cbiAqXG4gKiBAcGFyYW0gbG9jYXRpb25UYWcgT3B0aW9uYWwgdGFnIHRvIGZpbHRlciBsb2NhdGlvbnMgKGUuZy4sICdMb2dpbiBMb2NhdGlvbicpLlxuICogQHBhcmFtIGNvdW50IFRoZSBudW1iZXIgb2YgbG9jYXRpb25zIHRvIGZldGNoIHBlciBwYWdlLiBEZWZhdWx0cyB0byAwIChubyBsaW1pdCkuXG4gKiBAcGFyYW0gc2VhcmNoUXVlcnkgT3B0aW9uYWwgc2VhcmNoIHN0cmluZyB0byBmaWx0ZXIgbG9jYXRpb25zIGJ5IG5hbWUuXG4gKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgbG9jYXRpb25zIGFycmF5LCBsb2FkaW5nIHN0YXRlcywgcGFnaW5hdGlvbiBpbmZvLCBhbmQgYW55IGVycm9yLlxuICpcbiAqIEBjYXRlZ29yeSBBUElcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlTG9jYXRpb25zKGxvY2F0aW9uVGFnLCBjb3VudCA9IDAsIHNlYXJjaFF1ZXJ5ID0gJycpIHtcbiAgICBjb25zdCBkZWJvdW5jZWRTZWFyY2hRdWVyeSA9IHVzZURlYm91bmNlKHNlYXJjaFF1ZXJ5KTtcbiAgICBmdW5jdGlvbiBjb25zdHJ1Y3RVcmwocGFnZSwgcHJldlBhZ2VEYXRhKSB7XG4gICAgICAgIGlmIChwcmV2UGFnZURhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRMaW5rID0gcHJldlBhZ2VEYXRhLmRhdGE/Lmxpbms/LmZpbmQoKGxpbmspPT5saW5rLnJlbGF0aW9uID09PSAnbmV4dCcpO1xuICAgICAgICAgICAgaWYgKCFuZXh0TGluaykge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbmV4dFVybCA9IG5ldyBVUkwobmV4dExpbmsudXJsKTtcbiAgICAgICAgICAgIC8vIGRlZmF1bHQgZm9yIHByb2R1Y3Rpb25cbiAgICAgICAgICAgIGlmIChuZXh0VXJsLm9yaWdpbiA9PT0gd2luZG93LmxvY2F0aW9uLm9yaWdpbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXh0TGluay51cmw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpbiBkZXZlbG9wbWVudCwgdGhlIHJlcXVlc3Qgc2hvdWxkIGJlIGZ1bm5lbGxlZCB0aHJvdWdoIHRoZSBsb2NhbCBwcm94eVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBVUkwoYCR7bmV4dFVybC5wYXRobmFtZX0ke25leHRVcmwuc2VhcmNoID8gYD8ke25leHRVcmwuc2VhcmNofWAgOiAnJ31gLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGxldCB1cmwgPSBgJHtmaGlyQmFzZVVybH0vTG9jYXRpb24/YDtcbiAgICAgICAgbGV0IHVybFNlYXJjaFBhcmFtZXRlcnMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgICAgIHVybFNlYXJjaFBhcmFtZXRlcnMuYXBwZW5kKCdfc3VtbWFyeScsICdkYXRhJyk7XG4gICAgICAgIGlmIChjb3VudCkge1xuICAgICAgICAgICAgdXJsU2VhcmNoUGFyYW1ldGVycy5hcHBlbmQoJ19jb3VudCcsICcnICsgY291bnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYWdlKSB7XG4gICAgICAgICAgICB1cmxTZWFyY2hQYXJhbWV0ZXJzLmFwcGVuZCgnX2dldHBhZ2Vzb2Zmc2V0JywgJycgKyBwYWdlICogY291bnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb2NhdGlvblRhZykge1xuICAgICAgICAgICAgdXJsU2VhcmNoUGFyYW1ldGVycy5hcHBlbmQoJ190YWcnLCBsb2NhdGlvblRhZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBkZWJvdW5jZWRTZWFyY2hRdWVyeSA9PT0gJ3N0cmluZycgJiYgZGVib3VuY2VkU2VhcmNoUXVlcnkgIT09ICcnKSB7XG4gICAgICAgICAgICB1cmxTZWFyY2hQYXJhbWV0ZXJzLmFwcGVuZCgnbmFtZTpjb250YWlucycsIGRlYm91bmNlZFNlYXJjaFF1ZXJ5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXJsICsgdXJsU2VhcmNoUGFyYW1ldGVycy50b1N0cmluZygpO1xuICAgIH1cbiAgICBjb25zdCB7IGRhdGEsIGlzTG9hZGluZywgaXNWYWxpZGF0aW5nLCBzZXRTaXplLCBlcnJvciB9ID0gdXNlU3dySW5maW5pdGUoY29uc3RydWN0VXJsLCBvcGVubXJzRmV0Y2gpO1xuICAgIGNvbnN0IG1lbW9pemVkTG9jYXRpb25zID0gdXNlTWVtbygoKT0+e1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbG9jYXRpb25zOiBkYXRhPy5sZW5ndGggPyBkYXRhPy5mbGF0TWFwKChlbnRyaWVzKT0+ZW50cmllcz8uZGF0YT8uZW50cnkgPz8gW10pIDogW10sXG4gICAgICAgICAgICBpc0xvYWRpbmcsXG4gICAgICAgICAgICB0b3RhbFJlc3VsdHM6IGRhdGE/LlswXT8uZGF0YT8udG90YWwsXG4gICAgICAgICAgICBoYXNNb3JlOiBkYXRhPy5sZW5ndGggPyBkYXRhPy5bZGF0YS5sZW5ndGggLSAxXT8uZGF0YT8ubGluaz8uc29tZSgobGluayk9PmxpbmsucmVsYXRpb24gPT09ICduZXh0JykgOiBmYWxzZSxcbiAgICAgICAgICAgIGxvYWRpbmdOZXdEYXRhOiBpc1ZhbGlkYXRpbmcsXG4gICAgICAgICAgICBlcnJvcjogZXJyb3IgfHwgbnVsbCxcbiAgICAgICAgICAgIHNldFBhZ2U6IHNldFNpemVcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIGlzTG9hZGluZyxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgaXNWYWxpZGF0aW5nLFxuICAgICAgICBzZXRTaXplLFxuICAgICAgICBlcnJvclxuICAgIF0pO1xuICAgIHJldHVybiBtZW1vaXplZExvY2F0aW9ucztcbn1cbiJdLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlU3dySW1tdXRhYmxlIiwidXNlU3dySW5maW5pdGUiLCJmaGlyQmFzZVVybCIsIm9wZW5tcnNGZXRjaCIsInVzZURlYm91bmNlIiwidXNlTG9jYXRpb25CeVV1aWQiLCJsb2NhdGlvblV1aWQiLCJ1cmwiLCJkYXRhIiwiZXJyb3IiLCJpc0xvYWRpbmciLCJlcnIiLCJ1c2VMb2NhdGlvbnMiLCJsb2NhdGlvblRhZyIsImNvdW50Iiwic2VhcmNoUXVlcnkiLCJkZWJvdW5jZWRTZWFyY2hRdWVyeSIsImNvbnN0cnVjdFVybCIsInBhZ2UiLCJwcmV2UGFnZURhdGEiLCJuZXh0TGluayIsImxpbmsiLCJuZXh0VXJsIiwiVVJMIiwid2luZG93IiwidXJsU2VhcmNoUGFyYW1ldGVycyIsIlVSTFNlYXJjaFBhcmFtcyIsImlzVmFsaWRhdGluZyIsInNldFNpemUiLCJtZW1vaXplZExvY2F0aW9ucyIsImVudHJpZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBZ0M7QUFDWTtBQUNGO0FBQ21CO0FBQ047QUFDdkQ7Ozs7Ozs7O0NBUUMsR0FBVSxTQUFTTSxrQkFBa0JDLFlBQVk7SUFDOUMsTUFBTUMsTUFBTUQsZUFBZSxDQUFDLDBCQUEwQixFQUFFQSxjQUFjLEdBQUc7SUFDekUsTUFBTSxFQUFFRSxJQUFJLEVBQUVDLEtBQUssRUFBRUMsU0FBUyxFQUFFLEdBQUdWLHdDQUFlQSxDQUFDTyxLQUFLSiw4Q0FBWUEsRUFBRTtRQUNsRSxvQkFBb0JRLEdBQUc7WUFDbkIsSUFBSUEsS0FBSyxVQUFVLFFBQVE7Z0JBQ3ZCLE9BQU9BLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSTtZQUNsQztZQUNBLE9BQU87UUFDWDtJQUNKO0lBQ0EsT0FBT1osa0NBQU9BLENBQUMsSUFBSztZQUNaLFVBQVVTLE1BQU0sTUFBTSxRQUFRQSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHO1lBQ25ELE9BQU9ELE1BQU1FLFFBQVE7WUFDckIsV0FBV0YsTUFBTUcsWUFBWTtRQUNqQyxJQUFJO1FBQ0pGO1FBQ0FFO1FBQ0FEO1FBQ0FGO0tBQ0g7QUFDTDtBQUNBOzs7Ozs7Ozs7OztDQVdDLEdBQVUsU0FBU0ssYUFBYUMsV0FBVyxFQUFFQyxRQUFRLENBQUMsRUFBRUMsY0FBYyxFQUFFO0lBQ3JFLE1BQU1DLHVCQUF1QloseURBQVdBLENBQUNXO0lBQ3pDLFNBQVNFLGFBQWFDLElBQUksRUFBRUMsWUFBWTtRQUNwQyxJQUFJQSxjQUFjO1lBQ2QsTUFBTUMsV0FBV0QsYUFBYSxJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUNFLE9BQU9BLEtBQUssUUFBUSxLQUFLO1lBQ3pFLElBQUksQ0FBQ0QsVUFBVTtnQkFDWCxPQUFPO1lBQ1g7WUFDQSxNQUFNRSxVQUFVLElBQUlDLElBQUlILFNBQVMsR0FBRztZQUNwQyx5QkFBeUI7WUFDekIsSUFBSUUsUUFBUSxNQUFNLEtBQUtFLE9BQU8sUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDM0MsT0FBT0osU0FBUyxHQUFHO1lBQ3ZCO1lBQ0EsMEVBQTBFO1lBQzFFLE9BQU8sSUFBSUcsSUFBSSxHQUFHRCxRQUFRLFFBQVEsR0FBR0EsUUFBUSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUVBLFFBQVEsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUFFRSxPQUFPLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUTtRQUN2SDtRQUNBLElBQUlqQixNQUFNLEdBQUdMLDZDQUFXQSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxJQUFJdUIsc0JBQXNCLElBQUlDO1FBQzlCRCxvQkFBb0IsTUFBTSxDQUFDLFlBQVk7UUFDdkMsSUFBSVgsT0FBTztZQUNQVyxvQkFBb0IsTUFBTSxDQUFDLFVBQVUsS0FBS1g7UUFDOUM7UUFDQSxJQUFJSSxNQUFNO1lBQ05PLG9CQUFvQixNQUFNLENBQUMsbUJBQW1CLEtBQUtQLE9BQU9KO1FBQzlEO1FBQ0EsSUFBSUQsYUFBYTtZQUNiWSxvQkFBb0IsTUFBTSxDQUFDLFFBQVFaO1FBQ3ZDO1FBQ0EsSUFBSSxPQUFPRyx5QkFBeUIsWUFBWUEseUJBQXlCLElBQUk7WUFDekVTLG9CQUFvQixNQUFNLENBQUMsaUJBQWlCVDtRQUNoRDtRQUNBLE9BQU9ULE1BQU1rQixvQkFBb0IsUUFBUTtJQUM3QztJQUNBLE1BQU0sRUFBRWpCLElBQUksRUFBRUUsU0FBUyxFQUFFaUIsWUFBWSxFQUFFQyxPQUFPLEVBQUVuQixLQUFLLEVBQUUsR0FBR1IsdUNBQWNBLENBQUNnQixjQUFjZCw4Q0FBWUE7SUFDbkcsTUFBTTBCLG9CQUFvQjlCLGtDQUFPQSxDQUFDO1FBQzlCLE9BQU87WUFDSCxXQUFXUyxNQUFNLFNBQVNBLE1BQU0sUUFBUSxDQUFDc0IsVUFBVUEsU0FBUyxNQUFNLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDbkZwQjtZQUNBLGNBQWNGLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTTtZQUMvQixTQUFTQSxNQUFNLFNBQVNBLE1BQU0sQ0FBQ0EsS0FBSyxNQUFNLEdBQUcsRUFBRSxFQUFFLE1BQU0sTUFBTSxLQUFLLENBQUNhLE9BQU9BLEtBQUssUUFBUSxLQUFLLFVBQVU7WUFDdEcsZ0JBQWdCTTtZQUNoQixPQUFPbEIsU0FBUztZQUNoQixTQUFTbUI7UUFDYjtJQUNKLEdBQUc7UUFDQ2xCO1FBQ0FGO1FBQ0FtQjtRQUNBQztRQUNBbkI7S0FDSDtJQUNELE9BQU9vQjtBQUNYIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/dist/location-picker/location-picker.resource.js\n\n}");
|
|
1719
1715
|
|
|
1720
1716
|
},
|
|
1721
1717
|
"../../framework/esm-styleguide/dist/modals/index.js"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
@@ -1765,7 +1761,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
1765
1761
|
},
|
|
1766
1762
|
"../../framework/esm-styleguide/dist/numeric-observation/use-concept-reference-range.js"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
1767
1763
|
"use strict";
|
|
1768
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useConceptReferenceRange: () => (useConceptReferenceRange)\n});\n/* import */ var swr_immutable__rspack_import_0 = __webpack_require__(\"
|
|
1764
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useConceptReferenceRange: () => (useConceptReferenceRange)\n});\n/* import */ var swr_immutable__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/swr/immutable/swr/immutable\");\n/* import */ var swr_immutable__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(swr_immutable__rspack_import_0);\n/* import */ var _openmrs_esm_api__rspack_import_1 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/** @module @category UI */ \n\n/**\n * Hook to fetch concept reference range from OpenMRS REST API\n * @param conceptUuid - The UUID of the concept to fetch reference range for\n * @returns Reference range data, loading state, and error\n */ function useConceptReferenceRange(conceptUuid, patientUuid) {\n let apiUrl = null;\n if (conceptUuid) {\n if (patientUuid) {\n apiUrl = `${_openmrs_esm_api__rspack_import_1.restBaseUrl}/conceptreferencerange/?patient=${patientUuid}&concept=${conceptUuid}&v=full`;\n } else {\n apiUrl = `${_openmrs_esm_api__rspack_import_1.restBaseUrl}/conceptreferencerange/?concept=${conceptUuid}&v=full`;\n }\n }\n const { data, error, isLoading } = swr_immutable__rspack_import_0_default()(apiUrl, _openmrs_esm_api__rspack_import_1.openmrsFetch);\n const conceptData = data?.data?.results?.[0];\n const referenceRange = conceptData ? {\n hiNormal: conceptData.hiNormal ?? null,\n hiAbsolute: conceptData.hiAbsolute ?? null,\n hiCritical: conceptData.hiCritical ?? null,\n lowNormal: conceptData.lowNormal ?? null,\n lowAbsolute: conceptData.lowAbsolute ?? null,\n lowCritical: conceptData.lowCritical ?? null\n } : undefined;\n return {\n referenceRange,\n error,\n isLoading\n };\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL2Rpc3QvbnVtZXJpYy1vYnNlcnZhdGlvbi91c2UtY29uY2VwdC1yZWZlcmVuY2UtcmFuZ2UuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tc3R5bGVndWlkZS9kaXN0L251bWVyaWMtb2JzZXJ2YXRpb24vdXNlLWNvbmNlcHQtcmVmZXJlbmNlLXJhbmdlLmpzP2JhZjYiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IFVJICovIGltcG9ydCB1c2VTV1JJbW11dGFibGUgZnJvbSBcInN3ci9pbW11dGFibGVcIjtcbmltcG9ydCB7IG9wZW5tcnNGZXRjaCwgcmVzdEJhc2VVcmwgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWFwaVwiO1xuLyoqXG4gKiBIb29rIHRvIGZldGNoIGNvbmNlcHQgcmVmZXJlbmNlIHJhbmdlIGZyb20gT3Blbk1SUyBSRVNUIEFQSVxuICogQHBhcmFtIGNvbmNlcHRVdWlkIC0gVGhlIFVVSUQgb2YgdGhlIGNvbmNlcHQgdG8gZmV0Y2ggcmVmZXJlbmNlIHJhbmdlIGZvclxuICogQHJldHVybnMgUmVmZXJlbmNlIHJhbmdlIGRhdGEsIGxvYWRpbmcgc3RhdGUsIGFuZCBlcnJvclxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VDb25jZXB0UmVmZXJlbmNlUmFuZ2UoY29uY2VwdFV1aWQsIHBhdGllbnRVdWlkKSB7XG4gICAgbGV0IGFwaVVybCA9IG51bGw7XG4gICAgaWYgKGNvbmNlcHRVdWlkKSB7XG4gICAgICAgIGlmIChwYXRpZW50VXVpZCkge1xuICAgICAgICAgICAgYXBpVXJsID0gYCR7cmVzdEJhc2VVcmx9L2NvbmNlcHRyZWZlcmVuY2VyYW5nZS8/cGF0aWVudD0ke3BhdGllbnRVdWlkfSZjb25jZXB0PSR7Y29uY2VwdFV1aWR9JnY9ZnVsbGA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcGlVcmwgPSBgJHtyZXN0QmFzZVVybH0vY29uY2VwdHJlZmVyZW5jZXJhbmdlLz9jb25jZXB0PSR7Y29uY2VwdFV1aWR9JnY9ZnVsbGA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgeyBkYXRhLCBlcnJvciwgaXNMb2FkaW5nIH0gPSB1c2VTV1JJbW11dGFibGUoYXBpVXJsLCBvcGVubXJzRmV0Y2gpO1xuICAgIGNvbnN0IGNvbmNlcHREYXRhID0gZGF0YT8uZGF0YT8ucmVzdWx0cz8uWzBdO1xuICAgIGNvbnN0IHJlZmVyZW5jZVJhbmdlID0gY29uY2VwdERhdGEgPyB7XG4gICAgICAgIGhpTm9ybWFsOiBjb25jZXB0RGF0YS5oaU5vcm1hbCA/PyBudWxsLFxuICAgICAgICBoaUFic29sdXRlOiBjb25jZXB0RGF0YS5oaUFic29sdXRlID8/IG51bGwsXG4gICAgICAgIGhpQ3JpdGljYWw6IGNvbmNlcHREYXRhLmhpQ3JpdGljYWwgPz8gbnVsbCxcbiAgICAgICAgbG93Tm9ybWFsOiBjb25jZXB0RGF0YS5sb3dOb3JtYWwgPz8gbnVsbCxcbiAgICAgICAgbG93QWJzb2x1dGU6IGNvbmNlcHREYXRhLmxvd0Fic29sdXRlID8/IG51bGwsXG4gICAgICAgIGxvd0NyaXRpY2FsOiBjb25jZXB0RGF0YS5sb3dDcml0aWNhbCA/PyBudWxsXG4gICAgfSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgICByZWZlcmVuY2VSYW5nZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGlzTG9hZGluZ1xuICAgIH07XG59XG4iXSwibmFtZXMiOlsidXNlU1dSSW1tdXRhYmxlIiwib3Blbm1yc0ZldGNoIiwicmVzdEJhc2VVcmwiLCJ1c2VDb25jZXB0UmVmZXJlbmNlUmFuZ2UiLCJjb25jZXB0VXVpZCIsInBhdGllbnRVdWlkIiwiYXBpVXJsIiwiZGF0YSIsImVycm9yIiwiaXNMb2FkaW5nIiwiY29uY2VwdERhdGEiLCJyZWZlcmVuY2VSYW5nZSIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLHlCQUF5QixHQUErQztBQUNYO0FBQzdEOzs7O0NBSUMsR0FBVSxTQUFTRyx5QkFBeUJDLFdBQVcsRUFBRUMsV0FBVztJQUNqRSxJQUFJQyxTQUFTO0lBQ2IsSUFBSUYsYUFBYTtRQUNiLElBQUlDLGFBQWE7WUFDYkMsU0FBUyxHQUFHSiw2Q0FBV0EsQ0FBQyxnQ0FBZ0MsRUFBRUcsWUFBWSxTQUFTLEVBQUVELFlBQVksT0FBTyxDQUFDO1FBQ3pHLE9BQU87WUFDSEUsU0FBUyxHQUFHSiw2Q0FBV0EsQ0FBQyxnQ0FBZ0MsRUFBRUUsWUFBWSxPQUFPLENBQUM7UUFDbEY7SUFDSjtJQUNBLE1BQU0sRUFBRUcsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLFNBQVMsRUFBRSxHQUFHVCx3Q0FBZUEsQ0FBQ00sUUFBUUwsOENBQVlBO0lBQ3ZFLE1BQU1TLGNBQWNILE1BQU0sTUFBTSxTQUFTLENBQUMsRUFBRTtJQUM1QyxNQUFNSSxpQkFBaUJELGNBQWM7UUFDakMsVUFBVUEsWUFBWSxRQUFRLElBQUk7UUFDbEMsWUFBWUEsWUFBWSxVQUFVLElBQUk7UUFDdEMsWUFBWUEsWUFBWSxVQUFVLElBQUk7UUFDdEMsV0FBV0EsWUFBWSxTQUFTLElBQUk7UUFDcEMsYUFBYUEsWUFBWSxXQUFXLElBQUk7UUFDeEMsYUFBYUEsWUFBWSxXQUFXLElBQUk7SUFDNUMsSUFBSUU7SUFDSixPQUFPO1FBQ0hEO1FBQ0FIO1FBQ0FDO0lBQ0o7QUFDSiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/dist/numeric-observation/use-concept-reference-range.js\n\n}");
|
|
1769
1765
|
|
|
1770
1766
|
},
|
|
1771
1767
|
"../../framework/esm-styleguide/dist/page-header/index.js"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
@@ -1805,17 +1801,17 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
1805
1801
|
},
|
|
1806
1802
|
"../../framework/esm-styleguide/dist/patient-banner/contact-details/usePatientAttributes.js"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
1807
1803
|
"use strict";
|
|
1808
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n usePatientAttributes: () => (usePatientAttributes),\n usePatientContactAttributes: () => (usePatientContactAttributes)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr_immutable__rspack_import_1 = __webpack_require__(\"
|
|
1804
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n usePatientAttributes: () => (usePatientAttributes),\n usePatientContactAttributes: () => (usePatientContactAttributes)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr_immutable__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/swr/immutable/swr/immutable\");\n/* import */ var swr_immutable__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(swr_immutable__rspack_import_1);\n/* import */ var _openmrs_esm_api__rspack_import_2 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var _openmrs_esm_react_utils__rspack_import_3 = __webpack_require__(\"../../framework/esm-react-utils/dist/index.js\");\n\n\n\n\nconst customRepresentation = 'custom:(uuid,display,identifiers:(identifier,uuid,preferred,location:(uuid,name),identifierType:(uuid,name,format,formatDescription,validator)),person:(uuid,display,gender,birthdate,dead,age,deathDate,birthdateEstimated,causeOfDeath,preferredName:(uuid,preferred,givenName,middleName,familyName),attributes,preferredAddress:(uuid,preferred,address1,address2,cityVillage,longitude,stateProvince,latitude,country,postalCode,countyDistrict,address3,address4,address5,address6,address7)))';\n/**\n * React hook that takes patientUuid and return Patient Attributes {@link Attribute}\n * @param patientUuid Unique Patient identifier\n * @returns Object containing `patient-attributes`, `isLoading` loading status, `error`\n */ const usePatientAttributes = (patientUuid)=>{\n const { data, error, isLoading } = swr_immutable__rspack_import_1_default()(`${_openmrs_esm_api__rspack_import_2.restBaseUrl}/patient/${patientUuid}?v=${customRepresentation}`, _openmrs_esm_api__rspack_import_2.openmrsFetch);\n return {\n isLoading,\n attributes: data?.data.person.attributes ?? [],\n error: error\n };\n};\n/**\n * React hook that takes patientUuid and returns contact details\n * derived from patient attributes using configured attributeTypes.\n *\n * Note: This hook loads configuration from '@openmrs/esm-patient-banner-app'\n * because the contact attribute types are defined in the patient banner's\n * configuration schema. While this hook lives in esm-styleguide, it serves\n * the patient banner's contact details display.\n *\n * @param patientUuid - Unique patient identifier\n * @returns {Object} Object containing filtered contact attributes, loading status, and error\n * @property {Array} contactAttributes - List of contact-related attributes\n * @property {boolean} isLoading - Loading status\n * @property {Error|null} error - Error object if request fails\n */ const usePatientContactAttributes = (patientUuid)=>{\n const { contactAttributeTypes = [] } = (0,_openmrs_esm_react_utils__rspack_import_3.useConfig)({\n externalModuleName: '@openmrs/esm-patient-banner-app'\n });\n const { attributes, error, isLoading } = usePatientAttributes(patientUuid);\n const contactAttributes = (0,react__rspack_import_0.useMemo)(()=>attributes.filter(({ attributeType })=>contactAttributeTypes?.some((uuid)=>attributeType.uuid === uuid)), [\n attributes,\n contactAttributeTypes\n ]);\n return {\n contactAttributes,\n isLoading,\n error\n };\n};\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL2Rpc3QvcGF0aWVudC1iYW5uZXIvY29udGFjdC1kZXRhaWxzL3VzZVBhdGllbnRBdHRyaWJ1dGVzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLXN0eWxlZ3VpZGUvZGlzdC9wYXRpZW50LWJhbm5lci9jb250YWN0LWRldGFpbHMvdXNlUGF0aWVudEF0dHJpYnV0ZXMuanM/ZDFkMCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdXNlU1dSSW1tdXRhYmxlIGZyb20gXCJzd3IvaW1tdXRhYmxlXCI7XG5pbXBvcnQgeyBvcGVubXJzRmV0Y2gsIHJlc3RCYXNlVXJsIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1hcGlcIjtcbmltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gXCJAb3Blbm1ycy9lc20tcmVhY3QtdXRpbHNcIjtcbmNvbnN0IGN1c3RvbVJlcHJlc2VudGF0aW9uID0gJ2N1c3RvbToodXVpZCxkaXNwbGF5LGlkZW50aWZpZXJzOihpZGVudGlmaWVyLHV1aWQscHJlZmVycmVkLGxvY2F0aW9uOih1dWlkLG5hbWUpLGlkZW50aWZpZXJUeXBlOih1dWlkLG5hbWUsZm9ybWF0LGZvcm1hdERlc2NyaXB0aW9uLHZhbGlkYXRvcikpLHBlcnNvbjoodXVpZCxkaXNwbGF5LGdlbmRlcixiaXJ0aGRhdGUsZGVhZCxhZ2UsZGVhdGhEYXRlLGJpcnRoZGF0ZUVzdGltYXRlZCxjYXVzZU9mRGVhdGgscHJlZmVycmVkTmFtZToodXVpZCxwcmVmZXJyZWQsZ2l2ZW5OYW1lLG1pZGRsZU5hbWUsZmFtaWx5TmFtZSksYXR0cmlidXRlcyxwcmVmZXJyZWRBZGRyZXNzOih1dWlkLHByZWZlcnJlZCxhZGRyZXNzMSxhZGRyZXNzMixjaXR5VmlsbGFnZSxsb25naXR1ZGUsc3RhdGVQcm92aW5jZSxsYXRpdHVkZSxjb3VudHJ5LHBvc3RhbENvZGUsY291bnR5RGlzdHJpY3QsYWRkcmVzczMsYWRkcmVzczQsYWRkcmVzczUsYWRkcmVzczYsYWRkcmVzczcpKSknO1xuLyoqXG4gKiAgUmVhY3QgaG9vayB0aGF0IHRha2VzIHBhdGllbnRVdWlkIGFuZCByZXR1cm4gUGF0aWVudCBBdHRyaWJ1dGVzIHtAbGluayBBdHRyaWJ1dGV9XG4gKiBAcGFyYW0gcGF0aWVudFV1aWQgVW5pcXVlIFBhdGllbnQgaWRlbnRpZmllclxuICogQHJldHVybnMgT2JqZWN0IGNvbnRhaW5pbmcgYHBhdGllbnQtYXR0cmlidXRlc2AsIGBpc0xvYWRpbmdgIGxvYWRpbmcgc3RhdHVzLCBgZXJyb3JgXG4gKi8gZXhwb3J0IGNvbnN0IHVzZVBhdGllbnRBdHRyaWJ1dGVzID0gKHBhdGllbnRVdWlkKT0+e1xuICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IsIGlzTG9hZGluZyB9ID0gdXNlU1dSSW1tdXRhYmxlKGAke3Jlc3RCYXNlVXJsfS9wYXRpZW50LyR7cGF0aWVudFV1aWR9P3Y9JHtjdXN0b21SZXByZXNlbnRhdGlvbn1gLCBvcGVubXJzRmV0Y2gpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGlzTG9hZGluZyxcbiAgICAgICAgYXR0cmlidXRlczogZGF0YT8uZGF0YS5wZXJzb24uYXR0cmlidXRlcyA/PyBbXSxcbiAgICAgICAgZXJyb3I6IGVycm9yXG4gICAgfTtcbn07XG4vKipcbiAqIFJlYWN0IGhvb2sgdGhhdCB0YWtlcyBwYXRpZW50VXVpZCBhbmQgcmV0dXJucyBjb250YWN0IGRldGFpbHNcbiAqIGRlcml2ZWQgZnJvbSBwYXRpZW50IGF0dHJpYnV0ZXMgdXNpbmcgY29uZmlndXJlZCBhdHRyaWJ1dGVUeXBlcy5cbiAqXG4gKiBOb3RlOiBUaGlzIGhvb2sgbG9hZHMgY29uZmlndXJhdGlvbiBmcm9tICdAb3Blbm1ycy9lc20tcGF0aWVudC1iYW5uZXItYXBwJ1xuICogYmVjYXVzZSB0aGUgY29udGFjdCBhdHRyaWJ1dGUgdHlwZXMgYXJlIGRlZmluZWQgaW4gdGhlIHBhdGllbnQgYmFubmVyJ3NcbiAqIGNvbmZpZ3VyYXRpb24gc2NoZW1hLiBXaGlsZSB0aGlzIGhvb2sgbGl2ZXMgaW4gZXNtLXN0eWxlZ3VpZGUsIGl0IHNlcnZlc1xuICogdGhlIHBhdGllbnQgYmFubmVyJ3MgY29udGFjdCBkZXRhaWxzIGRpc3BsYXkuXG4gKlxuICogQHBhcmFtIHBhdGllbnRVdWlkIC0gVW5pcXVlIHBhdGllbnQgaWRlbnRpZmllclxuICogQHJldHVybnMge09iamVjdH0gT2JqZWN0IGNvbnRhaW5pbmcgZmlsdGVyZWQgY29udGFjdCBhdHRyaWJ1dGVzLCBsb2FkaW5nIHN0YXR1cywgYW5kIGVycm9yXG4gKiBAcHJvcGVydHkge0FycmF5fSBjb250YWN0QXR0cmlidXRlcyAtIExpc3Qgb2YgY29udGFjdC1yZWxhdGVkIGF0dHJpYnV0ZXNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNMb2FkaW5nIC0gTG9hZGluZyBzdGF0dXNcbiAqIEBwcm9wZXJ0eSB7RXJyb3J8bnVsbH0gZXJyb3IgLSBFcnJvciBvYmplY3QgaWYgcmVxdWVzdCBmYWlsc1xuICovIGV4cG9ydCBjb25zdCB1c2VQYXRpZW50Q29udGFjdEF0dHJpYnV0ZXMgPSAocGF0aWVudFV1aWQpPT57XG4gICAgY29uc3QgeyBjb250YWN0QXR0cmlidXRlVHlwZXMgPSBbXSB9ID0gdXNlQ29uZmlnKHtcbiAgICAgICAgZXh0ZXJuYWxNb2R1bGVOYW1lOiAnQG9wZW5tcnMvZXNtLXBhdGllbnQtYmFubmVyLWFwcCdcbiAgICB9KTtcbiAgICBjb25zdCB7IGF0dHJpYnV0ZXMsIGVycm9yLCBpc0xvYWRpbmcgfSA9IHVzZVBhdGllbnRBdHRyaWJ1dGVzKHBhdGllbnRVdWlkKTtcbiAgICBjb25zdCBjb250YWN0QXR0cmlidXRlcyA9IHVzZU1lbW8oKCk9PmF0dHJpYnV0ZXMuZmlsdGVyKCh7IGF0dHJpYnV0ZVR5cGUgfSk9PmNvbnRhY3RBdHRyaWJ1dGVUeXBlcz8uc29tZSgodXVpZCk9PmF0dHJpYnV0ZVR5cGUudXVpZCA9PT0gdXVpZCkpLCBbXG4gICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgIGNvbnRhY3RBdHRyaWJ1dGVUeXBlc1xuICAgIF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbnRhY3RBdHRyaWJ1dGVzLFxuICAgICAgICBpc0xvYWRpbmcsXG4gICAgICAgIGVycm9yXG4gICAgfTtcbn07XG4iXSwibmFtZXMiOlsidXNlTWVtbyIsInVzZVNXUkltbXV0YWJsZSIsIm9wZW5tcnNGZXRjaCIsInJlc3RCYXNlVXJsIiwidXNlQ29uZmlnIiwiY3VzdG9tUmVwcmVzZW50YXRpb24iLCJ1c2VQYXRpZW50QXR0cmlidXRlcyIsInBhdGllbnRVdWlkIiwiZGF0YSIsImVycm9yIiwiaXNMb2FkaW5nIiwidXNlUGF0aWVudENvbnRhY3RBdHRyaWJ1dGVzIiwiY29udGFjdEF0dHJpYnV0ZVR5cGVzIiwiYXR0cmlidXRlcyIsImNvbnRhY3RBdHRyaWJ1dGVzIiwiYXR0cmlidXRlVHlwZSIsInV1aWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQWdDO0FBQ1k7QUFDaUI7QUFDUjtBQUNyRCxNQUFNSyx1QkFBdUI7QUFDN0I7Ozs7Q0FJQyxHQUFVLE1BQU1DLHVCQUF1QixDQUFDQztJQUNyQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxTQUFTLEVBQUUsR0FBR1Qsd0NBQWVBLENBQUMsR0FBR0UsNkNBQVdBLENBQUMsU0FBUyxFQUFFSSxZQUFZLEdBQUcsRUFBRUYsc0JBQXNCLEVBQUVILDhDQUFZQTtJQUNsSSxPQUFPO1FBQ0hRO1FBQ0EsWUFBWUYsTUFBTSxLQUFLLE9BQU8sY0FBYyxFQUFFO1FBQzlDLE9BQU9DO0lBQ1g7QUFDSixFQUFFO0FBQ0Y7Ozs7Ozs7Ozs7Ozs7O0NBY0MsR0FBVSxNQUFNRSw4QkFBOEIsQ0FBQ0o7SUFDNUMsTUFBTSxFQUFFSyx3QkFBd0IsRUFBRSxFQUFFLEdBQUdSLHVEQUFTQSxDQUFDO1FBQzdDLG9CQUFvQjtJQUN4QjtJQUNBLE1BQU0sRUFBRVMsVUFBVSxFQUFFSixLQUFLLEVBQUVDLFNBQVMsRUFBRSxHQUFHSixxQkFBcUJDO0lBQzlELE1BQU1PLG9CQUFvQmQsa0NBQU9BLENBQUMsSUFBSWEsV0FBVyxNQUFNLENBQUMsQ0FBQyxFQUFFRSxhQUFhLEVBQUUsR0FBR0gsdUJBQXVCLEtBQUssQ0FBQ0ksT0FBT0QsY0FBYyxJQUFJLEtBQUtDLFFBQVE7UUFDNUlIO1FBQ0FEO0tBQ0g7SUFDRCxPQUFPO1FBQ0hFO1FBQ0FKO1FBQ0FEO0lBQ0o7QUFDSixFQUFFIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/dist/patient-banner/contact-details/usePatientAttributes.js\n\n}");
|
|
1809
1805
|
|
|
1810
1806
|
},
|
|
1811
1807
|
"../../framework/esm-styleguide/dist/patient-banner/contact-details/usePatientListsForPatient.js"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
1812
1808
|
"use strict";
|
|
1813
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n usePatientListsForPatient: () => (usePatientListsForPatient)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"
|
|
1809
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n usePatientListsForPatient: () => (usePatientListsForPatient)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/swr/swr\");\n/* import */ var swr__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(swr__rspack_import_1);\n/* import */ var _openmrs_esm_api__rspack_import_2 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n\n\n\nfunction usePatientListsForPatient(patientUuid) {\n const customRepresentation = 'custom:(uuid,patient:ref,cohort:(uuid,name,startDate,endDate))';\n const url = patientUuid ? `${_openmrs_esm_api__rspack_import_2.restBaseUrl}/cohortm/cohortmember?patient=${patientUuid}&v=${customRepresentation}` : null;\n const { data, isLoading } = swr__rspack_import_1_default()(url, _openmrs_esm_api__rspack_import_2.openmrsFetch);\n const cohorts = data?.data?.results.map((ref)=>({\n uuid: ref.cohort.uuid,\n name: ref.cohort.name,\n startDate: ref.cohort.startDate,\n endDate: ref.cohort.endDate\n }));\n return (0,react__rspack_import_0.useMemo)(()=>({\n cohorts,\n isLoading\n }), [\n isLoading,\n cohorts\n ]);\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL2Rpc3QvcGF0aWVudC1iYW5uZXIvY29udGFjdC1kZXRhaWxzL3VzZVBhdGllbnRMaXN0c0ZvclBhdGllbnQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tc3R5bGVndWlkZS9kaXN0L3BhdGllbnQtYmFubmVyL2NvbnRhY3QtZGV0YWlscy91c2VQYXRpZW50TGlzdHNGb3JQYXRpZW50LmpzP2ZiOTciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHVzZVNXUiBmcm9tIFwic3dyXCI7XG5pbXBvcnQgeyBvcGVubXJzRmV0Y2gsIHJlc3RCYXNlVXJsIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1hcGlcIjtcbmV4cG9ydCBmdW5jdGlvbiB1c2VQYXRpZW50TGlzdHNGb3JQYXRpZW50KHBhdGllbnRVdWlkKSB7XG4gICAgY29uc3QgY3VzdG9tUmVwcmVzZW50YXRpb24gPSAnY3VzdG9tOih1dWlkLHBhdGllbnQ6cmVmLGNvaG9ydDoodXVpZCxuYW1lLHN0YXJ0RGF0ZSxlbmREYXRlKSknO1xuICAgIGNvbnN0IHVybCA9IHBhdGllbnRVdWlkID8gYCR7cmVzdEJhc2VVcmx9L2NvaG9ydG0vY29ob3J0bWVtYmVyP3BhdGllbnQ9JHtwYXRpZW50VXVpZH0mdj0ke2N1c3RvbVJlcHJlc2VudGF0aW9ufWAgOiBudWxsO1xuICAgIGNvbnN0IHsgZGF0YSwgaXNMb2FkaW5nIH0gPSB1c2VTV1IodXJsLCBvcGVubXJzRmV0Y2gpO1xuICAgIGNvbnN0IGNvaG9ydHMgPSBkYXRhPy5kYXRhPy5yZXN1bHRzLm1hcCgocmVmKT0+KHtcbiAgICAgICAgICAgIHV1aWQ6IHJlZi5jb2hvcnQudXVpZCxcbiAgICAgICAgICAgIG5hbWU6IHJlZi5jb2hvcnQubmFtZSxcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogcmVmLmNvaG9ydC5zdGFydERhdGUsXG4gICAgICAgICAgICBlbmREYXRlOiByZWYuY29ob3J0LmVuZERhdGVcbiAgICAgICAgfSkpO1xuICAgIHJldHVybiB1c2VNZW1vKCgpPT4oe1xuICAgICAgICAgICAgY29ob3J0cyxcbiAgICAgICAgICAgIGlzTG9hZGluZ1xuICAgICAgICB9KSwgW1xuICAgICAgICBpc0xvYWRpbmcsXG4gICAgICAgIGNvaG9ydHNcbiAgICBdKTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlU1dSIiwib3Blbm1yc0ZldGNoIiwicmVzdEJhc2VVcmwiLCJ1c2VQYXRpZW50TGlzdHNGb3JQYXRpZW50IiwicGF0aWVudFV1aWQiLCJjdXN0b21SZXByZXNlbnRhdGlvbiIsInVybCIsImRhdGEiLCJpc0xvYWRpbmciLCJjb2hvcnRzIiwicmVmIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBZ0M7QUFDUDtBQUNvQztBQUN0RCxTQUFTSSwwQkFBMEJDLFdBQVc7SUFDakQsTUFBTUMsdUJBQXVCO0lBQzdCLE1BQU1DLE1BQU1GLGNBQWMsR0FBR0YsNkNBQVdBLENBQUMsOEJBQThCLEVBQUVFLFlBQVksR0FBRyxFQUFFQyxzQkFBc0IsR0FBRztJQUNuSCxNQUFNLEVBQUVFLElBQUksRUFBRUMsU0FBUyxFQUFFLEdBQUdSLDhCQUFNQSxDQUFDTSxLQUFLTCw4Q0FBWUE7SUFDcEQsTUFBTVEsVUFBVUYsTUFBTSxNQUFNLFFBQVEsSUFBSSxDQUFDRyxNQUFPO1lBQ3hDLE1BQU1BLElBQUksTUFBTSxDQUFDLElBQUk7WUFDckIsTUFBTUEsSUFBSSxNQUFNLENBQUMsSUFBSTtZQUNyQixXQUFXQSxJQUFJLE1BQU0sQ0FBQyxTQUFTO1lBQy9CLFNBQVNBLElBQUksTUFBTSxDQUFDLE9BQU87UUFDL0I7SUFDSixPQUFPWCxrQ0FBT0EsQ0FBQyxJQUFLO1lBQ1pVO1lBQ0FEO1FBQ0osSUFBSTtRQUNKQTtRQUNBQztLQUNIO0FBQ0wifQ==\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/dist/patient-banner/contact-details/usePatientListsForPatient.js\n\n}");
|
|
1814
1810
|
|
|
1815
1811
|
},
|
|
1816
1812
|
"../../framework/esm-styleguide/dist/patient-banner/contact-details/useRelationships.js"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
1817
1813
|
"use strict";
|
|
1818
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useRelationships: () => (useRelationships)\n});\n/* import */ var _openmrs_esm_api__rspack_import_0 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"
|
|
1814
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useRelationships: () => (useRelationships)\n});\n/* import */ var _openmrs_esm_api__rspack_import_0 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/swr/swr\");\n/* import */ var swr__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(swr__rspack_import_1);\n\n\nconst customRepresentation = 'custom:(display,uuid,personA:(age,display,birthdate,uuid),personB:(age,display,birthdate,uuid),relationshipType:(uuid,display,description,aIsToB,bIsToA))';\nfunction useRelationships(patientUuid) {\n const apiUrl = `${_openmrs_esm_api__rspack_import_0.restBaseUrl}/relationship?v=${customRepresentation}&person=${patientUuid}`;\n const { data, error, isLoading, isValidating } = swr__rspack_import_1_default()(patientUuid ? apiUrl : null, _openmrs_esm_api__rspack_import_0.openmrsFetch);\n const formattedRelationships = data?.data?.results?.length ? extractRelationshipData(patientUuid, data.data.results) : null;\n return {\n data: data ? formattedRelationships : null,\n error,\n isLoading,\n isValidating\n };\n}\nfunction extractRelationshipData(patientIdentifier, relationships) {\n const relationshipsData = [];\n for (const r of relationships){\n if (patientIdentifier === r.personA.uuid) {\n relationshipsData.push({\n uuid: `${r.uuid}`,\n display: r.personB.display,\n relativeAge: r.personB.age,\n relativeUuid: r.personB.uuid,\n relationshipType: r.relationshipType.bIsToA\n });\n } else {\n relationshipsData.push({\n uuid: `${r.uuid}`,\n display: r.personA.display,\n relativeAge: r.personA.age,\n relativeUuid: r.personA.uuid,\n relationshipType: r.relationshipType.aIsToB\n });\n }\n }\n return relationshipsData;\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL2Rpc3QvcGF0aWVudC1iYW5uZXIvY29udGFjdC1kZXRhaWxzL3VzZVJlbGF0aW9uc2hpcHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tc3R5bGVndWlkZS9kaXN0L3BhdGllbnQtYmFubmVyL2NvbnRhY3QtZGV0YWlscy91c2VSZWxhdGlvbnNoaXBzLmpzPzk1YzYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb3Blbm1yc0ZldGNoLCByZXN0QmFzZVVybCB9IGZyb20gXCJAb3Blbm1ycy9lc20tYXBpXCI7XG5pbXBvcnQgdXNlU1dSIGZyb20gXCJzd3JcIjtcbmNvbnN0IGN1c3RvbVJlcHJlc2VudGF0aW9uID0gJ2N1c3RvbTooZGlzcGxheSx1dWlkLHBlcnNvbkE6KGFnZSxkaXNwbGF5LGJpcnRoZGF0ZSx1dWlkKSxwZXJzb25COihhZ2UsZGlzcGxheSxiaXJ0aGRhdGUsdXVpZCkscmVsYXRpb25zaGlwVHlwZToodXVpZCxkaXNwbGF5LGRlc2NyaXB0aW9uLGFJc1RvQixiSXNUb0EpKSc7XG5leHBvcnQgZnVuY3Rpb24gdXNlUmVsYXRpb25zaGlwcyhwYXRpZW50VXVpZCkge1xuICAgIGNvbnN0IGFwaVVybCA9IGAke3Jlc3RCYXNlVXJsfS9yZWxhdGlvbnNoaXA/dj0ke2N1c3RvbVJlcHJlc2VudGF0aW9ufSZwZXJzb249JHtwYXRpZW50VXVpZH1gO1xuICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IsIGlzTG9hZGluZywgaXNWYWxpZGF0aW5nIH0gPSB1c2VTV1IocGF0aWVudFV1aWQgPyBhcGlVcmwgOiBudWxsLCBvcGVubXJzRmV0Y2gpO1xuICAgIGNvbnN0IGZvcm1hdHRlZFJlbGF0aW9uc2hpcHMgPSBkYXRhPy5kYXRhPy5yZXN1bHRzPy5sZW5ndGggPyBleHRyYWN0UmVsYXRpb25zaGlwRGF0YShwYXRpZW50VXVpZCwgZGF0YS5kYXRhLnJlc3VsdHMpIDogbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiBkYXRhID8gZm9ybWF0dGVkUmVsYXRpb25zaGlwcyA6IG51bGwsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBpc0xvYWRpbmcsXG4gICAgICAgIGlzVmFsaWRhdGluZ1xuICAgIH07XG59XG5mdW5jdGlvbiBleHRyYWN0UmVsYXRpb25zaGlwRGF0YShwYXRpZW50SWRlbnRpZmllciwgcmVsYXRpb25zaGlwcykge1xuICAgIGNvbnN0IHJlbGF0aW9uc2hpcHNEYXRhID0gW107XG4gICAgZm9yIChjb25zdCByIG9mIHJlbGF0aW9uc2hpcHMpe1xuICAgICAgICBpZiAocGF0aWVudElkZW50aWZpZXIgPT09IHIucGVyc29uQS51dWlkKSB7XG4gICAgICAgICAgICByZWxhdGlvbnNoaXBzRGF0YS5wdXNoKHtcbiAgICAgICAgICAgICAgICB1dWlkOiBgJHtyLnV1aWR9YCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiByLnBlcnNvbkIuZGlzcGxheSxcbiAgICAgICAgICAgICAgICByZWxhdGl2ZUFnZTogci5wZXJzb25CLmFnZSxcbiAgICAgICAgICAgICAgICByZWxhdGl2ZVV1aWQ6IHIucGVyc29uQi51dWlkLFxuICAgICAgICAgICAgICAgIHJlbGF0aW9uc2hpcFR5cGU6IHIucmVsYXRpb25zaGlwVHlwZS5iSXNUb0FcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVsYXRpb25zaGlwc0RhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgdXVpZDogYCR7ci51dWlkfWAsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogci5wZXJzb25BLmRpc3BsYXksXG4gICAgICAgICAgICAgICAgcmVsYXRpdmVBZ2U6IHIucGVyc29uQS5hZ2UsXG4gICAgICAgICAgICAgICAgcmVsYXRpdmVVdWlkOiByLnBlcnNvbkEudXVpZCxcbiAgICAgICAgICAgICAgICByZWxhdGlvbnNoaXBUeXBlOiByLnJlbGF0aW9uc2hpcFR5cGUuYUlzVG9CXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVsYXRpb25zaGlwc0RhdGE7XG59XG4iXSwibmFtZXMiOlsib3Blbm1yc0ZldGNoIiwicmVzdEJhc2VVcmwiLCJ1c2VTV1IiLCJjdXN0b21SZXByZXNlbnRhdGlvbiIsInVzZVJlbGF0aW9uc2hpcHMiLCJwYXRpZW50VXVpZCIsImFwaVVybCIsImRhdGEiLCJlcnJvciIsImlzTG9hZGluZyIsImlzVmFsaWRhdGluZyIsImZvcm1hdHRlZFJlbGF0aW9uc2hpcHMiLCJleHRyYWN0UmVsYXRpb25zaGlwRGF0YSIsInBhdGllbnRJZGVudGlmaWVyIiwicmVsYXRpb25zaGlwcyIsInJlbGF0aW9uc2hpcHNEYXRhIiwiciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE2RDtBQUNwQztBQUN6QixNQUFNRyx1QkFBdUI7QUFDdEIsU0FBU0MsaUJBQWlCQyxXQUFXO0lBQ3hDLE1BQU1DLFNBQVMsR0FBR0wsNkNBQVdBLENBQUMsZ0JBQWdCLEVBQUVFLHFCQUFxQixRQUFRLEVBQUVFLGFBQWE7SUFDNUYsTUFBTSxFQUFFRSxJQUFJLEVBQUVDLEtBQUssRUFBRUMsU0FBUyxFQUFFQyxZQUFZLEVBQUUsR0FBR1IsOEJBQU1BLENBQUNHLGNBQWNDLFNBQVMsTUFBTU4sOENBQVlBO0lBQ2pHLE1BQU1XLHlCQUF5QkosTUFBTSxNQUFNLFNBQVMsU0FBU0ssd0JBQXdCUCxhQUFhRSxLQUFLLElBQUksQ0FBQyxPQUFPLElBQUk7SUFDdkgsT0FBTztRQUNILE1BQU1BLE9BQU9JLHlCQUF5QjtRQUN0Q0g7UUFDQUM7UUFDQUM7SUFDSjtBQUNKO0FBQ0EsU0FBU0Usd0JBQXdCQyxpQkFBaUIsRUFBRUMsYUFBYTtJQUM3RCxNQUFNQyxvQkFBb0IsRUFBRTtJQUM1QixLQUFLLE1BQU1DLEtBQUtGLGNBQWM7UUFDMUIsSUFBSUQsc0JBQXNCRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDdENELGtCQUFrQixJQUFJLENBQUM7Z0JBQ25CLE1BQU0sR0FBR0MsRUFBRSxJQUFJLEVBQUU7Z0JBQ2pCLFNBQVNBLEVBQUUsT0FBTyxDQUFDLE9BQU87Z0JBQzFCLGFBQWFBLEVBQUUsT0FBTyxDQUFDLEdBQUc7Z0JBQzFCLGNBQWNBLEVBQUUsT0FBTyxDQUFDLElBQUk7Z0JBQzVCLGtCQUFrQkEsRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNO1lBQy9DO1FBQ0osT0FBTztZQUNIRCxrQkFBa0IsSUFBSSxDQUFDO2dCQUNuQixNQUFNLEdBQUdDLEVBQUUsSUFBSSxFQUFFO2dCQUNqQixTQUFTQSxFQUFFLE9BQU8sQ0FBQyxPQUFPO2dCQUMxQixhQUFhQSxFQUFFLE9BQU8sQ0FBQyxHQUFHO2dCQUMxQixjQUFjQSxFQUFFLE9BQU8sQ0FBQyxJQUFJO2dCQUM1QixrQkFBa0JBLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtZQUMvQztRQUNKO0lBQ0o7SUFDQSxPQUFPRDtBQUNYIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/dist/patient-banner/contact-details/useRelationships.js\n\n}");
|
|
1819
1815
|
|
|
1820
1816
|
},
|
|
1821
1817
|
"../../framework/esm-styleguide/dist/patient-banner/index.js"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
@@ -1850,7 +1846,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
1850
1846
|
},
|
|
1851
1847
|
"../../framework/esm-styleguide/dist/patient-photo/usePatientPhoto.js"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
1852
1848
|
"use strict";
|
|
1853
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n usePatientPhoto: () => (usePatientPhoto)\n});\n/* import */ var swr__rspack_import_0 = __webpack_require__(\"
|
|
1849
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n usePatientPhoto: () => (usePatientPhoto)\n});\n/* import */ var swr__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/swr/swr\");\n/* import */ var swr__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(swr__rspack_import_0);\n/* import */ var _openmrs_esm_api__rspack_import_1 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var _openmrs_esm_react_utils__rspack_import_2 = __webpack_require__(\"../../framework/esm-react-utils/dist/index.js\");\n/** @module @category UI */ \n\n\nfunction usePatientPhoto(patientUuid) {\n const { patientPhotoConceptUuid } = (0,_openmrs_esm_react_utils__rspack_import_2.useConfig)({\n externalModuleName: '@openmrs/esm-styleguide'\n });\n const url = patientPhotoConceptUuid ? `${_openmrs_esm_api__rspack_import_1.restBaseUrl}/obs?patient=${patientUuid}&concept=${patientPhotoConceptUuid}&v=full` : null;\n const { data, error, isLoading } = swr__rspack_import_0_default()(patientUuid ? url : null, _openmrs_esm_api__rspack_import_1.openmrsFetch);\n const item = data?.data?.results[0];\n return {\n data: item ? {\n dateTime: item?.obsDatetime,\n imageSrc: item?.value?.links?.uri\n } : null,\n error: error,\n isLoading\n };\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1zdHlsZWd1aWRlL2Rpc3QvcGF0aWVudC1waG90by91c2VQYXRpZW50UGhvdG8uanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tc3R5bGVndWlkZS9kaXN0L3BhdGllbnQtcGhvdG8vdXNlUGF0aWVudFBob3RvLmpzPzgwZTMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IFVJICovIGltcG9ydCB1c2VTV1IgZnJvbSBcInN3clwiO1xuaW1wb3J0IHsgb3Blbm1yc0ZldGNoLCByZXN0QmFzZVVybCB9IGZyb20gXCJAb3Blbm1ycy9lc20tYXBpXCI7XG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLXJlYWN0LXV0aWxzXCI7XG5leHBvcnQgZnVuY3Rpb24gdXNlUGF0aWVudFBob3RvKHBhdGllbnRVdWlkKSB7XG4gICAgY29uc3QgeyBwYXRpZW50UGhvdG9Db25jZXB0VXVpZCB9ID0gdXNlQ29uZmlnKHtcbiAgICAgICAgZXh0ZXJuYWxNb2R1bGVOYW1lOiAnQG9wZW5tcnMvZXNtLXN0eWxlZ3VpZGUnXG4gICAgfSk7XG4gICAgY29uc3QgdXJsID0gcGF0aWVudFBob3RvQ29uY2VwdFV1aWQgPyBgJHtyZXN0QmFzZVVybH0vb2JzP3BhdGllbnQ9JHtwYXRpZW50VXVpZH0mY29uY2VwdD0ke3BhdGllbnRQaG90b0NvbmNlcHRVdWlkfSZ2PWZ1bGxgIDogbnVsbDtcbiAgICBjb25zdCB7IGRhdGEsIGVycm9yLCBpc0xvYWRpbmcgfSA9IHVzZVNXUihwYXRpZW50VXVpZCA/IHVybCA6IG51bGwsIG9wZW5tcnNGZXRjaCk7XG4gICAgY29uc3QgaXRlbSA9IGRhdGE/LmRhdGE/LnJlc3VsdHNbMF07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YTogaXRlbSA/IHtcbiAgICAgICAgICAgIGRhdGVUaW1lOiBpdGVtPy5vYnNEYXRldGltZSxcbiAgICAgICAgICAgIGltYWdlU3JjOiBpdGVtPy52YWx1ZT8ubGlua3M/LnVyaVxuICAgICAgICB9IDogbnVsbCxcbiAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICBpc0xvYWRpbmdcbiAgICB9O1xufVxuIl0sIm5hbWVzIjpbInVzZVNXUiIsIm9wZW5tcnNGZXRjaCIsInJlc3RCYXNlVXJsIiwidXNlQ29uZmlnIiwidXNlUGF0aWVudFBob3RvIiwicGF0aWVudFV1aWQiLCJwYXRpZW50UGhvdG9Db25jZXB0VXVpZCIsInVybCIsImRhdGEiLCJlcnJvciIsImlzTG9hZGluZyIsIml0ZW0iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEseUJBQXlCLEdBQTRCO0FBQ1E7QUFDUjtBQUM5QyxTQUFTSSxnQkFBZ0JDLFdBQVc7SUFDdkMsTUFBTSxFQUFFQyx1QkFBdUIsRUFBRSxHQUFHSCx1REFBU0EsQ0FBQztRQUMxQyxvQkFBb0I7SUFDeEI7SUFDQSxNQUFNSSxNQUFNRCwwQkFBMEIsR0FBR0osNkNBQVdBLENBQUMsYUFBYSxFQUFFRyxZQUFZLFNBQVMsRUFBRUMsd0JBQXdCLE9BQU8sQ0FBQyxHQUFHO0lBQzlILE1BQU0sRUFBRUUsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLFNBQVMsRUFBRSxHQUFHViw4QkFBTUEsQ0FBQ0ssY0FBY0UsTUFBTSxNQUFNTiw4Q0FBWUE7SUFDaEYsTUFBTVUsT0FBT0gsTUFBTSxNQUFNLE9BQU8sQ0FBQyxFQUFFO0lBQ25DLE9BQU87UUFDSCxNQUFNRyxPQUFPO1lBQ1QsVUFBVUEsTUFBTTtZQUNoQixVQUFVQSxNQUFNLE9BQU8sT0FBTztRQUNsQyxJQUFJO1FBQ0osT0FBT0Y7UUFDUEM7SUFDSjtBQUNKIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-styleguide/dist/patient-photo/usePatientPhoto.js\n\n}");
|
|
1854
1850
|
|
|
1855
1851
|
},
|
|
1856
1852
|
"../../framework/esm-styleguide/dist/pictograms/pictograms.js"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
@@ -4562,21 +4558,6 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
4562
4558
|
"use strict";
|
|
4563
4559
|
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n DEFAULT_SLOT: () => ($64fa3d84918910a7$export$c62b8e45d58ddad9),\n Provider: () => ($64fa3d84918910a7$export$2881499e37b75b9a),\n composeRenderProps: () => ($64fa3d84918910a7$export$c245e6201fed2f75),\n removeDataAttributes: () => ($64fa3d84918910a7$export$ef03459518577ad4),\n useContextProps: () => ($64fa3d84918910a7$export$29f1550f4b0d4415),\n useRenderProps: () => ($64fa3d84918910a7$export$4d86445c2cf5e3),\n useSlot: () => ($64fa3d84918910a7$export$9d4c57ee4c6ffdd8),\n useSlottedContext: () => ($64fa3d84918910a7$export$fabf2dc03a41866e)\n});\n/* import */ var _react_aria_utils__rspack_import_1 = __webpack_require__(\"../../../node_modules/@react-aria/utils/dist/useObjectRef.mjs\");\n/* import */ var _react_aria_utils__rspack_import_2 = __webpack_require__(\"../../../node_modules/@react-aria/utils/dist/mergeRefs.mjs\");\n/* import */ var _react_aria_utils__rspack_import_3 = __webpack_require__(\"../../../node_modules/@react-aria/utils/dist/mergeProps.mjs\");\n/* import */ var _react_aria_utils__rspack_import_4 = __webpack_require__(\"../../../node_modules/@react-aria/utils/dist/useLayoutEffect.mjs\");\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n\n\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nconst $64fa3d84918910a7$export$c62b8e45d58ddad9 = Symbol('default');\nfunction $64fa3d84918910a7$export$2881499e37b75b9a({ values: values, children: children }) {\n for (let [Context, value] of values)// @ts-ignore\n children = /*#__PURE__*/ (0, (react__rspack_import_0_default())).createElement(Context.Provider, {\n value: value\n }, children);\n return children;\n}\nfunction $64fa3d84918910a7$export$4d86445c2cf5e3(props) {\n let { className: className, style: style, children: children, defaultClassName: defaultClassName, defaultChildren: defaultChildren, defaultStyle: defaultStyle, values: values } = props;\n return (0, react__rspack_import_0.useMemo)(()=>{\n let computedClassName;\n let computedStyle;\n let computedChildren;\n if (typeof className === 'function') computedClassName = className({\n ...values,\n defaultClassName: defaultClassName\n });\n else computedClassName = className;\n if (typeof style === 'function') computedStyle = style({\n ...values,\n defaultStyle: defaultStyle || {}\n });\n else computedStyle = style;\n if (typeof children === 'function') computedChildren = children({\n ...values,\n defaultChildren: defaultChildren\n });\n else if (children == null) computedChildren = defaultChildren;\n else computedChildren = children;\n return {\n className: computedClassName !== null && computedClassName !== void 0 ? computedClassName : defaultClassName,\n style: computedStyle || defaultStyle ? {\n ...defaultStyle,\n ...computedStyle\n } : undefined,\n children: computedChildren !== null && computedChildren !== void 0 ? computedChildren : defaultChildren,\n 'data-rac': ''\n };\n }, [\n className,\n style,\n children,\n defaultClassName,\n defaultChildren,\n defaultStyle,\n values\n ]);\n}\nfunction $64fa3d84918910a7$export$c245e6201fed2f75(// https://stackoverflow.com/questions/60898079/typescript-type-t-or-function-t-usage\nvalue, wrap) {\n return (renderProps)=>wrap(typeof value === 'function' ? value(renderProps) : value, renderProps);\n}\nfunction $64fa3d84918910a7$export$fabf2dc03a41866e(context, slot) {\n let ctx = (0, react__rspack_import_0.useContext)(context);\n if (slot === null) // An explicit `null` slot means don't use context.\n return null;\n if (ctx && typeof ctx === 'object' && 'slots' in ctx && ctx.slots) {\n let slotKey = slot || $64fa3d84918910a7$export$c62b8e45d58ddad9;\n if (!ctx.slots[slotKey]) {\n let availableSlots = new Intl.ListFormat().format(Object.keys(ctx.slots).map((p)=>`\"${p}\"`));\n let errorMessage = slot ? `Invalid slot \"${slot}\".` : 'A slot prop is required.';\n throw new Error(`${errorMessage} Valid slot names are ${availableSlots}.`);\n }\n return ctx.slots[slotKey];\n }\n // @ts-ignore\n return ctx;\n}\nfunction $64fa3d84918910a7$export$29f1550f4b0d4415(props, ref, context) {\n let ctx = $64fa3d84918910a7$export$fabf2dc03a41866e(context, props.slot) || {};\n // @ts-ignore - TS says \"Type 'unique symbol' cannot be used as an index type.\" but not sure why.\n let { ref: contextRef, ...contextProps } = ctx;\n let mergedRef = (0, _react_aria_utils__rspack_import_1.useObjectRef)((0, react__rspack_import_0.useMemo)(()=>(0, _react_aria_utils__rspack_import_2.mergeRefs)(ref, contextRef), [\n ref,\n contextRef\n ]));\n let mergedProps = (0, _react_aria_utils__rspack_import_3.mergeProps)(contextProps, props);\n // mergeProps does not merge `style`. Adding this there might be a breaking change.\n if ('style' in contextProps && contextProps.style && 'style' in props && props.style) {\n if (typeof contextProps.style === 'function' || typeof props.style === 'function') // @ts-ignore\n mergedProps.style = (renderProps)=>{\n let contextStyle = typeof contextProps.style === 'function' ? contextProps.style(renderProps) : contextProps.style;\n let defaultStyle = {\n ...renderProps.defaultStyle,\n ...contextStyle\n };\n let style = typeof props.style === 'function' ? props.style({\n ...renderProps,\n defaultStyle: defaultStyle\n }) : props.style;\n return {\n ...defaultStyle,\n ...style\n };\n };\n else // @ts-ignore\n mergedProps.style = {\n ...contextProps.style,\n ...props.style\n };\n }\n return [\n mergedProps,\n mergedRef\n ];\n}\nfunction $64fa3d84918910a7$export$9d4c57ee4c6ffdd8(initialState = true) {\n // Initial state is typically based on the parent having an aria-label or aria-labelledby.\n // If it does, this value should be false so that we don't update the state and cause a rerender when we go through the layoutEffect\n let [hasSlot, setHasSlot] = (0, react__rspack_import_0.useState)(initialState);\n let hasRun = (0, react__rspack_import_0.useRef)(false);\n // A callback ref which will run when the slotted element mounts.\n // This should happen before the useLayoutEffect below.\n let ref = (0, react__rspack_import_0.useCallback)((el)=>{\n hasRun.current = true;\n setHasSlot(!!el);\n }, []);\n // If the callback hasn't been called, then reset to false.\n (0, _react_aria_utils__rspack_import_4.useLayoutEffect)(()=>{\n if (!hasRun.current) setHasSlot(false);\n }, []);\n return [\n ref,\n hasSlot\n ];\n}\nfunction $64fa3d84918910a7$export$ef03459518577ad4(props) {\n const prefix = /^(data-.*)$/;\n let filteredProps = {};\n for(const prop in props)if (!prefix.test(prop)) filteredProps[prop] = props[prop];\n return filteredProps;\n}\n\n\n\n//# sourceMappingURL=utils.module.js.map\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218L2hvbWUvcnVubmVyL3dvcmsvb3Blbm1ycy1lc20tY29yZS9vcGVubXJzLWVzbS1jb3JlL25vZGVfbW9kdWxlcy9yZWFjdC1hcmlhLWNvbXBvbmVudHMvZGlzdC91dGlscy5tanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1hcmlhLWNvbXBvbmVudHMvZGlzdC91dGlscy5tanM/MTJmYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZU9iamVjdFJlZiBhcyAkaUVUYlkkdXNlT2JqZWN0UmVmLCBtZXJnZVJlZnMgYXMgJGlFVGJZJG1lcmdlUmVmcywgbWVyZ2VQcm9wcyBhcyAkaUVUYlkkbWVyZ2VQcm9wcywgdXNlTGF5b3V0RWZmZWN0IGFzICRpRVRiWSR1c2VMYXlvdXRFZmZlY3R9IGZyb20gXCJAcmVhY3QtYXJpYS91dGlsc1wiO1xuaW1wb3J0ICRpRVRiWSRyZWFjdCwge3VzZU1lbW8gYXMgJGlFVGJZJHVzZU1lbW8sIHVzZUNvbnRleHQgYXMgJGlFVGJZJHVzZUNvbnRleHQsIHVzZVN0YXRlIGFzICRpRVRiWSR1c2VTdGF0ZSwgdXNlUmVmIGFzICRpRVRiWSR1c2VSZWYsIHVzZUNhbGxiYWNrIGFzICRpRVRiWSR1c2VDYWxsYmFja30gZnJvbSBcInJlYWN0XCI7XG5cbi8qXG4gKiBDb3B5cmlnaHQgMjAyMiBBZG9iZS4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5XG4gKiBvZiB0aGUgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyXG4gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlNcbiAqIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZVxuICogZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqLyBcblxuY29uc3QgJDY0ZmEzZDg0OTE4OTEwYTckZXhwb3J0JGM2MmI4ZTQ1ZDU4ZGRhZDkgPSBTeW1ib2woJ2RlZmF1bHQnKTtcbmZ1bmN0aW9uICQ2NGZhM2Q4NDkxODkxMGE3JGV4cG9ydCQyODgxNDk5ZTM3Yjc1YjlhKHsgdmFsdWVzOiB2YWx1ZXMsIGNoaWxkcmVuOiBjaGlsZHJlbiB9KSB7XG4gICAgZm9yIChsZXQgW0NvbnRleHQsIHZhbHVlXSBvZiB2YWx1ZXMpLy8gQHRzLWlnbm9yZVxuICAgIGNoaWxkcmVuID0gLyojX19QVVJFX18qLyAoMCwgJGlFVGJZJHJlYWN0KS5jcmVhdGVFbGVtZW50KENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgfSwgY2hpbGRyZW4pO1xuICAgIHJldHVybiBjaGlsZHJlbjtcbn1cbmZ1bmN0aW9uICQ2NGZhM2Q4NDkxODkxMGE3JGV4cG9ydCQ0ZDg2NDQ1YzJjZjVlMyhwcm9wcykge1xuICAgIGxldCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lLCBzdHlsZTogc3R5bGUsIGNoaWxkcmVuOiBjaGlsZHJlbiwgZGVmYXVsdENsYXNzTmFtZTogZGVmYXVsdENsYXNzTmFtZSwgZGVmYXVsdENoaWxkcmVuOiBkZWZhdWx0Q2hpbGRyZW4sIGRlZmF1bHRTdHlsZTogZGVmYXVsdFN0eWxlLCB2YWx1ZXM6IHZhbHVlcyB9ID0gcHJvcHM7XG4gICAgcmV0dXJuICgwLCAkaUVUYlkkdXNlTWVtbykoKCk9PntcbiAgICAgICAgbGV0IGNvbXB1dGVkQ2xhc3NOYW1lO1xuICAgICAgICBsZXQgY29tcHV0ZWRTdHlsZTtcbiAgICAgICAgbGV0IGNvbXB1dGVkQ2hpbGRyZW47XG4gICAgICAgIGlmICh0eXBlb2YgY2xhc3NOYW1lID09PSAnZnVuY3Rpb24nKSBjb21wdXRlZENsYXNzTmFtZSA9IGNsYXNzTmFtZSh7XG4gICAgICAgICAgICAuLi52YWx1ZXMsXG4gICAgICAgICAgICBkZWZhdWx0Q2xhc3NOYW1lOiBkZWZhdWx0Q2xhc3NOYW1lXG4gICAgICAgIH0pO1xuICAgICAgICBlbHNlIGNvbXB1dGVkQ2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuICAgICAgICBpZiAodHlwZW9mIHN0eWxlID09PSAnZnVuY3Rpb24nKSBjb21wdXRlZFN0eWxlID0gc3R5bGUoe1xuICAgICAgICAgICAgLi4udmFsdWVzLFxuICAgICAgICAgICAgZGVmYXVsdFN0eWxlOiBkZWZhdWx0U3R5bGUgfHwge31cbiAgICAgICAgfSk7XG4gICAgICAgIGVsc2UgY29tcHV0ZWRTdHlsZSA9IHN0eWxlO1xuICAgICAgICBpZiAodHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nKSBjb21wdXRlZENoaWxkcmVuID0gY2hpbGRyZW4oe1xuICAgICAgICAgICAgLi4udmFsdWVzLFxuICAgICAgICAgICAgZGVmYXVsdENoaWxkcmVuOiBkZWZhdWx0Q2hpbGRyZW5cbiAgICAgICAgfSk7XG4gICAgICAgIGVsc2UgaWYgKGNoaWxkcmVuID09IG51bGwpIGNvbXB1dGVkQ2hpbGRyZW4gPSBkZWZhdWx0Q2hpbGRyZW47XG4gICAgICAgIGVsc2UgY29tcHV0ZWRDaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiBjb21wdXRlZENsYXNzTmFtZSAhPT0gbnVsbCAmJiBjb21wdXRlZENsYXNzTmFtZSAhPT0gdm9pZCAwID8gY29tcHV0ZWRDbGFzc05hbWUgOiBkZWZhdWx0Q2xhc3NOYW1lLFxuICAgICAgICAgICAgc3R5bGU6IGNvbXB1dGVkU3R5bGUgfHwgZGVmYXVsdFN0eWxlID8ge1xuICAgICAgICAgICAgICAgIC4uLmRlZmF1bHRTdHlsZSxcbiAgICAgICAgICAgICAgICAuLi5jb21wdXRlZFN0eWxlXG4gICAgICAgICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY2hpbGRyZW46IGNvbXB1dGVkQ2hpbGRyZW4gIT09IG51bGwgJiYgY29tcHV0ZWRDaGlsZHJlbiAhPT0gdm9pZCAwID8gY29tcHV0ZWRDaGlsZHJlbiA6IGRlZmF1bHRDaGlsZHJlbixcbiAgICAgICAgICAgICdkYXRhLXJhYyc6ICcnXG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIHN0eWxlLFxuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgZGVmYXVsdENsYXNzTmFtZSxcbiAgICAgICAgZGVmYXVsdENoaWxkcmVuLFxuICAgICAgICBkZWZhdWx0U3R5bGUsXG4gICAgICAgIHZhbHVlc1xuICAgIF0pO1xufVxuZnVuY3Rpb24gJDY0ZmEzZDg0OTE4OTEwYTckZXhwb3J0JGMyNDVlNjIwMWZlZDJmNzUoLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNjA4OTgwNzkvdHlwZXNjcmlwdC10eXBlLXQtb3ItZnVuY3Rpb24tdC11c2FnZVxudmFsdWUsIHdyYXApIHtcbiAgICByZXR1cm4gKHJlbmRlclByb3BzKT0+d3JhcCh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgPyB2YWx1ZShyZW5kZXJQcm9wcykgOiB2YWx1ZSwgcmVuZGVyUHJvcHMpO1xufVxuZnVuY3Rpb24gJDY0ZmEzZDg0OTE4OTEwYTckZXhwb3J0JGZhYmYyZGMwM2E0MTg2NmUoY29udGV4dCwgc2xvdCkge1xuICAgIGxldCBjdHggPSAoMCwgJGlFVGJZJHVzZUNvbnRleHQpKGNvbnRleHQpO1xuICAgIGlmIChzbG90ID09PSBudWxsKSAvLyBBbiBleHBsaWNpdCBgbnVsbGAgc2xvdCBtZWFucyBkb24ndCB1c2UgY29udGV4dC5cbiAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAoY3R4ICYmIHR5cGVvZiBjdHggPT09ICdvYmplY3QnICYmICdzbG90cycgaW4gY3R4ICYmIGN0eC5zbG90cykge1xuICAgICAgICBsZXQgc2xvdEtleSA9IHNsb3QgfHwgJDY0ZmEzZDg0OTE4OTEwYTckZXhwb3J0JGM2MmI4ZTQ1ZDU4ZGRhZDk7XG4gICAgICAgIGlmICghY3R4LnNsb3RzW3Nsb3RLZXldKSB7XG4gICAgICAgICAgICBsZXQgYXZhaWxhYmxlU2xvdHMgPSBuZXcgSW50bC5MaXN0Rm9ybWF0KCkuZm9ybWF0KE9iamVjdC5rZXlzKGN0eC5zbG90cykubWFwKChwKT0+YFwiJHtwfVwiYCkpO1xuICAgICAgICAgICAgbGV0IGVycm9yTWVzc2FnZSA9IHNsb3QgPyBgSW52YWxpZCBzbG90IFwiJHtzbG90fVwiLmAgOiAnQSBzbG90IHByb3AgaXMgcmVxdWlyZWQuJztcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtlcnJvck1lc3NhZ2V9IFZhbGlkIHNsb3QgbmFtZXMgYXJlICR7YXZhaWxhYmxlU2xvdHN9LmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjdHguc2xvdHNbc2xvdEtleV07XG4gICAgfVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXR1cm4gY3R4O1xufVxuZnVuY3Rpb24gJDY0ZmEzZDg0OTE4OTEwYTckZXhwb3J0JDI5ZjE1NTBmNGIwZDQ0MTUocHJvcHMsIHJlZiwgY29udGV4dCkge1xuICAgIGxldCBjdHggPSAkNjRmYTNkODQ5MTg5MTBhNyRleHBvcnQkZmFiZjJkYzAzYTQxODY2ZShjb250ZXh0LCBwcm9wcy5zbG90KSB8fCB7fTtcbiAgICAvLyBAdHMtaWdub3JlIC0gVFMgc2F5cyBcIlR5cGUgJ3VuaXF1ZSBzeW1ib2wnIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGluZGV4IHR5cGUuXCIgYnV0IG5vdCBzdXJlIHdoeS5cbiAgICBsZXQgeyByZWY6IGNvbnRleHRSZWYsIC4uLmNvbnRleHRQcm9wcyB9ID0gY3R4O1xuICAgIGxldCBtZXJnZWRSZWYgPSAoMCwgJGlFVGJZJHVzZU9iamVjdFJlZikoKDAsICRpRVRiWSR1c2VNZW1vKSgoKT0+KDAsICRpRVRiWSRtZXJnZVJlZnMpKHJlZiwgY29udGV4dFJlZiksIFtcbiAgICAgICAgcmVmLFxuICAgICAgICBjb250ZXh0UmVmXG4gICAgXSkpO1xuICAgIGxldCBtZXJnZWRQcm9wcyA9ICgwLCAkaUVUYlkkbWVyZ2VQcm9wcykoY29udGV4dFByb3BzLCBwcm9wcyk7XG4gICAgLy8gbWVyZ2VQcm9wcyBkb2VzIG5vdCBtZXJnZSBgc3R5bGVgLiBBZGRpbmcgdGhpcyB0aGVyZSBtaWdodCBiZSBhIGJyZWFraW5nIGNoYW5nZS5cbiAgICBpZiAoJ3N0eWxlJyBpbiBjb250ZXh0UHJvcHMgJiYgY29udGV4dFByb3BzLnN0eWxlICYmICdzdHlsZScgaW4gcHJvcHMgJiYgcHJvcHMuc3R5bGUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb250ZXh0UHJvcHMuc3R5bGUgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHByb3BzLnN0eWxlID09PSAnZnVuY3Rpb24nKSAvLyBAdHMtaWdub3JlXG4gICAgICAgIG1lcmdlZFByb3BzLnN0eWxlID0gKHJlbmRlclByb3BzKT0+e1xuICAgICAgICAgICAgbGV0IGNvbnRleHRTdHlsZSA9IHR5cGVvZiBjb250ZXh0UHJvcHMuc3R5bGUgPT09ICdmdW5jdGlvbicgPyBjb250ZXh0UHJvcHMuc3R5bGUocmVuZGVyUHJvcHMpIDogY29udGV4dFByb3BzLnN0eWxlO1xuICAgICAgICAgICAgbGV0IGRlZmF1bHRTdHlsZSA9IHtcbiAgICAgICAgICAgICAgICAuLi5yZW5kZXJQcm9wcy5kZWZhdWx0U3R5bGUsXG4gICAgICAgICAgICAgICAgLi4uY29udGV4dFN0eWxlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbGV0IHN0eWxlID0gdHlwZW9mIHByb3BzLnN0eWxlID09PSAnZnVuY3Rpb24nID8gcHJvcHMuc3R5bGUoe1xuICAgICAgICAgICAgICAgIC4uLnJlbmRlclByb3BzLFxuICAgICAgICAgICAgICAgIGRlZmF1bHRTdHlsZTogZGVmYXVsdFN0eWxlXG4gICAgICAgICAgICB9KSA6IHByb3BzLnN0eWxlO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5kZWZhdWx0U3R5bGUsXG4gICAgICAgICAgICAgICAgLi4uc3R5bGVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgICAgIGVsc2UgLy8gQHRzLWlnbm9yZVxuICAgICAgICBtZXJnZWRQcm9wcy5zdHlsZSA9IHtcbiAgICAgICAgICAgIC4uLmNvbnRleHRQcm9wcy5zdHlsZSxcbiAgICAgICAgICAgIC4uLnByb3BzLnN0eWxlXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICAgIG1lcmdlZFByb3BzLFxuICAgICAgICBtZXJnZWRSZWZcbiAgICBdO1xufVxuZnVuY3Rpb24gJDY0ZmEzZDg0OTE4OTEwYTckZXhwb3J0JDlkNGM1N2VlNGM2ZmZkZDgoaW5pdGlhbFN0YXRlID0gdHJ1ZSkge1xuICAgIC8vIEluaXRpYWwgc3RhdGUgaXMgdHlwaWNhbGx5IGJhc2VkIG9uIHRoZSBwYXJlbnQgaGF2aW5nIGFuIGFyaWEtbGFiZWwgb3IgYXJpYS1sYWJlbGxlZGJ5LlxuICAgIC8vIElmIGl0IGRvZXMsIHRoaXMgdmFsdWUgc2hvdWxkIGJlIGZhbHNlIHNvIHRoYXQgd2UgZG9uJ3QgdXBkYXRlIHRoZSBzdGF0ZSBhbmQgY2F1c2UgYSByZXJlbmRlciB3aGVuIHdlIGdvIHRocm91Z2ggdGhlIGxheW91dEVmZmVjdFxuICAgIGxldCBbaGFzU2xvdCwgc2V0SGFzU2xvdF0gPSAoMCwgJGlFVGJZJHVzZVN0YXRlKShpbml0aWFsU3RhdGUpO1xuICAgIGxldCBoYXNSdW4gPSAoMCwgJGlFVGJZJHVzZVJlZikoZmFsc2UpO1xuICAgIC8vIEEgY2FsbGJhY2sgcmVmIHdoaWNoIHdpbGwgcnVuIHdoZW4gdGhlIHNsb3R0ZWQgZWxlbWVudCBtb3VudHMuXG4gICAgLy8gVGhpcyBzaG91bGQgaGFwcGVuIGJlZm9yZSB0aGUgdXNlTGF5b3V0RWZmZWN0IGJlbG93LlxuICAgIGxldCByZWYgPSAoMCwgJGlFVGJZJHVzZUNhbGxiYWNrKSgoZWwpPT57XG4gICAgICAgIGhhc1J1bi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgc2V0SGFzU2xvdCghIWVsKTtcbiAgICB9LCBbXSk7XG4gICAgLy8gSWYgdGhlIGNhbGxiYWNrIGhhc24ndCBiZWVuIGNhbGxlZCwgdGhlbiByZXNldCB0byBmYWxzZS5cbiAgICAoMCwgJGlFVGJZJHVzZUxheW91dEVmZmVjdCkoKCk9PntcbiAgICAgICAgaWYgKCFoYXNSdW4uY3VycmVudCkgc2V0SGFzU2xvdChmYWxzZSk7XG4gICAgfSwgW10pO1xuICAgIHJldHVybiBbXG4gICAgICAgIHJlZixcbiAgICAgICAgaGFzU2xvdFxuICAgIF07XG59XG5mdW5jdGlvbiAkNjRmYTNkODQ5MTg5MTBhNyRleHBvcnQkZWYwMzQ1OTUxODU3N2FkNChwcm9wcykge1xuICAgIGNvbnN0IHByZWZpeCA9IC9eKGRhdGEtLiopJC87XG4gICAgbGV0IGZpbHRlcmVkUHJvcHMgPSB7fTtcbiAgICBmb3IoY29uc3QgcHJvcCBpbiBwcm9wcylpZiAoIXByZWZpeC50ZXN0KHByb3ApKSBmaWx0ZXJlZFByb3BzW3Byb3BdID0gcHJvcHNbcHJvcF07XG4gICAgcmV0dXJuIGZpbHRlcmVkUHJvcHM7XG59XG5cblxuZXhwb3J0IHskNjRmYTNkODQ5MTg5MTBhNyRleHBvcnQkYzYyYjhlNDVkNThkZGFkOSBhcyBERUZBVUxUX1NMT1QsICQ2NGZhM2Q4NDkxODkxMGE3JGV4cG9ydCQyODgxNDk5ZTM3Yjc1YjlhIGFzIFByb3ZpZGVyLCAkNjRmYTNkODQ5MTg5MTBhNyRleHBvcnQkNGQ4NjQ0NWMyY2Y1ZTMgYXMgdXNlUmVuZGVyUHJvcHMsICQ2NGZhM2Q4NDkxODkxMGE3JGV4cG9ydCRjMjQ1ZTYyMDFmZWQyZjc1IGFzIGNvbXBvc2VSZW5kZXJQcm9wcywgJDY0ZmEzZDg0OTE4OTEwYTckZXhwb3J0JGZhYmYyZGMwM2E0MTg2NmUgYXMgdXNlU2xvdHRlZENvbnRleHQsICQ2NGZhM2Q4NDkxODkxMGE3JGV4cG9ydCQyOWYxNTUwZjRiMGQ0NDE1IGFzIHVzZUNvbnRleHRQcm9wcywgJDY0ZmEzZDg0OTE4OTEwYTckZXhwb3J0JDlkNGM1N2VlNGM2ZmZkZDggYXMgdXNlU2xvdCwgJDY0ZmEzZDg0OTE4OTEwYTckZXhwb3J0JGVmMDM0NTk1MTg1NzdhZDQgYXMgcmVtb3ZlRGF0YUF0dHJpYnV0ZXN9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMubW9kdWxlLmpzLm1hcFxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQWlMO0FBQ087O0FBRXhMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxREFBcUQsb0NBQW9DO0FBQ3pGO0FBQ0EsaUNBQWlDLGtDQUFZO0FBQzdDO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLFVBQVUsMktBQTJLO0FBQ3JMLGVBQWUsOEJBQWM7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGlDQUFpQjtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0dBQWtHLEVBQUU7QUFDcEcsdURBQXVELEtBQUs7QUFDNUQsK0JBQStCLGNBQWMsdUJBQXVCLGVBQWU7QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxtQ0FBbUM7QUFDN0Msd0JBQXdCLCtDQUFtQixNQUFNLDhCQUFjLFVBQVUsNENBQWdCO0FBQ3pGO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQiw2Q0FBaUI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLCtCQUFlO0FBQ25ELHFCQUFxQiw2QkFBYTtBQUNsQztBQUNBO0FBQ0Esa0JBQWtCLGtDQUFrQjtBQUNwQztBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsUUFBUSxrREFBc0I7QUFDOUI7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBRzZlO0FBQzdlIn0=\n//# sourceURL=webpack-internal:///../../../node_modules/react-aria-components/dist/utils.mjs\n\n}");
|
|
4564
4560
|
|
|
4565
|
-
},
|
|
4566
|
-
"../../../node_modules/swr/dist/core/index.mjs"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
4567
|
-
"use strict";
|
|
4568
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n SWRConfig: () => (SWRConfig),\n \"default\": () => (useSWR),\n mutate: () => (/* reexport safe */ swr_internal__rspack_import_3.mutate),\n preload: () => (/* reexport safe */ swr_internal__rspack_import_3.preload),\n unstable_serialize: () => (unstable_serialize),\n useSWRConfig: () => (/* reexport safe */ swr_internal__rspack_import_3.useSWRConfig)\n});\n/* import */ var client_only__rspack_import_0 = __webpack_require__(\"../../../node_modules/client-only/index.js\");\n/* import */ var react__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_1);\n/* import */ var use_sync_external_store_shim_index_js__rspack_import_2 = __webpack_require__(\"../../../node_modules/use-sync-external-store/shim/index.js\");\n/* import */ var swr_internal__rspack_import_3 = __webpack_require__(\"webpack/sharing/consume/default/swr/_internal/swr/_internal\");\n/* import */ var swr_internal__rspack_import_3_default = /*#__PURE__*/__webpack_require__.n(swr_internal__rspack_import_3);\n\n\n\n\n\n\nconst unstable_serialize = (key)=>(0,swr_internal__rspack_import_3.serialize)(key)[0];\n\n/// <reference types=\"react/experimental\" />\nconst use = (react__rspack_import_1_default().use) || ((promise)=>{\n if (promise.status === 'pending') {\n throw promise;\n } else if (promise.status === 'fulfilled') {\n return promise.value;\n } else if (promise.status === 'rejected') {\n throw promise.reason;\n } else {\n promise.status = 'pending';\n promise.then((v)=>{\n promise.status = 'fulfilled';\n promise.value = v;\n }, (e)=>{\n promise.status = 'rejected';\n promise.reason = e;\n });\n throw promise;\n }\n});\nconst WITH_DEDUPE = {\n dedupe: true\n};\nconst useSWRHandler = (_key, fetcher, config)=>{\n const { cache, compare, suspense, fallbackData, revalidateOnMount, revalidateIfStale, refreshInterval, refreshWhenHidden, refreshWhenOffline, keepPreviousData } = config;\n const [EVENT_REVALIDATORS, MUTATION, FETCH, PRELOAD] = swr_internal__rspack_import_3.SWRGlobalState.get(cache);\n // `key` is the identifier of the SWR internal state,\n // `fnArg` is the argument/arguments parsed from the key, which will be passed\n // to the fetcher.\n // All of them are derived from `_key`.\n const [key, fnArg] = (0,swr_internal__rspack_import_3.serialize)(_key);\n // If it's the initial render of this hook.\n const initialMountedRef = (0,react__rspack_import_1.useRef)(false);\n // If the hook is unmounted already. This will be used to prevent some effects\n // to be called after unmounting.\n const unmountedRef = (0,react__rspack_import_1.useRef)(false);\n // Refs to keep the key and config.\n const keyRef = (0,react__rspack_import_1.useRef)(key);\n const fetcherRef = (0,react__rspack_import_1.useRef)(fetcher);\n const configRef = (0,react__rspack_import_1.useRef)(config);\n const getConfig = ()=>configRef.current;\n const isActive = ()=>getConfig().isVisible() && getConfig().isOnline();\n const [getCache, setCache, subscribeCache, getInitialCache] = (0,swr_internal__rspack_import_3.createCacheHelper)(cache, key);\n const stateDependencies = (0,react__rspack_import_1.useRef)({}).current;\n const fallback = (0,swr_internal__rspack_import_3.isUndefined)(fallbackData) ? config.fallback[key] : fallbackData;\n const isEqual = (prev, current)=>{\n for(const _ in stateDependencies){\n const t = _;\n if (t === 'data') {\n if (!compare(prev[t], current[t])) {\n if (!(0,swr_internal__rspack_import_3.isUndefined)(prev[t])) {\n return false;\n }\n if (!compare(returnedData, current[t])) {\n return false;\n }\n }\n } else {\n if (current[t] !== prev[t]) {\n return false;\n }\n }\n }\n return true;\n };\n const getSnapshot = (0,react__rspack_import_1.useMemo)(()=>{\n const shouldStartRequest = (()=>{\n if (!key) return false;\n if (!fetcher) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (!(0,swr_internal__rspack_import_3.isUndefined)(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n if (suspense) return false;\n if (!(0,swr_internal__rspack_import_3.isUndefined)(revalidateIfStale)) return revalidateIfStale;\n return true;\n })();\n // Get the cache and merge it with expected states.\n const getSelectedCache = (state)=>{\n // We only select the needed fields from the state.\n const snapshot = (0,swr_internal__rspack_import_3.mergeObjects)(state);\n delete snapshot._k;\n if (!shouldStartRequest) {\n return snapshot;\n }\n return {\n isValidating: true,\n isLoading: true,\n ...snapshot\n };\n };\n const cachedData = getCache();\n const initialData = getInitialCache();\n const clientSnapshot = getSelectedCache(cachedData);\n const serverSnapshot = cachedData === initialData ? clientSnapshot : getSelectedCache(initialData);\n // To make sure that we are returning the same object reference to avoid\n // unnecessary re-renders, we keep the previous snapshot and use deep\n // comparison to check if we need to return a new one.\n let memorizedSnapshot = clientSnapshot;\n return [\n ()=>{\n const newSnapshot = getSelectedCache(getCache());\n const compareResult = isEqual(newSnapshot, memorizedSnapshot);\n if (compareResult) {\n // Mentally, we should always return the `memorizedSnapshot` here\n // as there's no change between the new and old snapshots.\n // However, since the `isEqual` function only compares selected fields,\n // the values of the unselected fields might be changed. That's\n // simply because we didn't track them.\n // To support the case in https://github.com/vercel/swr/pull/2576,\n // we need to update these fields in the `memorizedSnapshot` too\n // with direct mutations to ensure the snapshot is always up-to-date\n // even for the unselected fields, but only trigger re-renders when\n // the selected fields are changed.\n memorizedSnapshot.data = newSnapshot.data;\n memorizedSnapshot.isLoading = newSnapshot.isLoading;\n memorizedSnapshot.isValidating = newSnapshot.isValidating;\n memorizedSnapshot.error = newSnapshot.error;\n return memorizedSnapshot;\n } else {\n memorizedSnapshot = newSnapshot;\n return newSnapshot;\n }\n },\n ()=>serverSnapshot\n ];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n cache,\n key\n ]);\n // Get the current state that SWR should return.\n const cached = (0,use_sync_external_store_shim_index_js__rspack_import_2.useSyncExternalStore)((0,react__rspack_import_1.useCallback)((callback)=>subscribeCache(key, (current, prev)=>{\n if (!isEqual(prev, current)) callback();\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n cache,\n key\n ]), getSnapshot[0], getSnapshot[1]);\n const isInitialMount = !initialMountedRef.current;\n const hasRevalidator = EVENT_REVALIDATORS[key] && EVENT_REVALIDATORS[key].length > 0;\n const cachedData = cached.data;\n const data = (0,swr_internal__rspack_import_3.isUndefined)(cachedData) ? fallback : cachedData;\n const error = cached.error;\n // Use a ref to store previously returned data. Use the initial data as its initial value.\n const laggyDataRef = (0,react__rspack_import_1.useRef)(data);\n const returnedData = keepPreviousData ? (0,swr_internal__rspack_import_3.isUndefined)(cachedData) ? laggyDataRef.current : cachedData : data;\n // - Suspense mode and there's stale data for the initial render.\n // - Not suspense mode and there is no fallback data and `revalidateIfStale` is enabled.\n // - `revalidateIfStale` is enabled but `data` is not defined.\n const shouldDoInitialRevalidation = (()=>{\n // if a key already has revalidators and also has error, we should not trigger revalidation\n if (hasRevalidator && !(0,swr_internal__rspack_import_3.isUndefined)(error)) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (isInitialMount && !(0,swr_internal__rspack_import_3.isUndefined)(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n // Under suspense mode, it will always fetch on render if there is no\n // stale data so no need to revalidate immediately mount it again.\n // If data exists, only revalidate if `revalidateIfStale` is true.\n if (suspense) return (0,swr_internal__rspack_import_3.isUndefined)(data) ? false : revalidateIfStale;\n // If there is no stale data, we need to revalidate when mount;\n // If `revalidateIfStale` is set to true, we will always revalidate.\n return (0,swr_internal__rspack_import_3.isUndefined)(data) || revalidateIfStale;\n })();\n // Resolve the default validating state:\n // If it's able to validate, and it should revalidate when mount, this will be true.\n const defaultValidatingState = !!(key && fetcher && isInitialMount && shouldDoInitialRevalidation);\n const isValidating = (0,swr_internal__rspack_import_3.isUndefined)(cached.isValidating) ? defaultValidatingState : cached.isValidating;\n const isLoading = (0,swr_internal__rspack_import_3.isUndefined)(cached.isLoading) ? defaultValidatingState : cached.isLoading;\n // The revalidation function is a carefully crafted wrapper of the original\n // `fetcher`, to correctly handle the many edge cases.\n const revalidate = (0,react__rspack_import_1.useCallback)(async (revalidateOpts)=>{\n const currentFetcher = fetcherRef.current;\n if (!key || !currentFetcher || unmountedRef.current || getConfig().isPaused()) {\n return false;\n }\n let newData;\n let startAt;\n let loading = true;\n const opts = revalidateOpts || {};\n // If there is no ongoing concurrent request, or `dedupe` is not set, a\n // new request should be initiated.\n const shouldStartNewRequest = !FETCH[key] || !opts.dedupe;\n /*\n For React 17\n Do unmount check for calls:\n If key has changed during the revalidation, or the component has been\n unmounted, old dispatch and old event callbacks should not take any\n effect\n\n For React 18\n only check if key has changed\n https://github.com/reactwg/react-18/discussions/82\n */ const callbackSafeguard = ()=>{\n if (swr_internal__rspack_import_3.IS_REACT_LEGACY) {\n return !unmountedRef.current && key === keyRef.current && initialMountedRef.current;\n }\n return key === keyRef.current;\n };\n // The final state object when the request finishes.\n const finalState = {\n isValidating: false,\n isLoading: false\n };\n const finishRequestAndUpdateState = ()=>{\n setCache(finalState);\n };\n const cleanupState = ()=>{\n // Check if it's still the same request before deleting it.\n const requestInfo = FETCH[key];\n if (requestInfo && requestInfo[1] === startAt) {\n delete FETCH[key];\n }\n };\n // Start fetching. Change the `isValidating` state, update the cache.\n const initialState = {\n isValidating: true\n };\n // It is in the `isLoading` state, if and only if there is no cached data.\n // This bypasses fallback data and laggy data.\n if ((0,swr_internal__rspack_import_3.isUndefined)(getCache().data)) {\n initialState.isLoading = true;\n }\n try {\n if (shouldStartNewRequest) {\n setCache(initialState);\n // If no cache is being rendered currently (it shows a blank page),\n // we trigger the loading slow event.\n if (config.loadingTimeout && (0,swr_internal__rspack_import_3.isUndefined)(getCache().data)) {\n setTimeout(()=>{\n if (loading && callbackSafeguard()) {\n getConfig().onLoadingSlow(key, config);\n }\n }, config.loadingTimeout);\n }\n // Start the request and save the timestamp.\n // Key must be truthy if entering here.\n FETCH[key] = [\n currentFetcher(fnArg),\n (0,swr_internal__rspack_import_3.getTimestamp)()\n ];\n }\n [newData, startAt] = FETCH[key];\n newData = await newData;\n if (shouldStartNewRequest) {\n // If the request isn't interrupted, clean it up after the\n // deduplication interval.\n setTimeout(cleanupState, config.dedupingInterval);\n }\n // If there're other ongoing request(s), started after the current one,\n // we need to ignore the current one to avoid possible race conditions:\n // req1------------------>res1 (current one)\n // req2---------------->res2\n // the request that fired later will always be kept.\n // The timestamp maybe be `undefined` or a number\n if (!FETCH[key] || FETCH[key][1] !== startAt) {\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Clear error.\n finalState.error = swr_internal__rspack_import_3.UNDEFINED;\n // If there're other mutations(s), that overlapped with the current revalidation:\n // case 1:\n // req------------------>res\n // mutate------>end\n // case 2:\n // req------------>res\n // mutate------>end\n // case 3:\n // req------------------>res\n // mutate-------...---------->\n // we have to ignore the revalidation result (res) because it's no longer fresh.\n // meanwhile, a new revalidation should be triggered when the mutation ends.\n const mutationInfo = MUTATION[key];\n if (!(0,swr_internal__rspack_import_3.isUndefined)(mutationInfo) && // case 1\n (startAt <= mutationInfo[0] || // case 2\n startAt <= mutationInfo[1] || // case 3\n mutationInfo[1] === 0)) {\n finishRequestAndUpdateState();\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Deep compare with the latest state to avoid extra re-renders.\n // For local state, compare and assign.\n const cacheData = getCache().data;\n // Since the compare fn could be custom fn\n // cacheData might be different from newData even when compare fn returns True\n finalState.data = compare(cacheData, newData) ? cacheData : newData;\n // Trigger the successful callback if it's the original request.\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onSuccess(newData, key, config);\n }\n }\n } catch (err) {\n cleanupState();\n const currentConfig = getConfig();\n const { shouldRetryOnError } = currentConfig;\n // Not paused, we continue handling the error. Otherwise, discard it.\n if (!currentConfig.isPaused()) {\n // Get a new error, don't use deep comparison for errors.\n finalState.error = err;\n // Error event and retry logic. Only for the actual request, not\n // deduped ones.\n if (shouldStartNewRequest && callbackSafeguard()) {\n currentConfig.onError(err, key, currentConfig);\n if (shouldRetryOnError === true || (0,swr_internal__rspack_import_3.isFunction)(shouldRetryOnError) && shouldRetryOnError(err)) {\n if (!getConfig().revalidateOnFocus || !getConfig().revalidateOnReconnect || isActive()) {\n // If it's inactive, stop. It will auto-revalidate when\n // refocusing or reconnecting.\n // When retrying, deduplication is always enabled.\n currentConfig.onErrorRetry(err, key, currentConfig, (_opts)=>{\n const revalidators = EVENT_REVALIDATORS[key];\n if (revalidators && revalidators[0]) {\n revalidators[0](swr_internal__rspack_import_3.revalidateEvents.ERROR_REVALIDATE_EVENT, _opts);\n }\n }, {\n retryCount: (opts.retryCount || 0) + 1,\n dedupe: true\n });\n }\n }\n }\n }\n }\n // Mark loading as stopped.\n loading = false;\n // Update the current hook's state.\n finishRequestAndUpdateState();\n return true;\n }, // `setState` is immutable, and `eventsCallback`, `fnArg`, and\n // `keyValidating` are depending on `key`, so we can exclude them from\n // the deps array.\n //\n // FIXME:\n // `fn` and `config` might be changed during the lifecycle,\n // but they might be changed every render like this.\n // `useSWR('key', () => fetch('/api/'), { suspense: true })`\n // So we omit the values from the deps array\n // even though it might cause unexpected behaviors.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n key,\n cache\n ]);\n // Similar to the global mutate but bound to the current cache and key.\n // `cache` isn't allowed to change during the lifecycle.\n const boundMutate = (0,react__rspack_import_1.useCallback)(// Use callback to make sure `keyRef.current` returns latest result every time\n (...args)=>{\n return (0,swr_internal__rspack_import_3.internalMutate)(cache, keyRef.current, ...args);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // The logic for updating refs.\n (0,swr_internal__rspack_import_3.useIsomorphicLayoutEffect)(()=>{\n fetcherRef.current = fetcher;\n configRef.current = config;\n // Handle laggy data updates. If there's cached data of the current key,\n // it'll be the correct reference.\n if (!(0,swr_internal__rspack_import_3.isUndefined)(cachedData)) {\n laggyDataRef.current = cachedData;\n }\n });\n // After mounted or key changed.\n (0,swr_internal__rspack_import_3.useIsomorphicLayoutEffect)(()=>{\n if (!key) return;\n const softRevalidate = revalidate.bind(swr_internal__rspack_import_3.UNDEFINED, WITH_DEDUPE);\n // Expose revalidators to global event listeners. So we can trigger\n // revalidation from the outside.\n let nextFocusRevalidatedAt = 0;\n const onRevalidate = (type, opts = {})=>{\n if (type == swr_internal__rspack_import_3.revalidateEvents.FOCUS_EVENT) {\n const now = Date.now();\n if (getConfig().revalidateOnFocus && now > nextFocusRevalidatedAt && isActive()) {\n nextFocusRevalidatedAt = now + getConfig().focusThrottleInterval;\n softRevalidate();\n }\n } else if (type == swr_internal__rspack_import_3.revalidateEvents.RECONNECT_EVENT) {\n if (getConfig().revalidateOnReconnect && isActive()) {\n softRevalidate();\n }\n } else if (type == swr_internal__rspack_import_3.revalidateEvents.MUTATE_EVENT) {\n return revalidate();\n } else if (type == swr_internal__rspack_import_3.revalidateEvents.ERROR_REVALIDATE_EVENT) {\n return revalidate(opts);\n }\n return;\n };\n const unsubEvents = (0,swr_internal__rspack_import_3.subscribeCallback)(key, EVENT_REVALIDATORS, onRevalidate);\n // Mark the component as mounted and update corresponding refs.\n unmountedRef.current = false;\n keyRef.current = key;\n initialMountedRef.current = true;\n // Keep the original key in the cache.\n setCache({\n _k: fnArg\n });\n // Trigger a revalidation\n if (shouldDoInitialRevalidation) {\n if ((0,swr_internal__rspack_import_3.isUndefined)(data) || swr_internal__rspack_import_3.IS_SERVER) {\n // Revalidate immediately.\n softRevalidate();\n } else {\n // Delay the revalidate if we have data to return so we won't block\n // rendering.\n (0,swr_internal__rspack_import_3.rAF)(softRevalidate);\n }\n }\n return ()=>{\n // Mark it as unmounted.\n unmountedRef.current = true;\n unsubEvents();\n };\n }, [\n key\n ]);\n // Polling\n (0,swr_internal__rspack_import_3.useIsomorphicLayoutEffect)(()=>{\n let timer;\n function next() {\n // Use the passed interval\n // ...or invoke the function with the updated data to get the interval\n const interval = (0,swr_internal__rspack_import_3.isFunction)(refreshInterval) ? refreshInterval(getCache().data) : refreshInterval;\n // We only start the next interval if `refreshInterval` is not 0, and:\n // - `force` is true, which is the start of polling\n // - or `timer` is not 0, which means the effect wasn't canceled\n if (interval && timer !== -1) {\n timer = setTimeout(execute, interval);\n }\n }\n function execute() {\n // Check if it's OK to execute:\n // Only revalidate when the page is visible, online, and not errored.\n if (!getCache().error && (refreshWhenHidden || getConfig().isVisible()) && (refreshWhenOffline || getConfig().isOnline())) {\n revalidate(WITH_DEDUPE).then(next);\n } else {\n // Schedule the next interval to check again.\n next();\n }\n }\n next();\n return ()=>{\n if (timer) {\n clearTimeout(timer);\n timer = -1;\n }\n };\n }, [\n refreshInterval,\n refreshWhenHidden,\n refreshWhenOffline,\n key\n ]);\n // Display debug info in React DevTools.\n (0,react__rspack_import_1.useDebugValue)(returnedData);\n // In Suspense mode, we can't return the empty `data` state.\n // If there is an `error`, the `error` needs to be thrown to the error boundary.\n // If there is no `error`, the `revalidation` promise needs to be thrown to\n // the suspense boundary.\n if (suspense && (0,swr_internal__rspack_import_3.isUndefined)(data) && key) {\n // SWR should throw when trying to use Suspense on the server with React 18,\n // without providing any initial data. See:\n // https://github.com/vercel/swr/issues/1832\n if (!swr_internal__rspack_import_3.IS_REACT_LEGACY && swr_internal__rspack_import_3.IS_SERVER) {\n throw new Error('Fallback data is required when using suspense in SSR.');\n }\n // Always update fetcher and config refs even with the Suspense mode.\n fetcherRef.current = fetcher;\n configRef.current = config;\n unmountedRef.current = false;\n const req = PRELOAD[key];\n if (!(0,swr_internal__rspack_import_3.isUndefined)(req)) {\n const promise = boundMutate(req);\n use(promise);\n }\n if ((0,swr_internal__rspack_import_3.isUndefined)(error)) {\n const promise = revalidate(WITH_DEDUPE);\n if (!(0,swr_internal__rspack_import_3.isUndefined)(returnedData)) {\n promise.status = 'fulfilled';\n promise.value = true;\n }\n use(promise);\n } else {\n throw error;\n }\n }\n return {\n mutate: boundMutate,\n get data () {\n stateDependencies.data = true;\n return returnedData;\n },\n get error () {\n stateDependencies.error = true;\n return error;\n },\n get isValidating () {\n stateDependencies.isValidating = true;\n return isValidating;\n },\n get isLoading () {\n stateDependencies.isLoading = true;\n return isLoading;\n }\n };\n};\nconst SWRConfig = swr_internal__rspack_import_3.OBJECT.defineProperty(swr_internal__rspack_import_3.SWRConfig, 'defaultValue', {\n value: swr_internal__rspack_import_3.defaultConfig\n});\n/**\n * A hook to fetch data.\n *\n * @link https://swr.vercel.app\n * @example\n * ```jsx\n * import useSWR from 'swr'\n * function Profile() {\n * const { data, error, isLoading } = useSWR('/api/user', fetcher)\n * if (error) return <div>failed to load</div>\n * if (isLoading) return <div>loading...</div>\n * return <div>hello {data.name}!</div>\n * }\n * ```\n */ const useSWR = (0,swr_internal__rspack_import_3.withArgs)(useSWRHandler);\n\n\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218L2hvbWUvcnVubmVyL3dvcmsvb3Blbm1ycy1lc20tY29yZS9vcGVubXJzLWVzbS1jb3JlL25vZGVfbW9kdWxlcy9zd3IvZGlzdC9jb3JlL2luZGV4Lm1qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N3ci9kaXN0L2NvcmUvaW5kZXgubWpzPzNjMTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdjbGllbnQtb25seSc7XG5pbXBvcnQgUmVhY3RFeHBvcnRzLCB7IHVzZVJlZiwgdXNlTWVtbywgdXNlQ2FsbGJhY2ssIHVzZURlYnVnVmFsdWUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VTeW5jRXh0ZXJuYWxTdG9yZSB9IGZyb20gJ3VzZS1zeW5jLWV4dGVybmFsLXN0b3JlL3NoaW0vaW5kZXguanMnO1xuaW1wb3J0IHsgc2VyaWFsaXplLCBPQkpFQ1QsIFNXUkNvbmZpZyBhcyBTV1JDb25maWckMSwgZGVmYXVsdENvbmZpZywgd2l0aEFyZ3MsIFNXUkdsb2JhbFN0YXRlLCBjcmVhdGVDYWNoZUhlbHBlciwgaXNVbmRlZmluZWQsIGdldFRpbWVzdGFtcCwgVU5ERUZJTkVELCBpc0Z1bmN0aW9uLCByZXZhbGlkYXRlRXZlbnRzLCBpbnRlcm5hbE11dGF0ZSwgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCwgc3Vic2NyaWJlQ2FsbGJhY2ssIElTX1NFUlZFUiwgckFGLCBJU19SRUFDVF9MRUdBQ1ksIG1lcmdlT2JqZWN0cyB9IGZyb20gJ3N3ci9faW50ZXJuYWwnO1xuZXhwb3J0IHsgbXV0YXRlLCBwcmVsb2FkLCB1c2VTV1JDb25maWcgfSBmcm9tICdzd3IvX2ludGVybmFsJztcblxuY29uc3QgdW5zdGFibGVfc2VyaWFsaXplID0gKGtleSk9PnNlcmlhbGl6ZShrZXkpWzBdO1xuXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cInJlYWN0L2V4cGVyaW1lbnRhbFwiIC8+XG5jb25zdCB1c2UgPSBSZWFjdEV4cG9ydHMudXNlIHx8ICgocHJvbWlzZSk9PntcbiAgICBpZiAocHJvbWlzZS5zdGF0dXMgPT09ICdwZW5kaW5nJykge1xuICAgICAgICB0aHJvdyBwcm9taXNlO1xuICAgIH0gZWxzZSBpZiAocHJvbWlzZS5zdGF0dXMgPT09ICdmdWxmaWxsZWQnKSB7XG4gICAgICAgIHJldHVybiBwcm9taXNlLnZhbHVlO1xuICAgIH0gZWxzZSBpZiAocHJvbWlzZS5zdGF0dXMgPT09ICdyZWplY3RlZCcpIHtcbiAgICAgICAgdGhyb3cgcHJvbWlzZS5yZWFzb247XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcHJvbWlzZS5zdGF0dXMgPSAncGVuZGluZyc7XG4gICAgICAgIHByb21pc2UudGhlbigodik9PntcbiAgICAgICAgICAgIHByb21pc2Uuc3RhdHVzID0gJ2Z1bGZpbGxlZCc7XG4gICAgICAgICAgICBwcm9taXNlLnZhbHVlID0gdjtcbiAgICAgICAgfSwgKGUpPT57XG4gICAgICAgICAgICBwcm9taXNlLnN0YXR1cyA9ICdyZWplY3RlZCc7XG4gICAgICAgICAgICBwcm9taXNlLnJlYXNvbiA9IGU7XG4gICAgICAgIH0pO1xuICAgICAgICB0aHJvdyBwcm9taXNlO1xuICAgIH1cbn0pO1xuY29uc3QgV0lUSF9ERURVUEUgPSB7XG4gICAgZGVkdXBlOiB0cnVlXG59O1xuY29uc3QgdXNlU1dSSGFuZGxlciA9IChfa2V5LCBmZXRjaGVyLCBjb25maWcpPT57XG4gICAgY29uc3QgeyBjYWNoZSwgY29tcGFyZSwgc3VzcGVuc2UsIGZhbGxiYWNrRGF0YSwgcmV2YWxpZGF0ZU9uTW91bnQsIHJldmFsaWRhdGVJZlN0YWxlLCByZWZyZXNoSW50ZXJ2YWwsIHJlZnJlc2hXaGVuSGlkZGVuLCByZWZyZXNoV2hlbk9mZmxpbmUsIGtlZXBQcmV2aW91c0RhdGEgfSA9IGNvbmZpZztcbiAgICBjb25zdCBbRVZFTlRfUkVWQUxJREFUT1JTLCBNVVRBVElPTiwgRkVUQ0gsIFBSRUxPQURdID0gU1dSR2xvYmFsU3RhdGUuZ2V0KGNhY2hlKTtcbiAgICAvLyBga2V5YCBpcyB0aGUgaWRlbnRpZmllciBvZiB0aGUgU1dSIGludGVybmFsIHN0YXRlLFxuICAgIC8vIGBmbkFyZ2AgaXMgdGhlIGFyZ3VtZW50L2FyZ3VtZW50cyBwYXJzZWQgZnJvbSB0aGUga2V5LCB3aGljaCB3aWxsIGJlIHBhc3NlZFxuICAgIC8vIHRvIHRoZSBmZXRjaGVyLlxuICAgIC8vIEFsbCBvZiB0aGVtIGFyZSBkZXJpdmVkIGZyb20gYF9rZXlgLlxuICAgIGNvbnN0IFtrZXksIGZuQXJnXSA9IHNlcmlhbGl6ZShfa2V5KTtcbiAgICAvLyBJZiBpdCdzIHRoZSBpbml0aWFsIHJlbmRlciBvZiB0aGlzIGhvb2suXG4gICAgY29uc3QgaW5pdGlhbE1vdW50ZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIC8vIElmIHRoZSBob29rIGlzIHVubW91bnRlZCBhbHJlYWR5LiBUaGlzIHdpbGwgYmUgdXNlZCB0byBwcmV2ZW50IHNvbWUgZWZmZWN0c1xuICAgIC8vIHRvIGJlIGNhbGxlZCBhZnRlciB1bm1vdW50aW5nLlxuICAgIGNvbnN0IHVubW91bnRlZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgLy8gUmVmcyB0byBrZWVwIHRoZSBrZXkgYW5kIGNvbmZpZy5cbiAgICBjb25zdCBrZXlSZWYgPSB1c2VSZWYoa2V5KTtcbiAgICBjb25zdCBmZXRjaGVyUmVmID0gdXNlUmVmKGZldGNoZXIpO1xuICAgIGNvbnN0IGNvbmZpZ1JlZiA9IHVzZVJlZihjb25maWcpO1xuICAgIGNvbnN0IGdldENvbmZpZyA9ICgpPT5jb25maWdSZWYuY3VycmVudDtcbiAgICBjb25zdCBpc0FjdGl2ZSA9ICgpPT5nZXRDb25maWcoKS5pc1Zpc2libGUoKSAmJiBnZXRDb25maWcoKS5pc09ubGluZSgpO1xuICAgIGNvbnN0IFtnZXRDYWNoZSwgc2V0Q2FjaGUsIHN1YnNjcmliZUNhY2hlLCBnZXRJbml0aWFsQ2FjaGVdID0gY3JlYXRlQ2FjaGVIZWxwZXIoY2FjaGUsIGtleSk7XG4gICAgY29uc3Qgc3RhdGVEZXBlbmRlbmNpZXMgPSB1c2VSZWYoe30pLmN1cnJlbnQ7XG4gICAgY29uc3QgZmFsbGJhY2sgPSBpc1VuZGVmaW5lZChmYWxsYmFja0RhdGEpID8gY29uZmlnLmZhbGxiYWNrW2tleV0gOiBmYWxsYmFja0RhdGE7XG4gICAgY29uc3QgaXNFcXVhbCA9IChwcmV2LCBjdXJyZW50KT0+e1xuICAgICAgICBmb3IoY29uc3QgXyBpbiBzdGF0ZURlcGVuZGVuY2llcyl7XG4gICAgICAgICAgICBjb25zdCB0ID0gXztcbiAgICAgICAgICAgIGlmICh0ID09PSAnZGF0YScpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNvbXBhcmUocHJldlt0XSwgY3VycmVudFt0XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChwcmV2W3RdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghY29tcGFyZShyZXR1cm5lZERhdGEsIGN1cnJlbnRbdF0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50W3RdICE9PSBwcmV2W3RdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRTbmFwc2hvdCA9IHVzZU1lbW8oKCk9PntcbiAgICAgICAgY29uc3Qgc2hvdWxkU3RhcnRSZXF1ZXN0ID0gKCgpPT57XG4gICAgICAgICAgICBpZiAoIWtleSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgaWYgKCFmZXRjaGVyKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAvLyBJZiBgcmV2YWxpZGF0ZU9uTW91bnRgIGlzIHNldCwgd2UgdGFrZSB0aGUgdmFsdWUgZGlyZWN0bHkuXG4gICAgICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKHJldmFsaWRhdGVPbk1vdW50KSkgcmV0dXJuIHJldmFsaWRhdGVPbk1vdW50O1xuICAgICAgICAgICAgLy8gSWYgaXQncyBwYXVzZWQsIHdlIHNraXAgcmV2YWxpZGF0aW9uLlxuICAgICAgICAgICAgaWYgKGdldENvbmZpZygpLmlzUGF1c2VkKCkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGlmIChzdXNwZW5zZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChyZXZhbGlkYXRlSWZTdGFsZSkpIHJldHVybiByZXZhbGlkYXRlSWZTdGFsZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KSgpO1xuICAgICAgICAvLyBHZXQgdGhlIGNhY2hlIGFuZCBtZXJnZSBpdCB3aXRoIGV4cGVjdGVkIHN0YXRlcy5cbiAgICAgICAgY29uc3QgZ2V0U2VsZWN0ZWRDYWNoZSA9IChzdGF0ZSk9PntcbiAgICAgICAgICAgIC8vIFdlIG9ubHkgc2VsZWN0IHRoZSBuZWVkZWQgZmllbGRzIGZyb20gdGhlIHN0YXRlLlxuICAgICAgICAgICAgY29uc3Qgc25hcHNob3QgPSBtZXJnZU9iamVjdHMoc3RhdGUpO1xuICAgICAgICAgICAgZGVsZXRlIHNuYXBzaG90Ll9rO1xuICAgICAgICAgICAgaWYgKCFzaG91bGRTdGFydFJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc25hcHNob3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGlzVmFsaWRhdGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpc0xvYWRpbmc6IHRydWUsXG4gICAgICAgICAgICAgICAgLi4uc25hcHNob3RcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNhY2hlZERhdGEgPSBnZXRDYWNoZSgpO1xuICAgICAgICBjb25zdCBpbml0aWFsRGF0YSA9IGdldEluaXRpYWxDYWNoZSgpO1xuICAgICAgICBjb25zdCBjbGllbnRTbmFwc2hvdCA9IGdldFNlbGVjdGVkQ2FjaGUoY2FjaGVkRGF0YSk7XG4gICAgICAgIGNvbnN0IHNlcnZlclNuYXBzaG90ID0gY2FjaGVkRGF0YSA9PT0gaW5pdGlhbERhdGEgPyBjbGllbnRTbmFwc2hvdCA6IGdldFNlbGVjdGVkQ2FjaGUoaW5pdGlhbERhdGEpO1xuICAgICAgICAvLyBUbyBtYWtlIHN1cmUgdGhhdCB3ZSBhcmUgcmV0dXJuaW5nIHRoZSBzYW1lIG9iamVjdCByZWZlcmVuY2UgdG8gYXZvaWRcbiAgICAgICAgLy8gdW5uZWNlc3NhcnkgcmUtcmVuZGVycywgd2Uga2VlcCB0aGUgcHJldmlvdXMgc25hcHNob3QgYW5kIHVzZSBkZWVwXG4gICAgICAgIC8vIGNvbXBhcmlzb24gdG8gY2hlY2sgaWYgd2UgbmVlZCB0byByZXR1cm4gYSBuZXcgb25lLlxuICAgICAgICBsZXQgbWVtb3JpemVkU25hcHNob3QgPSBjbGllbnRTbmFwc2hvdDtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICgpPT57XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3U25hcHNob3QgPSBnZXRTZWxlY3RlZENhY2hlKGdldENhY2hlKCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBhcmVSZXN1bHQgPSBpc0VxdWFsKG5ld1NuYXBzaG90LCBtZW1vcml6ZWRTbmFwc2hvdCk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTWVudGFsbHksIHdlIHNob3VsZCBhbHdheXMgcmV0dXJuIHRoZSBgbWVtb3JpemVkU25hcHNob3RgIGhlcmVcbiAgICAgICAgICAgICAgICAgICAgLy8gYXMgdGhlcmUncyBubyBjaGFuZ2UgYmV0d2VlbiB0aGUgbmV3IGFuZCBvbGQgc25hcHNob3RzLlxuICAgICAgICAgICAgICAgICAgICAvLyBIb3dldmVyLCBzaW5jZSB0aGUgYGlzRXF1YWxgIGZ1bmN0aW9uIG9ubHkgY29tcGFyZXMgc2VsZWN0ZWQgZmllbGRzLFxuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgdmFsdWVzIG9mIHRoZSB1bnNlbGVjdGVkIGZpZWxkcyBtaWdodCBiZSBjaGFuZ2VkLiBUaGF0J3NcbiAgICAgICAgICAgICAgICAgICAgLy8gc2ltcGx5IGJlY2F1c2Ugd2UgZGlkbid0IHRyYWNrIHRoZW0uXG4gICAgICAgICAgICAgICAgICAgIC8vIFRvIHN1cHBvcnQgdGhlIGNhc2UgaW4gaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9zd3IvcHVsbC8yNTc2LFxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGVzZSBmaWVsZHMgaW4gdGhlIGBtZW1vcml6ZWRTbmFwc2hvdGAgdG9vXG4gICAgICAgICAgICAgICAgICAgIC8vIHdpdGggZGlyZWN0IG11dGF0aW9ucyB0byBlbnN1cmUgdGhlIHNuYXBzaG90IGlzIGFsd2F5cyB1cC10by1kYXRlXG4gICAgICAgICAgICAgICAgICAgIC8vIGV2ZW4gZm9yIHRoZSB1bnNlbGVjdGVkIGZpZWxkcywgYnV0IG9ubHkgdHJpZ2dlciByZS1yZW5kZXJzIHdoZW5cbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHNlbGVjdGVkIGZpZWxkcyBhcmUgY2hhbmdlZC5cbiAgICAgICAgICAgICAgICAgICAgbWVtb3JpemVkU25hcHNob3QuZGF0YSA9IG5ld1NuYXBzaG90LmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIG1lbW9yaXplZFNuYXBzaG90LmlzTG9hZGluZyA9IG5ld1NuYXBzaG90LmlzTG9hZGluZztcbiAgICAgICAgICAgICAgICAgICAgbWVtb3JpemVkU25hcHNob3QuaXNWYWxpZGF0aW5nID0gbmV3U25hcHNob3QuaXNWYWxpZGF0aW5nO1xuICAgICAgICAgICAgICAgICAgICBtZW1vcml6ZWRTbmFwc2hvdC5lcnJvciA9IG5ld1NuYXBzaG90LmVycm9yO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWVtb3JpemVkU25hcHNob3Q7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbWVtb3JpemVkU25hcHNob3QgPSBuZXdTbmFwc2hvdDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1NuYXBzaG90O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKT0+c2VydmVyU25hcHNob3RcbiAgICAgICAgXTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW1xuICAgICAgICBjYWNoZSxcbiAgICAgICAga2V5XG4gICAgXSk7XG4gICAgLy8gR2V0IHRoZSBjdXJyZW50IHN0YXRlIHRoYXQgU1dSIHNob3VsZCByZXR1cm4uXG4gICAgY29uc3QgY2FjaGVkID0gdXNlU3luY0V4dGVybmFsU3RvcmUodXNlQ2FsbGJhY2soKGNhbGxiYWNrKT0+c3Vic2NyaWJlQ2FjaGUoa2V5LCAoY3VycmVudCwgcHJldik9PntcbiAgICAgICAgICAgIGlmICghaXNFcXVhbChwcmV2LCBjdXJyZW50KSkgY2FsbGJhY2soKTtcbiAgICAgICAgfSksIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbXG4gICAgICAgIGNhY2hlLFxuICAgICAgICBrZXlcbiAgICBdKSwgZ2V0U25hcHNob3RbMF0sIGdldFNuYXBzaG90WzFdKTtcbiAgICBjb25zdCBpc0luaXRpYWxNb3VudCA9ICFpbml0aWFsTW91bnRlZFJlZi5jdXJyZW50O1xuICAgIGNvbnN0IGhhc1JldmFsaWRhdG9yID0gRVZFTlRfUkVWQUxJREFUT1JTW2tleV0gJiYgRVZFTlRfUkVWQUxJREFUT1JTW2tleV0ubGVuZ3RoID4gMDtcbiAgICBjb25zdCBjYWNoZWREYXRhID0gY2FjaGVkLmRhdGE7XG4gICAgY29uc3QgZGF0YSA9IGlzVW5kZWZpbmVkKGNhY2hlZERhdGEpID8gZmFsbGJhY2sgOiBjYWNoZWREYXRhO1xuICAgIGNvbnN0IGVycm9yID0gY2FjaGVkLmVycm9yO1xuICAgIC8vIFVzZSBhIHJlZiB0byBzdG9yZSBwcmV2aW91c2x5IHJldHVybmVkIGRhdGEuIFVzZSB0aGUgaW5pdGlhbCBkYXRhIGFzIGl0cyBpbml0aWFsIHZhbHVlLlxuICAgIGNvbnN0IGxhZ2d5RGF0YVJlZiA9IHVzZVJlZihkYXRhKTtcbiAgICBjb25zdCByZXR1cm5lZERhdGEgPSBrZWVwUHJldmlvdXNEYXRhID8gaXNVbmRlZmluZWQoY2FjaGVkRGF0YSkgPyBsYWdneURhdGFSZWYuY3VycmVudCA6IGNhY2hlZERhdGEgOiBkYXRhO1xuICAgIC8vIC0gU3VzcGVuc2UgbW9kZSBhbmQgdGhlcmUncyBzdGFsZSBkYXRhIGZvciB0aGUgaW5pdGlhbCByZW5kZXIuXG4gICAgLy8gLSBOb3Qgc3VzcGVuc2UgbW9kZSBhbmQgdGhlcmUgaXMgbm8gZmFsbGJhY2sgZGF0YSBhbmQgYHJldmFsaWRhdGVJZlN0YWxlYCBpcyBlbmFibGVkLlxuICAgIC8vIC0gYHJldmFsaWRhdGVJZlN0YWxlYCBpcyBlbmFibGVkIGJ1dCBgZGF0YWAgaXMgbm90IGRlZmluZWQuXG4gICAgY29uc3Qgc2hvdWxkRG9Jbml0aWFsUmV2YWxpZGF0aW9uID0gKCgpPT57XG4gICAgICAgIC8vIGlmIGEga2V5IGFscmVhZHkgaGFzIHJldmFsaWRhdG9ycyBhbmQgYWxzbyBoYXMgZXJyb3IsIHdlIHNob3VsZCBub3QgdHJpZ2dlciByZXZhbGlkYXRpb25cbiAgICAgICAgaWYgKGhhc1JldmFsaWRhdG9yICYmICFpc1VuZGVmaW5lZChlcnJvcikpIHJldHVybiBmYWxzZTtcbiAgICAgICAgLy8gSWYgYHJldmFsaWRhdGVPbk1vdW50YCBpcyBzZXQsIHdlIHRha2UgdGhlIHZhbHVlIGRpcmVjdGx5LlxuICAgICAgICBpZiAoaXNJbml0aWFsTW91bnQgJiYgIWlzVW5kZWZpbmVkKHJldmFsaWRhdGVPbk1vdW50KSkgcmV0dXJuIHJldmFsaWRhdGVPbk1vdW50O1xuICAgICAgICAvLyBJZiBpdCdzIHBhdXNlZCwgd2Ugc2tpcCByZXZhbGlkYXRpb24uXG4gICAgICAgIGlmIChnZXRDb25maWcoKS5pc1BhdXNlZCgpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIC8vIFVuZGVyIHN1c3BlbnNlIG1vZGUsIGl0IHdpbGwgYWx3YXlzIGZldGNoIG9uIHJlbmRlciBpZiB0aGVyZSBpcyBub1xuICAgICAgICAvLyBzdGFsZSBkYXRhIHNvIG5vIG5lZWQgdG8gcmV2YWxpZGF0ZSBpbW1lZGlhdGVseSBtb3VudCBpdCBhZ2Fpbi5cbiAgICAgICAgLy8gSWYgZGF0YSBleGlzdHMsIG9ubHkgcmV2YWxpZGF0ZSBpZiBgcmV2YWxpZGF0ZUlmU3RhbGVgIGlzIHRydWUuXG4gICAgICAgIGlmIChzdXNwZW5zZSkgcmV0dXJuIGlzVW5kZWZpbmVkKGRhdGEpID8gZmFsc2UgOiByZXZhbGlkYXRlSWZTdGFsZTtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gc3RhbGUgZGF0YSwgd2UgbmVlZCB0byByZXZhbGlkYXRlIHdoZW4gbW91bnQ7XG4gICAgICAgIC8vIElmIGByZXZhbGlkYXRlSWZTdGFsZWAgaXMgc2V0IHRvIHRydWUsIHdlIHdpbGwgYWx3YXlzIHJldmFsaWRhdGUuXG4gICAgICAgIHJldHVybiBpc1VuZGVmaW5lZChkYXRhKSB8fCByZXZhbGlkYXRlSWZTdGFsZTtcbiAgICB9KSgpO1xuICAgIC8vIFJlc29sdmUgdGhlIGRlZmF1bHQgdmFsaWRhdGluZyBzdGF0ZTpcbiAgICAvLyBJZiBpdCdzIGFibGUgdG8gdmFsaWRhdGUsIGFuZCBpdCBzaG91bGQgcmV2YWxpZGF0ZSB3aGVuIG1vdW50LCB0aGlzIHdpbGwgYmUgdHJ1ZS5cbiAgICBjb25zdCBkZWZhdWx0VmFsaWRhdGluZ1N0YXRlID0gISEoa2V5ICYmIGZldGNoZXIgJiYgaXNJbml0aWFsTW91bnQgJiYgc2hvdWxkRG9Jbml0aWFsUmV2YWxpZGF0aW9uKTtcbiAgICBjb25zdCBpc1ZhbGlkYXRpbmcgPSBpc1VuZGVmaW5lZChjYWNoZWQuaXNWYWxpZGF0aW5nKSA/IGRlZmF1bHRWYWxpZGF0aW5nU3RhdGUgOiBjYWNoZWQuaXNWYWxpZGF0aW5nO1xuICAgIGNvbnN0IGlzTG9hZGluZyA9IGlzVW5kZWZpbmVkKGNhY2hlZC5pc0xvYWRpbmcpID8gZGVmYXVsdFZhbGlkYXRpbmdTdGF0ZSA6IGNhY2hlZC5pc0xvYWRpbmc7XG4gICAgLy8gVGhlIHJldmFsaWRhdGlvbiBmdW5jdGlvbiBpcyBhIGNhcmVmdWxseSBjcmFmdGVkIHdyYXBwZXIgb2YgdGhlIG9yaWdpbmFsXG4gICAgLy8gYGZldGNoZXJgLCB0byBjb3JyZWN0bHkgaGFuZGxlIHRoZSBtYW55IGVkZ2UgY2FzZXMuXG4gICAgY29uc3QgcmV2YWxpZGF0ZSA9IHVzZUNhbGxiYWNrKGFzeW5jIChyZXZhbGlkYXRlT3B0cyk9PntcbiAgICAgICAgY29uc3QgY3VycmVudEZldGNoZXIgPSBmZXRjaGVyUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICgha2V5IHx8ICFjdXJyZW50RmV0Y2hlciB8fCB1bm1vdW50ZWRSZWYuY3VycmVudCB8fCBnZXRDb25maWcoKS5pc1BhdXNlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG5ld0RhdGE7XG4gICAgICAgIGxldCBzdGFydEF0O1xuICAgICAgICBsZXQgbG9hZGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IG9wdHMgPSByZXZhbGlkYXRlT3B0cyB8fCB7fTtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gb25nb2luZyBjb25jdXJyZW50IHJlcXVlc3QsIG9yIGBkZWR1cGVgIGlzIG5vdCBzZXQsIGFcbiAgICAgICAgLy8gbmV3IHJlcXVlc3Qgc2hvdWxkIGJlIGluaXRpYXRlZC5cbiAgICAgICAgY29uc3Qgc2hvdWxkU3RhcnROZXdSZXF1ZXN0ID0gIUZFVENIW2tleV0gfHwgIW9wdHMuZGVkdXBlO1xuICAgICAgICAvKlxuICAgICAgICAgRm9yIFJlYWN0IDE3XG4gICAgICAgICBEbyB1bm1vdW50IGNoZWNrIGZvciBjYWxsczpcbiAgICAgICAgIElmIGtleSBoYXMgY2hhbmdlZCBkdXJpbmcgdGhlIHJldmFsaWRhdGlvbiwgb3IgdGhlIGNvbXBvbmVudCBoYXMgYmVlblxuICAgICAgICAgdW5tb3VudGVkLCBvbGQgZGlzcGF0Y2ggYW5kIG9sZCBldmVudCBjYWxsYmFja3Mgc2hvdWxkIG5vdCB0YWtlIGFueVxuICAgICAgICAgZWZmZWN0XG5cbiAgICAgICAgRm9yIFJlYWN0IDE4XG4gICAgICAgIG9ubHkgY2hlY2sgaWYga2V5IGhhcyBjaGFuZ2VkXG4gICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdHdnL3JlYWN0LTE4L2Rpc2N1c3Npb25zLzgyXG4gICAgICAqLyBjb25zdCBjYWxsYmFja1NhZmVndWFyZCA9ICgpPT57XG4gICAgICAgICAgICBpZiAoSVNfUkVBQ1RfTEVHQUNZKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICF1bm1vdW50ZWRSZWYuY3VycmVudCAmJiBrZXkgPT09IGtleVJlZi5jdXJyZW50ICYmIGluaXRpYWxNb3VudGVkUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ga2V5ID09PSBrZXlSZWYuY3VycmVudDtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gVGhlIGZpbmFsIHN0YXRlIG9iamVjdCB3aGVuIHRoZSByZXF1ZXN0IGZpbmlzaGVzLlxuICAgICAgICBjb25zdCBmaW5hbFN0YXRlID0ge1xuICAgICAgICAgICAgaXNWYWxpZGF0aW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGlzTG9hZGluZzogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZmluaXNoUmVxdWVzdEFuZFVwZGF0ZVN0YXRlID0gKCk9PntcbiAgICAgICAgICAgIHNldENhY2hlKGZpbmFsU3RhdGUpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjbGVhbnVwU3RhdGUgPSAoKT0+e1xuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgaXQncyBzdGlsbCB0aGUgc2FtZSByZXF1ZXN0IGJlZm9yZSBkZWxldGluZyBpdC5cbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RJbmZvID0gRkVUQ0hba2V5XTtcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0SW5mbyAmJiByZXF1ZXN0SW5mb1sxXSA9PT0gc3RhcnRBdCkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBGRVRDSFtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAvLyBTdGFydCBmZXRjaGluZy4gQ2hhbmdlIHRoZSBgaXNWYWxpZGF0aW5nYCBzdGF0ZSwgdXBkYXRlIHRoZSBjYWNoZS5cbiAgICAgICAgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICAgICAgICAgICAgaXNWYWxpZGF0aW5nOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIC8vIEl0IGlzIGluIHRoZSBgaXNMb2FkaW5nYCBzdGF0ZSwgaWYgYW5kIG9ubHkgaWYgdGhlcmUgaXMgbm8gY2FjaGVkIGRhdGEuXG4gICAgICAgIC8vIFRoaXMgYnlwYXNzZXMgZmFsbGJhY2sgZGF0YSBhbmQgbGFnZ3kgZGF0YS5cbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKGdldENhY2hlKCkuZGF0YSkpIHtcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZS5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoc2hvdWxkU3RhcnROZXdSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgc2V0Q2FjaGUoaW5pdGlhbFN0YXRlKTtcbiAgICAgICAgICAgICAgICAvLyBJZiBubyBjYWNoZSBpcyBiZWluZyByZW5kZXJlZCBjdXJyZW50bHkgKGl0IHNob3dzIGEgYmxhbmsgcGFnZSksXG4gICAgICAgICAgICAgICAgLy8gd2UgdHJpZ2dlciB0aGUgbG9hZGluZyBzbG93IGV2ZW50LlxuICAgICAgICAgICAgICAgIGlmIChjb25maWcubG9hZGluZ1RpbWVvdXQgJiYgaXNVbmRlZmluZWQoZ2V0Q2FjaGUoKS5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9hZGluZyAmJiBjYWxsYmFja1NhZmVndWFyZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlnKCkub25Mb2FkaW5nU2xvdyhrZXksIGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sIGNvbmZpZy5sb2FkaW5nVGltZW91dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFN0YXJ0IHRoZSByZXF1ZXN0IGFuZCBzYXZlIHRoZSB0aW1lc3RhbXAuXG4gICAgICAgICAgICAgICAgLy8gS2V5IG11c3QgYmUgdHJ1dGh5IGlmIGVudGVyaW5nIGhlcmUuXG4gICAgICAgICAgICAgICAgRkVUQ0hba2V5XSA9IFtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEZldGNoZXIoZm5BcmcpLFxuICAgICAgICAgICAgICAgICAgICBnZXRUaW1lc3RhbXAoKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBbbmV3RGF0YSwgc3RhcnRBdF0gPSBGRVRDSFtrZXldO1xuICAgICAgICAgICAgbmV3RGF0YSA9IGF3YWl0IG5ld0RhdGE7XG4gICAgICAgICAgICBpZiAoc2hvdWxkU3RhcnROZXdSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHJlcXVlc3QgaXNuJ3QgaW50ZXJydXB0ZWQsIGNsZWFuIGl0IHVwIGFmdGVyIHRoZVxuICAgICAgICAgICAgICAgIC8vIGRlZHVwbGljYXRpb24gaW50ZXJ2YWwuXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChjbGVhbnVwU3RhdGUsIGNvbmZpZy5kZWR1cGluZ0ludGVydmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZXJlJ3JlIG90aGVyIG9uZ29pbmcgcmVxdWVzdChzKSwgc3RhcnRlZCBhZnRlciB0aGUgY3VycmVudCBvbmUsXG4gICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGlnbm9yZSB0aGUgY3VycmVudCBvbmUgdG8gYXZvaWQgcG9zc2libGUgcmFjZSBjb25kaXRpb25zOlxuICAgICAgICAgICAgLy8gICByZXExLS0tLS0tLS0tLS0tLS0tLS0tPnJlczEgICAgICAgIChjdXJyZW50IG9uZSlcbiAgICAgICAgICAgIC8vICAgICAgICByZXEyLS0tLS0tLS0tLS0tLS0tLT5yZXMyXG4gICAgICAgICAgICAvLyB0aGUgcmVxdWVzdCB0aGF0IGZpcmVkIGxhdGVyIHdpbGwgYWx3YXlzIGJlIGtlcHQuXG4gICAgICAgICAgICAvLyBUaGUgdGltZXN0YW1wIG1heWJlIGJlIGB1bmRlZmluZWRgIG9yIGEgbnVtYmVyXG4gICAgICAgICAgICBpZiAoIUZFVENIW2tleV0gfHwgRkVUQ0hba2V5XVsxXSAhPT0gc3RhcnRBdCkge1xuICAgICAgICAgICAgICAgIGlmIChzaG91bGRTdGFydE5ld1JlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrU2FmZWd1YXJkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbmZpZygpLm9uRGlzY2FyZGVkKGtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQ2xlYXIgZXJyb3IuXG4gICAgICAgICAgICBmaW5hbFN0YXRlLmVycm9yID0gVU5ERUZJTkVEO1xuICAgICAgICAgICAgLy8gSWYgdGhlcmUncmUgb3RoZXIgbXV0YXRpb25zKHMpLCB0aGF0IG92ZXJsYXBwZWQgd2l0aCB0aGUgY3VycmVudCByZXZhbGlkYXRpb246XG4gICAgICAgICAgICAvLyBjYXNlIDE6XG4gICAgICAgICAgICAvLyAgIHJlcS0tLS0tLS0tLS0tLS0tLS0tLT5yZXNcbiAgICAgICAgICAgIC8vICAgICAgIG11dGF0ZS0tLS0tLT5lbmRcbiAgICAgICAgICAgIC8vIGNhc2UgMjpcbiAgICAgICAgICAgIC8vICAgICAgICAgcmVxLS0tLS0tLS0tLS0tPnJlc1xuICAgICAgICAgICAgLy8gICBtdXRhdGUtLS0tLS0+ZW5kXG4gICAgICAgICAgICAvLyBjYXNlIDM6XG4gICAgICAgICAgICAvLyAgIHJlcS0tLS0tLS0tLS0tLS0tLS0tLT5yZXNcbiAgICAgICAgICAgIC8vICAgICAgIG11dGF0ZS0tLS0tLS0uLi4tLS0tLS0tLS0tPlxuICAgICAgICAgICAgLy8gd2UgaGF2ZSB0byBpZ25vcmUgdGhlIHJldmFsaWRhdGlvbiByZXN1bHQgKHJlcykgYmVjYXVzZSBpdCdzIG5vIGxvbmdlciBmcmVzaC5cbiAgICAgICAgICAgIC8vIG1lYW53aGlsZSwgYSBuZXcgcmV2YWxpZGF0aW9uIHNob3VsZCBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgbXV0YXRpb24gZW5kcy5cbiAgICAgICAgICAgIGNvbnN0IG11dGF0aW9uSW5mbyA9IE1VVEFUSU9OW2tleV07XG4gICAgICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKG11dGF0aW9uSW5mbykgJiYgLy8gY2FzZSAxXG4gICAgICAgICAgICAoc3RhcnRBdCA8PSBtdXRhdGlvbkluZm9bMF0gfHwgLy8gY2FzZSAyXG4gICAgICAgICAgICBzdGFydEF0IDw9IG11dGF0aW9uSW5mb1sxXSB8fCAvLyBjYXNlIDNcbiAgICAgICAgICAgIG11dGF0aW9uSW5mb1sxXSA9PT0gMCkpIHtcbiAgICAgICAgICAgICAgICBmaW5pc2hSZXF1ZXN0QW5kVXBkYXRlU3RhdGUoKTtcbiAgICAgICAgICAgICAgICBpZiAoc2hvdWxkU3RhcnROZXdSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjYWxsYmFja1NhZmVndWFyZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRDb25maWcoKS5vbkRpc2NhcmRlZChrZXkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIERlZXAgY29tcGFyZSB3aXRoIHRoZSBsYXRlc3Qgc3RhdGUgdG8gYXZvaWQgZXh0cmEgcmUtcmVuZGVycy5cbiAgICAgICAgICAgIC8vIEZvciBsb2NhbCBzdGF0ZSwgY29tcGFyZSBhbmQgYXNzaWduLlxuICAgICAgICAgICAgY29uc3QgY2FjaGVEYXRhID0gZ2V0Q2FjaGUoKS5kYXRhO1xuICAgICAgICAgICAgLy8gU2luY2UgdGhlIGNvbXBhcmUgZm4gY291bGQgYmUgY3VzdG9tIGZuXG4gICAgICAgICAgICAvLyBjYWNoZURhdGEgbWlnaHQgYmUgZGlmZmVyZW50IGZyb20gbmV3RGF0YSBldmVuIHdoZW4gY29tcGFyZSBmbiByZXR1cm5zIFRydWVcbiAgICAgICAgICAgIGZpbmFsU3RhdGUuZGF0YSA9IGNvbXBhcmUoY2FjaGVEYXRhLCBuZXdEYXRhKSA/IGNhY2hlRGF0YSA6IG5ld0RhdGE7XG4gICAgICAgICAgICAvLyBUcmlnZ2VyIHRoZSBzdWNjZXNzZnVsIGNhbGxiYWNrIGlmIGl0J3MgdGhlIG9yaWdpbmFsIHJlcXVlc3QuXG4gICAgICAgICAgICBpZiAoc2hvdWxkU3RhcnROZXdSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrU2FmZWd1YXJkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlnKCkub25TdWNjZXNzKG5ld0RhdGEsIGtleSwgY29uZmlnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY2xlYW51cFN0YXRlKCk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Q29uZmlnID0gZ2V0Q29uZmlnKCk7XG4gICAgICAgICAgICBjb25zdCB7IHNob3VsZFJldHJ5T25FcnJvciB9ID0gY3VycmVudENvbmZpZztcbiAgICAgICAgICAgIC8vIE5vdCBwYXVzZWQsIHdlIGNvbnRpbnVlIGhhbmRsaW5nIHRoZSBlcnJvci4gT3RoZXJ3aXNlLCBkaXNjYXJkIGl0LlxuICAgICAgICAgICAgaWYgKCFjdXJyZW50Q29uZmlnLmlzUGF1c2VkKCkpIHtcbiAgICAgICAgICAgICAgICAvLyBHZXQgYSBuZXcgZXJyb3IsIGRvbid0IHVzZSBkZWVwIGNvbXBhcmlzb24gZm9yIGVycm9ycy5cbiAgICAgICAgICAgICAgICBmaW5hbFN0YXRlLmVycm9yID0gZXJyO1xuICAgICAgICAgICAgICAgIC8vIEVycm9yIGV2ZW50IGFuZCByZXRyeSBsb2dpYy4gT25seSBmb3IgdGhlIGFjdHVhbCByZXF1ZXN0LCBub3RcbiAgICAgICAgICAgICAgICAvLyBkZWR1cGVkIG9uZXMuXG4gICAgICAgICAgICAgICAgaWYgKHNob3VsZFN0YXJ0TmV3UmVxdWVzdCAmJiBjYWxsYmFja1NhZmVndWFyZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb25maWcub25FcnJvcihlcnIsIGtleSwgY3VycmVudENvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRSZXRyeU9uRXJyb3IgPT09IHRydWUgfHwgaXNGdW5jdGlvbihzaG91bGRSZXRyeU9uRXJyb3IpICYmIHNob3VsZFJldHJ5T25FcnJvcihlcnIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdldENvbmZpZygpLnJldmFsaWRhdGVPbkZvY3VzIHx8ICFnZXRDb25maWcoKS5yZXZhbGlkYXRlT25SZWNvbm5lY3QgfHwgaXNBY3RpdmUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIGl0J3MgaW5hY3RpdmUsIHN0b3AuIEl0IHdpbGwgYXV0by1yZXZhbGlkYXRlIHdoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWZvY3VzaW5nIG9yIHJlY29ubmVjdGluZy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIHJldHJ5aW5nLCBkZWR1cGxpY2F0aW9uIGlzIGFsd2F5cyBlbmFibGVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb25maWcub25FcnJvclJldHJ5KGVyciwga2V5LCBjdXJyZW50Q29uZmlnLCAoX29wdHMpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJldmFsaWRhdG9ycyA9IEVWRU5UX1JFVkFMSURBVE9SU1trZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV2YWxpZGF0b3JzICYmIHJldmFsaWRhdG9yc1swXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0b3JzWzBdKHJldmFsaWRhdGVFdmVudHMuRVJST1JfUkVWQUxJREFURV9FVkVOVCwgX29wdHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXRyeUNvdW50OiAob3B0cy5yZXRyeUNvdW50IHx8IDApICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVkdXBlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gTWFyayBsb2FkaW5nIGFzIHN0b3BwZWQuXG4gICAgICAgIGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgLy8gVXBkYXRlIHRoZSBjdXJyZW50IGhvb2sncyBzdGF0ZS5cbiAgICAgICAgZmluaXNoUmVxdWVzdEFuZFVwZGF0ZVN0YXRlKCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0sIC8vIGBzZXRTdGF0ZWAgaXMgaW1tdXRhYmxlLCBhbmQgYGV2ZW50c0NhbGxiYWNrYCwgYGZuQXJnYCwgYW5kXG4gICAgLy8gYGtleVZhbGlkYXRpbmdgIGFyZSBkZXBlbmRpbmcgb24gYGtleWAsIHNvIHdlIGNhbiBleGNsdWRlIHRoZW0gZnJvbVxuICAgIC8vIHRoZSBkZXBzIGFycmF5LlxuICAgIC8vXG4gICAgLy8gRklYTUU6XG4gICAgLy8gYGZuYCBhbmQgYGNvbmZpZ2AgbWlnaHQgYmUgY2hhbmdlZCBkdXJpbmcgdGhlIGxpZmVjeWNsZSxcbiAgICAvLyBidXQgdGhleSBtaWdodCBiZSBjaGFuZ2VkIGV2ZXJ5IHJlbmRlciBsaWtlIHRoaXMuXG4gICAgLy8gYHVzZVNXUigna2V5JywgKCkgPT4gZmV0Y2goJy9hcGkvJyksIHsgc3VzcGVuc2U6IHRydWUgfSlgXG4gICAgLy8gU28gd2Ugb21pdCB0aGUgdmFsdWVzIGZyb20gdGhlIGRlcHMgYXJyYXlcbiAgICAvLyBldmVuIHRob3VnaCBpdCBtaWdodCBjYXVzZSB1bmV4cGVjdGVkIGJlaGF2aW9ycy5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgW1xuICAgICAgICBrZXksXG4gICAgICAgIGNhY2hlXG4gICAgXSk7XG4gICAgLy8gU2ltaWxhciB0byB0aGUgZ2xvYmFsIG11dGF0ZSBidXQgYm91bmQgdG8gdGhlIGN1cnJlbnQgY2FjaGUgYW5kIGtleS5cbiAgICAvLyBgY2FjaGVgIGlzbid0IGFsbG93ZWQgdG8gY2hhbmdlIGR1cmluZyB0aGUgbGlmZWN5Y2xlLlxuICAgIGNvbnN0IGJvdW5kTXV0YXRlID0gdXNlQ2FsbGJhY2soLy8gVXNlIGNhbGxiYWNrIHRvIG1ha2Ugc3VyZSBga2V5UmVmLmN1cnJlbnRgIHJldHVybnMgbGF0ZXN0IHJlc3VsdCBldmVyeSB0aW1lXG4gICAgKC4uLmFyZ3MpPT57XG4gICAgICAgIHJldHVybiBpbnRlcm5hbE11dGF0ZShjYWNoZSwga2V5UmVmLmN1cnJlbnQsIC4uLmFyZ3MpO1xuICAgIH0sIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbXSk7XG4gICAgLy8gVGhlIGxvZ2ljIGZvciB1cGRhdGluZyByZWZzLlxuICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCk9PntcbiAgICAgICAgZmV0Y2hlclJlZi5jdXJyZW50ID0gZmV0Y2hlcjtcbiAgICAgICAgY29uZmlnUmVmLmN1cnJlbnQgPSBjb25maWc7XG4gICAgICAgIC8vIEhhbmRsZSBsYWdneSBkYXRhIHVwZGF0ZXMuIElmIHRoZXJlJ3MgY2FjaGVkIGRhdGEgb2YgdGhlIGN1cnJlbnQga2V5LFxuICAgICAgICAvLyBpdCdsbCBiZSB0aGUgY29ycmVjdCByZWZlcmVuY2UuXG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoY2FjaGVkRGF0YSkpIHtcbiAgICAgICAgICAgIGxhZ2d5RGF0YVJlZi5jdXJyZW50ID0gY2FjaGVkRGF0YTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIEFmdGVyIG1vdW50ZWQgb3Iga2V5IGNoYW5nZWQuXG4gICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoIWtleSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBzb2Z0UmV2YWxpZGF0ZSA9IHJldmFsaWRhdGUuYmluZChVTkRFRklORUQsIFdJVEhfREVEVVBFKTtcbiAgICAgICAgLy8gRXhwb3NlIHJldmFsaWRhdG9ycyB0byBnbG9iYWwgZXZlbnQgbGlzdGVuZXJzLiBTbyB3ZSBjYW4gdHJpZ2dlclxuICAgICAgICAvLyByZXZhbGlkYXRpb24gZnJvbSB0aGUgb3V0c2lkZS5cbiAgICAgICAgbGV0IG5leHRGb2N1c1JldmFsaWRhdGVkQXQgPSAwO1xuICAgICAgICBjb25zdCBvblJldmFsaWRhdGUgPSAodHlwZSwgb3B0cyA9IHt9KT0+e1xuICAgICAgICAgICAgaWYgKHR5cGUgPT0gcmV2YWxpZGF0ZUV2ZW50cy5GT0NVU19FVkVOVCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgaWYgKGdldENvbmZpZygpLnJldmFsaWRhdGVPbkZvY3VzICYmIG5vdyA+IG5leHRGb2N1c1JldmFsaWRhdGVkQXQgJiYgaXNBY3RpdmUoKSkge1xuICAgICAgICAgICAgICAgICAgICBuZXh0Rm9jdXNSZXZhbGlkYXRlZEF0ID0gbm93ICsgZ2V0Q29uZmlnKCkuZm9jdXNUaHJvdHRsZUludGVydmFsO1xuICAgICAgICAgICAgICAgICAgICBzb2Z0UmV2YWxpZGF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSByZXZhbGlkYXRlRXZlbnRzLlJFQ09OTkVDVF9FVkVOVCkge1xuICAgICAgICAgICAgICAgIGlmIChnZXRDb25maWcoKS5yZXZhbGlkYXRlT25SZWNvbm5lY3QgJiYgaXNBY3RpdmUoKSkge1xuICAgICAgICAgICAgICAgICAgICBzb2Z0UmV2YWxpZGF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSByZXZhbGlkYXRlRXZlbnRzLk1VVEFURV9FVkVOVCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXZhbGlkYXRlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gcmV2YWxpZGF0ZUV2ZW50cy5FUlJPUl9SRVZBTElEQVRFX0VWRU5UKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJldmFsaWRhdGUob3B0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHVuc3ViRXZlbnRzID0gc3Vic2NyaWJlQ2FsbGJhY2soa2V5LCBFVkVOVF9SRVZBTElEQVRPUlMsIG9uUmV2YWxpZGF0ZSk7XG4gICAgICAgIC8vIE1hcmsgdGhlIGNvbXBvbmVudCBhcyBtb3VudGVkIGFuZCB1cGRhdGUgY29ycmVzcG9uZGluZyByZWZzLlxuICAgICAgICB1bm1vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICBrZXlSZWYuY3VycmVudCA9IGtleTtcbiAgICAgICAgaW5pdGlhbE1vdW50ZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIC8vIEtlZXAgdGhlIG9yaWdpbmFsIGtleSBpbiB0aGUgY2FjaGUuXG4gICAgICAgIHNldENhY2hlKHtcbiAgICAgICAgICAgIF9rOiBmbkFyZ1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gVHJpZ2dlciBhIHJldmFsaWRhdGlvblxuICAgICAgICBpZiAoc2hvdWxkRG9Jbml0aWFsUmV2YWxpZGF0aW9uKSB7XG4gICAgICAgICAgICBpZiAoaXNVbmRlZmluZWQoZGF0YSkgfHwgSVNfU0VSVkVSKSB7XG4gICAgICAgICAgICAgICAgLy8gUmV2YWxpZGF0ZSBpbW1lZGlhdGVseS5cbiAgICAgICAgICAgICAgICBzb2Z0UmV2YWxpZGF0ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBEZWxheSB0aGUgcmV2YWxpZGF0ZSBpZiB3ZSBoYXZlIGRhdGEgdG8gcmV0dXJuIHNvIHdlIHdvbid0IGJsb2NrXG4gICAgICAgICAgICAgICAgLy8gcmVuZGVyaW5nLlxuICAgICAgICAgICAgICAgIHJBRihzb2Z0UmV2YWxpZGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICAvLyBNYXJrIGl0IGFzIHVubW91bnRlZC5cbiAgICAgICAgICAgIHVubW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIHVuc3ViRXZlbnRzKCk7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBrZXlcbiAgICBdKTtcbiAgICAvLyBQb2xsaW5nXG4gICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKT0+e1xuICAgICAgICBsZXQgdGltZXI7XG4gICAgICAgIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICAgICAgICAvLyBVc2UgdGhlIHBhc3NlZCBpbnRlcnZhbFxuICAgICAgICAgICAgLy8gLi4ub3IgaW52b2tlIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSB1cGRhdGVkIGRhdGEgdG8gZ2V0IHRoZSBpbnRlcnZhbFxuICAgICAgICAgICAgY29uc3QgaW50ZXJ2YWwgPSBpc0Z1bmN0aW9uKHJlZnJlc2hJbnRlcnZhbCkgPyByZWZyZXNoSW50ZXJ2YWwoZ2V0Q2FjaGUoKS5kYXRhKSA6IHJlZnJlc2hJbnRlcnZhbDtcbiAgICAgICAgICAgIC8vIFdlIG9ubHkgc3RhcnQgdGhlIG5leHQgaW50ZXJ2YWwgaWYgYHJlZnJlc2hJbnRlcnZhbGAgaXMgbm90IDAsIGFuZDpcbiAgICAgICAgICAgIC8vIC0gYGZvcmNlYCBpcyB0cnVlLCB3aGljaCBpcyB0aGUgc3RhcnQgb2YgcG9sbGluZ1xuICAgICAgICAgICAgLy8gLSBvciBgdGltZXJgIGlzIG5vdCAwLCB3aGljaCBtZWFucyB0aGUgZWZmZWN0IHdhc24ndCBjYW5jZWxlZFxuICAgICAgICAgICAgaWYgKGludGVydmFsICYmIHRpbWVyICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRpbWVyID0gc2V0VGltZW91dChleGVjdXRlLCBpbnRlcnZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZXhlY3V0ZSgpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIGl0J3MgT0sgdG8gZXhlY3V0ZTpcbiAgICAgICAgICAgIC8vIE9ubHkgcmV2YWxpZGF0ZSB3aGVuIHRoZSBwYWdlIGlzIHZpc2libGUsIG9ubGluZSwgYW5kIG5vdCBlcnJvcmVkLlxuICAgICAgICAgICAgaWYgKCFnZXRDYWNoZSgpLmVycm9yICYmIChyZWZyZXNoV2hlbkhpZGRlbiB8fCBnZXRDb25maWcoKS5pc1Zpc2libGUoKSkgJiYgKHJlZnJlc2hXaGVuT2ZmbGluZSB8fCBnZXRDb25maWcoKS5pc09ubGluZSgpKSkge1xuICAgICAgICAgICAgICAgIHJldmFsaWRhdGUoV0lUSF9ERURVUEUpLnRoZW4obmV4dCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRoZSBuZXh0IGludGVydmFsIHRvIGNoZWNrIGFnYWluLlxuICAgICAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXh0KCk7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgaWYgKHRpbWVyKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgICAgICAgICB0aW1lciA9IC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgcmVmcmVzaEludGVydmFsLFxuICAgICAgICByZWZyZXNoV2hlbkhpZGRlbixcbiAgICAgICAgcmVmcmVzaFdoZW5PZmZsaW5lLFxuICAgICAgICBrZXlcbiAgICBdKTtcbiAgICAvLyBEaXNwbGF5IGRlYnVnIGluZm8gaW4gUmVhY3QgRGV2VG9vbHMuXG4gICAgdXNlRGVidWdWYWx1ZShyZXR1cm5lZERhdGEpO1xuICAgIC8vIEluIFN1c3BlbnNlIG1vZGUsIHdlIGNhbid0IHJldHVybiB0aGUgZW1wdHkgYGRhdGFgIHN0YXRlLlxuICAgIC8vIElmIHRoZXJlIGlzIGFuIGBlcnJvcmAsIHRoZSBgZXJyb3JgIG5lZWRzIHRvIGJlIHRocm93biB0byB0aGUgZXJyb3IgYm91bmRhcnkuXG4gICAgLy8gSWYgdGhlcmUgaXMgbm8gYGVycm9yYCwgdGhlIGByZXZhbGlkYXRpb25gIHByb21pc2UgbmVlZHMgdG8gYmUgdGhyb3duIHRvXG4gICAgLy8gdGhlIHN1c3BlbnNlIGJvdW5kYXJ5LlxuICAgIGlmIChzdXNwZW5zZSAmJiBpc1VuZGVmaW5lZChkYXRhKSAmJiBrZXkpIHtcbiAgICAgICAgLy8gU1dSIHNob3VsZCB0aHJvdyB3aGVuIHRyeWluZyB0byB1c2UgU3VzcGVuc2Ugb24gdGhlIHNlcnZlciB3aXRoIFJlYWN0IDE4LFxuICAgICAgICAvLyB3aXRob3V0IHByb3ZpZGluZyBhbnkgaW5pdGlhbCBkYXRhLiBTZWU6XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvc3dyL2lzc3Vlcy8xODMyXG4gICAgICAgIGlmICghSVNfUkVBQ1RfTEVHQUNZICYmIElTX1NFUlZFUikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWxsYmFjayBkYXRhIGlzIHJlcXVpcmVkIHdoZW4gdXNpbmcgc3VzcGVuc2UgaW4gU1NSLicpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEFsd2F5cyB1cGRhdGUgZmV0Y2hlciBhbmQgY29uZmlnIHJlZnMgZXZlbiB3aXRoIHRoZSBTdXNwZW5zZSBtb2RlLlxuICAgICAgICBmZXRjaGVyUmVmLmN1cnJlbnQgPSBmZXRjaGVyO1xuICAgICAgICBjb25maWdSZWYuY3VycmVudCA9IGNvbmZpZztcbiAgICAgICAgdW5tb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgcmVxID0gUFJFTE9BRFtrZXldO1xuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKHJlcSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBib3VuZE11dGF0ZShyZXEpO1xuICAgICAgICAgICAgdXNlKHByb21pc2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZChlcnJvcikpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSByZXZhbGlkYXRlKFdJVEhfREVEVVBFKTtcbiAgICAgICAgICAgIGlmICghaXNVbmRlZmluZWQocmV0dXJuZWREYXRhKSkge1xuICAgICAgICAgICAgICAgIHByb21pc2Uuc3RhdHVzID0gJ2Z1bGZpbGxlZCc7XG4gICAgICAgICAgICAgICAgcHJvbWlzZS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1c2UocHJvbWlzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBtdXRhdGU6IGJvdW5kTXV0YXRlLFxuICAgICAgICBnZXQgZGF0YSAoKSB7XG4gICAgICAgICAgICBzdGF0ZURlcGVuZGVuY2llcy5kYXRhID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiByZXR1cm5lZERhdGE7XG4gICAgICAgIH0sXG4gICAgICAgIGdldCBlcnJvciAoKSB7XG4gICAgICAgICAgICBzdGF0ZURlcGVuZGVuY2llcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH0sXG4gICAgICAgIGdldCBpc1ZhbGlkYXRpbmcgKCkge1xuICAgICAgICAgICAgc3RhdGVEZXBlbmRlbmNpZXMuaXNWYWxpZGF0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkYXRpbmc7XG4gICAgICAgIH0sXG4gICAgICAgIGdldCBpc0xvYWRpbmcgKCkge1xuICAgICAgICAgICAgc3RhdGVEZXBlbmRlbmNpZXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBpc0xvYWRpbmc7XG4gICAgICAgIH1cbiAgICB9O1xufTtcbmNvbnN0IFNXUkNvbmZpZyA9IE9CSkVDVC5kZWZpbmVQcm9wZXJ0eShTV1JDb25maWckMSwgJ2RlZmF1bHRWYWx1ZScsIHtcbiAgICB2YWx1ZTogZGVmYXVsdENvbmZpZ1xufSk7XG4vKipcbiAqIEEgaG9vayB0byBmZXRjaCBkYXRhLlxuICpcbiAqIEBsaW5rIGh0dHBzOi8vc3dyLnZlcmNlbC5hcHBcbiAqIEBleGFtcGxlXG4gKiBgYGBqc3hcbiAqIGltcG9ydCB1c2VTV1IgZnJvbSAnc3dyJ1xuICogZnVuY3Rpb24gUHJvZmlsZSgpIHtcbiAqICAgY29uc3QgeyBkYXRhLCBlcnJvciwgaXNMb2FkaW5nIH0gPSB1c2VTV1IoJy9hcGkvdXNlcicsIGZldGNoZXIpXG4gKiAgIGlmIChlcnJvcikgcmV0dXJuIDxkaXY+ZmFpbGVkIHRvIGxvYWQ8L2Rpdj5cbiAqICAgaWYgKGlzTG9hZGluZykgcmV0dXJuIDxkaXY+bG9hZGluZy4uLjwvZGl2PlxuICogICByZXR1cm4gPGRpdj5oZWxsbyB7ZGF0YS5uYW1lfSE8L2Rpdj5cbiAqIH1cbiAqIGBgYFxuICovIGNvbnN0IHVzZVNXUiA9IHdpdGhBcmdzKHVzZVNXUkhhbmRsZXIpO1xuXG5leHBvcnQgeyBTV1JDb25maWcsIHVzZVNXUiBhcyBkZWZhdWx0LCB1bnN0YWJsZV9zZXJpYWxpemUgfTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBcUI7QUFDNkQ7QUFDTDtBQUM0TztBQUMzUDs7QUFFOUQsa0NBQWtDLDJDQUFTOztBQUUzQztBQUNBLFlBQVksc0NBQWdCO0FBQzVCO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx5SkFBeUo7QUFDckssMkRBQTJELGdEQUFrQjtBQUM3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QiwyQ0FBUztBQUNsQztBQUNBLDhCQUE4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\n//# sourceURL=webpack-internal:///../../../node_modules/swr/dist/core/index.mjs\n\n}");
|
|
4569
|
-
|
|
4570
|
-
},
|
|
4571
|
-
"../../../node_modules/swr/dist/immutable/index.mjs"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
4572
|
-
"use strict";
|
|
4573
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n \"default\": () => (useSWRImmutable),\n immutable: () => (immutable)\n});\n/* import */ var client_only__rspack_import_0 = __webpack_require__(\"../../../node_modules/client-only/index.js\");\n/* import */ var react__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_1);\n/* import */ var use_sync_external_store_shim_index_js__rspack_import_2 = __webpack_require__(\"../../../node_modules/use-sync-external-store/shim/index.js\");\n/* import */ var swr_internal__rspack_import_3 = __webpack_require__(\"webpack/sharing/consume/default/swr/_internal/swr/_internal\");\n/* import */ var swr_internal__rspack_import_3_default = /*#__PURE__*/__webpack_require__.n(swr_internal__rspack_import_3);\n\n\n\n\n\n/// <reference types=\"react/experimental\" />\nconst use = (react__rspack_import_1_default().use) || ((promise)=>{\n if (promise.status === 'pending') {\n throw promise;\n } else if (promise.status === 'fulfilled') {\n return promise.value;\n } else if (promise.status === 'rejected') {\n throw promise.reason;\n } else {\n promise.status = 'pending';\n promise.then((v)=>{\n promise.status = 'fulfilled';\n promise.value = v;\n }, (e)=>{\n promise.status = 'rejected';\n promise.reason = e;\n });\n throw promise;\n }\n});\nconst WITH_DEDUPE = {\n dedupe: true\n};\nconst useSWRHandler = (_key, fetcher, config)=>{\n const { cache, compare, suspense, fallbackData, revalidateOnMount, revalidateIfStale, refreshInterval, refreshWhenHidden, refreshWhenOffline, keepPreviousData } = config;\n const [EVENT_REVALIDATORS, MUTATION, FETCH, PRELOAD] = swr_internal__rspack_import_3.SWRGlobalState.get(cache);\n // `key` is the identifier of the SWR internal state,\n // `fnArg` is the argument/arguments parsed from the key, which will be passed\n // to the fetcher.\n // All of them are derived from `_key`.\n const [key, fnArg] = (0,swr_internal__rspack_import_3.serialize)(_key);\n // If it's the initial render of this hook.\n const initialMountedRef = (0,react__rspack_import_1.useRef)(false);\n // If the hook is unmounted already. This will be used to prevent some effects\n // to be called after unmounting.\n const unmountedRef = (0,react__rspack_import_1.useRef)(false);\n // Refs to keep the key and config.\n const keyRef = (0,react__rspack_import_1.useRef)(key);\n const fetcherRef = (0,react__rspack_import_1.useRef)(fetcher);\n const configRef = (0,react__rspack_import_1.useRef)(config);\n const getConfig = ()=>configRef.current;\n const isActive = ()=>getConfig().isVisible() && getConfig().isOnline();\n const [getCache, setCache, subscribeCache, getInitialCache] = (0,swr_internal__rspack_import_3.createCacheHelper)(cache, key);\n const stateDependencies = (0,react__rspack_import_1.useRef)({}).current;\n const fallback = (0,swr_internal__rspack_import_3.isUndefined)(fallbackData) ? config.fallback[key] : fallbackData;\n const isEqual = (prev, current)=>{\n for(const _ in stateDependencies){\n const t = _;\n if (t === 'data') {\n if (!compare(prev[t], current[t])) {\n if (!(0,swr_internal__rspack_import_3.isUndefined)(prev[t])) {\n return false;\n }\n if (!compare(returnedData, current[t])) {\n return false;\n }\n }\n } else {\n if (current[t] !== prev[t]) {\n return false;\n }\n }\n }\n return true;\n };\n const getSnapshot = (0,react__rspack_import_1.useMemo)(()=>{\n const shouldStartRequest = (()=>{\n if (!key) return false;\n if (!fetcher) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (!(0,swr_internal__rspack_import_3.isUndefined)(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n if (suspense) return false;\n if (!(0,swr_internal__rspack_import_3.isUndefined)(revalidateIfStale)) return revalidateIfStale;\n return true;\n })();\n // Get the cache and merge it with expected states.\n const getSelectedCache = (state)=>{\n // We only select the needed fields from the state.\n const snapshot = (0,swr_internal__rspack_import_3.mergeObjects)(state);\n delete snapshot._k;\n if (!shouldStartRequest) {\n return snapshot;\n }\n return {\n isValidating: true,\n isLoading: true,\n ...snapshot\n };\n };\n const cachedData = getCache();\n const initialData = getInitialCache();\n const clientSnapshot = getSelectedCache(cachedData);\n const serverSnapshot = cachedData === initialData ? clientSnapshot : getSelectedCache(initialData);\n // To make sure that we are returning the same object reference to avoid\n // unnecessary re-renders, we keep the previous snapshot and use deep\n // comparison to check if we need to return a new one.\n let memorizedSnapshot = clientSnapshot;\n return [\n ()=>{\n const newSnapshot = getSelectedCache(getCache());\n const compareResult = isEqual(newSnapshot, memorizedSnapshot);\n if (compareResult) {\n // Mentally, we should always return the `memorizedSnapshot` here\n // as there's no change between the new and old snapshots.\n // However, since the `isEqual` function only compares selected fields,\n // the values of the unselected fields might be changed. That's\n // simply because we didn't track them.\n // To support the case in https://github.com/vercel/swr/pull/2576,\n // we need to update these fields in the `memorizedSnapshot` too\n // with direct mutations to ensure the snapshot is always up-to-date\n // even for the unselected fields, but only trigger re-renders when\n // the selected fields are changed.\n memorizedSnapshot.data = newSnapshot.data;\n memorizedSnapshot.isLoading = newSnapshot.isLoading;\n memorizedSnapshot.isValidating = newSnapshot.isValidating;\n memorizedSnapshot.error = newSnapshot.error;\n return memorizedSnapshot;\n } else {\n memorizedSnapshot = newSnapshot;\n return newSnapshot;\n }\n },\n ()=>serverSnapshot\n ];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n cache,\n key\n ]);\n // Get the current state that SWR should return.\n const cached = (0,use_sync_external_store_shim_index_js__rspack_import_2.useSyncExternalStore)((0,react__rspack_import_1.useCallback)((callback)=>subscribeCache(key, (current, prev)=>{\n if (!isEqual(prev, current)) callback();\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n cache,\n key\n ]), getSnapshot[0], getSnapshot[1]);\n const isInitialMount = !initialMountedRef.current;\n const hasRevalidator = EVENT_REVALIDATORS[key] && EVENT_REVALIDATORS[key].length > 0;\n const cachedData = cached.data;\n const data = (0,swr_internal__rspack_import_3.isUndefined)(cachedData) ? fallback : cachedData;\n const error = cached.error;\n // Use a ref to store previously returned data. Use the initial data as its initial value.\n const laggyDataRef = (0,react__rspack_import_1.useRef)(data);\n const returnedData = keepPreviousData ? (0,swr_internal__rspack_import_3.isUndefined)(cachedData) ? laggyDataRef.current : cachedData : data;\n // - Suspense mode and there's stale data for the initial render.\n // - Not suspense mode and there is no fallback data and `revalidateIfStale` is enabled.\n // - `revalidateIfStale` is enabled but `data` is not defined.\n const shouldDoInitialRevalidation = (()=>{\n // if a key already has revalidators and also has error, we should not trigger revalidation\n if (hasRevalidator && !(0,swr_internal__rspack_import_3.isUndefined)(error)) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (isInitialMount && !(0,swr_internal__rspack_import_3.isUndefined)(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n // Under suspense mode, it will always fetch on render if there is no\n // stale data so no need to revalidate immediately mount it again.\n // If data exists, only revalidate if `revalidateIfStale` is true.\n if (suspense) return (0,swr_internal__rspack_import_3.isUndefined)(data) ? false : revalidateIfStale;\n // If there is no stale data, we need to revalidate when mount;\n // If `revalidateIfStale` is set to true, we will always revalidate.\n return (0,swr_internal__rspack_import_3.isUndefined)(data) || revalidateIfStale;\n })();\n // Resolve the default validating state:\n // If it's able to validate, and it should revalidate when mount, this will be true.\n const defaultValidatingState = !!(key && fetcher && isInitialMount && shouldDoInitialRevalidation);\n const isValidating = (0,swr_internal__rspack_import_3.isUndefined)(cached.isValidating) ? defaultValidatingState : cached.isValidating;\n const isLoading = (0,swr_internal__rspack_import_3.isUndefined)(cached.isLoading) ? defaultValidatingState : cached.isLoading;\n // The revalidation function is a carefully crafted wrapper of the original\n // `fetcher`, to correctly handle the many edge cases.\n const revalidate = (0,react__rspack_import_1.useCallback)(async (revalidateOpts)=>{\n const currentFetcher = fetcherRef.current;\n if (!key || !currentFetcher || unmountedRef.current || getConfig().isPaused()) {\n return false;\n }\n let newData;\n let startAt;\n let loading = true;\n const opts = revalidateOpts || {};\n // If there is no ongoing concurrent request, or `dedupe` is not set, a\n // new request should be initiated.\n const shouldStartNewRequest = !FETCH[key] || !opts.dedupe;\n /*\n For React 17\n Do unmount check for calls:\n If key has changed during the revalidation, or the component has been\n unmounted, old dispatch and old event callbacks should not take any\n effect\n\n For React 18\n only check if key has changed\n https://github.com/reactwg/react-18/discussions/82\n */ const callbackSafeguard = ()=>{\n if (swr_internal__rspack_import_3.IS_REACT_LEGACY) {\n return !unmountedRef.current && key === keyRef.current && initialMountedRef.current;\n }\n return key === keyRef.current;\n };\n // The final state object when the request finishes.\n const finalState = {\n isValidating: false,\n isLoading: false\n };\n const finishRequestAndUpdateState = ()=>{\n setCache(finalState);\n };\n const cleanupState = ()=>{\n // Check if it's still the same request before deleting it.\n const requestInfo = FETCH[key];\n if (requestInfo && requestInfo[1] === startAt) {\n delete FETCH[key];\n }\n };\n // Start fetching. Change the `isValidating` state, update the cache.\n const initialState = {\n isValidating: true\n };\n // It is in the `isLoading` state, if and only if there is no cached data.\n // This bypasses fallback data and laggy data.\n if ((0,swr_internal__rspack_import_3.isUndefined)(getCache().data)) {\n initialState.isLoading = true;\n }\n try {\n if (shouldStartNewRequest) {\n setCache(initialState);\n // If no cache is being rendered currently (it shows a blank page),\n // we trigger the loading slow event.\n if (config.loadingTimeout && (0,swr_internal__rspack_import_3.isUndefined)(getCache().data)) {\n setTimeout(()=>{\n if (loading && callbackSafeguard()) {\n getConfig().onLoadingSlow(key, config);\n }\n }, config.loadingTimeout);\n }\n // Start the request and save the timestamp.\n // Key must be truthy if entering here.\n FETCH[key] = [\n currentFetcher(fnArg),\n (0,swr_internal__rspack_import_3.getTimestamp)()\n ];\n }\n [newData, startAt] = FETCH[key];\n newData = await newData;\n if (shouldStartNewRequest) {\n // If the request isn't interrupted, clean it up after the\n // deduplication interval.\n setTimeout(cleanupState, config.dedupingInterval);\n }\n // If there're other ongoing request(s), started after the current one,\n // we need to ignore the current one to avoid possible race conditions:\n // req1------------------>res1 (current one)\n // req2---------------->res2\n // the request that fired later will always be kept.\n // The timestamp maybe be `undefined` or a number\n if (!FETCH[key] || FETCH[key][1] !== startAt) {\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Clear error.\n finalState.error = swr_internal__rspack_import_3.UNDEFINED;\n // If there're other mutations(s), that overlapped with the current revalidation:\n // case 1:\n // req------------------>res\n // mutate------>end\n // case 2:\n // req------------>res\n // mutate------>end\n // case 3:\n // req------------------>res\n // mutate-------...---------->\n // we have to ignore the revalidation result (res) because it's no longer fresh.\n // meanwhile, a new revalidation should be triggered when the mutation ends.\n const mutationInfo = MUTATION[key];\n if (!(0,swr_internal__rspack_import_3.isUndefined)(mutationInfo) && // case 1\n (startAt <= mutationInfo[0] || // case 2\n startAt <= mutationInfo[1] || // case 3\n mutationInfo[1] === 0)) {\n finishRequestAndUpdateState();\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Deep compare with the latest state to avoid extra re-renders.\n // For local state, compare and assign.\n const cacheData = getCache().data;\n // Since the compare fn could be custom fn\n // cacheData might be different from newData even when compare fn returns True\n finalState.data = compare(cacheData, newData) ? cacheData : newData;\n // Trigger the successful callback if it's the original request.\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onSuccess(newData, key, config);\n }\n }\n } catch (err) {\n cleanupState();\n const currentConfig = getConfig();\n const { shouldRetryOnError } = currentConfig;\n // Not paused, we continue handling the error. Otherwise, discard it.\n if (!currentConfig.isPaused()) {\n // Get a new error, don't use deep comparison for errors.\n finalState.error = err;\n // Error event and retry logic. Only for the actual request, not\n // deduped ones.\n if (shouldStartNewRequest && callbackSafeguard()) {\n currentConfig.onError(err, key, currentConfig);\n if (shouldRetryOnError === true || (0,swr_internal__rspack_import_3.isFunction)(shouldRetryOnError) && shouldRetryOnError(err)) {\n if (!getConfig().revalidateOnFocus || !getConfig().revalidateOnReconnect || isActive()) {\n // If it's inactive, stop. It will auto-revalidate when\n // refocusing or reconnecting.\n // When retrying, deduplication is always enabled.\n currentConfig.onErrorRetry(err, key, currentConfig, (_opts)=>{\n const revalidators = EVENT_REVALIDATORS[key];\n if (revalidators && revalidators[0]) {\n revalidators[0](swr_internal__rspack_import_3.revalidateEvents.ERROR_REVALIDATE_EVENT, _opts);\n }\n }, {\n retryCount: (opts.retryCount || 0) + 1,\n dedupe: true\n });\n }\n }\n }\n }\n }\n // Mark loading as stopped.\n loading = false;\n // Update the current hook's state.\n finishRequestAndUpdateState();\n return true;\n }, // `setState` is immutable, and `eventsCallback`, `fnArg`, and\n // `keyValidating` are depending on `key`, so we can exclude them from\n // the deps array.\n //\n // FIXME:\n // `fn` and `config` might be changed during the lifecycle,\n // but they might be changed every render like this.\n // `useSWR('key', () => fetch('/api/'), { suspense: true })`\n // So we omit the values from the deps array\n // even though it might cause unexpected behaviors.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n key,\n cache\n ]);\n // Similar to the global mutate but bound to the current cache and key.\n // `cache` isn't allowed to change during the lifecycle.\n const boundMutate = (0,react__rspack_import_1.useCallback)(// Use callback to make sure `keyRef.current` returns latest result every time\n (...args)=>{\n return (0,swr_internal__rspack_import_3.internalMutate)(cache, keyRef.current, ...args);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // The logic for updating refs.\n (0,swr_internal__rspack_import_3.useIsomorphicLayoutEffect)(()=>{\n fetcherRef.current = fetcher;\n configRef.current = config;\n // Handle laggy data updates. If there's cached data of the current key,\n // it'll be the correct reference.\n if (!(0,swr_internal__rspack_import_3.isUndefined)(cachedData)) {\n laggyDataRef.current = cachedData;\n }\n });\n // After mounted or key changed.\n (0,swr_internal__rspack_import_3.useIsomorphicLayoutEffect)(()=>{\n if (!key) return;\n const softRevalidate = revalidate.bind(swr_internal__rspack_import_3.UNDEFINED, WITH_DEDUPE);\n // Expose revalidators to global event listeners. So we can trigger\n // revalidation from the outside.\n let nextFocusRevalidatedAt = 0;\n const onRevalidate = (type, opts = {})=>{\n if (type == swr_internal__rspack_import_3.revalidateEvents.FOCUS_EVENT) {\n const now = Date.now();\n if (getConfig().revalidateOnFocus && now > nextFocusRevalidatedAt && isActive()) {\n nextFocusRevalidatedAt = now + getConfig().focusThrottleInterval;\n softRevalidate();\n }\n } else if (type == swr_internal__rspack_import_3.revalidateEvents.RECONNECT_EVENT) {\n if (getConfig().revalidateOnReconnect && isActive()) {\n softRevalidate();\n }\n } else if (type == swr_internal__rspack_import_3.revalidateEvents.MUTATE_EVENT) {\n return revalidate();\n } else if (type == swr_internal__rspack_import_3.revalidateEvents.ERROR_REVALIDATE_EVENT) {\n return revalidate(opts);\n }\n return;\n };\n const unsubEvents = (0,swr_internal__rspack_import_3.subscribeCallback)(key, EVENT_REVALIDATORS, onRevalidate);\n // Mark the component as mounted and update corresponding refs.\n unmountedRef.current = false;\n keyRef.current = key;\n initialMountedRef.current = true;\n // Keep the original key in the cache.\n setCache({\n _k: fnArg\n });\n // Trigger a revalidation\n if (shouldDoInitialRevalidation) {\n if ((0,swr_internal__rspack_import_3.isUndefined)(data) || swr_internal__rspack_import_3.IS_SERVER) {\n // Revalidate immediately.\n softRevalidate();\n } else {\n // Delay the revalidate if we have data to return so we won't block\n // rendering.\n (0,swr_internal__rspack_import_3.rAF)(softRevalidate);\n }\n }\n return ()=>{\n // Mark it as unmounted.\n unmountedRef.current = true;\n unsubEvents();\n };\n }, [\n key\n ]);\n // Polling\n (0,swr_internal__rspack_import_3.useIsomorphicLayoutEffect)(()=>{\n let timer;\n function next() {\n // Use the passed interval\n // ...or invoke the function with the updated data to get the interval\n const interval = (0,swr_internal__rspack_import_3.isFunction)(refreshInterval) ? refreshInterval(getCache().data) : refreshInterval;\n // We only start the next interval if `refreshInterval` is not 0, and:\n // - `force` is true, which is the start of polling\n // - or `timer` is not 0, which means the effect wasn't canceled\n if (interval && timer !== -1) {\n timer = setTimeout(execute, interval);\n }\n }\n function execute() {\n // Check if it's OK to execute:\n // Only revalidate when the page is visible, online, and not errored.\n if (!getCache().error && (refreshWhenHidden || getConfig().isVisible()) && (refreshWhenOffline || getConfig().isOnline())) {\n revalidate(WITH_DEDUPE).then(next);\n } else {\n // Schedule the next interval to check again.\n next();\n }\n }\n next();\n return ()=>{\n if (timer) {\n clearTimeout(timer);\n timer = -1;\n }\n };\n }, [\n refreshInterval,\n refreshWhenHidden,\n refreshWhenOffline,\n key\n ]);\n // Display debug info in React DevTools.\n (0,react__rspack_import_1.useDebugValue)(returnedData);\n // In Suspense mode, we can't return the empty `data` state.\n // If there is an `error`, the `error` needs to be thrown to the error boundary.\n // If there is no `error`, the `revalidation` promise needs to be thrown to\n // the suspense boundary.\n if (suspense && (0,swr_internal__rspack_import_3.isUndefined)(data) && key) {\n // SWR should throw when trying to use Suspense on the server with React 18,\n // without providing any initial data. See:\n // https://github.com/vercel/swr/issues/1832\n if (!swr_internal__rspack_import_3.IS_REACT_LEGACY && swr_internal__rspack_import_3.IS_SERVER) {\n throw new Error('Fallback data is required when using suspense in SSR.');\n }\n // Always update fetcher and config refs even with the Suspense mode.\n fetcherRef.current = fetcher;\n configRef.current = config;\n unmountedRef.current = false;\n const req = PRELOAD[key];\n if (!(0,swr_internal__rspack_import_3.isUndefined)(req)) {\n const promise = boundMutate(req);\n use(promise);\n }\n if ((0,swr_internal__rspack_import_3.isUndefined)(error)) {\n const promise = revalidate(WITH_DEDUPE);\n if (!(0,swr_internal__rspack_import_3.isUndefined)(returnedData)) {\n promise.status = 'fulfilled';\n promise.value = true;\n }\n use(promise);\n } else {\n throw error;\n }\n }\n return {\n mutate: boundMutate,\n get data () {\n stateDependencies.data = true;\n return returnedData;\n },\n get error () {\n stateDependencies.error = true;\n return error;\n },\n get isValidating () {\n stateDependencies.isValidating = true;\n return isValidating;\n },\n get isLoading () {\n stateDependencies.isLoading = true;\n return isLoading;\n }\n };\n};\nswr_internal__rspack_import_3.OBJECT.defineProperty(swr_internal__rspack_import_3.SWRConfig, 'defaultValue', {\n value: swr_internal__rspack_import_3.defaultConfig\n});\n/**\n * A hook to fetch data.\n *\n * @link https://swr.vercel.app\n * @example\n * ```jsx\n * import useSWR from 'swr'\n * function Profile() {\n * const { data, error, isLoading } = useSWR('/api/user', fetcher)\n * if (error) return <div>failed to load</div>\n * if (isLoading) return <div>loading...</div>\n * return <div>hello {data.name}!</div>\n * }\n * ```\n */ const useSWR = (0,swr_internal__rspack_import_3.withArgs)(useSWRHandler);\n\nconst immutable = (useSWRNext)=>(key, fetcher, config)=>{\n // Always override all revalidate options.\n config.revalidateOnFocus = false;\n config.revalidateIfStale = false;\n config.revalidateOnReconnect = false;\n return useSWRNext(key, fetcher, config);\n };\nconst useSWRImmutable = (0,swr_internal__rspack_import_3.withMiddleware)(useSWR, immutable);\n\n\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218L2hvbWUvcnVubmVyL3dvcmsvb3Blbm1ycy1lc20tY29yZS9vcGVubXJzLWVzbS1jb3JlL25vZGVfbW9kdWxlcy9zd3IvZGlzdC9pbW11dGFibGUvaW5kZXgubWpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3dyL2Rpc3QvaW1tdXRhYmxlL2luZGV4Lm1qcz9lMWZiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnY2xpZW50LW9ubHknO1xuaW1wb3J0IFJlYWN0RXhwb3J0cywgeyB1c2VSZWYsIHVzZU1lbW8sIHVzZUNhbGxiYWNrLCB1c2VEZWJ1Z1ZhbHVlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlU3luY0V4dGVybmFsU3RvcmUgfSBmcm9tICd1c2Utc3luYy1leHRlcm5hbC1zdG9yZS9zaGltL2luZGV4LmpzJztcbmltcG9ydCB7IE9CSkVDVCwgU1dSQ29uZmlnLCBkZWZhdWx0Q29uZmlnLCB3aXRoQXJncywgU1dSR2xvYmFsU3RhdGUsIHNlcmlhbGl6ZSwgY3JlYXRlQ2FjaGVIZWxwZXIsIGlzVW5kZWZpbmVkLCBnZXRUaW1lc3RhbXAsIFVOREVGSU5FRCwgaXNGdW5jdGlvbiwgcmV2YWxpZGF0ZUV2ZW50cywgaW50ZXJuYWxNdXRhdGUsIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QsIHN1YnNjcmliZUNhbGxiYWNrLCBJU19TRVJWRVIsIHJBRiwgSVNfUkVBQ1RfTEVHQUNZLCBtZXJnZU9iamVjdHMsIHdpdGhNaWRkbGV3YXJlIH0gZnJvbSAnc3dyL19pbnRlcm5hbCc7XG5cbi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwicmVhY3QvZXhwZXJpbWVudGFsXCIgLz5cbmNvbnN0IHVzZSA9IFJlYWN0RXhwb3J0cy51c2UgfHwgKChwcm9taXNlKT0+e1xuICAgIGlmIChwcm9taXNlLnN0YXR1cyA9PT0gJ3BlbmRpbmcnKSB7XG4gICAgICAgIHRocm93IHByb21pc2U7XG4gICAgfSBlbHNlIGlmIChwcm9taXNlLnN0YXR1cyA9PT0gJ2Z1bGZpbGxlZCcpIHtcbiAgICAgICAgcmV0dXJuIHByb21pc2UudmFsdWU7XG4gICAgfSBlbHNlIGlmIChwcm9taXNlLnN0YXR1cyA9PT0gJ3JlamVjdGVkJykge1xuICAgICAgICB0aHJvdyBwcm9taXNlLnJlYXNvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgICBwcm9taXNlLnN0YXR1cyA9ICdwZW5kaW5nJztcbiAgICAgICAgcHJvbWlzZS50aGVuKCh2KT0+e1xuICAgICAgICAgICAgcHJvbWlzZS5zdGF0dXMgPSAnZnVsZmlsbGVkJztcbiAgICAgICAgICAgIHByb21pc2UudmFsdWUgPSB2O1xuICAgICAgICB9LCAoZSk9PntcbiAgICAgICAgICAgIHByb21pc2Uuc3RhdHVzID0gJ3JlamVjdGVkJztcbiAgICAgICAgICAgIHByb21pc2UucmVhc29uID0gZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRocm93IHByb21pc2U7XG4gICAgfVxufSk7XG5jb25zdCBXSVRIX0RFRFVQRSA9IHtcbiAgICBkZWR1cGU6IHRydWVcbn07XG5jb25zdCB1c2VTV1JIYW5kbGVyID0gKF9rZXksIGZldGNoZXIsIGNvbmZpZyk9PntcbiAgICBjb25zdCB7IGNhY2hlLCBjb21wYXJlLCBzdXNwZW5zZSwgZmFsbGJhY2tEYXRhLCByZXZhbGlkYXRlT25Nb3VudCwgcmV2YWxpZGF0ZUlmU3RhbGUsIHJlZnJlc2hJbnRlcnZhbCwgcmVmcmVzaFdoZW5IaWRkZW4sIHJlZnJlc2hXaGVuT2ZmbGluZSwga2VlcFByZXZpb3VzRGF0YSB9ID0gY29uZmlnO1xuICAgIGNvbnN0IFtFVkVOVF9SRVZBTElEQVRPUlMsIE1VVEFUSU9OLCBGRVRDSCwgUFJFTE9BRF0gPSBTV1JHbG9iYWxTdGF0ZS5nZXQoY2FjaGUpO1xuICAgIC8vIGBrZXlgIGlzIHRoZSBpZGVudGlmaWVyIG9mIHRoZSBTV1IgaW50ZXJuYWwgc3RhdGUsXG4gICAgLy8gYGZuQXJnYCBpcyB0aGUgYXJndW1lbnQvYXJndW1lbnRzIHBhcnNlZCBmcm9tIHRoZSBrZXksIHdoaWNoIHdpbGwgYmUgcGFzc2VkXG4gICAgLy8gdG8gdGhlIGZldGNoZXIuXG4gICAgLy8gQWxsIG9mIHRoZW0gYXJlIGRlcml2ZWQgZnJvbSBgX2tleWAuXG4gICAgY29uc3QgW2tleSwgZm5BcmddID0gc2VyaWFsaXplKF9rZXkpO1xuICAgIC8vIElmIGl0J3MgdGhlIGluaXRpYWwgcmVuZGVyIG9mIHRoaXMgaG9vay5cbiAgICBjb25zdCBpbml0aWFsTW91bnRlZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgLy8gSWYgdGhlIGhvb2sgaXMgdW5tb3VudGVkIGFscmVhZHkuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIHByZXZlbnQgc29tZSBlZmZlY3RzXG4gICAgLy8gdG8gYmUgY2FsbGVkIGFmdGVyIHVubW91bnRpbmcuXG4gICAgY29uc3QgdW5tb3VudGVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICAvLyBSZWZzIHRvIGtlZXAgdGhlIGtleSBhbmQgY29uZmlnLlxuICAgIGNvbnN0IGtleVJlZiA9IHVzZVJlZihrZXkpO1xuICAgIGNvbnN0IGZldGNoZXJSZWYgPSB1c2VSZWYoZmV0Y2hlcik7XG4gICAgY29uc3QgY29uZmlnUmVmID0gdXNlUmVmKGNvbmZpZyk7XG4gICAgY29uc3QgZ2V0Q29uZmlnID0gKCk9PmNvbmZpZ1JlZi5jdXJyZW50O1xuICAgIGNvbnN0IGlzQWN0aXZlID0gKCk9PmdldENvbmZpZygpLmlzVmlzaWJsZSgpICYmIGdldENvbmZpZygpLmlzT25saW5lKCk7XG4gICAgY29uc3QgW2dldENhY2hlLCBzZXRDYWNoZSwgc3Vic2NyaWJlQ2FjaGUsIGdldEluaXRpYWxDYWNoZV0gPSBjcmVhdGVDYWNoZUhlbHBlcihjYWNoZSwga2V5KTtcbiAgICBjb25zdCBzdGF0ZURlcGVuZGVuY2llcyA9IHVzZVJlZih7fSkuY3VycmVudDtcbiAgICBjb25zdCBmYWxsYmFjayA9IGlzVW5kZWZpbmVkKGZhbGxiYWNrRGF0YSkgPyBjb25maWcuZmFsbGJhY2tba2V5XSA6IGZhbGxiYWNrRGF0YTtcbiAgICBjb25zdCBpc0VxdWFsID0gKHByZXYsIGN1cnJlbnQpPT57XG4gICAgICAgIGZvcihjb25zdCBfIGluIHN0YXRlRGVwZW5kZW5jaWVzKXtcbiAgICAgICAgICAgIGNvbnN0IHQgPSBfO1xuICAgICAgICAgICAgaWYgKHQgPT09ICdkYXRhJykge1xuICAgICAgICAgICAgICAgIGlmICghY29tcGFyZShwcmV2W3RdLCBjdXJyZW50W3RdKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKHByZXZbdF0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb21wYXJlKHJldHVybmVkRGF0YSwgY3VycmVudFt0XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRbdF0gIT09IHByZXZbdF0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldFNuYXBzaG90ID0gdXNlTWVtbygoKT0+e1xuICAgICAgICBjb25zdCBzaG91bGRTdGFydFJlcXVlc3QgPSAoKCk9PntcbiAgICAgICAgICAgIGlmICgha2V5KSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBpZiAoIWZldGNoZXIpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIC8vIElmIGByZXZhbGlkYXRlT25Nb3VudGAgaXMgc2V0LCB3ZSB0YWtlIHRoZSB2YWx1ZSBkaXJlY3RseS5cbiAgICAgICAgICAgIGlmICghaXNVbmRlZmluZWQocmV2YWxpZGF0ZU9uTW91bnQpKSByZXR1cm4gcmV2YWxpZGF0ZU9uTW91bnQ7XG4gICAgICAgICAgICAvLyBJZiBpdCdzIHBhdXNlZCwgd2Ugc2tpcCByZXZhbGlkYXRpb24uXG4gICAgICAgICAgICBpZiAoZ2V0Q29uZmlnKCkuaXNQYXVzZWQoKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgaWYgKHN1c3BlbnNlKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKHJldmFsaWRhdGVJZlN0YWxlKSkgcmV0dXJuIHJldmFsaWRhdGVJZlN0YWxlO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pKCk7XG4gICAgICAgIC8vIEdldCB0aGUgY2FjaGUgYW5kIG1lcmdlIGl0IHdpdGggZXhwZWN0ZWQgc3RhdGVzLlxuICAgICAgICBjb25zdCBnZXRTZWxlY3RlZENhY2hlID0gKHN0YXRlKT0+e1xuICAgICAgICAgICAgLy8gV2Ugb25seSBzZWxlY3QgdGhlIG5lZWRlZCBmaWVsZHMgZnJvbSB0aGUgc3RhdGUuXG4gICAgICAgICAgICBjb25zdCBzbmFwc2hvdCA9IG1lcmdlT2JqZWN0cyhzdGF0ZSk7XG4gICAgICAgICAgICBkZWxldGUgc25hcHNob3QuX2s7XG4gICAgICAgICAgICBpZiAoIXNob3VsZFN0YXJ0UmVxdWVzdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzbmFwc2hvdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaXNWYWxpZGF0aW5nOiB0cnVlLFxuICAgICAgICAgICAgICAgIGlzTG9hZGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAuLi5zbmFwc2hvdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgY2FjaGVkRGF0YSA9IGdldENhY2hlKCk7XG4gICAgICAgIGNvbnN0IGluaXRpYWxEYXRhID0gZ2V0SW5pdGlhbENhY2hlKCk7XG4gICAgICAgIGNvbnN0IGNsaWVudFNuYXBzaG90ID0gZ2V0U2VsZWN0ZWRDYWNoZShjYWNoZWREYXRhKTtcbiAgICAgICAgY29uc3Qgc2VydmVyU25hcHNob3QgPSBjYWNoZWREYXRhID09PSBpbml0aWFsRGF0YSA/IGNsaWVudFNuYXBzaG90IDogZ2V0U2VsZWN0ZWRDYWNoZShpbml0aWFsRGF0YSk7XG4gICAgICAgIC8vIFRvIG1ha2Ugc3VyZSB0aGF0IHdlIGFyZSByZXR1cm5pbmcgdGhlIHNhbWUgb2JqZWN0IHJlZmVyZW5jZSB0byBhdm9pZFxuICAgICAgICAvLyB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzLCB3ZSBrZWVwIHRoZSBwcmV2aW91cyBzbmFwc2hvdCBhbmQgdXNlIGRlZXBcbiAgICAgICAgLy8gY29tcGFyaXNvbiB0byBjaGVjayBpZiB3ZSBuZWVkIHRvIHJldHVybiBhIG5ldyBvbmUuXG4gICAgICAgIGxldCBtZW1vcml6ZWRTbmFwc2hvdCA9IGNsaWVudFNuYXBzaG90O1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgKCk9PntcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdTbmFwc2hvdCA9IGdldFNlbGVjdGVkQ2FjaGUoZ2V0Q2FjaGUoKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tcGFyZVJlc3VsdCA9IGlzRXF1YWwobmV3U25hcHNob3QsIG1lbW9yaXplZFNuYXBzaG90KTtcbiAgICAgICAgICAgICAgICBpZiAoY29tcGFyZVJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBNZW50YWxseSwgd2Ugc2hvdWxkIGFsd2F5cyByZXR1cm4gdGhlIGBtZW1vcml6ZWRTbmFwc2hvdGAgaGVyZVxuICAgICAgICAgICAgICAgICAgICAvLyBhcyB0aGVyZSdzIG5vIGNoYW5nZSBiZXR3ZWVuIHRoZSBuZXcgYW5kIG9sZCBzbmFwc2hvdHMuXG4gICAgICAgICAgICAgICAgICAgIC8vIEhvd2V2ZXIsIHNpbmNlIHRoZSBgaXNFcXVhbGAgZnVuY3Rpb24gb25seSBjb21wYXJlcyBzZWxlY3RlZCBmaWVsZHMsXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSB2YWx1ZXMgb2YgdGhlIHVuc2VsZWN0ZWQgZmllbGRzIG1pZ2h0IGJlIGNoYW5nZWQuIFRoYXQnc1xuICAgICAgICAgICAgICAgICAgICAvLyBzaW1wbHkgYmVjYXVzZSB3ZSBkaWRuJ3QgdHJhY2sgdGhlbS5cbiAgICAgICAgICAgICAgICAgICAgLy8gVG8gc3VwcG9ydCB0aGUgY2FzZSBpbiBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL3N3ci9wdWxsLzI1NzYsXG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gdXBkYXRlIHRoZXNlIGZpZWxkcyBpbiB0aGUgYG1lbW9yaXplZFNuYXBzaG90YCB0b29cbiAgICAgICAgICAgICAgICAgICAgLy8gd2l0aCBkaXJlY3QgbXV0YXRpb25zIHRvIGVuc3VyZSB0aGUgc25hcHNob3QgaXMgYWx3YXlzIHVwLXRvLWRhdGVcbiAgICAgICAgICAgICAgICAgICAgLy8gZXZlbiBmb3IgdGhlIHVuc2VsZWN0ZWQgZmllbGRzLCBidXQgb25seSB0cmlnZ2VyIHJlLXJlbmRlcnMgd2hlblxuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc2VsZWN0ZWQgZmllbGRzIGFyZSBjaGFuZ2VkLlxuICAgICAgICAgICAgICAgICAgICBtZW1vcml6ZWRTbmFwc2hvdC5kYXRhID0gbmV3U25hcHNob3QuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgbWVtb3JpemVkU25hcHNob3QuaXNMb2FkaW5nID0gbmV3U25hcHNob3QuaXNMb2FkaW5nO1xuICAgICAgICAgICAgICAgICAgICBtZW1vcml6ZWRTbmFwc2hvdC5pc1ZhbGlkYXRpbmcgPSBuZXdTbmFwc2hvdC5pc1ZhbGlkYXRpbmc7XG4gICAgICAgICAgICAgICAgICAgIG1lbW9yaXplZFNuYXBzaG90LmVycm9yID0gbmV3U25hcHNob3QuZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtZW1vcml6ZWRTbmFwc2hvdDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBtZW1vcml6ZWRTbmFwc2hvdCA9IG5ld1NuYXBzaG90O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U25hcHNob3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICgpPT5zZXJ2ZXJTbmFwc2hvdFxuICAgICAgICBdO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbXG4gICAgICAgIGNhY2hlLFxuICAgICAgICBrZXlcbiAgICBdKTtcbiAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc3RhdGUgdGhhdCBTV1Igc2hvdWxkIHJldHVybi5cbiAgICBjb25zdCBjYWNoZWQgPSB1c2VTeW5jRXh0ZXJuYWxTdG9yZSh1c2VDYWxsYmFjaygoY2FsbGJhY2spPT5zdWJzY3JpYmVDYWNoZShrZXksIChjdXJyZW50LCBwcmV2KT0+e1xuICAgICAgICAgICAgaWYgKCFpc0VxdWFsKHByZXYsIGN1cnJlbnQpKSBjYWxsYmFjaygpO1xuICAgICAgICB9KSwgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIFtcbiAgICAgICAgY2FjaGUsXG4gICAgICAgIGtleVxuICAgIF0pLCBnZXRTbmFwc2hvdFswXSwgZ2V0U25hcHNob3RbMV0pO1xuICAgIGNvbnN0IGlzSW5pdGlhbE1vdW50ID0gIWluaXRpYWxNb3VudGVkUmVmLmN1cnJlbnQ7XG4gICAgY29uc3QgaGFzUmV2YWxpZGF0b3IgPSBFVkVOVF9SRVZBTElEQVRPUlNba2V5XSAmJiBFVkVOVF9SRVZBTElEQVRPUlNba2V5XS5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGNhY2hlZERhdGEgPSBjYWNoZWQuZGF0YTtcbiAgICBjb25zdCBkYXRhID0gaXNVbmRlZmluZWQoY2FjaGVkRGF0YSkgPyBmYWxsYmFjayA6IGNhY2hlZERhdGE7XG4gICAgY29uc3QgZXJyb3IgPSBjYWNoZWQuZXJyb3I7XG4gICAgLy8gVXNlIGEgcmVmIHRvIHN0b3JlIHByZXZpb3VzbHkgcmV0dXJuZWQgZGF0YS4gVXNlIHRoZSBpbml0aWFsIGRhdGEgYXMgaXRzIGluaXRpYWwgdmFsdWUuXG4gICAgY29uc3QgbGFnZ3lEYXRhUmVmID0gdXNlUmVmKGRhdGEpO1xuICAgIGNvbnN0IHJldHVybmVkRGF0YSA9IGtlZXBQcmV2aW91c0RhdGEgPyBpc1VuZGVmaW5lZChjYWNoZWREYXRhKSA/IGxhZ2d5RGF0YVJlZi5jdXJyZW50IDogY2FjaGVkRGF0YSA6IGRhdGE7XG4gICAgLy8gLSBTdXNwZW5zZSBtb2RlIGFuZCB0aGVyZSdzIHN0YWxlIGRhdGEgZm9yIHRoZSBpbml0aWFsIHJlbmRlci5cbiAgICAvLyAtIE5vdCBzdXNwZW5zZSBtb2RlIGFuZCB0aGVyZSBpcyBubyBmYWxsYmFjayBkYXRhIGFuZCBgcmV2YWxpZGF0ZUlmU3RhbGVgIGlzIGVuYWJsZWQuXG4gICAgLy8gLSBgcmV2YWxpZGF0ZUlmU3RhbGVgIGlzIGVuYWJsZWQgYnV0IGBkYXRhYCBpcyBub3QgZGVmaW5lZC5cbiAgICBjb25zdCBzaG91bGREb0luaXRpYWxSZXZhbGlkYXRpb24gPSAoKCk9PntcbiAgICAgICAgLy8gaWYgYSBrZXkgYWxyZWFkeSBoYXMgcmV2YWxpZGF0b3JzIGFuZCBhbHNvIGhhcyBlcnJvciwgd2Ugc2hvdWxkIG5vdCB0cmlnZ2VyIHJldmFsaWRhdGlvblxuICAgICAgICBpZiAoaGFzUmV2YWxpZGF0b3IgJiYgIWlzVW5kZWZpbmVkKGVycm9yKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAvLyBJZiBgcmV2YWxpZGF0ZU9uTW91bnRgIGlzIHNldCwgd2UgdGFrZSB0aGUgdmFsdWUgZGlyZWN0bHkuXG4gICAgICAgIGlmIChpc0luaXRpYWxNb3VudCAmJiAhaXNVbmRlZmluZWQocmV2YWxpZGF0ZU9uTW91bnQpKSByZXR1cm4gcmV2YWxpZGF0ZU9uTW91bnQ7XG4gICAgICAgIC8vIElmIGl0J3MgcGF1c2VkLCB3ZSBza2lwIHJldmFsaWRhdGlvbi5cbiAgICAgICAgaWYgKGdldENvbmZpZygpLmlzUGF1c2VkKCkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgLy8gVW5kZXIgc3VzcGVuc2UgbW9kZSwgaXQgd2lsbCBhbHdheXMgZmV0Y2ggb24gcmVuZGVyIGlmIHRoZXJlIGlzIG5vXG4gICAgICAgIC8vIHN0YWxlIGRhdGEgc28gbm8gbmVlZCB0byByZXZhbGlkYXRlIGltbWVkaWF0ZWx5IG1vdW50IGl0IGFnYWluLlxuICAgICAgICAvLyBJZiBkYXRhIGV4aXN0cywgb25seSByZXZhbGlkYXRlIGlmIGByZXZhbGlkYXRlSWZTdGFsZWAgaXMgdHJ1ZS5cbiAgICAgICAgaWYgKHN1c3BlbnNlKSByZXR1cm4gaXNVbmRlZmluZWQoZGF0YSkgPyBmYWxzZSA6IHJldmFsaWRhdGVJZlN0YWxlO1xuICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBzdGFsZSBkYXRhLCB3ZSBuZWVkIHRvIHJldmFsaWRhdGUgd2hlbiBtb3VudDtcbiAgICAgICAgLy8gSWYgYHJldmFsaWRhdGVJZlN0YWxlYCBpcyBzZXQgdG8gdHJ1ZSwgd2Ugd2lsbCBhbHdheXMgcmV2YWxpZGF0ZS5cbiAgICAgICAgcmV0dXJuIGlzVW5kZWZpbmVkKGRhdGEpIHx8IHJldmFsaWRhdGVJZlN0YWxlO1xuICAgIH0pKCk7XG4gICAgLy8gUmVzb2x2ZSB0aGUgZGVmYXVsdCB2YWxpZGF0aW5nIHN0YXRlOlxuICAgIC8vIElmIGl0J3MgYWJsZSB0byB2YWxpZGF0ZSwgYW5kIGl0IHNob3VsZCByZXZhbGlkYXRlIHdoZW4gbW91bnQsIHRoaXMgd2lsbCBiZSB0cnVlLlxuICAgIGNvbnN0IGRlZmF1bHRWYWxpZGF0aW5nU3RhdGUgPSAhIShrZXkgJiYgZmV0Y2hlciAmJiBpc0luaXRpYWxNb3VudCAmJiBzaG91bGREb0luaXRpYWxSZXZhbGlkYXRpb24pO1xuICAgIGNvbnN0IGlzVmFsaWRhdGluZyA9IGlzVW5kZWZpbmVkKGNhY2hlZC5pc1ZhbGlkYXRpbmcpID8gZGVmYXVsdFZhbGlkYXRpbmdTdGF0ZSA6IGNhY2hlZC5pc1ZhbGlkYXRpbmc7XG4gICAgY29uc3QgaXNMb2FkaW5nID0gaXNVbmRlZmluZWQoY2FjaGVkLmlzTG9hZGluZykgPyBkZWZhdWx0VmFsaWRhdGluZ1N0YXRlIDogY2FjaGVkLmlzTG9hZGluZztcbiAgICAvLyBUaGUgcmV2YWxpZGF0aW9uIGZ1bmN0aW9uIGlzIGEgY2FyZWZ1bGx5IGNyYWZ0ZWQgd3JhcHBlciBvZiB0aGUgb3JpZ2luYWxcbiAgICAvLyBgZmV0Y2hlcmAsIHRvIGNvcnJlY3RseSBoYW5kbGUgdGhlIG1hbnkgZWRnZSBjYXNlcy5cbiAgICBjb25zdCByZXZhbGlkYXRlID0gdXNlQ2FsbGJhY2soYXN5bmMgKHJldmFsaWRhdGVPcHRzKT0+e1xuICAgICAgICBjb25zdCBjdXJyZW50RmV0Y2hlciA9IGZldGNoZXJSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKCFrZXkgfHwgIWN1cnJlbnRGZXRjaGVyIHx8IHVubW91bnRlZFJlZi5jdXJyZW50IHx8IGdldENvbmZpZygpLmlzUGF1c2VkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbmV3RGF0YTtcbiAgICAgICAgbGV0IHN0YXJ0QXQ7XG4gICAgICAgIGxldCBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3Qgb3B0cyA9IHJldmFsaWRhdGVPcHRzIHx8IHt9O1xuICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBvbmdvaW5nIGNvbmN1cnJlbnQgcmVxdWVzdCwgb3IgYGRlZHVwZWAgaXMgbm90IHNldCwgYVxuICAgICAgICAvLyBuZXcgcmVxdWVzdCBzaG91bGQgYmUgaW5pdGlhdGVkLlxuICAgICAgICBjb25zdCBzaG91bGRTdGFydE5ld1JlcXVlc3QgPSAhRkVUQ0hba2V5XSB8fCAhb3B0cy5kZWR1cGU7XG4gICAgICAgIC8qXG4gICAgICAgICBGb3IgUmVhY3QgMTdcbiAgICAgICAgIERvIHVubW91bnQgY2hlY2sgZm9yIGNhbGxzOlxuICAgICAgICAgSWYga2V5IGhhcyBjaGFuZ2VkIGR1cmluZyB0aGUgcmV2YWxpZGF0aW9uLCBvciB0aGUgY29tcG9uZW50IGhhcyBiZWVuXG4gICAgICAgICB1bm1vdW50ZWQsIG9sZCBkaXNwYXRjaCBhbmQgb2xkIGV2ZW50IGNhbGxiYWNrcyBzaG91bGQgbm90IHRha2UgYW55XG4gICAgICAgICBlZmZlY3RcblxuICAgICAgICBGb3IgUmVhY3QgMThcbiAgICAgICAgb25seSBjaGVjayBpZiBrZXkgaGFzIGNoYW5nZWRcbiAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0d2cvcmVhY3QtMTgvZGlzY3Vzc2lvbnMvODJcbiAgICAgICovIGNvbnN0IGNhbGxiYWNrU2FmZWd1YXJkID0gKCk9PntcbiAgICAgICAgICAgIGlmIChJU19SRUFDVF9MRUdBQ1kpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIXVubW91bnRlZFJlZi5jdXJyZW50ICYmIGtleSA9PT0ga2V5UmVmLmN1cnJlbnQgJiYgaW5pdGlhbE1vdW50ZWRSZWYuY3VycmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBrZXkgPT09IGtleVJlZi5jdXJyZW50O1xuICAgICAgICB9O1xuICAgICAgICAvLyBUaGUgZmluYWwgc3RhdGUgb2JqZWN0IHdoZW4gdGhlIHJlcXVlc3QgZmluaXNoZXMuXG4gICAgICAgIGNvbnN0IGZpbmFsU3RhdGUgPSB7XG4gICAgICAgICAgICBpc1ZhbGlkYXRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBmaW5pc2hSZXF1ZXN0QW5kVXBkYXRlU3RhdGUgPSAoKT0+e1xuICAgICAgICAgICAgc2V0Q2FjaGUoZmluYWxTdGF0ZSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNsZWFudXBTdGF0ZSA9ICgpPT57XG4gICAgICAgICAgICAvLyBDaGVjayBpZiBpdCdzIHN0aWxsIHRoZSBzYW1lIHJlcXVlc3QgYmVmb3JlIGRlbGV0aW5nIGl0LlxuICAgICAgICAgICAgY29uc3QgcmVxdWVzdEluZm8gPSBGRVRDSFtrZXldO1xuICAgICAgICAgICAgaWYgKHJlcXVlc3RJbmZvICYmIHJlcXVlc3RJbmZvWzFdID09PSBzdGFydEF0KSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIEZFVENIW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8vIFN0YXJ0IGZldGNoaW5nLiBDaGFuZ2UgdGhlIGBpc1ZhbGlkYXRpbmdgIHN0YXRlLCB1cGRhdGUgdGhlIGNhY2hlLlxuICAgICAgICBjb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gICAgICAgICAgICBpc1ZhbGlkYXRpbmc6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgLy8gSXQgaXMgaW4gdGhlIGBpc0xvYWRpbmdgIHN0YXRlLCBpZiBhbmQgb25seSBpZiB0aGVyZSBpcyBubyBjYWNoZWQgZGF0YS5cbiAgICAgICAgLy8gVGhpcyBieXBhc3NlcyBmYWxsYmFjayBkYXRhIGFuZCBsYWdneSBkYXRhLlxuICAgICAgICBpZiAoaXNVbmRlZmluZWQoZ2V0Q2FjaGUoKS5kYXRhKSkge1xuICAgICAgICAgICAgaW5pdGlhbFN0YXRlLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChzaG91bGRTdGFydE5ld1JlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICBzZXRDYWNoZShpbml0aWFsU3RhdGUpO1xuICAgICAgICAgICAgICAgIC8vIElmIG5vIGNhY2hlIGlzIGJlaW5nIHJlbmRlcmVkIGN1cnJlbnRseSAoaXQgc2hvd3MgYSBibGFuayBwYWdlKSxcbiAgICAgICAgICAgICAgICAvLyB3ZSB0cmlnZ2VyIHRoZSBsb2FkaW5nIHNsb3cgZXZlbnQuXG4gICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5sb2FkaW5nVGltZW91dCAmJiBpc1VuZGVmaW5lZChnZXRDYWNoZSgpLmRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2FkaW5nICYmIGNhbGxiYWNrU2FmZWd1YXJkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb25maWcoKS5vbkxvYWRpbmdTbG93KGtleSwgY29uZmlnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSwgY29uZmlnLmxvYWRpbmdUaW1lb3V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gU3RhcnQgdGhlIHJlcXVlc3QgYW5kIHNhdmUgdGhlIHRpbWVzdGFtcC5cbiAgICAgICAgICAgICAgICAvLyBLZXkgbXVzdCBiZSB0cnV0aHkgaWYgZW50ZXJpbmcgaGVyZS5cbiAgICAgICAgICAgICAgICBGRVRDSFtrZXldID0gW1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RmV0Y2hlcihmbkFyZyksXG4gICAgICAgICAgICAgICAgICAgIGdldFRpbWVzdGFtcCgpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFtuZXdEYXRhLCBzdGFydEF0XSA9IEZFVENIW2tleV07XG4gICAgICAgICAgICBuZXdEYXRhID0gYXdhaXQgbmV3RGF0YTtcbiAgICAgICAgICAgIGlmIChzaG91bGRTdGFydE5ld1JlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgcmVxdWVzdCBpc24ndCBpbnRlcnJ1cHRlZCwgY2xlYW4gaXQgdXAgYWZ0ZXIgdGhlXG4gICAgICAgICAgICAgICAgLy8gZGVkdXBsaWNhdGlvbiBpbnRlcnZhbC5cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGNsZWFudXBTdGF0ZSwgY29uZmlnLmRlZHVwaW5nSW50ZXJ2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgdGhlcmUncmUgb3RoZXIgb25nb2luZyByZXF1ZXN0KHMpLCBzdGFydGVkIGFmdGVyIHRoZSBjdXJyZW50IG9uZSxcbiAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gaWdub3JlIHRoZSBjdXJyZW50IG9uZSB0byBhdm9pZCBwb3NzaWJsZSByYWNlIGNvbmRpdGlvbnM6XG4gICAgICAgICAgICAvLyAgIHJlcTEtLS0tLS0tLS0tLS0tLS0tLS0+cmVzMSAgICAgICAgKGN1cnJlbnQgb25lKVxuICAgICAgICAgICAgLy8gICAgICAgIHJlcTItLS0tLS0tLS0tLS0tLS0tPnJlczJcbiAgICAgICAgICAgIC8vIHRoZSByZXF1ZXN0IHRoYXQgZmlyZWQgbGF0ZXIgd2lsbCBhbHdheXMgYmUga2VwdC5cbiAgICAgICAgICAgIC8vIFRoZSB0aW1lc3RhbXAgbWF5YmUgYmUgYHVuZGVmaW5lZGAgb3IgYSBudW1iZXJcbiAgICAgICAgICAgIGlmICghRkVUQ0hba2V5XSB8fCBGRVRDSFtrZXldWzFdICE9PSBzdGFydEF0KSB7XG4gICAgICAgICAgICAgICAgaWYgKHNob3VsZFN0YXJ0TmV3UmVxdWVzdCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2tTYWZlZ3VhcmQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlnKCkub25EaXNjYXJkZWQoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBDbGVhciBlcnJvci5cbiAgICAgICAgICAgIGZpbmFsU3RhdGUuZXJyb3IgPSBVTkRFRklORUQ7XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSdyZSBvdGhlciBtdXRhdGlvbnMocyksIHRoYXQgb3ZlcmxhcHBlZCB3aXRoIHRoZSBjdXJyZW50IHJldmFsaWRhdGlvbjpcbiAgICAgICAgICAgIC8vIGNhc2UgMTpcbiAgICAgICAgICAgIC8vICAgcmVxLS0tLS0tLS0tLS0tLS0tLS0tPnJlc1xuICAgICAgICAgICAgLy8gICAgICAgbXV0YXRlLS0tLS0tPmVuZFxuICAgICAgICAgICAgLy8gY2FzZSAyOlxuICAgICAgICAgICAgLy8gICAgICAgICByZXEtLS0tLS0tLS0tLS0+cmVzXG4gICAgICAgICAgICAvLyAgIG11dGF0ZS0tLS0tLT5lbmRcbiAgICAgICAgICAgIC8vIGNhc2UgMzpcbiAgICAgICAgICAgIC8vICAgcmVxLS0tLS0tLS0tLS0tLS0tLS0tPnJlc1xuICAgICAgICAgICAgLy8gICAgICAgbXV0YXRlLS0tLS0tLS4uLi0tLS0tLS0tLS0+XG4gICAgICAgICAgICAvLyB3ZSBoYXZlIHRvIGlnbm9yZSB0aGUgcmV2YWxpZGF0aW9uIHJlc3VsdCAocmVzKSBiZWNhdXNlIGl0J3Mgbm8gbG9uZ2VyIGZyZXNoLlxuICAgICAgICAgICAgLy8gbWVhbndoaWxlLCBhIG5ldyByZXZhbGlkYXRpb24gc2hvdWxkIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSBtdXRhdGlvbiBlbmRzLlxuICAgICAgICAgICAgY29uc3QgbXV0YXRpb25JbmZvID0gTVVUQVRJT05ba2V5XTtcbiAgICAgICAgICAgIGlmICghaXNVbmRlZmluZWQobXV0YXRpb25JbmZvKSAmJiAvLyBjYXNlIDFcbiAgICAgICAgICAgIChzdGFydEF0IDw9IG11dGF0aW9uSW5mb1swXSB8fCAvLyBjYXNlIDJcbiAgICAgICAgICAgIHN0YXJ0QXQgPD0gbXV0YXRpb25JbmZvWzFdIHx8IC8vIGNhc2UgM1xuICAgICAgICAgICAgbXV0YXRpb25JbmZvWzFdID09PSAwKSkge1xuICAgICAgICAgICAgICAgIGZpbmlzaFJlcXVlc3RBbmRVcGRhdGVTdGF0ZSgpO1xuICAgICAgICAgICAgICAgIGlmIChzaG91bGRTdGFydE5ld1JlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrU2FmZWd1YXJkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbmZpZygpLm9uRGlzY2FyZGVkKGtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRGVlcCBjb21wYXJlIHdpdGggdGhlIGxhdGVzdCBzdGF0ZSB0byBhdm9pZCBleHRyYSByZS1yZW5kZXJzLlxuICAgICAgICAgICAgLy8gRm9yIGxvY2FsIHN0YXRlLCBjb21wYXJlIGFuZCBhc3NpZ24uXG4gICAgICAgICAgICBjb25zdCBjYWNoZURhdGEgPSBnZXRDYWNoZSgpLmRhdGE7XG4gICAgICAgICAgICAvLyBTaW5jZSB0aGUgY29tcGFyZSBmbiBjb3VsZCBiZSBjdXN0b20gZm5cbiAgICAgICAgICAgIC8vIGNhY2hlRGF0YSBtaWdodCBiZSBkaWZmZXJlbnQgZnJvbSBuZXdEYXRhIGV2ZW4gd2hlbiBjb21wYXJlIGZuIHJldHVybnMgVHJ1ZVxuICAgICAgICAgICAgZmluYWxTdGF0ZS5kYXRhID0gY29tcGFyZShjYWNoZURhdGEsIG5ld0RhdGEpID8gY2FjaGVEYXRhIDogbmV3RGF0YTtcbiAgICAgICAgICAgIC8vIFRyaWdnZXIgdGhlIHN1Y2Nlc3NmdWwgY2FsbGJhY2sgaWYgaXQncyB0aGUgb3JpZ2luYWwgcmVxdWVzdC5cbiAgICAgICAgICAgIGlmIChzaG91bGRTdGFydE5ld1JlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2tTYWZlZ3VhcmQoKSkge1xuICAgICAgICAgICAgICAgICAgICBnZXRDb25maWcoKS5vblN1Y2Nlc3MobmV3RGF0YSwga2V5LCBjb25maWcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjbGVhbnVwU3RhdGUoKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb25maWcgPSBnZXRDb25maWcoKTtcbiAgICAgICAgICAgIGNvbnN0IHsgc2hvdWxkUmV0cnlPbkVycm9yIH0gPSBjdXJyZW50Q29uZmlnO1xuICAgICAgICAgICAgLy8gTm90IHBhdXNlZCwgd2UgY29udGludWUgaGFuZGxpbmcgdGhlIGVycm9yLiBPdGhlcndpc2UsIGRpc2NhcmQgaXQuXG4gICAgICAgICAgICBpZiAoIWN1cnJlbnRDb25maWcuaXNQYXVzZWQoKSkge1xuICAgICAgICAgICAgICAgIC8vIEdldCBhIG5ldyBlcnJvciwgZG9uJ3QgdXNlIGRlZXAgY29tcGFyaXNvbiBmb3IgZXJyb3JzLlxuICAgICAgICAgICAgICAgIGZpbmFsU3RhdGUuZXJyb3IgPSBlcnI7XG4gICAgICAgICAgICAgICAgLy8gRXJyb3IgZXZlbnQgYW5kIHJldHJ5IGxvZ2ljLiBPbmx5IGZvciB0aGUgYWN0dWFsIHJlcXVlc3QsIG5vdFxuICAgICAgICAgICAgICAgIC8vIGRlZHVwZWQgb25lcy5cbiAgICAgICAgICAgICAgICBpZiAoc2hvdWxkU3RhcnROZXdSZXF1ZXN0ICYmIGNhbGxiYWNrU2FmZWd1YXJkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudENvbmZpZy5vbkVycm9yKGVyciwga2V5LCBjdXJyZW50Q29uZmlnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZFJldHJ5T25FcnJvciA9PT0gdHJ1ZSB8fCBpc0Z1bmN0aW9uKHNob3VsZFJldHJ5T25FcnJvcikgJiYgc2hvdWxkUmV0cnlPbkVycm9yKGVycikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2V0Q29uZmlnKCkucmV2YWxpZGF0ZU9uRm9jdXMgfHwgIWdldENvbmZpZygpLnJldmFsaWRhdGVPblJlY29ubmVjdCB8fCBpc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgaXQncyBpbmFjdGl2ZSwgc3RvcC4gSXQgd2lsbCBhdXRvLXJldmFsaWRhdGUgd2hlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZm9jdXNpbmcgb3IgcmVjb25uZWN0aW5nLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gcmV0cnlpbmcsIGRlZHVwbGljYXRpb24gaXMgYWx3YXlzIGVuYWJsZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENvbmZpZy5vbkVycm9yUmV0cnkoZXJyLCBrZXksIGN1cnJlbnRDb25maWcsIChfb3B0cyk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmV2YWxpZGF0b3JzID0gRVZFTlRfUkVWQUxJREFUT1JTW2tleV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXZhbGlkYXRvcnMgJiYgcmV2YWxpZGF0b3JzWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRvcnNbMF0ocmV2YWxpZGF0ZUV2ZW50cy5FUlJPUl9SRVZBTElEQVRFX0VWRU5ULCBfb3B0cyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHJ5Q291bnQ6IChvcHRzLnJldHJ5Q291bnQgfHwgMCkgKyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWR1cGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBNYXJrIGxvYWRpbmcgYXMgc3RvcHBlZC5cbiAgICAgICAgbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAvLyBVcGRhdGUgdGhlIGN1cnJlbnQgaG9vaydzIHN0YXRlLlxuICAgICAgICBmaW5pc2hSZXF1ZXN0QW5kVXBkYXRlU3RhdGUoKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSwgLy8gYHNldFN0YXRlYCBpcyBpbW11dGFibGUsIGFuZCBgZXZlbnRzQ2FsbGJhY2tgLCBgZm5BcmdgLCBhbmRcbiAgICAvLyBga2V5VmFsaWRhdGluZ2AgYXJlIGRlcGVuZGluZyBvbiBga2V5YCwgc28gd2UgY2FuIGV4Y2x1ZGUgdGhlbSBmcm9tXG4gICAgLy8gdGhlIGRlcHMgYXJyYXkuXG4gICAgLy9cbiAgICAvLyBGSVhNRTpcbiAgICAvLyBgZm5gIGFuZCBgY29uZmlnYCBtaWdodCBiZSBjaGFuZ2VkIGR1cmluZyB0aGUgbGlmZWN5Y2xlLFxuICAgIC8vIGJ1dCB0aGV5IG1pZ2h0IGJlIGNoYW5nZWQgZXZlcnkgcmVuZGVyIGxpa2UgdGhpcy5cbiAgICAvLyBgdXNlU1dSKCdrZXknLCAoKSA9PiBmZXRjaCgnL2FwaS8nKSwgeyBzdXNwZW5zZTogdHJ1ZSB9KWBcbiAgICAvLyBTbyB3ZSBvbWl0IHRoZSB2YWx1ZXMgZnJvbSB0aGUgZGVwcyBhcnJheVxuICAgIC8vIGV2ZW4gdGhvdWdoIGl0IG1pZ2h0IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3JzLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbXG4gICAgICAgIGtleSxcbiAgICAgICAgY2FjaGVcbiAgICBdKTtcbiAgICAvLyBTaW1pbGFyIHRvIHRoZSBnbG9iYWwgbXV0YXRlIGJ1dCBib3VuZCB0byB0aGUgY3VycmVudCBjYWNoZSBhbmQga2V5LlxuICAgIC8vIGBjYWNoZWAgaXNuJ3QgYWxsb3dlZCB0byBjaGFuZ2UgZHVyaW5nIHRoZSBsaWZlY3ljbGUuXG4gICAgY29uc3QgYm91bmRNdXRhdGUgPSB1c2VDYWxsYmFjaygvLyBVc2UgY2FsbGJhY2sgdG8gbWFrZSBzdXJlIGBrZXlSZWYuY3VycmVudGAgcmV0dXJucyBsYXRlc3QgcmVzdWx0IGV2ZXJ5IHRpbWVcbiAgICAoLi4uYXJncyk9PntcbiAgICAgICAgcmV0dXJuIGludGVybmFsTXV0YXRlKGNhY2hlLCBrZXlSZWYuY3VycmVudCwgLi4uYXJncyk7XG4gICAgfSwgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIFtdKTtcbiAgICAvLyBUaGUgbG9naWMgZm9yIHVwZGF0aW5nIHJlZnMuXG4gICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKT0+e1xuICAgICAgICBmZXRjaGVyUmVmLmN1cnJlbnQgPSBmZXRjaGVyO1xuICAgICAgICBjb25maWdSZWYuY3VycmVudCA9IGNvbmZpZztcbiAgICAgICAgLy8gSGFuZGxlIGxhZ2d5IGRhdGEgdXBkYXRlcy4gSWYgdGhlcmUncyBjYWNoZWQgZGF0YSBvZiB0aGUgY3VycmVudCBrZXksXG4gICAgICAgIC8vIGl0J2xsIGJlIHRoZSBjb3JyZWN0IHJlZmVyZW5jZS5cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChjYWNoZWREYXRhKSkge1xuICAgICAgICAgICAgbGFnZ3lEYXRhUmVmLmN1cnJlbnQgPSBjYWNoZWREYXRhO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8gQWZ0ZXIgbW91bnRlZCBvciBrZXkgY2hhbmdlZC5cbiAgICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpPT57XG4gICAgICAgIGlmICgha2V5KSByZXR1cm47XG4gICAgICAgIGNvbnN0IHNvZnRSZXZhbGlkYXRlID0gcmV2YWxpZGF0ZS5iaW5kKFVOREVGSU5FRCwgV0lUSF9ERURVUEUpO1xuICAgICAgICAvLyBFeHBvc2UgcmV2YWxpZGF0b3JzIHRvIGdsb2JhbCBldmVudCBsaXN0ZW5lcnMuIFNvIHdlIGNhbiB0cmlnZ2VyXG4gICAgICAgIC8vIHJldmFsaWRhdGlvbiBmcm9tIHRoZSBvdXRzaWRlLlxuICAgICAgICBsZXQgbmV4dEZvY3VzUmV2YWxpZGF0ZWRBdCA9IDA7XG4gICAgICAgIGNvbnN0IG9uUmV2YWxpZGF0ZSA9ICh0eXBlLCBvcHRzID0ge30pPT57XG4gICAgICAgICAgICBpZiAodHlwZSA9PSByZXZhbGlkYXRlRXZlbnRzLkZPQ1VTX0VWRU5UKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICBpZiAoZ2V0Q29uZmlnKCkucmV2YWxpZGF0ZU9uRm9jdXMgJiYgbm93ID4gbmV4dEZvY3VzUmV2YWxpZGF0ZWRBdCAmJiBpc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHRGb2N1c1JldmFsaWRhdGVkQXQgPSBub3cgKyBnZXRDb25maWcoKS5mb2N1c1Rocm90dGxlSW50ZXJ2YWw7XG4gICAgICAgICAgICAgICAgICAgIHNvZnRSZXZhbGlkYXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IHJldmFsaWRhdGVFdmVudHMuUkVDT05ORUNUX0VWRU5UKSB7XG4gICAgICAgICAgICAgICAgaWYgKGdldENvbmZpZygpLnJldmFsaWRhdGVPblJlY29ubmVjdCAmJiBpc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNvZnRSZXZhbGlkYXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IHJldmFsaWRhdGVFdmVudHMuTVVUQVRFX0VWRU5UKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJldmFsaWRhdGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSByZXZhbGlkYXRlRXZlbnRzLkVSUk9SX1JFVkFMSURBVEVfRVZFTlQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmV2YWxpZGF0ZShvcHRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgdW5zdWJFdmVudHMgPSBzdWJzY3JpYmVDYWxsYmFjayhrZXksIEVWRU5UX1JFVkFMSURBVE9SUywgb25SZXZhbGlkYXRlKTtcbiAgICAgICAgLy8gTWFyayB0aGUgY29tcG9uZW50IGFzIG1vdW50ZWQgYW5kIHVwZGF0ZSBjb3JyZXNwb25kaW5nIHJlZnMuXG4gICAgICAgIHVubW91bnRlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIGtleVJlZi5jdXJyZW50ID0ga2V5O1xuICAgICAgICBpbml0aWFsTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgLy8gS2VlcCB0aGUgb3JpZ2luYWwga2V5IGluIHRoZSBjYWNoZS5cbiAgICAgICAgc2V0Q2FjaGUoe1xuICAgICAgICAgICAgX2s6IGZuQXJnXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUcmlnZ2VyIGEgcmV2YWxpZGF0aW9uXG4gICAgICAgIGlmIChzaG91bGREb0luaXRpYWxSZXZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgIGlmIChpc1VuZGVmaW5lZChkYXRhKSB8fCBJU19TRVJWRVIpIHtcbiAgICAgICAgICAgICAgICAvLyBSZXZhbGlkYXRlIGltbWVkaWF0ZWx5LlxuICAgICAgICAgICAgICAgIHNvZnRSZXZhbGlkYXRlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIERlbGF5IHRoZSByZXZhbGlkYXRlIGlmIHdlIGhhdmUgZGF0YSB0byByZXR1cm4gc28gd2Ugd29uJ3QgYmxvY2tcbiAgICAgICAgICAgICAgICAvLyByZW5kZXJpbmcuXG4gICAgICAgICAgICAgICAgckFGKHNvZnRSZXZhbGlkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIC8vIE1hcmsgaXQgYXMgdW5tb3VudGVkLlxuICAgICAgICAgICAgdW5tb3VudGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgdW5zdWJFdmVudHMoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXG4gICAgICAgIGtleVxuICAgIF0pO1xuICAgIC8vIFBvbGxpbmdcbiAgICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpPT57XG4gICAgICAgIGxldCB0aW1lcjtcbiAgICAgICAgZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICAgIC8vIFVzZSB0aGUgcGFzc2VkIGludGVydmFsXG4gICAgICAgICAgICAvLyAuLi5vciBpbnZva2UgdGhlIGZ1bmN0aW9uIHdpdGggdGhlIHVwZGF0ZWQgZGF0YSB0byBnZXQgdGhlIGludGVydmFsXG4gICAgICAgICAgICBjb25zdCBpbnRlcnZhbCA9IGlzRnVuY3Rpb24ocmVmcmVzaEludGVydmFsKSA/IHJlZnJlc2hJbnRlcnZhbChnZXRDYWNoZSgpLmRhdGEpIDogcmVmcmVzaEludGVydmFsO1xuICAgICAgICAgICAgLy8gV2Ugb25seSBzdGFydCB0aGUgbmV4dCBpbnRlcnZhbCBpZiBgcmVmcmVzaEludGVydmFsYCBpcyBub3QgMCwgYW5kOlxuICAgICAgICAgICAgLy8gLSBgZm9yY2VgIGlzIHRydWUsIHdoaWNoIGlzIHRoZSBzdGFydCBvZiBwb2xsaW5nXG4gICAgICAgICAgICAvLyAtIG9yIGB0aW1lcmAgaXMgbm90IDAsIHdoaWNoIG1lYW5zIHRoZSBlZmZlY3Qgd2Fzbid0IGNhbmNlbGVkXG4gICAgICAgICAgICBpZiAoaW50ZXJ2YWwgJiYgdGltZXIgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KGV4ZWN1dGUsIGludGVydmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBleGVjdXRlKCkge1xuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgaXQncyBPSyB0byBleGVjdXRlOlxuICAgICAgICAgICAgLy8gT25seSByZXZhbGlkYXRlIHdoZW4gdGhlIHBhZ2UgaXMgdmlzaWJsZSwgb25saW5lLCBhbmQgbm90IGVycm9yZWQuXG4gICAgICAgICAgICBpZiAoIWdldENhY2hlKCkuZXJyb3IgJiYgKHJlZnJlc2hXaGVuSGlkZGVuIHx8IGdldENvbmZpZygpLmlzVmlzaWJsZSgpKSAmJiAocmVmcmVzaFdoZW5PZmZsaW5lIHx8IGdldENvbmZpZygpLmlzT25saW5lKCkpKSB7XG4gICAgICAgICAgICAgICAgcmV2YWxpZGF0ZShXSVRIX0RFRFVQRSkudGhlbihuZXh0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gU2NoZWR1bGUgdGhlIG5leHQgaW50ZXJ2YWwgdG8gY2hlY2sgYWdhaW4uXG4gICAgICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG5leHQoKTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBpZiAodGltZXIpIHtcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgICAgICAgICAgIHRpbWVyID0gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICByZWZyZXNoSW50ZXJ2YWwsXG4gICAgICAgIHJlZnJlc2hXaGVuSGlkZGVuLFxuICAgICAgICByZWZyZXNoV2hlbk9mZmxpbmUsXG4gICAgICAgIGtleVxuICAgIF0pO1xuICAgIC8vIERpc3BsYXkgZGVidWcgaW5mbyBpbiBSZWFjdCBEZXZUb29scy5cbiAgICB1c2VEZWJ1Z1ZhbHVlKHJldHVybmVkRGF0YSk7XG4gICAgLy8gSW4gU3VzcGVuc2UgbW9kZSwgd2UgY2FuJ3QgcmV0dXJuIHRoZSBlbXB0eSBgZGF0YWAgc3RhdGUuXG4gICAgLy8gSWYgdGhlcmUgaXMgYW4gYGVycm9yYCwgdGhlIGBlcnJvcmAgbmVlZHMgdG8gYmUgdGhyb3duIHRvIHRoZSBlcnJvciBib3VuZGFyeS5cbiAgICAvLyBJZiB0aGVyZSBpcyBubyBgZXJyb3JgLCB0aGUgYHJldmFsaWRhdGlvbmAgcHJvbWlzZSBuZWVkcyB0byBiZSB0aHJvd24gdG9cbiAgICAvLyB0aGUgc3VzcGVuc2UgYm91bmRhcnkuXG4gICAgaWYgKHN1c3BlbnNlICYmIGlzVW5kZWZpbmVkKGRhdGEpICYmIGtleSkge1xuICAgICAgICAvLyBTV1Igc2hvdWxkIHRocm93IHdoZW4gdHJ5aW5nIHRvIHVzZSBTdXNwZW5zZSBvbiB0aGUgc2VydmVyIHdpdGggUmVhY3QgMTgsXG4gICAgICAgIC8vIHdpdGhvdXQgcHJvdmlkaW5nIGFueSBpbml0aWFsIGRhdGEuIFNlZTpcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9zd3IvaXNzdWVzLzE4MzJcbiAgICAgICAgaWYgKCFJU19SRUFDVF9MRUdBQ1kgJiYgSVNfU0VSVkVSKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhbGxiYWNrIGRhdGEgaXMgcmVxdWlyZWQgd2hlbiB1c2luZyBzdXNwZW5zZSBpbiBTU1IuJyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWx3YXlzIHVwZGF0ZSBmZXRjaGVyIGFuZCBjb25maWcgcmVmcyBldmVuIHdpdGggdGhlIFN1c3BlbnNlIG1vZGUuXG4gICAgICAgIGZldGNoZXJSZWYuY3VycmVudCA9IGZldGNoZXI7XG4gICAgICAgIGNvbmZpZ1JlZi5jdXJyZW50ID0gY29uZmlnO1xuICAgICAgICB1bm1vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICBjb25zdCByZXEgPSBQUkVMT0FEW2tleV07XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQocmVxKSkge1xuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IGJvdW5kTXV0YXRlKHJlcSk7XG4gICAgICAgICAgICB1c2UocHJvbWlzZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKGVycm9yKSkge1xuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHJldmFsaWRhdGUoV0lUSF9ERURVUEUpO1xuICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChyZXR1cm5lZERhdGEpKSB7XG4gICAgICAgICAgICAgICAgcHJvbWlzZS5zdGF0dXMgPSAnZnVsZmlsbGVkJztcbiAgICAgICAgICAgICAgICBwcm9taXNlLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVzZShwcm9taXNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG11dGF0ZTogYm91bmRNdXRhdGUsXG4gICAgICAgIGdldCBkYXRhICgpIHtcbiAgICAgICAgICAgIHN0YXRlRGVwZW5kZW5jaWVzLmRhdGEgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIHJldHVybmVkRGF0YTtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0IGVycm9yICgpIHtcbiAgICAgICAgICAgIHN0YXRlRGVwZW5kZW5jaWVzLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0IGlzVmFsaWRhdGluZyAoKSB7XG4gICAgICAgICAgICBzdGF0ZURlcGVuZGVuY2llcy5pc1ZhbGlkYXRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWRhdGluZztcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0IGlzTG9hZGluZyAoKSB7XG4gICAgICAgICAgICBzdGF0ZURlcGVuZGVuY2llcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIGlzTG9hZGluZztcbiAgICAgICAgfVxuICAgIH07XG59O1xuT0JKRUNULmRlZmluZVByb3BlcnR5KFNXUkNvbmZpZywgJ2RlZmF1bHRWYWx1ZScsIHtcbiAgICB2YWx1ZTogZGVmYXVsdENvbmZpZ1xufSk7XG4vKipcbiAqIEEgaG9vayB0byBmZXRjaCBkYXRhLlxuICpcbiAqIEBsaW5rIGh0dHBzOi8vc3dyLnZlcmNlbC5hcHBcbiAqIEBleGFtcGxlXG4gKiBgYGBqc3hcbiAqIGltcG9ydCB1c2VTV1IgZnJvbSAnc3dyJ1xuICogZnVuY3Rpb24gUHJvZmlsZSgpIHtcbiAqICAgY29uc3QgeyBkYXRhLCBlcnJvciwgaXNMb2FkaW5nIH0gPSB1c2VTV1IoJy9hcGkvdXNlcicsIGZldGNoZXIpXG4gKiAgIGlmIChlcnJvcikgcmV0dXJuIDxkaXY+ZmFpbGVkIHRvIGxvYWQ8L2Rpdj5cbiAqICAgaWYgKGlzTG9hZGluZykgcmV0dXJuIDxkaXY+bG9hZGluZy4uLjwvZGl2PlxuICogICByZXR1cm4gPGRpdj5oZWxsbyB7ZGF0YS5uYW1lfSE8L2Rpdj5cbiAqIH1cbiAqIGBgYFxuICovIGNvbnN0IHVzZVNXUiA9IHdpdGhBcmdzKHVzZVNXUkhhbmRsZXIpO1xuXG5jb25zdCBpbW11dGFibGUgPSAodXNlU1dSTmV4dCk9PihrZXksIGZldGNoZXIsIGNvbmZpZyk9PntcbiAgICAgICAgLy8gQWx3YXlzIG92ZXJyaWRlIGFsbCByZXZhbGlkYXRlIG9wdGlvbnMuXG4gICAgICAgIGNvbmZpZy5yZXZhbGlkYXRlT25Gb2N1cyA9IGZhbHNlO1xuICAgICAgICBjb25maWcucmV2YWxpZGF0ZUlmU3RhbGUgPSBmYWxzZTtcbiAgICAgICAgY29uZmlnLnJldmFsaWRhdGVPblJlY29ubmVjdCA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gdXNlU1dSTmV4dChrZXksIGZldGNoZXIsIGNvbmZpZyk7XG4gICAgfTtcbmNvbnN0IHVzZVNXUkltbXV0YWJsZSA9IHdpdGhNaWRkbGV3YXJlKHVzZVNXUiwgaW1tdXRhYmxlKTtcblxuZXhwb3J0IHsgdXNlU1dSSW1tdXRhYmxlIGFzIGRlZmF1bHQsIGltbXV0YWJsZSB9O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQXFCO0FBQzZEO0FBQ0w7QUFDNk87O0FBRTFUO0FBQ0EsWUFBWSxzQ0FBZ0I7QUFDNUI7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFD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\n//# sourceURL=webpack-internal:///../../../node_modules/swr/dist/immutable/index.mjs\n\n}");
|
|
4574
|
-
|
|
4575
|
-
},
|
|
4576
|
-
"../../../node_modules/swr/dist/infinite/index.mjs"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
4577
|
-
"use strict";
|
|
4578
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n \"default\": () => (useSWRInfinite),\n infinite: () => (infinite),\n unstable_serialize: () => (unstable_serialize)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var client_only__rspack_import_1 = __webpack_require__(\"../../../node_modules/client-only/index.js\");\n/* import */ var use_sync_external_store_shim_index_js__rspack_import_2 = __webpack_require__(\"../../../node_modules/use-sync-external-store/shim/index.js\");\n/* import */ var swr_internal__rspack_import_3 = __webpack_require__(\"webpack/sharing/consume/default/swr/_internal/swr/_internal\");\n/* import */ var swr_internal__rspack_import_3_default = /*#__PURE__*/__webpack_require__.n(swr_internal__rspack_import_3);\n\n\n\n\n\n/// <reference types=\"react/experimental\" />\nconst use = (react__rspack_import_0_default().use) || ((promise)=>{\n if (promise.status === 'pending') {\n throw promise;\n } else if (promise.status === 'fulfilled') {\n return promise.value;\n } else if (promise.status === 'rejected') {\n throw promise.reason;\n } else {\n promise.status = 'pending';\n promise.then((v)=>{\n promise.status = 'fulfilled';\n promise.value = v;\n }, (e)=>{\n promise.status = 'rejected';\n promise.reason = e;\n });\n throw promise;\n }\n});\nconst WITH_DEDUPE = {\n dedupe: true\n};\nconst useSWRHandler = (_key, fetcher, config)=>{\n const { cache, compare, suspense, fallbackData, revalidateOnMount, revalidateIfStale, refreshInterval, refreshWhenHidden, refreshWhenOffline, keepPreviousData } = config;\n const [EVENT_REVALIDATORS, MUTATION, FETCH, PRELOAD] = swr_internal__rspack_import_3.SWRGlobalState.get(cache);\n // `key` is the identifier of the SWR internal state,\n // `fnArg` is the argument/arguments parsed from the key, which will be passed\n // to the fetcher.\n // All of them are derived from `_key`.\n const [key, fnArg] = (0,swr_internal__rspack_import_3.serialize)(_key);\n // If it's the initial render of this hook.\n const initialMountedRef = (0,react__rspack_import_0.useRef)(false);\n // If the hook is unmounted already. This will be used to prevent some effects\n // to be called after unmounting.\n const unmountedRef = (0,react__rspack_import_0.useRef)(false);\n // Refs to keep the key and config.\n const keyRef = (0,react__rspack_import_0.useRef)(key);\n const fetcherRef = (0,react__rspack_import_0.useRef)(fetcher);\n const configRef = (0,react__rspack_import_0.useRef)(config);\n const getConfig = ()=>configRef.current;\n const isActive = ()=>getConfig().isVisible() && getConfig().isOnline();\n const [getCache, setCache, subscribeCache, getInitialCache] = (0,swr_internal__rspack_import_3.createCacheHelper)(cache, key);\n const stateDependencies = (0,react__rspack_import_0.useRef)({}).current;\n const fallback = (0,swr_internal__rspack_import_3.isUndefined)(fallbackData) ? config.fallback[key] : fallbackData;\n const isEqual = (prev, current)=>{\n for(const _ in stateDependencies){\n const t = _;\n if (t === 'data') {\n if (!compare(prev[t], current[t])) {\n if (!(0,swr_internal__rspack_import_3.isUndefined)(prev[t])) {\n return false;\n }\n if (!compare(returnedData, current[t])) {\n return false;\n }\n }\n } else {\n if (current[t] !== prev[t]) {\n return false;\n }\n }\n }\n return true;\n };\n const getSnapshot = (0,react__rspack_import_0.useMemo)(()=>{\n const shouldStartRequest = (()=>{\n if (!key) return false;\n if (!fetcher) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (!(0,swr_internal__rspack_import_3.isUndefined)(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n if (suspense) return false;\n if (!(0,swr_internal__rspack_import_3.isUndefined)(revalidateIfStale)) return revalidateIfStale;\n return true;\n })();\n // Get the cache and merge it with expected states.\n const getSelectedCache = (state)=>{\n // We only select the needed fields from the state.\n const snapshot = (0,swr_internal__rspack_import_3.mergeObjects)(state);\n delete snapshot._k;\n if (!shouldStartRequest) {\n return snapshot;\n }\n return {\n isValidating: true,\n isLoading: true,\n ...snapshot\n };\n };\n const cachedData = getCache();\n const initialData = getInitialCache();\n const clientSnapshot = getSelectedCache(cachedData);\n const serverSnapshot = cachedData === initialData ? clientSnapshot : getSelectedCache(initialData);\n // To make sure that we are returning the same object reference to avoid\n // unnecessary re-renders, we keep the previous snapshot and use deep\n // comparison to check if we need to return a new one.\n let memorizedSnapshot = clientSnapshot;\n return [\n ()=>{\n const newSnapshot = getSelectedCache(getCache());\n const compareResult = isEqual(newSnapshot, memorizedSnapshot);\n if (compareResult) {\n // Mentally, we should always return the `memorizedSnapshot` here\n // as there's no change between the new and old snapshots.\n // However, since the `isEqual` function only compares selected fields,\n // the values of the unselected fields might be changed. That's\n // simply because we didn't track them.\n // To support the case in https://github.com/vercel/swr/pull/2576,\n // we need to update these fields in the `memorizedSnapshot` too\n // with direct mutations to ensure the snapshot is always up-to-date\n // even for the unselected fields, but only trigger re-renders when\n // the selected fields are changed.\n memorizedSnapshot.data = newSnapshot.data;\n memorizedSnapshot.isLoading = newSnapshot.isLoading;\n memorizedSnapshot.isValidating = newSnapshot.isValidating;\n memorizedSnapshot.error = newSnapshot.error;\n return memorizedSnapshot;\n } else {\n memorizedSnapshot = newSnapshot;\n return newSnapshot;\n }\n },\n ()=>serverSnapshot\n ];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n cache,\n key\n ]);\n // Get the current state that SWR should return.\n const cached = (0,use_sync_external_store_shim_index_js__rspack_import_2.useSyncExternalStore)((0,react__rspack_import_0.useCallback)((callback)=>subscribeCache(key, (current, prev)=>{\n if (!isEqual(prev, current)) callback();\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n cache,\n key\n ]), getSnapshot[0], getSnapshot[1]);\n const isInitialMount = !initialMountedRef.current;\n const hasRevalidator = EVENT_REVALIDATORS[key] && EVENT_REVALIDATORS[key].length > 0;\n const cachedData = cached.data;\n const data = (0,swr_internal__rspack_import_3.isUndefined)(cachedData) ? fallback : cachedData;\n const error = cached.error;\n // Use a ref to store previously returned data. Use the initial data as its initial value.\n const laggyDataRef = (0,react__rspack_import_0.useRef)(data);\n const returnedData = keepPreviousData ? (0,swr_internal__rspack_import_3.isUndefined)(cachedData) ? laggyDataRef.current : cachedData : data;\n // - Suspense mode and there's stale data for the initial render.\n // - Not suspense mode and there is no fallback data and `revalidateIfStale` is enabled.\n // - `revalidateIfStale` is enabled but `data` is not defined.\n const shouldDoInitialRevalidation = (()=>{\n // if a key already has revalidators and also has error, we should not trigger revalidation\n if (hasRevalidator && !(0,swr_internal__rspack_import_3.isUndefined)(error)) return false;\n // If `revalidateOnMount` is set, we take the value directly.\n if (isInitialMount && !(0,swr_internal__rspack_import_3.isUndefined)(revalidateOnMount)) return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused()) return false;\n // Under suspense mode, it will always fetch on render if there is no\n // stale data so no need to revalidate immediately mount it again.\n // If data exists, only revalidate if `revalidateIfStale` is true.\n if (suspense) return (0,swr_internal__rspack_import_3.isUndefined)(data) ? false : revalidateIfStale;\n // If there is no stale data, we need to revalidate when mount;\n // If `revalidateIfStale` is set to true, we will always revalidate.\n return (0,swr_internal__rspack_import_3.isUndefined)(data) || revalidateIfStale;\n })();\n // Resolve the default validating state:\n // If it's able to validate, and it should revalidate when mount, this will be true.\n const defaultValidatingState = !!(key && fetcher && isInitialMount && shouldDoInitialRevalidation);\n const isValidating = (0,swr_internal__rspack_import_3.isUndefined)(cached.isValidating) ? defaultValidatingState : cached.isValidating;\n const isLoading = (0,swr_internal__rspack_import_3.isUndefined)(cached.isLoading) ? defaultValidatingState : cached.isLoading;\n // The revalidation function is a carefully crafted wrapper of the original\n // `fetcher`, to correctly handle the many edge cases.\n const revalidate = (0,react__rspack_import_0.useCallback)(async (revalidateOpts)=>{\n const currentFetcher = fetcherRef.current;\n if (!key || !currentFetcher || unmountedRef.current || getConfig().isPaused()) {\n return false;\n }\n let newData;\n let startAt;\n let loading = true;\n const opts = revalidateOpts || {};\n // If there is no ongoing concurrent request, or `dedupe` is not set, a\n // new request should be initiated.\n const shouldStartNewRequest = !FETCH[key] || !opts.dedupe;\n /*\n For React 17\n Do unmount check for calls:\n If key has changed during the revalidation, or the component has been\n unmounted, old dispatch and old event callbacks should not take any\n effect\n\n For React 18\n only check if key has changed\n https://github.com/reactwg/react-18/discussions/82\n */ const callbackSafeguard = ()=>{\n if (swr_internal__rspack_import_3.IS_REACT_LEGACY) {\n return !unmountedRef.current && key === keyRef.current && initialMountedRef.current;\n }\n return key === keyRef.current;\n };\n // The final state object when the request finishes.\n const finalState = {\n isValidating: false,\n isLoading: false\n };\n const finishRequestAndUpdateState = ()=>{\n setCache(finalState);\n };\n const cleanupState = ()=>{\n // Check if it's still the same request before deleting it.\n const requestInfo = FETCH[key];\n if (requestInfo && requestInfo[1] === startAt) {\n delete FETCH[key];\n }\n };\n // Start fetching. Change the `isValidating` state, update the cache.\n const initialState = {\n isValidating: true\n };\n // It is in the `isLoading` state, if and only if there is no cached data.\n // This bypasses fallback data and laggy data.\n if ((0,swr_internal__rspack_import_3.isUndefined)(getCache().data)) {\n initialState.isLoading = true;\n }\n try {\n if (shouldStartNewRequest) {\n setCache(initialState);\n // If no cache is being rendered currently (it shows a blank page),\n // we trigger the loading slow event.\n if (config.loadingTimeout && (0,swr_internal__rspack_import_3.isUndefined)(getCache().data)) {\n setTimeout(()=>{\n if (loading && callbackSafeguard()) {\n getConfig().onLoadingSlow(key, config);\n }\n }, config.loadingTimeout);\n }\n // Start the request and save the timestamp.\n // Key must be truthy if entering here.\n FETCH[key] = [\n currentFetcher(fnArg),\n (0,swr_internal__rspack_import_3.getTimestamp)()\n ];\n }\n [newData, startAt] = FETCH[key];\n newData = await newData;\n if (shouldStartNewRequest) {\n // If the request isn't interrupted, clean it up after the\n // deduplication interval.\n setTimeout(cleanupState, config.dedupingInterval);\n }\n // If there're other ongoing request(s), started after the current one,\n // we need to ignore the current one to avoid possible race conditions:\n // req1------------------>res1 (current one)\n // req2---------------->res2\n // the request that fired later will always be kept.\n // The timestamp maybe be `undefined` or a number\n if (!FETCH[key] || FETCH[key][1] !== startAt) {\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Clear error.\n finalState.error = swr_internal__rspack_import_3.UNDEFINED;\n // If there're other mutations(s), that overlapped with the current revalidation:\n // case 1:\n // req------------------>res\n // mutate------>end\n // case 2:\n // req------------>res\n // mutate------>end\n // case 3:\n // req------------------>res\n // mutate-------...---------->\n // we have to ignore the revalidation result (res) because it's no longer fresh.\n // meanwhile, a new revalidation should be triggered when the mutation ends.\n const mutationInfo = MUTATION[key];\n if (!(0,swr_internal__rspack_import_3.isUndefined)(mutationInfo) && // case 1\n (startAt <= mutationInfo[0] || // case 2\n startAt <= mutationInfo[1] || // case 3\n mutationInfo[1] === 0)) {\n finishRequestAndUpdateState();\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onDiscarded(key);\n }\n }\n return false;\n }\n // Deep compare with the latest state to avoid extra re-renders.\n // For local state, compare and assign.\n const cacheData = getCache().data;\n // Since the compare fn could be custom fn\n // cacheData might be different from newData even when compare fn returns True\n finalState.data = compare(cacheData, newData) ? cacheData : newData;\n // Trigger the successful callback if it's the original request.\n if (shouldStartNewRequest) {\n if (callbackSafeguard()) {\n getConfig().onSuccess(newData, key, config);\n }\n }\n } catch (err) {\n cleanupState();\n const currentConfig = getConfig();\n const { shouldRetryOnError } = currentConfig;\n // Not paused, we continue handling the error. Otherwise, discard it.\n if (!currentConfig.isPaused()) {\n // Get a new error, don't use deep comparison for errors.\n finalState.error = err;\n // Error event and retry logic. Only for the actual request, not\n // deduped ones.\n if (shouldStartNewRequest && callbackSafeguard()) {\n currentConfig.onError(err, key, currentConfig);\n if (shouldRetryOnError === true || (0,swr_internal__rspack_import_3.isFunction)(shouldRetryOnError) && shouldRetryOnError(err)) {\n if (!getConfig().revalidateOnFocus || !getConfig().revalidateOnReconnect || isActive()) {\n // If it's inactive, stop. It will auto-revalidate when\n // refocusing or reconnecting.\n // When retrying, deduplication is always enabled.\n currentConfig.onErrorRetry(err, key, currentConfig, (_opts)=>{\n const revalidators = EVENT_REVALIDATORS[key];\n if (revalidators && revalidators[0]) {\n revalidators[0](swr_internal__rspack_import_3.revalidateEvents.ERROR_REVALIDATE_EVENT, _opts);\n }\n }, {\n retryCount: (opts.retryCount || 0) + 1,\n dedupe: true\n });\n }\n }\n }\n }\n }\n // Mark loading as stopped.\n loading = false;\n // Update the current hook's state.\n finishRequestAndUpdateState();\n return true;\n }, // `setState` is immutable, and `eventsCallback`, `fnArg`, and\n // `keyValidating` are depending on `key`, so we can exclude them from\n // the deps array.\n //\n // FIXME:\n // `fn` and `config` might be changed during the lifecycle,\n // but they might be changed every render like this.\n // `useSWR('key', () => fetch('/api/'), { suspense: true })`\n // So we omit the values from the deps array\n // even though it might cause unexpected behaviors.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n key,\n cache\n ]);\n // Similar to the global mutate but bound to the current cache and key.\n // `cache` isn't allowed to change during the lifecycle.\n const boundMutate = (0,react__rspack_import_0.useCallback)(// Use callback to make sure `keyRef.current` returns latest result every time\n (...args)=>{\n return (0,swr_internal__rspack_import_3.internalMutate)(cache, keyRef.current, ...args);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // The logic for updating refs.\n (0,swr_internal__rspack_import_3.useIsomorphicLayoutEffect)(()=>{\n fetcherRef.current = fetcher;\n configRef.current = config;\n // Handle laggy data updates. If there's cached data of the current key,\n // it'll be the correct reference.\n if (!(0,swr_internal__rspack_import_3.isUndefined)(cachedData)) {\n laggyDataRef.current = cachedData;\n }\n });\n // After mounted or key changed.\n (0,swr_internal__rspack_import_3.useIsomorphicLayoutEffect)(()=>{\n if (!key) return;\n const softRevalidate = revalidate.bind(swr_internal__rspack_import_3.UNDEFINED, WITH_DEDUPE);\n // Expose revalidators to global event listeners. So we can trigger\n // revalidation from the outside.\n let nextFocusRevalidatedAt = 0;\n const onRevalidate = (type, opts = {})=>{\n if (type == swr_internal__rspack_import_3.revalidateEvents.FOCUS_EVENT) {\n const now = Date.now();\n if (getConfig().revalidateOnFocus && now > nextFocusRevalidatedAt && isActive()) {\n nextFocusRevalidatedAt = now + getConfig().focusThrottleInterval;\n softRevalidate();\n }\n } else if (type == swr_internal__rspack_import_3.revalidateEvents.RECONNECT_EVENT) {\n if (getConfig().revalidateOnReconnect && isActive()) {\n softRevalidate();\n }\n } else if (type == swr_internal__rspack_import_3.revalidateEvents.MUTATE_EVENT) {\n return revalidate();\n } else if (type == swr_internal__rspack_import_3.revalidateEvents.ERROR_REVALIDATE_EVENT) {\n return revalidate(opts);\n }\n return;\n };\n const unsubEvents = (0,swr_internal__rspack_import_3.subscribeCallback)(key, EVENT_REVALIDATORS, onRevalidate);\n // Mark the component as mounted and update corresponding refs.\n unmountedRef.current = false;\n keyRef.current = key;\n initialMountedRef.current = true;\n // Keep the original key in the cache.\n setCache({\n _k: fnArg\n });\n // Trigger a revalidation\n if (shouldDoInitialRevalidation) {\n if ((0,swr_internal__rspack_import_3.isUndefined)(data) || swr_internal__rspack_import_3.IS_SERVER) {\n // Revalidate immediately.\n softRevalidate();\n } else {\n // Delay the revalidate if we have data to return so we won't block\n // rendering.\n (0,swr_internal__rspack_import_3.rAF)(softRevalidate);\n }\n }\n return ()=>{\n // Mark it as unmounted.\n unmountedRef.current = true;\n unsubEvents();\n };\n }, [\n key\n ]);\n // Polling\n (0,swr_internal__rspack_import_3.useIsomorphicLayoutEffect)(()=>{\n let timer;\n function next() {\n // Use the passed interval\n // ...or invoke the function with the updated data to get the interval\n const interval = (0,swr_internal__rspack_import_3.isFunction)(refreshInterval) ? refreshInterval(getCache().data) : refreshInterval;\n // We only start the next interval if `refreshInterval` is not 0, and:\n // - `force` is true, which is the start of polling\n // - or `timer` is not 0, which means the effect wasn't canceled\n if (interval && timer !== -1) {\n timer = setTimeout(execute, interval);\n }\n }\n function execute() {\n // Check if it's OK to execute:\n // Only revalidate when the page is visible, online, and not errored.\n if (!getCache().error && (refreshWhenHidden || getConfig().isVisible()) && (refreshWhenOffline || getConfig().isOnline())) {\n revalidate(WITH_DEDUPE).then(next);\n } else {\n // Schedule the next interval to check again.\n next();\n }\n }\n next();\n return ()=>{\n if (timer) {\n clearTimeout(timer);\n timer = -1;\n }\n };\n }, [\n refreshInterval,\n refreshWhenHidden,\n refreshWhenOffline,\n key\n ]);\n // Display debug info in React DevTools.\n (0,react__rspack_import_0.useDebugValue)(returnedData);\n // In Suspense mode, we can't return the empty `data` state.\n // If there is an `error`, the `error` needs to be thrown to the error boundary.\n // If there is no `error`, the `revalidation` promise needs to be thrown to\n // the suspense boundary.\n if (suspense && (0,swr_internal__rspack_import_3.isUndefined)(data) && key) {\n // SWR should throw when trying to use Suspense on the server with React 18,\n // without providing any initial data. See:\n // https://github.com/vercel/swr/issues/1832\n if (!swr_internal__rspack_import_3.IS_REACT_LEGACY && swr_internal__rspack_import_3.IS_SERVER) {\n throw new Error('Fallback data is required when using suspense in SSR.');\n }\n // Always update fetcher and config refs even with the Suspense mode.\n fetcherRef.current = fetcher;\n configRef.current = config;\n unmountedRef.current = false;\n const req = PRELOAD[key];\n if (!(0,swr_internal__rspack_import_3.isUndefined)(req)) {\n const promise = boundMutate(req);\n use(promise);\n }\n if ((0,swr_internal__rspack_import_3.isUndefined)(error)) {\n const promise = revalidate(WITH_DEDUPE);\n if (!(0,swr_internal__rspack_import_3.isUndefined)(returnedData)) {\n promise.status = 'fulfilled';\n promise.value = true;\n }\n use(promise);\n } else {\n throw error;\n }\n }\n return {\n mutate: boundMutate,\n get data () {\n stateDependencies.data = true;\n return returnedData;\n },\n get error () {\n stateDependencies.error = true;\n return error;\n },\n get isValidating () {\n stateDependencies.isValidating = true;\n return isValidating;\n },\n get isLoading () {\n stateDependencies.isLoading = true;\n return isLoading;\n }\n };\n};\nswr_internal__rspack_import_3.OBJECT.defineProperty(swr_internal__rspack_import_3.SWRConfig, 'defaultValue', {\n value: swr_internal__rspack_import_3.defaultConfig\n});\n/**\n * A hook to fetch data.\n *\n * @link https://swr.vercel.app\n * @example\n * ```jsx\n * import useSWR from 'swr'\n * function Profile() {\n * const { data, error, isLoading } = useSWR('/api/user', fetcher)\n * if (error) return <div>failed to load</div>\n * if (isLoading) return <div>loading...</div>\n * return <div>hello {data.name}!</div>\n * }\n * ```\n */ const useSWR = (0,swr_internal__rspack_import_3.withArgs)(useSWRHandler);\n\nconst getFirstPageKey = (getKey)=>{\n return (0,swr_internal__rspack_import_3.serialize)(getKey ? getKey(0, null) : null)[0];\n};\nconst unstable_serialize = (getKey)=>{\n return swr_internal__rspack_import_3.INFINITE_PREFIX + getFirstPageKey(getKey);\n};\n\n// We have to several type castings here because `useSWRInfinite` is a special\n// hook where `key` and return type are not like the normal `useSWR` types.\n// const INFINITE_PREFIX = '$inf$'\nconst EMPTY_PROMISE = Promise.resolve();\n// export const unstable_serialize = (getKey: SWRInfiniteKeyLoader) => {\n// return INFINITE_PREFIX + getFirstPageKey(getKey)\n// }\nconst infinite = (useSWRNext)=>(getKey, fn, config)=>{\n const didMountRef = (0,react__rspack_import_0.useRef)(false);\n const { cache: cache$1, initialSize = 1, revalidateAll = false, persistSize = false, revalidateFirstPage = true, revalidateOnMount = false, parallel = false } = config;\n const [, , , PRELOAD] = swr_internal__rspack_import_3.SWRGlobalState.get(swr_internal__rspack_import_3.cache);\n // The serialized key of the first page. This key will be used to store\n // metadata of this SWR infinite hook.\n let infiniteKey;\n try {\n infiniteKey = getFirstPageKey(getKey);\n if (infiniteKey) infiniteKey = swr_internal__rspack_import_3.INFINITE_PREFIX + infiniteKey;\n } catch (err) {\n // Not ready yet.\n }\n const [get, set, subscribeCache] = (0,swr_internal__rspack_import_3.createCacheHelper)(cache$1, infiniteKey);\n const getSnapshot = (0,react__rspack_import_0.useCallback)(()=>{\n const size = (0,swr_internal__rspack_import_3.isUndefined)(get()._l) ? initialSize : get()._l;\n return size;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n cache$1,\n infiniteKey,\n initialSize\n ]);\n (0,use_sync_external_store_shim_index_js__rspack_import_2.useSyncExternalStore)((0,react__rspack_import_0.useCallback)((callback)=>{\n if (infiniteKey) return subscribeCache(infiniteKey, ()=>{\n callback();\n });\n return ()=>{};\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n cache$1,\n infiniteKey\n ]), getSnapshot, getSnapshot);\n const resolvePageSize = (0,react__rspack_import_0.useCallback)(()=>{\n const cachedPageSize = get()._l;\n return (0,swr_internal__rspack_import_3.isUndefined)(cachedPageSize) ? initialSize : cachedPageSize;\n // `cache` isn't allowed to change during the lifecycle\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n infiniteKey,\n initialSize\n ]);\n // keep the last page size to restore it with the persistSize option\n const lastPageSizeRef = (0,react__rspack_import_0.useRef)(resolvePageSize());\n // When the page key changes, we reset the page size if it's not persisted\n (0,swr_internal__rspack_import_3.useIsomorphicLayoutEffect)(()=>{\n if (!didMountRef.current) {\n didMountRef.current = true;\n return;\n }\n if (infiniteKey) {\n // If the key has been changed, we keep the current page size if persistSize is enabled\n // Otherwise, we reset the page size to cached pageSize\n set({\n _l: persistSize ? lastPageSizeRef.current : resolvePageSize()\n });\n }\n // `initialSize` isn't allowed to change during the lifecycle\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n infiniteKey,\n cache$1\n ]);\n // Needs to check didMountRef during mounting, not in the fetcher\n const shouldRevalidateOnMount = revalidateOnMount && !didMountRef.current;\n // Actual SWR hook to load all pages in one fetcher.\n const swr = useSWRNext(infiniteKey, async (key)=>{\n // get the revalidate context\n const forceRevalidateAll = get()._i;\n const shouldRevalidatePage = get()._r;\n set({\n _r: swr_internal__rspack_import_3.UNDEFINED\n });\n // return an array of page data\n const data = [];\n const pageSize = resolvePageSize();\n const [getCache] = (0,swr_internal__rspack_import_3.createCacheHelper)(cache$1, key);\n const cacheData = getCache().data;\n const revalidators = [];\n let previousPageData = null;\n for(let i = 0; i < pageSize; ++i){\n const [pageKey, pageArg] = (0,swr_internal__rspack_import_3.serialize)(getKey(i, parallel ? null : previousPageData));\n if (!pageKey) {\n break;\n }\n const [getSWRCache, setSWRCache] = (0,swr_internal__rspack_import_3.createCacheHelper)(cache$1, pageKey);\n // Get the cached page data.\n let pageData = getSWRCache().data;\n // should fetch (or revalidate) if:\n // - `revalidateAll` is enabled\n // - `mutate()` called\n // - the cache is missing\n // - it's the first page and it's not the initial render\n // - `revalidateOnMount` is enabled and it's on mount\n // - cache for that page has changed\n const shouldFetchPage = revalidateAll || forceRevalidateAll || (0,swr_internal__rspack_import_3.isUndefined)(pageData) || revalidateFirstPage && !i && !(0,swr_internal__rspack_import_3.isUndefined)(cacheData) || shouldRevalidateOnMount || cacheData && !(0,swr_internal__rspack_import_3.isUndefined)(cacheData[i]) && !config.compare(cacheData[i], pageData);\n if (fn && (typeof shouldRevalidatePage === 'function' ? shouldRevalidatePage(pageData, pageArg) : shouldFetchPage)) {\n const revalidate = async ()=>{\n const hasPreloadedRequest = pageKey in PRELOAD;\n if (!hasPreloadedRequest) {\n pageData = await fn(pageArg);\n } else {\n const req = PRELOAD[pageKey];\n // delete the preload cache key before resolving it\n // in case there's an error\n delete PRELOAD[pageKey];\n // get the page data from the preload cache\n pageData = await req;\n }\n setSWRCache({\n data: pageData,\n _k: pageArg\n });\n data[i] = pageData;\n };\n if (parallel) {\n revalidators.push(revalidate);\n } else {\n await revalidate();\n }\n } else {\n data[i] = pageData;\n }\n if (!parallel) {\n previousPageData = pageData;\n }\n }\n // flush all revalidateions in parallel\n if (parallel) {\n await Promise.all(revalidators.map((r)=>r()));\n }\n // once we executed the data fetching based on the context, clear the context\n set({\n _i: swr_internal__rspack_import_3.UNDEFINED\n });\n // return the data\n return data;\n }, config);\n const mutate = (0,react__rspack_import_0.useCallback)(// eslint-disable-next-line func-names\n function(data, opts) {\n // When passing as a boolean, it's explicitly used to disable/enable\n // revalidation.\n const options = typeof opts === 'boolean' ? {\n revalidate: opts\n } : opts || {};\n // Default to true.\n const shouldRevalidate = options.revalidate !== false;\n // It is possible that the key is still falsy.\n if (!infiniteKey) return EMPTY_PROMISE;\n if (shouldRevalidate) {\n if (!(0,swr_internal__rspack_import_3.isUndefined)(data)) {\n // We only revalidate the pages that are changed\n set({\n _i: false,\n _r: options.revalidate\n });\n } else {\n // Calling `mutate()`, we revalidate all pages\n set({\n _i: true,\n _r: options.revalidate\n });\n }\n }\n return arguments.length ? swr.mutate(data, {\n ...options,\n revalidate: shouldRevalidate\n }) : swr.mutate();\n }, // swr.mutate is always the same reference\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n infiniteKey,\n cache$1\n ]);\n // Extend the SWR API\n const setSize = (0,react__rspack_import_0.useCallback)((arg)=>{\n // It is possible that the key is still falsy.\n if (!infiniteKey) return EMPTY_PROMISE;\n const [, changeSize] = (0,swr_internal__rspack_import_3.createCacheHelper)(cache$1, infiniteKey);\n let size;\n if ((0,swr_internal__rspack_import_3.isFunction)(arg)) {\n size = arg(resolvePageSize());\n } else if (typeof arg == 'number') {\n size = arg;\n }\n if (typeof size != 'number') return EMPTY_PROMISE;\n changeSize({\n _l: size\n });\n lastPageSizeRef.current = size;\n // Calculate the page data after the size change.\n const data = [];\n const [getInfiniteCache] = (0,swr_internal__rspack_import_3.createCacheHelper)(cache$1, infiniteKey);\n let previousPageData = null;\n for(let i = 0; i < size; ++i){\n const [pageKey] = (0,swr_internal__rspack_import_3.serialize)(getKey(i, previousPageData));\n const [getCache] = (0,swr_internal__rspack_import_3.createCacheHelper)(cache$1, pageKey);\n // Get the cached page data.\n const pageData = pageKey ? getCache().data : swr_internal__rspack_import_3.UNDEFINED;\n // Call `mutate` with infinte cache data if we can't get it from the page cache.\n if ((0,swr_internal__rspack_import_3.isUndefined)(pageData)) {\n return mutate(getInfiniteCache().data);\n }\n data.push(pageData);\n previousPageData = pageData;\n }\n return mutate(data);\n }, // exclude getKey from the dependencies, which isn't allowed to change during the lifecycle\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n infiniteKey,\n cache$1,\n mutate,\n resolvePageSize\n ]);\n // Use getter functions to avoid unnecessary re-renders caused by triggering\n // all the getters of the returned swr object.\n return {\n size: resolvePageSize(),\n setSize,\n mutate,\n get data () {\n return swr.data;\n },\n get error () {\n return swr.error;\n },\n get isValidating () {\n return swr.isValidating;\n },\n get isLoading () {\n return swr.isLoading;\n }\n };\n };\nconst useSWRInfinite = (0,swr_internal__rspack_import_3.withMiddleware)(useSWR, infinite);\n\n\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218L2hvbWUvcnVubmVyL3dvcmsvb3Blbm1ycy1lc20tY29yZS9vcGVubXJzLWVzbS1jb3JlL25vZGVfbW9kdWxlcy9zd3IvZGlzdC9pbmZpbml0ZS9pbmRleC5tanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zd3IvZGlzdC9pbmZpbml0ZS9pbmRleC5tanM/YTljNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3RFeHBvcnRzLCB7IHVzZVJlZiwgdXNlTWVtbywgdXNlQ2FsbGJhY2ssIHVzZURlYnVnVmFsdWUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgJ2NsaWVudC1vbmx5JztcbmltcG9ydCB7IHVzZVN5bmNFeHRlcm5hbFN0b3JlIH0gZnJvbSAndXNlLXN5bmMtZXh0ZXJuYWwtc3RvcmUvc2hpbS9pbmRleC5qcyc7XG5pbXBvcnQgeyBPQkpFQ1QsIFNXUkNvbmZpZywgZGVmYXVsdENvbmZpZywgd2l0aEFyZ3MsIFNXUkdsb2JhbFN0YXRlLCBzZXJpYWxpemUsIGNyZWF0ZUNhY2hlSGVscGVyLCBpc1VuZGVmaW5lZCwgZ2V0VGltZXN0YW1wLCBVTkRFRklORUQsIGlzRnVuY3Rpb24sIHJldmFsaWRhdGVFdmVudHMsIGludGVybmFsTXV0YXRlLCB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0LCBzdWJzY3JpYmVDYWxsYmFjaywgSVNfU0VSVkVSLCByQUYsIElTX1JFQUNUX0xFR0FDWSwgbWVyZ2VPYmplY3RzLCBJTkZJTklURV9QUkVGSVgsIHdpdGhNaWRkbGV3YXJlLCBjYWNoZSB9IGZyb20gJ3N3ci9faW50ZXJuYWwnO1xuXG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cInJlYWN0L2V4cGVyaW1lbnRhbFwiIC8+XG5jb25zdCB1c2UgPSBSZWFjdEV4cG9ydHMudXNlIHx8ICgocHJvbWlzZSk9PntcbiAgICBpZiAocHJvbWlzZS5zdGF0dXMgPT09ICdwZW5kaW5nJykge1xuICAgICAgICB0aHJvdyBwcm9taXNlO1xuICAgIH0gZWxzZSBpZiAocHJvbWlzZS5zdGF0dXMgPT09ICdmdWxmaWxsZWQnKSB7XG4gICAgICAgIHJldHVybiBwcm9taXNlLnZhbHVlO1xuICAgIH0gZWxzZSBpZiAocHJvbWlzZS5zdGF0dXMgPT09ICdyZWplY3RlZCcpIHtcbiAgICAgICAgdGhyb3cgcHJvbWlzZS5yZWFzb247XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcHJvbWlzZS5zdGF0dXMgPSAncGVuZGluZyc7XG4gICAgICAgIHByb21pc2UudGhlbigodik9PntcbiAgICAgICAgICAgIHByb21pc2Uuc3RhdHVzID0gJ2Z1bGZpbGxlZCc7XG4gICAgICAgICAgICBwcm9taXNlLnZhbHVlID0gdjtcbiAgICAgICAgfSwgKGUpPT57XG4gICAgICAgICAgICBwcm9taXNlLnN0YXR1cyA9ICdyZWplY3RlZCc7XG4gICAgICAgICAgICBwcm9taXNlLnJlYXNvbiA9IGU7XG4gICAgICAgIH0pO1xuICAgICAgICB0aHJvdyBwcm9taXNlO1xuICAgIH1cbn0pO1xuY29uc3QgV0lUSF9ERURVUEUgPSB7XG4gICAgZGVkdXBlOiB0cnVlXG59O1xuY29uc3QgdXNlU1dSSGFuZGxlciA9IChfa2V5LCBmZXRjaGVyLCBjb25maWcpPT57XG4gICAgY29uc3QgeyBjYWNoZSwgY29tcGFyZSwgc3VzcGVuc2UsIGZhbGxiYWNrRGF0YSwgcmV2YWxpZGF0ZU9uTW91bnQsIHJldmFsaWRhdGVJZlN0YWxlLCByZWZyZXNoSW50ZXJ2YWwsIHJlZnJlc2hXaGVuSGlkZGVuLCByZWZyZXNoV2hlbk9mZmxpbmUsIGtlZXBQcmV2aW91c0RhdGEgfSA9IGNvbmZpZztcbiAgICBjb25zdCBbRVZFTlRfUkVWQUxJREFUT1JTLCBNVVRBVElPTiwgRkVUQ0gsIFBSRUxPQURdID0gU1dSR2xvYmFsU3RhdGUuZ2V0KGNhY2hlKTtcbiAgICAvLyBga2V5YCBpcyB0aGUgaWRlbnRpZmllciBvZiB0aGUgU1dSIGludGVybmFsIHN0YXRlLFxuICAgIC8vIGBmbkFyZ2AgaXMgdGhlIGFyZ3VtZW50L2FyZ3VtZW50cyBwYXJzZWQgZnJvbSB0aGUga2V5LCB3aGljaCB3aWxsIGJlIHBhc3NlZFxuICAgIC8vIHRvIHRoZSBmZXRjaGVyLlxuICAgIC8vIEFsbCBvZiB0aGVtIGFyZSBkZXJpdmVkIGZyb20gYF9rZXlgLlxuICAgIGNvbnN0IFtrZXksIGZuQXJnXSA9IHNlcmlhbGl6ZShfa2V5KTtcbiAgICAvLyBJZiBpdCdzIHRoZSBpbml0aWFsIHJlbmRlciBvZiB0aGlzIGhvb2suXG4gICAgY29uc3QgaW5pdGlhbE1vdW50ZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIC8vIElmIHRoZSBob29rIGlzIHVubW91bnRlZCBhbHJlYWR5LiBUaGlzIHdpbGwgYmUgdXNlZCB0byBwcmV2ZW50IHNvbWUgZWZmZWN0c1xuICAgIC8vIHRvIGJlIGNhbGxlZCBhZnRlciB1bm1vdW50aW5nLlxuICAgIGNvbnN0IHVubW91bnRlZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgLy8gUmVmcyB0byBrZWVwIHRoZSBrZXkgYW5kIGNvbmZpZy5cbiAgICBjb25zdCBrZXlSZWYgPSB1c2VSZWYoa2V5KTtcbiAgICBjb25zdCBmZXRjaGVyUmVmID0gdXNlUmVmKGZldGNoZXIpO1xuICAgIGNvbnN0IGNvbmZpZ1JlZiA9IHVzZVJlZihjb25maWcpO1xuICAgIGNvbnN0IGdldENvbmZpZyA9ICgpPT5jb25maWdSZWYuY3VycmVudDtcbiAgICBjb25zdCBpc0FjdGl2ZSA9ICgpPT5nZXRDb25maWcoKS5pc1Zpc2libGUoKSAmJiBnZXRDb25maWcoKS5pc09ubGluZSgpO1xuICAgIGNvbnN0IFtnZXRDYWNoZSwgc2V0Q2FjaGUsIHN1YnNjcmliZUNhY2hlLCBnZXRJbml0aWFsQ2FjaGVdID0gY3JlYXRlQ2FjaGVIZWxwZXIoY2FjaGUsIGtleSk7XG4gICAgY29uc3Qgc3RhdGVEZXBlbmRlbmNpZXMgPSB1c2VSZWYoe30pLmN1cnJlbnQ7XG4gICAgY29uc3QgZmFsbGJhY2sgPSBpc1VuZGVmaW5lZChmYWxsYmFja0RhdGEpID8gY29uZmlnLmZhbGxiYWNrW2tleV0gOiBmYWxsYmFja0RhdGE7XG4gICAgY29uc3QgaXNFcXVhbCA9IChwcmV2LCBjdXJyZW50KT0+e1xuICAgICAgICBmb3IoY29uc3QgXyBpbiBzdGF0ZURlcGVuZGVuY2llcyl7XG4gICAgICAgICAgICBjb25zdCB0ID0gXztcbiAgICAgICAgICAgIGlmICh0ID09PSAnZGF0YScpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNvbXBhcmUocHJldlt0XSwgY3VycmVudFt0XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChwcmV2W3RdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghY29tcGFyZShyZXR1cm5lZERhdGEsIGN1cnJlbnRbdF0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50W3RdICE9PSBwcmV2W3RdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRTbmFwc2hvdCA9IHVzZU1lbW8oKCk9PntcbiAgICAgICAgY29uc3Qgc2hvdWxkU3RhcnRSZXF1ZXN0ID0gKCgpPT57XG4gICAgICAgICAgICBpZiAoIWtleSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgaWYgKCFmZXRjaGVyKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAvLyBJZiBgcmV2YWxpZGF0ZU9uTW91bnRgIGlzIHNldCwgd2UgdGFrZSB0aGUgdmFsdWUgZGlyZWN0bHkuXG4gICAgICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKHJldmFsaWRhdGVPbk1vdW50KSkgcmV0dXJuIHJldmFsaWRhdGVPbk1vdW50O1xuICAgICAgICAgICAgLy8gSWYgaXQncyBwYXVzZWQsIHdlIHNraXAgcmV2YWxpZGF0aW9uLlxuICAgICAgICAgICAgaWYgKGdldENvbmZpZygpLmlzUGF1c2VkKCkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGlmIChzdXNwZW5zZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChyZXZhbGlkYXRlSWZTdGFsZSkpIHJldHVybiByZXZhbGlkYXRlSWZTdGFsZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KSgpO1xuICAgICAgICAvLyBHZXQgdGhlIGNhY2hlIGFuZCBtZXJnZSBpdCB3aXRoIGV4cGVjdGVkIHN0YXRlcy5cbiAgICAgICAgY29uc3QgZ2V0U2VsZWN0ZWRDYWNoZSA9IChzdGF0ZSk9PntcbiAgICAgICAgICAgIC8vIFdlIG9ubHkgc2VsZWN0IHRoZSBuZWVkZWQgZmllbGRzIGZyb20gdGhlIHN0YXRlLlxuICAgICAgICAgICAgY29uc3Qgc25hcHNob3QgPSBtZXJnZU9iamVjdHMoc3RhdGUpO1xuICAgICAgICAgICAgZGVsZXRlIHNuYXBzaG90Ll9rO1xuICAgICAgICAgICAgaWYgKCFzaG91bGRTdGFydFJlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc25hcHNob3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGlzVmFsaWRhdGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpc0xvYWRpbmc6IHRydWUsXG4gICAgICAgICAgICAgICAgLi4uc25hcHNob3RcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNhY2hlZERhdGEgPSBnZXRDYWNoZSgpO1xuICAgICAgICBjb25zdCBpbml0aWFsRGF0YSA9IGdldEluaXRpYWxDYWNoZSgpO1xuICAgICAgICBjb25zdCBjbGllbnRTbmFwc2hvdCA9IGdldFNlbGVjdGVkQ2FjaGUoY2FjaGVkRGF0YSk7XG4gICAgICAgIGNvbnN0IHNlcnZlclNuYXBzaG90ID0gY2FjaGVkRGF0YSA9PT0gaW5pdGlhbERhdGEgPyBjbGllbnRTbmFwc2hvdCA6IGdldFNlbGVjdGVkQ2FjaGUoaW5pdGlhbERhdGEpO1xuICAgICAgICAvLyBUbyBtYWtlIHN1cmUgdGhhdCB3ZSBhcmUgcmV0dXJuaW5nIHRoZSBzYW1lIG9iamVjdCByZWZlcmVuY2UgdG8gYXZvaWRcbiAgICAgICAgLy8gdW5uZWNlc3NhcnkgcmUtcmVuZGVycywgd2Uga2VlcCB0aGUgcHJldmlvdXMgc25hcHNob3QgYW5kIHVzZSBkZWVwXG4gICAgICAgIC8vIGNvbXBhcmlzb24gdG8gY2hlY2sgaWYgd2UgbmVlZCB0byByZXR1cm4gYSBuZXcgb25lLlxuICAgICAgICBsZXQgbWVtb3JpemVkU25hcHNob3QgPSBjbGllbnRTbmFwc2hvdDtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICgpPT57XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3U25hcHNob3QgPSBnZXRTZWxlY3RlZENhY2hlKGdldENhY2hlKCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBhcmVSZXN1bHQgPSBpc0VxdWFsKG5ld1NuYXBzaG90LCBtZW1vcml6ZWRTbmFwc2hvdCk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTWVudGFsbHksIHdlIHNob3VsZCBhbHdheXMgcmV0dXJuIHRoZSBgbWVtb3JpemVkU25hcHNob3RgIGhlcmVcbiAgICAgICAgICAgICAgICAgICAgLy8gYXMgdGhlcmUncyBubyBjaGFuZ2UgYmV0d2VlbiB0aGUgbmV3IGFuZCBvbGQgc25hcHNob3RzLlxuICAgICAgICAgICAgICAgICAgICAvLyBIb3dldmVyLCBzaW5jZSB0aGUgYGlzRXF1YWxgIGZ1bmN0aW9uIG9ubHkgY29tcGFyZXMgc2VsZWN0ZWQgZmllbGRzLFxuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgdmFsdWVzIG9mIHRoZSB1bnNlbGVjdGVkIGZpZWxkcyBtaWdodCBiZSBjaGFuZ2VkLiBUaGF0J3NcbiAgICAgICAgICAgICAgICAgICAgLy8gc2ltcGx5IGJlY2F1c2Ugd2UgZGlkbid0IHRyYWNrIHRoZW0uXG4gICAgICAgICAgICAgICAgICAgIC8vIFRvIHN1cHBvcnQgdGhlIGNhc2UgaW4gaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9zd3IvcHVsbC8yNTc2LFxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGVzZSBmaWVsZHMgaW4gdGhlIGBtZW1vcml6ZWRTbmFwc2hvdGAgdG9vXG4gICAgICAgICAgICAgICAgICAgIC8vIHdpdGggZGlyZWN0IG11dGF0aW9ucyB0byBlbnN1cmUgdGhlIHNuYXBzaG90IGlzIGFsd2F5cyB1cC10by1kYXRlXG4gICAgICAgICAgICAgICAgICAgIC8vIGV2ZW4gZm9yIHRoZSB1bnNlbGVjdGVkIGZpZWxkcywgYnV0IG9ubHkgdHJpZ2dlciByZS1yZW5kZXJzIHdoZW5cbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHNlbGVjdGVkIGZpZWxkcyBhcmUgY2hhbmdlZC5cbiAgICAgICAgICAgICAgICAgICAgbWVtb3JpemVkU25hcHNob3QuZGF0YSA9IG5ld1NuYXBzaG90LmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIG1lbW9yaXplZFNuYXBzaG90LmlzTG9hZGluZyA9IG5ld1NuYXBzaG90LmlzTG9hZGluZztcbiAgICAgICAgICAgICAgICAgICAgbWVtb3JpemVkU25hcHNob3QuaXNWYWxpZGF0aW5nID0gbmV3U25hcHNob3QuaXNWYWxpZGF0aW5nO1xuICAgICAgICAgICAgICAgICAgICBtZW1vcml6ZWRTbmFwc2hvdC5lcnJvciA9IG5ld1NuYXBzaG90LmVycm9yO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWVtb3JpemVkU25hcHNob3Q7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbWVtb3JpemVkU25hcHNob3QgPSBuZXdTbmFwc2hvdDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1NuYXBzaG90O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKT0+c2VydmVyU25hcHNob3RcbiAgICAgICAgXTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW1xuICAgICAgICBjYWNoZSxcbiAgICAgICAga2V5XG4gICAgXSk7XG4gICAgLy8gR2V0IHRoZSBjdXJyZW50IHN0YXRlIHRoYXQgU1dSIHNob3VsZCByZXR1cm4uXG4gICAgY29uc3QgY2FjaGVkID0gdXNlU3luY0V4dGVybmFsU3RvcmUodXNlQ2FsbGJhY2soKGNhbGxiYWNrKT0+c3Vic2NyaWJlQ2FjaGUoa2V5LCAoY3VycmVudCwgcHJldik9PntcbiAgICAgICAgICAgIGlmICghaXNFcXVhbChwcmV2LCBjdXJyZW50KSkgY2FsbGJhY2soKTtcbiAgICAgICAgfSksIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbXG4gICAgICAgIGNhY2hlLFxuICAgICAgICBrZXlcbiAgICBdKSwgZ2V0U25hcHNob3RbMF0sIGdldFNuYXBzaG90WzFdKTtcbiAgICBjb25zdCBpc0luaXRpYWxNb3VudCA9ICFpbml0aWFsTW91bnRlZFJlZi5jdXJyZW50O1xuICAgIGNvbnN0IGhhc1JldmFsaWRhdG9yID0gRVZFTlRfUkVWQUxJREFUT1JTW2tleV0gJiYgRVZFTlRfUkVWQUxJREFUT1JTW2tleV0ubGVuZ3RoID4gMDtcbiAgICBjb25zdCBjYWNoZWREYXRhID0gY2FjaGVkLmRhdGE7XG4gICAgY29uc3QgZGF0YSA9IGlzVW5kZWZpbmVkKGNhY2hlZERhdGEpID8gZmFsbGJhY2sgOiBjYWNoZWREYXRhO1xuICAgIGNvbnN0IGVycm9yID0gY2FjaGVkLmVycm9yO1xuICAgIC8vIFVzZSBhIHJlZiB0byBzdG9yZSBwcmV2aW91c2x5IHJldHVybmVkIGRhdGEuIFVzZSB0aGUgaW5pdGlhbCBkYXRhIGFzIGl0cyBpbml0aWFsIHZhbHVlLlxuICAgIGNvbnN0IGxhZ2d5RGF0YVJlZiA9IHVzZVJlZihkYXRhKTtcbiAgICBjb25zdCByZXR1cm5lZERhdGEgPSBrZWVwUHJldmlvdXNEYXRhID8gaXNVbmRlZmluZWQoY2FjaGVkRGF0YSkgPyBsYWdneURhdGFSZWYuY3VycmVudCA6IGNhY2hlZERhdGEgOiBkYXRhO1xuICAgIC8vIC0gU3VzcGVuc2UgbW9kZSBhbmQgdGhlcmUncyBzdGFsZSBkYXRhIGZvciB0aGUgaW5pdGlhbCByZW5kZXIuXG4gICAgLy8gLSBOb3Qgc3VzcGVuc2UgbW9kZSBhbmQgdGhlcmUgaXMgbm8gZmFsbGJhY2sgZGF0YSBhbmQgYHJldmFsaWRhdGVJZlN0YWxlYCBpcyBlbmFibGVkLlxuICAgIC8vIC0gYHJldmFsaWRhdGVJZlN0YWxlYCBpcyBlbmFibGVkIGJ1dCBgZGF0YWAgaXMgbm90IGRlZmluZWQuXG4gICAgY29uc3Qgc2hvdWxkRG9Jbml0aWFsUmV2YWxpZGF0aW9uID0gKCgpPT57XG4gICAgICAgIC8vIGlmIGEga2V5IGFscmVhZHkgaGFzIHJldmFsaWRhdG9ycyBhbmQgYWxzbyBoYXMgZXJyb3IsIHdlIHNob3VsZCBub3QgdHJpZ2dlciByZXZhbGlkYXRpb25cbiAgICAgICAgaWYgKGhhc1JldmFsaWRhdG9yICYmICFpc1VuZGVmaW5lZChlcnJvcikpIHJldHVybiBmYWxzZTtcbiAgICAgICAgLy8gSWYgYHJldmFsaWRhdGVPbk1vdW50YCBpcyBzZXQsIHdlIHRha2UgdGhlIHZhbHVlIGRpcmVjdGx5LlxuICAgICAgICBpZiAoaXNJbml0aWFsTW91bnQgJiYgIWlzVW5kZWZpbmVkKHJldmFsaWRhdGVPbk1vdW50KSkgcmV0dXJuIHJldmFsaWRhdGVPbk1vdW50O1xuICAgICAgICAvLyBJZiBpdCdzIHBhdXNlZCwgd2Ugc2tpcCByZXZhbGlkYXRpb24uXG4gICAgICAgIGlmIChnZXRDb25maWcoKS5pc1BhdXNlZCgpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIC8vIFVuZGVyIHN1c3BlbnNlIG1vZGUsIGl0IHdpbGwgYWx3YXlzIGZldGNoIG9uIHJlbmRlciBpZiB0aGVyZSBpcyBub1xuICAgICAgICAvLyBzdGFsZSBkYXRhIHNvIG5vIG5lZWQgdG8gcmV2YWxpZGF0ZSBpbW1lZGlhdGVseSBtb3VudCBpdCBhZ2Fpbi5cbiAgICAgICAgLy8gSWYgZGF0YSBleGlzdHMsIG9ubHkgcmV2YWxpZGF0ZSBpZiBgcmV2YWxpZGF0ZUlmU3RhbGVgIGlzIHRydWUuXG4gICAgICAgIGlmIChzdXNwZW5zZSkgcmV0dXJuIGlzVW5kZWZpbmVkKGRhdGEpID8gZmFsc2UgOiByZXZhbGlkYXRlSWZTdGFsZTtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gc3RhbGUgZGF0YSwgd2UgbmVlZCB0byByZXZhbGlkYXRlIHdoZW4gbW91bnQ7XG4gICAgICAgIC8vIElmIGByZXZhbGlkYXRlSWZTdGFsZWAgaXMgc2V0IHRvIHRydWUsIHdlIHdpbGwgYWx3YXlzIHJldmFsaWRhdGUuXG4gICAgICAgIHJldHVybiBpc1VuZGVmaW5lZChkYXRhKSB8fCByZXZhbGlkYXRlSWZTdGFsZTtcbiAgICB9KSgpO1xuICAgIC8vIFJlc29sdmUgdGhlIGRlZmF1bHQgdmFsaWRhdGluZyBzdGF0ZTpcbiAgICAvLyBJZiBpdCdzIGFibGUgdG8gdmFsaWRhdGUsIGFuZCBpdCBzaG91bGQgcmV2YWxpZGF0ZSB3aGVuIG1vdW50LCB0aGlzIHdpbGwgYmUgdHJ1ZS5cbiAgICBjb25zdCBkZWZhdWx0VmFsaWRhdGluZ1N0YXRlID0gISEoa2V5ICYmIGZldGNoZXIgJiYgaXNJbml0aWFsTW91bnQgJiYgc2hvdWxkRG9Jbml0aWFsUmV2YWxpZGF0aW9uKTtcbiAgICBjb25zdCBpc1ZhbGlkYXRpbmcgPSBpc1VuZGVmaW5lZChjYWNoZWQuaXNWYWxpZGF0aW5nKSA/IGRlZmF1bHRWYWxpZGF0aW5nU3RhdGUgOiBjYWNoZWQuaXNWYWxpZGF0aW5nO1xuICAgIGNvbnN0IGlzTG9hZGluZyA9IGlzVW5kZWZpbmVkKGNhY2hlZC5pc0xvYWRpbmcpID8gZGVmYXVsdFZhbGlkYXRpbmdTdGF0ZSA6IGNhY2hlZC5pc0xvYWRpbmc7XG4gICAgLy8gVGhlIHJldmFsaWRhdGlvbiBmdW5jdGlvbiBpcyBhIGNhcmVmdWxseSBjcmFmdGVkIHdyYXBwZXIgb2YgdGhlIG9yaWdpbmFsXG4gICAgLy8gYGZldGNoZXJgLCB0byBjb3JyZWN0bHkgaGFuZGxlIHRoZSBtYW55IGVkZ2UgY2FzZXMuXG4gICAgY29uc3QgcmV2YWxpZGF0ZSA9IHVzZUNhbGxiYWNrKGFzeW5jIChyZXZhbGlkYXRlT3B0cyk9PntcbiAgICAgICAgY29uc3QgY3VycmVudEZldGNoZXIgPSBmZXRjaGVyUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICgha2V5IHx8ICFjdXJyZW50RmV0Y2hlciB8fCB1bm1vdW50ZWRSZWYuY3VycmVudCB8fCBnZXRDb25maWcoKS5pc1BhdXNlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG5ld0RhdGE7XG4gICAgICAgIGxldCBzdGFydEF0O1xuICAgICAgICBsZXQgbG9hZGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IG9wdHMgPSByZXZhbGlkYXRlT3B0cyB8fCB7fTtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gb25nb2luZyBjb25jdXJyZW50IHJlcXVlc3QsIG9yIGBkZWR1cGVgIGlzIG5vdCBzZXQsIGFcbiAgICAgICAgLy8gbmV3IHJlcXVlc3Qgc2hvdWxkIGJlIGluaXRpYXRlZC5cbiAgICAgICAgY29uc3Qgc2hvdWxkU3RhcnROZXdSZXF1ZXN0ID0gIUZFVENIW2tleV0gfHwgIW9wdHMuZGVkdXBlO1xuICAgICAgICAvKlxuICAgICAgICAgRm9yIFJlYWN0IDE3XG4gICAgICAgICBEbyB1bm1vdW50IGNoZWNrIGZvciBjYWxsczpcbiAgICAgICAgIElmIGtleSBoYXMgY2hhbmdlZCBkdXJpbmcgdGhlIHJldmFsaWRhdGlvbiwgb3IgdGhlIGNvbXBvbmVudCBoYXMgYmVlblxuICAgICAgICAgdW5tb3VudGVkLCBvbGQgZGlzcGF0Y2ggYW5kIG9sZCBldmVudCBjYWxsYmFja3Mgc2hvdWxkIG5vdCB0YWtlIGFueVxuICAgICAgICAgZWZmZWN0XG5cbiAgICAgICAgRm9yIFJlYWN0IDE4XG4gICAgICAgIG9ubHkgY2hlY2sgaWYga2V5IGhhcyBjaGFuZ2VkXG4gICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdHdnL3JlYWN0LTE4L2Rpc2N1c3Npb25zLzgyXG4gICAgICAqLyBjb25zdCBjYWxsYmFja1NhZmVndWFyZCA9ICgpPT57XG4gICAgICAgICAgICBpZiAoSVNfUkVBQ1RfTEVHQUNZKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICF1bm1vdW50ZWRSZWYuY3VycmVudCAmJiBrZXkgPT09IGtleVJlZi5jdXJyZW50ICYmIGluaXRpYWxNb3VudGVkUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ga2V5ID09PSBrZXlSZWYuY3VycmVudDtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gVGhlIGZpbmFsIHN0YXRlIG9iamVjdCB3aGVuIHRoZSByZXF1ZXN0IGZpbmlzaGVzLlxuICAgICAgICBjb25zdCBmaW5hbFN0YXRlID0ge1xuICAgICAgICAgICAgaXNWYWxpZGF0aW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGlzTG9hZGluZzogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZmluaXNoUmVxdWVzdEFuZFVwZGF0ZVN0YXRlID0gKCk9PntcbiAgICAgICAgICAgIHNldENhY2hlKGZpbmFsU3RhdGUpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjbGVhbnVwU3RhdGUgPSAoKT0+e1xuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgaXQncyBzdGlsbCB0aGUgc2FtZSByZXF1ZXN0IGJlZm9yZSBkZWxldGluZyBpdC5cbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RJbmZvID0gRkVUQ0hba2V5XTtcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0SW5mbyAmJiByZXF1ZXN0SW5mb1sxXSA9PT0gc3RhcnRBdCkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBGRVRDSFtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAvLyBTdGFydCBmZXRjaGluZy4gQ2hhbmdlIHRoZSBgaXNWYWxpZGF0aW5nYCBzdGF0ZSwgdXBkYXRlIHRoZSBjYWNoZS5cbiAgICAgICAgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICAgICAgICAgICAgaXNWYWxpZGF0aW5nOiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIC8vIEl0IGlzIGluIHRoZSBgaXNMb2FkaW5nYCBzdGF0ZSwgaWYgYW5kIG9ubHkgaWYgdGhlcmUgaXMgbm8gY2FjaGVkIGRhdGEuXG4gICAgICAgIC8vIFRoaXMgYnlwYXNzZXMgZmFsbGJhY2sgZGF0YSBhbmQgbGFnZ3kgZGF0YS5cbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKGdldENhY2hlKCkuZGF0YSkpIHtcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZS5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoc2hvdWxkU3RhcnROZXdSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgc2V0Q2FjaGUoaW5pdGlhbFN0YXRlKTtcbiAgICAgICAgICAgICAgICAvLyBJZiBubyBjYWNoZSBpcyBiZWluZyByZW5kZXJlZCBjdXJyZW50bHkgKGl0IHNob3dzIGEgYmxhbmsgcGFnZSksXG4gICAgICAgICAgICAgICAgLy8gd2UgdHJpZ2dlciB0aGUgbG9hZGluZyBzbG93IGV2ZW50LlxuICAgICAgICAgICAgICAgIGlmIChjb25maWcubG9hZGluZ1RpbWVvdXQgJiYgaXNVbmRlZmluZWQoZ2V0Q2FjaGUoKS5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9hZGluZyAmJiBjYWxsYmFja1NhZmVndWFyZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlnKCkub25Mb2FkaW5nU2xvdyhrZXksIGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sIGNvbmZpZy5sb2FkaW5nVGltZW91dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFN0YXJ0IHRoZSByZXF1ZXN0IGFuZCBzYXZlIHRoZSB0aW1lc3RhbXAuXG4gICAgICAgICAgICAgICAgLy8gS2V5IG11c3QgYmUgdHJ1dGh5IGlmIGVudGVyaW5nIGhlcmUuXG4gICAgICAgICAgICAgICAgRkVUQ0hba2V5XSA9IFtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEZldGNoZXIoZm5BcmcpLFxuICAgICAgICAgICAgICAgICAgICBnZXRUaW1lc3RhbXAoKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBbbmV3RGF0YSwgc3RhcnRBdF0gPSBGRVRDSFtrZXldO1xuICAgICAgICAgICAgbmV3RGF0YSA9IGF3YWl0IG5ld0RhdGE7XG4gICAgICAgICAgICBpZiAoc2hvdWxkU3RhcnROZXdSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHJlcXVlc3QgaXNuJ3QgaW50ZXJydXB0ZWQsIGNsZWFuIGl0IHVwIGFmdGVyIHRoZVxuICAgICAgICAgICAgICAgIC8vIGRlZHVwbGljYXRpb24gaW50ZXJ2YWwuXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChjbGVhbnVwU3RhdGUsIGNvbmZpZy5kZWR1cGluZ0ludGVydmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZXJlJ3JlIG90aGVyIG9uZ29pbmcgcmVxdWVzdChzKSwgc3RhcnRlZCBhZnRlciB0aGUgY3VycmVudCBvbmUsXG4gICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGlnbm9yZSB0aGUgY3VycmVudCBvbmUgdG8gYXZvaWQgcG9zc2libGUgcmFjZSBjb25kaXRpb25zOlxuICAgICAgICAgICAgLy8gICByZXExLS0tLS0tLS0tLS0tLS0tLS0tPnJlczEgICAgICAgIChjdXJyZW50IG9uZSlcbiAgICAgICAgICAgIC8vICAgICAgICByZXEyLS0tLS0tLS0tLS0tLS0tLT5yZXMyXG4gICAgICAgICAgICAvLyB0aGUgcmVxdWVzdCB0aGF0IGZpcmVkIGxhdGVyIHdpbGwgYWx3YXlzIGJlIGtlcHQuXG4gICAgICAgICAgICAvLyBUaGUgdGltZXN0YW1wIG1heWJlIGJlIGB1bmRlZmluZWRgIG9yIGEgbnVtYmVyXG4gICAgICAgICAgICBpZiAoIUZFVENIW2tleV0gfHwgRkVUQ0hba2V5XVsxXSAhPT0gc3RhcnRBdCkge1xuICAgICAgICAgICAgICAgIGlmIChzaG91bGRTdGFydE5ld1JlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrU2FmZWd1YXJkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbmZpZygpLm9uRGlzY2FyZGVkKGtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQ2xlYXIgZXJyb3IuXG4gICAgICAgICAgICBmaW5hbFN0YXRlLmVycm9yID0gVU5ERUZJTkVEO1xuICAgICAgICAgICAgLy8gSWYgdGhlcmUncmUgb3RoZXIgbXV0YXRpb25zKHMpLCB0aGF0IG92ZXJsYXBwZWQgd2l0aCB0aGUgY3VycmVudCByZXZhbGlkYXRpb246XG4gICAgICAgICAgICAvLyBjYXNlIDE6XG4gICAgICAgICAgICAvLyAgIHJlcS0tLS0tLS0tLS0tLS0tLS0tLT5yZXNcbiAgICAgICAgICAgIC8vICAgICAgIG11dGF0ZS0tLS0tLT5lbmRcbiAgICAgICAgICAgIC8vIGNhc2UgMjpcbiAgICAgICAgICAgIC8vICAgICAgICAgcmVxLS0tLS0tLS0tLS0tPnJlc1xuICAgICAgICAgICAgLy8gICBtdXRhdGUtLS0tLS0+ZW5kXG4gICAgICAgICAgICAvLyBjYXNlIDM6XG4gICAgICAgICAgICAvLyAgIHJlcS0tLS0tLS0tLS0tLS0tLS0tLT5yZXNcbiAgICAgICAgICAgIC8vICAgICAgIG11dGF0ZS0tLS0tLS0uLi4tLS0tLS0tLS0tPlxuICAgICAgICAgICAgLy8gd2UgaGF2ZSB0byBpZ25vcmUgdGhlIHJldmFsaWRhdGlvbiByZXN1bHQgKHJlcykgYmVjYXVzZSBpdCdzIG5vIGxvbmdlciBmcmVzaC5cbiAgICAgICAgICAgIC8vIG1lYW53aGlsZSwgYSBuZXcgcmV2YWxpZGF0aW9uIHNob3VsZCBiZSB0cmlnZ2VyZWQgd2hlbiB0aGUgbXV0YXRpb24gZW5kcy5cbiAgICAgICAgICAgIGNvbnN0IG11dGF0aW9uSW5mbyA9IE1VVEFUSU9OW2tleV07XG4gICAgICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKG11dGF0aW9uSW5mbykgJiYgLy8gY2FzZSAxXG4gICAgICAgICAgICAoc3RhcnRBdCA8PSBtdXRhdGlvbkluZm9bMF0gfHwgLy8gY2FzZSAyXG4gICAgICAgICAgICBzdGFydEF0IDw9IG11dGF0aW9uSW5mb1sxXSB8fCAvLyBjYXNlIDNcbiAgICAgICAgICAgIG11dGF0aW9uSW5mb1sxXSA9PT0gMCkpIHtcbiAgICAgICAgICAgICAgICBmaW5pc2hSZXF1ZXN0QW5kVXBkYXRlU3RhdGUoKTtcbiAgICAgICAgICAgICAgICBpZiAoc2hvdWxkU3RhcnROZXdSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjYWxsYmFja1NhZmVndWFyZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRDb25maWcoKS5vbkRpc2NhcmRlZChrZXkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIERlZXAgY29tcGFyZSB3aXRoIHRoZSBsYXRlc3Qgc3RhdGUgdG8gYXZvaWQgZXh0cmEgcmUtcmVuZGVycy5cbiAgICAgICAgICAgIC8vIEZvciBsb2NhbCBzdGF0ZSwgY29tcGFyZSBhbmQgYXNzaWduLlxuICAgICAgICAgICAgY29uc3QgY2FjaGVEYXRhID0gZ2V0Q2FjaGUoKS5kYXRhO1xuICAgICAgICAgICAgLy8gU2luY2UgdGhlIGNvbXBhcmUgZm4gY291bGQgYmUgY3VzdG9tIGZuXG4gICAgICAgICAgICAvLyBjYWNoZURhdGEgbWlnaHQgYmUgZGlmZmVyZW50IGZyb20gbmV3RGF0YSBldmVuIHdoZW4gY29tcGFyZSBmbiByZXR1cm5zIFRydWVcbiAgICAgICAgICAgIGZpbmFsU3RhdGUuZGF0YSA9IGNvbXBhcmUoY2FjaGVEYXRhLCBuZXdEYXRhKSA/IGNhY2hlRGF0YSA6IG5ld0RhdGE7XG4gICAgICAgICAgICAvLyBUcmlnZ2VyIHRoZSBzdWNjZXNzZnVsIGNhbGxiYWNrIGlmIGl0J3MgdGhlIG9yaWdpbmFsIHJlcXVlc3QuXG4gICAgICAgICAgICBpZiAoc2hvdWxkU3RhcnROZXdSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrU2FmZWd1YXJkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlnKCkub25TdWNjZXNzKG5ld0RhdGEsIGtleSwgY29uZmlnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY2xlYW51cFN0YXRlKCk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Q29uZmlnID0gZ2V0Q29uZmlnKCk7XG4gICAgICAgICAgICBjb25zdCB7IHNob3VsZFJldHJ5T25FcnJvciB9ID0gY3VycmVudENvbmZpZztcbiAgICAgICAgICAgIC8vIE5vdCBwYXVzZWQsIHdlIGNvbnRpbnVlIGhhbmRsaW5nIHRoZSBlcnJvci4gT3RoZXJ3aXNlLCBkaXNjYXJkIGl0LlxuICAgICAgICAgICAgaWYgKCFjdXJyZW50Q29uZmlnLmlzUGF1c2VkKCkpIHtcbiAgICAgICAgICAgICAgICAvLyBHZXQgYSBuZXcgZXJyb3IsIGRvbid0IHVzZSBkZWVwIGNvbXBhcmlzb24gZm9yIGVycm9ycy5cbiAgICAgICAgICAgICAgICBmaW5hbFN0YXRlLmVycm9yID0gZXJyO1xuICAgICAgICAgICAgICAgIC8vIEVycm9yIGV2ZW50IGFuZCByZXRyeSBsb2dpYy4gT25seSBmb3IgdGhlIGFjdHVhbCByZXF1ZXN0LCBub3RcbiAgICAgICAgICAgICAgICAvLyBkZWR1cGVkIG9uZXMuXG4gICAgICAgICAgICAgICAgaWYgKHNob3VsZFN0YXJ0TmV3UmVxdWVzdCAmJiBjYWxsYmFja1NhZmVndWFyZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb25maWcub25FcnJvcihlcnIsIGtleSwgY3VycmVudENvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRSZXRyeU9uRXJyb3IgPT09IHRydWUgfHwgaXNGdW5jdGlvbihzaG91bGRSZXRyeU9uRXJyb3IpICYmIHNob3VsZFJldHJ5T25FcnJvcihlcnIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdldENvbmZpZygpLnJldmFsaWRhdGVPbkZvY3VzIHx8ICFnZXRDb25maWcoKS5yZXZhbGlkYXRlT25SZWNvbm5lY3QgfHwgaXNBY3RpdmUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIGl0J3MgaW5hY3RpdmUsIHN0b3AuIEl0IHdpbGwgYXV0by1yZXZhbGlkYXRlIHdoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWZvY3VzaW5nIG9yIHJlY29ubmVjdGluZy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIHJldHJ5aW5nLCBkZWR1cGxpY2F0aW9uIGlzIGFsd2F5cyBlbmFibGVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDb25maWcub25FcnJvclJldHJ5KGVyciwga2V5LCBjdXJyZW50Q29uZmlnLCAoX29wdHMpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJldmFsaWRhdG9ycyA9IEVWRU5UX1JFVkFMSURBVE9SU1trZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV2YWxpZGF0b3JzICYmIHJldmFsaWRhdG9yc1swXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0b3JzWzBdKHJldmFsaWRhdGVFdmVudHMuRVJST1JfUkVWQUxJREFURV9FVkVOVCwgX29wdHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXRyeUNvdW50OiAob3B0cy5yZXRyeUNvdW50IHx8IDApICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVkdXBlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gTWFyayBsb2FkaW5nIGFzIHN0b3BwZWQuXG4gICAgICAgIGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgLy8gVXBkYXRlIHRoZSBjdXJyZW50IGhvb2sncyBzdGF0ZS5cbiAgICAgICAgZmluaXNoUmVxdWVzdEFuZFVwZGF0ZVN0YXRlKCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0sIC8vIGBzZXRTdGF0ZWAgaXMgaW1tdXRhYmxlLCBhbmQgYGV2ZW50c0NhbGxiYWNrYCwgYGZuQXJnYCwgYW5kXG4gICAgLy8gYGtleVZhbGlkYXRpbmdgIGFyZSBkZXBlbmRpbmcgb24gYGtleWAsIHNvIHdlIGNhbiBleGNsdWRlIHRoZW0gZnJvbVxuICAgIC8vIHRoZSBkZXBzIGFycmF5LlxuICAgIC8vXG4gICAgLy8gRklYTUU6XG4gICAgLy8gYGZuYCBhbmQgYGNvbmZpZ2AgbWlnaHQgYmUgY2hhbmdlZCBkdXJpbmcgdGhlIGxpZmVjeWNsZSxcbiAgICAvLyBidXQgdGhleSBtaWdodCBiZSBjaGFuZ2VkIGV2ZXJ5IHJlbmRlciBsaWtlIHRoaXMuXG4gICAgLy8gYHVzZVNXUigna2V5JywgKCkgPT4gZmV0Y2goJy9hcGkvJyksIHsgc3VzcGVuc2U6IHRydWUgfSlgXG4gICAgLy8gU28gd2Ugb21pdCB0aGUgdmFsdWVzIGZyb20gdGhlIGRlcHMgYXJyYXlcbiAgICAvLyBldmVuIHRob3VnaCBpdCBtaWdodCBjYXVzZSB1bmV4cGVjdGVkIGJlaGF2aW9ycy5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgW1xuICAgICAgICBrZXksXG4gICAgICAgIGNhY2hlXG4gICAgXSk7XG4gICAgLy8gU2ltaWxhciB0byB0aGUgZ2xvYmFsIG11dGF0ZSBidXQgYm91bmQgdG8gdGhlIGN1cnJlbnQgY2FjaGUgYW5kIGtleS5cbiAgICAvLyBgY2FjaGVgIGlzbid0IGFsbG93ZWQgdG8gY2hhbmdlIGR1cmluZyB0aGUgbGlmZWN5Y2xlLlxuICAgIGNvbnN0IGJvdW5kTXV0YXRlID0gdXNlQ2FsbGJhY2soLy8gVXNlIGNhbGxiYWNrIHRvIG1ha2Ugc3VyZSBga2V5UmVmLmN1cnJlbnRgIHJldHVybnMgbGF0ZXN0IHJlc3VsdCBldmVyeSB0aW1lXG4gICAgKC4uLmFyZ3MpPT57XG4gICAgICAgIHJldHVybiBpbnRlcm5hbE11dGF0ZShjYWNoZSwga2V5UmVmLmN1cnJlbnQsIC4uLmFyZ3MpO1xuICAgIH0sIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICBbXSk7XG4gICAgLy8gVGhlIGxvZ2ljIGZvciB1cGRhdGluZyByZWZzLlxuICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCk9PntcbiAgICAgICAgZmV0Y2hlclJlZi5jdXJyZW50ID0gZmV0Y2hlcjtcbiAgICAgICAgY29uZmlnUmVmLmN1cnJlbnQgPSBjb25maWc7XG4gICAgICAgIC8vIEhhbmRsZSBsYWdneSBkYXRhIHVwZGF0ZXMuIElmIHRoZXJlJ3MgY2FjaGVkIGRhdGEgb2YgdGhlIGN1cnJlbnQga2V5LFxuICAgICAgICAvLyBpdCdsbCBiZSB0aGUgY29ycmVjdCByZWZlcmVuY2UuXG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoY2FjaGVkRGF0YSkpIHtcbiAgICAgICAgICAgIGxhZ2d5RGF0YVJlZi5jdXJyZW50ID0gY2FjaGVkRGF0YTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIEFmdGVyIG1vdW50ZWQgb3Iga2V5IGNoYW5nZWQuXG4gICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoIWtleSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBzb2Z0UmV2YWxpZGF0ZSA9IHJldmFsaWRhdGUuYmluZChVTkRFRklORUQsIFdJVEhfREVEVVBFKTtcbiAgICAgICAgLy8gRXhwb3NlIHJldmFsaWRhdG9ycyB0byBnbG9iYWwgZXZlbnQgbGlzdGVuZXJzLiBTbyB3ZSBjYW4gdHJpZ2dlclxuICAgICAgICAvLyByZXZhbGlkYXRpb24gZnJvbSB0aGUgb3V0c2lkZS5cbiAgICAgICAgbGV0IG5leHRGb2N1c1JldmFsaWRhdGVkQXQgPSAwO1xuICAgICAgICBjb25zdCBvblJldmFsaWRhdGUgPSAodHlwZSwgb3B0cyA9IHt9KT0+e1xuICAgICAgICAgICAgaWYgKHR5cGUgPT0gcmV2YWxpZGF0ZUV2ZW50cy5GT0NVU19FVkVOVCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgaWYgKGdldENvbmZpZygpLnJldmFsaWRhdGVPbkZvY3VzICYmIG5vdyA+IG5leHRGb2N1c1JldmFsaWRhdGVkQXQgJiYgaXNBY3RpdmUoKSkge1xuICAgICAgICAgICAgICAgICAgICBuZXh0Rm9jdXNSZXZhbGlkYXRlZEF0ID0gbm93ICsgZ2V0Q29uZmlnKCkuZm9jdXNUaHJvdHRsZUludGVydmFsO1xuICAgICAgICAgICAgICAgICAgICBzb2Z0UmV2YWxpZGF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSByZXZhbGlkYXRlRXZlbnRzLlJFQ09OTkVDVF9FVkVOVCkge1xuICAgICAgICAgICAgICAgIGlmIChnZXRDb25maWcoKS5yZXZhbGlkYXRlT25SZWNvbm5lY3QgJiYgaXNBY3RpdmUoKSkge1xuICAgICAgICAgICAgICAgICAgICBzb2Z0UmV2YWxpZGF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSByZXZhbGlkYXRlRXZlbnRzLk1VVEFURV9FVkVOVCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXZhbGlkYXRlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gcmV2YWxpZGF0ZUV2ZW50cy5FUlJPUl9SRVZBTElEQVRFX0VWRU5UKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJldmFsaWRhdGUob3B0cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHVuc3ViRXZlbnRzID0gc3Vic2NyaWJlQ2FsbGJhY2soa2V5LCBFVkVOVF9SRVZBTElEQVRPUlMsIG9uUmV2YWxpZGF0ZSk7XG4gICAgICAgIC8vIE1hcmsgdGhlIGNvbXBvbmVudCBhcyBtb3VudGVkIGFuZCB1cGRhdGUgY29ycmVzcG9uZGluZyByZWZzLlxuICAgICAgICB1bm1vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICBrZXlSZWYuY3VycmVudCA9IGtleTtcbiAgICAgICAgaW5pdGlhbE1vdW50ZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIC8vIEtlZXAgdGhlIG9yaWdpbmFsIGtleSBpbiB0aGUgY2FjaGUuXG4gICAgICAgIHNldENhY2hlKHtcbiAgICAgICAgICAgIF9rOiBmbkFyZ1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gVHJpZ2dlciBhIHJldmFsaWRhdGlvblxuICAgICAgICBpZiAoc2hvdWxkRG9Jbml0aWFsUmV2YWxpZGF0aW9uKSB7XG4gICAgICAgICAgICBpZiAoaXNVbmRlZmluZWQoZGF0YSkgfHwgSVNfU0VSVkVSKSB7XG4gICAgICAgICAgICAgICAgLy8gUmV2YWxpZGF0ZSBpbW1lZGlhdGVseS5cbiAgICAgICAgICAgICAgICBzb2Z0UmV2YWxpZGF0ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBEZWxheSB0aGUgcmV2YWxpZGF0ZSBpZiB3ZSBoYXZlIGRhdGEgdG8gcmV0dXJuIHNvIHdlIHdvbid0IGJsb2NrXG4gICAgICAgICAgICAgICAgLy8gcmVuZGVyaW5nLlxuICAgICAgICAgICAgICAgIHJBRihzb2Z0UmV2YWxpZGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICAvLyBNYXJrIGl0IGFzIHVubW91bnRlZC5cbiAgICAgICAgICAgIHVubW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIHVuc3ViRXZlbnRzKCk7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBrZXlcbiAgICBdKTtcbiAgICAvLyBQb2xsaW5nXG4gICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKT0+e1xuICAgICAgICBsZXQgdGltZXI7XG4gICAgICAgIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICAgICAgICAvLyBVc2UgdGhlIHBhc3NlZCBpbnRlcnZhbFxuICAgICAgICAgICAgLy8gLi4ub3IgaW52b2tlIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSB1cGRhdGVkIGRhdGEgdG8gZ2V0IHRoZSBpbnRlcnZhbFxuICAgICAgICAgICAgY29uc3QgaW50ZXJ2YWwgPSBpc0Z1bmN0aW9uKHJlZnJlc2hJbnRlcnZhbCkgPyByZWZyZXNoSW50ZXJ2YWwoZ2V0Q2FjaGUoKS5kYXRhKSA6IHJlZnJlc2hJbnRlcnZhbDtcbiAgICAgICAgICAgIC8vIFdlIG9ubHkgc3RhcnQgdGhlIG5leHQgaW50ZXJ2YWwgaWYgYHJlZnJlc2hJbnRlcnZhbGAgaXMgbm90IDAsIGFuZDpcbiAgICAgICAgICAgIC8vIC0gYGZvcmNlYCBpcyB0cnVlLCB3aGljaCBpcyB0aGUgc3RhcnQgb2YgcG9sbGluZ1xuICAgICAgICAgICAgLy8gLSBvciBgdGltZXJgIGlzIG5vdCAwLCB3aGljaCBtZWFucyB0aGUgZWZmZWN0IHdhc24ndCBjYW5jZWxlZFxuICAgICAgICAgICAgaWYgKGludGVydmFsICYmIHRpbWVyICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRpbWVyID0gc2V0VGltZW91dChleGVjdXRlLCBpbnRlcnZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZXhlY3V0ZSgpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIGl0J3MgT0sgdG8gZXhlY3V0ZTpcbiAgICAgICAgICAgIC8vIE9ubHkgcmV2YWxpZGF0ZSB3aGVuIHRoZSBwYWdlIGlzIHZpc2libGUsIG9ubGluZSwgYW5kIG5vdCBlcnJvcmVkLlxuICAgICAgICAgICAgaWYgKCFnZXRDYWNoZSgpLmVycm9yICYmIChyZWZyZXNoV2hlbkhpZGRlbiB8fCBnZXRDb25maWcoKS5pc1Zpc2libGUoKSkgJiYgKHJlZnJlc2hXaGVuT2ZmbGluZSB8fCBnZXRDb25maWcoKS5pc09ubGluZSgpKSkge1xuICAgICAgICAgICAgICAgIHJldmFsaWRhdGUoV0lUSF9ERURVUEUpLnRoZW4obmV4dCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRoZSBuZXh0IGludGVydmFsIHRvIGNoZWNrIGFnYWluLlxuICAgICAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXh0KCk7XG4gICAgICAgIHJldHVybiAoKT0+e1xuICAgICAgICAgICAgaWYgKHRpbWVyKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgICAgICAgICB0aW1lciA9IC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgcmVmcmVzaEludGVydmFsLFxuICAgICAgICByZWZyZXNoV2hlbkhpZGRlbixcbiAgICAgICAgcmVmcmVzaFdoZW5PZmZsaW5lLFxuICAgICAgICBrZXlcbiAgICBdKTtcbiAgICAvLyBEaXNwbGF5IGRlYnVnIGluZm8gaW4gUmVhY3QgRGV2VG9vbHMuXG4gICAgdXNlRGVidWdWYWx1ZShyZXR1cm5lZERhdGEpO1xuICAgIC8vIEluIFN1c3BlbnNlIG1vZGUsIHdlIGNhbid0IHJldHVybiB0aGUgZW1wdHkgYGRhdGFgIHN0YXRlLlxuICAgIC8vIElmIHRoZXJlIGlzIGFuIGBlcnJvcmAsIHRoZSBgZXJyb3JgIG5lZWRzIHRvIGJlIHRocm93biB0byB0aGUgZXJyb3IgYm91bmRhcnkuXG4gICAgLy8gSWYgdGhlcmUgaXMgbm8gYGVycm9yYCwgdGhlIGByZXZhbGlkYXRpb25gIHByb21pc2UgbmVlZHMgdG8gYmUgdGhyb3duIHRvXG4gICAgLy8gdGhlIHN1c3BlbnNlIGJvdW5kYXJ5LlxuICAgIGlmIChzdXNwZW5zZSAmJiBpc1VuZGVmaW5lZChkYXRhKSAmJiBrZXkpIHtcbiAgICAgICAgLy8gU1dSIHNob3VsZCB0aHJvdyB3aGVuIHRyeWluZyB0byB1c2UgU3VzcGVuc2Ugb24gdGhlIHNlcnZlciB3aXRoIFJlYWN0IDE4LFxuICAgICAgICAvLyB3aXRob3V0IHByb3ZpZGluZyBhbnkgaW5pdGlhbCBkYXRhLiBTZWU6XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvc3dyL2lzc3Vlcy8xODMyXG4gICAgICAgIGlmICghSVNfUkVBQ1RfTEVHQUNZICYmIElTX1NFUlZFUikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWxsYmFjayBkYXRhIGlzIHJlcXVpcmVkIHdoZW4gdXNpbmcgc3VzcGVuc2UgaW4gU1NSLicpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEFsd2F5cyB1cGRhdGUgZmV0Y2hlciBhbmQgY29uZmlnIHJlZnMgZXZlbiB3aXRoIHRoZSBTdXNwZW5zZSBtb2RlLlxuICAgICAgICBmZXRjaGVyUmVmLmN1cnJlbnQgPSBmZXRjaGVyO1xuICAgICAgICBjb25maWdSZWYuY3VycmVudCA9IGNvbmZpZztcbiAgICAgICAgdW5tb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgcmVxID0gUFJFTE9BRFtrZXldO1xuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKHJlcSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBib3VuZE11dGF0ZShyZXEpO1xuICAgICAgICAgICAgdXNlKHByb21pc2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZChlcnJvcikpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSByZXZhbGlkYXRlKFdJVEhfREVEVVBFKTtcbiAgICAgICAgICAgIGlmICghaXNVbmRlZmluZWQocmV0dXJuZWREYXRhKSkge1xuICAgICAgICAgICAgICAgIHByb21pc2Uuc3RhdHVzID0gJ2Z1bGZpbGxlZCc7XG4gICAgICAgICAgICAgICAgcHJvbWlzZS52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1c2UocHJvbWlzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBtdXRhdGU6IGJvdW5kTXV0YXRlLFxuICAgICAgICBnZXQgZGF0YSAoKSB7XG4gICAgICAgICAgICBzdGF0ZURlcGVuZGVuY2llcy5kYXRhID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiByZXR1cm5lZERhdGE7XG4gICAgICAgIH0sXG4gICAgICAgIGdldCBlcnJvciAoKSB7XG4gICAgICAgICAgICBzdGF0ZURlcGVuZGVuY2llcy5lcnJvciA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH0sXG4gICAgICAgIGdldCBpc1ZhbGlkYXRpbmcgKCkge1xuICAgICAgICAgICAgc3RhdGVEZXBlbmRlbmNpZXMuaXNWYWxpZGF0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkYXRpbmc7XG4gICAgICAgIH0sXG4gICAgICAgIGdldCBpc0xvYWRpbmcgKCkge1xuICAgICAgICAgICAgc3RhdGVEZXBlbmRlbmNpZXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBpc0xvYWRpbmc7XG4gICAgICAgIH1cbiAgICB9O1xufTtcbk9CSkVDVC5kZWZpbmVQcm9wZXJ0eShTV1JDb25maWcsICdkZWZhdWx0VmFsdWUnLCB7XG4gICAgdmFsdWU6IGRlZmF1bHRDb25maWdcbn0pO1xuLyoqXG4gKiBBIGhvb2sgdG8gZmV0Y2ggZGF0YS5cbiAqXG4gKiBAbGluayBodHRwczovL3N3ci52ZXJjZWwuYXBwXG4gKiBAZXhhbXBsZVxuICogYGBganN4XG4gKiBpbXBvcnQgdXNlU1dSIGZyb20gJ3N3cidcbiAqIGZ1bmN0aW9uIFByb2ZpbGUoKSB7XG4gKiAgIGNvbnN0IHsgZGF0YSwgZXJyb3IsIGlzTG9hZGluZyB9ID0gdXNlU1dSKCcvYXBpL3VzZXInLCBmZXRjaGVyKVxuICogICBpZiAoZXJyb3IpIHJldHVybiA8ZGl2PmZhaWxlZCB0byBsb2FkPC9kaXY+XG4gKiAgIGlmIChpc0xvYWRpbmcpIHJldHVybiA8ZGl2PmxvYWRpbmcuLi48L2Rpdj5cbiAqICAgcmV0dXJuIDxkaXY+aGVsbG8ge2RhdGEubmFtZX0hPC9kaXY+XG4gKiB9XG4gKiBgYGBcbiAqLyBjb25zdCB1c2VTV1IgPSB3aXRoQXJncyh1c2VTV1JIYW5kbGVyKTtcblxuY29uc3QgZ2V0Rmlyc3RQYWdlS2V5ID0gKGdldEtleSk9PntcbiAgICByZXR1cm4gc2VyaWFsaXplKGdldEtleSA/IGdldEtleSgwLCBudWxsKSA6IG51bGwpWzBdO1xufTtcbmNvbnN0IHVuc3RhYmxlX3NlcmlhbGl6ZSA9IChnZXRLZXkpPT57XG4gICAgcmV0dXJuIElORklOSVRFX1BSRUZJWCArIGdldEZpcnN0UGFnZUtleShnZXRLZXkpO1xufTtcblxuLy8gV2UgaGF2ZSB0byBzZXZlcmFsIHR5cGUgY2FzdGluZ3MgaGVyZSBiZWNhdXNlIGB1c2VTV1JJbmZpbml0ZWAgaXMgYSBzcGVjaWFsXG4vLyBob29rIHdoZXJlIGBrZXlgIGFuZCByZXR1cm4gdHlwZSBhcmUgbm90IGxpa2UgdGhlIG5vcm1hbCBgdXNlU1dSYCB0eXBlcy5cbi8vIGNvbnN0IElORklOSVRFX1BSRUZJWCA9ICckaW5mJCdcbmNvbnN0IEVNUFRZX1BST01JU0UgPSBQcm9taXNlLnJlc29sdmUoKTtcbi8vIGV4cG9ydCBjb25zdCB1bnN0YWJsZV9zZXJpYWxpemUgPSAoZ2V0S2V5OiBTV1JJbmZpbml0ZUtleUxvYWRlcikgPT4ge1xuLy8gICByZXR1cm4gSU5GSU5JVEVfUFJFRklYICsgZ2V0Rmlyc3RQYWdlS2V5KGdldEtleSlcbi8vIH1cbmNvbnN0IGluZmluaXRlID0gKHVzZVNXUk5leHQpPT4oZ2V0S2V5LCBmbiwgY29uZmlnKT0+e1xuICAgICAgICBjb25zdCBkaWRNb3VudFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgICAgIGNvbnN0IHsgY2FjaGU6IGNhY2hlJDEsIGluaXRpYWxTaXplID0gMSwgcmV2YWxpZGF0ZUFsbCA9IGZhbHNlLCBwZXJzaXN0U2l6ZSA9IGZhbHNlLCByZXZhbGlkYXRlRmlyc3RQYWdlID0gdHJ1ZSwgcmV2YWxpZGF0ZU9uTW91bnQgPSBmYWxzZSwgcGFyYWxsZWwgPSBmYWxzZSB9ID0gY29uZmlnO1xuICAgICAgICBjb25zdCBbLCAsICwgUFJFTE9BRF0gPSBTV1JHbG9iYWxTdGF0ZS5nZXQoY2FjaGUpO1xuICAgICAgICAvLyBUaGUgc2VyaWFsaXplZCBrZXkgb2YgdGhlIGZpcnN0IHBhZ2UuIFRoaXMga2V5IHdpbGwgYmUgdXNlZCB0byBzdG9yZVxuICAgICAgICAvLyBtZXRhZGF0YSBvZiB0aGlzIFNXUiBpbmZpbml0ZSBob29rLlxuICAgICAgICBsZXQgaW5maW5pdGVLZXk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpbmZpbml0ZUtleSA9IGdldEZpcnN0UGFnZUtleShnZXRLZXkpO1xuICAgICAgICAgICAgaWYgKGluZmluaXRlS2V5KSBpbmZpbml0ZUtleSA9IElORklOSVRFX1BSRUZJWCArIGluZmluaXRlS2V5O1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gTm90IHJlYWR5IHlldC5cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbZ2V0LCBzZXQsIHN1YnNjcmliZUNhY2hlXSA9IGNyZWF0ZUNhY2hlSGVscGVyKGNhY2hlJDEsIGluZmluaXRlS2V5KTtcbiAgICAgICAgY29uc3QgZ2V0U25hcHNob3QgPSB1c2VDYWxsYmFjaygoKT0+e1xuICAgICAgICAgICAgY29uc3Qgc2l6ZSA9IGlzVW5kZWZpbmVkKGdldCgpLl9sKSA/IGluaXRpYWxTaXplIDogZ2V0KCkuX2w7XG4gICAgICAgICAgICByZXR1cm4gc2l6ZTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgICB9LCBbXG4gICAgICAgICAgICBjYWNoZSQxLFxuICAgICAgICAgICAgaW5maW5pdGVLZXksXG4gICAgICAgICAgICBpbml0aWFsU2l6ZVxuICAgICAgICBdKTtcbiAgICAgICAgdXNlU3luY0V4dGVybmFsU3RvcmUodXNlQ2FsbGJhY2soKGNhbGxiYWNrKT0+e1xuICAgICAgICAgICAgaWYgKGluZmluaXRlS2V5KSByZXR1cm4gc3Vic2NyaWJlQ2FjaGUoaW5maW5pdGVLZXksICgpPT57XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuICgpPT57fTtcbiAgICAgICAgfSwgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgICBbXG4gICAgICAgICAgICBjYWNoZSQxLFxuICAgICAgICAgICAgaW5maW5pdGVLZXlcbiAgICAgICAgXSksIGdldFNuYXBzaG90LCBnZXRTbmFwc2hvdCk7XG4gICAgICAgIGNvbnN0IHJlc29sdmVQYWdlU2l6ZSA9IHVzZUNhbGxiYWNrKCgpPT57XG4gICAgICAgICAgICBjb25zdCBjYWNoZWRQYWdlU2l6ZSA9IGdldCgpLl9sO1xuICAgICAgICAgICAgcmV0dXJuIGlzVW5kZWZpbmVkKGNhY2hlZFBhZ2VTaXplKSA/IGluaXRpYWxTaXplIDogY2FjaGVkUGFnZVNpemU7XG4gICAgICAgIC8vIGBjYWNoZWAgaXNuJ3QgYWxsb3dlZCB0byBjaGFuZ2UgZHVyaW5nIHRoZSBsaWZlY3ljbGVcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgICAgICB9LCBbXG4gICAgICAgICAgICBpbmZpbml0ZUtleSxcbiAgICAgICAgICAgIGluaXRpYWxTaXplXG4gICAgICAgIF0pO1xuICAgICAgICAvLyBrZWVwIHRoZSBsYXN0IHBhZ2Ugc2l6ZSB0byByZXN0b3JlIGl0IHdpdGggdGhlIHBlcnNpc3RTaXplIG9wdGlvblxuICAgICAgICBjb25zdCBsYXN0UGFnZVNpemVSZWYgPSB1c2VSZWYocmVzb2x2ZVBhZ2VTaXplKCkpO1xuICAgICAgICAvLyBXaGVuIHRoZSBwYWdlIGtleSBjaGFuZ2VzLCB3ZSByZXNldCB0aGUgcGFnZSBzaXplIGlmIGl0J3Mgbm90IHBlcnNpc3RlZFxuICAgICAgICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpPT57XG4gICAgICAgICAgICBpZiAoIWRpZE1vdW50UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBkaWRNb3VudFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaW5maW5pdGVLZXkpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUga2V5IGhhcyBiZWVuIGNoYW5nZWQsIHdlIGtlZXAgdGhlIGN1cnJlbnQgcGFnZSBzaXplIGlmIHBlcnNpc3RTaXplIGlzIGVuYWJsZWRcbiAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIHdlIHJlc2V0IHRoZSBwYWdlIHNpemUgdG8gY2FjaGVkIHBhZ2VTaXplXG4gICAgICAgICAgICAgICAgc2V0KHtcbiAgICAgICAgICAgICAgICAgICAgX2w6IHBlcnNpc3RTaXplID8gbGFzdFBhZ2VTaXplUmVmLmN1cnJlbnQgOiByZXNvbHZlUGFnZVNpemUoKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAvLyBgaW5pdGlhbFNpemVgIGlzbid0IGFsbG93ZWQgdG8gY2hhbmdlIGR1cmluZyB0aGUgbGlmZWN5Y2xlXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICAgICAgfSwgW1xuICAgICAgICAgICAgaW5maW5pdGVLZXksXG4gICAgICAgICAgICBjYWNoZSQxXG4gICAgICAgIF0pO1xuICAgICAgICAvLyBOZWVkcyB0byBjaGVjayBkaWRNb3VudFJlZiBkdXJpbmcgbW91bnRpbmcsIG5vdCBpbiB0aGUgZmV0Y2hlclxuICAgICAgICBjb25zdCBzaG91bGRSZXZhbGlkYXRlT25Nb3VudCA9IHJldmFsaWRhdGVPbk1vdW50ICYmICFkaWRNb3VudFJlZi5jdXJyZW50O1xuICAgICAgICAvLyBBY3R1YWwgU1dSIGhvb2sgdG8gbG9hZCBhbGwgcGFnZXMgaW4gb25lIGZldGNoZXIuXG4gICAgICAgIGNvbnN0IHN3ciA9IHVzZVNXUk5leHQoaW5maW5pdGVLZXksIGFzeW5jIChrZXkpPT57XG4gICAgICAgICAgICAvLyBnZXQgdGhlIHJldmFsaWRhdGUgY29udGV4dFxuICAgICAgICAgICAgY29uc3QgZm9yY2VSZXZhbGlkYXRlQWxsID0gZ2V0KCkuX2k7XG4gICAgICAgICAgICBjb25zdCBzaG91bGRSZXZhbGlkYXRlUGFnZSA9IGdldCgpLl9yO1xuICAgICAgICAgICAgc2V0KHtcbiAgICAgICAgICAgICAgICBfcjogVU5ERUZJTkVEXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIHJldHVybiBhbiBhcnJheSBvZiBwYWdlIGRhdGFcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VTaXplID0gcmVzb2x2ZVBhZ2VTaXplKCk7XG4gICAgICAgICAgICBjb25zdCBbZ2V0Q2FjaGVdID0gY3JlYXRlQ2FjaGVIZWxwZXIoY2FjaGUkMSwga2V5KTtcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlRGF0YSA9IGdldENhY2hlKCkuZGF0YTtcbiAgICAgICAgICAgIGNvbnN0IHJldmFsaWRhdG9ycyA9IFtdO1xuICAgICAgICAgICAgbGV0IHByZXZpb3VzUGFnZURhdGEgPSBudWxsO1xuICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHBhZ2VTaXplOyArK2kpe1xuICAgICAgICAgICAgICAgIGNvbnN0IFtwYWdlS2V5LCBwYWdlQXJnXSA9IHNlcmlhbGl6ZShnZXRLZXkoaSwgcGFyYWxsZWwgPyBudWxsIDogcHJldmlvdXNQYWdlRGF0YSkpO1xuICAgICAgICAgICAgICAgIGlmICghcGFnZUtleSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgW2dldFNXUkNhY2hlLCBzZXRTV1JDYWNoZV0gPSBjcmVhdGVDYWNoZUhlbHBlcihjYWNoZSQxLCBwYWdlS2V5KTtcbiAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIGNhY2hlZCBwYWdlIGRhdGEuXG4gICAgICAgICAgICAgICAgbGV0IHBhZ2VEYXRhID0gZ2V0U1dSQ2FjaGUoKS5kYXRhO1xuICAgICAgICAgICAgICAgIC8vIHNob3VsZCBmZXRjaCAob3IgcmV2YWxpZGF0ZSkgaWY6XG4gICAgICAgICAgICAgICAgLy8gLSBgcmV2YWxpZGF0ZUFsbGAgaXMgZW5hYmxlZFxuICAgICAgICAgICAgICAgIC8vIC0gYG11dGF0ZSgpYCBjYWxsZWRcbiAgICAgICAgICAgICAgICAvLyAtIHRoZSBjYWNoZSBpcyBtaXNzaW5nXG4gICAgICAgICAgICAgICAgLy8gLSBpdCdzIHRoZSBmaXJzdCBwYWdlIGFuZCBpdCdzIG5vdCB0aGUgaW5pdGlhbCByZW5kZXJcbiAgICAgICAgICAgICAgICAvLyAtIGByZXZhbGlkYXRlT25Nb3VudGAgaXMgZW5hYmxlZCBhbmQgaXQncyBvbiBtb3VudFxuICAgICAgICAgICAgICAgIC8vIC0gY2FjaGUgZm9yIHRoYXQgcGFnZSBoYXMgY2hhbmdlZFxuICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZEZldGNoUGFnZSA9IHJldmFsaWRhdGVBbGwgfHwgZm9yY2VSZXZhbGlkYXRlQWxsIHx8IGlzVW5kZWZpbmVkKHBhZ2VEYXRhKSB8fCByZXZhbGlkYXRlRmlyc3RQYWdlICYmICFpICYmICFpc1VuZGVmaW5lZChjYWNoZURhdGEpIHx8IHNob3VsZFJldmFsaWRhdGVPbk1vdW50IHx8IGNhY2hlRGF0YSAmJiAhaXNVbmRlZmluZWQoY2FjaGVEYXRhW2ldKSAmJiAhY29uZmlnLmNvbXBhcmUoY2FjaGVEYXRhW2ldLCBwYWdlRGF0YSk7XG4gICAgICAgICAgICAgICAgaWYgKGZuICYmICh0eXBlb2Ygc2hvdWxkUmV2YWxpZGF0ZVBhZ2UgPT09ICdmdW5jdGlvbicgPyBzaG91bGRSZXZhbGlkYXRlUGFnZShwYWdlRGF0YSwgcGFnZUFyZykgOiBzaG91bGRGZXRjaFBhZ2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJldmFsaWRhdGUgPSBhc3luYyAoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzUHJlbG9hZGVkUmVxdWVzdCA9IHBhZ2VLZXkgaW4gUFJFTE9BRDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFzUHJlbG9hZGVkUmVxdWVzdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEYXRhID0gYXdhaXQgZm4ocGFnZUFyZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcSA9IFBSRUxPQURbcGFnZUtleV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVsZXRlIHRoZSBwcmVsb2FkIGNhY2hlIGtleSBiZWZvcmUgcmVzb2x2aW5nIGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGVyZSdzIGFuIGVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIFBSRUxPQURbcGFnZUtleV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBwYWdlIGRhdGEgZnJvbSB0aGUgcHJlbG9hZCBjYWNoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEYXRhID0gYXdhaXQgcmVxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U1dSQ2FjaGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHBhZ2VEYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9rOiBwYWdlQXJnXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbaV0gPSBwYWdlRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFsbGVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRvcnMucHVzaChyZXZhbGlkYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHJldmFsaWRhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFbaV0gPSBwYWdlRGF0YTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJhbGxlbCkge1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1BhZ2VEYXRhID0gcGFnZURhdGE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZmx1c2ggYWxsIHJldmFsaWRhdGVpb25zIGluIHBhcmFsbGVsXG4gICAgICAgICAgICBpZiAocGFyYWxsZWwpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChyZXZhbGlkYXRvcnMubWFwKChyKT0+cigpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBvbmNlIHdlIGV4ZWN1dGVkIHRoZSBkYXRhIGZldGNoaW5nIGJhc2VkIG9uIHRoZSBjb250ZXh0LCBjbGVhciB0aGUgY29udGV4dFxuICAgICAgICAgICAgc2V0KHtcbiAgICAgICAgICAgICAgICBfaTogVU5ERUZJTkVEXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIHJldHVybiB0aGUgZGF0YVxuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH0sIGNvbmZpZyk7XG4gICAgICAgIGNvbnN0IG11dGF0ZSA9IHVzZUNhbGxiYWNrKC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG4gICAgICAgIGZ1bmN0aW9uKGRhdGEsIG9wdHMpIHtcbiAgICAgICAgICAgIC8vIFdoZW4gcGFzc2luZyBhcyBhIGJvb2xlYW4sIGl0J3MgZXhwbGljaXRseSB1c2VkIHRvIGRpc2FibGUvZW5hYmxlXG4gICAgICAgICAgICAvLyByZXZhbGlkYXRpb24uXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdHlwZW9mIG9wdHMgPT09ICdib29sZWFuJyA/IHtcbiAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiBvcHRzXG4gICAgICAgICAgICB9IDogb3B0cyB8fCB7fTtcbiAgICAgICAgICAgIC8vIERlZmF1bHQgdG8gdHJ1ZS5cbiAgICAgICAgICAgIGNvbnN0IHNob3VsZFJldmFsaWRhdGUgPSBvcHRpb25zLnJldmFsaWRhdGUgIT09IGZhbHNlO1xuICAgICAgICAgICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCB0aGUga2V5IGlzIHN0aWxsIGZhbHN5LlxuICAgICAgICAgICAgaWYgKCFpbmZpbml0ZUtleSkgcmV0dXJuIEVNUFRZX1BST01JU0U7XG4gICAgICAgICAgICBpZiAoc2hvdWxkUmV2YWxpZGF0ZSkge1xuICAgICAgICAgICAgICAgIGlmICghaXNVbmRlZmluZWQoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2Ugb25seSByZXZhbGlkYXRlIHRoZSBwYWdlcyB0aGF0IGFyZSBjaGFuZ2VkXG4gICAgICAgICAgICAgICAgICAgIHNldCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBfaTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBfcjogb3B0aW9ucy5yZXZhbGlkYXRlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIENhbGxpbmcgYG11dGF0ZSgpYCwgd2UgcmV2YWxpZGF0ZSBhbGwgcGFnZXNcbiAgICAgICAgICAgICAgICAgICAgc2V0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9pOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgX3I6IG9wdGlvbnMucmV2YWxpZGF0ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA/IHN3ci5tdXRhdGUoZGF0YSwge1xuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogc2hvdWxkUmV2YWxpZGF0ZVxuICAgICAgICAgICAgfSkgOiBzd3IubXV0YXRlKCk7XG4gICAgICAgIH0sIC8vIHN3ci5tdXRhdGUgaXMgYWx3YXlzIHRoZSBzYW1lIHJlZmVyZW5jZVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICAgIFtcbiAgICAgICAgICAgIGluZmluaXRlS2V5LFxuICAgICAgICAgICAgY2FjaGUkMVxuICAgICAgICBdKTtcbiAgICAgICAgLy8gRXh0ZW5kIHRoZSBTV1IgQVBJXG4gICAgICAgIGNvbnN0IHNldFNpemUgPSB1c2VDYWxsYmFjaygoYXJnKT0+e1xuICAgICAgICAgICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCB0aGUga2V5IGlzIHN0aWxsIGZhbHN5LlxuICAgICAgICAgICAgaWYgKCFpbmZpbml0ZUtleSkgcmV0dXJuIEVNUFRZX1BST01JU0U7XG4gICAgICAgICAgICBjb25zdCBbLCBjaGFuZ2VTaXplXSA9IGNyZWF0ZUNhY2hlSGVscGVyKGNhY2hlJDEsIGluZmluaXRlS2V5KTtcbiAgICAgICAgICAgIGxldCBzaXplO1xuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oYXJnKSkge1xuICAgICAgICAgICAgICAgIHNpemUgPSBhcmcocmVzb2x2ZVBhZ2VTaXplKCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYXJnID09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgc2l6ZSA9IGFyZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc2l6ZSAhPSAnbnVtYmVyJykgcmV0dXJuIEVNUFRZX1BST01JU0U7XG4gICAgICAgICAgICBjaGFuZ2VTaXplKHtcbiAgICAgICAgICAgICAgICBfbDogc2l6ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBsYXN0UGFnZVNpemVSZWYuY3VycmVudCA9IHNpemU7XG4gICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBhZ2UgZGF0YSBhZnRlciB0aGUgc2l6ZSBjaGFuZ2UuXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gW107XG4gICAgICAgICAgICBjb25zdCBbZ2V0SW5maW5pdGVDYWNoZV0gPSBjcmVhdGVDYWNoZUhlbHBlcihjYWNoZSQxLCBpbmZpbml0ZUtleSk7XG4gICAgICAgICAgICBsZXQgcHJldmlvdXNQYWdlRGF0YSA9IG51bGw7XG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgc2l6ZTsgKytpKXtcbiAgICAgICAgICAgICAgICBjb25zdCBbcGFnZUtleV0gPSBzZXJpYWxpemUoZ2V0S2V5KGksIHByZXZpb3VzUGFnZURhdGEpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBbZ2V0Q2FjaGVdID0gY3JlYXRlQ2FjaGVIZWxwZXIoY2FjaGUkMSwgcGFnZUtleSk7XG4gICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBjYWNoZWQgcGFnZSBkYXRhLlxuICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VEYXRhID0gcGFnZUtleSA/IGdldENhY2hlKCkuZGF0YSA6IFVOREVGSU5FRDtcbiAgICAgICAgICAgICAgICAvLyBDYWxsIGBtdXRhdGVgIHdpdGggaW5maW50ZSBjYWNoZSBkYXRhIGlmIHdlIGNhbid0IGdldCBpdCBmcm9tIHRoZSBwYWdlIGNhY2hlLlxuICAgICAgICAgICAgICAgIGlmIChpc1VuZGVmaW5lZChwYWdlRGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG11dGF0ZShnZXRJbmZpbml0ZUNhY2hlKCkuZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRhdGEucHVzaChwYWdlRGF0YSk7XG4gICAgICAgICAgICAgICAgcHJldmlvdXNQYWdlRGF0YSA9IHBhZ2VEYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG11dGF0ZShkYXRhKTtcbiAgICAgICAgfSwgLy8gZXhjbHVkZSBnZXRLZXkgZnJvbSB0aGUgZGVwZW5kZW5jaWVzLCB3aGljaCBpc24ndCBhbGxvd2VkIHRvIGNoYW5nZSBkdXJpbmcgdGhlIGxpZmVjeWNsZVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgICAgIFtcbiAgICAgICAgICAgIGluZmluaXRlS2V5LFxuICAgICAgICAgICAgY2FjaGUkMSxcbiAgICAgICAgICAgIG11dGF0ZSxcbiAgICAgICAgICAgIHJlc29sdmVQYWdlU2l6ZVxuICAgICAgICBdKTtcbiAgICAgICAgLy8gVXNlIGdldHRlciBmdW5jdGlvbnMgdG8gYXZvaWQgdW5uZWNlc3NhcnkgcmUtcmVuZGVycyBjYXVzZWQgYnkgdHJpZ2dlcmluZ1xuICAgICAgICAvLyBhbGwgdGhlIGdldHRlcnMgb2YgdGhlIHJldHVybmVkIHN3ciBvYmplY3QuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzaXplOiByZXNvbHZlUGFnZVNpemUoKSxcbiAgICAgICAgICAgIHNldFNpemUsXG4gICAgICAgICAgICBtdXRhdGUsXG4gICAgICAgICAgICBnZXQgZGF0YSAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN3ci5kYXRhO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCBlcnJvciAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN3ci5lcnJvcjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgaXNWYWxpZGF0aW5nICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3dyLmlzVmFsaWRhdGluZztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgaXNMb2FkaW5nICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3dyLmlzTG9hZGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuY29uc3QgdXNlU1dSSW5maW5pdGUgPSB3aXRoTWlkZGxld2FyZSh1c2VTV1IsIGluZmluaXRlKTtcblxuZXhwb3J0IHsgdXNlU1dSSW5maW5pdGUgYXMgZGVmYXVsdCwgaW5maW5pdGUsIHVuc3RhYmxlX3NlcmlhbGl6ZSB9O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFrRjtBQUM3RDtBQUN3RDtBQUNxUTs7QUFFbFY7QUFDQSxZQUFZLHNDQUFnQjtBQUM1QjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlB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\n//# sourceURL=webpack-internal:///../../../node_modules/swr/dist/infinite/index.mjs\n\n}");
|
|
4579
|
-
|
|
4580
4561
|
},
|
|
4581
4562
|
"../../../node_modules/workbox-window/build/workbox-window.prod.es5.mjs"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
4582
4563
|
"use strict";
|
|
@@ -5960,7 +5941,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
5960
5941
|
},
|
|
5961
5942
|
"../../framework/esm-react-utils/dist/openmrsComponentDecorator.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
5962
5943
|
"use strict";
|
|
5963
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n openmrsComponentDecorator: () => (openmrsComponentDecorator)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var react_i18next__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/react-i18next/react-i18next\");\n/* import */ var react_i18next__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(react_i18next__rspack_import_1);\n/* import */ var swr__rspack_import_2 = __webpack_require__(\"../../../node_modules/swr/dist/core/index.mjs\");\n/* import */ var swr_internal__rspack_import_3 = __webpack_require__(\"webpack/sharing/consume/default/swr/_internal/swr/_internal\");\n/* import */ var swr_internal__rspack_import_3_default = /*#__PURE__*/__webpack_require__.n(swr_internal__rspack_import_3);\n/* import */ var _openmrs_esm_api__rspack_import_4 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var _ComponentContext_js__rspack_import_5 = __webpack_require__(\"../../framework/esm-react-utils/dist/ComponentContext.js\");\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\n\n\n\n\n\nconst defaultOpts = {\n strictMode: true,\n throwErrorsToConsole: true,\n disableTranslations: false\n};\n// One global SWR cache shared by every decorated component, the same regardless\n// of module-federation load order (see #1397). It is pre-initialized here so its\n// SWRGlobalState is owned by this (singleton) module, not by the first\n// `<SWRConfig>` that mounts. Otherwise that boundary's unmount would run\n// `SWRGlobalState.delete(swrCache)` and the other still-mounted decorated\n// components would crash on their next render (\"undefined is not iterable\").\nconst swrCache = new Map();\n(0,swr_internal__rspack_import_3.initCache)(swrCache);\n// Read more about the available config options here: https://swr.vercel.app/docs/api#configuration\nconst defaultSwrConfig = {\n // max number of retries after requests have failed\n errorRetryCount: 3,\n // default fetcher function\n fetcher: _openmrs_esm_api__rspack_import_4.openmrsFetch,\n // only revalidate once every 30 minutes\n focusThrottleInterval: 1800000,\n revalidateIfStale: true,\n // disable automatic revalidations by default\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshInterval: 0,\n shouldRetryOnError: (error)=>{\n if (error instanceof _openmrs_esm_api__rspack_import_4.OpenmrsFetchError) {\n const status = error.response.status;\n // retry all server-side errors\n if (status >= 500) {\n return true;\n }\n // retry on authentication failure or rate-limited requests\n if (status === 401 || status === 403 || status === 429) {\n return true;\n }\n // do not retry on other client-side errors\n return false;\n }\n return true;\n },\n provider: ()=>swrCache\n};\nfunction openmrsComponentDecorator(userOpts) {\n if (typeof userOpts !== 'object' || typeof userOpts.featureName !== 'string' || typeof userOpts.moduleName !== 'string') {\n throw new Error('Invalid options');\n }\n const opts = Object.assign({}, defaultOpts, userOpts);\n const swrConfig = {\n ...defaultSwrConfig,\n ...opts.swrConfig\n };\n return function decorateComponent(Comp) {\n var _React_Component, _OpenmrsReactComponent;\n return _OpenmrsReactComponent = class OpenmrsReactComponent extends (_React_Component = (react__rspack_import_0_default().Component)) {\n componentDidCatch(err, info) {\n if (info && info.componentStack) {\n err.extra = Object.assign(err.extra || {}, {\n componentStack: info.componentStack\n });\n }\n if (opts.throwErrorsToConsole) {\n setTimeout(()=>{\n throw err;\n });\n }\n this.setState({\n caughtError: err,\n caughtErrorInfo: info\n });\n }\n render() {\n if (this.state.caughtError) {\n // TO-DO have a UX designed for when a catastrophic error occurs\n return /*#__PURE__*/ react__rspack_import_0_default().createElement(\"div\", null, \"An error has occurred. Please try reloading the page.\");\n } else {\n const content = /*#__PURE__*/ react__rspack_import_0_default().createElement(react__rspack_import_0.Suspense, {\n fallback: null\n }, /*#__PURE__*/ react__rspack_import_0_default().createElement(swr__rspack_import_2.SWRConfig, {\n value: swrConfig\n }, /*#__PURE__*/ react__rspack_import_0_default().createElement(_ComponentContext_js__rspack_import_5.ComponentContext.Provider, {\n value: this.state.config\n }, opts.disableTranslations ? /*#__PURE__*/ react__rspack_import_0_default().createElement(Comp, this.props) : /*#__PURE__*/ react__rspack_import_0_default().createElement(react_i18next__rspack_import_1.I18nextProvider, {\n i18n: window.i18next,\n defaultNS: this.state.config.extension ? `${this.state.config.moduleName}___${this.state.config.extension.extensionSlotName}___${this.state.config.extension.extensionId}` : this.state.config.moduleName\n }, /*#__PURE__*/ react__rspack_import_0_default().createElement(Comp, this.props)))));\n if (!opts.strictMode || !(react__rspack_import_0_default().StrictMode)) {\n return content;\n } else {\n return /*#__PURE__*/ react__rspack_import_0_default().createElement((react__rspack_import_0_default().StrictMode), null, content);\n }\n }\n }\n constructor(props){\n super(props);\n this.state = {\n caughtError: null,\n caughtErrorInfo: null,\n config: {\n moduleName: opts.moduleName,\n featureName: opts.featureName,\n extension: props._extensionContext\n }\n };\n }\n }, _define_property(_OpenmrsReactComponent, \"displayName\", `OpenmrsReactComponent(${opts.featureName})`), _OpenmrsReactComponent;\n };\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L29wZW5tcnNDb21wb25lbnREZWNvcmF0b3IuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvZGlzdC9vcGVubXJzQ29tcG9uZW50RGVjb3JhdG9yLmpzP2I0M2YiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2RlZmluZV9wcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHtcbiAgICBpZiAoa2V5IGluIG9iaikge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBvYmpba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xufVxuaW1wb3J0IFJlYWN0LCB7IFN1c3BlbnNlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBJMThuZXh0UHJvdmlkZXIgfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHsgU1dSQ29uZmlnIH0gZnJvbSBcInN3clwiO1xuaW1wb3J0IHsgaW5pdENhY2hlIH0gZnJvbSBcInN3ci9faW50ZXJuYWxcIjtcbmltcG9ydCB7IG9wZW5tcnNGZXRjaCwgT3Blbm1yc0ZldGNoRXJyb3IgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWFwaVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dCB9IGZyb20gXCIuL0NvbXBvbmVudENvbnRleHQuanNcIjtcbmNvbnN0IGRlZmF1bHRPcHRzID0ge1xuICAgIHN0cmljdE1vZGU6IHRydWUsXG4gICAgdGhyb3dFcnJvcnNUb0NvbnNvbGU6IHRydWUsXG4gICAgZGlzYWJsZVRyYW5zbGF0aW9uczogZmFsc2Vcbn07XG4vLyBPbmUgZ2xvYmFsIFNXUiBjYWNoZSBzaGFyZWQgYnkgZXZlcnkgZGVjb3JhdGVkIGNvbXBvbmVudCwgdGhlIHNhbWUgcmVnYXJkbGVzc1xuLy8gb2YgbW9kdWxlLWZlZGVyYXRpb24gbG9hZCBvcmRlciAoc2VlICMxMzk3KS4gSXQgaXMgcHJlLWluaXRpYWxpemVkIGhlcmUgc28gaXRzXG4vLyBTV1JHbG9iYWxTdGF0ZSBpcyBvd25lZCBieSB0aGlzIChzaW5nbGV0b24pIG1vZHVsZSwgbm90IGJ5IHRoZSBmaXJzdFxuLy8gYDxTV1JDb25maWc+YCB0aGF0IG1vdW50cy4gT3RoZXJ3aXNlIHRoYXQgYm91bmRhcnkncyB1bm1vdW50IHdvdWxkIHJ1blxuLy8gYFNXUkdsb2JhbFN0YXRlLmRlbGV0ZShzd3JDYWNoZSlgIGFuZCB0aGUgb3RoZXIgc3RpbGwtbW91bnRlZCBkZWNvcmF0ZWRcbi8vIGNvbXBvbmVudHMgd291bGQgY3Jhc2ggb24gdGhlaXIgbmV4dCByZW5kZXIgKFwidW5kZWZpbmVkIGlzIG5vdCBpdGVyYWJsZVwiKS5cbmNvbnN0IHN3ckNhY2hlID0gbmV3IE1hcCgpO1xuaW5pdENhY2hlKHN3ckNhY2hlKTtcbi8vIFJlYWQgbW9yZSBhYm91dCB0aGUgYXZhaWxhYmxlIGNvbmZpZyBvcHRpb25zIGhlcmU6IGh0dHBzOi8vc3dyLnZlcmNlbC5hcHAvZG9jcy9hcGkjY29uZmlndXJhdGlvblxuY29uc3QgZGVmYXVsdFN3ckNvbmZpZyA9IHtcbiAgICAvLyBtYXggbnVtYmVyIG9mIHJldHJpZXMgYWZ0ZXIgcmVxdWVzdHMgaGF2ZSBmYWlsZWRcbiAgICBlcnJvclJldHJ5Q291bnQ6IDMsXG4gICAgLy8gZGVmYXVsdCBmZXRjaGVyIGZ1bmN0aW9uXG4gICAgZmV0Y2hlcjogb3Blbm1yc0ZldGNoLFxuICAgIC8vIG9ubHkgcmV2YWxpZGF0ZSBvbmNlIGV2ZXJ5IDMwIG1pbnV0ZXNcbiAgICBmb2N1c1Rocm90dGxlSW50ZXJ2YWw6IDE4MDAwMDAsXG4gICAgcmV2YWxpZGF0ZUlmU3RhbGU6IHRydWUsXG4gICAgLy8gZGlzYWJsZSBhdXRvbWF0aWMgcmV2YWxpZGF0aW9ucyBieSBkZWZhdWx0XG4gICAgcmV2YWxpZGF0ZU9uRm9jdXM6IGZhbHNlLFxuICAgIHJldmFsaWRhdGVPblJlY29ubmVjdDogZmFsc2UsXG4gICAgcmVmcmVzaEludGVydmFsOiAwLFxuICAgIHNob3VsZFJldHJ5T25FcnJvcjogKGVycm9yKT0+e1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBPcGVubXJzRmV0Y2hFcnJvcikge1xuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gZXJyb3IucmVzcG9uc2Uuc3RhdHVzO1xuICAgICAgICAgICAgLy8gcmV0cnkgYWxsIHNlcnZlci1zaWRlIGVycm9yc1xuICAgICAgICAgICAgaWYgKHN0YXR1cyA+PSA1MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHJldHJ5IG9uIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmUgb3IgcmF0ZS1saW1pdGVkIHJlcXVlc3RzXG4gICAgICAgICAgICBpZiAoc3RhdHVzID09PSA0MDEgfHwgc3RhdHVzID09PSA0MDMgfHwgc3RhdHVzID09PSA0MjkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGRvIG5vdCByZXRyeSBvbiBvdGhlciBjbGllbnQtc2lkZSBlcnJvcnNcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuICAgIHByb3ZpZGVyOiAoKT0+c3dyQ2FjaGVcbn07XG5leHBvcnQgZnVuY3Rpb24gb3Blbm1yc0NvbXBvbmVudERlY29yYXRvcih1c2VyT3B0cykge1xuICAgIGlmICh0eXBlb2YgdXNlck9wdHMgIT09ICdvYmplY3QnIHx8IHR5cGVvZiB1c2VyT3B0cy5mZWF0dXJlTmFtZSAhPT0gJ3N0cmluZycgfHwgdHlwZW9mIHVzZXJPcHRzLm1vZHVsZU5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBvcHRpb25zJyk7XG4gICAgfVxuICAgIGNvbnN0IG9wdHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0T3B0cywgdXNlck9wdHMpO1xuICAgIGNvbnN0IHN3ckNvbmZpZyA9IHtcbiAgICAgICAgLi4uZGVmYXVsdFN3ckNvbmZpZyxcbiAgICAgICAgLi4ub3B0cy5zd3JDb25maWdcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiBkZWNvcmF0ZUNvbXBvbmVudChDb21wKSB7XG4gICAgICAgIHZhciBfUmVhY3RfQ29tcG9uZW50LCBfT3Blbm1yc1JlYWN0Q29tcG9uZW50O1xuICAgICAgICByZXR1cm4gX09wZW5tcnNSZWFjdENvbXBvbmVudCA9IGNsYXNzIE9wZW5tcnNSZWFjdENvbXBvbmVudCBleHRlbmRzIChfUmVhY3RfQ29tcG9uZW50ID0gUmVhY3QuQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBjb21wb25lbnREaWRDYXRjaChlcnIsIGluZm8pIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5mbyAmJiBpbmZvLmNvbXBvbmVudFN0YWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGVyci5leHRyYSA9IE9iamVjdC5hc3NpZ24oZXJyLmV4dHJhIHx8IHt9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRTdGFjazogaW5mby5jb21wb25lbnRTdGFja1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9wdHMudGhyb3dFcnJvcnNUb0NvbnNvbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGNhdWdodEVycm9yOiBlcnIsXG4gICAgICAgICAgICAgICAgICAgIGNhdWdodEVycm9ySW5mbzogaW5mb1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVuZGVyKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmNhdWdodEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPLURPIGhhdmUgYSBVWCBkZXNpZ25lZCBmb3Igd2hlbiBhIGNhdGFzdHJvcGhpYyBlcnJvciBvY2N1cnNcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBudWxsLCBcIkFuIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIHRyeSByZWxvYWRpbmcgdGhlIHBhZ2UuXCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3VzcGVuc2UsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrOiBudWxsXG4gICAgICAgICAgICAgICAgICAgIH0sIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChTV1JDb25maWcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzd3JDb25maWdcbiAgICAgICAgICAgICAgICAgICAgfSwgLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KENvbXBvbmVudENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnN0YXRlLmNvbmZpZ1xuICAgICAgICAgICAgICAgICAgICB9LCBvcHRzLmRpc2FibGVUcmFuc2xhdGlvbnMgPyAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcCwgdGhpcy5wcm9wcykgOiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSTE4bmV4dFByb3ZpZGVyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpMThuOiB3aW5kb3cuaTE4bmV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHROUzogdGhpcy5zdGF0ZS5jb25maWcuZXh0ZW5zaW9uID8gYCR7dGhpcy5zdGF0ZS5jb25maWcubW9kdWxlTmFtZX1fX18ke3RoaXMuc3RhdGUuY29uZmlnLmV4dGVuc2lvbi5leHRlbnNpb25TbG90TmFtZX1fX18ke3RoaXMuc3RhdGUuY29uZmlnLmV4dGVuc2lvbi5leHRlbnNpb25JZH1gIDogdGhpcy5zdGF0ZS5jb25maWcubW9kdWxlTmFtZVxuICAgICAgICAgICAgICAgICAgICB9LCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcCwgdGhpcy5wcm9wcykpKSkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdHMuc3RyaWN0TW9kZSB8fCAhUmVhY3QuU3RyaWN0TW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LlN0cmljdE1vZGUsIG51bGwsIGNvbnRlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3RydWN0b3IocHJvcHMpe1xuICAgICAgICAgICAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICBjYXVnaHRFcnJvcjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgY2F1Z2h0RXJyb3JJbmZvOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZU5hbWU6IG9wdHMubW9kdWxlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmVOYW1lOiBvcHRzLmZlYXR1cmVOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uOiBwcm9wcy5fZXh0ZW5zaW9uQ29udGV4dFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgX2RlZmluZV9wcm9wZXJ0eShfT3Blbm1yc1JlYWN0Q29tcG9uZW50LCBcImRpc3BsYXlOYW1lXCIsIGBPcGVubXJzUmVhY3RDb21wb25lbnQoJHtvcHRzLmZlYXR1cmVOYW1lfSlgKSwgX09wZW5tcnNSZWFjdENvbXBvbmVudDtcbiAgICB9O1xufVxuIl0sIm5hbWVzIjpbIl9kZWZpbmVfcHJvcGVydHkiLCJvYmoiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsIlJlYWN0IiwiU3VzcGVuc2UiLCJJMThuZXh0UHJvdmlkZXIiLCJTV1JDb25maWciLCJpbml0Q2FjaGUiLCJvcGVubXJzRmV0Y2giLCJPcGVubXJzRmV0Y2hFcnJvciIsIkNvbXBvbmVudENvbnRleHQiLCJkZWZhdWx0T3B0cyIsInN3ckNhY2hlIiwiTWFwIiwiZGVmYXVsdFN3ckNvbmZpZyIsImVycm9yIiwic3RhdHVzIiwib3Blbm1yc0NvbXBvbmVudERlY29yYXRvciIsInVzZXJPcHRzIiwiRXJyb3IiLCJvcHRzIiwic3dyQ29uZmlnIiwiZGVjb3JhdGVDb21wb25lbnQiLCJDb21wIiwiX1JlYWN0X0NvbXBvbmVudCIsIl9PcGVubXJzUmVhY3RDb21wb25lbnQiLCJPcGVubXJzUmVhY3RDb21wb25lbnQiLCJlcnIiLCJpbmZvIiwic2V0VGltZW91dCIsImNvbnRlbnQiLCJ3aW5kb3ciLCJwcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLFNBQVNBLGlCQUFpQkMsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEtBQUs7SUFDckMsSUFBSUQsT0FBT0QsS0FBSztRQUNaRyxPQUFPLGNBQWMsQ0FBQ0gsS0FBS0MsS0FBSztZQUM1QixPQUFPQztZQUNQLFlBQVk7WUFDWixjQUFjO1lBQ2QsVUFBVTtRQUNkO0lBQ0osT0FBTztRQUNIRixHQUFHLENBQUNDLElBQUksR0FBR0M7SUFDZjtJQUNBLE9BQU9GO0FBQ1g7QUFDd0M7QUFDUTtBQUNoQjtBQUNVO0FBQ3lCO0FBQ1Y7QUFDekQsTUFBTVksY0FBYztJQUNoQixZQUFZO0lBQ1osc0JBQXNCO0lBQ3RCLHFCQUFxQjtBQUN6QjtBQUNBLGdGQUFnRjtBQUNoRixpRkFBaUY7QUFDakYsdUVBQXVFO0FBQ3ZFLHlFQUF5RTtBQUN6RSwwRUFBMEU7QUFDMUUsNkVBQTZFO0FBQzdFLE1BQU1DLFdBQVcsSUFBSUM7QUFDckJOLDJDQUFTQSxDQUFDSztBQUNWLG1HQUFtRztBQUNuRyxNQUFNRSxtQkFBbUI7SUFDckIsbURBQW1EO0lBQ25ELGlCQUFpQjtJQUNqQiwyQkFBMkI7SUFDM0IsU0FBU04sOENBQVlBO0lBQ3JCLHdDQUF3QztJQUN4Qyx1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLDZDQUE2QztJQUM3QyxtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLGlCQUFpQjtJQUNqQixvQkFBb0IsQ0FBQ087UUFDakIsSUFBSUEsaUJBQWlCTixtREFBaUJBLEVBQUU7WUFDcEMsTUFBTU8sU0FBU0QsTUFBTSxRQUFRLENBQUMsTUFBTTtZQUNwQywrQkFBK0I7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\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/openmrsComponentDecorator.js\n\n}");
|
|
5944
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n openmrsComponentDecorator: () => (openmrsComponentDecorator)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var react_i18next__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/react-i18next/react-i18next\");\n/* import */ var react_i18next__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(react_i18next__rspack_import_1);\n/* import */ var swr__rspack_import_2 = __webpack_require__(\"webpack/sharing/consume/default/swr/swr\");\n/* import */ var swr__rspack_import_2_default = /*#__PURE__*/__webpack_require__.n(swr__rspack_import_2);\n/* import */ var swr_internal__rspack_import_3 = __webpack_require__(\"webpack/sharing/consume/default/swr/_internal/swr/_internal\");\n/* import */ var swr_internal__rspack_import_3_default = /*#__PURE__*/__webpack_require__.n(swr_internal__rspack_import_3);\n/* import */ var _openmrs_esm_api__rspack_import_4 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var _ComponentContext_js__rspack_import_5 = __webpack_require__(\"../../framework/esm-react-utils/dist/ComponentContext.js\");\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\n\n\n\n\n\nconst defaultOpts = {\n strictMode: true,\n throwErrorsToConsole: true,\n disableTranslations: false\n};\n// One global SWR cache shared by every decorated component, the same regardless\n// of module-federation load order (see #1397). It is pre-initialized here so its\n// SWRGlobalState is owned by this (singleton) module, not by the first\n// `<SWRConfig>` that mounts. Otherwise that boundary's unmount would run\n// `SWRGlobalState.delete(swrCache)` and the other still-mounted decorated\n// components would crash on their next render (\"undefined is not iterable\").\nconst swrCache = new Map();\n(0,swr_internal__rspack_import_3.initCache)(swrCache);\n// Read more about the available config options here: https://swr.vercel.app/docs/api#configuration\nconst defaultSwrConfig = {\n // max number of retries after requests have failed\n errorRetryCount: 3,\n // default fetcher function\n fetcher: _openmrs_esm_api__rspack_import_4.openmrsFetch,\n // only revalidate once every 30 minutes\n focusThrottleInterval: 1800000,\n revalidateIfStale: true,\n // disable automatic revalidations by default\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n refreshInterval: 0,\n shouldRetryOnError: (error)=>{\n if (error instanceof _openmrs_esm_api__rspack_import_4.OpenmrsFetchError) {\n const status = error.response.status;\n // retry all server-side errors\n if (status >= 500) {\n return true;\n }\n // retry on authentication failure or rate-limited requests\n if (status === 401 || status === 403 || status === 429) {\n return true;\n }\n // do not retry on other client-side errors\n return false;\n }\n return true;\n },\n provider: ()=>swrCache\n};\nfunction openmrsComponentDecorator(userOpts) {\n if (typeof userOpts !== 'object' || typeof userOpts.featureName !== 'string' || typeof userOpts.moduleName !== 'string') {\n throw new Error('Invalid options');\n }\n const opts = Object.assign({}, defaultOpts, userOpts);\n const swrConfig = {\n ...defaultSwrConfig,\n ...opts.swrConfig\n };\n return function decorateComponent(Comp) {\n var _React_Component, _OpenmrsReactComponent;\n return _OpenmrsReactComponent = class OpenmrsReactComponent extends (_React_Component = (react__rspack_import_0_default().Component)) {\n componentDidCatch(err, info) {\n if (info && info.componentStack) {\n err.extra = Object.assign(err.extra || {}, {\n componentStack: info.componentStack\n });\n }\n if (opts.throwErrorsToConsole) {\n setTimeout(()=>{\n throw err;\n });\n }\n this.setState({\n caughtError: err,\n caughtErrorInfo: info\n });\n }\n render() {\n if (this.state.caughtError) {\n // TO-DO have a UX designed for when a catastrophic error occurs\n return /*#__PURE__*/ react__rspack_import_0_default().createElement(\"div\", null, \"An error has occurred. Please try reloading the page.\");\n } else {\n const content = /*#__PURE__*/ react__rspack_import_0_default().createElement(react__rspack_import_0.Suspense, {\n fallback: null\n }, /*#__PURE__*/ react__rspack_import_0_default().createElement(swr__rspack_import_2.SWRConfig, {\n value: swrConfig\n }, /*#__PURE__*/ react__rspack_import_0_default().createElement(_ComponentContext_js__rspack_import_5.ComponentContext.Provider, {\n value: this.state.config\n }, opts.disableTranslations ? /*#__PURE__*/ react__rspack_import_0_default().createElement(Comp, this.props) : /*#__PURE__*/ react__rspack_import_0_default().createElement(react_i18next__rspack_import_1.I18nextProvider, {\n i18n: window.i18next,\n defaultNS: this.state.config.extension ? `${this.state.config.moduleName}___${this.state.config.extension.extensionSlotName}___${this.state.config.extension.extensionId}` : this.state.config.moduleName\n }, /*#__PURE__*/ react__rspack_import_0_default().createElement(Comp, this.props)))));\n if (!opts.strictMode || !(react__rspack_import_0_default().StrictMode)) {\n return content;\n } else {\n return /*#__PURE__*/ react__rspack_import_0_default().createElement((react__rspack_import_0_default().StrictMode), null, content);\n }\n }\n }\n constructor(props){\n super(props);\n this.state = {\n caughtError: null,\n caughtErrorInfo: null,\n config: {\n moduleName: opts.moduleName,\n featureName: opts.featureName,\n extension: props._extensionContext\n }\n };\n }\n }, _define_property(_OpenmrsReactComponent, \"displayName\", `OpenmrsReactComponent(${opts.featureName})`), _OpenmrsReactComponent;\n };\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L29wZW5tcnNDb21wb25lbnREZWNvcmF0b3IuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvZGlzdC9vcGVubXJzQ29tcG9uZW50RGVjb3JhdG9yLmpzP2I0M2YiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2RlZmluZV9wcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHtcbiAgICBpZiAoa2V5IGluIG9iaikge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBvYmpba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xufVxuaW1wb3J0IFJlYWN0LCB7IFN1c3BlbnNlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBJMThuZXh0UHJvdmlkZXIgfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHsgU1dSQ29uZmlnIH0gZnJvbSBcInN3clwiO1xuaW1wb3J0IHsgaW5pdENhY2hlIH0gZnJvbSBcInN3ci9faW50ZXJuYWxcIjtcbmltcG9ydCB7IG9wZW5tcnNGZXRjaCwgT3Blbm1yc0ZldGNoRXJyb3IgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWFwaVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dCB9IGZyb20gXCIuL0NvbXBvbmVudENvbnRleHQuanNcIjtcbmNvbnN0IGRlZmF1bHRPcHRzID0ge1xuICAgIHN0cmljdE1vZGU6IHRydWUsXG4gICAgdGhyb3dFcnJvcnNUb0NvbnNvbGU6IHRydWUsXG4gICAgZGlzYWJsZVRyYW5zbGF0aW9uczogZmFsc2Vcbn07XG4vLyBPbmUgZ2xvYmFsIFNXUiBjYWNoZSBzaGFyZWQgYnkgZXZlcnkgZGVjb3JhdGVkIGNvbXBvbmVudCwgdGhlIHNhbWUgcmVnYXJkbGVzc1xuLy8gb2YgbW9kdWxlLWZlZGVyYXRpb24gbG9hZCBvcmRlciAoc2VlICMxMzk3KS4gSXQgaXMgcHJlLWluaXRpYWxpemVkIGhlcmUgc28gaXRzXG4vLyBTV1JHbG9iYWxTdGF0ZSBpcyBvd25lZCBieSB0aGlzIChzaW5nbGV0b24pIG1vZHVsZSwgbm90IGJ5IHRoZSBmaXJzdFxuLy8gYDxTV1JDb25maWc+YCB0aGF0IG1vdW50cy4gT3RoZXJ3aXNlIHRoYXQgYm91bmRhcnkncyB1bm1vdW50IHdvdWxkIHJ1blxuLy8gYFNXUkdsb2JhbFN0YXRlLmRlbGV0ZShzd3JDYWNoZSlgIGFuZCB0aGUgb3RoZXIgc3RpbGwtbW91bnRlZCBkZWNvcmF0ZWRcbi8vIGNvbXBvbmVudHMgd291bGQgY3Jhc2ggb24gdGhlaXIgbmV4dCByZW5kZXIgKFwidW5kZWZpbmVkIGlzIG5vdCBpdGVyYWJsZVwiKS5cbmNvbnN0IHN3ckNhY2hlID0gbmV3IE1hcCgpO1xuaW5pdENhY2hlKHN3ckNhY2hlKTtcbi8vIFJlYWQgbW9yZSBhYm91dCB0aGUgYXZhaWxhYmxlIGNvbmZpZyBvcHRpb25zIGhlcmU6IGh0dHBzOi8vc3dyLnZlcmNlbC5hcHAvZG9jcy9hcGkjY29uZmlndXJhdGlvblxuY29uc3QgZGVmYXVsdFN3ckNvbmZpZyA9IHtcbiAgICAvLyBtYXggbnVtYmVyIG9mIHJldHJpZXMgYWZ0ZXIgcmVxdWVzdHMgaGF2ZSBmYWlsZWRcbiAgICBlcnJvclJldHJ5Q291bnQ6IDMsXG4gICAgLy8gZGVmYXVsdCBmZXRjaGVyIGZ1bmN0aW9uXG4gICAgZmV0Y2hlcjogb3Blbm1yc0ZldGNoLFxuICAgIC8vIG9ubHkgcmV2YWxpZGF0ZSBvbmNlIGV2ZXJ5IDMwIG1pbnV0ZXNcbiAgICBmb2N1c1Rocm90dGxlSW50ZXJ2YWw6IDE4MDAwMDAsXG4gICAgcmV2YWxpZGF0ZUlmU3RhbGU6IHRydWUsXG4gICAgLy8gZGlzYWJsZSBhdXRvbWF0aWMgcmV2YWxpZGF0aW9ucyBieSBkZWZhdWx0XG4gICAgcmV2YWxpZGF0ZU9uRm9jdXM6IGZhbHNlLFxuICAgIHJldmFsaWRhdGVPblJlY29ubmVjdDogZmFsc2UsXG4gICAgcmVmcmVzaEludGVydmFsOiAwLFxuICAgIHNob3VsZFJldHJ5T25FcnJvcjogKGVycm9yKT0+e1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBPcGVubXJzRmV0Y2hFcnJvcikge1xuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gZXJyb3IucmVzcG9uc2Uuc3RhdHVzO1xuICAgICAgICAgICAgLy8gcmV0cnkgYWxsIHNlcnZlci1zaWRlIGVycm9yc1xuICAgICAgICAgICAgaWYgKHN0YXR1cyA+PSA1MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHJldHJ5IG9uIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmUgb3IgcmF0ZS1saW1pdGVkIHJlcXVlc3RzXG4gICAgICAgICAgICBpZiAoc3RhdHVzID09PSA0MDEgfHwgc3RhdHVzID09PSA0MDMgfHwgc3RhdHVzID09PSA0MjkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGRvIG5vdCByZXRyeSBvbiBvdGhlciBjbGllbnQtc2lkZSBlcnJvcnNcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuICAgIHByb3ZpZGVyOiAoKT0+c3dyQ2FjaGVcbn07XG5leHBvcnQgZnVuY3Rpb24gb3Blbm1yc0NvbXBvbmVudERlY29yYXRvcih1c2VyT3B0cykge1xuICAgIGlmICh0eXBlb2YgdXNlck9wdHMgIT09ICdvYmplY3QnIHx8IHR5cGVvZiB1c2VyT3B0cy5mZWF0dXJlTmFtZSAhPT0gJ3N0cmluZycgfHwgdHlwZW9mIHVzZXJPcHRzLm1vZHVsZU5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBvcHRpb25zJyk7XG4gICAgfVxuICAgIGNvbnN0IG9wdHMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0T3B0cywgdXNlck9wdHMpO1xuICAgIGNvbnN0IHN3ckNvbmZpZyA9IHtcbiAgICAgICAgLi4uZGVmYXVsdFN3ckNvbmZpZyxcbiAgICAgICAgLi4ub3B0cy5zd3JDb25maWdcbiAgICB9O1xuICAgIHJldHVybiBmdW5jdGlvbiBkZWNvcmF0ZUNvbXBvbmVudChDb21wKSB7XG4gICAgICAgIHZhciBfUmVhY3RfQ29tcG9uZW50LCBfT3Blbm1yc1JlYWN0Q29tcG9uZW50O1xuICAgICAgICByZXR1cm4gX09wZW5tcnNSZWFjdENvbXBvbmVudCA9IGNsYXNzIE9wZW5tcnNSZWFjdENvbXBvbmVudCBleHRlbmRzIChfUmVhY3RfQ29tcG9uZW50ID0gUmVhY3QuQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBjb21wb25lbnREaWRDYXRjaChlcnIsIGluZm8pIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5mbyAmJiBpbmZvLmNvbXBvbmVudFN0YWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGVyci5leHRyYSA9IE9iamVjdC5hc3NpZ24oZXJyLmV4dHJhIHx8IHt9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRTdGFjazogaW5mby5jb21wb25lbnRTdGFja1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9wdHMudGhyb3dFcnJvcnNUb0NvbnNvbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGNhdWdodEVycm9yOiBlcnIsXG4gICAgICAgICAgICAgICAgICAgIGNhdWdodEVycm9ySW5mbzogaW5mb1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVuZGVyKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmNhdWdodEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPLURPIGhhdmUgYSBVWCBkZXNpZ25lZCBmb3Igd2hlbiBhIGNhdGFzdHJvcGhpYyBlcnJvciBvY2N1cnNcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBudWxsLCBcIkFuIGVycm9yIGhhcyBvY2N1cnJlZC4gUGxlYXNlIHRyeSByZWxvYWRpbmcgdGhlIHBhZ2UuXCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoU3VzcGVuc2UsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrOiBudWxsXG4gICAgICAgICAgICAgICAgICAgIH0sIC8qI19fUFVSRV9fKi8gUmVhY3QuY3JlYXRlRWxlbWVudChTV1JDb25maWcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzd3JDb25maWdcbiAgICAgICAgICAgICAgICAgICAgfSwgLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KENvbXBvbmVudENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnN0YXRlLmNvbmZpZ1xuICAgICAgICAgICAgICAgICAgICB9LCBvcHRzLmRpc2FibGVUcmFuc2xhdGlvbnMgPyAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcCwgdGhpcy5wcm9wcykgOiAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSTE4bmV4dFByb3ZpZGVyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpMThuOiB3aW5kb3cuaTE4bmV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHROUzogdGhpcy5zdGF0ZS5jb25maWcuZXh0ZW5zaW9uID8gYCR7dGhpcy5zdGF0ZS5jb25maWcubW9kdWxlTmFtZX1fX18ke3RoaXMuc3RhdGUuY29uZmlnLmV4dGVuc2lvbi5leHRlbnNpb25TbG90TmFtZX1fX18ke3RoaXMuc3RhdGUuY29uZmlnLmV4dGVuc2lvbi5leHRlbnNpb25JZH1gIDogdGhpcy5zdGF0ZS5jb25maWcubW9kdWxlTmFtZVxuICAgICAgICAgICAgICAgICAgICB9LCAvKiNfX1BVUkVfXyovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcCwgdGhpcy5wcm9wcykpKSkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdHMuc3RyaWN0TW9kZSB8fCAhUmVhY3QuU3RyaWN0TW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBSZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LlN0cmljdE1vZGUsIG51bGwsIGNvbnRlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3RydWN0b3IocHJvcHMpe1xuICAgICAgICAgICAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICBjYXVnaHRFcnJvcjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgY2F1Z2h0RXJyb3JJbmZvOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZU5hbWU6IG9wdHMubW9kdWxlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmVOYW1lOiBvcHRzLmZlYXR1cmVOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uOiBwcm9wcy5fZXh0ZW5zaW9uQ29udGV4dFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgX2RlZmluZV9wcm9wZXJ0eShfT3Blbm1yc1JlYWN0Q29tcG9uZW50LCBcImRpc3BsYXlOYW1lXCIsIGBPcGVubXJzUmVhY3RDb21wb25lbnQoJHtvcHRzLmZlYXR1cmVOYW1lfSlgKSwgX09wZW5tcnNSZWFjdENvbXBvbmVudDtcbiAgICB9O1xufVxuIl0sIm5hbWVzIjpbIl9kZWZpbmVfcHJvcGVydHkiLCJvYmoiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsIlJlYWN0IiwiU3VzcGVuc2UiLCJJMThuZXh0UHJvdmlkZXIiLCJTV1JDb25maWciLCJpbml0Q2FjaGUiLCJvcGVubXJzRmV0Y2giLCJPcGVubXJzRmV0Y2hFcnJvciIsIkNvbXBvbmVudENvbnRleHQiLCJkZWZhdWx0T3B0cyIsInN3ckNhY2hlIiwiTWFwIiwiZGVmYXVsdFN3ckNvbmZpZyIsImVycm9yIiwic3RhdHVzIiwib3Blbm1yc0NvbXBvbmVudERlY29yYXRvciIsInVzZXJPcHRzIiwiRXJyb3IiLCJvcHRzIiwic3dyQ29uZmlnIiwiZGVjb3JhdGVDb21wb25lbnQiLCJDb21wIiwiX1JlYWN0X0NvbXBvbmVudCIsIl9PcGVubXJzUmVhY3RDb21wb25lbnQiLCJPcGVubXJzUmVhY3RDb21wb25lbnQiLCJlcnIiLCJpbmZvIiwic2V0VGltZW91dCIsImNvbnRlbnQiLCJ3aW5kb3ciLCJwcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxTQUFTQSxpQkFBaUJDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxLQUFLO0lBQ3JDLElBQUlELE9BQU9ELEtBQUs7UUFDWkcsT0FBTyxjQUFjLENBQUNILEtBQUtDLEtBQUs7WUFDNUIsT0FBT0M7WUFDUCxZQUFZO1lBQ1osY0FBYztZQUNkLFVBQVU7UUFDZDtJQUNKLE9BQU87UUFDSEYsR0FBRyxDQUFDQyxJQUFJLEdBQUdDO0lBQ2Y7SUFDQSxPQUFPRjtBQUNYO0FBQ3dDO0FBQ1E7QUFDaEI7QUFDVTtBQUN5QjtBQUNWO0FBQ3pELE1BQU1ZLGNBQWM7SUFDaEIsWUFBWTtJQUNaLHNCQUFzQjtJQUN0QixxQkFBcUI7QUFDekI7QUFDQSxnRkFBZ0Y7QUFDaEYsaUZBQWlGO0FBQ2pGLHVFQUF1RTtBQUN2RSx5RUFBeUU7QUFDekUsMEVBQTBFO0FBQzFFLDZFQUE2RTtBQUM3RSxNQUFNQyxXQUFXLElBQUlDO0FBQ3JCTiwyQ0FBU0EsQ0FBQ0s7QUFDVixtR0FBbUc7QUFDbkcsTUFBTUUsbUJBQW1CO0lBQ3JCLG1EQUFtRDtJQUNuRCxpQkFBaUI7SUFDakIsMkJBQTJCO0lBQzNCLFNBQVNOLDhDQUFZQTtJQUNyQix3Q0FBd0M7SUFDeEMsdUJBQXVCO0lBQ3ZCLG1CQUFtQjtJQUNuQiw2Q0FBNkM7SUFDN0MsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixpQkFBaUI7SUFDakIsb0JBQW9CLENBQUNPO1FBQ2pCLElBQUlBLGlCQUFpQk4sbURBQWlCQSxFQUFFO1lBQ3BDLE1BQU1PLFNBQVNELE1BQU0sUUFBUSxDQUFDLE1BQU07WUFDcEMsK0JBQStC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\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/openmrsComponentDecorator.js\n\n}");
|
|
5964
5945
|
|
|
5965
5946
|
},
|
|
5966
5947
|
"../../framework/esm-react-utils/dist/useAbortController.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
@@ -5985,7 +5966,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
5985
5966
|
},
|
|
5986
5967
|
"../../framework/esm-react-utils/dist/useAttachments.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
5987
5968
|
"use strict";
|
|
5988
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useAttachments: () => (useAttachments)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"
|
|
5969
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useAttachments: () => (useAttachments)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/swr/swr\");\n/* import */ var swr__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(swr__rspack_import_1);\n/* import */ var _openmrs_esm_api__rspack_import_2 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var _openmrs_esm_emr_api__rspack_import_3 = __webpack_require__(\"../../framework/esm-emr-api/dist/index.js\");\n/** @module @category API */ \n\n\n\n/**\n * A React hook that fetches attachments for a patient using SWR for caching\n * and automatic revalidation.\n *\n * @param patientUuid The UUID of the patient whose attachments should be fetched.\n * @param includeEncounterless Whether to include attachments that are not\n * associated with any encounter.\n * @returns An object containing:\n * - `data`: Array of attachment objects (empty array while loading)\n * - `isLoading`: Whether the initial fetch is in progress\n * - `isValidating`: Whether any request (initial or revalidation) is in progress\n * - `error`: Any error that occurred during fetching\n * - `mutate`: Function to trigger a revalidation of the data\n *\n * @example\n * ```tsx\n * import { useAttachments } from '@openmrs/esm-framework';\n * function PatientAttachments({ patientUuid }) {\n * const { data, isLoading, error } = useAttachments(patientUuid, true);\n * if (isLoading) return <span>Loading...</span>;\n * if (error) return <span>Error loading attachments</span>;\n * return <AttachmentList attachments={data} />;\n * }\n * ```\n */ function useAttachments(patientUuid, includeEncounterless) {\n const { data, error, mutate, isLoading, isValidating } = swr__rspack_import_1_default()(`${_openmrs_esm_emr_api__rspack_import_3.attachmentUrl}?patient=${patientUuid}&includeEncounterless=${includeEncounterless}`, _openmrs_esm_api__rspack_import_2.openmrsFetch);\n const results = (0,react__rspack_import_0.useMemo)(()=>({\n isLoading,\n data: data?.data.results ?? [],\n error,\n mutate,\n isValidating\n }), [\n data,\n error,\n isLoading,\n isValidating,\n mutate\n ]);\n return results;\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L3VzZUF0dGFjaG1lbnRzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLXJlYWN0LXV0aWxzL2Rpc3QvdXNlQXR0YWNobWVudHMuanM/YTlkYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgQVBJICovIGltcG9ydCB7IHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB1c2VTV1IgZnJvbSBcInN3clwiO1xuaW1wb3J0IHsgb3Blbm1yc0ZldGNoIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1hcGlcIjtcbmltcG9ydCB7IGF0dGFjaG1lbnRVcmwgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWVtci1hcGlcIjtcbi8qKlxuICogQSBSZWFjdCBob29rIHRoYXQgZmV0Y2hlcyBhdHRhY2htZW50cyBmb3IgYSBwYXRpZW50IHVzaW5nIFNXUiBmb3IgY2FjaGluZ1xuICogYW5kIGF1dG9tYXRpYyByZXZhbGlkYXRpb24uXG4gKlxuICogQHBhcmFtIHBhdGllbnRVdWlkIFRoZSBVVUlEIG9mIHRoZSBwYXRpZW50IHdob3NlIGF0dGFjaG1lbnRzIHNob3VsZCBiZSBmZXRjaGVkLlxuICogQHBhcmFtIGluY2x1ZGVFbmNvdW50ZXJsZXNzIFdoZXRoZXIgdG8gaW5jbHVkZSBhdHRhY2htZW50cyB0aGF0IGFyZSBub3RcbiAqICAgYXNzb2NpYXRlZCB3aXRoIGFueSBlbmNvdW50ZXIuXG4gKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZzpcbiAqICAgLSBgZGF0YWA6IEFycmF5IG9mIGF0dGFjaG1lbnQgb2JqZWN0cyAoZW1wdHkgYXJyYXkgd2hpbGUgbG9hZGluZylcbiAqICAgLSBgaXNMb2FkaW5nYDogV2hldGhlciB0aGUgaW5pdGlhbCBmZXRjaCBpcyBpbiBwcm9ncmVzc1xuICogICAtIGBpc1ZhbGlkYXRpbmdgOiBXaGV0aGVyIGFueSByZXF1ZXN0IChpbml0aWFsIG9yIHJldmFsaWRhdGlvbikgaXMgaW4gcHJvZ3Jlc3NcbiAqICAgLSBgZXJyb3JgOiBBbnkgZXJyb3IgdGhhdCBvY2N1cnJlZCBkdXJpbmcgZmV0Y2hpbmdcbiAqICAgLSBgbXV0YXRlYDogRnVuY3Rpb24gdG8gdHJpZ2dlciBhIHJldmFsaWRhdGlvbiBvZiB0aGUgZGF0YVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGltcG9ydCB7IHVzZUF0dGFjaG1lbnRzIH0gZnJvbSAnQG9wZW5tcnMvZXNtLWZyYW1ld29yayc7XG4gKiBmdW5jdGlvbiBQYXRpZW50QXR0YWNobWVudHMoeyBwYXRpZW50VXVpZCB9KSB7XG4gKiAgIGNvbnN0IHsgZGF0YSwgaXNMb2FkaW5nLCBlcnJvciB9ID0gdXNlQXR0YWNobWVudHMocGF0aWVudFV1aWQsIHRydWUpO1xuICogICBpZiAoaXNMb2FkaW5nKSByZXR1cm4gPHNwYW4+TG9hZGluZy4uLjwvc3Bhbj47XG4gKiAgIGlmIChlcnJvcikgcmV0dXJuIDxzcGFuPkVycm9yIGxvYWRpbmcgYXR0YWNobWVudHM8L3NwYW4+O1xuICogICByZXR1cm4gPEF0dGFjaG1lbnRMaXN0IGF0dGFjaG1lbnRzPXtkYXRhfSAvPjtcbiAqIH1cbiAqIGBgYFxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VBdHRhY2htZW50cyhwYXRpZW50VXVpZCwgaW5jbHVkZUVuY291bnRlcmxlc3MpIHtcbiAgICBjb25zdCB7IGRhdGEsIGVycm9yLCBtdXRhdGUsIGlzTG9hZGluZywgaXNWYWxpZGF0aW5nIH0gPSB1c2VTV1IoYCR7YXR0YWNobWVudFVybH0/cGF0aWVudD0ke3BhdGllbnRVdWlkfSZpbmNsdWRlRW5jb3VudGVybGVzcz0ke2luY2x1ZGVFbmNvdW50ZXJsZXNzfWAsIG9wZW5tcnNGZXRjaCk7XG4gICAgY29uc3QgcmVzdWx0cyA9IHVzZU1lbW8oKCk9Pih7XG4gICAgICAgICAgICBpc0xvYWRpbmcsXG4gICAgICAgICAgICBkYXRhOiBkYXRhPy5kYXRhLnJlc3VsdHMgPz8gW10sXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIG11dGF0ZSxcbiAgICAgICAgICAgIGlzVmFsaWRhdGluZ1xuICAgICAgICB9KSwgW1xuICAgICAgICBkYXRhLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgaXNMb2FkaW5nLFxuICAgICAgICBpc1ZhbGlkYXRpbmcsXG4gICAgICAgIG11dGF0ZVxuICAgIF0pO1xuICAgIHJldHVybiByZXN1bHRzO1xufVxuIl0sIm5hbWVzIjpbInVzZU1lbW8iLCJ1c2VTV1IiLCJvcGVubXJzRmV0Y2giLCJhdHRhY2htZW50VXJsIiwidXNlQXR0YWNobWVudHMiLCJwYXRpZW50VXVpZCIsImluY2x1ZGVFbmNvdW50ZXJsZXNzIiwiZGF0YSIsImVycm9yIiwibXV0YXRlIiwiaXNMb2FkaW5nIiwiaXNWYWxpZGF0aW5nIiwicmVzdWx0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLDBCQUEwQixHQUFtQztBQUNwQztBQUN1QjtBQUNLO0FBQ3JEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F3QkMsR0FBVSxTQUFTSSxlQUFlQyxXQUFXLEVBQUVDLG9CQUFvQjtJQUNoRSxNQUFNLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLFNBQVMsRUFBRUMsWUFBWSxFQUFFLEdBQUdWLDhCQUFNQSxDQUFDLEdBQUdFLG1EQUFhQSxDQUFDLFNBQVMsRUFBRUUsWUFBWSxzQkFBc0IsRUFBRUMsc0JBQXNCLEVBQUVKLDhDQUFZQTtJQUNwSyxNQUFNVSxVQUFVWixrQ0FBT0EsQ0FBQyxJQUFLO1lBQ3JCVTtZQUNBLE1BQU1ILE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDOUJDO1lBQ0FDO1lBQ0FFO1FBQ0osSUFBSTtRQUNKSjtRQUNBQztRQUNBRTtRQUNBQztRQUNBRjtLQUNIO0lBQ0QsT0FBT0c7QUFDWCJ9\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/useAttachments.js\n\n}");
|
|
5989
5970
|
|
|
5990
5971
|
},
|
|
5991
5972
|
"../../framework/esm-react-utils/dist/useBodyScrollLock.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
@@ -6025,7 +6006,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
6025
6006
|
},
|
|
6026
6007
|
"../../framework/esm-react-utils/dist/useEmrConfiguration.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
6027
6008
|
"use strict";
|
|
6028
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useEmrConfiguration: () => (useEmrConfiguration)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr_immutable__rspack_import_1 = __webpack_require__(\"../../../node_modules/swr/dist/immutable/index.mjs\");\n/* import */ var _openmrs_esm_api__rspack_import_2 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/** @module @category API */ \n\n\n/*\n * Add other properties as needed. Maintain alphabetical order. Keep in lockstep with the interface above.\n */ const customRepProps = [\n [\n 'admissionDecisionConcept',\n 'ref'\n ],\n [\n 'admissionEncounterType',\n 'ref'\n ],\n [\n 'admissionForm',\n 'ref'\n ],\n [\n 'atFacilityVisitType',\n 'ref'\n ],\n [\n 'bedAssignmentEncounterType',\n 'ref'\n ],\n [\n 'cancelADTRequestEncounterType',\n 'ref'\n ],\n [\n 'checkInClerkEncounterRole',\n 'ref'\n ],\n [\n 'checkInEncounterType',\n 'ref'\n ],\n [\n 'clinicianEncounterRole',\n 'ref'\n ],\n [\n 'conceptSourcesForDiagnosisSearch',\n 'ref'\n ],\n [\n 'consultEncounterType',\n 'ref'\n ],\n [\n 'consultFreeTextCommentsConcept',\n 'ref'\n ],\n [\n 'denyAdmissionConcept',\n 'ref'\n ],\n [\n 'diagnosisMetadata',\n 'ref'\n ],\n [\n 'diagnosisSets',\n 'ref'\n ],\n [\n 'dischargeForm',\n 'ref'\n ],\n [\n 'dispositionDescriptor',\n 'ref'\n ],\n [\n 'dispositions',\n 'ref'\n ],\n [\n 'emrApiConceptSource',\n 'ref'\n ],\n [\n 'exitFromInpatientEncounterType',\n 'ref'\n ],\n [\n 'extraPatientIdentifierTypes',\n 'ref'\n ],\n [\n 'fullPrivilegeLevel',\n 'ref'\n ],\n [\n 'highPrivilegeLevel',\n 'ref'\n ],\n [\n 'identifierTypesToSearch',\n 'ref'\n ],\n [\n 'inpatientNoteEncounterType',\n 'ref'\n ],\n [\n 'lastViewedPatientSizeLimit',\n 'ref'\n ],\n [\n 'metadataSourceName',\n 'ref'\n ],\n [\n 'motherChildRelationshipType',\n 'ref'\n ],\n [\n 'narrowerThanConceptMapType',\n 'ref'\n ],\n [\n 'nonDiagnosisConceptSets',\n 'ref'\n ],\n [\n 'orderingProviderEncounterRole',\n 'ref'\n ],\n [\n 'patientDiedConcept',\n 'ref'\n ],\n [\n 'personImageDirectory',\n 'ref'\n ],\n [\n 'primaryIdentifierType',\n 'ref'\n ],\n [\n 'sameAsConceptMapType',\n 'ref'\n ],\n [\n 'suppressedDiagnosisConcepts',\n 'ref'\n ],\n [\n 'supportsAdmissionLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'supportsLoginLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'supportsTransferLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'supportsVisitsLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'telephoneAttributeType',\n 'ref'\n ],\n [\n 'testPatientPersonAttributeType',\n 'ref'\n ],\n [\n 'transferForm',\n 'ref'\n ],\n [\n 'transferRequestEncounterType',\n 'ref'\n ],\n [\n 'transferWithinHospitalEncounterType',\n 'ref'\n ],\n [\n 'unknownCauseOfDeathConcept',\n 'ref'\n ],\n [\n 'unknownLocation',\n 'ref'\n ],\n [\n 'unknownPatientPersonAttributeType',\n 'ref'\n ],\n [\n 'unknownProvider',\n 'ref'\n ],\n [\n 'visitAssignmentHandlerAdjustEncounterTimeOfDayIfNecessary',\n 'ref'\n ],\n [\n 'visitExpireHours',\n 'ref'\n ],\n [\n 'visitNoteEncounterType',\n 'ref'\n ]\n];\nconst customRepresentation = `custom:${customRepProps.map(([prop, rep])=>`${prop}:${rep}`).join(',')}`;\n/**\n * React hook for fetching and managing OpenMRS EMR configuration\n * @returns {Object} Object containing:\n * - emrConfiguration: EmrApiConfigurationResponse | undefined - The EMR configuration data\n * - isLoadingEmrConfiguration: boolean - Loading state indicator\n * - mutateEmrConfiguration: Function - SWR's mutate function for manual revalidation\n * - errorFetchingEmrConfiguration: Error | undefined - Error object if request fails\n */ function useEmrConfiguration() {\n const url = `${_openmrs_esm_api__rspack_import_2.restBaseUrl}/emrapi/configuration?v=${customRepresentation}`;\n const swrData = (0,swr_immutable__rspack_import_1[\"default\"])(url, _openmrs_esm_api__rspack_import_2.openmrsFetch);\n const results = (0,react__rspack_import_0.useMemo)(()=>({\n emrConfiguration: swrData.data?.data,\n isLoadingEmrConfiguration: swrData.isLoading,\n mutateEmrConfiguration: swrData.mutate,\n errorFetchingEmrConfiguration: swrData.error\n }), [\n swrData\n ]);\n return results;\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L3VzZUVtckNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvZGlzdC91c2VFbXJDb25maWd1cmF0aW9uLmpzP2EzYjgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IEFQSSAqLyBpbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdXNlU1dSSW1tdXRhYmxlIGZyb20gXCJzd3IvaW1tdXRhYmxlXCI7XG5pbXBvcnQgeyBvcGVubXJzRmV0Y2gsIHJlc3RCYXNlVXJsIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1hcGlcIjtcbi8qXG4gKiBBZGQgb3RoZXIgcHJvcGVydGllcyBhcyBuZWVkZWQuIE1haW50YWluIGFscGhhYmV0aWNhbCBvcmRlci4gS2VlcCBpbiBsb2Nrc3RlcCB3aXRoIHRoZSBpbnRlcmZhY2UgYWJvdmUuXG4gKi8gY29uc3QgY3VzdG9tUmVwUHJvcHMgPSBbXG4gICAgW1xuICAgICAgICAnYWRtaXNzaW9uRGVjaXNpb25Db25jZXB0JyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ2FkbWlzc2lvbkVuY291bnRlclR5cGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnYWRtaXNzaW9uRm9ybScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdhdEZhY2lsaXR5VmlzaXRUeXBlJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ2JlZEFzc2lnbm1lbnRFbmNvdW50ZXJUeXBlJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ2NhbmNlbEFEVFJlcXVlc3RFbmNvdW50ZXJUeXBlJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ2NoZWNrSW5DbGVya0VuY291bnRlclJvbGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnY2hlY2tJbkVuY291bnRlclR5cGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnY2xpbmljaWFuRW5jb3VudGVyUm9sZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdjb25jZXB0U291cmNlc0ZvckRpYWdub3Npc1NlYXJjaCcsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdjb25zdWx0RW5jb3VudGVyVHlwZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdjb25zdWx0RnJlZVRleHRDb21tZW50c0NvbmNlcHQnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnZGVueUFkbWlzc2lvbkNvbmNlcHQnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnZGlhZ25vc2lzTWV0YWRhdGEnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnZGlhZ25vc2lzU2V0cycsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdkaXNjaGFyZ2VGb3JtJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ2Rpc3Bvc2l0aW9uRGVzY3JpcHRvcicsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdkaXNwb3NpdGlvbnMnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnZW1yQXBpQ29uY2VwdFNvdXJjZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdleGl0RnJvbUlucGF0aWVudEVuY291bnRlclR5cGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnZXh0cmFQYXRpZW50SWRlbnRpZmllclR5cGVzJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ2Z1bGxQcml2aWxlZ2VMZXZlbCcsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdoaWdoUHJpdmlsZWdlTGV2ZWwnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnaWRlbnRpZmllclR5cGVzVG9TZWFyY2gnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnaW5wYXRpZW50Tm90ZUVuY291bnRlclR5cGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnbGFzdFZpZXdlZFBhdGllbnRTaXplTGltaXQnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnbWV0YWRhdGFTb3VyY2VOYW1lJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ21vdGhlckNoaWxkUmVsYXRpb25zaGlwVHlwZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICduYXJyb3dlclRoYW5Db25jZXB0TWFwVHlwZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdub25EaWFnbm9zaXNDb25jZXB0U2V0cycsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdvcmRlcmluZ1Byb3ZpZGVyRW5jb3VudGVyUm9sZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdwYXRpZW50RGllZENvbmNlcHQnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAncGVyc29uSW1hZ2VEaXJlY3RvcnknLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAncHJpbWFyeUlkZW50aWZpZXJUeXBlJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ3NhbWVBc0NvbmNlcHRNYXBUeXBlJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ3N1cHByZXNzZWREaWFnbm9zaXNDb25jZXB0cycsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdzdXBwb3J0c0FkbWlzc2lvbkxvY2F0aW9uVGFnJyxcbiAgICAgICAgJyh1dWlkLGRpc3BsYXksbmFtZSxsaW5rcyknXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdzdXBwb3J0c0xvZ2luTG9jYXRpb25UYWcnLFxuICAgICAgICAnKHV1aWQsZGlzcGxheSxuYW1lLGxpbmtzKSdcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ3N1cHBvcnRzVHJhbnNmZXJMb2NhdGlvblRhZycsXG4gICAgICAgICcodXVpZCxkaXNwbGF5LG5hbWUsbGlua3MpJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnc3VwcG9ydHNWaXNpdHNMb2NhdGlvblRhZycsXG4gICAgICAgICcodXVpZCxkaXNwbGF5LG5hbWUsbGlua3MpJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAndGVsZXBob25lQXR0cmlidXRlVHlwZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICd0ZXN0UGF0aWVudFBlcnNvbkF0dHJpYnV0ZVR5cGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAndHJhbnNmZXJGb3JtJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ3RyYW5zZmVyUmVxdWVzdEVuY291bnRlclR5cGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAndHJhbnNmZXJXaXRoaW5Ib3NwaXRhbEVuY291bnRlclR5cGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAndW5rbm93bkNhdXNlT2ZEZWF0aENvbmNlcHQnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAndW5rbm93bkxvY2F0aW9uJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ3Vua25vd25QYXRpZW50UGVyc29uQXR0cmlidXRlVHlwZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICd1bmtub3duUHJvdmlkZXInLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAndmlzaXRBc3NpZ25tZW50SGFuZGxlckFkanVzdEVuY291bnRlclRpbWVPZkRheUlmTmVjZXNzYXJ5JyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ3Zpc2l0RXhwaXJlSG91cnMnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAndmlzaXROb3RlRW5jb3VudGVyVHlwZScsXG4gICAgICAgICdyZWYnXG4gICAgXVxuXTtcbmNvbnN0IGN1c3RvbVJlcHJlc2VudGF0aW9uID0gYGN1c3RvbToke2N1c3RvbVJlcFByb3BzLm1hcCgoW3Byb3AsIHJlcF0pPT5gJHtwcm9wfToke3JlcH1gKS5qb2luKCcsJyl9YDtcbi8qKlxuICogUmVhY3QgaG9vayBmb3IgZmV0Y2hpbmcgYW5kIG1hbmFnaW5nIE9wZW5NUlMgRU1SIGNvbmZpZ3VyYXRpb25cbiAqIEByZXR1cm5zIHtPYmplY3R9IE9iamVjdCBjb250YWluaW5nOlxuICogICAtIGVtckNvbmZpZ3VyYXRpb246IEVtckFwaUNvbmZpZ3VyYXRpb25SZXNwb25zZSB8IHVuZGVmaW5lZCAtIFRoZSBFTVIgY29uZmlndXJhdGlvbiBkYXRhXG4gKiAgIC0gaXNMb2FkaW5nRW1yQ29uZmlndXJhdGlvbjogYm9vbGVhbiAtIExvYWRpbmcgc3RhdGUgaW5kaWNhdG9yXG4gKiAgIC0gbXV0YXRlRW1yQ29uZmlndXJhdGlvbjogRnVuY3Rpb24gLSBTV1IncyBtdXRhdGUgZnVuY3Rpb24gZm9yIG1hbnVhbCByZXZhbGlkYXRpb25cbiAqICAgLSBlcnJvckZldGNoaW5nRW1yQ29uZmlndXJhdGlvbjogRXJyb3IgfCB1bmRlZmluZWQgLSBFcnJvciBvYmplY3QgaWYgcmVxdWVzdCBmYWlsc1xuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VFbXJDb25maWd1cmF0aW9uKCkge1xuICAgIGNvbnN0IHVybCA9IGAke3Jlc3RCYXNlVXJsfS9lbXJhcGkvY29uZmlndXJhdGlvbj92PSR7Y3VzdG9tUmVwcmVzZW50YXRpb259YDtcbiAgICBjb25zdCBzd3JEYXRhID0gdXNlU1dSSW1tdXRhYmxlKHVybCwgb3Blbm1yc0ZldGNoKTtcbiAgICBjb25zdCByZXN1bHRzID0gdXNlTWVtbygoKT0+KHtcbiAgICAgICAgICAgIGVtckNvbmZpZ3VyYXRpb246IHN3ckRhdGEuZGF0YT8uZGF0YSxcbiAgICAgICAgICAgIGlzTG9hZGluZ0VtckNvbmZpZ3VyYXRpb246IHN3ckRhdGEuaXNMb2FkaW5nLFxuICAgICAgICAgICAgbXV0YXRlRW1yQ29uZmlndXJhdGlvbjogc3dyRGF0YS5tdXRhdGUsXG4gICAgICAgICAgICBlcnJvckZldGNoaW5nRW1yQ29uZmlndXJhdGlvbjogc3dyRGF0YS5lcnJvclxuICAgICAgICB9KSwgW1xuICAgICAgICBzd3JEYXRhXG4gICAgXSk7XG4gICAgcmV0dXJuIHJlc3VsdHM7XG59XG4iXSwibmFtZXMiOlsidXNlTWVtbyIsInVzZVNXUkltbXV0YWJsZSIsIm9wZW5tcnNGZXRjaCIsInJlc3RCYXNlVXJsIiwiY3VzdG9tUmVwUHJvcHMiLCJjdXN0b21SZXByZXNlbnRhdGlvbiIsInByb3AiLCJyZXAiLCJ1c2VFbXJDb25maWd1cmF0aW9uIiwidXJs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\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/useEmrConfiguration.js\n\n}");
|
|
6009
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useEmrConfiguration: () => (useEmrConfiguration)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr_immutable__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/swr/immutable/swr/immutable\");\n/* import */ var swr_immutable__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(swr_immutable__rspack_import_1);\n/* import */ var _openmrs_esm_api__rspack_import_2 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/** @module @category API */ \n\n\n/*\n * Add other properties as needed. Maintain alphabetical order. Keep in lockstep with the interface above.\n */ const customRepProps = [\n [\n 'admissionDecisionConcept',\n 'ref'\n ],\n [\n 'admissionEncounterType',\n 'ref'\n ],\n [\n 'admissionForm',\n 'ref'\n ],\n [\n 'atFacilityVisitType',\n 'ref'\n ],\n [\n 'bedAssignmentEncounterType',\n 'ref'\n ],\n [\n 'cancelADTRequestEncounterType',\n 'ref'\n ],\n [\n 'checkInClerkEncounterRole',\n 'ref'\n ],\n [\n 'checkInEncounterType',\n 'ref'\n ],\n [\n 'clinicianEncounterRole',\n 'ref'\n ],\n [\n 'conceptSourcesForDiagnosisSearch',\n 'ref'\n ],\n [\n 'consultEncounterType',\n 'ref'\n ],\n [\n 'consultFreeTextCommentsConcept',\n 'ref'\n ],\n [\n 'denyAdmissionConcept',\n 'ref'\n ],\n [\n 'diagnosisMetadata',\n 'ref'\n ],\n [\n 'diagnosisSets',\n 'ref'\n ],\n [\n 'dischargeForm',\n 'ref'\n ],\n [\n 'dispositionDescriptor',\n 'ref'\n ],\n [\n 'dispositions',\n 'ref'\n ],\n [\n 'emrApiConceptSource',\n 'ref'\n ],\n [\n 'exitFromInpatientEncounterType',\n 'ref'\n ],\n [\n 'extraPatientIdentifierTypes',\n 'ref'\n ],\n [\n 'fullPrivilegeLevel',\n 'ref'\n ],\n [\n 'highPrivilegeLevel',\n 'ref'\n ],\n [\n 'identifierTypesToSearch',\n 'ref'\n ],\n [\n 'inpatientNoteEncounterType',\n 'ref'\n ],\n [\n 'lastViewedPatientSizeLimit',\n 'ref'\n ],\n [\n 'metadataSourceName',\n 'ref'\n ],\n [\n 'motherChildRelationshipType',\n 'ref'\n ],\n [\n 'narrowerThanConceptMapType',\n 'ref'\n ],\n [\n 'nonDiagnosisConceptSets',\n 'ref'\n ],\n [\n 'orderingProviderEncounterRole',\n 'ref'\n ],\n [\n 'patientDiedConcept',\n 'ref'\n ],\n [\n 'personImageDirectory',\n 'ref'\n ],\n [\n 'primaryIdentifierType',\n 'ref'\n ],\n [\n 'sameAsConceptMapType',\n 'ref'\n ],\n [\n 'suppressedDiagnosisConcepts',\n 'ref'\n ],\n [\n 'supportsAdmissionLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'supportsLoginLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'supportsTransferLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'supportsVisitsLocationTag',\n '(uuid,display,name,links)'\n ],\n [\n 'telephoneAttributeType',\n 'ref'\n ],\n [\n 'testPatientPersonAttributeType',\n 'ref'\n ],\n [\n 'transferForm',\n 'ref'\n ],\n [\n 'transferRequestEncounterType',\n 'ref'\n ],\n [\n 'transferWithinHospitalEncounterType',\n 'ref'\n ],\n [\n 'unknownCauseOfDeathConcept',\n 'ref'\n ],\n [\n 'unknownLocation',\n 'ref'\n ],\n [\n 'unknownPatientPersonAttributeType',\n 'ref'\n ],\n [\n 'unknownProvider',\n 'ref'\n ],\n [\n 'visitAssignmentHandlerAdjustEncounterTimeOfDayIfNecessary',\n 'ref'\n ],\n [\n 'visitExpireHours',\n 'ref'\n ],\n [\n 'visitNoteEncounterType',\n 'ref'\n ]\n];\nconst customRepresentation = `custom:${customRepProps.map(([prop, rep])=>`${prop}:${rep}`).join(',')}`;\n/**\n * React hook for fetching and managing OpenMRS EMR configuration\n * @returns {Object} Object containing:\n * - emrConfiguration: EmrApiConfigurationResponse | undefined - The EMR configuration data\n * - isLoadingEmrConfiguration: boolean - Loading state indicator\n * - mutateEmrConfiguration: Function - SWR's mutate function for manual revalidation\n * - errorFetchingEmrConfiguration: Error | undefined - Error object if request fails\n */ function useEmrConfiguration() {\n const url = `${_openmrs_esm_api__rspack_import_2.restBaseUrl}/emrapi/configuration?v=${customRepresentation}`;\n const swrData = swr_immutable__rspack_import_1_default()(url, _openmrs_esm_api__rspack_import_2.openmrsFetch);\n const results = (0,react__rspack_import_0.useMemo)(()=>({\n emrConfiguration: swrData.data?.data,\n isLoadingEmrConfiguration: swrData.isLoading,\n mutateEmrConfiguration: swrData.mutate,\n errorFetchingEmrConfiguration: swrData.error\n }), [\n swrData\n ]);\n return results;\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L3VzZUVtckNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvZGlzdC91c2VFbXJDb25maWd1cmF0aW9uLmpzP2EzYjgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IEFQSSAqLyBpbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdXNlU1dSSW1tdXRhYmxlIGZyb20gXCJzd3IvaW1tdXRhYmxlXCI7XG5pbXBvcnQgeyBvcGVubXJzRmV0Y2gsIHJlc3RCYXNlVXJsIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1hcGlcIjtcbi8qXG4gKiBBZGQgb3RoZXIgcHJvcGVydGllcyBhcyBuZWVkZWQuIE1haW50YWluIGFscGhhYmV0aWNhbCBvcmRlci4gS2VlcCBpbiBsb2Nrc3RlcCB3aXRoIHRoZSBpbnRlcmZhY2UgYWJvdmUuXG4gKi8gY29uc3QgY3VzdG9tUmVwUHJvcHMgPSBbXG4gICAgW1xuICAgICAgICAnYWRtaXNzaW9uRGVjaXNpb25Db25jZXB0JyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ2FkbWlzc2lvbkVuY291bnRlclR5cGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnYWRtaXNzaW9uRm9ybScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdhdEZhY2lsaXR5VmlzaXRUeXBlJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ2JlZEFzc2lnbm1lbnRFbmNvdW50ZXJUeXBlJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ2NhbmNlbEFEVFJlcXVlc3RFbmNvdW50ZXJUeXBlJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ2NoZWNrSW5DbGVya0VuY291bnRlclJvbGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnY2hlY2tJbkVuY291bnRlclR5cGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnY2xpbmljaWFuRW5jb3VudGVyUm9sZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdjb25jZXB0U291cmNlc0ZvckRpYWdub3Npc1NlYXJjaCcsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdjb25zdWx0RW5jb3VudGVyVHlwZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdjb25zdWx0RnJlZVRleHRDb21tZW50c0NvbmNlcHQnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnZGVueUFkbWlzc2lvbkNvbmNlcHQnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnZGlhZ25vc2lzTWV0YWRhdGEnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnZGlhZ25vc2lzU2V0cycsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdkaXNjaGFyZ2VGb3JtJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ2Rpc3Bvc2l0aW9uRGVzY3JpcHRvcicsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdkaXNwb3NpdGlvbnMnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnZW1yQXBpQ29uY2VwdFNvdXJjZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdleGl0RnJvbUlucGF0aWVudEVuY291bnRlclR5cGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnZXh0cmFQYXRpZW50SWRlbnRpZmllclR5cGVzJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ2Z1bGxQcml2aWxlZ2VMZXZlbCcsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdoaWdoUHJpdmlsZWdlTGV2ZWwnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnaWRlbnRpZmllclR5cGVzVG9TZWFyY2gnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnaW5wYXRpZW50Tm90ZUVuY291bnRlclR5cGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnbGFzdFZpZXdlZFBhdGllbnRTaXplTGltaXQnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnbWV0YWRhdGFTb3VyY2VOYW1lJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ21vdGhlckNoaWxkUmVsYXRpb25zaGlwVHlwZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICduYXJyb3dlclRoYW5Db25jZXB0TWFwVHlwZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdub25EaWFnbm9zaXNDb25jZXB0U2V0cycsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdvcmRlcmluZ1Byb3ZpZGVyRW5jb3VudGVyUm9sZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdwYXRpZW50RGllZENvbmNlcHQnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAncGVyc29uSW1hZ2VEaXJlY3RvcnknLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAncHJpbWFyeUlkZW50aWZpZXJUeXBlJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ3NhbWVBc0NvbmNlcHRNYXBUeXBlJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ3N1cHByZXNzZWREaWFnbm9zaXNDb25jZXB0cycsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdzdXBwb3J0c0FkbWlzc2lvbkxvY2F0aW9uVGFnJyxcbiAgICAgICAgJyh1dWlkLGRpc3BsYXksbmFtZSxsaW5rcyknXG4gICAgXSxcbiAgICBbXG4gICAgICAgICdzdXBwb3J0c0xvZ2luTG9jYXRpb25UYWcnLFxuICAgICAgICAnKHV1aWQsZGlzcGxheSxuYW1lLGxpbmtzKSdcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ3N1cHBvcnRzVHJhbnNmZXJMb2NhdGlvblRhZycsXG4gICAgICAgICcodXVpZCxkaXNwbGF5LG5hbWUsbGlua3MpJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAnc3VwcG9ydHNWaXNpdHNMb2NhdGlvblRhZycsXG4gICAgICAgICcodXVpZCxkaXNwbGF5LG5hbWUsbGlua3MpJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAndGVsZXBob25lQXR0cmlidXRlVHlwZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICd0ZXN0UGF0aWVudFBlcnNvbkF0dHJpYnV0ZVR5cGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAndHJhbnNmZXJGb3JtJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ3RyYW5zZmVyUmVxdWVzdEVuY291bnRlclR5cGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAndHJhbnNmZXJXaXRoaW5Ib3NwaXRhbEVuY291bnRlclR5cGUnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAndW5rbm93bkNhdXNlT2ZEZWF0aENvbmNlcHQnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAndW5rbm93bkxvY2F0aW9uJyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ3Vua25vd25QYXRpZW50UGVyc29uQXR0cmlidXRlVHlwZScsXG4gICAgICAgICdyZWYnXG4gICAgXSxcbiAgICBbXG4gICAgICAgICd1bmtub3duUHJvdmlkZXInLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAndmlzaXRBc3NpZ25tZW50SGFuZGxlckFkanVzdEVuY291bnRlclRpbWVPZkRheUlmTmVjZXNzYXJ5JyxcbiAgICAgICAgJ3JlZidcbiAgICBdLFxuICAgIFtcbiAgICAgICAgJ3Zpc2l0RXhwaXJlSG91cnMnLFxuICAgICAgICAncmVmJ1xuICAgIF0sXG4gICAgW1xuICAgICAgICAndmlzaXROb3RlRW5jb3VudGVyVHlwZScsXG4gICAgICAgICdyZWYnXG4gICAgXVxuXTtcbmNvbnN0IGN1c3RvbVJlcHJlc2VudGF0aW9uID0gYGN1c3RvbToke2N1c3RvbVJlcFByb3BzLm1hcCgoW3Byb3AsIHJlcF0pPT5gJHtwcm9wfToke3JlcH1gKS5qb2luKCcsJyl9YDtcbi8qKlxuICogUmVhY3QgaG9vayBmb3IgZmV0Y2hpbmcgYW5kIG1hbmFnaW5nIE9wZW5NUlMgRU1SIGNvbmZpZ3VyYXRpb25cbiAqIEByZXR1cm5zIHtPYmplY3R9IE9iamVjdCBjb250YWluaW5nOlxuICogICAtIGVtckNvbmZpZ3VyYXRpb246IEVtckFwaUNvbmZpZ3VyYXRpb25SZXNwb25zZSB8IHVuZGVmaW5lZCAtIFRoZSBFTVIgY29uZmlndXJhdGlvbiBkYXRhXG4gKiAgIC0gaXNMb2FkaW5nRW1yQ29uZmlndXJhdGlvbjogYm9vbGVhbiAtIExvYWRpbmcgc3RhdGUgaW5kaWNhdG9yXG4gKiAgIC0gbXV0YXRlRW1yQ29uZmlndXJhdGlvbjogRnVuY3Rpb24gLSBTV1IncyBtdXRhdGUgZnVuY3Rpb24gZm9yIG1hbnVhbCByZXZhbGlkYXRpb25cbiAqICAgLSBlcnJvckZldGNoaW5nRW1yQ29uZmlndXJhdGlvbjogRXJyb3IgfCB1bmRlZmluZWQgLSBFcnJvciBvYmplY3QgaWYgcmVxdWVzdCBmYWlsc1xuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VFbXJDb25maWd1cmF0aW9uKCkge1xuICAgIGNvbnN0IHVybCA9IGAke3Jlc3RCYXNlVXJsfS9lbXJhcGkvY29uZmlndXJhdGlvbj92PSR7Y3VzdG9tUmVwcmVzZW50YXRpb259YDtcbiAgICBjb25zdCBzd3JEYXRhID0gdXNlU1dSSW1tdXRhYmxlKHVybCwgb3Blbm1yc0ZldGNoKTtcbiAgICBjb25zdCByZXN1bHRzID0gdXNlTWVtbygoKT0+KHtcbiAgICAgICAgICAgIGVtckNvbmZpZ3VyYXRpb246IHN3ckRhdGEuZGF0YT8uZGF0YSxcbiAgICAgICAgICAgIGlzTG9hZGluZ0VtckNvbmZpZ3VyYXRpb246IHN3ckRhdGEuaXNMb2FkaW5nLFxuICAgICAgICAgICAgbXV0YXRlRW1yQ29uZmlndXJhdGlvbjogc3dyRGF0YS5tdXRhdGUsXG4gICAgICAgICAgICBlcnJvckZldGNoaW5nRW1yQ29uZmlndXJhdGlvbjogc3dyRGF0YS5lcnJvclxuICAgICAgICB9KSwgW1xuICAgICAgICBzd3JEYXRhXG4gICAgXSk7XG4gICAgcmV0dXJuIHJlc3VsdHM7XG59XG4iXSwibmFtZXMiOlsidXNlTWVtbyIsInVzZVNXUkltbXV0YWJsZSIsIm9wZW5tcnNGZXRjaCIsInJlc3RCYXNlVXJsIiwiY3VzdG9tUmVwUHJvcHMiLCJjdXN0b21SZXByZXNlbnRhdGlvbiIsInByb3AiLCJyZXAiLCJ1c2VFbXJDb25maWd1cmF0aW9uIiwidXJs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\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/useEmrConfiguration.js\n\n}");
|
|
6029
6010
|
|
|
6030
6011
|
},
|
|
6031
6012
|
"../../framework/esm-react-utils/dist/useExtensionInternalStore.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
@@ -6115,17 +6096,17 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
6115
6096
|
},
|
|
6116
6097
|
"../../framework/esm-react-utils/dist/useOpenmrsInfinite.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
6117
6098
|
"use strict";
|
|
6118
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useOpenmrsInfinite: () => (useOpenmrsInfinite),\n useServerInfinite: () => (useServerInfinite)\n});\n/* import */ var _openmrs_esm_api__rspack_import_0 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var react__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_1);\n/* import */ var swr_infinite__rspack_import_2 = __webpack_require__(\"../../../node_modules/swr/dist/infinite/index.mjs\");\n/* import */ var _useOpenmrsPagination_js__rspack_import_3 = __webpack_require__(\"../../framework/esm-react-utils/dist/useOpenmrsPagination.js\");\n/** @module @category UI */ \n\n\n\n/**\n * Most REST endpoints that return a list of objects, such as getAll or search, are server-side paginated.\n * The server limits the max number of results being returned, and multiple requests are needed to get the full data set\n * if its size exceeds this limit.\n * The max number of results per request is configurable server-side\n * with the key \"webservices.rest.maxResultsDefault\". See: https://openmrs.atlassian.net/wiki/spaces/docs/pages/25469882/REST+Module\n *\n * This hook fetches data from a paginated rest endpoint, initially by fetching the first page of the results.\n * It provides a callback to load data from subsequent pages as needed. This hook is intended to serve UIs that\n * provide infinite loading / scrolling of results. Unlike `useOpenmrsPagination`, this hook does not allow random access\n * (and lazy-loading) of any arbitrary page; rather, it fetches pages sequentially starting form the initial page, and the next page\n * is fetched by calling `loadMore`. See: https://swr.vercel.app/docs/pagination#useswrinfinite\n *\n * @see `useOpenmrsPagination`\n * @see `useOpenmrsFetchAll`\n * @see `useFhirInfinite`\n *\n * @param url The URL of the paginated rest endpoint. Note that the `limit` GET param can be set to specify\n * the page size; if not set, the page size defaults to the `webservices.rest.maxResultsDefault` value defined\n * server-side.\n * Similar to useSWRInfinite, this param can be null to disable fetching.\n * @param options The options object\n * @returns a UseServerInfiniteReturnObject object\n */ function useOpenmrsInfinite(url, options = {}) {\n return useServerInfinite(url, _useOpenmrsPagination_js__rspack_import_3.openmrsServerPaginationHandlers, options);\n}\nfunction useServerInfinite(url, serverPaginationHandlers, options = {}) {\n const { swrInfiniteConfig, immutable } = options;\n const { getNextUrl, getTotalCount, getData } = serverPaginationHandlers;\n const fetcher = options.fetcher ?? _openmrs_esm_api__rspack_import_0.openmrsFetch;\n const getKey = (0,react__rspack_import_1.useCallback)((pageIndex, previousPageData)=>{\n if (pageIndex == 0) {\n return url?.toString() ?? null;\n } else {\n return serverPaginationHandlers.getNextUrl(previousPageData.data);\n }\n }, [\n url\n ]);\n const { data, size, setSize, ...rest } = (0,swr_infinite__rspack_import_2[\"default\"])(getKey, fetcher, {\n ...swrInfiniteConfig,\n // `useSWR` has a useSWRImmutable counterpart, but `useSWRInfinite` does not seem to.\n // Setting the revalidate params manually if immutable is true, see: https://swr.vercel.app/docs/revalidation\n ...immutable ? {\n revalidateIfStale: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false\n } : {}\n });\n const nextUri = getNextUrl(data?.[data.length - 1].data);\n const hasMore = nextUri != null;\n const loadMore = ()=>{\n setSize((data?.length ?? 0) + 1);\n };\n const totalCount = getTotalCount(data?.[0]?.data);\n return {\n data: data?.flatMap((d)=>getData(d.data)),\n totalCount,\n hasMore,\n loadMore,\n nextUri,\n ...rest\n };\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L3VzZU9wZW5tcnNJbmZpbml0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L3VzZU9wZW5tcnNJbmZpbml0ZS5qcz82NDUyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBVSSAqLyBpbXBvcnQgeyBvcGVubXJzRmV0Y2ggfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWFwaVwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB1c2VTV1JJbmZpbml0ZSBmcm9tIFwic3dyL2luZmluaXRlXCI7XG5pbXBvcnQgeyBvcGVubXJzU2VydmVyUGFnaW5hdGlvbkhhbmRsZXJzIH0gZnJvbSBcIi4vdXNlT3Blbm1yc1BhZ2luYXRpb24uanNcIjtcbi8qKlxuICogTW9zdCBSRVNUIGVuZHBvaW50cyB0aGF0IHJldHVybiBhIGxpc3Qgb2Ygb2JqZWN0cywgc3VjaCBhcyBnZXRBbGwgb3Igc2VhcmNoLCBhcmUgc2VydmVyLXNpZGUgcGFnaW5hdGVkLlxuICogVGhlIHNlcnZlciBsaW1pdHMgdGhlIG1heCBudW1iZXIgb2YgcmVzdWx0cyBiZWluZyByZXR1cm5lZCwgYW5kIG11bHRpcGxlIHJlcXVlc3RzIGFyZSBuZWVkZWQgdG8gZ2V0IHRoZSBmdWxsIGRhdGEgc2V0XG4gKiBpZiBpdHMgc2l6ZSBleGNlZWRzIHRoaXMgbGltaXQuXG4gKiBUaGUgbWF4IG51bWJlciBvZiByZXN1bHRzIHBlciByZXF1ZXN0IGlzIGNvbmZpZ3VyYWJsZSBzZXJ2ZXItc2lkZVxuICogd2l0aCB0aGUga2V5IFwid2Vic2VydmljZXMucmVzdC5tYXhSZXN1bHRzRGVmYXVsdFwiLiBTZWU6IGh0dHBzOi8vb3Blbm1ycy5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL2RvY3MvcGFnZXMvMjU0Njk4ODIvUkVTVCtNb2R1bGVcbiAqXG4gKiBUaGlzIGhvb2sgZmV0Y2hlcyBkYXRhIGZyb20gYSBwYWdpbmF0ZWQgcmVzdCBlbmRwb2ludCwgaW5pdGlhbGx5IGJ5IGZldGNoaW5nIHRoZSBmaXJzdCBwYWdlIG9mIHRoZSByZXN1bHRzLlxuICogSXQgcHJvdmlkZXMgYSBjYWxsYmFjayB0byBsb2FkIGRhdGEgZnJvbSBzdWJzZXF1ZW50IHBhZ2VzIGFzIG5lZWRlZC4gVGhpcyBob29rIGlzIGludGVuZGVkIHRvIHNlcnZlIFVJcyB0aGF0XG4gKiBwcm92aWRlIGluZmluaXRlIGxvYWRpbmcgLyBzY3JvbGxpbmcgb2YgcmVzdWx0cy4gVW5saWtlIGB1c2VPcGVubXJzUGFnaW5hdGlvbmAsIHRoaXMgaG9vayBkb2VzIG5vdCBhbGxvdyByYW5kb20gYWNjZXNzXG4gKiAoYW5kIGxhenktbG9hZGluZykgb2YgYW55IGFyYml0cmFyeSBwYWdlOyByYXRoZXIsIGl0IGZldGNoZXMgcGFnZXMgc2VxdWVudGlhbGx5IHN0YXJ0aW5nIGZvcm0gdGhlIGluaXRpYWwgcGFnZSwgYW5kIHRoZSBuZXh0IHBhZ2VcbiAqIGlzIGZldGNoZWQgYnkgY2FsbGluZyBgbG9hZE1vcmVgLiBTZWU6IGh0dHBzOi8vc3dyLnZlcmNlbC5hcHAvZG9jcy9wYWdpbmF0aW9uI3VzZXN3cmluZmluaXRlXG4gKlxuICogQHNlZSBgdXNlT3Blbm1yc1BhZ2luYXRpb25gXG4gKiBAc2VlIGB1c2VPcGVubXJzRmV0Y2hBbGxgXG4gKiBAc2VlIGB1c2VGaGlySW5maW5pdGVgXG4gKlxuICogQHBhcmFtIHVybCBUaGUgVVJMIG9mIHRoZSBwYWdpbmF0ZWQgcmVzdCBlbmRwb2ludC4gTm90ZSB0aGF0IHRoZSBgbGltaXRgIEdFVCBwYXJhbSBjYW4gYmUgc2V0IHRvIHNwZWNpZnlcbiAqICAgICAgICAgICAgdGhlIHBhZ2Ugc2l6ZTsgaWYgbm90IHNldCwgdGhlIHBhZ2Ugc2l6ZSBkZWZhdWx0cyB0byB0aGUgYHdlYnNlcnZpY2VzLnJlc3QubWF4UmVzdWx0c0RlZmF1bHRgIHZhbHVlIGRlZmluZWRcbiAqICAgICAgICAgICAgc2VydmVyLXNpZGUuXG4gKiAgICAgICAgICAgIFNpbWlsYXIgdG8gdXNlU1dSSW5maW5pdGUsIHRoaXMgcGFyYW0gY2FuIGJlIG51bGwgdG8gZGlzYWJsZSBmZXRjaGluZy5cbiAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIG9iamVjdFxuICogQHJldHVybnMgYSBVc2VTZXJ2ZXJJbmZpbml0ZVJldHVybk9iamVjdCBvYmplY3RcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlT3Blbm1yc0luZmluaXRlKHVybCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgcmV0dXJuIHVzZVNlcnZlckluZmluaXRlKHVybCwgb3Blbm1yc1NlcnZlclBhZ2luYXRpb25IYW5kbGVycywgb3B0aW9ucyk7XG59XG5leHBvcnQgZnVuY3Rpb24gdXNlU2VydmVySW5maW5pdGUodXJsLCBzZXJ2ZXJQYWdpbmF0aW9uSGFuZGxlcnMsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHsgc3dySW5maW5pdGVDb25maWcsIGltbXV0YWJsZSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB7IGdldE5leHRVcmwsIGdldFRvdGFsQ291bnQsIGdldERhdGEgfSA9IHNlcnZlclBhZ2luYXRpb25IYW5kbGVycztcbiAgICBjb25zdCBmZXRjaGVyID0gb3B0aW9ucy5mZXRjaGVyID8/IG9wZW5tcnNGZXRjaDtcbiAgICBjb25zdCBnZXRLZXkgPSB1c2VDYWxsYmFjaygocGFnZUluZGV4LCBwcmV2aW91c1BhZ2VEYXRhKT0+e1xuICAgICAgICBpZiAocGFnZUluZGV4ID09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB1cmw/LnRvU3RyaW5nKCkgPz8gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBzZXJ2ZXJQYWdpbmF0aW9uSGFuZGxlcnMuZ2V0TmV4dFVybChwcmV2aW91c1BhZ2VEYXRhLmRhdGEpO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICB1cmxcbiAgICBdKTtcbiAgICBjb25zdCB7IGRhdGEsIHNpemUsIHNldFNpemUsIC4uLnJlc3QgfSA9IHVzZVNXUkluZmluaXRlKGdldEtleSwgZmV0Y2hlciwge1xuICAgICAgICAuLi5zd3JJbmZpbml0ZUNvbmZpZyxcbiAgICAgICAgLy8gYHVzZVNXUmAgaGFzIGEgdXNlU1dSSW1tdXRhYmxlIGNvdW50ZXJwYXJ0LCBidXQgYHVzZVNXUkluZmluaXRlYCBkb2VzIG5vdCBzZWVtIHRvLlxuICAgICAgICAvLyBTZXR0aW5nIHRoZSByZXZhbGlkYXRlIHBhcmFtcyBtYW51YWxseSBpZiBpbW11dGFibGUgaXMgdHJ1ZSwgc2VlOiBodHRwczovL3N3ci52ZXJjZWwuYXBwL2RvY3MvcmV2YWxpZGF0aW9uXG4gICAgICAgIC4uLmltbXV0YWJsZSA/IHtcbiAgICAgICAgICAgIHJldmFsaWRhdGVJZlN0YWxlOiBmYWxzZSxcbiAgICAgICAgICAgIHJldmFsaWRhdGVPbkZvY3VzOiBmYWxzZSxcbiAgICAgICAgICAgIHJldmFsaWRhdGVPblJlY29ubmVjdDogZmFsc2VcbiAgICAgICAgfSA6IHt9XG4gICAgfSk7XG4gICAgY29uc3QgbmV4dFVyaSA9IGdldE5leHRVcmwoZGF0YT8uW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSk7XG4gICAgY29uc3QgaGFzTW9yZSA9IG5leHRVcmkgIT0gbnVsbDtcbiAgICBjb25zdCBsb2FkTW9yZSA9ICgpPT57XG4gICAgICAgIHNldFNpemUoKGRhdGE/Lmxlbmd0aCA/PyAwKSArIDEpO1xuICAgIH07XG4gICAgY29uc3QgdG90YWxDb3VudCA9IGdldFRvdGFsQ291bnQoZGF0YT8uWzBdPy5kYXRhKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiBkYXRhPy5mbGF0TWFwKChkKT0+Z2V0RGF0YShkLmRhdGEpKSxcbiAgICAgICAgdG90YWxDb3VudCxcbiAgICAgICAgaGFzTW9yZSxcbiAgICAgICAgbG9hZE1vcmUsXG4gICAgICAgIG5leHRVcmksXG4gICAgICAgIC4uLnJlc3RcbiAgICB9O1xufVxuIl0sIm5hbWVzIjpbIm9wZW5tcnNGZXRjaCIsInVzZUNhbGxiYWNrIiwidXNlU1dSSW5maW5pdGUiLCJvcGVubXJzU2VydmVyUGFnaW5hdGlvbkhhbmRsZXJzIiwidXNlT3Blbm1yc0luZmluaXRlIiwidXJsIiwib3B0aW9ucyIsInVzZVNlcnZlckluZmluaXRlIiwic2VydmVyUGFnaW5hdGlvbkhhbmRsZXJzIiwic3dySW5maW5pdGVDb25maWciLCJpbW11dGFibGUiLCJnZXROZXh0VXJsIiwiZ2V0VG90YWxDb3VudCIsImdldERhdGEiLCJmZXRjaGVyIiwiZ2V0S2V5IiwicGFnZUluZGV4IiwicHJldmlvdXNQYWdlRGF0YSIsImRhdGEiLCJzaXplIiwic2V0U2l6ZSIsInJlc3QiLCJuZXh0VXJpIiwiaGFzTW9yZSIsImxvYWRNb3JlIiwidG90YWxDb3VudCIsImQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSx5QkFBeUIsR0FBbUQ7QUFDeEM7QUFDTTtBQUNrQztBQUM1RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F1QkMsR0FBVSxTQUFTSSxtQkFBbUJDLEdBQUcsRUFBRUMsVUFBVSxDQUFDLENBQUM7SUFDcEQsT0FBT0Msa0JBQWtCRixLQUFLRix5RUFBK0JBLEVBQUVHO0FBQ25FO0FBQ08sU0FBU0Msa0JBQWtCRixHQUFHLEVBQUVHLHdCQUF3QixFQUFFRixVQUFVLENBQUMsQ0FBQztJQUN6RSxNQUFNLEVBQUVHLGlCQUFpQixFQUFFQyxTQUFTLEVBQUUsR0FBR0o7SUFDekMsTUFBTSxFQUFFSyxVQUFVLEVBQUVDLGFBQWEsRUFBRUMsT0FBTyxFQUFFLEdBQUdMO0lBQy9DLE1BQU1NLFVBQVVSLFFBQVEsT0FBTyxJQUFJTiw4Q0FBWUE7SUFDL0MsTUFBTWUsU0FBU2Qsc0NBQVdBLENBQUMsQ0FBQ2UsV0FBV0M7UUFDbkMsSUFBSUQsYUFBYSxHQUFHO1lBQ2hCLE9BQU9YLEtBQUssY0FBYztRQUM5QixPQUFPO1lBQ0gsT0FBT0cseUJBQXlCLFVBQVUsQ0FBQ1MsaUJBQWlCLElBQUk7UUFDcEU7SUFDSixHQUFHO1FBQ0NaO0tBQ0g7SUFDRCxNQUFNLEVBQUVhLElBQUksRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUUsR0FBR0MsTUFBTSxHQUFHbkIsNENBQWNBLENBQUNhLFFBQVFELFNBQVM7UUFDckUsR0FBR0wsaUJBQWlCO1FBQ3BCLHFGQUFxRjtRQUNyRiw2R0FBNkc7UUFDN0csR0FBR0MsWUFBWTtZQUNYLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsdUJBQXVCO1FBQzNCLElBQUksQ0FBQyxDQUFDO0lBQ1Y7SUFDQSxNQUFNWSxVQUFVWCxXQUFXTyxNQUFNLENBQUNBLEtBQUssTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNuRCxNQUFNSyxVQUFVRCxXQUFXO0lBQzNCLE1BQU1FLFdBQVc7UUFDYkosUUFBU0YsQ0FBQUEsTUFBTSxVQUFVLEtBQUs7SUFDbEM7SUFDQSxNQUFNTyxhQUFhYixjQUFjTSxNQUFNLENBQUMsRUFBRSxFQUFFO0lBQzVDLE9BQU87UUFDSCxNQUFNQSxNQUFNLFFBQVEsQ0FBQ1EsSUFBSWIsUUFBUWEsRUFBRSxJQUFJO1FBQ3ZDRDtRQUNBRjtRQUNBQztRQUNBRjtRQUNBLEdBQUdELElBQUk7SUFDWDtBQUNKIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/useOpenmrsInfinite.js\n\n}");
|
|
6099
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useOpenmrsInfinite: () => (useOpenmrsInfinite),\n useServerInfinite: () => (useServerInfinite)\n});\n/* import */ var _openmrs_esm_api__rspack_import_0 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var react__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_1);\n/* import */ var swr_infinite__rspack_import_2 = __webpack_require__(\"webpack/sharing/consume/default/swr/infinite/swr/infinite\");\n/* import */ var swr_infinite__rspack_import_2_default = /*#__PURE__*/__webpack_require__.n(swr_infinite__rspack_import_2);\n/* import */ var _useOpenmrsPagination_js__rspack_import_3 = __webpack_require__(\"../../framework/esm-react-utils/dist/useOpenmrsPagination.js\");\n/** @module @category UI */ \n\n\n\n/**\n * Most REST endpoints that return a list of objects, such as getAll or search, are server-side paginated.\n * The server limits the max number of results being returned, and multiple requests are needed to get the full data set\n * if its size exceeds this limit.\n * The max number of results per request is configurable server-side\n * with the key \"webservices.rest.maxResultsDefault\". See: https://openmrs.atlassian.net/wiki/spaces/docs/pages/25469882/REST+Module\n *\n * This hook fetches data from a paginated rest endpoint, initially by fetching the first page of the results.\n * It provides a callback to load data from subsequent pages as needed. This hook is intended to serve UIs that\n * provide infinite loading / scrolling of results. Unlike `useOpenmrsPagination`, this hook does not allow random access\n * (and lazy-loading) of any arbitrary page; rather, it fetches pages sequentially starting form the initial page, and the next page\n * is fetched by calling `loadMore`. See: https://swr.vercel.app/docs/pagination#useswrinfinite\n *\n * @see `useOpenmrsPagination`\n * @see `useOpenmrsFetchAll`\n * @see `useFhirInfinite`\n *\n * @param url The URL of the paginated rest endpoint. Note that the `limit` GET param can be set to specify\n * the page size; if not set, the page size defaults to the `webservices.rest.maxResultsDefault` value defined\n * server-side.\n * Similar to useSWRInfinite, this param can be null to disable fetching.\n * @param options The options object\n * @returns a UseServerInfiniteReturnObject object\n */ function useOpenmrsInfinite(url, options = {}) {\n return useServerInfinite(url, _useOpenmrsPagination_js__rspack_import_3.openmrsServerPaginationHandlers, options);\n}\nfunction useServerInfinite(url, serverPaginationHandlers, options = {}) {\n const { swrInfiniteConfig, immutable } = options;\n const { getNextUrl, getTotalCount, getData } = serverPaginationHandlers;\n const fetcher = options.fetcher ?? _openmrs_esm_api__rspack_import_0.openmrsFetch;\n const getKey = (0,react__rspack_import_1.useCallback)((pageIndex, previousPageData)=>{\n if (pageIndex == 0) {\n return url?.toString() ?? null;\n } else {\n return serverPaginationHandlers.getNextUrl(previousPageData.data);\n }\n }, [\n url\n ]);\n const { data, size, setSize, ...rest } = swr_infinite__rspack_import_2_default()(getKey, fetcher, {\n ...swrInfiniteConfig,\n // `useSWR` has a useSWRImmutable counterpart, but `useSWRInfinite` does not seem to.\n // Setting the revalidate params manually if immutable is true, see: https://swr.vercel.app/docs/revalidation\n ...immutable ? {\n revalidateIfStale: false,\n revalidateOnFocus: false,\n revalidateOnReconnect: false\n } : {}\n });\n const nextUri = getNextUrl(data?.[data.length - 1].data);\n const hasMore = nextUri != null;\n const loadMore = ()=>{\n setSize((data?.length ?? 0) + 1);\n };\n const totalCount = getTotalCount(data?.[0]?.data);\n return {\n data: data?.flatMap((d)=>getData(d.data)),\n totalCount,\n hasMore,\n loadMore,\n nextUri,\n ...rest\n };\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L3VzZU9wZW5tcnNJbmZpbml0ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0BvcGVubXJzL2VzbS1hcHAtc2hlbGwvLi4vLi4vZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L3VzZU9wZW5tcnNJbmZpbml0ZS5qcz82NDUyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAbW9kdWxlIEBjYXRlZ29yeSBVSSAqLyBpbXBvcnQgeyBvcGVubXJzRmV0Y2ggfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWFwaVwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB1c2VTV1JJbmZpbml0ZSBmcm9tIFwic3dyL2luZmluaXRlXCI7XG5pbXBvcnQgeyBvcGVubXJzU2VydmVyUGFnaW5hdGlvbkhhbmRsZXJzIH0gZnJvbSBcIi4vdXNlT3Blbm1yc1BhZ2luYXRpb24uanNcIjtcbi8qKlxuICogTW9zdCBSRVNUIGVuZHBvaW50cyB0aGF0IHJldHVybiBhIGxpc3Qgb2Ygb2JqZWN0cywgc3VjaCBhcyBnZXRBbGwgb3Igc2VhcmNoLCBhcmUgc2VydmVyLXNpZGUgcGFnaW5hdGVkLlxuICogVGhlIHNlcnZlciBsaW1pdHMgdGhlIG1heCBudW1iZXIgb2YgcmVzdWx0cyBiZWluZyByZXR1cm5lZCwgYW5kIG11bHRpcGxlIHJlcXVlc3RzIGFyZSBuZWVkZWQgdG8gZ2V0IHRoZSBmdWxsIGRhdGEgc2V0XG4gKiBpZiBpdHMgc2l6ZSBleGNlZWRzIHRoaXMgbGltaXQuXG4gKiBUaGUgbWF4IG51bWJlciBvZiByZXN1bHRzIHBlciByZXF1ZXN0IGlzIGNvbmZpZ3VyYWJsZSBzZXJ2ZXItc2lkZVxuICogd2l0aCB0aGUga2V5IFwid2Vic2VydmljZXMucmVzdC5tYXhSZXN1bHRzRGVmYXVsdFwiLiBTZWU6IGh0dHBzOi8vb3Blbm1ycy5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL2RvY3MvcGFnZXMvMjU0Njk4ODIvUkVTVCtNb2R1bGVcbiAqXG4gKiBUaGlzIGhvb2sgZmV0Y2hlcyBkYXRhIGZyb20gYSBwYWdpbmF0ZWQgcmVzdCBlbmRwb2ludCwgaW5pdGlhbGx5IGJ5IGZldGNoaW5nIHRoZSBmaXJzdCBwYWdlIG9mIHRoZSByZXN1bHRzLlxuICogSXQgcHJvdmlkZXMgYSBjYWxsYmFjayB0byBsb2FkIGRhdGEgZnJvbSBzdWJzZXF1ZW50IHBhZ2VzIGFzIG5lZWRlZC4gVGhpcyBob29rIGlzIGludGVuZGVkIHRvIHNlcnZlIFVJcyB0aGF0XG4gKiBwcm92aWRlIGluZmluaXRlIGxvYWRpbmcgLyBzY3JvbGxpbmcgb2YgcmVzdWx0cy4gVW5saWtlIGB1c2VPcGVubXJzUGFnaW5hdGlvbmAsIHRoaXMgaG9vayBkb2VzIG5vdCBhbGxvdyByYW5kb20gYWNjZXNzXG4gKiAoYW5kIGxhenktbG9hZGluZykgb2YgYW55IGFyYml0cmFyeSBwYWdlOyByYXRoZXIsIGl0IGZldGNoZXMgcGFnZXMgc2VxdWVudGlhbGx5IHN0YXJ0aW5nIGZvcm0gdGhlIGluaXRpYWwgcGFnZSwgYW5kIHRoZSBuZXh0IHBhZ2VcbiAqIGlzIGZldGNoZWQgYnkgY2FsbGluZyBgbG9hZE1vcmVgLiBTZWU6IGh0dHBzOi8vc3dyLnZlcmNlbC5hcHAvZG9jcy9wYWdpbmF0aW9uI3VzZXN3cmluZmluaXRlXG4gKlxuICogQHNlZSBgdXNlT3Blbm1yc1BhZ2luYXRpb25gXG4gKiBAc2VlIGB1c2VPcGVubXJzRmV0Y2hBbGxgXG4gKiBAc2VlIGB1c2VGaGlySW5maW5pdGVgXG4gKlxuICogQHBhcmFtIHVybCBUaGUgVVJMIG9mIHRoZSBwYWdpbmF0ZWQgcmVzdCBlbmRwb2ludC4gTm90ZSB0aGF0IHRoZSBgbGltaXRgIEdFVCBwYXJhbSBjYW4gYmUgc2V0IHRvIHNwZWNpZnlcbiAqICAgICAgICAgICAgdGhlIHBhZ2Ugc2l6ZTsgaWYgbm90IHNldCwgdGhlIHBhZ2Ugc2l6ZSBkZWZhdWx0cyB0byB0aGUgYHdlYnNlcnZpY2VzLnJlc3QubWF4UmVzdWx0c0RlZmF1bHRgIHZhbHVlIGRlZmluZWRcbiAqICAgICAgICAgICAgc2VydmVyLXNpZGUuXG4gKiAgICAgICAgICAgIFNpbWlsYXIgdG8gdXNlU1dSSW5maW5pdGUsIHRoaXMgcGFyYW0gY2FuIGJlIG51bGwgdG8gZGlzYWJsZSBmZXRjaGluZy5cbiAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIG9iamVjdFxuICogQHJldHVybnMgYSBVc2VTZXJ2ZXJJbmZpbml0ZVJldHVybk9iamVjdCBvYmplY3RcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlT3Blbm1yc0luZmluaXRlKHVybCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgcmV0dXJuIHVzZVNlcnZlckluZmluaXRlKHVybCwgb3Blbm1yc1NlcnZlclBhZ2luYXRpb25IYW5kbGVycywgb3B0aW9ucyk7XG59XG5leHBvcnQgZnVuY3Rpb24gdXNlU2VydmVySW5maW5pdGUodXJsLCBzZXJ2ZXJQYWdpbmF0aW9uSGFuZGxlcnMsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHsgc3dySW5maW5pdGVDb25maWcsIGltbXV0YWJsZSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB7IGdldE5leHRVcmwsIGdldFRvdGFsQ291bnQsIGdldERhdGEgfSA9IHNlcnZlclBhZ2luYXRpb25IYW5kbGVycztcbiAgICBjb25zdCBmZXRjaGVyID0gb3B0aW9ucy5mZXRjaGVyID8/IG9wZW5tcnNGZXRjaDtcbiAgICBjb25zdCBnZXRLZXkgPSB1c2VDYWxsYmFjaygocGFnZUluZGV4LCBwcmV2aW91c1BhZ2VEYXRhKT0+e1xuICAgICAgICBpZiAocGFnZUluZGV4ID09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB1cmw/LnRvU3RyaW5nKCkgPz8gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBzZXJ2ZXJQYWdpbmF0aW9uSGFuZGxlcnMuZ2V0TmV4dFVybChwcmV2aW91c1BhZ2VEYXRhLmRhdGEpO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICB1cmxcbiAgICBdKTtcbiAgICBjb25zdCB7IGRhdGEsIHNpemUsIHNldFNpemUsIC4uLnJlc3QgfSA9IHVzZVNXUkluZmluaXRlKGdldEtleSwgZmV0Y2hlciwge1xuICAgICAgICAuLi5zd3JJbmZpbml0ZUNvbmZpZyxcbiAgICAgICAgLy8gYHVzZVNXUmAgaGFzIGEgdXNlU1dSSW1tdXRhYmxlIGNvdW50ZXJwYXJ0LCBidXQgYHVzZVNXUkluZmluaXRlYCBkb2VzIG5vdCBzZWVtIHRvLlxuICAgICAgICAvLyBTZXR0aW5nIHRoZSByZXZhbGlkYXRlIHBhcmFtcyBtYW51YWxseSBpZiBpbW11dGFibGUgaXMgdHJ1ZSwgc2VlOiBodHRwczovL3N3ci52ZXJjZWwuYXBwL2RvY3MvcmV2YWxpZGF0aW9uXG4gICAgICAgIC4uLmltbXV0YWJsZSA/IHtcbiAgICAgICAgICAgIHJldmFsaWRhdGVJZlN0YWxlOiBmYWxzZSxcbiAgICAgICAgICAgIHJldmFsaWRhdGVPbkZvY3VzOiBmYWxzZSxcbiAgICAgICAgICAgIHJldmFsaWRhdGVPblJlY29ubmVjdDogZmFsc2VcbiAgICAgICAgfSA6IHt9XG4gICAgfSk7XG4gICAgY29uc3QgbmV4dFVyaSA9IGdldE5leHRVcmwoZGF0YT8uW2RhdGEubGVuZ3RoIC0gMV0uZGF0YSk7XG4gICAgY29uc3QgaGFzTW9yZSA9IG5leHRVcmkgIT0gbnVsbDtcbiAgICBjb25zdCBsb2FkTW9yZSA9ICgpPT57XG4gICAgICAgIHNldFNpemUoKGRhdGE/Lmxlbmd0aCA/PyAwKSArIDEpO1xuICAgIH07XG4gICAgY29uc3QgdG90YWxDb3VudCA9IGdldFRvdGFsQ291bnQoZGF0YT8uWzBdPy5kYXRhKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiBkYXRhPy5mbGF0TWFwKChkKT0+Z2V0RGF0YShkLmRhdGEpKSxcbiAgICAgICAgdG90YWxDb3VudCxcbiAgICAgICAgaGFzTW9yZSxcbiAgICAgICAgbG9hZE1vcmUsXG4gICAgICAgIG5leHRVcmksXG4gICAgICAgIC4uLnJlc3RcbiAgICB9O1xufVxuIl0sIm5hbWVzIjpbIm9wZW5tcnNGZXRjaCIsInVzZUNhbGxiYWNrIiwidXNlU1dSSW5maW5pdGUiLCJvcGVubXJzU2VydmVyUGFnaW5hdGlvbkhhbmRsZXJzIiwidXNlT3Blbm1yc0luZmluaXRlIiwidXJsIiwib3B0aW9ucyIsInVzZVNlcnZlckluZmluaXRlIiwic2VydmVyUGFnaW5hdGlvbkhhbmRsZXJzIiwic3dySW5maW5pdGVDb25maWciLCJpbW11dGFibGUiLCJnZXROZXh0VXJsIiwiZ2V0VG90YWxDb3VudCIsImdldERhdGEiLCJmZXRjaGVyIiwiZ2V0S2V5IiwicGFnZUluZGV4IiwicHJldmlvdXNQYWdlRGF0YSIsImRhdGEiLCJzaXplIiwic2V0U2l6ZSIsInJlc3QiLCJuZXh0VXJpIiwiaGFzTW9yZSIsImxvYWRNb3JlIiwidG90YWxDb3VudCIsImQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEseUJBQXlCLEdBQW1EO0FBQ3hDO0FBQ007QUFDa0M7QUFDNUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBdUJDLEdBQVUsU0FBU0ksbUJBQW1CQyxHQUFHLEVBQUVDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BELE9BQU9DLGtCQUFrQkYsS0FBS0YseUVBQStCQSxFQUFFRztBQUNuRTtBQUNPLFNBQVNDLGtCQUFrQkYsR0FBRyxFQUFFRyx3QkFBd0IsRUFBRUYsVUFBVSxDQUFDLENBQUM7SUFDekUsTUFBTSxFQUFFRyxpQkFBaUIsRUFBRUMsU0FBUyxFQUFFLEdBQUdKO0lBQ3pDLE1BQU0sRUFBRUssVUFBVSxFQUFFQyxhQUFhLEVBQUVDLE9BQU8sRUFBRSxHQUFHTDtJQUMvQyxNQUFNTSxVQUFVUixRQUFRLE9BQU8sSUFBSU4sOENBQVlBO0lBQy9DLE1BQU1lLFNBQVNkLHNDQUFXQSxDQUFDLENBQUNlLFdBQVdDO1FBQ25DLElBQUlELGFBQWEsR0FBRztZQUNoQixPQUFPWCxLQUFLLGNBQWM7UUFDOUIsT0FBTztZQUNILE9BQU9HLHlCQUF5QixVQUFVLENBQUNTLGlCQUFpQixJQUFJO1FBQ3BFO0lBQ0osR0FBRztRQUNDWjtLQUNIO0lBQ0QsTUFBTSxFQUFFYSxJQUFJLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFLEdBQUdDLE1BQU0sR0FBR25CLHVDQUFjQSxDQUFDYSxRQUFRRCxTQUFTO1FBQ3JFLEdBQUdMLGlCQUFpQjtRQUNwQixxRkFBcUY7UUFDckYsNkdBQTZHO1FBQzdHLEdBQUdDLFlBQVk7WUFDWCxtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLHVCQUF1QjtRQUMzQixJQUFJLENBQUMsQ0FBQztJQUNWO0lBQ0EsTUFBTVksVUFBVVgsV0FBV08sTUFBTSxDQUFDQSxLQUFLLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDbkQsTUFBTUssVUFBVUQsV0FBVztJQUMzQixNQUFNRSxXQUFXO1FBQ2JKLFFBQVNGLENBQUFBLE1BQU0sVUFBVSxLQUFLO0lBQ2xDO0lBQ0EsTUFBTU8sYUFBYWIsY0FBY00sTUFBTSxDQUFDLEVBQUUsRUFBRTtJQUM1QyxPQUFPO1FBQ0gsTUFBTUEsTUFBTSxRQUFRLENBQUNRLElBQUliLFFBQVFhLEVBQUUsSUFBSTtRQUN2Q0Q7UUFDQUY7UUFDQUM7UUFDQUY7UUFDQSxHQUFHRCxJQUFJO0lBQ1g7QUFDSiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/useOpenmrsInfinite.js\n\n}");
|
|
6119
6100
|
|
|
6120
6101
|
},
|
|
6121
6102
|
"../../framework/esm-react-utils/dist/useOpenmrsPagination.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
6122
6103
|
"use strict";
|
|
6123
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n openmrsServerPaginationHandlers: () => (openmrsServerPaginationHandlers),\n useOpenmrsPagination: () => (useOpenmrsPagination),\n useServerPagination: () => (useServerPagination)\n});\n/* import */ var _openmrs_esm_api__rspack_import_0 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var react__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_1);\n/* import */ var swr__rspack_import_2 = __webpack_require__(\"../../../node_modules/swr/dist/core/index.mjs\");\n/* import */ var swr_immutable__rspack_import_3 = __webpack_require__(\"../../../node_modules/swr/dist/immutable/index.mjs\");\n/** @module @category UI */ \n\n\n\n/**\n * Most OpenMRS REST endpoints that return a list of objects, such as getAll or search, are server-side paginated.\n * The server limits the max number of results being returned, and multiple requests are needed to get the full data set\n * if its size exceeds this limit.\n * The max number of results per request is configurable server-side\n * with the key \"webservices.rest.maxResultsDefault\". See: https://openmrs.atlassian.net/wiki/spaces/docs/pages/25469882/REST+Module\n *\n * For any UI that displays a paginated view of the full data set, we MUST handle the server-side pagination properly,\n * or else the UI does not correctly display the full data set.\n * This hook does that by providing callback functions for navigating to different pages of the results, and\n * lazy-loads the data on each page as needed.\n *\n * Note that this hook is not suitable for use for situations that require client-side sorting or filtering\n * of the data set. In that case, all data must be loaded onto client-side first.\n *\n * @see `useOpenmrsInfinite`\n * @see `useOpenmrsFetchAll`\n * @see `usePagination` for pagination of client-side data`\n * @see `useFhirPagination``\n *\n * @param url The URL of the paginated rest endpoint. \\\n * It should be populated with any needed GET params, except `limit`, `startIndex` or `totalCount`,\n * which will be overridden and manipulated by the `goTo*` callbacks.\n * Similar to useSWR, this param can be null to disable fetching.\n * @param pageSize The number of results to return per page / fetch. Note that this value MUST NOT exceed\n * \"webservices.rest.maxResultsAbsolute\", which should be reasonably high by default (1000).\n * @param options The options object\n * @returns\n */ function useOpenmrsPagination(url, pageSize, options = {}) {\n return useServerPagination(url, pageSize, openmrsServerPaginationHandlers, options);\n}\nconst openmrsServerPaginationHandlers = {\n getPaginatedUrl: (url, limit, startIndex)=>{\n if (url) {\n const urlUrl = new URL((0,_openmrs_esm_api__rspack_import_0.makeUrl)(url.toString()), window.location.toString());\n urlUrl.searchParams.set('limit', '' + limit);\n urlUrl.searchParams.set('startIndex', '' + startIndex);\n urlUrl.searchParams.set('totalCount', 'true');\n return urlUrl.toString();\n } else {\n return null;\n }\n },\n getNextUrl: (response)=>{\n const uri = response?.links?.find((link)=>link.rel == 'next')?.uri;\n if (uri) {\n const url = new URL(uri);\n // allows frontend proxies to work\n url.host = window.location.host;\n url.protocol = window.location.protocol;\n return url.toString();\n } else {\n return null;\n }\n },\n getTotalCount: (response)=>response?.totalCount ?? Number.NaN,\n getCurrentPageSize: (response)=>response?.results?.length ?? Number.NaN,\n getData: (response)=>response?.results\n};\nfunction useServerPagination(url, pageSize, serverPaginationHandlers, options = {}) {\n const { getPaginatedUrl, getTotalCount, getCurrentPageSize, getData } = serverPaginationHandlers;\n const { immutable, swrConfig } = options;\n const fetcher = options.fetcher ?? _openmrs_esm_api__rspack_import_0.openmrsFetch;\n // 1-indexing instead of 0-indexing, to keep consistency with `usePagination`\n const [currentPage, setCurrentPage] = (0,react__rspack_import_1.useState)(1);\n // Cache the totalCount and currentPageSize so we don't lose them\n // as we wait for next page's result to load while navigating to a different page.\n // This can be used to prevent jarring UI changes while loading\n const totalCount = (0,react__rspack_import_1.useRef)(Number.NaN);\n // this value is usually same as pageSize, except when currentPage is last page.\n const currentPageSize = (0,react__rspack_import_1.useRef)(Number.NaN);\n // tracked as a ref so we don't need to make the current page a dependency of `goTo()`, etc.\n const currentPageRef = (0,react__rspack_import_1.useRef)(currentPage);\n // use to differentiate \"endpoint doesn't return a total\" from \"we haven't run a request yet\"\n const hasResponded = (0,react__rspack_import_1.useRef)(false);\n const warnedMissingTotal = (0,react__rspack_import_1.useRef)(false);\n // if the URL we're querying changes, reset to page 1\n const urlKey = url?.toString() ?? '';\n const [lastUrlKey, setLastUrlKey] = (0,react__rspack_import_1.useState)(urlKey);\n if (urlKey !== lastUrlKey) {\n setLastUrlKey(urlKey);\n setCurrentPage(1);\n currentPageRef.current = 1;\n totalCount.current = Number.NaN;\n currentPageSize.current = Number.NaN;\n hasResponded.current = false;\n warnedMissingTotal.current = false;\n }\n const limit = pageSize;\n const startIndex = (currentPage - 1) * pageSize;\n const urlUrl = (0,react__rspack_import_1.useMemo)(()=>{\n return getPaginatedUrl(url, limit, startIndex);\n }, [\n url,\n limit,\n startIndex\n ]);\n const swr = immutable ? swr_immutable__rspack_import_3[\"default\"] : swr__rspack_import_2[\"default\"];\n const { data, ...rest } = swr(urlUrl, fetcher, swrConfig);\n if (data?.data) {\n totalCount.current = getTotalCount(data?.data);\n currentPageSize.current = getCurrentPageSize(data?.data);\n hasResponded.current = true;\n }\n const totalPages = Math.ceil(totalCount.current / pageSize);\n // The bound is read from `totalCount` at call time rather than captured from the creating render,\n // which is what keeps this callback referentially stable, apart from a change in `pageSize`.\n const goTo = (0,react__rspack_import_1.useCallback)((page)=>{\n if (!Number.isInteger(page) || page < 1) {\n console.warn(`useServerPagination: ignoring goTo(${page}); page must be a positive integer.`);\n return;\n }\n // page count is not known prior to running any query when `bound` will be `NaN`, so in this\n // case we assume the requested page is fine; after results return, things will settle properly\n // clamped\n const bound = Math.ceil(totalCount.current / pageSize);\n if (!hasResponded.current || Number.isNaN(bound) || page <= bound) {\n currentPageRef.current = page;\n setCurrentPage(page);\n } else {\n console.warn('Invalid attempt to go to out of bounds page: ' + page);\n }\n }, [\n pageSize\n ]);\n // A page accepted before the total was known may turn out not to exist, so put the user on the last\n // real page once the response settles it. Costs an extra request, but only for a page that was out of\n // range to begin with; without it the hook sits on an empty page with no way back.\n (0,react__rspack_import_1.useEffect)(()=>{\n if (!hasResponded.current) {\n return;\n }\n if (Number.isNaN(totalCount.current)) {\n if (!warnedMissingTotal.current) {\n warnedMissingTotal.current = true;\n console.warn(`useServerPagination: ${urlKey} returned no total count, so out-of-range pages cannot be detected.`);\n }\n return;\n }\n const lastPage = Math.max(1, Math.ceil(totalCount.current / pageSize));\n if (currentPage > lastPage) {\n console.warn(`Invalid attempt to go to out of bounds page: ${currentPage}; returning to page ${lastPage}.`);\n currentPageRef.current = lastPage;\n setCurrentPage(lastPage);\n }\n }, [\n currentPage,\n pageSize,\n urlKey,\n data\n ]);\n const goToNext = (0,react__rspack_import_1.useCallback)(()=>{\n goTo(currentPageRef.current + 1);\n }, [\n goTo\n ]);\n const goToPrevious = (0,react__rspack_import_1.useCallback)(()=>{\n goTo(currentPageRef.current - 1);\n }, [\n goTo\n ]);\n return {\n data: getData(data?.data),\n totalPages,\n totalCount: totalCount.current,\n currentPage,\n currentPageSize: currentPageSize.current,\n paginated: totalPages > 1,\n showNextButton: currentPage < totalPages,\n showPreviousButton: currentPage > 1,\n goTo,\n goToNext,\n goToPrevious,\n ...rest\n };\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L3VzZU9wZW5tcnNQYWdpbmF0aW9uLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLXJlYWN0LXV0aWxzL2Rpc3QvdXNlT3Blbm1yc1BhZ2luYXRpb24uanM/NzY5OCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgVUkgKi8gaW1wb3J0IHsgbWFrZVVybCwgb3Blbm1yc0ZldGNoIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1hcGlcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB1c2VTV1IgZnJvbSBcInN3clwiO1xuaW1wb3J0IHVzZVNXUkltbXV0YWJsZSBmcm9tIFwic3dyL2ltbXV0YWJsZVwiO1xuLyoqXG4gKiBNb3N0IE9wZW5NUlMgUkVTVCBlbmRwb2ludHMgdGhhdCByZXR1cm4gYSBsaXN0IG9mIG9iamVjdHMsIHN1Y2ggYXMgZ2V0QWxsIG9yIHNlYXJjaCwgYXJlIHNlcnZlci1zaWRlIHBhZ2luYXRlZC5cbiAqIFRoZSBzZXJ2ZXIgbGltaXRzIHRoZSBtYXggbnVtYmVyIG9mIHJlc3VsdHMgYmVpbmcgcmV0dXJuZWQsIGFuZCBtdWx0aXBsZSByZXF1ZXN0cyBhcmUgbmVlZGVkIHRvIGdldCB0aGUgZnVsbCBkYXRhIHNldFxuICogaWYgaXRzIHNpemUgZXhjZWVkcyB0aGlzIGxpbWl0LlxuICogVGhlIG1heCBudW1iZXIgb2YgcmVzdWx0cyBwZXIgcmVxdWVzdCBpcyBjb25maWd1cmFibGUgc2VydmVyLXNpZGVcbiAqIHdpdGggdGhlIGtleSBcIndlYnNlcnZpY2VzLnJlc3QubWF4UmVzdWx0c0RlZmF1bHRcIi4gU2VlOiBodHRwczovL29wZW5tcnMuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9kb2NzL3BhZ2VzLzI1NDY5ODgyL1JFU1QrTW9kdWxlXG4gKlxuICogRm9yIGFueSBVSSB0aGF0IGRpc3BsYXlzIGEgcGFnaW5hdGVkIHZpZXcgb2YgdGhlIGZ1bGwgZGF0YSBzZXQsIHdlIE1VU1QgaGFuZGxlIHRoZSBzZXJ2ZXItc2lkZSBwYWdpbmF0aW9uIHByb3Blcmx5LFxuICogb3IgZWxzZSB0aGUgVUkgZG9lcyBub3QgY29ycmVjdGx5IGRpc3BsYXkgdGhlIGZ1bGwgZGF0YSBzZXQuXG4gKiBUaGlzIGhvb2sgZG9lcyB0aGF0IGJ5IHByb3ZpZGluZyBjYWxsYmFjayBmdW5jdGlvbnMgZm9yIG5hdmlnYXRpbmcgdG8gZGlmZmVyZW50IHBhZ2VzIG9mIHRoZSByZXN1bHRzLCBhbmRcbiAqIGxhenktbG9hZHMgdGhlIGRhdGEgb24gZWFjaCBwYWdlIGFzIG5lZWRlZC5cbiAqXG4gKiBOb3RlIHRoYXQgdGhpcyBob29rIGlzIG5vdCBzdWl0YWJsZSBmb3IgdXNlIGZvciBzaXR1YXRpb25zIHRoYXQgcmVxdWlyZSBjbGllbnQtc2lkZSBzb3J0aW5nIG9yIGZpbHRlcmluZ1xuICogb2YgdGhlIGRhdGEgc2V0LiBJbiB0aGF0IGNhc2UsIGFsbCBkYXRhIG11c3QgYmUgbG9hZGVkIG9udG8gY2xpZW50LXNpZGUgZmlyc3QuXG4gKlxuICogQHNlZSBgdXNlT3Blbm1yc0luZmluaXRlYFxuICogQHNlZSBgdXNlT3Blbm1yc0ZldGNoQWxsYFxuICogQHNlZSBgdXNlUGFnaW5hdGlvbmAgZm9yIHBhZ2luYXRpb24gb2YgY2xpZW50LXNpZGUgZGF0YWBcbiAqIEBzZWUgYHVzZUZoaXJQYWdpbmF0aW9uYGBcbiAqXG4gKiBAcGFyYW0gdXJsIFRoZSBVUkwgb2YgdGhlIHBhZ2luYXRlZCByZXN0IGVuZHBvaW50LiBcXFxuICogICAgICAgICAgICBJdCBzaG91bGQgYmUgcG9wdWxhdGVkIHdpdGggYW55IG5lZWRlZCBHRVQgcGFyYW1zLCBleGNlcHQgYGxpbWl0YCwgYHN0YXJ0SW5kZXhgIG9yIGB0b3RhbENvdW50YCxcbiAqICAgICAgICAgICAgd2hpY2ggd2lsbCBiZSBvdmVycmlkZGVuIGFuZCBtYW5pcHVsYXRlZCBieSB0aGUgYGdvVG8qYCBjYWxsYmFja3MuXG4gKiAgICAgICAgICAgIFNpbWlsYXIgdG8gdXNlU1dSLCB0aGlzIHBhcmFtIGNhbiBiZSBudWxsIHRvIGRpc2FibGUgZmV0Y2hpbmcuXG4gKiBAcGFyYW0gcGFnZVNpemUgVGhlIG51bWJlciBvZiByZXN1bHRzIHRvIHJldHVybiBwZXIgcGFnZSAvIGZldGNoLiBOb3RlIHRoYXQgdGhpcyB2YWx1ZSBNVVNUIE5PVCBleGNlZWRcbiAqICAgICAgICAgICAgXCJ3ZWJzZXJ2aWNlcy5yZXN0Lm1heFJlc3VsdHNBYnNvbHV0ZVwiLCB3aGljaCBzaG91bGQgYmUgcmVhc29uYWJseSBoaWdoIGJ5IGRlZmF1bHQgKDEwMDApLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgb2JqZWN0XG4gKiBAcmV0dXJuc1xuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VPcGVubXJzUGFnaW5hdGlvbih1cmwsIHBhZ2VTaXplLCBvcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gdXNlU2VydmVyUGFnaW5hdGlvbih1cmwsIHBhZ2VTaXplLCBvcGVubXJzU2VydmVyUGFnaW5hdGlvbkhhbmRsZXJzLCBvcHRpb25zKTtcbn1cbmV4cG9ydCBjb25zdCBvcGVubXJzU2VydmVyUGFnaW5hdGlvbkhhbmRsZXJzID0ge1xuICAgIGdldFBhZ2luYXRlZFVybDogKHVybCwgbGltaXQsIHN0YXJ0SW5kZXgpPT57XG4gICAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgICAgIGNvbnN0IHVybFVybCA9IG5ldyBVUkwobWFrZVVybCh1cmwudG9TdHJpbmcoKSksIHdpbmRvdy5sb2NhdGlvbi50b1N0cmluZygpKTtcbiAgICAgICAgICAgIHVybFVybC5zZWFyY2hQYXJhbXMuc2V0KCdsaW1pdCcsICcnICsgbGltaXQpO1xuICAgICAgICAgICAgdXJsVXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3N0YXJ0SW5kZXgnLCAnJyArIHN0YXJ0SW5kZXgpO1xuICAgICAgICAgICAgdXJsVXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3RvdGFsQ291bnQnLCAndHJ1ZScpO1xuICAgICAgICAgICAgcmV0dXJuIHVybFVybC50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGdldE5leHRVcmw6IChyZXNwb25zZSk9PntcbiAgICAgICAgY29uc3QgdXJpID0gcmVzcG9uc2U/LmxpbmtzPy5maW5kKChsaW5rKT0+bGluay5yZWwgPT0gJ25leHQnKT8udXJpO1xuICAgICAgICBpZiAodXJpKSB7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHVyaSk7XG4gICAgICAgICAgICAvLyBhbGxvd3MgZnJvbnRlbmQgcHJveGllcyB0byB3b3JrXG4gICAgICAgICAgICB1cmwuaG9zdCA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0O1xuICAgICAgICAgICAgdXJsLnByb3RvY29sID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sO1xuICAgICAgICAgICAgcmV0dXJuIHVybC50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGdldFRvdGFsQ291bnQ6IChyZXNwb25zZSk9PnJlc3BvbnNlPy50b3RhbENvdW50ID8/IE51bWJlci5OYU4sXG4gICAgZ2V0Q3VycmVudFBhZ2VTaXplOiAocmVzcG9uc2UpPT5yZXNwb25zZT8ucmVzdWx0cz8ubGVuZ3RoID8/IE51bWJlci5OYU4sXG4gICAgZ2V0RGF0YTogKHJlc3BvbnNlKT0+cmVzcG9uc2U/LnJlc3VsdHNcbn07XG5leHBvcnQgZnVuY3Rpb24gdXNlU2VydmVyUGFnaW5hdGlvbih1cmwsIHBhZ2VTaXplLCBzZXJ2ZXJQYWdpbmF0aW9uSGFuZGxlcnMsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHsgZ2V0UGFnaW5hdGVkVXJsLCBnZXRUb3RhbENvdW50LCBnZXRDdXJyZW50UGFnZVNpemUsIGdldERhdGEgfSA9IHNlcnZlclBhZ2luYXRpb25IYW5kbGVycztcbiAgICBjb25zdCB7IGltbXV0YWJsZSwgc3dyQ29uZmlnIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGZldGNoZXIgPSBvcHRpb25zLmZldGNoZXIgPz8gb3Blbm1yc0ZldGNoO1xuICAgIC8vIDEtaW5kZXhpbmcgaW5zdGVhZCBvZiAwLWluZGV4aW5nLCB0byBrZWVwIGNvbnNpc3RlbmN5IHdpdGggYHVzZVBhZ2luYXRpb25gXG4gICAgY29uc3QgW2N1cnJlbnRQYWdlLCBzZXRDdXJyZW50UGFnZV0gPSB1c2VTdGF0ZSgxKTtcbiAgICAvLyBDYWNoZSB0aGUgdG90YWxDb3VudCBhbmQgY3VycmVudFBhZ2VTaXplIHNvIHdlIGRvbid0IGxvc2UgdGhlbVxuICAgIC8vIGFzIHdlIHdhaXQgZm9yIG5leHQgcGFnZSdzIHJlc3VsdCB0byBsb2FkIHdoaWxlIG5hdmlnYXRpbmcgdG8gYSBkaWZmZXJlbnQgcGFnZS5cbiAgICAvLyBUaGlzIGNhbiBiZSB1c2VkIHRvIHByZXZlbnQgamFycmluZyBVSSBjaGFuZ2VzIHdoaWxlIGxvYWRpbmdcbiAgICBjb25zdCB0b3RhbENvdW50ID0gdXNlUmVmKE51bWJlci5OYU4pO1xuICAgIC8vIHRoaXMgdmFsdWUgaXMgdXN1YWxseSBzYW1lIGFzIHBhZ2VTaXplLCBleGNlcHQgd2hlbiBjdXJyZW50UGFnZSBpcyBsYXN0IHBhZ2UuXG4gICAgY29uc3QgY3VycmVudFBhZ2VTaXplID0gdXNlUmVmKE51bWJlci5OYU4pO1xuICAgIC8vIHRyYWNrZWQgYXMgYSByZWYgc28gd2UgZG9uJ3QgbmVlZCB0byBtYWtlIHRoZSBjdXJyZW50IHBhZ2UgYSBkZXBlbmRlbmN5IG9mIGBnb1RvKClgLCBldGMuXG4gICAgY29uc3QgY3VycmVudFBhZ2VSZWYgPSB1c2VSZWYoY3VycmVudFBhZ2UpO1xuICAgIC8vIHVzZSB0byBkaWZmZXJlbnRpYXRlIFwiZW5kcG9pbnQgZG9lc24ndCByZXR1cm4gYSB0b3RhbFwiIGZyb20gXCJ3ZSBoYXZlbid0IHJ1biBhIHJlcXVlc3QgeWV0XCJcbiAgICBjb25zdCBoYXNSZXNwb25kZWQgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IHdhcm5lZE1pc3NpbmdUb3RhbCA9IHVzZVJlZihmYWxzZSk7XG4gICAgLy8gaWYgdGhlIFVSTCB3ZSdyZSBxdWVyeWluZyBjaGFuZ2VzLCByZXNldCB0byBwYWdlIDFcbiAgICBjb25zdCB1cmxLZXkgPSB1cmw/LnRvU3RyaW5nKCkgPz8gJyc7XG4gICAgY29uc3QgW2xhc3RVcmxLZXksIHNldExhc3RVcmxLZXldID0gdXNlU3RhdGUodXJsS2V5KTtcbiAgICBpZiAodXJsS2V5ICE9PSBsYXN0VXJsS2V5KSB7XG4gICAgICAgIHNldExhc3RVcmxLZXkodXJsS2V5KTtcbiAgICAgICAgc2V0Q3VycmVudFBhZ2UoMSk7XG4gICAgICAgIGN1cnJlbnRQYWdlUmVmLmN1cnJlbnQgPSAxO1xuICAgICAgICB0b3RhbENvdW50LmN1cnJlbnQgPSBOdW1iZXIuTmFOO1xuICAgICAgICBjdXJyZW50UGFnZVNpemUuY3VycmVudCA9IE51bWJlci5OYU47XG4gICAgICAgIGhhc1Jlc3BvbmRlZC5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIHdhcm5lZE1pc3NpbmdUb3RhbC5jdXJyZW50ID0gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGxpbWl0ID0gcGFnZVNpemU7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemU7XG4gICAgY29uc3QgdXJsVXJsID0gdXNlTWVtbygoKT0+e1xuICAgICAgICByZXR1cm4gZ2V0UGFnaW5hdGVkVXJsKHVybCwgbGltaXQsIHN0YXJ0SW5kZXgpO1xuICAgIH0sIFtcbiAgICAgICAgdXJsLFxuICAgICAgICBsaW1pdCxcbiAgICAgICAgc3RhcnRJbmRleFxuICAgIF0pO1xuICAgIGNvbnN0IHN3ciA9IGltbXV0YWJsZSA/IHVzZVNXUkltbXV0YWJsZSA6IHVzZVNXUjtcbiAgICBjb25zdCB7IGRhdGEsIC4uLnJlc3QgfSA9IHN3cih1cmxVcmwsIGZldGNoZXIsIHN3ckNvbmZpZyk7XG4gICAgaWYgKGRhdGE/LmRhdGEpIHtcbiAgICAgICAgdG90YWxDb3VudC5jdXJyZW50ID0gZ2V0VG90YWxDb3VudChkYXRhPy5kYXRhKTtcbiAgICAgICAgY3VycmVudFBhZ2VTaXplLmN1cnJlbnQgPSBnZXRDdXJyZW50UGFnZVNpemUoZGF0YT8uZGF0YSk7XG4gICAgICAgIGhhc1Jlc3BvbmRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgdG90YWxQYWdlcyA9IE1hdGguY2VpbCh0b3RhbENvdW50LmN1cnJlbnQgLyBwYWdlU2l6ZSk7XG4gICAgLy8gVGhlIGJvdW5kIGlzIHJlYWQgZnJvbSBgdG90YWxDb3VudGAgYXQgY2FsbCB0aW1lIHJhdGhlciB0aGFuIGNhcHR1cmVkIGZyb20gdGhlIGNyZWF0aW5nIHJlbmRlcixcbiAgICAvLyB3aGljaCBpcyB3aGF0IGtlZXBzIHRoaXMgY2FsbGJhY2sgcmVmZXJlbnRpYWxseSBzdGFibGUsIGFwYXJ0IGZyb20gYSBjaGFuZ2UgaW4gYHBhZ2VTaXplYC5cbiAgICBjb25zdCBnb1RvID0gdXNlQ2FsbGJhY2soKHBhZ2UpPT57XG4gICAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihwYWdlKSB8fCBwYWdlIDwgMSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGB1c2VTZXJ2ZXJQYWdpbmF0aW9uOiBpZ25vcmluZyBnb1RvKCR7cGFnZX0pOyBwYWdlIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLmApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHBhZ2UgY291bnQgaXMgbm90IGtub3duIHByaW9yIHRvIHJ1bm5pbmcgYW55IHF1ZXJ5IHdoZW4gYGJvdW5kYCB3aWxsIGJlIGBOYU5gLCBzbyBpbiB0aGlzXG4gICAgICAgIC8vIGNhc2Ugd2UgYXNzdW1lIHRoZSByZXF1ZXN0ZWQgcGFnZSBpcyBmaW5lOyBhZnRlciByZXN1bHRzIHJldHVybiwgdGhpbmdzIHdpbGwgc2V0dGxlIHByb3Blcmx5XG4gICAgICAgIC8vIGNsYW1wZWRcbiAgICAgICAgY29uc3QgYm91bmQgPSBNYXRoLmNlaWwodG90YWxDb3VudC5jdXJyZW50IC8gcGFnZVNpemUpO1xuICAgICAgICBpZiAoIWhhc1Jlc3BvbmRlZC5jdXJyZW50IHx8IE51bWJlci5pc05hTihib3VuZCkgfHwgcGFnZSA8PSBib3VuZCkge1xuICAgICAgICAgICAgY3VycmVudFBhZ2VSZWYuY3VycmVudCA9IHBhZ2U7XG4gICAgICAgICAgICBzZXRDdXJyZW50UGFnZShwYWdlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignSW52YWxpZCBhdHRlbXB0IHRvIGdvIHRvIG91dCBvZiBib3VuZHMgcGFnZTogJyArIHBhZ2UpO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBwYWdlU2l6ZVxuICAgIF0pO1xuICAgIC8vIEEgcGFnZSBhY2NlcHRlZCBiZWZvcmUgdGhlIHRvdGFsIHdhcyBrbm93biBtYXkgdHVybiBvdXQgbm90IHRvIGV4aXN0LCBzbyBwdXQgdGhlIHVzZXIgb24gdGhlIGxhc3RcbiAgICAvLyByZWFsIHBhZ2Ugb25jZSB0aGUgcmVzcG9uc2Ugc2V0dGxlcyBpdC4gQ29zdHMgYW4gZXh0cmEgcmVxdWVzdCwgYnV0IG9ubHkgZm9yIGEgcGFnZSB0aGF0IHdhcyBvdXQgb2ZcbiAgICAvLyByYW5nZSB0byBiZWdpbiB3aXRoOyB3aXRob3V0IGl0IHRoZSBob29rIHNpdHMgb24gYW4gZW1wdHkgcGFnZSB3aXRoIG5vIHdheSBiYWNrLlxuICAgIHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoIWhhc1Jlc3BvbmRlZC5jdXJyZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE51bWJlci5pc05hTih0b3RhbENvdW50LmN1cnJlbnQpKSB7XG4gICAgICAgICAgICBpZiAoIXdhcm5lZE1pc3NpbmdUb3RhbC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgd2FybmVkTWlzc2luZ1RvdGFsLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgdXNlU2VydmVyUGFnaW5hdGlvbjogJHt1cmxLZXl9IHJldHVybmVkIG5vIHRvdGFsIGNvdW50LCBzbyBvdXQtb2YtcmFuZ2UgcGFnZXMgY2Fubm90IGJlIGRldGVjdGVkLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3RQYWdlID0gTWF0aC5tYXgoMSwgTWF0aC5jZWlsKHRvdGFsQ291bnQuY3VycmVudCAvIHBhZ2VTaXplKSk7XG4gICAgICAgIGlmIChjdXJyZW50UGFnZSA+IGxhc3RQYWdlKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYEludmFsaWQgYXR0ZW1wdCB0byBnbyB0byBvdXQgb2YgYm91bmRzIHBhZ2U6ICR7Y3VycmVudFBhZ2V9OyByZXR1cm5pbmcgdG8gcGFnZSAke2xhc3RQYWdlfS5gKTtcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlUmVmLmN1cnJlbnQgPSBsYXN0UGFnZTtcbiAgICAgICAgICAgIHNldEN1cnJlbnRQYWdlKGxhc3RQYWdlKTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgY3VycmVudFBhZ2UsXG4gICAgICAgIHBhZ2VTaXplLFxuICAgICAgICB1cmxLZXksXG4gICAgICAgIGRhdGFcbiAgICBdKTtcbiAgICBjb25zdCBnb1RvTmV4dCA9IHVzZUNhbGxiYWNrKCgpPT57XG4gICAgICAgIGdvVG8oY3VycmVudFBhZ2VSZWYuY3VycmVudCArIDEpO1xuICAgIH0sIFtcbiAgICAgICAgZ29Ub1xuICAgIF0pO1xuICAgIGNvbnN0IGdvVG9QcmV2aW91cyA9IHVzZUNhbGxiYWNrKCgpPT57XG4gICAgICAgIGdvVG8oY3VycmVudFBhZ2VSZWYuY3VycmVudCAtIDEpO1xuICAgIH0sIFtcbiAgICAgICAgZ29Ub1xuICAgIF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGRhdGE6IGdldERhdGEoZGF0YT8uZGF0YSksXG4gICAgICAgIHRvdGFsUGFnZXMsXG4gICAgICAgIHRvdGFsQ291bnQ6IHRvdGFsQ291bnQuY3VycmVudCxcbiAgICAgICAgY3VycmVudFBhZ2UsXG4gICAgICAgIGN1cnJlbnRQYWdlU2l6ZTogY3VycmVudFBhZ2VTaXplLmN1cnJlbnQsXG4gICAgICAgIHBhZ2luYXRlZDogdG90YWxQYWdlcyA+IDEsXG4gICAgICAgIHNob3dOZXh0QnV0dG9uOiBjdXJyZW50UGFnZSA8IHRvdGFsUGFnZXMsXG4gICAgICAgIHNob3dQcmV2aW91c0J1dHRvbjogY3VycmVudFBhZ2UgPiAxLFxuICAgICAgICBnb1RvLFxuICAgICAgICBnb1RvTmV4dCxcbiAgICAgICAgZ29Ub1ByZXZpb3VzLFxuICAgICAgICAuLi5yZXN0XG4gICAgfTtcbn1cbiJdLCJuYW1lcyI6WyJtYWtlVXJsIiwib3Blbm1yc0ZldGNoIiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VTV1IiLCJ1c2VTV1JJbW11dGFibGUiLCJ1c2VPcGVubXJzUGFnaW5hdGlvbiIsInVybCIsInBhZ2VTaXplIiwib3B0aW9ucyIsInVzZVNlcnZlclBhZ2luYXRpb24iLCJvcGVubXJzU2VydmVyUGFnaW5hdGlvbkhhbmRsZXJzIiwibGltaXQiLCJzdGFydEluZGV4IiwidXJsVXJsIiwiVVJMIiwid2luZG93IiwicmVzcG9uc2UiLCJ1cmkiLCJsaW5rIiwiTnVtYmVyIiwic2VydmVyUGFnaW5hdGlvbkhhbmRsZXJzIiwiZ2V0UGFnaW5hdGVkVXJsIiwiZ2V0VG90YWxDb3VudCIsImdldEN1cnJlbnRQYWdlU2l6ZSIsImdldERhdGEiLCJpbW11dGFibGUiLCJzd3JDb25maWciLCJmZXRjaGVyIiwiY3VycmVudFBhZ2UiLCJzZXRDdXJyZW50UGFnZSIsInRvdGFsQ291bnQiLCJjdXJyZW50UGFnZVNpemUiLCJjdXJyZW50UGFnZVJlZiIsImhhc1Jlc3BvbmRlZCIsIndhcm5lZE1pc3NpbmdUb3RhbCIsInVybEtleSIsImxhc3RVcmxLZXkiLCJzZXRMYXN0VXJsS2V5Iiwic3dyIiwiZGF0YSIsInJlc3QiLCJ0b3RhbFBhZ2VzIiwiTWF0aCIsImdvVG8iLCJwYWdlIiwiY29uc29sZSIsImJvdW5kIiwibGFzdFBhZ2UiLCJnb1RvTmV4dCIsImdvVG9QcmV2aW91cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSx5QkFBeUIsR0FBNEQ7QUFDWDtBQUNqRDtBQUNtQjtBQUM1Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTRCQyxHQUFVLFNBQVNTLHFCQUFxQkMsR0FBRyxFQUFFQyxRQUFRLEVBQUVDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLE9BQU9DLG9CQUFvQkgsS0FBS0MsVUFBVUcsaUNBQWlDRjtBQUMvRTtBQUNPLE1BQU1FLGtDQUFrQztJQUMzQyxpQkFBaUIsQ0FBQ0osS0FBS0ssT0FBT0M7UUFDMUIsSUFBSU4sS0FBSztZQUNMLE1BQU1PLFNBQVMsSUFBSUMsSUFBSWxCLDZDQUFPQSxDQUFDVSxJQUFJLFFBQVEsS0FBS1MsT0FBTyxRQUFRLENBQUMsUUFBUTtZQUN4RUYsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsS0FBS0Y7WUFDdENFLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEtBQUtEO1lBQzNDQyxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsY0FBYztZQUN0QyxPQUFPQSxPQUFPLFFBQVE7UUFDMUIsT0FBTztZQUNILE9BQU87UUFDWDtJQUNKO0lBQ0EsWUFBWSxDQUFDRztRQUNULE1BQU1DLE1BQU1ELFVBQVUsT0FBTyxLQUFLLENBQUNFLE9BQU9BLEtBQUssR0FBRyxJQUFJLFNBQVM7UUFDL0QsSUFBSUQsS0FBSztZQUNMLE1BQU1YLE1BQU0sSUFBSVEsSUFBSUc7WUFDcEIsa0NBQWtDO1lBQ2xDWCxJQUFJLElBQUksR0FBR1MsT0FBTyxRQUFRLENBQUMsSUFBSTtZQUMvQlQsSUFBSSxRQUFRLEdBQUdTLE9BQU8sUUFBUSxDQUFDLFFBQVE7WUFDdkMsT0FBT1QsSUFBSSxRQUFRO1FBQ3ZCLE9BQU87WUFDSCxPQUFPO1FBQ1g7SUFDSjtJQUNBLGVBQWUsQ0FBQ1UsV0FBV0EsVUFBVSxjQUFjRyxPQUFPLEdBQUc7SUFDN0Qsb0JBQW9CLENBQUNILFdBQVdBLFVBQVUsU0FBUyxVQUFVRyxPQUFPLEdBQUc7SUFDdkUsU0FBUyxDQUFDSCxXQUFXQSxVQUFVO0FBQ25DLEVBQUU7QUFDSyxTQUFTUCxvQkFBb0JILEdBQUcsRUFBRUMsUUFBUSxFQUFFYSx3QkFBd0IsRUFBRVosVUFBVSxDQUFDLENBQUM7SUFDckYsTUFBTSxFQUFFYSxlQUFlLEVBQUVDLGFBQWEsRUFBRUMsa0JBQWtCLEVBQUVDLE9BQU8sRUFBRSxHQUFHSjtJQUN4RSxNQUFNLEVBQUVLLFNBQVMsRUFBRUMsU0FBUyxFQUFFLEdBQUdsQjtJQUNqQyxNQUFNbUIsVUFBVW5CLFFBQVEsT0FBTyxJQUFJWCw4Q0FBWUE7SUFDL0MsNkVBQTZFO0lBQzdFLE1BQU0sQ0FBQytCLGFBQWFDLGVBQWUsR0FBRzNCLG1DQUFRQSxDQUFDO0lBQy9DLGlFQUFpRTtJQUNqRSxrRkFBa0Y7SUFDbEYsK0RBQStEO0lBQy9ELE1BQU00QixhQUFhN0IsaUNBQU1BLENBQUNrQixPQUFPLEdBQUc7SUFDcEMsZ0ZBQWdGO0lBQ2hGLE1BQU1ZLGtCQUFrQjlCLGlDQUFNQSxDQUFDa0IsT0FBTyxHQUFHO0lBQ3pDLDRGQUE0RjtJQUM1RixNQUFNYSxpQkFBaUIvQixpQ0FBTUEsQ0FBQzJCO0lBQzlCLDZGQUE2RjtJQUM3RixNQUFNSyxlQUFlaEMsaUNBQU1BLENBQUM7SUFDNUIsTUFBTWlDLHFCQUFxQmpDLGlDQUFNQSxDQUFDO0lBQ2xDLHFEQUFxRDtJQUNyRCxNQUFNa0MsU0FBUzdCLEtBQUssY0FBYztJQUNsQyxNQUFNLENBQUM4QixZQUFZQyxjQUFjLEdBQUduQyxtQ0FBUUEsQ0FBQ2lDO0lBQzdDLElBQUlBLFdBQVdDLFlBQVk7UUFDdkJDLGNBQWNGO1FBQ2ROLGVBQWU7UUFDZkcsZUFBZSxPQUFPLEdBQUc7UUFDekJGLFdBQVcsT0FBTyxHQUFHWCxPQUFPLEdBQUc7UUFDL0JZLGdCQUFnQixPQUFPLEdBQUdaLE9BQU8sR0FBRztRQUNwQ2MsYUFBYSxPQUFPLEdBQUc7UUFDdkJDLG1CQUFtQixPQUFPLEdBQUc7SUFDakM7SUFDQSxNQUFNdkIsUUFBUUo7SUFDZCxNQUFNSyxhQUFjZ0IsQ0FBQUEsY0FBYyxLQUFLckI7SUFDdkMsTUFBTU0sU0FBU2Isa0NBQU9BLENBQUM7UUFDbkIsT0FBT3FCLGdCQUFnQmYsS0FBS0ssT0FBT0M7SUFDdkMsR0FBRztRQUNDTjtRQUNBSztRQUNBQztLQUNIO0lBQ0QsTUFBTTBCLE1BQU1iLFlBQVlyQix5Q0FBZUEsR0FBR0QsK0JBQU1BO0lBQ2hELE1BQU0sRUFBRW9DLElBQUksRUFBRSxHQUFHQyxNQUFNLEdBQUdGLElBQUl6QixRQUFRYyxTQUFTRDtJQUMvQyxJQUFJYSxNQUFNLE1BQU07UUFDWlQsV0FBVyxPQUFPLEdBQUdSLGNBQWNpQixNQUFNO1FBQ3pDUixnQkFBZ0IsT0FBTyxHQUFHUixtQkFBbUJnQixNQUFNO1FBQ25ETixhQUFhLE9BQU8sR0FBRztJQUMzQjtJQUNBLE1BQU1RLGFBQWFDLEtBQUssSUFBSSxDQUFDWixXQUFXLE9BQU8sR0FBR3ZCO0lBQ2xELGtHQUFrRztJQUNsRyw2RkFBNkY7SUFDN0YsTUFBTW9DLE9BQU83QyxzQ0FBV0EsQ0FBQyxDQUFDOEM7UUFDdEIsSUFBSSxDQUFDekIsT0FBTyxTQUFTLENBQUN5QixTQUFTQSxPQUFPLEdBQUc7WUFDckNDLFFBQVEsSUFBSSxDQUFDLENBQUMsbUNBQW1DLEVBQUVELEtBQUssbUNBQW1DLENBQUM7WUFDNUY7UUFDSjtRQUNBLDRGQUE0RjtRQUM1RiwrRkFBK0Y7UUFDL0YsVUFBVTtRQUNWLE1BQU1FLFFBQVFKLEtBQUssSUFBSSxDQUFDWixXQUFXLE9BQU8sR0FBR3ZCO1FBQzdDLElBQUksQ0FBQzBCLGFBQWEsT0FBTyxJQUFJZCxPQUFPLEtBQUssQ0FBQzJCLFVBQVVGLFFBQVFFLE9BQU87WUFDL0RkLGVBQWUsT0FBTyxHQUFHWTtZQUN6QmYsZUFBZWU7UUFDbkIsT0FBTztZQUNIQyxRQUFRLElBQUksQ0FBQyxrREFBa0REO1FBQ25FO0lBQ0osR0FBRztRQUNDckM7S0FDSDtJQUNELG9HQUFvRztJQUNwRyxzR0FBc0c7SUFDdEcsbUZBQW1GO0lBQ25GUixvQ0FBU0EsQ0FBQztRQUNOLElBQUksQ0FBQ2tDLGFBQWEsT0FBTyxFQUFFO1lBQ3ZCO1FBQ0o7UUFDQSxJQUFJZCxPQUFPLEtBQUssQ0FBQ1csV0FBVyxPQUFPLEdBQUc7WUFDbEMsSUFBSSxDQUFDSSxtQkFBbUIsT0FBTyxFQUFFO2dCQUM3QkEsbUJBQW1CLE9BQU8sR0FBRztnQkFDN0JXLFFBQVEsSUFBSSxDQUFDLENBQUMscUJBQXFCLEVBQUVWLE9BQU8sbUVBQW1FLENBQUM7WUFDcEg7WUFDQTtRQUNKO1FBQ0EsTUFBTVksV0FBV0wsS0FBSyxHQUFHLENBQUMsR0FBR0EsS0FBSyxJQUFJLENBQUNaLFdBQVcsT0FBTyxHQUFHdkI7UUFDNUQsSUFBSXFCLGNBQWNtQixVQUFVO1lBQ3hCRixRQUFRLElBQUksQ0FBQyxDQUFDLDZDQUE2QyxFQUFFakIsWUFBWSxvQkFBb0IsRUFBRW1CLFNBQVMsQ0FBQyxDQUFDO1lBQzFHZixlQUFlLE9BQU8sR0FBR2U7WUFDekJsQixlQUFla0I7UUFDbkI7SUFDSixHQUFHO1FBQ0NuQjtRQUNBckI7UUFDQTRCO1FBQ0FJO0tBQ0g7SUFDRCxNQUFNUyxXQUFXbEQsc0NBQVdBLENBQUM7UUFDekI2QyxLQUFLWCxlQUFlLE9BQU8sR0FBRztJQUNsQyxHQUFHO1FBQ0NXO0tBQ0g7SUFDRCxNQUFNTSxlQUFlbkQsc0NBQVdBLENBQUM7UUFDN0I2QyxLQUFLWCxlQUFlLE9BQU8sR0FBRztJQUNsQyxHQUFHO1FBQ0NXO0tBQ0g7SUFDRCxPQUFPO1FBQ0gsTUFBTW5CLFFBQVFlLE1BQU07UUFDcEJFO1FBQ0EsWUFBWVgsV0FBVyxPQUFPO1FBQzlCRjtRQUNBLGlCQUFpQkcsZ0JBQWdCLE9BQU87UUFDeEMsV0FBV1UsYUFBYTtRQUN4QixnQkFBZ0JiLGNBQWNhO1FBQzlCLG9CQUFvQmIsY0FBYztRQUNsQ2U7UUFDQUs7UUFDQUM7UUFDQSxHQUFHVCxJQUFJO0lBQ1g7QUFDSiJ9\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/useOpenmrsPagination.js\n\n}");
|
|
6104
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n openmrsServerPaginationHandlers: () => (openmrsServerPaginationHandlers),\n useOpenmrsPagination: () => (useOpenmrsPagination),\n useServerPagination: () => (useServerPagination)\n});\n/* import */ var _openmrs_esm_api__rspack_import_0 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var react__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_1);\n/* import */ var swr__rspack_import_2 = __webpack_require__(\"webpack/sharing/consume/default/swr/swr\");\n/* import */ var swr__rspack_import_2_default = /*#__PURE__*/__webpack_require__.n(swr__rspack_import_2);\n/* import */ var swr_immutable__rspack_import_3 = __webpack_require__(\"webpack/sharing/consume/default/swr/immutable/swr/immutable\");\n/* import */ var swr_immutable__rspack_import_3_default = /*#__PURE__*/__webpack_require__.n(swr_immutable__rspack_import_3);\n/** @module @category UI */ \n\n\n\n/**\n * Most OpenMRS REST endpoints that return a list of objects, such as getAll or search, are server-side paginated.\n * The server limits the max number of results being returned, and multiple requests are needed to get the full data set\n * if its size exceeds this limit.\n * The max number of results per request is configurable server-side\n * with the key \"webservices.rest.maxResultsDefault\". See: https://openmrs.atlassian.net/wiki/spaces/docs/pages/25469882/REST+Module\n *\n * For any UI that displays a paginated view of the full data set, we MUST handle the server-side pagination properly,\n * or else the UI does not correctly display the full data set.\n * This hook does that by providing callback functions for navigating to different pages of the results, and\n * lazy-loads the data on each page as needed.\n *\n * Note that this hook is not suitable for use for situations that require client-side sorting or filtering\n * of the data set. In that case, all data must be loaded onto client-side first.\n *\n * @see `useOpenmrsInfinite`\n * @see `useOpenmrsFetchAll`\n * @see `usePagination` for pagination of client-side data`\n * @see `useFhirPagination``\n *\n * @param url The URL of the paginated rest endpoint. \\\n * It should be populated with any needed GET params, except `limit`, `startIndex` or `totalCount`,\n * which will be overridden and manipulated by the `goTo*` callbacks.\n * Similar to useSWR, this param can be null to disable fetching.\n * @param pageSize The number of results to return per page / fetch. Note that this value MUST NOT exceed\n * \"webservices.rest.maxResultsAbsolute\", which should be reasonably high by default (1000).\n * @param options The options object\n * @returns\n */ function useOpenmrsPagination(url, pageSize, options = {}) {\n return useServerPagination(url, pageSize, openmrsServerPaginationHandlers, options);\n}\nconst openmrsServerPaginationHandlers = {\n getPaginatedUrl: (url, limit, startIndex)=>{\n if (url) {\n const urlUrl = new URL((0,_openmrs_esm_api__rspack_import_0.makeUrl)(url.toString()), window.location.toString());\n urlUrl.searchParams.set('limit', '' + limit);\n urlUrl.searchParams.set('startIndex', '' + startIndex);\n urlUrl.searchParams.set('totalCount', 'true');\n return urlUrl.toString();\n } else {\n return null;\n }\n },\n getNextUrl: (response)=>{\n const uri = response?.links?.find((link)=>link.rel == 'next')?.uri;\n if (uri) {\n const url = new URL(uri);\n // allows frontend proxies to work\n url.host = window.location.host;\n url.protocol = window.location.protocol;\n return url.toString();\n } else {\n return null;\n }\n },\n getTotalCount: (response)=>response?.totalCount ?? Number.NaN,\n getCurrentPageSize: (response)=>response?.results?.length ?? Number.NaN,\n getData: (response)=>response?.results\n};\nfunction useServerPagination(url, pageSize, serverPaginationHandlers, options = {}) {\n const { getPaginatedUrl, getTotalCount, getCurrentPageSize, getData } = serverPaginationHandlers;\n const { immutable, swrConfig } = options;\n const fetcher = options.fetcher ?? _openmrs_esm_api__rspack_import_0.openmrsFetch;\n // 1-indexing instead of 0-indexing, to keep consistency with `usePagination`\n const [currentPage, setCurrentPage] = (0,react__rspack_import_1.useState)(1);\n // Cache the totalCount and currentPageSize so we don't lose them\n // as we wait for next page's result to load while navigating to a different page.\n // This can be used to prevent jarring UI changes while loading\n const totalCount = (0,react__rspack_import_1.useRef)(Number.NaN);\n // this value is usually same as pageSize, except when currentPage is last page.\n const currentPageSize = (0,react__rspack_import_1.useRef)(Number.NaN);\n // tracked as a ref so we don't need to make the current page a dependency of `goTo()`, etc.\n const currentPageRef = (0,react__rspack_import_1.useRef)(currentPage);\n // use to differentiate \"endpoint doesn't return a total\" from \"we haven't run a request yet\"\n const hasResponded = (0,react__rspack_import_1.useRef)(false);\n const warnedMissingTotal = (0,react__rspack_import_1.useRef)(false);\n // if the URL we're querying changes, reset to page 1\n const urlKey = url?.toString() ?? '';\n const [lastUrlKey, setLastUrlKey] = (0,react__rspack_import_1.useState)(urlKey);\n if (urlKey !== lastUrlKey) {\n setLastUrlKey(urlKey);\n setCurrentPage(1);\n currentPageRef.current = 1;\n totalCount.current = Number.NaN;\n currentPageSize.current = Number.NaN;\n hasResponded.current = false;\n warnedMissingTotal.current = false;\n }\n const limit = pageSize;\n const startIndex = (currentPage - 1) * pageSize;\n const urlUrl = (0,react__rspack_import_1.useMemo)(()=>{\n return getPaginatedUrl(url, limit, startIndex);\n }, [\n url,\n limit,\n startIndex\n ]);\n const swr = immutable ? (swr_immutable__rspack_import_3_default()) : (swr__rspack_import_2_default());\n const { data, ...rest } = swr(urlUrl, fetcher, swrConfig);\n if (data?.data) {\n totalCount.current = getTotalCount(data?.data);\n currentPageSize.current = getCurrentPageSize(data?.data);\n hasResponded.current = true;\n }\n const totalPages = Math.ceil(totalCount.current / pageSize);\n // The bound is read from `totalCount` at call time rather than captured from the creating render,\n // which is what keeps this callback referentially stable, apart from a change in `pageSize`.\n const goTo = (0,react__rspack_import_1.useCallback)((page)=>{\n if (!Number.isInteger(page) || page < 1) {\n console.warn(`useServerPagination: ignoring goTo(${page}); page must be a positive integer.`);\n return;\n }\n // page count is not known prior to running any query when `bound` will be `NaN`, so in this\n // case we assume the requested page is fine; after results return, things will settle properly\n // clamped\n const bound = Math.ceil(totalCount.current / pageSize);\n if (!hasResponded.current || Number.isNaN(bound) || page <= bound) {\n currentPageRef.current = page;\n setCurrentPage(page);\n } else {\n console.warn('Invalid attempt to go to out of bounds page: ' + page);\n }\n }, [\n pageSize\n ]);\n // A page accepted before the total was known may turn out not to exist, so put the user on the last\n // real page once the response settles it. Costs an extra request, but only for a page that was out of\n // range to begin with; without it the hook sits on an empty page with no way back.\n (0,react__rspack_import_1.useEffect)(()=>{\n if (!hasResponded.current) {\n return;\n }\n if (Number.isNaN(totalCount.current)) {\n if (!warnedMissingTotal.current) {\n warnedMissingTotal.current = true;\n console.warn(`useServerPagination: ${urlKey} returned no total count, so out-of-range pages cannot be detected.`);\n }\n return;\n }\n const lastPage = Math.max(1, Math.ceil(totalCount.current / pageSize));\n if (currentPage > lastPage) {\n console.warn(`Invalid attempt to go to out of bounds page: ${currentPage}; returning to page ${lastPage}.`);\n currentPageRef.current = lastPage;\n setCurrentPage(lastPage);\n }\n }, [\n currentPage,\n pageSize,\n urlKey,\n data\n ]);\n const goToNext = (0,react__rspack_import_1.useCallback)(()=>{\n goTo(currentPageRef.current + 1);\n }, [\n goTo\n ]);\n const goToPrevious = (0,react__rspack_import_1.useCallback)(()=>{\n goTo(currentPageRef.current - 1);\n }, [\n goTo\n ]);\n return {\n data: getData(data?.data),\n totalPages,\n totalCount: totalCount.current,\n currentPage,\n currentPageSize: currentPageSize.current,\n paginated: totalPages > 1,\n showNextButton: currentPage < totalPages,\n showPreviousButton: currentPage > 1,\n goTo,\n goToNext,\n goToPrevious,\n ...rest\n };\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L3VzZU9wZW5tcnNQYWdpbmF0aW9uLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLXJlYWN0LXV0aWxzL2Rpc3QvdXNlT3Blbm1yc1BhZ2luYXRpb24uanM/NzY5OCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgVUkgKi8gaW1wb3J0IHsgbWFrZVVybCwgb3Blbm1yc0ZldGNoIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1hcGlcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB1c2VTV1IgZnJvbSBcInN3clwiO1xuaW1wb3J0IHVzZVNXUkltbXV0YWJsZSBmcm9tIFwic3dyL2ltbXV0YWJsZVwiO1xuLyoqXG4gKiBNb3N0IE9wZW5NUlMgUkVTVCBlbmRwb2ludHMgdGhhdCByZXR1cm4gYSBsaXN0IG9mIG9iamVjdHMsIHN1Y2ggYXMgZ2V0QWxsIG9yIHNlYXJjaCwgYXJlIHNlcnZlci1zaWRlIHBhZ2luYXRlZC5cbiAqIFRoZSBzZXJ2ZXIgbGltaXRzIHRoZSBtYXggbnVtYmVyIG9mIHJlc3VsdHMgYmVpbmcgcmV0dXJuZWQsIGFuZCBtdWx0aXBsZSByZXF1ZXN0cyBhcmUgbmVlZGVkIHRvIGdldCB0aGUgZnVsbCBkYXRhIHNldFxuICogaWYgaXRzIHNpemUgZXhjZWVkcyB0aGlzIGxpbWl0LlxuICogVGhlIG1heCBudW1iZXIgb2YgcmVzdWx0cyBwZXIgcmVxdWVzdCBpcyBjb25maWd1cmFibGUgc2VydmVyLXNpZGVcbiAqIHdpdGggdGhlIGtleSBcIndlYnNlcnZpY2VzLnJlc3QubWF4UmVzdWx0c0RlZmF1bHRcIi4gU2VlOiBodHRwczovL29wZW5tcnMuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9kb2NzL3BhZ2VzLzI1NDY5ODgyL1JFU1QrTW9kdWxlXG4gKlxuICogRm9yIGFueSBVSSB0aGF0IGRpc3BsYXlzIGEgcGFnaW5hdGVkIHZpZXcgb2YgdGhlIGZ1bGwgZGF0YSBzZXQsIHdlIE1VU1QgaGFuZGxlIHRoZSBzZXJ2ZXItc2lkZSBwYWdpbmF0aW9uIHByb3Blcmx5LFxuICogb3IgZWxzZSB0aGUgVUkgZG9lcyBub3QgY29ycmVjdGx5IGRpc3BsYXkgdGhlIGZ1bGwgZGF0YSBzZXQuXG4gKiBUaGlzIGhvb2sgZG9lcyB0aGF0IGJ5IHByb3ZpZGluZyBjYWxsYmFjayBmdW5jdGlvbnMgZm9yIG5hdmlnYXRpbmcgdG8gZGlmZmVyZW50IHBhZ2VzIG9mIHRoZSByZXN1bHRzLCBhbmRcbiAqIGxhenktbG9hZHMgdGhlIGRhdGEgb24gZWFjaCBwYWdlIGFzIG5lZWRlZC5cbiAqXG4gKiBOb3RlIHRoYXQgdGhpcyBob29rIGlzIG5vdCBzdWl0YWJsZSBmb3IgdXNlIGZvciBzaXR1YXRpb25zIHRoYXQgcmVxdWlyZSBjbGllbnQtc2lkZSBzb3J0aW5nIG9yIGZpbHRlcmluZ1xuICogb2YgdGhlIGRhdGEgc2V0LiBJbiB0aGF0IGNhc2UsIGFsbCBkYXRhIG11c3QgYmUgbG9hZGVkIG9udG8gY2xpZW50LXNpZGUgZmlyc3QuXG4gKlxuICogQHNlZSBgdXNlT3Blbm1yc0luZmluaXRlYFxuICogQHNlZSBgdXNlT3Blbm1yc0ZldGNoQWxsYFxuICogQHNlZSBgdXNlUGFnaW5hdGlvbmAgZm9yIHBhZ2luYXRpb24gb2YgY2xpZW50LXNpZGUgZGF0YWBcbiAqIEBzZWUgYHVzZUZoaXJQYWdpbmF0aW9uYGBcbiAqXG4gKiBAcGFyYW0gdXJsIFRoZSBVUkwgb2YgdGhlIHBhZ2luYXRlZCByZXN0IGVuZHBvaW50LiBcXFxuICogICAgICAgICAgICBJdCBzaG91bGQgYmUgcG9wdWxhdGVkIHdpdGggYW55IG5lZWRlZCBHRVQgcGFyYW1zLCBleGNlcHQgYGxpbWl0YCwgYHN0YXJ0SW5kZXhgIG9yIGB0b3RhbENvdW50YCxcbiAqICAgICAgICAgICAgd2hpY2ggd2lsbCBiZSBvdmVycmlkZGVuIGFuZCBtYW5pcHVsYXRlZCBieSB0aGUgYGdvVG8qYCBjYWxsYmFja3MuXG4gKiAgICAgICAgICAgIFNpbWlsYXIgdG8gdXNlU1dSLCB0aGlzIHBhcmFtIGNhbiBiZSBudWxsIHRvIGRpc2FibGUgZmV0Y2hpbmcuXG4gKiBAcGFyYW0gcGFnZVNpemUgVGhlIG51bWJlciBvZiByZXN1bHRzIHRvIHJldHVybiBwZXIgcGFnZSAvIGZldGNoLiBOb3RlIHRoYXQgdGhpcyB2YWx1ZSBNVVNUIE5PVCBleGNlZWRcbiAqICAgICAgICAgICAgXCJ3ZWJzZXJ2aWNlcy5yZXN0Lm1heFJlc3VsdHNBYnNvbHV0ZVwiLCB3aGljaCBzaG91bGQgYmUgcmVhc29uYWJseSBoaWdoIGJ5IGRlZmF1bHQgKDEwMDApLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgb2JqZWN0XG4gKiBAcmV0dXJuc1xuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VPcGVubXJzUGFnaW5hdGlvbih1cmwsIHBhZ2VTaXplLCBvcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gdXNlU2VydmVyUGFnaW5hdGlvbih1cmwsIHBhZ2VTaXplLCBvcGVubXJzU2VydmVyUGFnaW5hdGlvbkhhbmRsZXJzLCBvcHRpb25zKTtcbn1cbmV4cG9ydCBjb25zdCBvcGVubXJzU2VydmVyUGFnaW5hdGlvbkhhbmRsZXJzID0ge1xuICAgIGdldFBhZ2luYXRlZFVybDogKHVybCwgbGltaXQsIHN0YXJ0SW5kZXgpPT57XG4gICAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgICAgIGNvbnN0IHVybFVybCA9IG5ldyBVUkwobWFrZVVybCh1cmwudG9TdHJpbmcoKSksIHdpbmRvdy5sb2NhdGlvbi50b1N0cmluZygpKTtcbiAgICAgICAgICAgIHVybFVybC5zZWFyY2hQYXJhbXMuc2V0KCdsaW1pdCcsICcnICsgbGltaXQpO1xuICAgICAgICAgICAgdXJsVXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3N0YXJ0SW5kZXgnLCAnJyArIHN0YXJ0SW5kZXgpO1xuICAgICAgICAgICAgdXJsVXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3RvdGFsQ291bnQnLCAndHJ1ZScpO1xuICAgICAgICAgICAgcmV0dXJuIHVybFVybC50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGdldE5leHRVcmw6IChyZXNwb25zZSk9PntcbiAgICAgICAgY29uc3QgdXJpID0gcmVzcG9uc2U/LmxpbmtzPy5maW5kKChsaW5rKT0+bGluay5yZWwgPT0gJ25leHQnKT8udXJpO1xuICAgICAgICBpZiAodXJpKSB7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHVyaSk7XG4gICAgICAgICAgICAvLyBhbGxvd3MgZnJvbnRlbmQgcHJveGllcyB0byB3b3JrXG4gICAgICAgICAgICB1cmwuaG9zdCA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0O1xuICAgICAgICAgICAgdXJsLnByb3RvY29sID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sO1xuICAgICAgICAgICAgcmV0dXJuIHVybC50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGdldFRvdGFsQ291bnQ6IChyZXNwb25zZSk9PnJlc3BvbnNlPy50b3RhbENvdW50ID8/IE51bWJlci5OYU4sXG4gICAgZ2V0Q3VycmVudFBhZ2VTaXplOiAocmVzcG9uc2UpPT5yZXNwb25zZT8ucmVzdWx0cz8ubGVuZ3RoID8/IE51bWJlci5OYU4sXG4gICAgZ2V0RGF0YTogKHJlc3BvbnNlKT0+cmVzcG9uc2U/LnJlc3VsdHNcbn07XG5leHBvcnQgZnVuY3Rpb24gdXNlU2VydmVyUGFnaW5hdGlvbih1cmwsIHBhZ2VTaXplLCBzZXJ2ZXJQYWdpbmF0aW9uSGFuZGxlcnMsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHsgZ2V0UGFnaW5hdGVkVXJsLCBnZXRUb3RhbENvdW50LCBnZXRDdXJyZW50UGFnZVNpemUsIGdldERhdGEgfSA9IHNlcnZlclBhZ2luYXRpb25IYW5kbGVycztcbiAgICBjb25zdCB7IGltbXV0YWJsZSwgc3dyQ29uZmlnIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGZldGNoZXIgPSBvcHRpb25zLmZldGNoZXIgPz8gb3Blbm1yc0ZldGNoO1xuICAgIC8vIDEtaW5kZXhpbmcgaW5zdGVhZCBvZiAwLWluZGV4aW5nLCB0byBrZWVwIGNvbnNpc3RlbmN5IHdpdGggYHVzZVBhZ2luYXRpb25gXG4gICAgY29uc3QgW2N1cnJlbnRQYWdlLCBzZXRDdXJyZW50UGFnZV0gPSB1c2VTdGF0ZSgxKTtcbiAgICAvLyBDYWNoZSB0aGUgdG90YWxDb3VudCBhbmQgY3VycmVudFBhZ2VTaXplIHNvIHdlIGRvbid0IGxvc2UgdGhlbVxuICAgIC8vIGFzIHdlIHdhaXQgZm9yIG5leHQgcGFnZSdzIHJlc3VsdCB0byBsb2FkIHdoaWxlIG5hdmlnYXRpbmcgdG8gYSBkaWZmZXJlbnQgcGFnZS5cbiAgICAvLyBUaGlzIGNhbiBiZSB1c2VkIHRvIHByZXZlbnQgamFycmluZyBVSSBjaGFuZ2VzIHdoaWxlIGxvYWRpbmdcbiAgICBjb25zdCB0b3RhbENvdW50ID0gdXNlUmVmKE51bWJlci5OYU4pO1xuICAgIC8vIHRoaXMgdmFsdWUgaXMgdXN1YWxseSBzYW1lIGFzIHBhZ2VTaXplLCBleGNlcHQgd2hlbiBjdXJyZW50UGFnZSBpcyBsYXN0IHBhZ2UuXG4gICAgY29uc3QgY3VycmVudFBhZ2VTaXplID0gdXNlUmVmKE51bWJlci5OYU4pO1xuICAgIC8vIHRyYWNrZWQgYXMgYSByZWYgc28gd2UgZG9uJ3QgbmVlZCB0byBtYWtlIHRoZSBjdXJyZW50IHBhZ2UgYSBkZXBlbmRlbmN5IG9mIGBnb1RvKClgLCBldGMuXG4gICAgY29uc3QgY3VycmVudFBhZ2VSZWYgPSB1c2VSZWYoY3VycmVudFBhZ2UpO1xuICAgIC8vIHVzZSB0byBkaWZmZXJlbnRpYXRlIFwiZW5kcG9pbnQgZG9lc24ndCByZXR1cm4gYSB0b3RhbFwiIGZyb20gXCJ3ZSBoYXZlbid0IHJ1biBhIHJlcXVlc3QgeWV0XCJcbiAgICBjb25zdCBoYXNSZXNwb25kZWQgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IHdhcm5lZE1pc3NpbmdUb3RhbCA9IHVzZVJlZihmYWxzZSk7XG4gICAgLy8gaWYgdGhlIFVSTCB3ZSdyZSBxdWVyeWluZyBjaGFuZ2VzLCByZXNldCB0byBwYWdlIDFcbiAgICBjb25zdCB1cmxLZXkgPSB1cmw/LnRvU3RyaW5nKCkgPz8gJyc7XG4gICAgY29uc3QgW2xhc3RVcmxLZXksIHNldExhc3RVcmxLZXldID0gdXNlU3RhdGUodXJsS2V5KTtcbiAgICBpZiAodXJsS2V5ICE9PSBsYXN0VXJsS2V5KSB7XG4gICAgICAgIHNldExhc3RVcmxLZXkodXJsS2V5KTtcbiAgICAgICAgc2V0Q3VycmVudFBhZ2UoMSk7XG4gICAgICAgIGN1cnJlbnRQYWdlUmVmLmN1cnJlbnQgPSAxO1xuICAgICAgICB0b3RhbENvdW50LmN1cnJlbnQgPSBOdW1iZXIuTmFOO1xuICAgICAgICBjdXJyZW50UGFnZVNpemUuY3VycmVudCA9IE51bWJlci5OYU47XG4gICAgICAgIGhhc1Jlc3BvbmRlZC5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIHdhcm5lZE1pc3NpbmdUb3RhbC5jdXJyZW50ID0gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGxpbWl0ID0gcGFnZVNpemU7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemU7XG4gICAgY29uc3QgdXJsVXJsID0gdXNlTWVtbygoKT0+e1xuICAgICAgICByZXR1cm4gZ2V0UGFnaW5hdGVkVXJsKHVybCwgbGltaXQsIHN0YXJ0SW5kZXgpO1xuICAgIH0sIFtcbiAgICAgICAgdXJsLFxuICAgICAgICBsaW1pdCxcbiAgICAgICAgc3RhcnRJbmRleFxuICAgIF0pO1xuICAgIGNvbnN0IHN3ciA9IGltbXV0YWJsZSA/IHVzZVNXUkltbXV0YWJsZSA6IHVzZVNXUjtcbiAgICBjb25zdCB7IGRhdGEsIC4uLnJlc3QgfSA9IHN3cih1cmxVcmwsIGZldGNoZXIsIHN3ckNvbmZpZyk7XG4gICAgaWYgKGRhdGE/LmRhdGEpIHtcbiAgICAgICAgdG90YWxDb3VudC5jdXJyZW50ID0gZ2V0VG90YWxDb3VudChkYXRhPy5kYXRhKTtcbiAgICAgICAgY3VycmVudFBhZ2VTaXplLmN1cnJlbnQgPSBnZXRDdXJyZW50UGFnZVNpemUoZGF0YT8uZGF0YSk7XG4gICAgICAgIGhhc1Jlc3BvbmRlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgdG90YWxQYWdlcyA9IE1hdGguY2VpbCh0b3RhbENvdW50LmN1cnJlbnQgLyBwYWdlU2l6ZSk7XG4gICAgLy8gVGhlIGJvdW5kIGlzIHJlYWQgZnJvbSBgdG90YWxDb3VudGAgYXQgY2FsbCB0aW1lIHJhdGhlciB0aGFuIGNhcHR1cmVkIGZyb20gdGhlIGNyZWF0aW5nIHJlbmRlcixcbiAgICAvLyB3aGljaCBpcyB3aGF0IGtlZXBzIHRoaXMgY2FsbGJhY2sgcmVmZXJlbnRpYWxseSBzdGFibGUsIGFwYXJ0IGZyb20gYSBjaGFuZ2UgaW4gYHBhZ2VTaXplYC5cbiAgICBjb25zdCBnb1RvID0gdXNlQ2FsbGJhY2soKHBhZ2UpPT57XG4gICAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihwYWdlKSB8fCBwYWdlIDwgMSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGB1c2VTZXJ2ZXJQYWdpbmF0aW9uOiBpZ25vcmluZyBnb1RvKCR7cGFnZX0pOyBwYWdlIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLmApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHBhZ2UgY291bnQgaXMgbm90IGtub3duIHByaW9yIHRvIHJ1bm5pbmcgYW55IHF1ZXJ5IHdoZW4gYGJvdW5kYCB3aWxsIGJlIGBOYU5gLCBzbyBpbiB0aGlzXG4gICAgICAgIC8vIGNhc2Ugd2UgYXNzdW1lIHRoZSByZXF1ZXN0ZWQgcGFnZSBpcyBmaW5lOyBhZnRlciByZXN1bHRzIHJldHVybiwgdGhpbmdzIHdpbGwgc2V0dGxlIHByb3Blcmx5XG4gICAgICAgIC8vIGNsYW1wZWRcbiAgICAgICAgY29uc3QgYm91bmQgPSBNYXRoLmNlaWwodG90YWxDb3VudC5jdXJyZW50IC8gcGFnZVNpemUpO1xuICAgICAgICBpZiAoIWhhc1Jlc3BvbmRlZC5jdXJyZW50IHx8IE51bWJlci5pc05hTihib3VuZCkgfHwgcGFnZSA8PSBib3VuZCkge1xuICAgICAgICAgICAgY3VycmVudFBhZ2VSZWYuY3VycmVudCA9IHBhZ2U7XG4gICAgICAgICAgICBzZXRDdXJyZW50UGFnZShwYWdlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignSW52YWxpZCBhdHRlbXB0IHRvIGdvIHRvIG91dCBvZiBib3VuZHMgcGFnZTogJyArIHBhZ2UpO1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBwYWdlU2l6ZVxuICAgIF0pO1xuICAgIC8vIEEgcGFnZSBhY2NlcHRlZCBiZWZvcmUgdGhlIHRvdGFsIHdhcyBrbm93biBtYXkgdHVybiBvdXQgbm90IHRvIGV4aXN0LCBzbyBwdXQgdGhlIHVzZXIgb24gdGhlIGxhc3RcbiAgICAvLyByZWFsIHBhZ2Ugb25jZSB0aGUgcmVzcG9uc2Ugc2V0dGxlcyBpdC4gQ29zdHMgYW4gZXh0cmEgcmVxdWVzdCwgYnV0IG9ubHkgZm9yIGEgcGFnZSB0aGF0IHdhcyBvdXQgb2ZcbiAgICAvLyByYW5nZSB0byBiZWdpbiB3aXRoOyB3aXRob3V0IGl0IHRoZSBob29rIHNpdHMgb24gYW4gZW1wdHkgcGFnZSB3aXRoIG5vIHdheSBiYWNrLlxuICAgIHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBpZiAoIWhhc1Jlc3BvbmRlZC5jdXJyZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE51bWJlci5pc05hTih0b3RhbENvdW50LmN1cnJlbnQpKSB7XG4gICAgICAgICAgICBpZiAoIXdhcm5lZE1pc3NpbmdUb3RhbC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgd2FybmVkTWlzc2luZ1RvdGFsLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgdXNlU2VydmVyUGFnaW5hdGlvbjogJHt1cmxLZXl9IHJldHVybmVkIG5vIHRvdGFsIGNvdW50LCBzbyBvdXQtb2YtcmFuZ2UgcGFnZXMgY2Fubm90IGJlIGRldGVjdGVkLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3RQYWdlID0gTWF0aC5tYXgoMSwgTWF0aC5jZWlsKHRvdGFsQ291bnQuY3VycmVudCAvIHBhZ2VTaXplKSk7XG4gICAgICAgIGlmIChjdXJyZW50UGFnZSA+IGxhc3RQYWdlKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYEludmFsaWQgYXR0ZW1wdCB0byBnbyB0byBvdXQgb2YgYm91bmRzIHBhZ2U6ICR7Y3VycmVudFBhZ2V9OyByZXR1cm5pbmcgdG8gcGFnZSAke2xhc3RQYWdlfS5gKTtcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlUmVmLmN1cnJlbnQgPSBsYXN0UGFnZTtcbiAgICAgICAgICAgIHNldEN1cnJlbnRQYWdlKGxhc3RQYWdlKTtcbiAgICAgICAgfVxuICAgIH0sIFtcbiAgICAgICAgY3VycmVudFBhZ2UsXG4gICAgICAgIHBhZ2VTaXplLFxuICAgICAgICB1cmxLZXksXG4gICAgICAgIGRhdGFcbiAgICBdKTtcbiAgICBjb25zdCBnb1RvTmV4dCA9IHVzZUNhbGxiYWNrKCgpPT57XG4gICAgICAgIGdvVG8oY3VycmVudFBhZ2VSZWYuY3VycmVudCArIDEpO1xuICAgIH0sIFtcbiAgICAgICAgZ29Ub1xuICAgIF0pO1xuICAgIGNvbnN0IGdvVG9QcmV2aW91cyA9IHVzZUNhbGxiYWNrKCgpPT57XG4gICAgICAgIGdvVG8oY3VycmVudFBhZ2VSZWYuY3VycmVudCAtIDEpO1xuICAgIH0sIFtcbiAgICAgICAgZ29Ub1xuICAgIF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIGRhdGE6IGdldERhdGEoZGF0YT8uZGF0YSksXG4gICAgICAgIHRvdGFsUGFnZXMsXG4gICAgICAgIHRvdGFsQ291bnQ6IHRvdGFsQ291bnQuY3VycmVudCxcbiAgICAgICAgY3VycmVudFBhZ2UsXG4gICAgICAgIGN1cnJlbnRQYWdlU2l6ZTogY3VycmVudFBhZ2VTaXplLmN1cnJlbnQsXG4gICAgICAgIHBhZ2luYXRlZDogdG90YWxQYWdlcyA+IDEsXG4gICAgICAgIHNob3dOZXh0QnV0dG9uOiBjdXJyZW50UGFnZSA8IHRvdGFsUGFnZXMsXG4gICAgICAgIHNob3dQcmV2aW91c0J1dHRvbjogY3VycmVudFBhZ2UgPiAxLFxuICAgICAgICBnb1RvLFxuICAgICAgICBnb1RvTmV4dCxcbiAgICAgICAgZ29Ub1ByZXZpb3VzLFxuICAgICAgICAuLi5yZXN0XG4gICAgfTtcbn1cbiJdLCJuYW1lcyI6WyJtYWtlVXJsIiwib3Blbm1yc0ZldGNoIiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VTV1IiLCJ1c2VTV1JJbW11dGFibGUiLCJ1c2VPcGVubXJzUGFnaW5hdGlvbiIsInVybCIsInBhZ2VTaXplIiwib3B0aW9ucyIsInVzZVNlcnZlclBhZ2luYXRpb24iLCJvcGVubXJzU2VydmVyUGFnaW5hdGlvbkhhbmRsZXJzIiwibGltaXQiLCJzdGFydEluZGV4IiwidXJsVXJsIiwiVVJMIiwid2luZG93IiwicmVzcG9uc2UiLCJ1cmkiLCJsaW5rIiwiTnVtYmVyIiwic2VydmVyUGFnaW5hdGlvbkhhbmRsZXJzIiwiZ2V0UGFnaW5hdGVkVXJsIiwiZ2V0VG90YWxDb3VudCIsImdldEN1cnJlbnRQYWdlU2l6ZSIsImdldERhdGEiLCJpbW11dGFibGUiLCJzd3JDb25maWciLCJmZXRjaGVyIiwiY3VycmVudFBhZ2UiLCJzZXRDdXJyZW50UGFnZSIsInRvdGFsQ291bnQiLCJjdXJyZW50UGFnZVNpemUiLCJjdXJyZW50UGFnZVJlZiIsImhhc1Jlc3BvbmRlZCIsIndhcm5lZE1pc3NpbmdUb3RhbCIsInVybEtleSIsImxhc3RVcmxLZXkiLCJzZXRMYXN0VXJsS2V5Iiwic3dyIiwiZGF0YSIsInJlc3QiLCJ0b3RhbFBhZ2VzIiwiTWF0aCIsImdvVG8iLCJwYWdlIiwiY29uc29sZSIsImJvdW5kIiwibGFzdFBhZ2UiLCJnb1RvTmV4dCIsImdvVG9QcmV2aW91cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLHlCQUF5QixHQUE0RDtBQUNYO0FBQ2pEO0FBQ21CO0FBQzVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNEJDLEdBQVUsU0FBU1MscUJBQXFCQyxHQUFHLEVBQUVDLFFBQVEsRUFBRUMsVUFBVSxDQUFDLENBQUM7SUFDaEUsT0FBT0Msb0JBQW9CSCxLQUFLQyxVQUFVRyxpQ0FBaUNGO0FBQy9FO0FBQ08sTUFBTUUsa0NBQWtDO0lBQzNDLGlCQUFpQixDQUFDSixLQUFLSyxPQUFPQztRQUMxQixJQUFJTixLQUFLO1lBQ0wsTUFBTU8sU0FBUyxJQUFJQyxJQUFJbEIsNkNBQU9BLENBQUNVLElBQUksUUFBUSxLQUFLUyxPQUFPLFFBQVEsQ0FBQyxRQUFRO1lBQ3hFRixPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxLQUFLRjtZQUN0Q0UsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLGNBQWMsS0FBS0Q7WUFDM0NDLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxjQUFjO1lBQ3RDLE9BQU9BLE9BQU8sUUFBUTtRQUMxQixPQUFPO1lBQ0gsT0FBTztRQUNYO0lBQ0o7SUFDQSxZQUFZLENBQUNHO1FBQ1QsTUFBTUMsTUFBTUQsVUFBVSxPQUFPLEtBQUssQ0FBQ0UsT0FBT0EsS0FBSyxHQUFHLElBQUksU0FBUztRQUMvRCxJQUFJRCxLQUFLO1lBQ0wsTUFBTVgsTUFBTSxJQUFJUSxJQUFJRztZQUNwQixrQ0FBa0M7WUFDbENYLElBQUksSUFBSSxHQUFHUyxPQUFPLFFBQVEsQ0FBQyxJQUFJO1lBQy9CVCxJQUFJLFFBQVEsR0FBR1MsT0FBTyxRQUFRLENBQUMsUUFBUTtZQUN2QyxPQUFPVCxJQUFJLFFBQVE7UUFDdkIsT0FBTztZQUNILE9BQU87UUFDWDtJQUNKO0lBQ0EsZUFBZSxDQUFDVSxXQUFXQSxVQUFVLGNBQWNHLE9BQU8sR0FBRztJQUM3RCxvQkFBb0IsQ0FBQ0gsV0FBV0EsVUFBVSxTQUFTLFVBQVVHLE9BQU8sR0FBRztJQUN2RSxTQUFTLENBQUNILFdBQVdBLFVBQVU7QUFDbkMsRUFBRTtBQUNLLFNBQVNQLG9CQUFvQkgsR0FBRyxFQUFFQyxRQUFRLEVBQUVhLHdCQUF3QixFQUFFWixVQUFVLENBQUMsQ0FBQztJQUNyRixNQUFNLEVBQUVhLGVBQWUsRUFBRUMsYUFBYSxFQUFFQyxrQkFBa0IsRUFBRUMsT0FBTyxFQUFFLEdBQUdKO0lBQ3hFLE1BQU0sRUFBRUssU0FBUyxFQUFFQyxTQUFTLEVBQUUsR0FBR2xCO0lBQ2pDLE1BQU1tQixVQUFVbkIsUUFBUSxPQUFPLElBQUlYLDhDQUFZQTtJQUMvQyw2RUFBNkU7SUFDN0UsTUFBTSxDQUFDK0IsYUFBYUMsZUFBZSxHQUFHM0IsbUNBQVFBLENBQUM7SUFDL0MsaUVBQWlFO0lBQ2pFLGtGQUFrRjtJQUNsRiwrREFBK0Q7SUFDL0QsTUFBTTRCLGFBQWE3QixpQ0FBTUEsQ0FBQ2tCLE9BQU8sR0FBRztJQUNwQyxnRkFBZ0Y7SUFDaEYsTUFBTVksa0JBQWtCOUIsaUNBQU1BLENBQUNrQixPQUFPLEdBQUc7SUFDekMsNEZBQTRGO0lBQzVGLE1BQU1hLGlCQUFpQi9CLGlDQUFNQSxDQUFDMkI7SUFDOUIsNkZBQTZGO0lBQzdGLE1BQU1LLGVBQWVoQyxpQ0FBTUEsQ0FBQztJQUM1QixNQUFNaUMscUJBQXFCakMsaUNBQU1BLENBQUM7SUFDbEMscURBQXFEO0lBQ3JELE1BQU1rQyxTQUFTN0IsS0FBSyxjQUFjO0lBQ2xDLE1BQU0sQ0FBQzhCLFlBQVlDLGNBQWMsR0FBR25DLG1DQUFRQSxDQUFDaUM7SUFDN0MsSUFBSUEsV0FBV0MsWUFBWTtRQUN2QkMsY0FBY0Y7UUFDZE4sZUFBZTtRQUNmRyxlQUFlLE9BQU8sR0FBRztRQUN6QkYsV0FBVyxPQUFPLEdBQUdYLE9BQU8sR0FBRztRQUMvQlksZ0JBQWdCLE9BQU8sR0FBR1osT0FBTyxHQUFHO1FBQ3BDYyxhQUFhLE9BQU8sR0FBRztRQUN2QkMsbUJBQW1CLE9BQU8sR0FBRztJQUNqQztJQUNBLE1BQU12QixRQUFRSjtJQUNkLE1BQU1LLGFBQWNnQixDQUFBQSxjQUFjLEtBQUtyQjtJQUN2QyxNQUFNTSxTQUFTYixrQ0FBT0EsQ0FBQztRQUNuQixPQUFPcUIsZ0JBQWdCZixLQUFLSyxPQUFPQztJQUN2QyxHQUFHO1FBQ0NOO1FBQ0FLO1FBQ0FDO0tBQ0g7SUFDRCxNQUFNMEIsTUFBTWIsWUFBWXJCLDBDQUFlQSxHQUFHRCxnQ0FBTUE7SUFDaEQsTUFBTSxFQUFFb0MsSUFBSSxFQUFFLEdBQUdDLE1BQU0sR0FBR0YsSUFBSXpCLFFBQVFjLFNBQVNEO0lBQy9DLElBQUlhLE1BQU0sTUFBTTtRQUNaVCxXQUFXLE9BQU8sR0FBR1IsY0FBY2lCLE1BQU07UUFDekNSLGdCQUFnQixPQUFPLEdBQUdSLG1CQUFtQmdCLE1BQU07UUFDbkROLGFBQWEsT0FBTyxHQUFHO0lBQzNCO0lBQ0EsTUFBTVEsYUFBYUMsS0FBSyxJQUFJLENBQUNaLFdBQVcsT0FBTyxHQUFHdkI7SUFDbEQsa0dBQWtHO0lBQ2xHLDZGQUE2RjtJQUM3RixNQUFNb0MsT0FBTzdDLHNDQUFXQSxDQUFDLENBQUM4QztRQUN0QixJQUFJLENBQUN6QixPQUFPLFNBQVMsQ0FBQ3lCLFNBQVNBLE9BQU8sR0FBRztZQUNyQ0MsUUFBUSxJQUFJLENBQUMsQ0FBQyxtQ0FBbUMsRUFBRUQsS0FBSyxtQ0FBbUMsQ0FBQztZQUM1RjtRQUNKO1FBQ0EsNEZBQTRGO1FBQzVGLCtGQUErRjtRQUMvRixVQUFVO1FBQ1YsTUFBTUUsUUFBUUosS0FBSyxJQUFJLENBQUNaLFdBQVcsT0FBTyxHQUFHdkI7UUFDN0MsSUFBSSxDQUFDMEIsYUFBYSxPQUFPLElBQUlkLE9BQU8sS0FBSyxDQUFDMkIsVUFBVUYsUUFBUUUsT0FBTztZQUMvRGQsZUFBZSxPQUFPLEdBQUdZO1lBQ3pCZixlQUFlZTtRQUNuQixPQUFPO1lBQ0hDLFFBQVEsSUFBSSxDQUFDLGtEQUFrREQ7UUFDbkU7SUFDSixHQUFHO1FBQ0NyQztLQUNIO0lBQ0Qsb0dBQW9HO0lBQ3BHLHNHQUFzRztJQUN0RyxtRkFBbUY7SUFDbkZSLG9DQUFTQSxDQUFDO1FBQ04sSUFBSSxDQUFDa0MsYUFBYSxPQUFPLEVBQUU7WUFDdkI7UUFDSjtRQUNBLElBQUlkLE9BQU8sS0FBSyxDQUFDVyxXQUFXLE9BQU8sR0FBRztZQUNsQyxJQUFJLENBQUNJLG1CQUFtQixPQUFPLEVBQUU7Z0JBQzdCQSxtQkFBbUIsT0FBTyxHQUFHO2dCQUM3QlcsUUFBUSxJQUFJLENBQUMsQ0FBQyxxQkFBcUIsRUFBRVYsT0FBTyxtRUFBbUUsQ0FBQztZQUNwSDtZQUNBO1FBQ0o7UUFDQSxNQUFNWSxXQUFXTCxLQUFLLEdBQUcsQ0FBQyxHQUFHQSxLQUFLLElBQUksQ0FBQ1osV0FBVyxPQUFPLEdBQUd2QjtRQUM1RCxJQUFJcUIsY0FBY21CLFVBQVU7WUFDeEJGLFFBQVEsSUFBSSxDQUFDLENBQUMsNkNBQTZDLEVBQUVqQixZQUFZLG9CQUFvQixFQUFFbUIsU0FBUyxDQUFDLENBQUM7WUFDMUdmLGVBQWUsT0FBTyxHQUFHZTtZQUN6QmxCLGVBQWVrQjtRQUNuQjtJQUNKLEdBQUc7UUFDQ25CO1FBQ0FyQjtRQUNBNEI7UUFDQUk7S0FDSDtJQUNELE1BQU1TLFdBQVdsRCxzQ0FBV0EsQ0FBQztRQUN6QjZDLEtBQUtYLGVBQWUsT0FBTyxHQUFHO0lBQ2xDLEdBQUc7UUFDQ1c7S0FDSDtJQUNELE1BQU1NLGVBQWVuRCxzQ0FBV0EsQ0FBQztRQUM3QjZDLEtBQUtYLGVBQWUsT0FBTyxHQUFHO0lBQ2xDLEdBQUc7UUFDQ1c7S0FDSDtJQUNELE9BQU87UUFDSCxNQUFNbkIsUUFBUWUsTUFBTTtRQUNwQkU7UUFDQSxZQUFZWCxXQUFXLE9BQU87UUFDOUJGO1FBQ0EsaUJBQWlCRyxnQkFBZ0IsT0FBTztRQUN4QyxXQUFXVSxhQUFhO1FBQ3hCLGdCQUFnQmIsY0FBY2E7UUFDOUIsb0JBQW9CYixjQUFjO1FBQ2xDZTtRQUNBSztRQUNBQztRQUNBLEdBQUdULElBQUk7SUFDWDtBQUNKIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/useOpenmrsPagination.js\n\n}");
|
|
6124
6105
|
|
|
6125
6106
|
},
|
|
6126
6107
|
"../../framework/esm-react-utils/dist/useOpenmrsSWR.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
6127
6108
|
"use strict";
|
|
6128
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useOpenmrsSWR: () => (useOpenmrsSWR)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"
|
|
6109
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useOpenmrsSWR: () => (useOpenmrsSWR)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/swr/swr\");\n/* import */ var swr__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(swr__rspack_import_1);\n/* import */ var _openmrs_esm_api__rspack_import_2 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var _useAbortController_js__rspack_import_3 = __webpack_require__(\"../../framework/esm-react-utils/dist/useAbortController.js\");\n/** @module @category Utility */ \n\n\n\nfunction getUrl(key, url) {\n if (url) {\n return typeof url === 'function' ? url(key) : url;\n }\n if (typeof key === 'string') {\n return key;\n }\n throw new Error(`When using useOpenmrsSWR with a key that is not a string, you must provide a url() function that converts the key to a valid url. The key for this hook is ${key}.`);\n}\n/**\n * @beta\n *\n * This hook is intended to simplify using openmrsFetch in useSWR, while also ensuring that\n * all useSWR usages properly use an abort controller, so that fetch requests are cancelled\n * if the React component unmounts.\n *\n * @example\n * ```tsx\n * import { useOpenmrsSWR } from \"@openmrs/esm-framework\";\n *\n * function MyComponent() {\n * const { data } = useOpenmrsSWR(key);\n *\n * return (\n * // render something with data\n * );\n * }\n * ```\n *\n * Note that if you are using a complex SWR key you must provide a url function to the options parameter,\n * which translates the key into a URL to be sent to `openmrsFetch()`\n *\n * @example\n * ```tsx\n * import { useOpenmrsSWR } from \"@openmrs/esm-framework\";\n *\n * function MyComponent() {\n * const { data } = useOpenmrsSWR(['key', 'url'], { url: (key) => key[1] });\n *\n * return (\n * // render something with data\n * );\n * }\n * ```\n * @param key The SWR key to use\n * @param options An object of optional parameters to provide, including a {@link FetchConfig} object\n * to pass to {@link openmrsFetch} or options to pass to SWR\n */ function useOpenmrsSWR(key, options = {}) {\n const { abortController, fetchInit, url, swrConfig } = options;\n const ac = (0,_useAbortController_js__rspack_import_3[\"default\"])();\n const abortSignal = (0,react__rspack_import_0.useMemo)(()=>fetchInit?.signal ?? abortController?.signal ?? ac.signal, [\n abortController?.signal,\n fetchInit?.signal,\n ac.signal\n ]);\n const fetcher = (0,react__rspack_import_0.useCallback)((key)=>{\n const url_ = getUrl(key, url);\n return (0,_openmrs_esm_api__rspack_import_2.openmrsFetch)(url_, {\n ...fetchInit,\n signal: abortSignal\n });\n }, [\n abortSignal,\n fetchInit,\n url\n ]);\n return swr__rspack_import_1_default()(key, fetcher, swrConfig);\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L3VzZU9wZW5tcnNTV1IuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvZGlzdC91c2VPcGVubXJzU1dSLmpzPzJmZTEiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IFV0aWxpdHkgKi8gaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB1c2VTV1IgZnJvbSBcInN3clwiO1xuaW1wb3J0IHsgb3Blbm1yc0ZldGNoIH0gZnJvbSBcIkBvcGVubXJzL2VzbS1hcGlcIjtcbmltcG9ydCB1c2VBYm9ydENvbnRyb2xsZXIgZnJvbSBcIi4vdXNlQWJvcnRDb250cm9sbGVyLmpzXCI7XG5mdW5jdGlvbiBnZXRVcmwoa2V5LCB1cmwpIHtcbiAgICBpZiAodXJsKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdXJsID09PSAnZnVuY3Rpb24nID8gdXJsKGtleSkgOiB1cmw7XG4gICAgfVxuICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4ga2V5O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFdoZW4gdXNpbmcgdXNlT3Blbm1yc1NXUiB3aXRoIGEga2V5IHRoYXQgaXMgbm90IGEgc3RyaW5nLCB5b3UgbXVzdCBwcm92aWRlIGEgdXJsKCkgZnVuY3Rpb24gdGhhdCBjb252ZXJ0cyB0aGUga2V5IHRvIGEgdmFsaWQgdXJsLiBUaGUga2V5IGZvciB0aGlzIGhvb2sgaXMgJHtrZXl9LmApO1xufVxuLyoqXG4gKiBAYmV0YVxuICpcbiAqIFRoaXMgaG9vayBpcyBpbnRlbmRlZCB0byBzaW1wbGlmeSB1c2luZyBvcGVubXJzRmV0Y2ggaW4gdXNlU1dSLCB3aGlsZSBhbHNvIGVuc3VyaW5nIHRoYXRcbiAqIGFsbCB1c2VTV1IgdXNhZ2VzIHByb3Blcmx5IHVzZSBhbiBhYm9ydCBjb250cm9sbGVyLCBzbyB0aGF0IGZldGNoIHJlcXVlc3RzIGFyZSBjYW5jZWxsZWRcbiAqIGlmIHRoZSBSZWFjdCBjb21wb25lbnQgdW5tb3VudHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogaW1wb3J0IHsgdXNlT3Blbm1yc1NXUiB9IGZyb20gXCJAb3Blbm1ycy9lc20tZnJhbWV3b3JrXCI7XG4gKlxuICogZnVuY3Rpb24gTXlDb21wb25lbnQoKSB7XG4gKiAgY29uc3QgeyBkYXRhIH0gPSB1c2VPcGVubXJzU1dSKGtleSk7XG4gKlxuICogIHJldHVybiAoXG4gKiAgICAvLyByZW5kZXIgc29tZXRoaW5nIHdpdGggZGF0YVxuICogICk7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBOb3RlIHRoYXQgaWYgeW91IGFyZSB1c2luZyBhIGNvbXBsZXggU1dSIGtleSB5b3UgbXVzdCBwcm92aWRlIGEgdXJsIGZ1bmN0aW9uIHRvIHRoZSBvcHRpb25zIHBhcmFtZXRlcixcbiAqIHdoaWNoIHRyYW5zbGF0ZXMgdGhlIGtleSBpbnRvIGEgVVJMIHRvIGJlIHNlbnQgdG8gYG9wZW5tcnNGZXRjaCgpYFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGltcG9ydCB7IHVzZU9wZW5tcnNTV1IgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWZyYW1ld29ya1wiO1xuICpcbiAqIGZ1bmN0aW9uIE15Q29tcG9uZW50KCkge1xuICogIGNvbnN0IHsgZGF0YSB9ID0gdXNlT3Blbm1yc1NXUihbJ2tleScsICd1cmwnXSwgeyB1cmw6IChrZXkpID0+IGtleVsxXSB9KTtcbiAqXG4gKiAgcmV0dXJuIChcbiAqICAgIC8vIHJlbmRlciBzb21ldGhpbmcgd2l0aCBkYXRhXG4gKiAgKTtcbiAqIH1cbiAqIGBgYFxuICogQHBhcmFtIGtleSBUaGUgU1dSIGtleSB0byB1c2VcbiAqIEBwYXJhbSBvcHRpb25zIEFuIG9iamVjdCBvZiBvcHRpb25hbCBwYXJhbWV0ZXJzIHRvIHByb3ZpZGUsIGluY2x1ZGluZyBhIHtAbGluayBGZXRjaENvbmZpZ30gb2JqZWN0XG4gKiAgIHRvIHBhc3MgdG8ge0BsaW5rIG9wZW5tcnNGZXRjaH0gb3Igb3B0aW9ucyB0byBwYXNzIHRvIFNXUlxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VPcGVubXJzU1dSKGtleSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgeyBhYm9ydENvbnRyb2xsZXIsIGZldGNoSW5pdCwgdXJsLCBzd3JDb25maWcgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgYWMgPSB1c2VBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBjb25zdCBhYm9ydFNpZ25hbCA9IHVzZU1lbW8oKCk9PmZldGNoSW5pdD8uc2lnbmFsID8/IGFib3J0Q29udHJvbGxlcj8uc2lnbmFsID8/IGFjLnNpZ25hbCwgW1xuICAgICAgICBhYm9ydENvbnRyb2xsZXI/LnNpZ25hbCxcbiAgICAgICAgZmV0Y2hJbml0Py5zaWduYWwsXG4gICAgICAgIGFjLnNpZ25hbFxuICAgIF0pO1xuICAgIGNvbnN0IGZldGNoZXIgPSB1c2VDYWxsYmFjaygoa2V5KT0+e1xuICAgICAgICBjb25zdCB1cmxfID0gZ2V0VXJsKGtleSwgdXJsKTtcbiAgICAgICAgcmV0dXJuIG9wZW5tcnNGZXRjaCh1cmxfLCB7XG4gICAgICAgICAgICAuLi5mZXRjaEluaXQsXG4gICAgICAgICAgICBzaWduYWw6IGFib3J0U2lnbmFsXG4gICAgICAgIH0pO1xuICAgIH0sIFtcbiAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgIGZldGNoSW5pdCxcbiAgICAgICAgdXJsXG4gICAgXSk7XG4gICAgcmV0dXJuIHVzZVNXUihrZXksIGZldGNoZXIsIHN3ckNvbmZpZyk7XG59XG4iXSwibmFtZXMiOlsidXNlQ2FsbGJhY2siLCJ1c2VNZW1vIiwidXNlU1dSIiwib3Blbm1yc0ZldGNoIiwidXNlQWJvcnRDb250cm9sbGVyIiwiZ2V0VXJsIiwia2V5IiwidXJsIiwiRXJyb3IiLCJ1c2VPcGVubXJzU1dSIiwib3B0aW9ucyIsImFib3J0Q29udHJvbGxlciIsImZldGNoSW5pdCIsInN3ckNvbmZpZyIsImFjIiwiYWJvcnRTaWduYWwiLCJmZXRjaGVyIiwidXJsXyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLDhCQUE4QixHQUFnRDtBQUNyRDtBQUN1QjtBQUNTO0FBQ3pELFNBQVNLLE9BQU9DLEdBQUcsRUFBRUMsR0FBRztJQUNwQixJQUFJQSxLQUFLO1FBQ0wsT0FBTyxPQUFPQSxRQUFRLGFBQWFBLElBQUlELE9BQU9DO0lBQ2xEO0lBQ0EsSUFBSSxPQUFPRCxRQUFRLFVBQVU7UUFDekIsT0FBT0E7SUFDWDtJQUNBLE1BQU0sSUFBSUUsTUFBTSxDQUFDLDJKQUEySixFQUFFRixJQUFJLENBQUMsQ0FBQztBQUN4TDtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNDQyxHQUFVLFNBQVNHLGNBQWNILEdBQUcsRUFBRUksVUFBVSxDQUFDLENBQUM7SUFDL0MsTUFBTSxFQUFFQyxlQUFlLEVBQUVDLFNBQVMsRUFBRUwsR0FBRyxFQUFFTSxTQUFTLEVBQUUsR0FBR0g7SUFDdkQsTUFBTUksS0FBS1Ysc0RBQWtCQTtJQUM3QixNQUFNVyxjQUFjZCxrQ0FBT0EsQ0FBQyxJQUFJVyxXQUFXLFVBQVVELGlCQUFpQixVQUFVRyxHQUFHLE1BQU0sRUFBRTtRQUN2RkgsaUJBQWlCO1FBQ2pCQyxXQUFXO1FBQ1hFLEdBQUcsTUFBTTtLQUNaO0lBQ0QsTUFBTUUsVUFBVWhCLHNDQUFXQSxDQUFDLENBQUNNO1FBQ3pCLE1BQU1XLE9BQU9aLE9BQU9DLEtBQUtDO1FBQ3pCLE9BQU9KLGtEQUFZQSxDQUFDYyxNQUFNO1lBQ3RCLEdBQUdMLFNBQVM7WUFDWixRQUFRRztRQUNaO0lBQ0osR0FBRztRQUNDQTtRQUNBSDtRQUNBTDtLQUNIO0lBQ0QsT0FBT0wsOEJBQU1BLENBQUNJLEtBQUtVLFNBQVNIO0FBQ2hDIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/useOpenmrsSWR.js\n\n}");
|
|
6129
6110
|
|
|
6130
6111
|
},
|
|
6131
6112
|
"../../framework/esm-react-utils/dist/usePagination.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
@@ -6140,12 +6121,12 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
6140
6121
|
},
|
|
6141
6122
|
"../../framework/esm-react-utils/dist/usePatient.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
6142
6123
|
"use strict";
|
|
6143
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n usePatient: () => (usePatient)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"
|
|
6124
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n usePatient: () => (usePatient)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/swr/swr\");\n/* import */ var swr__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(swr__rspack_import_1);\n/* import */ var _openmrs_esm_emr_api__rspack_import_2 = __webpack_require__(\"../../framework/esm-emr-api/dist/index.js\");\n/** @module @category API */ \n\n\nfunction getPatientUuidFromUrl() {\n const match = /\\/patient\\/([a-zA-Z0-9\\-]+)\\/?/.exec(location.pathname);\n return match && match[1];\n}\n/**\n * This React hook returns a patient object. If the `patientUuid` is provided\n * as a parameter, then the patient for that UUID is returned. If the parameter\n * is not provided, the patient UUID is obtained from the current route, and\n * a route listener is set up to update the patient whenever the route changes.\n *\n * @param patientUuid Optional UUID of the patient to fetch. If not provided,\n * the UUID is extracted from the current URL path.\n * @returns An object containing the patient data, loading state, current patient UUID, and any error.\n *\n */ function usePatient(patientUuid) {\n const [currentPatientUuid, setCurrentPatientUuid] = (0,react__rspack_import_0.useState)(patientUuid ?? getPatientUuidFromUrl());\n const { data: patient, error, isValidating } = swr__rspack_import_1_default()(currentPatientUuid ? [\n 'patient',\n currentPatientUuid\n ] : null, ()=>(0,_openmrs_esm_emr_api__rspack_import_2.fetchCurrentPatient)(currentPatientUuid, {}));\n (0,react__rspack_import_0.useEffect)(()=>{\n const handleRouteUpdate = ()=>{\n const newPatientUuid = getPatientUuidFromUrl();\n if (newPatientUuid !== currentPatientUuid) {\n setCurrentPatientUuid(newPatientUuid);\n }\n };\n window.addEventListener('single-spa:routing-event', handleRouteUpdate);\n return ()=>window.removeEventListener('single-spa:routing-event', handleRouteUpdate);\n }, [\n currentPatientUuid\n ]);\n return (0,react__rspack_import_0.useMemo)(()=>({\n isLoading: isValidating && !error && !patient,\n patient,\n patientUuid: currentPatientUuid,\n error\n }), [\n isValidating,\n error,\n patient,\n currentPatientUuid\n ]);\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L3VzZVBhdGllbnQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvZGlzdC91c2VQYXRpZW50LmpzPzRmY2EiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IEFQSSAqLyBpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdXNlU1dSIGZyb20gXCJzd3JcIjtcbmltcG9ydCB7IGZldGNoQ3VycmVudFBhdGllbnQgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWVtci1hcGlcIjtcbmZ1bmN0aW9uIGdldFBhdGllbnRVdWlkRnJvbVVybCgpIHtcbiAgICBjb25zdCBtYXRjaCA9IC9cXC9wYXRpZW50XFwvKFthLXpBLVowLTlcXC1dKylcXC8/Ly5leGVjKGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICByZXR1cm4gbWF0Y2ggJiYgbWF0Y2hbMV07XG59XG4vKipcbiAqIFRoaXMgUmVhY3QgaG9vayByZXR1cm5zIGEgcGF0aWVudCBvYmplY3QuIElmIHRoZSBgcGF0aWVudFV1aWRgIGlzIHByb3ZpZGVkXG4gKiBhcyBhIHBhcmFtZXRlciwgdGhlbiB0aGUgcGF0aWVudCBmb3IgdGhhdCBVVUlEIGlzIHJldHVybmVkLiBJZiB0aGUgcGFyYW1ldGVyXG4gKiBpcyBub3QgcHJvdmlkZWQsIHRoZSBwYXRpZW50IFVVSUQgaXMgb2J0YWluZWQgZnJvbSB0aGUgY3VycmVudCByb3V0ZSwgYW5kXG4gKiBhIHJvdXRlIGxpc3RlbmVyIGlzIHNldCB1cCB0byB1cGRhdGUgdGhlIHBhdGllbnQgd2hlbmV2ZXIgdGhlIHJvdXRlIGNoYW5nZXMuXG4gKlxuICogQHBhcmFtIHBhdGllbnRVdWlkIE9wdGlvbmFsIFVVSUQgb2YgdGhlIHBhdGllbnQgdG8gZmV0Y2guIElmIG5vdCBwcm92aWRlZCxcbiAqICAgdGhlIFVVSUQgaXMgZXh0cmFjdGVkIGZyb20gdGhlIGN1cnJlbnQgVVJMIHBhdGguXG4gKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgcGF0aWVudCBkYXRhLCBsb2FkaW5nIHN0YXRlLCBjdXJyZW50IHBhdGllbnQgVVVJRCwgYW5kIGFueSBlcnJvci5cbiAqXG4gKi8gZXhwb3J0IGZ1bmN0aW9uIHVzZVBhdGllbnQocGF0aWVudFV1aWQpIHtcbiAgICBjb25zdCBbY3VycmVudFBhdGllbnRVdWlkLCBzZXRDdXJyZW50UGF0aWVudFV1aWRdID0gdXNlU3RhdGUocGF0aWVudFV1aWQgPz8gZ2V0UGF0aWVudFV1aWRGcm9tVXJsKCkpO1xuICAgIGNvbnN0IHsgZGF0YTogcGF0aWVudCwgZXJyb3IsIGlzVmFsaWRhdGluZyB9ID0gdXNlU1dSKGN1cnJlbnRQYXRpZW50VXVpZCA/IFtcbiAgICAgICAgJ3BhdGllbnQnLFxuICAgICAgICBjdXJyZW50UGF0aWVudFV1aWRcbiAgICBdIDogbnVsbCwgKCk9PmZldGNoQ3VycmVudFBhdGllbnQoY3VycmVudFBhdGllbnRVdWlkLCB7fSkpO1xuICAgIHVzZUVmZmVjdCgoKT0+e1xuICAgICAgICBjb25zdCBoYW5kbGVSb3V0ZVVwZGF0ZSA9ICgpPT57XG4gICAgICAgICAgICBjb25zdCBuZXdQYXRpZW50VXVpZCA9IGdldFBhdGllbnRVdWlkRnJvbVVybCgpO1xuICAgICAgICAgICAgaWYgKG5ld1BhdGllbnRVdWlkICE9PSBjdXJyZW50UGF0aWVudFV1aWQpIHtcbiAgICAgICAgICAgICAgICBzZXRDdXJyZW50UGF0aWVudFV1aWQobmV3UGF0aWVudFV1aWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2luZ2xlLXNwYTpyb3V0aW5nLWV2ZW50JywgaGFuZGxlUm91dGVVcGRhdGUpO1xuICAgICAgICByZXR1cm4gKCk9PndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzaW5nbGUtc3BhOnJvdXRpbmctZXZlbnQnLCBoYW5kbGVSb3V0ZVVwZGF0ZSk7XG4gICAgfSwgW1xuICAgICAgICBjdXJyZW50UGF0aWVudFV1aWRcbiAgICBdKTtcbiAgICByZXR1cm4gdXNlTWVtbygoKT0+KHtcbiAgICAgICAgICAgIGlzTG9hZGluZzogaXNWYWxpZGF0aW5nICYmICFlcnJvciAmJiAhcGF0aWVudCxcbiAgICAgICAgICAgIHBhdGllbnQsXG4gICAgICAgICAgICBwYXRpZW50VXVpZDogY3VycmVudFBhdGllbnRVdWlkLFxuICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgfSksIFtcbiAgICAgICAgaXNWYWxpZGF0aW5nLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgcGF0aWVudCxcbiAgICAgICAgY3VycmVudFBhdGllbnRVdWlkXG4gICAgXSk7XG59XG4iXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlU1dSIiwiZmV0Y2hDdXJyZW50UGF0aWVudCIsImdldFBhdGllbnRVdWlkRnJvbVVybCIsIm1hdGNoIiwibG9jYXRpb24iLCJ1c2VQYXRpZW50IiwicGF0aWVudFV1aWQiLCJjdXJyZW50UGF0aWVudFV1aWQiLCJzZXRDdXJyZW50UGF0aWVudFV1aWQiLCJwYXRpZW50IiwiZXJyb3IiLCJpc1ZhbGlkYXRpbmciLCJoYW5kbGVSb3V0ZVVwZGF0ZSIsIm5ld1BhdGllbnRVdWlkIiwid2luZG93Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSwwQkFBMEIsR0FBd0Q7QUFDekQ7QUFDa0M7QUFDM0QsU0FBU0s7SUFDTCxNQUFNQyxRQUFRLGlDQUFpQyxJQUFJLENBQUNDLFNBQVMsUUFBUTtJQUNyRSxPQUFPRCxTQUFTQSxLQUFLLENBQUMsRUFBRTtBQUM1QjtBQUNBOzs7Ozs7Ozs7O0NBVUMsR0FBVSxTQUFTRSxXQUFXQyxXQUFXO0lBQ3RDLE1BQU0sQ0FBQ0Msb0JBQW9CQyxzQkFBc0IsR0FBR1QsbUNBQVFBLENBQUNPLGVBQWVKO0lBQzVFLE1BQU0sRUFBRSxNQUFNTyxPQUFPLEVBQUVDLEtBQUssRUFBRUMsWUFBWSxFQUFFLEdBQUdYLDhCQUFNQSxDQUFDTyxxQkFBcUI7UUFDdkU7UUFDQUE7S0FDSCxHQUFHLE1BQU0sSUFBSU4sNkRBQW1CQSxDQUFDTSxvQkFBb0IsQ0FBQztJQUN2RFYsb0NBQVNBLENBQUM7UUFDTixNQUFNZSxvQkFBb0I7WUFDdEIsTUFBTUMsaUJBQWlCWDtZQUN2QixJQUFJVyxtQkFBbUJOLG9CQUFvQjtnQkFDdkNDLHNCQUFzQks7WUFDMUI7UUFDSjtRQUNBQyxPQUFPLGdCQUFnQixDQUFDLDRCQUE0QkY7UUFDcEQsT0FBTyxJQUFJRSxPQUFPLG1CQUFtQixDQUFDLDRCQUE0QkY7SUFDdEUsR0FBRztRQUNDTDtLQUNIO0lBQ0QsT0FBT1Qsa0NBQU9BLENBQUMsSUFBSztZQUNaLFdBQVdhLGdCQUFnQixDQUFDRCxTQUFTLENBQUNEO1lBQ3RDQTtZQUNBLGFBQWFGO1lBQ2JHO1FBQ0osSUFBSTtRQUNKQztRQUNBRDtRQUNBRDtRQUNBRjtLQUNIO0FBQ0wifQ==\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/usePatient.js\n\n}");
|
|
6144
6125
|
|
|
6145
6126
|
},
|
|
6146
6127
|
"../../framework/esm-react-utils/dist/usePrimaryIdentifierResource.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
6147
6128
|
"use strict";
|
|
6148
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n usePrimaryIdentifierCode: () => (usePrimaryIdentifierCode)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"
|
|
6129
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n usePrimaryIdentifierCode: () => (usePrimaryIdentifierCode)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/swr/swr\");\n/* import */ var swr__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(swr__rspack_import_1);\n/* import */ var _openmrs_esm_api__rspack_import_2 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/** @module @category API */ \n\n\n/**\n * A React hook that retrieves the UUID of the primary patient identifier type\n * from the metadata mapping configuration. This identifier type is commonly used\n * to display the main identifier for a patient, such as their medical record number.\n *\n * @returns An object containing the primary identifier type UUID, loading state, and any error.\n *\n */ function usePrimaryIdentifierCode() {\n const url = `${_openmrs_esm_api__rspack_import_2.restBaseUrl}/metadatamapping/termmapping?v=custom:(metadataUuid)&code=emr.primaryIdentifierType`;\n const { data, error, isLoading } = swr__rspack_import_1_default()(url, _openmrs_esm_api__rspack_import_2.openmrsFetch);\n const results = (0,react__rspack_import_0.useMemo)(()=>({\n primaryIdentifierCode: data?.data?.results[0]?.metadataUuid,\n isLoading,\n error\n }), [\n data,\n error,\n isLoading\n ]);\n return results;\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L3VzZVByaW1hcnlJZGVudGlmaWVyUmVzb3VyY2UuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ab3Blbm1ycy9lc20tYXBwLXNoZWxsLy4uLy4uL2ZyYW1ld29yay9lc20tcmVhY3QtdXRpbHMvZGlzdC91c2VQcmltYXJ5SWRlbnRpZmllclJlc291cmNlLmpzP2I2YTIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBtb2R1bGUgQGNhdGVnb3J5IEFQSSAqLyBpbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdXNlU1dSIGZyb20gXCJzd3JcIjtcbmltcG9ydCB7IG9wZW5tcnNGZXRjaCwgcmVzdEJhc2VVcmwgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWFwaVwiO1xuLyoqXG4gKiBBIFJlYWN0IGhvb2sgdGhhdCByZXRyaWV2ZXMgdGhlIFVVSUQgb2YgdGhlIHByaW1hcnkgcGF0aWVudCBpZGVudGlmaWVyIHR5cGVcbiAqIGZyb20gdGhlIG1ldGFkYXRhIG1hcHBpbmcgY29uZmlndXJhdGlvbi4gVGhpcyBpZGVudGlmaWVyIHR5cGUgaXMgY29tbW9ubHkgdXNlZFxuICogdG8gZGlzcGxheSB0aGUgbWFpbiBpZGVudGlmaWVyIGZvciBhIHBhdGllbnQsIHN1Y2ggYXMgdGhlaXIgbWVkaWNhbCByZWNvcmQgbnVtYmVyLlxuICpcbiAqIEByZXR1cm5zIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBwcmltYXJ5IGlkZW50aWZpZXIgdHlwZSBVVUlELCBsb2FkaW5nIHN0YXRlLCBhbmQgYW55IGVycm9yLlxuICpcbiAqLyBleHBvcnQgZnVuY3Rpb24gdXNlUHJpbWFyeUlkZW50aWZpZXJDb2RlKCkge1xuICAgIGNvbnN0IHVybCA9IGAke3Jlc3RCYXNlVXJsfS9tZXRhZGF0YW1hcHBpbmcvdGVybW1hcHBpbmc/dj1jdXN0b206KG1ldGFkYXRhVXVpZCkmY29kZT1lbXIucHJpbWFyeUlkZW50aWZpZXJUeXBlYDtcbiAgICBjb25zdCB7IGRhdGEsIGVycm9yLCBpc0xvYWRpbmcgfSA9IHVzZVNXUih1cmwsIG9wZW5tcnNGZXRjaCk7XG4gICAgY29uc3QgcmVzdWx0cyA9IHVzZU1lbW8oKCk9Pih7XG4gICAgICAgICAgICBwcmltYXJ5SWRlbnRpZmllckNvZGU6IGRhdGE/LmRhdGE/LnJlc3VsdHNbMF0/Lm1ldGFkYXRhVXVpZCxcbiAgICAgICAgICAgIGlzTG9hZGluZyxcbiAgICAgICAgICAgIGVycm9yXG4gICAgICAgIH0pLCBbXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBpc0xvYWRpbmdcbiAgICBdKTtcbiAgICByZXR1cm4gcmVzdWx0cztcbn1cbiJdLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlU1dSIiwib3Blbm1yc0ZldGNoIiwicmVzdEJhc2VVcmwiLCJ1c2VQcmltYXJ5SWRlbnRpZmllckNvZGUiLCJ1cmwiLCJkYXRhIiwiZXJyb3IiLCJpc0xvYWRpbmciLCJyZXN1bHRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSwwQkFBMEIsR0FBbUM7QUFDcEM7QUFDb0M7QUFDN0Q7Ozs7Ozs7Q0FPQyxHQUFVLFNBQVNJO0lBQ2hCLE1BQU1DLE1BQU0sR0FBR0YsNkNBQVdBLENBQUMsbUZBQW1GLENBQUM7SUFDL0csTUFBTSxFQUFFRyxJQUFJLEVBQUVDLEtBQUssRUFBRUMsU0FBUyxFQUFFLEdBQUdQLDhCQUFNQSxDQUFDSSxLQUFLSCw4Q0FBWUE7SUFDM0QsTUFBTU8sVUFBVVQsa0NBQU9BLENBQUMsSUFBSztZQUNyQix1QkFBdUJNLE1BQU0sTUFBTSxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQy9DRTtZQUNBRDtRQUNKLElBQUk7UUFDSkQ7UUFDQUM7UUFDQUM7S0FDSDtJQUNELE9BQU9DO0FBQ1gifQ==\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/usePrimaryIdentifierResource.js\n\n}");
|
|
6149
6130
|
|
|
6150
6131
|
},
|
|
6151
6132
|
"../../framework/esm-react-utils/dist/useRenderableExtensions.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
@@ -6170,7 +6151,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webp
|
|
|
6170
6151
|
},
|
|
6171
6152
|
"../../framework/esm-react-utils/dist/useVisit.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
6172
6153
|
"use strict";
|
|
6173
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useVisit: () => (useVisit)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"../../../node_modules/swr/dist/core/index.mjs\");\n/* import */ var dayjs__rspack_import_2 = __webpack_require__(\"webpack/sharing/consume/default/dayjs/dayjs\");\n/* import */ var dayjs__rspack_import_2_default = /*#__PURE__*/__webpack_require__.n(dayjs__rspack_import_2);\n/* import */ var dayjs_plugin_isToday_js__rspack_import_3 = __webpack_require__(\"../../../node_modules/dayjs/plugin/isToday.js\");\n/* import */ var _openmrs_esm_api__rspack_import_4 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var _openmrs_esm_emr_api__rspack_import_5 = __webpack_require__(\"../../framework/esm-emr-api/dist/index.js\");\n/* import */ var _useVisitContextStore_js__rspack_import_6 = __webpack_require__(\"../../framework/esm-react-utils/dist/useVisitContextStore.js\");\n/** @module @category API */ \n\n\n\n\n\n\ndayjs__rspack_import_2_default().extend(dayjs_plugin_isToday_js__rspack_import_3);\n/**\n * This React hook returns visit information if the patient UUID is not null. There are\n * potentially two relevant visits at a time: \"active\" and \"current\".\n *\n * The active visit is the most recent visit without an end date. The presence of an active\n * visit generally means that the patient is in the facility.\n *\n * The current visit is the active visit, unless a retrospective visit has been selected.\n * If there is no active visit and no selected retrospective visit, then there is no\n * current visit. If there is no active visit but there is a retrospective visit, then\n * the retrospective visit is the current visit. `currentVisitIsRetrospective` tells you\n * whether the current visit is a retrospective visit.\n *\n * The active visit and current visit require two separate API calls. `error` contains\n * the error from either one, if there is an error. `isValidating` is true if either\n * API call is in progress. `mutate` refreshes the data from both API calls.\n *\n * @param patientUuid Unique patient identifier `string`\n * @param representation The custom representation of the visit\n */ function useVisit(patientUuid, representation = _openmrs_esm_emr_api__rspack_import_5.defaultVisitCustomRepresentation) {\n // The callback we register has to exist before we read the store, but the mutate functions\n // it calls come from SWR calls that are keyed off what the store holds. Registering a stable\n // indirection through a ref breaks that cycle, so the store is read once per hook rather than\n // once to get the key and again to register.\n const mutateVisitRef = (0,react__rspack_import_0.useRef)(undefined);\n const registeredMutateVisit = (0,react__rspack_import_0.useCallback)(()=>mutateVisitRef.current?.(), []);\n const { patientUuid: visitStorePatientUuid, manuallySetVisitUuid, setVisitContext } = (0,_useVisitContextStore_js__rspack_import_6.useVisitContextStore)(registeredMutateVisit);\n // Ignore the visit store data if it is not for this patient\n const retrospectiveVisitUuid = patientUuid && visitStorePatientUuid == patientUuid ? manuallySetVisitUuid : null;\n const activeVisitUrlSuffix = `?patient=${patientUuid}&v=${representation}&includeInactive=false`;\n const retrospectiveVisitUrlSuffix = `/${retrospectiveVisitUuid}?v=${representation}`;\n const { data: activeData, error: activeError, mutate: activeMutate, isValidating: activeIsValidating } = (0,swr__rspack_import_1[\"default\"])(patientUuid ? `${_openmrs_esm_api__rspack_import_4.restBaseUrl}/visit${activeVisitUrlSuffix}` : null, _openmrs_esm_api__rspack_import_4.openmrsFetch);\n const { data: retroData, error: retroError, mutate: retroMutate, isValidating: retroIsValidating } = (0,swr__rspack_import_1[\"default\"])(patientUuid && retrospectiveVisitUuid ? `${_openmrs_esm_api__rspack_import_4.restBaseUrl}/visit${retrospectiveVisitUrlSuffix}` : null, _openmrs_esm_api__rspack_import_4.openmrsFetch);\n const activeVisit = (0,react__rspack_import_0.useMemo)(()=>activeData?.data.results.find((visit)=>visit.stopDatetime === null) ?? null, [\n activeData\n ]);\n const currentVisit = (0,react__rspack_import_0.useMemo)(()=>retrospectiveVisitUuid && retroData ? retroData.data : null, [\n retroData,\n retrospectiveVisitUuid\n ]);\n const previousCurrentVisit = (0,react__rspack_import_0.useRef)(null);\n (0,react__rspack_import_0.useEffect)(()=>{\n // if an active visit is created for the visit store patient and they have no visit in context, set the context to the active visit\n if (!activeIsValidating && activeVisit && visitStorePatientUuid === patientUuid && manuallySetVisitUuid === null) {\n setVisitContext(activeVisit);\n }\n if (!retroIsValidating) {\n // if the current visit happened to be active but it just got ended (inactive), remove the\n // visit from context\n if (previousCurrentVisit.current && currentVisit && previousCurrentVisit.current.uuid === currentVisit.uuid && !previousCurrentVisit.current.stopDatetime && currentVisit.stopDatetime) {\n setVisitContext(null);\n }\n previousCurrentVisit.current = currentVisit;\n }\n }, [\n currentVisit,\n manuallySetVisitUuid,\n activeVisit,\n activeIsValidating,\n retroIsValidating,\n visitStorePatientUuid\n ]);\n const mutateVisit = (0,react__rspack_import_0.useCallback)(()=>{\n activeMutate();\n retroMutate();\n }, [\n activeMutate,\n retroMutate\n ]);\n (0,react__rspack_import_0.useEffect)(()=>{\n mutateVisitRef.current = mutateVisit;\n }, [\n mutateVisit\n ]);\n const waitingForData = Boolean(!activeData || retrospectiveVisitUuid && !retroData);\n const hasRelevantError = Boolean(retrospectiveVisitUuid ? retroError : activeError);\n const isLoading = waitingForData && !hasRelevantError;\n return {\n error: activeError || retroError,\n mutate: mutateVisit,\n isValidating: activeIsValidating || retroIsValidating,\n activeVisit,\n currentVisit,\n currentVisitIsRetrospective: Boolean(retrospectiveVisitUuid),\n isLoading\n };\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L3VzZVZpc2l0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLXJlYWN0LXV0aWxzL2Rpc3QvdXNlVmlzaXQuanM/YmViMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgQVBJICovIGltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHVzZVNXUiBmcm9tIFwic3dyXCI7XG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XG5pbXBvcnQgaXNUb2RheSBmcm9tIFwiZGF5anMvcGx1Z2luL2lzVG9kYXkuanNcIjtcbmltcG9ydCB7IG9wZW5tcnNGZXRjaCwgcmVzdEJhc2VVcmwgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWFwaVwiO1xuaW1wb3J0IHsgZGVmYXVsdFZpc2l0Q3VzdG9tUmVwcmVzZW50YXRpb24gfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWVtci1hcGlcIjtcbmltcG9ydCB7IHVzZVZpc2l0Q29udGV4dFN0b3JlIH0gZnJvbSBcIi4vdXNlVmlzaXRDb250ZXh0U3RvcmUuanNcIjtcbmRheWpzLmV4dGVuZChpc1RvZGF5KTtcbi8qKlxuICogVGhpcyBSZWFjdCBob29rIHJldHVybnMgdmlzaXQgaW5mb3JtYXRpb24gaWYgdGhlIHBhdGllbnQgVVVJRCBpcyBub3QgbnVsbC4gVGhlcmUgYXJlXG4gKiBwb3RlbnRpYWxseSB0d28gcmVsZXZhbnQgdmlzaXRzIGF0IGEgdGltZTogXCJhY3RpdmVcIiBhbmQgXCJjdXJyZW50XCIuXG4gKlxuICogVGhlIGFjdGl2ZSB2aXNpdCBpcyB0aGUgbW9zdCByZWNlbnQgdmlzaXQgd2l0aG91dCBhbiBlbmQgZGF0ZS4gVGhlIHByZXNlbmNlIG9mIGFuIGFjdGl2ZVxuICogdmlzaXQgZ2VuZXJhbGx5IG1lYW5zIHRoYXQgdGhlIHBhdGllbnQgaXMgaW4gdGhlIGZhY2lsaXR5LlxuICpcbiAqIFRoZSBjdXJyZW50IHZpc2l0IGlzIHRoZSBhY3RpdmUgdmlzaXQsIHVubGVzcyBhIHJldHJvc3BlY3RpdmUgdmlzaXQgaGFzIGJlZW4gc2VsZWN0ZWQuXG4gKiBJZiB0aGVyZSBpcyBubyBhY3RpdmUgdmlzaXQgYW5kIG5vIHNlbGVjdGVkIHJldHJvc3BlY3RpdmUgdmlzaXQsIHRoZW4gdGhlcmUgaXMgbm9cbiAqIGN1cnJlbnQgdmlzaXQuIElmIHRoZXJlIGlzIG5vIGFjdGl2ZSB2aXNpdCBidXQgdGhlcmUgaXMgYSByZXRyb3NwZWN0aXZlIHZpc2l0LCB0aGVuXG4gKiB0aGUgcmV0cm9zcGVjdGl2ZSB2aXNpdCBpcyB0aGUgY3VycmVudCB2aXNpdC4gYGN1cnJlbnRWaXNpdElzUmV0cm9zcGVjdGl2ZWAgdGVsbHMgeW91XG4gKiB3aGV0aGVyIHRoZSBjdXJyZW50IHZpc2l0IGlzIGEgcmV0cm9zcGVjdGl2ZSB2aXNpdC5cbiAqXG4gKiBUaGUgYWN0aXZlIHZpc2l0IGFuZCBjdXJyZW50IHZpc2l0IHJlcXVpcmUgdHdvIHNlcGFyYXRlIEFQSSBjYWxscy4gYGVycm9yYCBjb250YWluc1xuICogdGhlIGVycm9yIGZyb20gZWl0aGVyIG9uZSwgaWYgdGhlcmUgaXMgYW4gZXJyb3IuIGBpc1ZhbGlkYXRpbmdgIGlzIHRydWUgaWYgZWl0aGVyXG4gKiBBUEkgY2FsbCBpcyBpbiBwcm9ncmVzcy4gYG11dGF0ZWAgcmVmcmVzaGVzIHRoZSBkYXRhIGZyb20gYm90aCBBUEkgY2FsbHMuXG4gKlxuICogQHBhcmFtIHBhdGllbnRVdWlkIFVuaXF1ZSBwYXRpZW50IGlkZW50aWZpZXIgYHN0cmluZ2BcbiAqIEBwYXJhbSByZXByZXNlbnRhdGlvbiBUaGUgY3VzdG9tIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2aXNpdFxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VWaXNpdChwYXRpZW50VXVpZCwgcmVwcmVzZW50YXRpb24gPSBkZWZhdWx0VmlzaXRDdXN0b21SZXByZXNlbnRhdGlvbikge1xuICAgIC8vIFRoZSBjYWxsYmFjayB3ZSByZWdpc3RlciBoYXMgdG8gZXhpc3QgYmVmb3JlIHdlIHJlYWQgdGhlIHN0b3JlLCBidXQgdGhlIG11dGF0ZSBmdW5jdGlvbnNcbiAgICAvLyBpdCBjYWxscyBjb21lIGZyb20gU1dSIGNhbGxzIHRoYXQgYXJlIGtleWVkIG9mZiB3aGF0IHRoZSBzdG9yZSBob2xkcy4gUmVnaXN0ZXJpbmcgYSBzdGFibGVcbiAgICAvLyBpbmRpcmVjdGlvbiB0aHJvdWdoIGEgcmVmIGJyZWFrcyB0aGF0IGN5Y2xlLCBzbyB0aGUgc3RvcmUgaXMgcmVhZCBvbmNlIHBlciBob29rIHJhdGhlciB0aGFuXG4gICAgLy8gb25jZSB0byBnZXQgdGhlIGtleSBhbmQgYWdhaW4gdG8gcmVnaXN0ZXIuXG4gICAgY29uc3QgbXV0YXRlVmlzaXRSZWYgPSB1c2VSZWYodW5kZWZpbmVkKTtcbiAgICBjb25zdCByZWdpc3RlcmVkTXV0YXRlVmlzaXQgPSB1c2VDYWxsYmFjaygoKT0+bXV0YXRlVmlzaXRSZWYuY3VycmVudD8uKCksIFtdKTtcbiAgICBjb25zdCB7IHBhdGllbnRVdWlkOiB2aXNpdFN0b3JlUGF0aWVudFV1aWQsIG1hbnVhbGx5U2V0VmlzaXRVdWlkLCBzZXRWaXNpdENvbnRleHQgfSA9IHVzZVZpc2l0Q29udGV4dFN0b3JlKHJlZ2lzdGVyZWRNdXRhdGVWaXNpdCk7XG4gICAgLy8gSWdub3JlIHRoZSB2aXNpdCBzdG9yZSBkYXRhIGlmIGl0IGlzIG5vdCBmb3IgdGhpcyBwYXRpZW50XG4gICAgY29uc3QgcmV0cm9zcGVjdGl2ZVZpc2l0VXVpZCA9IHBhdGllbnRVdWlkICYmIHZpc2l0U3RvcmVQYXRpZW50VXVpZCA9PSBwYXRpZW50VXVpZCA/IG1hbnVhbGx5U2V0VmlzaXRVdWlkIDogbnVsbDtcbiAgICBjb25zdCBhY3RpdmVWaXNpdFVybFN1ZmZpeCA9IGA/cGF0aWVudD0ke3BhdGllbnRVdWlkfSZ2PSR7cmVwcmVzZW50YXRpb259JmluY2x1ZGVJbmFjdGl2ZT1mYWxzZWA7XG4gICAgY29uc3QgcmV0cm9zcGVjdGl2ZVZpc2l0VXJsU3VmZml4ID0gYC8ke3JldHJvc3BlY3RpdmVWaXNpdFV1aWR9P3Y9JHtyZXByZXNlbnRhdGlvbn1gO1xuICAgIGNvbnN0IHsgZGF0YTogYWN0aXZlRGF0YSwgZXJyb3I6IGFjdGl2ZUVycm9yLCBtdXRhdGU6IGFjdGl2ZU11dGF0ZSwgaXNWYWxpZGF0aW5nOiBhY3RpdmVJc1ZhbGlkYXRpbmcgfSA9IHVzZVNXUihwYXRpZW50VXVpZCA/IGAke3Jlc3RCYXNlVXJsfS92aXNpdCR7YWN0aXZlVmlzaXRVcmxTdWZmaXh9YCA6IG51bGwsIG9wZW5tcnNGZXRjaCk7XG4gICAgY29uc3QgeyBkYXRhOiByZXRyb0RhdGEsIGVycm9yOiByZXRyb0Vycm9yLCBtdXRhdGU6IHJldHJvTXV0YXRlLCBpc1ZhbGlkYXRpbmc6IHJldHJvSXNWYWxpZGF0aW5nIH0gPSB1c2VTV1IocGF0aWVudFV1aWQgJiYgcmV0cm9zcGVjdGl2ZVZpc2l0VXVpZCA/IGAke3Jlc3RCYXNlVXJsfS92aXNpdCR7cmV0cm9zcGVjdGl2ZVZpc2l0VXJsU3VmZml4fWAgOiBudWxsLCBvcGVubXJzRmV0Y2gpO1xuICAgIGNvbnN0IGFjdGl2ZVZpc2l0ID0gdXNlTWVtbygoKT0+YWN0aXZlRGF0YT8uZGF0YS5yZXN1bHRzLmZpbmQoKHZpc2l0KT0+dmlzaXQuc3RvcERhdGV0aW1lID09PSBudWxsKSA/PyBudWxsLCBbXG4gICAgICAgIGFjdGl2ZURhdGFcbiAgICBdKTtcbiAgICBjb25zdCBjdXJyZW50VmlzaXQgPSB1c2VNZW1vKCgpPT5yZXRyb3NwZWN0aXZlVmlzaXRVdWlkICYmIHJldHJvRGF0YSA/IHJldHJvRGF0YS5kYXRhIDogbnVsbCwgW1xuICAgICAgICByZXRyb0RhdGEsXG4gICAgICAgIHJldHJvc3BlY3RpdmVWaXNpdFV1aWRcbiAgICBdKTtcbiAgICBjb25zdCBwcmV2aW91c0N1cnJlbnRWaXNpdCA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgLy8gaWYgYW4gYWN0aXZlIHZpc2l0IGlzIGNyZWF0ZWQgZm9yIHRoZSB2aXNpdCBzdG9yZSBwYXRpZW50IGFuZCB0aGV5IGhhdmUgbm8gdmlzaXQgaW4gY29udGV4dCwgc2V0IHRoZSBjb250ZXh0IHRvIHRoZSBhY3RpdmUgdmlzaXRcbiAgICAgICAgaWYgKCFhY3RpdmVJc1ZhbGlkYXRpbmcgJiYgYWN0aXZlVmlzaXQgJiYgdmlzaXRTdG9yZVBhdGllbnRVdWlkID09PSBwYXRpZW50VXVpZCAmJiBtYW51YWxseVNldFZpc2l0VXVpZCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0VmlzaXRDb250ZXh0KGFjdGl2ZVZpc2l0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXJldHJvSXNWYWxpZGF0aW5nKSB7XG4gICAgICAgICAgICAvLyBpZiB0aGUgY3VycmVudCB2aXNpdCBoYXBwZW5lZCB0byBiZSBhY3RpdmUgYnV0IGl0IGp1c3QgZ290IGVuZGVkIChpbmFjdGl2ZSksIHJlbW92ZSB0aGVcbiAgICAgICAgICAgIC8vIHZpc2l0IGZyb20gY29udGV4dFxuICAgICAgICAgICAgaWYgKHByZXZpb3VzQ3VycmVudFZpc2l0LmN1cnJlbnQgJiYgY3VycmVudFZpc2l0ICYmIHByZXZpb3VzQ3VycmVudFZpc2l0LmN1cnJlbnQudXVpZCA9PT0gY3VycmVudFZpc2l0LnV1aWQgJiYgIXByZXZpb3VzQ3VycmVudFZpc2l0LmN1cnJlbnQuc3RvcERhdGV0aW1lICYmIGN1cnJlbnRWaXNpdC5zdG9wRGF0ZXRpbWUpIHtcbiAgICAgICAgICAgICAgICBzZXRWaXNpdENvbnRleHQobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmV2aW91c0N1cnJlbnRWaXNpdC5jdXJyZW50ID0gY3VycmVudFZpc2l0O1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBjdXJyZW50VmlzaXQsXG4gICAgICAgIG1hbnVhbGx5U2V0VmlzaXRVdWlkLFxuICAgICAgICBhY3RpdmVWaXNpdCxcbiAgICAgICAgYWN0aXZlSXNWYWxpZGF0aW5nLFxuICAgICAgICByZXRyb0lzVmFsaWRhdGluZyxcbiAgICAgICAgdmlzaXRTdG9yZVBhdGllbnRVdWlkXG4gICAgXSk7XG4gICAgY29uc3QgbXV0YXRlVmlzaXQgPSB1c2VDYWxsYmFjaygoKT0+e1xuICAgICAgICBhY3RpdmVNdXRhdGUoKTtcbiAgICAgICAgcmV0cm9NdXRhdGUoKTtcbiAgICB9LCBbXG4gICAgICAgIGFjdGl2ZU11dGF0ZSxcbiAgICAgICAgcmV0cm9NdXRhdGVcbiAgICBdKTtcbiAgICB1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgbXV0YXRlVmlzaXRSZWYuY3VycmVudCA9IG11dGF0ZVZpc2l0O1xuICAgIH0sIFtcbiAgICAgICAgbXV0YXRlVmlzaXRcbiAgICBdKTtcbiAgICBjb25zdCB3YWl0aW5nRm9yRGF0YSA9IEJvb2xlYW4oIWFjdGl2ZURhdGEgfHwgcmV0cm9zcGVjdGl2ZVZpc2l0VXVpZCAmJiAhcmV0cm9EYXRhKTtcbiAgICBjb25zdCBoYXNSZWxldmFudEVycm9yID0gQm9vbGVhbihyZXRyb3NwZWN0aXZlVmlzaXRVdWlkID8gcmV0cm9FcnJvciA6IGFjdGl2ZUVycm9yKTtcbiAgICBjb25zdCBpc0xvYWRpbmcgPSB3YWl0aW5nRm9yRGF0YSAmJiAhaGFzUmVsZXZhbnRFcnJvcjtcbiAgICByZXR1cm4ge1xuICAgICAgICBlcnJvcjogYWN0aXZlRXJyb3IgfHwgcmV0cm9FcnJvcixcbiAgICAgICAgbXV0YXRlOiBtdXRhdGVWaXNpdCxcbiAgICAgICAgaXNWYWxpZGF0aW5nOiBhY3RpdmVJc1ZhbGlkYXRpbmcgfHwgcmV0cm9Jc1ZhbGlkYXRpbmcsXG4gICAgICAgIGFjdGl2ZVZpc2l0LFxuICAgICAgICBjdXJyZW50VmlzaXQsXG4gICAgICAgIGN1cnJlbnRWaXNpdElzUmV0cm9zcGVjdGl2ZTogQm9vbGVhbihyZXRyb3NwZWN0aXZlVmlzaXRVdWlkKSxcbiAgICAgICAgaXNMb2FkaW5nXG4gICAgfTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTV1IiLCJkYXlqcyIsImlzVG9kYXkiLCJvcGVubXJzRmV0Y2giLCJyZXN0QmFzZVVybCIsImRlZmF1bHRWaXNpdEN1c3RvbVJlcHJlc2VudGF0aW9uIiwidXNlVmlzaXRDb250ZXh0U3RvcmUiLCJ1c2VWaXNpdCIsInBhdGllbnRVdWlkIiwicmVwcmVzZW50YXRpb24iLCJtdXRhdGVWaXNpdFJlZiIsInVuZGVmaW5lZCIsInJlZ2lzdGVyZWRNdXRhdGVWaXNpdCIsInZpc2l0U3RvcmVQYXRpZW50VXVpZCIsIm1hbnVhbGx5U2V0VmlzaXRVdWlkIiwic2V0VmlzaXRDb250ZXh0IiwicmV0cm9zcGVjdGl2ZVZpc2l0VXVpZCIsImFjdGl2ZVZpc2l0VXJsU3VmZml4IiwicmV0cm9zcGVjdGl2ZVZpc2l0VXJsU3VmZml4IiwiYWN0aXZlRGF0YSIsImFjdGl2ZUVycm9yIiwiYWN0aXZlTXV0YXRlIiwiYWN0aXZlSXNWYWxpZGF0aW5nIiwicmV0cm9EYXRhIiwicmV0cm9FcnJvciIsInJldHJvTXV0YXRlIiwicmV0cm9Jc1ZhbGlkYXRpbmciLCJhY3RpdmVWaXNpdCIsInZpc2l0IiwiY3VycmVudFZpc2l0IiwicHJldmlvdXNDdXJyZW50VmlzaXQiLCJtdXRhdGVWaXNpdCIsIndhaXRpbmdGb3JEYXRhIiwiQm9vbGVhbiIsImhhc1JlbGV2YW50RXJyb3IiLCJpc0xvYWRpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQkFBMEIsR0FBbUU7QUFDcEU7QUFDQztBQUNvQjtBQUNlO0FB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\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/useVisit.js\n\n}");
|
|
6154
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n__webpack_require__.d(__webpack_exports__, {\n useVisit: () => (useVisit)\n});\n/* import */ var react__rspack_import_0 = __webpack_require__(\"webpack/sharing/consume/default/react/react\");\n/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);\n/* import */ var swr__rspack_import_1 = __webpack_require__(\"webpack/sharing/consume/default/swr/swr\");\n/* import */ var swr__rspack_import_1_default = /*#__PURE__*/__webpack_require__.n(swr__rspack_import_1);\n/* import */ var dayjs__rspack_import_2 = __webpack_require__(\"webpack/sharing/consume/default/dayjs/dayjs\");\n/* import */ var dayjs__rspack_import_2_default = /*#__PURE__*/__webpack_require__.n(dayjs__rspack_import_2);\n/* import */ var dayjs_plugin_isToday_js__rspack_import_3 = __webpack_require__(\"../../../node_modules/dayjs/plugin/isToday.js\");\n/* import */ var _openmrs_esm_api__rspack_import_4 = __webpack_require__(\"../../framework/esm-api/dist/index.js\");\n/* import */ var _openmrs_esm_emr_api__rspack_import_5 = __webpack_require__(\"../../framework/esm-emr-api/dist/index.js\");\n/* import */ var _useVisitContextStore_js__rspack_import_6 = __webpack_require__(\"../../framework/esm-react-utils/dist/useVisitContextStore.js\");\n/** @module @category API */ \n\n\n\n\n\n\ndayjs__rspack_import_2_default().extend(dayjs_plugin_isToday_js__rspack_import_3);\n/**\n * This React hook returns visit information if the patient UUID is not null. There are\n * potentially two relevant visits at a time: \"active\" and \"current\".\n *\n * The active visit is the most recent visit without an end date. The presence of an active\n * visit generally means that the patient is in the facility.\n *\n * The current visit is the active visit, unless a retrospective visit has been selected.\n * If there is no active visit and no selected retrospective visit, then there is no\n * current visit. If there is no active visit but there is a retrospective visit, then\n * the retrospective visit is the current visit. `currentVisitIsRetrospective` tells you\n * whether the current visit is a retrospective visit.\n *\n * The active visit and current visit require two separate API calls. `error` contains\n * the error from either one, if there is an error. `isValidating` is true if either\n * API call is in progress. `mutate` refreshes the data from both API calls.\n *\n * @param patientUuid Unique patient identifier `string`\n * @param representation The custom representation of the visit\n */ function useVisit(patientUuid, representation = _openmrs_esm_emr_api__rspack_import_5.defaultVisitCustomRepresentation) {\n // The callback we register has to exist before we read the store, but the mutate functions\n // it calls come from SWR calls that are keyed off what the store holds. Registering a stable\n // indirection through a ref breaks that cycle, so the store is read once per hook rather than\n // once to get the key and again to register.\n const mutateVisitRef = (0,react__rspack_import_0.useRef)(undefined);\n const registeredMutateVisit = (0,react__rspack_import_0.useCallback)(()=>mutateVisitRef.current?.(), []);\n const { patientUuid: visitStorePatientUuid, manuallySetVisitUuid, setVisitContext } = (0,_useVisitContextStore_js__rspack_import_6.useVisitContextStore)(registeredMutateVisit);\n // Ignore the visit store data if it is not for this patient\n const retrospectiveVisitUuid = patientUuid && visitStorePatientUuid == patientUuid ? manuallySetVisitUuid : null;\n const activeVisitUrlSuffix = `?patient=${patientUuid}&v=${representation}&includeInactive=false`;\n const retrospectiveVisitUrlSuffix = `/${retrospectiveVisitUuid}?v=${representation}`;\n const { data: activeData, error: activeError, mutate: activeMutate, isValidating: activeIsValidating } = swr__rspack_import_1_default()(patientUuid ? `${_openmrs_esm_api__rspack_import_4.restBaseUrl}/visit${activeVisitUrlSuffix}` : null, _openmrs_esm_api__rspack_import_4.openmrsFetch);\n const { data: retroData, error: retroError, mutate: retroMutate, isValidating: retroIsValidating } = swr__rspack_import_1_default()(patientUuid && retrospectiveVisitUuid ? `${_openmrs_esm_api__rspack_import_4.restBaseUrl}/visit${retrospectiveVisitUrlSuffix}` : null, _openmrs_esm_api__rspack_import_4.openmrsFetch);\n const activeVisit = (0,react__rspack_import_0.useMemo)(()=>activeData?.data.results.find((visit)=>visit.stopDatetime === null) ?? null, [\n activeData\n ]);\n const currentVisit = (0,react__rspack_import_0.useMemo)(()=>retrospectiveVisitUuid && retroData ? retroData.data : null, [\n retroData,\n retrospectiveVisitUuid\n ]);\n const previousCurrentVisit = (0,react__rspack_import_0.useRef)(null);\n (0,react__rspack_import_0.useEffect)(()=>{\n // if an active visit is created for the visit store patient and they have no visit in context, set the context to the active visit\n if (!activeIsValidating && activeVisit && visitStorePatientUuid === patientUuid && manuallySetVisitUuid === null) {\n setVisitContext(activeVisit);\n }\n if (!retroIsValidating) {\n // if the current visit happened to be active but it just got ended (inactive), remove the\n // visit from context\n if (previousCurrentVisit.current && currentVisit && previousCurrentVisit.current.uuid === currentVisit.uuid && !previousCurrentVisit.current.stopDatetime && currentVisit.stopDatetime) {\n setVisitContext(null);\n }\n previousCurrentVisit.current = currentVisit;\n }\n }, [\n currentVisit,\n manuallySetVisitUuid,\n activeVisit,\n activeIsValidating,\n retroIsValidating,\n visitStorePatientUuid\n ]);\n const mutateVisit = (0,react__rspack_import_0.useCallback)(()=>{\n activeMutate();\n retroMutate();\n }, [\n activeMutate,\n retroMutate\n ]);\n (0,react__rspack_import_0.useEffect)(()=>{\n mutateVisitRef.current = mutateVisit;\n }, [\n mutateVisit\n ]);\n const waitingForData = Boolean(!activeData || retrospectiveVisitUuid && !retroData);\n const hasRelevantError = Boolean(retrospectiveVisitUuid ? retroError : activeError);\n const isLoading = waitingForData && !hasRelevantError;\n return {\n error: activeError || retroError,\n mutate: mutateVisit,\n isValidating: activeIsValidating || retroIsValidating,\n activeVisit,\n currentVisit,\n currentVisitIsRetrospective: Boolean(retrospectiveVisitUuid),\n isLoading\n };\n}\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC9lc218YnVpbHRpbjpzd2MtbG9hZGVyPz9ydWxlU2V0WzFdLnJ1bGVzWzVdLnVzZVswXSEvaG9tZS9ydW5uZXIvd29yay9vcGVubXJzLWVzbS1jb3JlL29wZW5tcnMtZXNtLWNvcmUvcGFja2FnZXMvZnJhbWV3b3JrL2VzbS1yZWFjdC11dGlscy9kaXN0L3VzZVZpc2l0LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLXJlYWN0LXV0aWxzL2Rpc3QvdXNlVmlzaXQuanM/YmViMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAY2F0ZWdvcnkgQVBJICovIGltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHVzZVNXUiBmcm9tIFwic3dyXCI7XG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XG5pbXBvcnQgaXNUb2RheSBmcm9tIFwiZGF5anMvcGx1Z2luL2lzVG9kYXkuanNcIjtcbmltcG9ydCB7IG9wZW5tcnNGZXRjaCwgcmVzdEJhc2VVcmwgfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWFwaVwiO1xuaW1wb3J0IHsgZGVmYXVsdFZpc2l0Q3VzdG9tUmVwcmVzZW50YXRpb24gfSBmcm9tIFwiQG9wZW5tcnMvZXNtLWVtci1hcGlcIjtcbmltcG9ydCB7IHVzZVZpc2l0Q29udGV4dFN0b3JlIH0gZnJvbSBcIi4vdXNlVmlzaXRDb250ZXh0U3RvcmUuanNcIjtcbmRheWpzLmV4dGVuZChpc1RvZGF5KTtcbi8qKlxuICogVGhpcyBSZWFjdCBob29rIHJldHVybnMgdmlzaXQgaW5mb3JtYXRpb24gaWYgdGhlIHBhdGllbnQgVVVJRCBpcyBub3QgbnVsbC4gVGhlcmUgYXJlXG4gKiBwb3RlbnRpYWxseSB0d28gcmVsZXZhbnQgdmlzaXRzIGF0IGEgdGltZTogXCJhY3RpdmVcIiBhbmQgXCJjdXJyZW50XCIuXG4gKlxuICogVGhlIGFjdGl2ZSB2aXNpdCBpcyB0aGUgbW9zdCByZWNlbnQgdmlzaXQgd2l0aG91dCBhbiBlbmQgZGF0ZS4gVGhlIHByZXNlbmNlIG9mIGFuIGFjdGl2ZVxuICogdmlzaXQgZ2VuZXJhbGx5IG1lYW5zIHRoYXQgdGhlIHBhdGllbnQgaXMgaW4gdGhlIGZhY2lsaXR5LlxuICpcbiAqIFRoZSBjdXJyZW50IHZpc2l0IGlzIHRoZSBhY3RpdmUgdmlzaXQsIHVubGVzcyBhIHJldHJvc3BlY3RpdmUgdmlzaXQgaGFzIGJlZW4gc2VsZWN0ZWQuXG4gKiBJZiB0aGVyZSBpcyBubyBhY3RpdmUgdmlzaXQgYW5kIG5vIHNlbGVjdGVkIHJldHJvc3BlY3RpdmUgdmlzaXQsIHRoZW4gdGhlcmUgaXMgbm9cbiAqIGN1cnJlbnQgdmlzaXQuIElmIHRoZXJlIGlzIG5vIGFjdGl2ZSB2aXNpdCBidXQgdGhlcmUgaXMgYSByZXRyb3NwZWN0aXZlIHZpc2l0LCB0aGVuXG4gKiB0aGUgcmV0cm9zcGVjdGl2ZSB2aXNpdCBpcyB0aGUgY3VycmVudCB2aXNpdC4gYGN1cnJlbnRWaXNpdElzUmV0cm9zcGVjdGl2ZWAgdGVsbHMgeW91XG4gKiB3aGV0aGVyIHRoZSBjdXJyZW50IHZpc2l0IGlzIGEgcmV0cm9zcGVjdGl2ZSB2aXNpdC5cbiAqXG4gKiBUaGUgYWN0aXZlIHZpc2l0IGFuZCBjdXJyZW50IHZpc2l0IHJlcXVpcmUgdHdvIHNlcGFyYXRlIEFQSSBjYWxscy4gYGVycm9yYCBjb250YWluc1xuICogdGhlIGVycm9yIGZyb20gZWl0aGVyIG9uZSwgaWYgdGhlcmUgaXMgYW4gZXJyb3IuIGBpc1ZhbGlkYXRpbmdgIGlzIHRydWUgaWYgZWl0aGVyXG4gKiBBUEkgY2FsbCBpcyBpbiBwcm9ncmVzcy4gYG11dGF0ZWAgcmVmcmVzaGVzIHRoZSBkYXRhIGZyb20gYm90aCBBUEkgY2FsbHMuXG4gKlxuICogQHBhcmFtIHBhdGllbnRVdWlkIFVuaXF1ZSBwYXRpZW50IGlkZW50aWZpZXIgYHN0cmluZ2BcbiAqIEBwYXJhbSByZXByZXNlbnRhdGlvbiBUaGUgY3VzdG9tIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2aXNpdFxuICovIGV4cG9ydCBmdW5jdGlvbiB1c2VWaXNpdChwYXRpZW50VXVpZCwgcmVwcmVzZW50YXRpb24gPSBkZWZhdWx0VmlzaXRDdXN0b21SZXByZXNlbnRhdGlvbikge1xuICAgIC8vIFRoZSBjYWxsYmFjayB3ZSByZWdpc3RlciBoYXMgdG8gZXhpc3QgYmVmb3JlIHdlIHJlYWQgdGhlIHN0b3JlLCBidXQgdGhlIG11dGF0ZSBmdW5jdGlvbnNcbiAgICAvLyBpdCBjYWxscyBjb21lIGZyb20gU1dSIGNhbGxzIHRoYXQgYXJlIGtleWVkIG9mZiB3aGF0IHRoZSBzdG9yZSBob2xkcy4gUmVnaXN0ZXJpbmcgYSBzdGFibGVcbiAgICAvLyBpbmRpcmVjdGlvbiB0aHJvdWdoIGEgcmVmIGJyZWFrcyB0aGF0IGN5Y2xlLCBzbyB0aGUgc3RvcmUgaXMgcmVhZCBvbmNlIHBlciBob29rIHJhdGhlciB0aGFuXG4gICAgLy8gb25jZSB0byBnZXQgdGhlIGtleSBhbmQgYWdhaW4gdG8gcmVnaXN0ZXIuXG4gICAgY29uc3QgbXV0YXRlVmlzaXRSZWYgPSB1c2VSZWYodW5kZWZpbmVkKTtcbiAgICBjb25zdCByZWdpc3RlcmVkTXV0YXRlVmlzaXQgPSB1c2VDYWxsYmFjaygoKT0+bXV0YXRlVmlzaXRSZWYuY3VycmVudD8uKCksIFtdKTtcbiAgICBjb25zdCB7IHBhdGllbnRVdWlkOiB2aXNpdFN0b3JlUGF0aWVudFV1aWQsIG1hbnVhbGx5U2V0VmlzaXRVdWlkLCBzZXRWaXNpdENvbnRleHQgfSA9IHVzZVZpc2l0Q29udGV4dFN0b3JlKHJlZ2lzdGVyZWRNdXRhdGVWaXNpdCk7XG4gICAgLy8gSWdub3JlIHRoZSB2aXNpdCBzdG9yZSBkYXRhIGlmIGl0IGlzIG5vdCBmb3IgdGhpcyBwYXRpZW50XG4gICAgY29uc3QgcmV0cm9zcGVjdGl2ZVZpc2l0VXVpZCA9IHBhdGllbnRVdWlkICYmIHZpc2l0U3RvcmVQYXRpZW50VXVpZCA9PSBwYXRpZW50VXVpZCA/IG1hbnVhbGx5U2V0VmlzaXRVdWlkIDogbnVsbDtcbiAgICBjb25zdCBhY3RpdmVWaXNpdFVybFN1ZmZpeCA9IGA/cGF0aWVudD0ke3BhdGllbnRVdWlkfSZ2PSR7cmVwcmVzZW50YXRpb259JmluY2x1ZGVJbmFjdGl2ZT1mYWxzZWA7XG4gICAgY29uc3QgcmV0cm9zcGVjdGl2ZVZpc2l0VXJsU3VmZml4ID0gYC8ke3JldHJvc3BlY3RpdmVWaXNpdFV1aWR9P3Y9JHtyZXByZXNlbnRhdGlvbn1gO1xuICAgIGNvbnN0IHsgZGF0YTogYWN0aXZlRGF0YSwgZXJyb3I6IGFjdGl2ZUVycm9yLCBtdXRhdGU6IGFjdGl2ZU11dGF0ZSwgaXNWYWxpZGF0aW5nOiBhY3RpdmVJc1ZhbGlkYXRpbmcgfSA9IHVzZVNXUihwYXRpZW50VXVpZCA/IGAke3Jlc3RCYXNlVXJsfS92aXNpdCR7YWN0aXZlVmlzaXRVcmxTdWZmaXh9YCA6IG51bGwsIG9wZW5tcnNGZXRjaCk7XG4gICAgY29uc3QgeyBkYXRhOiByZXRyb0RhdGEsIGVycm9yOiByZXRyb0Vycm9yLCBtdXRhdGU6IHJldHJvTXV0YXRlLCBpc1ZhbGlkYXRpbmc6IHJldHJvSXNWYWxpZGF0aW5nIH0gPSB1c2VTV1IocGF0aWVudFV1aWQgJiYgcmV0cm9zcGVjdGl2ZVZpc2l0VXVpZCA/IGAke3Jlc3RCYXNlVXJsfS92aXNpdCR7cmV0cm9zcGVjdGl2ZVZpc2l0VXJsU3VmZml4fWAgOiBudWxsLCBvcGVubXJzRmV0Y2gpO1xuICAgIGNvbnN0IGFjdGl2ZVZpc2l0ID0gdXNlTWVtbygoKT0+YWN0aXZlRGF0YT8uZGF0YS5yZXN1bHRzLmZpbmQoKHZpc2l0KT0+dmlzaXQuc3RvcERhdGV0aW1lID09PSBudWxsKSA/PyBudWxsLCBbXG4gICAgICAgIGFjdGl2ZURhdGFcbiAgICBdKTtcbiAgICBjb25zdCBjdXJyZW50VmlzaXQgPSB1c2VNZW1vKCgpPT5yZXRyb3NwZWN0aXZlVmlzaXRVdWlkICYmIHJldHJvRGF0YSA/IHJldHJvRGF0YS5kYXRhIDogbnVsbCwgW1xuICAgICAgICByZXRyb0RhdGEsXG4gICAgICAgIHJldHJvc3BlY3RpdmVWaXNpdFV1aWRcbiAgICBdKTtcbiAgICBjb25zdCBwcmV2aW91c0N1cnJlbnRWaXNpdCA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgLy8gaWYgYW4gYWN0aXZlIHZpc2l0IGlzIGNyZWF0ZWQgZm9yIHRoZSB2aXNpdCBzdG9yZSBwYXRpZW50IGFuZCB0aGV5IGhhdmUgbm8gdmlzaXQgaW4gY29udGV4dCwgc2V0IHRoZSBjb250ZXh0IHRvIHRoZSBhY3RpdmUgdmlzaXRcbiAgICAgICAgaWYgKCFhY3RpdmVJc1ZhbGlkYXRpbmcgJiYgYWN0aXZlVmlzaXQgJiYgdmlzaXRTdG9yZVBhdGllbnRVdWlkID09PSBwYXRpZW50VXVpZCAmJiBtYW51YWxseVNldFZpc2l0VXVpZCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0VmlzaXRDb250ZXh0KGFjdGl2ZVZpc2l0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXJldHJvSXNWYWxpZGF0aW5nKSB7XG4gICAgICAgICAgICAvLyBpZiB0aGUgY3VycmVudCB2aXNpdCBoYXBwZW5lZCB0byBiZSBhY3RpdmUgYnV0IGl0IGp1c3QgZ290IGVuZGVkIChpbmFjdGl2ZSksIHJlbW92ZSB0aGVcbiAgICAgICAgICAgIC8vIHZpc2l0IGZyb20gY29udGV4dFxuICAgICAgICAgICAgaWYgKHByZXZpb3VzQ3VycmVudFZpc2l0LmN1cnJlbnQgJiYgY3VycmVudFZpc2l0ICYmIHByZXZpb3VzQ3VycmVudFZpc2l0LmN1cnJlbnQudXVpZCA9PT0gY3VycmVudFZpc2l0LnV1aWQgJiYgIXByZXZpb3VzQ3VycmVudFZpc2l0LmN1cnJlbnQuc3RvcERhdGV0aW1lICYmIGN1cnJlbnRWaXNpdC5zdG9wRGF0ZXRpbWUpIHtcbiAgICAgICAgICAgICAgICBzZXRWaXNpdENvbnRleHQobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmV2aW91c0N1cnJlbnRWaXNpdC5jdXJyZW50ID0gY3VycmVudFZpc2l0O1xuICAgICAgICB9XG4gICAgfSwgW1xuICAgICAgICBjdXJyZW50VmlzaXQsXG4gICAgICAgIG1hbnVhbGx5U2V0VmlzaXRVdWlkLFxuICAgICAgICBhY3RpdmVWaXNpdCxcbiAgICAgICAgYWN0aXZlSXNWYWxpZGF0aW5nLFxuICAgICAgICByZXRyb0lzVmFsaWRhdGluZyxcbiAgICAgICAgdmlzaXRTdG9yZVBhdGllbnRVdWlkXG4gICAgXSk7XG4gICAgY29uc3QgbXV0YXRlVmlzaXQgPSB1c2VDYWxsYmFjaygoKT0+e1xuICAgICAgICBhY3RpdmVNdXRhdGUoKTtcbiAgICAgICAgcmV0cm9NdXRhdGUoKTtcbiAgICB9LCBbXG4gICAgICAgIGFjdGl2ZU11dGF0ZSxcbiAgICAgICAgcmV0cm9NdXRhdGVcbiAgICBdKTtcbiAgICB1c2VFZmZlY3QoKCk9PntcbiAgICAgICAgbXV0YXRlVmlzaXRSZWYuY3VycmVudCA9IG11dGF0ZVZpc2l0O1xuICAgIH0sIFtcbiAgICAgICAgbXV0YXRlVmlzaXRcbiAgICBdKTtcbiAgICBjb25zdCB3YWl0aW5nRm9yRGF0YSA9IEJvb2xlYW4oIWFjdGl2ZURhdGEgfHwgcmV0cm9zcGVjdGl2ZVZpc2l0VXVpZCAmJiAhcmV0cm9EYXRhKTtcbiAgICBjb25zdCBoYXNSZWxldmFudEVycm9yID0gQm9vbGVhbihyZXRyb3NwZWN0aXZlVmlzaXRVdWlkID8gcmV0cm9FcnJvciA6IGFjdGl2ZUVycm9yKTtcbiAgICBjb25zdCBpc0xvYWRpbmcgPSB3YWl0aW5nRm9yRGF0YSAmJiAhaGFzUmVsZXZhbnRFcnJvcjtcbiAgICByZXR1cm4ge1xuICAgICAgICBlcnJvcjogYWN0aXZlRXJyb3IgfHwgcmV0cm9FcnJvcixcbiAgICAgICAgbXV0YXRlOiBtdXRhdGVWaXNpdCxcbiAgICAgICAgaXNWYWxpZGF0aW5nOiBhY3RpdmVJc1ZhbGlkYXRpbmcgfHwgcmV0cm9Jc1ZhbGlkYXRpbmcsXG4gICAgICAgIGFjdGl2ZVZpc2l0LFxuICAgICAgICBjdXJyZW50VmlzaXQsXG4gICAgICAgIGN1cnJlbnRWaXNpdElzUmV0cm9zcGVjdGl2ZTogQm9vbGVhbihyZXRyb3NwZWN0aXZlVmlzaXRVdWlkKSxcbiAgICAgICAgaXNMb2FkaW5nXG4gICAgfTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTV1IiLCJkYXlqcyIsImlzVG9kYXkiLCJvcGVubXJzRmV0Y2giLCJyZXN0QmFzZVVybCIsImRlZmF1bHRWaXNpdEN1c3RvbVJlcHJlc2VudGF0aW9uIiwidXNlVmlzaXRDb250ZXh0U3RvcmUiLCJ1c2VWaXNpdCIsInBhdGllbnRVdWlkIiwicmVwcmVzZW50YXRpb24iLCJtdXRhdGVWaXNpdFJlZiIsInVuZGVmaW5lZCIsInJlZ2lzdGVyZWRNdXRhdGVWaXNpdCIsInZpc2l0U3RvcmVQYXRpZW50VXVpZCIsIm1hbnVhbGx5U2V0VmlzaXRVdWlkIiwic2V0VmlzaXRDb250ZXh0IiwicmV0cm9zcGVjdGl2ZVZpc2l0VXVpZCIsImFjdGl2ZVZpc2l0VXJsU3VmZml4IiwicmV0cm9zcGVjdGl2ZVZpc2l0VXJsU3VmZml4IiwiYWN0aXZlRGF0YSIsImFjdGl2ZUVycm9yIiwiYWN0aXZlTXV0YXRlIiwiYWN0aXZlSXNWYWxpZGF0aW5nIiwicmV0cm9EYXRhIiwicmV0cm9FcnJvciIsInJldHJvTXV0YXRlIiwicmV0cm9Jc1ZhbGlkYXRpbmciLCJhY3RpdmVWaXNpdCIsInZpc2l0IiwiY3VycmVudFZpc2l0IiwicHJldmlvdXNDdXJyZW50VmlzaXQiLCJtdXRhdGVWaXNpdCIsIndhaXRpbmdGb3JEYXRhIiwiQm9vbGVhbiIsImhhc1JlbGV2YW50RXJyb3IiLCJpc0xvYWRpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMEJBQTBCLEdBQW1FO0FBQ3BFO0FBQ0M7QUFDb0I7QUFDZTtB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\n//# sourceURL=webpack-internal:///../../framework/esm-react-utils/dist/useVisit.js\n\n}");
|
|
6174
6155
|
|
|
6175
6156
|
},
|
|
6176
6157
|
"../../framework/esm-react-utils/dist/useVisitContextStore.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
|